Search
Write a publication
Pull to refresh
-2
0.1
Send message

Свершилось! Процедурные макросы в Rust 1.15

Reading time5 min
Views16K

Ребята, свершилось! После долгих шести недель ожидания наконец вышла версия Rust 1.15 с блекджеком и процедурными макросами.


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


А что же это дает простым смертным? Практически бесплатную [де]сериализацию, удобный интерфейс к БД, интуитивный веб фреймворк, выводимые конструкторы и много чего еще.


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


curl https://sh.rustup.rs -sSf | sh

Впрочем, обо всем по порядку.

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

Черновик книги Эндрю Ына «Жажда машинного обучения», главы 1-7

Reading time10 min
Views33K
В декабре прошлого года в переписке американских коллег по data science прокатилась волна обсуждения долгожданного черновика новой книги гуру машинного обучения Эндрю Ына (Andrew Ng) «Жажда машинного обучения: стратегии для инженеров в эпоху глубинного обучения». Долгожданного, потому что книга была анонсирована ещё летом 2016 года, и вот, наконец, появилось несколько глав.

image

Представляю вниманию Хабра-сообщества перевод первых семи глав из доступных в настоящий момент четырнадцати. Замечу, что это не финальный вариант книги, а черновик. В нем есть ряд неточностей. Эндрю Ын предлагает писать свои комментарии и замечания сюда. Начинает автор с вещей, которые кажутся очевидными. Дальше ожидаются более сложные концепции.
Читать дальше →

История из российского А(АА)-инди геймдева на одном примере

Reading time7 min
Views18K


Под катом вас ждет большая и наполненная графикой история, как группа заинтересованных людей за 2 года создали инди-проект уровня ААА (по их мнению)

Может ли компьютер думать за архитектора, или Что такое параметрическое проектирование

Reading time5 min
Views14K


Недавно тут была статья о параметрических зданиях Захи Хадид, но из текста не слишком понятно, что же такое параметрическая архитектура в принципе. Параметры — это что-то, имеющее отношение к уравнениям, описывающим “модные, стильные, молодёжные” линии современных зданий? Нет, всё интереснее. На самом деле параметрическое проектирование — не столько красиво изогнутые трёхмерные объекты, сколько генетические алгоритмы, полиморфизм, мобильность, анализ комплексных систем и прочий матан. Если вам интересно, что сейчас происходит на стыке архитектуры и информационных технологий, читайте дальше.

Особенности архитектуры распределённого хранилища в Dropbox

Reading time13 min
Views20K


Вниманию читателей «Хабрахабра» представляется расшифровка видеозаписи (в конце публикации) выступления Вячеслава Бахмутова на сцене конференции HighLoad++, прошедшей в подмосковном Сколково 7-8 ноября ушедшего года.

Меня зовут Слава Бахмутов, я работаю в Dropbox. Я Site Reliability Engineer (SRE). Я люблю Go и продвигаю его. С ребятами мы записываем подкаст golangshow.

Что такое Dropbox?


Это облачное хранилище, в котором пользователи хранят свои файлы. У нас 500 миллионов пользователей, у нас более 200 тысяч бизнесов, а также огромное количества данных и трафика (более 1.2 млрд новых файлов в день).

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

Reading time4 min
Views13K


Содержание:


  1. Оптимизация производительности и целевые устройства
  2. Отрисовка текста и оптимизация Label
  3. Виртуальные списки и перемещение камеры
Читать дальше →

OpenStreetMap, как получить координаты адреса, часть простая

Reading time4 min
Views41K


Последнее время наблюдаю тенденцию, что всё больше и больше людей сталкиваются с проблемами в отсутствии геоданных. Вернее даже не так, в их закрытости. Если ещё вчера всех устраивали возможности картографических сервисов по расстановке маркеров, то теперь пользователь хочет большего: подсветить улицу, показать дома на ней, посчитать протяжённости рек и т.д. И тут их ожидает сюрприз, казалось бы на карте они всё это видят, но сделать ни чего не могут — это просто картинки. Развитие, что Google.Maps, что Яндекс.Карт остановилось на показе картинок, геокодинге, да навигации.

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

Разработка архитектуры нового приложения для пассажиров Uber

Reading time14 min
Views36K
— Здравствуйте. Скажите, сколько стоит сделать приложение типа Uber?

Менеджер по входящим заявкам нашей компании получает звонки с таким содержанием стабильно раз в неделю. Понимать его стоит, как правило, так: либо клиент хочет себе настолько же успешный аналог приложения для связи между пассажиром и водителем, либо Uber для ______ (вписать нужную отрасль).

В такие моменты мы отвечаем, что Uber — это технически очень сложный проект с миллионными инвестициями и сотнями тысяч человекочасов разработки, и что делать его клон не очень целесообразно.

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

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


Как рендерится кадр League of Legends

Reading time9 min
Views27K
image

Привет, меня зовут Тони Элбрект (Tony Albrecht), я один из разработчиков новой команды Render Strike Team под управлением Sustainability Initiative в League of Legends. Моей команде поручили внести усовершенствования в движок рендеринга LoL, и мы с радостью принялись за работу. В этой статье я расскажу, как движок работает сейчас. Надеюсь, она заложит хороший фундамент, на основании которого я позже смогу рассказывать об вносимых нами изменениях. Эта статья станет для меня хорошим предлогом самому поэтапно изучить процесс рендеринга, чтобы мы, как команда, полностью понимали, что же происходит внутри.

Я подробно объясню, как LoL выстраивает и отображает каждый отдельный кадр игры (не забывайте, что на самых мощных машинах это происходит более 100 в секунду). Рассказ в основном будет техническим, но я надеюсь, что его легко будет усвоить даже тем, кто не имеет опыта в рендеринге. Для ясности я пропущу некоторые сложные моменты, но если вы захотите узнать подробности, то напишите об этом в комментариях [к оригиналу статьи].
Читать дальше →

Что если в играх использовать видеокарточку для физики, а не для графики

Reading time5 min
Views80K
Хочу рассказать сообществу о проведённом мной эксперименте.

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

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

Или те же гоночки: до чего приятней на полной скорости сшибать людей, рекламные щиты и помойки, чтобы разлетались во все стороны, вместо того, чтобы мгновенно останавливаться, врезаясь в мёртво врощенный в землю столб.

Или ещё замечательный пример — Kerbal Space Program. Там физика уже является непосредственым источником геймплея.

Или, например, жанр 2д артиллерии. Часть его очарования базируется на уничтожаемой, динамичной земле. Но до чего он был бы лучше, если б земля не просто линейно осыпалась, а вела себя реалистично, разлетаясь от взрывов кусками.

Я давно мечтал сделать именно такой, до предела физически реалистичный римейк Scorched Earth. Но все мои эксперименты с моделированием физических систем упирались в неумолимо медленные процессоры. Тысяча-две частиц были пределом для real-time симуляции.

Но недавнее моё «открытие» изменило ситуацию.

Когнитивные стимуляторы и другая психофарма: можно ли стать умнее

Reading time14 min
Views196K
Привет, %username%!

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

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

Spoiler: NZT ещё не изобрели, но синтезировали некоторое количество потенциально интересных штук.
Читать дальше →

Z-order vs R-tree, продолжение

Reading time8 min
Views8.8K

В прошлый раз мы пришли к выводу, что для эффективной работы пространственного индекса на основе Z-order необходимо сделать 2 вещи:

  • эффективный алгоритм получения подинтервалов
  • низкоуровневую работу с B-деревом

Вот именно этим мы и займёмся под катом.
Читать дальше →

Введение в систему 8pt сеток

Reading time4 min
Views68K
Любому дизайнеру, над чем бы он ни работал — сайтами, журналами или мобильными приложениями, — наверняка приходилось слышать термин «сетка». Существуют сетки для всевозможных вариантов расположения контента. Мы применяем колоночные сетки, чтобы выстраивать контент по горизонтали, сетки базовых линий, чтобы выравнивать блоки текста по вертикали, гибкие (soft) и жесткие (hard) сетки — в зависимости от того, насколько строго собираемся их придерживаться. Я заинтересовался системой 8pt сеток, когда услышал, с каким увлечением говорит о ней Брин Джексон, и решил посмотреть, какие преимущества она может дать моим дизайнам (и может ли вообще).



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

Погодная станция из Arduino и Orienteer

Reading time5 min
Views13K
Под Новый Год ко мне приходит желание разработать что-нибудь нестандартное. В этот раз я решил начать собирать и обрабатывать погодные данные возле своего дома. И, конечно, выбрал Arduino в качестве железа, а вот в качестве хранилища и инструмента просмотра и анализа — упоминавшийся недавно на Хабрахабре конструктор бизнес-приложений Orienteer. Тем что получилось, я поделюсь в этой заметке.


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

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

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

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

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

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

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

Reading time9 min
Views255K
Добрый день, уважаемые хабрапользователи! Вы слышали о компании 3М?

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



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

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

Reading time9 min
Views111K
Все мы знаем, что вода и электроника — опасное сочетание, но так ли всегда? Способны ли современные технологии изменить это представление?



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

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

Reading time2 min
Views43K

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

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

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

Reading time20 min
Views64K


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

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


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

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

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

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

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

Reading time16 min
Views38K
image

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

image

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

Information

Rating
5,730-th
Registered
Activity