Documentation for Web-Dev volunteer instructors:

Here you will find information about the role of an Instructor and a T.A. also an explanation about the class details.


When do the classes are taught?
Almost every Saturday (No class on holidays for more details see schedule)

where is the class Location?
Refugee Services Office
Utah Department of Workforce Services
250 W 3900 S
Salt Lake City, UT 84111
Map Location: LINK
The classes are in: Building “B”

How can I become a volunteer?
First, fill the information on this LINK form, we will contact you and provide you with your Log-in Credentials to the teaching site:

When is my turn to teach:
Here is the link to the schedule where you can see what days are open and you can add your name.

Can I assist to classes when I’m not teaching the class?
Yes, you can assist to all the classes every Saturday, and support the class as T.A.

How can I prepare when is my turn to teach:
Use your Log-In credentials to review the class a couple of days before Saturday, in the portal: LINK
There you will find the topic and content material that you will teach.

Where can I get help if I have questions about the class material?
Ask the other instructors in the Slack Channels or email administrators.

How much can I deviate from the content on the class-portal?
When is your turn to teach you can use your own examples and material as long as you teach the intended topic for that class.

What can I do if I can not teach the day that is my turn?
Contact the Administrators, and let them know
If possible, contact other volunteer and ask her/him to teach.

Can I take more time to teach my class?
No, the students and other staff members have other duties and responsibilities.
Start and End the class on time.

Video Training:

For video training in how to use the site as User and Admin see the following video.

Note: you only need to see the first 11 minutes.



Category: Miscellaneous | Comments Off on Documentation for Web-Dev volunteer instructors:

Web Dev Class – Content Creation Documentation

Hello this post is intended to provide guidance in how to add content to the classes for the Utah Department of Work Services – Refugee Division Classes.

The following is the basic documentation of how to contribute in the content creation.

Content Creation Info


Target Audience:

This class will be to complete beginners with no programming background, Mostly High School Students, and some adults too.


Due Date:

There is no a hard date yet but the center is shooting for the 1rst week of October 2017. and that is our due date.


Class Schedule:

Saturdays 2 hrs. class, and the program will run for 25 weeks time, the program is composed of 3 separated blocks:

  1. Web-Design Intro
  2. JavaScript Intro
  3. WordPress Intro


  • JavaScript & Web-Design Block each section should be 1-hr content.
  • WordPress Block each section should be 2-hrs content.

For the 1rst part of the class we will have two blocks (Web-Design & JavaScript) taking 1 Hr. each. those will be teach one after the other the same day, until week 16,

Then during the 2nd part, the word-press block will run for a single two hrs class for the next 6 weeks.

There are 3 more weeks leave as a buffer for holidays or extra projects. at the end.

The following image show how the 3 blocks of the class will run.

In the example picture before, we are supposing that the Web Development Course run from 1:00 pm to 3:00 pm, as right now the coordinatosr do not know the real schedule but they confirm that will be a two hrs class each Saturday.

if yo have any questions about this let me know, is very important that you understand this, so keep in mind that when creating content if you are creating a section for Web-Design or JavaScript you should create enough content to cover 1 hour, but if you are creating one section for WordPress, each section must have enough material to last 2 Hrs of teaching in class.


Online Portal:

The students and Instructors will be using the portal actually located:   We will be creating the content material for this site, this is a word press site, this is the place where you will be adding the content.

Currently the site is hosted in my sever, in the near future this site will be migrated to the Refugee Center Server, the URL will change, I will let you know when that happens.


Content Creation Work:

Most work will be online, so we do not have to meet to work, I will be providing Usernames and Passwords so yo can add content any time and any where you have time. but if you want to meet or just hang out let me know, and we can go for a burger.

For more instructions in how to add the content to the Online Portal, see the video below where I do an example.

NOTE: Try to incorporate videos from Plural Sight in the homework or during class, for one example see: Block JavaScript Section 5.2.

All students have access to Plural-Sight, and the center will provide you with an account to each of you, I will send you login Credentials soon.


What to do:

To have order, we need to know who is doing what, other wise we run the risk of two or more people working on the same section, and that would be BAD, to avoid that we will be using a Google doc spread sheet with a color code that shows what parts are in done, what parts are in development and by who, and what sections no one has work on and you can take one and do it, the color code is is in Column J.

  • The spreadsheet: LINK



The official way to communicate will be using the existing Slack URETC Tech Classes for that class, we can use email and phone too, but Slack is better, to see the general discussion on that channel follow this LINK

To be more specific we will be using a sub-channel call: ” content_creation ” and here is the LINK 



After completion of the content creation, if you or someone you know would like to teach one class one Saturday or more than just one, sing you name in the Schedule. Link

Note: I will create the schedule once I have the dates.

How to Add Content:

The following video is an example in how to add content.



For questions, send me a message in Slack, or you can E-Mail Me.

We truly

Category: Miscellaneous | Comments Off on Web Dev Class – Content Creation Documentation

Regular Expressions

A regular expression (regex or regexp for short) is a special text string for describing a search pattern. You can think of regular expressions as wildcards on steroids. You are probably familiar with wildcard notations such as *.txt to find all text files in a file manager. The regex equivalent is ^.*\.txt$.

And here is an example in how to use them:

a second diagram of the same case with different explanations:

for more information: Link-1  —  Link2  —  Link3  —  MDN

Regular expression playground/testers:   —  —

Or you can use this link to go to another page with a complete cheat-sheet: LINK

This is an example that I use in one Kata:

In this blog post I keep the flavor or Regex to a JavaScript tone.

Now lest review some of the basics of RegEx:

  • Literal characters: a
  • MetaCharacters: wild card

Meta Characters:



To use a regular expression in a IF( … ) statement we can use the methods:

x.match( regex )    — String type

x.test( regex )   —  Method in the RegExp prototype.

and an example code would be:



Category: Miscellaneous | Comments Off on Regular Expressions

Linux Related

Here you will found information about different topics that are helpful to the successful use of LINUX, right below are some of the links with useful information.

How to use Linux: Link1

Youtube Channels:


Basic Software that I use:

  • Synergy
  • Dropbox
  • Simple Screen Recorder: Link
  • Cheese (webcam): LInk
  • VLC Player
  • QMMP Audio Player
  • Clip Grab: Link
  • Skype 4.3 for Linux: Link
  • Kden Live (Video Editing): LInk    Uninstall
  • Atom: Link


Make LInux Faster:


Chrome eats up your memory(RAM) so much. You have to disable hardware acceleration in chrome settings

Steps A:

  • Go to chrome://settings
  • Untick “use hardware acceleration when available”

Steps B:

  • Go to chrome://flags
  • Disable “GPU Rasterization”

also check how chrome uses memory ( Shift + Escape )
–Because extensions uses more memory too. If you find high memory usage in extensions (Adblockers are memory hogs), remove them too. That would help.

This would reduce the memory usage significantly.


– – – – – – –

LInux Hard-Drive Memory Swaping:

Note: before you execute the following make sure to install “gedit” => sudo apt-get install gedit

How do I make my Ubuntu – Mint faster. (Applies for Desktop, Laptop and Note Book)
By default, Ubuntu, unfortunately too much tendency to start using the swap (virtual memory on the hard disk). Useful for servers, but not for normal use.
This speaks Ubuntu, especially with 512 MB of RAM or less, the swap too quickly. Who writes on the hard drive slow ubuntu considerably. Virtual memory on the hard disk is simply much slower than the “real” RAM.
The swap tendency may have a value of 0 (fully off) to 100 (swap is constantly used).

First check the current tendency of your Ubuntu swap:


Probably the tendency to swap 60, which is only for servers is a good value. For normal home use is far too high.
Reduce the swap tendency therefore as follows:


The previous command will open the file in gedit.
Add at the bottom of that text file, the following lines (copy and paste):

  • Save the text file and exit Gedit.
  • Restart Your Computer: And now it’s done at 10.

Home rule is a workable example Ram = 1 GB or more 10.
Less than 1 GB Ram = 1.
So I gave him 10 standing.


Installing Flash on FireFox for VUDU.COM

LInk with instructions: LINK


Using “SOLAAR” as a substitute of “Logitech Unify”

Once again the Open Source community to the rescue, with the creation of Solaar. an opensource solution for paring Logitech Wireless devises with the receivers, the address of the project: Solaar.

To take advantage of this software use the following commands:

after that you can open the graphical interface to do the paring, you might need to unplug and re-plug the receiver. Once again thanks to the Linux Community for this.

Printer Installation:

I got this instructions from the following: Link


01- Installing CUPS

To Install CUPS open the terminal and type:  sudo apt-get install cups


02- Downloading the Drivers:

Go to the official Brother page Link and download the .deb version of the CUPSWRAPPER and LPR.

To make my life easy I save those files in my GitHub. you can download from there: MFC-7360N


03- Installing the printer drivers

Open the terminal, CD to the folder whit the files, type the following commands one at the time:

and the printer is install.


04- Change the printer to be Network.

Click: Menu / Control Center / Printers

There Right click to the printer: MFC7360N / select “Properties”

in the line: “Device URI:” click the button “Change”

in the following window from the options select from the list in “Network Printer” (if not populate wait a minute)

Select: Brother MFC-7360N  the option that says: AppSocket/JetDirect network printer via DNS-SD.

apply and save the changes.


—  — — — — — —

For more information see this link: Link  –  Link2


Manual Installation using Cups Local Host

01- In a browser type in the address bar:  localhost:631  to open CUPS.

02- Click “Addint printers and classes”

03- Use the menu to install the Printer.


Need to know space available in your computer?

Basically use the command

For more information use df command + one of this options:

Installing MFC-7360N Network Scanner

Here a page with some Free Scanning Software for Linux: Link

Well I did so many thing and follow so many instructions in internet, and finally I found the following instructions:

Note: I do not know if some of the other things I did are actually required for this to work, so, follow this instructions and if this do not work well “GOOGLE IT” Good Luck.

. . . . . . . . .

MFC-7360N Network Scanner

Go to the official website to get drivers: Link

On the Download Page select: OS: Linux(deb)   &   Scanner driver 64bit (deb package)  there press “Agree to the EULA and Download” 

For Instructions in how to Install driver and Set-Up Network Scanner: Link

After this just reinstall Simple-Scan to make sure that is updated and will recognize the Scanner

Here is another site with some information: Link, Link2.


Acouple of thing that I did that I do not know if it was helpful, do this after the previous instructions fail:

install xsane
sudo apt-get install xsane

more instructions; (go to the scanner section down in the page)
Ctrl + F (Configuring a Network Scanner)

How to set up a USB network printer and scanner server on Debian


If after doing this is not working, well “GOOGLE IT”, and Good Luck.

To find out what Linux Distro and version is install in your machine, in the terminal type: cat /etc/*-release   also:    cat /etc/linuxmint/info


Reinstall Linux:

Get the ISO version that you want, the one that I use is:

DESCRIPTION=”Linux Mint 18 Sarah”
GRUB_TITLE=Linux Mint 18 MATE 64-bit

Then get the software to put it on a USB

– – – – – – – – – – – – – – – – –

Plug in the USB flash drive and determine the device it’s mounted on with the command:

sudo fdisk -l

This time around it was /dev/sdc1 for me, so I’ll use that as my example.

Umount the device

umount /dev/sdc1

The next step is to copy the iso. copy to the device not partition (i.e copy to sdc not sdc1) as shown below :

sudo dd if=filename.iso of=/dev/sdc bs=4M


  • For some distros that support making a bootable USB via DiskDump, you can use sudo dd if=/path/to/filename.iso of=/dev/sdX bs=4M to make USB installation media.

IMPORTANT: Make sure you replace sdX with whatever your USB drive corresponds to (you can find that using lsblk).

now perform final steps :


sudo eject /dev/sdc

That’s all . 🙂

    – – – – – – – – – – – – – – – – –

after this test your drive and it should work

How to find your IP Address:

in the terminal type: ifconfig

Audio & Microphone Manipulation

To use open the terminal and type: alsamixer

Instructions in how to use it: LINK

Format a USB

  1. Click Menu & search for: disks
  2. Select the USB & Click the Gears icon
  3. Select: “Format Partition”

Installing the USB-Monitor

how to install the driver:

I follow the instructions on the site above.
when installing the generc fail
sudo apt-get install linux-generic-lts-utopic xserver-xorg-lts-utopic libegl1-mesa-drivers-lts-utopic xserver-xorg-video-all-lts-utopic xserver-xorg-input-all-lts-utopic
after fail I read the error and and install
sudo apt-get install linux generic
then I run the previus command and it work.
then sudo apt-get install dkms
then Log in to the folder where I had the newest driver:
prepare the driver for installation by
01- open the visual folder right-click Properties/permisions/allow-files-execute-as-program
02- then in the terminal chmod +X
03- install the driver: sudo ./

then I restart the computer
then sudo apt-get update

and it worked


How to uninstall DisplayLink Ubuntu software
sudo displaylink-installer uninstall

more trobleshouting

how to install the .run files
Right click on the file in the file manager and click ‘Properties’. Click the ‘Permissions’ tab and tick the box that says ‘Allow executing file as program’.

Terminal Method

Assume the file is called and is in the folder /home/user/Downloads. You will need to modify these instructions to fit your situation.

Open a terminal (Applications->Accessories->Terminal).
enter cd /home/user/Downloads
enter chmod +x
enter ./
if step 4 fails with a message including ‘permission denied’, try entering sudo ./ (you will need to enter your password for this).
testing — trobleshout

to chekc the version of kernel and Xorg in Terminal:
‘Xorg -version’ for Xorg
‘uname -a’ fro the kernel

Installing Fire Fox Nightly

Official page for Download: LINK

For a slick installation using the Terminal:

  • sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa
  • sudo apt-get update
  • sudo apt-get install firefox-trunk

There is info on the packages here:

More information and instructions in how turn off the: xinstall.signatures.requred  to false so you can install unsigned add.ons jut type this in the browser:  about:config

or read more info about: LINK



Installing MySQL in Linux

Site with Information: LINK

Video with Instructions: LINK

Installing LEMP stack: LINK

Increase Volume to Videos

This is a command line terminal software no user gui interface.
Name of software: FFMPG 
Software Page
other links:
How to install:
How to use:
Terminal Commands:

Few seconds latter you will have the new file with higher audio.


Category: Miscellaneous | Comments Off on Linux Related

Modify Terminal

Other Links: Colors   — link1  —  Link2  —  Link3  —  Link4  —  Link5  —  Link6

video links: V1   –   V2   –   V3     VA1  — VA2


To apply changes to the “.bashrc” file without closing and reopen the terminal:


Storage current: .bash_profile  &  .bashrc  files in a directory (DotFiles)

create new: .bash_profile  &  .bashrc

to make that the configuration on .bashrc  applies to .bash_profile type the following code on the newly created “.bash_profile” file

now time to work on the configuration, and lest start wit the “Text” that is before the blinking cursor on the Terminal with:    PS1=”Edxael: “;



Category: Miscellaneous | Comments Off on Modify Terminal


Hello, sometimes when reading I found a quote that is interesting and here is where I save it.


“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler, “Refactoring: Improving the Design of Existing Code”


“Programs must be written for people to read, and only incidentally for machines to execute.” Harold Abelson, Structure and Interpretation of Computer Programs


Category: Miscellaneous | Comments Off on Quotes

JS Question

Hello I’m currently working in a simple “Vanilla JavaScript – To Do App” you can see the Work In Progress:

In the early stages I found a chrome behavior that raise a question about Plain-Vanilla JavaScript, lest start with the question first and then, the explanation(documentation) of the question:

“Why the results of console.log() in Chrome are modify BEFORE we call the function that will modify them.???”

Now the Explanation:
when I use Google Chrome “to console.log()” the “Console” display a modify Object before we get to the Function to modify the Object.


Im creating a basic Todo-App stored in a Object, with the following Code.

As you can see the property “td_obj.list” originally has two elements, then we execute 3 commands (functions):

  1. First we print it (on the console)
  2. Then we add a new task & print it.
  3. Finally we change an element & print it.

When runnign this code “Google Chrome Console” should print:

But Instead “Google Chrome Console” prints:

For more details see “print screen” below


But when I run the same code on JsBin the output if as expected (No modification before function is call), to see this code on JsBin –  Link

I also have the files that I use on Google Chrome in GitHub: Link

Finally I have this code in a live website:

  1. Open Chrome
  2. Open Dev-Tools
  3. Select Console

Why the results of console.log() in Chrome are modify BEFORE we call the function that will modify them.???
is this a BUG in Chrome???
why is doing this???
how can I avoid it???


Category: Miscellaneous | Comments Off on JS Question

How to Ask Questions to Programmers

People will be willing to help you with your questions, but is very important that you know how to ask the right question, so you can help the person that will answer your question to really understand what is what you are asking and he/she will be able to provide the correct answer.

here is an article that provide great information about this topic.:

How to be great at asking coding questions


Category: Miscellaneous | Comments Off on How to Ask Questions to Programmers

Set up local web server on Linux



Instructions in: Apache2  –  Linux-instructions  –  MDN

On the Terminal go to: /etc/apache2/sites-available and make a copy of the file 000-default.conf

then edit the file mysite.conf  if questions in how to use:  GEDIT Tutorial

Installing XAMPP

Download XAMPP: Link

link with instructions in how to install and Use: Link

On the visual interface go to the Directory with the Downloaded file:

right click / Properties / Permisions  (Click  “Allow executing file as program”)

In the terminal, CD to the folder with the executable then:

and the installation will begin.

  • – How to start XAMP

How open the Graphical Interface:

And this is what you should see:




The installation proof index.html is located:  ~/var/www  in the browser:

To install the default LAMP stack:  Link 

Start, Stop, Restart: Link1

To start Apache 2 web server, enter:





Category: Miscellaneous | Comments Off on Set up local web server on Linux

Installing: Python in Linux

Python + Linux + Atom

Install: Python in Linux

The Installation of PYTHON was done using the instructions provided by:

cd ~/usr/src/Python-3.4.5

To go, Terminal Pyton Enviroment:

  • Go home directory: cd + enter
  • Type: python3


To get out of the Python enviroment just type “exit()”

you can run your files the same way than ruby by going to the local directory of the file typing:



Category: Miscellaneous | Comments Off on Installing: Python in Linux