Pull to refresh
4
0
Сергей @arandomic

User

Send message

Отложенный Alpha blending

Reading time 6 min
Views 10K
В этой статье я хочу поговорить о методах смешивания растеризуемой геометрии. Классические модели смешивания полупрозрачных объектов — Alpha, Additive, Multiplicative — объединяет один и тот же принцип отрисовки: последовательно рисуем один примитив за другим, смешивая получаемые на выходе фрагментного шейдера пиксели с тем, что находится в текущем буфере. Каждый новый примитив обновляет область буфера, в которую рисуется; в случае с альфа-смешиванием объекты, которые находятся выше, заслоняют ранее отрисованные. Но что если хочется что-то сделать с группой объектов, рисуемых поверх сцены, — например, обрезать их по маске или подсветить? Тут сразу в голову приходят два решения: или внести изменения в их материал (т.е. изменить шейдер, расширить набор текстур), к примеру, добавив проекцию еще одной текстуры, которая будет отвечать за маску прозрачности. Однако если у нас много разношерстных объектов, менять каждый уникальный материал неудобно и чревато ошибками. Второй вариант — нарисовать все интересующие нас объекты в отдельный полноэкранный таргет и рисовать уже его на финальную сцену. Тут мы можем сделать с его содержимым все, что захотим, но это требует выделения лишней памяти и, что самое неприятное, — переключения рендер таргетов. Это не самая «дешевая» операция на мобильных устройствах, которую будет необходимо выполнить дважды. А если захочется вот так работать с несколькими слоями?


Читать дальше →
Total votes 57: ↑57 and ↓0 +57
Comments 16

Абрахам Флекснер: Полезность бесполезных знаний (1939)

Reading time 19 min
Views 14K
image

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

Нам снова и снова твердят, что наш век – это век материального. И главное в нем – это расширение цепочек распределения материальных благ и мирских возможностей. Возмущение тех, кто не виноват в том, что они лишены этих возможностей и справедливого распределения товаров, уводит значительное число студентов от наук, которыми занимались их отцы, в сторону настолько же важных и не менее актуальных предметов, изучающих социальные, экономические и государственные вопросы. Я ничего не имею против такой тенденции. Мир, в котором мы живем, единственный мир, данный нам в ощущениях. Если не улучшать и не делать его справедливее, миллионы людей продолжат уходить из жизни молча, в печали, с горечью. Я сам много лет умолял о том, чтобы наши школы имели четкое представление о мире, в котором их ученикам и студентам предназначено провести свою жизнь.
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Comments 8

KubeCon EU 2019: 10 ключевых выводов

Reading time 10 min
Views 3.7K


Мы с ребятами из Datawire недавно вернулись с потрясающих конференций KubeCon и CloudNativeCon в Барселоне. Мы участвовали в 6 выступлениях на KubeCon, раздали на своем стенде кучу классных (без ложной скромности) футболок, пообщались с десятками людей и посетили крутые выступления. На KubeCon EU было столько всего интересного, что я решил написать пост с ключевыми итогами.


И вот какие выводы я сделал (не в порядке важности):


  1. Многоплатформенность и гибридное облако (все еще) популярны.
  2. Объединение технологий набирает обороты.
  3. Анонс Service Mesh Interface (SMI): следите за новостями.
  4. (Туманное?) будущее Istio.
  5. Политика как код поднимается по стеку.
  6. Облачный DevEx по-прежнему не обходится без проблем.
  7. Компании (все еще) на начальных этапах внедрения технологий.
  8. Локальный Kubernetes реален (но заковырист).
  9. Считайте кластеры стадом.
  10. Успех Kubernetes по-прежнему зависит от сообществ.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Comments 3

Ember.js: (снова) время попробовать

Reading time 8 min
Views 17K

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


Вы учите Ember.js один раз, а потом применяете эти знания на всех Ember.js проектах. Этот тезис я попытаюсь раскрыть под катом.

Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 16

Бикватернионы

Reading time 15 min
Views 18K
Если вы открыли данную статью, то наверняка уже слышали о кватернионах, и возможно даже используете их в своих разработках. Но пора подняться на уровень выше — к бикватернионам.

В данной статье даны основные понятия о бикватернионах и операции работы с ними. Для лучшего понимания работы с бикватернионами показан наглядный пример на Javascript с использованием Canvas.
Читать дальше →
Total votes 54: ↑53 and ↓1 +52
Comments 27

Chain replication: построение эффективного KV-хранилища (часть 2/2)

Reading time 9 min
Views 3K

Продолжаем рассматривать примеры использования цепной репликации. Базовые определения и архитектуры были даны в первой части, рекомендую ознакомиться с ней перед прочтением второй части.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 2

Неотвратимость наказания, эффективность внезапных проверок

Reading time 6 min
Views 22K
Это философская заметка про управление и воспитание, а также про очень неожиданное озарение связанное с моделированием цифровой плесени. Навеяно беседами о проблемах управления строительством, а также сетью существенно удалённых филиалов.

image

Борьба популяций цифровой плесени под воздействие испепеляющего солнца.

Предуведомление. Статья состоит из трёх частей, и первые две кажутся вообще друг к другу никак не относящимися, однако есть третья объединяющая их.
Читать дальше →
Total votes 63: ↑61 and ↓2 +59
Comments 91

Зачем писать свой игровой движок?

Reading time 20 min
Views 28K
В декабре прошлого года, на конференции Games Gathering 2017, мы сделали доклад, в котором рассказали о том, надо ли компаниям, работающим в игровой индустрии, писать собственные движки.


Читать дальше →
Total votes 59: ↑56 and ↓3 +53
Comments 51

Как собрать GSM телефон на базе SDR

Reading time 13 min
Views 38K


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

В отличие от проприетарного программного обеспечения проекты с открытым исходным кодом всегда получают больше внимания со стороны исследователей безопасности. Возможность заглянуть «под капот» и узнать, как работает тот или иной компонент программы, позволяет не только находить и исправлять всевозможные ошибки, но и убедиться в отсутствии так называемых «закладок» в коде. Кроме того, открытый исходный код позволяет начинающим разработчикам учиться на примере более опытных, используя результаты их работы в качестве опоры.
Total votes 37: ↑37 and ↓0 +37
Comments 7

«Придётся писать самим. Сели и написали»: жизнь разработчиков лабораторного кластера супермассивов в Сбертехе

Reading time 17 min
Views 32K

Существует миф, что банки — это очень закостенелые структуры, в которых нет места эксперименту. Чтобы опровергнуть этот миф, мы провели небольшое интервью с Валерием Выборновым — начальником отдела разработки лабораторного кластера супермассивов в Сбербанк-Технологиях. У себя в команде они не боятся пользоваться всей мощью Scala, Akka, Hadoop, Spark, и даже пишут прототипы на Rust.



Основные вопросы:


  • Обсуждение примера экспериментального проекта (работа с социальным графом) с техническими подробностями;
  • Используемые языки и технологии (Scala, Akka, Hadoop, Spark, Rust, и т.п.);
  • Можно ли прийти в Сбертех сразу на руководящую должность? Как там внутри всё организовано, какие есть грейды?
  • Как живётся простому разработчику? Подробности внедрения Сберджайла;


Читать дальше →
Total votes 45: ↑38 and ↓7 +31
Comments 22

Итоги MentorHack: чат-бот по выделению тасков из диалогов, сервисы для построения карьерных траекторий и команд

Reading time 9 min
Views 4K
Недавно мы поучаствовали в организации MentorHack – хакатона по созданию сервисов для наставничества в корпоративной среде, предпринимательстве и образовании.

Под катом немного о хакатоне: сквозь будни, проверки ФСО и форум к победителях с чат-ботом для автовыделением тасков из переписок, сервисом для построения карьерных траекторий до желаемых позиций в перспективе и сборки команд под проекты.


Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 0

Существует ли идеальный планировщик личных задач? Разработка модульного планировщика

Reading time 5 min
Views 19K

Некоторое время назад, я, как активный пользователь планировщиков личных задач, открыл для себя один значительный недостаток – несмотря на их несчётное количество, невозможно найти «тот самый», который удовлетворял бы тебя по всем пунктам.


Нет, само по себе это абсолютно нормально, так как программу разрабатывал один или несколько разработчиков, которые в итоге пришли к своему пониманию того, “как пользователю будет лучше”. Да и к тому же, невозможно в одной программе уместить всё, что теоретически может захотеть сферический пользователь в вакууме. Или возможно?




Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 54

Удивительно полезный инструмент: lsof

Reading time 9 min
Views 120K
Я привык искать проблемы в коде или в системе, пользуясь логами или показателями мониторинга, которые выводятся на симпатичных панелях управления с простым и понятным интерфейсом. Однако, если по какой-то причине данные на панель управления не поступают, или логи какой-нибудь службы недоступны, отладка усложняется. Теперь подобных проблем немного, встречаются они редко, но они, всё же, случаются. Поэтому и в наше время весьма ценно знание инструментов, которые помогают понять, что не так с неким процессом на каком-нибудь компьютере.

image
Читать дальше →
Total votes 73: ↑69 and ↓4 +65
Comments 30

Результаты тестирования производительности облачных серверов с помощью Dwarf Fortress

Reading time 4 min
Views 8.4K
Dwarf Fortress — легендарная игра, детально симулирующая фэнтезийный мир, а игрок (в одном из режимов) может строить и управлять поселением (крепостью) гномов (дворфов). Про игру написано достаточно, поэтому я не буду вдаваться в подробности. Важно, что из-за большого размера игрового мира и высокой детализации симуляции, игра довольно требовательна к ресурсам — как процессору, так и памяти/кэшу. Игра поддерживает все три основные операционные системы.

Для игры существует проект DFHack, занимающийся реверс-инжинирингом структур данных игры и позволяющий создавать плагины и скрипты на C++, Lua или Ruby.

Я же являюсь автором приложения и сопутствующего серверного кода, полностью реализующего пользовательский интерфейс игры на устройствах под управлением iOS. То есть пользователь ставит оригинальную игру, плагин и приложение, и может играть удалённо с мобильного устройства со всеми удобствами.

Сервер можно установить как у себя дома, так и арендовать у одного из облачных провайдеров. Так и родилась идея этого исследования — во-первых, узнать, какой из облачных сервисов лучше подходит и может быть рекомендован пользователям в первую очередь, и во-вторых, собственно сравнить производительность серверов, используя что-то отличное от веб-серверов и специальных утилит.
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 10

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

Reading time 3 min
Views 25K
image

Сегодня необходимо хотя бы в общих чертах иметь представление о мире big data. Мы отобрали публикации, в которых доступно объясняют, что такое большие данные и как их используют. Статьи рассчитаны, скорее, на новичков, но и люди, разбирающиеся в теме, смогут найти для себя интересные (или просто забавные) кейсы.
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 2

Пишем, собираем и запускаем HelloWorld для Android в блокноте. Java 8 и Android N

Reading time 11 min
Views 45K

Два с половиной года назад я опубликовал статью Пишем, собираем и запускаем HelloWorld для Android в блокноте. Она стала пользоваться огромной популярностью и набрала около 80 000 просмотров. С появлением новых инструментов, таких как Jack ToolChain, возникла необходимость переиздания и обновления статьи.

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

Используя только блокнот, мы напишем совсем маленькое учебное Android-приложение. А затем скомпилируем его, соберём и запустим на устройстве — и всё через командную строку. Заинтересовало? Тогда прошу.
Читать дальше →
Total votes 67: ↑64 and ↓3 +61
Comments 22

Результаты большого опроса среди разработчиков всех стран за 2016 год

Reading time 8 min
Views 38K
Привет, Хабр! Мы в компании PayOnline, которая занимается организацией платежей на сайтах и в мобильных приложениях, решили сделать перевод интересного аналитического материала – глобального опроса среди разработчиков за 2016 год, проведенного сайтом Stack Overflow. Чтобы не утомлять вас чтением действительно объемного исследования, мы выбрали самые интересные, на наш взгляд, слайды.


Общая информация

Каждые 8 секунд (или около того) кто-то из разработчиков публикует свой вопрос на Stack Overflow. В этом же году настал черед Stack Overflow: более 56 тысяч разработчиков из 173 стран ответили на задаваемые вопросы.

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

Разработчики обожают Rust. Даже разработчики бэкенда знают JavaScript. Только 7% разработчиков считают себя «настоящими рок-звездами». Большинство разработчиков предпочитает собак кошкам (за исключением программистов из Германии).
Читать дальше →
Total votes 39: ↑35 and ↓4 +31
Comments 46

Прогнозы по рынку игр: цифры от 7 аналитических агентств

Reading time 2 min
Views 21K
Разработка игр на сегодняшний день является не только интересным, но и выгодным делом. Объем игрового рынка уже превосходит киноиндустрию и догоняет спортивный рынок, а доходы некоторых игровых компаний исчисляются в миллиардах долларов. Но что ждет индустрию, и какие у нее перспективы? В этой статье я приведу краткие выдержки и графики на эту тему от ведущих мировых исследовательских агентств: SuperData, Digi-Capital, NewZoo, SensorTower, Zenna Apps, AppAnnie, J’son & partners.

Читать дальше →
Total votes 14: ↑9 and ↓5 +4
Comments 1

24-летний студент начал войну против Facebook

Reading time 3 min
Views 73K


24-летний студент юридического факультета Венского университета Макс Шремс (Max Schrems) вот уже несколько месяцев ведёт неравный бой с компанией Facebook. Всё началось с того, что Макс отправил несколько грамотно составленных запросов и добился-таки, что из калифорнийского офиса ему прислали CD-диск со всеми персональными данными, собранными за три года активности на сайте.

Каждый гражданин может потребовать у Facebook выдачи ему в течение 40 дней всей собранной на него персональной информации. На сайте есть специальная форма для такого запроса. Вам придёт CD с файлом PDF объёмом несколько сотен мегабайт и более 1000 страниц. Макс Шремс получил PDF из более 1200 страниц, вся информация в файле была разбита на 57 категорий (работа, образование, друзья, политические взгляды, хобби, фотографии и т.д.). Как говорит Макс, даже у КГБ не было такого полного досье на граждан.

Но самое удивительное, что среди всего прочего в присланном файле были удалённые сообщения, чат-сессии, имена бывших друзей и другие данные с пометкой deleted:true.
Читать дальше →
Total votes 323: ↑296 and ↓27 +269
Comments 246

Делаем модульный многоканальный АЦП

Reading time 4 min
Views 46K
В различных проектах часто бывает необходимо следить за множеством параметров, которые представлены аналоговыми величинами. Конечно, часто хватает микроконтроллера, но иногда алгоритм обработки слишком сложен для него и требуется использование полноценного компьютера. К тому же на нём гораздо проще организовывать сохранение логов и красивую визуализацию данных. В таком случае либо берётся готовое промышленное решение (которое, разумеется, стоит дорого, но часто является избыточным), либо делается что-то самодельное. В самом банальном случае это может быть плата Arduino с бесконечным циклом из analogRead и serial.write. Если входных данных много (больше, чем аналоговых входов), то потребуется несколько плат, придумывать как их правильно опрашивать с компьютера и т. д. Во многих случаях подойдёт разработанное мною решение (возможно, я не первый придумал именно такую реализацию, не особо интересовался этим вопросом), которое позволит сэкономить время на отладку и сделать относительную простую и понятную архитектуру системы.
Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Comments 14
1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity