Глаз бабочки стал моделью для графеновых ректенн с рекордной светопоглощаемостью

Группа учёных из университета Суррея (Великобритания) заявила о создании 2D-материала с рекордными показателями. Многослойная графеновая плёнка с ректеновой структурой поглощает свет в 99% диапазона от среднего инфракрасного до ультрафиолета. Если такую плёнку использовать в солнечных батареях, то можно генерировать электричество даже в рассеянном свете, отражённом от стен или от свечения домашних бытовых приборов. То есть солнечные батареи будут работать внутри помещений. Это даже нельзя назвать «батареями», когда плёнка наносится на поверхность стен и других объектов. (Другой вопрос, что комната тогда останется почти в кромешной темноте даже в солнечный день)

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

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

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

Один из авторов научной работы, профессор Рави Сильва (Ravi Silva) объясняет, что у некоторых насекомых (бабочки, моль и проч.) глаз устроен совершенно по иным принципам. Там применяются нанотехнологии, то есть наноструктурированные поверхности. В таком масштабе эти элементы работают как ректенны (выпрямляющие антенны), то есть напрямую преобразуют энергию поля падающей волны в энергию постоянного тока. Взаимодействие волны длиной 4 нм с металлической наноантенной показано на иллюстрации.

Во врезке на иллюстрации B внизу — сравнение поверхности материала с глазом бабочки Bicyclus anynana. На иллюстрации D приведён показатель отражаемости созданного материала (чёрный график).

«Многие годы люди искали, какие применения графена могут найти повсеместное применение, — говорит Сильва. — Мы наконец-то приближаемся к точке, когда такие приложения начинают появляться. Мы сделали то, что раньше считалось невозможным: оптимизировали невероятные оптические свойства графена».

ссылка на оригинал статьи https://geektimes.ru/post/271848/

Интересные международные мероприятия марта

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

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

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

ссылка на оригинал статьи https://megamozg.ru/post/24422/

ORegex: От символов к объектам

Добрый вечер, хаброжители!
Сегодня я хочу поделиться с вами таким еще молодым проектом, как ORegex или Object Regular Expressions. Я уже довольно долго работаю в компьютерной лингвистике и хоть я не лингвист, но все же вижу в языках какие-то устоявшиеся конструкции, шаблоны.
Для тех кому интересно, как я решил их выделять — под кат.

Эти шаблоны могут быть как простыми:

  • Смайлы;
  • Хештеги;
  • Даты;
  • Телефоны;
  • и т.д.

Так и сложными:

  • Прямая речь;
  • Названия разнообразных компаний;
  • Имена;
  • Перечисления в тексте;
  • и т.д.

В основном моя работа заключалась в том, чтобы понять, что и как извлечь из последовательности объектов. Это можно делать через грамматики, можно через автоматы, а можно просто написать пару вложенных циклов. Но когда мне конкретно надоело писать тонны парсеров разнообразных последовательностей (токены, слова, объединения слов и т.д.) с разной сложностью и огромным количеством багов, мне пришел в голову резонный вопрос — можно ли сделать проще? Ответ пришел интуитивно: используй регулярные выражения для поиска.

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

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

How to use?

Над синтаксисом я долго не думал, было решено использовать стандартную нотацию .NET + возможность добавлять комментарии и писать нормальные имена для атомарных условий. Это позволило бы без проблем выносить паттерны в отдельные файлы:

{MyPredicate1} | (?{MyPredicate2} {MyPredicate3}*)

Стоит заметит, что на данный момент некоторые функции .NET Regex не включены (условные операторы, lookahed), но в скором будущем они обязательно появятся. А теперь перейдем к самим примерам. Допустим, у нас есть последовательность чисел:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13

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

    private static bool IsPrime(int number)     {         int boundary = (int)Math.Floor(Math.Sqrt(number));         if (number == 1) return false;         if (number == 2) return true;         for (int i = 2; i <= boundary; ++i)         {             if (number % i == 0) return false;         }         return true;     } 

И определить паттерн для поиска простых последовательностей:

{IsPrime}(.{IsPrime})*

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

    public void PrimeTest()     {         var oregex = new ORegex<int>("{0}(.{0})*", IsPrime);         var input = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};         foreach (var match in oregex.Matches(input))         {             Console.WriteLine(string.Join(",", match.Values));         }          //OUTPUT:         //2         //3,4,5,6,7         //11,12,13     } 

Ну вот и все, но не так убедительно, да? Хорошо, тогда давайте приведем примерчик посложнее. Представим, что у нас есть некая последовательность слов пришедшая к нам из лексико-морфологического модуля. Вопрос, как по быстрому выделить наименования персон из последовательности? Довольно просто.

Определяем классы слова и персоны:

    public enum SemanticType     {         Name,         FamilyName,         Other,     }      public class Word     {         public readonly string Value;         public readonly SemanticType SemType;         public Word(string value, SemanticType semType)         {             Value = value;             SemType = semType;         }     }      public class Person     {         public readonly Word[] Words;         public readonly string Name;         public Person(OMatch<Word> match)         {             Words = match.Values.ToArray();             Name = match.OCaptures["name"].First().Values.First().Value;             //Now just normalize this name and you are good.         }     } 

И дополнительно какую-нибудь важную функцию, которая, будет определять что строка на самом деле является инициалом:

    private static bool IsInitial(string str)     {         var inp = str.Trim(new[] { '.', ' ', '\t', '\n', '\r' });         return inp.Length == 1 && char.IsUpper(inp[0]);     } 

Без лишних слов, составляем таблицу предикатов, паттерн и получаем наши объекты персон:

    public void PersonSelectionTest()     {         //INPUT_TEXT: Пяточкова Тамара решила выгулять Джека и встретилась с Михаилом А.М.         var sentence = new Word[]         {             new Word("Пяточкова", SemanticType.FamilyName),             new Word("Тамара", SemanticType.Name),             new Word("решила",  SemanticType.Other),             new Word("выгулять", SemanticType.Other),             new Word("Джека", SemanticType.Name),             new Word("и", SemanticType.Other),             new Word("встретилась", SemanticType.Other),             new Word("с", SemanticType.Other),             new Word("Михаилом", SemanticType.Name),             new Word("А.", SemanticType.Other),             new Word("М", SemanticType.Other),         };          //Создаем таблицу предикатов.         var pTable = new PredicateTable<Word>();         pTable.AddPredicate("Фамилия", x => x.SemType == SemanticType.FamilyName);  //Check if word is FamilyName.         pTable.AddPredicate("Имя", x => x.SemType == SemanticType.Name);            //Check if word is simple Name.         pTable.AddPredicate("Инициал", x => IsInitial(x.Value));                    //Complex check if Value is Inital character.          //Создаем наше выражение из паттерна и таблицы.         var oregex = new ORegex<Word>(@"             {Фамилия}(?<name>{Имя})                     //Comments can be written inside pattern...             |             (?<name>{Имя})({Фамилия}|{Инициал}{1,2})?  /*...even complex ones.*/         ", pTable);          //Выделяем персон в последовательности.         var persons = oregex.Matches(sentence).Select(x => new Person(x)).ToArray();          foreach (var person in persons)         {             Console.WriteLine("Person found: {0}, length: {1}", person.Name, person.Words.Length);         }          //OUTPUT:         //Person found: Тамара, length: 2         //Person found: Джека, length: 1         //Person found: Михаилом, length: 3     } 

Ну вот и все. Постарался описать все вкратце и доходчиво =)
Если что библиотека доступна как в nuget так и на github.

ссылка на оригинал статьи https://habrahabr.ru/post/278219/

Прогнозы на 2016 год: три основных тенденции полупроводниковой отрасли


Я рад тому, что моя должность даёт мне возможность на раннем этапе познакомиться с самыми новыми и современными технологиями из разных уголков мира. Очень часто меня спрашивают, что я считаю следующим «большим прорывом». И тут для меня возникает дилемма. Дело в том, что моё сердце расположено к тем технологиям, которые восхищают меня лично. К тем, которые, я уверен, внесут серьёзные изменения в нашу жизнь. Но в то же время, мой разум устремляется к технологиям, которые обладают коммерческим потенциалом, и которые уже сегодня готовы стать реальностью нашей жизни.

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

1. Виртуальная реальность (VR) становится вертикально ориентированной

Как мы все могли убедиться на Consumer Electronics Show (CES) 2016 года в Лас-Вегасе, виртуальная реальность становится мэйнстримом. И я считаю, что это – поворотный момент в развитии технологий. Причину своего суждения я объясню чуть позже, а сейчас я бы хотел уделить время, чтобы немного подробнее изучить вектор и форму развития виртуальной реальности.

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

Тем не менее, мой разум говорит о том, что основная трудность, с которой VR сталкивается в игровой индустрии – это нехватка контента. Конечно, эта проблема разрешится, когда разработчики окончательно приспособятся к работе с виртуальной реальностью. К тому же, с программной точки зрения интерес к технологии AMD LiquidVR™ сегодня достаточно велик, однако из-за высокой стоимости оборудования пока она остается доступной лишь немногим геймерам. Несмотря на этот факт, мы должны отметить, как виртуальная реальность уже сейчас начинает менять индустрию.

Много лет виртуальная реальность занимала серьезные позиции в сфере оборонных разработок и авиационной промышленности, там, где люди искали более естественный и интуитивный способ взаимодействия с технологиями. Но при взгляде на другие вертикальные сектора, такие как образование и медицинские исследования, вы поймете, что виртуальная реальность достаточно созрела, чтобы трансформировать и эти отрасли.
Например, компания GE уже использует технологии AMD в своем проекте «Neuro VR Experience», который погружает пользователя в целиком воссозданную атмосферу мозга британского музыканта Рубена Ву (Reuben Wu), позволяя в реальном времени наблюдать за его мыслительным процессом и реакцией на различные стимулы. Если говорить о некоммерческом секторе, то сегодня даже ООН использует VR для эмоциональной связи с донорами, чтобы своими глазами увидеть настоящую жизнь в лагере для беженцев.

Таким образом, я считаю, что в 2016 году мы увидим множество инновационных подходов к применению VR на примере использования в вертикальном секторе, что продемонстрирует широкие коммерческие возможности технологии.

2. Серверы и ПК дадут развитие Интернету Людей

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

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

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

Коммерческое применение – это, как обычно, совсем другая история. Сфера, которую многое связывает с IoT – это ЦОДы. Объяснение этому довольно очевидное: успех внедрения миллиардов устройств, собирающих данные, зависит от того, насколько эффективно для людей и бизнеса мы можем хранить, анализировать и извлекать полезную информацию из этих данных. Поэтому примером революционного применения IoT можно считать высокомощные, но энергоэффективные вычисления в ЦОД. Вот что, по моему мнению, может стать драйвером роста популярности IoT в 2016.

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

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

3. Захватывающий «зеркальный» эффект

Мой третий прогноз: в этом году мы увидим прорыв в сфере графических технологий. Мы уже говорили о том, что VR выходит на массовой рынок, однако мы не останемся удовлетворены до тех пор, пока не получим от графики достоверную «зеркальную» картинку.

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

Представьте мир, где 3D-графика поддерживается на экранах с разрешением 16K! Это примерно в 16 раз больше пикселей, чем мы видим на большинстве современных телевизоров. А теперь представьте, что эта картинка показывается с невероятной частотой обновления экрана в 240 Гц – это в четыре раза быстрее, чем на стандартном мониторе. Такая технология создаст ощущение того, что мы действительно оказались в другом мире, а не просто смотрим на экран.

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

Не забывайте о том, что экран с разрешением 16k на 16k и разрешением 120Гц требует феноменальной мощности для обновления 6 миллиардов пикселей в секунду. Один только закон Мура не поможет достичь подобных результатов – с таким узким подходом у отрасли не будет шансов на развитие. И мой разум подсказывает, что мы увидим несколько подходящих революционных решений из полупроводниковой индустрии уже в этом году.

Сердце и разум полупроводниковой промышленности

На сегодня пока все. Эти три больших прогноза, без сомнения, принесут с собой в этом и следующих годах еще и целый ряд менее масштабных эффектов. На своей новой должности президента AMD в EMEA я буду с интересом наблюдать за их проявлением в регионе и на глобальном уровне. Возможно, у вас есть другой взгляд на каждый из этих пунктов, но в любом случае 2016 обещает стать еще одним очень насыщенным и запоминающимся годом. Одну вещь могу сказать точно – все эти тренды как своим разумом, так и сердцем определенно поддержат все работники полупроводниковой промышленности.


Дарен Грэcби (Darren Grasby), Президент AMD в регионе EMEA

ссылка на оригинал статьи https://geektimes.ru/post/271828/

[Тестирование] Защищенный USB накопитель с ПИН-падом Kingston DataTraveler 2000

Привет, Гиктаймс! Флешка, которая вызвала массу комментариев хабражителей, приехала ко мне на тест. Речь пойдет о нашумевшем DataTraveler 2000, накопителе, который не на 100% является продуктом Kingston, но вместе с тем, очень заинтересовал пользователей. Скажу сразу, взламывать установленный ПИН-код подручными средствами я не буду, за всеми остальными подробностями, прошу под кат.


На момент публикации статьи, цена в российской рознице еще неизвестна: market.yandex.ru/product/13459150 — думаю, что накопитель на 16 гигабайт будет обходиться потенциальным покупателям в сумму около 6000 рублей (около 80 евро по текущему курсу).

Ключевое отличие от всех остальных накопителей — наличие физического ПИН-пада. Именно такой способ защиты является максимально надежным. Разработка компании iStorage — продукт нишевый и совместная работа с Kingston расширит горизонты для продвижения защищенных накопителей в массы.

На торца флешки красуется логотип разработчика iStorage, на боковых гранях нанесена информация о совместной работе с ClevX. Сотрудничество трех компаний принесло весьма неплохие плоды.

Внутри DataTraveler 2000 установлен небольшой Li-Pol аккумулятор с напряжением питания 3,7В для поддержания работоспособности системы шифрования. Подзарядка идет автоматически при подключении по USB. Срок автономного лежания на полке составляет около одного года, после того как батарейка сядет произойдет сброс данных.

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

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

Внутри печатная плата, обернутая медной фольгой. Фольгу аккуратно снимаем, что под ней? С одной стороны, ожидаемо расположен ПИН-пад, с другой — аккумулятор и все… Одна из сторон платы залита черным пластиком и выяснить, что внутри весьма сложно.

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

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

Флешка защищена от флаги и пыли по стандарту IP57 — то есть внутрь может попадать пыль не влияющая на функционирование устройства и при кратковременном погружении на глубину до 1 метра будет сохранена работоспособность накопителя.

По данным программы Flash Drive Information Extractor используется контроллер Phison PS2313 (вживую проверить этот факт не удалось), информация о чипах памяти программным способом недоступна.

Физический размер диска — 15 502 147 584 байт, по умолчанию флешка отформатирована в FAT32, но, по желанию пользователя, может работать в exFAT или NTFS.

Для разблокировки флешки нужно нажать на клавишу с изображением ключа, далее ввести ПИН по умолчанию 11223344, затем снова на клавишу с ключом. На флешке загорится зеленый светодиод, сигнализирующий о разблокировке устройства. После этого, в течение 30 секунд нужно подключить флешку к компьютеру. Если этого не сделать, накопитель снова заблокируется. При работе с флешкой никаких дополнительных программ не требуется. При извлечении устройства из разъема USB блокировка происходит автоматически.

В руководстве пользователя подробно описан процесс смены ПИН по умолчанию, и сразу же после приобретения стоит провести эту процедуру. Поддерживаются ПИН-коды длиной от 7 до 16 символов.

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

Скоростные характеристики Kingston DataTraveler 2000

Тестовый стенд

  • Процессор: Intel Core i7-5960X
  • Материнская плата: Gigabyte X99-SOC Champion, Intel Socket 2011-3
  • Оперативная память: HyperX Predator DDR4-3000 16 Gb (4*4 Gb)
  • Системный SSD-накопитель: HyperX Predator PCI-E SSD 480 Gb
  • Видеокарта: AMD Fury X
  • Блок питания: Corsair AX1200i, 1200W
  • Операционная система: Windows 10 Профессиональная (64-bit)

Настоящая емкость диска — 125 791 633 408 байт, что при пересчете дает около 117 гигабайт. Как я уже писал в накопителе используется память типа MLC производства Toshiba и контроллер Phison PS2251.

Технические характеристики

  • Интерфейс USB 3.1 Gen 1 (USB 3.0)
  • Емкость 16ГБ, 32ГБ
  • Скорость USB 3.1: 16ГБ: 120МБ/с (чтение), 20МБ/с (запись); 32ГБ: 135МБ/с (чтение), 40МБ/с (запись)
  • Скорость USB 2.0: 16ГБ: 30МБ/с (чтение), 20МБ/с (запись); 32ГБ: 30МБ/с (чтение), 20МБ/с (запись)

Набор тестовых приложений:

  • ATTO disk benchmark 3.0.5
  • Crystal Disk Mark 5.1.2
  • IOMeter 1.1.0
  • PC Mark 8

ATTO disk benchmark 3.05

Синтетический тест для оценки корректности заявленных производителем скоростей. Собственно большинство данных, указанных на коробках флешек и SSD разных производителей, получены именно с помощью ATTO Disk Benchmark.

Crystal Disk Mark 5.0.2

Этот тест позволяет оценить работу накопителя в четырех режимах: линейное чтение/запись, чтение/запись блоков по 4К, линейное чтение/запись при глубине очереди 32 команды, чтение/запись блоков по 4К при глубине очереди 32 команды.

AS SSD benchmark 1.8.5636

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

Финальные размышления

Kingston DataTraveler 2000 не самая быстрая и не самая маленькая флешка. Это сугубо нишевый продукт для знающих людей. Если раньше в России было непросто найти продукты iStorage, то благодаря сотрудничеству с Kingston у всех желающих (понтно, что кому очень надо было, те уже купили) будет возможность использовать такие защищенные устройства.
Вместе с тем, отмечу, что неплохая скорость работы и защищенность от внешних воздействий являются обязательным условием для требовательных покупателей.

Спасибо за внимание и оставайтесь с Kingston на Гиктаймс!

Для получения дополнительной информации о продукции Kingston и HyperX обращайтесь на официальный сайт компании. В выборе своего комплекта HyperX поможет страничка с наглядным пособием.


Наши предыдущие посты:

ссылка на оригинал статьи https://geektimes.ru/post/271836/