{"id":821,"date":"2020-09-29T11:05:34","date_gmt":"2020-09-29T10:05:34","guid":{"rendered":"http:\/\/www.igfasouza.com\/blog\/?p=821"},"modified":"2021-04-27T11:07:08","modified_gmt":"2021-04-27T10:07:08","slug":"micronaut-velocity-with-raspberry-pi","status":"publish","type":"post","link":"http:\/\/www.igfasouza.com\/blog\/micronaut-velocity-with-raspberry-pi\/","title":{"rendered":"Micronaut Velocity with Raspberry PI"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2020\/09\/raspberry_micronaut.jpg\" alt=\"\" width=\"715\" height=\"359\" class=\"alignnone size-full wp-image-822\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2020\/09\/raspberry_micronaut.jpg 715w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2020\/09\/raspberry_micronaut-300x151.jpg 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2020\/09\/raspberry_micronaut-624x313.jpg 624w\" sizes=\"auto, (max-width: 715px) 100vw, 715px\" \/><\/p>\n<p><b>How\u2019s the lad?<\/b><\/p>\n<p>This post is to show how I created a Micronaut Velocity demo with a Raspberry PI. This is another blog about Java on Raspberry PI.<\/p>\n<p>Micronaut is a JVM-based framework for building lightweight, modular applications. Developed by OCI, the same company that created Grails, Micronaut is the latest framework designed to make creating microservices quick and easy.<\/p>\n<p>One of the most exciting features of Micronaut is its compile time dependency injection mechanism. Most frameworks use reflection and proxies to perform dependency injection at runtime. Micronaut, however, builds its dependency injection data at compile time. The result is a faster application startup and smaller memory footprints.<\/p>\n<p>Although Micronaut is primarily designed around message encoding\/decoding there are occasions where it is convenient to render a view on the server-side. The views module provides support for view rendering on the server-side and does so by rendering views on the I\/O thread pool in order to avoid blocking the Netty event loop.<\/p>\n<p><a href=\"https:\/\/micronaut-projects.github.io\/micronaut-views\/latest\/guide\/\" rel=\"noopener\" target=\"_blank\">https:\/\/micronaut-projects.github.io\/micronaut-views\/latest\/guide\/<\/a><\/p>\n<p>Velocity is a Java-based template engine. It permits anyone to use a simple yet powerful template language to reference objects defined in Java code.<\/p>\n<p><a href=\"http:\/\/velocity.apache.org\/\" rel=\"noopener\" target=\"_blank\">http:\/\/velocity.apache.org\/<\/a><\/p>\n<p>You can check my blog post about sense hat <a href=\"http:\/\/www.igfasouza.com\/blog\/sense-hat\/\" rel=\"noopener\" target=\"_blank\">here<\/a><\/p>\n<h2>Idea<\/h2>\n<p>I started with the idea to do something similar with my <a href=\"http:\/\/www.igfasouza.com\/blog\/quarkus-qute-with-raspberry-pi\/\" rel=\"noopener\" target=\"_blank\">Quarkus Qute 7 segment display demo<\/a>, using Micronaut, but I pivoted a little bit. I end up with a  Micronaut Vecolcity interface that provides a way to control the 8&#215;8 Led Matrix from SenseHat.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2020\/09\/IMG-20200928-WA0001.jpg\" alt=\"\" width=\"1200\" height=\"1600\" class=\"alignnone size-full wp-image-823\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2020\/09\/IMG-20200928-WA0001.jpg 1200w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2020\/09\/IMG-20200928-WA0001-225x300.jpg 225w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2020\/09\/IMG-20200928-WA0001-768x1024.jpg 768w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2020\/09\/IMG-20200928-WA0001-624x832.jpg 624w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>I used this <a href=\"https:\/\/github.com\/cinci\/rpi-sense-hat-java\" rel=\"noopener\" target=\"_blank\">Java wrapper for Sense Hat<\/a><\/p>\n<h2>Code<\/h2>\n<p>LedController.java<\/p>\n<div class=\"codecolorer-container java blackboard\" style=\"overflow:auto;white-space:nowrap;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/><\/div><\/td><td><div class=\"java codecolorer\"><span class=\"kw1\">package<\/span> <span class=\"co2\">example.micronaut<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">java.util.HashMap<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">java.util.Map<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">javax.validation.Valid<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">io.micronaut.http.MediaType<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">io.micronaut.http.annotation.Body<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">io.micronaut.http.annotation.Consumes<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">io.micronaut.http.annotation.Controller<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">io.micronaut.http.annotation.Get<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">io.micronaut.http.annotation.Post<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">io.micronaut.views.View<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">rpi.sensehat.api.SenseHat<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">import<\/span> <span class=\"co2\">rpi.sensehat.api.dto.Color<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n@Controller<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;\/display&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<span class=\"kw1\">public<\/span> <span class=\"kw1\">class<\/span> LedController <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; SenseHat senseHat <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> SenseHat<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; @<a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+view\"><span class=\"kw3\">View<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;led&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; @Get<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;\/create&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">public<\/span> Map<span class=\"sy0\">&lt;<\/span><a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+string\"><span class=\"kw3\">String<\/span><\/a>, Object<span class=\"sy0\">&gt;<\/span> create<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; senseHat.<span class=\"me1\">ledMatrix<\/span>.<span class=\"me1\">clear<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> createModelWithBlankValues<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; @<a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+view\"><span class=\"kw3\">View<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;led&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; @Consumes<span class=\"br0\">&#40;<\/span>MediaType.<span class=\"me1\">APPLICATION_FORM_URLENCODED<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; @Post<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;\/save&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">public<\/span> Map<span class=\"sy0\">&lt;<\/span><a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+string\"><span class=\"kw3\">String<\/span><\/a>, Object<span class=\"sy0\">&gt;<\/span> save<span class=\"br0\">&#40;<\/span>@Valid @Body CommandLedSave cmd<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span>cmd <span class=\"sy0\">!=<\/span> <span class=\"kw2\">null<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span>cmd.<span class=\"me1\">getLeds<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">!=<\/span> <span class=\"kw2\">null<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"sy0\">!<\/span>cmd.<span class=\"me1\">getLeds<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">equals<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+string\"><span class=\"kw3\">String<\/span><\/a> possitions<span class=\"br0\">&#91;<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> cmd.<span class=\"me1\">getLeds<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">split<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;,&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+color\"><span class=\"kw3\">Color<\/span><\/a><span class=\"br0\">&#91;<\/span><span class=\"br0\">&#93;<\/span> pixels <span class=\"sy0\">=<\/span> createLedMatrix<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw4\">int<\/span> i <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw4\">int<\/span> x <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw4\">int<\/span> y <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">while<\/span> <span class=\"br0\">&#40;<\/span>i <span class=\"sy0\">&lt;<\/span> possitions.<span class=\"me1\">length<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+integer\"><span class=\"kw3\">Integer<\/span><\/a>.<span class=\"me1\">parseInt<\/span><span class=\"br0\">&#40;<\/span>possitions<span class=\"br0\">&#91;<\/span>i<span class=\"sy0\">++<\/span><span class=\"br0\">&#93;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+integer\"><span class=\"kw3\">Integer<\/span><\/a>.<span class=\"me1\">parseInt<\/span><span class=\"br0\">&#40;<\/span>possitions<span class=\"br0\">&#91;<\/span>i<span class=\"sy0\">++<\/span><span class=\"br0\">&#93;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span>x <span class=\"sy0\">!=<\/span> <span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x <span class=\"sy0\">=<\/span> x<span class=\"sy0\">*<\/span><span class=\"nu0\">8<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pixels<span class=\"br0\">&#91;<\/span>x<span class=\"sy0\">+<\/span>y<span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+color\"><span class=\"kw3\">Color<\/span><\/a>.<span class=\"me1\">RED<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; senseHat.<span class=\"me1\">ledMatrix<\/span>.<span class=\"me1\">setPixels<\/span><span class=\"br0\">&#40;<\/span>pixels<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><span class=\"kw1\">else<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; senseHat.<span class=\"me1\">ledMatrix<\/span>.<span class=\"me1\">clear<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">final<\/span> Map<span class=\"sy0\">&lt;<\/span><a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+string\"><span class=\"kw3\">String<\/span><\/a>, Object<span class=\"sy0\">&gt;<\/span> model <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> HashMap<span class=\"sy0\">&lt;&gt;<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; model.<span class=\"me1\">put<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;leds&quot;<\/span>, cmd.<span class=\"me1\">getLeds<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> model<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">private<\/span> Map<span class=\"sy0\">&lt;<\/span><a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+string\"><span class=\"kw3\">String<\/span><\/a>, Object<span class=\"sy0\">&gt;<\/span> createModelWithBlankValues<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">final<\/span> Map<span class=\"sy0\">&lt;<\/span><a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+string\"><span class=\"kw3\">String<\/span><\/a>, Object<span class=\"sy0\">&gt;<\/span> model <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> HashMap<span class=\"sy0\">&lt;&gt;<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; model.<span class=\"me1\">put<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;title&quot;<\/span>, <span class=\"st0\">&quot;&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> model<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; <span class=\"kw1\">private<\/span> <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+color\"><span class=\"kw3\">Color<\/span><\/a><span class=\"br0\">&#91;<\/span><span class=\"br0\">&#93;<\/span> createLedMatrix<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+color\"><span class=\"kw3\">Color<\/span><\/a> off <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+color\"><span class=\"kw3\">Color<\/span><\/a>.<span class=\"me1\">of<\/span><span class=\"br0\">&#40;<\/span><span class=\"nu0\">0<\/span>, <span class=\"nu0\">0<\/span>, <span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+color\"><span class=\"kw3\">Color<\/span><\/a><span class=\"br0\">&#91;<\/span><span class=\"br0\">&#93;<\/span> pixels <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+color\"><span class=\"kw3\">Color<\/span><\/a><span class=\"br0\">&#91;<\/span><span class=\"nu0\">64<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">for<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw4\">int<\/span> i <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span> i <span class=\"sy0\">&lt;<\/span> pixels.<span class=\"me1\">length<\/span><span class=\"sy0\">;<\/span> i<span class=\"sy0\">++<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pixels<span class=\"br0\">&#91;<\/span>i<span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> off<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> pixels<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>led.vm<\/p>\n<div class=\"codecolorer-container html4strict blackboard\" style=\"overflow:auto;white-space:nowrap;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/>93<br \/>94<br \/>95<br \/>96<br \/>97<br \/>98<br \/>99<br \/>100<br \/>101<br \/>102<br \/>103<br \/>104<br \/>105<br \/>106<br \/>107<br \/>108<br \/>109<br \/>110<br \/>111<br \/>112<br \/>113<br \/>114<br \/>115<br \/>116<br \/>117<br \/>118<br \/>119<br \/>120<br \/>121<br \/>122<br \/>123<br \/>124<br \/>125<br \/>126<br \/>127<br \/>128<br \/>129<br \/>130<br \/>131<br \/>132<br \/>133<br \/>134<br \/><\/div><\/td><td><div class=\"html4strict codecolorer\"><span class=\"sc0\">&lt;!DOCTYPE html&gt;<\/span><br \/>\n<span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/html.html\"><span class=\"kw2\">html<\/span><\/a>&gt;<\/span><br \/>\n<span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/head.html\"><span class=\"kw2\">head<\/span><\/a>&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/meta.html\"><span class=\"kw2\">meta<\/span><\/a> <span class=\"kw3\">charset<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;UTF-8&quot;<\/span>&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/title.html\"><span class=\"kw2\">title<\/span><\/a>&gt;<\/span>Micronaut Velocity Sensehat<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/title.html\"><span class=\"kw2\">title<\/span><\/a>&gt;<\/span><br \/>\n<br \/>\n&nbsp;<span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/style.html\"><span class=\"kw2\">style<\/span><\/a>&gt;<\/span><br \/>\n&nbsp; &nbsp; body {<br \/>\n&nbsp; background-color: #888889;<br \/>\n&nbsp; color: white;<br \/>\n&nbsp; font-family: sans-serif;<br \/>\n}<br \/>\n<br \/>\nh1 {<br \/>\n&nbsp; text-align: center;<br \/>\n&nbsp; font-size: 3em;<br \/>\n}<br \/>\n<br \/>\n.base {<br \/>\n&nbsp; display: inline-block;<br \/>\n&nbsp; border: 10px groove gray; <br \/>\n&nbsp; border-right: 10px ridge gray;<br \/>\n&nbsp; border-bottom: 10px ridge gray;<br \/>\n&nbsp; padding: 10px;<br \/>\n&nbsp; background-color: #BBBBBB;<br \/>\n&nbsp; position: absolute;<br \/>\n&nbsp; text-align: center;<br \/>\n}<br \/>\n<br \/>\n.matrix {<br \/>\n&nbsp; width: 250px;<br \/>\n&nbsp; height: 240px;<br \/>\n&nbsp; background-color: black;<br \/>\n&nbsp; border: 5px ridge gray;<br \/>\n&nbsp; border-bottom: 5px groove gray;<br \/>\n&nbsp; border-left: 5px groove gray;<br \/>\n}<br \/>\n<br \/>\n.led {<br \/>\n&nbsp; cursor:pointer;<br \/>\n&nbsp; display: inline-block;<br \/>\n&nbsp; margin: 5px;<br \/>\n&nbsp; margin-bottom: 0px;<br \/>\n&nbsp; width: 20px;<br \/>\n&nbsp; height: 20px;<br \/>\n&nbsp; border-radius: 10px;<br \/>\n&nbsp; background-color: red;<br \/>\n&nbsp; -webkit-box-shadow: 0px 0px 15px 5px rgba(255, 0, 0, .75);<br \/>\n&nbsp; -moz-box-shadow: 0px 0px 15px 5px rgba(255, 0, 0, .75);<br \/>\n&nbsp; box-shadow: 0px 0px 15px 5px rgba(255, 0, 0, .75);<br \/>\n}<br \/>\n<br \/>\n.off{<br \/>\n&nbsp; background-color: #222222;<br \/>\n&nbsp; &nbsp;-webkit-box-shadow: 0px 0px 0px 0px rgba(255, 255, 190, .75);<br \/>\n&nbsp; -moz-box-shadow: 0px 0px 0px 0px rgba(255, 255, 190, .75);<br \/>\n&nbsp; box-shadow: 0px 0px 0px 0px rgba(255, 255, 190, .75);<br \/>\n}<br \/>\n&nbsp; <span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/style.html\"><span class=\"kw2\">style<\/span><\/a>&gt;<\/span><br \/>\n<br \/>\n<span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/script.html\"><span class=\"kw2\">script<\/span><\/a>&gt;<\/span><br \/>\nfunction newLine(mat){<br \/>\n&nbsp; var matrix = document.getElementById(&quot;matrix&quot;);<br \/>\n&nbsp; var line = new Array();<br \/>\n&nbsp; for (var i = 0; i <span class=\"sc2\">&lt; <span class=\"nu0\">8<\/span>; i++<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;var led <span class=\"sy0\">=<\/span> document.createElement<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;div&quot;<\/span><span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;led.<span class=\"kw3\">onclick<\/span> <span class=\"sy0\">=<\/span> function<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>onOff<span class=\"br0\">&#40;<\/span>this, mat<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#125;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;led.className <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;led off&quot;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;matrix.appendChild<span class=\"br0\">&#40;<\/span>led<span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;line<span class=\"br0\">&#91;<\/span>i<span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> led;<\/span><br \/>\n<span class=\"sc2\"> &nbsp;<span class=\"br0\">&#125;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp;return line;<\/span><br \/>\n<span class=\"sc2\"><span class=\"br0\">&#125;<\/span><\/span><br \/>\n<br \/>\n<span class=\"sc2\">function <span class=\"kw3\">start<\/span><span class=\"br0\">&#40;<\/span>mat<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp;<span class=\"kw3\">for<\/span> <span class=\"br0\">&#40;<\/span>var i <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span>; i &lt; <span class=\"nu0\">8<\/span>; i++<span class=\"br0\">&#41;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;mat<span class=\"br0\">&#91;<\/span>i<span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> newLine<span class=\"br0\">&#40;<\/span>mat<span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp;return mat;<\/span><br \/>\n<span class=\"sc2\"><span class=\"br0\">&#125;<\/span><\/span><br \/>\n<br \/>\n<span class=\"sc2\">function onOff <span class=\"br0\">&#40;<\/span>led, mat<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp;if <span class=\"br0\">&#40;<\/span>led.className <span class=\"sy0\">==<\/span> <span class=\"st0\">&quot;led off&quot;<\/span><span class=\"br0\">&#41;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;led.className <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;led&quot;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp;else <\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;led.className <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;led off&quot;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;<\/span><br \/>\n<span class=\"sc2\"> &nbsp;getCoords<span class=\"br0\">&#40;<\/span>mat<span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp;document.getElementById<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;form_display&quot;<\/span><span class=\"br0\">&#41;<\/span>.submit<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\"><span class=\"br0\">&#125;<\/span><\/span><br \/>\n<br \/>\n<span class=\"sc2\">function getCoords <span class=\"br0\">&#40;<\/span>mat<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp;var <span class=\"kw3\">coords<\/span> <span class=\"sy0\">=<\/span> new Array<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>; <\/span><br \/>\n<span class=\"sc2\"> &nbsp;<span class=\"kw3\">for<\/span> <span class=\"br0\">&#40;<\/span> var i <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span>; i &lt; mat.length; i++<span class=\"br0\">&#41;<\/span> <\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;<span class=\"kw3\">for<\/span> <span class=\"br0\">&#40;<\/span> var j <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span>; j &lt; mat<span class=\"br0\">&#91;<\/span>i<span class=\"br0\">&#93;<\/span>.length; j++<span class=\"br0\">&#41;<\/span> <\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp; &nbsp;if <span class=\"br0\">&#40;<\/span>mat<span class=\"br0\">&#91;<\/span>i<span class=\"br0\">&#93;<\/span><span class=\"br0\">&#91;<\/span>j<span class=\"br0\">&#93;<\/span>.className <span class=\"sy0\">==<\/span> <span class=\"st0\">&quot;led&quot;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw3\">coords<\/span>.push<span class=\"br0\">&#40;<\/span>i<span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw3\">coords<\/span>.push<span class=\"br0\">&#40;<\/span>j<span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#125;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp;document.getElementById<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;leds&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"kw3\">value<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw3\">coords<\/span>;<\/span><br \/>\n<span class=\"sc2\"><span class=\"br0\">&#125;<\/span><\/span><br \/>\n<br \/>\n<span class=\"sc2\">function write <span class=\"br0\">&#40;<\/span>mat,arr<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp;var i <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp;while <span class=\"br0\">&#40;<\/span>i &lt; arr.length<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><\/span><br \/>\n<span class=\"sc2\"> &nbsp; &nbsp;mat<span class=\"br0\">&#91;<\/span>arr<span class=\"br0\">&#91;<\/span>i++<span class=\"br0\">&#93;<\/span><span class=\"br0\">&#93;<\/span><span class=\"br0\">&#91;<\/span>arr<span class=\"br0\">&#91;<\/span>i++<span class=\"br0\">&#93;<\/span><span class=\"br0\">&#93;<\/span>.className <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;led&quot;<\/span>;<\/span><br \/>\n<span class=\"sc2\"> &nbsp;<span class=\"br0\">&#125;<\/span><\/span><br \/>\n<span class=\"sc2\"><span class=\"br0\">&#125;<\/span><\/span><br \/>\n<br \/>\n<span class=\"sc2\">window.<span class=\"kw3\">onload<\/span> <span class=\"sy0\">=<\/span> function<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><\/span><br \/>\n<span class=\"sc2\">&nbsp; &nbsp; var mat <span class=\"sy0\">=<\/span> new Array<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\">&nbsp; &nbsp; var mat_final <span class=\"sy0\">=<\/span> <span class=\"kw3\">start<\/span><span class=\"br0\">&#40;<\/span>mat<span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\">&nbsp; &nbsp; <\/span><br \/>\n<span class=\"sc2\">&nbsp; &nbsp; var leds <span class=\"sy0\">=<\/span> document.getElementById<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;leds&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"kw3\">value<\/span>;<\/span><br \/>\n<span class=\"sc2\">&nbsp; &nbsp; if <span class=\"br0\">&#40;<\/span>typeof leds !<span class=\"sy0\">==<\/span> <span class=\"st0\">'undefined'<\/span> &amp;&amp; leds<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><\/span><br \/>\n<span class=\"sc2\">&nbsp; &nbsp; &nbsp; &nbsp; write<span class=\"br0\">&#40;<\/span>mat_final,leds.split<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;,&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span>;<\/span><br \/>\n<span class=\"sc2\">&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><\/span><br \/>\n<span class=\"sc2\"><span class=\"br0\">&#125;<\/span><\/span><br \/>\n<br \/>\n<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/script.html\"><span class=\"kw2\">script<\/span><\/a>&gt;<\/span><br \/>\n<br \/>\n<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/head.html\"><span class=\"kw2\">head<\/span><\/a>&gt;<\/span><br \/>\n<span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/body.html\"><span class=\"kw2\">body<\/span><\/a>&gt;<\/span><br \/>\n<span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/h1.html\"><span class=\"kw2\">h1<\/span><\/a>&gt;<\/span>Led Display<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/h1.html\"><span class=\"kw2\">h1<\/span><\/a>&gt;<\/span><br \/>\n<span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/form.html\"><span class=\"kw2\">form<\/span><\/a> <span class=\"kw3\">action<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;\/display\/save&quot;<\/span> <span class=\"kw3\">method<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;post&quot;<\/span> <span class=\"kw3\">id<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;form_display&quot;<\/span>&gt;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/input.html\"><span class=\"kw2\">input<\/span><\/a> <span class=\"kw3\">type<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;hidden&quot;<\/span> <span class=\"kw3\">id<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;leds&quot;<\/span> <span class=\"kw3\">name<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;leds&quot;<\/span> <span class=\"kw3\">value<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;$leds&quot;<\/span> <span class=\"sy0\">\/<\/span>&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a> <span class=\"kw3\">id<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;base&quot;<\/span> <span class=\"kw3\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;base&quot;<\/span>&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a> <span class=\"kw3\">id<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;matrix&quot;<\/span> <span class=\"kw3\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;matrix&quot;<\/span>&gt;&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a>&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/div.html\"><span class=\"kw2\">div<\/span><\/a>&gt;<\/span><br \/>\n&nbsp; &nbsp; <br \/>\n<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/form.html\"><span class=\"kw2\">form<\/span><\/a>&gt;<\/span><br \/>\n<br \/>\n<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/body.html\"><span class=\"kw2\">body<\/span><\/a>&gt;<\/span><br \/>\n<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/html.html\"><span class=\"kw2\">html<\/span><\/a>&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/xv6irduSG3Q\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>Disclaimer \u2013 I got the CSS from <a href=\"https:\/\/codepen.io\/djan\/pen\/FIkxC\" rel=\"noopener\" target=\"_blank\">here<\/a> <\/p>\n<p>You can get the full code on my <a href=\"https:\/\/github.com\/igfasouza\/micronaut-velocity-8x8-led-matrix-sense-hat\" rel=\"noopener\" target=\"_blank\">GitHub<\/a>.<\/p>\n<h2>Links<\/h2>\n<p><a href=\"https:\/\/micronaut.io\/\" rel=\"noopener\" target=\"_blank\">https:\/\/micronaut.io\/<\/a><\/p>\n<p><a href=\"https:\/\/micronaut-projects.github.io\/micronaut-views\/latest\/guide\/\" rel=\"noopener\" target=\"_blank\">https:\/\/micronaut-projects.github.io\/micronaut-views\/latest\/guide\/<\/a><\/p>\n<p><a href=\"http:\/\/velocity.apache.org\/\" rel=\"noopener\" target=\"_blank\">http:\/\/velocity.apache.org\/<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/cinci\/rpi-sense-hat-java\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/cinci\/rpi-sense-hat-java<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How\u2019s the lad? This post is to show how I created a Micronaut Velocity demo with a Raspberry PI. This is another blog about Java on Raspberry PI. Micronaut is a JVM-based framework for building lightweight, modular applications. Developed by&hellip; <a href=\"http:\/\/www.igfasouza.com\/blog\/micronaut-velocity-with-raspberry-pi\/\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":822,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,24],"tags":[17,20,13],"class_list":["post-821","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","category-raspberry-pi","tag-java","tag-micronaut","tag-raspberry-pi"],"_links":{"self":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts\/821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/comments?post=821"}],"version-history":[{"count":4,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts\/821\/revisions"}],"predecessor-version":[{"id":1213,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts\/821\/revisions\/1213"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/media\/822"}],"wp:attachment":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/media?parent=821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/categories?post=821"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/tags?post=821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}