Skip to main content

· 4 min read

Context

Recently, my Dell XPS has been running slower after each Windows 10 update. Every interactions on my Dell, like opening a web browser, feels sluggish and laggy. Having tried Ubuntu on older computers earlier, I have set my eyes on a light-weight operating system that combines speed and performance together.

What is Xubuntu?

Xubuntu is an open source GNU/Linux Operating System (OS) that prides itself in portability, performance and good user experience. It is also a different "flavour", or derivative of the open source operating system Ubuntu. Xubuntu's notable feature is its desktop environment XFCE that is light-weight. Its sibling, LXDE or LXQt is also another great alternative available in the derivative OS Lubuntu.

Xubuntu packs basic tools and applications for daily usage that are always free to use. The basic set of applications provide great Graphic User Interface (GUI) for anyone who is not familiar with using command lines in a terminal.

Since my workflow involves a lot of text editing, web browsing, and some light web development, I know Xubuntu can accommodate them well. In fact, after a period of usage, I have noticed that Xubuntu allows my computer to pick up my workflow much faster than Windows 10.

Preview Xubuntu on a live USB

Most Linux OSes, like Ubuntu and its derivatives or the Arch-based Manjaro, often allow live preview before installing. I reccommend running the preview version upon booting the computer to scout for potential compatibility problems. My test on the preview version showed no issues. I could interact with the OS the same way in Windows. For example, opening applications by double clicking the icons, or playing songs on my computer.

To preview Xubuntu on a computer, do the following:

  1. Download the official Xubuntu ISO image. Choose the suitable versions that you'd like to run. Ubuntu and its variants/ flavours like Xubuntu all release a latest version and a long-term support (LTS) version.
  2. Use Rufus to create a bootable USB. You can follow Ubuntu's guide on creating a bootable USB on Windows.
  3. Press F2 to boot into BIOS mode. Press it as soon as the keyboard's backlit light is turned on.
  4. Check if UEFI is enabled and Secure Boot is disabled in BIOS.
  5. Select the bootable USB to start previewing Xubuntu > Click Live preview.
  6. Try replicating tasks in your workflow and see if something doesn't work.

Install Xubuntu

Once I was satisfied with testing in the preview version, I proceeded to install Xubuntu on my Dell XPS.

To install Xubuntu, do the following:

  1. Select install Xubuntu on your computer.

  2. Choose between dual booting or a full Xubuntu install, which will reformat all data on the current disk.

  3. Enjoy your new Xubuntu!

Post-Installation Checklist

I had to tweak a few things to get Xubuntu up and running smoothly.

Enable Wifi

Wifi doesn't work on my Xubuntu out of the box. I did the following to enable Wifi again:

  1. Open Software & Updates > Additional Drivers tab.
  2. The window should display the proprietary driver for Wifi, which is the "Broadcom Inc. and subsidiaries: BCM4352 802.11ac Wireless Network Adapter".
  3. Click Using Broadcom 802.11 Linux STA wireless driver source from bcmwl-kernel-source (proprietary).
  4. Click Apply Changes.

Change the time to the correct timezone

I have realized that my Dell XPS's BIOS clock is set to local time, instead of UTC time, which prevents Xubuntu from displaying the correct time. Windows 10 set the BIOS clock to local time, which interferes with how other OSes set time.

Since the BIOS clock is set to local time, Xubuntu attempts to convert the local time to the timezone specified in its settings, which will display the wrong time. To fix this, set the BIOS clock to UTC and let Xubuntu convert it to local time. The following solution fixed the issue for me:

  1. Restart computer, then press F2 when the Dell logo appears.
  2. Click General > Date/Time.
  3. Change the current time to UTC time.
  4. Restart your computer.
  5. Check Xubuntu's date/time settings and make sure the Time and Date application sets the correct local time zone.

· 4 min read

If you are using a Xubuntu distribution, check out this short list of essential terminal commands for managing files and folders.

Prerequisites

  • Xubuntu installed on the computer.
  • Access to Terminal or other command line/ shell application that can interact with the OS.
  • Access to root (administrative) permissions, in case you need to execute an action as an administrator/ root user.

Glossary

  • Directory: the current path to the folder. If you look at your file manager's path, it would show a line: /path/folder/subfolder and the available files in the folder.
  • Terminal: a type of command line application that accepts text input and process it, then displays the information in plain text. cmd on windows is a type of command line application much like Terminal. The difference is in what kind of command can be executed in each program and platform.

File Directory

Using the following command lines, you can freely manipulate and navigate between files and folders using only keyboard, instead of graphic user interface and mouse. The following commands belong to the GNU's [coreutil](https://www.gnu.org/software/coreutils/manual/coreutils.html) package that is included in most Linux distributions like Ubuntu, Debian.

The terminal will execute commands and modify files based on the current directory. You can check the current directory by looking at the input line.

File Navigation

Navigate to a folder: cd

$ cd Documents
# you are now in the Documents directory. See the Manipulation section to start editing files and folers
/Documents $

View all available files: ls

$ ls
Desktop Downloads Documents

View all available and hidden files: ls -a

$ ls -a
. Downloads Desktop Documents
.. .emacs.d .pki .thunderbird
.bash_history .gitconfig .profile
.bashrc .ICEauthority .purpl

File Management

Create a file: touch filename

# view available files in the current directory
$ ls
notes.txt
# create a new file using touch
$ touch todo.txt
# viewing all files again. We see the new file created in the current directory
$ ls
notes.txt todo.txt

Remove files: rm filename

# remove a file in the current director
$ rm filename
# outputs a prompt in the terminal to confirm deletion
$ rm -i filename
# delete files recursively, including any subfolders and items contained in a parent folder
$ rm -rf foldername

Move one file from one folder to the other folder: mv filename ./path-to-new-folder

# View all available files in the current directory
$ ls
. .. Documents contract.pdf
# Move the PDF file into the Documents folder
$ mv contract.pdf ./Documents
# Change directory into the Documents folder and we'll see the moved PDF file
$ cd Documents
. .. contract.pdf

Copy: cp filename directory

# Create a copy file and move it into the specified path to the directory
$ cp mynotes.md ./Documents
# mynotes.md was duplicated
$ cd Documents
$ ls
. .. mynotes.md

Rename a file: mv -T currentfilename newfilename

You can use the same mv command to rename a file by following the syntax below:

# view all available files in the current folder
$ ls
note-123.txt
# you can use mv to rename a file, using the flag -T
mv -T note-123.txt my-note.txt
# the file was renamed
$ ls
my-note.txt

If you need a graphic user interface (GUI) for managing files, you can invoke the file manager's GUI in the current directory with a dot, like this:

# This will open the Thunar file manager GUI in the current directory
$ thunar .
# VS Code will open files in the current directory
$ code .

Create a folder mkdir

# Creates a folder called Music
$ mkdir Music
# The folder Music is created in the current directory
$ ls
. .. Music

Delete a folder rmdir

# Removes a folder called Music
$ rmdir Music
# The folder Music is deleted in the current directory
$ ls
. ..

Further Reading

The following articles provide additional commands that you can use in Xubuntu terminal for more advanced tasks:

Read more about the GNU coreutils package included in Xubuntu. It is a very comprehensive documentation of command lines and programs bundled: https://www.gnu.org/software/coreutils/manual/coreutils.html

· 3 min read

So I have been working on some REST API and JSON. One of the task that had to be done was how to manage multiple people editing a single API data point. So I came up with an idea of splitting a single JSON API data file into multiple files called “fragments”. Each “fragment” will hold a smaller amount of data created by a single author or contributor. The fragments will always adhere to the JSON data schema of course. Here’s an example of a JSON file as the API data. This fragment is named api-data.json

[ //Array can hold multiple objects
{ //Object
"year": "2329", //"string". Only one value
"allContinents": [ //Array can hold multiple objects
{ //Object. Only contain the below keys/values
"continent": "asia", // string. Only one value
"country": "malaysia", // string. Only one value
"events": [ //array. Can hold multiple objects
{ // Object. Can only contain the below keys/values
"event": "launched the first teleportation as a service", // string. Only one value
"date": "3320-2-10", // string. Only one value
"image": "", // string. Only one value
"video": "", // string. Only one value
"links": [ //Array. Can hold multiple strings
""
]
},
{ // Object. Can only contain the below keys/values
"event": "launched the first teleportation as a service", // string. Only one value
"date": "3320-2-10", // string. Only one value YYYY-MM-DD
"image": "https://i.imgur.com/dBm6h3p.png", // string. Only one value
"video": "", // string. Only one value
"links": [ //Array. Can hold multiple strings
"https://en.wikipedia.org/wiki/Teleportation",
"https://en.wikipedia.org/wiki/Teleportation"
]
},
]
}
]
}
]

To include newer JSON data, I created a javascript file to process the data, concatenate everything and write to a new file. Let’s call this file data-processing.js

All of the JSON data fragments are in the fragments folder.

/**
* All data files should have all continent and country names in lowercase
* all data fragment files will merged into the main data.json file
*
*
*/
const { allYearsAllLocation } = require("../pages/api/api-data.json");
const fs = require("fs/promises");

//read and parse JSON data files
let dataString = JSON.stringify(allYearsAllLocation);

//read dir => require all JSON files => parse all => flat merge all arrays => write to data.json file
let dataArr = [];
let allFragmentNames = [];

const readFilesAll = async () => {
try {
// Read and return all of the files' names
let fileNames = await fs.readdir("./fragments");

dataArr = [...fileNames];

dataArr.forEach((item) => {
allFragmentNames.push(require("./fragments/" + item));
});

let flattened = allFragmentNames.flat();
let mergeAll = allYearsAllLocation.concat(flattened);

let writeAll = await fs.writeFile("./data.json", JSON.stringify(mergeAll));

//will return undefined upon successful write
console.log(writeAll);
} catch (error) {
console.log(error);
}
};

readFilesAll();

After writing the script to handle JSON files and file editing, I can run the data-processing.js in Node.js runtime environment: node data-processing.js

I will now see a new JSON file with the new data combined.

· 6 min read

I have been thinking about moving away from WordPress to a static website build. On my search, I have discovered 11ty, Next.js, Create React App and Gatsby.js. All of them provide the tools to create a perfectly functional website. However, I realized that they all required a lot of manual configurations and HTML + CSS template customizations, which consumes too much time to my likings.

One day when I was browsing on Github's explore page and saw this green cute dinosaur called Docusaurus. After reading its documentation site, I realized that Docusaurus is going to provide me a good layout for blog posts and documentation content, which fits my needs perfectly.

What is Docusaurus?

Docusaurus is a static site generator geared towards technical documentation and frequently updated content. It is an open-source project created by a small team at Facebook and currently being used by many third-party library authors for API documentations. Docusaurus uses React, Babel and Webpack to build static sites and runs on Node.js environment.

Reasons for the Migration to Docusaurus

I have recently been building websites with React, so why not try a documentation buider that uses React and Javascript under the hood? More reasons to like Docusaurus:

  • Git-based workflow: All of my source code is on Github and my website is deployed using Github Pages in one quick command npm run deploy.
  • Single Page Application (SPA) + server-side rendering: All of React goodness in a package. Fast and responsive website that is SEO-friendly with server-side rendering.
  • Fast SEO optimization: Docusaurus can dynamically generate sitemap based on the published contents. This sitemap is crucial for search engines like Google to discover a website and index the correct URLs. Docusaurus also includes built-in React components for SEO optimization such as <Head/> to specify HTML's <head> tag.
  • All-in-one documentation tool that is focused on content writing, instead of coding:
    • Easy blog layout: I can just focus on writing contents, instead of spending time tinkering with web layouts.
    • Good options for customizations while lifitng heavy work: Having said the above point, Docusaurus still allows CSS customization with tools such as CSS Module, Sass/SCSS and the developing CSS library Infirma.
  • Ease of deployment on Github Pages: I can deploy my website all from the terminal with one command line. Docusaurus will handle optmizing the site build and use Git to deploy on Github Pages for me.
  • Moving away from bloated scripts and page builders on WordPress: This is a strong reason why I migrated from WordPress to Docusaurus. My old WordPress site has a very slow loading time despite having a few plugins and little theme customization. I also realized that WordPress themes and plugins would create extra URLs that I don't need.
  • Avoiding arbitrarily-created pages by WordPress themes and plugins.
  • Options to include slugs and other metadata in blogs and docs: Docusaurus can parse frontmatter to display page descriptions and other metadata that is meaningful to search engines and users.

Migration Steps

I did the following steps to migrate my site from WordPress to Docusaurus:

  1. Cross reference links between WordPress site and Docusaurus site.

  2. Create 301 redirects for links that won't be available in old site. I used CPanel's Zone Editor to manage most of my domain's records and redirection.

  3. Use Google Search Console to discover any crawled links and excluded links.

  4. Redirect any old links to the homepage.

  5. Uninstall WordPress using Softaculous script on CPanel.

  6. Install Docusaurus and customize the contents and layout to fit any needs.

  7. Add custom domain to the Github Pages repository:

    1. Add CNAME record and A records on my hosting server.
    Note

    CNAME record should point to the Github user page fineon.github.io and A records should point to Github's IP address. To input the correct IP address, refer to Github Pages's guide to setting up A records: Configuring an Apex domain.

    1. Create a CNAME file without any dot extension and add the custom domain name. Place the file in the static folder. The baseURL in docusaurus.config.js file can be changed to / . This step is reccommended on Docusaurus deployment guide.
  8. Set up URL in docusaurus.config.js to my custom domain heythereian.com instead of fineon.github.io to match all URLs to the domain name. Google Search Console will warn about this if the URLs in the sitemap do not match with the actual website's links.

  9. Deploy Docusaurus site on Github repository on gh-pages branch.

  10. Go to the deployed site's XML path and resubmit the sitemap XML link to Google Search Console for link coverage.

Potential Email Server Errors and Solution

If you are using an email account provided by the hosting provider, like NameCheap, after changing the domain's records, you may experience issues with email synchronization on clients, like Thunderbird or Iphone's Mail app. I figured out that my email clients were using the default domain name heythereian.com as the email server, which used to point to the correct email server. When the domain's records were changed to point to Github's IP address, this email server addresss no longer works. Instead, you should configure your email client to sync from the direct email server, like server-000.hosting.com to fetch and send emails. Ask your hosting provider or look for the direct email server address in Help & Support section of your email providers.

Docusaurus Deploy Flow

Here's my Docusaurus Deployment Flow right now:

  1. Write content in .md Markdown files. Then commit the code: git add . and git commit -m "commit message here".
  2. Open the Linux terminal and enter Docusaurus's deployment command:
Linux bash shell
GIT_USER=<GitHub-username-here> DEPLOYMENT_BRANCH=gh-pages npm run deploy
Note

If you're deploying from Windows, checkout Docusaurus's guide on deployment on Windows.

I deployed from main branch and did not need to create another gh-pages branch on my local repository. Docusaurus will automatically create a remote gh-pages and push the static build there. I also specified the branch used for deployment by specifying DEPLOYMENT_BRANCH=gh-pages in the deploy command.

References

https://docusaurus.io/docs/deployment#docusaurusconfigjs-settings

https://www.siteground.com/kb/if_i_switch_hosts_will_it_affect_my_search_engine_ranking/

https://www.searchenginewatch.com/2018/10/01/how-to-migrate-web-hosts-without-losing-seo/

· 4 min read

This article first appeared on Spiderum, translated from a piece on Thought Catalog. References are at the bottom of the article.

Vạn vật là nhất thời: từ những trang sách bạn đang đọc. Chiếc ghế bạn đang ngồi. Bầu trời xanh biếc sớm tàn vào đêm khuya. Nụ hôn nồng ấm trên má bạn. Cơn gió thoảng trên cây. Những cái chạm nhẹ nhàng từ người ấy.

Tất cả những điều trên chỉ là tạm thời. Cả những khoảnh khắc tuyệt đẹp thoáng qua lúc bạn thay đổi và trưởng thành. Tất cả những cơn đau đầu, khổ sở, tan vỡ đều sẽ hòa tan như giọt sương vào mỗi sáng sớm.

Đôi lúc mọi thứ cảm thấy thật ghê sợ khi chúng ta mường tượng một thế giới thật khác với thế giới chúng ta đang cư ngụ, khi chúng ta tự hỏi về nơi chốn khi chúng ta không còn trên mặt đấy này nữa, khi chúng ta cũng chỉ là nhất thời.

Nghe tưởng chừng thật đáng sợ nhưng thực kỳ nó cũng thật êm dịu biết bao. Vì nó nhắc nhở chúng ta rằng dù chúng ta có trải qua chuyện gì đi chăng nữa, dù trái tim ta có chịu đau khổ ra sao, dù chúng ta cảm thấy mệt mỏi và chán chường như thế nào - Những ưu phiền đó sẽ không thể tồn tại mãi mãi.

Nỗi đau chỉ là nhất thời.

Hãy nhớ điều đó khi bạn không muốn mở đôi mắt mình. Hãy nhớ điều đó khi đứa bạn thân của bạn chạy vèo nhanh tới bàn ăn để bạn không thể ngồi xuống. Hãy nhớ điều đó khi bạn không có ai để đi dạ hội, khi bị bỏ rơi, khi bạn bắt gặp người ấy nhắn tin một người khác.

Hãy nhớ điều đó khi bà bạn trút hơi thở cuối cùng. Hãy nhớ điều đó khi bạn phải tiễn đưa chú chó của mình. Hãy nhớ điều đó khi một người bạn tin tưởng dối trá và bạn thấy mình thật ngu ngốc vì tin nó. Hãy nhớ điều đó khi hôn nhân của bạn đổ vỡ, khi con bạn bị gãy tay, khi bạn không chắc nên tin ai hay cái gì. Hãy nhớ điều đó khi bạn không biết nếu bạn có dũng cảm để đối mặt một ngày nữa.

Hãy nhớ rằng những cảm xúc bạn đang trải qua sẽ không phải là vĩnh cửu.

Mọi thứ đều là nhất thời. Những cơ thể vật chất này. Những cảm xúc này. Những nhịp tim này. Đúng, nó thật đáng sợ. Nhưng lại thật tự do nữa. Vì nó có nghĩa rằng chúng ta sẽ không bị ràng buộc mãi mãi. Chúng ta sẽ không thể đổ vỡ mãi mãi. Chúng ta sẽ không cam bức những lời lẽ nghiệt ngã và hành động bạo lực từ những người chúng ta yêu quí (hoặc từng yêu quí).

Nó sẽ không thể như thế mãi mãi. Chúng ta sẽ không thức dậy và nhớ người ấy mãi mãi. Chúng ta sẽ không có những ác mộng về cha mẹ đã mất hay bị ám ảnh bởi ác quỷ từ tội lỗi của chúng ta. Chúng ta sẽ dừng ghét bản thân mình, cuộc sống hay sự tồn tại của mình nữa.

Vì trong tương lai, những nối đau của ta sẽ biến vào dĩ vãng.

Vậy nên xin bạn hãy vững lòng. Dù là một phút. Một giờ, Một ngày nữa. Tìm những thứ làm bạn mỉm cười - có thể là một thứ nhỏ nhắn, hay là một thứ gì đó to lớn - và hãy giữ vững vào những điều ấy. Học từng giây về tại sao cuộc đời thật đáng sống và nhắc nhở bản thân điều này khi bạn bắt đầu quên nó.

Hãy chiến đấu. Tự nhủ bản thân rằng bạn sẽ sống sót. Bởi vì bạn sẽ sống sót.

Một ngày nào đó, nỗi đau sẽ không còn. Một ngày nào đó bạn sẽ không cảm thấy đau thương nữa. Một ngày nào đó bạn sẽ nhìn lại những thứ đã làm (suýt) tổn thương bạn và bạn sẽ thấy bạn đã trưởng thành như thế nào. Cách bạn đã vượt qua nó. Cách bạn đã quá rời xa bóng tối đến nỗi bạn không thể nhớ được cảm giác khi rời xa ánh sáng.

Một ngày nào đó bạn sẽ thấy rằng nỗi đau chỉ là nhất thời, và bạn sẽ thấy rằng bạn luôn luôn có sức mạnh bên trong để vượt qua mọi thứ.

Nguồn: Thought Catalog.

· 14 min read

This article first appeared on Spiderum as one of my Vietnamese translation piece that accumulated over 1300 views.

https://images.unsplash.com/photo-1472566316349-bce77aa2a778?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb

"Rõ ràng, tôi là một trường hợp điển hình trong dân số những người đàn ông trung tuổi - những người không muốn thừa nhận rằng họ mong muốn một tình bạn, kể cả khi tất cả các dấu hiệu chỉ điều ngược lại," trích Billy Baker về hành trình khám phá sự cô đơn của phái đàn ông trên tờ The Boston Globe.

Có lẽ lý do tại sao bài viết của ông được phát tán trên cộng đồng mạng nhiều đến thế là vì họ có thể đồng cảm: Năm ngoái, nhà phẫu thuật Vivek Murthy cảnh báo rằng người Mỹ đang "đối diện một đại dịch của sự cô đơn và đơn độc."

Dù sao câu nói "tôi sẽ chết một mình" là câu phàn nàn phổ biến với mọi người. Trong giới khoa học, nó sát hơn với câu nói "tôi sẽ chết nếu tôi đơn độc."

Hệ thống miễn dịch của con nguời có thể bị ảnh huởng do thiếu tuơng tác xã giao, vì vậy những con nguời đơn độc có nhiều khả năng chết sớm. Sự cô đơn còn nguy hiểm hơn cả béo phì và nguy hiểm bằng việc hút thuốc. Mối nguy hại này đuợc coi là nghiêm trọng đến nỗi England đã tạo một chiến dịch để giải quyết sự cô đơn.Buồn thay, sự cô đơn chỉ dẫn đến sự cô đơn nhiều hơn. Não của nguời có ít tuơng tác với nguời khác thường nghĩ con người là một mối hiểm hoạ và càng khiến nguời đó khó thân với nguời khác.Để hiểu thêm về vấn đề nan giải này, và làm sao để giải quyết nó, tôi đã nói chuyện với John Cacioppo, nhà tâm lí học tại đại học Chicago, nguời đã viết sách về nỗi cô đơn và đã nghiên cứu vấn đề này chuyên sâu. Duới đây là bản ghi chép cuộc nói chuyện của chúng tôi.


Olga Khazan (O.K): Con nguời có đang trở nên đơn độc hơn không thưa ông? Nếu đúng thì đâu là lí do?

John Cacioppo (J.C): Khi bạn đọc các tài liệu nghiên cứu, bạn sẽ thấy tỉ lệ những nguời cô đơn rơi vào 25 tới 48 phần trăm. Tôi thấy London có khuyến cáo tằng 50 phần trăm nguời London cảm thấy cô đơn, nhưng dữ liệu này không chuyên sâu nên đừng quá tin vào nó. Dữ liệu nghiên cứu chuyên sâu nhất nằm trong nghiên cứu sức khoẻ và nghỉ hưu tại Mỹ. Nghiên cứu này đuợc hỗ trợ bởi chính phủ qua nhiều thập kỷ và đó chính là nơi tôi dựa vào để đưa ra các nhận định. Khi chúng ta nhìn vào các bản thăm dò, tỉ lệ của sự cô đơn là 27, 28 phần trăm. Các nhận định khả thi nhất đều dựa vào nó, tức tỉ lệ này đã tăng từ 3 đến 7 phần trăm trong vòng 20 năm qua.

O.K: Tỉ đó không hề cao, nhưng liệu có lời giải thích cho nó? Có thể do mọi nguời đang già hoá và nguời già thuờng sống một mình?

J.C: Đầu tiên, để tôi nói điều này. Sống một mình, ở một mình và vòng tròn các mối quan hệ của bạn đều có ít sự liên quan. Hãy nghĩ về bệnh nhân trong bệnh viện:  họ có người xung quanh, họ được quan tâm và giúp đỡ nhưng họ lại cảm thấy cô đơn. "Cô đơn" (ở quanh mọi người nhưng tự cô lập mình) và "cô độc" (ở một mình) là hai khái niệm khác nhau. Những người chồng người vợ thường cảm thấy đỡ cô độc hơn người đang độc thân. Nhưng họ lại cảm thấy cô đơn khi họ bị xa lánh bởi họ hàng và gia đình. Các yếu tố đều có ít sự liên quan nên chúng ta phải đánh giá sự cô đơn về mặt tinh thần hoặc về mặt thể chất.

Ở loài vật, khi tách một con khỉ và bạn đồng hành của nó thì chúng ta thấy xảy ra hiện tượng tương tự ở loài người: chúng cảm thấy cô đơn.

O.K: Tại sao chúng ta thấy sự gia tăng của cơn dịch mang tên "cô đơn"?

J.C: Có nhiều yếu tố về văn hóa và môi trường có thể xảy ra hiện tượng này. Ví dụ: sự xuất hiện của Internet giúp con người kết nối với nhau nhiều hơn. Nhưng nếu bạn cứ chăm chú đọc tin nhắn và email trong lúc họp mặt gia đình thì điều đó cũng không hẳn là đúng.

Nếu bạn tận dụng sự kết nối của Internet như một nơi để gặp gỡ - giới trẻ thường làm điền này; chúng dùng Facebook để hẹn tại một địa điểm nào đó. Điều đó liên giao với sự thuyên giảm của cô đơn. Nếu sự kết nối của Internet được dùng như một đích đến [một giải pháp] - và trớ trêu thay, những người cô đơn thường làm điều này, họ thường tự rút mình vì tương tác với người khác cảm giác như một sự trừng phạt, và có lẽ tương tác online dưới một danh tính giả, làm họ cảm thấy hòa đồng hơn. Nhưng điều đó không làm họ cảm thấy bớt cô đơn.

Nếu bạn chỉ cảm thấy tự tin với bản thân qua một danh tính ảo trên mạng thì điều đó không giúp bạn hòa đồng hơn. Nhưng nếu bạn nhìn về khía cạnh hẹn hò qua mạng ảo nơi bạn gặp gỡ mọi người nên bạn sẽ cảm thấy bớt cô đơn.

O.K: Tại sao những người cô độc thường nghĩ tiệu cực trong các mối quan hệ với người khác?

J.C: Có hai hướng để nhìn nhận. Các thứ nhất là những sự kiện ghi lại tại phần tiềm thức và phần còn lại tại phần ý thức. Ví dụ, khi bạn đói, bạn cảm nhận được nó và bạn muốn ăn. Mục đích của cảm giác đó thúc đẩy bạn đi tìm đồ ăn trước khi bạn kiệt sức và không còn năng lượng để ăn.

Và sự cô đơn thúc đẩy bạn sửa chữa những mối quan hệ đạng phai nhạt dần. Vì vậy mọi người tập trung vào các mối tin quan trọng trong đời sống để họ có thể hàn gắn các mối quan hệ đó.

Trong lúc bạn đói, bạn sẽ trở nên nhạy cảm hơn trước vị đắng. Lý do là vì trong quá trình tiến hóa, vị đắng thường gắn liền với nọc độc. Tức là khi bạn đói, bạn sẽ không ăn đồ ăn đắng cho dù bạn đang cố tìm đồ ăn để sinh tồn.

Tương tự với sự cô đơn. Nếu bạn nhìn về loài người tối cổ, họ không có đối xử tốt đẹp với nhau. Chúng ta lợi dụng nhau, chúng ta trừng phạt nhau, chúng ta đe dọa nhau, chúng ta ép buộc nhau. Và vấn đề không phải là tôi muốn làm bạn với ai mà là tôi cần phải phân biệt đâu là bạn, đâu là kẻ thù. Như vị đắng và ngọt, nọc độc và không độc, nếu tôi phạm một sai lầm và nhận ra một người tưởng là kẻ thù nhưng thực ra là bạn thì không sao, tôi không kết bạn nhanh nhưng tôi đã sống sót.

Nhưng nếu tôi tưởng lầm một kẻ thù là bạn thì tôi sẽ trả giá bằng mạng sống của tôi. Qua quá trình tiến hóa, chúng ta tiến hóa để nhận biết được những điều trên.

Và điều đó tạo nên những mong chờ, vì tôi thường đoán trước là những thứ tôi sẽ thấy. Nếu tôi nghĩ bạn sẽ trở nên thù dịch thì tôi sẽ nói những điều rất khác so với những điều khi tôi tin bạn hơn.

Bạn được thúc đẩy để hàn gắn. Nhưng những mối quan hệ không rõ ràng (promiscuous connection) có thể dẫn tới cái chết. Một cơ chế trong hệ thần kinh phát tác để bạn trở nên nghi ngờ hơn trước khi kết nối với người khác.

O.K: Một số học thuyết cho rằng khi ta tạo ra nhiều cơ hội để xã giao hơn, kể cả cả thiện kỹ năng giao tiếp không hề giảm sự cô đơn. Vì sao lại có hiện tượng như trên?

J.C: Tương tác xã giao (social interaction) còn được gọi là sự giao tiếp (social engagement), tức là sự cô đơn có thể được chữa khỏi nhờ gặp gỡ với mọi người. Nếu họ không cô độc thì họ sẽ không cảm thấy cô đơn. Các trường đại học thường nghĩ như thế này và đó là lý do tại sao trường thường tổ chức các sự kiện để giao lưu. Bạn nhớ những sự kiện đó chứ? Chúng thường không thành công.

Ở bên cạnh người khác không có nghĩa là bạn sẽ cảm thấy gần gũi, và tình trạng lẻ loi không có nghĩa là bạn cô đơn. Bạn có thể cảm thấy cả hai điều trên, nhưng thường chúng ta hay tách mình khỏi đám đông.

Một người mẹ trẻ thường chăm sóc người con tận tình, nhưng điều đó không có nghĩa là ông chồng phải ép cô ấy làm việc đó 24/7. Anh ta có thể tạo cho co vợ một không gian riêng để thư giãn và tiếp sức cô ấy để chăm sóc người con tốt hơn. Không gian riêng ấy gia tăng sự kết nối và giao lưu chứ nó không hề ngăn cản việc đó.

O.K: Có những chương trình hỗ trợ cho người cô đơn nào?

J.C: Có sự hỗ trợ cho người già cô độc. Những chương trình đó giúp họ gặp gỡ mọi người và có đồ ăn thức uống mỗi tháng. Bằng những sự hỗ trợ này, chúng sẽ giúp người già rất nhiều do nỗi sợ lớn nhất của người già là chết mà không ai biết. Bằng những chương trình như trên, họ cảm thấy an ủi hơn.

Tuy nhiên sự hỗ trợ này chỉ giải đáp một phần nào nỗi buồn của người già. Nó chỉ làm vơi đi cái ý nghĩ sống chết không một ai hay.

O.K: Ông sẽ có những liệu pháp gì cho những người cô độc nhưng không muốn giao tiếp với người khác?

J.C: Những gì chúng tôi dạy là một bộ kỹ năng bao gồm: các đọc ý nghĩ của người khác qua nét mặt và cử chỉ của họ, và chỉ ra những sai lầm trong cách đọc ra sao. Có những cách đọc suy nghĩ đúng và có nhiều cách đọc sai và chúng tôi sẽ khắc phục chúng.

Vậy khi nào bạn có thể đặt niềm tin vào người khác? Bạn có thể là một con người cởi mở nhưng bạn phải thật dè chừng và luôn cảnh giác. Bạn có những lý thuyết khác nhau trong một tình huống để thử. Ví dụ, bạn tới một bữa tiệc, bạn nói chuyện với nhiều người và bạn thử cho họ một cơ hội.

Những điều khác chúng tôi nhận thấy là sự cô đơn có liên quan tới cái "tôi". Khi bạn tập trung vào những hậu quả nhiều hơn lúc bình thường trong lúc bạn cảm thấy cô đơn thì bạn sẽ thu hẹp mình hơn. Đôi lúc bạn nói chuyện với một người cô đơn, họ sẽ nói không ngừng và bạn không thể trốn được. Vậy bạn phải giao tiếp như thế nào để tránh lan man? Bạn phải để ý tới sự tương tác và hòa hợp của cả hai bên trò chuyện chứ không chỉ mình bạn.

O.K: Ông có lời khuyên nào cho những người cô đơn?

J.C: Một trong những hiểu lầm khi nói về sự cô đơn là định nghĩa của sự "cô đơn". Mọi người thường nghĩ sự cô đơn là sự cô lập của bản thân và định nghĩa ấy dẫn tới những giải pháp không triệt để. Và nếu bạn có định nghĩa theo hướng đó, bạn sẽ nghĩ: "chà, mình sẽ không bao giờ thoát khỏi vấn đề này, mình thật vô dụng." Và lúc đó bạn sẽ khép mình hơn.

Mục đích của sự cô đơn tựa như mục đích của cảm giác đói. Cơn đói ảnh hưởng cơ thể vật chất. Còn cô đơn thì ảnh hưởng tới mặt tâm hồn bên trong cơ thể. Bạn cần cả hai để tồn tại và sống hạnh phúc. Chúng ta là loài vật thích giao tiếp.

Khái niệm cô đơn mà mọi người thường biết đến chỉ kể đến sự cô lập bản thân khỏi mọi người và định nghĩa đó không hẳn là đúng. Mặt khác của định nghĩa của cô đơn là về sự giúp đỡ từ người khác. Nhưng chúng  cũng không giải quyết triệt để vấn đề vì sự giúp đỡ phải được hồi đáp cả bên người gửi và bên người nhận. Chỉ nhận sự giúp đỡ từ người khác sẽ không làm vơi đi nỗi buồn. Khi chúng ta giúp đỡ người khác, chúng ta sẽ thường cảm thấy tự hào về bản thân hơn. Giả sử bạn làm việc ở một căn bếp nhỏ, và bạn chợt thấy mọi người đều tốt bụng , thì họ đang phản ứng tích cực cho những việc bạn đã làm cho họ.

Một hiểu lầm khác về sự cô đơn là những người thiếu kỹ năng giao tiếp thường là những người cô đơn. Và bạn biết không? Đó không hẳn là đúng. Nếu bạn giao tiếp siêu tệ thì bạn có thể cô đơn hơn, ok. Nhưng những người cô đơn thường có thể giao tiếp rất bình thường. Nhà triệu phú, tỷ phú thường cảm thấy cô đơn. Rất nhiều các vận động viên cảm thấy cô đơn. Nhiều người muốn kết bạn với nhiều người [cũng cảm thấy cô đơn], nhưng bạn sẽ cảm thấy thế nào khi bạn nghĩ những người muốn kết bạn với bạn đều muốn lợi dụng địa vị, danh thế của bạn?

Đây là lý do tại sao bạn thấy những vận động viên nổi tiếng đến từ khu dân cư nghèo vẫn giữ những mối quan hệ cũ, kể cả khi họ không mang lại lợi ích gì. Những mối quan hệ đó thường được coi là chân thật hơn.

O.K: Những người cô đơn có thể làm gì để tránh khỏi vấn đề này?

J.C: Đi làm tình nguyện vào lĩnh vực êu thích của bạn. Tôi đã sáng lập ra từ viết tắt "EASE" - dần dần hàn gắn lại (ease your way back) những mối quan hệ của bạn. Chữ E đầu tiên có nghĩa là "extend yourself" - thả lỏng, nới rộng bản thân (khi giao tiếp). Nhưng nên thả lòng từng chút một để giữ an toàn cho bạn.

Chữ A nghĩa là "have an action plan" - có một kế hoạch giải quyết. Giải quyết nỗi cô đơn là điều không dễ dàng. Mọi người không nhất phải thích bạn, và đa số sẽ không ưa bạn. Và bạn phải chấp nhận điều đó, nó không phải là sự phán xét số phận của bạn. Hỏi thăm mọi người và nói về những điều họ quan tâm.

Chữ S nghĩa là "seek collectives". Con người thích những cá thể tương đồng với họ, những người chia sẻ những hoạt động, giá trị chung nhau. Điều đó sẽ giúp hai bên đến gần nhau hơn.

Và cuối cùng là khi tham gia các hoạt động, "Expect" - mong chờ những điều tốt đẹp nhất. Vì điều này sẽ giúp bạn đối mặt với sự cảnh giác quá độ của bản thân trước mối nguy hiểm mang tên "bè bạn".

Nguồn: The Atlantic

· 4 min read

What is Notion?

Notion is a simple notetaking/ productivity platform that is available on Windows, MacOS, iOS, Android and Web. Notion operates on the concept of pages. Pages host all available contents and sub pages, including text and image-based content, database tables, different layout structures and many more. Notion offers a lot of flexibility when it comes to data display and data types, which can fit multitude of needs in different usage settings. For me, I needed a tool that is fast, responsive and can export to other common file formats like Markdown.

Why Notion over OneNote?

Notion has been supporting the features I have been looking for, such as:

  • Markdown support: This is the biggest feature that pulled me in. Since Markdown files can be parsed by different tools and widely supported, my content can be easily exported and imported between different platforms. I can also use Markdown syntax to quickly format my content as I type. My syntax and format in a Markdown file will be preserved and can be displayed on other platforms quickly.
  • Diverse layout: Another neat feature in Notion is that you can insert different content/ data type in a page and organize them in your preferred layout. Notion supports multi-column layout and KanBan, which provides flexibility in content display. One Note pales in this aspect.
  • Common file export: Notion can export all content in common file formats, like .md Markdown, .html HTML and .pdf PDF files. This is very useful for migration from one platform to another, such as from WordPress to a Markdown-based site generator. My old OneNote application was powerful anf functional, but it only allows .one file exports. .one file format is not universally recognized and cannot be easily parsed compared to .md Markdown files.
  • Fast and responsive web platform: This is also another winning feature for me, as Notion's web platform is very simple to use and responsive to editing flow. All of my edits are saved instantly. OneNote, on the other hand, performs much slower on the web platform.
  • Growing community: I actually heard about Notion from my university peers and company teams that often use Notion for collaboration. Notion's future looks bright as there are active communities looking for ways to use it to fit their productivity needs.

Notion Communities

As more people are discovering about Notion, many enthusiasts have been creating various contents to share Notion's best tips and tricks.

The productivity community has set its eyes on Youtube as its new home, which housed an abundant videos about how each person use Notion to boost their workflow.

Youtube search result displaying Notion tricks

Source: Youtube.com

The "studyblr" community on Tumblr is also sharing various tips and Notion templates for any curious students looking to take note more efficiently. "Studyblr" is a niche community on Tumblr that promote productivity and study inspirations and tips.

Tumblr search result displaying Notion tips

Source: Tumblr.com

Extending Past Notetaking

The notion of Notion as a pure notetaking platform is extending beyond its main functionality.

It can now act as a Content Management System (CMS) that supplies content and data to build a website. Super is a unique company that build websites based solely on Notion. Their service offer all-in-one website management and building with Notion.

Screenshot of Super homepage

Some examples:

Notion pages can also report web analytics about who visited a Notion page, thanks to Notionlytics.

I am amazed to see a productivity tool stretching above its general purpose to provide something new entirely.

Features to be Improved

Notion is still evolving and developing as we speak, and it is no special target exempt from a few issues. As of Sept 14th, 2021, Notion's spell checker does not work very well in pages right now. There are no options to turn it on either. Apparently, pages need to have a lot of words before spell check is turned on, according to Notion's tweet. I have not seen this feature turned on for me yet, but I'm sure it will be completed in future iterations.

· 2 min read

So far it has been working well! Everything is silky smooth and functional.

Test Checklist

I'd suggest checking out a few items that didn't really work propoerly on this legion 5i

  • Lenovo Vantage application: always crashed upon opening. I had to reinstall it to get it working again. This issue is also documented on user support forum. Not sure what is causing it exactly.

My Test Cases

  1. Booting up React dev server. Initial startup is so much faster than my older Dell.
  2. Using multiple Chrome tabs (actually I use Vivaldi - a very customizable Chrome). It can handle over 20+ tabs just fine while my Dell already struggles with 5-10 tabs.
  3. Destiny 2 gameplay. Gameplay is smooth and no jittering frames.

Pros

So far, everything is working fine and super fast!

  • Switching between multiple music video works faster compared to the sluggish speed on my Dell XPS 13.
  • I can open multiple tabs on Vivaldi without experiencing delays or lags.
  • Apps are super responsive upon sleeping and waking up. No more delays in interactions.
  • Destiny 2 is booting up just fine. The gameplay is smooth as well.

Cons

That said, there are a few things I noticed while using the Legion 5i

  • Fan noise is super loud. No need to go to the airport when I've got a mini airport simulation at home with kind of fan noise.
  • Laptop heat. Extended GPU usage will make the laptop hotter than usual. But it can't beat the magma-heat from my old Dell laptop.
  • The Lenovo Vantage froze everytime it was opened. But i managed to fix it by reinstalling the app.

For my initial tests and usage, the Lenovo Legion 5i is doing much better than my older Dell XPS 13 already :)

· 7 min read

The PUSH festival held an interesting conversation on Friday, Jan. 25th, 2019. The event was an expansive panel of discussion about arts, theatre and where accessibility and the disability community fit in. Does the experience of art performers have to be separate from diversity and inclusion?

The issue of "I feel sorry for you"

The first panel judge - Dawn Jani Birley spoke from her own experience as a third generation of deaf family. Her life motto is "Anything is possible in life". She felt contented with her life as she was in a rich culture and tightly-knit community.

However, there were struggles in life that still hindered the talented art performer. Birley traced these issues to the lack of governmental support for deaf communities and the lack of support for deaf people in performance art department.

It was also the attitude of pitying on deaf people that challenged Burley's life journey. People would often think it is unfortunate for deaf people to live their own way.

"My life is wonderful but your attitude is the struggle that we deal with", she said.

Birley accepted deafness as part of her identity and her own way of life, although different from the social norm, had always been positive and exciting. The performer believed that arts were platforms for working towards understanding.

Creativity knows no bounds

Next, came the turn for Ravi Jain - Creative director

The director started with his background and past work, which was theatre. It was a place for creativity. Jain believed that creativity can be inclusive, regardless of race and gender, which led to the concept of a culturally diverse theatre.

Jain was grateful for his past work with many actors with different backgrounds, who brought about a multi-colored lens of opinion.

On inclusion and diversity, the creative director believed that the more inclusive it was, the better the art.

Adding to Jain's point, art performer Birley told her own example to explain that better support meant improved art performance. When she was working in Finland, Birley had a 24/7 interpreter provided by the Finish government. The constant flowing communication between Birley and the art director she was collaborating with facilitated strong team work ethic and final product improvements.

Pity is petty

Resonating on the Birley's experience as a deaf person, Denise Read, owner of ASLSQ Entertainment, emphasized the discrimination against deaf people is alarming.

Read first experienced this when people told her pursuing art was not compatible to her personal background.

This didn't stop her from pursuing the dream. Read believed that the theater was just a way to express oneself and that it could always be inclusive.

The belief that being a deaf person meant they were worthless was problematic, Read said. The governments's reporting deaf people as "hearing impaired" meant they were something less than an able-bodied person. In fact, she much prefer the word "deaf" used to describe herself. Read claimed proudly that the deaf community is rich in both language and culture.

She also believed that being deaf doesn't mean disabled. It means diverse ability to her. She would like to see a play, where a main character is cast by deaf and blind actors. The inclusion of deaf people in art performances doesn't decrease the quality of it. In fact, it enhances it.

On ASL and sign languages, Read stressed that they play an important part in her life. In the past, she had heard peculiar questions from people around her, such as "Can you read lips?".  A deaf person doesn't always know how to read lips in order to communicate, they use ASL instead. For satire, Read just replied: "can you read my hands?"

Delivering her last point, Read wants to see more collaboration with allies of minority communities and the immersion of deaf culture and language in mainstream society.

Working towards the goal of inclusion and arts, Read founded her own art company called ASLSQ entertainment as she believes art and theater are impactful and expressive in their nature, which would greatly enhances the lives of many people, regardless of race, gender or abilities.

The Utopia

The fourth speaker was JD Derbyshire, who is an ally. She started her speech with the vision of a Utopian, where human expressions is unhindered and diversity flourishes.

Next, Derbyshire proposed a method to move forward towards her vision: education and role models. Although it takes time and money, education would greatly improve society's knowledge and sympathy towards minority groups. She added that there should be more involved process to accommodate deaf people.

The current challenge, according to Derbyshire, is the visibility of art and accessibility and the lack of support system to make her vision come true.

Intersectionality - the new diversity?

Back to Dawn Jani Birley, the performer challenged the meaning of "diversity" and what it includes. For the most part, race and sexuality is often mentioned on the media, but not the deaf community.

Instead, Birley would prefer the idea of "intersectionality". The concept would identify and include various minority groups and the support systems that match them, such as sign interpreters for deaf people. Although this seems like a more ideal concept, true inclusion is an ongoing work.

Despite her critiques of diversity, Birley believes in it and the community she had built. She enjoys her work and the joy of leaning new language and culture.

Mismatched portrayal

After the half of panel discussion, the audience could ask questions of their own for the panel. The first question probed the issue of able-bodied actors portraying people of disability and the opinion of the panel.

Dawn Jani Birley responded that it is unethical for such instance. She equated it to the issue of black face, where white actors portray black characters in untrue ways.

Birley said that she would know who is not deaf, based on their performance and mediocre sign language.

She also relates this issue to the erasure of minority groups on popular media. Deaf community is rarely seen on TV. For deaf kids, they lack a role model to inspire them. And even with the current coverage of deaf community on mainstream media, Birley said that it didn't match with what she experienced in her life.

"[...] deaf people are not tragedies", emphasized Birley.

Representation is key. It is crucial that deaf people are viewed as celebrating role model for the future generations, according to Birley.

How to be better allies?

This begs the next question: "How can we do better as allies?"

Read and Birley encouraged the audience in the room to challenge the assumptions. Allies should be willing to bear being wrong and they should be self aware. They should also check in and try to understand the community they're supporting.

Instead of saying "I understand you", because the statement would ignore the struggles of minority groups, they should ask questions such as: "I want to support you in a suitable way. How can I help you?"

As society is recognizing the problems and issues of visibility and diversity, we are working towards a better future, one step at a time. Birley and Read recalls one of the beautiful moments when their audience tried to learn sign language. They appreciate the audience's effort to understand the language and communicate with them.

· 2 min read

This website is built using Docusaurus - a React-based document builder and static site generator.

Contents on This Site

Here, you will find miscellaneous notes and guides about various technologies. I hope it can also be useful for wandering visitors on the web as well :)

Clone This Site

You can view this website's source code on my Github account

Prerequisites

You will need to install the following tools on your computer before starting:

  1. git
  2. nodejs
  3. npm (usually coupled with nodejs)

Downloading the Source Code and Building the Site

To clone this website, type in the following command in your powershell/ bash terminal:

# create a copy of my Github's files on the local computer
git clone https://github.com/fineon/fineon.github.io.git

# navigate to the newly copied directory
cd fineon.github.io

# use npm to install all dependencies and start the local web server
npm install
npm start

Open the local site at http://localhost:3000.

Docusaurus can transform .md Markdown files into HTML to display as a web page. This introduction page is written in a .md file!

References

For more indormation on how to use Docusaurus, visit their online documentation at docusaurus.io

You can also visit my Github account to create a pull request or raise issues if needed.