﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-我的编程乐园-随笔分类-读书</title><link>http://www.cppblog.com/deercoder/category/13939.html</link><description>&lt;P&gt;&lt;FONT style="FONT-SIZE: 20px" color=#ff0000&gt;积累，坚持！&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT style="FONT-SIZE: 20px" color=#ff0000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---------我是一只IT小小鸟&lt;/FONT&gt;&lt;/P&gt;</description><language>zh-cn</language><lastBuildDate>Sun, 17 Jun 2012 19:16:29 GMT</lastBuildDate><pubDate>Sun, 17 Jun 2012 19:16:29 GMT</pubDate><ttl>60</ttl><item><title>Markdown学习笔记</title><link>http://www.cppblog.com/deercoder/archive/2012/06/17/179195.html</link><dc:creator>deercoder</dc:creator><author>deercoder</author><pubDate>Sun, 17 Jun 2012 11:16:00 GMT</pubDate><guid>http://www.cppblog.com/deercoder/archive/2012/06/17/179195.html</guid><wfw:comment>http://www.cppblog.com/deercoder/comments/179195.html</wfw:comment><comments>http://www.cppblog.com/deercoder/archive/2012/06/17/179195.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/deercoder/comments/commentRss/179195.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/deercoder/services/trackbacks/179195.html</trackback:ping><description><![CDATA[Markdown简介<br /><div>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;Markdown 是一种轻量级的标记语言，由John Gruber和Aaron Swartz创建，使其成为可读性最大并可再发行的可输入输出的格式。这种语言创建灵感来自于已经存在的带标记的电子邮件文本。Markdown 允许 HTML 语法, 所以使用者如果需要可以直接用 HTML来表示是可以的。Markdown最初由Gruber应用在Perl语言中，但现在已经有多种编程语言应用了。它是开源项目，并以BSD-style许可证的许可方式以插件形式或内容管理系统形式发布。<br /><br />背景介绍<br />&nbsp; &nbsp; &nbsp; 上周准备将blog迁移至Github后，发现使用Jekyll+Markdown的方式撰写静态博客非常方便，但是，对于markdown的语法还没有想过的学习，所以入手较慢，对于如何撰写blog还是处于茫然阶段，因此，这周学习了一下markdown的语法，并动手实践了一把，感觉上手比较容易，不过要想熟练使用，还需要花费一定的时间来多多实践。当然了，由于内容比较易读，所以以后写txt可以直接用markdown来写，既可以锻炼熟悉程度，又可以写出带有组织结构的文档，不想word那么冗余。<br /><br />工具<br />&nbsp; &nbsp;Windows下面，推荐使用MarkdownPad软件进行撰写。<br />&nbsp; &nbsp;Linux下面，推荐使用ReText软件撰写。<br />&nbsp; &nbsp;这两款软件都支持所见即所得，即撰写后即可实时的看到转化后的效果。<br /><br />安装过程<br />&nbsp; &nbsp;安装python：&nbsp;http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi<br />&nbsp; &nbsp;安装markdown：&nbsp;http://pypi.python.org/packages/any/M/Markdown/Markdown-2.0.win32.exe<br />&nbsp; &nbsp;下载并安装MarkdownPad：http://markdownpad.com/download/MarkdownPad.exe<br /><br />在线转化<br />&nbsp; &nbsp;Dingus：<a href="http://daringfireball.net/projects/markdown/dingus">http://daringfireball.net/projects/markdown/dingus</a><div><div><a href="http://daringfireball.net/projects/markdown/dingus">该网站支持在线将markdown撰写的文档转化为实际翻译后的效果，以便查看，或者翻译为HTML文档</a></div>&nbsp; &nbsp;Github：将markdown文档上传至Github后，可以直接看到效果，该文档会自动被Github翻译。另外，上面的工具还能够支持将生成的文档保存为pdf等格式。<br /><br />学习笔记和入门语法（以Markdown语法来写，达到练习目的）：<br /><br /><div>&nbsp;Markdown Syntax:<br />  <br /> 1.Phrase Emphasis 斜体与加粗<br /> <br /> *italic*&nbsp;&nbsp;&nbsp;**bold**<br /> _italic_&nbsp;&nbsp;&nbsp;__bold__<br /> <br /> 2.Links 超链接<br /> <br /> 方法1 Inline:<br /> An [example](http://url.com/ "Title")<br /> <br /> 方法2 Reference-style labels (titles are optional):<br /> An [example][id]<br /> <br /> Then, anywhere else in the doc, define the link:<br /> [id]: http://example.com/&nbsp;&nbsp;"Title"<br /> <br /> 3.Images 插入图片<br /> <br /> 方法1 Inline (titles are optional):<br /> ![alt text](/path/img.jpg "Title")<br /> <br /> 方法2 Reference-style:<br /> ![alt text][id]<br /> <br /> [id]: /url/to/img.jpg "Title"<br /> <br /> 4.Headers 标题<br /> <br /> 方法1 Setext-style:<br /> Header 1<br /> ========<br /> <br /> Header 2<br /> --------<br /> <br /> 方法2 atx-style (closing #'s are optional):<br /> # Header 1 #<br /> <br /> ## Header 2 ##<br /> <br /> ###### Header 6<br /> <br /> 5.Lists 列表<br /> <br /> 有序列表 Ordered, without paragraphs:<br /> 1.&nbsp;&nbsp;Foo<br /> 2.&nbsp;&nbsp;Bar<br /> <br /> 无序列表 Unordered, with paragraphs:<br /> *&nbsp;&nbsp;&nbsp;A list item.<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;With multiple paragraphs.<br /> <br /> *&nbsp;&nbsp;&nbsp;Bar<br /> <br /> You can nest them:<br /> *&nbsp;&nbsp;&nbsp;Abacus<br /> &nbsp;&nbsp;&nbsp;&nbsp;* answer<br /> *&nbsp;&nbsp;&nbsp;Bubbles<br /> &nbsp;&nbsp;&nbsp;&nbsp;1.&nbsp;&nbsp;bunk<br /> &nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;&nbsp;bupkis<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* BELITTLER<br /> &nbsp;&nbsp;&nbsp;&nbsp;3. burper<br /> *&nbsp;&nbsp;&nbsp;Cunning<br /> <br /> 6.Blockquotes 块引用<br /> <br /> &gt; Email-style angle brackets<br /> &gt; are used for blockquotes.<br /> <br /> &gt; &gt; And, they can be nested.<br /> <br /> &gt; #### Headers in blockquotes<br /> &gt;&nbsp;<br /> &gt; * You can quote a list.<br /> &gt; * Etc.<br /> <br /> 7.Code Spans 代码段<br /> <br /> `&lt;code&gt;` spans are delimited by backticks.<br /> <br /> You can include literal backticks<br /> like `` `this` ``.<br /> <br /> Preformatted Code Blocks<br /> <br /> Indent every line of a code block by at least 4 spaces or 1 tab.<br /> This is a normal paragraph.<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;This is a preformatted<br /> &nbsp;&nbsp;&nbsp;&nbsp;code block.<br /> <br /> 8.Horizontal Rules 水平分割线<br /> <br /> Three or more dashes or asterisks:<br /> ---<br /> <br /> * * *<br /> <br /> - - - -&nbsp;<br /> <br /> 9.Manual Line Breaks 换行<br /> <br /> End a line with two or more spaces:<br /> Roses are red,&nbsp;&nbsp;&nbsp;<br /> Violets are blue.</div><br />下面是另外一篇<br />============================<br /><div>&nbsp;## Getting the Gist of Markdown's Formatting Syntax<br /> <br /> 此页提供了 Markdown 的简单概念， 语法说明 页提供了完整详细的文档，说明了每项功能。但是 Markdown 其实很简单就可以上手，此页文档提供了一些范例，并且每个范例都会提供输出的 HTML 结果。<br /> <br /> 其实直接试试看也是一个很不错的方法， Dingus 是一个网页应用程序，你可以把自已编写的 Markdown 文档转成 XHTML。<br /> <br /> ## 段落、标题、区块代码<br /> <br /> 一个段落是由一个以上的连接的行句组成，而一个以上的空行则会划分出不同的段落（空行的定义是显示上看起来像是空行，就被视为空行，例如有一行只有空白和 tab，那该行也会被视为空行），一般的段落不需要用空白或换行缩进。<br /> <br /> Markdown 支持两种标题的语法，Setext 和 atx 形式。Setext 形式是用底线的形式，利用 = （最高阶标题）和 - （第二阶标题），Atx 形式在行首插入 1 到 6 个 # ，对应到标题 1 到 6 阶。<br /> <br /> 区块引用则使用 email 形式的 '&gt;' 角括号。<br /> <br /> Markdown 语法:<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;A First Level Header<br /> &nbsp;&nbsp;&nbsp;&nbsp;====================<br /> &nbsp;&nbsp;&nbsp;&nbsp;A Second Level Header<br /> &nbsp;&nbsp;&nbsp;&nbsp;---------------------<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;Now is the time for all good men to come to<br /> &nbsp;&nbsp;&nbsp;&nbsp;the aid of their country. This is just a<br /> &nbsp;&nbsp;&nbsp;&nbsp;regular paragraph.<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;The quick brown fox jumped over the lazy<br /> &nbsp;&nbsp;&nbsp;&nbsp;dog's back.<br /> &nbsp;&nbsp;&nbsp;&nbsp;### Header 3<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&gt; This is a blockquote.<br /> &nbsp;&nbsp;&nbsp;&nbsp;&gt;&nbsp;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&gt; This is the second paragraph in the blockquote.<br /> &nbsp;&nbsp;&nbsp;&nbsp;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&gt; ## This is an H2 in a blockquote<br /> 输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;A First Level Header&lt;/h1&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;h2&gt;A Second Level Header&lt;/h2&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;Now is the time for all good men to come to<br /> &nbsp;&nbsp;&nbsp;&nbsp;the aid of their country. This is just a<br /> &nbsp;&nbsp;&nbsp;&nbsp;regular paragraph.&lt;/p&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;The quick brown fox jumped over the lazy<br /> &nbsp;&nbsp;&nbsp;&nbsp;dog's back.&lt;/p&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;h3&gt;Header 3&lt;/h3&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;blockquote&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;This is a blockquote.&lt;/p&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;/blockquote&gt;<br /> ## 修辞和强调<br /> <br /> Markdown 使用星号和底线来标记需要强调的区段。<br /> <br /> Markdown 语法:<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;Some of these words *are emphasized*.<br /> &nbsp;&nbsp;&nbsp;&nbsp;Some of these words _are emphasized also_.<br /> &nbsp;&nbsp;&nbsp;&nbsp;Use two asterisks for **strong emphasis**.<br /> &nbsp;&nbsp;&nbsp;&nbsp;Or, if you prefer, __use two underscores instead__.<br /> 输出 HTML 为:<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.<br /> &nbsp;&nbsp;&nbsp;&nbsp;Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.<br /> &nbsp;&nbsp;&nbsp;&nbsp;Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;<br /> ## 列表<br /> <br /> 无序列表使用星号、加号和减号来做为列表的项目标记，这些符号是都可以使用的，使用星号：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;* Candy.<br /> &nbsp;&nbsp;&nbsp;&nbsp;* Gum.<br /> &nbsp;&nbsp;&nbsp;&nbsp;* Booze.<br /> 加号：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;+ Candy.<br /> &nbsp;&nbsp;&nbsp;&nbsp;+ Gum.<br /> &nbsp;&nbsp;&nbsp;&nbsp;+ Booze.<br /> 和减号<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;- Candy.<br /> &nbsp;&nbsp;&nbsp;&nbsp;- Gum.<br /> &nbsp;&nbsp;&nbsp;&nbsp;- Booze.<br /> 都会输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;Candy.&lt;/li&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;Gum.&lt;/li&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;Booze.&lt;/li&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br /> 有序的列表则是使用一般的数字接着一个英文句点作为项目标记：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;1. Red<br /> &nbsp;&nbsp;&nbsp;&nbsp;2. Green<br /> &nbsp;&nbsp;&nbsp;&nbsp;3. Blue<br /> 输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;ol&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;Red&lt;/li&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;Green&lt;/li&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;Blue&lt;/li&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;/ol&gt;<br /> 如果你在项目之间插入空行，那项目的内容会用 &lt;p&gt; 包起来，你也可以在一个项目内放上多个段落，只要在它前面缩排 4 个空白或 1 个 tab 。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;* A list item.<br /> &nbsp;&nbsp;&nbsp;&nbsp;With multiple paragraphs.<br /> &nbsp;&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp;&nbsp;* Another item in the list.<br /> 输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br /> ##链接<br /> <br /> Markdown 支援两种形式的链接语法： 行内 和 参考 两种形式，两种都是使用角括号来把文字转成连结。<br /> <br /> 行内形式是直接在后面用括号直接接上链接：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;This is an [example link](http://example.com/).<br /> 输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;This is an &lt;a href="http://example.com/"&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;example link&lt;/a&gt;.&lt;/p&gt;<br /> 你也可以选择性的加上 title 属性：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;This is an [example link](http://example.com/ "With a Title").<br /> 输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;example link&lt;/a&gt;.&lt;/p&gt;<br /> 参考形式的链接让你可以为链接定一个名称，之后你可以在文件的其他地方定义该链接的内容：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;I get 10 times more traffic from [Google][1] than from<br /> &nbsp;&nbsp;&nbsp;&nbsp;[Yahoo][2] or [MSN][3].<br /> &nbsp;&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp;&nbsp;[1]: http://google.com/ "Google"<br /> &nbsp;&nbsp;&nbsp;&nbsp;[2]: http://search.yahoo.com/ "Yahoo Search"<br /> &nbsp;&nbsp;&nbsp;&nbsp;[3]: http://search.msn.com/ "MSN Search"<br /> 输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"<br /> &nbsp;&nbsp;&nbsp;&nbsp;title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"<br /> &nbsp;&nbsp;&nbsp;&nbsp;title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"<br /> &nbsp;&nbsp;&nbsp;&nbsp;title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;<br /> title 属性是选择性的，链接名称可以用字母、数字和空格，但是不分大小写：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;I start my morning with a cup of coffee and<br /> &nbsp;&nbsp;&nbsp;&nbsp;[The New York Times][NY Times].<br /> &nbsp;&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp;&nbsp;[ny times]: http://www.nytimes.com/<br /> 输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;I start my morning with a cup of coffee and<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;<br /> ## 图片<br /> <br /> 图片的语法和链接很像。<br /> <br /> 行内形式（title 是选择性的）：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;![alt text](/path/to/img.jpg "Title")<br /> 参考形式：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;![alt text][id]<br /> &nbsp;&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp;&nbsp;[id]: /path/to/img.jpg "Title"<br /> 上面两种方法都会输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;<br /> 代码<br /> <br /> 在一般的段落文字中，你可以使用反引号 ` 来标记代码区段，区段内的 &amp;、&lt; 和 &gt; 都会被自动的转换成 HTML 实体，这项特性让你可以很容易的在代码区段内插入 HTML 码：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;I strongly recommend against using any `&lt;blink&gt;` tags.<br /> &nbsp;&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp;&nbsp;I wish SmartyPants used named entities like `&amp;mdash;`<br /> &nbsp;&nbsp;&nbsp;&nbsp;instead of decimal-encoded entites like `&#8212;`.<br /> 输出 HTML 为：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;I strongly recommend against using any<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;I wish SmartyPants used named entities like<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded<br /> &nbsp;&nbsp;&nbsp;&nbsp;entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;<br /> 如果要建立一个已经格式化好的代码区块，只要每行都缩进 4 个空格或是一个 tab 就可以了，而 &amp;、&lt; 和 &gt; 也一样会自动转成 HTML 实体。<br /> <br /> Markdown 语法:<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;If you want your page to validate under XHTML 1.0 Strict,<br /> &nbsp;&nbsp;&nbsp;&nbsp;you've got to put paragraph tags in your blockquotes:<br /> &nbsp;&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;blockquote&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;For example.&lt;/p&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;/blockquote&gt;<br /> 输出 HTML 为：<br /> &nbsp;&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,<br /> &nbsp;&nbsp;&nbsp;&nbsp;you've got to put paragraph tags in your blockquotes:&lt;/p&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&amp;lt;/blockquote&amp;gt;</div>&nbsp; &nbsp; &lt;/code&gt;&lt;/pre&gt;&nbsp;<br /><br />参考资料：<br /><div>1.&nbsp;<a href="http://wowubuntu.com/markdown/basic.html">http://wowubuntu.com/markdown/basic.html</a></div><div><div>2.&nbsp;<a href="http://gitcafe.com/riku/Markdown-Syntax-CN/blob/master/basics.md">http://gitcafe.com/riku/Markdown-Syntax-CN/blob/master/basics.md</a></div>3.&nbsp;<a href="http://markdown.tw/">http://markdown.tw/</a><a href="http://wowubuntu.com/markdown/basic.html"><br /></a></div></div><a href="http://daringfireball.net/projects/markdown/dingus"></a></div><div class="vimiumReset vimiumHUD" style="right: 150px; opacity: 0; display: none; "></div><div class="vimiumReset vimiumHUD" style="right: 150px; opacity: 0; display: none; "></div> <div class="vimiumReset vimiumHUD" style="right: 150px; opacity: 0; display: none; "></div><img src ="http://www.cppblog.com/deercoder/aggbug/179195.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/deercoder/" target="_blank">deercoder</a> 2012-06-17 19:16 <a href="http://www.cppblog.com/deercoder/archive/2012/06/17/179195.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>斯坦福大学开放课程：编程范式学习笔记《一》</title><link>http://www.cppblog.com/deercoder/archive/2012/04/29/173163.html</link><dc:creator>deercoder</dc:creator><author>deercoder</author><pubDate>Sun, 29 Apr 2012 10:26:00 GMT</pubDate><guid>http://www.cppblog.com/deercoder/archive/2012/04/29/173163.html</guid><wfw:comment>http://www.cppblog.com/deercoder/comments/173163.html</wfw:comment><comments>http://www.cppblog.com/deercoder/archive/2012/04/29/173163.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/deercoder/comments/commentRss/173163.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/deercoder/services/trackbacks/173163.html</trackback:ping><description><![CDATA[<div>  <p><span style="font-family: 宋体;">编程范式（</span>Paradigm<span style="font-family:宋体;">） Lesson 1 读书笔记：<br /></span></p>    <p><span style="font-family:宋体;">列举几种常见的编程语言（范式）：</span></p>    <p>C</p>  <p>Assembly</p>  <p>C++</p>  <p>Concurrency programming(<span style="font-family:宋体;">并行编程</span>) （只是一种范式，而不是语言，可以使用C/C++实现并行编程）<br /></p>  <p>Scheme</p>  <p>Python</p>  <p>&nbsp;</p>  <p>C<span style="font-family:宋体;">是面向过程，</span>C++<span style="font-family:宋体;">面向对象。</span>C<span style="font-family:宋体;">语言是函数调用函数，因此就像一个多级标题一样，通过函数</span>A<span style="font-family:宋体;">调用</span>B<span style="font-family:宋体;">，</span> <span style="font-family:宋体;">而函数</span>B<span style="font-family:宋体;">调用函数</span>C<span style="font-family:宋体;">，因此是有过程来决定一个函数的功能，我们首先看到的也就是一个过程（函数），通过指针来调用的。</span></p>  <p>&nbsp;</p>  <p>C++<span style="font-family:宋体;">是面向对象的，因此是通过&#8220;</span>-&gt;<span style="font-family:宋体;">&#8221;或者&#8220;</span>.<span style="font-family: 宋体;">&#8221;来进行访问的，我们首先看到的就是指针或者引用，也就是一个完整的对象。</span></p><p><span style="font-family:宋体;"><br /></span></p>  <p>这系列课程会详细讲述底层是如何将C/C++编译为汇编语言的，会进行指针的详细讲解，让你使用到**&amp;p-&gt; i = 7 这些很复杂的用法，虽然过程可能有些头疼，但是对于了解底层很有帮助，让你知道崩溃的时候是为什么，而不是看着它崩溃。当然，这种用法还是不值得提倡的。通过这些课程，可以让你成为一个高级C/C++工程师。<br /></p><p><br /></p>  <p><span style="font-family:宋体;">汇编语言是很古老的，不会详细讲。有一个语言</span>MITS<span style="font-family:宋体;">，有点意思，可以研究下。会重点讲述</span>C<span style="font-family:宋体;">和</span>C++<span style="font-family:宋体;">如何编译为</span>obj<span style="font-family:宋体;">文件，然后生成可执行的二进制文件，会发现原来</span>C<span style="font-family:宋体;">和</span>C++<span style="font-family:宋体;">最终生成的二进制代码（</span>0<span style="font-family:宋体;">和</span>1<span style="font-family:宋体;">形式的），其实差不多。</span></p>  <p>C++<span style="font-family:宋体;">去掉了面向对象的部分就是</span>C<span style="font-family:宋体;">，很多牛逼的工程师都倾向于使用</span>C<span style="font-family:宋体;">，尽管有很多优秀的语言在不同方面要比</span>C<span style="font-family:宋体;">优秀。</span></p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;">并行编程并不是真的并行。原来的语言，如</span>C/C++<span style="font-family:宋体;">，实际上都是执行完一条之后再执行，而并行编程则是并行执行（感觉上并行，实际上是交替执行，只是这个交替的频率很高，用户看不到这个交替的过程而已，从而认为是并行执行）。</span></p>  <p><span style="font-family:宋体;">并行编程很多地方使用不到，但是在网络编程上面很有用处。一个例子就是，两个用户同时从取款机上取一定的钱，比如余额为</span>100<span style="font-family:宋体;">，要保证他们不会同时取走，就是这样一个过程。将这一次操作成为事务</span>(transaction)<span style="font-family:宋体;">。</span></p>  <p>&nbsp;</p>  <p>Scheme<span style="font-family:宋体;">是一个函数式的语言，和</span>LISP<span style="font-family:宋体;">有很深的渊源。可能大家不大了解，函数式的语言就是执行依赖于函数的返回结果。传统的语言有缺陷，比如</span>C/C++<span style="font-family:宋体;">，可能在传递指针的过程中，修改了这个结构体，然后再返回这个值，引起混乱。而函数式的语言就是，需要根据函数的返回值，决定下一步的执行。因此就不会出现这种问题。这门语言很有意思，大家可以学习一下，实际上比其他语言都要有意思（老师原语）。</span></p>  <p>&nbsp;</p>  <p>Python<span style="font-family:宋体;">是一门年轻语言，在</span>Google<span style="font-family:宋体;">和</span>facebook<span style="font-family:宋体;">有相当多的工程师使用这门语言来进行开发，很适合网络编程，不要认为网络编程就是</span>HTML<span style="font-family:宋体;">，网页之类，动态网页还需要处理后台数据库的交互等问题。</span>Python<span style="font-family:宋体;">才</span>16~17<span style="font-family:宋体;">年的历史，所以不会有想</span>C/C++<span style="font-family:宋体;">，</span>Java<span style="font-family:宋体;">那样的缺陷，课程的最后有个大作业，做一个网页服务器，不会像</span>Apache<span style="font-family:宋体;">那么大，但是能够解析</span>XML,HTML<span style="font-family:宋体;">，后台进行处理，生成动态页面。</span>Python<span style="font-family:宋体;">有很多类库，是面向对象的语言，解释执行，可以一边写一边解释执行，还有很多函数库，可以借用</span>Scheme<span style="font-family:宋体;">的思想来做函数式编程，处理网络编程很有用户。</span></p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;">在过去课程最后是</span>C++<span style="font-family:宋体;">高级编程，后来就使用</span>Java<span style="font-family:宋体;">，，但是后来另外一个班教授的内容更深入，所以不交</span>Java<span style="font-family:宋体;">了。后来使用</span>python<span style="font-family:宋体;">，效果不错，课程最后是用</span>python<span style="font-family:宋体;">开发，会领会到其中美妙之处。</span></p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;">最后还会介绍一下其他语言和范式，不过你们在今后</span>15<span style="font-family: 宋体;">年碰到的编程范式，我应该都见过（这个老师好自信啊）</span></p><p><br /><span style="font-family: 宋体;"></span></p><p><span style="font-family:宋体;">最后课程结束，整个过程17分钟左右。下周会发超多讲义，并会让你们做一个C/C++中指针的底层原理的研究报告。Over。<br /></span></p>  </div><img src ="http://www.cppblog.com/deercoder/aggbug/173163.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/deercoder/" target="_blank">deercoder</a> 2012-04-29 18:26 <a href="http://www.cppblog.com/deercoder/archive/2012/04/29/173163.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转载】《Writing clean code》读书笔记</title><link>http://www.cppblog.com/deercoder/archive/2011/05/29/147639.html</link><dc:creator>deercoder</dc:creator><author>deercoder</author><pubDate>Sun, 29 May 2011 12:37:00 GMT</pubDate><guid>http://www.cppblog.com/deercoder/archive/2011/05/29/147639.html</guid><wfw:comment>http://www.cppblog.com/deercoder/comments/147639.html</wfw:comment><comments>http://www.cppblog.com/deercoder/archive/2011/05/29/147639.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/deercoder/comments/commentRss/147639.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/deercoder/services/trackbacks/147639.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 《Writing clean code》读书笔记&nbsp;&nbsp;<a href='http://www.cppblog.com/deercoder/archive/2011/05/29/147639.html'>阅读全文</a><img src ="http://www.cppblog.com/deercoder/aggbug/147639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/deercoder/" target="_blank">deercoder</a> 2011-05-29 20:37 <a href="http://www.cppblog.com/deercoder/archive/2011/05/29/147639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>算法导论评</title><link>http://www.cppblog.com/deercoder/archive/2010/05/29/116656.html</link><dc:creator>deercoder</dc:creator><author>deercoder</author><pubDate>Fri, 28 May 2010 17:23:00 GMT</pubDate><guid>http://www.cppblog.com/deercoder/archive/2010/05/29/116656.html</guid><wfw:comment>http://www.cppblog.com/deercoder/comments/116656.html</wfw:comment><comments>http://www.cppblog.com/deercoder/archive/2010/05/29/116656.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/deercoder/comments/commentRss/116656.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/deercoder/services/trackbacks/116656.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt;">　我对《算法导论 CLRS》的态度一直是有所保留的。虽然早在国内的时候，这本书一直被推崇为经典。但<br><br>我那时就觉得它对算法的描述不好。一段费解的伪码，加上一大段费口舌的解释。我觉得本可以做得更好。<br><br>　　后来知道，这是典型的美国本科生用书，美国的本科教材，大抵很罗嗦，都是厚重的大部头书。教授们<br><br>生怕稍有简略，学生们就不懂；而美国的小本们，也傻呵呵的认为书头越重，自己越了不起。<br><br>　　这书中的大段解释，也确是一番好意，就怕哪个不懂。可要真是老老实实的读下去，分散注意要超过传<br><br>达信息。<br><br>　　这本书我读的最快乐的部分，就是每章的chapter notes。也就是在一章的末尾，介绍这一章提到的各<br><br>种内容是何时、被谁、怎样引入计算机科学的。不看这部分，总觉得学的就是书上的死学问。而这些引用出<br><br>处却为我们理清了算法研究的历史脉络，各个经典结果的师承关系。读这些为我带来了巨大的乐趣。也建议<br><br>读此书的人千万不要放过这一部分，这些引用的结果就是算法研究的里程碑。<br><br>　　对于算法的伪码描述，倒不必太仔细了。不能指望在算法课上学习编程，算法本来就是很纯粹的数学对<br><br>象，它的设计思想完全依托于背后的数学结构，它运作的机制以及它的美，也都来自它的数学，可是书上那<br><br>些模仿C和Pascal的语句，让算法的数学之美沦为一段机械代码。读者辛苦的把自己的思维变成机器，读懂<br><br>了这些代码，但并不会直接带来对算法本身的领悟。就像一个人懂得了打牌的游戏规则，但并不意味着他就<br><br>会打牌了，因为他可能依旧不通晓牌理。对算法的学习也要从问题本身的数学结构入手，理解解决此种结构<br><br>问题的算法它的设计思想，掌握分析具有各种结构特征的算法的数学工具，学习怎样发现问题的结构并从中<br><br>推出问题的下界（lower bound）。这些才是学习算法的根本。<br>（ps评点：现在才深有感触，以前总是纠结的看它那个伪代码，后来才想到，只要理解了思想，自己能够写<br><br>出来就NB了，何必管它如何实现的呢，因为本来算法就是一个思想，如何变通，并自己运用才是最重要的<br><br>！所以，根本不能记忆这些代码，而要自己理解思想，至于实现，有N多种可能，也许今天自己写了这样的<br><br>，到明天就是那样的了）<br><br>　　《算法导论》的最大成就，也就在于它的选材。它筛选出来的结果，每一个都当之无愧的算是计算机科<br><br>学的根基或里程碑。在所有的算法教材中，这一点《算法导论》被公认是作的最好的。结构也组织的合理。<br><br>尽管它的讲解，对这些经典结果的呈现，都不是我最满意的方式。但明珠纵然暗投也终究是明珠，《算法导<br><br>论》覆盖的内容，可作为算法最好的教学大纲，是算法课的原型。这是它不容抹煞的历史地位。<br><br>=================================================================================================================================<br>我读算法导论的目标：<br>　　书上的内容全部看懂（附录除外，已经为这些基础知识专门看了一大厚本的《离<br>　　散数学》，所以只看了几道从前没思考过的题，），习题(excersice)和每章末的<br>　　思考题(problem)全部尝试独立完成，即使不能做出，也一定要从网上找到答案。<br><br>　　实际完成的内容：<br>　　书上内容全部看完且看懂（当然看了很长时间，不免有些内容忘记了）。习题和<br>　　思考题基本全部完成，所有没有完成的题目(自己不会做，并且也没找到答案)一<br>　　共35个。算来平均每章一个。看着写满两大本的题解，心里还是很有成就感的<br>　　（尽管我女朋友说：&#8220;你写这些，有什么用啊？！&#8221;）<br><br>　　这一年零8八个月的时间我都干了什么？<br>　　一口气读《算法导论》到第30章，前26章的题基本做了，觉得实在有点累，调剂<br>　　一下，转而攻读MIT的另一本名著《计算机程序的构造和解释——Structure and<br>　　Interpretation of Computer Programs》，几个月后重披战甲，从27章开始看<br>　　完了全部的《算法导论》，并将最后9章题目做完。由于看得细，而且还有其他<br>　　事情要做，前后拖了20个月，总算看完了，真的很累。<br><br>　　我的书评：<br>　　踏踏实实看完书，仔仔细细的思考每一道题，即使不会做，至少读过，思考过，<br>　　可能未来的某一时刻你的脑海里突然就有了灵感。<br><br>　　为什么我的书评只有一句话（而且似乎也没有评价）？<br>　　说真的，我作为一个小小的学生，真的没有资格评判人家大牛用十几年汉水和智<br>　　慧来增删，校对，实践，研究得来的一本著作。如果有什么不好的印象，那只能<br>　　说是没到那个境界，理解不了，不能吃不着葡萄说葡萄酸，反而批评人家。<br><br>　　有心人从我上面的一大段废话和短短的一句似是非是的书评，也绝对可以看出来<br>　　这本书的卓越之处：<br><br>　　(1)深入浅出：能耗费一个人20个月的时间去看，可见这本书绝非一朝一夕的快<br>　　餐，要知道即使是世界上最一流的大学，利用一年的课程去讲算法课，也只能挑<br>　　本书的部分章节去讲而不能完全覆盖。既然题目能做出绝大多数，证明只要你用<br>　　心，这本书的难度完全是可以承受的，决不会让你有无从下手的感觉。<br><br>　　(2)情节生动有趣：对，没错，我就是要像形容小说一样形容这本书，不然我绝<br>　　不可能坚持看这么久。但是比小说有趣的是，故事里人物的命运是作者安排的，<br>　　你或喜或悲总是被人牵着走，而这本书却是让你作主角去打开一扇又一扇通往未<br>　　知的大门，解开一道又一道的难题。<br><br>　　(3)既连贯又独立：不同章节既独立完备又内在高度相关。即使你专注于某一个领<br>　　域，我认为这本书给你的介绍也是很充实的，而且可以直接看，这就是为什么我<br>　　中间放下一段时间后又可以从新拿起来读而不用重新来过。当然个章节间内有一<br>　　个东西是一脉相承的，那就是：（程序运行的理论）效率。从头到尾看得到的绝<br>　　对比单独对待每一章得到的价值的总和大得多。<br><br>　　(4, 5, 6, ...)余音绕梁：老子说：三生万物。我只说三条，万就留待你自己去<br>　　挖掘，也留待你从书中找到精彩的答案。<br><br>　　祝读此文者也能享受一趟与《算法导论》的精彩的马拉松之旅。 <br><br>=============================================================================================================================<br><br><br>
<br> </span><img src ="http://www.cppblog.com/deercoder/aggbug/116656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/deercoder/" target="_blank">deercoder</a> 2010-05-29 01:23 <a href="http://www.cppblog.com/deercoder/archive/2010/05/29/116656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>