Обновить
-2
0.2

Пользователь

Отправить сообщение

Охлаждение погружением, серверы «под водой»: Immersion-2 для 3M™ Novec™ обеспечил волшебные результаты, применение на практике в Гонконге

Время на прочтение5 мин
Охват и читатели91K
Охлаждение погружением — иммерсионное охлаждение. В прошлой статье посвященной иммерсионному охлаждению были рассмотрены по сути преимущества размещения серверов в минеральном масле. Я глубоко заблуждался, когда мне казалось, что это наиболее эффективное решение в глобальном плане. Ознакомившись с некоторыми иными разработками я осознал, что эффективен сам базовый принцип — охлаждение погружением, а вот все остальное, как говорят «depends on»…

Cегодня я Вам хочу поведать о сравнительно новой двухфазной системе охлаждения Immersion-2, которая использует все преимущества «сухой воды» 3M Novec для достижения по истине волшебных результатов, превращая недостатки в достоинства!

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

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

Сухая вода Novec® 1230 для защиты серверных и не только

Время на прочтение9 мин
Охват и читатели262K
Добрый день, уважаемые хабрапользователи! Вы слышали о компании 3М?

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



Наш первый пост посвящен газовому огнетушащему веществу Novec 1230, его истории и применению.
Рассказ сотрудницы «из первых уст».
Читать дальше →

Выделенные серверы под водой, буквально!? Перспективы разведения рыб в серверах?!

Время на прочтение9 мин
Охват и читатели112K
Все мы знаем, что вода и электроника — опасное сочетание, но так ли всегда? Способны ли современные технологии изменить это представление?



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

Логика сознания. Пояснение «на пальцах»

Время на прочтение2 мин
Охват и читатели43K

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

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

Повышаем производительность кода: сначала думаем о данных

Время на прочтение20 мин
Охват и читатели65K


Занимаясь программированием рендеринга графики, мы живём в мире, в котором обязательны низкоуровневые оптимизации, чтобы добиться GPU-фреймов длиной 30 мс. Для этого мы используем различные методики и разработанные с нуля новые проходы рендеринга с повышенной производительностью (атрибуты геометрии, текстурный кеш, экспорт и так далее), GPR-сжатие, скрывание задержки (latency hiding), ROP…

В сфере повышения производительности CPU в своё время применялись разные трюки, и примечательно то, что сегодня они используются для современных видеокарт ради ускорения вычислений ALU (Низкоуровневая оптимизация для AMD GCN, Быстрый обратный квадратный корень в Quake).


Быстрый обратный квадратный корень в Quake

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

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

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

Эффективный расчёт области видимости и линии взгляда в играх

Время на прочтение16 мин
Охват и читатели39K
image

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

image

Имея параметры видимости наблюдателя (направление взгляда, расстояние видимости и угол поля зрения), нам нужно найти видимую для него область, т.е. определить область видимости (field of view, FoV). Если препятствия отсутствуют, это будет сектор круга, состоящий из двух граней (радиусов) и соединяющей их дуги (см. Рис. 1). Кроме того, имея заданную точку мира, мы должны быстро определить, видима ли она для наблюдателя, т.е. необходимо обрабатывать запросы линии взгляда (line of sight, LOS) для заданной точки. Обе эти операции можно выполнить достаточно эффективно для использования при рендеринге в реальном времени.
Читать дальше →

Простой и быстрый алгоритм генерации ландшафта

Время на прочтение2 мин
Охват и читатели27K
Доброго времени суток, Хабровчане! В этой статье я хочу рассказать про простой и быстрый способ генерации ландшафта. Прежде чем мы приступим к разбору самого алгоритма, хотелось бы отметить, что по отношению к генерации ландшафта мною данный алгоритм на просторах сети замечен не был, однако подобный алгоритм для генерации уровней был описан в статье, ссылка на которую будет в конце.

В какой ситуации удобен алгоритм

Недавно столкнулся с задачей: написать простую стратегию с трёхмерным ландшафтом. Так как я в данный момент обладаю маленьким опытом программирования на языке С++, мои попытки написать «diamond-square» закончились ошибками на ровном месте (ссылка на статью по «diamond-square» также будет в конце). Требовался простой в написании алгоритм, не дающий реалистичный ландшафт, так что данный метод поможет в первую очередь новичкам.

Алгоритм и результат

Прежде чем описывать сам алгоритм поделюсь его результатами:

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

Slow Cooker: нагрузочное тестирование сетевых сервисов

Время на прочтение8 мин
Охват и читатели10K

Linkerd, наша сервисная сетка (service mesh) для облачных приложений, по долгу службы обязана на протяжении длительного времени справляться с большими объемами сетевого трафика. Перед выпуском очередного релиза соответствие этому требованию необходимо тщательно проверять. В этой статье мы опишем стратегии нагрузочного тестирования и использованные нами инструменты, а также рассмотрим несколько обнаруженных проблем. В итоге будет представлен slow_cooker — написанный на Go инструмент нагрузочного тестирования с открытым исходным кодом, который был создан для выполнения длительных нагрузочных тестов и выявления проблем жизненного цикла (lifecycle issue identification).

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

20 вредных советов по разработке игр на Unity

Время на прочтение4 мин
Охват и читатели54K

Геймдев — занятие по настоящему увлекательное, особенно когда в команде есть как опытные программисты, так и новички. В отличии от таких движков как Unreal и CryEngine, в Unity достаточно низкий порог вхождения, и зачастую ветераны .NET и новички начинают выяснять отношения, которые заканчиваются дракой с применением офисной мебели.

В этой статье я попытался собрать советы которые помогут вам и вашей команде договориться наконец о том, как надо писать код, и, надеюсь, хорошо посмеяться. И так, поехали!

1. Пиши на UnityScript

Один язык в проекте — это скучно. Разнообразь жизнь своих коллег, пусть учаться быть полиглотами. C# — это майкрософт, и вообще строгая типизация это не твое.

2. Не используй var

Сами Unity запрещают* это делать, да и вообще непонятно, какого типа переменная. Когда тебе скажут про подсказки IntelliSense — закатывай глаза, майкрософт головного мозга! Твой Notepad++ этого не умеет.

3. Смешивай стили

Ну а что? Сами Unity нарушают C# Style Guide и фигачат camelCase в пропертях, чем ты хуже? Если используешь MonoDevelop, не забывай периодически менять табы на пробелы и обратно. При этом говори всем, что в MonoDevelop «настройки слетели» — про этот баг все знают!
Читать дальше →

Это вам не игрушки: как работает сервис облачного гейминга Playkey

Время на прочтение7 мин
Охват и читатели96K

Привет, Geektimes! Это первый пост от Playkey — первого и самого крупного российского сервиса облачного гейминга. Для игры на облачном игровом сервисе нужно высокоскоростное подключение к Интернету и практически любое “железо”, как на Mac OS, так и на Windows.




Снаружи смотрится сказкой: ПК десятилетней давности, а GTA V летает онлайн без тормозов. Но, если заглянуть внутрь, то запустить в “облаке” топовую игрушку и передать её в реальном времени пользователю, мгновенно реагировать на его действия — это чертовски непросто.


Для нашей интро-публикации, мы решили пообщаться с техническим директором Playkey Алексеем Лыковым о том, как в принципе работает технология Playkey, как мы решаем проблему "последней мили" и боремся с высоким пингом. Поехали!


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

Скорочтение. Как читать в восемь раз быстрее, если тебя преследуют демоны

Время на прочтение4 мин
Охват и читатели172K
Автор иллюстрации — John Kenn
После того как я стал равнодушен к своему магазину и закрыл его, надо мной нависли три демона: СХУ, депрессия и прокрастинация. Они тянули меня в пучину безысходности, и с каждый днем я погружался все глубже. К психологу идти я был не готов и начал искать выход сам.

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

Моего терпения хватило на шесть книг, после этого я забросил свой список. Ведь это занимало так много времени, а мне его категорически не хватало. Хотя я не знал на что его тратить.

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

Изучив метод предлагаемый автором мне удалось повысить скорость чтения. С автором я согласен не во всем, но некоторые способы были полезны. Об основных методах и будет эта статья.
Читать дальше →

Скучно о дешифрации

Время на прочтение5 мин
Охват и читатели14K

Нет, а вы вообще когда-либо видели веселый текст про SSL?

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

Я, конечно, возьму на себя ответственность и буду периодически вас будить. Однако, советую все же налить себе чашечку крепкого кофе и устроиться поудобнее. Поговорить нам надо о многом:
дешифрация NGFW – дело тонкое.
Читать дальше →

Глубокое обучение и Raspberry PI

Время на прочтение5 мин
Охват и читатели30K
«Что у нас есть?» — спросил горбоносый поворачиваясь.
«Алдан-3», — сказал бородатый.
«Богатая машина, — сказал я.”[1]

Недавно я решил заняться изучением глубокого обучения. На работе мне выдали новую карточку с поддержкой CUDA и шеф выразил пожелание что эта вершина инженерной мысли позволит нашей лаборатории сделать рывок вперёд, ну или по крайней мере, не отстать от массы конкурентов. У меня уже был некоторый опыт общения с Tensor Flow, но в этот раз я решил попробовать Torch. Привлекало что он написан на языке Lua и C, является достаточно легковесным и легко расширяемым через FFI. И ещё мне не нравится Python.


Недавно на Хабрахабр я наткнулся на статью, в процессе обсуждения которой я вспомнил что где-то в тумбочке у меня пилится Raspberry Pi, модель B+ и мне захотелось посмотреть — а смогу ли я поднять на ней torch и запустить что-нибудь несложное.


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

Подборка фреймворков для машинного обучения

Время на прочтение7 мин
Охват и читатели51K


В последние годы машинное обучение превратилось в мейнстрим небывалой силы. Эта тенденция подпитывается не только дешевизной облачных сред, но и доступностью мощнейших видеокарт, применяемых для подобных вычислений, — появилась ещё и масса фреймворков для машинного обучения. Почти все из них open source, но куда важнее то, что эти фреймворки проектируются таким образом, чтобы абстрагироваться от самых трудных частей машинного обучения, делая эти технологии более доступными широкому классу разработчиков. Под катом представлена подборка фреймворков для машинного обучения, как недавно созданных, так переработанных в уходящем году. Если у вас все хорошо с английским, то статья в оригинале доступна здесь.
Читать дальше →

Особенности разработки мобильной MMO RTS. Часть 1

Время на прочтение5 мин
Охват и читатели24K
В цикле статей «Особенности разработки мобильной MMO RTS» мы расскажем о работе большой команды над масштабным проектом Stormfall: Rise of Balur. Этот опыт будет полезен независимым разработчиками и студиям, которые еще не определились с выбором технологий, архитектуры и структуры команды для своей RTS.


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

Chatbot на базе рекуррентной нейронной сети своими руками за 1 вечер/6$ и ~ 100 строчек кода

Время на прочтение10 мин
Охват и читатели118K
В данной статье я хочу показать насколько просто сегодня использовать нейронные сети. Вокруг меня довольно много людей одержимы идеей того, что нейронки может использовать только исследователь. И что бы получить хоть какой то выхлоп, нужно иметь как минимуму кандидатскую степень. А давайте на реальном примере посмотрим как оно на самом деле, взять и с нуля за один вечер обучить chatbot. Да еще не просто абы чем а самым что нинаесть ламповым TensorFlow. При этом я постарался описать все настолько просто, что-бы он был понятен даже начинающему программисту! В путь!

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

Математика для искусственных нейронных сетей для новичков, часть 1 — линейная регрессия

Время на прочтение8 мин
Охват и читатели163K
Оглавление

Часть 1 — линейная регрессия
Часть 2 — градиентный спуск
Часть 3 — градиентный спуск продолжение

Введение


Этим постом я начну цикл «Нейронные сети для новичков». Он посвящен искусственным нейронным сетям (внезапно). Целью цикла является объяснение данной математической модели. Часто после прочтения подобных статей у меня оставалось чувство недосказанности, недопонимания — НС по-прежнему оставались «черным ящиком» — в общих чертах известно, как они устроены, известно, что делают, известны входные и выходные данные. Но тем не менее полное, всестороннее понимание отсутствует. А современные библиотеки с очень приятными и удобными абстракциями только усиливают ощущение «черного ящика». Не могу сказать, что это однозначно плохо, но и разобраться в используемых инструментах тоже никогда не поздно. Поэтому моей первичной целью является подробное объяснение устройства нейронных сетей так, чтобы абсолютно ни у кого не осталось вопросов об их устройстве; так, чтобы НС не казались волшебством. Так как это не математический трактат, я ограничусь описанием нескольких методов простым языком (но не исключая формул, конечно же), предоставляя поясняющие иллюстрации и примеры.

Цикл рассчитан на базовый ВУЗовский математический уровень читающего. Код будет написан на Python3.5 с numpy 1.11. Список остальных вспомогательных библиотек будет в конце каждого поста. Абсолютно все будет написано с нуля. В качестве подопытного выбрана база MNIST — это черно-белые, центрированные изображения рукописных цифр размером 28*28 пикселей. По-умолчанию, 60000 изображений отмечены для обучения, а 10000 для тестирования. В примерах я не буду изменять распределения по-умолчанию.
Читать дальше →

Gen Jam 2016: процедурно генерируемые спрайты

Время на прочтение4 мин
Охват и читатели20K
GenJam 2016

19 ноября 2016 года в Сан-Франциско прошёл первый ежегодный Gen Jam (геймджем по процедурной генерации). Идея была в том, чтобы за субботу создать генератор графики, «объект, создающий объекты», если вам угодно.

Я создал программу, рисующую спрайты персонажей в удивительном стиле набора 16-битных спрайтов Кристофера «Oryx» Барретта из Oryx Design Lab. Посмотрите на примеры того, что делает программа:

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

Как не нужно использовать паттерн Repository

Время на прочтение7 мин
Охват и читатели63K
image

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

Я постараюсь рассказать, как использовал паттерн Repository в проекте, какие достоинства и недостатки были выявлены, как это повлияло на разработку в целом и какой профит был получен.
Читать дальше →

Почему для достижения цели достаточно блокнота

Время на прочтение4 мин
Охват и читатели31K


Все мы ставим цели и хотим их достижения, но это не всегда удается. Одним не хватает силы воли, другим усидчивости или целенаправленности. Причин много и у каждого будут свои.
Когда я ставил цели и не достигал их, то обвинял в этом все, включая “неправильный” блокнот и лень. Чувство вины росло и не помогало в достижении поставленных целей.

Тогда я обратился к сервисам достижения целей, первым, на который наткнулся, стал SmartProgress. Он оказался бесплатным, что приятно, и решив не откладывать — начал целеполагаться.
Создал цель — открыть зоомагазин с мизерным бюджетом. Начал прописывать все необходимое, поставил дату реализации, подобрал мотивирующую картинку и вот уже завтра начну открывать магазин.
Читать дальше →

Информация

В рейтинге
2 829-й
Зарегистрирован
Активность