Hu, Yu

steamdeck_ssh_instructions

These are manual instructions on enabling SSH access on your Steam Deck, adding public key authentication, and removing the need for a sudo password for the main user (deck).

This gist assumes the following:

  • you have a Steam Deck[[steamdeck_ssh_instructions]]
  • you have a home PC with access to a Linux shell that can ssh, ssh-keygen, and ssh-copy-id
  • your Steam Deck and home PC are on the same local network, with standard SSH traffic (tcp/22) allowed over that network from the PC to the Steam Deck

NOTE: @crackelf on reddit mentions that steamOS updates blow away everything other than /home, which may have the following effects:

  • removing the systemd config for sshd.service, which would prevent the service from automatically starting on boot
  • removing the sudoers.d config, which would reenable passwords for sudo

Instructions:

  • On your Steam Deck, switch to "Desktop Mode" (Steam > Power > Switch to Desktop)
  • On your Steam Deck, open a terminal (eg Steam Icon > System > Konsole or Steam Icon > System > fish)
  • On your Steam Deck, set a temporary passwd for the current user, deck (use Steam + X On your Steam Deck to bring up the on-screen keyboard):
(deck@steamdeck ~)$ passwd
New password:
Retype new password:
passwd: password updated successfully
  • On your Steam Deck, enable and start the sshd.service (use the password above when prompted):
(deck@steamdeck ~)$ sudo systemctl enable sshd.service
Created symlink /etc/systemd/system/multi-user.target.wants/sshd.service → /usr/lib/systemd/system/sshd.service.
(deck@steamdeck ~)$ sudo systemctl start sshd.service
  • On your Steam Deck, determine your steamdeck’s LAN IP:
(deck@steamdeck ~)$ ip addr | grep inet | grep wlan0
    inet 192.168.1.106/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
  • On your PC, verify you can ssh into the Steam Deck using your password:
[andygeorge@home-pc ~]$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no [email protected]
[email protected]'s password:
Last login: Thu Jul 21 12:51:20 2022 from 192.168.1.115
(deck@steamdeck ~)$
[andygeorge@home-pc ~]$ ssh-keygen -t ed25519 -C "[email protected]"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/andygeorge/.ssh/id_ed25519): /home/andygeorge/.ssh/steamdeck_ed25519
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/andygeorge/.ssh/steamdeck_ed25519
Your public key has been saved in /home/andygeorge/.ssh/steamdeck_ed25519.pub
The key fingerprint is:
SHA256:k [email protected]
The key's randomart image is:
k

This will create two files, a private SSH key file, and its corresponding public key with a .pub extension:

[andygeorge@home-pc ~]$ ls -al ~/.ssh/steamdeck*
-rw------- 1 andygeorge andygeorge 411 Jul 21 12:42 /home/andygeorge/.ssh/steamdeck_ed25519
-rw-r--r-- 1 andygeorge andygeorge 100 Jul 21 12:42 /home/andygeorge/.ssh/steamdeck_ed25519.pub
  • On your PC, run ssh-copy-id to copy the public key of the keypair you generated above to the Steam Deck (using the password you created above):
[andygeorge@home-pc ~]$ ssh-copy-id -i ~/.ssh/steamdeck_ed25519.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/andygeorge/.ssh/steamdeck_ed25519.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
  • On your PC, test the SSH using key auth:
[andygeorge@home-pc ~]$ ssh -i ~/.ssh/steamdeck_ed25519 [email protected]
Last login: Thu Jul 21 13:32:25 2022 from 192.168.1.115
(deck@steamdeck ~)$
  • On your Steam Deck, disable the sudo password for your deck user:
(deck@steamdeck ~)$ echo "%wheel ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/wheel >/dev/null
  • On your Steam Deck, delete your deck user’s password:
(deck@steamdeck ~)$ sudo passwd -d deck
passwd: password expiry information changed.

You should now be able to ssh in using key auth and sudo without a password!

docker_setup_macos

Command-Line Docker Setup for macOS (without Docker Desktop)

This document outlines the steps to set up a complete Docker environment on macOS using only command-line tools. This provides an alternative to the paid Docker Desktop application, which is ideal for users who primarily interact with Docker through the terminal.

This setup uses Colima, a lightweight, open-source tool that provides container runtimes on macOS.

Prerequisites

  • Homebrew package manager installed on your macOS.

Setup Process

The following steps will guide you through the installation and configuration of Colima and the necessary Docker tools.

1. Install Colima and Docker Tools

First, we install Colima, the Docker command-line interface (CLI), and Docker Compose using Homebrew.

brew install colima docker docker-compose

2. Start the Colima Virtual Machine

Colima runs the Docker engine inside a lightweight Linux virtual machine. Start the Colima VM with the following command. The first time you run this, it will download the necessary components and create the virtual machine.

colima start

3. Configure the Docker Context

By default, your Docker CLI might still be configured to look for a Docker Desktop installation. We need to tell it to use the engine provided by Colima. Docker manages this through "contexts".

Switch the active context to colima:

docker context use colima

4. Configure the Docker Compose Plugin

To ensure the docker-compose command works correctly as a Docker plugin, you need to update the Docker configuration file.

This command will create the ~/.docker/config.json file (if it doesn’t exist) and add the necessary setting.

mkdir -p ~/.docker && echo '{
  "cliPluginsExtraDirs": [
    "/opt/homebrew/lib/docker/cli-plugins"
  ]
}' > ~/.docker/config.json

Verification

To confirm that your setup is working correctly, run the hello-world container. This will download a small test image from Docker Hub and run it.

docker run hello-world

You should see a "Hello from Docker!" message, which confirms your environment is ready.

Daily Usage

Starting the Docker Environment

The Colima VM does not start automatically. When you want to use Docker, run:

colima start

Stopping the Docker Environment

When you are finished using Docker, you can stop the Colima VM to free up system resources:

colima stop

Uninstalling Docker Desktop

Once you have confirmed your Colima setup is working, you can remove the Docker Desktop application to free up space and avoid confusion.

Note: This command requires administrator privileges. You will need to run it in your own terminal and enter your password when prompted.

brew uninstall --cask docker

Troubleshooting

docker: command not found after uninstalling Docker Desktop

Uninstalling the Docker Desktop application can sometimes remove the docker command-line tool itself. If you see a "command not found" error, you can easily restore it.

Since the Docker CLI was also installed via Homebrew, you can re-link the formula to make the command available again:

brew link docker

After running this, the docker command should work correctly.

十一国际部学习规划与申请策略:选课、标化、时间管理与家长支持指南 (2025-08-06 09-15)

[!abstract]+ 内容摘要
以下是内容的要点总结:

学业与课程安排

  1. 选课与学习

    • 根据能力选择高阶班,不强制加权;采用走班制。
    • 校内学习为主,竞赛是锦上添花;合理选课,避免与申请专业无关的课程(如申请经济不必多选物理)。
    • 重视过程性评价,禁止使用AI;多刷题、主动问老师以提升平时分数。
    • 校外学习仅补充校内无法提供的课程。
  2. 标化考试与成绩目标

    • 语言(托福)目标:Top 30/G5院校需108分。
    • 学科分阶段目标:40+、80+、90+,高二上学期夏校目标100+。
    • 申请美国无需过多AP,申请英国需更多AP。

申请策略与个人发展

  1. 活动与竞赛

    • 专注真正感兴趣的项目,不必盲目跟风竞赛(如法律方向可专注模拟法庭、夏校)。
    • 文书需精简,竞赛经历若无关紧要可不写。
  2. 个人特质与身心健康

    • 按自身节奏行动,不怕起步晚;突出独特兴趣,展现真实自我。
    • 尊重所有课程,与老师保持良好关系;保证睡眠与身心健康。

家长角色

  • 支持与引导
    • 尊重孩子兴趣,不干涉文书内容与素材选择。
    • 培养良好学习习惯(如时间管理),保持宽松态度,避免传递焦虑。

核心原则

  • 校内优先:课程和成绩是基础,课外活动为差异化补充。
  • 个性化路径:根据专业目标和兴趣规划选课与活动,拒绝盲目内卷。

[!info]- 相关标签
#国际教育 #选课策略 #自主学习 #申请规划 #家长指导

十一国际部学习规划与申请策略:选课、标化、时间管理与家长支持指南

十一国际部

⁃	根据自己的能力选择高阶班,不强求,没有加权
⁃	走班
⁃	认真完成过程性评价,不要用AI
⁃	校内学习是重点,竞赛是锦上添花的
⁃	刷题,课后多问老师,不要因为惧怕,多问老师很积极互动会得到更好的老师评价和平时分数
⁃	合理选课
⁃	时间管理,自主学习

⁃	标化(语言)线
⁃	学科线
⁃	过程性评价

⁃	出分节奏
⁃	40+ , 80+ , 90+,高二上夏校100+

Top 30 / G5- 托福108

⁃	升美不要考那么多AP,没必要。升英需要多一点
⁃	申请主要看校内选课,没必要跟校内重叠比如经济
⁃	申请经济的话没必要学那么多物理,根据自己的专业申请来选课
⁃	校外学习只有那些校内无法学到的课才重要
⁃	干自己想干的感兴趣的项目,不一定一窝蜂打竞赛
⁃	付同学:法律,模拟法庭社团,夏校,没有打竞赛。文书是有字数限制的,打了竞赛写不进去也没意义。

⁃	想做的就去做,不要怕晚,每个人都有自己的Pace
⁃	做真正感兴趣的事情,突出自己的不同点,展现自己是谁
⁃	即使是所谓的水课,也是要老师保持好关系,认真听课,尊重老师
⁃	注意身体和睡眠,保证自己的身心健康

父母的支持

⁃	支持孩子的兴趣,不要干涉孩子文书的选择和素材
⁃	宽松一点,不要干涉孩子的兴趣,顺着孩子的学习兴趣来。培养孩子好的学习和生活习惯,比如时间观念。
⁃	家长不要太焦虑,也不要给孩子传递焦虑。佛系一点比较好。
⁃

[!note]- Memo Properties

  • Created: 2025-08-06 09:15:13
  • Updated: 2025-08-06 09:15:13
  • Type: memo
  • Tags: [国际教育, 选课策略, 自主学习, 申请规划, 家长指导]
  • ID: memos/j6BNiZCTty93di6onnicHs
  • Visibility: protected

高中生转轨国际教育:A-level与AP选择及升学策略全解析 (2025-07-26 14-25)

[!abstract]+ 内容摘要
以下是关键要点总结:

  1. 学习路径

    • 普高高一转国际课程,目标院校:曼彻斯特大学、杜克大学(通过A-level或AP)
    • 偏科学生可换赛道申请UCL、剑桥
    • 学科选择:数学两门+物理+生物,或会计、经济、中文
  2. A-level特点

    • 数学注重基础,无偏题怪题,与国内数学差异大
    • 一年三个考试季(1月、5月、10月),持续一个多月
    • 每个考试季考6-8个单元
    • 无需国内普高学籍(AP需要)
  3. 留学方向建议

    • A-level适合英联邦国家,AP更适合美国
    • 竞赛非必须,但牛剑等顶尖院校需竞赛+4门A-level(8分以上)
    • 高中学生平均成绩约5.5分
  4. 时间规划

    • 最晚高一结束后转国际课程
    • 不建议同时准备高考和留学(高考不确定性高,成绩一般可能不受重视)
    • 国内本科+海外读研不推荐(第一学历限制,部分海外名校拒收双非学生)
  5. 名校录取数据

    • 剑桥等顶尖院校要求更高(如4门A-level+竞赛)
    • 潞河国际部2023年录取:70人英国、10人美国
  6. 学校管理

    • 潞河国际部管理严格(禁用手机、规范发型等)
    • 9升10考试在3月,需提前联系;数学难度同中考,英语较难

核心建议:尽早决定留学方向,避免高考与留学双线作战;A-level适合偏科生冲刺英联邦名校,但顶尖院校需额外准备竞赛和高分成绩。

[!info]- 相关标签
#教育规划 #国际课程 #A-level考试 #留学申请 #学科选择

高中生转轨国际教育:A-level与AP选择及升学策略全解析

普高高一-高一转国际-曼切斯特大学-杜克大学

偏科-换赛道 UCL-剑桥
数学两门+物理+生物
会计,经济,中文
A-level数学没有偏题怪题,考基础和学过的内容。跟国内的数学完全不一样。
一年三个考试季,一,五,十月,延续一个多月

A-level不用普高学籍,AP需要
A-level适合英联邦,AP适合美国

竞赛对A-level是锦上添花的,不是必须的

一个考试季考6-8个单元

最晚高一结束以后换赛道
不建议同时高考和留学

高考不确定性太强,成绩不是最好的话学校老师也不会重视

不建议在国内读大学然后出国读研
第一学历的问题,以及有些国外学校不接受双非学校。而且国外大学升级研究生优势明显。

牛剑要八分,还要竞赛,还要4个A-level。高中孩子平均是5.5。

潞河今年70个英国,10个美国

潞河管理比较严格,不让用手机,面试对发型什么的都有要求

9升10,3月份考试,提前联系。数学难度跟中考一致,英语难一点。


[!note]- Memo Properties

  • Created: 2025-07-26 14:25:57
  • Updated: 2025-07-27 08:59:04
  • Type: memo
  • Tags: [教育规划, 国际课程, A-level考试, 留学申请, 学科选择]
  • ID: memos/bmusLgAEKh7vmmzFgQRVMv
  • Visibility: protected

OCBC 开户指南:新加坡华侨银行如何网上开户口? – Wise

OCBC 银行在新加坡开户指南

介绍

华侨银行(OCBC)是新加坡的大型多元化金融服务公司,提供个人及企业客户全面的银行服务。本文将带您了解如何在新加坡开立OCBC银行账户。

开户账户种类

OCBC提供多种账户类型:

  1. 360 Account

    • 提供高利息储蓄账户选项,适合年满18岁的个人。
    • 最低存款要求为S$1,000。
  2. FRANK Account

    • 由“FRANK by OCBC”提供的现代化储蓄和支付账户。
    • 适用年龄16岁以上,无最低存款要求。
  3. Bonus+ Savings Account

    • 提供高额利息回报,需满16岁。
    • 最低开户存款为S$5,000。
  4. Global Savings Account

    • 多货币账户,最低初始存款从S$20,000起(对于通过OCBC Digital应用程序的远程开户)。
    • 适合18岁以上持有某些国家护照者。

开户条件

  • 年龄要求:不同账户类型的最低年龄从16到18岁不等。
  • 国籍和身份证明
    • 新加坡公民或永久居民需提供NRIC(新加坡身份证)。
    • 外籍人士需提供护照、有效的居留许可以及地址证明文件。

所需材料

  • 国内用户:提供个人身份证明,如NRIC或护照。
  • 外籍用户:除了护照和签署的照片外,还需居留许可证和地址证明(例如电话账单、银行账户附有地址的文件)。

开户流程

  1. 通过网上或手机应用程序开户

    • 用户可以下载OCBC Digital App并使用远程办公服务,无需现场拜访分行。
    • 适合某些国家的护照持有人,在新加坡预留住房者。
  2. 线下开户

    • 对于360 Account或FRANK Account(如果不是Singpass账户用户),需亲自到OCBC分行办理。
  3. 提交材料和完成验证

    • 上传电子身份证件,通过身份验证。
    • 提供额外的个人信息以完成开户。
  4. 收取账号并入金

    • 在获得批准后,您将在3个工作日内收到生效账号。
    • 使用FAST转账或海外电汇为新开立的账户注资。
  5. 申请借记卡

    • 开户成功后,可通过网上银行平台申请借记卡服务。

另一种选项:Wise综合货币帐户

  • Wise提供无需初始存款的全球资金管理账户。
  • 适用于持有40多种货币,包括新加坡元、马来西亚令吉等。
  • 免年费,兑换费率与市场中间价相近。

总结

选择OCBC银行账户能够提供多样化的金融管理和服务。无论是在新加坡本地开户还是远程办理,只要满足基础条件,就能享受到OCBC带来的高效银行体验。如果需要更广泛货币管理和跨境支付服务,Wise也是一个值得考虑的选择。


注意事项

  • 请在使用上述信息前查看相关产品的最新更新。
  • 所提供内容仅为参考,不构成法律或专业建议。

Omnivore Docker Setup Guide

Omnivore Docker Setup Guide

Overview

This guide documents the complete setup process for running Omnivore using Docker Compose, including common issues and their solutions.

Prerequisites

  • Docker and Docker Compose installed
  • Debian GNU/Linux system
  • sudo privileges

Initial Setup Steps

1. Pull Docker Images

docker compose pull

2. First Attempt to Start Services

docker compose up

Issues Encountered and Solutions

Issue 1: Database User Authentication Failed

Problem: The application services couldn’t connect to PostgreSQL because the app_user role didn’t exist.

Error Message:

error: password authentication failed for user "app_user"
FATAL: Role "app_user" does not exist

Solution:

  1. Start PostgreSQL container first:
docker compose up -d postgres
  1. Wait for PostgreSQL to be ready:
sleep 10
  1. Create the required database user:
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "CREATE USER app_user WITH PASSWORD 'app_pass';"
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "GRANT ALL PRIVILEGES ON DATABASE omnivore TO app_user;"
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "ALTER USER app_user CREATEDB;"

Issue 2: MinIO Bucket Creation Failed

Problem: The createbuckets container was using an outdated MinIO client command syntax.

Error Message:

mc: <ERROR> `config` is not a recognized command. Get help using `--help` flag.

Solution:

  1. Update the docker-compose.yml file to use the correct MinIO client syntax:
sed -i 's/mc config host add/mc alias set/g' docker-compose.yml
  1. Remove and recreate the createbuckets container:
docker compose stop createbuckets
docker compose rm createbuckets
docker compose up -d createbuckets

Issue 3: Environment Variable Updates Not Taking Effect

Problem: After updating the .env file, changes weren’t reflected in running containers.

Solution: Complete rebuild of all containers and volumes:

# Stop and remove all containers and volumes
docker compose down -v

# Rebuild all containers from scratch
docker compose up --build -d

# If database authentication fails again, recreate the app_user:
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "CREATE USER app_user WITH PASSWORD 'app_pass';"
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "GRANT ALL PRIVILEGES ON DATABASE omnivore TO app_user;"
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "ALTER USER app_user CREATEDB;"

# Restart all services
docker compose up -d

Complete Working Setup Process

Step 1: Initial Deployment

# Pull latest images
docker compose pull

# Start all services
docker compose up -d

Step 2: Fix Database Authentication (if needed)

# Create database user manually
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "CREATE USER app_user WITH PASSWORD 'app_pass';"
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "GRANT ALL PRIVILEGES ON DATABASE omnivore TO app_user;"
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "ALTER USER app_user CREATEDB;"

# Restart services
docker compose restart api queue-processor

Step 3: Fix MinIO Bucket Creation (if needed)

# Update MinIO command syntax
sed -i 's/mc config host add/mc alias set/g' docker-compose.yml

# Recreate createbuckets container
docker compose stop createbuckets
docker compose rm createbuckets
docker compose up -d createbuckets

Step 4: Verify All Services

# Check status of all containers
docker compose ps

# Check for any exited containers
docker compose ps -a

For Environment Variable Updates

When you need to update the .env file:

# Stop and remove everything
docker compose down -v

# Rebuild from scratch
docker compose up --build -d

# Recreate database user (will be needed after volume reset)
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "CREATE USER app_user WITH PASSWORD 'app_pass';"
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "GRANT ALL PRIVILEGES ON DATABASE omnivore TO app_user;"
docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "ALTER USER app_user CREATEDB;"

# Restart all services
docker compose up -d

Final Service Overview

After successful setup, you should have these services running:

ServiceContainer NamePortStatus
Web Interfaceomnivore-web3000Running
API Backendomnivore-api4000Running (Healthy)
PostgreSQLomnivore-postgres5432Running (Healthy)
Redisomnivore-redis6379Running (Healthy)
MinIOominivore-minio-11010Running (Healthy)
Content Fetchomnivore-content-fetch9090Running
Image Proxyomnivore-image-proxy7070Running
Mail Watcheromnivore-mail-watch-server4398Running
Queue Processoromnivore-queue-processorRunning

Completed Tasks (will show as Exited 0):

  • omnivore-migrate (Database migration)
  • ominivore-createbuckets-1 (MinIO bucket setup)

Access Information

  • Web Application: http://localhost:3000 (or your configured domain)
  • API Endpoint: http://localhost:4000 (or your configured domain)
  • Demo Login:

Common Commands

# Check container status
docker compose ps

# View logs for specific service
docker logs <container-name>

# Restart specific service
docker compose restart <service-name>

# Stop all services
docker compose down

# Stop and remove volumes (complete reset)
docker compose down -v

# Rebuild and start
docker compose up --build -d

Troubleshooting

Container Won’t Start

  1. Check logs: docker logs <container-name>
  2. Verify .env file configuration
  3. Ensure all dependencies are running
  4. Try recreating the container: docker compose up -d <service-name>

Database Connection Issues

  1. Verify PostgreSQL is running: docker compose ps postgres
  2. Check if app_user exists: docker exec -it omnivore-postgres psql -U postgres -d omnivore -c "\du"
  3. Recreate app_user if needed (see Step 2 above)

MinIO Issues

  1. Check MinIO logs: docker logs ominivore-minio-1
  2. Verify bucket creation: docker logs ominivore-createbuckets-1
  3. Manually create bucket if needed:
    docker exec ominivore-minio-1 mc alias set myminio http://localhost:9000 minio miniominio
    docker exec ominivore-minio-1 mc mb myminio/omnivore

Web Interface Not Loading

  1. Check if web container is running: docker compose ps web
  2. Verify API is healthy: docker compose ps api
  3. Check network connectivity between containers
  4. Verify port mappings in docker-compose.yml

Note: This guide was created based on the actual deployment experience on Debian GNU/Linux with Docker Compose. The issues and solutions documented here were encountered and resolved during the setup process.

Last Updated: June 12, 2025