What are we doing here?

This blog includes a series of videos and references to help new users or enthusiasts better understand how to use open source and free technology tools. The quick links includes more information for accessing many of the tools covered along with other references to learn more for taking advantage of these tools.

Click HERE to see the full list of topics covered!

Introduction to virtualization & containers





This is an introduction to virtualization - hypervisors, virtual machines (VMs), and also containers. Virtualization has become a transformative technology for several reasons highlighted in the video, both in terms of cost savings, but also flexibility in deployment and application usage. Containers - essentially Linux name spaces - build upon the same idea of virtualization with a mix of benefits (low resource usage per deployment, fast to deploy) and limitations (their primarily Linux based and confined). I'm including several links for reference that I've found helpful and hope you can as well.


I think virtualization is pretty straightforward beyond the inner workings of a hypervisor itself. Install a hypervisor, figure out how to create and access VMs and away you go. Containers - though I don't touch on much in the video are interesting, but complex in how to deploy, manage, and use. I attribute a lot of this to the maturity difference between the the technologies, and the underlying complexity of running sandboxed services on a single kernel vs just creating an environment to install wholly independent systems on. 

Ideally when deploying an IT backend, both technologies would and do get used where needed. Having an understanding of both is important for those looking to get into IT or infrastructure workloads for the foreseeable future. 

Hope it helps, leave a comment if you have any suggestions, questions, or comments.



"How wealth has changed" - Motivation for More Open Source

Listening to the news this past week, one good or interesting podcast was about "How wealth has changed" on the Indicator from Planet Money  of NPR.

It struck me, though not really pointed out directly in the 9 minute show, that it was essentially a call for open source. In the episode, the host and guest were discussing how for much of human history the economic prosperity of a country was tied to land - its size, its resources, its ability to be used for farmland and crops, precious metals, etc. Countries in need of or desiring more resources would then start wars, make colonies, and generally squabble for the finite amount of resources available. Come to the Enlightenment and then the Industrial Revolution, there was a new shift for manufacturing with skilled or knowledge-based workers became valuable. The shift has continued to this day with technology now being synonymous with computers and IT, though can really permeate all facets of life and work. What is also more intriguing is that now that ideas and knowledge are able to help drive economic growth, and in many ways are more valuable than raw resources, value growth is accelerated like never before seen in human history. While land and natural resources are finite, knowledge is not, and essentially sharing ideas increases growth potential.

The show also touched upon a few topics of the trade war and patent infringement, but largely argued for better sharing of ideas without mentioning open source. Open source, in the computer science world is essentially the real-world manifestation of this idea. The code, the "how to do something", is put out for the world to see and use. Open source enables technology and know-how to be shared on the Internet, making it available for billions to use, millions to implement, and thousands to even help maintain and improve so that ideas are not only shared, they can be refined at scale.

Outside the scope of the discussion, but underlying the idea is the Solow Growth model which essentially states that technology (either tools, computers, processes, legal systems, governance, etc.) is the true driver of growth in modern society.

Open source technology, the sharing of ideas and know how freely in an open way, can be linked to global economic growth and development. Knowing how to use these tools, and taking an interest in them is absolutely critical, and I was happy to see that idea be recognized by mainstream media.

Intro for Google Forms and Scripts




This is an introduction and walk through of using Google Forms, reacting to data as it comes in, and also setting a custom script to forward the contents of the request to a specific mail address. This is a feature that is very useful for doing things like surveys and basic initial user/customer engagement.

For internal use it should be more than fine. When embedding in a website there are issues about user privacy which need to be considered and managed. As of this writing, though Google itself does comply with the laws of the land (GDPR in the EU, FCC & FTC in the US, and other regulations in other countries), things like right to be forgotten should be practiced - i.e. a company should be able to either script or manually delete a user entry from someone who requests to do so.

Here are some more references I found helpful when setting up this script.

I am not a privacy lawyer, but I want to make the information available about how useful the forms tool is and can be. The alternative to using something like forms requires a larger amount of code, the ability to setup a database of some sort, employing proper SSL certificates on the server, the server itself and likely storage of said server, another server or software set to send and receive emails, and a manager to run all of that infrastructure and backend. For anything which might not warrant all of that overhead, Google Forms is a great tool for collecting, managing and reacting to feedback.


What is a server?


This blog and video aim to introduce and explain servers.

From 1 GB of RAM to 3 TB of RAM, there is a slew of servers for a wide variety of usage cases. I try to break it down by the services running on any given box, explain a little bit of the hardware differences and then go into more depth using the open source operating system, FreeNAS, as an example of a home server. 

I know a lot of concepts covered in the video weren't covered before, and per your interest those could be critical or just details. I'm linking some more information about the concepts covered below.

Off-the-bat - the FreeNAS instance I'm running is not production/persistent. If you want to install and setup FreeNAS be sure to follow the recommended hardware specifications from iXsystems.
https://www.freenas.org/hardware-requirements/

More information about the technologies discussed are below.

  -  I talk more about this in the below video as well
  -  Very general here I'll try to cover the topic more in depth in a future video

Remember, while there is always more to know, most of the basics just build upon one another. Day-by-day, week-by-week, you will gradually learn the importance and competence of all these details. It takes time.

Essentially there is a multitude of ways to split up tasks and data running on a server, and also share said data between devices. FreeNAS offers a nice UI for interacting and setting up common services that have immediate value for home / small office users. Its services can help with data backup, file sharing, redundancy, cloud sync, and, with plugins and jails, has the ability to add more services as needed. 

One more video I hope to share is a short one. In the first video, I used the most open way to create a share on FreeNAS 11.3. However, a better practice is to ensure a specific user is set to the owner of that share, and then let users login using that account name and password.


Networking introduction


This video is a quick introduction about networking on computers. It covers some high-level concepts, such as packets, TCP/IP, IP addresses, DNS, DHCP, as well as some useful commands. Again since this is a Linux based video a lot of the commands are shown using Linux, though Windows equivalents (ipconfig, arp -a, and ping) are also covered.

This is truly just an introduction of key concepts, and omits more complex topics of setting static IPs, bringing up a network on a Linux server, and complex routing or detailed firewall permissions, etc. These are all important for IT administrator work and I am linking some more useful links below. 

References:
Networking is an important part of using computers and tech, and having a basic understanding is really critical to starting on more advanced projects. Like with the other concepts covered in this blog, I hope this is a good starting point.