<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Vuruna]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://blog.vuruna.com/</link><image><url>https://blog.vuruna.com/favicon.png</url><title>Vuruna</title><link>https://blog.vuruna.com/</link></image><generator>Ghost 5.7</generator><lastBuildDate>Fri, 03 Apr 2026 22:15:06 GMT</lastBuildDate><atom:link href="https://blog.vuruna.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Joe]]></title><description><![CDATA[<blockquote>There&apos;s no wrong way to do right and there&apos;s no right way to do &#xA0;wrong.</blockquote><figure class="kg-card kg-image-card kg-width-full"><img src="https://blog.vuruna.com/content/images/2019/09/download-4.png" class="kg-image" alt loading="lazy"></figure>]]></description><link>https://blog.vuruna.com/joe/</link><guid isPermaLink="false">63d24d215346c800014afd28</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Fri, 27 Sep 2019 18:16:35 GMT</pubDate><media:content url="https://blog.vuruna.com/content/images/2019/09/download.jpg" medium="image"/><content:encoded><![CDATA[<blockquote>There&apos;s no wrong way to do right and there&apos;s no right way to do &#xA0;wrong.</blockquote><figure class="kg-card kg-image-card kg-width-full"><img src="https://blog.vuruna.com/content/images/2019/09/download-4.png" class="kg-image" alt="Joe" loading="lazy"></figure>]]></content:encoded></item><item><title><![CDATA[Fractals]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://aberke.github.io/fractals/">https://aberke.github.io/fractals/</a><br>
<a href="https://andreasrohner.at/posts/Web%20Development/JavaScript/Some-simple-animated-fractals-using-HTML5-Canvas/">https://andreasrohner.at/posts/Web Development/JavaScript/Some-simple-animated-fractals-using-HTML5-Canvas/</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/fractals/</link><guid isPermaLink="false">63d24d215346c800014afd27</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Wed, 15 Aug 2018 11:45:20 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://aberke.github.io/fractals/">https://aberke.github.io/fractals/</a><br>
<a href="https://andreasrohner.at/posts/Web%20Development/JavaScript/Some-simple-animated-fractals-using-HTML5-Canvas/">https://andreasrohner.at/posts/Web Development/JavaScript/Some-simple-animated-fractals-using-HTML5-Canvas/</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[JS Fuzzy Search Fuse.js]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://fusejs.io/">http://fusejs.io/</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/js-fuzzy-search-fuse-js/</link><guid isPermaLink="false">63d24d215346c800014afd26</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Tue, 06 Mar 2018 10:20:40 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://fusejs.io/">http://fusejs.io/</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Securing wordpress sites]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://sucuri.net/guides/wordpress-security">https://sucuri.net/guides/wordpress-security</a><br>
<a href="https://sucuri.net/guides/how-to-clean-hacked-wordpress">https://sucuri.net/guides/how-to-clean-hacked-wordpress</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/securing-wordpress-sites/</link><guid isPermaLink="false">63d24d215346c800014afd25</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Tue, 30 Jan 2018 17:01:41 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://sucuri.net/guides/wordpress-security">https://sucuri.net/guides/wordpress-security</a><br>
<a href="https://sucuri.net/guides/how-to-clean-hacked-wordpress">https://sucuri.net/guides/how-to-clean-hacked-wordpress</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[php fpm]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://support.rackspace.com/how-to/install-nginx-and-php-fpm-running-on-unix-file-sockets/">https://support.rackspace.com/how-to/install-nginx-and-php-fpm-running-on-unix-file-sockets/</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/php-fpm/</link><guid isPermaLink="false">63d24d215346c800014afd24</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Wed, 29 Nov 2017 08:07:54 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://support.rackspace.com/how-to/install-nginx-and-php-fpm-running-on-unix-file-sockets/">https://support.rackspace.com/how-to/install-nginx-and-php-fpm-running-on-unix-file-sockets/</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[git commit message style]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://karma-runner.github.io/0.10/dev/git-commit-msg.html">http://karma-runner.github.io/0.10/dev/git-commit-msg.html</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/git-commit-message-style/</link><guid isPermaLink="false">63d24d215346c800014afd23</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Fri, 24 Nov 2017 16:57:46 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://karma-runner.github.io/0.10/dev/git-commit-msg.html">http://karma-runner.github.io/0.10/dev/git-commit-msg.html</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Git clear reflog]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><code>$ git reflog expire --expire=1.minute refs/heads/master</code></p>
<p><code>$ git fsck --unreachable      # now I see those tarball blobs!</code></p>
<p><code>$ git prune                   # hasta la vista, baby</code></p>
<p><code># git gc                      # cleanup and repack the repo</code></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/git-clear-reflog/</link><guid isPermaLink="false">63d24d215346c800014afd22</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Sun, 19 Nov 2017 11:58:15 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><code>$ git reflog expire --expire=1.minute refs/heads/master</code></p>
<p><code>$ git fsck --unreachable      # now I see those tarball blobs!</code></p>
<p><code>$ git prune                   # hasta la vista, baby</code></p>
<p><code># git gc                      # cleanup and repack the repo</code></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[http://www.newartisans.com]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://www.newartisans.com">http://www.newartisans.com</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/http-www-newartisans-com/</link><guid isPermaLink="false">63d24d215346c800014afd21</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Sun, 19 Nov 2017 11:55:28 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://www.newartisans.com">http://www.newartisans.com</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[The Xerox Alto Struts Its Stuff on Its 40th Birthday]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Doug Brotz does a live demonstration on the restored Xerox Alto.</p>
<p>The Xerox Alto, widely recognized as the first modern personal computer, pioneered just about every basic concept we are familiar with in computers today. These include windows, bit-mapped computer displays, the whole idea of WYSIWIG interfaces, the cut/paste/</p>]]></description><link>https://blog.vuruna.com/the-xerox-alto-struts-its-stuff-on-its-40th-birthday/</link><guid isPermaLink="false">63d24d215346c800014afd20</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Sat, 18 Nov 2017 12:45:14 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Doug Brotz does a live demonstration on the restored Xerox Alto.</p>
<p>The Xerox Alto, widely recognized as the first modern personal computer, pioneered just about every basic concept we are familiar with in computers today. These include windows, bit-mapped computer displays, the whole idea of WYSIWIG interfaces, the cut/paste/copy tools in word processing programs, and pop-up menus. Most of this vision of the &#x201C;office of the future&#x201D; was first unveiled at a meeting of Xerox executives held on 10 Nov 1977, which was 40 years ago last week.</p>
<p><a href="https://www.spectrum.ieee.org/view-from-the-valley/tech-history/silicon-revolution/the-xerox-alto-struts-its-stuff-on-its-40th-birthday">https://www.spectrum.ieee.org/view-from-the-valley/tech-history/silicon-revolution/the-xerox-alto-struts-its-stuff-on-its-40th-birthday</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Blast.js]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://velocityjs.org/blast/">http://velocityjs.org/blast/</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/blast-js/</link><guid isPermaLink="false">63d24d215346c800014afd1f</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Mon, 30 Oct 2017 22:52:27 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://velocityjs.org/blast/">http://velocityjs.org/blast/</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Drupal 8 View Rendering]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><code>$output = NULL; $view = Views::getView(&apos;commerce_cart_block&apos;); if ($view != NULL) {   $args = [     $order-&gt;get(&apos;order_id&apos;)-&gt;getValue()[0][&apos;value&apos;],   ];   $view-&gt;setArguments($args);   $view-&gt;setDisplay(&apos;default&apos;);   $view-&gt;preExecute();   if ($view-&gt;execute()) {     $render_array = $view-&gt;buildRenderable(</code></p>]]></description><link>https://blog.vuruna.com/drupal-8-view-rendering/</link><guid isPermaLink="false">63d24d215346c800014afd1e</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Mon, 16 Oct 2017 08:54:09 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><code>$output = NULL; $view = Views::getView(&apos;commerce_cart_block&apos;); if ($view != NULL) {   $args = [     $order-&gt;get(&apos;order_id&apos;)-&gt;getValue()[0][&apos;value&apos;],   ];   $view-&gt;setArguments($args);   $view-&gt;setDisplay(&apos;default&apos;);   $view-&gt;preExecute();   if ($view-&gt;execute()) {     $render_array = $view-&gt;buildRenderable(&apos;default&apos;, $args);     $render_array[&apos;#theme&apos;] = &apos;torrente&apos;;     $output = $this-&gt;renderer-&gt;render($render_array);   } } return $output;</code></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Drupal 8 Block rendering]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>There are two types of blocks, and the method for rendering the two is a bit different:</p>
<h2 id="contentblocks">Content Blocks</h2>
<p>Content blocks are blocks that you create in the interface. They are much like nodes configurable data structures, with fields etc. If you want to render one of these, you can</p>]]></description><link>https://blog.vuruna.com/drupal-8-block-rendering/</link><guid isPermaLink="false">63d24d215346c800014afd1d</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Mon, 16 Oct 2017 08:52:12 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>There are two types of blocks, and the method for rendering the two is a bit different:</p>
<h2 id="contentblocks">Content Blocks</h2>
<p>Content blocks are blocks that you create in the interface. They are much like nodes configurable data structures, with fields etc. If you want to render one of these, you can do what you would normally do with entities, load them and render them with the view builder:</p>
<p><code>$bid = ??? // Get the block id through config, SQL or some other means $block = \Drupal\block_content\Entity\BlockContent::load($bid); $render = \Drupal::entityTypeManager()-&gt;   getViewBuilder(&apos;block_content&apos;)-&gt;view($block); return $render;</code></p>
<h2 id="pluginblocks">Plugin blocks</h2>
<p>Blocks can also be plugin, defined in various modules. An example could be the breadcrumb block. If you want to render these, you will need to use the block plugin manager.</p>
<p><code>$block_manager = \Drupal::service(&apos;plugin.manager.block&apos;); // You can hard code configuration or you load from settings. $config = []; $plugin_block = $block_manager-&gt;createInstance(&apos;system_breadcrumb_block&apos;, $config); // Some blocks might implement access check. $access_result = $plugin_block-&gt;access(\Drupal::currentUser()); // Return empty render array if user doesn&apos;t have access. // $access_result can be boolean or an AccessResult class if (is_object($access_result) &amp;&amp; $access_result-&gt;isForbidden() || is_bool($access_result) &amp;&amp; !$access_result) {   // You might need to add some cache tags/contexts.   return []; } $render = $plugin_block-&gt;build(); // In some cases, you need to add the cache tags/context depending on // the block implemention. As it&apos;s possible to add the cache tags and // contexts in the render method and in ::getCacheTags and  // ::getCacheContexts methods. return $render;</code></p>
<h2 id="configentities">Config entities</h2>
<p>Shared for the two types are blocks, are that once you insert them into a region, you will create a config entity that has all of the settings for the block. In some cases it will be more useful handling config entities. Since the same block can be place in multiple regions with and with different configuration, it can get more tricky using the block config entities. The nice thing is that you might want to render a block with specific configuration, the bad thing is that config ids can change by messing with the interface, so the code might end up not working after letting users use the block interface.</p>
<p><code>$block = \Drupal\block\Entity\Block::load(&apos;config.id&apos;); $render = \Drupal::entityTypeManager()   -&gt;getViewBuilder(&apos;block&apos;)   -&gt;view($block); return $render;</code></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[http://jasperproject.github.io]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://jasperproject.github.io">http://jasperproject.github.io</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/http-jasperproject-github-io/</link><guid isPermaLink="false">63d24d215346c800014afd1c</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Sun, 08 Oct 2017 17:51:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://jasperproject.github.io">http://jasperproject.github.io</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[https://tedium.co/]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://tedium.co/">https://tedium.co/</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/https-tedium-co/</link><guid isPermaLink="false">63d24d215346c800014afd1b</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Sun, 08 Oct 2017 17:35:02 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://tedium.co/">https://tedium.co/</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[http://perfectionkills.com/]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://perfectionkills.com/">http://perfectionkills.com/</a></p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.vuruna.com/http-perfectionkills-com/</link><guid isPermaLink="false">63d24d215346c800014afd1a</guid><dc:creator><![CDATA[Vince Juric]]></dc:creator><pubDate>Fri, 06 Oct 2017 19:10:35 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><a href="http://perfectionkills.com/">http://perfectionkills.com/</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>