Первый в России робот-завод и при чём тут колбаса?

Когда меня пригласили прийти на презентацию первого в России робота-завода я подумал, что будут рассказывать про завод, который производит роботов. Но оказалось всё ещё интересней.

image
Читать дальше →
Первый в России робот-завод и при чём тут колбаса?
Source: geektimes

Первый в России робот-завод, и при чём тут колбаса?

Когда меня пригласили прийти на презентацию первого в России робота-завода я подумал, что будут рассказывать про завод, который производит роботов. Но оказалось всё ещё интересней.
image
Читать дальше →
Первый в России робот-завод, и при чём тут колбаса?
Source: geektimes

Как я попробовал сделать статический анализатор GLSL (и что пошло не так)

Однажды я готовился к Ludum Dare и сделал простую игру, где использовал пиксельные шейдеры (других в движок Phaser не завезли).

Что такое шейдеры?

Шейдеры — это программы на си-подобном языке GLSL, которые выполняются на видеокарте. Есть два вида шейдеров, в этой статье речь идет про пиксельные (они же “фрагментные”, fragment shaders), которые очень грубо можно представить в таком виде:

color = pixelShader(x, y, ...other attributes)

Т.е. шейдер выполняется для каждого пикселя выводимого изображения, определяя или уточняя его цвет.
Вводную можно почитать на другой статье на хабре — https://habr.com/post/333002/

Потестировав, кинул ссылку другу, и получил от него вот такой скриншот с вопросом «а это нормально?»

Нет, это было ненормально. Посмотрев внимательно код шейдера, я обнаружил ошибку в вычислениях:

if (t < M) {
    realColor = mix(color1,color2, pow(1. - t / R1, 0.5));
}

Т.к. константа R1 была меньше чем M, то в некоторых случаях в первом аргументе pow получалось число меньше нуля. Квадратный корень из отрицательного числа — штука загадочная, по крайней мере для стандарта GLSL. Мою видеокарту ничего не смутило, и она как-то выпуталась из этого положения (похоже, вернув из pow 0), а вот у друга она оказалась более разборчивой.

И тут я задумался: а могу ли я избежать таких проблем в будущем? От ошибок никто не застрахован, особенно таких, которые не воспроизводятся локально. Юнит-тесты на GLSL не напишешь. В то же время преобразования внутри шейдера довольно простые — умножения, деления, синусы, косинусы… Неужели нельзя отследить значения каждой переменной и убедиться, что ни при каких условиях не происходит выхода за допустимые границы значений?

Так я решил попробовать сделать статический анализ для GLSL. Что из этого получилось — можно прочитать под катом.

Сразу предупрежу: какого-то законченного продукта получить не удалось, только учебный прототип.

Читать дальше →
Как я попробовал сделать статический анализатор GLSL (и что пошло не так)
Source: habrahabr

Пост №3695516

Автор: блуждающий

ссылка на гифкуРазвернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3695516″ }, «headline»: «смешивание :: песок :: вода :: гиф анимация (гифки — ПРИКОЛЬНЫЕ gif анимашки)», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D0%BF%D0%B5%D1%81%D0%BE%D0%BA-%D0%B2%D0%BE%D0%B4%D0%B0-%D1%81%D0%BC%D0%B5%D1%88%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B3%D0%B8%D1%84%D0%BA%D0%B8-4796933.gif», «height»: 450, «width»: 376 }, «datePublished»: «2018-10-30T00:25:23+03:00», «dateModified»: «2018-10-30T00:25:23+03:00», «author»: { «@type»: «Person», «name»: «блуждающий» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3695516
Source: Joyreactor

Пост №3695481

Автор: SplitJoin

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3695481″ }, «headline»: « Дух Святой / клуб аметистов :: distracted girlfriend :: разное», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D0%BA%D0%BB%D1%83%D0%B1-%D0%B0%D0%BC%D0%B5%D1%82%D0%B8%D1%81%D1%82%D0%BE%D0%B2-%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D0%B5-distracted-girlfriend-4796869.jpeg», «height»: 705, «width»: 1280 }, «datePublished»: «2018-10-29T23:54:05+03:00», «dateModified»: «2018-10-29T23:54:05+03:00», «author»: { «@type»: «Person», «name»: «SplitJoin» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3695481
Source: Joyreactor

Пост №3695473

Автор: ManDroX

Качают пресс ютубовские шлюшки, Альфонсы и адепты наготы, А нам приятней тихо кушать плюшки, Отращивая Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3695473″ }, «headline»: «Качают пресс ютубовские шлюшки, / Вижу Рифмы :: стихи :: сало», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D0%92%D0%B8%D0%B6%D1%83-%D0%A0%D0%B8%D1%84%D0%BC%D1%8B-%D1%81%D1%82%D0%B8%D1%85%D0%B8-%D1%81%D0%B0%D0%BB%D0%BE-4796858.jpeg», «height»: 378, «width»: 650 }, «datePublished»: «2018-10-29T23:50:47+03:00», «dateModified»: «2018-10-29T23:50:47+03:00», «author»: { «@type»: «Person», «name»: «ManDroX» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «Альфонсы и адепты наготы, А нам приятней тихо кушать плюшки, Отращивая» }
Комментировать 
Пост №3695473
Source: Joyreactor

Пост №3695467

Автор: uunium

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3695467″ }, «headline»: « ч ävW; ¿kV«. .v* — J¿ 2 ^ * » r*S «■л 1#* / Мексика :: красивые картинки :: страны :: День Мертвых :: art (арт)», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D0%BA%D1%80%D0%B0%D1%81%D0%B8%D0%B2%D1%8B%D0%B5-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8-art-%D0%9C%D0%B5%D0%BA%D1%81%D0%B8%D0%BA%D0%B0-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%8B-4796850.jpeg», «height»: 2667, «width»: 4000 }, «datePublished»: «2018-10-29T23:45:39+03:00», «dateModified»: «2018-10-29T23:45:39+03:00», «author»: { «@type»: «Person», «name»: «uunium» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3695467
Source: Joyreactor

Пост №3695438

Автор: bezmolvnik

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3695438″ }, «headline»: «Rainbow Six Siege :: Rainbow Six :: tachanka :: glaz (R6S) :: Kapkan (R6S) :: Fuze (R6S) :: Игры», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/glaz-%28R6S%29-tachanka-Kapkan-%28R6S%29-Fuze-%28R6S%29-4796814.jpeg», «height»: 1333, «width»: 1280 }, «datePublished»: «2018-10-29T23:10:57+03:00», «dateModified»: «2018-10-29T23:10:57+03:00», «author»: { «@type»: «Person», «name»: «bezmolvnik» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3695438
Source: Joyreactor

Пост №3695420

Автор: bezmolvnik

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3695420″ }, «headline»: « fj • / Half-Life 2 :: Half-Life :: красивые картинки :: Эдвард Мунк :: gordon freeman :: крик :: Игры :: art (арт)», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/Half-Life-2-Half-Life-%D0%98%D0%B3%D1%80%D1%8B-gordon-freeman-4796789.jpeg», «height»: 1327, «width»: 1024 }, «datePublished»: «2018-10-29T22:49:43+03:00», «dateModified»: «2018-10-29T22:49:43+03:00», «author»: { «@type»: «Person», «name»: «bezmolvnik» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3695420
Source: Joyreactor

[recovery mode] Реформы по субсидированию ископаемых видов топлива, которые были достигнуты тяжелым трудом – находятся под угрозой

Перевод статьи Международного энергетического агентства.

На протяжении многих лет «Обзор мировой энергетики» (The World Energy Outlook) отслеживает данные о субсидировании использования ископаемого топлива и последние данные показывают, что они снова растут. Все данные доступны на странице Международного энергетического агентства в разделе «Энергетические субсидии». Данные упомянутые в этой статье взяты с нового выпуска «Обзора мировой энергетики 2018» (далее – WEO 2018), который будет опубликован 13 ноября 2018 года.
Читать дальше →
[recovery mode] Реформы по субсидированию ископаемых видов топлива, которые были достигнуты тяжелым трудом – находятся под угрозой
Source: geektimes