<?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: Vincent Milum Jr</title>
    <description>The latest articles on DEV Community by Vincent Milum Jr (@darkain).</description>
    <link>https://dev.to/darkain</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%2F108425%2Fdcf8a63c-51d9-46bb-a204-941b31b03154.jpeg</url>
      <title>DEV Community: Vincent Milum Jr</title>
      <link>https://dev.to/darkain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/darkain"/>
    <language>en</language>
    <item>
      <title>PHP Altaform Framework - Zero Boilerplate!</title>
      <dc:creator>Vincent Milum Jr</dc:creator>
      <pubDate>Thu, 25 May 2023 07:34:39 +0000</pubDate>
      <link>https://dev.to/darkain/php-altaform-framework-zero-boilerplate-3j8c</link>
      <guid>https://dev.to/darkain/php-altaform-framework-zero-boilerplate-3j8c</guid>
      <description>&lt;p&gt;In this video, I discuss the Altaform framework for PHP that I created.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Altaform allows you to create APIs in under 30 seconds with less than 5 lines of code!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All boilerplate from other frameworks is entirely gone.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/MNhrnAoLBt8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>php</category>
      <category>backend</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>FreeBSD 13.0 Released!</title>
      <dc:creator>Vincent Milum Jr</dc:creator>
      <pubDate>Sun, 18 Apr 2021 18:58:49 +0000</pubDate>
      <link>https://dev.to/darkain/freebsd-13-0-released-2p0c</link>
      <guid>https://dev.to/darkain/freebsd-13-0-released-2p0c</guid>
      <description>&lt;p&gt;TLDR: FreeBSD 13.0 release notes:&lt;br&gt;
&lt;a href="https://www.freebsd.org/releases/13.0R/relnotes/"&gt;https://www.freebsd.org/releases/13.0R/relnotes/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Join the FreeBSD discussion over on Discord! We'll answer any questions you may have, host live chats, demos, and generally geek out over technology.&lt;br&gt;
&lt;a href="https://discord.gg/n2wshsy"&gt;https://discord.gg/n2wshsy&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Over this past week, FreeBSD version 13.0 was released!&lt;/p&gt;

&lt;p&gt;There are many great improvements in this new version of FreeBSD, but I'd like to highlight a few personal favorites.&lt;/p&gt;

&lt;p&gt;But first, what exactly &lt;em&gt;IS&lt;/em&gt; FreeBSD?&lt;/p&gt;

&lt;p&gt;Way back in the early days of computing, there was AT&amp;amp;T UNIX. The University of California, Berkeley started using and modifying UNIX. They released this new system under the name "BSD", or "Berkeley Software Distribution". Over the years, there were several iterations of divergent paths taken by the BSD code base, one of which is now known as the operating system FreeBSD!&lt;/p&gt;

&lt;p&gt;If you've used Linux, many of the FreeBSD features will feel very natural. Linux was designed to be an independent clone of UNIX, and FreeBSD has direct lineage to UNIX. Linux and FreeBSD share a similar mindset in many of their tools available to end users.&lt;/p&gt;

&lt;p&gt;The command shells available on FreeBSD and Linux are mostly the same, such as tcsh, bash, and POSIX sh. Graphical environments such as Gnome, KDE, and XFCE are the same as well! Common sysadmin command like top, htop, ps, and more are also the same. You will also find the same developer tools like git, python, php, llvm, rust, go, node, and more.&lt;/p&gt;

&lt;p&gt;BUT, there are some very key differences!&lt;/p&gt;

&lt;p&gt;FreeBSD 13.0 now ships with OpenZFS 2.0 as its default file system. With OpenZFS 2.0, many new awesome features have become available, such as better latency performance diagnostics, as well as the new zstd compression standard. OpenZFS on FreeBSD adds significantly more flexibility for managing storage over the Linux file systems like XFS, EXT, or BTRFS.&lt;/p&gt;

&lt;p&gt;ARM CPUs are becoming a highly prominent player in computing at all scales now. ARM powers the fastest super computer in the world, is powering the MacBook Air M1 I'm typing this on right now, power AWS Gravaton instances, and is making headway into the workstation class of computers. With the release of FreeBSD 13.0, Aarch64 (64-bit version of ARM) is now a Tier-1 architecture on the platform. This means that it will be treated the same as AMD64 (64-bit version of x86) in regards to patching, updates, security fixes, bug fixes, package availability, and more.&lt;/p&gt;

&lt;p&gt;Speaking of the ARM support, VMware has been testing their ESXi hypervisor on ARM as well! There is now ESXi ARM Fling, an experimental hypervisor that works on devices such as the 4GB and 8GB models of the Raspberry Pi 4. Along with that, FreeBSD has extended their virtual machine client support to work beautifully under ESXi ARM Fling with the release of FreeBSD 13.0! This means that installing a virtual machine on ARM is the same effortless process as it is with AMD64 systems. Simply create a fresh virtual machine, boot off of the FreeBSD 13.0 iso image from the virtual CD-ROM, and it'll boot up into the installer and run exactly the same as it would on any other platform.&lt;/p&gt;

&lt;p&gt;There are many more advancements. Please take a look at the release notes to see highlights pointed out from the core FreeBSD release engineering team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.freebsd.org/releases/13.0R/relnotes/"&gt;https://www.freebsd.org/releases/13.0R/relnotes/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>freebsd</category>
      <category>news</category>
      <category>unix</category>
      <category>zfs</category>
    </item>
    <item>
      <title>Enter The Matrix with FreeBSD</title>
      <dc:creator>Vincent Milum Jr</dc:creator>
      <pubDate>Mon, 12 Apr 2021 04:39:48 +0000</pubDate>
      <link>https://dev.to/darkain/enter-the-matrix-with-freebsd-4dbj</link>
      <guid>https://dev.to/darkain/enter-the-matrix-with-freebsd-4dbj</guid>
      <description>&lt;p&gt;Have you ever wanted to enter The Matrix, but didn't know how? Well, today is your lucky day!&lt;/p&gt;

&lt;p&gt;FreeBSD makes this possible by downloading one simple command line utility.&lt;/p&gt;

&lt;p&gt;First, let's download and install the &lt;strong&gt;termatrix&lt;/strong&gt; command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pkg install -y termatrix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From there you will see some installation status messages such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        termatrix: 0.2

Number of packages to be installed: 1

10 KiB to be downloaded.
[1/1] Fetching termatrix-0.2.txz: 100%   10 KiB  10.2kB/s    00:01
Checking integrity... done (0 conflicting)
[1/1] Installing termatrix-0.2...
[1/1] Extracting termatrix-0.2: 100%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that, we can now enter The Matrix! From the command line, simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;termatrix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should now see The Matrix on your screen!&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5yfmu43e54b9e14b7qj.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5yfmu43e54b9e14b7qj.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;termatrix&lt;/strong&gt; utility is available on virtually every architecture supported by FreeBSD. So this means if you're running on an Intel or AMD PC, it will be available and work. This also means it works perfectly on ARM devices like the Raspberry Pi as well! You can view the full compatibility list and more details about this program over on FreshPorts: &lt;a href="https://www.freshports.org/misc/termatrix" rel="noopener noreferrer"&gt;https://www.freshports.org/misc/termatrix&lt;/a&gt;&lt;/p&gt;

</description>
      <category>freebsd</category>
      <category>terminal</category>
      <category>bash</category>
      <category>console</category>
    </item>
    <item>
      <title>FreeBSD on Discord</title>
      <dc:creator>Vincent Milum Jr</dc:creator>
      <pubDate>Tue, 30 Mar 2021 16:41:35 +0000</pubDate>
      <link>https://dev.to/darkain/freebsd-on-discord-30m2</link>
      <guid>https://dev.to/darkain/freebsd-on-discord-30m2</guid>
      <description>&lt;p&gt;FreeBSD on discord: &lt;a href="https://discord.gg/vDFeUc7EqQ"&gt;https://discord.gg/vDFeUc7EqQ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;FreeBSD is an amazing operating system with a lot of great features presented in simple ways compared to other free/open source OSes. &lt;/p&gt;

&lt;p&gt;Native support for the most advanced file system ever created, &lt;a href="https://en.wikipedia.org/wiki/OpenZFS"&gt;&lt;strong&gt;OpenZFS&lt;/strong&gt;&lt;/a&gt; right out of the box! Plus &lt;a href="https://en.wikipedia.org/wiki/DTrace"&gt;&lt;strong&gt;Dtrace&lt;/strong&gt;&lt;/a&gt;, one of the best debugging tools out there. And it also has &lt;a href="https://en.wikipedia.org/wiki/FreeBSD_jail"&gt;&lt;strong&gt;Jails&lt;/strong&gt;&lt;/a&gt;, the gold standard in secure containerization. All of this AND MORE™! with an interface familiar to Linux/Unix users as they share many of the same userland utilities!&lt;/p&gt;

&lt;p&gt;FreeBSD has these and more in a tiny footprint that runs on a Raspberry Pi Zero, yet performant and scalable enough to run one of the largest content delivery networks in the world.&lt;/p&gt;

&lt;p&gt;Curious about FreeBSD? Then please join the discussion over on Discord! We'll happily answer any questions you may have :)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://discord.gg/vDFeUc7EqQ"&gt;https://discord.gg/vDFeUc7EqQ&lt;/a&gt;&lt;/p&gt;

</description>
      <category>freebsd</category>
      <category>zfs</category>
      <category>dtrace</category>
      <category>embedded</category>
    </item>
    <item>
      <title>Compiling MariaDB from Source - On FreeBSD</title>
      <dc:creator>Vincent Milum Jr</dc:creator>
      <pubDate>Sun, 28 Mar 2021 06:56:35 +0000</pubDate>
      <link>https://dev.to/darkain/compiling-mariadb-from-source-on-freebsd-5ank</link>
      <guid>https://dev.to/darkain/compiling-mariadb-from-source-on-freebsd-5ank</guid>
      <description>&lt;p&gt;This is part of a series of articles I'm writing on how to accomplish common tasks in FreeBSD. Every day, I see new tutorials on "How To Do (THING) on Linux in 20 easy steps!" - so here I am, matching each of those articles, but from the perspective of showing the amazing simplicity of FreeBSD instead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g_P4I86K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e7adx2y9yjmmedtlqus1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g_P4I86K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e7adx2y9yjmmedtlqus1.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Compiling MariaDB from Source
&lt;/h1&gt;

&lt;p&gt;On many other platforms, they'll start out with a complicated set of steps to create the build environment, setup the compiler and tool chain, then download and extract the source code before even getting to the compilation. This is all 100% automated in the FreeBSD world!&lt;/p&gt;

&lt;p&gt;1) Enter the directory for the MariaDB Port&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /usr/ports/databases/mariadb105-server/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2) Download, configure, and compile MariaDB (yes, all in one command)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;make
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3) Install your now compiled MariaDB binaries&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;make install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And just like that, MariaDB is not only compiled, but it is also installed! What about all of the compiler tools required? What about runtime dependencies? All of that is taken care of for us automatically via the FreeBSD Ports collection!&lt;/p&gt;

&lt;p&gt;Alternatively, if you want to install MariaDB from pre-built binary packages, that option is also available. Simple replace steps 1-3 with with the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pkg install -y mariadb105-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But wait, there are actually two more important steps after this... because we need to actually RUN our server, not just compile and install it!&lt;/p&gt;

&lt;p&gt;NOTE: For the time being, MariaDB still uses the "mysql-server" service on FreeBSD, as it has yet to be renamed.&lt;/p&gt;

&lt;p&gt;4) Enable the MariaDB service to start at boot time&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;service mysql-server enable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5) Start the MariaDB service without first rebooting&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;service mysql-server start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But wait, what about the utility to create the initial MariaDB database? That too is taken care of for us automatically on first run! Everything is designed from the ground up for easy sysadmin automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recap
&lt;/h2&gt;

&lt;p&gt;So, let's recap. Step one, draw a couple circle. Step two, let FreeBSD draw the rest of the owl! ;)&lt;/p&gt;

</description>
      <category>freebsd</category>
      <category>mysql</category>
      <category>sql</category>
      <category>mariadb</category>
    </item>
    <item>
      <title>Should I become a Front-End or Back-End developer?</title>
      <dc:creator>Vincent Milum Jr</dc:creator>
      <pubDate>Sat, 26 Dec 2020 23:07:41 +0000</pubDate>
      <link>https://dev.to/darkain/should-i-become-a-front-end-or-back-end-developer-5b9i</link>
      <guid>https://dev.to/darkain/should-i-become-a-front-end-or-back-end-developer-5b9i</guid>
      <description>&lt;p&gt;This is a post that I've been meaning to write for quite some time now.&lt;/p&gt;

&lt;p&gt;The question of "Should I become a Front-End or Back-End developer" pops up quite regularly, so I thought I'd pose the question here too. No, not for me, the author, but for you, the reader who may be new to programming and wondering which of these directions you should head in.&lt;/p&gt;

&lt;p&gt;This question is usually phrased in such a way that the options are either-or, but never both. But more importantly, the question is usually phrased in such a way to imply that these are literally the only two avenues to pursue as an aspiring developer.&lt;/p&gt;

&lt;p&gt;I want to offer you an exploratory thought experiment into the vast array of other possibilities that you could potentially explore if you want to get into software development. Front-end and back-end web development is only an extremely small fraction of what is out there!&lt;/p&gt;

&lt;p&gt;Why might you consider other areas of development? Web dev is where all the hype and buzz is, surely that's the best possible path, right? Well, that honestly depends. Lesser talked about positions usually means there is less competition for those jobs, and with less people applying, they often offer higher payouts as an incentive to try to get the best possible candidates for these less popular jobs.&lt;/p&gt;

&lt;p&gt;But, you may ask, "what ARE these other possibilities as a developer?"&lt;/p&gt;

&lt;p&gt;Let's start by expanding on the idea of a web developer. The core back-end languages and toolkits used today revolve around PHP, Node.js, Python, Ruby, .Net, and other similar languages.&lt;/p&gt;

&lt;p&gt;Now think of each of the libraries for these languages.&lt;/p&gt;

&lt;p&gt;Do you include a module to access a database? Ask yourself, "who writes that library?"&lt;/p&gt;

&lt;p&gt;How about something that parses JSON? Or generates JSON for data? Same for XML? What about the library that reads the metadata from a JPEG image file? Or how about the library that fetches HTTP(s) content from another system?&lt;/p&gt;

&lt;p&gt;Each of these libraries are pieces of code that someone, or a group of people, wrote, manage, and maintain. These types of libraries are often open-source, and available to accept contributions too!&lt;/p&gt;

&lt;p&gt;But how did they come into being? Usually someone is working on a particular project, saw a need, wrote some re-usable code, and decided to package it up as a library.&lt;/p&gt;

&lt;p&gt;One such example is when doing web development in PHP, I was frequently writing complex SQL queries to interact with my databases. Over time, I realized most of the code was repetitive, so I eventually bundled it up as a separate library and published it publicly.&lt;/p&gt;

&lt;p&gt;Sometimes it may be something that seems simple and trivial, but it can save a significant amount of someone else's time to research. Another library I published is a single file, a single function. It translates shipping/tracking numbers into a URL for each shipper's tracking web site. Pass in a USPS tracking number to the function, and it spits out the URL for tracking that particular USPS package. Not terribly complex, but it means the research of several different tracking number formats can be crowd sourced! As users of the library handle other shippers, they provide those shipper's tracking number formats as either issue tracker items or pull requests, and everybody benefits. :)&lt;/p&gt;

&lt;p&gt;Now let's take things into a slightly more complex direction. Computer languages don't inherently exist on their own, and they get updated over time. How exactly is this?&lt;/p&gt;

&lt;p&gt;The ability for a computer to read and understand code such as PHP or JavaScript inside of Node.js are themselves programs written in other languages. These are also areas of active development. Some of them have high profile companies backing them, such as .Net from Microsoft, Go from Google, Swift from Apple, or Hack from Facebook. Each of these languages has an entire team of people who work on them full time at their respective companies!&lt;/p&gt;

&lt;p&gt;Let's take a step back for a second, and look at the wide picture instead.&lt;/p&gt;

&lt;p&gt;Are you a Mac user? Or Windows? What about Linux? Or possibly even FreeBSD? Each of these are also programs that have people actively maintaining them!!! Well, kinda...&lt;/p&gt;

&lt;p&gt;Yes, each has a mountain of people that work on them. However, they're each not an individual program. They're collections of programs all bundled together, often maintained by entirely separate teams.&lt;/p&gt;

&lt;p&gt;For instance, the Windows Start button is an entirely different codebase managed by entirely different people than Notepad!&lt;/p&gt;

&lt;p&gt;But this doesn't stop at just user-facing desktop applications.&lt;/p&gt;

&lt;p&gt;An entire computer is layers on top of layers of different types of programs all interacting with one another.&lt;/p&gt;

&lt;p&gt;Your keyboard for instance is most likely USB (even possibly true if you're on a laptop, with an internal USB connection). There is firmware on modern keyboards that accept the key presses, and then sends the signal over USB back to the USB root device.&lt;/p&gt;

&lt;p&gt;Think to yourself: "who writes the keyboard firmware?"&lt;/p&gt;

&lt;p&gt;But then the USB root communicates back to the rest of the system, sometimes over PCI-Express.&lt;/p&gt;

&lt;p&gt;Think to yourself: "who writes the USB interface code?"&lt;/p&gt;

&lt;p&gt;And then there is a keyboard driver in the operating system to receive and interpret those commands.&lt;/p&gt;

&lt;p&gt;Think to yourself: "who writes the keyboard drivers?"&lt;/p&gt;

&lt;p&gt;From there, the driver sends a signal to the operating system kernel to handle and route.&lt;/p&gt;

&lt;p&gt;Think to yourself: "who writes the keyboard kernel subsystem?"&lt;/p&gt;

&lt;p&gt;At that point, the keyboard subsystem routes the message to the active, in-focus application though the kernel's ABI (application binary interface)&lt;/p&gt;

&lt;p&gt;Think to yourself: "who writes the ABI?"&lt;/p&gt;

&lt;p&gt;Now let's say our application just so happens to be a web browser. This web browser is displaying a form on the screen with several elements that are interactable. &lt;/p&gt;

&lt;p&gt;Think to yourself: "who writes the browser code to handle the keyboard event, sending it to the right focused item on the web page?"&lt;/p&gt;

&lt;p&gt;And all of this is for a single key press, every key press, every time you type.&lt;/p&gt;

&lt;p&gt;Web browsers can do quite a bit more than just accept keypresses though. They send and receive data over networks using a variety of protocols, encrypt your data for privacy and protection, decode and display a variety of photo, audio and video formats, and countless more features.&lt;/p&gt;

&lt;p&gt;This may seems like a single monumental task, but that's not entirely the case. Instead, like mentioned previously, this is all handled via a collection of smaller, simpler libraries. Most of these libraries are maintained entirely independently of the browser itself.&lt;/p&gt;

&lt;p&gt;Curious what these libraries may be? In Chromium based browsers (Google Chrome, Microsoft Edge, Opera, etc), Go to "Settings" &amp;gt; "About" and click on "open source software". Microsoft Edge that I'm typing this on currently has 371 libraries listed.&lt;/p&gt;

&lt;p&gt;Do you use the command line interface in your operating system?&lt;/p&gt;

&lt;p&gt;Every single CLI command is a program or a script that somebody at some point wrote.&lt;/p&gt;

&lt;p&gt;Who wrote all of those commands? Who manages and maintains them? And who will write the next iteration of them? That could possibly be you!&lt;/p&gt;

&lt;p&gt;But what happens when we step away from the desktop computer, what else is out there?&lt;/p&gt;

&lt;p&gt;Think to yourself...&lt;/p&gt;

&lt;p&gt;Who writes the user interface for my smart TV?&lt;/p&gt;

&lt;p&gt;Who writes apps for cell phones?&lt;/p&gt;

&lt;p&gt;But wait, who writes the OS itself for the cell phones!?&lt;/p&gt;

&lt;p&gt;How about those IoT devices, who writes the program for those smart outlets, smart switches and other IoT devices?&lt;/p&gt;

&lt;p&gt;And how about those drones everyone loves to fly, who writes the software for those?&lt;/p&gt;

&lt;p&gt;This being the Christmas holiday season, who writes the microcontroller code that allows Christmas lights to blink?&lt;/p&gt;

&lt;p&gt;Who programs the digital interface on your microwave or stovetop?&lt;/p&gt;

&lt;p&gt;Who programs the traffic lights when you're driving down the road?&lt;/p&gt;

&lt;p&gt;What about digital signs on billboards and in windows of businesses?&lt;/p&gt;

&lt;p&gt;RGB LEDs are all the crazy right now! But who writes the code for those to change color and blink?&lt;/p&gt;

&lt;p&gt;... lastly, obligatory ... who programs the VCR? &lt;/p&gt;

&lt;p&gt;But this is still nowhere near an exhaustive list of areas a programmer can explore! This can also become quite overwhelming very quickly, being flooded with endless possibilities.&lt;/p&gt;

&lt;p&gt;The vast majority of these, however, can be broken down into a simpler context: problems and solutions.&lt;/p&gt;

&lt;p&gt;In the end, all we're doing as developer is using structured commands to have electronic machines solve problems for us.&lt;/p&gt;

&lt;p&gt;So next time you think to yourself "should I be a front-end or back-end web developer", change that up to "which problem am I trying to solve, and which set of tools would best solve it?"&lt;/p&gt;

&lt;p&gt;It may be that extending an existing library might solve the problem at hand. It may be that a new command line tool could solve it too. Or maybe it does require a nice web based graphical interface. It all comes down to what tools are available, and which ones are the best at the time to get the job done.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
