Table of Contents

Somethings Good As Indicated

<2023-05-15 Mon>

This website documents some significanct evaluations.

<2023-03-06 Mon>

ChatGPT – Open the AI world ~

<2023-02-23 Thu>   AI

  • How to Use AI for Notion Notion.png
    • Introduction
      Notion is a powerful productivity and organisational tool that can be used for a variety of purposes such as project management, notes taking, and even as a database. Artificial intelligence (AI) can be used to enhance the functionality of Notion, allowing users to automate repetitive tasks and enable more advanced features. In this blog post, we will explore three ways to use AI for Notion.
    • Automating Tasks with Zapier
      Zapier is a web-based automation tool that connects different apps and services together. With Zapier, you can create custom workflows, or "Zaps," that automate tasks between different apps. For example, you can create a Zap that automatically adds a new task in Notion every time a new email arrives in your inbox. This can help you stay on top of your to-do list without having to manually create tasks in Notion.
    • Building a Knowledge Base with AI
      Notion offers a feature called "Knowledge Base," which allows you to create a centralized repository of information. This can be used for things like company policies, product information, or even personal notes. By using AI, you can enhance the functionality of your Knowledge Base. For example, you can use a service like IBM Watson to automatically tag and categorize your content, making it easier to find and organize. You can also use AI-powered chatbots to answer common questions and provide support to users who are searching for information within your Knowledge Base.
    • Enhancing Your Notion Database with AI
      Notion's database feature allows you to create custom databases for anything from a personal library to a company CRM. By using AI, you can enhance the functionality of your databases even further. For example, you can use natural language processing (NLP) to automatically extract key information from text fields, such as dates and locations. You can also use image recognition to automatically tag and categorize images that are uploaded to your database.
    • Conclusion
      In conclusion, AI can be used to enhance the functionality of Notion, allowing you to automate repetitive tasks, build a more advanced Knowledge Base, and enhance your databases. By incorporating AI into your Notion workflow, you can save time and improve your productivity. Whether you're a solo entrepreneur or part of a large team, using AI for Notion can help you stay organised and achieve your goals.

<2023-02-17 Fri>

Use Python to create a Fibonacci sequence:

def fibo_seq(n):
                fib = [0, 1]

                for i in range(n): 
                fib.append(fib[i] + fib[i+1])

                return fib 

<2022-09-28 Wed>

To generate a QR code by Python:

                import qrcode

                def create_a_QR_code(message):
                image_pok = qrcode.make(message)

                def main():

                if __name__ == "__main__":


<2022-09-27 Tue>

εὖ: it is a Greek word, typically used as a prefix, which means "good", “well” and "nice".

<2022-06-04 Sat>

<2022-04-14 Thu>

  • <details>: The Details disclosure element


    Something small enough to escape casual notice.

                        Something small enough to escape casual notice.
    details {
                        border: 1px solid #aaa;
                        border-radius: 4px;
                        padding: .5em .5em 0;
                        summary {
                        font-weight: bold;
                        margin: -.5em -.5em 0;
                        padding: .5em;
                        details[open] {
                        padding: .5em;
                        details[open] summary {
                        border-bottom: 1px solid #aaa;
                        margin-bottom: .5em;

<2022-04-06 Wed>

Emacs for MacOS has been updated from 27.2 to 28.1. More smooth ~

How-to-Learn-Emacs-v2-Large.png This figure is from, created by Sacha Chua

<2022-03-19 Sat>

To be or not to be using "Use-package"

(custom-set-faces '(dashboard-heading ((t (:inherit (font-lock-string-face bold))))))
                ;(use-package dashboard
                ;  :diminish dashboard-mode
                ;  :custom-face (dashboard-heading ((t (:inherit (font-lock-string-face bold))))))

<2022-03-14 Mon>

A Brief Introduction to the Zettelkasten Method

Org-roam provides utilities for maintaining a digital slip-box. This section aims to provide a brief introduction to the “slip-box”, or “Zettelkasten” method. By providing some background on the method, we hope that the design decisions of Org-roam will become clear, and that will aid in using Org-roam appropriately. In this section we will introduce terms commonly used within the Zettelkasten community and the Org-roam forums.

The Zettelkasten is a personal tool for thinking and writing. It places heavy emphasis on connecting ideas, building up a web of thought. Hence, it is well suited for knowledge workers and intellectual tasks, such as conducting research. The Zettelkasten can act as a research partner, where conversations with it may produce new and surprising lines of thought.

This method is attributed to German sociologist Niklas Luhmann, who using the method had produced volumes of written works. Luhmann’s slip-box was simply a box of cards. These cards are small – often only large enough to fit a single concept. The size limitation encourages ideas to be broken down into individual concepts. These ideas are explicitly linked together. The breakdown of ideas encourages tangential exploration of ideas, increasing the surface for thought. Making linking explicit between notes also encourages one to think about the connections between concepts.

At the corner of each note, Luhmann ascribed each note with an ordered ID, allowing him to link and jump between notes. In Org-roam, we simply use hyperlinks.

Org-roam is the slip-box, digitalized in Org-mode. Every zettel (card) is a plain-text, Org-mode file. In the same way one would maintain a paper slip-box, Org-roam makes it easy to create new zettels, pre-filling boilerplate content using a powerful templating system.

  • Fleeting notes
    A slip-box requires a method for quickly capturing ideas. These are called fleeting notes: they are simple reminders of information or ideas that will need to be processed later on, or trashed. This is typically accomplished using org-capture (see (org)Capture), or using Org-roam’s daily notes functionality (see Org-roam Dailies). This provides a central inbox for collecting thoughts, to be processed later into permanent notes.
  • Permanent notes
    Permanent notes are further split into two categories: literature notes and concept notes. Literature notes can be brief annotations on a particular source (e.g. book, website or paper), that you’d like to access later on. Concept notes require much more care in authoring: they need to be self-explanatory and detailed. Org-roam’s templating system supports the addition of different templates to facilitate the creation of these notes.

For further reading on the Zettelkasten method, “How to Take Smart Notes” by Sonke Ahrens is a decent guide.

<2022-03-04 Fri>

Things Engine


<2021-11-09 Tue>

Things are Layered


<2021-06-03 Thu>

The Starfish Story: one step towards making different

Once upon a time, there was an old man who used to go to the ocean to do his writing. He had a habit of walking on the beach every morning before he began his work. Early one morning, he was walking along the shore after a big storm had passed and found the vast beach littered with starfish as far as the eye could see, stretching in both directions.

Off in the distance, the old man noticed a small boy approaching. As the boy walked, he paused every so often and as he grew closer, the man could see that he was occasionally bending down to pick up an object and throw it into the sea. The boy came closer still and the man called out, “Good morning! May I ask what it is that you are doing?”

The young boy paused, looked up, and replied “Throwing starfish into the ocean. The tide has washed them up onto the beach and they can’t return to the sea by themselves,” the youth replied. “When the sun gets high, they will die, unless I throw them back into the water.”

The old man replied, “But there must be tens of thousands of starfish on this beach. I’m afraid you won’t really be able to make much of a difference.”

The boy bent down, picked up yet another starfish and threw it as far as he could into the ocean. Then he turned, smiled and said, “It made a difference to that one!”

Adapted from The Star Thrower, by Loren Eiseley (1907 – 1977)

<2021-05-25 Tue>   CSS

Hi ThingsEngine ➭ The Things'Engine……

<2021-05-25 Tue>   Tool

Roam Research: a note-taking tool for networked thought. roam-group-min.png As easy to use as a document. As powerful as a graph database. Roam helps you organize your research for the long haul.

<2021-05-24 Mon>   Tool

Notion: All-in-one workspace. One tool for your whole team. Write, plan, and get organized. Notion is a collaboration platform with modified markdown support that integrates kanban boards, tasks, wikis, and databases.


<2021-04-13 Tue>   Puremacs

Lexical Scope, bingding for emacs-lisp

;;; init.el --- -*- lexical-binding: t -*-

"Until Emacs 24.1 (June 2012), Elisp only had dynamically scoped variables, a feature, mostly by accident, common to old lisp dialects. While dynamic scope has some selective uses, it’s widely regarded as a mistake for local variables, and virtually no other languages have adopted it." – By Chris Wellons

See the article: Some Performance Advantages of Lexical Scope

<2021-03-19 Fri>

Bertrand Russell: Love is Wise, Hatred is Foolish

Interviewer: Suppose Lord Russell that this film were to be looked at by our descendants, like a dead sea scroll in a thousand years time. What would you think it’s worth telling that generation about the life you’ve lived and the lessons you’ve learned from it?

Russell: I should like to say two things, one intellectual and one moral.

The intellectual thing I should want to say to them, is this: When you are studying any matter, or considering any philosophy, ask yourself only what are the facts and what is the truth that the facts bear out. Never let yourself be diverted, either by what you wish to believe, or by what you think would have beneficent social effects if it were believed. But look only, and solely, at what are the facts. That is the intellectual thing that I should wish to say.

The moral thing I should wish to say to them is very simple: I should say, love is wise, hatred is foolish. In this world, which is getting more and more closely interconnected, we have to learn to tolerate each other, we have to learn to put up with the fact that some people say things that we don’t like. We can only live together in that way—and if we are to live together and not die together—we must learn a kind of charity and a kind of tolerance, which is absolutely vital to the continuation of human life on this planet.

[B] <2021-03-16 Tue>   Philosophy

For decision making: the implementation phase

“Nothing more difficult to carry out, nor more doubtful of success, nor more dangerous to handle, than to initiate a new order of things.” - The Prince, Machiavelli 1500s

<2021-01-29 Fri>

The title is updated from "The Things Engine"(物联引擎) to "Something Great" (稻盛和夫), then to "Something Good" (一点有益)

<2021-01-02 Sat>

Emacs is … and more. Emacs-icon.sh_.png

<2021-02-25 Thu>

Insert screenshots into org files Mojave has a new screenshot capability you get with SHIFT-COMMAND-5. After typing SHIFT-COMMAND-5, select OPTIONS, then select "Clipboard". (save to desktop" and then the Dropbox saving funtionality.)

(use-package org-download
                :after org
                :defer nil
                (org-download-method 'directory)
                (org-download-image-dir "images")
                (org-download-heading-lvl nil)
                (org-download-timestamp "%Y%m%d-%H%M%S_")
                (org-image-actual-width 300)
                (org-download-screenshot-method "/usr/local/bin/pngpaste %s")
                ("C-s-y" . org-download-screenshot)
                (require 'org-download))

See the reference: :Emacs:

<2020-11-09 Mon>   Emacs

Run Elisp Script in Shell on MacOS

  1. Create a emacs lisp script, HelloWorld.el

    (message "Hello Elisp World!")
  2. Run a elisp script on a MacOS from the command line

    /Applications/ --script HelloWorld.el

Most useful options for running emacs lisp as a script:

  • "–no-init-file" or "-q"
  • "–no-site-file"
  • "–batch"
  • "–load= path" or "-l path"
  • "–script path"

Two more things:

  1. What is site-start.el The site-start.el is a int file for site-wide running of emacs, a init file for all users fo the installed emacs. On MacOS, The path is "/Applications / /Contents /Resources /site-lisp".
  2. How to prepare your emacs lisp scrip to run in batch mode
    • self-contained
    • load all needed libraies properly
    • set the necessary load path set in the script, such as follows:

      (add-to-list 'load-path lib_path)

<2020-11-04 Wed>


While exploring difference, never lose sight of sameness for it is sameness that brings us together. – John Briggs

<2020-03-17 Tue>

A long journey begins with the first step – Lao Tzu

<2020-09-26 Sat>   Test

API Testing

<div id="jinrishici-sentence" style="font-weight: 700;">千里之行,始于足下</div>
                <script src="" charset="utf-8"></script>

<2020-08-09 Sun>   Emacs Orgmode

The macros in Org allow you to add text or code to an Org document that will be expanded during export: the text between the 3 pairs of accolades is expanded so that readers can see it in the exported versions of the document.

It can be used to construct complex HTML or LaTeX code.

#+MACRO: color @@html:<span style="color: $1">$2</span>@@
                {{{color(blue, This text is colored in blue.)}}}
                {{{color(red, This other text is in red.)}}}

This text is colored in blue. This other text is in red.

<2020-08-09 Sun>   Emacs Orgmode

Org-bullet symbol set

  • Hexagrams
    “✡” “⎈” “✽” “✲” “✱” “✻” “✼” “✽” “✾” “✿” “❀” “❁” “❂” “❃” “❄” “❅” “❆” “❇”
  • Circles
    “○” “☉” “◎” “◉” “○” “◌” “◎” “●” “◦” “◯” “⚪” “⚫” “⚬” “❍” “○” “⊙” “⊚” “⊛” “∙” “∘”
  • Special Circles
    “◐” “◑” “◒” “◓” “◴” “◵” “◶” “◷” “⚆” “⚇” “⚈” “⚉” “♁” “⊖” “⊗” “⊘”
  • Crosses
    “✙” “♱” “♰” “☥” “✞” “✟” “✝” “†” “✠” “✚” “✜” “✛” “✢” “✣” “✤” “✥”
  • Poker Sybmols
    “♠” “♣” “♥” “♦” “♤” “♧” “♡” “♢”
  • Yinyang
    “☯” “☰” “☱” “☲” “☳” “☴” “☵” “☶” “☷”
  • Special Symbols
    “☀” “♼” “☼” “☾” “☽” “☣” “§” “¶” “‡” “※” “✕” “△” “◇” “▶” “◀” “◈”
1: ;; use org-bullets-mode for utf8 symbols as org bullets
                  2: (require 'org-bullets)
                  3: ;; make available "org-bullet-face" such that I can control the font size individually
                  4: (setq org-bullets-face-name (quote org-bullet-face))
                  5: (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))
                  6: (setq org-bullets-bullet-list '("✙" "♱" "♰" "☥" "✞" "✟" "✝" "†" "✠" "✚" "✜" "✛" "✢" "✣" "✤" "✥"))

org-ellipsis candidate symbols

  • right arrows
    “↝” “⇉” “⇝” “⇢” “⇨” “⇰” “➔” “➙” “➛” “➜” “➝” “➞”
    “➟” “➠” “➡” “➥” “➦” “➧” “➨”
    “➩” “➪” “➮” “➯” “➱” “➲”
    “➳” “➵” “➸” “➺” “➻” “➼” “➽”
  • arrow heads
    “➢” “➣” “➤” “≪”, “≫”, “«”, “»”
  • other arrows
    “↞” “↠” “↟” “↡” “↺” “↻”
  • lightening
  • other symbols
    …, ▼, ↴, , ∞, ⬎, ⤷, ⤵
1: ;; org ellipsis options, other than the default Go to Node...
                  2: ;; not supported in common font, but supported in Symbola (my fall-back font) ⬎, ⤷, ⤵
                  3: (setq org-ellipsis "⚡⚡⚡");; ⤵ ≫

<2020-08-08 Sat>   Emacs Orgmod

Org as a spreadsheet system

It is how to use Emacs Lisp as formulas in Org tables. Example 1: manipulate cells. Here is a simple table:

First Name Last Name Email
Jone Doe
Alice Susan
Bob Wash
Even Yellow  

Now type C-c } to display the table's coordinates.

1: '(concat $1 "." $2 "")

Now copy this formula, type C-c = in the bottom right field to insert a column formula2 and copy the formula here. Hitting RET will immediately insert the result in this field ( and add the #+TBLFM line (#+TBLFM: $3='(concat $1 "." $2 "")) at the bottom of the table.

<2020-07-29 Wed>   Emacs Orgmod notetaking

Paragraphs are separated by at least one empty line. If you need to enforce a line break within a paragraph, use ‘\\’ at the end of a line.

To preserve the line breaks, indentation and blank lines in a region, but otherwise use normal formatting, you can use this construct, which can also be used to format poetry.

Great clouds overhead
Tiny black birds rise and fall
Snow covers Emacs


When quoting a passage from another document, it is customary to format this as a paragraph that is indented on both the left and the right margin. You can include quotations in Org documents like this:

Everything should be made as simple as possible, but not any simpler —Albert Einstein

If you would like to center some text, do it like this:

Everything should be made as simple as possible,
but not any simpler

<2020-07-28 Tue>   Emacs Orgmode


This package provides visual alignment for Org and Markdown tables on GUI Emacs. It can properly align tables containing variable-pitch font, CJK characters and images. Meanwhile, the text-based alignment generated by Org mode (or Markdown mode) is left untouched.

To use this package, load it and add valign-mode to org-mode-hook or markdown-mode-hook:

1: (add-hook ’org-mode-hook #’valign-mode)

<2020-07-27 Mon>   Research

Learning Tree learning-tree.png

<2020-07-19 Sun>   NetworkSecurity

Practical tcpdump examples to lift your network troubleshooting and security testing game. Commands and tips to not only use tcpdump but master ways to know your network.

Knowing tcpdump is an essential skill that will come in handy for any system administrator, network engineer or security professional.

<2020-07-19 Sun>   Documenting

To simply convert one file from Markdown to Org the following command can be used:

pandoc -f markdown -t org -o original-file.markdown

The solution was to export the VoodooPad document to a folder as text (File > Export Document > Export as Text…). Then call pandoc via the find command to convert them all in one go:

$ find . -name \*.txt -type f -exec pandoc  -f markdown -t org -o {}.org {} \; 
for f in `ls *.md`; do 
                pandoc -f markdown -t org -o ${f}.org ${f}; 
(defun markdown-convert-buffer-to-org ()
                "Convert the current buffer's content from markdown to orgmode format and save it with the current buffer's file name but with .org extension."
                (shell-command-on-region (point-min) (point-max)
                (format "pandoc -f markdown -t org -o %s"
                (concat (file-name-sans-extension (buffer-file-name)) ".org"))))

<2020-05-13 Wed>   Linux

Linux Cron job

  • How to generate a job just running in lipe year For example: At 12:00am on February 29th

    0 0 29 2 * root /bin/echo "Hello World"

  • Controlling Access to the crontab Command You can control access to the crontab command by using two files in the /etc/cron.d directory: cron.deny and cron.allow. These files permit only specified users to perform crontab command tasks such as creating, editing, displaying, or removing their own crontab files. The cron.deny and cron.allow files consist of a list of user names, one user name per line.

    These access control files work together as follows:

    • If cron.allow exists, only the users who are listed in this file can create, edit, display, or remove crontab files.
    • If cron.allow does not exist, all users can submit crontab files, except for users who are listed in cron.deny.
    • If neither cron.allow nor cron.deny exists, superuser privileges are required to run the crontab command.

    Superuser privileges are required to edit or create the cron.deny and cron.allow files.

TODO [B] <2020-05-02 Sat>   Emacs Org

DEADLINE: <2020-05-09 Sat> SCHEDULED: <2020-05-02 Sat>

Plan to write an article to talk about "Tables in Emacs with Org-mode"

Tables in Emacs with Org-mode

In Emacs, the Org mode comes with a fast and intuitive table editor. Spreadsheet-like calculations are supported by using the Emacs calc package and Emacs Lisp programming language.

<2020-04-29 Wed>   Literature


By Samuel Ullman

Youth is not a time of life; it is a state of mind; it is not a matter of rosy cheeks, red lips and supple knees; it is a matter of the will, a quality of the imagination, a vigor of the emotions; it is the freshness of the deep springs of life.

Youth means a temperamental predominance of courage over timidity of the appetite, for adventure over the love of ease. This often exists in a man of sixty more than a boy of twenty. Nobody grows old merely by a number of years. We grow old by deserting our ideals.

Years may wrinkle the skin, but to give up enthusiasm wrinkles the soul. Worry, fear, self-distrust bows the heart and turns the spirit back to dust.

Whether sixty or sixteen, there is in every human being's heart the lure of wonder, the unfailing child-like appetite of what's next, and the joy of the game of living. In the center of your heart and my heart there is a wireless station; so long as it receives messages of beauty, hope, cheer, courage and power from men and from the infinite, so long are you young.

When the aerials are down, and your spirit is covered with snows of cynicism and the ice of pessimism, then you are grown old, even at twenty, but as long as your aerials are up, to catch the waves of optimism, there is hope you may die young at eighty.

<2020-03-17 Tue>

End is a new beginning – YF Lin

Date: 2020-04-28 Tue 00:00

Author: Ethan YF Lin

Created: 2023-08-11 Fri 15:55