Skip to content
View ahjun001's full-sized avatar

Block or report ahjun001

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ahjun001/README.adoc

On technology: lecture notes, examples, and projects

Contents

1. Using Github

This account is meant to keep technology assets, ultimately as project deliverables in their most accomplished form, and getting there as notes, install scripts, learning materials – tutorials, cheat sheets, archetypal situations and solutions – snippets, and pedagogical projects.

To master a technology is first to apprehend, then learn, and comprehend.

1.1. Apprehend roughly follows understanding basic CRUD

1.1.1. Create: know how to install the technology so as to be able to use it

1.1.2. Read: understand what has been installed, what is available, what needs to be completed

1.1.3. Update: know how to tune whatever needs to be for efficacy and efficiency

1.1.4. Delete: save assets, uninstall, and clean

1.2. Learn:

Learning a new technology is mainly achieved through tutorials and realizing pedagogical projects.

1.2.1. Tutorials

These could be based either on books, websites, or MOOCs. Experience shows that best assets worth keeping are in the form of Anki flashcards – those are on Anki site. Essential information worth keeping from tutorials, including cheat sheets, should be transcribed into Anki flashcards. All other tutorial scripts, videos, articles, and lecture notes are not worth storing. Some Anki flashcard have turned into complex procedures that show hard, and probably unnecessary to remember. These should be transferred as script in these repositories in a way that they could be readily accessible.

1.2.2. Pedagogical projects

Pedagogical projects are worth storing if the gist of the overall project can be seen to accelerate the realization of future similar endeavors.

1.3. Comprehend:

Acquiring these technology aims at gaining efficacy and efficiency. Which materialize into projects, projects assets being scripts, code, and deliverable.

But also into summaries and documentations of accomplishments, for reasons as follows:

1.3.1. Personal Reflection and Growth:

Writing a summary will force to consolidate thoughts, gain clarity, and extract valuable insights from own experiences. This process promotes personal growth and self-awareness, crystallize learning from successes and failures.

1.3.2. Memory and Recollection:

Human memory is fallible, and over time, details of past endeavors may fade. Writing down accomplishments and lessons learned creates a record that helps remember important details and retain valuable knowledge. This written account can serve as a reference in the future when specific information or experiences need to be recalled.

1.3.3. Accountability and Evaluation:

Summarizing accomplishments and challenges faced helps to evaluate progress and performance. Leading to objectively assess strengths and weaknesses, identify areas for improvement, and set future goals. Allowing to refer back to past work and measure growth over time.

1.3.4. Communication and Collaboration:

While it may appear that these writings go unnoticed, there may be instances where sharing these summaries becomes valuable. For example, when collaborating with others on similar projects, sharing insights and lessons learned can help them avoid similar pitfalls or build upon collective successes. Additionally, when one switch roles or organizations, having a written record of accomplishments and experiences can be useful in showcasing your skills and expertise.

1.3.5. Organizational Learning:

In a professional setting, documenting accomplishments and lessons learned contributes to the broader knowledge base of functions, organizations, and territories. When others can access and learn from your experiences, it helps prevent reinventing the wheel and promotes continuous improvement within the organization. It also ensures that valuable knowledge is not lost if you leave the organization or change roles.

1.3.6. Future Planning and Decision-Making:

Summarizing experiences provides a foundation for future planning and decision-making.

1.4. Maintain 5S

Sort (seiri 整理): check if posted info & content are useful, remove when it's not
Set in order (seiton 整頓): arrange for easy readability & use
Shine (seiso 清掃): review periodically for validity (with software updates, the possibility of using system & machine may vary) and to refresh in reader's memory
Standardize (seiketsu 清潔): standardize look, nomenclature to be more intuitive
Sustain/self-discipline (shitsuke しつけ): seek & maintain continuous improvement, delivery, deployment

1.5. Have a local copy of GitHub repositories under the same directory:

In settings.json (ctrl+comma):

"git.defaultCloneDirectory": "~/Documents/GitHub/",

1.6. Tools

GitHub desktop: to manage a local version

2. Hardware

Github is the current repository for several machines:

  • A desktop running Linux Mint 20 Ulyuana / Cinnamon

  • A Microsoft Surface Book version 1 with double boot: Linux Mint / Cinnamon & Windows 10

  • 2 64gb bootable disks, booting Linux Mint / Cinnamon and hopefully one day Windows 10 as well

A Windows 10 VMWare client in Linux Mints allows handling of a few situations that Linux does not, such as:

  • Downloading Huawei phone pics & vids

  • Connecting to icbc site in China, which can only be browsed with IE

  • Running Wenlin with sounds

  • Getting TV mp4 from captvty

But cannot - get the mike sound from RosettaStone, so would need a double boot just for this - Connect to bluetooth devices. Watching a movie from Shunlei (BaiduYun can be seen on Linux) with external speakers would require usb cable.

2.1. Laptop basic requirements:

  • AMD series 5: good so far, no need for expensive series 7, 9

  • thin & flat: to work as a e-book

  • non-glossy screen: don’t see the point of glossy, just annoying

  • non HiDPI, don’t see the point, lot’s of apps can’t handle it either

  • no more MSF computers: on Windows, drivers were always being updated, as if they would never work

  • Lenovo Think pad or ThinkBook: probably the best deal in China

  • Acer, Asus,

  • Dell, HP

2.2. External drive

  • San disks, usb 3.2 Gen.1 have worked well so far

2.3. Router

  • Linksys linksys wrt1900ACS v2

  • Asus RT-AX88U

3. Systems

  • Linux Mint is most user friendly

  • Fedora, Centos: one day

  • gparted: has a superb selection of software, all running in RAM in a ZFS partition

  • rescuezilla: to make complete machine backups

  • Windows 10, windows 7: one day might be needed

4. bash

6. javascript

7. Text editors

  • emacs

  • vim

8. IDE, Integrated Development Environments

9. Text editing with a lightweight markup language

9.1. Selecting a lightweight markup language

Mainly to rapidly key-in notes that include text, pics, weblinks,

but also tables, cross-references (sharing the same xml:id attribute), footnotes, embedded videos

and also description lists, admonitions (note, tip, important, warning, caution) and table of contents.

A cool tip: Github render as html on account head page the https://github/account/account/README.md file. README.adoc will work as well.

AsciiDoc is presented as superior by many, in the context of this page mainly for its Table Of Contents, toc. It is also presented as simpler to grasp. Here is the rationale: https://asciidoctor.org/docs/user-manual/#graduating-to-asciidoc

Markdown & GFM, Github Flavored Markdown: the de facto reference, mainly for Github and Jupyter notebooks.

Rendering on linux Mint: sudo apt install retext retext --preview filename.md

HackMD, mainly for collaborative work on github. Can draw simple UML diagrams (workflows) and math formulas.

9.3. Editing asciidoc

9.3.1. Cheat sheet

9.3.1.1. Paragraphs
9.3.1.1.1. Normal

Newlines within a Normal paragraph are not displayed. Neither are spaces: there are 4 spaces between a and b.

9.3.1.1.2. Literal

A paragraph offset by at least one space becomes literal.

The text is shown in a fixed-width font.
Spaces and newlines,
like the ones between a     and b,
are preserved.
9.3.1.2. Admonition
📎
NOTE: An admonition paragraph draws the reader’s attention to auxiliary information.
💡
TIP: $ sudo apt install fonts-font-awesome # to render icons
⚠️
WARNING: Watch out for…​
🔥
CAUTION: Ensure that…​
IMPORTANT: Don’t forget…​
9.3.1.2.1. Inline icons

[tags] ruby, asciidoctor

9.3.1.2.2. next

9.3.2. Advanced

9.3.3. May be needed one day

9.4. Rendering AsciiDoctor on linux

sudo apt install AsciiDoctor AsciiDoctor filename.adoc will create filename.html in the same directory

9.5. Convert AsciiDoc to PDF

Simple: print filename.html to pdf. Resulting pdf will have no TOC.

Interesting, also because it unveils PDF’specificities: https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc

10. Major techs

10.1. Linux

10.2. Forgotten commands

sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 100

10.2.1. Linux Mint 20 on MS Surface book

After install new kernel, check updates on linux-surface/linux-surface#96

10.4. Architecture / Gang of 4

10.5. Dockers

10.7. Python

10.7.1. Podcasts which are worth a listen

https://pythonbytes.fm/episodes/all
https://talkpython.fm/episodes/all
https://realpython.com/podcasts/rpp/

10.8. JavaScript / TypeScript /

10.9. Postgresql

11. Other techs

11.1. Data banks

11.2. Inkscape

11.3. VSCode

11.3.1. VSCode install

11.3.1.1. VSCode Settings Sync

Settings Sync lets you share your Visual Studio Code configurations such as settings, keybindings, and installed extensions across your machines so you are always working with your favorite setup.

The Turn On Settings Sync entry is in the Manage gear menu at the bottom of the Activity Bar (vertical left bar). This will synchronize:

  • Settings

  • Keyboard shortcuts for each platform

  • User snippets

  • Extensions

  • UI state

11.3.1.2. Default clone directory
User settings 'CTRL + comma'  /  enter the path to your desired directory with slashes:
"git.defaultCloneDirectory": "~/Documents/GitHub/"

11.4. asciiDoctor

11.5. Astrill

11.5.1. Site filter

smtp.263.net
imap.263.net
https://partner.outlook.cn/
https://portal.partner.microsoftonline.cn/
https://login.partner.microsoftonline.cn/
https://www.system-in-motion.com/
https://web.wechat.com/
https://www.wechat.com/
https://www.baidu.com/
https://company.zhaopin.com/
http://mirrors.cn99.com/
59.111.0.251
http://mirrors.aliyun.com/ubuntu/
https://mirrors.bfsu.edu.cn/
39.155.141.16
http://mirrors.ustc.edu.cn/
http://archive.canonical.com/
http://security.ubuntu.com/
https://dl.winehq.org/wine-builds/

11.6. Roadmaps

https://andreasbm.github.io/web-skills/?compact
https://roadmap.sh/

12. Testing techs

13. Interesting programmers

Most active Github users: https://gist.github.com/paulmillr/2657075

Ciro S.: posix-ubuntu, python, bonne appréciation de l’environment du software (free-lance system engineers will find it difficult against big corps), de la Chine.

Russell Keith-Magee: for its views on open-source. https://realpython.com/podcasts/rpp/22/

Armin Ronacher: created Flask as an April’s fool joke. https://realpython.com/podcasts/rpp/18/

Karan Ahmed: for his roadmaps (frontend, backend, devops)

https://github.com/kamranahmedse
http://youtube.com/theroadmap
Design Patterns: https://roadmap.sh/guides/design-patterns-for-humans
Interesting suggestions: https://kamranahmed.info/
Monitoring git updates: https://github.com/kamranahmedse/git-standup

Andrei Cioara: for his suggestions on organizing GitHub, Gitlab, and BitBucket repos, https://github.com/aicioara

Sindre Sorhus, for 1k+ repositories on Github: https://github.com/sindresorhus?tab=repositories

14. Interesting programs

Popular repositories Loading

  1. ahjun001 ahjun001 Public

    Contains README.adoc that is rendered in the head page and public profile

  2. _1.4-learning-vim _1.4-learning-vim Public

    Shell

  3. _1.7-asciiDoc _1.7-asciiDoc Public

  4. _3.a.3-python _3.a.3-python Public

    Python

  5. _3.a.1-linux _3.a.1-linux Public

    Shell

  6. _3.c-install-n-utils _3.c-install-n-utils Public

    Shell