{"id":388671,"date":"2024-06-29T08:05:47","date_gmt":"2024-06-29T08:05:47","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=388671"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=388671","title":{"rendered":"<span>\u0414\u0435\u043c\u043a\u0430 MONOSPACE, \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c Assembly ONLINE 2020, \u0443\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 1021 \u0431\u0430\u0439\u0442<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/11\/pl\/lc\/11pllczriqvik50tyawfokd1cre.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/11\/pl\/lc\/11pllczriqvik50tyawfokd1cre.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041f\u0435\u0440\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 <a href=\"https:\/\/archive.assembly.org\/2020\" rel=\"nofollow\">Assembly ONLINE 2020<\/a> \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u00abOnline 1k intro\u00bb \u0437\u0430\u043d\u044f\u043b\u0430 \u0434\u0435\u043c\u043a\u0430 MONOSPACE. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 1021 \u0431\u0430\u0439\u0442 \u043f\u043e\u0441\u043b\u0435 \u0441\u0436\u0430\u0442\u0438\u044f <a href=\"https:\/\/www.pouet.net\/prod.php?which=87082\" rel=\"nofollow\">\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430<\/a> \u043d\u0430 JavaScript. \u0410\u0432\u0442\u043e\u0440 \u0434\u0435\u043c\u043a\u0438 \u2014 \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434\u0435\u0440 \u0438 \u0434\u0435\u043c\u043e\u0441\u0446\u0435\u043d\u0435\u0440-\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 <a href=\"http:\/\/www.p01.org\/\" rel=\"nofollow\">Mathieu &#8216;p01&#8217; Henri<\/a>.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u0434\u0435\u043c\u043a\u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u043b, \u0447\u0442\u043e \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Chromium \u0438\u043b\u0438 Webkit. \u0412 Firefox \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u0430\u0439\u0434\u0448\u043e\u0443 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443 <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1190398\" rel=\"nofollow\">1190398<\/a>, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0443\u044e \u0441 ShadowBlur. <a href=\"http:\/\/www.p01.org\/MONOSPACE\/monospace.htm\" rel=\"nofollow\">\u0421\u0441\u044b\u043b\u043a\u0430<\/a> \u043d\u0430 \u0434\u0435\u043c\u043a\u0443 \u0434\u043b\u044f Chrome\\Edge, <a href=\"http:\/\/www.p01.org\/MONOSPACE\/monospace-compatible.htm\" rel=\"nofollow\">\u0432\u0435\u0440\u0441\u0438\u044f <\/a>\u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432. <a href=\"http:\/\/www.p01.org\/MONOSPACE\/monospace.zip\" rel=\"nofollow\">\u0421\u043a\u0430\u0447\u0430\u0442\u044c<\/a> \u0434\u0435\u043c\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 \u0430\u0432\u0442\u043e\u0440\u0430.<\/p>\n<p>  \u041a\u043e\u0434 MONOSPACE \u0441\u0436\u0430\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0435\u0445\u043d\u0438\u043a\u0438 <a href=\"http:\/\/www.p01.org\/VOLTRA\/\" rel=\"nofollow\">PNG bootstrapping<\/a>. <\/p>\n<p>  Mathieu &#8216;p01&#8217; Henri \u043f\u043e\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0432 \u0434\u0435\u043c\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b 2D Canvas, \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432 ShadowBlur \u0434\u043b\u044f \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u0440\u0430\u0437\u043d\u043e\u0439 \u0433\u043b\u0443\u0431\u0438\u043d\u043e\u0439 \u0440\u0435\u0437\u043a\u043e\u0441\u0442\u0438. \u0414\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0430\u0443\u0434\u0438\u043e \u043e\u043d \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043b scriptProcessingNode, \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0435\u043c onAudioProcess \u0434\u043b\u044f \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432. \u0422\u0430\u043a\u0436\u0435 \u0432 \u0434\u0435\u043c\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0442\u0435\u0437\u0430\u0442\u043e\u0440 \u0440\u0435\u0447\u0438, \u043f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u0430\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u0432 \u0445\u043e\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0414\u0435\u043c\u043a\u0430 MONOSPACE \u043d\u0430\u0437\u0432\u0430\u043d\u0430 \u0432 \u0447\u0435\u0441\u0442\u044c \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 \u043c\u043e\u043d\u043e\u0448\u0438\u0440\u0438\u043d\u043d\u044b\u0445 \u0448\u0440\u0438\u0444\u0442\u043e\u0432.<\/p>\n<p>  \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u0442\u0440\u043e\u0432\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 JavaScript (canvas) \u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0434\u0435\u043c\u043a\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f 59 \u0431\u0430\u0439\u0442 \u043a\u043e\u0434\u0430:<\/p>\n<pre><code class=\"javascript\">&lt;canvas id=\"c\">&lt;\/canvas>&lt;script>b=c.getContext`2d`&lt;\/script><\/code><\/pre>\n<p>  \u041c\u0438\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 MONOSPACE \u0438\u043c\u0435\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 1438 \u0431\u0430\u0439\u0442:<\/p>\n<pre><code class=\"javascript\"> d=[2280,1280,1520,c.width=1920,document.body.style.font=\"0px MONOSPACE\"],g=new AudioContext,o=g.createScriptProcessor(4096,document.body.style.margin=t=n=0,1),o.connect(g.destination),o.onaudioprocess=o=>{o=o.outputBuffer.getChannelData(e=Math.sin(t\/16%1,m=Math.sin(Math.min(1,y=t\/128)*Math.PI)**.5+.1,c.height=1080,b.shadowOffsetY=32420,c.style.background=\"radial-gradient(#\"+[222,222,222,222,155,155,102,102][t\/16&amp;7]+\",black\",b.font=\"920 32px MONOSPACE\",f=[(x,y,t)=>x\/y*2-t,(x,y,t)=>(x**2+y**2)**.5-t,(x,y,t)=>x\/4^y\/4-t,(x,y,t)=>y%x-t][t\/16&amp;3],u=\"\"+[[,f,f,\" CAN YOU HEAR ME\",f,f,,\"MONOSPACE\",\"THE END\"][t\/16|0]],t>n&amp;&amp;speechSynthesis.speak(new SpeechSynthesisUtterance(u,n+=16))));for(i=0;4096>4*i;i++)g[i]=r=(f(x=16-i%32,a=16-(i\/32|0),t)\/2&amp;1)+(g[i]||0)\/2,x+=o[0]\/4+4*(1-m**.3)*Math.sin(i+t+8),a+=o[64]\/4+4*(1-m**.3)*Math.sin(i+t),h=x*Math.sin(y*2+8)+a*Math.sin(y*2),p=4096\/(m*32+4*h*Math.sin(e)+t%16),b.beginPath(f[i]=r\/p),b.arc(h*Math.sin(e+8)*p+1280,x*Math.sin(y*2)*p-a*Math.sin(y*2+8)*p-31920,p>0&amp;&amp;p\/(2+32-r*16),0,8),b.shadowBlur=o[0]**2*32+32-m*32+4+h*h\/2,b.shadowColor=\"hsl(\"+[f(x,y,t)&amp;2?t-a*8:180,(t&amp;64)*m+\"%\",(t&amp;64)*m+\"%\"],b.fill();b.shadowBlur=o[0]**2*32,b.shadowColor=\"#fee\";for(i=0;4096>i;i++)o[i]=o[i]\/2+((Math.sin(t*d[t\/[4,4,4,4,1\/4,1\/4,16,4][t\/16&amp;7]&amp;3]*Math.PI)*8+(t*d[t\/8&amp;3]\/2&amp;6)+t*d[t\/16&amp;3]\/4%6)\/64+f[i\/4|0])*m,64>i&amp;t%16*6>i&amp;&amp;b.fillText([u[i+(o[i]*2&amp;1)]],i%9*32+o[0]*16+180,(i\/9|0)*64+o[64]*16-t-31920),t+=1\/g.sampleRate} <\/code><\/pre>\n<p>  <\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/www.youtube.com\/embed\/2HN139WkcCY?rel=0&amp;showinfo=1&amp;hl=en-US\" data-style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" id=\"\" width=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>  \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u043a\u0442\u044f\u0431\u0440\u044f 2020 \u0433\u043e\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442-\u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442 HellMood \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b DESiRE <a href=\"https:\/\/habr.com\/ru\/news\/t\/522104\/\">\u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b<\/a> \u0434\u0435\u043c\u043a\u0443 \u0434\u043b\u044f MS-DOS\/FreeDos \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c Gespensterwald. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 62 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435. \u0410\u0432\u0442\u043e\u0440 \u0434\u0435\u043c\u043e \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u0445 \u043a\u043e\u0434\u0430 \u0432 3D \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0443\u0433\u0440\u044e\u043c\u044b\u0439 \u0438 \u0436\u0443\u0442\u043a\u0438\u0439 \u043b\u0435\u0441, \u043e\u043a\u043e\u043b\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043d \u0436\u0438\u0432\u0435\u0442. HellMood \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 \u0434\u0435\u043c\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0433\u0443\u0434\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043b\u0435\u0441\u0443. <\/p>\n<blockquote><p>\u0421\u043c. \u0442\u0430\u043a\u0436\u0435:<\/p>\n<ul>\n<li>\u00ab<a href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/406969\/\">\u041a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0434\u0435\u043c\u043e\u0441\u0446\u0435\u043d\u0430: \u0412\u0441\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0443\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 64 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430<\/a>\u00bb<\/li>\n<li>\u00ab<a href=\"https:\/\/habr.com\/ru\/post\/330090\/\">\u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0438\u043d\u0442\u0440\u043e \u043d\u0430 64k\u00bb<\/a>\u00bb<\/li>\n<\/ul>\n<\/blockquote>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/524116\/\"> https:\/\/habr.com\/ru\/articles\/524116\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/11\/pl\/lc\/11pllczriqvik50tyawfokd1cre.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/11\/pl\/lc\/11pllczriqvik50tyawfokd1cre.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041f\u0435\u0440\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 <a href=\"https:\/\/archive.assembly.org\/2020\" rel=\"nofollow\">Assembly ONLINE 2020<\/a> \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u00abOnline 1k intro\u00bb \u0437\u0430\u043d\u044f\u043b\u0430 \u0434\u0435\u043c\u043a\u0430 MONOSPACE. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 1021 \u0431\u0430\u0439\u0442 \u043f\u043e\u0441\u043b\u0435 \u0441\u0436\u0430\u0442\u0438\u044f <a href=\"https:\/\/www.pouet.net\/prod.php?which=87082\" rel=\"nofollow\">\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430<\/a> \u043d\u0430 JavaScript. \u0410\u0432\u0442\u043e\u0440 \u0434\u0435\u043c\u043a\u0438 \u2014 \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434\u0435\u0440 \u0438 \u0434\u0435\u043c\u043e\u0441\u0446\u0435\u043d\u0435\u0440-\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 <a href=\"http:\/\/www.p01.org\/\" rel=\"nofollow\">Mathieu &#8216;p01&#8217; Henri<\/a>.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-388671","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/388671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=388671"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/388671\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=388671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=388671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=388671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}