mituh's notes


  • 首页

  • 归档

冬至的一点光亮

发表于 2017-12-22

今日冬至,晒太阳翻了翻<<鸟哥的Linux入门>>,通读了一遍,了解结构为后续学习挑出主次。中午找S交谈OpenGL相关问题,当然不止于此。有几点收获:
1, 学习底层知识,少学习容易过时的知识。我引用Quora上得到的回答,对自己目前的状态做一个反思:”Are you good at object-oriented programming? C? The Unix tools? Have you taken discrete math? A course in computer systems?”
2, 不轻易做一个计划,做一个计划不轻易放弃。我对什么事情都感兴趣,什么都想玩一玩,但是如果不把一项技术学精,虎头蛇尾,是一种空言壮志的表现。S举例了我从GH, Python, 计算几何, C++, Flask, OpenGL等计划, 当然我知道还有其他, 说明我容易循着一条轨迹向下寻溯。但时未兴,我无法准确判断计划的可靠性。
3, 不把当下决定看得太重。对于那些无所事事的人,他们要减少对时间的浪费;对于我,浪费的时间反而有意义的。浪费与否,学习哪条方向, 都是一种经历。不能陷入到对未知的结果的忧虑当中去,要承认对未知的复杂性。
4, 捡最近的镜子。满地镜子看花眼睛时候,找最近的镜子。对S来说,数字化的最近镜子是学生;他如此提醒我,想必是要说,我最近的镜子,应该是我的同学和S。但是什么是技术的最近的镜子呢?数据结构,图形,游戏。也许。

冬至夜, 按照去年留下的习俗, 和朋友约一起煮火锅下水饺和汤圆。吃得也饱,聊得也欢快。

其他人陆陆续续的去忙别的事情,只剩下X,H和我。话题的起因是老生常谈,女孩。我看上去是个优胜者,他们两个向我请教。给出了一些符合xu逻辑的方法,
1, 列出关于学校集体活动的一个list;
2, 将每个活动的具体形式考量一遍;
3, 加入该活动的方式;
4, 可能会出现的几个状况;
5, 综合考量后排序挑选前5个活动参加。
因为,前前后后也跟X讲了好多次,没有什么实际行动,我想,问题可能出在,我总是讲具体跟女孩的交流方式,其实这是因人而异的,刻意的追求结果未必是好。但作为前馈数据,需要的大概是接触到更多人的环境,让他自己在这个环境中摸爬。希望这大概能够好些。

聊完这个,便聊第二个老生常谈,但并未透彻的话题,体制。重新思考话题展开的原因相对来说比较有意义,是探索一种启蒙的模型。这个话题能够展开,总得来讲,出于对当下以及未来的困惑,我尝试分开来讲几点原因,
1, 计算机科学自下而上的思维模式,撼动原有的自上而下的体系。这其中差异,看上去是从技术角度出发,却渗透到经济,结构,体制,文化,人性等各个方面。
2, 怀有对资社的不充分理解和想要探求的心理状态。
3, 评论和试图解决遇到的问题,寻求一种生活的模型。

X先提出了对该体制是否会倒塌的质疑,我觉得这个问题好回答,但也不好回答,确实凭借我的认知还无法解释清楚,能够解释清楚的人大多也都别有用心。我但是从我的数据库中索引出来一些,但凌晨四点睡去醒来后,又作了些思考。

人一般走上畸路的过程分成几个阶段,先是犯错误,错误带来不良后果,判断他没救的依据是,依旧不改正错误,后果没得到解决。道理是相同的。

错误性体现在,社会主义相对于资本主义的乌托邦本质。共产主义,当财富是大家共有的时候,谁来决定财富的分配?能够决定分配的人,势必会有权力。如果该掌权者是一个大公无私的,理性智慧的人,大家能够得到平等的分配。这看上去很对,能够实现。但却忽略了一个关键的事实,人性是有阴暗面的,是有私心的。这种私心若是顺其自然的发展,以共同利益为由,是能够孕育出灿烂果实的;有趣的是,但若想消除这种私心,这种私心就被放大了,因为看上去大家都不存在私心了,但消除别人私心的行为本身就是一种私心,说这是私心温和了些,应该说是恶,然而这种恶会被不断的累积和放大,因此,在最高位置上的伟大领袖,或许并非那么伟大。

那么后果是什么?总体上讲是系统内耗造成的资源短缺。这种框架下,势必一切会向权力看。人们会为了生存而追求利益,而追求利益的竞争在这个情况下,又转变成了为追逐权力而努力竞争。值得一提的是,生存是第一要义。竞争是必要的,但除了竞争之外还有合作;利益是必要的,但除了利益之外还有共同利益;追逐地位是必要的,但地位的来源不是唯一的来自于权力和财富。

这种追求利益的方式,产生了第一种后果,其实就是系统内耗。拿我熟悉的高等教育举例子,真正想做科研的教授,他势必不想将时间浪费在这一内耗上,但是不进行这种内耗他便得不到科研经费,科研没有开始就已经结束。然而,也许有人会说,教授你只要忍受一下,便可以开始真正的科研,但事实情况是这样:1, 一旦进行了一次这样的内耗,他会找你第二次; 2, 要记住,这是在进行权力的斗争,如果你做的研究是你的上一级无法控制的,他会对你起疑心;如果你的研究是上一级可以控制的,他会把你的研究为他所用作为自己权力斗争的筹码。也就是说,在这种机制的情况下,他是逆向淘汰的,有科研能力的人,被最终的边缘化。

第二种后果便是,内耗之后,是对系统资源的严重浪费。这个问题在各行各业各个单位普遍都是存在,且按照中共逻辑来说是正常的。权力的斗争中,可不像我在计算机上写代码一样,他有很多区别,但仍然可以用计算机的角度来解释。

1, 区别在于,建立一个模型,跑一跑数据资源,出错了;重新建立一个模型,再跑一跑。但现实世界中,没人会给我们这个机会。地下水就是地下水,矿产就是矿产,森林就是森林,不多不少就放在这里,终究竭尽。

2, 用计算机的角度解释就是说, 上述所说的权力斗争,导致创新能力低下,经济对重工业的依赖性强,资源的消耗速度快。也就是,没有优秀的算法,数据结构选择又不合理,内存管理又不做,建立模型后,冗余运算大,结果是消耗了很多资源,却写了个破程序,还要把时间花在无止尽的debug上。之后也会相应解释。

那么,错误是否被改正?这其实是个相对较伪命题,这个问题上我们翻过很多次跟斗,共党把他们最信任的,工人骗了,学生骗了,农民也骗了。只要认识到乌托邦的本质,就能够得出结论,他不无法被改正的。如果说要从计划经济走向市场经济,原因是有了权力之后就要用权力去换取财富。十年寒窗是为了什么?更何况12年苦读之后,换来的是更鲜艳的红旗。拿建筑学的建模软件来说,如果sketchUp开源底层代码了,那它还是sketchUp吗?还是叫sketchDown?

后果是否得到解决呢?对应的,当我写错一个程序的时候,我可能会把他扔掉,甚至说从一开始我就应该谨慎设计一个程序,那样就不至于后面一大堆麻烦。 政府官员需要权力斗争的筹码,这些筹码要从白手套,也就是商人那里得到,企业发展势会消耗资源,在资本主义中这种消耗是良性的,因为商人为了自身利益出发,要考虑一种相对长远的发展,商人就会去选择新的技术,投资新的研发,考虑如何合理分配现有资源,因为他们的资本决定了他们的相对自由。然而,在天朝,权力斗争是激烈的,对筹码的欲望是贪婪的,商人是被迫无奈如妓女似的,环境?资源?这种考虑是可能只会是在某个失眠的夜晚发问内心,然而事实上却是不会存在的,而这种对内心的发问,又会用另外一种形式去完成对内心的救赎。只有这种发展不可持续,才会提出可持续发展观。同理,只有在素质低下的国家,才会提出乐于助人般的口号,提出共识,就先不展开了。

天朝统治者和民众一起,在追求结果的平等的过程中,必然造成了过程的不平等,而统治者享受到了不平等的高点,低点留给民众享受。然而他们真的是在高点了吗?领袖足够了吗?常委们幸福吗?首富们的日子好过吗?共产主义马克思是cancer, 把白的黑的都卷入了这场漩涡中,无法脱身。但是cancer现在有医治手段了吗?上帝会像看着一个犯错的孩子一样看着我们,他终究还是宽容的吧,他会“给岁月以文明,而不是给文明以岁月”的吧,中华民族还要在时间中被消耗迭代,但他终归还是坚强的吧。即使,有的人选择在别人将他逼疯之前先逼疯了自己,但他们还是坚强无比的吧。

我们很多人不承认,但事实上不得不承认:我们习惯于将现在当作是过去历史的结果,用历史去解释未来,但事实上,现在就是未来的原因。

Git Push免密码设置

发表于 2017-12-22

使用.git-credentials保存验证

$ cd
$ touch .git-credentials
$ emacs .git-credentials
https://{timting***}:{********}@github.com
$ cd ~/.emacs.d/
$ git push -u origin master
Username for 'https://github.com': C-c C-c

去掉{}

$ emacs ~/.git-credentials
https://timting***:********@github.com
$ git config --global credential.helper store

$ cd
$ cat ~/.gitconfig
[user]
email = timtingwei@hotmail.com
name = timtingwei
[credential]
helper = store

现在push不再需要验证。

但我不希望用文件保存我的密码

$ ls -ld .git-credentials
-rw------- 1 tim tim 42 12月 22 15:00 .git-credentials
tim@htwt:~$ sudo chmod 200 .git-credentials
[sudo] password for tim:
tim@htwt:~$ ls -ld .git-credentials
--w------- 1 tim tim 42 12月 22 15:00 .git-credentials
tim@htwt:~$ git config --global credential.helper store

重启bash

tim@htwt:~/.emacs.d$ git push origin master
fatal: unable to open /home/tim/.git-credentials: Permission denied

=> 修改权限的方法没用, 别人看不到, git也看不到。

======

安全性存疑,因此改用设置cache

$ rm ~/.git-credentials

通过设置git的cache的话可以让它记住密码之后自己设置一个cache有效时间 这样也一定程度保证了一些安全性。

$ git config --global credential.helper cache
\# Set git to use the credential memory cache
$ git config --global credential.helper 'cache --timeout=3600'
\# Set the cache to timeout after 1 hour (setting is in seconds)

======

refwebsite:
[1], https://www.zhihu.com/question/31836445
[2], http://www.jianshu.com/p/f54053afecf2
[3], https://help.github.com/articles/caching-your-github-password-in-git/

Markdown删除线

发表于 2017-12-22

~~删除一句~~
删除一句

~~删除
多行~~
删除
多行

~~删除包含语法\[mituh’s notes\]\[timtingwei.github.io\]~~
删除包含语法[mituh’s notes][timtingwei.github.io]

\====
不知道还有其他方法否?

\====
refwebsite:
https://en.wikipedia.org/wiki/Markdown

在ubuntu14.04上建立OpenGL编译环境

发表于 2017-12-20

学习教程LearnOpenGL-CN前先配置学习环境,对照后面编译时链接的函数库,

$ g++ -std=c++11 hello_window.cpp -lGLEW -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi -ldl -lXinerama -lXcursor

需要:

  • GLEW
  • GLFW/GLFW3
  • libgl1-mesa
  • libglu1-mesa

ps: 不是完全明白这里链接库的对应关系

==========

参考:Howto_Install_OpenGL_Development_Environment

建立基本编译环境
首先不可或缺的,就是編譯器與基本的函式庫,如果系統沒有安裝的話,請依照下面的方式安裝:

sudo apt-get install build-essential

安裝OpenGL Library
接下來要把我們會用到的 Library 裝上去,首先安裝 OpenGL Library

sudo apt-get install libgl1-mesa-dev

安裝OpenGL Utilities
OpenGL Utilities 是一組建構於 OpenGL Library 之上的工具組,提供許多很方便的函式,使 OpenGL 更強大且更容易使用。 接下來我們安裝OpenGL Utilities

在Linux下你需要链接libGL.so库文件,这需要添加-lGL到你的链接器设置中。如果找不到这个库你可能需要安装Mesa,NVidia或AMD的开发包,

sudo apt-get install libglu1-mesa-dev

安裝GLFW/GLFW3
GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入,这正是我们需要的。

GLFW可以从它官方网站的下载页上获取。

参考网站How to build & install GLFW 3 and use it in a Linux project
解压后,

$ sudo apt-get install cmake

$ cmake -G "Unix Makefiles"

$ sudo apt-get build-dep glfw
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo make
$ sudo make install

Install the project...
-- Install configuration: ""
-- Installing: /usr/local/include/GLFW
-- Installing: /usr/local/include/GLFW/glfw3.h
-- Installing: /usr/local/include/GLFW/glfw3native.h
-- Installing: /usr/local/lib/cmake/glfw3/glfw3Config.cmake
-- Installing: /usr/local/lib/cmake/glfw3/glfw3ConfigVersion.cmake
-- Installing: /usr/local/lib/cmake/glfw3/glfw3Targets.cmake
-- Installing: /usr/local/lib/cmake/glfw3/glfw3Targets-noconfig.cmake
-- Installing: /usr/local/lib/pkgconfig/glfw3.pc
-- Installing: /usr/local/lib/libglfw3.a

从测试源码网站复制案例代码测试
该案例中#include

$ g++ -std=c++11 -c main.cpp

$ ./main.o
bash: ./main.o: cannot execute binary file: Exec format error &lt;==执行main.o提示不是二进制可执行文件


$ g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
/usr/bin/ld: //usr/local/lib/libglfw3.a(vulkan.c.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

You may also need to add the linker options -ldl -lXinerama -lXcursor to get it to work correctly if you are getting undefined references to dlclose

$ g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi -ldl -lXinerama -lXcursor

$ ./main.exec

-l 告訴 gcc 去連結指定 Library
-o 指定執行檔的輸出名字

执行:

$ ./main.exec

*安装glut\*

```sh
sudo apt-get install libglut-dev
```

沒有libglut-dev可以改用
```sh
sudo apt-get install freeglut3-dev
```

設定編譯參數與編譯
在這之前,我們需要一個測試範例,example.c
如下:

有了測試範例、基礎編譯環境與各個 OpenGL 相關的函式庫之後,我們所需要做的就是告訴編譯器我們有安裝 OpenGL 函式庫,編譯程式時要連結這些函式庫。

gcc example.c -o example.out -lGL -lGLU -lglut
因為我們安裝了 OpenGL Utility Toolkit ,它是建立在 OpenGL Utilities 與 OpenGL Library 之上,因此我們可以簡單連結 OpenGL Utility Toolkit 的函式庫就可以達到我們的目地了。下面的編譯參數跟上面的是同樣效果:

gcc example.c -o example.out -lglut
下面簡單說明一下所使用的 gcc 參數

-l 告訴 gcc 去連結指定 Library
-o 指定執行檔的輸出名字

執行
接下來我們就可以來看看我們的結果,如果看到右圖,代表成功了!~
./example.out

编译和链接GLEW

对于用GCC编译的Linux用户建议使用这个命令行选项-lGLEW -lglfw3 -lGL -lX11 -lpthread -lXrandr -lXi。没有正确链接相应的库会产生 undefined reference(未定义的引用) 这个错误。

$ sudo apt-get build-dep glew
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo make
$ sudo make install

==========

测试教程中的案例代码

复制 [代码hello_window.cpp][https://github.com/timtingwei/LearnOpenGL/src/1.getting_started/1.1.hello_window/hello_window.cpp]

$ g++ -std=c++11 hello_window.cpp -lGLEW -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi -ldl -lXinerama -lXcursor
$ ls
a.out hello_window.cpp
$ ./a.out
Starting GLFW context, OpenGL 3.3

看到初始化窗口,代表成功。

编译后窗口透明问题
虽然窗口初始化成功, 但不知道我的窗口为什么是透明的, 难道是ubuntu的原因吗?
Render部分再加入两行代码

glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);

编译后libGLEW.so.2.1: No such file or directory 问题

..
$ ./a.out
./a.out: error while loading shared libraries: libGLEW.so.2.1: cannot open shared object file: No such file or directory

查询stackoverflow libGLEW相关问题
得到libGLEW在lib64下, 于是便创建软link
$ sudo ln -s /usr/lib64/libGLEW.so.2.1 /usr/lib/libGLEW.so.2.1

==========

refwebsite:
https://learnopengl-cn.readthedocs.io/zh/latest/01%20Getting%20started/02%20Creating%20a%20window/
https://wiki.ubuntu-tw.org/index.php?title=Howto_Install_OpenGL_Development_Environment
https://stackoverflow.com/questions/17768008/how-to-build-install-glfw-3-and-use-it-in-a-linux-project
http://www.glfw.org/docs/3.0/quick.html
https://stackoverflow.com/questions/26372359/error-loading-shared-library-glew
http://www.glfw.org/download.html

在不同机器上配置部署hexo

发表于 2017-12-20

将学习平台从Windows转移到ubuntu上后,需要重新配置hexo,但和重头配置有所区别。虽然,将Windows的磁盘擦干净前,我已经把数据全转移到移动硬盘上,可以用拷贝的方式在ubuntu上重新部署hexo, 但是这种方法相对手动,且既然用了github pages, 就通过实践github来部署。

查阅后得到两种比较通用的hexo发布github的方式,

  1. 重新create a repo, 将静态文件push上去。
  2. 利用git branch的特性,将静态和部署文件放在一个repo的两个branch中。
    这里我选择了后者。

检查git:

$ git --version

$ sudo apt-get install git-core

安装npm(node package manager):

$ npm --version

$ sudo apt-get install npm

安装node-legacy
装node-legacy原因

$ sudo apt-get install nodejs-legacy

安装nvm
nvm和npm一样是node的包的管理工具

$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

安装 Node.js

Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。Node.js由Node.js基金会持有和维护,并与Linux基金会有合作关系。Node.js采用Google开发的V8运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于数据密集的事实应用程序。
visit node.js for more information

$ nvm install 4

安装 hexo

$ npm install hexo-cli -g

$ npm install hexo -g

配置git

查看:

$ ls -al ~/.ssh
ls: cannot access /home/tim/.ssh: No such file or directory

生成:

$ ssh-keygen -t rsa -b 4096 -C "timtingwei@hotmail.com"

确认:

$ ssh-agent -s

添加:

$ ssh-add ~/.ssh/id_rsa

在github中添加SHH KEY

$ clip < cat ~/.ssh/id_rsa.pub

并在github setting中添加shh key

$ ssh -T git@github.com
Hi timtingwei! You've successfully authenticated, but GitHub does not provide shell access.

利用git branch在不同机器上部署hexo
CrazyMilk的知乎回答

  1. 创建repo, timtingwei.github.io;
  2. 创建master和hexo两个分支,hexo用于存放静态文件, master用于部署;
  3. repo setting 中设置hexo为默认分支;
  4. git clone git@github.com:timtingwei/timtingwei.github.io.git 拷贝repo;
  5. npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git –save(此时当前分支应显示为hexo);如果在不同机器上不需要hexo init;
  6. 修改_config.yml的deploy::branch参数为master;
  7. 依次执行 git add., git commit -m “…”, git push origin hexo 提交相关文件;
  8. 执行hexo g -d 生成并部署到github上
  9. 日常改动:依次7,8.

以上配置完成后, hexo s没反应

$ hexo server
INFO Start processing

hexo 3.0把服务器独立成个别模块,必须安装hexo-server才能使用。

$ npm install hexo-server --save

$ hexo server

安装后, 仍旧没有反应。

考虑用静态模式, 服务器只处理public文件夹内的文件,而不处理文件变动。先要执行hexo generate

$ hexo generate
$ hexo server -s
INFO Start processing
INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

refweb:
https://zh.wikipedia.org/wiki/Node.js
http://www.jianshu.com/p/24cb74aeb0a3
https://www.zhihu.com/question/21193762
https://hexo.io/zh-cn/docs/server.html
https://stackoverflow.com/questions/21168141/cannot-install-packages-using-node-package-manager-in-ubuntu

添加git bash到右键菜单

发表于 2017-11-23

issue:

因为.git文件所在的目录如下:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\d3d

当在bash中cd到该目录时:

$ cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\d3d
bash: syntax error near unexpected token `('

试图通过右键进入bash

hack:

  1. CMD中输入”regedit”
  2. 切换到 HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell
  3. 右键点击 “shell” 选择 New > Key. 将KEY命名为 “Bash”
  4. 设置值为 “open in Bash”
  5. 创建一个新的KEY命名为”command”. 设置值为git-bash.exe 路径.

此时在文件夹中右键, 出现Open in bash选项.

以上为通过注册表添加bash到右键的方法,但还是建议重装git


reference:
[1]: https://www.zhihu.com/question/48091139 @轩辕Rowboat的回答

hexo博客中文乱码

发表于 2017-11-23

issue:

$ hexo g && hexo s

此时localhost中出现如下中文乱码, 英文部分正常。

��Ȼ���(depth buffer)

此时_config.yml中:

language: zh-Hans

hack:

  1. Notepad++打开出现中文的*.md, 此时右下角为ANSI格式.
  2. 格式->转为UFT-8编码格式
  3. 保存
  4. $ hexo clean && hexo g && hexo s

此时localhost中

深度缓存(depth buffer)

issue++:

  • 批量转化post中的md文件
  • 自动生成UTF-8格式的md文件

reference:
[1]:

DirectX9.0 notes 1.3 预备知识

发表于 2017-11-22

深度缓存(depth buffer)

定义: 一个含有特定像素的深度信息而不含图像数据的表面。
用于计算每个像素而定深度值并进行深度测试: 让处于同一位置的不同像素进行竞争,选出应写入该位置的像素。距离摄像机最近的像素获胜。
深度缓存格式决定深度测试精度, 精度度 16位<24位<32位, 一般选择24位满足效果

  • D3DFMT_D32 32位深度缓存
  • D3DFMT_D23S8 24位深度缓存, 其中8位保留供模板缓存(stencil buffer)[1]使用
  • D3DFMT_D24X8 24位深度缓存
  • D3DFMT_D16 16位深度缓存

顶点运算(Vertex Processing)

  • 软件顶点运算(software vertex process)
  • 硬件顶点运算(harfware …)

软件顶点运算 总是会被支持 , 硬件只有得到图形卡的支持才可使用。

优先考虑硬件顶点运算方式,理由:

  1. 使用的硬件可能有加速功能
  2. 可以不占用CPU, CPU可被解放出来进行其他运算

设备性能(Device Capabilities)

DeCaps 表示”Device Capabilities”
D3DCAP9::DevCaps的D3DDEVCAPS_HWTYRANSFORMANDLIGHT 可用来表示设备是否支持变换和光照的硬件计算。
多查阅D3DCAP9相关的SDK文档, 继续研究一下Directt3D所提供能够设备性能的完整列表。

[1] : 18章论述

Markdown语法整理(不定期更新)

发表于 2017-11-21

In this post, I will focus on use of Markdown and hexo push.

  1. title level
  2. insert a link
  3. highlight the code
  4. three lists of point
  5. insert a note”[^code]”
  6. bold fonts
  7. reference
  8. edit a formula
  9. draw a flow picture
  • 补充

reference website: Cmd Markdown reader

1. Title level

level 3-0

level 4-0

level 3-1

level 4-1

level 4-2

2. Insert a link.

Tim’s Blog

Tim’s Blog

### [Tim's Blog](https://timtingwei.github.io/)
### [Tim's Blog][2]

3. Highlight the code

@requires_authorization
class SomeClass:
pass

if __name__ == '__main__':
# A comment
print 'hello world'
#include <iostream>

class Foo {
public:
int f();
};

int main() {
// ...
return 0;
}

4. three lists of point

Bulleted List

  • first line
  • second line
  • third line

Numbered List

  1. first line
  2. second line
  3. third line

TODO list

  • first todo
  • second todo
  • third todo -> Done

5. insert a note[^code]

LaTex formula support [LaTex][^LaTex]
high light code [code][^code]
insert a web note MathJax

6. bold fonts

bold fonts by adding two asteriskes * as prefix and suffix respectively

7. Reference

You can insert a reference by “>”,
and input enter to create a new line,
This is the end line. Until the next symbol occur.

8. edit a formula

$$E=mc^2$$ use $$

9.draw a flow picture

st=>start: Start
op=>operation: Your Opreation
cond=>condition: Yes or No?
e=>end

st->op->cond
cond(yes)->e
cond(no)->op

[^LaTex]: support LaTex edit and display, such as: $\sum_{i=1}^n a_i=0$, visit MathJax for more information.
[^code]: include Java, Python, JavaScript etc.


补充

  • 背景色灰
  • 实现页面内跳转
  • 删除线
  • 插入图片
  • 标记文本颜色
    20171224之后补充但未作整理。本来可以将每个语法分成多个博客离散列出,但后来出于对博客页面和知识索引的考虑,还是放在一个post内,也许将来会又变动,但是先不提前优化。

背景色灰

`gray background`

gray background

背景灰可以代替 反斜杠 \,去完成注释。这个很好用。原理估计和代码块差不多吧。

实现页面内跳转

[create an anchor](#anchors-in-markdown)

create an anchor

\===========
refwebsite:

Anchors in Markdown

anchors in markdown

skip into this title

删除线

~~删除一句~~
删除一句

~~删除
多行~~
删除
多行

~~删除包含语法[mituh’s notes][timtingwei.github.io]~~
删除包含语法[mituh’s notes][timtingwei.github.io]

====
不知道还有其他方法否?

\==========
refwebsite:

https://en.wikipedia.org/wiki/Markdown

插入图片

![Logo](/images/logo.png)
Logo

\===========
refwebsite:

hexo图片的其他用法:https://hexo.io/zh-cn/docs/asset-folders.html
https://webapps.stackexchange.com/questions/29602/markdown-to-insert-and-display-an-image-on-github-repo

标记文本颜色

<span style="color:blue">*This is Blue italic.*</span>
This is Blue italic.

<span style="color:red">**This is Red Bold.**</span>
This is Red Bold.

相比之下,
italic 给人轻松的感觉,
blod有种警告意味。

\===========
refwebsite:

https://stackoverflow.com/questions/35465557/how-to-apply-color-in-markdown

换行

段落前后是空行
段落内插入<br>换行

test1
test2

test1
test2

test1

test2


test1

test2

test1

test2

test1<br>
test2<br>

\====
ref:
http://xianbai.me/learn-md/article/syntax/paragraphs-and-line-breaks.html

next one ?


以上是我的个人笔记收录,markdown主要用来写笔记和写博客
其他有什么好玩的用法,欢迎指教。
timtingwei@gmail.com

1…1718

mituh

179 日志
99 标签
© 2018 mituh
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4