Backup, archive, compress Linux files tricks

Backup, archive, compress Linux files tricks

==================

Some of Linux Backup Utilities are

cpio tar gzip bzip2 xz dd rsync dump restore mt

Also exist some Backup Programs for Linux like Amanda and Bacula

Some commands you may use with the Backup Utilities above are [/dev/st0 tape exist the backup or other storage medium]

cpio
ls | cpio --create -o /dev/st0  # create an archive

cpio -i *.c -I /dev/st0   
# extract *.c files from archive if no RE all extracted

cpio -t -I /dev/st0  # list archive contents

tar
tar --create --file /dev/st0 /root  
tar -cvf /dev/st0 /root
tar cvf file.tar dir1  # "-" is optional for tar command
# create an archive

tar --extact --same-permissions --verbose --file /dev/st0
tar -xpvf /dev/st0
tar xpvf /dev/st0
# extract from archive

tar xvf /dev/st0 *.c  # restore only *.c files

tar --list --file /dev/st0  # list contents of tar backup
tar -tf /dev/st0

gzip, bzip, xz

tar zcvf source.tar.gz source  # compress as gz in combination with tar 

tar jcvf source.tar.bz2 source  # compress as bzip in combination with tar 

tar Jcvf source.tar.xz source  # compress as xz in combination with tar 

these commands are more efficient than the two together commands:
tar cvf source.tar source ; gzip -v source.tar  # because this has intermediate step but above archiving and compression happen same time

extraction
tar xzvf source.tar.gz
tar xjvf source.tar.bz2
tar xJvf source.tar.xz

modern version of tar detect compression used auto and Not needed z in extraction
tar xvf source.tar.gz

rsync  // Synchronize the two file system locations - or between the network machines(folders of)
rsync file.tar someone@backup.mydomain:/usr/local
rsync -r a-machine:/usr/local b-machive:/usr/
rsync -r --dry-run /usr/local /BACKUP/usr

find Linux command tricks asked in exams and how to write

find Linux command tricks asked in exams and how to write

======================

A

The find Operators (!, -o, and -a)
There are three operators that are commonly used with find. The ! operator is used
before an option to negate its meaning. So,

find . ! -name "*.c" -print

selects all but the C program files.
B
To look for both shell and perl scripts, use the -o operator, which represents an OR condition. 
We need to use an escaped pair of parentheses here:
find /home \( -name "*.sh" -o -name "*.pl" \) -print

The ( and ) are special characters that are interpreted by the shell to run commands in
a group. The same characters are used by find to group expressions using the
-o and -a operators, the reason why they need to be escaped.
C
Also to find all *.sh (shell scripts) files for user tux execute:
find /home -user "tux" -name "*.sh" -print 
find /home -user "tux" -name "*.sh" -exec ls {} >| file.txt \; # write listing in file.txt 

these two commands  are equivalent to these two >>>

find /home \( -user "tux" -a -name "*.sh" \) -print
find /home \( -user "tux" -a -name "*.sh" \) -exec ls {} >| file.txt \; # write listing in file.txt 

I conclude in some commands use find for finding:

Directories with sticky bit set:
find / -type d -perm -1000 -exec ls -ld {} \;

Files with SGID set:
find / -type f -perm -2000 -exec ls -l {} \;

Files with SUID set:
find / -type f -perm -4000 -exec ls -l {} \;

Files with SUID and SGID set:
find / -type f \( -perm -4000 -a -perm -2000 \) -exec ls -l {} \;

Files with SUID or SGID set:
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;








































Note:
ALL THESE COMMANDS - IF NOT WORK - MAKE THE APPROPRIATE SPACING eg  \( -user "tux" like exactly I write

Further Reading Resources

https://likegeeks.com/linux-command-line-tricks/

General used cron jobs examples and Facebook/Twitter post cron jobs

General used cron jobs examples

and Facebook/Twitter PHP post cron jobs

=================

crontab -l   # list cron jobs 

crontab -e   # enter cron jobs

30 7 */2 * * /usr/bin/php /path/to/facebook_share.php | mail -s "Auto share results" you@your-email.com

more info here:

https://www.pontikis.net/blog/auto_post_on_facebook_with_php

 

Linux Distros for < ... >

Linux Distros for < … >

===========

Gaming

Steam OS – https://store.steampowered.com/steamos/

 ==================================================

Photography / Video Production / Graphic Designer

Ubuntu Studio – https://ubuntustudio.org/

 ==================================================

Programming / Soft Development

Semi Code (out of date) [Preinstalled Apps And Soft IDEs]

 ==================================================

Workstation User / Programmer / Coder

Fedora or Ubuntu or Linux Mint or Linux Arch or Antegros

 ==================================================

Ethical Hacking & Penetration

Kali Linux or Parrot Linux // https://www.kali.org/ – https://www.parrotsec.org/

 ==================================================

Consumer Web Server

CentOS 7 or Ubuntu Server or Debian – https://centos.org/ – https://www.debian.org/ – https://www.ubuntu.com/server

 ==================================================

Enterprise Server

RHEL 7 – https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux

or Ubuntu Server – https://www.ubuntu.com/server

 ==================================================

Linux with Windows like Desktop

Linux Mint – https://www.linuxmint.com/

 ==================================================

Linux with MacOS like Desktop

Elementary OS – https://elementary.io/

 ==================================================

Linux Foundation Exams LFCS , LFCE – https://www.linuxfoundation.org/

are available for

CentOS 7 Server or Ubuntu Server
– https://centos.org/ – https://www.ubuntu.com/server

=YOUTUBE========================

It doesn’t matter what kind of user you are, there exists a perfect Linux distro for you.

1. Best Linux Distro for Desktops and Powerful Laptops – Linux Mint, known to provide a near-to-perfect Linux desktop experience.

2. Best Linux Distro for Regular Laptop – Ubuntu MATE. Ubuntu comes with nine different flavours that have their own programs, features, and desktop environments.

3. Best Linux Distro for Older and Slow Hardware – Puppy Linux. It is ideal for the conditions where a compact distro due to older hardware and low computing resources.

4. Most Customizable Linux Distro – Arch Linux. It is a minimalistic Linux distro that allows your to start learning Linux from scratch. But, it is not recommended for the beginners as thereís a lot of command line work and manual configuration.

5. Most Beautiful Linux Distro – elementaryOS. The maker of this completely community-based OS are an expert in design and it is one of the prettiest Linux distributions you will come across.

6. Best Best Privacy-focused Linux Distro – Tails. It is a live operating system that you can boot on any computer from a USB stick, SD card, or DVD and used by the likes of Edward Snowden.

7. Best Linux for Ethical Hacking and Penetration Testing – Kali Linux. It is a special purpose Linux distro for pen testing and network security testing. With more than 600 tools, Kali Linux is designed to be used in a single, root user scenario due to security purposes.

8. Best Linux Distro For Servers – Debian. One of the longest running Linux distros, Debian, has served as a framework for many other distros like Mint and Ubuntu.

9. Best Linux Distro For IoT – Snappy Ubuntu Core. Focussing on Internet of Things application, Canonical released a Snappy version of Ubuntu Core OS for IoT.

10. Best Linux Distro For Video Editing and Multimedia Production – Ubuntu Studio. It fills an empty spot of a multimedia production-focused Linux distro. It comes with tools for recording, mixing, mastering, live processing, or even coding.

11. Best Linux Distro For Gaming – SteamOS. Honestly, there isn’t a Linux distro that is perfect for playing all kinds of game. With each passing day, more and more games are being officially released on Linux.

================================

Logical Volumes (LVM), Disk Encryption, Creating a RAID Device

Logical Volumes (LVM), Disk Encryption, Creating a RAID Device
in Linux

================

In this post I show you these three (3) advanced procedures for CentOS 7 Linux Server…

I recommend try them in test VM Server and after in Production Server…

A – Disk Encryption

Exercise 22.1 Disk Encryption
In this exercise, you will encrypt a partition on the disk in order to provide a measure of security in the event that the hard drive or laptop is stolen. Reviewing the cryptsetup documentation first would be a good idea (man cryptsetup and cryptsetup –help).

1. Create a new partition for the encrypted block device with fdisk. Make sure the kernel is aware of the new partition table. A reboot will do this but there are other methods.
2. Format the partition with cryptsetup using LUKS for the crypto layer.
3. Create the un-encrypted pass through device by opening the encrypted block device, i.e., secret-disk.
4. Add an entry to /etc/crypttab so that the system prompts for the passphrase on reboot.
5. Format the filesystem as an ext4 filesystem.
6. Create a mount point for the new filesystem, i.e. /secret.
7. Add an entry to /etc/fstab so that the filesystem is mounted on boot.
8. Try and mount the encrypted filesystem.
9. Validate the entire configuration by rebooting.

Solution 22.1
1. $ sudo fdisk /dev/sda
Create a new partition (in the below /dev/sda4 to be concrete) and then either issue:
$ sudo partprobe -s
to have the system re-read the modified partition table, or reboot (which is far safer).
Note: If you can’t use a real partition, use the technique in the previous chapter to use a loop device or image file for the same purpose.
2. $ sudo cryptsetup luksFormat /dev/sda4
3. $ sudo cryptsetup luksOpen /dev/sda4 secret-disk
4. Add the following to /etc/crypttab:
secret-disk /dev/sda4
5. $ sudo mkfs -t ext4 /dev/mapper/secret-disk
6. $ sudo mkdir -p /secret
7. Add the following to /etc/fstab:
/dev/mapper/secret-disk /secret ext4 defaults 1 2
8. Mount just the one filesystem:
$ sudo mount /secret
or mount all filesystems mentioned in /etc/fstab:
$ sudo mount -a
9. Reboot.

B – Logical Volumes (LVM)

Exercise 23.1 Logical Volumes
We are going to create a logical volume using two 250 MB partitions. We are going to assume you have real partition-able disk space available.

1. Create two 250 MB partitions of type logical volume (8e).
2. Convert the partitions to physical volumes.
3. Create a volume group named myvg and add the two physical volumes to it. Use the default extent size.
4. Allocate a 300 MB logical volume named mylvm from volume group myvg.
5. Format and mount the logical volume mylvm at /mylvm
6. Use lvdisplay to view information about the logical volume.
7. Grow the logical volume and corresponding filesystem to 350 MB.

Solution 23.1
1. Execute:
$ sudo fdisk /dev/sda
using whatever hard disk is appropriate, and create the two partitions. While in fdisk, typing t will let you set the partition type to 8e. While it doesn’t matter if you don’t set the type, it is a good idea to lessen confusion. Use w to rewrite the partition table and exit, and then
$ sudo partprobe -s
or reboot to make sure the new partitions take effect.
2. Assuming the new partitions are /dev/sdaX and /dev/sdaY:
$ sudo pvcreate /dev/sdaX
$ sudo pvcreate /dev/sdaY
$ sudo pvdisplay
3. $ sudo vgcreate myvg /dev/sdaX /dev/sdaY
$ sudo vgdisplay
4. $ sudo lvcreate -L 300M -n mylvm myvg
$ sudo lvdisplay
5. $ sudo mkfs.ext4 /dev/myvg/mylvm
$ mkdir /mylvm
$ sudo mount /dev/myvg/mylvm /mylvm
If you want the mount to be persistent, edit /etc/fstab to include the line:
/dev/myvg/mylvm /mylvm ext4 defaults 0 0
6. $ sudo lvdisplay
7. $ df -h
$ sudo lvresize -r -L 350M /dev/myvg/mylvm
$ df -h
or
$ sudo lvresize -r -L +50M /dev/myvg/mylvm

C – Creating a RAID Device

Exercise 24.1 Creating a RAID Device
Normally when creating a RAID device we would use partitions on separate disks. However, for this exercise we probably don’t have such hardware available. Thus we will need to have two partitions on the same disk.
The process will be the same whether the partitions are on one drive or several (Although there is obviously little reason to actually create a RAID on a single device).

1. Create two 200 MB partitions of type raid (fd) either on your hard disk using fdisk, or using LVM.
2. Create a RAID 1 device named /dev/md0 using the two partitions.
3. Format the RAID device as an ext4 filesystem. Then mount it at /myraid and make the mount persistent.
4. Place the information about /dev/md0 in /etc/mdadm.conf file using mdadm. (Depending on your distribution, this file may not
previously exist.)
5. Examine /proc/mdstat to see the status of your RAID device.

Solution 24.1
1. If you need to create new partitions do:
$ sudo fdisk /dev/sda
and create the partitions as we have done before. For purposes of being definite, we will call them /dev/sdaX and
/dev/sdaY. You will need to run partprobe or kpartx or reboot after you are done to make sure the system is properly aware of the new partitions.
2. $ sudo mdadm -C /dev/md0 –level=1 –raid-disks=2 /dev/sdaX /dev/sdaY
3. $ sudo mkfs.ext4 /dev/md0
$ sudo mkdir /myraid
$ sudo mount /dev/md0 /myraid
and add to /etc/fstab
/dev/md0 /myraid ext4 defaults 0 0
4. $ mdadm –detail –scan >> /etc/mdadm.conf
5. $ cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 dm-14[1] dm-13[0]
204736 blocks [2/2] [UU]
unused devices: <none>
You should probably verify that with a reboot, the RAID volume is mounted automatically. When you are done, you probably will want to clean up by removing the line from /etc/fstab, and then getting rid of the partitions.

A look at my old bookmarks of Safari and Chrome browsers…

A look at my old bookmarks of Safari and Chrome browsers…
Here the most important for the normal user… Worth surfing…
======================
http://ebooks.edu.gr/new/ // Greek Primary, Middle and Secondary Schools textbooks available in PDF Free in Greek
https://service.eudoxus.gr/public/departments // Greek University textbooks by course (Listings)
http://www.moec.gov.cy/ypexams/panexams/odigoi-exetaseon.html    Odigi Exetaseon Cyprus 2018 – Exam Guide Cyprus
Βήματα Σχεδιασμού Σχολικού Iστότοπου   // Make Web Site Instructions 
The Following Sites offer courses Free or Paid – from different Universities WorldWide
Pcb123 Design and Order Printed Circuit Boards
HSBC Offshore Banking
Free IDE Netbeans by Oracle – Docs
https://netbeans.org/kb/index.html

How to update && upgrade a Linux Distro – 5 Distros (5 Different command procedures)

How to update && upgrade a Linux Distro
5 Distros (5 Different command procedures)

================

Ubuntu 17.10, CentOS 7.2, Fedora 26, Antergos 18.3 (ArchLinux rolling-release), OpenSuse 42

================

coming soon!

Ubuntu 17.10

sudo apt update
sudo apt dist-upgrade
sudo update-manager
sudo do-release-upgrade

CentOS 6 & 7.2

cat /etc/redhat-release
yum check-update
yum update
yum upgrade

Fedora 26 –> 27
sudo dnf upgrade –refresh   # double dash without space between dashes
sudo dnf install dnf-plugin-system-upgrade
sudo dnf system-upgrade download –releasever=27   # last dash is double dash without space between dashes
sudo dnf system-upgrade reboot

Antergos 18.3 (ArchLinux rolling-release)

https://wiki.archlinux.org/index.php/System_maintenance#Upgrading_the_system

OpenSuse 42

https://en.opensuse.org/SDB:System_upgrade

My iPad 1 (2010) and why I will continue using it

by LSE, @lwdlse

I have writtеn this article, for my almost 10 year anniversary of my tablet an iPad 1 model 2010 and iOS 5.1.1 [it can Not upgraded beyond this since is iPad 1]…
I have Never get it serviced in an Apple service or other services lab, and is still working perfectly!!!
Primary usage of this tablet is 97% reading e-books PDF [2% iCloud Notes/Cal etc, 1% other Apps], so assist very well this purpose so, I do Not plan to change it soon… by buying a newer model…

That is why I love Apple products – durable products – and I pass half of my time on these like iPad 1, MacBook Pro 2016 Oct model 15″ w/ touch ribbon…
Below is a short video about my iPad 1 that’s as said nearly to serve a decade without malfunctions… or service efforts/costs to me (Only charging the only minimal cost!).

Screen Shots


ipad 1 invoice 2010

Video Screen Casts



The most basic example (“Hello World!”) to convert an HTML5 web app to desktop (binary) app [W10, MacOS, Linux]

The most basic example (“Hello World!”) to convert an HTML5 web app to desktop (binary) app [W10, MacOS, Linux]

=================================================

I. In this tutorial I will use in the first part(Part 1) Electron Frameworkhttp://electron.atom.io
II. And in the second part(Part 2)  I will use the NW.js (Node.js Library) for this – http://docs.nwjs.io/en/latest

Note: Also in the third way is to use Cordova to build a Windows 10 desktop app – https://cordova.apache.org [used also for building iOS & Android Apps & Windows Phone 10 Apps]. this will Not discussed here ….  https://cordova.apache.org/docs/en/latest/guide/platforms/win8/index.html .

The result will be almost the same a Desktop compiled Binary App for each platform.

A MAIN DISADVANTAGE is that “The downside of the Electron approach is that each app comes with a copy of two large software frameworks, Node.js and Chromium. The latter is technically a web browser engine, but as the web platform has expanded, the humble browser has turned into a sprawling software layer large enough to be an operating system of its own.”  … https://medium.com/dailyjs/put-your-electron-app-on-a-diet-with-electrino-c7ffdf1d6297

So a hello world app – minimal size – may be 115MB-200MB the same as one big app … ( source code minimal app be 2KB and source code for big app be 10MB – but the software frameworks make them the same relatively). Developers already have started to look for solutions as the link just above shows one … electrino…

 

 

General Steps

We proceed step by step how to:
Convert “hello world”(index.html local web page file), or http://www.google.com or other remote page, into a desktop binary app, in other words to a chromium independent window (without top bar controls like address bar or back & fwd buttons.

We start by installing Node.js if is Not yet installed in the computer… follow https://nodejs.org/en/download/

Also if you are in Windows 10 install Git Bash CLI [if Not yet installed] by installing Git from https://git-scm.com/download/win

For Linux / Mac, as for Git Bash CLI windows you can use the Terminal CLI app.

 

(Part 1) Electron Framework

Make a folder structure as Documents/desktop-apps/electron – open File Explorer and right click …/…/electron and choose Git Bash Here and confirm Node.js installed by [npm comes with Node.js]

LSE@PC7 MINGW64 /t/articles/desktop-apps/electron

$ node -v

v6.10.2

LSE@PC7 MINGW64 /t/articles/desktop-apps/electron

$ npm -v

3.10.10

LSE@PC7 MINGW64 /t/articles/desktop-apps/electron

$

==============================================

Generate a binary App using Electron from Hello World! Web App

Generally, an Electron app is structured like this (at minimum):  // more structure in Source Code

.../articles/desktop-apps/electron/your-app/
├── package.json
├── main.js
└── index.html
package.json
{
 "name": "your-app",
 "version": "0.0.1",
 "main": "main.js",
 "scripts": {
 "start": "electron .",
 "dist": "build"
 },
 "author": "LSE",
 "build": {
 "appId": "com.example.helloworld"
 },
 "devDependencies": {
 "electron": "~1.7.8",
 "electron-builder": "^17.1.2"
 }
}
index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Hello World!</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    We are using node <script>document.write(process.versions.node)</script>,
    Chrome <script>document.write(process.versions.chrome)</script>,
    and Electron <script>document.write(process.versions.electron)</script>. 
 <br/>
 <br/>
 <br/>
 <br/>
 <img src="img/mickey-mouse-icon.png">
  </body>
</html>
 

main.js
const {app, BrowserWindow} = require('electron');
const path = require('path');
const url = require('url');

// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let win;

function createWindow () {
  // Create the browser window.
  win = new BrowserWindow({
                           width: 1000, 
                           height: 700,
                           frame: true,   // put false for get a chromium windows completely frame-less
                           icon: path.join(__dirname, "img/favicon.ico")
                           });

  // and load the index.html of the app.
  win.loadURL(url.format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file:',
    slashes: true
  }));
 
 // Or use this and comment above for load url
 // win.loadURL("http://google.com");
  // Open the DevTools.
  win.webContents.openDevTools();

  // Emitted when the window is closed.
  win.on('closed', () => {
    // Dereference the window object, usually you would store windows
    // in an array if your app supports multi windows, this is the time
    // when you should delete the corresponding element.
    win = null;
  });
}

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', createWindow);

// Quit when all windows are closed.
app.on('window-all-closed', () => {
  // On macOS it is common for applications and their menu bar
  // to stay active until the user quits explicitly with Cmd + Q
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', () => {
  // On macOS it's common to re-create a window in the app when the
  // dock icon is clicked and there are no other windows open.
  if (win === null) {
    createWindow();
  }
});

// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.
====
end of electron code

LSE@PC7 MINGW64 /t/articles/desktop-apps/electron/your-app
$ ls
index.html main.js package.json
LSE@PC7 MINGW64 /t/articles/desktop-apps/electron/your-app
$ npm install   # type only this and press enter to install dependencies
> electron@1.7.10 postinstall T:\articles\desktop-apps\electron\your-app\node_modules\electron
> node install.js
....
....
LSE@PC7 MINGW64 /t/articles/desktop-apps/electron/your-app
$ npm start   # type only this and press enter to run app - in this stage a desktop app appear in your screen with Hello World!
> your-app@0.0.1 start T:\articles\desktop-apps\electron\your-app
> electron .

Close app by press Ctrl + C in the CLI Terminal or by press "X" on the right upper corner of the app.


LSE@PC7 MINGW64 /t/articles/desktop-apps/electron/your-app
$ npm run dist
> your-app@0.0.1 dist T:\articles\desktop-apps\electron\your-app
> build
Warning: description is missed in the package.json (T:\articles\desktop-apps\electron\your-app\package.json)
No native production dependencies
Packaging for win32 x64 using electron 1.7.10 to dist\win-unpacked
Warning: Application icon is not set, default Electron icon will be used
Building NSIS installer
 Packaging NSIS installer for arch x64
LSE@PC7 MINGW64 /t/articles/desktop-apps/electron/your-app
$


// here in this stage we get : 
T:\articles\desktop-apps\electron\your-app\dist\win-unpacked   // Run-able Windows app
T:\articles\desktop-apps\electron\your-app\dist\               // Install-able Windows app


2017-12-31_22-54-43






























=============================
source code here Electron

https://nodejs.org/api/os.html    //  <<<  you can find with Node.js the screenshot’s[the PC running App on system info] info here OS Node.js API <<<

Part 2 – NW.js Library

Get binary App using NW.js from web app

Step 1. Create package.json:

{
 "name": "helloworld",
 "main": "index.html",
 "version": "1.0.1",
 "description": "",
 "scripts": {

 "start": "nw .",
 "test": "echo 'Error: no test specified' && exit 1",
 "package": "nwb nwbuild -v 0.27.3-sdk ./ -o ./dist --output-format=ZIP",
 "package:run": "nwb nwbuild -v 0.27.3-sdk ./ -o ./dist -p linux64,win32,osx64 -r -- --enable-transparent-visuals --disable-gpu"

 },
 "devDependencies": {
 "nw": "^0.27.3-sdk",
 "nwjs-builder": "^1.14.0"
 }
}

main.js

// initialize your app
// and ...
nw.Window.open('index.html', {}, function(win) {});

 

Step 2. Create index.html:

<!DOCTYPE html>
<html>
  <head>
    <title>Hello World!</title>
  </head>
  <body>
    <h1>Hello World!</h1>
  </body>
</html>

 

Step 3. Run your app

LSE@PC7 MINGW64 /t/articles/desktop-apps/nwjs/app-nwjs
npm install// NOTES – if you do Not know latest versions in these lines:

 "devDependencies": {
 "nw": "^0.27.3-sdk",
 "nwjs-builder": "^1.14.0"
 }

// you do Not include them and proceed as follows

$ npm view nw dist-tags

{ latest: ‘0.27.3’,
alphasdk: ‘0.13.0-alpha4sdk’,
alpha5sdk: ‘0.13.0-alpha5sdk’,
alpha6sdk: ‘0.13.0-alpha6sdk’,
alpha7sdk: ‘0.13.0-alpha7sdk’,
sdk: ‘0.27.3-sdk‘ }

LSE@PC7 MINGW64 /t/articles/desktop-apps/nwjs/app-nwjs
$ npm install nw@0.27.3-sdk –save-dev

// Till here you can run app by running:

LSE@PC7 MINGW64 /t/articles/desktop-apps/nwjs/app-nwjs
$ npm start

To build app you run/install the(by default – latest version):
LSE@PC7 MINGW64 /t/articles/desktop-apps/nwjs/app-nwjs
$ npm i -D nwjs-builder

// equivalent to: npm install nwjs-builder –save-dev

LSE@PC7 MINGW64 /t/articles/desktop-apps/nwjs/app-nwjs
$ npm run package

> helloworld@1.0.1 package T:\articles\desktop-apps\nwjs\app-nwjs
> nwb nwbuild -v 0.27.3-sdk ./ -o ./dist –output-format=ZIP

{ version: ‘v0.27.3’,
flavor: ‘sdk’,
targets: [ [ ‘win32’, ‘x64’ ] ],
path: ‘./’ }

0: Read package.json
1: Prepare build directory at dist\helloworld-win-x64
2: Copy binary from C:\Users\User\.nwjs-builder\caches\binary-nwjs-sdk-v0.27.3-win-x64
3: Edit Windows executable
4: Make working directory
5: Copy included files to C:\Users\User\AppData\Local\Temp\d-11806-6336-7fj1i6.kkjkvgqfr
6: Compress application
7: Combine executable at dist\helloworld-win-x64\nw.exe
8: Rename application to helloworld.exe
9: Zip to dist\helloworld-win-x64.zip
10: Clean up dist\helloworld-win-x64

LSE@PC7 MINGW64 /t/articles/desktop-apps/nwjs/app-nwjs
$ npm start
=============================
source code here NW.js

https://nodejs.org/api/os.html    //  <<<  you can find with Node.js the screenshot’s info here <<<

2018-01-06_20-57-38

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Note – Cordova Hybrid Mobile Platform

Get binary Desktop/Mobile App using Cordova from web app

https://cordova.apache.org/docs/en/latest/guide/platforms/win8/index.html

 

 

Author
Leonidas Savvides
Web/Mobile/Desktop Developer
Www.LeonidasSavvides.com
Twitter @lwdlse
Lsepolis123@gmail.com

Leonidas is a Freelance Full Stack Web Developer and Hybrid Mobile/Desktop App Developer. He likes involved in new trends like ES6/ES7/ES8, Electron/NW.js and Cordova platforms, PHP 7 and Frameworks like jQuery Mobile, Ionic 2, Angular, React or CodeIgniter/CakePHP etc. He rarely finds free time, and almost always is programming or practicing/reading/watching/learning new technologies, in programming using Web Technologies.

 

My first PC Build – Help & Tips

My first PC Build – Help & Tips – Learning Material Used

I recommend Intel Processors due to the fact are used by Apple Macs hence is supported/you-can-build a Hackintosh system or run a Virtual Machines(VM) and have as guest platform MacOS in addition to the normal Windows 10 or Linux VMs…
I recommend pickup the items you want but Not purchase them at the moment,… but await a Holiday Discount period to buy them under discount… I buy most items under Black Friday(BF) period at 20% Off. You can buy at BF if USA store or at Prime Day from Amazon or at Xmas etc

 

eBooks

  1. (c) 2009 , Build Your Own PC – Do-It-Yourself For Dummies [ Part-of-Tens useful Tips at the end of the eBook ]
  2. (c) 2017 , Troubleshooting and Maintaining Your PC All-in-One For Dummies – 3/e
  3. How to Buy/Choose a PC.PDF
  4. Windows 10 Anniversary Update Bible (2017), Wiley
  5. Linux Bible 9th Edition 2015, Wiley
  6. Build a Better PC – 2013
  7. https://s3.eu-central-1.amazonaws.com/leonidassavvides/rhel_5_6_7_cheatsheet_11x17_0417_jcs.pdf

Web-Sites

  1. https://choosemypc.net
  2. https://pcpartpicker.com
  3. http://techreport.com/review/23624/how-to-build-a-pc-the-tech-report-guide/
  4. https://www.singular.com.cy/ – buy components etc

Videos

  1. https://youtu.be/mqb4dDSPRP0 – Win 10 Pro for 15$ [best to install/activate immediately]
  2. How To Build The Best PC For Photo and Video Editing
    https://youtu.be/7D50mMbxB8o
  3. http://techreport.com/review/23624/how-to-build-a-pc-the-tech-report-guide/
  4. Watch “Avoiding Common PC Building Traps – Episode 1,2,3,4” on YouTube
    1. https://youtu.be/-plesrt8ZCs
    2. https://youtu.be/pPFEkL5GIiI
    3. https://youtu.be/CB9KiKrC-C4
    4. https://youtu.be/CkbgkOeqT0Q

================================

Coming Soon my Components & Setup Process

15 Most Used Linux commands beyond the basics

15 Most Used Linux commands beyond the basics

==================

My 2017-2018 Coding Interests & Editors/IDEs

My 2017-2018 Coding Interests & Editors/IDEs

New Tech and Web Development Trends

=================

 

After finish current project

Upcoming Program Changes for the LFCS Certification Exam in 2018

Answers & Notes

If you sit for a free retake after 13:00 UTC on March 20, 2018, you will be tested on Domains and Competencies V3.18 (even if that is not what you were originally tested on during your first attempt).

LFCS Domains and Competencies V3.18

Essential Commands – 25%

  • Log into local & remote graphical and text mode consoles
  • Search for files
  • Evaluate and compare the basic file system features and options
  • Compare and manipulate file content
  • Use input-output redirection (e.g. >, >>, |, 2>)
  • Analyze text using basic regular expressions
  • Archive, backup, compress, unpack, and uncompress files
  • Create, delete, copy, and move files and directories
  • Create and manage hard and soft links
  • List, set, and change standard file permissions
  • Read, and use system documentation
  • Manage access to the root account

Operation of Running Systems – 20%

  • Boot, reboot, and shut down a system safely
  • Boot or change system into different operating modes
  • Install, configure and troubleshoot bootloaders
  • Diagnose and manage processes
  • Locate and analyze system log files
  • Schedule tasks to run at a set date and time
  • Verify completion of scheduled jobs
  • Update software to provide required functionality and security
  • Verify the integrity and availability of resources
  • Verify the integrity and availability of key processes
  • Change kernel runtime parameters, persistent and non-persistent
  • Use scripting to automate system maintenance tasks
  • Manage the startup process and services (In Services Configuration)
  • List and identify SELinux/AppArmor file and process contexts
  • Manage Software
  • Identify the component of a Linux distribution that a file belongs to

User and Group Management – 10%

  • Create, delete, and modify local user accounts
  • Create, delete, and modify local groups and group memberships
  • Manage system-wide environment profiles
  • Manage template user environment
  • Configure user resource limits
  • Manage user privileges
  • Configure PAM

Networking – 12%

  • Configure networking and hostname resolution statically or dynamically
  • Configure network services to start automatically at boot
  • Implement packet filtering
  • Start, stop, and check the status of network services
  • Statically route IP traffic
  • Synchronize time using other network peers

Service Configuration – 20%

  • Configure a caching DNS server
  • Maintain a DNS zone
  • Connect to network shares 
  • Configure email aliases
  • Configure SSH servers and clients
  • Restrict access to HTTP proxy servers
  • Configure an IMAP and IMAPS service
  • Query and modify the behavior of system services at various operating modes
  • Configure an HTTP server
  • Configure HTTP server log files
  • Restrict access to a web page
  • Configure a database server
  • Manage and configure containers
  • Manage and configure Virtual Machines

Storage Management – 13%

  • List, create, delete, and modify physical storage partitions
  • Manage and configure LVM storage
  • Create and configure encrypted storage
  • Configure systems to mount file systems at or during boot
  • Configure and manage swap space
  • Create and manage RAID devices
  • Configure systems to mount file systems on demand
  • Create, manage and diagnose advanced file system permissions
  • Setup user and group disk quotas for filesystems
  • Create and configure file systems

 

My Way to Linux Certification – Tips

My Way to Linux Certification [LFCS]

Valuable Tips & Help

 

Prior Register for Linux Exam & Tips

If you are complete beginner, I recommend to read some eBooks and take some online courses to pass the beginner’s level, and after Register for exam and then take more advanced online courses/eBooks especially for the Exam.

Exam done online [From your home/office room] from Chrome browser, embedded Terminal plugin … LF [Linux Foundation] setup a remote Linux server [CentOS 7 or Open SUSE 42 or Ubuntu 16.04 choice is yours/mine]…

I preferred Register for LFCS Administrator Exam of Linux Foundation because:

You do exam from Home without need to go to Exam center, but required have your PC screen monitored and having an external camera for monitoring room, by your exam proctor …etc . Also room must be quite and you/I being alone in the room…

I you want save some money: Register week LAST FRIDAY OF JULY – this day called System Admin day and MANY OFFERS EXIST for buying exam or bundles Exam + LFS201 Essentials of System Administration courseI saved $200 by purchasing an (offer) bundle 24 July 2017… I have one year to sit in my room online the exam…. and I have got a Linux course LFS 201 in the bundle… but I recommend you find and some other eBooks and courses … this never hurts.

You have one year to give the exam. Date/Time you/I define it. If you fail first time you have a second free retry…

Before register of exam or before get training from course LFS201 Essentials of System Administration, make sure you take and finished the Free course:

LinuxFoundationX: LFS101x Introduction to Linux

https://courses.edx.org/courses/course-v1:LinuxFoundationX+LFS101x+1T2017/course/

Exam is practice/performance based. You are given a server and a list of tasks to do on it… After you graded by automated system that checks the server you practiced on… after 3 days you get the result Pass or Not. To pass you need 74% score… During exam are permitted only server itself help resources like man(manual) pages, info pages and –help pages… you can Not surf the web for help nor have notes in the desk you work in your PC… during the exam.

 

From FAQ  [extracts from LF Site]

6. How long does the exam last?

Once you launch the exam, you will have two (2) hours to complete the certification exam.

8. How can I study for Exams?

The Linux Foundation’s Certification Exams are performance-based, which means the only way to ‘study’ for them is to practice, practice, practice. The Overview of Domains and Competencies – listed in the Exam Details section of the webpage for each Certification (LFCS and LFCE) – provides guidance on the topics covered in an Exam.  Candidates are encouraged to gain as much hands-on experience as possible in order to build mastery using the command line (since the Exam terminal does not use a Graphical Interface). Be sure to check out our Free Certification Prep Guide for more help.

Scoring and Notification

A score of at least 74% must be earned to pass the Exam.

Upon completion, exams are scored automatically and a score report will be made available within three (3) business days. If a passing score is achieved and other applicable requirements for Certification have been fulfilled, a notification indicating the Candidate has been successfully Certified will follow the score report.

Other Links

https://www.linux.com/learn/tips-how-study-your-linux-certification-exam

https://training.linuxfoundation.org/certification/certification-information-and-faq

http://sysadminday.com/  System Administrator Appreciation Day is a 24-hour event occurring on the Last Friday of July

http://www.thegeekstuff.com/2010/11/50-linux-commands/

http://www.thegeekstuff.com/2010/12/50-unix-linux-sysadmin-tutorials/

https://training.linuxfoundation.org/upcoming-program-changes-for-the-lfcs-certification-exam-in-2018    // Here is an Update : If you sit for a free retake after 13:00 UTC on March 20, 2018, you will be tested on Domains and Competencies V3.18 (even if that is not what you were originally tested on during your first attempt).

==================================

Linux required, as 9 from 10 servers have OS Linux… I am Mobile/Web Developer and I will give it inside one year… I will study 3h / day practicing and 2 h/day Reading/Watching Linux eBooks & courses… but without effort you cannot pass… No pain, no gain !!! This is Not my main field of work but Web/Mobile Development so I do plan to do Web and Mobile Apps all the year but I will study for Exam along…

As Freelancer I want do all alone and Not outsource server Admin works in my home office…

Note: There many organizations that offer Linux Certification… But I think LF is the best… also others may require you go in an exam center…. in your area.

 

Other Tips – https://www.linux.com/learn/tips-how-study-your-linux-certification-exam

There are different learning styles, and you’ll be more effective if you study in the way that suits you.

Taking the test immediately after the course it vital, he says. “Retention is a big factor.”

But if you’re going at it on your own, should you take the core competencies one at a time or look through them, then focus on your weakest areas? Again, that depends on your personal style.

Powers advises looking through the course material to determine whether you have the proper background. Then you can decide how to proceed.

He puts the success rate at about one in five for people who study on their own; at two or three in five for those who use online training courses that have to be completed in a set time period; and at 90 to 100 percent for structured training courses.

 

Some LINUX eBooks for LFCS Admin Exam

  1. Linux Bible 9th Edition (c) 2015 Wiley //  mostly RedHat 7/CentOS 7 / mostly content is common to Ubuntu 14.04
  2. Linux® Command Line and Shell Scripting Bible 3rd Edition (c) 2015 Wiley // Focus in Linux Shell Scripting [this and above 1st belong in the same Bible Series from WILEY PUBLISHER]
  3. Linux Pocket Guide 3/e (c) 2016 O’Reilly
  4. Mastering Linux Shell Scripting 1/e (c) 2015 Packt Pub
  5. Your UNIX/Linux The Ultimate Guide Third Edition (c) 2006-2013 McGraw-Hill
  6. CENTOS 7 Linux Server Cookbook 2/e (c) 2016 Pack Pub
  7. http://www.thegeekstuff.com/linux-101-hacks-ebook  Free eBook 2/e
  8. Guide to Parallel Operating Systems with Windows® 10 and Linux, 3/e (c) 2017 Cengage
  9. https://en.wikipedia.org/wiki/Category:Linux_magazines

Note: The first two Bible e-Books from Wiley are my favorite – You can learn almost 80% of the Linux Exam Material from them (My Opinion)

CentOS 7 Docs & Help

 

Bye Bye,

Hope/wish to myself and you pass the exam !!!

LSE

 

 

 

Dual-boot system, Triple-boot system, 4-Multi-boot system Win7-Win10-Fedora-Ubuntu

Coming Soon! Sept 2017

A Dual-boot system, Triple-boot system, 4-Multi-boot system

Win7-Win10-Fedora-Ubuntu Project

Photos

Settings

… etc

How to configure XAMPP to send mail from localhost?

How to configure XAMPP to send mail from localhost?

 

You can send mail from localhost with sendmail package , sendmail package is inbuild in XAMPP. So if you are using XAMPP then you can easily send mail from localhost.

for example you can configure C:\xampp\php\php.ini and c:\xampp\sendmail\sendmail.ini for gmail to send mail.

 

STEPS

1

in C:\xampp\php\php.ini find extension=php_openssl.dll and remove the semicolon from the beginning of that line to make SSL working for gmail for localhost.
2

in php.ini file find [mail function] and change

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = “\”C:\xampp\sendmail\sendmail.exe\” -t”
3

Now Open C:\xampp\sendmail\sendmail.ini. Replace all the existing code in sendmail.ini with following code

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com
4

ESPECIALLY For gmail please check https://support.google.com/accounts/answer/6010255 to allow access from less secure apps

SO AS GMAIL TO WORK IN THIS CASE… OTHER THAN GMAIL MAY OR MAY NOT HAVE [SIMILAR] SECURITY NEEDED SETUP.
5
Now you have done!! create php file with mail function and send mail from localhost.

PS: don’t forgot to replace my-gmail-id and my-gmail-password in above code. Also, don’t forget to remove duplicate keys if you copied settings from above.
6

For example comment following line if there is another sendmail_path : sendmail_path=”C:\xampp\mailtodisk\mailtodisk.exe” in the php.ini file

7
Also remember to restart the server using the XAMPP control panel so the changes take effect.

I can provide sample working XAMPP php.ini & sendmail.ini – download and compare if you have problems sending email….with XAMPP using gmail… cost 5$ [PayPal] send email to mymac@poliscarhire.com and lsepolis123@gmail.com …

 

Send email SAMPLE scripts:

PLAIN PHP – SEND EMAIL STATEMENTS

<?php

$email = "USERNAME3@gmail.com";

$to = "{$email}"; 

$subject = "Inquiry Contact Us from ". $email;

$headers = "From:USERNAME@gmail.com";

$headers .= "\r\nBcc:USERNAME2@gmail.com";

$headers .= "\r\nReply-To:{$email}";

$headers .= "\r\nContent-Type: text/html; charset=UTF-8";

$headers .= "\r\nMIME-Version: 1.0";

mail($to,$subject,"test",$headers);

CAKEPHP – Controller

<?php

....

public function emailtothis() {
 $email1 = $this->request->data('emailfield');
 $id = $this->request->data('idemail');
 
 $listing = $this->Listings->get($id, [
 'contain' => ['Users', 'Categories']
 ]);
 
 $txt="";
 foreach ($listing as $key => $value) {
 $txt.="{$key} : {$value} , ";
 }
 
 $email = new Email('default');
 $email->from(['USERNAME@gmail.com' => 'Polis.town'])
 ->to($email1)->emailFormat('html')
 ->subject($listing->name." - Polis.town")
 ->send('Share from Polis.town... <br/><br/>' 
 . $listing->name . '<br/>' . $listing->address . '<br/>'
 . (($listing->tel !="")?('<a href="tel:00357'.$listing->tel.'">'.$listing->tel.'</a>'):('')) .'<br/>' 
 . (($listing->telMob !="")?('<a href="tel:00357'.$listing->telMob.'">'.$listing->telMob.'</a>'):('')) .'<br/>' 
 . (($listing->email!="") ? ('<a href="mailto:'.$listing->email.'">'.$listing->email.'</a>') : ('' )).'<br/>' 
 . (($listing->url!="") ? ('<a href="'.$listing->url.'">'.$listing->url.'</a>') : ( '' )) .'<br/>'.'<br/>' 
 . $listing->description.'<br/><br/>'
 . 'long: '. $listing->long.', lat: '.$listing->lat); 
 /* */
 //die($email1.", ".$listing->url);
 return $this->redirect('/listings/view/'.$id);
 
 }

CODEIGNITER – Controller

<?php

...

   public function sendemail(){

        $this->load->library('email');

        $this->email->from('USERNAME@cytanet.com.cy', 'lse');

        $this->email->to('USERNAME@gmail.com');

        $this->email->cc('USERNAME2@gmail.com');

        $this->email->bcc('USERNAME3@hotmail.com');

        $this->email->subject('Email Test');

        $this->email->message('Testing the email class.');

        $this->email->send();

        die("email sent");

    }

My new 15″ Mac Book Pro 2016

My new 15′ Mac Book Pro 2016 – Unboxing & Review
(MBP 2016 & Accessories)

==============================

I definitely recommend use/read manual prior using your new Mac… I also turned off File Vault [is turned Off by default – but by error activated it] for a little more faster usage of the MBP.

here are some extracts from manual….

2017-01-25_23-34-02_mbp2

2017-01-25_23-38-04_mbp3

2017-01-25_23-32-40_mbp1

Ordering accessories procedure I followed….

Amazon.com [US]  >>>  MyUS.com [FL, US Forward address]  >>>  Europe [My Home]

myUS.com

MyUS: Free 1 Month Membership + 20% off your 1st Shipment!

This Blog Post Coming Soon!!!

 

 

Mac Book Pro 2016 Accessory : usb c hub

usb c hub

aukey usb c hub

aukey usb c hub

 

samsung t3 ssd

samsung t3 ssd

Mac Book Pro 2016 Accessory : mbp2016_sleeve

mbp2016 sleeve

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Buy from Amazon

http://amzn.to/2iUm7JT   aukey hub

http://amzn.to/2iOdrUK   Samsung T3 ssd

http://amzn.to/2iUgfQT   hub hdmi

http://amzn.to/2i4Uj4h   sleeve case

Shipping address in Amazon put your MyUS.com forward address MyUS: Free 1 Month Membership + 20% off your 1st Shipment!

After all items delivered to Forward address

Request shipment to you eg Europe or Africa …

 


Amazon Order History – Last 6 mos

 

MyUS Box/Suite (Fwd Address from US, FL => To me Europe) Prior Ship it to me!

 

MyUS Box/Suite After Ship it to me!

 

Unboxing Accessories

 

Unboxing MBP 2016 15″

 

Arranging Boot Order in BIOS

Note Boot Order in my PC: In my PC a HP Compaq 8200 Elite Micro Tower PC , On startup PC Press(press many times the …) just prior Windows 10 logo appear:

F9 – temporary choose Boot Device (Disk) – without changing/entering the BIOS setup

F10 – enter Bios setup to set Boot Order Permanently, till you change it again

===============

Set Boot Order

To arrange boot order in BIOS so can boot from desired location/media/disk you setup Bios temp or permanently so the desired is the first booting device e.g. DVD (1) > USB stick/Disk (2) > HDD (3) … meaning boot from DVD if you have bootable CD or DVD, (if not) boot from USB if you have Bootable USB Stick or USB HDD… etc.

To boot from DVD Or USB bootable media:
1. If you use a USB flash drive as a bootable media, plug it into the USB port.
2. Turn your computer on. During the Power-On Self Test (POST), you will see the key combination that you need to press in order to enter BIOS.
3. Press the key combination (such as, Del, F1, Ctrl+Alt+Esc, Ctrl+Esc, in my PC is F10). BIOS setup utility will open. Note that BIOS may differ in appearance, sets of items, names, etc.
Some motherboards have a so called boot menu opened by pressing a certain key or key combination, for instance, F12. The boot menu allows selecting the boot device from a list of bootable devices without changing the BIOS setup [in my PC this is F9].
4. If you use a CD or DVD as a bootable media, insert it in the CD or DVD drive.
5. Make your media (CD, DVD or USB drive) device the first booting device:

1. Navigate to the Boot order setting by using the arrow keys on your keyboard.
2. Place the pointer on the device of your bootable media and make it the first item in the list. You can usually use the Plus Sign and the Minus Sign keys to change the order.

 

Bios setup image

boot order in Bios

 

6. Exit BIOS and save the changes that you made. The computer will boot from bootable media if present.
If the computer fails to boot from the first device, it tries to boot from the second device in the list, and so on.

 

Notes & More Reading

 

 

Free Tools for Mac users – most are for Windows/Linux as well

File Vault, Time Machine & Cloud Storage etc cool Mac tasks that not cost you a dime
Free Tools for Mac users – most are for Windows/Linux as well

==============================

Note: 

This article aimed for Mac users or developers using a Mac, and is about the free tools you can use for development, or the basic Mac computer tasks make you safer or more productive user/developer.
Mac tricks makes you a better User.

File Vault – encrypt your drive

With File Vault (read more below) enabled you can encrypt your Mac SSD or HDD Drive so every time you switch on your Mac you insert a pass phrase to use it. Even your Disk drive removed from your Mac and used elsewhere your data are still Not accessible without the secret pass phrase. Pass phrase can be your Apple ID password in new Macs. You can disable/re-enable it if you like or if you do Not want it any more.

Anti-Virus

As of Anti-virus I use the Free AVG for Mac Anti-Virus [note: Viruses are very rare on Macs].

Time Machine & Cloud Storage – two(2) different backup methods, required both 

Time Machine backups – if the File Vault is enabled – require pass phrase so in other words backup is encrypted and protected. Time Machine backup – you can restore even OS, Apps and Data with it – is done by me every 2-3 months since I have and Windows PCs and use Mac 2-4 times a week only. During backup I exclude my Parallels Virtual Machines since do not use a lot and backup separately every year Ubuntu OS, Chrome OS & Windows Vista OS.

I also use for instant backup Cloud Storage from many cloud storage providers (all free plans 5GB-15GB) namely iCloud Drive(Apple), Google Drive, One Drive(Microsoft), Dropbox Drive. If for example I create a mock-up, doc, ppt, xls or other file, I save it to cloud, that way is on my machine and cloud and can also access from other devices including mobile (connected to the cloud/internet). So I feel secure and impossible to loose data and any file… All for free.

Write, Keynote, Numbers, Apple Mail

What I also like about (new) Macs is that come pre-installed with Write, Keynote, Numbers Apps and also Apple Mail.

Mac OS Server App

I also installed Mac OS Server App (by Apple that cost below 20$ – the only expense as of software) that make the Mac a server[web server, mail server, … Etc] and I am experimenting with it…

Web/Mobile Developer/Designer Applications – mostly free and open source

As an web/mobile developer/designer I build mobile apps and responsive sites so, I installed  –  free mostly given, tools by Mobile OS mfg like Google, Apple & MicroSoft  –  SDKs for Android and iOS, Xcode, Eclipse, JDeveloper, Android Studio, Intel XDK IDE, Brackets web code editor, NetBeans, Cordova CLI tools, NodeJs, all freeware. Basically I find that I need nothing else for my work except Adobe Fireworks or PhotoShop (paid both) but you can install the freeware GIMPShop that just do the same.
Note: all the tools in this paragraph exist also for Windows(not Xcode/iOS-SDK) and some for Linux.
Addition: I recently installed VMWare Fusion Pro 8 and run Windows 10 Pro VM and added Visual Studio 2015 Community IDE for Windows Development on the Mac.

Conclusion

With these tools you can become an advanced & safer user/developer at almost no cost.

=============================================

 

Reference Links

Also some cool Web Based Apps

These are what I use. There are many other equivalents, too.

The benefits of education will only be online, nationally and internationally, from digital devices of now and the future

The benefits of education will only be online, nationally and internationally,
from digital devices of now and the future


In fact the proliferation of only online education should make public schools and governments more involved in online virtual world and I think should bring many benefits in addition to benefits brought by the involvement of Internet today.

There will be many accurate and free online academic and other resources from government agencies, making the web a better place. This should influence all Internet workforce but mainly online learners, researchers and students. Also government agencies should develop more and better and free online learning tools helping more the online web workers, students and learners to learn what they want easily and accurately.

Also not optional online education will make offline education limited to only practical sessions required in some educational fields. In a few  years with this setup, required online education should self-develop to the level could not make any further progress, so the world will reach a peak in technology and education development. This will make the most people to achieve the skills in their target subject or subjects easily.

Online education means learning without distractions, at your comfort or your own environment. You no longer will have to travel to school or buy books or other school materials. In other words costs and time should be saved and used for other activities that bring more skills and learning than it’s offline counterpart.

The technology tools for permanent online education I think should be the same as today’s online education, the Computer, Tablet, and Phone, and the Network, as of hardware. The development of software connected to Internet should make a lot of progress and development with gov agencies involved. Books should be in electronic format in digital libraries either governments’ public online libraries or schools online libraries.

Communication will increase but stay to the level of today with email, and chat text, voice, video, notifications and alerts, and social networks communication. This via Wi-Fi and cellular 3G and 4G technologies.

In conclusion I think governments should enforce required online education, and by the year 2020 all countries’ education should be online. All walks of life will reach top development by then.