#!/bin/bash
# Copyright (C) 2020-2021 Cicak Bin Kadal
# This free document is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# REV02 Sun 19 Sep 2021 15:44:11 WIB
# REV01 Sun 12 Sep 2021 03:10:00 WIB
# START Mon 28 Sep 21:05:04 WIB 2020
# ATTN:
# You new to set "REC2" with your own Public-Key Identity!
# Check it out with "gpg --list-key"
REC2="cbkadal@localhost"
REC1="operatingsystems@vlsm.org"
FILES="my*.asc my*.txt my*.sh"
SHA="SHA256SUM"
[ -d $HOME/RESULT/ ] || mkdir -p $HOME/RESULT/
pushd $HOME/RESULT/
for II in W?? ; do
[ -d $II ] || continue
TARFILE=my$II.tar.bz2
TARFASC=$TARFILE.asc
rm -f $TARFILE $TARFASC
echo "tar cfj $TARFILE $II/"
tar cfj $TARFILE $II/
echo "gpg --armor --output $TARFASC --encrypt --recipient $REC1 --recipient $REC2 $TARFILE"
gpg --armor --output $TARFASC --encrypt --recipient $REC1 --recipient $REC2 $TARFILE
done
popd
for II in $HOME/RESULT/myW*.tar.bz2.asc ; do
echo "Check and move $II..."
[ -f $II ] && mv -f $II .
done
echo "rm -f $SHA $SHA.asc"
rm -f $SHA $SHA.asc
echo "sha256sum $FILES > $SHA"
sha256sum $FILES > $SHA
echo "sha256sum -c $SHA"
sha256sum -c $SHA
echo "gpg --output $SHA.asc --armor --sign --detach-sign $SHA"
gpg --output $SHA.asc --armor --sign --detach-sign $SHA
echo "gpg --verify $SHA.asc $SHA"
gpg --verify $SHA.asc $SHA
exit 0
# TOP 10 Rank
ZCZC W02 alibaba
ZCZC W02 kutakada
ZCZC W02 cbkadal
ZCZC W03 alibaba
ZCZC W03 kutakada
ZCZC W03 cbkadal
ZCZC W04 alibaba
ZCZC W04 kutakada
ZCZC W04 cbkadal
ZCZC W05 alibaba
ZCZC W05 kutakada
ZCZC W05 cbkadal
ZCZC W06 alibaba
ZCZC W06 kutakada
ZCZC W06 cbkadal
ZCZC W07 alibaba
ZCZC W07 kutakada
ZCZC W07 cbkadal
ZCZC W08 alibaba
ZCZC W08 kutakada
ZCZC W08 cbkadal
ZCZC W09 alibaba
ZCZC W09 kutakada
ZCZC W09 cbkadal
ZCZC W10 alibaba
ZCZC W10 kutakada
ZCZC W10 cbkadal
# Log Format
# ZCZC WEEK# MINUTES LogCode Description
# LogCode: https://osp4diss.vlsm.org/ETC/logCodes.txt
ZCZC W00 20 L00 General, etc.
ZCZC W00 20 L01 SCELE/Discord related
ZCZC W00 90 L02 ZOOM meetings related
ZCZC W00 10 L03 GitHub related
ZCZC W00 10 L04 GitHub Pages related
ZCZC W00 10 L05 QUIZ
ZCZC W00 60 L09 Weekly Assignments
ZCZC W01 20 L00 General, etc.
ZCZC W01 20 L01 SCELE/Discord related
ZCZC W01 90 L02 ZOOM meetings related
ZCZC W01 10 L03 GitHub related
ZCZC W01 10 L04 GitHub Pages related
ZCZC W01 10 L05 QUIZ
ZCZC W01 60 L09 Weekly Assignments
ZCZC W02 20 L00 General, etc.
ZCZC W02 20 L01 SCELE/Discord related
ZCZC W02 90 L02 ZOOM meetings related
ZCZC W02 10 L03 GitHub related
ZCZC W02 10 L04 GitHub Pages related
ZCZC W02 10 L05 QUIZ
ZCZC W02 60 L09 Weekly Assignments
ZCZC W03 20 L00 General, etc.
ZCZC W03 20 L01 SCELE/Discord related
ZCZC W03 90 L02 ZOOM meetings related
ZCZC W03 10 L03 GitHub related
ZCZC W03 10 L04 GitHub Pages related
ZCZC W03 10 L05 QUIZ
ZCZC W03 60 L09 Weekly Assignments
ZCZC W04 20 L00 General, etc.
ZCZC W04 20 L01 SCELE/Discord related
ZCZC W04 90 L02 ZOOM meetings related
ZCZC W04 10 L03 GitHub related
ZCZC W04 10 L04 GitHub Pages related
ZCZC W04 10 L05 QUIZ
ZCZC W04 60 L09 Weekly Assignments
ZCZC W05 20 L00 General, etc.
ZCZC W05 20 L01 SCELE/Discord related
ZCZC W05 90 L02 ZOOM meetings related
ZCZC W05 10 L03 GitHub related
ZCZC W05 10 L04 GitHub Pages related
ZCZC W05 10 L05 QUIZ
ZCZC W05 60 L09 Weekly Assignments
ZCZC W05 20 L00 General, etc.
ZCZC W06 20 L01 SCELE/Discord related
ZCZC W06 90 L02 ZOOM meetings related
ZCZC W06 10 L03 GitHub related
ZCZC W06 10 L04 GitHub Pages related
ZCZC W06 10 L05 QUIZ
ZCZC W06 60 L09 Weekly Assignments
ZCZC W07 20 L01 SCELE/Discord related
ZCZC W07 90 L02 ZOOM meetings related
ZCZC W07 10 L03 GitHub related
ZCZC W07 10 L04 GitHub Pages related
ZCZC W07 10 L05 QUIZ
ZCZC W07 60 L09 Weekly Assignments
ZCZC W08 20 L01 SCELE/Discord related
ZCZC W08 90 L02 ZOOM meetings related
ZCZC W08 10 L03 GitHub related
ZCZC W08 10 L04 GitHub Pages related
ZCZC W08 10 L05 QUIZ
ZCZC W08 60 L09 Weekly Assignments
ZCZC W09 20 L01 SCELE/Discord related
ZCZC W09 90 L02 ZOOM meetings related
ZCZC W09 10 L03 GitHub related
ZCZC W09 10 L04 GitHub Pages related
ZCZC W09 10 L05 QUIZ
ZCZC W09 60 L09 Weekly Assignments
ZCZC W10 20 L01 SCELE/Discord related
ZCZC W10 90 L02 ZOOM meetings related
ZCZC W10 10 L03 GitHub related
ZCZC W10 10 L04 GitHub Pages related
ZCZC W10 10 L05 QUIZ
ZCZC W10 60 L09 Weekly Assignments
title: "Operating Systems 2021-2 (OS212)"
version: "0039---14-Nov-2021"
copyright: "2021-2021"
description: >-
This Is How Me Do It!
# baseurl: "" # e.g. /blog
# url: "" # e.g. http://example.com
google_analytics: "UA-89852122-13"
author: "Cicak Bin Kadal"
address: "Pamulang"
sitemap: "true"
plugins:
- jekyll-sitemap
- jekyll-seo-tag
urlweb: "https://cbkadal.github.io/os212/"
urlcontact: "TBS"
urlgithub: "https://github.com/cbkadal/os212/"
urlghpage: "https://cbkadal.github.io/os212/"
keywords: "jekyll, testing"
github:
- metadata
source "https://rubygems.org/"
gem 'jekyll-sitemap'
gem 'github-pages', group: :jekyll_plugins
<!DOCTYPE html>
<html lang="en">
<!-- File _layouts/layout.html -->
<!-- (c) 2021 - 2021 VauLSMorg -->
<!-- START: Wed 17 Feb 2021 19:44:53 WIB -->
<!-- This is a free HTML file -->
{% include head.html %}
<body class="plainclass1">
<!-- body class="backclass" -->
<div class="container">
<header>
<div class="row">
<div class="column left">
<img src="{{ site.baseurl }}/assets/images/cbk.jpg" alt="Cicak Bin Kadal" style="width:130px; border-radius:50%">
</div>
<div class="column right1">
{% if page.title %}{{ page.title | escape }}
{% else %}{{ site.title | escape }}{% endif %}
</div>
<div class="column right2">
{% if page.author %}{{ page.author | escape }}
{% else %}{{ site.author | escape }}{% endif %}
---
{% if page.address %}{{ page.address | escape }}
{% else %}{{ site.address | escape }}{% endif %}
</div>
</div>
</header>
{% include navbar.html %}
<section>
{{ content }}
</section>
{% include footer.html %}
{% include google-analytics.html %}
{% include scripts.html %}
</div>
</body>
</html>
# REV03 Mon 05 Jul 2021 17:22:12 WIB
# REV02 Tue 15 Jun 2021 11:10:46 WIB
# REV01 Fri 12 Mar 13:42:23 WIB 2021
# START Mon 15 Feb 09:41:08 WIB 2021
ALL: 000.md
000.md: 000.pmd _config.yml Gemfile _layouts/layout.html Makefile \
_includes/navbar.html \
_includes/footer.html _includes/head.html _includes/google-analytics.html \
assets/css/style.css assets/scripts/includeScript.py
python assets/scripts/includeScript.py < 000.pmd > 000.md
.phony: ALL
<!-- File _includes/head.html -->
<!-- (c) 2021 - 2021 VauLSMorg -->
<!-- START: Wed 17 Feb 2021 19:48:31 WIB -->
<!-- This is a free HTML file -->
<head>
<title>
{% if page.title %}{{ page.title | escape }} - {{ site.title | escape }}
{% else %}{{ site.title | escape }}{% endif %}
</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ page.excerpt | default: site.description }}">
<!-- link href="{{ site.baseurl }}/assets/css/css.css" rel="stylesheet" type="text/css" title="Style" -->
<!-- link href="/assets/css/css.css" rel="stylesheet" type="text/css" title="Style" -->
<link href="{{ site.baseurl }}/assets/css/style.css" rel="stylesheet" type="text/css" title="Style">
</head>
<!-- File _includes/navbar.html -->
<!-- (c) 2021 - 2021 VauLSMorg -->
<!-- REV02: Mon 05 Jul 2021 17:21:26 WIB -->
<!-- REV01: Tue 15 Jun 2021 11:11:53 WIB -->
<!-- START: Wed 17 Feb 2021 19:48:31 WIB -->
<!-- This is a free HTML file -->
<nav class="navbar">
<ul>
<li class='listitem'><a href='{{ site.baseurl }}/'>HOME</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/000.html'>LISTING</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/LINKS/'>LINKS</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/TIPS/'>TIPS</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/TXT/mypubkey.txt'>KEY</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/TXT/mylog.txt'>LOG</a></li>
<li class='listitem'><a href='{{ site.urlgithub }}'>GitHub</a></li>
</ul>
</nav>
/*
Shamelessly stolen from "Here, There, and Everywhere",
including but not limited to "bootstrap", "stack overflow",
"Mike Dane", "w3schools", et al.
*/
.backclass {
background-image:url(/assets/images/default.png)
}
.plainclass {
color: white;
background-color: #001030;
}
.plainclass1 {
color: white;
background-color: black;
}
.container {
max-width: 70%;
margin: 0 auto;
font-size: 1em;
font-family: verdana,arial,helvetica,san-serif;
text-align: justify;
}
.container a {
color: #a0a0a0;
}
.container a:hover {
color: #f0f0f0;
}
.row {
}
.column {
float: left;
display: inline-block;
background: #808080;
height: 130px;
width: 100%;
padding-top: 10px;
padding-bottom: 10px;
padding-left: 10px;
padding-right: 10px;
text-align: left;
}
.left {
width: 130px;
}
.right1 {
height: 80px;
width: calc(100% - 200px);
padding-top: 5px;
padding-bottom: 5px;
padding-left: 30px;
font-size: 1.4em;
font-weight: bold;
}
.right2 {
height: 50px;
width: calc(100% - 200px);
padding-top: 5px;
padding-bottom: 5px;
padding-left: 30px;
font-size: 1.1em;
font-weight: bold;
}
}
.youtube {
float: left;
display: inline-block;
height: 150px;
width: 100%;
padding-top: 10px;
padding-bottom: 10px;
padding-left: 10px;
padding-right: 10px;
}
.yvideo {
width: 25%;
height: 100%;
padding-top: 0px;
padding-bottom: 0px;
padding-left: 0px;
padding-right: 0px;
}
.yinfo {
width: calc(75% - 30px);
height: calc(100% - 20px);
padding-top: 10px;
padding-bottom: 10px;
padding-left: 10px;
padding-right: 10px;
}
.row:after {
content: "";
display: table;
clear: both;
}
.navbar {
background-color: #222222;
color: #FFFFFF;
font-size: 0.7em;
}
.navbar ul li {
display: inline-block;
padding: 1px;
padding-top: 10px;
padding-bottom: 10px;
}
.navbar ul li a {
text-decoration: none;
}
.navbar ul li a:hover {
background: blue;
color: #CCCCCC;
font-size: 1em;
font-weight: bold;
}
pre {
border: 3px solid rgba(255, 255, 255, 0.15);
padding: 10px;
color: #b5e853;
font-size: 0.7em;
border-radius: 2px;
}
/*
ZCZC
border: 1px solid rgba(255, 255, 255, 0.15);
padding: 10px;
color: #b5e853;
background: rgba(0, 0, 0, 0.9);
border-radius: 2px;
word-wrap: normal;
overflow: auto;
overflow-y: hidden;
max-width: 65%;
*/
/*
************************************************************
*/
@media screen and (max-width:768px) {
ul {
margin: 0;
padding: 0;
}
#navbar ul li {
display: block;
width: 100%;
padding: 0;
margin: 0;
text-align: center;
}
#navbar ul li a {
margin: 0;
padding: 0;
}
#menu {
display: none;
}
#maincontent {
width: 100%;
padding: 0;
}
h1 {
font-size: 1em;
}
}
/*
************************************************************
*/
<!-- File _includes/google-analytics.html -->
<!-- REV01: Wed 31 Mar 2021 07:15:14 WIB -->
<!-- START: Wed 17 Feb 2021 19:47:55 WIB -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ site.google_analytics }}');
</script>
# (c) 2011 Brice Fernandes. This script was ripped from
# https://fractallambda.com/2011/08/17/pincpy-including-files-and-script-output.html
# Note: This script is outdated.
# The author uses Handlebars.js or Pystache for the same purpose.
# Usage:
# python .program/xx.py < in.pmd > out.md
import sys
import re
import shlex
import subprocess as sp
exe_pat = re.compile(r'(\s*)\(!>(.*)<\)\s*')
inc_pat = re.compile(r'(\s*)\(>(.*)<\)\s*')
if __name__ == "__main__":
for line in sys.stdin:
match_exe = re.match(exe_pat, line)
match_inc = re.match(inc_pat, line)
if match_exe:
space = match_exe.group(1)
exe = match_exe.group(2).strip()
args = shlex.split(exe)
sys.stdout.writelines(
map(
lambda x: space+x+"\n",
sp.check_output(args).split("\n")))
elif match_inc:
space = match_inc.group(1)
inc = match_inc.group(2).strip()
sys.stdout.writelines(
map(
lambda x: space+x,
open(inc)))
else:
sys.stdout.write(line)