-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
508 lines (450 loc) · 32.7 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><![CDATA[huzheyi's blog]]></title>
<subtitle><![CDATA[Blog Beauty of My Life]]></subtitle>
<link href="/atom.xml" rel="self"/>
<link href="http://huzheyi.gq/"/>
<updated>2015-03-28T18:49:17.128Z</updated>
<id>http://huzheyi.gq/</id>
<author>
<name><![CDATA[huzheyi]]></name>
<email><![CDATA[huzheyi@msn.com]]></email>
</author>
<generator uri="http://zespia.tw/hexo/">Hexo</generator>
<entry>
<title><![CDATA[[转]批量卸载Windows更新]]></title>
<link href="http://huzheyi.gq/2015/03/28/-%E8%BD%AC-%E6%89%B9%E9%87%8F%E5%8D%B8%E8%BD%BDWindows%E6%9B%B4%E6%96%B0/"/>
<id>http://huzheyi.gq/2015/03/28/-转-批量卸载Windows更新/</id>
<published>2015-03-28T12:03:45.000Z</published>
<updated>2015-03-28T18:48:56.000Z</updated>
<content type="html"><![CDATA[<p>最近发现虚拟机里的Windows 8.1体积日益增大,而我除了在里面写写PPT和DOC基本不干别的事儿。估计是系统自动更新安装了一大堆的补丁。在系统里补丁只能一个一个卸载,于是就Google到以下这段脚本,用来批量卸载补丁。感谢原作者。<a id="more"></a></p>
<hr>
<p>直接贴出脚本:</p>
<pre><code><span class="variable">$KBID</span> = <span class="string">"KB958488"</span>
<span class="variable">$KBID1</span> = <span class="string">"KB976902"</span>
cls
function Remove-Update {
<span class="variable">$HotFixes</span> = Get-HotFix
[<span class="keyword">int</span>]<span class="variable">$count</span> = <span class="number">0</span>;
<span class="keyword">foreach</span> (<span class="variable">$HotFix</span> in <span class="variable">$HotFixes</span>)
{
<span class="variable">$count</span> = <span class="variable">$count</span> + <span class="number">1</span>
Write-Host <span class="variable">$count</span> / <span class="variable">$HotFixes</span>.Count
<span class="keyword">if</span> ((<span class="variable">$KBID</span> -<span class="keyword">ne</span> <span class="variable">$HotFix</span>.HotfixId) -<span class="keyword">and</span> (<span class="variable">$KBID1</span> -<span class="keyword">ne</span> <span class="variable">$HotFix</span>.HotfixId))
{
<span class="string">"Inside first if"</span>
<span class="variable">$KBID</span> = <span class="variable">$HotFix</span>.HotfixId.Replace(<span class="string">"KB"</span>, <span class="string">""</span>)
<span class="variable">$RemovalCommand</span> = <span class="string">"wusa.exe /uninstall /kb:<span class="variable">$KBID</span> /quiet /norestart"</span>
Write-Host <span class="string">"Removing <span class="variable">$KBID</span> from the target."</span>
Invoke-Expression <span class="variable">$RemovalCommand</span>
}
<span class="keyword">if</span> (<span class="variable">$KBID</span> -match <span class="string">"All"</span>)
{
<span class="variable">$KBNumber</span> = <span class="variable">$HotFix</span>.HotfixId.Replace(<span class="string">"KB"</span>, <span class="string">""</span>)
<span class="variable">$RemovalCommand</span> = <span class="string">"wusa.exe /uninstall /kb:<span class="variable">$KBNumber</span> /quiet /norestart"</span>
Write-Host <span class="string">"Removing update <span class="variable">$KBNumber</span> from the target."</span>
Invoke-Expression <span class="variable">$RemovalCommand</span>
}
<span class="keyword">if</span> (<span class="variable">$KBID</span> -match <span class="string">"Security"</span>)
{
<span class="keyword">if</span> (<span class="variable">$HotFix</span>.Description -match <span class="string">"Security"</span>)
{
<span class="variable">$KBSecurity</span> = <span class="variable">$HotFix</span>.HotfixId.Replace(<span class="string">"KB"</span>, <span class="string">""</span>)
<span class="variable">$RemovalCommand</span> = <span class="string">"wusa.exe /uninstall /kb:<span class="variable">$KBSecurity</span> /quiet /norestart"</span>
Write-Host <span class="string">"Removing Security Update <span class="variable">$KBSecurity</span> from the target."</span>
Invoke-Expression <span class="variable">$RemovalCommand</span>
}
}
<span class="keyword">while</span> (<span class="variable">@(</span>Get-Process wusa -ErrorAction SilentlyContinue).Count -<span class="keyword">ne</span> <span class="number">0</span>)
{
Start-Sleep <span class="number">3</span>
Write-Host <span class="string">"Waiting for update removal to finish ..."</span>
}
}
}
Remove-Update
</code></pre><p>这段代码只需另存为ps1文件以管理员方式在PowerShell里执行即可。<br>不过执行前还需要注意修改以下PowerShell的策略,即输入如下命令:</p>
<pre><code><span class="keyword">Set</span>-ExecutionPolicy <span class="comment">RemoteSigned </span>
</code></pre><hr>
<p>补充知识:</p>
<blockquote>
<h3 id="Windows_PowerShell_执行策略如下:">Windows PowerShell 执行策略如下:</h3>
<p><strong>Restricted</strong></p>
<ul>
<li>默认执行策略。</li>
<li>允许单个命令运行,但不能运行脚本。</li>
<li>阻止所有脚本文件的运行,包括格式和配置文件 (.ps1xml)、模块脚本文件 (.psm1)和 Windows PowerShell 配置文件 (.ps1)。</li>
</ul>
<p><strong>AllSigned</strong></p>
<ul>
<li>可以运行脚本。</li>
<li>要求所有脚本和配置文件由可信发布者签名,包括在本地计算机上编写的脚本。</li>
<li>在运行来自尚未分类为可信或不可信发布者的脚本之前进行提示。</li>
<li>运行来自 Internet 以外的源的未签名脚本及已签名但有恶意的脚本存在风险。</li>
</ul>
<p><strong>RemoteSigned</strong></p>
<ul>
<li>可以运行脚本。</li>
<li>要求可信发布者对从 Internet(包括电子邮件和即时消息程序)下载的脚本和配置文件进行数字签名。</li>
<li>不要求对已经运行和已在本地计算机编写的脚本(不是从 Internet 下载的脚本)进行数字签名。</li>
<li>面临运行已签名但有恶意的脚本带来的风险。</li>
</ul>
<p><strong>Unrestricted</strong></p>
<ul>
<li>可以运行未签名脚本。(面临运行恶意脚本所带来的风险。)</li>
<li>在运行从 Internet 下载的脚本和配置文件之前警告用户。</li>
</ul>
<p><strong>Bypass</strong></p>
<ul>
<li>不阻止任何执行项,不显示警告和提示。</li>
<li>此执行策略设计用于两种配置:一种是 Windows PowerShell 脚本内置于一个较大的应用程序中;一种是 Windows PowerShell 成为拥有自身安全模型的某个程序的基础。</li>
</ul>
<p><strong>Undefined</strong></p>
<ul>
<li>当前作用域中未设置执行策略。</li>
<li>如果所有作用域中的执行策略为 Undefined,则有效执行策略为 Restricted,该策略是默认执行策略。</li>
</ul>
<p>注意:在不对通用命名约定 (UNC) 路径与 Internet 路径加以区分的系统上,可能无法使用RemoteSigned 执行策略来允许运行由 UNC 路径标识的脚本。</p>
</blockquote>
]]></content>
<summary type="html">
<![CDATA[<p>最近发现虚拟机里的Windows 8.1体积日益增大,而我除了在里面写写PPT和DOC基本不干别的事儿。估计是系统自动更新安装了一大堆的补丁。在系统里补丁只能一个一个卸载,于是就Google到以下这段脚本,用来批量卸载补丁。感谢原作者。]]>
</summary>
<category term="Windows" scheme="http://huzheyi.gq/tags/Windows/"/>
<category term="技术相关" scheme="http://huzheyi.gq/categories/%E6%8A%80%E6%9C%AF%E7%9B%B8%E5%85%B3/"/>
</entry>
<entry>
<title><![CDATA[关于开源音乐的想法]]></title>
<link href="http://huzheyi.gq/2015/02/12/%E5%85%B3%E4%BA%8E%E5%BC%80%E6%BA%90%E9%9F%B3%E4%B9%90%E7%9A%84%E6%83%B3%E6%B3%95/"/>
<id>http://huzheyi.gq/2015/02/12/关于开源音乐的想法/</id>
<published>2015-02-12T02:45:03.000Z</published>
<updated>2015-02-12T04:25:17.000Z</updated>
<content type="html"><![CDATA[<h1 id="背景">背景</h1>
<p>最近,互联网行业在中国是如此的火(pao)爆(mo),以至于像我这样的半IT人士,也希望琢磨一些idea能在这波浪潮中玩儿一把。很多人提及的所谓“互联网思维”,或许我还没能很好的理解,但我想通过IT技术让传统行业发生一些改变或者革新,其实是完全可以尝试的。<a id="more"></a>尤其昨天看到V2EX上的一个帖子,有个哥们儿开发了一款白酒,一冲动就下单了两瓶,冲动过后也便催生了一个想法,Google之,似乎还是空白。</p>
<p>不多卖关子,标题写的“开源音乐”,这正是我的想法。本人喜欢音乐,在声乐方面略有研究,曾参与过世界知名业余合唱团体,也曾尝试过创作。因而将“<strong>音乐</strong>”、“<strong>合作</strong>”、“<strong>网络</strong>”这三个元素综合在一起,我想做的正是音乐界的Github。</p>
<p>顺便吐槽,现在的华语音乐界,尤其通俗圈,歌手一大堆,好歌手太少,好作品更少。</p>
<h1 id="市场需求与定位">市场需求与定位</h1>
<p>首先,这样一款产品肯定不是给那些专业的音乐创作者或者制作人等使用的,当然如果他们能参与进来更好。最近几年的音乐类选秀节目越来越火,也使得大众对音乐的鉴赏力有了一定程度的提高,也有更多的人希望将自己的想法通过音乐的形式来展现,可无奈如果没有较为系统的学习过程,创作一首作品的难度还是很高的。从一段即兴的小旋律,最后变成完整的一首作品,到能够将作品演绎出来,中间环节非常多。那么通过这款产品,让更多的人来参与到一首作品的创作过程(包括制作过程),我想是非常有意义的。</p>
<h1 id="产品功能">产品功能</h1>
<p>暂不考虑技术可行性,目前初步设想的主要功能分一下两个部分来说。</p>
<h2 id="音乐处理功能">音乐处理功能</h2>
<ol>
<li>前端在线记谱:通过键盘鼠标输入、MIDI设备输入、甚至哼唱识别的方式,实现在线记谱</li>
<li>前端在线录音:人声或特殊声音元素直接通过Mic录音</li>
<li>前端录音上传:支持录音直接上传插入到音轨中编辑</li>
<li>多音效支持:常见的钢琴、管乐、弦乐、鼓、吉他等</li>
<li>前端多轨编辑</li>
<li>简单效果:简单的音量处理、均衡处理、包络处理、效果器等</li>
<li>前端监听试听:录音过程可监听,单音轨多音轨试听</li>
<li>后端混缩:服务器端完成混缩导出</li>
</ol>
<p>总体说来,就是把类似Adobe Audition、Nuendo、Logic Pro这类工具的简单功能放到网页里去实现,涉及到计算的环节全部丢到服务器后端处理。</p>
<h2 id="版本管理功能">版本管理功能</h2>
<p>类似Github的实现方式,只是代码库的内容为MIDI文件、录音文件、其他信息记录文件等。支持共同创作、Pull、Fork、Issue等类似功能。</p>
<h1 id="运营模式">运营模式</h1>
<p>开源社区,类似Github的模式。</p>
<h1 id="盈利点">盈利点</h1>
<p>其实我一直不太清楚Github除了私有代码库收费、存储扩容收费以及广告盈利还有什么别的盈利点。那么就这个产品,目前能想到的盈利点有:</p>
<ol>
<li>高级编辑功能、效果器等收费</li>
<li>存储扩容收费</li>
<li>商用收费:平台与创作者分成</li>
</ol>
<h1 id="问题与困惑">问题与困惑</h1>
<p>起初一个灵光闪现的小idea,洋洋洒洒写下来,发现其实问题还是很多的,且不说技术实现的难度,可操作性和庞大的前后端其实远超Github了。但既然写下来了,就分享出来给大家,欢迎吐槽、拍砖。自己已经给自己拍了好几块砖了:</p>
<ol>
<li>Github管理的大量的是文本文件,同录音文件不是一个量级</li>
<li>软音源、软效果器成本?</li>
<li>大量的前端功能,是否能精简?</li>
<li>Github只负责版本管理,而这个产品的后端其实已经实现“编译”了</li>
<li>类似GPL协议的问题?</li>
<li>音乐与代码不同,代码很客观,而音乐相对主观,如何共同维护一个“项目”?</li>
<li>…………</li>
</ol>
<p>不过,设想一个场景,我写了一首民谣作品,你Fork过去改编成摇滚,他Fork过去改编成爵士,她Fork过去改编成中国风,最后成了电影主题曲……也是会醉的……</p>
]]></content>
<summary type="html">
<![CDATA[<h1 id="背景">背景</h1>
<p>最近,互联网行业在中国是如此的火(pao)爆(mo),以至于像我这样的半IT人士,也希望琢磨一些idea能在这波浪潮中玩儿一把。很多人提及的所谓“互联网思维”,或许我还没能很好的理解,但我想通过IT技术让传统行业发生一些改变或者革新,其实是完全可以尝试的。]]>
</summary>
<category term="音乐" scheme="http://huzheyi.gq/tags/%E9%9F%B3%E4%B9%90/"/>
<category term="开源" scheme="http://huzheyi.gq/tags/%E5%BC%80%E6%BA%90/"/>
<category term="创意想法" scheme="http://huzheyi.gq/categories/%E5%88%9B%E6%84%8F%E6%83%B3%E6%B3%95/"/>
</entry>
<entry>
<title><![CDATA[优雅地使用Markdown书写]]></title>
<link href="http://huzheyi.gq/2015/01/31/%E4%BC%98%E9%9B%85%E5%9C%B0%E4%BD%BF%E7%94%A8Markdown%E4%B9%A6%E5%86%99/"/>
<id>http://huzheyi.gq/2015/01/31/优雅地使用Markdown书写/</id>
<published>2015-01-31T14:13:58.000Z</published>
<updated>2015-01-31T15:34:30.000Z</updated>
<content type="html"><![CDATA[<p>Markdown是一种轻量级标记语言,创始人为John Gruber。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML或者HTML文档”。<a id="more"></a>当你熟悉了用这种语言书写后,你会发现,再也不用耗费大量时间去调整文档格式,令你专注于书写。完成文档的同时,也完成了排版,多么的优雅!现在就让我们一起了解一下Markdown的语法。</p>
<hr>
<h1 id="区块元素">区块元素</h1>
<h2 id="标题">标题</h2>
<p>Markdown支持两种标题语法,第一种可以支持两阶的标题,如下所示:</p>
<pre><code><span class="header">标题1
=======</span>
<span class="header">标题2
-------</span>
</code></pre><p>第二种,可以支持最多六阶的标题:</p>
<pre><code><span class="preprocessor"># 标题1</span>
<span class="preprocessor">## 标题2</span>
<span class="preprocessor">### 标题3</span>
……
<span class="preprocessor">###### 标题6</span>
</code></pre><h2 id="区块引用">区块引用</h2>
<p>区块引用使用<code>></code>来标记:</p>
<pre><code><span class="input"><span class="prompt">> 这里是引用文字。。。省略。。。
></span> > 二级引用。。。</span>
<span class="input"><span class="prompt">> ></span> > 三级引用。。。</span>
</code></pre><p>引用可以嵌套,同时引用区块内还可以使用其他的Markdown语法,包括标题、列表、代码等。</p>
<h2 id="列表">列表</h2>
<p>Markdown支持有序列表和无序列表。<br>无序列表使用<code>*</code>、<code>+</code>、<code>-</code>三种符号作为标记:</p>
<pre><code><span class="bullet">* </span>第一点
<span class="bullet">* </span>第二点
<span class="bullet">* </span>第三点
</code></pre><p>有序列表直接使用数字加半角句点标记,而事实上,你并不需要自己排列序列,只要使用任意数字加句点都能生成正确的列表:</p>
<pre><code><span class="bullet">1. </span>第一点
<span class="bullet">2. </span>第二点
<span class="bullet">3. </span>第三点
</code></pre><p>如果列表项目需要包含多个段落,那么每个项目下的段落必须缩进4个空格或者1个制表符:</p>
<pre><code><span class="bullet">1. </span>这是项目包含两个段落。
<span class="code"> 就像这样。</span>
<span class="bullet">2. </span>项目2。
</code></pre><p>如果列表项目内需要放进引用,那么<code>></code>就需要缩进。如果药房代码区块,该区块就需要缩进<strong>两次</strong>,也就是8个空格或者2个制表符:</p>
<pre><code><span class="bullet">1. </span>这是项目1
<span class="code"> >项目1包含的引用</span>
<span class="code"> <项目1包含的代码></span>
<span class="bullet">2. </span>项目2。
</code></pre><p>当然,项目列表可能会不小心产生,这时候需要在数字和点中间加上<code>\</code>反斜杠转义。</p>
<h1 id="代码区块">代码区块</h1>
<p>Markdown中建立代码区块很简单,只要在段落开头缩进4个空格或者1个制表符就可以了。</p>
<pre><code>段落1
<span class="tag"><<span class="title">区块代码</span>></span>
</code></pre><p>一个代码区块会一直持续到没有缩进的行。同时,代码区块中的Markdown语法不会被转换。</p>
<h2 id="分隔线">分隔线</h2>
<p>分隔线的写法十分随意,可以用三个以上的星号、减号、下划线等。</p>
<pre><code><span class="keyword">*</span><span class="keyword">*</span><span class="keyword">*</span><span class="keyword">*</span><span class="keyword">*</span><span class="keyword">*</span><span class="keyword">*</span>
<span class="keyword">*</span><span class="keyword">*</span><span class="keyword">*</span>
- - - - - - -
_______
</code></pre><h1 id="区段元素">区段元素</h1>
<h2 id="链接">链接</h2>
<p>Markdown支持两种形式的链接语法:行内式和参考式。不管是哪一种,链接文字都是用方括号<code>[]</code>来标记。<br>要建立一个行内式链接,只要在方括号后面紧接着圆括号并插入网址链接即可,如果还想加上链接的title文字,只要在网址后面用双引号把title文字包起来即可,例如:</p>
<pre><code>这是一个[<span class="link_label">链接</span>](<span class="link_url">http://huzheyi.gq "huzheyi's blog"</span>).
</code></pre><p>参考式的链接则是在链接文字的方括号后面再接上一个方括号,里面填入用以辨识链接的标记,然后在文档的任意地方,定义这个标记:</p>
<pre><code>这是一个[<span class="link_label">链接</span>][<span class="link_reference">id</span>].
[<span class="link_reference">id</span>]:<span class="link_url"> http://huzheyi.gq "huzheyi's blog"</span>
</code></pre><p>另外,Markdown支持以比较简短的自动链接形式来处理网址和邮箱,只要用尖括号包起来,Markdown就会将他们转换成链接:</p>
<pre><code><<span class="symbol">http:</span>/<span class="regexp">/huzheyi.gq/</span>>
<huzheyi<span class="variable">@huzheyi</span>.gq>
</code></pre><h2 id="强调">强调</h2>
<p>Markdown使用星号和下划线来标记强调的字符。</p>
<pre><code><span class="keyword">*</span> 斜体强调<span class="keyword">*</span>
_ 斜体强调_
<span class="keyword">*</span><span class="keyword">*</span> 粗体强调<span class="keyword">*</span><span class="keyword">*</span>
__ 粗体强调__
</code></pre><h2 id="代码">代码</h2>
<p>如果要标记一小段的行内代码,只需要用反引号(<code>` </code>)把它包起来即可:</p>
<pre><code>这里有一行代码要插入`<span class="built_in">printf</span>()`
</code></pre><p>如果代码中本身就有<code>` </code>符号,那么就需要用多个反引号来开始和结束代码区段:</p>
<pre><code><span class="escape">``</span>这是一行代码,其中包含了一个<span class="escape">`符</span>号<span class="escape">``</span>
</code></pre><h2 id="图片">图片</h2>
<p>Markdown使用和链接很相似的语法来标记图片,同样也允许两种样式:行内式和参考式。</p>
<p>行内式的语法如下:</p>
<pre><code>![<span class="link_label">替代文字</span>](<span class="link_url">/path/to/img.png</span>)
![<span class="link_label">替代文字</span>](<span class="link_url">/path/to/img.png "title文字"</span>)
</code></pre><p>参考式的语法如下:</p>
<pre><code>![<span class="link_label">替代文字</span>][<span class="link_reference">id</span>]
[<span class="link_reference">id</span>]:<span class="link_url"> /path/to/img.png "title文字"</span>
</code></pre><p>不过,目前为止Markdown还没有办法指定图片的宽高。</p>
<h1 id="其他">其他</h1>
<h2 id="反斜杠">反斜杠</h2>
<p>反斜杠即为转义符,可以利用它来插入一些在语法中有其他意义的符号,例如:</p>
<pre><code>\ 反斜杠
` 反引号
<span class="bullet">* </span>星号
_ 下划线
{} 花括号
[] 方括号
() 圆括号
<span class="header"># 井号</span>
<span class="bullet">+ </span>加号
<span class="bullet">- </span>减号
. 半角句点
! 感叹号
</code></pre><p>只要在这些符号的前面插入反斜杠<code>\</code>,就可以避免这些字符被当成Markdown语法来翻译了。</p>
<hr>
<p>通过上面的介绍,相信你已经基本了解Markdown语法了,只要加以练习就可以非常熟练的使用了。<br>这里也顺带推荐两个Markdown的应用:</p>
<ul>
<li>Mac下的Markdown编辑器——<a href="http://25.io/mou/" target="_blank" rel="external">Mou</a></li>
<li>使用Markdown写邮件的浏览器插件——<a href="http://markdown-here.com/" target="_blank" rel="external">Markdown Here</a></li>
</ul>
<p>当你使用Markdown语法来编辑文档、书写邮件、发表博客时,你会觉得自己真的太优雅了!</p>
]]></content>
<summary type="html">
<![CDATA[<p>Markdown是一种轻量级标记语言,创始人为John Gruber。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML或者HTML文档”。]]>
</summary>
<category term="Markdown" scheme="http://huzheyi.gq/tags/Markdown/"/>
<category term="技术相关" scheme="http://huzheyi.gq/categories/%E6%8A%80%E6%9C%AF%E7%9B%B8%E5%85%B3/"/>
</entry>
<entry>
<title><![CDATA[在Github上搭建Hexo博客]]></title>
<link href="http://huzheyi.gq/2015/01/28/%E5%9C%A8Github%E4%B8%8A%E6%90%AD%E5%BB%BAHexo%E5%8D%9A%E5%AE%A2/"/>
<id>http://huzheyi.gq/2015/01/28/在Github上搭建Hexo博客/</id>
<published>2015-01-28T06:50:20.000Z</published>
<updated>2015-01-31T15:28:38.000Z</updated>
<content type="html"><![CDATA[<p>搭建一个博客,无非就是要解决这三个问题:空间、域名、程序。那么这篇博文将带领大家逐一解决。<br><a id="more"></a></p>
<hr>
<h1 id="空间">空间</h1>
<p>免费、稳定、高速、无限流量、支持域名绑定,综合下来Github Pages服务无疑是最佳选择,为免费用户提供的300M空间,也足够个人博客使用了。</p>
<h1 id="域名">域名</h1>
<p>现在的顶级域名并不贵,而且各种后缀的个性域名也很多,这里不多阐释,只告诉大家有5个免费顶级域名:.tk, .cf, .ml, .ga, .gq。</p>
<h1 id="程序">程序</h1>
<p>一提到博客程序,就会想到Wordpress、Joomla、Drupal等。这些博客程序多采用动态页面技术开发,提供漂亮的外观与丰富的扩展,使用起来也非常方便。但这次的主角不是他们,而是<a href="http://hexo.io" target="_blank" rel="external">Hexo</a>(<a href="https://github.com/hexojs/hexo" target="_blank" rel="external">Github</a>)!</p>
<h2 id="Hexo的优势">Hexo的优势</h2>
<ol>
<li>静态页面:无需数据库,安全</li>
<li>Node.js支撑:快速生成</li>
<li>Markdown书写:优雅</li>
</ol>
<h2 id="Hexo的部署">Hexo的部署</h2>
<h3 id="创建Github项目">创建Github项目</h3>
<p>Github的注册过程就不表了,注册完之后,创建一个项目,就可以使用Github为我们提供的Github Pages服务。Github Pages服务有两种形态:第一种,针对用户的Pages;第二种,针对项目的Pages。无论选择哪种,都没有问题,区别在于:第一种,需要创建名为<code>用户名.github.io</code>的项目,并在其Master分支下提交页面;第二种,项目名任意,但需要在gh-pages分支下提交页面。</p>
<h3 id="本地安装Hexo">本地安装Hexo</h3>
<p>Hexo由Node.js开发,因而本地需要Node.js环境,Node.js环境的部署就不表了。安装Hexo,仅需要一行命令<code>npm install -g hexo</code>。然后在任何你喜欢的目录下创建一个文件夹,执行<code>hexo init</code>,Hexo就在本地搭建起来了。</p>
<h3 id="Hexo的使用">Hexo的使用</h3>
<p>Hexo的使用,同样非常简洁,只需记住几个命令即可。</p>
<ul>
<li><p>创建文章</p>
<p><code>hexo n "文章名"</code> 或 <code>hexo new "文章名"</code></p>
</li>
<li><p>生成页面</p>
<p><code>hexo g</code> 或 <code>hexo generate</code></p>
</li>
<li><p>部署到Github</p>
<p><code>hexo d</code> 或 <code>hexo deploy</code></p>
</li>
<li><p>启动本地HTTP Server</p>
<p><code>hexo s</code> 或 <code>hexo server</code></p>
</li>
<li><p>清空已生成页面</p>
<p><code>hexo clean</code></p>
</li>
</ul>
<p>其中,对于经常要使用的生成页面然后部署的动作,可以简写为:</p>
<p><code>hexo d -g</code></p>
<h3 id="安装主题">安装主题</h3>
<p>Hexo的默认主题非常简洁,对移动端的支持也很好,如果你觉得不好看,可以自己来修改。当然也有非常多的用户已将自己开发的主题共享出来,供大家使用。目前来看,应用较多的是一款名为<a href="https://github.com/A-limon/pacman" target="_blank" rel="external">Pacman</a>的主题。</p>
<p>安装同样很简单,在Hexo的目录下,执行<code>git clone https://github.com/A-limon/pacman.git</code>,然后在修改Hexo目录下的<code>_config.yml</code>文件中的<code>theme:</code>字段为<code>theme: pacman</code>,即可启用主题。</p>
<p>主题预置了诸如多说、JiaThis、Google CSE、Google Analytics等功能,可以通过修改Hexo目录下<code>/themes/pacman/_config.yml</code>文件来启用或关闭,更多参数的功能也可以通过作者的主页发现。</p>
<h3 id="写作">写作</h3>
<p>在执行完<code>hexo n</code>的命令后,便会在<code>./source/_post/</code>目录下生成一个<code>.md</code>的文件,只要打开这个文件,便可以使用Markdown语法,优雅的写作了。当然在这个文件的头部,还有一些可以定义的属性,比较常用到的就是<code>tags</code>标签和<code>categories</code>标签了,顾名思义,就是文章的关键字和分类。多个标签或多级分类,采用如下方式:</p>
<pre><code><span class="attribute">categories</span>: <span class="string">[aa, bb] //后者为前者的子目录</span>
<span class="vim"><span class="keyword">tag</span><span class="variable">s:</span> [<span class="keyword">cc</span>, dd]</span>
</code></pre><p>或者:</p>
<pre><code>categories: //后者为前者的子目录
-<span class="ruby"> aa
</span>-<span class="ruby"> bb
</span>
tags:
-<span class="ruby"> cc
</span>-<span class="ruby"> dd</span>
</code></pre><h3 id="域名绑定">域名绑定</h3>
<p>Github Pages服务提供的域名绑定的功能,只需要在项目根目录下创建一个名为<code>CNAME</code>,内容为你的域名的文件,就可以了。当然别忘了在你的DNS中添加A记录,指向<code>192.30.252.153</code>或<code>192.30.252.154</code>。</p>
<hr>
<p>至此,便可以优雅的开始你的博客之路了。如何“优雅”,请期待下一篇关于优雅的Markdown语法介绍!</p>
]]></content>
<summary type="html">
<![CDATA[<p>搭建一个博客,无非就是要解决这三个问题:空间、域名、程序。那么这篇博文将带领大家逐一解决。<br>]]>
</summary>
<category term="Hexo" scheme="http://huzheyi.gq/tags/Hexo/"/>
<category term="博客" scheme="http://huzheyi.gq/tags/%E5%8D%9A%E5%AE%A2/"/>
<category term="技术相关" scheme="http://huzheyi.gq/categories/%E6%8A%80%E6%9C%AF%E7%9B%B8%E5%85%B3/"/>
</entry>
<entry>
<title><![CDATA[Homebrew - OS X不可或缺的软件包管理工具]]></title>
<link href="http://huzheyi.gq/2015/01/25/Homebrew-OS-X%E4%B8%8D%E5%8F%AF%E6%88%96%E7%BC%BA%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7/"/>
<id>http://huzheyi.gq/2015/01/25/Homebrew-OS-X不可或缺的软件包管理工具/</id>
<published>2015-01-24T16:42:06.000Z</published>
<updated>2015-01-26T08:29:45.000Z</updated>
<content type="html"><![CDATA[<p>时下,Linux类操作系统都有软件包管理工具,例如:RHEL/Centos的yum,Debian/Ubuntu的apt,Arch的pacman等,用来安装、卸载、更新软件包十分方便。如今,<a id="more"></a>Mac OS X下除了官方的App Store,也拥有了一个强大的软件包管理工具——<a href="http://brew.sh" target="_blank" rel="external">Homebrew</a>(<a href="https://github.com/Homebrew/homebrew" target="_blank" rel="external">Github</a>)。</p>
<hr>
<h2 id="Homebrew的安装">Homebrew的安装</h2>
<p>Homebrew的安装十分方便,仅需在终端窗口中输入一行命令:</p>
<pre><code>ruby <span class="operator">-e</span> <span class="string">"<span class="variable">$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)</span>"</span>
</code></pre><h2 id="Homebrew的使用">Homebrew的使用</h2>
<p>Homebrew的原则是“No Sudo”,即再也不需要Sudo来安装删除软件包了。下面是Homebrew的用法,十分简单(以wget为例):</p>
<ul>
<li><p>查找软件包</p>
<p> <code>brew search wget</code></p>
</li>
<li><p>安装软件包</p>
<p> <code>brew install wget</code></p>
</li>
<li><p>列出已安装的软件包</p>
<p> <code>brew list</code></p>
</li>
<li><p>删除软件包</p>
<p> <code>brew remove wget</code></p>
</li>
<li><p>查看软件包信息</p>
<p> <code>brew info wget</code></p>
</li>
<li><p>列出软件包的依赖关系</p>
<p> <code>brew deps wget</code></p>
</li>
<li><p>列出过时的软件包</p>
<p> <code>brew outdated</code></p>
</li>
<li><p>更新过时的指定软件包</p>
<p> <code>brew upgrade wget</code></p>
</li>
<li><p>更新过时的全部软件包</p>
<p> <code>brew upgrade</code></p>
</li>
</ul>
<h2 id="Homebrew的更新">Homebrew的更新</h2>
<p>Homebrew的更新,同样十分方便:</p>
<p><code>brew update</code></p>
<h2 id="自定义软件包管理">自定义软件包管理</h2>
<p>如果需要的软件包不能再Homebrew找到,同时又想通过Homebrew来方便的管理,那么久可以使用Homebrew来自定义软件包。</p>
<ol>
<li><p>找到软件源码地址</p>
<p> <code>http://xxx.com/source-1.0.tgz</code></p>
</li>
<li><p>建立自己的formula</p>
<p> <code>brew create http://xxx.com/source-1.0.tgz</code><br> Homebrew自动建立的formula已包含<code>configure</code>和<code>make install</code>,一般不需要进行修改,退出编辑安装即可。</p>
</li>
<li><p>如果有需要编辑formula</p>
<p> <code>brew edit source</code></p>
</li>
<li><p>安装自定义软件包</p>
<p> <code>brew install souce</code></p>
</li>
</ol>
]]></content>
<summary type="html">
<![CDATA[<p>时下,Linux类操作系统都有软件包管理工具,例如:RHEL/Centos的yum,Debian/Ubuntu的apt,Arch的pacman等,用来安装、卸载、更新软件包十分方便。如今,]]>
</summary>
<category term="包管理" scheme="http://huzheyi.gq/tags/%E5%8C%85%E7%AE%A1%E7%90%86/"/>
<category term="OS X" scheme="http://huzheyi.gq/tags/OS-X/"/>
<category term="Homebrew" scheme="http://huzheyi.gq/tags/Homebrew/"/>
<category term="技术相关" scheme="http://huzheyi.gq/categories/%E6%8A%80%E6%9C%AF%E7%9B%B8%E5%85%B3/"/>
</entry>
<entry>
<title><![CDATA[First Post]]></title>
<link href="http://huzheyi.gq/2015/01/24/First-Post/"/>
<id>http://huzheyi.gq/2015/01/24/First-Post/</id>
<published>2015-01-23T16:39:30.000Z</published>
<updated>2015-01-24T14:18:41.000Z</updated>
<content type="html"><![CDATA[<p><strong>Hello World !</strong><br><a id="more"></a><br>感谢伟大的<a href="https://pages.github.com" target="_blank" rel="external">Github Pages</a> !</p>
<p>感谢伟大的<a href="http://hexo.io" target="_blank" rel="external">Hexo</a> !</p>
<p>感谢伟大的<a href="https://github.com/A-limon/pacman" target="_blank" rel="external">Pacman</a> !</p>
<p>在这里开始我的博客,记录点滴。</p>
]]></content>
<summary type="html">
<![CDATA[<p><strong>Hello World !</strong><br>]]>
</summary>
</entry>
</feed>