Anki 简单实用的记忆神器

最近接触的Anki。稍微记录一些它的情况。Anki 是一款备受欢迎的记忆软件,帮助用户有效地记忆各种信息。官方网站 AnkiWeb

Anki 的基本功能

  1. 间隔重复:Anki 的核心功能是基于艾宾浩斯遗忘曲线理论,通过在适当的时间间隔内重复呈现卡片,帮助用户将信息从短期记忆转化为长期记忆。这种方法被证明可以显著提高记忆效果,减少遗忘。

  2. 卡片库:Anki 提供了一个庞大的卡片库,用户可以根据自己的需求下载现成的卡片库,也可以自行创建卡片。AnkiWeb 上有丰富的共享卡片库,涵盖了从语言学习到医学考试的各个领域。下面这两个卡片库是我目前暂时使用的:
  3. 多平台支持:Anki 支持多种平台,包括 Windows、Mac、Linux、iOS 和 Android,这意味着你可以在任何设备上进行学习,并且数据可以通过 AnkiWeb 实现同步。
  4. 高度自定义:用户可以根据个人需求自定义卡片格式,添加图片、音频、视频等多种媒体,使学习过程更加生动有趣。你还可以使用 Anki 的插件系统来扩展其功能,根据自己的需求调整软件的表现。d

使用 Anki 的实用技巧

  1. 每日坚持:记忆的关键在于每天坚持使用 Anki 进行复习,即使每次只有几分钟,也能带来显著的效果。

  2. 分散学习:将学习任务分散到一天中的不同时间段,而不是一次性完成大量的学习,这样可以提高记忆效果。

  3. 创建高质量卡片:高质的卡片应该简洁明了,每张卡片只包含一个信息点,避免信息过载。

  4. 利用共享卡片库:对于一些通用知识点,如语言学习和考试准备,可以充分利用 AnkiWeb 上的共享卡片库,这样可以节省时间并获得高质量的学习资源。


解决 Homebrew 更新时的 "No remote 'origin'" 警告问题

今天在某台Mac在使用 Homebrew 更新包管理器时,我遇到这样一个警告:

brew update
==> Updating Homebrew...
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-services, skipping update!

image-20240531上午103103101

这条警告信息是说,Homebrew 的 homebrew-services tap 没有设置远程 origin,这会阻止它的更新。这通常是由于 tap 添加不正确或其远程 URL 被移除导致的。

解决方法

1. 取消有问题的 tap

brew untap homebrew/services

2. 重新添加 tap

brew tap homebrew/services

3. 更新 Homebrew

brew update

这个命令会更新 Homebrew 及其所有的 taps,包括重新添加的 homebrew/services

image-20240531上午104610171

Happy brewing! 🍻


如何检查 iOS ipa 文件的签名信息

方法一:使用 codesign 工具

codesign 是 macOS 自带的工具,可以用来检查应用的签名信息。以下是具体步骤:

  1. 解压 IPA 文件: IPA 文件其实是一个 ZIP 压缩包,先将其解压缩。

    unzip MyApp.ipa
    
  2. 找到应用包: 解压后,你会得到一个 Payload 文件夹,里面有一个 .app 文件夹。

  3. 使用 codesign 检查签名

    codesign -dvvv Payload/MyApp.app
    

    这条命令会显示详细的签名信息。

方法二:使用 codesign 结合 ldid 工具

ldid 工具可以更详细地查看签名信息,尤其是在查看 entitlements(权限)方面。

  1. 安装 ldid: 首先需要安装 ldid,可以使用 Homebrew 安装:

    brew install ldid
    
  2. 使用 ldid 检查签名

    ldid -e Payload/MyApp.app/MyApp
    

    这条命令会显示应用的 entitlements 信息。

方法三:使用第三方工具

  • iOS App Signer
  • iFunbox

Mac 设置全局快捷键打开任意程序

没想到不是在快捷键那里设置!之前设置了没生效,都懵了。正确的方式是使用“自动操作” 这个app进行配置,然后再配置全局快捷键。

“自动操作”(Automator)是一个内置的应用程序,它可以让你创建自定义的自动化流程,其中包括设置应用快捷启动。

使用Automator创建一个包含你想要启动的应用程序的自动化流程,并将其保存为服务,然后在系统偏好设置中为该服务分配一个全局快捷键:

  1. 自动操作:

    image-20240507下午12250088

  2. 快速操作

    image-20240507下午12536713

  3. 打开应用程序:

    image-20240507下午13536713

  4. cmd+s 保存

  5. 系统偏好设置,分别点击键盘->快捷键->服务,下拉找到「通用」

    image-20240507下午13009248


自动化同步外网文件至内网

下面是一个我的示例脚本。在运行脚本之前,请确保已经安装了所需的软件和工具,并且已经配置了正确的权限和认证信息。

#!/bin/bash

set -e

filename="$1"

# 设置远程机器的地址、用户名和密码
remote_host="your_username@your_remote_ip"
password="your_password"
lockfile="$filename.lock"

# 获取当前日期和时间,并格式化为年月日时分秒
current_time=$(date +"%Y%m%d%H%M%S")

# 创建以当前日期和时间命名的zip文件
zip_file_name="$filename.${current_time}.zip"

# 检查远程服务器上是否存在.lock文件,如果存在则直接退出
if ssh your_username@your_remote_ip '[ -f /path/to/lockfile/$lockfile ]'; then
    echo "$lockfile file exists on remote server. Exiting..."
    exit 0
else
    echo "$lockfile not exists"
fi

# 在远程服务器上检查文件是否存在,如果存在则创建.lock文件
ssh your_username@your_remote_ip "[ -f /path/to/remote/directory/$filename.zip ] && touch /path/to/lockfile/$lockfile"

# 拷贝文件到本地
scp your_username@your_remote_ip:/path/to/remote/directory/$filename.zip /path/to/local/directory/$zip_file_name

# 拷贝文件到远程机器
/opt/homebrew/bin/sshpass -p "$password" scp /path/to/local/directory/$zip_file_name "$remote_host:/path/to/remote/directory/$zip_file_name"

echo ">>>>>>>>>>>>>>>>>> File '$zip_file_name' copied to remote machine successfully."

# 清理远程服务器上的文件和锁文件
ssh your_username@your_remote_ip "rm /path/to/remote/directory/$filename.zip /path/to/lockfile/$lockfile"

需要替换脚本中的以下信息:

  • your_username: 远程服务器的用户名。
  • your_remote_ip: 远程服务器的IP地址或域名。
  • your_password: 远程服务器的密码。请注意,为了安全考虑,你可能需要使用更安全的认证方法,比如SSH密钥对。
  • /path/to/remote/directory/: 在远程服务器上文件所在的路径。
  • /path/to/local/directory/: 本地文件所在的路径。

这个脚本首先检查远程服务器上是否存在锁文件,以确保不会同时运行多个实例。

然后它检查远程服务器上是否存在要同步的文件,如果存在,则创建锁文件以防止其他实例同时操作该文件。

接下来,它将文件从远程服务器复制到本地目录,然后将文件从本地目录复制到另一个远程服务器。

最后,它清理远程服务器上的文件和锁文件。


Xcode 15.3 新增的一个编译选项 "User Response File"

最近接触到这个编译选项,记录一下:

image-20240425下午32724214

具体说明在开发手册中:https://developer.apple.com/documentation/xcode/build-settings-reference#Use-Response-Files:

Use Response Files
Setting name: CLANG_USE_RESPONSE_FILE
When this setting is enabled, the build system will use response files to share common arguments between similar invocations of clang, eliminating redundant information in build logs.

目前已知 xcode 15.2 这个选项默认是打开的,而且不可编辑。

在 xcode 15.3 默认也是打开的,但可以关闭。相较于 15.2 它增加了一些参数进行共享。

这个配置打开的时候,它允许构建系统使用响应文件来在类似的 clang 调用之间共享常见参数,从而消除构建日志中的冗余信息,有助于提高构建过程的效率。更具体情况我还没有深入了解,希望以后有机会研究一下。


1 2 4 5 6 7 8 161 162