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!

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.

Overview of operating systems - Linux compared


This is an overview of Windows, macOS, and Linux operating systems from a usage perspective. While the other videos have been using Linux for various tutorials, this video attempts to just offer more background about how Linux is crafted and why it has so many distributions. The ugly term is Fragmentation, which is true, but one could also look at that as choice and options.

Since this is only focusing primarily on the desktop, desktop user interfaces (UI) are also explained a bit, as well as highlighting useful features/commands for installing applications on Linux.

This is not an in-depth comparison as there are many many differences in terms of how the architectures, permissions, and code bases differ between each OS. I hope this at least offers some background as to how the flexibility of Linux can lead to some complexity, and how that complexity can be managed.

Some more sources for images and market share are largely taken from Wikipedia:
https://en.wikipedia.org/wiki/Linux
https://en.wikipedia.org/wiki/Usage_share_of_operating_systems
https://netmarketshare.com
(Note: there is a bit of variance in the numbers I show and the raw desktop numbers from NetMarketShare data, but there is a constant variance. Windows is still king of desktops, Linux rules in the server space and, through Android, the mobile markets as well.)

Introduction to Programming: Python, Java and Javascript

This is an overview of writing a basic converter program in 3 different languages, Python, Java, and JavaScript. I personally have used this as an exercise to learn new languages particularly the process of getting variables, manipulating them, and returning an output. These concepts will help with almost any program that you want to make in the future.


The video took a little longer to talk through than I anticipated, but 15 mins per language is hopefully acceptable. Again just something I hope can help people get started.

Source code:
Links to more information:
A few books and other sites that are helpful - Intro to Python, Learn Java in 8 hours, W3 schools, and more. Here are a few links. There are also countless tips and tricks just by Googling and searching through https://stackoverflow.com/.
Here as well is a quick video about how to setup the OpenJDK package in Linux. Alternatively, Windows, MacOS, and RedHat Distros can install from Oracle directly or at the above link.



GIMP tutorial



This is a tutorial about one of the most popular open source and free image editing programs around - GNU Image Manipulation Program (GIMP). It's a powerful image editing tool with paths, color management, and layers. While perhaps not 100% on the scale of Adobe Photoshop or Lightroom, it does offer a great deal of functionality.

GIMP is available on most desktop platforms, including Linux, Windows, and macOS. Hope the overview is helpful to get those with and those without any image editing experience started.

Download GIMP
https://www.gimp.org/downloads/


Learn more:
https://www.gimp.org/docs/
https://www.gimp.org/tutorials/

iPhone image source:
https://techupdatess.com/its-time-to-take-googles-pixel-phones-more-seriously-engadget/
(again not mine, just used for the tutorial)

Since GIMP has been around for more than two decades, a great deal more information is available. I hope this is a good first overview of the basics.

Open Source vs Free to Use

So as this content gets flushed out, I want to ensure that I'm clear with what this blog and videos series are and are not.

I chose Open Source Tech Training (OSTT) as a name because I hope in some small way, this can help your average user get over any fears or uncertainty about open source and free tools. That said, what I share, is my own experience and workflows, not all of which are 100% open source. For example, the introduction to GSuite or Google Docs is a way that I tend to use email and office personally, and professionally these days. GSuite is free to use to a point (create your Google account get 15 GB of space in their cloud) but would not be considered open source as the underlying code is not public.

So what is open source? Search in Google and a few definitions come up:
  • Open source - "denoting software for which the original source code is made freely available and may be redistributed and modified." - Google search result for "Define open source"
  • Open-source software "is a type of computer software in which source code is released under a license in which the copyright holder grants users the rights to study, change, and distribute the software to anyone and for any purpose." - Wikipedia
A couple of items needed are the software is free to use, but the code must also be freely available, and allow for other people to make changes. Lots of tools and services, like Linux which we covered, FreeBSD, or Signal Messenger, adhere to the standard of open source. Those with the knowledge and willingness, can go find the code (much of which is shared via GitHub), and can tweak, modify and help improve the code that is there. 

It's a community. Open source is built by both skilled developers and unskilled people looking to learn, spending time to improve code and projects. Many people will explain how they became involved and often it has to do with pure interest. Open source can also allow for a wider net of developers to work on something. While a corporation would have more control on direction for a project, it takes a lot of resources to create modern applications, including both the initial development and testing and debugging. Open source helps as anyone who finds a bug can report it and become involved in the process of fixing it, so for many smaller projects its a good way to get started to help iron out bugs and field test a software at least at its most basic level. 

Coming back to this blog and effort, I am no developer, and haven't been involved in the community aspects, though I have great respect for the people who have that knowledge. What Open Source Tech Training seeks to do is explains how to use open source and free software to handle common tasks. In that sense, I talk almost purely about the usage of these tools, and am not too concerned about the nuances of only using open source. Its really about finding what works for your workflow, and what we're focusing on is some tips and tricks to explore how these tools can be used.

Using G Suite and Google Docs



G Suite is the current term for the whole range of office / productivity applications that Google offers for free with your Google account. Beyond just Gmail, it includes the following applications:

  • Gmail
  • Docs (like Word)
  • Sheets (like Excel)
  • Slides (like Powerpoint)
  • Drive (cloud storage / file sharing)
  • Forms
  • Hangouts (messaging)
  • Meet (concalls)
  • Sites (your website)
  • App maker
  • Jamboard
  • and more...
G Suite when viewing their site is the business variant for enterprises and has multiple subscriptions. That said a standard Google account will also have most of these features, particularly all of the Google Docs, Sheets and Slides, so it is easy to get started. For more info about the professional version see here.

More useful links about getting started using Google Docs and G Suite are below:
Though not open source, it is very useful to get started with as most already know, and we'll be exploring some more cool features that it can do with Forms, Sheets and Scripts in a later tutorial.

Linux overview and introduction


This video is somewhat in depth on my thoughts about Linux and its background. For those of you just looking for how to install, feel free to jump to minute 35.

What we cover is a slightly more detailed overview of Linux, including how to get started and some things (like enable your firewall) to run when first installing Linux. Linux Mint is used as the example just because it is popular and has a more familiar user interface for people used to Windows.

For more information about the source material and references used, please see the links below. To download some popular Linux distros and find out more info about where to learn all the ins and outs of Linux, please check out the Quick Links in the sidebar.

Linux commands:

Creating a bootable USB:

Still have more to come, hope this is helpful.

What are we doing here?

This blog is aimed to be a supplementary reference to a series of YouTube videos I am slowly putting together as free training / overviews on using open source and free software tools. The name is opensourcetechtrn because I can't really think of anything better, but not all tools covered are necessarily open source, and some do have paid features you can decide if you wish to use or not.

What I hope this site and video series can be is a reference to get more people started and understanding of how to use tools like Linux, Google Docs, GNU Image Manipulation Program (GIMP), and FreeNAS to better understand computers, website design, programming, and more. These are a collection of tools that I myself use and have had to learn through years of combing the Internet for information about how to do things like create websites, backup files, share files, script functionality in spreadsheets, etc. In my time, the more I used these tools, the more I learned and the more interested I became in the history and functionality they offer. My goal is to help gather these tools, speak on their usage, go through how to use them on a basic level, and provide more reference links for those of you who wish to master any of these topics.

The series will cover everything from fundamentals of an operating system, to getting started with Linux, to using GIMP for photo editing, and even some rudimentary programming with Python and Java. I am not a master of any of these tools, but I have through years of bumbling around learned a few things, and hope my experience can be useful for non-technical people to get over the fears of starting. Like it or not, technical skills are becoming a requirement for nearly every industry with average salaries well above minimum wage.

When I graduated collage with a liberal arts background, I never thought I'd end up learning so much about computers, servers, programming, and more. These 'geeky' technologies are in fact not only accessible, but really handy, and I truly believe anyone can learn them.

I hope this page can be useful and help more people get started understanding open source tech.