<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Emurtzle</title>
    <description>The latest articles on DEV Community by Emurtzle (@emurtzle).</description>
    <link>https://dev.to/emurtzle</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F139477%2F173ff5a4-6c58-4b57-af83-44461e490968.png</url>
      <title>DEV Community: Emurtzle</title>
      <link>https://dev.to/emurtzle</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emurtzle"/>
    <language>en</language>
    <item>
      <title>Realtime Audio Visualizer Controller Part 2</title>
      <dc:creator>Emurtzle</dc:creator>
      <pubDate>Tue, 13 Aug 2019 01:13:01 +0000</pubDate>
      <link>https://dev.to/emurtzle/realtime-audio-visualizer-controller-part-1-24h7</link>
      <guid>https://dev.to/emurtzle/realtime-audio-visualizer-controller-part-1-24h7</guid>
      <description>&lt;p&gt;Part two of making my real time audio visualizer program + controller. This week I got midi input and spectrum analysis working in Unreal. I included some pictures of the blueprint setup and will be posting a video demonstration later this week once I have a better demo made.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imgur.com/a/vS68Ibl"&gt;https://imgur.com/a/vS68Ibl&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Realtime Audio Visualizer Controller Part 1</title>
      <dc:creator>Emurtzle</dc:creator>
      <pubDate>Tue, 06 Aug 2019 00:47:38 +0000</pubDate>
      <link>https://dev.to/emurtzle/realtime-audio-visualizer-controller-part-1-p8b</link>
      <guid>https://dev.to/emurtzle/realtime-audio-visualizer-controller-part-1-p8b</guid>
      <description>&lt;p&gt;I started a project and want to document it here as I build it. The project is a real-time audio-visualizer with a corresponding controller. The program is going to be built with Unreal Engine 4 and the controller is going to be custom-built by me with whatever I can find offhand (I.E. don't have much to anything to spend on this project). &lt;/p&gt;

&lt;p&gt;Step one is salvaging some parts. I have two old mixers that may or may not be working, between the both of them, there are over 3 dozen knobs, that will be perfect. &lt;/p&gt;

&lt;p&gt;In this Imgur album, you can view some pictures I took of the process. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://imgur.com/a/H9jtMJk"&gt;https://imgur.com/a/H9jtMJk&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Deep Fakes in Politics</title>
      <dc:creator>Emurtzle</dc:creator>
      <pubDate>Mon, 29 Jul 2019 21:56:30 +0000</pubDate>
      <link>https://dev.to/emurtzle/deep-fakes-in-politics-117n</link>
      <guid>https://dev.to/emurtzle/deep-fakes-in-politics-117n</guid>
      <description>&lt;p&gt;Unfortunately in todays day and age, regardless of where you are on the political spectrum, fake news and propaganda have become a common place, especially as social media use is at an all time high. There is a war of mis-information and mis-representation going on online. Once it’s impossible to tell the difference between deep fake footage and real footage, what’s stopping people from using that to spread misinformation?&lt;br&gt;
    Even if a deep faked video is proven to be false at a later date, the damage is already done, the victim will have to spend time and energy defending and proving themselves innocent that could’ve gone into something more productive. And there will be a minority that will believe it even if the video is proven fake.  You already see this tactic all the time in politics, not every claim from one politician about another is completely true. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why We Should Embrace the Development of Deep Fakes</title>
      <dc:creator>Emurtzle</dc:creator>
      <pubDate>Mon, 22 Jul 2019 21:23:59 +0000</pubDate>
      <link>https://dev.to/emurtzle/why-we-should-embrace-the-development-of-deep-fakes-2gkh</link>
      <guid>https://dev.to/emurtzle/why-we-should-embrace-the-development-of-deep-fakes-2gkh</guid>
      <description>&lt;p&gt;We should embrace the development of deep fakes because not doing so will be much worse. In the near future, deep fakes will be able to replicate someone near-perfectly enough that the average person will not be able to tell the difference between the real person and the deep faked person. While convincing CGI humans have been created by large animation studios for high budget films, deep fakes open up that power for users with a small budget and thus opening it up for abuse. &lt;br&gt;
Potential abuse can come in all kinds of different forms, from propaganda and fake news to altering or creating footage of a crime and also creating or editing porn with someone who didn’t consent to. &lt;br&gt;
    To combat this we need to let developers continue making deep fakes because if we push them underground, we won’t know enough about them to fight them.&lt;/p&gt;

&lt;p&gt;In the next few blog posts these next few weeks I’ll be exploring different aspects of deep fakes and their applications, good or bad, so stay tuned. &lt;/p&gt;

</description>
      <category>deepfake</category>
    </item>
    <item>
      <title>Synergistically Speaking</title>
      <dc:creator>Emurtzle</dc:creator>
      <pubDate>Tue, 16 Apr 2019 22:15:27 +0000</pubDate>
      <link>https://dev.to/emurtzle/synergistically-speaking-34bp</link>
      <guid>https://dev.to/emurtzle/synergistically-speaking-34bp</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;I have written this blog post on the process of synergistially orchestrating technically sound sprints in a client-focused architecture environment.The adoption of progressively disintermediate cloud centric channels means that while there are appropriately incept frictionless potentialities, you can excel in efficiently empowering team driven deliverables in a corporate, cross functional experience.&lt;/p&gt;

&lt;p&gt;This leads to the adoption of blueprints that enable auto scaling to match the user's search engine optimization in a given promotional field. These type of technologies are vital for conceptualizing adaptive core competencies and convergences in an always online world. Allowing you to make the correct choices to bring your technology to the forefront.&lt;/p&gt;

&lt;h1&gt;
  
  
  The Usage of Blockchain Technologies For The Decentralization Of A Company's Core Value Network To Improve Shareholder Retention
&lt;/h1&gt;

&lt;p&gt;We all know how important blockchain developments are in this day and age, they successfully cultivate collaboratively elaborate ROIs on leading edge virtualizations in the market. This lets us &lt;em&gt;"promote proactive technology rather than effective information"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;However, as we can see in these two diagrams, that is usually not sufficient for our needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffz65927u5wkcreta5d87.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffz65927u5wkcreta5d87.jpg" alt="Diagram 1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fazq9dr6vucy8bws9a3ji.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fazq9dr6vucy8bws9a3ji.jpg" alt="Diagram 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  So What Can We Do To Fix This And Set Ourselves Up For Success
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Stop giving global access to high quality scrums.&lt;/li&gt;
&lt;li&gt;Enact a first in first out service to simplify right-shore market shares.&lt;/li&gt;
&lt;li&gt;Redefine and refactor core values to disseminate backend methodologies. &lt;strong&gt;VERY IMPORTANT!!!&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Your programmers may not like this but it is vital to the success of your corporate validation. You might as well hire ostriches with keyboards tied around their necks!&lt;/li&gt;
&lt;li&gt;Many companies fail at this but if you succeed, it leads to seamless integration with niche markets, leading to investments in empowered equity, making everyone happy.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Putting This Into Practice
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;When preparing to deploy, be sure to capitalize on the object-orientated version of SQLAlchemy. That's how yoiu maximize the potential of object-relational mapping in your program, without it you have to start thinking about TensorFlow, which is highly relevant in thee context of React. Without that you might end up having to use MongoDB to interact with your machine learning.&lt;/li&gt;
&lt;li&gt;There are many unspoken benefits of object relational mapping. Your product becomes more open-source overall, more lightweight and ca n scale to fit your clients needs. Letting you leverage existing technologies into your orchestrated incubator.&lt;/li&gt;
&lt;li&gt;Pay attention to these diagrams here, it shows the flow your program should have:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fd38oaejqnfur00q04ygj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fd38oaejqnfur00q04ygj.jpg" alt="Diagram 3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Here, we utilized the Google Cloud platform to enable a flow sate&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fx332fkrxdg6u7qbotx50.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fx332fkrxdg6u7qbotx50.png" alt="Diagram 4"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Useful Free Programs for Planning and Productivity for Developers</title>
      <dc:creator>Emurtzle</dc:creator>
      <pubDate>Mon, 01 Apr 2019 22:05:16 +0000</pubDate>
      <link>https://dev.to/emurtzle/useful-free-programs-for-planning-and-productivity-for-developers-5fcm</link>
      <guid>https://dev.to/emurtzle/useful-free-programs-for-planning-and-productivity-for-developers-5fcm</guid>
      <description>&lt;p&gt;These are a list of programs and websites to aid in the development of web apps or any type of programming in general. I try to avoid the obvious ones (I.E. VSCode, GitHub, Etc...) and find some interesting ones!!!&lt;/p&gt;

&lt;p&gt;In no particular order...&lt;/p&gt;

&lt;h2&gt;
  
  
  Planning/Productivity
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.figma.com/" rel="noopener noreferrer"&gt;Figma&lt;/a&gt; - A way to design a website also has collaborative capabilities.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Flyeiil9b9qe8sv47l7se.png" alt="Figma Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bundlephobia.com/" rel="noopener noreferrer"&gt;Bundle Phobia&lt;/a&gt; - Computes the size and load time of for your bundles, can either search or upload a JSON file of your bundles.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fb2ba6i2pt4tczlm9epkj.png" alt="Bundle Phobia Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fontflipper.com/upload/" rel="noopener noreferrer"&gt;Font Flipper&lt;/a&gt; - Helps you find fonts from the Google Fonts library in a convenient Tinder-esque way.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6coualhtrjdb4d9wvhw2.png" alt="Font Flipper Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://color.adobe.com/create/color-wheel/" rel="noopener noreferrer"&gt;Adobe Color Wheel&lt;/a&gt; - Helps you explore colors and find suitable 0nes for your next project
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F77ue98qeq7nqiyo5599c.png" alt="ADobe Color Wheel Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://coolors.co/" rel="noopener noreferrer"&gt;Coolors&lt;/a&gt; - A slick site for generating pleasing pallets of color for your next project. Highly Recomend!!
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffmdaexdwjiab18dkdkj3.png" alt="Coolors Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://trello.com/" rel="noopener noreferrer"&gt;Trello&lt;/a&gt; - A way to keep track of tasks for any sort of personal or group project. 
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2400%2F1%2Aewp_e0elV1XaYkHqrRLsBw.png" alt="Trello Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bubbl.us/" rel="noopener noreferrer"&gt;Bubbl.us&lt;/a&gt; - Brain storm using mind-maps.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jsonplaceholder.typicode.com/" rel="noopener noreferrer"&gt;JSONPlaceholder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.draw.io/" rel="noopener noreferrer"&gt;Draw.io&lt;/a&gt; - Flow chart and diagram maker.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://wakatime.com/" rel="noopener noreferrer"&gt;WakaTime&lt;/a&gt; - Track and analyze how you spend your time coding.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8xq6gas02bokimayxdsc.png" alt="WakaTime Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.mockaroo.com/" rel="noopener noreferrer"&gt;Mockaroo&lt;/a&gt; -"Mockaroo lets you generate up to 1,000 rows of realistic test data in CSV, JSON, SQL, and Excel formats."
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F69liqrd2p62h80nduqfw.png" alt="Mockaroo Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://browsershots.org/" rel="noopener noreferrer"&gt;Browser Shots&lt;/a&gt; - Test your website in a huge collection of different browsers.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F03ho3o4vy0ruk3xszh9u.png" alt="Browser Shots Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fakejson.com/" rel="noopener noreferrer"&gt;fake{JSON}&lt;/a&gt; - Quickly create fake JSON data for testing.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F2fii1hddbluspc84h029.png" alt="fake{JSON} Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sizzy.co/" rel="noopener noreferrer"&gt;Sizzy&lt;/a&gt; -"A tool for developing responsive websites crazy-fast, made by &lt;a class="mentioned-user" href="https://dev.to/thekitze"&gt;@thekitze&lt;/a&gt;"
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzhbg8aaefjab4gywzk06.png" alt="Sizzy Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://undraw.co/" rel="noopener noreferrer"&gt;unDraw&lt;/a&gt; - Open source illustrations for any project
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fyg9j1k2frv7vn87zt5qb.png" alt="unDraw Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://buildregex.com/" rel="noopener noreferrer"&gt;Build RegEx&lt;/a&gt; - A visual tool for generating RegEx expressions
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0ygqf5pp2738g0kqzx5y.png" alt="Build RegEx Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jex.im/regulex/" rel="noopener noreferrer"&gt;Regulex&lt;/a&gt; - A tool for visualizing RegEx expressions
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F34fizzafx2amhf1c1kea.png" alt="Regulex Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://regexr.com/" rel="noopener noreferrer"&gt;RegExr&lt;/a&gt; - A website for learning, building and testing RegEx expressions.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F178nl3u0l9ui9iuil7sq.png" alt="RegExr Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://httpie.org/" rel="noopener noreferrer"&gt;HTTPie&lt;/a&gt; - "HTTPie—aitch-tee-tee-pie—is a command line HTTP client with an intuitive UI, JSON support, syntax highlighting, wget-like downloads, plugins, and more."
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fs1q425kqqlugagzcf67g.png" alt="HTTPie Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/GoogleChromeLabs/ProjectVisBug" rel="noopener noreferrer"&gt;VisBug&lt;/a&gt; - Edit Content of a webpage inside of Google Chrome.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.portalzine.de%2Fwp-content%2Fuploads%2Fsites%2F3%2F2019%2F02%2Fvisbug_browser_design_tool.jpg" alt="VisBug Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://insomnia.rest/" rel="noopener noreferrer"&gt;Insomnia&lt;/a&gt; - A pretty darn cool REST Client for debugging APIs
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Finsomnia.rest%2Fstatic%2Fmain-ac0a1732afac19acce5ad6825595c3bb-05674.png" alt="Insomnia Screenshot"&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.codeply.com/" rel="noopener noreferrer"&gt;Codeply&lt;/a&gt; - "Responsive Design Playground
&amp;amp; Frontend Editor."
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fo0o6j0pnz0hcnync07jf.png" alt="Codeply Screenshot"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Content Creation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.2dimensions.com/" rel="noopener noreferrer"&gt;Flare&lt;/a&gt; - Easily create animations for your website in in browser
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzxfvhwh371wnfti1w4j7.png" alt="Flare Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vectr.com/" rel="noopener noreferrer"&gt;Vectr&lt;/a&gt; -"Vectr is a free graphics software used to create vector graphics easily and intuitively. It's a simple yet powerful web and desktop cross-platform tool to bring your designs into reality."
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fudq6s0mazi65f4qhr5a3.png" alt="Vectr Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.canva.com/" rel="noopener noreferrer"&gt;Canva&lt;/a&gt; - Free online graph and charts maker
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F1xqnumwboo2spi5g890o.png" alt="Canva Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://photos.icons8.com/creator" rel="noopener noreferrer"&gt;Photo Creator&lt;/a&gt; - Free Stock Image Generator
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsoq8w0ir30tcwpv8k5xq.png" alt="Photo Creator Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.videvo.net/" rel="noopener noreferrer"&gt;Videvo&lt;/a&gt; - Free stock videos
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F3tiawig8comaujwkjfbn.png" alt="Videvo Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pexels.com/videos/" rel="noopener noreferrer"&gt;Pexels&lt;/a&gt; - Free stock videos
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fetgk2y8fif9pjmhf4604.png" alt="Pexels Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.adobe.com/products/xd.html" rel="noopener noreferrer"&gt;XD&lt;/a&gt; - Website and app designer
&lt;img alt="XD Screenshot"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://devdocs.io/" rel="noopener noreferrer"&gt;DevDocs.io&lt;/a&gt; - Many useful documentations all in one place
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fg54iv5hv7sfsaxxagmmh.png" alt="DevDocs Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.wolframalpha.com/" rel="noopener noreferrer"&gt;WolframAlpha&lt;/a&gt; - "Computational Intelligence"
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fcvrmesghsl9jydc0dxzh.png" alt="Wolfram Alpha Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fonts.google.com/" rel="noopener noreferrer"&gt;Google Fonts&lt;/a&gt; - Large collection of free fonts you can use for your projects
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqxgqiz1pgcoch86vko68.png" alt="Google Fonts Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.uplabs.com/" rel="noopener noreferrer"&gt;Up&lt;/a&gt; - Free assets for websites and mobile apps
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fukxf8d86s8pm1z7850oz.png" alt="Up Screenshot"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Git
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.gitkraken.com/" rel="noopener noreferrer"&gt;GitKraken&lt;/a&gt; - Github GUI
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fpmxgxwjwxnxg53hp8r0g.png" alt="GitKraken Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.sourcetreeapp.com/" rel="noopener noreferrer"&gt;Sourcetree&lt;/a&gt;- Another Github GUI
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.sourcetreeapp.com%2Fdam%2Fjcr%3A580c367b-c240-453d-aa18-c7ced44324f9%2Fhero-mac-screenshot.png%3FcdnVersion%3Dle" alt="Sourcetree Screenshot"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  API
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.getpostman.com/" rel="noopener noreferrer"&gt;Postman&lt;/a&gt; - An environment for developing APIs
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fs3.amazonaws.com%2Fpostman-static-getpostman-com%2Fpostman-docs%2FWS-anuhyaMock6.png" alt="Postman Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://apify.com/" rel="noopener noreferrer"&gt;Apify&lt;/a&gt; - Automated web scraping platform. "Turn any website into an api in minutes!"
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fapify.com%2Fimg%2Fdocs%2Factor%2Frun-console.png" alt="Apify Screenshot"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OS Tools
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.spectacleapp.com/" rel="noopener noreferrer"&gt;Spectacle&lt;/a&gt; - Control your windows via keyboard shortcuts.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwx5is2tci6hodizttm1w.png" alt="Spectacle Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/robbyrussell/oh-my-zsh" rel="noopener noreferrer"&gt;Oh My Zsh&lt;/a&gt; - 
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F2mixxz1mwz8c6gkliug0.png" alt="Oh My Zsh Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt; - Make your code prettier
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F3succbswowrd9bu655ft.png" alt="Prettier Screenshot"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hyper.is/" rel="noopener noreferrer"&gt;Hyper&lt;/a&gt; - A better terminal
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fm2yibnjk8s1634ph0tg7.png" alt="Hyper Screenshot"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Miscellaneous
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://cloudconvert.com/" rel="noopener noreferrer"&gt;CloudConvert&lt;/a&gt; - Convert anything to anything/cloud based converting/Runnable via api calls&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://10minutemail.com/10MinuteMail/" rel="noopener noreferrer"&gt;10 Minute Mail&lt;/a&gt; - Exactly what it says it is&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ifttt.com/about" rel="noopener noreferrer"&gt;IFTTT&lt;/a&gt; - Super awesome program!!!!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.grammarly.com/" rel="noopener noreferrer"&gt;Grammarly&lt;/a&gt; - Grammer correction program/extension&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://onedoes.github.io/snapdrop/" rel="noopener noreferrer"&gt;Snapdrop&lt;/a&gt; - Send files easily across platforms&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://json.parser.online.fr/beta/" rel="noopener noreferrer"&gt;JSON Parser&lt;/a&gt; - Parse your ugly json strings&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://carbon.now.sh/" rel="noopener noreferrer"&gt;Carbon&lt;/a&gt; - Take pretty screen shots of your code&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gtmetrix.com/" rel="noopener noreferrer"&gt;GTmetrix&lt;/a&gt; - Analyze the resources and speed of your website&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programs</category>
      <category>websites</category>
      <category>useful</category>
    </item>
    <item>
      <title>Intro to Three.js + Interactive Text Example/Tutorial</title>
      <dc:creator>Emurtzle</dc:creator>
      <pubDate>Mon, 18 Mar 2019 16:22:47 +0000</pubDate>
      <link>https://dev.to/emurtzle/intro-to-threejs--interactive-text-exampletutorial-4d1k</link>
      <guid>https://dev.to/emurtzle/intro-to-threejs--interactive-text-exampletutorial-4d1k</guid>
      <description>

&lt;h1&gt;
  
  
  What is Three.js?
&lt;/h1&gt;

&lt;p&gt;From the &lt;a href="https://en.wikipedia.org/wiki/Three.js"&gt;Wikipedia article&lt;/a&gt;:&lt;br&gt;
&lt;em&gt;"Three.js is a lightweight cross-browser JavaScript library/API used to create and display animated 3D computer graphics on a Web browser. Three.js scripts may be used in conjunction with the HTML5 canvas element, SVG or WebGL."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Simply put, it's a way to to display 3D content in a (relatively) simple way without the need for various plugins.&lt;/p&gt;

&lt;p&gt;It is built on top of WebGL, which is built on top of OpenGL. It essentially streamlines the use of WebGL&lt;/p&gt;

&lt;h1&gt;
  
  
  What is it used for?
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Displaying 3D content&lt;/li&gt;
&lt;li&gt;Multi-Media Projects&lt;/li&gt;
&lt;li&gt;Music Visualization&lt;/li&gt;
&lt;li&gt;Data Visualization&lt;/li&gt;
&lt;li&gt;Video Games&lt;/li&gt;
&lt;li&gt;For fun (it's fun!!!)&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Why should you use Three.js?
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;There are several similar libraries also based off of WebGL.

&lt;ul&gt;
&lt;li&gt;GLGE&lt;/li&gt;
&lt;li&gt;sceneJS&lt;/li&gt;
&lt;li&gt;PhiloGL&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It's a large library that is well documented.&lt;/li&gt;
&lt;li&gt;It has DOZENS of example projects and proof-of-concepts to get inspiration and reference from&lt;/li&gt;
&lt;li&gt;It's a single JavaScript file, you don't need to load a whole bunch of weird plugins

&lt;ul&gt;
&lt;li&gt;This increases security and compatibility between browsers while also making your code cleaner and more efficient.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Active community with 14,000 questions (and growing) questions on Stack Overflow

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://threejs.org/docs/index.html#manual/en/introduction/Creating-a-scene"&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://threejs.org/examples/"&gt;Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discourse.threejs.org/"&gt;Forum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://threejs-slack.herokuapp.com/"&gt;Slack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://webchat.freenode.net/?channels=three.js"&gt;IRC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/tagged/three.js"&gt;Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Its is available via the MIT license

&lt;ul&gt;
&lt;li&gt;To quote the &lt;a href="https://en.wikipedia.org/wiki/MIT_License"&gt;Wikipedia article&lt;/a&gt; again:

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;“The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT). As a permissive license, it puts only very limited restriction on reuse and has, therefore, an excellent license compatibility. The MIT license permits reuse within proprietary software provided that all copies of the licensed software include a copy of the MIT License terms and the copyright notice. The MIT license is also compatible with many copyleft licenses, such as the GNU General Public License (GPL); MIT licensed software can be integrated into GPL software, but not the other way around.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Several other large programs that use the MIT license include

&lt;ul&gt;
&lt;li&gt;Ruby on Rails&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;JQuery&lt;/li&gt;
&lt;li&gt;X Window System&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Tutorial (Simple scene on JSFiddle)
&lt;/h1&gt;

&lt;p&gt;Let's make a super simple example that creates a cube and makes it rotate. Here is the JSFiddle for it, let's go through the code line by line. There's no html or css in this fiddle, except for a script tag to import Three.js. Everything else is pure JavaScript!&lt;br&gt;
&lt;iframe src="https://jsfiddle.net/Emurtzle/02dbuvxf//embedded/result,js,html//dark" width="100%" height="600"&gt; &lt;/iframe&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Line 1
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;camera&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;scene&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;renderer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;geometry&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;material&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;mesh&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Let's break this down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;camera&lt;/code&gt; is a virtual camera, what this camera sees is what is rendered.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;scene&lt;/code&gt; contains everything you want rendered. The camera -&amp;gt; views -&amp;gt; the scene&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;renderer&lt;/code&gt; is the rendering engine, it renders what the camera sees and converts it to something the DOM can display&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;geometry&lt;/code&gt; is the &lt;em&gt;shape&lt;/em&gt; of the object we are rendering&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;material&lt;/code&gt; is the color and/or texture of the object we are rendering&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mesh&lt;/code&gt; is the actual render-able object, it needs a shape (the geometry) and a color (the material)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Line 3-4
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;init&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;animate&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This calls two functions we define below&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;init();&lt;/code&gt; initializes our 3D scene. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;animate();&lt;/code&gt; starts the animation loop that rotates our cube&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Line 6-24
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="nx"&gt;scene&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;THREE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Scene&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="nx"&gt;camera&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;THREE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PerspectiveCamera&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerWidth&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHeight&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;camera&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;position&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nx"&gt;geometry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;THREE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;CubeGeometry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;material&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;THREE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;MeshNormalMaterial&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="nx"&gt;mesh&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;THREE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Mesh&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;geometry&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;material&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;scene&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mesh&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;renderer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;THREE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;WebGLRenderer&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;renderer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setSize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerWidth&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHeight&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;appendChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;renderer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;domElement&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Ok, this can be alot at once, let's go line by line. This is the majority of our file&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;scene = new THREE.Scene();&lt;/code&gt; Simply creates a new scene&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);&lt;/code&gt; creates a new &lt;em&gt;Perspective Camera&lt;/em&gt; there are several different types of camera but you'll probably be using perspective cameras the most. It takes four parameters

&lt;ul&gt;
&lt;li&gt;The Field of View (FoV)&lt;/li&gt;
&lt;li&gt;The aspect ratio, &lt;code&gt;window.innerWidth / window.innerHeight&lt;/code&gt; will work for most projects&lt;/li&gt;
&lt;li&gt;Near(float), anything closer to the camera than Near will not be rendered&lt;/li&gt;
&lt;li&gt;Far(float), anything further away from the camera than Far will not be rendered&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;camera.position.z = 500;&lt;/code&gt; sets the position of the camera to 500 units on the z axis&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;geometry = new THREE.CubeGeometry(200, 200, 200);&lt;/code&gt; creates a new cube shape that is 200 units wide by 200 units tall by 200 units deep&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;material = new THREE.MeshNormalMaterial();&lt;/code&gt; creates a new simple material to apply to the cube. There are many different types of materials, we are using one that changes color based on the normals (direction) that a face (side of the cube) is pointing.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mesh = new THREE.Mesh(geometry, material);&lt;/code&gt; creates a new mesh, applying the &lt;code&gt;material&lt;/code&gt; to the &lt;code&gt;geometry&lt;/code&gt; we defined above&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;scene.add(mesh);&lt;/code&gt; then adds the mesh to the scene so the camera can see it&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;renderer = new THREE.WebGLRenderer();&lt;/code&gt; creates a new WebGL render engine&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;renderer.setSize(window.innerWidth, window.innerHeight);&lt;/code&gt; sets the width and height of the rendering engine to the width and height of the window containing it&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;document.body.appendChild(renderer.domElement);&lt;/code&gt; the renderer takes it's render result and converts it to something the dom can use, we then append it to the body of the document(DOM)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There! That wasn't so bad was it? All we're doing is creating objects and setting up parent/child relationships. Just like we do with any ol' JavaScript driven website!&lt;/p&gt;

&lt;h2&gt;
  
  
  Line 26-36
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;animate&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="nx"&gt;requestAnimationFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animate&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;mesh&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rotation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;mesh&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rotation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mf"&gt;0.02&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nx"&gt;renderer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;scene&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;camera&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This function tells the renderer to actually render the scene and it drives the animation of our cube.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;requestAnimationFrame(animate);&lt;/code&gt; This function is weird, there's not even an entry in the documentation about it. It tells Three.js to setup the code below it into a loop that runs every time the display refreshes (typically 60hz or 60 times per second)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mesh.rotation.x += 0.01;&lt;/code&gt; We increment our cubes x rotation a tiny bit, keep in mind this runs 60 times per second, large values will make the cube rotate very fast&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mesh.rotation.y += 0.02;&lt;/code&gt; We increment our cubes y rotation by a tiny bit&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;renderer.render(scene, camera);&lt;/code&gt; We tell the render to render out the scene using our camera, we have to supply the scene and camera because you can have multiple of both in one project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the main loop that drives the animation and rendering of our scene, so if you have a complex scene, this function can easily becomes many hundreds of lines, I highly recommend abstracting your animations as much as possible.&lt;/p&gt;

&lt;p&gt;There you go! That's all there is to this project! You should now have a color changing, rotating cube&lt;/p&gt;

&lt;h1&gt;
  
  
  Interactive Example
&lt;/h1&gt;

&lt;p&gt;Below is an more in-depth example of how to add interaction between a webpage and Three.js content. I purposely kept it simple to make sure it can run on as many machines as possible. I will not be explaining every line here, however there are comments explaining nearly every line of code there!&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://jsfiddle.net/Emurtzle/9a4fmr8b/embedded/result,js,html//dark" width="100%" height="600"&gt; &lt;/iframe&gt;&lt;/p&gt;


</description>
      <category>javascript</category>
      <category>threejs</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What Is An ISF File And Why Would You Want To Use It?</title>
      <dc:creator>Emurtzle</dc:creator>
      <pubDate>Wed, 13 Mar 2019 00:36:58 +0000</pubDate>
      <link>https://dev.to/emurtzle/what-is-an-isf-file-and-why-would-you-want-to-use-it-1f88</link>
      <guid>https://dev.to/emurtzle/what-is-an-isf-file-and-why-would-you-want-to-use-it-1f88</guid>
      <description>&lt;h1&gt;
  
  
  What is an ISF file?
&lt;/h1&gt;

&lt;p&gt;ISF stands for Interactive Shader Format, it is an extension of the language GLSL that adds interactivity and dynamics. GLSL is a language created to interact directly with the gpu, commonly used to render images and videos based on complex mathematical formulas. ISF was created by the Company VidVox, which is an industry leader for creating live animations. &lt;br&gt;
&lt;br&gt;    ISF adds that interactivity by letting you alter the variables that feed the formulas in real time. &lt;br&gt;
&lt;br&gt;    ISF is very versatile in what it can do, from color correcting an existing photo or video to generating complex 3d fractals. Additionally, in your host program, you can chain ISF files together to create complex scenes that one file couldn’t do alone. &lt;br&gt;
&lt;br&gt;    You don’t need to know how to program an ISF file to be able to use them effectively&lt;/p&gt;

&lt;h2&gt;
  
  
  Some Neat Examples
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.interactiveshaderformat.com/sketches/27"&gt;Color Correction&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.interactiveshaderformat.com/sketches/2291"&gt;Fractal 1&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.interactiveshaderformat.com/sketches/2119"&gt;Fractal 2&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.interactiveshaderformat.com/sketches/1792"&gt;Voronai&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Why would you want to use an ISF file over a pre-rendered animation?
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;ISF files are relatively lightweight, file sizes are usually less than 10kb, and it is essentially just a text file. When presenting visuals, you want to be able to run them as close to 60fps as possible, since ISF files are all mathematical formulas and GPUs are very good at calculating straight math, these files can run very fast.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ISF files can render images/videos that are very hard to replicate in 2d or 3d animation programs, particularly fractals. Some rendering engines such as Octane has experimental features for creating fractal meshes, however it still takes a screipt file that is very similar to openGL files&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ISF files are dynamic. You can change the variables that feed the formula in real time. Your host program will be able to map values to those variables from stuff such as a knob on your controller or an audio frequency analysis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ISF files can loop seamlessly and indefinitly (or as long as your floats can be). Some files do break as they approach infinity, however this is more likely the formula breaking and not the framework.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ISF files can work on their own or input a photo or video&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ISF files have a small but highly dedicated community with incrediably smart members&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ISF files can do everything OpenGL can plus more.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Where would you see an ISF file being used?
&lt;/h1&gt;

&lt;p&gt;You probably wouldn’t see an ISF file or openGL shader used in a high level production (Think Bonnaroo or Coachella). You are much more likely to find them in productions run by a smaller community, think Burning Man or small tier music/art festivals&lt;br&gt;
    Often these files are used as a visualizer for music or as part of a visualizer. A branch of this is Live Coding, where you write the file as it’s rendering.&lt;/p&gt;

</description>
      <category>isf</category>
      <category>opengl</category>
      <category>glsl</category>
      <category>mmv</category>
    </item>
    <item>
      <title>Acronyms and Names</title>
      <dc:creator>Emurtzle</dc:creator>
      <pubDate>Wed, 06 Mar 2019 21:30:50 +0000</pubDate>
      <link>https://dev.to/emurtzle/acronyms-and-names-162n</link>
      <guid>https://dev.to/emurtzle/acronyms-and-names-162n</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/hkDD03yeLnU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  Programmers LOVE their names and acronyms
&lt;/h1&gt;

&lt;p&gt;Perhaps even more than other industries, we take pride and have fun in naming our programs. Names are important because, not only are they how we talk about our code (obviously), but they can also add important contextual information&lt;br&gt;
    Take Ruby and Ruby Gems for example. Ruby is the programming language and Ruby Gems are libraries for Ruby. What does a gem make you think of? Something small, unique and valuable right? We could say the same thing about the libraries! They are "small" collections of code that does something unique that is valuable to us.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kruk_yiS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://geologycafe.com/images/gemstones.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kruk_yiS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://geologycafe.com/images/gemstones.jpg" alt="Gem Names"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Someone could guess what a gem for ruby is just based on the name alone.&lt;/p&gt;

&lt;p&gt;Take Pry as another example. Pry is used to "pry" into our code and see the inner workings of it.&lt;/p&gt;

&lt;p&gt;Or take Windows, it's is a collection of windowed applications!&lt;/p&gt;

&lt;p&gt;Or ISF - Interactive Shader Format, it's a shader format that's interactive!&lt;/p&gt;

&lt;p&gt;That doesn't mean you can't have fun with your names, many companies like to add references, silliness or even recursion to their names! Look at what the creators of the popular linux OS Ubuntu named their versions...These names might look silly (because they are!!) but serve the purpose well as they are unique and easy to remember. You're probably more likely to remember "Disco Dingo" better than Ubuntu 19.04.01 LTS, plus "Disco Dingo" is inherently Ubuntu while 19.04.01 LTS could easily refer to another OS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VZfNgZVH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0fkeugtgh00djjf5ik4q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VZfNgZVH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0fkeugtgh00djjf5ik4q.png" alt="Ubuntu Version Names"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My personal favorite name is XINU, XINU is a primitive, linux-based operating system that is used as a framework to teach how operating systems work to beginners. XINU stands for XINU Is Not UNIX, but XINU is also UNIX backwards!&lt;/p&gt;

&lt;p&gt;Let's look at some bad examples now. Specifically the notorious JavaScript language. Based on the context of the name, you may assume, and many have (including me!) that JavaScript is A) related to Java B) is a scripting language. But neither is true! It is it's own language built by Netscape, not Sun Microsystems.It's a lie!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/GDmYAI8zwKTNm/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/GDmYAI8zwKTNm/giphy.gif" alt="Capybara Water"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or what about Capybara? Why is it called Capybara? What does Capybara do? What does a real capybara do? Why isn't it as cute as a real one. We...Just... Don't... Know... &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/9Si6HlM5DfsA0/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/9Si6HlM5DfsA0/giphy.gif" alt="Capybara Goat"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A name like Python gives us way more context than Capybara&lt;/p&gt;

&lt;h1&gt;
  
  
  So why is this all important
&lt;/h1&gt;

&lt;p&gt;There is a lot of code out there, and we need to able to talk about it clearly and efficiently. It helps IMMENSELY when you can guess what some code does based on it's name and context it's used.&lt;/p&gt;

&lt;p&gt;If your name is hard to pronounce, people will call it something else, you may not want that&lt;/p&gt;

&lt;p&gt;What if your name is immortalized? We still talk about FORTRAN (latest stable release is 2018 BTW!) even though that was made in the 1950s.&lt;/p&gt;

&lt;p&gt;Social Media and SEO is tied into EVERYTHING these days, it sucks but your code will probably be more popular if it has a unique name people can remember and Google easily. SEO is important! I can't even remember the last time I went to the second page of a Google Search&lt;/p&gt;

&lt;h2&gt;
  
  
  But is it actually important?
&lt;/h2&gt;

&lt;p&gt;Not really... People will use your code if it's good regardless of it's name, JavaScript is one of the largest implemented languages in the world. &lt;/p&gt;

&lt;h1&gt;
  
  
  What makes a good name/acronym?
&lt;/h1&gt;

&lt;p&gt;Make it unique/notable, this doesn't matter too much, but a unique easily searchable name will make it more notable and improve SEO&lt;/p&gt;

&lt;p&gt;Make it easy to say, don't name your code something that's hard to pronounce or people will call it something else.&lt;/p&gt;

&lt;p&gt;Make it themed, like Ruby - Gems, keeping related software named in a theme can make their relations inherently make sense.&lt;/p&gt;

&lt;p&gt;Make it make sense. If you call something Student_controller, it should probably control the students, not handle server security&lt;/p&gt;

&lt;p&gt;Make it professional. Adding swear words or something cringey or inappropriate. As neat as Brainfuck or the My Little Pony interpreter is, I probably won't talk to my boss about it.&lt;/p&gt;

&lt;p&gt;Make it whatever you want. Seriously, at the end of the day you can name your code whatever you want. If people want to use your code, they will regardless of it's name, I mean... JavaScript is one of the most implemented languages in the world. &lt;/p&gt;

&lt;p&gt;But help the programmers of the world and make your names nice! This extends to anything in code, from classes to methods to variables to actual name of the app. In a professional setting, people who are not you are going to be reading your code and making edits, implementations, bastardizations and who knows what else. It could even be you in the future! Help yourself and your coworkers, have good names&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
