0%

GCC相关指令

  • gcc -o 输出文件名 输入文件名.c
    • 输入文件名可以在-o前或输入文件名后,但不可以直接跟在-o后。
  • gcc -v -o 输出文件名 输入文件名
    • 查看gcc翻译官详细信息。
  • C语言编译过程
    • 预处理:gcc -E -o
      • 等于cpp -o 输出文件名.i 输入文件名.c
      • #define#include在预处理阶段被翻译。
    • 编译:gcc -S -o
      • 等于/usr/lib/gcc/i486-linux-gnu/4.4.3/cc1 -o 输出文件名.s 输入文件名.i
      • 编译的时候已经没有#define#include,主要编译关键字和运算符。
    • 编译->汇编:gcc -c -o
      • 等于/usr/lib/gcc/i486-linux-gnu/4.4.3/as -o 输出文件名.o 输入文件名.s
    • 编译->汇编->链接: gcc -o 输出文件名 输入文件名.c
      • 等于/usr/lib/gcc/i486-linux-gnu/4.4.3/collect2 -o 输出文件名 输入文件名.o+....

C语言常见错误

  • 预处理错误:#include出错,找不到指定头文件。
    • #include "name"双引号一般指自定义的头文件,在当前目录下寻找“name”头文件。
    • #include <name>尖括号一般指系统库的头文件,在系统的环境变量中寻找“name”头文件。
    • 解决方法之一:gcc -I./查找头文件的目录 -o 输出文件名 输入文件名.c
  • 编译错误
    • 语法错误
  • 链接错误
    • undefined reference to 'fun'指原材料不够,即没有关于fun函数的足够的内容。解决:查看标签是否实现;链接时是否将相关文件加入一起链接。
    • multiple definition of 'fun'存在多个fun函数的定义。解决:只保留一个标签的实现。

预处理的使用

  • #include包含头文件

  • #define 宏名 宏体宏体对宏名进行替换,但是不进行语法检查(注意)!

    • 宏体加括号更安全,例如:#define ABC (5+3)
    • 宏函数:```#define ABC(x) (5+(x))
  • 条件编译:#ifdef#else#endif

  • 预定义宏:系统已经定义好的。方便在调试中使用。

    • __FUNCTION__:函数名,%s
    • __FILE__:文件名,%s
    • __LINE__:行号,%d

努力学习一下人工智能相关的内容吧~~

相关概念

机器学习有三种训练方法:监督学习、非监督学习、强化学习。

  • 监督学习(Supervised Learning):是一种目的明确的训练方式,你知道得到的是什么。它从有标记的训练数据中推导出预测函数。有标记的训练数据是指每个训练实例都包括输入和期望的输出。
    • 特点:目的明确,需要带标签的训练数据,易评估效果。
  • 无监督学习(Unsupervised Learning):其是机器学习任务的一种。它从无标记的训练数据中推断结论。
    • 特点:目的不明确,不需要给数据打标签,无法量化效果。
  • 强化学习是机器学习的另一个领域。给定数据,学习如何选择一系列行动,以最大化长期收益。
  • 泛化能力、泛化误差
  • 欠拟合(underfitting):模型不能在训练集上获得足够低的误差。即模型复杂度低,在训练集上就表现很差,不能学习到数据背后的规律。
    • 一般发生在训练刚开始时,经过不断训练后会变好。
  • 过拟合(overfitting):训练误差和测试误差之间的差距太大。即模型复杂度高于实际问题,模型在训练集上表现很好,但在测试集上却表现很差。模型对训练集”死记硬背”(记住了不适用于测试集的训练集性质或特点),没有理解数据背后的规律,泛化能力差。
  • 马尔科夫决策树

一年前就创建了博客,一直没有记录内容。眨眼间一年多就过去了,翻看博客发现什么内容都没有,仿佛虚度了一年…其实很早前就想把创建博客的过程写下来,但是拖延症重度患者一直拖拖拖…就到了现在。记录一下吧,也避免之后再想写博客又忘记了怎么创建、怎么上传、怎么更新…(本来脑子就不好使,还总是想不起记录下来,我大概是没治了)

创建博客

环境配置

  1. 安装Node.js:
1
$ brew install node
  1. 安装Git:
1
$ brew install git

注册github账号、创建项目

注册github在此不表。

创建项目过程:

  1. 打开github,登录自己的账号。
    点击右上角➕号创建新项目。

  2. 在“Repository name”下填写自己的项目名称,如Aimyorcc.github.io。其中,github.io后缀必须有。

  3. 勾选Initialize this repository with a README,用来初始化项目。

  4. 点击Create repository创建项目。

  5. 点击Settings,然后在最后找到GitHub Pages,点击Choose a theme选择主题。然后再返回GitHub Pages,点击网页链接,查看自己的网页。

安装Hexo

  1. 在电脑合适的位置创建一个新的文件夹,用来存放博客相关的文件,如~\Desktop\blog

  2. 打开终端,进入博客所在文件夹:

    1
    $ cd ~\Desktop\blog
  3. 安装Hexo博客框架:

    1
    $ sudo npm install -g hexo-cli

    查看hexo是否安装成功:

    1
    $ hexo -v
  4. 初始化:

    1
    $ hexo init
  5. 安装必备组件:

    1
    $ npm install
  6. 生成静态网页:

    1
    $ hexo g  #same as "hexo generate"
  7. 开启hexo服务器:

    1
    $ hexo s  #same as "hexo server"
  8. 在浏览器中打开网址http://0.0.0.0:4000/可以查看本地博客网页。

将博客部署至github

添加ssh key到Github

检查ssh key是否存在

在终端执行如下命令(若id_rsa.pubid_dsa.pub存在,则直接将ssh key添加到github中)。

1
$ ls -al ~/.ssh

生成新的ssh key

执行如下命令生成ssh key(注意将your_name@example.com替换成自己的github注册邮箱):

1
$ ssh-keygen -t rsa -C "your_email@example.com"

默认会在~/.ssh路径下生成id_rsaid_rsa.pub

ssh key添加到github中

打开id_ras.pub文件,复制文件中的信息,然后粘贴到github的Add SSH key页面中。Add SSH key页面位置:Github页面--> Settings --> SSH keys --> Add SSH key
Title里任意添加一个标题,然后将ssh key粘贴进去即可。

在终端输入如下代码,若显示Hi your_name!则成功:

1
$ ssh -T git@github.com

修改配置文件

终端下进入blog文件夹下,打开_config.yml,在最底端将deploy修改为如下内容:

1
2
3
4
deploy:
type: git
repository: https://github.com/your_name/your_name.github.io.git
branch: master

your_name替换为自己的用户名。hexo 3.1.1版后,type值为git

  • 注意:在配置所有的_config.yml文件时(包括theme中的),在所有的冒号后都要添加一个空格,否则执行hexo命令会报错。

写文章、发布文章

安装git部署插件

1
$ npm install hexo-deployer-git --save

新建文章

1
$ hexo new post "article name"

~\blog\source\\_posts目录下可看到新出现的.md文件即为新文章,另外一个新文件夹为存放图片的文件夹。

发布到网页并上传到github

1
$ hexo g  #生成静态网页
1
$ hexo s  #本地预览效果
1
$ hexo d #上传到github

最后,打开your_name.github.io主页便可以看到新发布的文章。

参考

【超详细Hexo+Github博客搭建小白教程】

【GitHub Pages + Hexo免费搭建个人博客_Mac】

【mac 搭建基于Hexo-Github的Blog】

【Mac上搭建基于GitHub Page的Hexo博客】

【在vsCode中进行GitHub pages个人博客搭建】

Mac自带的词典中词库虽然够用,但是希望其能够在词语解释方面更加详尽,于是尝试自己为其添加词库(其实就是突然想好好学英语然后又看到了为Mac词典添加词库的内容)。
方法一稍复杂,方法二稍简单。

方法一

环境配置

  1. python (系统自带)

  2. Additional Tools for Xcode(将其中的“Dictionary Development Kit”复制到“~/Developer/Extras/”路径下,若没有相应文件夹则新建。)

  3. Command Line Tools for Xcode

  4. pyglossary(将词典转换为Mac词典格式的工具)

    1
    $ git clone https://github.com/ilius/pyglossary.git
  5. BeautifulSoup4 (pyglossary需要的python包)

    1
    $ pip3 install lxml beautifulsoup4 html5lib

转换步骤

  1. 下载好需要转换的词库,如Longman,Oxford,Collins,Merriam-Webster等(.mdd或.mdx格式),并将其存放在任意目录下。此文中以“~/Downloads/dict/Oxford_dict.mdx”为例。

  2. 进入词库所在文件夹,并输入转换命令。

    1
    2
    $ cd ~/Downloads/dict/
    $ ~/Downloads/pyglossary/main.py --write-format=AppleDict Oxford_dict.mdx Oxford_dict

    其中“~/Downloads/pyglossary”是pyglossary的存放地址。
    第二句指令是指,使用pyglossary工具将Oxford_dict.mdx转换为苹果系统中词典的格式,并命名为Oxford_dict。

  3. 转换完成后,当前目录“~/Downloads/dict”下新生成了一个名为“Oxford_dict”的文件夹。进入该文件夹并编译生成“*.dictionary”文件。

    1
    2
    $ cd Oxford_dict
    $ make

    完成后,“Oxford_dict”文件夹中新生成了“Oxford_dict.dictionary”文件。

  4. 使用“cp”指令复制“Oxford_dict.dictionary”文件到“~/Library/Dictionaries”,或者直接在终端输入如下命令:

    1
    $ make install
  5. 打开词典App,在“Preferences”可以找到新添加的词库。

总结

以上方法转换的词典不能发音。

支持图片和发音的词库的转换方法请参考:

【Mdict to macOS Dictionary转换笔记】

当然更简单的方法是使用已经转换好的词库,请参考:

【Mac词典中的Macmillan2、LDOCE5、牛津朗文剑桥柯林斯四合一双解】

参考

知乎:【可以给Mac的Dictionary添加其他原装词典吗?怎么添加?】

方法二

软件下载

  1. DictUnifier.app (Catalina 版本)
  2. 安装glib
    1
    $ brew install glib

转换步骤

  1. 将所需的词典下载好,格式为*.tar.bz2。 词典包下载参考网址:【词典包】
  2. 将下载好的词典包拖到DictUnifier.app中,等待转换完成。
  3. 转换成功后,打开词典,进入“Preferences”中可以看到新添加的词典包。勾选后即可在词典中使用。

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment