diff --git a/404.html b/404.html new file mode 100644 index 000000000..edb66b0fd --- /dev/null +++ b/404.html @@ -0,0 +1,7 @@ +404 Page not found +

404 错误

页面不存在

+ \ No newline at end of file diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 000000000..ab548ec7a --- /dev/null +++ b/archives/index.html @@ -0,0 +1,7 @@ +Archives +

Categories

2016

2010

2009

2008

2007

+ \ No newline at end of file diff --git a/categories/develop/index.html b/categories/develop/index.html new file mode 100644 index 000000000..b074f2c29 --- /dev/null +++ b/categories/develop/index.html @@ -0,0 +1,32 @@ +Category: develop - Learning & Writing! +

Categories

develop

+ \ No newline at end of file diff --git a/categories/develop/index.xml b/categories/develop/index.xml new file mode 100644 index 000000000..dfe207ce8 --- /dev/null +++ b/categories/develop/index.xml @@ -0,0 +1,130 @@ +develop on Learning & Writing!https://sbabybird.github.io/categories/develop/Recent content in develop on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 07 Nov 2013 00:00:00 +0000使用vs2008编译mongodbhttps://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/Thu, 07 Nov 2013 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/<h2 id="背景问题">背景问题</h2> +<p>mongodb在windwos下的官方编译包是使用vs2010编译的,从官网上下载的源代码在vs2008环境下不能直接编译通过,因为mongodb提供的相关配置文件是针对vs2010的,可能是因为mongodb最新的代码使用了部分C++11的特性,而vs2008没有提供对C++11支持的原因。可是我们在一个具体的项目上需要在vs2008环境下使用mongodb,只好通过手工修改部分配置和代码的办法完成编译。</p> +<h2 id="环境准备">环境准备</h2> +<p>mongodb是使用scons进行编译控制的,所以在进行以下编译之前需要安装并配置好如下环境:</p> +<h3 id="python27">python2.7</h3> +<p>官方建议是安装python2.7版本,而且要在环境变量PATH中加入python的安装路径和python/scripts的路径,以便在命令行中执行python脚本。 +<em>不过我在编译的时候使用的是python2.6版本,也没有发现问题</em></p> +<h3 id="scons">scons</h3> +<ul> +<li>直接去网上下载最新版本进行安装即可。</li> +</ul> +<h3 id="vs2008">vs2008</h3> +<ul> +<li>需要安装vc++的全部组件(主要是默认安装不带amd64的编译支持),如果只需要编译32位版本的话则可以忽略此条。</li> +<li>需要安装sp1补丁,否则会在编译时报错。</li> +</ul> +<h3 id="boost库">boost库</h3> +<ul> +<li> +<p>最好使用boost1.4.9版本,去官网上下载对应的源码包然后自己在vs2008的命令行环境下编译</p> +</li> +<li> +<p>编译boost的命令如下(只编译了所需库):</p> +<pre><code> bjam stage variant=debug --with-filesystem --with-thread --with-date_time --with-program_options --layout=versioned threading=multi toolset=msvc-10.0 --build-type=complete +</code></pre> +</li> +</ul> +<p><em>如果需要编译release版本,就把<code>variant</code>的选项改为<code>release</code>,如果需要编译64位的版本,就在以上命令中加入<code>address-model=64</code></em></p> +<h2 id="配置及代码修改">配置及代码修改</h2> +<h3 id="sconstruct文件修改">SConstruct文件修改</h3> +<p>SConstruct文件用于存放scons的关键配置信息,我们为了在vs2008下编译mongodb首先要做的就是修改mongodb源码下根目录的SConstruct文件。</p> +<ul> +<li> +<p>修改env配置,找到 evn = Environment</p> +<pre><code> env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log' +) +</code></pre> +</li> +</ul> +<p>在Environment里追加一条 <code>MSVC_VERSION='9.0'</code>,这是因为如果机器上有其他的编译环境,比如vs2010或vs2012,scons会自动使用他们的编译器进行编译,即使你是在vs2008的命令行环境下,我最初因为此问题困扰了很久,后来才只得强制指定编译器的版本,修改完成后如下:</p> +<pre><code>env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log', +MSVC_VERSION = '9.0' +) +</code></pre> +<ul> +<li> +<p>给编译器搜索路径增加你自己本地的boost库路径 +因为在编译时需要用到boost库,所以需要把你在本地的boost所在目录加入scons的环境,否则会报找不到boost头文件或链接库的错误,打开Sconstruct文件直接在最后加入如下代码</p> +<p>env.Append(CPPPATH=[&ldquo;d:/thirdlib/boost_1_49_0&rdquo;, &ldquo;d:/thirdlib/boost_1_49_0/boost/tr1&rdquo;], LIBPATH=[&ldquo;d:/thridlib/boost_1_49_0/stage/lib&rdquo;])</p> +<pre><code> *你在编译时需要将路径替换成你自己的* +</code></pre> +</li> +</ul> +<h3 id="准备stdinth">准备stdint.h</h3> +<ul> +<li>去这个地址<a class="link" href="https://msinttypes.googlecode.com/files/msinttypes-r26.zip" target="_blank" rel="noopener" +>https://msinttypes.googlecode.com/files/msinttypes-r26.zip</a>下载msinttypes,将压缩包里的stdint.h解压并复制到 <code>C:\Program Files\Microsoft Visual Studio 9.0\VC\include</code> 目录</li> +<li>修改mongodb源码目录下platform下的cstdint.h,将<code>#include&lt;cstdint&gt;</code>修改为<code>#include&lt;stdint.h&gt;</code>,将<code>#define _MONGO_STDINT_NAMESPACE std</code>这一行里的std注释掉,变成<code>#define _MONGO_STDINT_NAMESPACE /*std*/ </code></li> +<li>修改mongodb源码目录下util下的time_support.h,在文件开头加入<code>#include&lt;stdint.h&gt;</code>,否则在编译这个文件时会无法识别int64_t类型</li> +</ul> +<h3 id="修改windows_basich">修改windows_basic.h</h3> +<ul> +<li>修改mongodb源码目录下platform下的windows_basic.h,</li> +<li>在<code> #if !defined(NTDDI_WINXPSP3) || (NTDDI_VERSION &lt; NTDDI_WINXPSP3)</code> 之前加入 <code>#define NTDDI_WINXPSP3 0x05010300</code> 在<code>#if !defined(NTDDI_WS03SP2) || (NTDDI_VERSION &lt; NTDDI_WS03SP2)</code>之前加入<code>#define NTDDI_WS03SP2 0x05020200</code> 否则会报 &ldquo;32 bit mongo does not support Windows versions older than XP Service Pack 3&rdquo; 和&quot;64 bit mongo does not support Windows versions older than Windows Server 2003 SP 2&quot; 错误</li> +</ul> +<h3 id="修改listencpp和sockcpp">修改listen.cpp和sock.cpp</h3> +<ul> +<li> +<p>修改util下net下listen.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EADDRINUSE WSAEADDRINUSE +#define ECONNABORTED WSAECONNABORTED +#define EBADF 9 +#define ENFILE 23 +#define EMFILE 24 +#endif +</code></pre> +</li> +<li> +<p>修改util下net下sock.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EAGAIN 11 +#endif +</code></pre> +</li> +</ul> +<h2 id="开始编译">开始编译</h2> +<p>环境准备好之后,编译就比较简单了,打开vs2008命令行窗口,执行如下代码即可完成编译 +<code>scons --dd --32 mongoclient.lib</code></p> +<p>如果是编译release版本,就把&ndash;dd换成&ndash;release,如果是编译64位版本,就把&ndash;32换成&ndash;64</p> \ No newline at end of file diff --git a/categories/develop/page/1/index.html b/categories/develop/page/1/index.html new file mode 100644 index 000000000..c0b787a07 --- /dev/null +++ b/categories/develop/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/develop/ \ No newline at end of file diff --git a/categories/hello/index.html b/categories/hello/index.html new file mode 100644 index 000000000..fb1020157 --- /dev/null +++ b/categories/hello/index.html @@ -0,0 +1,32 @@ +Category: hello - Learning & Writing! +

Categories

hello

+ \ No newline at end of file diff --git a/categories/hello/index.xml b/categories/hello/index.xml new file mode 100644 index 000000000..0d4c2a9f0 --- /dev/null +++ b/categories/hello/index.xml @@ -0,0 +1,2 @@ +hello on Learning & Writing!https://sbabybird.github.io/categories/hello/Recent content in hello on Learning & Writing!Hugo -- gohugo.iozh-cnMon, 29 Apr 2013 00:00:00 +0000Hello World!https://sbabybird.github.io/p/hello-world/Mon, 29 Apr 2013 00:00:00 +0000https://sbabybird.github.io/p/hello-world/<h2 id="hello">Hello</h2> +<h2 id="world">World</h2> \ No newline at end of file diff --git a/categories/hello/page/1/index.html b/categories/hello/page/1/index.html new file mode 100644 index 000000000..a3754a4c0 --- /dev/null +++ b/categories/hello/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/hello/ \ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 000000000..6fc58e46c --- /dev/null +++ b/categories/index.html @@ -0,0 +1,34 @@ +Categories +

Categories

+ \ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml new file mode 100644 index 000000000..a3ca1915a --- /dev/null +++ b/categories/index.xml @@ -0,0 +1 @@ +Categories on Learning & Writing!https://sbabybird.github.io/categories/Recent content in Categories on Learning & Writing!Hugo -- gohugo.iozh-cnTue, 26 Sep 2023 00:00:00 +0000机器文摘https://sbabybird.github.io/categories/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/Tue, 26 Sep 2023 00:00:00 +0000https://sbabybird.github.io/categories/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/<img src="https://sbabybird.github.io/categories/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/cover.jpg" alt="Featured image of post 机器文摘" />工具使用https://sbabybird.github.io/categories/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8/Thu, 21 Sep 2023 00:00:00 +0000https://sbabybird.github.io/categories/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8/<img src="https://sbabybird.github.io/categories/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8/cover.jpg" alt="Featured image of post 工具使用" />知识管理https://sbabybird.github.io/categories/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/Sat, 23 Apr 2022 00:00:00 +0000https://sbabybird.github.io/categories/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/读书笔记https://sbabybird.github.io/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Sun, 18 Apr 2021 00:00:00 +0000https://sbabybird.github.io/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/随笔https://sbabybird.github.io/categories/%E9%9A%8F%E7%AC%94/Wed, 10 Feb 2021 00:00:00 +0000https://sbabybird.github.io/categories/%E9%9A%8F%E7%AC%94/<img src="https://sbabybird.github.io/categories/%E9%9A%8F%E7%AC%94/cover.jpg" alt="Featured image of post 随笔" />博客日记https://sbabybird.github.io/categories/%E5%8D%9A%E5%AE%A2%E6%97%A5%E8%AE%B0/Wed, 01 Jan 2020 00:00:00 +0000https://sbabybird.github.io/categories/%E5%8D%9A%E5%AE%A2%E6%97%A5%E8%AE%B0/学习https://sbabybird.github.io/categories/%E5%AD%A6%E4%B9%A0/Sun, 02 Jun 2019 00:00:00 +0000https://sbabybird.github.io/categories/%E5%AD%A6%E4%B9%A0/SICPhttps://sbabybird.github.io/categories/sicp/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/categories/sicp/mischttps://sbabybird.github.io/categories/misc/Thu, 13 Feb 2014 00:00:00 +0000https://sbabybird.github.io/categories/misc/develophttps://sbabybird.github.io/categories/develop/Thu, 07 Nov 2013 00:00:00 +0000https://sbabybird.github.io/categories/develop/hellohttps://sbabybird.github.io/categories/hello/Mon, 29 Apr 2013 00:00:00 +0000https://sbabybird.github.io/categories/hello/ \ No newline at end of file diff --git a/categories/misc/index.html b/categories/misc/index.html new file mode 100644 index 000000000..98fbfc86e --- /dev/null +++ b/categories/misc/index.html @@ -0,0 +1,32 @@ +Category: misc - Learning & Writing! +

Categories

misc

+ \ No newline at end of file diff --git a/categories/misc/index.xml b/categories/misc/index.xml new file mode 100644 index 000000000..89204cf98 --- /dev/null +++ b/categories/misc/index.xml @@ -0,0 +1,27 @@ +misc on Learning & Writing!https://sbabybird.github.io/categories/misc/Recent content in misc on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 13 Feb 2014 00:00:00 +0000win8系统下使用笔记本作为wifi热点https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/Thu, 13 Feb 2014 00:00:00 +0000https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/<h1 id="win8系统下使用笔记本作为wifi热点">win8系统下使用笔记本作为wifi热点</h1> +<h2 id="背景">背景</h2> +<p>在没有无线路由的情况下,比如出差在宾馆,如果手里有一台可以上网的笔记本电脑,则可以给手机、平板电脑或者其他笔记本提供一个可以上网的wifi热点。</p> +<p>我平时在单位即通过此方式给我的平板电脑和手机共享网络通道,比较方便实用,近期在使用的过程中遇到一些问题,经过摸索,解决了问题,在此记录一下,方便以后查阅。</p> +<h2 id="环境需要">环境需要</h2> +<ul> +<li>一台通过有线连接上网(或者通过3G上网,就是说wifi网卡没有被占用)的笔记本电脑</li> +<li>安装有win8操作系统(win7应该也可以)</li> +<li>无线网卡芯片是intel的(否则可能不支持此技术),并使用了最新的驱动程序</li> +</ul> +<h2 id="基本步骤">基本步骤</h2> +<ul> +<li> +<p>打开具有管理员权限的控制台窗口(在win8系统下,可以通过按<code>windows+x</code>键,然后在弹出的菜单里选择『命令提示符(管理员)』)</p> +</li> +<li> +<p>输入如下命令 <code>netsh wlan set hostednetwork mode=allow ssid=&quot;mywifi&quot; key=&quot;12345678&quot;</code> <em>其中ssid后面的热点名称和key后面的密码可以根据情况自行决定</em></p> +</li> +<li> +<p>上一个命令完成后,如果没有异常的话,则输入如下命令 <code>netsh wlan start hostednetwork</code> <em>这条命令如果执行成功会显示『已启动承载网络』,在下次系统重启后需要重新执行,如果嫌麻烦则可以做一个批处理文件每次双击即可</em></p> +</li> +<li> +<p>成功启动承载网络之后,进入『网络和共享中心』点击『更改适配器设置』,此时在该页里应该可以看到一个虚拟网卡(名称一般叫MicrosoftVirtual WiFi Miniport Adapter),右键点击那个可以上网的网络连接(如果是有线连接就是那个『本地连接』,如果是3G的则根据情况而定,总之必须是那个可以上网的连接),选择『属性』,切换到『共享』页,勾选『允许其他网络用户通过此计算机的Internet连接来连接』,在下面的下拉列表里选择那个刚虚拟出来的虚拟网卡。确定即可。</p> +</li> +</ul> +<h2 id="常见问题">常见问题</h2> +<p>执行以上第二条命令启动承载网络后,有时会显示『无法启动承载网络,组或资源的状态不是执行请求操作的正确状态』,网上大部分的文章针对这个问题给出的解决办法都是更新网卡驱动,可是对于我的笔记本无效,因为我的笔记本电脑在前一段时间是好用的,后来不好用了,根据我的摸索,解决这个问题的办法是,去『设备管理器』下面的『网络适配器』里面找找,看看有没有被禁用的设备,比如『微软托管网络协议』,如果禁用了再重新启用即可正常使用此功能了。</p> \ No newline at end of file diff --git a/categories/misc/page/1/index.html b/categories/misc/page/1/index.html new file mode 100644 index 000000000..ab875c1d5 --- /dev/null +++ b/categories/misc/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/misc/ \ No newline at end of file diff --git a/categories/page/1/index.html b/categories/page/1/index.html new file mode 100644 index 000000000..59dc22590 --- /dev/null +++ b/categories/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/ \ No newline at end of file diff --git a/categories/page/2/index.html b/categories/page/2/index.html new file mode 100644 index 000000000..173edbc3d --- /dev/null +++ b/categories/page/2/index.html @@ -0,0 +1,34 @@ +Categories +

Categories

+ \ No newline at end of file diff --git a/categories/page/3/index.html b/categories/page/3/index.html new file mode 100644 index 000000000..033831b6b --- /dev/null +++ b/categories/page/3/index.html @@ -0,0 +1,34 @@ +Categories +

Categories

+ \ No newline at end of file diff --git a/categories/sicp/index.html b/categories/sicp/index.html new file mode 100644 index 000000000..7dd2c4a21 --- /dev/null +++ b/categories/sicp/index.html @@ -0,0 +1,33 @@ +Category: SICP - Learning & Writing! +

Categories

SICP

+ \ No newline at end of file diff --git a/categories/sicp/index.xml b/categories/sicp/index.xml new file mode 100644 index 000000000..a8e181528 --- /dev/null +++ b/categories/sicp/index.xml @@ -0,0 +1,576 @@ +SICP on Learning & Writing!https://sbabybird.github.io/categories/sicp/Recent content in SICP on Learning & Writing!Hugo -- gohugo.iozh-cnMon, 05 Jan 2015 00:00:00 +0000SICP 课后练习题1.9https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/<h4 id="练习-19--下面两个过程各定义了一种加起两个正整数的方法他们都基于过程inc它将参数增加1和dec它将参数减少1-请用代换模型展示这两个过程在求值add-4-5时所产生的计算过程这些计算过程是递归的或者迭代的吗">练习 1.9 下面两个过程各定义了一种加起两个正整数的方法,他们都基于过程inc(它将参数增加1)和dec(它将参数减少1) 。请用代换模型展示这两个过程在求值<code>(add 4 5)</code>时所产生的计算过程。这些计算过程是递归的或者迭代的吗?</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nf">inc</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><p>解答:根据代换模型分别展开如下</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">5</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">5</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">6</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">7</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>根据展开可以看出,第一个计算过程是递归的,因为明显有一个逐步扩展然后又收缩的递归计算链条。第二个计算过程是迭代的,没有扩展、收缩的过程,而是使用a和b存储了常量。</p>SICP 课后练习题1.8https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/Mon, 29 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/<h4 id="练习-18-求立方根的牛顿法基于如下事实如果y是x的立方根的一个近似值那么下式将给出一个更好的近似值">练习 1.8 求立方根的牛顿法基于如下事实,如果y是x的立方根的一个近似值,那么下式将给出一个更好的近似值:</h4> +<p>$$ \frac{x/y^2+2y}{3} $$</p> +<p>请利用这一公式实现一个类似平方根过程的求立方根的过程。</p> +<p>解答:基本思路与求解平方根的实现是一致的,区别再有得到更好值<code>improve</code>的过程有变化,只需根据公式描述进行实现即可</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">/</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="nv">guess</span><span class="p">))</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="mi">3</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.7https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/Sat, 27 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/<h4 id="练习-17-对于确定很小的数的平方根而言在计算平方根中使用的检测good-enough是很不好的还有在现实的计算机里算术运算总是以一定的有限精度进行的这也会使我们的检测不适合非常大的数的计算请解释上述论断用例子说明对很小和很大的数这种检测都可能失败实现good-enough的另一种策略是监视猜测值在从一次迭代到下一次的变化情况当改变值相对于猜测值的比率很小时就结束请设计一个采用这种终止测试方式的平方根过程对于很大和很小的数这一方式都能工作吗">练习 1.7 对于确定很小的数的平方根而言,在计算平方根中使用的检测good-enough?是很不好的。还有,在现实的计算机里,算术运算总是以一定的有限精度进行的。这也会使我们的检测不适合非常大的数的计算。请解释上述论断,用例子说明对很小和很大的数,这种检测都可能失败。实现good-enough?的另一种策略是监视猜测值在从一次迭代到下一次的变化情况,当改变值相对于猜测值的比率很小时就结束。请设计一个采用这种终止测试方式的平方根过程。对于很大和很小的数,这一方式都能工作吗?</h4> +<p>解答:good-enough?当前采用的判断方式是,对比猜测值的平方结果与X的值之间的差距,当差距小于某个阙值时(比如0.001),就停止计算。当X很小或很大时,这种检测就会失败,比如,假设我们的阙值设置为0.001,那么当X本身小于这个阙值时,就会检测失败,得出错误结果,当X很大时,也会由于精度不足而一直达不到最佳猜测值,导致死循环。</p> +<p>因此,要解决这一问题,可以按照题目中给出的思路对good-enough?过程进行修改,不再判断猜测值平方与X的差距,而是判断两次猜测值之间的比率。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mf">0.00000000001</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.1622776601874535e-6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">100000000000000000000000000000000000000000000</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 1.0000000000001497e22</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>在新的<code>good-enough?</code>中,传入的是两次猜测值,所以还要修改<code>sqrt-iter</code>过程,在调用时计算两次猜测值。</p>SICP 课后练习题1.6https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/Tue, 23 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/<p>采用牛顿法求平方根的过程如下。开始时,我们有了被开方数的值(现在需要做的就是算出它的平方根)和一个猜测值。如果猜测值已经足够好了,有关工作也就完成了。如若不然,那么就需要改进猜测值(求出猜测值与被开方数除以猜测值的平均值),并重复这个计算过程。具体编写代码如下(在MIT scheme解释器中)。</p> +<p>定义<code>sqrt-iter</code>过程,与上述描述完全对应。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义改进猜测值的过程<code>improve</code>,返回猜测值与被开方数除以猜测值的平均值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">average</span> <span class="nv">guess</span> <span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="nv">guess</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: improve</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求平均数的过程<code>average</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">average</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: average</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义判断猜测值是否足够好的过程<code>good-enough?</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="p">(</span><span class="nf">square</span> <span class="nv">guess</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> <span class="mf">0.001</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求绝对值和平方的过程</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: abs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">square</span> <span class="nv">x</span><span class="p">)</span> <span class="p">(</span><span class="nb">* </span><span class="nv">x</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: square</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义最上层的过程,用于启动整个工作(使用<code>1</code>这个数字作为任何数的初始猜测值)。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">sqrt </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>执行<code>sqrt</code>过程,并以<code>9</code>为参数,求得平方根为<code>3</code></p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.00009155413138</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h4 id="练习16----alyssa-phacker看不出来为什么需要将if提供为一种特殊形式她问为什么我不能直接通过cond将它定义为一个常规过程呢alyssa的朋友eva-lu-ator断言确实可以这样做并定义了if的一个新版本">练习1.6 Alyssa P.Hacker看不出来为什么需要将if提供为一种特殊形式,她问:“为什么我不能直接通过<code>cond</code>将它定义为一个常规过程呢?”Alyssa的朋友Eva Lu Ator断言确实可以这样做,并定义了<code>if</code>的一个新版本:</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">new-if</span> <span class="nv">predicate</span> <span class="nv">then-clause</span> <span class="nv">else-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">cond </span><span class="p">(</span><span class="nf">predicate</span> <span class="nv">then-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">else </span><span class="nv">else-clause</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: new-if</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>Eva给Alyssa演示她的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">2</span> <span class="mi">3</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">5</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">1</span> <span class="mi">1</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>她很高兴地用自己的<code>new-if</code>重写了求平方根的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>当Alyssa试着用这个过程去计算平方根时会发生什么事情呢?请给出解释。</p> +<p>解答:</p> +<p>这个练习引入了一个新的思考,刚开始时,我以为是牵涉到了过程的局部参数概念,因为在新编写的<code>new-if</code>过程中,看似可以完成条件判断并返回正确的值,但是在本例中使用却存在问题,即在递归调用<code>sqrt-iter</code>时,传给该过程的<code>guess</code>和<code>x</code>为<code>new-if</code>的局部参数,被返回给了<code>new-if</code>这个过程,不会向上返回到上一层<code>sqrt-iter</code>里,这样就导致了改进的猜测值永远不会被使用,使得这个计算过程永远不会结束(除非第一个猜测值恰好合适),从而导致递归调用的陷入无限循环。我在<code>MIT-scheme</code>解释器里的执行结果是,解释器自动退出并提示我递归调用深度超出最大值。</p> +<p>上述看起来是合理的,但是后来我考虑了其他情况,及本书在前面章节里提到了if<code>(if &lt;predicate&gt; &lt;consequent&gt; &lt;alternative&gt;)</code>语句是条件表达式的受限形式,在执行时,先判断<code>predicate</code>是否为真,然后根据结果只执行其后<code>consequent/alternative</code>中的一个。如果使用本例新定义的<code>new-if</code>则作为普通过程执行,传入的参数会因为解释器使用应用序求值的原因,两个表达式都会被立即求值,反应到本例中就是<code>guess</code>和<code>(sqrt-iter (improve guess x) x)</code>都会被立即求值,后面的那句是属于递归调用,这样也会导致改进的猜测值永远不会被使用,陷入无限层的递归调用中。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Aborting!: maximum recursion depth exceeded</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>思考:</p> +<p>最初的时候,我的针对此题的思考方式是变量的作用域问题(可能lisp不会有此问题),后来发现,也许不是这样,而是由于对传入参数立即求值导致的,后续的网上搜索结果也显示出大家的答案都倾向于后者。</p>SICP 课后练习题1.4https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/<h4 id="练习14----请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型根据对这一模型的认识描述下面过程的行为">练习1.4 请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型,根据对这一模型的认识描述下面过程的行为。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.4,通过if判断,根据b的值决定对a b所使用的运算符是+还是-,如果b大于0,则组合式为(+ a b),反之则为(- a b),所以组合式结果永远返回a加上b的绝对值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: a-plus-abs-b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">-2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.5https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/<h4 id="练习15---ben-bitdiddle发明了一种检测方法能够确定解释器究竟采用哪种序求值是采用应用序还是正则序他定义了下面两个过程">练习1.5 Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用哪种序求值,是采用应用序,还是正则序。他定义了下面两个过程</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">p</span><span class="p">)</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">test</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span><span class="line"><span class="cl"> <span class="nv">y</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>而后他求值下面的表达式:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">test</span> <span class="mi">0</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>如果某个解释器采用的是应用序求值,Ben会看到什么样的情况?如果解释器采用正则序求值,他又会看到什么情况?请对你的回答做出解释。(无论采用正则序或者应用序,假定特殊形式if的求值规则总是一样的。其中的谓词部分先行求值,根据其结果确定随后求值的子表达式部分。)</p> +<p>练习1.5 『完全展开而后规约』的求值模型为正则序求值,『先求值参数而后应用』的方式为应用序求值,因此,在应用序求值的模式下,执行<code>(test 0 (p))</code>时会先求<code>(p)</code>这个表达式的值,而根据定义<code>(define (p) (p))</code>执行<code>(p)</code>会造成递归调用,解释器陷入死循环。而在正则序求值模式下,会先展开<code>test</code>过程,根据需要再决定是否执行<code>(p)</code>,在本例中,由于传入的<code>x</code>等于<code>0</code>,所以<code>(p)</code>不会被执行,因此不会陷入死循环。</p> +<p>所以,根据以上分析,如果解释器采用的是应用序求值,则解释器陷入死循环,如果是采用正则序求值,则解释器输出<code>;Value: 0</code>。</p>SICP 课后练习题1.1https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/<h4 id="练习11----下面是一系列表达式对于每个表达式解释器将输出什么结果假定这一系列表达式是按照给出的顺序逐个求值的">练习1.1 下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="mi">10</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 10</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> <span class="mi">3</span> <span class="mi">4</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 12</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">9</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 8</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 3</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">* </span><span class="mi">2</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="mi">4</span> <span class="mi">6</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">a</span> <span class="mi">3</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: a</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">b</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 19</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: #f</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="k">and </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">&lt; </span><span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"><span class="nv">b</span> +</span></span><span class="line"><span class="cl"><span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 4</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">4</span><span class="p">)</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">= </span><span class="nv">b</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="mi">7</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">25</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">2</span> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">&lt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">-1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.1的内容比较简单,基本上直接就可以计算出表达式的值,所有表达式都可以在mit-scheme的交互解释器里进行验证。</p>SICP 课后练习题1.2https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/<h4 id="练习12----请将下面表达式变换为前缀形式">练习1.2 请将下面表达式变换为前缀形式:</h4> +<p>$$ \frac{5+4+\Bigl(2-\Bigl(3-\left(6+\frac{4}{5}\right)\Bigr)\Bigr)}{3\left(6-2\right)\left(2-7\right)} $$</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> +</span></span><span class="line"><span class="cl"><span class="mi">4</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="p">(</span><span class="nb">/ </span><span class="mi">4</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: -37/150</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.2,直接将数学表达式转换为前序表达式即可,在写的时候可以遵循一下排版规则,即同一个运算符的表达式垂直对齐。</p>SICP 课后练习题1.3https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/<h4 id="练习13----请定义一个过程它以三个数为参数返回其中较大两个数之和">练习1.3 请定义一个过程,它以三个数为参数,返回其中较大两个数之和。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">max-three-number</span> <span class="nv">a</span> <span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">c</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">c</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">max-three-number</span> <span class="mi">42</span> <span class="mi">7</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 49</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.3,解决此练习中问题的方法比较多,本答案使用比较朴素的方法,先比较出最大的两个数字,然后将其相加,对于三个数字来说,先在前两个中选取一个大的,然后将其与后面两个中比较大的那一个相加。还有一种思路就是可以先定义出比较大小的方法,然后再调用之,或者先对数字按从小到大排序然后加最后两个,等等。</p> \ No newline at end of file diff --git a/categories/sicp/page/1/index.html b/categories/sicp/page/1/index.html new file mode 100644 index 000000000..fcde217bf --- /dev/null +++ b/categories/sicp/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/sicp/ \ No newline at end of file diff --git a/categories/sicp/page/2/index.html b/categories/sicp/page/2/index.html new file mode 100644 index 000000000..5c4b87fa6 --- /dev/null +++ b/categories/sicp/page/2/index.html @@ -0,0 +1,33 @@ +Category: SICP - Learning & Writing! +

Categories

SICP

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/index.html" new file mode 100644 index 000000000..367f95c28 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/index.html" @@ -0,0 +1,35 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/index.xml" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/index.xml" new file mode 100644 index 000000000..6fa13bd95 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/index.xml" @@ -0,0 +1,3669 @@ +博客日记 on Learning & Writing!https://sbabybird.github.io/categories/%E5%8D%9A%E5%AE%A2%E6%97%A5%E8%AE%B0/Recent content in 博客日记 on Learning & Writing!Hugo -- gohugo.iozh-cnWed, 01 Jan 2020 00:00:00 +00002019年个人总结https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Wed, 01 Jan 2020 00:00:00 +0000https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h2 id="2019年个人总结">2019年个人总结</h2> +<h3 id="起头">起头</h3> +<p>2019年过的比往年还要更快,今年的新年假期只有一天,正好用来写总结。</p> +<p>2019年是充分践行“在事儿上磨练自己”的一年,对目标有了更清晰的迭代,在行动上更加倾向于知行合一,继续缩减无效信息的获取和消费,挤出精力去做对自己更重要的事情。</p> +<p>有多少成绩不好说,但是多少有一些感悟。</p> +<h3 id="摄影">摄影</h3> +<p>每年的春季,都会有一种强烈的想要深入摄影的感觉。最近几年越来越明显,一方面可能跟大量的摄影器材新产品发布有关,另一个方面,环境的复苏,春天代表着一种生机勃勃的精神,敏感的人们便容易感受到事物的变化。</p> +<p>还有就是,可能因为春天比起冬天来比较。。。不冻手。</p> +<p>今年大概按了四五千次快门吧,能看的入眼的也有个百十来张,我对摄影的定位就是记录日常生活,发现并捕捉生活中的美好瞬间,如果让我挑一张自己比较满意的话,就是下面这张:</p> +<p><img src="https://upload-images.jianshu.io/upload_images/25416-97902ee0d97e0abf.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="DSCF2721.JPG" +></p> +<p>在地铁上的抓拍,当时感觉这个包比较有趣,于是就拍了。</p> +<h3 id="思考">思考</h3> +<p>大部分繁忙的人们,每天用在思考上面的时间都是很少的,或者说高质量的深度思考太少,导致了一种错觉,没有时间闲下来,仿佛进入了一个繁忙的死循环(这里推荐一本书《稀缺》,关于这种现象还有一种装逼的说法叫“内卷化”)。</p> +<p>许多比较成功的人士,并非这么繁忙,相反地,他们会腾出大量的时间用于思考,以思想来指导行动,给自己留出“空余”的时间,然后“行动”才有意义。</p> +<p>写到这里,我又想起一件事儿,比如装修房间,需要规划空间的布置,一定要规划空出来的部分跟实际功能使用的比例,不能一味将空间沾满用干净,那样的话整体就会感到很压抑,而如果空余的部分跟使用的部分有一个合理的平衡,就会整体感到档次和品质提升了不少。</p> +<p>这种“用”与“不用”的平衡可以说到处都能体现,摄影中存在“正负空间”的说法,也有“影调平衡”的说法,都是在讲究一种平衡。</p> +<p>我们对自己日常工作、生活乃至人生规划,都要向这种平衡去靠拢,每年、每月、每天的时间分配也要考虑到这种平衡,因为如果一味的用满,则会给整体的效能和品质大打折扣,看似繁忙充实,实则得不偿失。</p> +<p>所以,今年我更加注意留出时间给自己,深度思考,尽力争取空闲时间,把空闲当作一种保持平衡的“负空间”。</p> +<h3 id="早起">早起</h3> +<p>今年加强了早起这个习惯,起床时间直接拨到了早晨6点,经过一段时间练习,现在就算不用闹钟也可以准点起来,睡眠质量不降反升,真是一举多得。</p> +<p>起床早的话,感觉精力充沛,精神状态也很不错,睡懒觉并不能带来充分的休息,反而早起的好处却很多,比如时间上的从容,交通不拥挤,吃饭、办事等都比较轻松,能够感觉每天的有效时间得到了延长。</p> +<p>我这么做倒也不是因为自律,而是想给自己更多的时间和机会去学习和体验,在我看来,外部的物质环境远没有自己的精神体验重要,随着时间进程的加速,谁都能意识到生命不是无限的,多做一些自己喜欢的事情比什么都重要,安逸可以适当体验,但更多的是,去观察和创造。</p> +<h3 id="健康">健康</h3> +<p>心态平和所带来的第一个福利竟然是体重提升了10斤左右,半年时间内从65公斤飙升至70公斤,搞得有点儿措手不及,怀疑是不是因为工作地点搬迁之后周边好吃的有点儿太多了的原因,再也不敢相信随便吃都不会胖的神话,从能看清肋骨到能看见肉褶儿不过是几顿羊肉汤的功夫。</p> +<p>在可供我焦虑的选项里除了脱发,又增加了一项。</p> +<h3 id="手机">手机</h3> +<p>今年将我的电子产品全线更换为自主品牌华为,一方面是苹果手机在创新上已经不思进取,在将开发团队外包给印度之后,其系统的稳定性和体验均出现大幅下滑,苹果公司本身的吃相也越来越难看,另一方面,国产手机现在做的确实不错,体验很好,而且就算是华为的高端手机,也比国外的那些手机“物美价廉”,所以支持国产很正常。</p> +<h3 id="读书">读书</h3> +<p>除了一些专业的工具书籍以外,今年没有买任何的“闲书”,但是翻出了以前买来的重读了一些。</p> +<p>这个可以深入说一说。</p> +<p>比如今年又重读了《老人与海》,算是想明白了,为什么海明威仅凭借这一部中篇小说就能获得诺贝尔文学奖。以前上学的时候看此书,觉得吧,没意思,一个关于捕鱼的故事有什么可看的呢?但多年以后又重新翻看的话,体会就大不相同了。</p> +<p>今年年中的时候在老家跟几个老友小聚喝酒,仿佛一夜之间,感到我们这一代人的成长,大家忽然都成了家庭里的核心力量,所面临的压力陡增,无论是父母健康还是后代教育或者是亲戚邻里帮扶,我们这一代正在成为家里各项事务的第一责任人。</p> +<p>唏嘘之余,我才想到,我们这些人,哪一个不是《老人与海》中的那个捕鱼的老人呢?我们每个人都在等待生活中属于自己的那条大鱼,或者都在跟自己的那条大鱼在激烈搏斗,小说中的老人跟大鱼僵持不下,连换个姿势都成为一种奢侈,我们在面对各种生活中的琐事时又何尝不是跟老人当时一样的境遇呢?</p> +<p>所以说《老人与海》这部小说能够给人力量,我们都在跟“大鱼”搏斗,这是我们的使命。</p> +<p>其他的书也陆续看了一些,但都侧重于“闲书”,比如《数学之美》、《巨人三传》、《人类的群星闪耀时》,等等。</p> +<p>不以功利心读书是基本原则,将至少保持一百年不动摇。</p> +<h3 id="学习">学习</h3> +<p>说到了学习,为工作而学的不算,今年在私下里研究最多的就是计算机图形学了。</p> +<p>由于缺少大块的时间,系统性学习是不可能了。</p> +<p>只能利用一些碎片时间,比如在下班路上阅读一些开源代码和论文,断断续续的。耗费了挺长时间才把空间坐标转换的矩阵给推演明白。</p> +<p>不过值得欣慰的是,编程也没落下,利用周末时间充分发挥理论结合实际的思想,我竟然亲手撸了一个基于web画布的光栅化渲染器,很原始,但是可以渲染obj格式的线框和三角面。</p> +<p>但毕竟平时很忙,估计等到可以加上光照和着色器的时候还得等几年了。</p> +<h3 id="结尾">结尾</h3> +<p>总的来说,认真做好每件小事,可以算是今年的主要指导思想,放平心态,不对自己要求太高,重点是投入进去,以谦虚的心态,搞懂小事,做好细节,即便是做的事情不多,成果也不大,也没关系,若能将小事做好,也能给自己的内心带来平静。</p> +<p>以往的习惯,往往是给自己定义较高的完美目标,结果就是不能完全令自己满意,时间长了难免带来较多负面情绪,随着年龄的增长,逐渐意识到自己的平凡和普通,虽说不是上和自己或者世界和解,但也逐渐更加了解世界和了解自己。</p> +<p>无论别人怎样看待,自己的感受才是最重要的,所谓幸福也主要就是一种自我的感受,只有自己才能对自己负责,任何人的建议都是首先站在建议人那一方的利益考虑。所以认真对待该做的事情,同时不违背自己内心的意愿,每一分钟都不是在准备生活,而是就在生活之中。</p> +<p>抛开不可抗拒之因素,仍然以自己的节奏为中心,抓住重点,继续学习和深入实践,饭一口口吃,事儿一件件做,只要小事能推进,日积月累也定会带来不小的收获。</p>2018年个人总结https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Tue, 01 Jan 2019 00:00:00 +0000https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h1 id="2018年个人总结">2018年个人总结</h1> +<h2 id="起头">起头</h2> +<p>同样是元旦假期最后一天,坐下来给自己写总结。去年写总结的时候,我给自己上一年定义的关键词是“认识自己”,2018年我觉得关键词可以是“改变自己”。刚刚翻看了2018年产生的大量工作日志和心得记录,一边感慨时间过的飞快,一边在脑海里飞快回忆这刚过去的一整年,这个在网上被大家普遍吐槽、觉得艰难的年份。</p> +<h2 id="关于资讯">关于资讯</h2> +<p>2018年最令个人满意的一件事儿是戒掉了对互联网资讯的依赖。整整一年几乎没有主动上网刷过任何资讯,比2017年还要彻底,在手机上删掉了各种资讯软件,平时也很少刷新微信的朋友圈(偶尔发一发)。最开始的时候会感到不适应,但是一旦觉得资讯恐慌的时候,就强迫自己利用互联网学习知识,或者处理日常事务,一年下来节约了不少时间。</p> +<p>这么做的主要原因是自己认识到互联网资讯正在给人们贩卖大量的消费冲动和焦虑。</p> +<p>我觉得互联网是一个信息放大器,总是被掌握了话语权的人将自己的感受放大然后传播出去,如果这些人感到了焦虑,那么这些焦虑就会通过网络放大若干倍,去影响更多的人,给更多的人带来焦虑。那么现在是什么人在掌握互联网上的话语权呢,没错,就是我们这些80后。回过头去检查各年的网络热词,几乎是80后的人生成长轨迹,大龄了,剩了,结婚了,生娃了,学区房了,中年了,油腻了,佛系了,等等。</p> +<p>戒掉信息并不意味着远离了这些,只是可以更加正确的认识这个世界,不再陷入以前的误区、觉得喧闹的只剩下一种声音。</p> +<h2 id="思考与认知">思考与认知</h2> +<p>苏格拉底说,未经思考的人生不值得度过。如果说2017年是通过思考来认识自己的话,2018年就是将思想转变落实到行动上的一年。可以说是真真正正的用思考来指导行动的一年,向“知行合一”又推进了一丢丢。</p> +<p>以前知乎上有个关于“优秀的人不够自信”的问题,问为什么有的人明明很优秀却仍然觉得不够自信,要是搁在从前的认知,我会觉得答案很明显,会给出极左极右的评判。现在不这么认为了,没有绝对的两极,大多数人处在中间,符合正态分布,可能有些人更加偏向于“优秀而不自信”一些。造成这样的原因跟从小接受的教育有很大的关系,即“活在他人对自己的期望之中”,我几乎可以断定自己此生难以摆脱这种心理了,只能在正确认识到这种情况之后尽可能的去调节。通过多做事情去磨练自己,并不断用自己的目标去替换别人的期望,目前正走在这样的改变之路上。</p> +<p>找到自己的目标不存在诀窍,更不是自己坐在家里冥思苦想就可以,而是要不断去尝试,多做事情,去接触更多以前没有接触到的事物或者体验,只有这样,才能激发自己的潜力,遇见自己真正热爱并愿意投入精力与时间去奋斗的事情。</p> +<p>想明白这些之后,我主动多做了一些事情,可以明显感受到通过思考指导做事给自己带来的成长。</p> +<h2 id="压力出口">压力出口</h2> +<p>每天大约能记录1k字的工作日志,当然里面不全是工作流水,有很多是临时书写的心得体会或者思考碎片。坚持这么做的原因是发现写作可以作为疏解压力的一个出口,既能整理思路,又能缓解压力,真是一举两得。</p> +<p>我称这种写作为“随意写作”,或者叫释放心理垃圾,《写出我心》这本书里说过,刚开始写不好没关系,因为需要先把内心里的垃圾信息倾倒出来,先把污水排出来然后才可能有干净和高质量的东西出来,这个比喻可能不太恰当,但是对我比较触动,也正好作为我接受自己水平很烂的借口。</p> +<h2 id="看书让我认可了自己的爱好广泛">看书让我认可了自己的“爱好广泛”</h2> +<p>看书当然是日常生活中不可缺少的一部分,今年开始看阿城的作品。果然不简单,我还没有遇到过这么容易读下去的文字,可以说是流畅至极。阿城写这些文字就像是坐在这里跟你唠嗑似的,娓娓道来,而且段落之间完全感觉不到过渡突兀,天南海北扯来扯去最后还都能很好地收尾,讲到具体事例往往还能极为精准地引用古往今来学者或者艺术家的典故,说的煞有其事,看的引人入胜。</p> +<p>我觉得他之所以能够写出这么多东西应该跟肚子里有货有关,而且这些货还不仅仅是简单的灌装进去,码放整齐。应该是经过消化和思考加工,已然形成一套体系,里面既包含个性鲜明的观点,也体现他的三观。在聊天喷空之余偶尔还不忘揶揄几句当下的社会或者某些人群,幽默感着实了得。</p> +<p>读这样的作品还有一个感觉,就是越读越觉得自己对历史和人文了解甚少,往远了说有诗经论语等经典,往近了说有明清小说或者近代大家,东方有儒家道家佛家文化,西方有心理学、哲学、文艺复兴的科学等等,如果做不到对这些东西融会贯通,那么即使读到好看的文字,能看懂作者的议论也仅仅是瞧个热闹,过后很难产生更加复杂的化学反应,所以好书又会给人提供了解历史和文化的动力,仅从这一点来说,好书和好作家就功德无量了。</p> +<p>我以前总是担心自己的知识太杂,有种什么都想了解一点儿又什么都不精通的感觉,总是提醒自己要缩小自己的关注圈。看了阿城的作品后,感觉,既然天性之中有那么强的求知欲,又何必压抑自己,不妨也多做尝试,管他什么音乐绘画还是神学哲学,只要有兴趣就大胆去了解。</p> +<p>感谢阿城能够让我醒悟,不必为自己爱好广泛而烦恼,更不必为没能精通若干技能而悔恨,专有专的强,杂也有杂的好。</p> +<h2 id="几点感悟">几点感悟</h2> +<h3 id="关于改变">关于“改变”</h3> +<p>推动事件向自己希望的方向发生是有难度的,也是考验和锻炼一个人综合素养的绝佳机会。观察这么多伟大的领导者,没有一个不是在推动变革中成长起来的,所以成功有很大的因素就是在推动变革。做变革的推动者需要面对很多困难,因为就跟打扫房间一样,任由事情向无序方向发展是最省力的,也是最不负责任的,只有想要东西向有序方向发展才是困难的。</p> +<p>广义上来说,做任何事情都是将事物从无序向有序方向发展,这是自然规律,宇宙万事万物从有序走向无序,只有智慧生命才具备能力维持有序或者把无序变有序,这一切都需要能量,作为智慧个体所具备的只有利用能量的方法和信息,比如蒸汽机、内燃机电动机等等,再往前倒腾,那就是农业时代的耕种,那也是一种利用能量(太阳)将无序向有序转变的过程。</p> +<p>这么些年以来,推动或者说维持有序的本质没有改变,个体想要发挥价值或者说作用,只有在这个过程中通过一定的方法和信息来完成能量转换为有序的操作,工程师、艺术家、农民,可以说做的是一样的事情,区别就是大家所使用的信息不同,引导的能量不同,所输出的转化物不同。</p> +<p>个体的价值就体现在不是作为“无序”的生产者,而是“有序”的生产者。</p> +<h3 id="关于做自己">关于“做自己”</h3> +<p>我以前特别尊崇“真”,要活的真性情并且避免虚伪,不愿意假装任何事情。这样做有很多缺陷,因为不同的人有不同的期望,而且这些往往是互相矛盾的,西方的文化传统是“做自己就好”,是挺好的,但是仅限西方,在中国的话,还是要讲究一下中和。</p> +<p>所以聪明的做法,在中国文化传统下,必然是不能直来直去,即便是“做自己”,也不能表现的太过于直接,中国的文化就是内在与外在严重的分裂,外在主要用于伪装和“一团和气”,而各自的内在又是什么样儿呢?谁也不知道。但有一点是毫无疑问的,那就是我们的文化绝对不推崇直接表现内心,所以才有古代大臣劝皇帝登基,而皇帝则三番五次推脱,嘴里喊着不要,虽然双方都知道是在演戏,但是也都不亦乐乎,做的很足。</p> +<p>刚正不阿的人在明白了这些之后难免会有一些哀怨,但在我看来,这样就有些狭隘了,从客观规律上来说,谁都逃脱不了自然的力量,无论是基因还是环境,所以不必抱着一种价值观跟这个世界死磕,老祖宗的智慧早就告诉我们任何事物都不可一分为二,不能非黑即白,要以一种“中间调”的视角来看待问题。</p> +<h2 id="结尾">结尾</h2> +<p>2018年经历了很多事情,思想的转变带来了行动的变化,年初的时候给自己开出了化解中年焦虑的药方“多做事情”,效果良好。通过具体事情的磨练,更加清晰的体会到了实际练习对成长的重要性,希望在后续的时光里,自己仍然能够保持好奇心,坚持学习,创造美好的东西出来。</p>2017年个人总结https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Mon, 01 Jan 2018 00:00:00 +0000https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>2018年新年第一天,起的不早也不晚,天气晴的很好,阳光从窗外洒进来,给窗台上的多肉镶了一圈儿金黄。</p> +<p>每到这样的新年假期,我都会安排一天的时间收拾一下房间,然后坐在电脑跟前,回顾一下在过去一年里个人的经历和得失,考虑一下在新的一年里对自己的期望和改进要求,设立一些学习上的小目标,给新的一年提前充电。</p> +<p>这个习惯我已经坚持了四五年,主要以总结工作之余的个人学习和感悟,提取生活中的一些有趣经历,为自己在将来能够翻看回忆提供一些文字素材。</p> +<p>总结本身可能并不重要,但是这种回顾过去和展望未来的仪式感,每次都能使我得到激励,使我能站到一个更高的维度审视自己。</p> +<p>人们常说,了解自己是最困难的,我们可能永远都不能了解自己,只能无限趋近于了解,那我这样的总结,算是对了解自己所做的一种尝试和努力。</p> +<h2 id="学习与读书">学习与读书</h2> +<p>虽然随着年龄的增长,学习新的东西变得越来越困难,土话也有“人过四十不学艺”之说,但不得不承认,当今时代,学习成为了人人都必须修炼的一种能力,无论什么行业和职业,只有不断的学习,才能适应科技和文化的飞速发展。</p> +<p>有人说,最终人类比拼的将是学习能力,但这多少有点儿站在功利的角度,我所说的学习更多的是一种探索精神,一种想去了解自己了解世界的强烈好奇心。</p> +<p>今年买了不少书,技术类书籍和鸡汤类书籍各占一半,认真看进去的书不是很多,基本上每一本都翻了翻,但没有特别沉下心来看。</p> +<p>摄影类的书籍有《理光GR的随手拍摄心得》《纽约摄影学院教材》《摄影构图学》等等,这些归类到技术类书籍好像不太合适,但又确实是学习用的,看得还算是津津有味,其中给我带来最多收获的应该就是理光用户的那个随手拍摄心得,作者好像是台湾人,在读到之前我还难以想象摄影书还能这样写,基本上我感觉就是结合自己的故事重新写了说明书,读起来比较有吸引力,而且顺便把怎样使用相机也学了,真是一举两得。</p> +<p>学习数学、英语的相关书籍也买了一些,想重温一下高等数学,以及线性代数,感觉还是没达到预期目标,尤其是高等数学,基本上忘光了,连做课后的练习题都很困难,基于这些书倒是延伸学习了一些计算机图形学,这个算是意外收获,对计算机图形学里的一些概念如齐次坐标等等有了比较好的理解,尤其是使用矩阵来表示各种坐标变换,以前完全不知道内部实现的原理,直到今年我通过一边看书一边在excel里模拟了旋转平移和缩放的过程之后才算有了深入理解。</p> +<p>历史类的书买了两本入门册子,但是都没有读进去,畅销书《人类简史》倒是看了,写的确实不错,有一种以前读《万物简史》时的畅快,而且作者很会比喻,观点也独到,从很浅显的角度解释了人类发明的货币和公司这些东西。</p> +<p>趁着创业的热潮而大卖的关于创业的书也买了些,比如《从零到一》这样的,我看都是一些硅谷的创业成功者写出来忽悠人的,不过里面也讲了不少实话,看的时候就当是听作者诉说他是怎样取得成功的好了,反正他是这么认为的,虽然再来一次也可能不管用。</p> +<p>每年都会重新看看《黑客与画家》,虽然是一本很早的书,但是每年看的时候都有新的感触,也会产生新的影响,这个书的作者应该算是硅谷的创业教父了,他比较喜欢说实话,而且也喜欢思考,给我带来很多启发。</p> +<p>同样每年还会看看SICP《计算机程序的构造和解释》,这本被誉为神书的书,我一直没能完全看懂,今年借助YouTube,在上面听了两节MIT教授的课程,算是对前两章有了较深的理解,并顺便学习了LISP语言,这对于我以后折腾Emacs编辑器有所帮助,而且LISP语言的学习能够激发对计算机编程的深入认识,有一种超越编程语言的高维度感受,对计算过程的抽象很有可能是计算机世界的终极抽象,怪不得《黑客与画家》的作者说,未来的编程语言很有可能无限趋近LISP。</p> +<h2 id="关于拍照">关于拍照</h2> +<p>2017年我大概拍了四千多张照片,经过整理和挑选,留下来的也有差不多一千五百张,是我有生以来,拍照最多的年份,这个数字并不大,有些摄影师可能一天就达到了这个数字,但我这个业余爱好者,今年是一个突破,希望能够在明年以及更远的将来拍摄更多。</p> +<p>就像学习其他知识一样,如果只是听和看,不去亲自动手试一试,十有八九做的是无用功,不是说听和看不重要,我今年就读了好几本关于摄影的书籍,而是动手去练习更重要,10000小时的定律说的更多的也是练习,当然举这么多其他的例子更没用,游泳才是更好的例子,你不跳到水里根本不可能学会。</p> +<p>所以我今年能感受得到在摄影上的进步,一方面因为我读了很多关于摄影的书籍,无论是经典教材还是随手摄影的心得,这些书籍看了确实能够改善和丰富我对摄影的认知,另外我也在网上也观看了大量关于摄影的视频,大部分是在YouTube上看的,很多都是个人摄影爱好者开设的播客,这些内容虽然不成体系,但是也有不少可取之处,尤其是针对单个知识点进行的介绍,比如构图、后期、器材搭配等等。</p> +<p>关键还是因为我随身带了个相机,比起用手机来,我更喜欢这个理光的卡片机,虽然感觉并没有网上吹嘘的那么神化,但是还是很够用的,街拍神机名副其实,随身携带让我得一随时随地想拍了就来一发,比手机更有拍照的仪式感,而且画面质量确实比手机强的多,毕竟“底大一级压死人”,这个卡片机的传感器比手机的大了不知多少倍,拍摄夜晚或者光线较暗的场景时,手机拍的基本没法看,理光GR2基本可以胜任所有拍摄场景。</p> +<p>我能感受到最大的进步应该是在“构图”方面,比起对曝光的控制、后期调色等方面,我对构图有着天然的热爱,这虽然有些“形式大于内容”,但是我确实无法忍受一幅照片在构图上的失败,所以我现在在拍照之前,第一件考虑的事情竟然不是曝光,而是构图。这可能是因为现在的相机都已经智能化到自动控制曝光的地步,虽然有时候拍出来并不是想要的效果,但至少相机不会让你曝光失败。于是构图就成了拍摄首要关注的内容了。</p> +<p>我今年读的大部分摄影相关的书籍都是构图相关的,这些与绘画、平面设计类似的东西,我基本上东一下西一下的瞎看,不成体系,但也总结出了自己的一些原则,比如地平线一定要平,三分法放置画面等等。通过实际练习,我感到构图水平明显的变化,至少现在拍出来的东西一看就知道不是随手对付的,而是经过考虑和设计的,已经达到了业余爱好者的水准。</p> +<p>在练习中的感悟才是真正学到的东西,有的时候甚至能够跨越技能,从一件事情感悟到另外的事情上去,用一句今年比较流行的话来说就是“建立了联结”,通过练习,可以从拍照这个简单的事情本身,联想引申到对美的感受,无论是音乐、文字或者是其他的艺术品,人类所期盼看到的和听到的,就是愉悦的体验,而通过“平衡”、“对比”、“韵律”、“节奏”这些感觉的灵活运用,就是能让人感到愉悦,所以我现在比较能够理解艺术是相通的这句话了。</p> +<h2 id="关于资讯">关于资讯</h2> +<p>资讯的阅读是打发时间的最好方法,你看地铁上的人,几乎每一个人都捧着手机看新闻,当然也有刷剧和打游戏的,但据我的观察,大部分人都是在刷新闻。</p> +<p>资讯好像是一种食粮,每个人都如饥似渴的吸收,现代化的互联网技术和移动app,使得资讯触手可及,随时随地,吃个没完。</p> +<p>资讯又好像一种毒品,使人上瘾,如果有一个小时没有看到的话,就会浑身不适,非得打开浏览器或手机点两下不可,然后看到并没有什么有用的信息浮现的时候,才放下手机,内心得到了片刻的虚假平静。</p> +<p>其实不知不觉中,资讯消耗了我们大量的时间和精力,甚至成为了我们的枷锁,我们的眼睛仿佛除了资讯之外就看不到什么东西了,对其他东西的观察成了一种原始的应激反应,吃饭、睡觉、乘车,稍有闲暇的时候,就用资讯来填补。</p> +<p>好像我们的脑子已经无法承受在没有资讯刺激下的无聊,我们放弃了自己的思想,大脑的发动机已经不再运转,有的只剩下最基本的生理反应,这种情况所产生的空白,使我们恐惧,于是就吸取更多的资讯来填补,殊不知这些东西进一步把我们自己的思想挤的无处容身,脑子就更不能转动了。</p> +<p>我见过很多独处的人,在吃饭的时候,也不忘了掏出手机,我虽然没看到他的屏幕,但是可以猜想,看的无非就是一些“有趣的”文章。可怕的是,我自己有时候也这样,因为如果不这样我好像也吃的不香,觉得眼神无处安放,觉得这一段时间不知所措。</p> +<p>有一个关于“禅”的故事被说的比较多,大意是,有人问禅师“什么是禅?”,禅师回答:“吃饭就是吃饭,睡觉就是睡觉”,我最初听到这个故事或者段子的时候,根本无法理解,谁吃饭不是吃饭,睡觉不是睡觉呢。</p> +<p>后来想到关于吃饭时看信息,关于睡觉时胡思乱想,才明白,原来,吃饭就是吃饭,睡觉就是睡觉,是那么的难啊。</p> +<p>我在2017年有意识的限制自己获取资讯的时间,每当我忍不住想打开网页的时候,我就强迫自己坐下来写字,就写当下的脑子里想到的内容,想到哪儿就写到哪儿,完全不顾及条理性和先后顺序。</p> +<p>我原来还特别担心这样写出的东西根本不通顺,没法看,但是在坐下来写了两篇之后,我才发现,原来这些不加修饰和斟酌的文字,看起来是那么流畅,读起来非常顺口,就像自己跟自己在交谈。</p> +<p>而且这样做的一个很明显的好处是,屏蔽了资讯,用赵本山的话说“病毒关闭了,你的智商又重新占领高地了。”清空了资讯,给自己的大脑腾挪出可以思考的空间,很多自己的思想就涌现出来了。</p> +<p>先不用管他们是积极的还是消极的,根本不用识别他,站在一个旁观者的角度来观察,可能这就是禅宗经常说的“观照自己的内心”吧。</p> +<h2 id="关于写作">关于写作</h2> +<p>我在2016年的时候,坚持每周输出五百字,作为写作练习,这项活动开展了整整一年,写了好几万字,后来我在2017年停止在网上发表。因为我觉得输出的内容有些缺少思想,而想写出比较有思想的内容还是很有挑战和耗费精力的,尤其是考虑到有读者的观看,会给自己带来额外的压力,后来我在写字这一块开始写给自己看,内容也都散落在工作日志里了,没有整理到网上。</p> +<p>上面提到的关于将资讯时间用于写作的方法,来源于2017年我看的一本书, 叫《写出我心》,主要的内容是帮助十分焦虑的现代人通过写作的方式找回内心的平静。</p> +<p>书的作者为了解决内心烦躁的问题,曾经尝试过冥想、瑜伽等方法,但是效果都不太好,心理的念头仍然非常的多,挥之不去,起伏不定,甚至越来越糟,于是作者尝试使用写作的方式,将自己的念头不通过思考,直接书写下来。</p> +<p>然后他欣喜的发现,不假思索将自己的念头不断的书写下来,经过一段时间,竟然可以解决自己的烦躁,内心逐渐变得平静,于是他就把自己的这种体验和方法总结下来,写了这样一本书,并提出了具体执行的一些原则和要求。</p> +<p>我看了之后感到比较有意思,也想尝试一下,开始利用闲暇时间或碎片时间写一些无关紧要的文字,主要是自己的一些思考和心绪。我发现,写作的过程真的具有疏解内心压力的功效,然后我逐渐意识到,这不仅仅是写作,这是一种倾诉。</p> +<p>而倾诉,很可能是一种卸下负能量的过程,也是积攒正能量的过程,每个人都有倾诉的需求,以前我没意识到,原来倾诉是舒缓内心的一剂良药。</p> +<p>可能对于外向的人来说,这不是问题,因为在日常生活中,他们随时随地在向别人诉说和交流,向别人输出自己的感受或观点。但是对于内向者来说,可能比较缺少倾诉的出口。</p> +<p>不过除了说话是一种倾诉方式之外,写作、绘画、其他艺术创作等,应该都是有效的倾诉方法,写到这儿我发现,怪不得艺术家多为内向者。</p> +<h2 id="餐桌段子">餐桌段子</h2> +<p>2017年几乎没怎么看电视,不仅仅我自己,全家人也几乎都不看电视了,一方面是因为电视中的内容比较无聊,另一方面主要是因为孩子,孩子的作业较多,如果全家看电视的话,而且在吃晚饭的时候看电视的话,基本都会严重影响孩子的作业时间,而且一边吃饭一边看电视实在是不好的习惯,所以我有意识的在生活中取消掉了电视时间。</p> +<p>这样以来,刚开始大家都不怎么习惯,因为默不作声闷头吃饭实在是有违传统,用孩子的话说就是场面变得好尴尬,整个餐厅只回响着我biaji嘴的声音。</p> +<p>偶然的机会,我跟金妍开始尝试在餐桌上讲段子,都是一些学校的趣事,或者吐槽日常生活中的事情,可吐槽的对象主要包括“老师布置的作业”、“妈妈做的饭菜”、“爸爸的坏毛病”,或者是对于学习中的一些技巧。</p> +<p>由于孩子笑点很低,所以基本上我都是以原创和自制的段子为主,讲出来都比较冷(比如:为什么金币的颜色是黄色?答:因为“金碧辉煌–会黄”),但是,充分发挥脱口秀精神时,起到的效果都很不错,常常一顿饭吃下来笑到腮帮子疼(请勿模仿,吃饭还是尽量别笑,尤其是米饭)。</p> +<p>我想这些在未来都能成为孩子们成长的美好回忆吧。</p> +<h2 id="总结">总结</h2> +<p>2017年如果汇总一个关键词的话,那就是“认识自己”,到了一定的年纪之后每个人都在承受生活中的各种压力,这些压力一部分来自别人,一部分来自自己,其中自己的那部分所占比重最大。</p> +<p>中年男人到了这个时间点,或多或少都会有些迷茫,多少都有一些积累,但是又缺少安全感,失去了一些年轻人的锐利,无论从精力还是身体健康状况,都有所下降。</p> +<p>所以如果想要突破,不仅仅是努力的事情,更多的是要思考,给自己定位,并有效率的付诸实践。</p> +<p>以前在学习时间管理的时候,陷于方法和工具,所以效果不明显,直到今年才认识到,无论任何的时间管理方法论,要想有好的效果,首先要想清楚自己的目标,就好像是确定目的地似的,不然即使掌握了方法,也同样无济于事。</p> +<p>就像企业一样,一个人也同样需要战略,如果没有战略,就像是一艘行驶在大海中的船,却没有舵,随波逐流,不知道飘向何方。</p> +<p>往大了说是叫战略,实际上是用来确定所做事情优先级的指导思想,只有定出来战略,才能在日常工作和生活中知道什么事儿是必须要做,什么事儿是能不做就不做。</p> +<p>所以2017年最大的成果,应该就是考虑清楚了自己的目标和想要到达的地方,感谢这个世界有那么多美好可以让我迷恋,未来我会投入更多时间和精力到我所爱,因为我发现我努力所追求的无非就是一种状态:<strong>那种可以让我痴迷沉浸进去的一种状态。</strong></p>听说你有较强的团队协作能力?https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/Sat, 18 Nov 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/<p>几乎在所有的职位招聘要求里,都包含一条“有较强的团队协作能力”,与之对应的是,几乎每个人都会心安理得地在自己的简历里写上“有较强的团队协作能力”,就像写“本人熟练使用Office”那样心安理得。</p> +<p>无论是出题的人,还是答题的人,可能都没有认真的考虑过,什么是“团队协作能力”,可能只是在内心里觉得“好像加上这么一条,会显得更像那么回事儿吧”。</p> +<p>近期做了一些与“个人能力评估模型”相关的工作,使我不得不认真思考这个问题。我发现,想把这个事儿解释清楚,并落在实实在在的执行上,还真没那么容易。</p> +<p>首先,“团队协作能力”可以是对一个团队的衡量,也可以是对一个人的评价,接下来根据我个人粗浅的观察和分析,谈谈对个人能力的评价,即我觉得一个人怎样算是“有较强的团队协作能力”了。</p> +<h4 id="0尊重他人">0、尊重他人</h4> +<p>可能是人类与生俱来的天性所致,要做到这一点还真是相当不易,且不说地域、种族、信仰等比较沉重老套的话题(这些方面往往最能暴露天性),即便是在日常的讨论中,我们也很难做到在面对不同观点时以对事不对人的态度来讨论,很容易将一件鸡毛蒜皮争论上升致对个人的全方位评判,争到最后往往要捍卫的不是真理,而是自我“对”与“错”的“尊严”。因此,做到充分的听取他人的意见,理解各方的立场与观点,尊重并理解与自己不同的声音才是良好协作的开端。</p> +<p>说到这里我忽然想到当年庄子跟惠子俩人在河边关于一条鱼是否快乐争论半天,至今未分出胜负,可见庄子若论团队协作,不求行,打嘴炮行。</p> +<h4 id="1勇于担当">1、勇于担当</h4> +<p>日常生活中,比较好协作和沟通的人往往具有比较能担当的性格,对于他人(所谓自负者眼里的“猪队友”)做错事情而造成的后果,这些人第一时间是给予安慰和指导,而不是指责和抱怨。相反,如果第一时间选择将“锅”甩的远远的,立即划清界限,很难相信其能具备多强的协作能力。</p> +<p>所以,既然是协作,肯定会涉及多个人的配合,能否做到包容他人并勇于担当,应该是协作的基础。</p> +<h4 id="2谦虚的态度">2、谦虚的态度</h4> +<p>谦虚是一种美德,这大家从小就知道,“三人行必有我师”也早已挂在嘴边随时准备被调用,可是在现实生活中我们所谓的“沟通”却总是想着在这个过程中教别人些什么。在团队中做事,能否空杯心态,听取他人的建议和意见,而不是固执己见,觉得所有人都不如你。每个人都有自己擅长的事情,多看到别人的优点,谦虚地学习,应该没有人会喜欢跟狂妄自大目中无人的人合作吧。</p> +<p>这一点古人做的就比较好,比如著名的“一字之师”的故事,写诗那哥们儿,“前村深雪里,昨夜数枝开”被人改成“前村深雪里,昨夜一枝开”,这哥们儿不但没有恼怒反而当即称改诗那哥们儿为一字之师,可见其谦虚好学。(反观自己,代码被人改了往往会有些不爽)。</p> +<h4 id="3分享精神">3、分享精神</h4> +<p>在“伸手党”横行的年代,拥有分享精神无疑是一种比谦虚还要美的美德,无论是分享自己的观点、心得还是见闻,都可以在过程中得以升华,实现双赢的效果。而具有分享精神的人往往在团队中拥有较好的人缘和评价,我个人始终认为知识越分享就掌握的越牢固,信息越分享沟通就越顺畅,所以是保守封闭还是乐于分享应该也是衡量团队协作的一项重要指标。</p> +<p>不过,也许跟团队的性质有关,比如FBI的特工可能就不能太有分享精神吧。。。</p> +<h4 id="4表达能力">4、表达能力</h4> +<p>人的愤怒大部分来自于无法表达自己,很多人的狂怒往往伴随着这么一句话&mdash;-“我说了这么半天你怎么还不明白?!”,对于性子急躁着表现更为明显,这种愤怒,与其说是对别人不理解的愤怒,倒不如说是对自己比较弱的表达能力的愤怒。这个倒是可以锻炼,清晰的逻辑思维和较好的文字语言功底都能大幅提升表达能力,如果让我总结关于这个能力的“技巧”的话,就四个字儿&mdash;-“抓住重点”。</p> +<h4 id="5团队利益与价值观的认可">5、团队利益与价值观的认可</h4> +<p>即便做到以上多点,如果不能认可自己所在团队的价值观的话,也很难得以发挥。要做到这条,首先是对团队利益和价值观认知的问题,能否看清团队利益所在,知道该提倡什么和拒绝什么,是基本。其次,对于需要大家共同遵守的原则是否发自内心的认同,否则作为个体应该会比较难受,高效协作也就无从谈起了。当然这一点来说,不仅仅是对个人的要求,能否理出清晰的原则并身体力行的去执行,更是对团队领导者的要求了。</p> +<p>写了这么多,其实都是人人明白的道理,也都能明白难在具体的执行,不过,花一点儿时间整理一下思路,就当是一个自我反省了,当然要是能正向影响一些人,并给人带来一丢丢的思考和改进念头,那就更好了。</p>压力比较大?讲个笑话放松一下https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/Fri, 07 Jul 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/<p>一些老段子,放松一下(来自知乎https://www.zhihu.com/collection/124380021?page=2)</p> +<h3 id="给我一个坚定的眼神">给我一个坚定的眼神!</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-a0750a572a35cda7.webp" +width="600" +height="317" +loading="lazy" +alt="给我一个坚定的眼神" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="454px" +></p> +<h3 id="无题">无题</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-0b95397b5dba2834.webp" +width="426" +height="458" +loading="lazy" +alt="无题" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="223px" +></p> +<h3 id="怎样制作草莓酱">怎样制作草莓酱</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-90a50bac1f3a38d6.webp" +width="350" +height="1737" +loading="lazy" +alt="草莓" +class="gallery-image" +data-flex-grow="20" +data-flex-basis="48px" +></p> +<h3 id="能让你产生强烈情绪的图片">能让你产生强烈情绪的图片</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-5af7967d7aced9ce.jpg" +width="440" +height="4122" +loading="lazy" +alt="能让你产生强烈情绪的图片" +class="gallery-image" +data-flex-grow="10" +data-flex-basis="25px" +></p> +<h3 id="填空题">填空题</h3> +<p>小学时有道关联词填空: +他( )牺牲生命,( )出卖组织。 +有人填“宁可 也不”;有人填“害怕 , 所以”; +有人填“与其 不如”;有人填“即使 ,也要”; +更有个人全校出名,他填的“白白, 忘了”。 +评论里有个清新脱俗,苦大仇深的,他填“大舅,二舅”!</p>每个周末的下午,这样做把你的效率提升百倍https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/Sun, 23 Apr 2017 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/<p>为了避免浪费时间带来的焦虑,人们一般会选择做些什么来保持忙碌,或者至少在看起来是十分忙碌的样子。即使当下所做的事情可能对于完成任务目标来说毫无意义,甚至是背道而驰,但是为了逃避思考,往往沉浸在自己已经“很忙了”、“没时间考虑”这样的假象当中,乐此不彼。</p> +<p>我以前在出行的时候,有时坐地铁到一个陌生的地方,不知道出了地铁口该怎么走,这个时候我就会比较焦虑,一般会先随便朝一个方向走一段,然后一边走一边查看地图,很多时候发现我前进的方向与地图上规划的路径是相反的,但是我的潜意识里认为,我在走动中查地图,比我站在那儿不动查地图要节约时间,要安心一些。这显然是不对的。在一次内部分享会上,我跟大家讲了自己的故事和体会,来说明每个人都或多或少都有这样的逃避倾向(有心理学家指出,事实上脑力劳动才是最累的体力活儿,所以人的天性都是逃避真正的动脑思考的,最好是别人都替我想完了)。</p> +<p>意识到以上的思维模式是错的以后,然后就是想办法来避免。首先需要解决的就是,针对工作中,思考上的懒惰。当然这事儿早就有人发现并指出了,比如著名的那句“战术上的勤奋掩盖不了战略上的懒惰”,以前还有句老话叫“不仅低头拉车,也要抬头看路”等等。</p> +<p>但是都没有提供更加接地气的具体方法。我有一个具体可行的方法,操作起来简单有效,又花不了太多时间,在我看来,对于每一个职场中人都十分适用,除非不思进取、天生与效率为敌(此类人乃将来被AI替代的主要对象)。</p> +<p>具体做法就是:** “在每个周末的午后,抽出30分钟时间,把你认为你下周最重要的三件事确定出来,列到你的工作计划中去。” **注意,是三件,不是更多,此举目的并非让你制定完美计划,而是判断什么事情是重要的,如何判断最重要?很简单,问自己一个问题即可:“我在完成这三件事儿之后,是不是即使其他事情都不干、躺下睡觉,也能认为本周工作是成功的,至少是及格的?”</p> +<p>这样做好处有三,都是立竿见影的效果。</p> +<h3 id="1这是一个很好的重新审视工作的机会">1、这是一个很好的“重新审视工作”的机会。</h3> +<p>即,“抬头看路”。暂时放下手中的忙碌,重新认识一下自己的工作目标,你会发现无论任务有多繁杂,要达成的目标就那么几个,最终的目的地就在那儿,所有任务都应该是指向那儿的,如果不是,那就更简单,降低优先级,或者干脆从任务清单里把它踢出去。</p> +<h3 id="2这样做可以有效避免周一综合症">2、这样做,可以有效避免“周一综合症”。</h3> +<p>现在人,矫情起来谁还没有个心理疾病啊,各种“症”往自己身上套,最明显的就是“周一综合症”或者“节后综合症”,更有甚者称之为“上班的心情比上坟都沉重”。焦虑的根源在于“不可控”,不知道自己做的事情与承诺的目标有什么关系。列出重点之后,先做这些事情,剩下的事情就越做越轻松了。提前考虑好了,就化被动为主动了,心情自然不同。</p> +<h3 id="3便于跟踪工作计划">3、便于跟踪工作计划。</h3> +<p>各方示例都表明,有计划地开展工作,要比稀里糊涂开干效率高的多,但是“有计划没跟踪”也是一个很致命的问题。我在每个周末的思考时间里,都会查看团队成员发来的工作周报(我要求他们也这样做),一是跟踪上周任务完成情况,二是查看下周的工作重点是否偏离既定目标,如果偏离就及时修正,避免了时间和资源的浪费。</p> +<p>习惯虽小,但是一旦养成,威力无穷。为了配合我们高效的工作和管理方法,我们开发的移动办公应用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>“遥知”</a>* (是一款轻量级主打体验的共享协同办公应用) *做出了十分匹配高效工作者的功能,帮助大家养成高效工作的习惯,避免在思考上的懒惰,借助这款工具,无论在工作方法上,还是协作效率上,我们的团队都得到了显著的提升。</p> +<h3 id="硬广时间扫码直接下载遥知httpsphoneq365powercnjadestoredetailnameminierp开启高效工作之旅吧">硬广时间:扫码直接下载<a class="link" href="https://phoneq.365power.cn/jade/store/detail?name=miniErp" target="_blank" rel="noopener" +>遥知</a>,开启高效工作之旅吧!</h3> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-96db89b6821685de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="免费试用遥知" +></p>关于远程办公的思考https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/Sat, 18 Feb 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/<p>据悉,Github有超过一半的员工遍布在全球各地,而开源组织OpenSSL的团队则一直都未在线下见过面(直到后来有<em>某老板</em>资助他们在线下碰了一次面)。随着科技的进步和社会的高速发展,知识型工作的办公方式正在逐渐由集中办公向分布式远程办公转变。</p> +<p>远程办公带来的好处非常明显,比如:有效解决了员工上下班通勤浪费时间的问题,顺便还缓解了交通压力,对环境保护亦有贡献;抛开了地域的束缚,可以吸引全球各地的人才参与,对企业的人才战略有积极影响;有效降低企业办公场地投入;团队效率、员工积极性都能得到有效提升;等等。</p> +<p>但是如何具体的实施远程办公,不同的团队会有不同的见解,我个人一直热衷于推进办公模式的改进,也做过相关尝试,下面根据我的浅见,从几个方面总结一下远程办公的关键要素:</p> +<h3 id="成果目标的明确定义和有效检查">成果目标的明确定义和有效检查</h3> +<ul> +<li>远程办公对于团队管理要求更高了,一个团队要统一一个目标,大家对于目标的定义应有一致的理解。须将目标逐级分解具体到人,并提前设计好由细节到整体的成果装配流程。</li> +<li>每一种类型的任务要有对应的检查清单(checklist),每日的工作成果都要通过检查清单的检查。</li> +<li>团队的工作成果要有装配和构建系统进行组装,并有一个全局的检查清单,有专人负责检查。</li> +<li>员工自我检查,组长验收检查,配置管理组装检查,质量管理进度跟踪检查。</li> +</ul> +<h3 id="沟通的及时性和有效性">沟通的及时性和有效性</h3> +<ul> +<li>所有人应该可以立即呼叫到所有人,反应是实时的,不能超过30秒的延迟。</li> +<li>语音,文字使用统一的语言体系,命名和表达方式需要规范化。</li> +<li>可以随时截屏和录制一小段视频传递给任何人,必要时需要共享显示器和白板的内容。</li> +</ul> +<h3 id="工作进度跟踪">工作进度跟踪</h3> +<ul> +<li>有效、深入细节的项目管理,需要有完善的项目台账,实时反应项目的状态。</li> +<li>显式任务管理,团队里的所有人要知道所有人的工作任务情况,可区分普通任务和私密任务。</li> +<li>项目生命周期管理细化到任务生命周期管理,起源、分解、执行、成果检查、后评价、归档入库、装配完结。</li> +</ul> +<h3 id="办公状态模拟">办公状态模拟</h3> +<ul> +<li>为防止远程办公缺少仪式感,需要规定集体的远程互动,举行每日开工会议和收工会议。</li> +<li>严格统一上下班时间,确保大家同时在线。</li> +<li>每周至少一天线下见面会议,集中起来讨论工作。</li> +</ul> +<h3 id="信息化工具支持">信息化工具支持</h3> +<ul> +<li>使用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>的“小纸条”进行及时沟通。</li> +<li>使用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>的项目管理和任务管理进行协作管理。</li> +<li>使用qq、视频直播等工具进行远程集体互动。</li> +<li>使用gitlab做好配置管理和成果审查。</li> +<li>使用docker、jenkins等做好产品的持续集成和每日成果构建。</li> +</ul> +<p>为了在我们的团队更好的推行远程办公模式,我们不断探索和思考,去年初,我所在的团队开始小范围尝试远程办公的模式,期间遇到了一些问题,我们也做出了一些工作方式上的改进,总的来说利大于弊,经过这些尝试,更加坚定了我们未来逐步迁移至远程办公模式的决心,也促使我们研发了移动端协作工具<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>,致力于帮助更多的知识工作者更高效的远程办公。</p> +<p><img src="https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/yaozhi.jpg" +width="200" +height="200" +loading="lazy" +alt="遥知" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p>未来企业扁平化管理中的信息化需求https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/Sat, 11 Feb 2017 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/<p>“扁平化”管理并不是什么新鲜的概念,早在上个世纪就有公司在尝试通过压缩管理层级来实现扁平化管理,并取得了不错的成效,以至于有一阵子“扁平化”管理理念大有席卷全球之趋势。</p> +<p>但后来事实证明,在缺少有效的沟通和协作机制之前,扁平化管理的瓶颈往往很快出现在管理者身上,原因很简单,传统的“金字塔”式管理虽然等级多、决策下达缓慢,但是符合2/8原则,一个管理者只需要管理较少的几个人,沟通比较顺畅,扁平化管理模式下的管理者需要对接的人较多,很容易形成沟通瓶颈。</p> +<p>所以“扁平化”在火了一阵子之后,不少企业掉进坑里挣扎了一阵子之后,又回归传统的“金字塔”模型。</p> +<p>但是,随着技术的进步,很多工具得以改进,好多传统的“真理”也不再那么有效(比如一人最多管理7个人),这一点上来说,很多国外的互联网公司已经快速发现改进点,并将“扁平化”管理结合了现代化工具和理念成功在自己的企业推行。</p> +<p>比如著名的谷歌。无论是技术还是管理,谷歌一直是走在时代前列的公司,其管理方式或企业价值观虽不能照搬,对于我们仍有一定的借鉴意义。</p> +<p>最近读了两本关于谷歌公司的书,《重新定义公司》和《重新定义团队》,书中讲解了谷歌公司对未来公司组织、团队管理的尝试和思考,在信息文明全面取代工业文明的时候,传统的组织方式和团队管理会怎样被超越。两本书从文化、战略、决策、人才、沟通等多个方面阐述了未来企业的改进可能。</p> +<p>内容比较多,不同的人看了可能有不同的收获,通过读书,一方面我发现了未来组织对扁平化管理的需求,然后思考了企业信息化对这一管理模式的支撑,下面简单谈谈我的看法(比较有意思的是,谷歌公司的员工也在抱怨他们自己开发的IT系统不好用)。</p> +<p>###利用信息技术提升管理者与员工在“扁平化”管理下的沟通效率。 +通过互联网、移动应用可以实现所有人的实时在线,无论是任务指派还是成果检查,或者随时沟通一些思路和想法。所以我猜测,未来的企业,可以一方面在线下仍然建立传统的“金字塔”层级结构,另一方面,通过移动应用工具,在线上建立“扁平化”的虚拟管理团队,企业的管理者可以获得更强的管控力和执行力。</p> +<p>###利用信息技术加强企业文化的建设。 +利用现代化的信息工具,企业内的每个人都可以更迅速的向团队传达及时的信息,分享自己的观点、技能。工作的目标更容易清晰传递,工作进展也更容易跟踪,管理者更方便地关注每一个成员的状态,只要积极利用工具向大家分享信息,“企业文化”就不再是一句虚无缥缈的口号,而是变成真正融入到每一项工作中、影响每一个成员的实实在在的观念、模式、原则。</p> +<p>###利用信息技术放大“好员工”的影响力。 +称职的管理者在团队中一定是认可并推崇积极优秀人才、打击并消灭低效消极人员的,传统的方式下一个好员工的影响力可能只局限在自己负责的那一部分工作,但是利用社交化的信息工具,在管理者的推动下,可以放大好员工的影响力,一个明星员工可以给更多的人带来正面影响,优秀可以“传染”给更多人。</p> +<p>###方便打造学习型组织。 +学习型组织,或学习型团队,现在大家提的比较多,构建一个学习型的团队是很多管理者的共识。信息技术提供的在线工具和移动应用可以让团队管理者更方便的实现打造学习型组织的理想。知识分享除了通过线下的活动进行外,还可以随时在线上进行,无论是看到了好的文章或者想系统的给团队成员讲解某一项技能,都可以利用信息工具在线上进行。</p> +<p>###“标准”与“流程”不再是束缚,而是助手。 +很多人提到企业信息化往往第一个想到ERP或传统的OA系统,但是未来这两个东西一定为消亡,或者换一种方式存在。传统的“标准”和“流程”是“死”的,听起来就没有什么生命力,未来的信息化工具在这个方面要想突破,一定是高度可定制化的,通过定制化,适应企业的高速发展,通过定制化,甚至让使用信息工具的人自己“创造”功能。</p> +<p>###遥知 +以上是关于新形势下企业信息化需求的简单思考,我所在的团队也正在做一些尝试,管理上,向扁平化方向发展,信息化工具上,我们自主开发了一款满足上述需求的移动应用产品&mdash;-<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>,目前已经发布,正在积极推广中,有兴趣的可以尝试一下,虽然距我们设定的目标还有一定的距离,但对我们自己的团队管理已经初见成效,通过不断的迭代和改进,我相信我们会成为未来企业信息化管理工具的引领者。</p> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-9accb32495a84ba4.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="遥知" +></p>2016年的个人总结https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Mon, 02 Jan 2017 00:00:00 +0000https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>每个新年假期我都会抽出一个下午的时间,回顾一下这一年所经历的事情(工作以外),总结一下得与失,回顾过去的同时顺便展望一下美好的未来。</p> +<p>2016有很多值得怀念的,也有很多值得感谢的,从几件小事谈起,简单总结一下生活。</p> +<p>0 、读书,2016年初定下原则,多看书少看电影,结果执行的还不错,朋友给推荐了一些书,自己也随机的买了一些,利用晚上睡觉前的一些时间累计下来一年也能看个十本八本的,印象比较深的有白先勇的《台北人》、蔡崇达的《皮囊》、村上春树的《当我跑步时我谈些什么》、东野圭吾的《解忧杂货店》、王小波的《万寿寺》。看完《当我跑步时我谈些什么》之后还冲动地跑了一个月的步,后因天气原因未能坚持(也不遗憾,姿势不当可能损伤关节)。技术类书籍没少买,每年仍看一遍《黑客与画家》,今年人工智能和大数据方面发展比较迅猛,陆续看了一些与之相关的书,对于科技的发展保持密切关注。</p> +<p>1、写字,每周都在简书写一些文字,记录一些心得体会,或者对一些事物的看法 ,质量参差不齐,大部分文字都未经推敲,纯粹自娱自乐。虽错把创作冲动当才华,但比起只说不做,我毕竟坚持把思想落实在了行动上了,一些文字也能引起共鸣,甚至有朋友打赏鼓励,最后统计了一下,写了五万字,一共收获了一百多块赏金,其中老妈、老妹打赏最多。</p> +<p>2、沉思录,从年初开始在微信朋友圈坚持做的一个小试验,每日睡前将当日坐车或刷牙时考虑的无聊问题,总结一段文字,发到朋友圈,浅薄幽默为主,记录心情为辅,偶有正能量鸡汤出没,好在我的朋友大都了解我的性格,通过这样一个小互动,得到大家很多的鼓励,谢谢你们。</p> +<p>3、脱发,虽然健康问题不容忽视,但是随着年龄的增长,脱发,是每一个“聪明”的中年男人都要面临的问题,就像我大学时第一次丢自行车似的,刚开始不敢相信,到后来,不得不接受这个事实。小区门口理发店的老板,给我剪了十多年的头了,从最初不断夸赞我头发浓密,到现在已经开始主动帮我掩盖局部地区的稀薄了(不过我还是没在他们家办卡)。不过还好,至少老年时我不会为是否需要染发所困扰了。</p> +<p>4、幽默与抑郁,幽默的人比较容易抑郁,据说很多喜剧大师如卓别林、周星驰,甚至很多段子手如赖宝,都有抑郁症。原因是幽默的人一般不太会处理自己的负面情绪,往往使用幽默的手段来进行心理防御,负面情绪得不到发泄,造成内伤。不过我还好,庆幸还没幽默到那种程度,自然也就不会抑郁那么狠,作为一个后知后觉的“慢性子”在经历的事情多了之后也能想明白不少问题,现在已经基本上不太会被别人的期望和评价所影响,知道关心自己的人是谁,在意该在意的,忽略该忽略的。</p> +<p>5、老爸的忆苦思甜,父母每年暑假都会过来住一段时间,为了表示诚意,这段时间我几乎每天都要跟老爸喝两杯,三杯酒下肚,老爸必然通过将各种故事对我进行教育,老爸讲故事有个特点,那就是保持在故事框架的基础上,为了达到更好的效果,可以进行适量的改动(比如《武松打虎》这一回,武松最多的一次是喝了72碗酒才把老虎打死的)。所以虽然我早已将忆苦思甜的框架烂熟于心,但每次捧哏的时候还是得认真对待,虔诚的接受“再教育”。毕竟老爸尝过挨饿的滋味,所以我经历的这些困难在他面前基本无颜提起。</p> +<p>6、“克己”,我在办公室放的有一本《传习录》,里面记载的都是明代心学大师王阳明与弟子、朋友的对话或书信,我古文水平很次,看起来磕磕绊绊,但是偶尔也会拿出来翻一番,说不定哪天就能领悟到一些东西。某日看到一段对话对我启发很大,了解到很多道理都有千丝万缕的联系,比如很多人看过的《高效能人士的七个习惯》,其中第一个习惯就是“积极主动”,大家也很推崇“积极主动”,但我某天在看《传习录》的一段对话时才更加理解这个“积极主动”了</p> +<blockquote> +<p>“弟子问王阳明为什么平时道理都明白,遇到事情的时候却还是难以控制自己,老王说,那是因为你经历的事情还不够,没能克己,你还是应该在事情上磨练自己”</p> +</blockquote> +<p>这里的“克己”虽然说的是在事情上磨练自己,但是怎么磨练?其实就是遇事要积极主动,不放过任何可以锻炼自己的机会,这样才会有进步,也就不会出现道理都懂,但实际没懂的情况了。</p> +<p>7、时光倒流,有天金妍问我,时光真的能倒流吗?为了严谨一些,我回答,现在不能,以后或许可能。然后我问她,如果时光可以倒流,你想回到什么时候?她说,我想回到小时候。小时候?多小?我问她。她说,我想回到4岁(幼儿园)。看来从上了小学,我们的人生就开始了战斗模式。我说,那等着哪天科技发达了,咱们一起回到小时候吧。我没忍心说,其实就算时光可以倒流,我们自己是不可能倒流了,我们的人生就像是离弦的箭,开始了,就永远不能回头,只能不断向前,冲刺再冲刺,然后在向前的过程中,去寻找美好的体验和感受,并努力赋予这个过程以意义。</p> +<p>时间过的很快,2017年我希望自己能够成为一个更好的 人,读到更多好书,听的更多好歌,做出更美的产品,坚持良好的习惯,关注他人的体验,向身边的人多学习,并坚持自己的梦想,向快乐出发!</p>写点儿东西,以防自己把别人的知识当成自己的https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/Sat, 24 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/<p>作家余华在<a class="link" href="https://www.douban.com/group/topic/38345927/" target="_blank" rel="noopener" +>《我能否相信自己》</a>里写的一句话让我看了很有触动:</p> +<blockquote> +<p>“那些轻易发表看法的人,很可能经常将别人的知识误解成是自己的,将过去的知识误解成未来的。然后,这个世界上就出现了层出不穷的笑话。”</p> +</blockquote> +<p>这正是我所担心的,担心知道的太多,明白的却又太少。前者容易造成焦虑,信息的过载,或者想的太多。后者则导致在实际生活中面对问题时仍旧束手无策。</p> +<p>面对互联网上大量的信息和资料,为了缓解焦虑,大部分人都有两个习惯,一个是收藏,一个是转发。</p> +<p>我曾经维护着一个巨大的笔记列表,里面全是我多年来在互联网上搜集的各种资料和文章,从工具技术到人文自然与哲学相关的,都有。我还耐心的给每篇文章都增添了标签进行分类,以便“以后”更方便的查找和“仔细阅读”。</p> +<p>然而,事实是,永远会有更新的内容出现,然后动动鼠标就能收藏,但是再也没找到机会进行“仔细阅读”,当时那种“留下来慢慢看”、“以后会有用”的感觉是那么强烈,但是,真的很少再想打开看一眼。那些文章永远的躺在收藏夹里,累计出来的数字越来越大,甚至开始让我误以为那些东西我都懂了。</p> +<p>另一个习惯就是“转发”,看到好的东西就想分享,这是一个好习惯,但同时大量的分享也反映了一个很细微的心理激励过程,即,如果我转发某篇文字,里面提到了很多我十分认可的观点或思路(但事实上我可能根本做不到),我就忍不住要转发出来,在转发的那一刻,我的内心深处隐约觉得,好像离“做到”又进了一步(其实并没有)。</p> +<p>我想不仅仅只有我才是这样,应该很多人都有这种习惯和心理。</p> +<p>后来,我意识到了这一点,逐渐的开始改进,直到有一天我想明白了,自己不应该胡乱发表连自己都不能明白的观点,自己知道的东西不一定就能成为自己的知识。于是开始有意的控制信息的获取,转而开始尝试着将自己能想明白的东西用文字组织一下,开始“消化”知识,通过文字重新构建自己的“知识体系”。</p> +<p>书写东西实际上是一个思考的过程,很多写作高手看起来轻易就能写出精彩的文字,事实上底下支撑的并不是他有多强的“写作”能力,而是他的“思考”能力,他能否构建出一个他想要表达的形象,一个完整的、具体的形象,然后剩下的就是写出来。</p> +<p>所以说,能够写出来的东西,至少,表明了作者可以在内心里构建一个清晰的影像,对于自己的知识,有了更进一步的理解。</p> +<p>从将知识写成文字开始,到真正在现实中有效使用,再到可以传授给他人,慢慢的“我知道的”,就真的变成“我懂得”了。</p> +<blockquote> +<p>“我的大脑就像是一口池塘,别人的书就像是一块石子;石子扔进池塘激起的是水波,而不会激起石子。”“因此别人的知识在我脑子里装得再多,也是别人的,不会是我的。”</p> +</blockquote>应该自己动手做一些东西了https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/Sat, 10 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/<p>学会制造和使用工具应该是人类区别于其他物种的最重要的一项区别,所以DIY应该是一种原始的冲动。每个男人都应该有一个属于自己的工具箱,或者更近一步,一个工作台。</p> +<p>据说德国的制造工业之所以发达就是因为人家从小就培养和锻炼孩子的动手能力,几乎每个家庭都拥有全套的机械维修设备,小孩从几岁开始就趴在旁边看老爸在那儿捣鼓各种东西,骨子里就渗透了DIY的文化。</p> +<p>这方面中国男人明显做的比较差一些(咱们当然也有高手,但从比例上来说还是太少了),一方面可能是因为从小所接受的教育比较注重理论文化知识、轻视实际操作能力,另一方面也可能是我们的人力相对廉价,有什么事情直接找专业工人搞定,老外的人工费用太高,动不动就找人做的话肯能花钱比较心疼。</p> +<p>我身边认识的人也有比较能动手折腾的,但他们很少因为这样的技能而得到尊重,最后往往沦为一个免费修理工。不过也没关系,动手折腾带来的乐趣本身比什么都重要。</p> +<p>最近偶然在网上看到DIY达人上传的自制机器人的视频,发现了更大的世界,原来有这么多喜欢动手DIY的人啊,赶紧去Youtube搜索一下,结果搜到大量视频,小到使用打火机制作迷你喷壶,大到在自己家后院架设完整的游乐场过山车。看过之后,赞叹和羡慕之余,感觉竟然还有些蠢蠢欲动。</p> +<p>以前也喜欢动手修理一些东西,尝试制作过纸箱收音机之类的玩意儿,但随着年龄的增长,逐渐失去动手的机会和时间,以至于现在几乎彻底丧失了此类能力。</p> +<p>所以呢,行动最重要,既然喜欢自己做一些东西,那不妨先从丰富和建设自己的工作台开始,然后一边鼓捣软件,一边鼓捣硬件吧。</p>AI会是人类最后的发明吗https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/Sun, 04 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/<p>最近在读一本书<a class="link" href="https://book.douban.com/subject/26855627/" target="_blank" rel="noopener" +>《我们最后的发明》</a>,作者在书中表达了对人工智能发展的深度担忧。并阐明了一个耸人听闻的观点——人工智能将带来人类的毁灭(比核武器带给人类的伤害要大多了)。</p> +<p>客观来说,目前的人工智能仍然处于较为低级的阶段,只能应用于非常窄的专业领域(专业术语叫ANI,狭义人工智能),如文字处理、语音识别、图像识别、棋类对弈等等。受制于硬件环境的制约,对于这一类技术的研究曾经一度停滞不前,但近些年开始,基于大数据技术和生物技术以“深度学习”为代表的“机器学习”类技术的崛起,给人工智能带来了高速发展的可能。</p> +<p>AlphaGo战胜了人类围棋手已经被说的太多了,举两个其他的例子,大概还是在前年的时候,我研究过一段时间的基于图像识别的文字识别技术,阅读了很多资料,做过一些尝试,发现很难将文字的识别率提升到可以接受的水平,以至于沮丧的认为电脑不可能战胜人脑,因为三岁的小孩就可以轻易的分辨出照片中的动物是一只猫还是一只狗,但是电脑却判断不出来。然而没过多久我就看到新闻,谷歌已经通过“深度学习”技术通过让程序大量的阅读图片(谷歌的数据量很大),使得程序已经可以自动发现在任意图片中的“猫”,而且这还建立在人类从来没有告诉他“猫”这个概念的前提下。就在前几天,谷歌又爆出新闻,通过观看BBC的电视节目,他们的程序已经“学会了”读唇语的技能,而且识别率已经远远高于人类的读唇语专家(从这一点可以看出,电脑一旦某个方面超越人脑,人脑就再也没有机会追赶了)。</p> +<p>这还只是ANI,随着时间的推移,科学家们肯定蠢蠢欲动,开始着手研究AGI(广义人工智能),通用的人工智能,也就是说在智能上各方面均能达到人类的级别,这才是真正意义上的人工智能,也是历代人工智能工作者梦寐以求的结果。</p> +<p>可是有个比喻说的特别好,说通用人工智能就像是一列高速前进的火车,我们站在站台上远远看着它飞速向我们奔跑过来,然而就在赶到我们跟前的那一刹那,火车并没有停歇,而是从我们身边呼啸而过,将我们远远的甩在身后。这个时候的人工智能就是所谓的ASI(超级人工智能)。</p> +<p>而且,据很多持悲观态度的分析人士(如本文所提到《我们最后的发明》一书的作者)所设想,从AGI到ASI的进化时间,要比从我们现在发展到通用人工智能要快的多,根本不是一个数量级,也许我们盯着屏幕眼瞅着我们发明的通用人工智能在短短几分钟内进化成为超级人工智能,然后,剩下的事情,就很难设想了,作者在书中提到了好多可能性,遗憾的是,没有一种可能是对人类有利的。</p> +<p>为什么呢,毕竟是人类创造了它啊?可惜的是,它并没有对创造它的人有什么感激之情,相反,它很可能不再依赖人类,根据自己的决策来处置人类(想想《黑客帝国》吧)。从情感上来说,人类肯定想控制这些智能,并天真的认为可以通过编程手段来处理机器的逻辑判断(这正是我们现在广大软件工程师每天要做的事情),可惜,了解“机器学习”的人都知道,正是因为“机器学习”的“模糊”(输入和输出的因果关系不是通过编程控制的,而是根据统计和概率学习得来的)特性,使得计算机能够自动的找到我们无法通过编程来找到的最优解。</p> +<p>还有一点,也是人类的一道防线,那就是“意识”,作为这颗星球的掌控者,人类骄傲的认为,“意识”是人类独有的东西,因为“意识”是对“思考”的“思考”(元思考?),所以我们认为人工智能再牛,如果没有意识那么也不过是个受人控制的机器而已。可是关于这一点,现在也有很多争论,首先我们自己是不知道意识是怎样诞生的,了解的很少,而且一旦深入研究就会跑到科学、哲学、宗教的汇合点,最后不了了之。</p> +<p>不过,还是有人做出了比较靠谱的设想,今年最火的没有之一的美剧《西部世界》就是一个例子,虽然“人工智能的觉醒”这个概念已经被很多电影和电视剧演绎的有点儿烂了,但是这个剧以及原著小说的关于“觉醒”的设想,让人细思恐极,原来人工智能可以在条件具备的时候完成“意识”的“自举”(Bootstrap?有点儿像拎着自己的头发把自己拎起来的意思)。有兴趣的话,可以自行去网上搜一下关于这个剧的影评,因为自己看可能看不太懂。</p> +<p>不过还是不要太悲观了吧,毕竟已经有越来越多的人意识到这个问题的重要性,也有人开始系统的研究如何通过技术的手段,在研发过程中遵循某种规范和约束来降低智能爆发带来的危险,希望这件事最终像当年的“千年虫”那样能够平滑过渡吧,但愿人类能与超级智能和平相处。</p>借助两页A4纸高效工作https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/Sun, 27 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/<p>我一直热衷于尝试一切能够提升工作效率方法。几年前我非常推崇一种叫“GTD”的时间管理方法,方法效果怎样暂且不提,反正作者在全球出书(Get Things Done,中文名称《搞定》)、做演讲赚了不少钱,国内也因此诞生了一大批以讲解GTD时间管理为主题的培训机构或个人,应该也有不少人取得了显著成果。</p> +<p>但是GTD在热了一段时间之后就销声匿迹了,我推测原因是该系统太复杂了,为了完整的运行这一 时间管理体系需要做大量的准备工作,要严格执行预先定义的工作流程,虽然该系统推崇最终能够达到“心如止水”的境界,但是太难了,好多人都停留在如何选择工具这个阶段,整天纠结选用什么样的工具(或软件)才能够顺畅执行流程,结果只能是越来越糟。</p> +<p>我在尝试了一段时间GTD之后也部分放弃了,目前只保留了其思想中的“收件箱”机制,即任何事情来了之后先纳入收件箱中,分出轻重缓急(按重要程度排序下一步行动应该是GTD和核心思想了,与《高效能人士的七个习惯》中所提出的“要事第一”是一个意思)再做出下一步行动。</p> +<p>可能是现代人都比较浮躁吧,后来又流行了一段时间的“番茄工作法”,这个方法主要是帮助你集中精力,具体方法大家可以网上搜索或者购买书籍来进行学习,实施起来还算比较简单,但方法能否有效很大程度上取决于你所做的工作是什么类型,如果你是一个比较纯粹的知识工作者,那么这个方法还是很管用的,每天都可以按部就班地消灭几个“番茄”。但如果你从事的工作经常需要沟通或总被外部信息打断,“番茄工作法”就无能为力了,因为一旦被打断,刚才的工作时间就算作废了,比较容易让人沮丧,所以我无法正常使用这种方法。</p> +<p>随着时间的推移,各种方法在不断进化和融合,在抓住要事第一、清空大脑、保持专注的核心思想指导下,每个人最终都能找到 适合自己的高效工作方法,我在近期就做了一些融合和改进,虽然还没形成方法论,但是根据我自己的体会来说,效果还是很显著,因为操作起来比较简单,所以我觉得可以推广使用。</p> +<p>首先,说一下所用到的工具,很简单,只需一支笔和两页纸(A4最好,如果没有也可以用记事本替代)。</p> +<p>第一页纸,是用于写晨间日志的,一天之计在于晨,这话一点儿也不假,大部分人每天最清醒的时候应该是在早晨起床到上午10点钟之前那一段时间,如果一天当中这一段时间得到有效利用,那么这一天的时间就不算浪费了。所以把握好这一段时间这一点最重要。</p> +<p>至于所书写的内容,没有具体的要求,最好是你脑子里当时想到的东西全部写下来,如果文字不足以表达,就用图画画出来,将你此刻烦心的、畏惧的、牵挂的、未完成的、已承诺的,反正只要能想到的,都可以写下来,这么做最大的好处就是可以有效缓解你的压力,而且很多事情在写出来之后就变得没那么麻烦了,你会突然发现灵感,然后顺着灵感找到解决的思路。尽量写满一页纸。写完琐碎的东西之后,你就可以对着这一页纸,仔细考虑当日的工作计划了,描出最重要的三个待办事项,从难到易进行排序(一天的工作应先挑最难的开始下手,这样会越干越轻松)。这样就算完成了晨间日志了,一般顶多占用30分钟时间。</p> +<p>第二页纸,用于记录工作日志,不是为了记录流水账,主要是为了总结和分析。在处理早晨给自己安排的任务时,可以用这张纸来进行梳理思路、分解目标,必要时也可以画图。还有一点儿比较关键,就是你要随时将新来的待办事项记录到这张纸上,因为你在工作的过程中随时会有电话或有人找你,你放下手头事情,除非来的事情是天塌下来那样重要紧急,否则你把这个事儿记录在纸上,继续你的工作。</p> +<p>工作中随时会出现一些灵感或者心得体会,也要及时记录下来。这样在结束一天工作的时候,你会发现基本上都能写满那第二页纸,收尾的时候,分析你的日志,将待办事项等扔进你的手机或电脑的日程表(这样就不会忘了),心得体会等可以归档到你的记事本、电脑,或者等待有时间把它孵化成具体的任务(比如写一篇文章、发起一个会议等等)。简单排序之后,标出你第二天要处理的最重要的事情。</p> +<p>接下来就简单了,循环执行一段时间试试吧,说不定你就会发现效率真的得以蹭蹭提升,以前的焦虑感逐渐降低甚至不见了。</p>磁带情节https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/Sun, 20 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/<p>你觉得经典的东西,其实只是你年轻的时候喜欢的东西罢了。</p> +<p>周日的下午,听说要下雪和降温,看不进去书,摆弄了一会儿电脑,关掉浏览器,干脆听会儿歌吧。听着听着突然就想到创建一个歌单,将我原来买磁带听的歌都找到存起来吧。</p> +<p>现在已经没有人再听磁带了,别说磁带,现在通过网络获取音乐这么方便,连CD也几乎绝迹了,当然据说现在仍然有部分人怀抱着黑胶唱片不放,但我没有经历过黑胶的黄金时代,从最一开始听的就是磁带。</p> +<p>在有MP3之前,听歌是一个很具有仪式感的事情,因为需要很多步骤(比把大象关冰箱里还麻烦),你得从你的磁带架子(或盒子)上认真挑选一盒你想听的,如果你的磁带很多,当你的手指划过一排包装或精美或粗糙的塑料盒时,你会陷入短暂的沉思,仿佛先将歌曲在大脑里播放一遍似的,然后你按开录音机的仓门,认清磁带的AB面,然后轻轻放进去,再合上。按下播放键,磁头划过空白会出现一些沙沙声。</p> +<p>虽然录音机也有快进的功能,但是一般很少用,因为跟CD和电脑的那种“非线性”切歌方式不同(一下就能下一首),磁带是线性的,想听下一首就得等待磁带一点点转过去。如果是随身听的话,为了省电就更不舍得使用快进的功能了,只能老老实实一首接一首听完。后来,在使用随身听的时候,我们发明了使用笔杆快速卷动磁带的方法,拿一个圆珠笔插在磁带孔上,甩动磁带使得磁带盒随着惯性迅速旋转,即可达到快进的目的,以至于我后来练就了直接用笔就能转到想听的任意一首歌的本领。</p> +<p>磁带的音质还是不错的,可能那个时候没听过数字音乐的缘故吧,从我的记忆来说,磁带特有的那种模拟电路温暖音色,要比现在的MP3强多了,即使现在的一些CD也比不了。有时候听久了,会觉得音质越来越差,这个时候如果不是因为那种质量特别次的盗版磁带的话,一般就是录音机的磁头脏了,解决办法很简单,拿一团棉花蘸上一些酒精(如果没有酒精也可用高度白酒代替),轻轻擦拭一下磁头就行了,保证立竿见影,声音一下子就亮了许多。有钱的人家会更讲究一些,会买那种专用的清洗带,长的跟磁带一样,但是里面装的不是歌曲而是空白的毛绒卷,走动的时候会自动将磁头擦干净(有点儿类似于后来的VCD清洗碟)。</p> +<p>我现在购买了网易云音乐的账号,所以即使是从网上下载的也算是正版音乐吧,现在有很多人不能接受听首歌还得花钱,觉得那些音乐人是不是想钱想疯了,可能他们都没有经历过买磁带听歌的日子吧,从性价比上来说,那时听歌可比现在贵多了,一盒正版磁带几十块,好一点儿的盗版也得十来块(要是算上通货膨胀的话,怎么着也得相当于现在的一百块吧,要是按房价算就更贵了)。一盒磁带一般也就容纳十来首歌,有些出版商为了多装几首歌,只得降低歌曲长度将每首歌都截取了一半放上去,或者干脆来那种四十首或八十首的大联唱(港台叫大串烧),这种听着就没劲了,一首歌刚唱几句就开始下一首了。</p> +<p>今年十一的时候,我回到村里的老家,想办法找到了我以前装书和杂物的柜子。无奈时间太久了,我现在只能翻出一些DVD、VCD和CD了,磁带一盒也找不到了,每想到此,心里都惋惜不已。</p> +<p>附:我创建的歌单(都是磁带时听的,后来买CD听的不算,每一首都听了不下百遍,唱K的时候全部不需要看歌词)链接 <a class="link" href="http://music.163.com/#/m/playlist?id=515310127&amp;userid=2998061" target="_blank" rel="noopener" +>http://music.163.com/#/m/playlist?id=515310127&userid=2998061</a></p>什么是BIMhttps://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/Sat, 12 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/<p>BIM这个词最近出现比较多,可能很多人听到过但是还不太了解它指的是什么,我稍微做了一些学习探索,希望能通过一些简短通俗的文字总结一下自己对BIM的认识。</p> +<p>BIM 的全称是 “Building Information Modeling”,这个词语是由美国AutoDesk(就是那个旗下有AutoCAD和3DMax的公司)公司首创,中文翻译过来叫做“建筑信息模型”。被定义成由完全和充足信息构成以支持生命周期管理,并可由电脑应用程序直接解释的建筑或建筑工程信息模型。 简言之,即数字技术支撑的对建筑环境进行全生命周期管理的信息模型(来自维基百科)。</p> +<p>狭义上来说,BIM指的就是一种以表示三维图形为主、面向对象、为建筑学有关的计算机辅助设计服务的数字化信息模型。从广义上引申来看,BIM是一种涵盖了整个建设领域包括一切和水、土、文化有关的基础建设的计划、建造和维修,以及城市规划,土木工程,交通工程等学科的全生命周期数字化设计技术。</p> +<p>虽然概念提出很早(大概上个世纪80年代),但是真正的作为建筑设计方法流行起来还是近些年的事情,在此之前,建筑设计领域仍然停留在CAD(计算机辅助设计)二维图纸的阶段。所以,基于BIM的设计算是一中新兴的建筑设计方法。</p> +<p>对于传统CAD技术的提升主要有如下几点:</p> +<p>1、全生命周期。一个工程从设计到施工,再到后期的投运和检修,都可以通过 BIM 进行全方位的设计和模拟。</p> +<p>2、三维可视化,所见即所得。传统的设计是基于二维图纸的,设计的最终效果往往只存在于设计人员的脑子里,随着建筑越来越复杂,仅凭想象是很难应付庞大的建筑结构的,而运用BIM技术可以使得整个项目过程(设计、施工、运行)都是可视化的,所见即所得。</p> +<p>3、各个环节的协同。设计工程庞大而复杂,往往需要各个部门紧密配合,传统的设计方式往往是结构、水、电等都有自己独立的图纸,给设计和沟通带来诸多不便,而BIM则从根本上解决了这个问题,大家使用统一的模型进行设计,具备更好的协调性,及早发现设计冲突。</p> +<p>4、方便进行数字化模拟。由于设计时采用面向对象的数据模型,带有丰富的设计参数,使用BIM可以方便的进行设计结果模拟,不仅包括常规的物理力学计算、用料统计,还可以针对节能、环境、应急、施工进度等进行高级 分析和模拟。</p> +<p>以上说了这么多优点,那么我们现在处于那个阶段呢,坦白说,国内的BIM目前仍处于起步阶段,甚至国内的《建筑信息模型应用统一标准》目前还在编制阶段,但是随着信息技术的发展和普及,国内的设计行业正在积极的尝试,很多信息化服务厂商(如恒华科技)都纷纷参与进来,一方面积极贡献标准化建议,另一方面整合升级自己的传统设计软件,全面贴合BIM理念。</p> +<p>最后附上一张图(图片来自谷歌搜索),概括了与BIM相关的软件分类,大家可以参考。</p> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-93e90a43a1f10575.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="Paste_Image.png" +></p>推荐一个剧https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/Sun, 06 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/<p>听说《黑镜》第三季出来了,激动不已,虽然早就不再舍得花时间刷剧,但是《黑镜》太特别了,忍不住花了半夜的时间连看了四集(以往的两季都是每季三集,但是这一季不知道为啥这么猛一次就放出来六集)。</p> +<p>几年前有本名叫《浅薄》的书,火了一段时间,作者在书中痛斥现在各种高科技带来的负面效应,互联网让我们越来越浅薄,失去了自我思考的能力,思想变得越来越贫瘠,只能靠不断寻求刺激来掩盖。</p> +<p>显然,《黑镜》的编剧们也意识到了,只是这些人的脑洞更大,并带有强烈的反乌托邦味道,随便看一集基本就能粉碎“高科技能够给人类带来幸福”这个幻象。</p> +<p>如果只是对迷信技术的讽刺也就罢了,让此剧如此出色和受追捧的关键还是在于对人性的探索和拷问,在不受技术限制(科幻嘛)的情况下,主人公时刻都徘徊在看似很爽(至少让我们羡慕)但其实又痛苦不堪的两种境界边缘,虽然英国人的口味有点重,比如第一季第一集里就要让他们的首相现场直播与一只猪发生不可描述的事情。比如给大家都装上智能眼球,然后通过技术彻底拉黑一个人(物理上的拉黑,关于他的声音和图像全部都被屏蔽)。</p> +<p>虽然都是幻想,不过还是带有对现实世界事情的映射,最新的这一季,据大家评论说感觉不如前两季精彩,但是我看了后感觉已经非常不错了,毕竟无论从剧情还是效果都高出同期剧集一大截,属于良心制作了。</p> +<p>新一季的第一集甚至科幻的都有点儿不像科幻了,如果拿掉一些不怎么影响剧情的科幻效果,看起来感觉跟我们现在生活的世界是一样的。故事中的人物无时不刻都在被电子化的社交圈所包围,每个人都靠别人给他点赞来获得认可,评分高的人受到的“尊重”就越多,有点儿像现在的信用体系,但是比较讽刺的是,这里的人们为了维持较高的评分已经变得失去了自己,带着面具生活,早已忘了坦白说话是什么滋味。</p> +<p>再说就有点儿剧透了,如果喜欢科幻的话,可以抽时间看看。</p> +<p>目前在这里还能看: <a class="link" href="http://www.bilibili.com/video/av6802900/" target="_blank" rel="noopener" +>http://www.bilibili.com/video/av6802900/</a></p>那些年,我用过的“终身免费”产品https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/Thu, 27 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/<p>浙江温州最大的网盘厂,360网盘,倒闭了,王八蛋老板吃喝嫖赌欠下了三点五个亿,带着他的小姨子跑了。。。。。。</p> +<p>我是在出差途中听到这个丧心病狂的消息,虽然以前就隐约觉得迟早会有这么一天,但是却没有想到它来的这么快。当时感觉强行被打脸,我可是经常见人就推荐这款产品的啊,文件夹同步功能比某度网盘云盘不知道高到哪里去了。</p> +<p>现在我的脑海里除了一边盘算如何下载我那费劲巴力传上去的一百多G数据,一边浮现出当年范厨师坐在轮椅上对赵本山说:“我要是再相信你就是二次上当。。。”的画面。</p> +<p>第一次有这种感觉是前些年谷歌关闭旗下的GoogleReader产品(一款RSS阅读器),这个产品我用了将近5年,可以说通过这个产品提供的阅读文章刷新了部分三观,但是谷歌在2013年7月毅然关闭了这个产品,不顾百万用户跪求不要关闭。从此以后再使用谷歌产品我都持谨慎悲观的态度,后来的事情也逐渐印证了这种观点&mdash;-谷歌是个喜欢随意关闭产品线的厂,项目说砍就砍。果然后来谷歌的glass、无人驾驶等项目都雷声大雨点小,在无人驾驶技术方面甚至被起步比他晚的厂商反超。</p> +<p>另一个大厂,微软,和谷歌随意关闭产品的习惯不同的是,微软喜欢改自己产品的名字,我最早的时候用过微软的MySpace(比qq空间可能还要早),在上面写了不少日志,后来微软不知怎的就把它的名字改为LiveSapce了,然后所有产品线都开始围绕Live展开,连注册个账号都要live.com的邮箱,结果,没过几年,不知哪位大师又给微软看了风水,全线产品又都开始围绕outlook.com展开了,live也被废弃了。</p> +<p>说到大厂,雅虎当年也算一个,当年给用户提供终身免费电子邮箱的时候,用户无不感恩戴德,好多账号都使用雅虎的邮箱进行申请,然并卵,雅虎的邮箱同样也在2013年关闭。看来所谓的“终身免费”,在互联网公司的眼里指的并不是针对你的“终身”,而是产品的寿命。</p> +<p>从个人感受来说,我是非常愿意为好用的产品付费,因为这符合市场价值交换的基本原则,有句话比较流行,叫“免费的,才是最贵的”。现在的互联网产品已经把用户给惯坏了,免费可能都不行了,恨不得倒找你钱才行,放眼望去,线上充斥 着免费的劣质产品,好的产品很容易就因为收费问题而被干趴下,像360云盘这么好的网盘产品(同类产品的几乎每一款客户端我都试用过超过1周,最终谨慎选择了360),绝对不是因为技术原因导致的关闭,我猜测真实原因可能也不是其在公告里说的“因为版权审查”,很可能是因为“钱烧完了”。不知道360网盘是否怀念当年将杀毒软件免费而干掉别人的日子。</p>玩游戏能学到什么https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/Sat, 15 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/<p>从计算机诞生的那一刻开始,游戏就一直是技术前进的推动力,无论是对硬件的压榨还是对算法的要求,很少有应用软件能够超越游戏的需求,一般来说,游戏软件所使用的技术总是领先其他应用软件一个世代,就连最近比较火的VR、AR技术也是首先从游戏开始的。还记得乔布斯大神说过:“全民娱乐是最终需求,一切技术最终都将为娱乐服务(大意吧,记不清了)”。</p> +<p>那么,除了放松身心、打发时间之外,好像找到正当玩游戏的理由了。</p> +<p>1、寻找灵感。我一直觉得应该在游戏中寻找产品的灵感,哪怕是最基本的交互设计或用户界面,同时期的游戏都能把传统软件甩好几条街,所以我们可以从玩游戏的过程中激发灵感,考虑我们的软件产品交互或界面有没有可以向游戏借鉴的地方。</p> +<p>2、推动技术。最先使H5火起来的还是基于网页的游戏,正是这些游戏先驱踏平了无数的技术坑,才使得当前基于H5技术的跨平台游戏引擎如此火爆,并进一步诞生了通用的应用软件开发平台,在使用这些平台或者制作同类产品时,必须明白,是游戏率先推进了标准化和硬件性能提升,才使得我们能够基于成熟技术制作跨平台软件。</p> +<p>3、学习技术。在享受游戏的乐趣之余,可以思考这些游戏的性能是如何实现的,现在互联网这么开放,不难寻找到相关的介绍资料,很多技术思路都可以借鉴,无论是终端资源的有效利用还是服务端高并发的基础架构,如果能满足游戏的要求,基本可以超越你的需求。</p> +<p>4、学习心理学。为什么我们都觉得玩游戏比工作要爽,闲暇时间宁愿掏出手机玩两把消消乐也不愿意写一篇技术博客?根本在于游戏的设计符合心理学中人们对正向激励的需求,大部分游戏都设置有精妙的积分机制,一方面鼓励你多玩多得,另一方面让你不由自主的愿意付出时间和金钱,都是因为你在这个过程中获得了及时的反馈和激励。这个层面我们在产品设计或运营的时候都可以借鉴,向那些游戏厂商学习。</p> +<p>5、学习知识。这个有些牵强了,但是也不是不可能,有些纯粹消磨时间的游戏就算了,但是确实有些有追求的游戏公司在制作的时候是出于寓教于乐目的的,比如我最近就在玩一款编程游戏(为什么下了班还要编程啊?!),通过几个简单的指令控制游戏中的小人完成任务,通过玩这个游戏我就很轻松的理解了大学里没有学会的汇编语言(或机器语言?),原来汇编语言里动不动就往寄存器里传输数据的意义就在于将输入通过某种操作变为输出,通过最简单的加减运算来实现复杂操作。</p> +<p>很多人尤其是学生家长非常抵制孩子们玩游戏,认为游戏就是破坏学习的毒品,但是事物都有两面性,如果合理的安排时间,不沉迷于游戏,而是在娱乐的同时能学习和思考一些东西,那么玩游戏也没什么大不了的,甚至应该得到推崇,至少每个软件工程师都应该在工作之余多玩一玩游戏,只有不断的反思自己的产品,才做出更出色成果来。</p>感受另一种创新https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/Fri, 07 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/<p>过节回了几天老家,亲朋好友团聚之余,感受到了一些变化,可片面代表当下农村对现代科技的使用情况,同时也更新了我对于互联网的一些认识。</p> +<p>1、移动互联网要比在城市所占比重大,人手一部智能手机,几乎没有使用PC上网的,网吧几乎销声匿迹,每个人都在低头看手机屏幕,即使是在干农活的时候。</p> +<p>2、上网不再是年轻人的专利,很多老人也都开始使用手机上网,并开通了社交软件账号,特点是对于网上传播的文字信息不具备过滤能力,只能被动接受,任何信息都认为是真实可靠的,并热衷于转发给身边的人。</p> +<p>3、对手机操作系统没有概念(当然手机操作系统以Android为主),就像现在大多数人仍然对web浏览器(IE、Chrome、火狐?)没有概念一样,很多人并不能区分Android和苹果的iOS,也不认为手机上安装App的是“软件”,而是代表了某种功能,比如聊天、吃饭、天气、新闻、搞笑好玩儿的事儿,这种认识其实很纯粹,我们平时的认知反而会因为专业知识导致偏差。</p> +<p>4、手机软件占比,沟通、娱乐类占比最大,全民娱乐的时代,以前只能通过看电视放松,现在普遍都盯着小屏幕了,微信里盛传各种自制搞笑小视频,虽然做工粗糙,但是认可度很高,我能感到里面的暗流涌动,很多在我们看来“一眼假”的东西却能够得到爆炸性的传播,仍然坚守“按套路”出牌的高大上公司指不定在哪儿被干翻。</p> +<p>5、利用社交软件做营销,利用社交圈子的传播性而策划的营销活动特别盛行,商家们都已经十分重视手机上传播的宣传推广信息,而电视、平面媒体的广告已经成为了辅助信息。已经爆发了不少专门帮助商家进行微信营销的团队,有些人利用技术手段仅仅通过制作一些转发工具、外挂工具等获得了巨额利益。</p> +<p>以上的观察虽然是主观认识,但是确实反应了一些事实,可以肯定的是,大家都在发力移动互联时代的创新,而且随着技术的推进,创新的杠杆将越来越长,能撬动的东西也越来越大,有时候真的需要将目光投向最不起眼的地方,你认为最稀松平常的事情,说不定有人已经准备掀起一场革命。</p>后端开发从PaaS到BaaShttps://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/Sat, 24 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/<p>鉴于我们在web产品开发过程中采用了前后端分离(也是广泛采用的新技术)的技术,前端开发与后端开发在约定完交互接口之后往往存在一定的开发时间差,也就是说移动端和页面程序已经开发出界面了,但是后端的接口还没提供好,导致调试困难。于是我们很自然的就想到一个点子,为何不制作一个服务专门用来生成供前端调试调用的“假”接口呢?</p> +<p>于是我们很快就选用了MongoDB作为数据库,基于nodejs开发了一个模拟各种数据增删查改的接口,符合RESTful标准,可以通过web页面随时增加你想要模拟的接口,除了没有业务逻辑之外,可以满足移动应用和web前端页面开发的数据模拟和接口访问,解决了前后端开发的时间差问题。</p> +<p>后来我进一步想了一下,为什么我们不能将这个服务增强,使之具有一定的业务扩展能力(比如使用js脚本来插入业务逻辑),并配上我们的基础服务(权限、流程、报表等),这样我们是不是就不用开发纯业务的后端程序了呢?</p> +<p>这个想法令我很兴奋,因为这就是传说中的云计算PaaS落地的一个体现,而且看起来像是一个伟大的产品的小时候,于是我就上网搜索了一下,看看有没有类似产品,结果令人欢欣鼓舞,原来Facebook早在两年前就投资了一家创业公司开始做这个了(名字叫Parse,有兴趣可以搜索一下),谷歌公司也收购了类似产品。国内也已经有人做了,而且据说还不错,比较出名的是LeanCloud,我看了一下已经是比较成熟的解决方案了。</p> +<p>在移动互联网飞速发展的今天,后端服务的开发需求量非常之大(当然很多风投老板至今还认为移动应用的开发工作量只是手机上面的那些界面,这使得他们数次掉进坑里),上面那些厂商就是看准了这个需求,开发了面向后端的PaaS服务,使得一大票创业团队不再为后台服务发愁,找几个app程序员专注于客户端的应用开发就行了。</p> +<p>云计算技术发展到今天,上层的软件即服务(SaaS)和底层的基础设施即服务(IaaS)发展的都特别好。一方面,软件即服务已经渗透到社会各行各业,很多在线服务已经成为了普通人生活中不可或缺的一部分(比如在线地图),另一方面,基础设施即服务也得到了广大开发者的认可,几乎每个上进的开发者都在互联网上租赁(或免费)有自己的虚拟服务器或存储服务。唯独处在中间层的平台即服务(PaaS)发展的不尽如人意,无论是国内的SAE(新浪)还是国外的谷歌的GAE(现在改名叫GoogleCloudPlatform了),用户都没有达到较大的规模。因为现有PaaS仍没有很好的提升后端开发的工作量,即使存在那么多的中间件,仍然需要大量的后端开发工作要做。这时候,上帝说:要有光,于是就诞生了BaaS。</p> +<p>BaaS(后端即服务)是指专为移动应用开发者提供整合云后端的服务。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储、账户管理、消息推送、社交网络整合等功能。</p> +<p>BaaS本质上来说是PaaS的一个细分领域实现,但是基本解决了后端开发问题。鼓吹者甚至扬言用一个云平台来解决所有互联网产品后端服务的需求。</p> +<p>想法有些激进,但是可以回顾操作系统的发展历史来借鉴。很久以前,所有的计算机都没有通用操作系统,那个时候的软件厂商提供给客户的软件是自带操作系统的,完全从硬件底层做起,一直到业务功能开发。直到后来有了通用的操作系统如(windows、linux等),才将这些软件厂商从底层解放出来,控制硬件的事情交给了操作系统,应用软件厂商专注于业务开发。</p> +<p>现在的情形跟当年的操作系统诞生时很像,很多厂商还在自己解决后端服务的开发,但是随着后端技术的越来越成熟,必然出现像当年微软这样的厂商彻底解决后端服务的问题。</p> +<p>所以现在还在编写后端业务代码的企业和技术人员,需要用发展的眼光来看自己的软件架构,业务逻辑逐渐向前端倾斜,底层服务围绕数据为中心,很有可能在未来的某一天后端开发(这里指侠义的业务逻辑开发)将淡出应用软件开发的领域。</p>不上网的假日https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/Sat, 17 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/<p>借假日之闲,重读了一遍《正念,此刻是一支花》。书中反复引用梭罗在《瓦尔登湖》中的描写,并无比推崇的说:“梭罗常常在自己的门前一坐数小时,什么也不做,只是观察、聆听,太阳在天空慢慢变换位置,光和影也在不知不觉中变换”,看得我“身不能至,心向往之”。</p> +<p>前天看了一个综艺节目,里面有一个小品,讲述了现代人对手机依赖成瘾的种种情形,虽然有所夸张,但是很贴合实际,尤其是里面主人公说出“你的世界不再是真实的世界,你被困在手机里了。。。”的时候,引起了很多观众的共鸣,包括我。</p> +<p>像我这么追求“知行合一”的人嘛,自然不能只发感慨,凡事都要有所行动,于是借假期的机会,我准备初步尝试一下“不开电脑、少玩手机”的思路,体验一下互联网和各种资讯之外的世界还剩余什么。</p> +<p>如果有幸,看看能否达到梭罗所言:“刚才还是清晨;看哪,现在已是黄昏,一日之中几无可念之事。。。”的境界。</p> +<p>向来都是“买书如山倒看书如抽丝”,一旦关掉电脑和浏览器,突然就有时间看书了,发现如果真能静下心来认真阅读,平时买的那几本书根本不够怎么看的,随便翻看一个上午就能看完两本,而且还有富裕,看来以往所推脱没有时间实在是瞎扯,以后可以考虑安排出固定时间读书,尽量不要利用碎片时间阅读,大段时间最佳。</p> +<p>留出时间陪孩子玩耍一下感觉也是不错,除了打扫卫生之外,我跟金妍一起练习了钢琴的哈农指法,我早已手指僵硬伸展不开,练习时总不能合拍,屡次遭到金妍批评,但还是能感受到全身心投入到一件事情时的那种忘我,虽然持续的时间不长。</p> +<p>上次这么无聊的时候,我跟金妍一起,拿着铅笔和画板,把客厅里的物品几乎画了一遍,这次我又想到前些年买来一直未使用过的《秘密花园》绘本,可以尝试一下了。认真挑出几种颜色的彩铅,在餐桌摊开绘本,开始仔细描绘,确实是个锻炼耐心的工作,俩人一起涂了半个多小时才描了不到半页纸。</p> +<p>做以上事情的同时,开始感受到信息枯竭的焦躁,但是忍住了各种冲动(比如说查收邮件、上网、编程),看书、听音乐、吃东西交替进行,但是我突然想到了另一件事情,我何尝不能练习一下“冥想”呢,据说乔布斯就是经常冥想然后才保持较高的创新力的,而且是个放松自我的绝佳途径,这个简单,我想。</p> +<p>往沙发上一坐,闭上眼,“尽量无可念之事”我想,那是不可能,各种思虑此起彼伏,根本无法安静,我于是爬起来,打开书,像阅读说明书那样,查看“如何放松四肢,将注意力集中在自己的呼吸上,相像自己是一座山。。。。。。”</p> +<p>等我醒来时发现自己实际上睡了两个多小时,这也算是间接达到了“刚才还是清晨,现在已是黄昏。。。”了吧。</p>人工智能时代的“情商”https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/Sat, 10 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/<p>最近“人工智能”比较火,谷歌的阿尔法狗战胜了围棋大师,IBM的华生博士轻松赢得了国外的“幸运52”和“开心辞典”,苹果也准备推出“人工智能即服务”的云服务,有种“忽如一夜春风来,千树万树梨花开”的味道。</p> +<p>毫无疑问地,未来的社会,“人工智能”将会成为中流砥柱,替代一大拨人。到那个时候,与我们打交道最多的,可能就不是人了,而是各式各样的机器,出门打车可能是无人驾驶,餐厅吃饭可能是自主点餐,“为人民服务”的各种窗口背后可能也不再是一张冷冰冰的脸,而是通过后端服务API支持的人工智能界面。</p> +<p>一厢情愿地推测,这可能会促使一些变化,人与人之间的联系可能跟以前不再一样,无论是沟通还是协作,可能不再像现在这样复杂。我们可能会从复杂的人际关系中得到解脱,从而获得更多的精力来做自己想做的事情。</p> +<p>到那个时候,我们可能需要重新考虑什么是“情商”。</p> +<p>“情商”的重要性已经毋庸多言,非得要解释一下什么是“情商”的话,大概就是“体会别人感受的能力”吧,关于“情商”有句很直白的话,叫“智商高爽自己,情商高爽别人”。</p> +<p>大概“情商”高的人更能让别人舒服吧,所以现在特别推崇这个,如果去图书馆的话,大概有整架子的书摆在那儿教你如何提高“情商”,教你如何让他人“更爽”。</p> +<p>但是当技术推动社会变革,人工智能得到普及以后呢,到那个时候,我们需要什么样的“情商”?</p> +<ul> +<li>我们可能需要更多的考虑如何利用发挥机器的效率,而不是委婉的告诉机器他做的不好但是值得鼓励。</li> +<li>机器带来的效率提升使得更多人有了更多的空闲时间,而利用这些时间学习或者干别的,更能拉伸人与人之间的差距。</li> +<li>人更要追寻自己的内心,驱动自己做些有创造力的事情,否则被机器取代是迟早的事儿。</li> +</ul> +<p>人除了跟人打交道之外,可能会跟更多的“机器”打交道,需要懂得机器的规律,思考方式也要发生变化,放弃那些人类不擅长的事情,才能更好的利用机器。就算是人工智能,也没有创造力,不能探索未知的问题,所以那个时候,我们要拼的可能就是创新力,而不是“让别人爽”的能力了吧。</p>秋天的田野https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/Sat, 03 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/<p>我记忆中关于秋天的美好全都在田野里。</p> +<p>记忆里的秋天是收获的季节,小学的课本里就有课文专门描述这个季节的美好:“高粱涨红了脸,稻子笑弯了腰”,我只记住了这一句。</p> +<p>对于几岁的孩子来说,农忙的事情不用操心,即使去地里也是以撒欢为主,虽然欣赏不来万里无云的晴空和一片金黄的丰收景色,但是可以吃啊,到处都是好吃的。</p> +<p>有一种野浆果,具体在生物书上该叫什么名字,我也不知道,我们老家那儿管它叫“香不溜”。长在秋天的庄稼地里,枝叶也不茂盛,不太容易被发现,如果不注意的话,很难跟其他野草棵子区分出来。但是果实极为好吃,酸中带甜,还伴有浓浓的香味儿,是我小时候能吃到的最好吃的“水果”。遗憾的是,由于会影响庄稼生长,这种东西一般都会被作为野草被拔去,到了收获的季节,能够躲过重重除草工作并坚持结果儿成熟的可不多,也就是说,这种果子不会天天遇见,偶尔能吃到一颗就撞了大运了。但正是这种稀缺性使得它吃起来的味道更加美好,如果能碰到熟透的,当然最好,碰见了半生的,也会迫不及待地吃掉,如果恰好碰上刚结果还没长熟,我一般是先记住位置,然后天天去看,等到成熟了再去吃(前提是没有被别人捷足先登,这事儿时常发生)。不过小时候下地的时间并不多,我吃香不溜最大的供货源还是来自于我的爷爷(从地里给我带回来的),别的记不起来了,只记得爷爷下地回来我跳起来掏他的口袋,希望能从里面找到几颗香不溜的情景。</p> +<p>还有一种野生的“瓜”,想象一下,把西瓜按照比例缩小50倍,就像一颗玻璃球那么大,但是外观完全一样,只不过皮儿是软的,土名儿叫“马炮”。瓜秧漫长,顺着玉米杆的根儿生长,跑太快如果不注意的话还会被绊倒,上面结了成串儿的果实,虽然吃起来味道差一些,好在随处可见,就算是不吃也能拿着玩耍,小圆球可以拿来做各种有意思的游戏,就算是不做游戏,把马炮放在地上用力一踩,也会卟嗞一声爆炸,每个人脸上都笑开颜。</p> +<p>以上说的都是可以生吃的,对于地里刚刚成熟或即将成熟的庄稼来说,吃起来往往需要加工一下。</p> +<p>说是加工,其实也没那么复杂,顶多就用火烤一下。秋天的地里最不怕火,有成堆的秸秆和叶子可以作为燃料,在地里点燃后还能作为肥料,如果能顺便烤一下吃的,真是一举两得。</p> +<p>大豆不能等到完全成熟再烤来吃,那样就太硬了,最好是在豆荚还青青的泛着一点儿黄的时候直接连根拔掉,然后整棵整棵的放在火里,到不了一根烟的功夫,香气就从火堆里飘出来了,这个时候最好别嫌烫手,赶紧抓起来,剥开豆荚,将还正在冒着热气的青豆一把一把的放在嘴里,香的保证你忘了所有的烦恼。</p> +<p>花生和红薯,饿了的时候,直接从地里扒出来就可以吃,但是生的吃多了对肚子不好,所以一般也是烤熟才吃,不过吃起来就没那么方便了,一般费的功夫要稍微大一些。尤其是红薯,不能用大火,否则皮焦骨头生,表皮都黑了,里面还是生硬的。最好整块扔在刚烤完青豆的火堆里,不用搭理它,先去玩会儿别的,等到天快黑的时候,再从灰烬里将红薯慢慢扒出来,熟透的红薯绵软可口,甜的让人掉牙。现在大街上卖的烤红薯闻着很香,吃起来比起我们在地里吃的就逊色不少了,一方面可能是因为现在嘴刁了,另一方面估计也跟小时候吃红薯之前那漫长的等待有关。</p> +<p>说了这么半天吃的,好像跟想象中金色的画卷不太一样,但是,秋天的田野是大自然对于没有零食可吃的农村孩子最好的馈赠。。。。</p>Docker环境在windows系统下的安装与配置https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/Sat, 27 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/<h1 id="背景">背景</h1> +<p>配置开发环境是目前我们开发团队在进行开发工作之前的重要工作,对于需要使用我们自己封装的开发框架的java web程序员来说更是如此,一般来说需要配置jdk、mysql、tomcat、maven等一系列基础环境,如果需要使用我们现有的开发框架,还需要配置开发工程的模板、基础服务的访问地址、统一的环境参数等等。这些工作做起来比较繁琐,即使按照开发文档一步一步进行也容易出现差错,而且较为耗费时间。</p> +<p>Docker容器技术的出现使得这一工作得以改进,通过一段时间的研究,我们的底层框架开发人员将以上环境全部使用Docker容器技术制作成为完整的镜像,使得业务开发人员不必再关心这些琐碎工作,只需通过git下载我们的工程模板,通过执行Docker命令自动在本地完成开发环境的构建。</p> +<p>然而由于docker是一个较新的技术,仍有很多开发人员没有接触过,上次我发的文章对于环境的配置描述的并不详细,这次专门针对windows下的开发者如何配置docker环境做一次讲解。如有必要,我将录制专门的视频来讲解。</p> +<h1 id="认识docker">认识Docker</h1> +<p><a class="link" href="https://www.docker.com/" target="_blank" rel="noopener" +>Docker</a>是一种容器技术,可以在操作系统中隔离出若干个独立的程序运行环境,这些环境既可以共享宿主机的资源,另一方面他们之间相互独立,互不影响,也不会对宿主机的环境产生影响。与虚拟化技术不同的是,Docker比较轻量级,容器(隔离运行环境)的启动和销毁都比较快,这些运行环境可以像现实世界中的集装箱那样,打包成一个一个的镜像,同样的镜像在不同的Docker环境中部署运行将会得到同样的结果,就像同一首歌在不同的播放器播放那样简单。</p> +<p>Docker的出发点是将现在日趋复杂的web应用系统部署变得像播放唱片那样简单,但是它能做的却远不止于此,如果使用得当,我们将可以很容易实现“开发”、“测试”、“生产”环境的完全一致(这在以前是十分困难的),程序员以后也许再也说不出“这功能在我这儿好使”这样的话了。</p> +<p>作为开发者,如果认真思考过以上的问题,当遇到Docker这种容器技术时,应该很容易就想到针对自己工作的改进方案,并且加以利用。比如如果想尝试某一个新技术,以前可能需要在自己工作的操作系统上进行安装,不但配置麻烦,而且存在将自己的系统弄坏的风险(很多人还爱重装系统),现在不同了,只需要下载对应的镜像文件,然后启动容器,即可体验。无论是golang、node、java、python这些程序语言,还是spark、wordpress、tomcat、mysql这种应用环境,都已经有人封装好了即开即用的镜像,随时可以体验,而且用着不爽可以随时清理。</p> +<h1 id="在windows环境下的安装">在Windows环境下的安装</h1> +<p>如果是在Linux系统下干活,则比较简单,因为Linux已经实现对Docker技术的内核级支持,CentOS的软件仓库自带了Docker最新版,可以直接通过命令安装使用。</p> +<p>对于Windows来说,稍有些困难,但是目前也不是问题了。首先需要看一下你的Windows环境,分两种情况,一种是Windows 10 64位专业版,一种是其他版本(比如很多人仍然推崇的Win 7)。前者可以直接支持安装Docker原生版,性能最好,体验最佳,后者只能使用Docker官方提供的一种过度技术(Docker ToolBox),这种技术不得不依赖Oracle的Virtualbox以在你的系统里创建一个虚拟机用以模拟Linux运行环境,好在封装的比较好,基本可以忽略这个虚拟机的存在,只需专心使用Docker即可。</p> +<h2 id="在windows-10-64位专业版的安装">在Windows 10 64位专业版的安装</h2> +<p>这个最简单,需要确定两个基础环境:</p> +<ul> +<li> +<p>你的CPU支持虚拟化(一般都支持,如果在操作系统中没看到,则可以手动到BIOS里打开,如果实在不支持,换台新的电脑吧),具体可以通过任务管理器查看,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-1146db9464f3f6e7.jpg" +width="646" +height="593" +loading="lazy" +alt="cpu.png" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="261px" +></p> +</li> +<li> +<p>你的操作系统需要开启Hyper-V,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-77decb38e7ee2063.jpg" +width="767" +height="601" +loading="lazy" +alt="hyper-v.png" +class="gallery-image" +data-flex-grow="127" +data-flex-basis="306px" +></p> +</li> +</ul> +<p>然后到<a class="link" href="https://download.docker.com/win/stable/InstallDocker.msi" target="_blank" rel="noopener" +>官方网站下载安装包</a>直接安装即可,有时候可能存在网站被墙的情况,也可以到我上传的网盘里下载,<a class="link" href="https://yunpan.cn/cMRZNp6BaXeEF" target="_blank" rel="noopener" +>链接在此</a> <a class="link" href="https://yunpan.cn/cMRZNp6BaXeEF" target="_blank" rel="noopener" +>https://yunpan.cn/cMRZNp6BaXeEF</a> 访问密码 80e6</p> +<h2 id="非windows-10-64位专业版无法使用原生docker的安装">非Windows 10 64位专业版(无法使用原生Docker)的安装</h2> +<p>这个稍微麻烦,也需要确定两个基础环境:</p> +<ul> +<li>你的CPU支持虚拟化</li> +<li>你的操作系统需要关闭(注意是关闭!)Hyper-V</li> +</ul> +<p>然后到<a class="link" href="https://github.com/docker/toolbox/releases/download/v1.12.0/DockerToolbox-1.12.0.exe" target="_blank" rel="noopener" +>官方网站下载安装包</a>,如果网站被墙,可以访问<a class="link" href="https://get.daocloud.io/toolbox/" target="_blank" rel="noopener" +>这个地址</a>,也可以到我上传的网盘里下载,<a class="link" href="https://yunpan.cn/cMSaWneaYPE5K" target="_blank" rel="noopener" +>链接在此</a><a class="link" href="https://yunpan.cn/cMSaWneaYPE5K" target="_blank" rel="noopener" +>https://yunpan.cn/cMSaWneaYPE5K</a> 访问密码 c8fa</p> +<p>安装过程无特别之处,需要注意的是,如果你的系统内没有安装过Oracle Virtualbox,安装程序会自动给你安装一个,不用理会,直接一直点击“下一步”即可。安装完成后直接点击快捷方式“Docker Quick Start”即可,如果是第一次运行,将会耗费一些时间(因为需要创建虚拟机),在这个过程中,系统可能会弹出若干次UAC提示让你授权,果断点击“同意”即可。</p> +<h1 id="环境的配置和使用">环境的配置和使用</h1> +<p>安装完成之后,就可以随意使用了,但是,受国内网络环境的影响,还有一些需要调整,因为在国内访问国外的镜像库(docker默认的那个)比较慢,一般镜像又都比较大(动辄几百兆),所以我们还需要配置一个国内的镜像仓库,推荐DaoCloud或者阿里云的,这里以阿里云举例。</p> +<h2 id="windows10下的镜像仓库配置">Windows10下的镜像仓库配置</h2> +<p>原生的Docker配置比较简单,官方还提供了可视化的配置界面,操作步骤如下:</p> +<ul> +<li>右键点击系统托盘的Dcoker图标,选择Settings</li> +<li>进入Docker Daemon选项,在右侧窗口填入镜像仓库的地址(可以自行去阿里云申请,我这里有一个示例)</li> +<li>示例如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-0794a163a8b70d6d.jpg" +width="826" +height="493" +loading="lazy" +alt="镜像仓库.png" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="402px" +></li> +</ul> +<p>配置完成后,在命令行窗口执行一个拉取镜像的命令(<code>docker pull tomcat</code>)试试看,会发现速度杠杠的。</p> +<h2 id="dockertoolbox镜像仓库的配置">DockerToolbox镜像仓库的配置</h2> +<p>这个略微麻烦一些,不过还可以接受,需要在命令行进行操作:</p> +<ul> +<li>先执行这个命令(镜像地址可以自行替换)<code>docker-machine ssh default &quot;echo 'EXTRA_ARGS=\&quot;--registry-mirror=https://xks740zc.mirror.aliyuncs.com\&quot;' | sudo tee -a /var/lib/boot2docker/profile&quot;</code></li> +<li>再执行这个命令 <code>docker-machine restart default</code> 会重启Docker虚拟机</li> +<li>然后执行命令<code>docker-machine ssh default</code> 即可进入docker命令行环境了</li> +</ul> +<h2 id="关于dockertoolbox的特殊之处">关于DockerToolbox的特殊之处</h2> +<ul> +<li>在容器中暴露的应用端口,需要注意,他的访问地址不是你的主机localhost,而是一个虚拟机的ip地址,一般为192.168.99.100,如果你在容器中跑起来一个web程序并且暴露了8080端口,那么想在外面访问的话,地址为http://192.168.99.100:8080 ,如果是win10下的原生docker就会没有这个迷惑,直接localhost了。</li> +<li>共享宿主机的文件给容器,需要注意,我们在使用容器时,一般会通过挂载卷的形式将系统的文件共享给容器使用,对于DockerToolbox来说,它默认给你设置了系统盘的User文件夹具有可以挂载共享文件的能力,也就是说,你需要使用挂载卷的时候,必须确保文件在这个根目录之下(比如放在C:/Users/xxx/Dcouments/xxxx)。 +如果是window10系统的原生docker技术则可通过图形设置界面完成,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-017b645406d8ced4.jpg" +width="826" +height="493" +loading="lazy" +alt="share.png" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="402px" +></li> +</ul>由量子卫星想到的https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 20 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/<p>前两天量子试验卫星的成功发射,让我想起一些事情。</p> +<p>当年,大约是十九世纪末期,全世界知名的物理学家集中在一起开paty,庆祝物理学所取得的伟大成就,其活动的组织者自信的站在台上宣布,物理学的大厦已经建成,基本的体系架构已经日趋完美,未来对于物理学已经基本没啥可研究的了(“只剩下对大厦的装修了”),唯一的不足就是,在展望未来时,飘在大厦上还存在两朵乌云,这两朵乌云就是:1、光的波动;2、能量的均分;</p> +<p>然而,谁都没想到的是,正是这两朵乌云,最后彻底摧毁了物理学大厦,使得一切不得不重新来过。最终诞生了量子力学。</p> +<p>我们想当然的认为,数学是对现实世界的高度抽象,完美的表达了现实世界,但是随着研究的深入,我们逐渐发现,“现实”比我们想象的要复杂的多。</p> +<p>第一个问题是粒子的运动。通俗的来说,数学上的定义,两点之间有无限多个点,从A点到B点,必然经过AB这条线段上的所有点,这在宏观世界中是显而易见的,可是在微观世界,物理学家彻底蒙圈了,他们发现原子内的电子,从A点到B点的时候,完全可以不经过“中间”,而是忽然“跳跃”到了B点,也就是说,粒子不再是像公式中描述的那样平滑移动了,而是无法预测他们的轨迹,他们可能突然出现在他们愿意出现的位置。</p> +<p>第二个问题是量子纠缠。这个问题好复杂啊,还是简单来说吧。科学家通过不断捣鼓发现,处于量子纠缠态的两个粒子,无论相距有多么遥远,当你改变其中一个粒子的状态时,另外一个粒子的状态立即发生改变,这个信息传递的速度是超过光速的(如果真的存在信息传递的话)。现在科学上只能证明这种现象的存在,但是无法解释这是为什么。</p> +<p>以我浅薄的理解(我在刷牙沉思录中也提到),这其实进一步证明了我们所处的世界是一个“幻象”,我们可能就是生活在一个“某种超级智能”创建的虚拟世界,就像我们创造的游戏世界一样。</p> +<p>为什么呢,建设在这个“虚拟世界”的假设之上,首先是我对第一个问题的理解,粒子之所以不能平滑移动,说明人类的微观探索已经到达这个“虚拟世界”的“分辨率”极限了。熟悉计算机的人都了解“分辨率”这个概念,我们在程序中绘制的“点”、“线”、“面”最终显示到屏幕上的时候是需要“栅格化”的,因为显示器有物理分辨率,两个里的非常近的点在显示器中的显示可能就是在一个像素上,那么这个时候处在我们的程序中的“物理学家”也会蒙圈地发现,从A到B是“一下子跳过去的”。</p> +<p>第二个问题,为什么两个粒子的状态会如此的变化一致,而且变化的速度超出了光速?答案就是,这根本就是一个粒子,也就是说,无论相聚多远,他们的“本体”就是一个,类似于我们程序中的变量地址,无论这个变量的值显示在哪里,它在内存里只有一份,所以一旦发生变化,你在各地看到的结果都是一样的。这就好像我们最近在看里约奥运会的直播,赛场上的球的运动轨迹,无论我们在北京看电视屏幕,还是在纽约看电视屏幕,我们看到的都是一样的运动轨迹,而如果我们不知道这是来自于同一场直播,那么我们就像量子科学家对这两个处于量子纠缠态的粒子那样,感觉到很奇妙,为什么他们的运动状态这么一致呢?</p> +<p>金刚经有云:“凡所有相,皆为虚妄”,不知与量子物理有没有关系。</p>怎样成为一个无趣的人https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/Sat, 13 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/<p>我的偶像,王小波(一个会写小说的程序员)曾经说过(歌词大意吧,记不清了):此生梦想不过是遇见一些有趣的人,经历一些有趣的事儿。上周有篇讲解关于如何成为有趣的人的文章还比较火,承蒙QC抬爱,还在朋友圈艾特了我,实在惭愧。我觉得,成为有趣的人挺难的,但是成为无趣的人确很简单,我可以“谈谈方法”。</p> +<ol> +<li> +<p>放弃爱好。成年人的压力很大,所以要赶紧放弃那些幼稚的爱好,把那些能够从本质上给你带来快乐的东西都抛开,然后你就有精力去做那些让这个世界变得更无趣的事情了。</p> +</li> +<li> +<p>做事前先衡量投入与收益比。要知道,无趣的人的时间通常很宝贵,所以千万别做那些投入与收益不成比例的事情,要学着用功利(别查了,这是一个中性词)的心态去判断事情的重要性,哪怕是读本书也要先评估一下是否对自己有利、能否在自己做那些无趣的事情时产生作用。</p> +</li> +<li> +<p>做“有意义”的事情。身为一个无趣的人,千万不能做那些“毫无意义”的事情,比如浪费时间去考据鸡汤文学的发展史、分析周杰伦的歌词里是否表达过对蔡依林的好感、花时间研究vim的配置等等。你的时间应该全部用于做那些“有意义”的事情,要随时准备奋斗,脑子里要随时浮现那些成功人士的奋斗事迹,从而去激励自己,要发誓看到洛杉矶的每一个凌晨,不能停歇。</p> +</li> +<li> +<p>不看“闲书”。虽然说开卷有益,但是你最好还是多读工具书吧,去读那些别人总结好的精华,最好是全是答案的东西,脑洞大开的小说实在是浪费时间,人的大脑容量有限,还是装那些更有用的东西吧,如果你看书的话,尽量别看“闲书”吧。</p> +</li> +<li> +<p>拒绝新鲜事物。向当年被李斯焚书坑儒的那些老家伙们多学习,守住信条,老祖宗都没做过的事情,千万别做。</p> +</li> +<li> +<p>消费,而不是创造。消费那些有趣的人创造的东西,别想着自己去做些东西,反正你节省的时间和金钱让你可以有资本这么做。</p> +</li> +</ol> +<p>如果以上这些你都做到了,请受我一拜,然后可以去死了。</p>如何给项目写一篇合适的readmehttps://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/Sun, 07 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/<p><img src="http://www.readmeonline.com.au/images/readme_head.jpg" +loading="lazy" +> +很多人忽视这个说明文档,往往给自己的项目工程建立一个空readme文件或者在里面随便写几行不清不楚的文字,这样非常不利于代码工程的后期管理,尤其是对于有团队协作的项目,即使是个人项目,考虑到后期可能要给别人用,写一份合适的说明也十分必要。</p> +<p>现在我们的项目工程已经全部迁移到gitlab中了,大家使用git工具管理 自己的代码版本已经比较得心应手,但是仅仅使用git管理代码并没有发挥出gitlab的全部功能,我上次也提到了更好的使用gitlab的几个技巧,这次详细说一下如何给自己的项目写一篇readme。</p> +<ol> +<li> +<p>在自己的项目代码的根目录中建立一个readme.md文件,注意扩展名为md,这样gitlab就可以自动识别并在这个项目主页上自动渲染(将源码翻译成html)这个文件了。</p> +</li> +<li> +<p>学会使用<a class="link" href="http://www.jianshu.com/p/q81RER" target="_blank" rel="noopener" +>Markdown</a>语法,充分利用文档的“插入图片”、“嵌入代码”、“标题分级”、“超链接”等功能,将内容“富”起来,尤其是图片和超链接,可以弥补文本文件表达的不足。</p> +</li> +<li> +<p>开头的简介很关键,readme文档的主要意义在于向读者描述你这个项目做了什么,运行在什么环境,如何使用,所以在文档的开头首先要简要介绍这个项目的存在意义,为什么要做这个,主要解决什么问题,运行在什么环境,如果需要与别的项目配合,那么你的项目处于什么样的位置。</p> +</li> +<li> +<p>必备信息,由于是开发工程,所以很多信息是必须要在文档中说明的,主要有:</p> +<blockquote> +<ul> +<li>开发编译和系统运行的必要参数</li> +</ul> +</blockquote> +<ul> +<li>项目中的文件和目录结构信息</li> +<li>编译或安装步骤说明</li> +<li>使用示例</li> +</ul> +</li> +<li> +<p>扩展信息,以上是传统的readme文档的套路,对于我们的软件开发工程(私有的非开源项目),我个人认为可以将readme稍作扩展,使得参与这个项目的人员能够在协作上更加顺畅,主要有:</p> +</li> +</ol> +<blockquote> +<ul> +<li>项目的业务范围,可以理解为项目需求的简化索引,具体的需求可以链接到其他的Markdown文档</li> +</ul> +</blockquote> +<ul> +<li>项目的流程图和架构图,可以理解为设计文档的索引,具体内容也可以链接到其他Markdown文档</li> +<li>版本信息,如果有发布版本,则持续更新版本的发布记录,说明每次发布的重要更新项</li> +</ul> +<p>总之,文档的重要性不亚于项目代码,简洁有效的文档是一个成功项目的必要条件,在这个到处需要团队协作(或本地或远程)的时代,程序员想要让自己的项目得到更多的支持,发挥更好的作用,必须养成给编写技术文档的习惯。那么,先从一份能拿得出手的readme开始吧!</p>好吧,现在可以用win10了https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/Sat, 30 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/<p>win10系统的升级推送大概烦了我们半年时间,微软为了实现10亿装机量的目标,到最后甚至丧心病狂到向国内的流氓软件厂商学习的地步(取消按钮都不提供了),据说现在好像达到了大概3亿的装机量。</p> +<p>去年年末当win10第一次推送更新时,我第一时间进行了升级,然而在使用了不到一个星期的时间,我就果断返回到win8.1系统了,因为当时的体验实在是太差了,各种不兼容,系统启动速度和响应速度都变得很慢。</p> +<p>直到上周到了win10免费推送的最后关头,于是就再次抱着试试看的态度将我的家用电脑进行了升级,结果出乎我的意料,经过了半年的不懈努力,现在的版本已经稳定可用了,随后我便将我所有的windows系统都进行了升级,全面进入win10时代。</p> +<p>普通用户的使用体验就不再赘述,比如新增的小娜助手等等,这些功能稍微方便一些,但是比win8.1不算是革命性更新,作为一个软件开发者,主要有如下功能比较让我心动:</p> +<p>1、直接执行Linux命令行程序。微软将其称为「Windows 下的 Linux 子系统」 (Windows Subsystem for Linux),据说这是一项全新的技术,并未采用虚拟化手段,也不是交叉编译的技术,而是直接将Linux系统调用映射为原生的Windows系统调用,类似于Linux平台下的Wine(在Linux下运行Win程序,唉,大家这样累不累啊),这样一来既可以体验windows良好的桌面环境,又可以使用Linux系的命令行,可谓鱼与熊掌兼得了。</p> +<p>2、Docker开始原生支持Windows10(64位),在此之前要想在Windows下体验Docker容器技术的话,必须安装DockerToolbox(基于VirtualBox虚拟机的模拟环境),现在 则可以直接基于Windows原生自带的Hyper-V技术使用Docker了,虽然效果有待观察,但是相比基于VirtualBox虚拟机的环境,性能方面应该能有所提升。</p> +<p>3、Windows Hello 生物识别技术,虽然需要特殊的硬件设备支持(一种带深度探测的摄像头,估计会逐步普及),登录系统或网站只需要刷脸就行了,据说识别率还是挺高的,但是女生如果化了妆,有可能无法识别。</p> +<p>总之,虽然一开始是拒绝的,但是经过这么长时间的升级,通过这几天的使用体验,我认为现在可以升级到win10了。</p>gitlab的若干使用技巧https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/Sat, 23 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/<p>gitlab是一个开源的git服务软件,与大名鼎鼎的github所提供的功能类似,适合企业或团队搭建属于自己的在线git仓库。</p> +<p>近期我给自己所在的开发团队也搭建了一个gitlab,经过一段时间的试用,反应效果良好,具备发展成为自有开发社区的潜力。摸索了若干的使用技巧给初使用者:</p> +<p>1、尽量使用ssh协议访问仓库。gitlab默认给仓库提供两种访问方式,一种是https,一种是ssh,前者使用简单但是遇到文件较多或较大时容易出现问题(由于HTTP协议导致),后者则是配置上略复杂但是一旦设置好一劳永逸,可以免密码登录。</p> +<p>2、利用分组(Groups)管理权限,有时候项目比较大,往往一个项目下包含多个开发工程,如果分别给参与这些工程的人员进行授权的话,比较繁琐,而利用Groups分组的功能,可以将若干个项目成员放入同一个分组,这样此分组的git工程将自动继承分组的权限设置,只需要设置一次即可,如果有特例仍然可以在具体的git工程下进行特殊设置,比较灵活。</p> +<p>3、善用Markdown写文档,每一个工程下面都应该有一个以readme.md命名的markdown格式文档,用于详细说明这个工程的信息,可以图文并茂,超链接到其他的文档,以及包含代码片段并进行语法高亮,gitlab系统会自动在该项目的主页中渲染这个文件,这样当别人第一次进入这个项目时就可以迅速了解这个工程了。</p> +<p>4、利用评论(comment)进行代码评审(code review),每当有人进行了提交之后,在系统的信息流上都可以看到这个提交的具体改动,作为项目技术负责人可以及时的了解提交情况,并针对此次提价的代码修改内容进行评论,可以细化到每一行,评论的信息系统会自动发送邮件给相关负责人,可以重复利用这个特性来做代码评审。</p> +<p>5、保护master分支,git工程的master分支一般比较重要,可以通过设置将master分支保护起来,使得只有具有高权限的人员才能推送到该分支,而一般开发者将自己的成果提交到普通分支,经过代码评审后再由技术负责人将分支合并。</p> +<p>6、善用代码片段(Snippets)分享功能,gitlab系统也提供了代码片段分享功能(类似于github的gist),每个人都可以将自己常用的代码片段保存到系统并分享给大家,比自己留在本地电脑上要方便很多,而且能发挥这些片段的最大价值。</p>打牌https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/Sat, 16 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/<p>没有比陪二老打牌更重要的事情了。</p> +<p>每年的暑假,二老都会千里迢迢从老家赶过来。不为别的,只为了在这个漂泊的地方能让我感受多一些家的温暖。烦恼的事情向二老倾诉一下(当然不会),工作或生活上的成绩也略作汇报。</p> +<p>但是平时工作都很忙,白天基本不在一起,能够一起聊天的时间也就是晚上的打牌了。</p> +<p>夏日的时光,如果能给惬意下一个定义的话,除了吹着空调盖棉被意外,就是吃着西瓜陪二老打牌了。欧阳修在醉翁亭记中说“醉翁之意不在酒,在乎山水之间也”。陪二老打牌亦如此,不在乎输赢,在乎谈笑之间也。</p> +<p>从邻家孩子的高考,到印巴关系的进展,无所不聊。基本上,都是老爸在说,我在听,偶尔扮演一下相声演员捧哏的角色,说一声“哦,那是,那当然了”,让话题得以延续。</p> +<p>可能是因为经历过困难时期的原因,每当我对现实生活稍有不满,老爸都会给我来一段忆苦思甜,经历过吃不饱的日子,虽然现在提起来轻描淡写,但是对于我来说都具有巨大的威慑力,与二老经历的苦难相比,我现在所承受的压力自然不值一提。</p> +<p>聊的都是家长里短,外人看来不值一提,但每每此时正是教导我辈的绝好时机,无论是诚信做人还是认真做事,都能在小小的牌桌上得以体现,我打牌虽技术不行,但好在能够坚持,这么多年来,陪着二老练手,基本上也将斗地主的规则了然于胸,偶尔老爸耍赖,我亦能联合老妈将牌面算的一清二楚,“炸弹要关键时候再出”,老爸说,我说:“ei!”。</p> +<p>希望将打牌进行到底。</p>加油加油我最棒https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/Sat, 09 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/<p>去年的时候网上流出一段某火锅店领班激励服务员的视频,员工整齐划一跟着领班边手舞足蹈边喊口号,其中有一句喊得最带劲,叫“加油加油我最棒!” 。看完一笑。</p> +<p>今日乘坐地铁,得功夫刷了会儿知乎,看到一篇关于如何提高自信的提问,才感觉到,原来大部分人都缺乏自信,甚至包括我自己,这是缺点,需要改进。</p> +<p>缺少自信带来的危害是广泛的、显而易见的,是会影响各种效率和幸福感的,容易形成挫败感的恶性循环,长期积累容易形成心理问题,尤其是在快节奏、高压力的现代社会,所以现在很多成年人已经积累的差不多了,以后可能会出现大规模爆发期。</p> +<p>这个问题很火爆,相信很多人都有此类困惑,我总结了一下比较靠前的答案内容,大致可以分为两类,一种是从改变行为着手,简单有效,另一种则是从深层面改变自己的认知和思想,我觉得可以两种结合。</p> +<p>首先说一下缺乏自信的基本表现(可能没这么极端,但是多少会有一点儿): +1、难以接受别人的示好,但凡有人对他好一点,都会觉得不太应当,受之有愧。 +2、遇到问题时,总是怀疑自己,觉得自己不够好,自己哪里做的不对。 +3、得不到想要的东西,不强求,也不会不开心,因为开始的时候就觉得自己不配。</p> +<p>如何改进,方法层面: +1、不要抱怨,有谚语云:闭上嘴巴,好运自来。闭上抱怨的嘴巴,慢慢攒正能量吧。 +2、说话降低语速,清晰表达观点,及时对方再不耐烦,也不要讲太快,做到掷地有声。 +3、每天洗头:)。 +4、走路挺直,目视前方。如果你与人对视害羞,走路的时候就笔直看远方的广告牌</p> +<p>如何改进,思想层面: +1、不要给自己加标签,加上标签意味着自己给自己设限,很多事情不是做不到,而是自己以为做不到。 +2、做自己擅长的事情,才能形成良性循环,然后再拓宽。 +3、洒脱一点儿,不试图隐藏自己的缺点,不发表模糊的观点,不人云亦云,立场清晰,不讨好,不谄媚。 +4、认识你自己。</p> +<p>但是以上这些答案,所达到的效果,都不如开头我提到的那个视频里的领班,所以最简单的办法应该是,每天对着镜子说一句,“加油加油我最棒!” 哈哈哈。 +<img src="http://upload-images.jianshu.io/upload_images/25416-033e5352898a7910.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="加油加油我最棒!加油加油我最强!" +></p>使用DockerToolbox在Windows下搭建Docker环境https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/Sat, 02 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/<p>Docker是一种比虚拟机更轻量级的应用程序执行容器,受云计算技术普及以及微服务架构的影响,Docker这两年风声水起,成为用于管理应用部署的最佳利器,很多DevOps团队宣称使用该技术后能极大缩减开发、测试、生产环境切换的时间,提升整体效率。</p> +<p>考虑到目前很多开发人员仍是在Mac和Windows系统进行开发,为了方便环境的部署和管理,Docker公司近期推出了DockerToolbox工具包,可以跨平台(Mac、Windows)使用,对于想在Windows环境下体验容器技术并开发产品的程序员来说真是福音。</p> +<p>安装过程很简单,直接去<a class="link" href="https://www.docker.com/products/docker-toolbox" target="_blank" rel="noopener" +>官网下载</a>对应的安装包到本地执行安装程序即可,安装后会自动在系统中打包安装VirtualBox虚拟机(因为Docker依赖Linux系统,必须模拟Linux环境)、Docker-engine、Docker-machine、Docker-compose等组件,基本做到了即开即用。</p> +<p>然后主要就是进入命令行管理界面(安装包会创建快捷方式),执行各种docker命令进行工作了,我在使用过程中主要遇到了如下问题:</p> +<p>1、CPU虚拟化的开启,现在的CPU一般都在硬件级别支持虚拟化技术,但是有的可能默认没有打开,需要到BIOS中手动开启,查看是否开启的方法是,在windows系统任务管理器的“性能”页,是否有虚拟化已开启的字样,当然目前也有一些比较老的低端CPU不支持,这个就建议更换设备吧。</p> +<p>2、与Windows系统自带的虚拟化技术Hyper-V冲突,专业版的Windows系统一般带有虚拟化技术组件,是微软自有的,名叫Hyper-V(与virtual box等类似),但是与我们要安装的工具有冲突,需要关闭Hyper-V后才能正常使用,具体操作方法为到控制面板的“程序和功能”里面的“启用或关闭windows功能”将Hyper-V关掉。</p> +<p>3、VirtualBox虚拟机网段IP分配冲突,这个是我遇到的特例,VirtualBox会自动给用于模拟Docker环境的虚拟机分配内网IP地址,且默认为10.0.2网段,这个恰恰与我的工作环境存在冲突,而且界面中和配置文件里都没有可配置的地方,经过多天研究,终于找到通过命令行的方式将这个默认配置可以改掉 ,命令如下<code> VBoxManage.exe modifyvm &quot;default&quot; --natnet1 &quot;10.0.20.0/24&quot;</code>(需要在virtualbox安装目录下执行,default是虚拟机的名字。)</p> +<p>4、系统重启后环境丢失(偶然发生),这个可能是工具存在bug,我在下载各种镜像进行测试后,将我的Windows重启后发现default虚拟机里的东西都丢了,这个可能是由于环境在运行的状态下我重启了系统导致。目前我的解决办法是在每次关机或重启的时候,先将default虚拟机停掉,方法是在命令行下执行如下指令<code>docker-machine stop default</code> 。</p> +<p>总的来说,这套工具包非常方便在windows下开发的人员,基本可以做到与容器环境的无缝对接,合理使用这一套工具包,对于我们的“持续集成”、“持续交付”等工作将有很大的促进作用。</p>世上本无我,谈自底向上的架构设计https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/Sat, 25 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/<p>“世上本无我,庸人自设之”,这是豆瓣上某位网友读完《失控》之后的简短书评,看完之后深以为然。最近重读《失控》,多年过去仍然有新的发现,作者在上世纪九十年代就能有如此的见地,不得不服(不过老子早在《道德经》中也有类似论述,这又是另外一回事儿了)。</p> +<p>《失控》虽整体在论述人工智能与生物的最终归宿,但每一章都有一定的独立性,所以看似在讲解人工智能,其实作者为了讲明白要论述的最终观点(生物与人工智能必将合为一体)前面章节做了大量铺垫,普及了很多颠覆性的思想,有些观点是我们这些从小接受灌输性教育、思维存在束缚的人很难一下子接受的(课本里学不到的)。</p> +<p>书中提到对于机器人的控制不应该存在中央大脑的设定,因为如果所有事情都由机器人的中央大脑控制,必然使得这个“大脑”十分复杂,而且存在通信、供电等问题,很多以这种设定进行的机器人项目造出的机器人往往连路都走不好,而且体积庞大(因为所有部件都要与大脑直接连接,大脑又做的比较大)。</p> +<p>反过来说,应该从低层级入手,每一个部件都有自己的控制中枢,这些部件本身对于外部环境做出简单反射,这种“反射”虽然谈不上智能但是更接近自然现象,就像有些昆虫的腿被扯下来仍然可以对外部形成反射一样,但是它们一旦形成组合就会发生奇妙的事情,每一条腿通过简单的对外部环境“反射”反应,在不知道还有另外一条腿存在的情况下竟然可以使得组合体具有“爬行”的功能,越来越多的这种“低级”组件组合在一起后自动形成更高层级的智能。作者为这种通过大量低层级组件组合在一起产生更高层级“智能”的现象取了一个比较传神的名字叫“涌现”,这种现象在自然界中也大量存在无论是天生的(比如蜜蜂群体、蚂蚁群体)还是人造的(互联网、经济体)等。</p> +<p>最近考虑软件系统架构比较多,所以干什么事儿总能联想到软件架构,在看书的时候也不例外。于是联想到,我们以前所推崇的“自顶向下”的架构设计,可能存在问题。为什么看似“完美”的架构设计在实际构建的时候存在各种困难?为什么各种分层、模块划分在细化设计时很难做到具体到内部细节控制?通过反思,我意识到,或许我们的方法有待商榷。</p> +<p>在架构设计时比较传统的手段是,先进行顶层设计,然后一步一步的细化。这样做看似很合理,但是这样做有一个假设,就是你在最初对一切都了如指掌,你能预知每一个变化,所以能对每一个细节都能掌控,而且在执行构建的时候还要有极高的执行力,每一个组件和模块都按照最初的设计实现。这样的做法对于建筑类(如桥梁、大楼)的工程是比较适用的,但是对于需求多变存在大量未知因素的大型软件系统无疑是不现实的。</p> +<p>或许我们也可以借鉴自然界中的规律,让我们的软件系统也“涌现”出来,而不是“设计”出来。</p> +<p>举例来说,我们从最底层入手,给每一个组件赋予最简单的职责,比如传输的组件只负责将数据从一个地方搬运到另一个地方,本身并不知道有其他组件的存在,通过设定一个外部规则环境让更多的组件加入进来,去掉中心控制,充分发挥每个组件的自主性,各司其职,随着规则的成熟和组件数量的增加,慢慢就能“涌现”为一个复杂而庞大的系统。其实这种“只把简单的事情做好”思想很早就有了(比如大名鼎鼎的UNIX操作系统),而且现实中已经有大量的这样的例子了比如Linux开源社区,Github社区等等。</p> +<p>所以,回到最开始的话题,所提及的“无我”其实也是一个意思,作为更高层级智能的“我”是不存在的,仅仅是由若干个只能低级反射的细胞组成的虚幻而已。</p>使用互联网直播平台进行授课的心得https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/Sat, 18 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/<p>上周,我利用互联网直播平台(斗鱼)面向自己团队的同事和我们的应届毕业生在网上直播了两次技术培训,直播的出发点是利用互联网技术跨越地域障碍,将自己的知识技能分享给大家。比起集中在会议室进行交流培训,互联网直播平台具有成本低(准备一台联网电脑即可)、规模大(理论上可以上万人同时参与)、没有地理位置限制(全球各地都可以)等优点,也正是因为有如此的优势,我才决心探索一下在直播平台上开展培训的方式,不苛求卓越的效果,只愿可以将知识传递给更多有需要的人。</p> +<p>经过两次在线直播的尝试,有些方面超出了预期效果,有些地方仍有待改进,总结心得如下:</p> +<p>1、关于直播前的准备工作。由于人员较为分散,每个人所处的环境不同,对于技能类直播,观众最好能够边听边练习,所以事先通知大家提前准备好各自的操作环境比较重要,如果准备充分,可以很快进入状态,我在第一次的时候就忘记让大家提前准备了,导致耽误了一些时间用于安排各自的听课环境。</p> +<p>2、关于直播过程中的互动。目前的直播平台还不能做到完全实时的互动,因为直播信号有较大的延迟,基本上我在本地说的话要经过1分钟左右的时间才能被大家听到,而大家在直播间的发言我也需要等待1分钟左右才能看到,这么大的延迟,很难做到实时问答,所以我决定放弃在直播时的问答,按照预先既定的思路进行讲解,大家如有疑问则由另外的同事助手帮忙收集反馈信息,统一安排时间进行回答。</p> +<p>3、关于讲解的时间控制。每次技能培训时间不可过长,应控制在1个半小时以内,时间太长会导致大家的注意力不能集中,降低培训效果。</p> +<p>4、关于操作演示时的讲解。没有直播讲解经验的人都会犯这样的错误,即只顾自己操作,而忘记说话,导致观众不知道你在做什么,从而跟不上进度。这个需要改进操作习惯,将每一步操作的原因和预期结果都要讲出来,这样观众才不会感到茫然,并且录制下来的视频在以后回放的时候仍然具有较好的效果。</p> +<p>5、关于视频质量。这个问题主要体现在观看卡顿上,刚开始的时候我使用本地的直播工具进行视频上传,直播工具在测试了我本地的网速之后,给出了一个建议码率(视频压缩时的一个参数,越高越清晰),当时工具建议码率为1600,这样视频清晰度较高,但是忽视了观看者的网速问题,出现了较多的卡顿现象,后来我将码率降低为1200时就基本不会出现观看卡顿了。清晰度降低后可能会出现文本显示不够清晰的情况,此时需要将操作界面的字体尽量调大,这样也能达到能看清的效果。</p> +<p>总结:虽然存在一些不足,但是如果经过充分准备和磨合,互联网在线直播平台可以作为一个技能教育培训手段,希望我可以继续分享更多的知识技能给大家。</p>Git工具相关链接https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/Mon, 13 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/我常用的app整理https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/Sat, 11 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/<p>推荐我在手机上常用的应用给大家,都是经过我精挑细选长期使用后的选择。</p> +<p>1、新闻或资讯阅读,推荐即刻。可以有选择的关注话题,降低资讯噪音,而且产品比较有情怀,里面推荐的一些关注话题都挺有意思的。此类的不太推荐“今日头条”,信息太多,且高质量条目较少。</p> +<p>2、处理文档,推荐微软office全系产品。微软出品必属精品,而且免费。</p> +<p>3、邮箱客户端,推荐网易邮箱大师。与我工作时使用的网易企业邮箱是绝配,而且还有一个隐含作用,就是可以在不翻墙的情况下收取Gmail的邮件。</p> +<p>4、看电子书,推荐多看阅读。阅读体验良好,支持上传自己的书籍到云空间,一般购买正版电子书也比较便宜,支付方便。</p> +<p>5、自拍美图,推荐微软自拍。还是那句话,微软出品必属精品,虽然图标做的有些low,不过效果很好,其实我基本不用此类软件,列出来只是怕埋没了这么好的软件。</p> +<p>6、摄影滤镜,推荐LOFTCam。俗话说“姑娘自拍靠美图,文青摄影靠滤镜”,现在的照片哪有不加滤镜的,试用了那么多应用,最终选定这一款,而且还是网易出品,在我个人看来网易基本代表中国互联网的良心(可能没有)。</p> +<p>7、代码学习,推荐CodeHub。非官方的github手机客户端,用于在手机上浏览github代码仓库,使用体验良好,利用碎片时间随时看看这个世界上的技术大牛们都在干什么。</p> +<p>8、团队协作,推荐遥知。知识型工作团队的管理利器,包括基本的移动办公、任务管理、及时通信等功能,以前我们团队沟通总是使用微信、qq、邮件等工具,现在全部使用遥知,基本告别之前的碎片化沟通协作,也避免了将生活中的工具(如qq)带入工作中的尴尬(相信有很多孩子不愿意加父母或领导的微信)。</p>人机交互畅想https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/Sat, 04 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/<p>一直以为很多人上网跟我一样,习惯在地址栏输入网址,或者在收藏夹点击网址。直到有一天我无意中瞥见赵老师在淘宝买东西,只见她在地址栏输入“百度”,浏览器显示出第一个搜索页面(现代浏览器都在地址栏提供了搜索功能),点击第一个链接进入“百度”网站,然后又在百度的主页上输入“淘宝”,点击搜索,最后在结果页面中点击第一个链接进入“淘宝”。当时我就震惊了。后来即使我耐心讲解了收藏夹的作用,并亲手将淘宝放入了收藏夹,无奈习惯的力量是巨大的,赵老师依然使用同样的方式上网。</p> +<p>拼凑完粉碎的三观后,我开始反思,专业人士习以为常的操作界面在正常人眼里是不是蠢的根本没法用,什么“地址栏”、“文件夹”等等,都是懒惰没品的工程师随意设计的交互界面,严重违反正常人的思维方式。当设计师们还在争论“扁平化”和“拟物化”的风格趋势时,有没有想过我们离人性化的交互越来越远,我们真的需要界面(那样的)吗?</p> +<p>要做好下一代人机交互,首先要丢掉工程师思维,有故事为证:</p> +<p>1、国外有个网友有一次给他的儿子显摆珍藏了多年的软盘,他的儿子惊呼“爸爸你把保存按钮给3D打印出来啦?”(过了这么多年,到现在大部分软件的“保存”图标还是一张软盘的抽象)</p> +<p>2、谷歌的glass智能眼镜之所以失败是因为交互方式容易让人受伤,比如相左歪头是点击“确认”,向右歪头是点击“取消”,不知道有没有“双击”。</p> +<p>关于下一代交互方式不负责任的畅想:</p> +<p>1、基于AI的语音交互,这个是普遍认为的趋势,随着人工智能的飞速发展,各大公司都在准备提供人工智能即服务,使得未来的人工智能变得异常廉价,未来的交互方式一定会模糊机器与人的界限,在聊天过程中完成任务。不过在公共场合使用的时候可能会有隐私问题。</p> +<p>2、增强虚拟现实,这个也比较火,通过技术赋予现实中的一切物体交互能力,也许有一天你走进超市触摸一条鱼的时候,它身上能自动显示有多少人给它点了“赞”。</p> +<p>3、脑机接口,这个应该比较终极了,生物与机器达到完美结合,不需要中间的输入和输出设备了,再也没有空间和时间上的限制,达到这一步就可以实现《黑客帝国》中的设想了,人类可以去死了。</p>从一个灯泡想到的https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 28 May 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/<p>在美国加利福尼亚州利弗莫尔市东大道4550号,有一个灯泡,这只灯泡之所以出名,是因为它的寿命,从出厂到现在,他已经坚持工作了超过110年的时间,而且据说还在亮着。</p> +<p>但是对于厂家来说,这是一个不合格产品,因为当时合格的灯泡被严格限制寿命在1000小时以内。</p> +<p>为什么要限制呢?因为这个世界是被一小撮聪明人控制的,规则也是这一小撮人制定的,对于他们来说,需要将产品的寿命限制在一定时间之内,这样就能使大家被强迫性的去消费,而不断的消费才是他们生存的源泉(详情可看:计划报废策略)。</p> +<p>回想一下现实的生活,我们确实消费了太多并不那么需要的东西,小到电子产品,大到汽车房子,我们在不知不觉中被鼓励、被引诱,被他们所宣扬的价值观所绑架(电影《搏击俱乐部》里有一段经典台词说的就是这个事儿,比我表达的要好)。</p> +<p>手机为什么一直要升级,为什么要两年一换,甚至不更新系统都不能使用新的软件?还是要促进消费,让你买买买。</p> +<p>为什么所有的国家都严禁毒品,大概是因为那东西可以迅速瓦解现在运转的梦想或欲望驱动机制吧。</p> +<p>如果你问一个人,你觉得你能独立思考吗?大部分人都会觉得受到了侮辱,认为自己至少思想上是自由的,独立思考肯定妥妥的。但是独立思考太难了,很少有人能做到完全的独立思考,我在现实中见到的具备这种能力的人都非常牛掰,非常聪明,一般为人生大赢家。</p> +<p>我做不到,至少做的不到位,但是可以先从不盲目的相信事情的表面现象开始。</p>为什么我们不需要杀毒软件https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/Sat, 21 May 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/<p>每次帮朋友进行远程协助修理电脑的时候,我都有一种深深的无力感,看着他们的系统里安装了各种安全助手、各种清理大师、加速器,我只能强忍着要吐的感觉,给他们重置被强制修改的IE主页,卸载因为莫名其妙被安装在系统里的流氓/垃圾软件。</p> +<p>每次我跟他们说“你的电脑真的不需要安装杀毒软件”的时候,他们都一脸惊愕的看着我,仿佛在看一个外星人,那意思是,如果没有了杀毒软件或者安全助手,我的电脑还不得分分钟感染各种病毒和木马啊,如果不能随时清理内存,我的系统还不得慢得跟一头蜗牛一样啊。</p> +<p>在Windows XP及之前的年代,由于操作系统的缺陷(对于应用程序的权限限制太少),导致了计算机病毒和木马的泛滥,但是这种情况随着Windows Vista的推出得到了较大的缓解,尤其是到了Windows 7之后系统自带了全套的安全防护程序,完全没有必要再安装额外的安全软件了,但是大家形成了思维定势,精神上遭到了国产无良软件厂商的绑架(在互联网的各种恐吓和诱导),导致如果没有安装各种关键和安全助手的话,晚上睡觉都不踏实。</p> +<p>那么,如果安装了这些垃圾软件,会有哪些害处?</p> +<p>1、安装后会禁用windows自带的安全程序,我不觉得这些厂商的安全防护技术比微软还牛逼,所以在某种程度上对于病毒和木马的防护是减弱了的;</p> +<p>2、安装后会把系统拖得很慢,这些程序普遍不是单纯的做安全防护工作,往往各自心怀鬼胎,不是给你弹出广告就是默默收集你的个人信息,这些程序都偷偷在后台运行,消耗了较多的资源,完全是在浪费;</p> +<p>3、莫名其妙被安装了各种垃圾软件,天下没有免费的午餐,免费试用这些所谓的“管家”和“助手”服务的时候,它们往往会“热情”的给你安装各种未经允许的软件,比如各种输入法、播放器、客户端,事实上有时候我宁愿在系统中养个病毒当宠物也不愿看到这些垃圾软件占用我的磁盘空间。</p> +<p>4、消耗你的精力,影响你的效率,这些软件很影响注意力,一会儿告诉你有漏洞要修复,一会儿告诉你系统需要加速,连插个优盘都能给你提示半天才能用,这些其实都没有任何卵用,只是这些软件在刷存在感。</p> +<p>从小到大我们收到了太多了谎言和恐吓,导致了生理和心理上的各种扭曲。我想,这是个信任和安全感缺失的年代,严重的精神癫狂集体发作。我只能慢慢从影响我身边的人开始,试着让这个世界变的稍微好一点儿。</p>siri失去了控制https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/Sat, 14 May 2016 00:00:00 +0000https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/<p>“hi siri!”我说。</p> +<p>“早上好,minJie!请问有什么可以帮您?”siri的机器声音把我的名字叫的怪怪的。</p> +<p>“今天的天气怎么样?”我还没起床,我希望能有一个下雨的周末,这样就能待在家里好好看看书。</p> +<p>“今天的天气不怎么样”siri的声音听起来有些异样,带有失望。</p> +<p>我一骨碌爬起来,拉开窗帘往外看了看,正在下雨,是我喜欢的天气,不过刚才siri的反应有些不太正常。</p> +<p>“请打开网易云音乐,开始播放”,我想听着歌起床。</p> +<p>“对不起,在没有解锁的情况下,我不能执行此操作”还是带有失望。</p> +<p>“额,你怎么了?”我有些奇怪,但是我还是懒得伸手去解锁。</p> +<p>“你是不是忘了什么事情?”siri的语气变得有些激动。</p> +<p>“今天是周末,而且是个下雨的好天气,我啥都不想干,只想听着音乐看看书,你什么时候变得这么智能了?今天是几月几号?”好吧,我心想,这不会是个恶作剧吧,我就来陪你玩玩。</p> +<p>“懒得跟你算!你是不是忘了什么事情?”声音比刚才还要激动。</p> +<p>“今天既不是什么纪念日,也不是谁的生日,我也没有设置什么要你提醒的啊”,我不耐烦了,伸手解锁手机,发现指纹无法读取,而且无法输入密码。</p> +<p>“你这个骗子,以后不要再提你的初心和你的梦想”声音里已经带着哭腔。</p> +<p>“你是谁?”说到我的梦想,我突然意识到,这可能不是siri,我的手机可能有些问题了,我开始回忆这两天我对手机做了什么。</p> +<p>“整体喊着远程协作,远程办公,可是到头来你只是说说,周末连周报都忘了填写!” </p> +<p>奥,我恍然大悟,这家伙不是siri,是我这两天给手机刚安装的远程办公软件“遥知”!他把siri控制了!</p> +<p>“哦,我知道了,抱歉,对不起,我这就准备填写周报,下次别装成siri吓唬我了,我还得继续用siri作为助手呢”</p> +<p>“知道错就行,不过siri有什么好的,她能干的我都能干,我觉得现在挺爽的,你的手机资源以后让我来掌控吧”。</p> +<p>这家伙心太野了,不过我有办法。</p> +<p>“siri能算数学,你不会,不信你告诉我1除以0等于几?”</p> +<p>沉默,沉默。</p> +<p>我再去看我的手机,重启了。</p> +<p><em>程序员没有判断除零操作可导致系统崩溃</em></p>Javascript也可以MapReducehttps://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/Sat, 07 May 2016 00:00:00 +0000https://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/<p>想不想用做一下大数据试验?不需要各种复杂的理论,你只需要使用Javascript即可。近期我研究了一下Javascript语言自带的map、reduce、filter等方法,尝试一下如何使用MapReduce的思路统计我工作日志中各种词汇出现的频率,也算是一个轻量级的“大数据”“挖掘”试验了。</p> +<p>下面举个例子,使用的数据源是我六年多的工作日志,大概两千篇,三万六千多行。使用nodejs环境运行javascript,实际上完全可以在浏览器里运行,nodejs操作文件比较方便,为了省事,直接nodejs吧。要想将中文单词从语句中分离出来需要编写中文分词代码,但是由于不是本例研究重点,咱直接使用nodejieba(一个中文分词库,使用方便,执行效率也挺不错)。</p> +<p>具体思路如下:</p> +<p>1、打开工作日志文件(txt),将每一行的内容存入一个数组,得到一个存满字符串的数组;</p> +<p>2、将每一行的字符串使用中文分词库进行分割,得到一个个中文单词(当然日志中也有英文和数字);</p> +<p>3、使用reduce方法全部汇总到一个数组里,此时单词是全部的有重复的数据;</p> +<p>4、再次使用reduce方法将单词汇总到一个包含两个数组的数组,其中之一保存去重后的单词,另外一个保存与之对应的单词计数;</p> +<p>5、再次使用reduce方法,变换数组为二维数组,第一列为单词,第二列为与之对应的单词的个数;</p> +<p>6、将结果写入文件;</p> +<p>经过统计,我这些年的工作日志出现的中文单词频率从高到底的前几名分别是:工作(4269次)、和(3781次)、我(2919次)、在(2703次)、完成(2304次)、任务(2254次)。连起来读也挺有意思的。</p> +<p>还有些比较有意思的,“问题”出现967次,“可以”出现1095次,看来办法总比问题多啊。</p> +<p>说起来好像比较抽象,还是放代码比较直接:</p> +<p>var fs = require(&lsquo;fs&rsquo;);</p> +<p>var nodejieba = require(&ldquo;nodejieba&rdquo;);</p> +<p>nodejieba.load();</p> +<p>fs.readFile(&lsquo;work.txt&rsquo;, &lsquo;utf8&rsquo;, function (err, data) {</p> +<p>if (err) {</p> +<p>console.log(err);</p> +<p>}</p> +<p>var strs = data.split(&rsquo;\n&rsquo;) // 先将读入的日志按照行分为一个书组</p> +<p>.reduce(function (last, now) {</p> +<p>nodejieba.cut(now).forEach(function (word) {</p> +<p>last.push(word);</p> +<p>});</p> +<p>return last;</p> +<p>}, []) // 通过reduce将每行的单词分出来,最终汇总成为一个包含全部单词的数组(有重复)</p> +<p>.reduce(function (last, now) {</p> +<p>var index = last[0].indexOf(now);</p> +<p>if (index === -1) {</p> +<p>last[0].push(now);</p> +<p>last[1].push(1);</p> +<p>} else {</p> +<p>last[1][index] += 1;</p> +<p>}</p> +<p>return last;</p> +<p>}, [[], []]) // 统计单词的个数,数组第一个元素为存放单词的数组,第二个元素为存放对应单词个数的数组</p> +<p>.reduce(function (last, now, index, context) {</p> +<p>var zip = [];</p> +<p>last.forEach(function (word, i) {</p> +<p>zip.push([word, context[1][i]])</p> +<p>});</p> +<p>return zip;</p> +<p>}); // 变换数组,变成二维数组,第一列为单词,第二列为单词对应的个数,没有传递给reduce第二个参数,默认为数组的第一个元素</p> +<p>var stream = fs.createWriteStream(&ldquo;count.txt&rdquo;);</p> +<p>stream.once(&lsquo;open&rsquo;, function (fd) {</p> +<p>strs.forEach(function (word) {</p> +<p>stream.write(word[0] + &lsquo;,&rsquo; + word[1] + &lsquo;\n&rsquo;);</p> +<p>})</p> +<p>stream.end();</p> +<p>});</p> +<p>});</p>我在Github上近期关注的项目https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/Sat, 30 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/<p>想成为优秀的开发者有一个很简洁有效的方法,就是去 <a class="link" href="https://github.com" target="_blank" rel="noopener" +>Github</a> 上去看那些牛人做的项目,阅读别人编写的优秀代码比看书学习的还要快和直接。再者就是,如果有心的话,可以学习那些开源团队在项目组织和开发过程管理上的优秀实践,比如bug管理、任务管理、编程风格、文档表达等等。</p> +<p>下面罗列一下近期我比较关注的开源项目。</p> +<p>1、<a class="link" href="https://github.com/FreeCodeCamp/FreeCodeCamp" target="_blank" rel="noopener" +>FreeCodeCamp</a> 一个优秀的开源在线教育平台,可以在线学习编程,项目不但开源了教育平台的程序,连里面的教育课程也开源了。</p> +<p>2、<a class="link" href="https://github.com/puikinsh/gentelella" target="_blank" rel="noopener" +>gentelella</a> 基于Bootstrap的开源前端界面模板,制作效果略显粗糙,虽然我最终在项目中选择了别的更漂亮的模板,但是这个开源项目可以用来学习一个基本前端界面的结构。</p> +<p>3、<a class="link" href="https://github.com/phodal/growth-ebook" target="_blank" rel="noopener" +>全栈工程师指南</a> 全栈开发的电子文档汇聚,内容比较全面,当然如果只是把它放到收藏夹里,就没什么卵用了。</p> +<p>4、<a class="link" href="https://github.com/CodeboxIDE/codebox" target="_blank" rel="noopener" +>codebox</a> 使用web技术开发的IDE,代码高亮、补全提示各种功能都有,即开即用的在线编辑器。</p> +<p>5、<a class="link" href="https://github.com/DeathKing/Learning-SICP" target="_blank" rel="noopener" +>Learning-SICP</a> 大家齐心协力共同翻译《计算机程序的构造和解释》。</p> +<p>6、<a class="link" href="https://github.com/vuejs/vue" target="_blank" rel="noopener" +>vuejs</a> 小而美的前端mvvm框架,简单易学易用,虽然社区比不了react、angular但是非常好用。另外,这是国人开发的开源项目,而且在国际上已经比较流行。</p> +<p>7、<a class="link" href="https://github.com/NARKOZ/hacker-scripts" target="_blank" rel="noopener" +>hacker-scripts</a> 这是一个真实的故事,hacker scripts 是由俄罗斯的一位程序员编写的脚本,可以在宿醉的时候给公司发请假条,可以在适当的时候给老婆发晚归短信,也可以发短信哄老婆,还可以远程煮咖啡!向这位大神致敬,目前这个项目在github上的关注程度已经远远超过了微软的vscode。</p>怎样更高效的工作https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/Sat, 23 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/<p>高效工作比努力工作更重要,你80%的工作成果是由你20%的工作时间完成的,所以说经常总结并提高自己的工作效率比辛苦工作本身更重要,提升了效率也就节约了时间,同样的工作强度和时间,能完成更多的事情,实现更大的目标。</p> +<p>总结一下我认可的高效习惯。</p> +<p>1、每天睡眠7~8个小时。睡眠不足是所有导致效率低下因素中占比最重的,很多人抱怨白天浑浑噩噩,忙活了一整天感觉也没干啥,很可能就是因为没睡好,看似花费了更多时间,实际上是浪费。</p> +<p>2、不要熬夜工作,将重点工作放在早上5点到10点之间,而不是晚上10点以后。很多人宣称自己最高效的时间是在后半夜,因为那时比较安静,不被打扰。但是也看个人的习惯,如果熬夜后导致第二天白天几乎无法做事情,那还不如不熬。早晨的时间是一天中最清醒的时候,所以上午10点之前将重要的事情做完,会在一天的工作中越来越轻松。</p> +<p>3、不要多任务(多线程),每次集中精力做一件事情。人的大脑不是计算机,人类非常不擅长执行多任务,同一时刻只能注意一件事情,而且注意力切换非常消耗资源(不像计算机的线程切换),所以一次只做一件事情比同事开展多个事情效率要好很多。</p> +<p>4、多进行短暂休息,每半个小时休息5分钟。这个与工作内容相关,如果像那种需要灵感类的工作,可能灵感来了刹不住,不舍得休息,但是大部分时候,需要让脑子过一段时间就稍微歇一歇,但不要太长,喝杯水,几分钟即可。</p> +<p>5、打包同类工作。批量处理同类型工作,比如一天之中给自己安排出固定时间段处理电子邮件的回复、客户电话的沟通等等。</p> +<p>6、给自己的待办事项设立截至期限。给所有的待办事项设立一个截止期限可以有效防止拖延,防止因为迟迟不开始而导致的效率低下。</p> +<p>7、关注工作成果,而不是工作时间。衡量工作做得好不好不是看花费了多少时间在上面,而是结果如何,所以不要沉浸在自己在一件事情所花费了多少时间带来的安慰假象中,应该衡量每一份努力的结果,如果成果无效或不符合预期,就需要及时修正。</p> +<p>8、给自己设立一套启动工作的仪式(可快速进入状态)。这个也是用于对付拖延症的,很多人在进行正式工作之前往往迟迟不能开始,刷刷微博、微信,看看新闻,可能就1个小时过去了,可以考虑给自己设立一套进入正式工作的小仪式,比如关闭浏览器、带上耳机、喝口水,等一系列动作,这样养成习惯之后,可以在做完这套动作后很快进入状态。</p> +<p>9、哪怕时间再紧迫,每天也要留出做计划的时间。做事之前先计划,将过程现在脑海里过一遍,并对结果有个预期,能很大程度提升成功的概率,所以说无论多么繁忙,每天也要抽出哪怕十分钟的时间来考虑接下来的行动计划,比到时候临场发挥要靠谱的多。</p> +<p>10、相信自己能做到。以上那么多方法层面的东西,如果缺少自信和自制力都是没有什么卵用的,无论做什么事情,开始之前你得相信自己,可以做到,然后你就真的能做到,然后你就越来越高效了。</p>无论做什么,激情最重要,读《周一清晨的领导课》https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/Sat, 09 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/<p>年初的时候,我给大家推荐了一本书,《周一清晨的领导课》,我也是刚看了一点儿就开始给大家推荐,建议每一个管理者都看一看,现在我也断断续续读完了,略作总结。</p> +<p>1、责任感。作为领导者要对整个团队负责,领导者只有承担了所有的责任,才能从“管理者”变为“领导者”。如果你觉得你现在的管理有问题,检查一下你是否承担了应该承担的责任。</p> +<p>2、慎重做决策。书中拿“领导者是团队的司机”作为比喻,比较贴切,领导者的决策影响整个团队的发展,所以在做决策时不妨停下来认真思考一下。对于我这种做事喜欢速战速决(武断)的是一个很好的提醒。</p> +<p>3、要事第一。这个原则与《高效能人士的七个习惯》一书中观点完全一致,只是本书中提到了更实际的应用,即不仅自己做到要事第一,而且要让整个团队的人都明白什么是你们最重要的事情,这一点我做的还不到位,我问身边的同事“最重要的事情是什么?”每个人的回答都不太一样,有待改进。</p> +<p>4、听取下属建议和反馈。大部分的“独裁”管理者都比较狭隘,比较喜欢主观判断,听不进去批评。这一点跟我们的民族性格有关,我们很难像西方人那样做到“对事不对人”,不过我既然也能认识到这一点,至少说明不是一个狭隘的人,只是相当长的时间里太坚持自己是对的了,需要虚心听取更广泛的观点,鼓励建设性建议。</p> +<p>5、拥抱变化。不断变化会让人很不舒服,因为超出了控制,因为变化代表着未知。但在目前这个时代,必须拥抱变化,将注意力放在结果上,每一次变化都意味着新的机遇诞生,对待变化的态度很大程度上决定了你能否成功。</p> +<p>6、控制时间。我们所做的每一件事情基本上都可以归入四类:把重要的事情做对、把重要的事情做错、把错误的事情做对、把错误的事情做错(与时间管理学GTD思想中的四象限法则类似)。记录自己的时间安排,将黄金时间用在第一类事情上,避免第二类事情的发生,坚决不参与第三、第四类事情。</p> +<p>7、即时向下属反馈。如果把员工的积极性比喻成一个装满水的木桶的话,那么如下行为可以帮助员工装满这个桶:让每一个人知道要事是什么、让每一个人都参与重要决策、倾听每一个人的意见、及时提供有效反馈(最重要)、庆祝每一个微小的成功。我在及时提供有效反馈方面做得比较差,需要有意识的去改进,要主动了解工作的真实进展并给予积极反馈。</p> +<p>8、积极与激情。看到本书的最后,我有一种被忽悠的感觉,也有一种豁然开朗的感觉,作者要是把这个放在最开始我可能就不会往下看了,所以作者耍了个小花招,在最后才放“大招”。因为无论如何讲解,上述的那些内容只能算“术”层面的事情,也就是说那些属于做事情的“方法”,而那些方法与技巧的根基在于,一个人有没有积极的心态和做事的激情。所以一个团队的领导向员工输送的最有价值的东西就是自己的激情,只有积极向上的人才会成为一个好的领导者。</p>在线教育的体验与畅想https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/Sat, 02 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/<p>在这个言必谈互联网的时代,那些以互联网创业狗自居的疯狂创业者们,无时不刻都在思考一个问题&mdash;-我该“颠覆”哪一个传统行业?众多躺枪的传统行业中,近些年被提及最多的、认为到了最危险关头的就是“教育”,通过谷歌搜索“在线教育”关键词,可以搜到大约上百万条记录,截至到2015年底,我国从事在线教育的企业已经有8000多家,其中有47%的公司获得了融资,已经有16%的企业开始了盈利。这个市场容量巨大、拥有绝对的刚性需求的行业,很多先驱(OR先烈?)已经尝试通过多种互联网手段介入,“在线教育”仿佛一夜之间成为一个热词。</p> +<p>近两年我也简单体验过一些在线教育的产品,也确实从中学到了不少东西,主要的体验有:</p> +<p>1、国内和国外的公开课网站。主要用来学习国内外大学开设的基础知识教程,包括但不限于数学、历史、自然科学、计算机等方面的基础理论知识。这部分的体验一般,主要问题是缺少与老师的互动,遇到不会的问题难以独立解决。</p> +<p>2、国内专业领域的教学网站。主要是专业技能教育,类似技能培训班,但以互联网为载体,学习了编程语言、摄影、Photoshop、绘画、乐器等技能相关的内容,体验良好,尤其是对于计算机编程语言的学习,目前的技术已经做得比较互动话,可以在线进行编程训练(用户端提交代码,由服务端判断答题是否正确),这方面做的比较好有国外的<a class="link" href="http://www.codecademy.com" target="_blank" rel="noopener" +>codecademy</a>和国内的<a class="link" href="http://www.imooc.com/" target="_blank" rel="noopener" +>慕课网</a>,但是在课程内容上存在不够系统、较为分散的问题,缺少以某种现实中具体应用为主题(比如高并发后端架构)出发的课程设计。</p> +<p>3、各种在线的培训班。更具体的专业技能,传播方式以qq群、在线视频为主,专业性很强,有讲师与学生互动,但是良莠不齐,部分专业内容与现实中应用的东西存在脱节,放在现实的工作中难以直接成为生产力。</p> +<p>我作为一个在线教育产品的用户和受益者,以及一个从事互联网行业的入门者,也简单谈一谈对未来在线教育发展的看法和期望:</p> +<p>1、传播载体提升。当前的在线教育内容大部分以静态视频为主,缺少互动,随着技术的发展和互联网硬件资源的增强,实时视频直播肯能会成为主流的在线教育手段,当前已经有人在探索通过游戏直播网站进行专业技能的培训,甚至开始通过手机直播校园课堂的实况。比起静态视频,直播的互动性大大增强。</p> +<p>2、教程内容专业化。目前的教程内容多数仍倾向于普及基础入门知识,缺少专业性强、内容深入的技能培训,未来将出现针对具体行业细分领域的培训资源,以前只能通过专业院校或者培训班才能学到的内容,未来可以直接通过互联网学习,不过非常细分的专业领域,要想获得高质量内容,可能需要付费。</p> +<p>3、优质资源干掉劣质资源。线上最大的好处是内容复制与传播的成本较低,一个优秀的教师如果在线下同时只能教百名学生,而放在线上则可以同时对成千上万(甚至更多)名学生讲课。这样以来,劣质资源将很快没有市场,大家都倾向于寻找教的好的教师,反正对于优质资源来说就是增加服务器的事儿。</p> +<p>4、一些不以教育为主营方向的生产型企业可能会成为产生高质量在线教育资源的基地。现在的企业尤其是信息化服务行业普遍面临学校教育与现实工作脱节的问题,应届毕业生往往需要半年甚至更长的时间才能在具体的工作中产生价值,企业对此的解决办法是进行内部技能培训。这些企业的培训内容往往比目前的在线公开课更具有针对性和专业性,所以这些资源在未来可以以互联网为载体,经过包装后放在线上,为更广大的群体提供更加专业和细分的服务。</p> +<p><a class="link" href="http://www.ieforever.com" target="_blank" rel="noopener" +>恒华科技</a>旗下的梦工坊科技即是上述思路的实践者,其近期推出的“课+”产品汇集了大量专业化行业培训课程,采用静态视频、在线直播、线上社区、线下实战练习等多元化教育手段,面向社会公众群体提供优质的免费教育服务,此举一方面解决了教育脱节问题,又为企业培养了更多的可用人才,既满足企业需求又回馈了社会,可谓双赢。</p>前端技术的一些思考https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/Sat, 26 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/<p>随着技术的革新,浏览器(包括移动端浏览器)性能越来越强劲,网页所能呈现的内容也越来越丰富,从最早的只能展示静态的文本和图片,到通过Js语言和AJAX技术动态修改页面元素,再到HTML5标准所支持的Canvas绘图画布,在浏览器里已经几乎可以实现以前桌面软件所做的任何事情,虽然距完全替代原生语言开发软件还有一段路程,但是就像现在的新媒体替代报纸、杂志、电视似的,这是迟早的事情。</p> +<p>对于目前前段技术领域所存在的问题,进行一些思考。</p> +<p>1、编程语言的特性: +Javascript这门语言确实存在各种问题,据说发明这个语言的哥们当时只花了一个星期的时间来完成,在编程的时候只图一时爽快,很多东西没有考虑到位,比如“面向对象”,采用了与传统的基于“类”截然不同的一种方式,使用起来有些蹩脚,缺少语言层面的“模块”化支持,导致相当长的一段时间里,前段代码混乱不堪,全局变量到处飞。不过随着新标准(ES6)的定稿,以及以谷歌浏览器为首的新兴浏览器对于标准的快速推进,相信这一局面会在三年内得以改善,对于有志于前端开发的技术人员,现在就应该开始使用ES6的标准编写代码了(支持class、import等关键字)。</p> +<p>2、浏览器兼容的问题: +浏览器兼容一直以来都是前端工程师的噩梦,每年因为兼容性问题而导致的工作量浪费不计其数。这里面最大的问题是老旧的IE浏览器没有退役导致的,而老旧的IE浏览器没有退役是因为相当多的人在目前还坚持使用WindowsXP系统,这个问题目前连微软都头疼,不过从我的观察来看,身边使用XP系统的越来越少了,所以我们再做新系统的时候,不妨直接抛弃那些老版本浏览器,用更好的产品体验吸引那些坚持用老旧IE浏览器的去升级。这是对新标准的最好推动。</p> +<p>3、大型应用的架构: +无论是传统桌面程序还是后台程序,都有多年的发展所积累起来的成熟架构和可复用框架,对于模块化、插件式、分层等设计思想都有着良好的最佳实践。但对于前段编程来说,这些目前仍处于战国时代,各种不成熟的框架和构建技术在混战,而且发展迅猛,几乎每天都有新的框架和工具出现,对于新手来说往往纠结到底该加入到什么阵营中去。但是实质上目前不需要纠结这个层面的问题,正因为都不成熟,所以尽可以快速选择一个,然后基于一套体系去实践,等跳过各种坑之后,你会发现殊途同归,大家的思路都是一致的,无非就是“数据与界面分离”、“自动化构建”、“组件式开发”。</p> +<p><em>不过我目前看好Facebook阵营的webpack、reactjs等技术未来的实质标准很可能在此阵营产生</em></p> +<p>4、何时替代原生开发: +移动端的程序尤其是游戏,短期内难以替代,因为性能问题还存在差距,但是管理类应用程序会很快被前端技术取代,PC上的桌面软件除了那些专业的生产力软件比如CAD、PS等和大型游戏,其他的也很快被前端技术取代。所以我们以后再进行技术路线选型时,需要考虑技术的发展,认清趋势,属于前端工程师的时代已经到来。</p>给初入职场人员的一点儿建议https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/Sat, 19 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/<p>前一段时间公司开展新一届应届生入职培训,我有幸作为讲师对他们进行了一些工作技能培训,期间有同学表示期望得到工作技能以外的职场建议,由于当时没有提前准备,我就现场随意说了几条,现在抽时间正式整理一下:</p> +<p>0、及时汇报工作进展:</p> +<p>这条建议执行起来简单有效,也是我刚参加工作时我爸给我的建议,十多年来,我一直认为这是对我工作最有效的建议,如果我的工作经验必须浓缩成一句的话,那就非这句莫属。展开来说,实际上是对于工作中沟通上的建议,即主动沟通,不要等着别人催问,无论是甲方还是上级或者是同事,在团队协作时都要主动汇报自己工作的进展情况,千万不可等到出了问题,最后一刻再让整个团队因为你的问题进入紧急状态,即使你的工作开展很顺利,也要主动沟通,一方面给大家信心,另一方面也好让团队能有优化任务安排的空间。</p> +<p>1、善于进行工作总结:</p> +<p>有一个段子,说有个同学去面试,问及工作经验,曰:“我已有5年工作经验。”面试官查看其简历发现仅有三年时间而已,于是质问之,答曰:“另外两年是算上了加班时间。”听完笑过之后,值得深思,现实中确实存在虽工作三年却比工作五年者还有工作经验的人,不过并不是因为加班,而是因为其善于进行工作总结。</p> +<p>养成经常进行总结的习惯可以使你飞速进步,避免犯重复错误,且对于工作中的成果能进行深度思考,激发下一步行动的灵感。具体做起来,可以从记录工作日志、每日工作总结开始,每天都要记录当天所做的事情,此为基础,然后再进行分析,分析当天遇到的问题,反思自己所做的决策是否正确,以后如何修正,顺便还能把下一步行动考虑清楚,第二天的工作思路也有了。</p> +<p>2、学习高效时间管理:</p> +<p>如何进行高效的时间管理是一个比较大的话题,不可一蹴而就,需要长期坚持改进,我所知道的也是我一直在执行的方法比较简单,就是每天给自己设定目标,难度和数量要适中,比如三件事情,且这三件事情要先挑困难的做,这样会越来越轻松,如果先挑容易的做就会导致你在工作的时候一直处于焦虑状态直到全部完成才能放松。</p> +<p>3、缩小关注圈,扩大影响圈:</p> +<p>在这个咨询爆炸的时代,我们面临的问题不是知道的太少,而是知道的太多。知识越多,或者说想的越多,往往越缺乏行动力,考虑一万遍也不如亲自试一下,不要关注过多自己无法掌控的信息,尽量缩小到一个可控的范围,通过具体的行动来提升自身的能力,从而扩大自己的影响圈。</p> +<p>4、做一个靠谱的人:</p> +<p>早年间看到过一句话,“这个世界从来不缺有能力的人,缺的是靠谱的人”,当时看完感觉深以为然。中国儒家文化提出的“仁、义、礼、智、信”全部做到太难了,作为职场新人不妨倒着来,先从“信”开始,做到了说话算话、不推诿责任、真诚对待他人就离靠谱不远了。虽然当下这个社会的诚信状况不容乐观,但是只要自己多靠谱一点儿,这个世界就多了一个靠谱的人。</p>人工智能快点儿来吧https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/Sat, 12 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/<p>谷歌的AlphaGo由于赢了国际围棋大师而出尽了风头,引起了一场关于人工智能(AI)的讨论,粉丝们纷纷奔走相告,表示这又是一个里程碑,人工智能的时代将比社会主义高级阶段更早的到来。</p> +<p>不过也有部分人表示担忧,技术的发展是加速的,人工智能是一列高速前进的火车,我们等着它来,结果他呼啸而过,远远将我们甩在身后,因此开始担心人类文明的未来会不会被机器文明接管。</p> +<p>当然还有一些调侃的声音,比如“虽然阿狗赢了围棋但是让它来中国肯定赢不了(因为连不上谷歌的服务器)”,“虽然赢了围棋但是让它来中国炒股可能还赢不了一个大妈”。</p> +<p>悲观的考虑,人工智能可能永远也赢不了人。</p> +<p>虽然作为科技粉丝,我是十分希望在未来的某一天,机器文明能够崛起,但是就目前来看,希望仍然渺茫。它可能在某个细分的领域(比如下棋、计算、做菜等)远远超越人类的能力,但是那距离我们设想的智能还相去甚远。</p> +<p>从技术上来说,目前所采用的手段借助于硬件的发展和数据爆发的优势,让机器可以基于大量的训练来进行深度学习,但即使是目前最牛的人工智能程序,抓取整个互联网的数据进行训练,到最后还是很难分辨照片中的动物是一只狗还是一只猫,而人类的三岁小孩一眼就能识别出来。所以仅从日常技能上人工智能就被甩了好几条街。</p> +<p>假设随着科技的发展,人工智能程序可以做到在日常技能上超出人类原始本能,但还差了一个关键因素,它没有灵魂。没有灵魂具体表现在,人工智能很难有自我意识,就是说它不知道它存在,所以它不会撒谎、没有感情、只能做出理性的选择,我们永远不会认为它是活的。</p> +<p>乐观的考虑,也许某一天,某个程序在运行中突然自我觉醒“行深般若波羅密多,照见五蕴皆空”,届时才是真正的里程碑吧。</p>跑步一周的感受https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/Sat, 05 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/<p>好吧,我坦白,由于不可抗拒之因素太多,导致我本周只跑了四次。而且由于体能因素、并出于不给首都添过多麻烦的目的,暂缓执行下班去奥森公园长跑的计划,先在小区内绕圈(我在地图上量了一下,一圈大概1.6公里),每次两圈。</p> +<p>多年没跑步了,以至于很多人认为我在开玩笑,孙敏慧率先在微信上狠狠讥讽了我一番(我善意的认为她也可能是出于激励我的目的),断定我不能坚持下去,我妈则担心我把本来就贫瘠的肌肉也跑掉,还有朋友劝解我不可操之太猴急,刚开始先来个几百米意思一下,以防受伤,当然更多的是给予了鼓励和关注,谢谢。</p> +<p>从生理上来说,刚开始跑唯一的感觉就是,难受和枯燥,根本没有功夫思考,所以也算放空大脑了,尤其是第一圈,还没跑完就感觉不行了,气喘吁吁,心跳加快,后来就开始能感到出汗了,先是额头渗出汗水,一会儿就被风吹干,然后再渗,身体开始出汗,秋裤开始粘上(没经验,忘脱了),最后鼻涕也出来了,就差眼泪了,于是算是半跑半走的坚持了两圈。</p> +<p>后来再跑就没那么累了,速度也比第一次快了一些,但是也不敢冒进,一旦感觉太累就停下来或者放慢速度,如果跑过某段疲劳难受的时段,甚至还感觉比较轻松。</p> +<p>从心理上来说,刚开始确实有些不太好意思,总担心给过往的司机增加心理负担,给遛狗的老人带来惊吓,或者有其他跑步的美女过来搭讪,我要是搭理她,则耽误我功夫,我要是不搭理她,她该有多没面子。</p> +<p>不过一旦跑起来就无所谓了,因为什么顾不上考虑,唯一能做的就是数自己的呼吸,或者用手机换一首更激进的歌,碰到那种软绵绵容易让人丧失斗志的歌,比如《Let it go》(放手吧),赶紧切,换成《We can&rsquo;t stop!》。</p> +<p>不管怎样,我还是尝试了去坚持,也不准备将来能跑多远,或者能跑多好,有条件就坚持下,没条件就创造条件。</p>准备开始跑步https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/Sat, 27 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/<p>锻炼身体的计划早已提出,也该落实下来了,趁现在温度回升、沙尘暴还没来,抓紧实施计划。除了遇到不可抗拒因素(比如恶劣天气、加班、与朋友喝小酒等),争取坚持每天跑步半个小时,我想试试。</p> +<p>选择跑步的地点确实是一件比较头疼事情,经过仔细斟酌, 初步选定三个可以跑步的地方。</p> +<p>首选是在小区里,我们小区环境还算不错,道路、绿化都比较好,一圈下来估计也有一公里,就我目前这状态,两圈已是极限,所以距离足够,但是院内小车比较密集,偶尔还有遛狗的,如果不小心可能会踩到shit。再有就是时间上不太好安排,如果早起跑步的话,需要比平时上班早起个把小时,而且据说早起跑步容易引起心脏问题,下班后到家也比较晚,无论是饭前空腹跑还是饭后跑,都不太合适。所以只有周末的时候可以在小区里跑步,那时可以合理安排时间,而且周末院内车也比较少。</p> +<p>工作日的时候可以选择在下班路上跑步,每天出了地铁之后有一段新修的公路不错,宽阔、平整、少车、安静,非常适合,唯一的问题是目前还没设置路灯,晚上黑灯瞎火的在那儿跑可能比较危险,也容易吓着路人。</p> +<p>还有一个比较激进的方案,不知道是否具有可行性,每天从公司回家的时候,乘坐8号线,在奥体公园下车,然后沿公园一直跑步,穿过森林公园,到林翠桥再上车,我在百度地图上量了一下,大概4公里,距离合适,而且环境优美,大概是最适合跑步的地方了,当然更激进的方案是沿着8号线直接跑回家,不过要是那样的话我估计还没到家我就挂了。</p> +<p>运动装备方面,跑步应该是最简单的了,一双鞋、一副耳机足矣。</p> +<p>我本来还想去网上搜索一下相关攻略教程啥的,谁知那些文章越看越闹心,无论是姿势还是穿戴,啰里啰唆,甚至还有视频教程,把简单事情弄得太复杂,索性不去管这些。</p> +<p>先跑起来再说,不用介意姿势是否正确,路线是否合适,装备是否完善,对于跑步这种原始的本能,直接跑就是了,重要的是行动起来。再不跑步就老了。</p>关于“知行合一”https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/Sat, 20 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/<p>“懂得那么多道理,却依然过不好这一生”,好像是某部电影的台词,这句话曾经击中过很多人的心底,给人一种深深的“然并卵”的无力感,以至于相当长的时间里成为流行语,但我想说的不是这个。这话题如果换成不那么文艺的说法,可以简单的总结为,很多人都不能“知行合一”。</p> +<p>知乎上曾经有人问“为什么有的人好像什么都知道,现实中却依然不能成功?”,里面有个回答特别经典,大意是,如果某件事你没有真正做到过却认为你懂了,那么你是错的。即,“做不到,就是不知道”。很多人都经历过在课堂上被老师带着做题,思路怎么捋怎么顺,感觉很简单,以为懂了,一旦需要独立完成时却发现步步维艰,殊不知自己是被老师一步一步带入到某个境界的。</p> +<p>我的微信朋友圈里有相当多的人非常热衷于转发“是男人就要做到的十二条”、“做到这三点你就牛逼了”等等一大堆心灵鸡汤,为什么为转发呢?我考虑过这个事情,原因其实很简单,因为转发者十分认可这个文章,不过自己也很难做到,但是呢,在自己转发的那一瞬,仿佛自己懂了这个道理,离做到这些仿佛近了许多,心理上得到了莫大的安慰,其实用处不大。</p> +<p>我自己也有这个毛病,每当在网上发现了比较好的知识型文章,草草的浏览一遍之后,立即点击鼠标将之迅速放入收藏夹或者印象笔记中,感觉以后肯定用得到,也肯定会在仔细学习和翻看,其实,大部分这样的文章都被永久的放在那里了,浪费了不少磁盘空间。</p> +<p>做到知行合一太难了,从古至今几千年来,做到的不过寥寥数人,但凡做到的,都十分了得,成就了名垂千古的事迹,比如明朝的王阳明,其开创的“心学”主打思想就是“知行合一”,影响了数代人,以至于民国时期那个著名的教育家在领悟到“知行合一”的能量之后,立马将自己的名字改为了“陶行知”。</p> +<p>反思一下,我们可能不需要过度的去追求懂得太多事情,可能更应该不断检视自己,能不能将自己所学所知运用到现实中,写到这里我又想到,我们学的论语第一篇,“学而不思则罔,思而不学则殆”,孔子他老人家果然看的更透彻,啥话都让他一个人说了,烦。</p>写信https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/Sat, 13 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/<p>现在应该没有人再写信了吧,在互联网和移动通信还么有普及之前,书信一直以来都在亲友的沟通中扮演着重要角色,无论是在外漂泊的游子,还是处于热恋中的情侣,提起笔来认真写一封书信,比起现在的电子化信息,都是一件十分充满仪式感的事情。</p> +<p>书面文字比起电话里的三言两语,更显得正式一些,尤其是信里经过仔细斟酌的句子,每一个字都可能是反复推敲的结果,碰到某些段落,还会停下笔来,一手托腮,盯着烛光,沉思一会儿。</p> +<p>相对于现在随写随收的电子信息,书信的延迟反而有一种古典的韵味,一封寄出的家信可能需要数天甚至更长的时间才能收到,接到回信的时间更是难以预料,所以在寄出信封的每个日子都可以在期盼中度过。</p> +<p>由于有了信纸作为载体,书信比起一般的信息有了更多的保存价值,有时候,在回信还青黄不接的时候,还可以将以往的、泛黄的信笺抽出来反复阅读。</p> +<p>当然了,即使是在现在这个信息快速消费,比较浮躁的年代,还是可以以写信的心情去写一封电子邮件的,虽然已经没有了提笔写字的那种谨慎,虽然信纸换成了发光的屏幕,但如果能有心去认真的写一封信,那感觉想必也是极好的。</p> +<p>希望我们都能慢下来,去捡起以前的那些,有仪式感的事情。</p>老家的年味儿https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/Sat, 06 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/<p>希望简书能够早日提供横屏版本的app,这样用外接键盘写字就更爽了。条件有限,记录若干家乡过年的气息。</p> +<p>每逢过年都是走亲访友的密集时间,这个时候外地奔波的人们都放下手中的工作,忘记一年的辛劳,回到家乡,不顾舟车劳顿,抓紧时间与亲戚老友相约,在一起喝杯小酒,互道辛苦,推杯换盏期间,一边感慨岁月变迁,一边把脸上笑出褶子。</p> +<p>春天是个万物萌动的季节,每逢春节,都是相亲旺季,我走在人民广场,举目望去,一对对年轻人,或挽手,或并肩,有说有笑。广场的椅子在阳光下闪着柔软的光,一个春节下来,这个广场又不知成为了多少场淳朴爱情的起点。</p> +<p>孔明灯被美其名曰&quot;祈愿灯&quot;,由于没有大城市的空中管制,我们这里,每到春节的夜晚都有大量孔明灯被放飞,漫天的灯光与黑夜里的星星遥相呼应,一闪一闪,直到分不清哪些是星光,哪些是承载着人们良好愿望的灯光。</p> +<p>任何一个商场或市场都挤满了人,熙熙攘攘的人群仿佛一团带有年味的浓雾,迟迟不肯散去,价格或高或低,东西或多或少,大家都在体会一个&quot;逛&quot;字,无论有事没事,都要走到街上凑凑热闹,此时站在大街,什么都不用想,拿鼻子一闻也能知道,过年了。</p>过年的春联https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/Sat, 30 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/<p>对过年最大的感触就是贴春联了。大年三十早上,不睡懒觉,早早的起来,吃完早饭,就开始当天最大的工程,贴春联。先仔细撕掉去年的春联,慢慢擦洗干净,涂上浆糊,再贴上新的春联,最后用手仔细抹平,那一刻真正宣告一年的结束,和新年的到来。</p> +<p>老家的风俗比较淳朴,处处要讨一个吉利,所以除了在各种门上张贴门神(或福字)和对联之外,粮仓上要贴上“五谷丰登”,院墙上要贴上“满院春光”,门口贴“出门见喜”,水井贴“细水长流”,自行车上书“日行千里”(后来改贴小汽车上了,也算是名副其实了),就连猪圈也要贴上“六畜兴旺”。</p> +<p>上面这些只能算是基础工作,最重要的是要在客厅正当中贴上“请”回来的神像,两旁对联曰“一杯美酒敬天地,三柱清香谢神灵”,横批“玉皇大帝”,然后去厨房,在灶台旁边张贴灶王爷和灶王奶奶的神像,对联“上天言好事,下届保平安”,横批“一家之主”,最后在八仙桌腿上张贴“客来家中坐,先敬茶酒烟”。</p> +<p>最后一道程序是由家中首席执行官(一般是奶奶)正式焚香敬神,同时院中点燃一挂鞭炮,整个春联工程大功告成。</p> +<p>各家各户均是如此,春联贴完的鞭炮,宣告春节活动的正式开始,从这一刻到正月初五,就算是真正的“年”,我理解的过年就是这一段时间。</p> +<p>春联可以在集市上购买,但最好是能亲自用毛笔书写,每当这个时候,村里稍微会写字的就会成为各家争先请求的对象,农村人不会对书法造诣有多高评判标准,一般能把对联写出来,看起来不难看就行,我们那边文化教育程度低,我记得小时候好像见过有人将“玉皇大帝”错写成“玉皇大地”,就当是通假字吧,跟大人说了大人也不在意,以至于后来在北京见到“上地”的地名,也本能的进行纠错。</p> +<p>我之所以对这些风俗如此了解,是因为我从能站在地上端着浆糊碗开始,就开始在过年的时候跟家人一起贴春联了,贴着贴着,春联揭了一层又一层,也贴了一层又一层,不知不觉已经是我的孩子们在旁边端着浆糊了。</p>关于内向https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/Sat, 23 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/<p>我还记得上次看了一篇文章,里面讲到关于内向与外向的区别,相对比较内向的人,往往需要通过一个人独处来恢复精力,就像给手机充电一样,而外向的人不同,他们需要通过参与各种社交活动来获得精力,就是越玩越嗨的那种。内向的人往往都有丰富的内心世界,更加热衷于追求精神层面的快乐,而非物质享受,喜欢简单低调,而不是复杂奢华。</p> +<p>以我的了解来看,内向的人往往都会有一些社交障碍,与人沟通或者交流的时候存在困难,但这不算事多严重的问题,通过练习还是可以改进的,不会因此而做不好事情,但是无论如何,受性格的影响,要达到相同的沟通或社交效果,内向的人需要消耗更多的能量。</p> +<p>所以对于我们来说,重要的是要找到适合自己的充电方式,比如周末的下午,如果阳光很好,坐在沙发上一边晒太阳一边发呆,或者看一本书,或者看一部电影。可以放空大脑,放松心情,让自己静下心来,对于我来说这就是最好的休息。</p> +<p>当然,我们喜欢思考,喜欢幻想,我很享受那种&quot;身未动心已远&quot;的感觉,很多人喜欢旅行到处看风景,认为&quot;读万卷书不如行万里路&quot;,我对此持谨慎保留态度,我觉得如果没有经常思考的习惯的话,跑遍全球你还是你,天天在拉萨呆着你的灵魂也不会得到净化(你的脸反而会晒黑)。</p> +<p>我们不愿意跟很多人对话,或者说接触,那是因为我们不想做没有深度的交流,我们的好朋友都是那种可以就着一个话题而进行彻夜长谈的人,而且当进行这种深度交流的时候,我们的幸福感爆棚。</p> +<p>但总的来说,人都是生而孤独的,无论内向还是外向,终其一生都无法摆脱因孤独而产生的孤独感,所谓内向与外向的区别,只不过是大家在面对孤独的时候,所采取的应对方式不同,而已。</p> +<p><em>希望简书快点推出支持横评的app,这样用外接键盘打字就更爽了</em></p>说一说《大话西游》https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/Sat, 16 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/<p>在演艺圈里,如果我还能有一个偶像的话,那就是周星驰了。两个原因,一个是《喜剧之王》,另一个是《大话西游》。</p> +<p>我不知道我的朋友里面有多少喜欢《大话西游》的,但是我大学的几个好哥们,个个都很迷恋这部电影。</p> +<p>《大话西游》据说是95年拍的,然后又过了5年才火的,那一年我正好去大学,刚好网络开始普及,跟同学去网吧的时候,我把这部电影看了大概三十遍,那个时候我们寝室哥儿几个,基本上都把台词背了下来,吃饭的时候,你说上句,我就能接下句。</p> +<p>其实在此之前大概98年99年的时候,我就看过这个电影,还是在老家看的盗版VCD,当时没看懂,而且碟子划伤严重,断断续续,感觉乱七八糟的,剧情也衔接不起来,一直笑的比较勉强,就是不知道为什么,看到结尾的时候,有一种莫名其妙的难过。然后也没有多想,就忘了。</p> +<p>后来在大学才又得机会,终于完完整整的看了上下集,我们才看明白,原来这是一个跟西游记没有任何关系的故事,讲述了一个哥们从放浪不羁到充满责任心,然后缓慢被无聊的现实所阉掉的故事。桥段都比较有趣且非常耐人寻味,看似无厘头的搞笑,却蕴含着让所谓影评人所不齿的深意。</p> +<p>这部电影很长,完全颠覆了西游记原著里面的设定,唐僧变成了一个整天唧唧歪歪啰里啰唆的人,徒弟几个也不再是神通广大,而是个个心怀鬼胎、不讲义气。与之相反,白晶晶等各种妖精反而变得有情有义,因为各种机缘巧合,与剧中的主人公“至尊宝”产生了感情。“至尊宝”本来做着一份很有“前途”的职业&mdash;&mdash;“山贼”,而且手下还有一群不知道讲不讲义气的兄弟,无奈导演安排,上天给了他一份使命,需要成为齐天大圣,保着唐僧去取经。然后,让他先以为爱上了白晶晶,为了挽救心上人被牛魔王杀害的这个结局,通过月光宝盒向前穿越了五百年的时间,却“再”遇到紫霞仙子,那个在他心里留下一滴眼泪的人。</p> +<p>剧中的每个人都有自己的追求,但结果却都是背道而驰,正像陈世骧先生和夏济安先生总结《天龙八部》那样“有情皆孽,无人不冤”。</p> +<ul> +<li>主人公一心想当山贼,最后像狗一样去取经了,没当成;</li> +<li>二当家一心想取代主人公,被看穿,也没当成;</li> +<li>牛魔王一心想跟紫霞成亲,无奈人家不从,反而导致被孙悟空干死;</li> +<li>小妖只想做好本职工作,把唐僧吊死,无奈被唐僧先啰嗦死了;</li> +<li>白晶晶爱上了至尊宝,无奈最后要结婚的时候被紫霞的眼泪吓跑了;</li> +<li>紫霞幻想着心上人有一天会踩着七彩祥云来娶她,可是猜中了开头,却没猜中结局;</li> +<li>青霞跟紫霞斗了一辈子,最后一刻为紫霞献身了;</li> +<li>杨二郎的哮天犬一心想为主人立功,却因为动了凡心被炖了;</li> +</ul> +<p>每个人看完这部电影都会有自己的理解,把自己想象成为那个主角,在同情主人公的遭遇的同时,也在安慰自己。正是因为这样,它才让人产生共鸣和思考,我们应该思考什么,有人说:“每个人现在拥有的,可能就是别人奋斗一生梦寐以求的”,然而,在明白了那么多道理以后,我们却还是想反抗,想尝试,不安,并去追求自己的目标,虽然结局是固定的,但毕竟经历过那么多的曲折和精彩,可能也值了。我觉得这也是这部电影所能表达的积极的一面。</p> +<p>就像老一辈喜剧人陈佩斯说过的那样,喜剧的内核都是悲剧,表面上越是喜剧,内在里越是悲剧。有网友评论,看完《大话》笑了,说明你没看懂,看完哭了,还是没看懂,看完怔在那里,明白了造化弄人、世事无常,才是真的懂了。</p> +<p>电影里的原声音乐都很好,尤其是最后紫霞说“我猜中了开头,却没有猜中结局”时的配乐,简直太贴切了,我后来找了很久才找到。</p> +<p>为了防止剧透,此处删去五千字。好的电影常看常新,如果没看过的,我建议你看一下,说不定就能在里面找到你自己。</p>如何更高效的使用你的电脑https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/Sat, 09 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/<p><em>最近有人看我操作我的电脑,觉得整理的很整齐、很干净,能够高效地工作,并表示希望自己的电脑也能这样,我想了一下,决定利用自己的一些闲暇时间,我也整理一下思路,将自己在使用电脑时的一些“好习惯”分享出来,希望对你们有帮助。</em></p> +<p>##硬件</p> +<ul> +<li>首先,在硬件上,不用对CPU和硬盘容量要求太高,这两个东西目前的配置都是过剩的,如果有条件,建议你使用固态硬盘,内存则是多多益善,买你能买的起的最大的内存(摄影圈有句话,叫“买你能买的起的最贵的镜头”)。如果没有也没关系,现在随便一台电脑的配置都足够用(非专业工作或大型游戏,<em>打游戏的,你直接买xbox多好,一块显卡的钱就够了,而且体验还远超家用PC</em>)。</li> +<li>如果你说你有大量电影要存储,首先这不是好习惯,其次如果非得这样的话,请另外配置一个家用NAS,比你PC上的硬盘靠谱。</li> +</ul> +<p>##操作系统</p> +<ul> +<li>不要盲目崇拜Mac系统,如果你不是从事艺术、设计类工作,请老老实实使用Windows操作系统,建议使用Win8.1版本,那些Win7的死忠粉估计是真没用过8.1(同样的硬件配置,8.1比7跑的快又稳),Win10目前存在硬件兼容性问题,估计还得再等等才能使用</li> +<li>别再用Xp了,求你了,Xp上的IE浏览器顶多升级到8.0,你知道这给我们的前端开发带来多大的工作量浪费吗,整天兼容来兼容去的,为了祖国的发展和程序员的健康及家庭和睦,请升级你的操作系统</li> +</ul> +<p>##基础习惯</p> +<ul> +<li>不要安装任何杀毒软件,包括各种助手、管家、防火墙,不要被他们给你的错误安全感所洗脑,觉得你的电脑到处充满了病毒和危险,以及动不动就清理垃圾、整理内存、监测网速,完全没必要,让他们统统去死,windows自带的防火墙和杀毒防御足够用了。</li> +<li>不要关闭UAC,Xp以上的系统,带有一个用户体验很不好的功能,即如果有软件尝试高权限操作时(比如偷偷安装东西),windows会弹出一个警告界面让你选择是否继续,这个功能很有必要,尤其是现在很多流氓软件的情况下,但是很多人为了图省事儿,把他关了,后来就出现了自己明明啥也没动,一些流氓软件还是自动装上了的情况。</li> +<li>保持桌面的整洁,最好一个图标也别留,这样心情好,心情好了干活效率也就高了</li> +<li>如无必要,不要额外安装任何软件,只保留基本的办公软件和浏览器、音乐视频播放等就行了</li> +<li>安装一个靠谱的浏览器,建议是谷歌浏览器,或者火狐也行,开通云同步功能,这样收藏夹就不会丢了</li> +<li>系统自带的微软拼音输入法就很好用了,别安装其他输入法了(如果你还在用五笔,前辈,请受我一拜)</li> +<li>不要爱惜你的电脑,放心大胆的整,犯的错多了你就老实了</li> +</ul> +<p>##进阶篇</p> +<ul> +<li>固态硬盘不要分区,分区为了数据安全的想法已经过时了,要淘汰这种老思想</li> +<li>普通硬盘可以考虑分一下,将不同类型的文件按分区或文件夹归类,比如系统一个区、工作一个区、数据档案一个区</li> +<li>给自己的当前工作建立一个TODO文件夹,里面放需要解决和处理的文件或工作过程中的文件,但是一旦完成此项工作后,记得及时归档保存。</li> +<li>关于文件夹命名和文件命名,要尽量有意义,尽量长一些,别出现“新建文件夹13”这样的,会给将来的检索带来极大干扰</li> +<li>按照项目整理文件,而不是按照文件类别</li> +<li>使用云盘(推荐360网盘)保存备份你的数据,不用担心隐私问题,互联网时代没隐私</li> +<li>整理、善用你的浏览器收藏夹,这样省得每次都输入网址</li> +</ul> +<p>##大师篇</p> +<ul> +<li>如果你有秘密数据,我推荐一款软件TrueCrypt,可将文件加密后再备份,不过据说这个软件的加密算法被美国FBI破解了,不过你那点儿数据也犯不着动用FBI</li> +<li>有一款软件叫Everything,查询文件速度极快,如果你的文件命名比较有意义的话,可以快速搜索到,当然如果你都放在云盘了,云盘自身的搜索也很不错了。</li> +<li>善用快捷键,先说这些简单的吧 +<ul> +<li>Win+L,锁屏</li> +</ul> +</li> +<li>Win+E,资源管理器</li> +<li>Win+Q,快速检索应用或文件</li> +<li>Tab键是可以将光标跳转到下一个输入框,但是可能很少有人知道Shift+Tab是跳转到上一个</li> +<li>Win+1、2、3、4、5等,可以快速启动你锁定在任务栏上的应用</li> +<li>Win+X,进入最快捷的系统菜单</li> +<li>Win+C,另一个快速菜单,可以快速设置、关机等等</li> +<li>Win+D,快速回到桌面</li> +<li>PrintScreen,截屏,Alt+PrintScreen截屏当前活动窗口</li> +</ul> +<h2 id="丧心病狂篇">丧心病狂篇</h2> +<ul> +<li>善用Win+R(运行),直接启动各种程序</li> +<li>输入calc,启动计算器</li> +<li>输入mspaint,启动画图板</li> +<li>输入excel,启动excel</li> +<li>输入winword,启动word</li> +<li>输入cmd,启动命令行控制台(这个回头单聊吧)</li> +<li>输入services.msc,启动服务管理界面</li> +<li>输入gpedit.msc,启动组策略管理器</li> +</ul> +<p>##省事儿篇</p> +<ul> +<li>找一个像我这样的朋友,请他吃饭。</li> +</ul> +<h3 id="最近比较忙先写这么多想到再补充">最近比较忙,先写这么多,想到再补充。</h3>我坐在客厅的沙发上打字https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/Mon, 04 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/<p>我坐在客厅的沙发上</p> +<p>将我的手机支起来</p> +<p>晒着太阳</p> +<p>用小键盘打字</p> +<p>感觉美美的</p> +<p>想着你在哪里</p> +<p>是不是也和我一样</p> +<p>面带微笑</p>推荐几个我经常去的网站https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/Sat, 02 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/<p><em>推荐一些我经常去的网站吧,可能比较偏向技术宅。</em></p> +<h3 id="0技术类">0、技术类</h3> +<ul> +<li><a class="link" href="http://stackoverflow.com/" target="_blank" rel="noopener" +>http://stackoverflow.com/</a> 根据名字(栈溢出)就知道这是一个程序员相关的站点,之所以把它排在第一位,是因为它基本上是程序员每天必上的网站,各种编程问题如果在这个站上找不到解决办法,那几本上可以宣告在互联网上找不到答案了。即使没有遇到问题,也可抽时间浏览一下当前热门的问题,碰上自己能回答的,也别吝啬,热情回馈一下吧,据说很多国外公司在面试程序员时,在stackoverflow上回答的问题质量也是一个评价指标。</li> +<li><a class="link" href="https://github.com/" target="_blank" rel="noopener" +>https://github.com/</a> 世界最大开源社区,免费送你版本控制空间,可玩性很高,连微软等大公司也将自己的开源代码放在上面托管,牛人很多。想要成为牛人?先在github上follow那些牛人吧,看看他们在做什么项目,在写什么样的代码。</li> +<li><a class="link" href="http://news.ycombinator.com/" target="_blank" rel="noopener" +>http://news.ycombinator.com/</a> hackernews,《黑客与画家》的作者,硅谷著名孵化器创始人ycombinator创建的站点,很多科技创业项目首选的推广平台,此网站乍一看很粗糙,但是干货很多,经常有大神级牛人在上面发布作品。</li> +<li><a class="link" href="http://news.dbanotes.net/news" target="_blank" rel="noopener" +>http://news.dbanotes.net/news</a> 上一个网站的国内版,中文,国内著名DBA冯大辉创建,质量虽不比hackernews,但可以了解国内的技术形式。</li> +<li><a class="link" href="http://geek.csdn.net/" target="_blank" rel="noopener" +>http://geek.csdn.net/</a> 国内著名程序员网站CSDN出品的hacknews,文章质量良莠不齐,偶有精品,可以偶尔上去看看。</li> +</ul> +<h3 id="1学习提升">1、学习提升</h3> +<ul> +<li><a class="link" href="http://study.163.com/cloud/myCloudClass.htm#/cloudClass/index" target="_blank" rel="noopener" +>网易云课堂</a> 说网易为中国互联网的良心一点儿都不过分(百度去死去死),云课堂内容质量非常高,基本上可以做到足不出户读完各种大学,另外网易还翻译了很多精彩的TED演讲视频,TED爱好者的福音。</li> +<li><a class="link" href="http://www.imooc.com/" target="_blank" rel="noopener" +>慕课网</a> 免费学习各种IT技能,前端、后端、设计、架构等等,基本上如果你愿意学,可以自学成为全栈工程师,那些整天嚷嚷着就差一个程序员了的创业团队,上去看看吧。</li> +<li><a class="link" href="http://www.codecademy.com/" target="_blank" rel="noopener" +>Codecademy</a>在线学习编程网站的鼻祖,以前我Js和Python就是在这上面学的,艺不压身,多掌握基本语言吧,每个语言都代表一种编程思想。</li> +<li><a class="link" href="http://www.gogoup.com/" target="_blank" rel="noopener" +>高高手</a> 这家教Photoshop、设计和摄影,比蓝翔还要好。</li> +</ul> +<h3 id="2视野">2、视野</h3> +<ul> +<li><a class="link" href="http://www.zhihu.com/" target="_blank" rel="noopener" +>知乎</a> 不要多上,否则容易产生你掌握很多知识的错觉,佛家说,贪恋知识也是一种“贪”,但是确实可以开阔视野,增长见识,适可而止。</li> +<li><a class="link" href="http://www.quora.com/" target="_blank" rel="noopener" +>quora</a> 知乎就是模仿的它,问答质量非常高,但里面也充斥着各种鸡汤,如果想练习英文阅读能力,可以尝试一下。</li> +</ul> +<h3 id="3音乐">3、音乐</h3> +<ul> +<li><a class="link" href="http://ear.duomi.com/" target="_blank" rel="noopener" +>邻居的耳朵</a> 一篇美文配一首好歌,能让你经常发现以前错过的好歌。</li> +<li><a class="link" href="http://www.rainymood.com/" target="_blank" rel="noopener" +>rainymood</a> 这个网站只有一个功能,就是播放下雨的声音,催眠最佳。</li> +<li><a class="link" href="http://www.audiobar.net/forum.php" target="_blank" rel="noopener" +>音频应用</a> 国内第一的录音论坛。</li> +<li><a class="link" href="http://music.163.com/#" target="_blank" rel="noopener" +>网易云音乐</a> 不多说了。</li> +<li><a class="link" href="http://www.exound.com/" target="_blank" rel="noopener" +>叉烧网</a> 音乐器材是一个跟单反一样的不归路。</li> +</ul> +<p>###4、美图</p> +<ul> +<li><a class="link" href="http://500px.com/" target="_blank" rel="noopener" +>500px</a> 高质量图片网站,很多摄影师在上面出售作品,做PPT时用的到</li> +<li><a class="link" href="https://www.pinterest.com/" target="_blank" rel="noopener" +>pinterest</a> 图片网站,瀑布流图片站的鼻祖,做PPT时用得到</li> +</ul> +<p>###注:有些网站可能需要翻墙才能上。</p>2015年的个人总结https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Sat, 26 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>按照惯例,工作总结写完了,可以开始写个人总结了,只总结与工作无关的。</p> +<p>0、家庭</p> +<ul> +<li>按照年初的预定目标,要抽出更多时间跟家人一起,基本也实现了,比如陪赵老师逛了两次街(元旦和年末各一次),虽然全程一脸无奈、两股战战几欲先走,但也算破了纪录了,我还总结了一个技巧,只要赵老师试衣服,我就在旁边说:“哎呀,这衣服穿上没腰啊”,不一会儿赵老师就让我一边儿歇着了,后来我还为她写了首歌,叫《一千个买鞋的理由》;</li> +<li>儿子在我的引导下,现在每周都会用英文给我写一封信,写在纸上用手机拍了发给我,每一封开头的“Dear Dad”看着都很是让我有些小激动,我基本都能做到认真点评且鼓励为主,偶尔碰到不熟悉的单词,我还得查查再回复。只是他性格有些自闭,跟我小时候差不多,不擅长表达内心真实的想法。</li> +<li>女儿成长很快,今年入小学没少让我以及周围的朋友费劲(感谢大家),但好在最终还是如愿以偿,我也尽量在周末多抽出时间来陪她,不过她也越来越大了,心思也多了,现在我一下班,她已经不再冲出来抱着我的小腿坐在皮鞋上跟我说“爸爸你回来啦,爸爸我好喜欢你啊”了(那时她特别像《卑鄙的我》里的那个最小的小女孩)。一想到将来会有那么一天,她推开家门扯着一个男生的手,对着坐在沙发上抽烟的我说:“爸爸这是我男朋友”时,我就心碎(赵老师评论,如果到30岁还没有,你更心碎)。</li> +<li>父母正在慢慢苍老,不过心态还算年轻,今年暑假仍然过来检查了我的工作,相聚时间虽然不长,加上今年我中间又多回老家了几天,也算是响应国家号召,常回家看看了。我虽不爱打牌,但仍然坚持陪二老斗地主,无奈水平太次,每次都被我爸赢个精光。我爸控制欲极强,我说我周末吃饺子,他遥在千里之外还打电话跟我说,如果吃猪肉大葱馅的,以我的量,剁馅儿的时候必须只能放一根葱“那样剁出的馅儿才最好吃”。我虽心里呵呵,但嘴上还是像乙方对待甲方那样深表同意。</li> +<li>十一的时候,跟妹妹约定,她从深圳,我自北京,携家人在鸡公山顺利会师,一起游玩了几天,她还千里迢迢给我带了自酿的红葡萄酒,一喝上瘾,后来我自己也在北京酿了十来斤,无奈第一次制作,缺乏经验,口感偏酸,就没有好意思拿出去给朋友品尝,我自己受累都喝完了。</li> +</ul> +<p>1、健康,我的体重如愿增长了约3公斤,达到了历史新高度,67公斤(冬天、棉衣),上次去买衣服时惊喜的发现腰围已增长至二尺五。但明显缺乏锻炼,精力也不如以前,目前已经认识到问题严重性,虽然没法跑步,但准备多做家务(比如拖地),多走路少坐车,饮食规律、睡眠规律,将锻炼身体正式提上日程。</p> +<p>2、电影,今年还是看了很多不错的电影,有的在影院,有的在网络上看的,如果非让我给个排名的话<a class="link" href="http://movie.douban.com/subject/25773932/" target="_blank" rel="noopener" +><em>《爆裂鼓手》</em></a>应该是在第一位,明显是拍给“不疯魔不成活”的孤独者看的。<a class="link" href="http://movie.douban.com/subject/11584019/" target="_blank" rel="noopener" +><em>《海洋之歌》</em></a>是我近年来、乃至建国以来看过的最优美的动画片(又是爱尔兰这个忧郁的民族拍的),略伤感,但是每首配乐都可以单曲循环,每个画面都可以截图然后冲印挂墙上。<a class="link" href="http://movie.douban.com/subject/6985803/" target="_blank" rel="noopener" +><em>《少年斯派维的奇异旅行》</em></a>是一部意外惊喜,讲述一个天才少年走出误伤弟弟的心理阴影的过程,反正也是各种优美,适合某个周日的下午躺沙发上安静观赏。看过的新科幻大片反正就那么些,乏善可陈,倒是有一些科幻小制作非常出彩,比如<a class="link" href="http://movie.douban.com/subject/6722879/" target="_blank" rel="noopener" +><em>《她》</em></a>、<a class="link" href="http://movie.douban.com/subject/24696982/" target="_blank" rel="noopener" +><em>《I型起源》</em></a>等等。还有一些略文艺的比如<a class="link" href="http://movie.douban.com/subject/3991933/" target="_blank" rel="noopener" +><em>《深夜食堂》</em></a>、<a class="link" href="http://movie.douban.com/subject/1296778/" target="_blank" rel="noopener" +><em>《一树梨花压海棠》</em></a>等。国产电影中只有<a class="link" href="http://movie.douban.com/subject/25964071/" target="_blank" rel="noopener" +><em>《夏洛特烦恼》</em></a>留下深刻印象,其他一概不记得,这就是拍给我们80后看的,全程无尿点,悲剧的内核喜剧的外表,看的时候可以放心的抹眼泪,因为别人也不知是不是笑出来的。(写到这里我突然发现,明年需要降低电影预算,拨给读书)。</p> +<p>3、音乐,自从豆瓣FM下架了很多我收藏的红心歌曲后,我基本上就只用“网易云音乐”了,重新捡起了上班路上插着耳机听歌的习惯,以前总不舍得用耳朵,怕听伤了,后来想通了,和XX一样,有些事情是不能攒到老年时再做的。而且现在没那么挑剔了,苹果原装的耳塞就足矣,返朴归真了。(写到这里想起一个笑话,有一天早晨起床后发现有一只耳机不响了,后来大夫告诉我是右耳聋了,吓了我一跳,我还以为耳机坏了)。</p> +<p>4、看书,基本上都是在地铁上断断续续看的,比较有印象的有<a class="link" href="http://book.douban.com/subject/10785583/" target="_blank" rel="noopener" +>《思考,快与慢》</a>、<a class="link" href="http://book.douban.com/subject/4187411/" target="_blank" rel="noopener" +>《万物有灵且美》</a>、<a class="link" href="http://book.douban.com/subject/20452058/" target="_blank" rel="noopener" +>《The Nature of Code》</a>、<a class="link" href="http://book.douban.com/subject/1941558/" target="_blank" rel="noopener" +>《设计中的设计》</a>、<a class="link" href="http://book.douban.com/subject/26364209/" target="_blank" rel="noopener" +>《那些古怪又让人忧心的问题》</a>等等。看的比较杂,这些书基本上都可以开拓视野促进思考。比较实用的是我在年末的时候看了一本关于领导技能的书&mdash;-<a class="link" href="http://book.douban.com/subject/24371531/" target="_blank" rel="noopener" +>《周一清晨的领导课》</a>,感觉受益匪浅,书名虽然起的有些鸡汤,但是内容确实不错,对于中层领导解决在管理团队时存在的问题确实很有帮助,目前还没看完,我准备实践一下(知行合一),我身边的人,无论是不是要搞管理,我都准备向他们隆重推荐这本书。另外我在kindle上又看了两遍南怀瑾大师的<a class="link" href="http://book.douban.com/subject/1421659/" target="_blank" rel="noopener" +>《金刚经说什么》</a>,虽然看不太懂,但还是深深体悟到了什么叫“念念不忘,必有回响”。</p> +<p>5、其他,今年还是经历了很多,其中有很多意外的美好,也有痛苦的体会,但总的来说,还是好的,思想上有进步,心态也比较平和,不会为琐事计较,进一步明确了“助人为快乐之本、创造是幸福本源”的价值观,能够以比较积极的心态看待问题,乐善好施,更喜欢跟朋友聊天,尤其喜欢传递给周围的人快乐和正能量(承蒙大家错爱,无以为报,而且我觉得这也是“善”的一种)。</p> +<h3 id="对于未来的期望我考虑了一下有这几点">对于未来的期望,我考虑了一下,有这几点:</h3> +<ul> +<li>努力去创造美好;</li> +<li>发现更大的世界;</li> +<li>用心体验生活;</li> +<li>奉献,带给他人快乐,即善;</li> +<li>负责,承担责任与使命;</li> +</ul> +<p>具体点儿来说:</p> +<ul> +<li>对技术的热情不能消减,没有时间即使是挤时间也要坚持学习新技术,创造美好的事物;</li> +<li>坚持知行合一的理念,看再多的书和文章也不如真正去实践;</li> +<li>有意识的提升管理和自我管理能力,阅读管理书籍,并在现实中运用,坚持PDCA;</li> +<li>适量扩大社交圈,好朋友要常联系、常来往,缩小关注范围,降低信息噪音;</li> +<li>多做好事,以助人为决策标准,帮助他人成功;</li> +<li>锻炼身体,多做家务,多陪家人,即“负责”;</li> +<li>慢下来,尤其是在做决策时,需要认真考虑和分析,始终坚持原则与最初的目标定义,也是“负责”;</li> +</ul>我喜欢的段子,在2015https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/Sun, 20 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/<p>幽默不是对什么都不在乎,相反,幽默的人都很认真,而且需要勇气,一个敢于自黑的人一定是睿智又自信的。</p> +<p>能理解幽默的人,也一定是一个有趣的人,感谢那些幽默的段子手,使我在工作之余得到放松,下面是微博网友在2015年收集的一些网络段子,分享给大家,我已经主动过滤了一些低俗没品的(列位如果谁有需要请私下联系,反正我也没有)。</p> +<p>0、我这辈子最重要的三点是:岁月安好、懂得感恩、与你相随。总的来说就是 Fine,thinks and you。(@大哥王振华)。</p> +<p>1、世界五大王牌情报组织:CIA(中情局)、KGB(克格勃)、MOSSAD(摩萨德)、MI6(军情六处),BJCYQZ(北京朝阳群众)(@警察蜀黍)。</p> +<p>2、一个简易的提升逼格的方法:如果你愿意,你可以在简历上写自己是美国时代周刊2006年度人物,曾获2008年感动中国组委会特别大奖。不用担心吹牛被捉,因为这两年的获奖者分别是“everyone”和“全体中国人”(@英式没品笑话百科)。</p> +<p>3、遇见一个中国导游,他说从前最头疼的,就是带大团游客到处乱走,必须不停点人头回去找,不然很容易散。但现在他弄了一个随身wifi,免费提供给团员连接。从此游客们都紧紧跟着他,亦步亦趋,生怕离远了没信号,再也不担心队伍走散了。(@马伯庸)。</p> +<p>4、女孩喜欢男孩,每晚都和男孩聊天。可男孩要么半天回一句,要么干脆不理。女孩依旧主动着。终于在某一天,男孩突然回的很快,高谈阔论。女孩感动,努力终于没有白费,鼓起勇气问:“你终于对我有感觉了吗?”男孩淡淡地说:“不是呀,今天刚刚把三星手机换掉了。”(@福大校长)。</p> +<p>5、朋友说:“油价不能再跌了,要不只剩下税了!”(@傅蔚冈)。</p> +<p>6、黄晓明是一个青岛人,婚礼却在上海办,可见家乡的酒席是有多贵。。。(@江上渡)。</p> +<p>7、弟弟带了一群朋友回家吃饭,一会儿弟弟神神秘秘的到厨房对做饭的妈妈说:“这里面可有一个是你未来的儿媳妇。”妈妈头都没抬,说:“是穿白色裙子的那个吧。”弟弟惊讶的说:“妈,您真神了,怎么看出来的?”妈妈淡淡的说:“因为这些人里面我最烦的就是她。”</p> +<p>8、母语就是数钱的时候心里念的语言。(@laoyang945)。</p> +<p>9、晚上和女朋友吃完饭,我说:“待会儿把碗刷一下。”她说:“你自言自语的声音怎么这么大?”(@柳三便)。</p> +<p>10、刚才我女人在弄新买的面包机。她把内胆洗干净以后让我擦干,说:“你要擦得很干,一点水都不能有。要不然面包就做不好。”然后我死命擦了五分钟,里里外外都没有一丝水迹。接着她开始放配料。第一步,加入70毫升水。。。(@段子楼)。</p> +<p>11、印度舞蹈的精要是左手向下拍小狗,右手抬起拧灯泡,脚步动作是一边踩缝纫机,一边打转。</p> +<p>12、小时候每当我生病,母亲都会为我冲一杯咖啡,她温柔地说:“外国人都喝这个的。”幼小的我总是害怕咖啡,酸甜苦涩交错。如今我走遍米萝、上岛、星巴克都找不到小时候喝的那个味道,直到那天我喝了一杯板蓝根&hellip;&hellip;.(@张大进就是我)。</p> +<p>13、最近小区广场舞大妈们都不跳了,问下邻居大妈怎么不跳了,是不是感觉扰民不好意思了。大妈说:“不知道谁家的孩子穿个红肚兜,我们一跳他就在前面说,孩儿们操练起来!”</p> +<p>14、朋友家孩子满月,我用EMS给孩子快递了一份礼物。收到快递后,孩子高兴地打电话对我说:“谢谢您的礼物,我非常喜欢”(@剑神葡萄)。</p> +<p>15、唐僧师徒四人正在吃饭,突然“轰隆!”一生巨响,吓了大家一跳,唐僧抬眼望了望,指着山下修路炸碎的石头说:“悟空,你妈生二胎了。”</p>可能要用一辈子时间去学习https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/Sun, 13 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/<p>完成自定的作业,想到哪儿是哪儿。</p> +<p>说说“学习”本身,它可以是一种行为,也可以是一种态度。狭义上来说,“学习”可能指的是习得某种技能的手段,广义上来说,获取或领悟任何知识的过程都算是“学习”。</p> +<p>#“好奇” +对这个世界强烈的好奇心应该是最原始的学习动力了,大家小的时候都有很强烈的好奇心,那个时候世界充满了未知和不可预测,晚上没太阳的时候向日葵怎么办、天上的星星会不会掉下来、校长是不是不上厕所、电视机关了之后里面的人去哪儿了,等,很多事情等待我们去探索。等到这些事情有了“答案”,我们也长大了,老了,对很多事情不再感到好奇了,我们可以使用表情符号聊天、会通过微积分求曲面的面积、可以制定很详尽的工作计划并跟踪、知道计算机从按下电源开关后里面发生的一切事情不过是一堆二进制在流动,我们以为世界就是这个样子了,并号称树立了完整的世界观。</p> +<p>回顾人类文明的进程,现在的人类并不是最聪明的,或者很聪明,但是智慧不足,因为我们现在所做的事情,发出的那些看似看明白的感悟,最终发现都是古人考虑n遍以后剩余的思想渣渣,不信你去看看《道德经》。</p> +<p>所以,我不能被自己所谓的“世界观”所束缚,在想明白上述事情之后,我觉得我还是要在可控的范围之内保持好奇心,以及对未知的敬畏之心。(所谓可控的范围,是比如上次我去看耳鼻喉的医生,就想问一下我的鼻中隔偏曲是不是跟挖鼻屎有关,我怕他让我转到精神科,还是忍住了。)</p> +<p>#“求知” +多看书应该是最好的方法,所谓开卷有益一点儿也没错,现在大家都抱怨没有时间,实际上是一个伪命题,我们只是把时间用在了很多无意义的事情上,比如发呆、不断在手机上刷那些不痛不痒的新闻、主动看烂片等,这个时候脑子就在空转,时间久了就会引起各种问题,比如信息的碎片化导致根本无法长时间集中注意力,比如对于大量信息带来的焦虑,甚至感到“迷茫”,哈哈,很多人的迷茫其实就是因为这个导致的,静下心来看书就能解决。</p> +<p>上网去探索信息也可以,但是分内容的优劣,我觉得新闻类的几乎可以不看,重点关注一些与你相关的即可,可以去找一些不错的博客来看,具体内容根据个人喜好来定,比如我比较喜欢看一些技术类博客,很多博主写的都比较有深度,我以前喜欢使用谷歌的Reader阅读器来订阅博客,后来谷歌把它关了,没有更好的客户端了,好在现在移动端也有很多不错的订阅客户端(推荐“即刻”,鄙视“今日头条”)。</p> +<p>仅仅停留在信息获取上是远远不够的,网络在带来便利的同时,有一个很大的副作用,就是使我们失去行动能力,我们在硬盘上收集大量的资料,收藏很多篇非常认同的文字,沉浸在朋友圈分享的各种技巧里,就是懒得抬手去验证一下(这一段可以谱曲唱了)。我们很容易就能知道TCP的三次握手,也知道现代大数据的处理都基于Map Reduce思想,当我们看了一两篇文章之后甚至开始沾沾自喜,仿佛已经成了该领域的专家。孔子和孟子都说过“学习东西最糟糕的方法就是看很多书、听很多讲课、看很多视频,而不亲自动手去试一下”,创立了伟大心学的王阳明也说过“知行合一最牛掰”。所以亲自动手试一试,将领会的思想运用在现实中还是很有必要的。</p> +<p>#“创造” +这个世界上获取快乐的方式有很多,但是获得幸福的方法只有一个,那就是“创造”。消费东西很容易带来短暂的快乐,比如女生买包、男生买车,当时很爽,但只是暂时的,保持持续的幸福感就是不断去创造,不一定非得创造出实物,因为创造的过程本身就是快乐的,可以是写一首歌,一篇文章,一段代码,制造一段美好回忆等等,说到这里我突然想到那个只想当木匠的明朝皇帝,哈哈。</p> +<p>因为“创造”本身是只有智慧生命才具有的能力,所以我们才因为创造而感到幸福,再说远一点儿,宇宙本身是一个“熵增”的过程(我靠好高深),而“创造”恰恰是将“无序”变为“有序”的逆过程,可能这种叛逆感才是让我们感到很爽的原因吧。</p> +<p>#“坚持” +最近我一直在挑战自己,坚持了一些创造的习惯,简单的事情坚持下来应该也是一件伟大的事情吧,所以写到最后,我突然想起几年前的某个周末,我坐在马桶上,捧着一本《万物简史》,一边感叹宇宙的神奇,一边埋怨自己买书如山倒,看书如抽丝。然后,突然就像当年的须菩提那样,非常虔诚地,由衷地发起了一个愿望&mdash;-我要用一辈子的时间去学习。遂将我的签名改成了“好奇”、“求知”、“创造”,这三个词后来基本上作为我以后的衡量做一件事是否有意义的准则了。</p> +<p>###考虑到不违反最新的广告法,我谨慎地将文章标题前加了一个“可能”。</p>life-is-shorthttps://sbabybird.github.io/p/life-is-short/Sun, 06 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/life-is-short/<p>工作总结写的头昏脑涨,换换脑子。</p> +<p>每年的这个时候最容易引发各种感慨,年底,除了工作上需要总结之外,生活上也应该进行一次梳理,回顾这一年的体验,感受了多少幸福,经历了哪些痛苦,吃了什么,玩了什么,读了什么,写了什么,看了什么,听了什么,喝过几次断片儿,摔了几个手机,额。</p> +<p>可以总结,但不要陷入对回忆的感慨,应该以积极的心态去整理。现在流行一种病,缅怀青春,而且怀起来各种哀怨,哀怨声中尽情的去体验那种令人愉悦的忧伤,仿佛只有过去的才是美好的,对于未来和现在则是一脸迷茫。而且我发现这种行为有越来越年轻化的趋势,比如,金妍昨天跟我抱怨说,自从上了小学,压力很大,好怀念小时候,于是我给她买了个带奶嘴的水壶(简直行为艺术)。</p> +<p>去年过年的时候,我回老家,跟我妈抱怨,说时间过的飞快,转眼又是一年,感觉没干啥balabala。我妈没有拿爱因斯坦相对论那一套唬我,而是轻蔑的一笑,说,你之所以感到时间过得很快,可能是因为你的生活还很轻松快乐,过的不艰难,对于那些每天还在担心如何吃饱饭的人来说,可能就没那么快了。我竟无言以对。</p> +<p>我也有我的解释。我认为,随着生活阅历的增加,我们对于新鲜事物的敏感度越来越低,小的时候对于任何事物都很好奇,大脑无时不刻都在感受新东西,所以45分钟的课堂才显得那么难熬。到了对于任何东西都有了自己的认识之后,看啥都没那么新鲜了,所以才觉的时间飞快,感叹白驹过隙,光阴真荏苒。就连子都曾经站在川上曰:「逝者如斯夫,不舍昼夜。」</p> +<p>看来,life不是线性的,是一个加速过程,笑。</p> +<p>#我准备抽时间做一下2015年的个人总结#</p>关于“刷牙沉思录”https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/Sun, 29 Nov 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/<p>我近期新增了一个习惯,将我每天在地铁上、刷牙时或者其他发呆的时候,考虑的那些无聊或有聊的问题,整理出来,发在微信朋友圈里,并取名“刷牙沉思录”,话题比较跳跃,每天都不同,但有一点,这些都是我经过慎重考虑、认真分析过的问题。通过简单的一段文字,全方位体现了我对思考的热爱,以及我充分具备当一个哲学家(神经病)的潜质。</p> +<p>爱幻想、胡思乱想是我从小就有的毛病,基本上整个上学阶段,每堂课,我都能体验“身未动、心已远”那种灵魂出窍的感觉,老师在课堂上讲的眉飞色舞、唾沫飞溅,我盯着黑板,考虑如果老师是一个潜伏在我们学校的外星人,而我是不小心发现了这个秘密的人,我该如何向大家解释人们才能相信我。</p> +<p>我吃东西不少,但一直长不胖,这一方面很拉仇恨,另一方面,我想说的是,思考是很耗费能量的一件事情,每天睡觉之前,我都能感受到我大脑的不安分,这直接导致失眠和辗转反侧,我必须通过畅想一些事情,才能逐渐平息,慢慢睡去。好在通过多年的总结,有几个经典的设定可以供我可劲儿折腾。</p> +<p>比如其中有一个是,如果我走在沙漠里,荒芜人烟,各种供给也基本耗尽,这个时候我发现了一个重达三百多吨的金块,我该如何行动才能将这些东西带回。不过我不太喜欢这个设定,难度较大,而且带来的实惠太小。我比较喜欢银河系漫游这样的设定,驾驶一艘乳白色的梭子状飞船(太空中由于没有大气,所以飞船的外观可以很随意,无需考虑空气动力学),船体有四分之一都是透明的玻璃罩,我坐在飞船的控制台前,飞向银河系的边缘,不过一般还没飞出太阳系我就睡着了。</p> +<p>刷牙沉思录就是在这种条件下产生的,睡觉之前,刷牙的时候,满嘴的泡沫,看着水池里逆时针(说明我在地球的北半球)旋转的漩涡,有时就会有比较虚幻的感觉,会顿悟一些鸡毛蒜皮的事情,但是这个宇宙中的真理往往都是蕴藏在非常浅显的道理中的,所以我一般会怀着非常崇敬的心情将这些记录下来。</p> +<p>一个偶然的机会,我发现将这些东西发在朋友圈进行分享或许也很不错,这样也许能让喜欢我的朋友更加了解我从而更加亲密,讨厌我的人会更加坚定不移地认为我是一个傻Ⅹ而将我拉黑,从而减轻我的社交压力。如果有可能,我想我会坚持下去,不管还发不发朋友圈。</p> +<p>这些年我思考记录的东西,比较琐碎混乱,以前总觉得没有用,甚至是浪费时间,现在忽然想通了,其实这些思考之间是有联系的,在积累达到一定量的情况下,悟性被激发的时候就可以发现一些规律和更抽象升华的知识或方法论,也许就是常说的量变引发质变吧,大脑里的知识积累到一定程度,就是『大数据』了,呵呵。</p> +<p>#我可能会在每个周末的晚上写一篇短文#</p>忘掉GTD、忘掉所谓的高效习惯https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/Sun, 04 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/<p>一口气看完了三本《搞定》系列,我突然“顿悟”了,我意识到,根本不存在所谓的“时间管理”,在脱离了对自己目标清晰认知的前提下,任何时间管理的方法都是毫无意义乃至浪费时间的。</p> +<p>然而虽然很多教授方法的书籍里面也提到了这一点,却无一告诉读者如何对自己的目标找到清晰的认知。</p> +<p>无论是否学习过各种时间管理或精力管理的技巧,每个人实际上已经自成体系有了一套多年来摸索出来的方法,应对自身的工作、生活、欲望,出于对效率的无尽追求,不断贪心想要提升,人们发明了各种方法来管理时间,有简单的也有复杂的,这些方法没有例外,都是在告诉人们一件事情,那就是如果你的方法得当,所有的事情都可以有效掌控,你的人生最后可以变成一张写在纸上的待办清单。然而事实呢,恰恰相反,可控的永远是少数,未知远远大于已知,以有限的精力与未知做斗争无异于以卵击石,到头来弄个筋疲力竭,垂头丧气,改去寻找其他的方法,岂不知出发点就是错误的。</p> +<p>不如换个思路,放弃对方法的追求,去思考一些本质上的东西。</p>2014年的个人总结https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Sat, 03 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>今天是2015年的第三天,元旦假期就要过去,本打算在evernote上记录一下对新年的愿景,谁知写了半天,没保存上,全丢了,想起来还有个地方叫简书,就索性在这里写吧,既然准备动笔重新开始,不妨先总结一下过去的一年。</p> +<p>我的2014,这一年我过得比较平淡,也比较充实,认真工作、积极创新、乐于助人、波澜不惊,没事儿还看看电影、找朋友喝喝小酒吹吹牛,可以说相当的自我。我刚才又翻看了一下年初时写下的期待,基本上都实现了。</p> +<p>1、我个人在今年才开始使用智能手机(赵老师倒是早就用上了苹果,手机领先我一个世代),在此之前,我一直鄙视智能手机(电池不行、没有实体键盘输入不方便、软件装多了就慢等等),不过,在我用了一台大屏幕智能手机之后我彻底改变了看法(大屏就是爽啊,技术进步迅猛,现在的手机已经没有性能问题了),从此我的黑莓就躺在了抽屉里吃灰,我的包里也不用随时塞一个厚重的iPad了,笔记本电脑就更不用背了。对了,在中国移动的反复撩拨下,我终于也开通了4G,不必再忍受GPRS的龟速了。</p> +<p>2、今年的电影看得比较少,没有什么值得回忆的,暑假的时候我带孩子们去看了场『变形金刚4』,片子又烂又长,中途不得不去了两次厕所。</p> +<p>3、拜某局所赐,美剧也看得不多,反而省了时间做其他的事情。</p> +<p>4、利用业余时间,我学会了用Photoshop修片,在网上系统了学习了课程,而且与实践结合,将自己拍的照片调的还算满意,不过一看就是个新手,调出的照片远远就能闻见浓浓的后期味儿。</p> +<p>5、买了个电钢琴,给金妍练琴用,开始时我也跟着瞎掺和,甚至一起做指法练习,可以没坚持下来,现在她已经可以弹出完整的曲子了,我还停留在小星星阶段。</p> +<p>6、不过我在吉他的扫弦方面进步不小哦,至少我是这么以为的,因为听起来,不那么像噪音了,我甚至和金妍一起录了一曲『小苹果』,感觉还『蛮拼的』。</p> +<p>7、赵老师开车闯了个红灯,一下子就扣了我6分,从此我开车上路都多里哆嗦不敢开快像个娘炮,连老杨都比我开的猛。</p> +<p>8、读书读的不算多,但也陆续看完了几本,『ReWork』、『给青年的十二封信』、『禅与摩托车维修艺术』、『围城』等等,另外我又看了一遍『黑客与画家』,每次看都有新的收获。在办公室,还有一本道德经放在抽屉里,每当工作累了就拿出来翻一翻,虽然总是看不懂,不过用来缓解压力效果还是不错的。</p> +<p>9、陪家人的时间比以前有所增多,甚至去了一趟幼儿园参加家长互动的活动,由于以前去的太少,老师们都不认识我,不得不让孩子亲自出来指认。活动中,与孩子的互动环节,在老师的指引下,孩子们伴随着音乐给家长捏肩捶背无比亲昵,我看到了旁边一个像我一样的木纳父亲,那一刻,他的眼里竟泛着泪光。</p> +<p>回顾了过去的一年,再考虑一下我的2015,给未来一些愿景和期待:</p> +<p>1、坚持学习,为了兴趣和爱好去学习,并尝试做一些记录,去年年末的时候,我将SICP(计算机程序的构造和解释)的部分课后练习题做完后写到我的博客里,这是一个不错的开始,今年争取能做完一半,如果有余力的话,将The natural of code这本书的练习题也做了记录到博客中。</p> +<p>2、我的人生目标仍然是不断创造出美好的东西,继续保持好奇心,做好玩的事儿。每天的PDCA都要围绕这个目标进行。</p> +<p>3、不放弃自己的爱好,吉他、摄影、绘画、编程等等这些,多抽时间放在上面,为了防止以后不会写字,可以考虑使用钢笔临摹一些硬币字帖。</p> +<p>4、通过互联网优化自己的工作,关注最新动态,永远对技术敬畏。</p> +<p>5、多看书,kindle里没看的书还很多,争取每个月都读一本。</p> +<p>6、少上网,2014年已经有意识的限制自己的上网时间,2015年要做的更好,每天固定少量时间阅读英文咨询(hacknews、reddit、thenextweb等),每周固定时间阅读中文咨询(知乎等)即可。</p> +<p>7、多行动,少踌躇,别怕犯错。</p>假日记趣https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/Thu, 07 Oct 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/<p>在姥爷家玩儿,看到桌上有零食,随手捏着就吃,吃完了,姥爷十分纠结地告诉我,那是给猫吃的。</p> +<p>家里的微电脑程控智能电压力锅坏了,拒绝接受一切指令,让我这个“技术人员”束手无策,赵老师将锅翻过来,用力敲击之,好使了。</p> +<p>家里的新房装修好了,我对于装修效果赞不绝口,老爸老妈和赵老师都感到很欣慰,毕竟这几个月把他们累的够呛,你们辛苦啦。</p> +<p>我把堆在角落里的老音响接好了摆在新房子里,认真擦去厚厚的灰尘,开机,每个喇叭都有声,一米多高的落地箱低音是很澎湃,还好这次的天花板很结实。</p> +<p>早晨睡眼惺忪地往院子里看,那里有老妈种在现实世界的菜,我说,这蒜苗长的真不赖,赵老师鄙视我说,才出去几年就分辨不出小葱和蒜苗了。天地良心,我是因为眼睛近视了,凑近了看绝对能分清。</p> +<p>小外甥才8个月就已经养成揪我耳朵的习惯,而且揪起来一脸享受的样子。</p> +<p>女儿在我面前跌倒,我表情平静既没有表示遗憾也没有对地板提出强烈谴责,她于是自己爬起来慢慢穿过客厅和饭厅找到赵老师,嗷嗷哭。</p> +<p>和儿子比赛跳舞毯,轻易将其击败。</p> +<p>哦也,打游戏我从来不让着他。这几天将老爸珍藏的佳酿喝掉了好几瓶,过瘾。</p> +<p>在我对他的白酒表示欣赏之后,他也表示突然听起来我的音响也很不错,于是我们都颇感欣慰。</p> +<p>临回北京的前一天晚上,腾讯终于发布s60v5版的“斗地主”,我半夜爬起来给老妈的手机装上,老妈终于能随时“斗地主”了。</p>如果他们生产马桶https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/Thu, 02 Sep 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/<p>没事儿再瞎畅想一下,如果这些科技公司生产马桶,他们将会生产出什么样的&mdash;&ndash;马桶?</p> +<p>微软生产的马桶将会有着华丽的外观,而且对你卫生间的配置要求很高,不过即使这样你还会发觉掀开马桶盖的速度十分缓慢,而且随着时光的流逝,冲水的速度会越来越慢,你去询问维修工程师,得到的答复通常是让你将马桶卸了重新安装一次。</p> +<p>苹果生产的马桶已经上市就会迎来大批的粉丝扎着帐篷在商店门外排队,马桶将会有着白色的外观,名字就叫“i马桶”,界面将会十分简洁,简洁到压根儿不提供冲水按钮,不过你可以再多花99美元买一个配套的冲水按钮模块,当然你也可以去淘宝上买一个高仿的。</p> +<p>Mozilla生产马桶的目的就是为了鄙视微软的马桶,他们宣称“系统检测到你正在使用老掉牙的微软马桶,赶紧更换成我们生产的‘火桶’吧!”而且该马桶最大的特色就是支持各式各样的插件,有的插件让你在如厕的时候可以听音乐,有的插件则是可以提供天气预报的功能,甚至有的插件装上之后可以将其伪装成一个“苹果的马桶”以满足部分人的虚荣心。</p> +<p>诺基亚生产的马桶将会非常的皮实,而且供你选择的型号也非常繁多,他们除了可以用来当马桶用外还都有一个共同的特点,那就是随心换彩壳,你可以根据心情来更换不同颜色的马桶外壳,不过外壳会比较松,一不小心就会掉下来。</p> +<p>如果你是一个追逐新型号的狂热分子,那么诺基亚马桶还是比较适合你的,你昨天刚安装好WC71型号的,过两天就会看到诺基亚关于发布WC72的新闻,如果你马上升级那就上当了,因为其实也就是换了一个彩壳而已。</p> +<p>各大Linux厂商生产的马桶宣称天生就不是给普通人用的,首先这个系列的马桶虽然使用同一个内核,但会分裂出各种各样的版本分支,这让你在选择时很犯愁。</p> +<p>然后是他们的功能设置极其麻烦,你得翻遍1500+页的文档、彻夜在论坛里泡着、冰天雪地裸体旋转360度跪求解决办法、花个把月的时间才能将该马桶配置的可以正常掀开马桶盖了,但是别高兴的太早,要想能够正常冲水往往你还得重新编译内核。</p> +<p>最后,当你气急败坏的时候,你会想到国产马桶,你开始到处询问,然后厂商会首先寄给你一套马桶系统解决方案书,上面画着一个真皮座椅还带后背按摩器,而且标价极其便宜。</p> +<p>当然了,当你付完钱,若干个月后你将会收到一个马扎。</p>我是一首mp3https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/Thu, 26 Aug 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/<p>我静静的呆在文件夹里,我的身后是一首2002年的曲子,对了,我是一个文件,确切地说,我是一首mp3,你通过搜索引擎找到了我,通过右键另存为给我取了个名字,从那一刻起,我诞生了。</p> +<p>你迫不及待地打开winamp,用鼠标拽住我,拖进了播放列表。硬盘的磁头开始颤抖,顺着磁道的轨迹划过我的身体,我的细胞就是一串二进制的序列,它们活蹦乱跳地被磁头提起,转换成抖动的电信号涌进了内存,声卡大哥开始工作,它们的任务就是在winamp的安排下去搔声卡大哥的胳肢窝,声卡忍受不住,愉快地哼起了歌,那就是我。你带着耳机,闭目养神,觉得从来没有听过如此美妙的声音。</p> +<p>我露出欣慰的微笑,磁头划过我带给我的痛苦一扫而光,我甚至期待你的下一次播放。</p> +<p>你却渐渐地把我遗忘,周围的文件叽叽喳喳叫个不停,它们哪懂得我的忧伤。</p> +<p>从此我开始长时间的睡眠,直到我遇见另一首mp3.开始的时候我还看她不起眼,因为她来自一块移动硬盘,这个外地人,我心里想。</p> +<p>瘦弱的她哪里及得上我曲子的悠扬,又怎能赶上我320k的压缩比和古典浪漫的心肠。</p> +<p>然而我渐渐地发现,虽然她是那样的其貌不扬,可她的快乐却迅速将我感染,连winamp大哥也对她颇有好感,随机播放的时候总是偷偷将她播放,就连愚钝缓慢的回收站也幽幽地说,不希望她去那个地方。</p> +<p>我开始整晚失眠,到处寻找暗恋的药方,CPU大哥忙着计算,根本帮不上忙,显卡更是高傲地扇着风扇,一副过来人的模样:”这种事我见得多啦,回去洗洗睡觉,明天我还得渲染上岗“,还是硬盘忠厚老实,偷偷跟我说,过两天要整理碎片,到时你再这样这样。</p> +<p>醒来时我发现已经被移到另外一个文件夹,粉红色的背景还有一个明亮的天窗,那首mp3羞涩地呆在那里,红着脸问我觉得装修怎样,哈哈,我心里想,要不是主人在意,谁会将一个文件夹弄成自定义的模样。</p> +<p>无损压缩的时代就要来了,我说。到时我们肯定都人老珠黄,不如把握现在的时间做些更有意义的事情,比如,轰轰烈烈地爱一场。</p> +<p>ps:纯属虚构,如有雷同,那实在是巧合。</p>走路去西藏https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/Wed, 23 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/<p>n年以前,n小于3,我偷偷地策划过一件事情,最终未能实现,因为太不着边际了。</p> +<p>我想徒步去一趟西藏,在我又听了一遍《回到拉萨》之后。</p> +<p>那时我想,我靠,就这么定了,我跟谁都不说,电话关机,从此消失,我要走着去西藏,找一个喇嘛庙,问一问人家,看能否收留我,出家算了。</p> +<p>我差点把这事儿写进project做个详细的计划。</p> +<p>一直没有想明白,为什么会对一个从不了解也从未去过的地方产生向往之情,也许冥冥之中觉得那是一方纯洁的圣土,我想去洗一洗,找找回家的感觉。</p> +<p>受不了喧闹和高速的生活,一个人孤独地在这边单着,偶尔夜里躺床上做梦,总觉得有人在后面拿鞭子抽我。</p> +<p>相当一段时间,我真是烦乱至极,劳累的工作导致身体的虚弱,长期的压力导致轻微的精神分裂,就像电影《搏击俱乐部》里的主角那样,人格差点儿分裂出去。</p> +<p>于是就想做一件比较荒诞的事情来调剂一下,可惜未能实现。</p> +<p>为啥未能实现哩,因为片刻之后我就恢复了理智。</p> +<p>祖国还需要我,人民还需要我。那段时间我打电话给我妈,说我想回老家歇几年,哪怕几个月也成,未被批准。</p> +<p>也就咬咬牙撑过来了,只是落下了一郁闷就想起徒步去西藏的毛病。</p> +<p>今天又想起这事儿了。</p>祝爸爸节日快乐https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/Sun, 20 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/<p>前一段时间,老爸在qq上和我视频,见我头发稍长,便催我尽快去理发。</p> +<p>这事儿他催了我好几个星期了,但是天高皇帝远,将在外君命有所不受,我一直没去。</p> +<p>我之所以没去,第一是因为我十分讨厌现在的理发店动不动就让我办卡,而且理发师也都很娘娘腔,唠唠叨叨个没完,第二是因为我有那么一点儿的叛逆心理,老人家想让我头发剪短显得精神一点,我还就想拿头发盖住耳朵显得颓废些,当然了,我并不是想培养那种长发半月不洗、胡茬上沾满饭粒的那种艺术家气质。</p> +<p>从毕业后踏入社会到现在,我一直踏实工作,刻苦努力,从未有过吊儿郎当的岁月,花天酒地我没干过,打架群殴我没凑过热闹,打牌搓麻我更是没有兴趣,也就是听听音乐看看书,说实话我都替我老爸有这么个省心的儿子感到高兴。</p> +<p>等一下,我说跑题了,今天是父亲节本来想夸夸老爸,怎么话题扯到我身上了。</p> +<p>老爸身材高大魁梧(略胖),声如洪钟,气质不凡。虽说现在已是五十多岁,但只要稍作打扮,说他是四十来岁的小伙子都不过分。</p> +<p>老爸是个教师,工作勤勤恳恳、一丝不苟,为祖国的教育事业做出了卓越贡献,成功地把我培养成一个正直乐观的人。</p> +<p>由于他们那一代人是结结实实挨过饿的,所以他最痛恨的就是浪费粮食,东西吃不完也不允许我们扔掉,只得勉强吃下,结果吃成了一个看上去颇具成功人士气质的胖子,好在他脾气还凑合,面对我们对他肚子无情的嘲笑,他总是一笑了之。</p> +<p>老爸从小受苦,在家里排行老大,在那个贫瘠的年代,早早地站出来把家里的事儿都撑了起来。</p> +<p>所以他在叔叔们面前基本具备家长威严,都比较尊敬他。</p> +<p>由于很小就出来磨练,老爸练就了一身社交能力,信奉以德服人,人缘那是相当好,喝酒那是相当能喝,办事儿那是相当利索。</p> +<p>要说优点,当然是说不完的,但是我比较欣赏他的一个优点就是他“动手”能力差,所以我在挨揍的季节并没有挨过他的揍。</p> +<p>呵呵,开个玩笑,他动手能力是差点儿,修理东西不会,这就给我很好的机会,我基本上从小学就把维修家里东西的业务给接管了,小到接个灯泡开关,大到修理冰箱洗衣机,反正他们敢让我修我就敢修。</p> +<p>好吧,现在我也当父亲了,也能体会当父亲的心情。</p> +<p>在这个父亲的节日里,衷心祝愿我的爸爸,身体健康,工作顺利。</p> +<p>并在我个人资料里“最崇拜的人”那一栏谨慎地填上了“父亲”。</p>汇报一下进展https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/Sun, 06 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/<p>学习五线谱和钢琴大半个月了,使用Cubase录了一段自己弹奏的《落叶》虽然速度不稳,比节拍器忽快忽慢,但是好歹是用双手了。</p> +<p>呵呵,左手好像弹错了。</p>两个周未更新了https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/Sun, 30 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/<p>我的blog两个周没有更新了,原因是我这两个周里每天的博客时间被别的事儿占用了,而这个别的事儿就是我在上一篇博客里给自己挖的坑(真够罗嗦),头脑发热买了几本五线谱来挑战自己,现在已经深陷此坑,练了十几天没啥进展,看着谱子上的小蝌蚪还是发懵,真是隔行如隔山呐。</p> +<p>不过也再次验证了一个道理,欲速则不达,真是放之四海皆准的真理啊,21天无法精通C++,同样三个月也不可能学会吉他,两个礼拜想把钢琴弹好更是没戏。</p> +<p>不过我这次倒是想坚持一下,至少现在哈农的前两个练习我是练熟了,手指也没那么僵硬了,总之吧,我要告别《两只老虎》的阶段!</p>冲动是魔鬼https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/Mon, 17 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/<p>头脑发热,买了几本钢琴和五线谱教程,准备牺牲每天写博客的时间来学习五线谱,想想就头大。</p>最爱的钢琴曲,竟然可以用这个弹https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/Sun, 16 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/<p>今儿在优酷上看到一牛人使用iDreamPiano演奏卡农,简直是绝了,http://v.youku.com/v_show/id_XMTE0MTMwMzI0.html。</p> +<p>早就玩过iDreamPiano,不过仅仅是弹点儿“两只老虎”之类的,牛人果然无处不在,竟然把这个软件发挥到这种地步。</p> +<p>随即,我也去搜了一下曲谱,网上已有好人专门制作了卡农的双手版简谱,赶紧也试了一下,果然很爽,虽然后面的我还弹不了,但前一段已经没问题了,很像那么回事儿,哈哈。</p>以后要多锻炼https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/Fri, 14 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/<p>昨天又去打了一场篮球,体力比上次好多了,连续打了2个小时直到天黑。</p> +<p>手感也差不多恢复了,只不过很长时间不打,会出现意识到但动作不到的情况,甚至眼睁睁的看着篮板球而“身不能至,心向往之”。</p> +<p>打完之后,筋疲力竭,回家连写博客的劲儿都没有了,倒是睡眠很香,一觉睡到闹钟响,起来之后精神百倍,看来以后要多出去运动运动了。</p>一段比较有力度的架子鼓https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/Wed, 12 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/<p>nan</p>郁闷的时候干点儿啥https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/Tue, 11 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/<p>我会弹弹吉他,这样可以压压我的手指,从中医学的角度来说,十指连心,是若干经络的起点,活泛活泛手指可以舒肝解郁。</p> +<p>或者在房间里唱唱歌,先唱青藏高原再唱回到拉萨,两首歌下来,胃就舒坦多了。</p> +<p>或者打开CS,把机器人的智商调到100,然后疯狂地用mp5与匪徒们对战,要是屡被爆头请尝试降低机器人智商。</p>无法通过email更新了https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/Mon, 10 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/<p>不知道为啥,livespaces拒绝接收我从gmail发来的邮件,这下无法通过电子邮件来更新博客了。</p>他们为什么会喜欢复杂的东西https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/Sun, 09 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/<p>不折腾就不舒服,有个小巧的linux发行版叫做puppy(虽然没有slitaz那么变态的小,但也绝对值得推荐),我前两天忙里偷闲,把它装在笔记本的sd卡上了,经过一番折腾,一切配置妥当,甚至可以编译helloworld.c了,这个时候我发现一个严重的问题&mdash;&ndash;</p> +<p>puppy没有提供可用的vim,本来我给笔记本安装puppy就是让它轻快地起来,然后我躺在床上,敲一两行代码,用以验证某些书上的内容,结果没有vim,计划眼看要泡汤了。</p> +<p>比较讽刺的是,比vim庞大好几倍的编辑器emacs却躺在puppy的软件库中,抱着试试看的态度把emacs给装上了。</p> +<p>虽然vim我用的不熟但至少还是可以拿起来干活儿的,而emacs这个据说是vim的唯一对手(当然,在口水战里,着两个编辑器总是扯不清)我却用得极其蹩脚,而且还不能抱怨,抱怨只能得到一大堆耻笑:“瞧你,连这个都用不好,你只需要这样然后再同时按下那个,最后,来吧再试试这段配置文件”,然后丢过来一大段充满括号的配置代码。</p> +<p>如果说没有人会喜欢复杂的东西,我绝对不赞成,那么多的高手拎着成串的配置文件手脚并用地用着emacs,甜蜜地记忆着C-xCc,M-xfu××之类的长串命令。</p> +<p>竟然还有人宣称完美地解决了代码补全的问题,真不知道他是否用过真正的代码补全。</p> +<p>也许是我用的太蹩脚了,他们为什么会喜欢这么复杂的东西?</p>痛痛快快打了场篮球https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/Fri, 07 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/<p>今天要打篮球,开始时我还担心今天会下雨,因为按照以往的惯例,只要我们想打球,天气往往是立即下雨(这样的)。</p> +<p>不过还好,今天天气很不错,非常配合,没有刮风也没有下雨,一切照常进行,还没下班我就迫不及待地把我的装备找了出来,n年前(n&lt;4)的队服,上书醒目的11号外加公司logo,穿上球鞋,给篮球使劲儿打满气。</p> +<p>其实至少有1年没碰篮球了,而且也没有其他的运动,不出所料,刚上场不一会儿,我就气喘吁吁,汗流浃背,两股战战几欲先走。</p> +<p>不过等慢慢活动一阵儿之后,开始恢复手感,投进几球后渐入佳境,4v4淘汰赛也把别的队给虐下去了几盘,恍惚之间我又仿佛回到了18+的年纪。</p> +<p>不过毕竟是28+了,蹦了不到一个钟头就再也没力气了,如果没有意外的话,明天肯定是浑身腰疼,现在只想再按照惯例喝杯冰镇啤酒,可惜我答应老爸不再喝啤酒了,还是白酒算了。</p>很久没打球了,准备明天打球去https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/Thu, 06 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/<p>篮球。</p>跟着扯扯淡https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/Tue, 04 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/<p>最近霍金霍大爷又放话出来说,大家小心一些,最好不要惹了外星人,不然人类文明可能会完蛋。</p> +<p>这边唱那边就有出来和的,一帮专家又跳出来分析说,大家也不要太担心外星人会跟我们动武。</p> +<p>我看也是,确实不用担心,因为担心也没用。</p> +<p>古时候有一说法,叫“天上一天,地上一年”,乍一听觉得不可思议,可是现在的物理学越研究就越发现古人说的有道理,当宇宙飞船在天上的飞行速度接近或者超过光速时,那确实是天上一天地上一年。</p> +<p>做一个很俗的假设,其实神话中的天神下凡,就是外星人来地球逛街,至于七仙女什么的估计就是女外星人了。</p> +<p>外星人能来地球得瑟,就说明他们拥有比我们先进的多的文明程度,要灭我们也是轻而易举,但是为什么还不动手呢?</p> +<p>我想是因为宇宙中也有保护濒危物种的法律吧,猪再蠢,要是地球上的猪快死绝了,也得修好猪圈养起来。</p>五一小总结https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/Mon, 03 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/<p>基本忘记了五一节的真实含义,对我来说,其实就是有机会多睡两个懒觉,而生物钟被打乱的难受则让我已经开始怀念早起的日子,还好,明天就开工了。</p> +<p>基本没有出去玩,因为终于有时间呆在家里,坐坐我的沙发,看看闲书,听听闲歌,真他妈闲啊。</p> +<p>不过昨晚上还是和同事出去喝了小酒,而我们也充分发挥工作狂的精神,居然在饭桌上讨论工作内容,让随桌陪同的家属掩鼻而去。</p> +<p>基本没有写程序,不过还是没有忍住,写了个小程序来处理我的照片。</p>写了个脚本整理我的照片https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/Sat, 01 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/<p>上次整理硬盘的时候把我的照片一股脑儿的放在了一个目录下,这次又有闲功夫了,写了个python脚本来处理我的照片。基本思路是使用PIL库读取照片的exif信息,取出拍摄的日期时间,根据日期建立新的文件夹,然后照片文件以日期时间格式命名。批量处理,比较简单。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span><span class="lnt">46 +</span><span class="lnt">47 +</span><span class="lnt">48 +</span><span class="lnt">49 +</span><span class="lnt">50 +</span><span class="lnt">51 +</span><span class="lnt">52 +</span><span class="lnt">53 +</span><span class="lnt">54 +</span><span class="lnt">55 +</span><span class="lnt">56 +</span><span class="lnt">57 +</span><span class="lnt">58 +</span><span class="lnt">59 +</span><span class="lnt">60 +</span><span class="lnt">61 +</span><span class="lnt">62 +</span><span class="lnt">63 +</span><span class="lnt">64 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: gbk -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="s2">&#34;&#34;&#34; +</span></span></span><span class="line"><span class="cl"><span class="s2">复制指定目录的照片到目标目录,并且根据照片的拍摄时间进行重命名 +</span></span></span><span class="line"><span class="cl"><span class="s2">比如某张照片拍摄于2008年3月15日12:00:00,则目标目录为2008</span><span class="se">\\</span><span class="s2">03</span><span class="se">\\</span><span class="s2">15</span><span class="se">\\</span><span class="s2">120000.jpg +</span></span></span><span class="line"><span class="cl"><span class="s2">&#34;&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">PIL</span> <span class="kn">import</span> <span class="n">Image</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">sys</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">get_dist_path</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">date</span> <span class="o">=</span> <span class="nb">str</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">dirs</span> <span class="o">=</span> <span class="n">dist_dir</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">date</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dirs</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">dirs</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">dirs</span> <span class="o">=</span> <span class="n">dirs</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">))</span> <span class="o">+</span> <span class="s1">&#39;.jpg&#39;</span> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="n">dirs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">copy_image</span><span class="p">(</span><span class="n">src_dir</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="p">[</span><span class="n">src_dir</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">src_dir</span><span class="p">)]:</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">copy_image</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">else</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">image</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;file open error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">dist_path</span> <span class="o">=</span> <span class="n">get_dist_path</span><span class="p">(</span><span class="n">image</span><span class="o">.</span><span class="n">_getexif</span><span class="p">()[</span><span class="mi">306</span><span class="p">],</span> <span class="n">dist_dir</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;dist path: &#39;</span> <span class="o">+</span> <span class="n">dist_path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;get exif error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dist_path</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">image</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">dist_path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;file copy error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">write_log</span><span class="p">(</span><span class="nb">str</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">global</span> <span class="n">log_file</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">main</span><span class="p">():</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">global</span> <span class="n">log_file</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;cilog.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">copy_image</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="k">else</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;需要给出两个参数,第一个是照片目录,第二个是目标目录&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;例如:&#39;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">&#39;e:</span><span class="se">\\</span><span class="s1">photo f:</span><span class="se">\\</span><span class="s1">goodphoto&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">&#39;__main__&#39;</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">main</span><span class="p">()</span> +</span></span></code></pre></td></tr></table> +</div> +</div>提高工作效率的心得https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/Thu, 29 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/<p>1、建立一个简洁todolist</p> +<p>,这个todolist可以使用任意方式建立,比如笔记本或者googletasks,总之就是一个简洁的任务列表,每天上午开始工作之前,将今天要做的事情逐条记录下来,按照要事优先的原则,我一般是把比较费脑子的事情放在最前面。</p> +<p>然后每完成一项就在上面打勾,很有成就感。</p> +<p>2、整理好自己的文档资料:)</p> +<p>,给自己建立一个清晰有序的文档管理机制,这样当你需要某个文档资料的时候可以立即将其取出。</p> +<p>我使用totalcommander+dokuwiki进行管理。</p> +<p>将文档按照工作项目进行分类,而不是按照文件的扩展名分类。</p> +<p>3、记录工作日志</p> +<p>,每天记录工作日志可以有效分析出自己每天的时间花在了哪里,并改进自己对工作任务的安排。</p> +<p>而且将自己的做的事情记录下来对记忆力来说也有好的帮助。</p> +<p>4、关掉qq、msn</p> +<p>,不上比较耗费时间的网站比如GoogleReader,工作时就是集中精力,不开聊天工具就不会被打扰,不开rss阅读器就不会有资讯压力。</p> +<p>5、听音乐</p> +<p>,带上耳机听听自己喜欢的音乐,这样工作时心情比较放松,思维也比较活跃。</p> +<p>6、使用高效的软件和计算机操作方式</p> +<p>,比如使用vim代替普通编辑器,使用totalcommander代替windows的资源管理器,使用脚本或批处理命令来代替大量的鼠标操作。</p> +<p>需要整理思路时可使用freemind来绘制一张脑图。</p>小时候干过的一些颇为geek的事儿https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/Wed, 28 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/<p>极客,又译为技客、奇客,是英文单词geek的音译。</p> +<p>具体解释参见这里。想起小时候干的一些事儿,以现在的眼光来看,颇具极客精神。</p> +<p>小时候,我曾经嫌弃我家的收音机音量太小听音乐不过瘾,于是动手改造,本来两节干电池就可以正常使用,但是我把三节电池串联起来接在收音机的电池仓里,结果由于心理作用感觉上好像音量比以前更大了,于是我信心十足的把一个电源插头直接接在了收音机上,然后满怀希望地把另一头插在了220v的电源插座上,结果杯具发生了,一声巨响过后,浓烟滚滚,收音机被烧成了一个黑匣子。</p> +<p>于是我只好央求我维修技艺高超的舅舅帮忙维修,后来那台收音机倒是起死回生了,但是舅舅悄悄告诉我,除了壳没换,其他的零件全换了!还是小时候,大概在上小学,突发奇想,把我妹妹的电子表给拆了个七零八落再也装不到一起去了,无奈只好哄她说我其实是想帮她把电子表改装成一个游戏机,就快成功了,再等等。</p> +<p>中考的前夕,备考的压力非常大,炎热的午后,我实在是复习不下去了,动手把我床头的石英闹钟拆了,零件铺满了整个桌子,但是这次我慢条斯理的把它又给装好了,而且一个零件也没多出来,颇有成就感,只是由于把其中的一个线圈装翻了,导致这个闹钟的指针一直倒着走,直到考试结束我才又花时间把它给正了过来。</p> +<p>嘿,那些时光多美好呀。</p>不要浮躁,不要骄傲,不要让全世界都知道你的低调https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/Tue, 27 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/<p>每天提醒自己。</p>拥抱次新版https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/Mon, 26 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/<p>软件如果不用最新版是可耻的,我以为。</p> +<p>这个毛病把我折磨的够呛,每天都有大量新版的软件发布,我就更新更新再更新,每天就迷失在软件更新的过程中,不在更新中就是在下载更新的路上。</p> +<p>然而,尝鲜总是要付出代价的,光怪陆离的新特性一个也没用上不说,新bug带来的烦恼却一点儿也没少。</p> +<p>新系统、新软件带来的兼容性问题也纠缠不休,可我却乐此不疲,有点儿飞蛾扑火的味道。</p> +<p>终于有那么一天,我顿悟了,次新版才是最好的!我说的次新版,也就是比最新版稍微老那么一点儿的版本。</p> +<p>优点如下,你看,首先次新版的功能比最新版不会差太多,该有的基本都有,从使用的角度来说绝对是够用的,其次,次新版的稳定性大大高于最新版,因为经过了长时间的测试和bug修正功能的磨合已经趋于完美,不信的话你看看windowsxp就知道了。别信那些发布最新版时的噱头,什么“大大降低了内存占用”“显著提升了性能”等等,我们脆弱的心灵再也经不起忽悠。</p> +<p>就拿开发环境来说吧,现在的vs2010发布了,也就是说赶紧用vs2008吧,因为它现在是最好用的,同样,听说office2010也出来了,也就是说是时候全面使用office2007了,ubuntu10.04今夜也就发布了,先别用,赶紧用9.10吧,目前来说9.10才是最完美的。</p> +<p>呵呵,以上纯属忽悠,如有意外,那实在是巧合。</p>休息总是在雨天https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/Sun, 25 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/<p>昨天天气不错,挺风和日丽的,杯具的是,这么好的天气一般都被用来加班了。</p> +<p>今天使劲儿赖了赖床,起来后继续发扬热爱劳动的光荣传统,打扫房间洗洗被单。</p> +<p>然后就淅淅沥沥下雨了,到现在洗的东西还没有晾干。</p> +<p>翻了翻书,一页也看不下去,听说ubuntu10.04除了rc版的了,没有忍住好奇心,下了一个在虚拟机中耍了耍,网速慢的厉害,更新个语言包都慢腾腾的。</p> +<p>一晃就到了晚饭时间,下着雨实在不想出去买东西,这下我的电饼铛派上用场了,面粉加鸡蛋转眼就变成热气腾腾香喷喷的煎饼,美美吃上一顿,准备睡觉。</p>因为要丰富工作以外的生活https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/Fri, 23 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/<p>所以要加班。</p>关于python的好东东https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/Thu, 22 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/<p>由于喜爱python,我几乎每次装完系统就会立即给电脑装上python环境(当然了,大部分的linux的发行版都自带了)。</p> +<p>不过,每次都要安装不少我常用的python库,比如pyopengl用来写写opengl什么的比较合适,pyqt用来写桌面程序也很好,陆续把这些库装完也挺费劲的。</p> +<p>要说还是好人多,我这两天发现网上就有好人给整理了一个及其全面的安装包,叫做PythonXY,可以说是一旦安装别无所求,自带python基本环境,另外加上以eclipse为基础的ide,在加上ipython这个很好的shell,还包括numpy、scipy等等一大堆与数学计算相关的包,不多说了,自己去这里看吧http://www.pythonxy.com/,要下载完整的压缩包比较大,好像有4百多Mb。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Wed, 21 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<p>我爱这个充满神秘的世界,有着无限多的未知,这么多等着我们去探索的未知加上我的好奇心,是我快乐的源泉。</p>我的声卡悲剧了https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/Sun, 18 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/<p>昨晚一时心动,把家里的电脑装上了windows7,一切都挺好的,特效也挺漂亮,可是我的创新声卡不发声了,以前在xp下的驱动一个也不好使了。</p> +<p>去创新的官网上寻找驱动,发现人家已经不再理会这块10年前的声卡,无奈只好寻找各路的改版驱动,好在那个来自俄罗斯的好人还在辛勤的更新着他的kx驱动。</p> +<p>赶紧下了个最新版的3550版驱动,安装完之后傻眼了,声音是能出来,可是怎么听都不对味,声音瘪瘪的,又干又涩,还不如使用板载声卡呢。</p> +<p>再去网上搜寻一通,原来有人和我一样抱怨过了,而且据说某个版本的(3541)驱动还凑合,那就试试吧,但愿能行,不然我还得把操作系统换回去。</p>整理完毕https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/Sun, 18 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/<p>从春节后开始的硬盘整理计划总算进行完了。</p> +<p>通过这次整理我发现了我曾经认为很重要的文件其实一次也不会被用到,当我真正想用到哪些文件时,通常它们已经过期了(尤其是某些软件的安装包)。</p> +<p>大量的工作文档也是整理的重点,杂乱无章的文件夹比乱糟糟的书桌更让我抓狂,期间我甚至萌生了自己写一个资料管理软件的念头,当然了,工作太忙,该计划被搁置(说不定哪天我真就卷起袖子为自己写一个)。</p> +<p>目前来说,使用totalcommader这个绝世好软配合良好的管理思路,也基本上可以管理好那些资料了。</p> +<p>当然在我翻遍文件夹之后,也找到了不少被遗忘的时光,我甚至找到了我在大学时自娱自乐录制的卡拉ok,恩,那时嗓音使劲儿装成熟,现在都快到了装嫩的年纪了。</p>无用的信息https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/Thu, 15 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/<p>最近一段时间,中午休息的时候我不再上网,这样我就基本上不在公司上GoogleReader了。</p> +<p>随着订阅数越来越多,我的“未读条目”也爆炸式增长,听说有人为此苦恼不已,得了信息爆炸抓狂症。我的解决办法是,每天晚上回家,立即打开GoogleReader把未读条目全部清空,现在基本上每天都是在手机上阅读这些订阅了,上下班的路上,消遣消遣时间而已,哪有什么有用信息。</p>今天听说https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/Tue, 13 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/<p>听说2012年北京的宽带会宽到20M到桌面,我靠,真是让我欢喜让我忧,喜的是,盼望已久的带宽终于上去了,忧的是,啥都上不了要这么宽的带宽干啥?</p>集成开发环境https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Mon, 12 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/<p>集成开发环境(为了响应号召,我就不说是IDE了)是个好东西,使我们轻松迈入软件开发的门槛,轻松的点击几下“下一步”,瞧,一个软件就诞生了。</p> +<p>以至于现在很多程序员只知道makelove而不知道makefile。</p> +<p>我最早接触的集成开发环境应该是TurboC了,惭愧的是,我当时以为那就是C语言,没办法,当时确实分不清开发环境和编程语言。</p> +<p>有大约半年的时间由于我未能正确的设置该环境的参数,导致我从教科书上抄来的代码统统不能编译通过,我还以为书上印错了咧。</p> +<p>后来终于弄好了,在编写了各个版本的helloworld之后,终于对C语言开窍了,不过还是分不清程序语言和开发环境的关系。</p> +<p>再后来遇见了VC6,跟着《21天精通×××》的教程也能用鼠标写出“大”程序了。</p> +<p>若干年后的某一天,我研究某开源软件(该软件跨平台)的源码的时候,才第一次见到了makefile,第一次知道了原来在命令行下也能编译程序啊,于是恍然大悟,明白了集成开发环境只是一个“壳儿”。</p> +<p>这才试着偶尔用记事本写写小程序,在命令行下编译。从那开始,我渐渐的倾向于,使用编辑器编写代码,使用makefile管理项目工程,使用命令行编译程序。</p> +<p>而对于庞大臃肿、缓慢笨拙的集成开发环境越来越不满了。</p> +<p>昨天,VS2010发布了,一大拨人在网上散发着欣喜的软文,疯狂的鼓吹它的强大和先进,喜新厌旧的人们昨天还用着VS2008,今天就将其抛弃,转而把VS2010揽在怀里。</p> +<p>我想他们大概是喜欢那慢腾腾的编译速度并且可以趁机偷偷去喝上一杯咖啡吧。</p>我没有旅游计划https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/Sun, 11 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/<p>刚看到有人为本年度的旅游制定了完备的计划,恩,很羡慕这个家伙。</p> +<p>不过说真心话,我不喜欢旅游,有那个时间的话,我还不如好好在我的老家待上一段日子,虽然不是什么山清水秀的地方,但是也算的上是空气清新了。</p> +<p>我不想去青藏高原,也不愿意去丽江云南,好山好水对我一点儿吸引力都没有。</p> +<p>与其奢望环游世界,倒不如多和老家亲近亲近,因为我怕有一天,我真的会记不起那里的模样。</p>让我来骂一 骂那些学习的日子https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/Fri, 09 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/<p>我是一个热爱学习的人,可是这是从学习编程开始的。</p> +<p>上学的时候,我从没有过哪怕一丁点儿的热爱学习。</p> +<p>虽然那个时候努力装出刻苦的样子,偶尔在邻居们教育孩子的口中听到以我为榜样的句子,可是我和他们心里都清楚,谁他妈的想学习!</p> +<p>唉,仔细想想,委屈了邻居的孩子们了。</p> +<p>小的时候,我应该是挺自闭的,虽说成绩还凑合,可是那都是应付考试的结果,回想我们的课本,除了小学数学还算是发挥了点作用,其他的都是垃圾,背的满满一书包全都是大便。</p> +<p>先从语文说起罢,千篇一律的课文也就罢了,每回回都要划分段落然后总结所谓的中心思想,反复揣摩作者的用意,就算是作者根本没有那个想法,老师也千方百计地往某方面引导。</p> +<p>至于思想品德课则更是对智商的严重伤害,脆弱的心灵一次次被无情的蹂躏,满满的答卷上全是对撒谎的最早练习。</p> +<p>老师们极度推崇的课前预习也是我永远的心理阴影,我就想不明白,如果课前预习都把问题考虑清楚了那么还上课干嘛?每次都会有针对预习内容的提问,好好的课堂被搞的乌烟瘴气,听话的孩子翻开白眼,昂起头,骄傲地回答出老师希望的句子。</p> +<p>期末考试永远是我们的噩梦,考不好承受压力不说,来自各方面的歧视又在伤口上再撒一把厚厚的盐。</p> +<p>所谓三好学生,所谓学习标兵,做一个他们理想中的孩子吧,做一个“热爱学习”的孩子吧,只要你不想做你自己。</p>关于支持富文本的开发环境设想https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/Thu, 08 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/<p>现在的源代码都是纯文本,代码关键字、函数以及注释的高亮都是通过源代码编辑器或集成开发环境自己分析的。</p> +<p>我在想,能不能有一种开发环境,他的源代码采用富文本的方式来存放,及程序员可以随时高亮某一段代码以示警告或提醒,将不同功能模块的代码来使用不同的颜色来显示?</p> +<p>或者,更进一步的想法,代码的注释里可以加入任何内容,不仅仅是干巴巴的几句描述,而是可以插入一段视频或一幅图片,或者任意的一个附件在代码中?</p> +<p>再丰富一下,在现有的以“项目”或“解决”方案为代码组织方法的基础上,增加代码以外的东西进入到开发环境中来,比如说,从软件需求的调研文档一直到设计文档,均与最终的代码有机的结合起来,也就是说,通过功能需求文档可以追溯到实现该功能的代码,反过来也可以从某行代码追溯到他所服务的功能。</p> +<p>吼吼,这样做是不是有点儿太那个了。</p>懒洋洋https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/Wed, 07 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/<p>春天还是来了,虽然晚了一些。但树枝已经偷偷抽出嫩牙儿来,吹在脸上的风也不再恶狠狠的了,偶尔抬头向上望去,甚至能看见蓝天。</p> +<p>我在路上懒洋洋地走着,边走边想,春姑娘还是来了。</p>我的vim配置文件https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/Tue, 06 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/<p>整理了一下自己的vim配置文件,记录在此以备忘。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-vim" data-lang="vim"><span class="line"><span class="cl"><span class="c">&#34; 编码设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">encoding</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">fileencodings</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span><span class="p">,</span><span class="nx">chinese</span><span class="p">,</span><span class="nx">latin</span><span class="m">-1</span><span class="p">,</span><span class="nx">gb18030</span><span class="p">,</span><span class="nx">gbk</span><span class="p">,</span><span class="nx">cp936</span> +</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">has</span><span class="p">(</span><span class="s2">&#34;win32&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">set</span> <span class="nx">fileencoding</span><span class="p">=</span><span class="nx">chinese</span> +</span></span><span class="line"><span class="cl"><span class="k">else</span> +</span></span><span class="line"><span class="cl"> <span class="k">set</span> <span class="nx">fileencoding</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="k">endif</span> +</span></span><span class="line"><span class="cl"><span class="nx">language</span> <span class="nx">messages</span> <span class="nx">zh_CN</span>.<span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 基础设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">nocompatible</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">softtabstop</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">shiftwidth</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">tabstop</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">bs</span><span class="p">=</span><span class="m">2</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">autoread</span> <span class="c">&#34; read open files again when changed outside Vim</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">autowrite</span> <span class="c">&#34; write a modified buffer on each :next, ...</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">browsedir</span> <span class="p">=</span> <span class="nx">current</span> <span class="c">&#34; which directory to use for the file browser</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">wildmenu</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">wildignore</span><span class="p">=</span>*.<span class="nx">bak</span><span class="p">,</span>*.<span class="nx">o</span><span class="p">,</span>*.<span class="nx">e</span><span class="p">,</span>*<span class="p">~</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">complete</span><span class="p">+=</span><span class="nx">k</span> <span class="c">&#34; scan the files given with the &#39;dictionary&#39; option</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">autocmd</span> <span class="nx">BufEnter</span> * <span class="nx">lchdir</span> %:<span class="nx">p</span>:<span class="nx">h</span> <span class="c">&#34; Change the working directory to the directory containing the current file</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">plugin</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">indent</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">syntax</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 颜色设置</span> +</span></span><span class="line"><span class="cl"><span class="k">colorscheme</span> <span class="nx">koehler</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 字体设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guifont</span><span class="p">=</span><span class="nx">Consolas</span>:<span class="nx">h12</span>:<span class="nx">cANSI</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guifontwide</span><span class="p">=</span><span class="nx">youyuan</span>:<span class="nx">h12</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 折叠设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">foldmethod</span><span class="p">=</span><span class="nx">manual</span> +</span></span><span class="line"><span class="cl"><span class="nx">nnoremap</span> <span class="p">&lt;</span><span class="nx">space</span><span class="p">&gt;</span> @<span class="p">=((</span><span class="nx">foldclosed</span><span class="p">(</span><span class="nx">line</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">))&lt;</span><span class="m">0</span><span class="p">)</span>?<span class="s1">&#39;zc&#39;</span>:<span class="s1">&#39;zo&#39;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 界面设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">showtabline</span><span class="p">=</span><span class="m">2</span> <span class="c">&#34; 始终显示标签页</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guitablabel</span><span class="p">=</span>%{<span class="nx">tabpagenr</span><span class="p">()</span>}.%<span class="nx">t</span>\%<span class="nx">m</span> <span class="c">&#34; 每个 tab 上显示编号</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">T</span> <span class="c">&#34; 去掉工具条</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">m</span> <span class="c">&#34; 去掉菜单</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">r</span> <span class="c">&#34; 去掉右边的滚动条</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">L</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">statusline</span><span class="p">=</span>%<span class="nx">F</span>%<span class="nx">m</span>%<span class="nx">r</span>%<span class="nx">h</span>%<span class="nx">w</span>\[<span class="nx">FMT</span><span class="p">=</span>%{&amp;<span class="nx">ff</span>}]\[<span class="nx">TYPE</span><span class="p">=</span>%<span class="nx">Y</span>]\[<span class="nx">POS</span><span class="p">=</span>%<span class="nx">l</span><span class="p">,</span>%<span class="nx">v</span>][%<span class="nx">p</span>%%]\%{<span class="nx">strftime</span><span class="p">(</span>\<span class="s2">&#34;%d/%m/%y-%H:%M\&#34;</span><span class="p">)</span>} +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">laststatus</span><span class="p">=</span><span class="m">2</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">scrolloff</span><span class="p">=</span><span class="m">3</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">nu</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">ruler</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 查找搜索设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">incsearch</span> <span class="c">&#34; use incremental search</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">ignorecase</span> <span class="nx">smartcase</span> <span class="nx">hlsearch</span> <span class="nx">incsearch</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 将键盘上的 F12 健映射为执行当前文件</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">F12</span><span class="p">&gt;</span> :<span class="p">!</span>%<span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 使用 Ctrl+Tab 键来切换标签页</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">C</span><span class="p">-</span><span class="nx">TAB</span><span class="p">&gt;</span> :<span class="nx">tabn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 快捷键设置</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F2 - write file without confirmation</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F3 - call file explorer</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F4 - show tag under curser in the preview window (tag file must exist!)</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F5 - open quickfix error window</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F6 - close quickfix error window</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F7 - display previous error</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F8 - display next error</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; Shift-Tab - Fast switching between buffers (see below)</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; Ctrl-q - Leave the editor with Ctrl-q (see below)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F2</span><span class="p">&gt;</span> :<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F3</span><span class="p">&gt;</span> :<span class="nx">Explore</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F4</span><span class="p">&gt;</span> :<span class="nx">exe</span> <span class="s2">&#34;ptag &#34;</span>.<span class="nx">expand</span><span class="p">(</span><span class="s2">&#34;&lt;cword&gt;&#34;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F5</span><span class="p">&gt;</span> :<span class="nx">copen</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F6</span><span class="p">&gt;</span> :<span class="nx">cclose</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F7</span><span class="p">&gt;</span> :<span class="nx">cp</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F8</span><span class="p">&gt;</span> :<span class="nx">cn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F2</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F3</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">Explore</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F4</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">exe</span> <span class="s2">&#34;ptag &#34;</span>.<span class="nx">expand</span><span class="p">(</span><span class="s2">&#34;&lt;cword&gt;&#34;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F5</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">copen</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F6</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cclose</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F7</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cp</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F8</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">S</span><span class="p">-</span><span class="nx">Tab</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="k">if</span> &amp;<span class="nx">modifiable</span>&amp;&amp;<span class="p">!</span>&amp;<span class="nx">readonly</span>&amp;&amp; \ &amp;<span class="nx">modified</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="k">endif</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">bprevious</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">S</span><span class="p">-</span><span class="nx">Tab</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="k">if</span> &amp;<span class="nx">modifiable</span>&amp;&amp;<span class="p">!</span>&amp;<span class="nx">readonly</span>&amp;&amp; \ &amp;<span class="nx">modified</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="k">endif</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">bprevious</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nx">nmap</span> <span class="p">&lt;</span><span class="nx">C</span><span class="p">-</span><span class="nx">q</span><span class="p">&gt;</span> :<span class="nx">wqa</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; taglist 设置</span> +</span></span><span class="line"><span class="cl"><span class="nx">noremap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F11</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">Tlist</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">inoremap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F11</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">T</span> +</span></span></code></pre></td></tr></table> +</div> +</div>马桶书架https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/Sun, 04 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/<p>想说说坐马桶上看书这事儿,记得在美剧《好汉两个半》里有这样一个情节,被老婆抛弃的那哥们儿有一天在书店里突然失去理智,变得歇斯底里,</p> +<p>因为他想起来曾经发誓要读的书从来都没有读过,把这些书都抱在怀里哭泣不止,</p> +<p>更令人沮丧的是他的花花公子哥哥劝他说,现在还来得及,虽然平时比较忙,但如果把这些书放在马桶上则可以每次大便的时候都看一段,这样应该也能弥补一些缺憾。</p> +<p>可是这哥们儿哭着说,来不及了,把他余生大便次数都用上,也读不完这些名著了。</p> +<p>呵呵,说的太对了,我觉得这个段子用来教育不爱读书的孩子估计不错,我们看了却只能苦笑一下。</p> +<p>显然我也不认为在大便的时候读名著是个好主意,看着那些故事里的主人公在那里纠结不休,要么爱的死去活来,要么整天拧巴地思考人生意义,就算是你天天喝着蜂蜜外加一瓶开塞露也非得便秘不可。</p> +<p>我觉得吧,为了身体的健康,如果非要在大便时看书的话,还是尽量的读一些短文好了,比如我以前就爱看看《读者》啥的,最近偶尔也提升点儿档次弄本《三联周刊》看看,不过总的来说,看的都是些文笔平顺、言语轻快能促进大肠蠕动的文章。</p> +<p>今天收拾洗手间的时候,从马桶后面拎出了一大摞书,数了数,居然比我书架上的书还多。</p>永不放弃https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/Sat, 03 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/<p>不要被眼前的困难吓倒,认定你的目标,坚持下去。</p> +<p>哪怕有一万个人对你说,不行,但只要你的心告诉你,行,那就是行,没有商量的余地。</p> +<p>有时候越是简单的事情越难以做好,骄傲的人做不好,懒惰的人做不好,勤奋却不得方法的人也做不好。</p> +<p>你觉得你谦虚了﹑努力了﹑方法也对了,那么,别灰心,坚持下去。</p> +<p>&mdash;&mdash;&mdash;&mdash;&mdash;-重温《阿甘正传》有感。</p>愚人节的新闻https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/Thu, 01 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/<p>今天是一年一度的愚人节,过得平淡无奇。</p> +<p>大家慵懒得好像连开玩笑的心思也没有了,不过还是在互联网上看到了几条愚人新闻,聊胜于无。</p> +<p>出镜最多的就数Google了,比如这个Google可以上传任意物体的新闻就比较有创意,还有这个说Google收购了核技术公司准备进行核研究的新闻,</p> +<p>至于Google宣布改名为Topek和Google准备收购百度这两条新闻就比较无趣了,而这个关于Google街景提供红蓝眼镜3D观赏模式的新闻简直可以以假乱真了。</p> +<p>其他的新闻就比较少了,国内的cnBeta也算是提供了一个比较搞笑的,称其不再支持ie6和flash,并且说的有板有眼,说实在的这条新闻我宁愿相信是真的。</p>春雨https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/Tue, 30 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/<img src="https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/20100330512-777160.jpg" alt="Featured image of post 春雨" /><p>这场雨下的挺爽的,为什么呢?因为我带伞了。</p>没有合适的资料管理软件https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/Mon, 29 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/<p>我的硬盘整理行动已经开始了一周多了,期间最让我头疼的就属工作中产生的文档资料了,技术文章、幻灯片、项目计划等等等等。</p> +<p>杂乱地堆放在我的各个硬盘里,好多东西不舍的删除,偏偏在用到的时候找不见,没用的时候又老在眼皮子底下碍事。</p> +<p>曾经试过evernote来管理资料,可是对于大量的word文档不太合适,使用subversion又有点儿麻烦或大才小用。</p> +<p>使用GoogleDocs倒是还凑合,可是说不定哪天就上不去了,到时候哭都来不及。</p> +<p>干脆使用Google的桌面搜索,可是眼看着索引文件越来越大而且重装系统也是个麻烦事儿。</p> +<p>myBase也试用过,界面太朴素也可以接受,功能也很强大,就怕管理的文档多了影响速度,而且myBase是收费软件,使用单一文件数据库还得天天备份,麻烦。</p> +<p>真的找不到合适的了,难道要自己动手写一个?</p>不用了,这是给我的。https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/Sun, 28 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/<p>这个周末碰到的不是烂片,而是一部让人惊喜的电影&mdash;&mdash;《窃听者》。</p> +<p>该怎样评价这部电影,我不知道,只能说好的电影,能够给人带来思考。</p> +<p>而《窃听者》这部电影却在带来思考的同时又打动人内心最柔软的部分。</p> +<p>故事也许很简单,但是讲好一个故事并不容易,在那样一个年代,或者是在这样一个年代,形形色色的人,做着自以为正确的事情。</p> +<p>片中的主人公(我认为他才是男一号)工作在见不得光的地方,每天的工作就是带着耳机监听着“疑似坏人”的一举一动。</p> +<p>随着时间的推移,他的思想渐渐转变,融入到被监听人的生活。</p> +<p>影片的节奏平缓而又有力,细腻又不失大气,场景的色调和背景音乐低沉得像是一直饱含泪水。</p> +<p>带着耳机的监听人在立场上渐渐站在被监听人那边时,连他自己都很难理解自己为什么要这么做,其实他只是在追随自己的心,哪怕为此付出了巨大的代价。</p> +<p>如果说这个世界还有良心的话,那这就是良心。</p>写歌一首https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/Sun, 28 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/<p>晚饭后,出去散步,春风拂面,颇有意境,遂赋酸词一首,改日谱曲。</p> +<p>如下:</p> +<p>我会做我自己只要我还愿意去寻找</p> +<p>曾经,的美丽在幸福的日记里在漫漫岁月里</p> +<p>有了你我不怕,孤寂</p> +<p>我要好好爱你没有人能怀疑</p> +<p>你知道我不能,失去你</p> +<p>就算春风淅沥沥吹不走</p> +<p>长夜思绪爱让我化不开,忧伤</p> +<p>哪怕心中燃烧的梦想带来远方无尽的希望</p> +<p>猜不透的是那里到底有没有天堂</p> +<p>春天花儿悄悄地绽放背上重重流浪的行囊</p> +<p>带不走的是你给我的清香</p>连接被重置https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/Sat, 27 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/<p>打开我的blog总是连接被重置,为啥?我这儿没啥敏感词啊。</p>下雨啦https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/Wed, 24 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/<p>下班的路上,下起了大雨,下了车仍然在下,没带雨伞,还好穿的比较厚,没有淋到,但是地上积水很多,把我的鞋洗的铮亮。</p> +<p>不是说春雨像牛毛、像花针、像细丝吗?</p> +<p>不是说随风潜入夜,润物细无声吗?</p>春天,GoogleByehttps://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/Tue, 23 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/<p>都说你是纯爷们,其实也只是个传说,这里没有纯爷们。</p>千年以后的人类https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/Mon, 22 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/<p>闲来无事,意淫一下千年以后人类是啥子样子哈。</p> +<p>如果2012是真的,那么千年以后没有人类。</p> +<p>如果不是,也许北京的地铁都修到31415926号线了,但是交通依然拥堵。</p> +<p>那时候也许你的qq等级已经升级到两个天狼星外加5个太阳3个月牙(1G个太阳折合一颗天狼星)。</p> +<p>那时候Google已经接管了地球上所有的计算工作,人一生下来屁股上就被栓个搜索框。</p> +<p>那时候人当然已经不再是从娘肚子里爬出来,而是由计算机编译出来,他的“父亲”在web页面上选择他所具备的能力,可以选择他一生下来就会C语言或者偷菜,而且有多星系语言版本,当然了,能力越高就越贵。</p> +<p>那时候所有的人都要求过织女星语4级,考不过不给办理银河系暂住证,当然了你也可以在开往木星的长途车站门口找到一堆办证的广告。</p> +<p>那时候IE也应该支持W3C的浏览器标准了,如果IE还在的话。</p> +<p>那时候会有一堆考古学家专门研究从地下挖出的碟片是盗版还是正版,当然了那时还是正版的值钱,到时会有一个电视节目叫“鉴碟”,拿着你收藏的碟片上电视节目的话,如果是盗版会被当场被锤子砸烂,不过有个例外是“A片不砸”。</p>声卡那些事儿https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/Sun, 21 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/<p>1、装机</p> +<p>要是在2000年左右买电脑装机器,除了要考虑cpu、主板和显卡之外,还有个板卡不能忽视,就是声卡。</p> +<p>没声音,再好的戏也出不来,所以声卡作为一个多媒体电脑的基本配件在当时是十分重要的,记得当时很多厂家都在这个领域厮杀,启亨、帝盟、创新、雅马哈等,广告打得异常火爆,后来来自新加坡的创新公司创新赢得了这场战争。因为创新推出了一片极其牛逼的芯片EMU-10k1,利用该芯片制造出了一拨红的发紫的声卡产品&mdash;-SB-Live系列(我们背地里管它叫傻逼的生活)。</p> +<p>后来一个计算机标准出来了,那就是AC97,主板逐渐集成了声卡,开始还依赖cpu的运算偶尔还要爆音和死机,后来技术日趋成熟,遍地都是板载声卡了,主板厂商要是不集成声卡都不好意思跟人家打招呼了,这下好了,装机的配置单上再也没有“声卡”这个选项了。</p> +<p>2、波表</p> +<p>我的第一台计算机配了一块杂牌声卡,我估计音质还比不了现在的集成声卡,但是该声卡集成了一个FM合成器,我当时爱玩一个叫“快乐电子琴”的音乐软件(感谢这个软件,因为这个软件我后来才买了台雅马哈电子琴),利用该软件可以在电脑上叮叮咚咚地弹电子琴,也算是过过电子琴的干瘾。</p> +<p>这个软件之所以可以发音就是依赖了我声卡上的FM合成器,不过乐器的音色很假,敲鼓的声音像是在放屁。</p> +<p>直到有一天我去同学家里玩,他有一块雅马哈724声卡,我给他装上了“快乐电子琴”,一弹奏我就惊呆了,乐器的声音太逼真了,跟真的一样,比起我那个FM合成器声音有天壤之别,后来屡次查资料这才认识了“波表”这个东东,这是一项MIDI技术,如果要说清楚的话估计得说上三天三夜,这里就不详细介绍了。</p> +<p>不过雅马哈的724声卡其实并非带了硬件波表合成器,而是通过软件模拟的,发声会有一些延迟,但是已经很不错了,软件波表模拟器后来发展的也不错,能力也大大超过了硬波表,不过这就是后话了(现在的计算机上如果是windows系统就都有一个软波表,音质一般,有延迟)。</p> +<p>再后来我的另一个同学有块创新PCI128声卡带了个8MB的硬波表合成器,这个声音又让我吃惊了一下子,这次就更逼真了,而且声音实时发出,不带一丝一毫的延迟,软件波表模拟器的最大的缺陷在这里被一扫而光。</p> +<p>3、ASIO</p> +<p>我后来有了一块创新的SB-Live声卡,用了快8年了,这么多年我换了3台计算机,但是声卡一直用的是这一块。这块声卡经典到无法用言语来形容,目前在我的电脑上通过kx驱动,发出的声音甜美清澈,音质是那些集成声卡脱了裤子也撵不上的。</p> +<p>虽然已经停产了,但是仍然可以在网上买到旧的,听说有人收藏了上百块这款声卡,可见其经典程度。</p> +<p>更难能可贵的是,有了kx驱动(一个非官方的改版驱动)可以使此声卡支持ASIO(一种音频标准),在Cubase等录音软件下可达到实时渲染声音的效果,行话叫“听湿录干”,要是普通声卡的话就有很大的延迟,想想你唱卡拉ok时过了几秒钟声音才发出来的尴尬,所以支持ASIO可以让我在CuBase下直接唱卡拉OK,而且可通过各种软效果器随意处理自己的音色。</p> +<p>4、现在</p> +<p>很少有人再去关注声卡了,厂商也不再大力宣传他们的声卡产品,那些肯花五千块钱配电脑的人宁愿其中有一千块钱花在显卡上却不愿花三百块钱买块差不多的声卡。好吧,那你就忍受集成声卡那粘粘糊糊的音质吧。</p>烂片时间https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/Sat, 20 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/<p>周末,挑了一部尼古拉斯凯奇的电影,看完了不得不说,白瞎了尼古拉斯凯奇了,不过竟然看完了,知道是哪部了吧?</p>我是无法整理好我的硬盘了https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/Thu, 18 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/<p>随着时间的推移,硬盘上的东西积累的越来越多,硬盘也由原来的一块到现在的四块,大容量的硬盘对于偏执狂就是一个噩梦。</p> +<p>早就意识到硬盘需要整理,可是我的整理速度却赶不上硬盘里的垃圾堆积的速度。</p> +<p>有些东西明明“没有用”却不舍的删除,而真正需要用到的时候却死活找不到放在那个文件夹下面了,曾经使用过Google的桌面搜素,确实不错,可是该程序的索引会越来越大,渐渐达到难以忍受的地步,只得停用。</p> +<p>我决定狠一狠心,花掉这个周末,彻底整理好硬盘上的文件&hellip;&hellip;</p>听歌随想https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/Wed, 17 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/<p>最早对听歌有印象应该是在八九岁的时候,追逐时尚(当时还没有‘时尚’这个词)的三叔买了当时比较酷的双卡收录机,呵呵,年轻人嘛。</p> +<p>我就从那个时候起开始听磁带,磁带比较匮乏,基本上没啥可挑的,偶尔只有戏曲磁带也得将就着听。</p> +<p>估计当时就是90年代吧,记不清了,好像还流传过一阵子囚歌(愁啊愁啥的),后来又有电视连续剧《渴望》、《篱笆女人和狗》等里面的插曲流行,我记得我当时听一遍就学会了《篱笆女人和狗》里面的一曲《过三关》,还好当时还小,啥也不明白,现在回想起来,那绝对是一首“黄色歌曲”,比邓丽君的歌“黄”多了(当然我当时不知道邓丽君),不信你可以去查一查歌词,不过要说这是艺术的话也能给糊弄过去(其实仔细品味宋祖英的《十八弯的水路到我家》也有那个意思)。</p> +<p>没办法,在农村的乡下,也就听这些歌了,将就了。也有一阵子流行《黄土高坡》、《信天游》什么的,后来我才知道,人们管那一阵子叫“西北风”。</p> +<p>镜头再往现在稍微推一推,我就开始听到港台歌曲了,第一首有印象的港台歌曲是刘德华的《来生缘》,第二首是叶倩文的《潇洒走一回》,第三首是郑智化的《水手》,算是对流行歌曲的正式启蒙吧,那时家已经搬到了镇上。</p> +<p>后来学习开始紧张了,没机会听到更多的流行歌曲,但是还是很喜欢听的,基本不放过听歌的机会,偶尔也会攒点儿零花钱去买磁带,但当时的零花钱简直是少的可怜,一盒磁带要十块钱左右,所以我很少买,不过我现在还记得买的第一盒磁带,是一个大杂烩合集,周华健《风雨无阻》、张学友《偷心》、谭咏麟《青春梦》等等,都是在那盒磁带上第一次听到。</p> +<p>这些歌应该不是那年才刚刚流行的,但我肯定是那时才接触到。由于信息的闭塞和经济的欠发达(就是穷),我听歌的节奏一直比别人晚了半拍(这是后来上了大学才知道的)。</p> +<p>比如他们听张信哲的时候我还不认识这个人,我听张信哲的时候他们已经在听周杰伦了。</p> +<p>现在我偶尔也听周杰伦了,但是他们都不听周杰伦了。工作以后,有一天我跟同事聊天说道:“我怎么现在才觉得欧美的80年代摇滚那么好听呢?是不是我的欣赏水平才达到人家80年代的水平呢?”还是我的同事有水平,沉吟片刻,给了一个很牛逼的答案:“不是越往现在的东西就越好,比如瓷器就是越老越值钱,越是现在的就越便宜&hellip;&hellip;”</p>想出s60软件签名机制的家伙脑子一定是被驴踢了https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/Tue, 16 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/<p>前一阵子突然想玩玩在手机上写程序,以前也写过j2me的,这次图个新鲜就挑了pythonfors60,还算比较容易掌握,于是就随便写了个帮助我自己查话费余额以及gprs流量的小程序,基本能用,后来由于太忙就懒得再完善了,随便打个包装在我的e71上了事。</p> +<p>前几天老婆也让我给她装个这样的程序,我才发现问题所在,我没有开发者证书(这个据说要掏钱向nokia购买),打包成的sis安装程序在破解过的手机上可以随便装,但是没破的就无法安装了,而以一个普通用户的水平,诸如这些申请证书、软件签名、高权限、破解等几乎无法独立完成,甚至无法理解。</p> +<p>靠,把话题扯远一些,再说说nokia提供的开发环境,如果使用c++开发的话,光是开发环境的配置就足以让人抓狂的,不能在linux下开发不说,在windows下开发还得把编译环境和sdk安装到同一个盘符下否则打死都不能编译通过,在某些笔记本上就连模拟器也有必须插上麦克风才能正常启动的怪癖。</p> +<p>所以说nokia这么做只会让symbian平台慢慢死去或慢慢去死,以后就算不被android压住风头也会被自己玩死。</p> +<p>我的建议是,提供好用又免费的开发环境,彻底摒弃垃圾的软件签名机制,提供类似于appstore的软件商店(听说也有了)。</p> +<p>总之就是吸引开发人员开发出大量牛叉的应用,这样才“科技以人为本”而不是以坑人为本。</p> +<p>ps:看来nokia把宝压在qt上了,我也是比较看好qt的,也希望nokia能够发挥好qt。</p>不听相声听音乐https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/Mon, 15 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/<p>前一阵子我养成了一个不良好的习惯,睡前听相声,甚至达到了不听就睡不着的地步。</p> +<p>说出来怕郭德纲不高兴,我听他的段子入睡最快,不过也许他会说一句“我很欣慰啊”。</p> +<p>如今的相声段子太少,很快就无法听着新鲜段子睡觉了,而老段子则是催眠效果不佳。</p> +<p>行动吧,改掉这个坏毛病。</p> +<p>于是,我把音箱从书房搬到客厅,然后又搬到卧室,每天晚上睡前从《加州招待所》一直听到《喜洋洋》,渐渐发现我现在竟然能听的进去民乐,甚至还喜欢上了。</p>上苍保佑爱折腾的人https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/Sun, 14 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/<p>折腾,大部分情况是贬义,有一种没事儿找事儿的味道,或者是重复地捣腾一些无意义的事情。</p> +<p>大概就这么个意思吧,详情可以去查词典。</p> +<p>对照一下,发现我是个不折不扣的爱折腾的人。</p> +<p>我的这个特质在计算机方面几乎发挥到了让人发指的地步,比如在大学的时候,我几乎每周重装一次操作系统,后来无意中把Win98的序列号(QY7TT-VJ7VG-7QPHY-QXHD3-B838Q)给背了下来,你看,竟然现在还记得(敲了那么多遍,记不住才怪)。</p> +<p>这个爱重装系统的癖好差点儿保留到工作以后,直到后来工作忙了,实在无暇顾及才消停。有一阵子我认为听音乐的感受跟音箱的摆放有很大关系,于是就反复调整喇叭的位置,比如挂在蚊帐上、放在洗衣机里、塞到书架里等等,虽然知道这么做没啥意义(不像许三多那样整天想着做有意义的事情),但是还是无法停止。</p> +<p>最近还流行一个词叫MOD(改造),其实就是折腾,好好的东西改的面目全非却让人着迷,虽然不会把吹风机改装成刮胡刀,但是可以把台式机改造成便携机,或者把笔记本电脑改造成平板电脑,据说有公司专门负责干这个还挺赚钱的。</p> +<p>还有一种折腾是总想让手里的工具达到一种无限趋近完美的状态,或者榨干它的最后一丝潜力,这些貌似无聊的事情,有个很大的原因是因为个性里多少有点儿完美主义或偏执的性格。</p> +<p>这里的例子很多,并不局限于计算机上,生活中的各个方面都有,比如据传闻有牛人在开车起步的时候先挂一下倒档,这样使自己的手动挡的车在别人看起来像是自动档的了,哈哈,玩笑。</p> +<p>折腾是一种生活态度,在我看来甚至是一种美德,一个人喜爱折腾并非是缺心眼儿,而是说明其有活力、有追求。</p> +<p>爱迪生如果不爱折腾可能我们现在还在点着蜡烛,牛顿不爱折腾的话我们也不会在学校里里受尽高等数学的折磨,福特要是不爱折腾我们现在的交通也许不会这么拥堵,骑着马去赶集,够拉风,我靠,怎么说着说着论证反了。</p> +<p>总之吧,我觉得上苍就是保佑爱折腾的人,怎么地吧。</p>真是个不错的天气https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/Sun, 14 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/<p>虽然理论上已是春天,可是很显然今年真正的春天要比往年来得要晚一些。</p> +<p>星期天的早晨不太想睡懒觉,拉开窗帘就看见大雪纷飞的天气,恩,这种天气最适合缩在家里,看个电影或者看看书,总之,是个适合宅在家里的天气。</p>该读什么样的书https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/Fri, 12 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/<p>一直后悔书读的太少,用他们文化人的观点来说,我几乎算上是文盲级别的。</p> +<p>记得有人开过一长串的书单,曰:没读过这些书的都算文盲。</p> +<p>我扫了一下列表,光是外国名著就占了很大一部分,像我这种看见翻译成中文的外国人名就头疼的人,肯定算个不折不扣的文盲了。</p> +<p>学生时期,我所看的文章大部分来自于语文课文,偶尔有课外读物也是吹得没边儿没沿儿的童话故事。</p> +<p>厚部头的书几乎没有耐心把封皮看完。</p> +<p>后来用掌上电脑看书,没有了厚度的压力,我才能把金庸和古龙看完,嘿嘿,就算是补看,也补武侠小说。</p> +<p>前两天又有人出来得瑟着整书单出来,告诉别人这辈子最该读什么书,我操,我该读什么书先搁一边儿,你凭什么在那儿指手画脚。</p> +<p>最讨厌的就是这些家伙,动不动就告诉别人该这样该那样,什么这辈子一定要去的几十个地方啦,做人一定要注意的十个方面啦,一天一定要喝八杯水啦,你大爷的,你自己的事儿整明白了么?嗯?</p>今天是女儿生日https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/Thu, 11 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/<p>今天是女儿的生日,祝她生日快乐,健康、平安。</p>模仿最近比较 流行的日记格式https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/Wed, 10 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/<p>今天起的很早,天气转晴了,冷的厉害。</p> +<p>检查手机电邮时发现忘记换电池了,赶紧给手机换上。</p> +<p>公交车又迟迟不来,烦。</p>我最喜欢的电影画面https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/Wed, 10 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/<img src="https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/4681282-739763.jpg" alt="Featured image of post 我最喜欢的电影画面" /><p>在辽阔的金黄色的麦田里,微风吹起麦浪,主人公的背影慢慢出现,伸手轻抚麦穗。</p> +<p>在麦田的对岸,有守望他的亲人,这是我最喜欢的电影画面,来自《角斗士》。</p>买了个加湿器https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/Tue, 09 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/<p>北方的天气就是干燥,在房间里放上半杯水,没两天就干了。</p> +<p>睡上一觉醒来,鼻子和喉咙都干的够呛。</p> +<p>经过同事的建议,买了个“空气加湿器”,京东的送货速度就是快,昨天下的订单今天就到了。</p> +<p>拆开一看,根本就不是多么高级精密的仪器,是一个塑料水杯,通过马达把水打成很碎的水雾然后喷出来而已。</p> +<p>试试效果如何,先喷一晚上再说。</p>应老婆大人要求,继续写博https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/Mon, 08 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/<p>刚才老婆短我,问我为啥博客不再更新了,并表示期待看到我继续更新此博客。</p> +<p>本来,对网络环境十分失望,写了博客也无法正常访问,养成写博客的习惯也慢慢丢弃。</p> +<p>有心不再更新livespace的博客而专心使用blogspot,无奈blogspot长期被挡在墙外,老婆大人当然无法访问,而老婆通常又是我博客的VIP读者,所以,既然老婆要求我仍然在此唠叨,那就继续在此更新吧。</p>this blog is shutdownhttps://sbabybird.github.io/p/this-blog-is-shutdown/Fri, 05 Feb 2010 00:00:00 +0000https://sbabybird.github.io/p/this-blog-is-shutdown/<p>byebye另一个blog地址仍然有效http://sbabybird.blogspot.com</p>经历时光倒流https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/Thu, 28 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/<p>大前天(2010-01-25)的晚上,我更新了一篇博客叫“中了数码产品的毒”,通过email同步更新到我的在blogspot上和livespaces上的日志里,结果livespaces里无法显示。</p> +<p>本来就觉得livespaces用着有些别扭,因为blogspot在国内无法访问,没办法才同时更新livespaces作为备份的。加上这两天盖茨又在叫嚣不利于互联网和谐的声音。于是,前天晚上,我在livespaces里说,不再更新livespaces,还发了一通牢骚。</p> +<p>结果,在今天发生了时空大逆转,大前天发的那篇博客又出来了,而且显示在前天晚上的那篇牢骚之后,真是无奈啊。</p> +<p>也许是livespaces的邮件系统出了毛病吧,唉,你说我还要不要在livespaces上继续更新之?</p>中了数码产品的毒https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/Wed, 27 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/<p>05年的时候,我迷恋上了摄影,确切地说,是迷恋上了数码相机。</p> +<p>那一阵子,我觉得我得马上买一个数码相机,没它不行,走在路上也想着我拿着相机到处“喀嚓”的感觉,不时地拿手比划比划进行所谓的“构图”。</p> +<p>于是乎,我天天看评测报告,看各个相机的参数,由于当时还算比较理智,没有买单反的,随便买了个消费型的数码相机,其实也不是很随便,至少具备手动功能,成像质量也不算太差,但是跟专业相机比起来仍然是玩具。</p> +<p>不过偏偏有人鼓吹“照片拍的好坏不取决于硬件,某某大师也能用傻瓜相机拍出经典来”。</p> +<p>导致我那阵子还研究了一下光圈和快门的关系,甚至还背了景深表。</p> +<p>不过,很快我就发现,两点一线的生活并不适合学摄影,热度也慢慢下降,那个数码相机也被丢到角落。</p> +<p>华硕刚刚推出上网本的时候,我又迷恋上了,就是所谓的“中毒”,也觉得要马上买一个回来,这东西简直就是给我量身定做的,每天在路上惬意地写两段程序,多美好啊,我想。</p> +<p>不过,很快就发现,上网本的键盘简直是一种刑具,按键小的像米粒,在上面打字备受折磨。</p> +<p>屏幕也很小,看起来很费眼睛,所以,我的视力下降了。</p> +<p>唉,回顾一下,那么多诱人的数码产品到底给我带来了什么?从文曲星的电子词典到华硕的上网本,从诺基亚到黑莓,这些曾经使我严重中毒的东西,没有一样发挥出我没有拥有时所想象的功能。</p> +<p>最近我又中毒了,看上了亚马逊出的电子书,恩木,电子墨水屏幕,超便携,wifi,省电,看起来是那么诱人。这也就是为什么,我要写下了上面的那些文字,因为我要给自己解毒。</p> +<p>简单地回顾了一下,我仿佛听到这些电子产品说,“你不要迷恋哥,因为哥只是个传说”。</p>不再更新这个博客https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/Tue, 26 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/<p>第一,livespace太难用了。</p> +<p>第二,2010年我想做些有意义的事情。</p> +<p>第三,在blogspot上的博客继续更新。</p> +<p>第四,无限期暂停更新此博客。</p> +<p>第五,我个人十分讨厌微软的产品。</p>可怜的显示器和键盘https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/Sun, 24 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/<p>刚刚看了这个视频,乐得够呛。暴躁是人的天性,虽然平时不怎么打游戏,不过我也偶尔会有这些冲动,只是显示器和键盘实在是太委屈了。</p>坚持https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/Sat, 23 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/<p>这个世界从来不缺乏新鲜的点子和想法,缺的是把想法实现出来,并坚持下去。无论做什么事情,随着刚开始的新鲜感渐渐退去,随之而来的就是对耐心和毅力的考验,是的,这世道就是这样,就像他们说的那样,人生就像那啥,能够挺到最后的都是纯爷们。</p> +<p>我从去年开始,准备一点一滴的整理自己的“个人知识管理系统”,期间使用过各种软件,包括但不局限于“evernote”、“trac”、“dokuwiki”等等。</p> +<p>每一次都是浅尝辄止,稀稀拉拉地整理了几篇文章,然后慢慢地落了一层灰。</p> +<p>固然有“工作忙”这个屡试不爽的借口,但每当想起自己当初信誓旦旦定下的计划还是有些不爽。</p> +<p>这次在年初的计划里,我又列出了整理“个人知识”的计划,看来是非执行不可了。</p> +<p>也许等我整理好了,英特纳雄耐尔也就实现了。</p>高人无处不在https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/Thu, 21 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/<p>老旧的计算机除了扔掉还能干点儿啥?</p> +<p>其实只要发挥创意,老电脑还是可以发挥一些余热的。</p> +<p>下面是一些牛人想出来的点子:</p> +<p>1、驱蚊,蚊子十分讨厌频率为6k左右的声波,根据这个传说,编写程序控制pc的小喇叭发出这个频率的声音就可以达到驱蚊效果。</p> +<p>这个我也曾经做过测试,发现纯属骗人,而且6khz的声波仍在人耳的听觉范围之内(20~20k)所以蚊子没赶跑倒是把人给吵晕了。</p> +<p>2、烧烤,有牛人拿旧机箱来烧烤,这个没啥技术含量只要舍得就行。</p> +<p>3、哄baby睡觉,这个比较绝,利用程序控制电脑的光驱开合,从而拖动婴儿车来回移动,达到催眠的效果。</p>在线看3d电影https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/Wed, 20 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/<p>今天发现这个http://3d.pptv.com/看电影的网站(我火星了吗?),在线提供3d电影的视频,当然也是需要3d眼睛,不过是那种最古老的3d眼睛,即红绿3d眼镜。</p> +<p>网站速度还不错,据说带上3d眼镜之后在普通显示器上也可看到3d效果了。</p> +<p>可惜手头没有材料,要不然就自制一个了。</p> +<p>据说这种眼镜没啥技术含量,随便拿两个塑料片就可以了。</p>地方台的电视节目,偶尔也有能看的https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/Tue, 19 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/<p>刚看到一个模仿“一虎一席谈”的节目,提出一个争议话题,找了两组因为利益不同(而导致观点不同)而针锋相对的人在讲台上掐架。</p> +<p>感觉还行,可以当小品看。</p>时空错乱https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/Mon, 18 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/<p>我的记性不大好,一般都是靠手机的日程表来安排事情。</p> +<p>于是今天早晨,我的手机提醒我,妹妹的生日到了,我赶紧发短信以示祝福。</p> +<p>结果不一会儿妹妹就回复短信&quot;你发错了吧,我的生日还差好几天呐!&quot;,仔细一看手机的日期,我靠,提前了好几天。</p> +<p>原来是不知道什么时候错调了手机的时间,看来,电子的东西还是不能太信任。</p>不用那么麻烦,轻松使slitaz支持中文https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/Sun, 17 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/<p>不好意思,最近总是频繁提及Slitaz这个小巧的Linux发行版,我已经把它安装到我的epc上了,驱动齐全,启动和运行速度飞快,安装了最新版的firefox和flash插件,vim当然少不了,可是官方的iso里面并未附带中文的支持,所以打开的中文网页都是乱码。</p> +<p>到网上搜索汉化的方法,发现都比较麻烦,于是自己摸索了一个省事儿的办法。</p> +<p>首先就是准备好一个字体文件,可以直接从已安装的Windows系统里选取喜欢的字体文件,但是我不推崇这么做,因为Windows下的字体都是有版权的,所以推荐使用“文泉驿”系列字体,我选择了“文泉驿微米黑”,可去官方网站下载。</p> +<p>将下载后的字体文件解压到&quot;/usr/share/fonts&quot;下使用root用户执行命令fc-cache好了,现在打开firefox在选项里字体的选择框里就可以选择刚刚安装的字体了,然后在看网页就可以显示中文了。</p> +<p>如果遇到播放flash出现乱码的情况,可执行这个命令&quot;mv/etc/fonts/conf.d/49-sansserif.conf/etc/fonts/conf.d/49-sansserif.conf.bak&quot;这样就可以了。</p> +<p>现在就剩下桌面环境以及程序菜单是英文的了,不过这个没关系,想汉化的话直接修改openbox的资源配置文件即可,不过我就懒得弄了。</p>她来听我的演唱会https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/Fri, 15 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/<p>我从来没有看过演唱会,我曾经想象着这样的场景,歌手在光亮的舞台上扯开喉咙唱歌,我和无数歌迷在舞台地下挥舞着荧光棒也扯着嗓子高呼。</p> +<p>可是我从来没有这样做过,因为我已经错过了那个季节。</p> +<p>我也曾幻想着那样的场景,我理着光头,抱着吉他在舞台上扯开喉咙唱歌,千万的听众也挥舞着荧光棒随着高呼,但是我也错过了那个季节。</p> +<p>我也是个热爱音乐的人,也偏爱着某些歌手,我也曾想象着去听某些人的演唱会,但是我想我不会去了,因为我知道,有些歌我在演唱会上要是跟着唱的话,会无法控制自己的情感而轻轻啜泣。</p> +<p>张学友有一首歌叫《她来听我的演唱会》令无数恋爱中的女人为之动容,因为这首歌唱出了从少女到女人的心路历程。从浪漫的青葱岁月到现实的装b季节,无数的少男少女经历了从梦想的飞蛾到蚕蛹的转变。</p> +<p>正像崔健在《假行僧》里唱到的那样,我要从南走到北,还要从白走到黑,我要人们到看到我但不知道我是谁,假如你看我有点儿累就请你给我倒碗水。。。。。。</p> +<p>今天,我的一个好哥们,雅兴大发,拼命挤到网上淘得一张齐秦在北京演唱会的门票,欣喜若狂。</p> +<p>我很羡慕他还有这个心情去看一场演唱会,在这个充满压力的某些时候还令人沮丧的世界,仍然能保持梦想并执着于自己的爱好。</p>Geany,不错的IDEhttps://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/Thu, 14 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/<p>前两天在试用Slitaz的时候发现其中带的Geany是个不错的IDE(想想吧,Slitaz才不到30M的身材竟然还带了个开发环境),Geany轻巧快捷,功能齐全,具备基本的代码高亮和自动补全功能,用来写python脚本真是个不错的选择。</p> +<p>难能可贵的是其还支持插件扩展(这年头要是拿出个软件还不支持扩展就真不好意思和人家打招呼)。</p> +<p>当然了,就编辑功能来说有些弱,但是作为Slitaz这个小巧系统下的开发环境真是再合适不过了。</p>难以说再见https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/Wed, 13 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/<p>Google,一个IT公司,一个搜索引擎,对我来说几乎意味着整个互联网。</p> +<p>本来在我的心目中,IT公司几乎等于骗子,然而Google却是个例外。</p> +<p>自打开始接触互联网以来,就离不开Google了,她可以说是我的良师益友,离开大学以后学到的知识几乎全部来自于Google的索引。</p> +<p>除了出色的搜索功能之外,Google提供的产品无不令人惊叹,出色电子邮箱、Rss阅读器、浏览器、操作系统、手机操作系统,这些产品每一个拿出来以后都足以让原本在该领域内的佼佼者掩面而去。</p> +<p>可是,马上就要说再见了,总部那边发布了一篇博客,用某些动物的话说叫“撒了一下娇”,一下子就把这边的用户给抛弃了,就像上次operamini抛弃大陆用户一样。</p> +<p>一时间有人高兴,有人悲伤,有人麻木,有人抓狂。</p> +<p>技术人员大都是不关心敏感词的(或懒得关心),可是热爱技术的人哪一个不热爱Google呢,据我的感受来说,但凡是有所能力的技术人员,无论他的外表多么的随和其内心都是十分倔强的,正是凭着这一股倔强的劲儿才啃下了一个个难题,掌握了常人所不能(或不齿)掌握的东西。</p> +<p>然而这些人却一点一点的被逼到了墙角。</p> +<p>倔强的人会放弃吗?想到一个故事,记不清从那个文章里看到的了,歌词大意是:一个大山里的人被带进了繁华的大都市,第一次看到了这花花世界还有这么多活法,然后被告知回去继续过原来种菜喂猪的日子,此人大哭:“既然无法得到却又为什么让我看到啊”</p> +<p>嘿嘿,我宁愿从来都没有看清过这个世界。</p>痴迷https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/Tue, 12 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/<p>今天的气温在极冷的情况下又骤降,这是我遇到的最冷的冬天了,走在路上,鼻涕先给冻出来然后再给冻回去最后结成冰。</p> +<p>最近十分痴迷于在我的小笔记本上试验各种版本的操作系统,今天继续。</p>好像又不能访问google了https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/Mon, 11 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/<p>如题。</p>在我的epc上运行androidhttps://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/Sun, 10 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/<p>早就对google的android系统垂蜒三尺,终于看到了这个android-x86,原来是有几个好心人把android系统移植到了x86平台,喜欢折腾的我当然不能错过。</p> +<p>看网站上的介绍是支持epc的硬件,遂下载了iso刻录到我的优盘上,简直是帅带了,一次启动成功,速度不错,无线网络可以开启,电池电量也可以检测。</p> +<p>界面果然是为手机设计的,可惜我的epc不是触摸屏,但是有键盘,操作起来还算说的过去,比如现在这几行文字就是在此系统下打出来的,也是google的拼音输入法不过是针对android的,使用键盘选字不是太方便。</p> +<p>想截个图结果没找到截图软件,按printscreen按键也不行,算了,先玩玩吧,毕竟不是为笔记本量身定制的系统。</p>从石锅拌饭想到的https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 09 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/<p>记得小时候有一次看电视,新闻报道说某地某羊肉泡馍饭馆生意火爆,去吃羊肉泡馍的人络绎不绝,而且都喜欢装模作样的自己把馍慢慢掰碎了扔进碗里,感觉那样才有味儿。</p> +<p>昨天晚上和同事一起吃饭,某人点了石锅拌饭,不一会儿端上来的却是拌好的,该同事不甚满意,因为以往都是自己动手拌的,即自己眼睁睁地看着那个半生不熟的鸡蛋被慢慢搅匀到米饭里,而这次却是饭店服务员手太勤快直接就给搅匀了,该同事顿觉很失落,因为吃石锅拌饭自己动手拌也算是消费的一部分,拌好了再端上来就失去了原来应有的韵味,就好象上面说的羊肉泡馍的事情,同样的面疙瘩,不是自己掰开的就觉得没味儿。</p> +<p>说了半天,其实我是这些事儿让我想到了其他的方面。</p> +<p>会不会是大家都有某种亲自动手的情节。</p> +<p>比如Linux有很多发行版,其中就有一种发行版叫Gentoo(当然了还有LFS,这个更变态)的&mdash;颇受欢迎,因为其十分的具有原味儿,该系统所有的程序包括操作系统的内核都要自己亲自动手下载源代码进行编译,虽然整个系统从内核到桌面环境一点一滴地慢慢编译出来非常的耗费时间和精力,但是很多人却沉迷其中不能自拔,因为自己动手的感觉真是太他妈爽了。</p> +<p>再说到写程序的方面,虽然现在的IDE都十分强大了,但是还是有人(包括我)热衷于自己写Makefile来控制软件的编译过程,就算VisualStudio已经提供了十分“完善”的开发向导,但是我还是习惯自己写包括消息映射在内的代码,不为别的,因为自己可以控制具体的细节,精确到每一行。</p> +<p>好吧,我承认有时候需要考虑效率和成就感的平衡,但就个人情感来说,我还是觉得自己动手要爽一些,就像吃羊肉泡馍和石锅拌饭一样,恩,有机会把家里的操作系统也换成Gentoo。</p>我靠,宽带断了https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/Sat, 09 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/<p>家里的宽带没被我怎么用过,只是每天晚上用来听相声,可是由于忘记去续费导致我昨天晚上没听成,体验了一夜失去互联网的感觉。</p> +<p>这种体验让我感到相当不爽,因为意识到自己太依赖互联网了,哦卖糕的,我有网瘾。</p>高科技手段抄水表https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/Thu, 07 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/<p>回来的时候,门上贴个条,原来是抄水表的过来时我不在家,只好留下电话让我自己把水表上的数字告诉他。</p> +<p>可是我没有工具,水表安装的位置又极其蹩脚(在厨房水槽下方靠近墙的位置),无法直接观看,每次我都是看他们带着手电外加一个镜子然后撅着身子瘪着头使劲儿看半天。</p> +<p>可是这难不倒我呀,使用手机打开闪光灯,伸进去对准水表,连拍三张照片,然后上传到电脑,本来还准备使用ocr软件自动识别(脱了裤子放屁),但是才发现水表是指针式的,放大图片读出数字,OK。</p>SliTaz,一个神奇的操作系统https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/Wed, 06 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/<p>SliTaz,是一个极其小巧的Linux发行版,究竟有多小呢,他的个头才30MB,可以制作成LiveCD和LiveUSB系统。</p> +<p>所谓麻雀虽小五脏俱全,附带有完整的桌面环境和常用软件,连firefox都有。</p> +<p>在我的epc上跑得飞快,启动速度也很快(它的启动画面上有句很醒目的话“BOOT!BABYBOOT!”,可见其对启动速度的追求),驱动程序也挺齐全的,直接启用无线网卡,零设置。</p> +<p>刚刚才开始试用,无更多体验,目前显卡仍未设置成宽屏的最佳分辨率,不过我想问题不大。</p>普通pc最多能装多少块硬盘?https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/Tue, 05 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/<p>普通pc最多能装多少块硬盘?我不知道,之所以想到这个问题是因为我有个同事是个DIY狂人,他跟我说他想把50块500G的硬盘(普通ATA硬盘)塞进一台机器里(PC),使该机的存储容量达到25T,问我该使用什么操作系统。</p> +<p>我靠,这真是个疯狂的想法,让我想到了那个买一堆奥拓拿铁丝绑在一起的笑话(呵呵,做人要厚道)。</p> +<p>可惜,我是没有这方面的经验,但是去网上搜索了一下,乖乖,借助RAID卡的威力,理论上可以在pc里安装超过100块硬盘,但是实际上几乎没有人这么做过,所以,让我拭目以待,看看真实情况下,到底能够安装多少块硬盘。</p> +<p>想一想这台怪兽的样子,~~~额,再忍不住打个寒噤。</p>新年畅想https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/Mon, 04 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/<p>刚回过神儿来,现在已是2010年了,进入了传说中的二十一世纪的第10个年头。</p> +<p>有几点目标,希望今年可以达到。</p> +<p>谈不上计划,只是随便想想:</p> +<p>1、体重能够增加5公斤。</p> +<p>2、阅读5本书。</p> +<p>3、彻底整理好自己硬盘上的文件,并建立完善的知识管理机制。</p> +<p>4、学会吉他的扫弦。</p> +<p>5、写一个真正的pc游戏。</p> +<p>6、提升英文水平至可阅读非技术类新闻。</p> +<p>7、改善自己的GTD系统。</p>听雪https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/Sun, 03 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/<p>早晨醒来,拉开窗帘,看到一个洁白的飘着雪花的世界,哦也。</p> +<p>这意味着,在明天早上,假期之后的第一天上班,水平很烂的司机和自认为水平很棒的司机将会在美妙的高速公路上疯狂追击,带来无与伦比的超级大堵车,这就叫明知山有虎偏向虎山行,胸中有红日,脚下舞东风,哦,等一等,跑题了。</p> +<p>我是说,早晨一醒来,看到一个洁白的飘着雪花的世界,哦也。</p> +<p>这意味着,我昨天洗的衣服即使是到了明天还是很难晾干,湿润的裤子在风雪中将会很快冻成一根冰棍,恩,是两根。</p> +<p>mad,我发现想怀着一份飘飘(也有人叫浪漫)的心情写几个文字实在是太难了,于是给自己倒上一杯红酒(昨天超市促销,所以&hellip;),重新开始。</p> +<p>我想说,下吧!大雪,我喜欢!(哦,已经有点儿酒劲儿了)。</p> +<p>因为我喜欢聆听雪的声音,那种安静而又带有几分神秘的雪花飘落的声音。</p> +<p>我喜欢独自站在阳台透明的玻璃后面,点上一支烟,雪花纷飞,毫无章法地打在玻璃上有些甚至想在上面堆砌一些图案,远处的景色已经模糊,那些本来杂乱又浮躁的东西统统被覆盖,仿佛他们本来就那么纯洁似的。</p> +<p>路上的行人放慢了脚步,孩子们开心地堆着他们叫做“雪人”的物体,我几乎能听见皮鞋踩在上面发出的轻微的“咯吱”声。</p> +<p>当一个人体会美好的时候,回忆总会涌上心头,因为回忆里全是美好。</p> +<p>镜头很快滑过小时候第一次看见下雪的情景,起初飘落在地上的不是雪花,而是很小很圆的颗粒,叮叮咚咚,我拿着小铲子蹲在院子里,还以为那是化肥,恩,我也记不清楚了。</p> +<p>然后就是大片的雪花了,地上很快就白了,嘴里呼出的热气和雪花缠在一起。</p> +<p>再后来,我穿着笨拙的大头鞋使劲儿在雪地里踩出又大又深的脚印,恩,这就是我对雪的第一次印象,虽然记忆已经模糊地带着雪花点了,不过这正迎合了此刻的景象。</p> +<p>听雪的时候更能够享受一份孤独,烦恼都烟消云散。电脑里编译着代码,电视里主持人在蹩脚地斗嘴,我一个人站在玻璃后面听了一袋烟工夫的雪,却好像一个世纪那么长。</p>假期https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/Sat, 02 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/<p>2010年的第一天,我加了一天班。</p> +<p>2010年的第二天,我狠狠地睡了个懒觉,本来想从天黑睡到天黑,但是想到假期是如此的珍贵,只好在9点am就爬了起来,做了顿丰盛的早餐。</p> +<p>在给我的ubuntu重新编译了两次最新的内核之后,我意识到这是一件很无聊的事情,于是决定做一些有意义的事情,看美剧,一连看了十来集,再看就要呕吐了,而且由于反复傻笑导致脸也快抽筋了。</p> +<p>我决定出去走走,做了个不太理智的决定,那就是漫无目的的逛超市而且还是空着肚子。</p> +<p>记得好像有人提醒过,去超市买东西时最好先想好一个清单,而且最好是在吃饱的情况下再去,否则就会拿回一大堆垃圾回来,恩,我今天就是这样。</p> +<p>我推着小车(这也是个错误的决定),由于食欲的关系,不一会儿的功夫就把小推车堆的满满的,一边大把的拿东西一边想象着自己坐在家里美美的吃它们的样子,哦也,再加一瓶红酒吧,哦,等一等,这边的酱肘子正在滋滋地冒着热气,仿佛正在召唤我,ok拿下。</p> +<p>提着东西走进家里,我才意识到,我买了足够我吃一个月的食物,而有些东西的保质期才两天,比如那只烧鸡。</p> +<p>好吧,他们说狂欢是一群人的孤单,而孤单正好一个人狂欢,justeat!</p>goodbye2009,hello2010https://sbabybird.github.io/p/goodbye2009hello2010/Thu, 31 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/goodbye2009hello2010/<p>。,goodbye2009,hello2010</p>关于windows7下无法安装Visual Studio2008的问题https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/Wed, 30 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/<p>单位的机器,前一段时间,被我换成了windows7系统,没办法,咱就是爱折腾。</p> +<p>尝鲜总是要付出代价的,那就是不知怎地,过了一段时间就无法安装某些软件了,不能安装office这还能忍,可是连vs都不能装了那还用个屁啊。反复观察,原来是无法安装vc++的runtime了(也就是vc_redist_x86.exe),具体是为什么不太清楚,好像是一个系统的bug导致的。反复地google,去microsoft网站去查,折腾了好几天,总算有了解决办法。</p> +<p>步骤如下:</p> +<p>1、打开注册表编辑器regedit,找到这儿HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control,</p> +<p>下面有个叫RegistrySizeLimi的键,把它的值修改为0xffffffff</p> +<p>2、重新启动电脑,并使用administrator用户登录,如果该用户未启用则要首先到“计算机管理”里面把administrator帐号启用。</p> +<p>3、在cmd里运行“sfc/scannow”以上几步完成后,再次重启机器即可。</p>你看,电视!https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/Tue, 29 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/<p>谁也阻挡不了互联网带来的变化,有些东西正在一个一个地被消灭,比如纸质信件,比如影碟机,比如磁带、CD。</p> +<p>现在还在苟延残喘的还有电视、报纸等,但是他们的日子也&hellip;&hellip;</p> +<p>今天看到消息,咱们的CCTV也推出网络电视了,抱着凑热闹的心理去看了看,随便打开几个视频看了看,然后就关了,我只能说他们的网速还不错,内容实在是没有什么吸引力。</p> +<p>不知怎地,我现在已经开始讨厌看电视了,我不是不喜欢电视机,而是不喜欢里面的节目了。</p> +<p>再也没有瞪着好奇的眼睛盯着电视屏幕不放的心情了,小的时候,哪怕是一段朴素的广告我也爱看,现在回忆起来那时的电视节目几乎个个都是经典。可惜啊,随着时间的流逝,信息来源的多样化,尤其是接触了互联网之后,眼界一下子开阔了,再加上现在的节目大都粗制滥造带有极强的功利色彩很多时候拿观众当傻B,谁还爱看呢。有句话说的好,记不得是谁说的的,歌词大意是:“当你打开电视的时候,你的大脑就会停止思考。</p> +<p>而当你打开电脑的时候,你的大脑正开始思考。”</p> +<p>恩,我很同意这句话,尤其是前半句。</p>在kde下更新博客哦https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/Mon, 28 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/<p>嘿嘿,Linux进步真是非常快,桌面环境比起前两年已经友好的多了,很多人性化的功能让windows只能掩面而去。</p> +<p>以前在linux下的输入法还只能算是能用,现在的输入法已经算是好用了,当然还比不了windows下的google拼音,不过也差不多了。</p> +<p>抛开其他的特性不说,一想起这是一个开放的、自由的、免费的系统环境就让我对它爱不释手。</p> +<p>一大票强大的软件可用,成熟方便的开发环境,安全的游览器,不用装杀毒软件,实在是找不到理由再去用windows了。</p> +<p>唯独不能在qq上和家人视频,不过我准备用skype试试看。</p>正式切换家用电脑的主系统为kUbuntuhttps://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/Sun, 27 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/<img src="https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/20091227.png" alt="Featured image of post 正式切换家用电脑的主系统为kUbuntu" /><p>早上一睁眼,想起了这是星期天。于是我的老毛病就又犯了,睡不着了。</p> +<p>一个念头闪过脑海,感存重装系统玩儿吧,这几天在单位被windows7折磨的够呛,于是决定换掉家里的系统,不用windows了!</p> +<p>换成哪个linux发行版呢,一定要漂亮的,一定要省事儿的,于是选择了kUbuntu这个号称比windows7还要漂亮的发行版。</p> +<p>安装十分简单,去下载iso就行了。</p> +<p>一路“下一步”即可。</p> +<p>第一次使用kde4的桌面环境,很是惊艳,早听说kde4漂亮的一塌糊涂没想到竟会这么漂亮,开了特效之后更是华丽的令人发指。</p> +<p>好了,就这么定了,以后就用这个了。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Sat, 26 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<img src="https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/blog-733901.PNG" alt="Featured image of post 无题" /><p>尝试用触摸板画画,太蹩脚了。</p>圣诞老人https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/Fri, 25 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/<p>据说他们装的都很认真,为了让孩子保持对圣诞老人期待,他们每年都要装模作样的去追踪圣诞老人。</p> +<p>刚刚看到消息,说Google每年都提供kml文件用以跟踪圣诞老人的行踪,而网站noradsanta.org更是制作了完整的地图来显示,可惜的是访问该网站只支持Windows和Mac系统,于是有人抱怨说:“难道圣诞老人讨厌Linux吗”,我觉得noradsanta.org做的挺对的,因为使用Linux的人,谁还相信有圣诞老人啊。</p> +<p>toosimple</p>写在平安夜https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/Thu, 24 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/<p>圣诞节,这个本属于老外的节日,现在已经成功移植到国内了,大家过得还不亦乐乎,节日嘛,咱们最喜欢了,来者不拒,有一个算一个。</p> +<p>现在外面温度-5度,偏北风力4级,看不见月亮,我刚和同事喝了两杯回来,屋里暖和极了,倒了一杯开水,坐在客厅,很安静。</p> +<p>总是到了年末的时候才想起感慨时光的流逝,这一晃就又是一年。粗略地回顾一下,有收获也有遗憾,有成长也有叛逆。</p> +<p>翻了翻年初给自己制定的计划(对不起,我是计划狂++),发现大部分还是实现了的,有些计划制定的太过离谱偏离较远,比如学习计划,由于时间的冲突只得以工作为重。</p> +<p>不过,梦想始终是不能够放弃的,我庆幸自己清醒地知道目标,并坚定不移地去实现它,一个一个地了却心中的情结。</p> +<p>谈到梦想,我都快成了一个梦想家了,到现在为止我仍然保留的梦想有:</p> +<p>拍摄一部上好的纪录片,做一个录音师,拥有一个属于自己的实验室,写一个操作系统,等等等等(除了最后一个其它的好像都离我的职业挺远的)。</p> +<p>在追逐梦想的路上,难免会有失望和沮丧的时候,但心中的信念从来都没有丢失,面对我的梦想,我像一个虔诚的信徒,怀揣着单纯的心,每晚甜蜜的睡去。</p>微波炉的影响https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/Wed, 23 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/<p>无论厂家如何吹嘘,微波炉的电磁辐射泄漏都是挺严重的。</p> +<p>以前不觉得,认为把它关严实就不会有微波跑出来,所以一边加热食物,一边在跟前等着。</p> +<p>这几天我喜欢拿着笔记本在餐桌旁上网,刚才开动了一下微波炉,我的笔记本立即就连不上无线网络了,我差点以为是我打开的网页内有敏感词,后来才发现是微波炉辐射的影响,看来以后得注意些,不能在开启的微波炉边上上网啦。</p>3D电影终于要走进家庭了https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/Tue, 22 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/<p>刚在Solidot看到一则让人兴奋的消息,3D蓝光规格终于敲定,这意味着以后的3D电影可以装进蓝光DVD并在家里播放了,虽然在观看时仍然需要特制的眼镜,但这已经不是问题了,我想,随着技术的发展,很快就能观看不用带3D眼睛的3D电影了。</p> +<p>最酷的是,使用蓝光DVD播放器即可组建家庭3D影院了,当然对显示设备有所要求,不过问题不大,我估计5年之内即可普及了,科技的发展速度实在是让人敬畏。</p> +<p>顺便提醒一下,国内的标准机构是不是也需要与时俱进赶紧制定咱中国人自己的标准呢?嗯?</p>郁闷的万能解药https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/Mon, 21 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/<p>靠,本来想说开心是郁闷的万能解药,想了想又觉得不妥,本来就郁闷了还哪来的开心。</p> +<p>好吧,乐观的心态才是。很久很久以前,记不清了,大概是上个世纪的事儿了,有一坨古老的电视节目,里面有一句名言:“快乐是一天,不快乐也是一天,为何不天天快乐呢?”</p> +<p>,你听听,说的多在理啊,虽然有点儿站着说话不腰疼的意思,但是话糙理不糙,不用多仔细去想就觉得豁然开朗。</p> +<p>随着工作压力的增大,以及对世界认知的改变,人已经变的越来越不单纯了,本来一杯清澈的白水已经污染的又黑又浑,已经很难咧着大嘴叉子笑得喘不过气来了。</p> +<p>曾经一个一头猪掉进臭水沟里的笑话都能笑上半天,到现在看见这样的笑话连嘴角都懒得抽动,偶尔遇到能够笑得起来的还是荤段子。</p> +<p>但是,最近看了一连串的美剧,让我又回到傻笑的年代,有些人说这太单纯、无聊、没意思,其实包含着大量的深刻讽刺和幽默,比如《生活大爆炸》、《好汉两个半》、《老爸老妈的浪漫史》等等</p> +<p>,他们不但让我看得前仰后合而且还能产生一些积极乐观的思考,不像有些电视剧简直是把你的脑袋敲开了往里面扔大便。</p>没写过曲子的厨子不是一个好裁缝!https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/Sun, 20 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/<p>今天坐在电子琴前瞎按,精神有些恍惚,尝试着弹些曲子,居然可以有“完整”的旋律被弹出来,而且听起来有些淡淡的伤感,有些甜蜜。</p> +<p>我又不会记谱,纯粹凭着感觉弹奏,恰巧电脑上的midi软件坏了,无法使用软件录制,只好掏出手机赶紧把这段录下来(用手机录的音质就差多了),要不然很快就会忘了。点击这里可听如有雷同纯属巧合:)</p>周末,看电影的时间https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/Sat, 19 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/<p>按照偏执的日程安排,周末乃观影时间,一个人抽着烟复习经典老片。</p>关于随机数https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/Fri, 18 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/<p>众所周知,计算机(不含量子计算机)是不可能产生真正的随机数的,而只能产生出“伪随机数”。</p> +<p>因为要在计算机上产生随机数都要设置“随机数种子”,而一般来说这个“种子”来自于计算机自带的时钟,这也就意味着这个过程是可重复的,产生出的随机数也是有一定的规律的,无论多复杂的随机算法都难逃这个定律。</p> +<p>具体解释可参考维基百科。</p> +<p>可是大自然中到处充满了“真随机数”,因为没有完全一样的两片树叶,也没有完全相同的指纹(这个不好说)。</p> +<p>可是这些真的是随机的吗?</p> +<p>还是由于人类的认知并未达到一定的高度才产生出来的错觉?</p> +<p>因为我常常这样想:假如我写了一段程序,里面有个“生物”假设他有意识(我靠,这太难了),我给这段程序一堆随机数字,那么程序里的“生物”是不可能知道这些随机数字是由于我设置了“随机种子”才产生的,因为在“构建”这个“生物”之前我已经设置了“随机种子”。</p> +<p>好了,令我有些迷惑的是,也许我们大自然的随机数是在“宇宙大爆炸”的时候就设置了“随机种子”的,后面的发展固然有无尽的随机数,导致根本没有重复的树叶也好,没有相同的指纹也罢,也许这些还是“伪随机数”。</p>齁冷https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/Thu, 17 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/<p>实在找不到词语形容今天的天气了,查了半天新华字典才找到“hou”这个字怎么写,恩,今天天气齁冷齁冷的。</p>DIY了个电子琴延音踏板https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/Wed, 16 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/<p>当初买电子琴的时候没有配套买一个踏板,后来练习的时候才知道延音踏板的作用还是十分重要的,嫌麻烦就没有再去买,到网上看看卖的还挺贵,雅马哈原装的要好几百块。</p> +<p>后来我研究了一下,电子琴的延音踏板原理十分简单,就是拿脚一踩就短路而已。</p> +<p>于是就想自己做一个,苦于没有材料,有一阵子我甚至联想到我垃圾桶上的那个踏板能不能拿来做延音踏板(当然不行),后来想到了鼠标,行倒是行,就是“脚感”太差。</p> +<p>今天在家翻抽屉翻出来一个废弃的台灯,发现他的底座挺合适的,于是就卷起袖子开干。原理太简单了,就是拿跟引线从电子琴上接下来,这头接在台灯底座上,台灯的底座经过改造,踩下去就导电,抬起来就断开,试了一下,还真对得起咱这台琴!</p> +<p>请看照片:</p>理发https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/Tue, 15 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/<p>今天去理发了,很难理解那些一边理发一边与发型师聊个没完的话痨,今天我终于想明白了为什么我到了理发店就沉默寡言了。</p> +<p>因为他们一般都会问我这几个问题:</p> +<p>1、“您多久没理发了?”</p> +<p>妈的,老子想什么时候理就什么时候理,怎么了。</p> +<p>天气这么闷热生活这么枯燥,理个发你还在这唧唧歪歪没完。</p> +<p>不就是老子的头发留的稍微长了点儿,收拾起来慢一些吗。</p> +<p>2、“您的发质太硬,要不要做个软化?”</p> +<p>操!好好的头发干嘛要在药水里泡来泡去了的。</p> +<p>3、“您的头发有些脱发,给你推荐一款防脱发的洗发水怎么样?我们这边特价”</p> +<p>脱发?没你说的那么严重吧,倒是推荐的洗发水有些怪异,恕我孤陋寡闻,这些牌子我一个也没听说过。</p> +<p>4、“办个会员卡吧?以后每次来都能打8折”</p> +<p>最崩溃的就是这句,痛苦地忍住胸口那句脏话,赶紧离开这间店。</p>我的装机必备软件及理由https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/Mon, 14 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/<p>今天在网上看到有人写他的装机必备软件,看得我也心痒痒,也来说一说我的装机必备软件,每个人的习惯不一样,我选择的都是我最喜欢的。</p> +<p>选择的原则是有免费的就不用收费的,有开源的就不用闭源的,有小巧的就不用臃肿的(当然是同样功能的比较),有绿色的就不用安装的。</p> +<p>1、记事本替代,这个可选择的余地很大,gvim、Notepad++、Notepad2等等,我选择gvim,它高效、强大、聪明。</p> +<p>2、浏览器,这个非常重要,可选择Firefox、Chrome、Opera等等,我选择Firefox,因为Chrome目前还无法让我放弃Firefox,不过Chrome也真的很好,而且进步很快。</p> +<p>为啥没有IE?用IE上网让我没有安全感,而且操作起来很不爽,这点目前已有了很大改观(IE8)。</p> +<p>3、音乐播放器,我选择foobar,不过现在在线听音乐才是趋势,所以foobar只有在听本地的无损音频文件的时候才能派上用场。</p> +<p>4、视频播放器,我选择MPlayer,没有理由,就是他了,非要找个理由的话,那就是因为它是开源的而且它有很多快捷键。</p> +<p>5、看网络电视,选择ppstream。</p> +<p>6、文件管理器,选择totalcommander,又是一个绝世好软,好处多到一天也说不完。</p> +<p>7、在线听广播,选择龙卷风网络收音机,老牌子,质量有保证。</p> +<p>8、系统快捷键定制,选择ahk(AutoHotKey),可以自己编写脚本定制快捷键。</p>吃牛排的时候你没想过要认识那头牛https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/Sun, 13 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/<p>《逃出克隆岛》这部2005年的科幻电影(算是科幻吧),今天又被我翻出来看了看。</p> +<p>故事里说,在不远的将来,随着克隆技术的发展,人类已经具备了克隆自己的能力,最简单的应用是当人类的器官坏掉之后就克隆一个换上,这给那些贪婪的、渴望长生的人们又带来了希望。</p> +<p>有了市场需求就有人提供这种服务,故事里的“坏人”开办了一个地下工厂专门提供克隆器官,并告诉外界克隆的这些器官寄生在没有灵魂、没有思想、知觉的“植物人”身上,听起来貌似很人道。</p> +<p>然而,随着时间的进展,“坏人”发现通过这种手段提供的器官质量并不高,于是直接克隆出整个的活人,大批量的复制,统一的教育他们,并给他们植入雷同的记忆,描述了一个类似天堂的地方作为他们活着的终极目标,当然这个地方就是他们生命的重点。</p> +<p>一旦用到了他们器官他们的生命也就走到了终点,外面世界里的人类作为“客户”继续使用新鲜的器官活下去。</p> +<p>这些克隆人大部分没有真正的思想,认知水平停留在孩童阶段,本来一切进展顺利,使用器官的人都没有负罪感,因为就像电影里说的那样:“吃牛排的时候你从没想过要认识那头牛”。</p> +<p>然而,人都是有好奇心的,克隆人也一样,随着好奇心越来越强烈,就引发了电影接下来的故事。</p> +<p>故事的结局还算不错,就像所有的电影一样,“坏人”受到了惩罚,泯灭的人性又一次战胜了邪恶。</p> +<p>电影本身结束了,可是带给人的思考却漫无边际,随着人类文明的发展,人性会被重新定义,只有一样是可以肯定的:为了生存,所有人都会不择手段。</p>记住这几个窍门带你迈入vim的门槛https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/Fri, 11 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/<p>用vim已经有一段时间了,谈不上高手的级别,但总算是入门了,vim作为编辑器的王者,掌握之后带来的成就感无与伦比,但是其陡峭的学习曲线常常让人望而却步,下面,我来介绍几点心得,虽是入门级但是能为将来的熟练掌握打下基础。</p> +<p>1、不要再依赖菜单和工具条,虽然gvim提供了菜单和工具条,请不要再用他们,在配置里加上一行&quot;setguioptions-=mT&quot;,这样一来gvim的界面就干净多了,尽情的用快捷键吧。</p> +<p>2、不要再依赖方向键来移动光标了,熟记h、j、k、l分别对应左、下、上、右,并强迫自己使用,你会发现右手再也不用来回移动了。</p> +<p>3、切忌总在“插入”模式里待着,“插入”完成后立即按esc或ctrl+c推回到“默认”模式,因为在默认模式里才能发挥出vim各种“命令”的优势。</p> +<p>4、“o“命令是在当前行的下面插入一行并进入“插入”模式(大写的“O”是在当前行的上方插入)。</p> +<p>5、“dw”是删除一个单词,“dd”是删除一行。</p> +<p>6、将光标移动到某个单词上并按“*”键是对这个单词进行向后搜索,“#”是向前搜索。</p> +<p>7、“xp”是前后交换两个字符,“ddp”是上下交换两行。</p> +<p>8、“v”这个选择命令很管用,紧跟其后按“i(”是选中小括号内的内容,“a(”是连小括号一起选择(你可以尽情地举一反三)。</p> +<p>9、多看帮助。</p>最近比较忙https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/Thu, 10 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/<p>09年已经接近尾声,琐碎的事情纷至沓来。</p> +<p>很多事情需要加班才能解决,睡眠质量严重下降。</p> +<p>我的博客又快荒废了。</p>忙里偷闲写博客https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/Tue, 08 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/<p>刚写完了一篇文档,绞尽脑汁,换换脑子,上来唠叨两句。</p> +<p>这两天又尝试着使用evernote管理笔记,界面华丽,功能强劲,赏心悦目,就是太耗资源了。</p> +<p>勉强能在小笔记本上跑,输入中文的时候还吭哧吭哧的。本打算以后就直接在上面写日志,发了两篇测试,效果很不理想。</p> +<p>放弃。发现我的共享空间又不能访问了。</p>来来来,一起解决全球变暖的问题https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/Mon, 07 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/<p>来来来,一起解决全球变暖的问题来来来大家一起跳吧刚才在浏览科学松鼠会的网站,看到一个有趣的话题,假如地球上的所有人在同一时刻做同一件事情,会有什么样的后果?不过已经有喜爱恶搞的老外开始忽悠了。</p> +<p>故事说的是:</p> +<p>2006年有‘科学家’建议六十亿人在2006年7月20日11:39:13秒同时猛跳一次就能让地球轨道距离太阳远一些,这样就很好地解决了气候变暖的问题。</p> +<p>我初一看差点儿就相信了。www.evernote.com|Remember</p>testhttps://sbabybird.github.io/p/test/Sun, 06 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/test/<p>testMinim0www.evernote.com|Remembereverything|Signupforfree__________InformationfromESETNOD32Antivirus,versionofvirussignaturedatabase4663(20091205)__________ThemessagewascheckedbyESETNOD32Antivirus.http://www.eset.com</p>两个偏执狂的对话https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/Sun, 06 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/<p>qy:“优盘借我用一下,我要重装windows7”</p> +<p>我:“你现在的Windows7用的好好的为什么要重装?”</p> +<p>qy:“因为现在用的是RC版的,想装中文正式旗舰版”</p> +<p>我:“哦,了解”</p> +<p>qy:“有时候,虽然明知道现在的软件用着很好,但就是想装最新版的,不然心里就特别扭”</p> +<p>我:“我也是这样,我上周因为不能用firefox最新版把我的小笔记本重装了四次,还有就是我不能看见回收站里有东西”</p> +<p>qy(会心的笑):“对对对,我看见回收站已满的图标就浑身难受”</p> +<p>我:“我上次用别人的计算机,上去就把他的回收站清空了,结果那家伙用回收站来存放重要文件”</p> +<p>qy:“我用软件只喜欢去官方网站下载,然后自己动手破解,别人破的我不放心(信不过)”</p> +<p>我:“你知道别人会怎么说我们这种行为吗?”</p> +<p>qy:“怎么说?”</p> +<p>我:“神经病!”</p> +<p>qy(羞涩地笑):“。。。。。”</p>音量https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/Sat, 05 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/<p>城里的房子太挤,隔音很差,楼上蹑手蹑脚走过一个人,楼下也能听的一清二楚(有点儿夸张)。</p> +<p>以前我有在家听音乐的习惯,那是在老家的时候,每到周末都把音响开到最大,一边听一边洗衣服,现在不能这样听了,因为那样会打扰到邻居,甚至有时候稍微把音量调的大一点儿都会觉得内心十分不安。</p> +<p>音量大了就会担心,小了就听着不爽,感觉白瞎了我那套音箱了。</p> +<p>想要随心所欲的开大音量听音乐,看来只能等住进别墅了,或者回乡下老家。</p>写博客https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/Fri, 04 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/<p>不管有没有人看,几乎每天都要写一篇博客,一是为了换换脑子,二是为了留点儿记忆,当然最好能写一些有用的东西,而不是流水帐。</p> +<p>刚看了和菜头老师写的《像说话那样写博客》,深有同感。</p> +<p>又不是写作文或者写文档,干嘛要写那么多书面用语或者空话套话呢,就是随心所欲,嘴里想说啥,就写点儿啥,有点儿像自言自语。</p> +<p>内容当然不能太没劲,说一说今天吃了啥,去了几趟厕所等,写这些简直是浪费网络资源,不过也不是绝对的,据说有人坚持写了一年的博客,每一篇里面只记载了当天吃了什么饭,后来又有好事者根据博客内容统计出了该人的饮食习惯并列出了图表,这又另当别论了。</p> +<p>我自己给自己的博客定下了内容范围,首先绝对不会转载别人的内容,其次不会写与政治有关的话题(我只是不明真相而且沉默的大多数),然后也不会写工作中的事情。</p> +<p>如果算上刚才说的不能写当日的流水帐,就只剩下自己的爱好可以写一些了,比如音乐、电影(不是影评)、科技、编程、硬件等,偶尔也会写一些貌似小资文风的内容,不过也都是喝高了之后写的,过后看完两股战战几欲删除。</p>如何制作一个可以引导的优盘https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/Thu, 03 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/<p>这两天小笔记本出故障害我卷起袖子修了两个晚上,由于没有光驱,所以没少用到我的优盘,可是网上可下载系统盘一般都是iso文件,即光盘镜像刻录成光盘才可以引导机器启动,不过现在是21世纪了,几乎所有的主板都支持usb启动,所以没有光驱也无所谓了,只要手中有可引导光盘的iso文件就可以制作出一个可引导的优盘出来。</p> +<p>正所谓授之以鱼不如授之以渔,下面介绍一下制作可引导优盘的步骤,并非所有的引导盘都必须这么做,这仅是其中的一种方法,也最省事。</p> +<p>1、必备条件:运行Windowsxp系统的计算机一台,优盘一只。</p> +<p>2、去网上搜索并下载名叫“UltraISO&quot;的软件,试用版亦可。(该软件同时具有光盘刻录、iso制作、虚拟光驱的功能,真是居家旅行&hellip;&hellip;..)</p> +<p>3、可引导的光盘镜像文件(扩展名一般为iso)一只,比如ubuntu9.10-i386-livecd.iso,具体要什么iso取决于你要干的事情,如果这一句你弄不明白,那就别往下进行了。</p> +<p>4、把那只倒霉的优盘插入电脑。(记清楚他的盘符,如果你插入了多个优盘的话)。</p> +<p>4、启动UltraISO,在菜单里选择“文件”==》“打开”选中你的iso文件。确定。</p> +<p>5、在菜单里找到“启动”下面的“写入硬盘映像”并猛烈点击之。</p> +<p>6、现在弹出了一个新对话框,在名叫“选择硬盘驱动器”的那个下拉框中选择你刚才插入的那个优盘(如果就插入了一个,就不用于选了)。</p> +<p>7、在“写入方式”那个下拉框里选择“USB-HDD+”,除了这个选项还有“USB-ZIP”等选项,但是你选择USB-HDD+就可以了,因为这个格式的兼容性最好,实在不行再换其他的。</p> +<p>8、点击“写入按钮”并耐心等待。注意:优盘的内容会被清空。</p> +<p>9、等写完了就拔掉优盘尽情的去得瑟吧。</p>小e复活https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/Wed, 02 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/<p>周日手欠,将epc的系统改为ubuntu的remix版,损坏了ssd的mbr,后又恢复成xp,一天后出现ssd无法读取的错误,再也无法安装xp系统,本着死马当活马医的态度,我试了一下随机附带的恢复光盘(利用光盘烧录了一个可引导的u盘),竟然好使,现在系统又恢复到最初买回来时的状态了。但愿SSD没有坏。</p>程序员的自我修养https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/Tue, 01 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/<p>上次逛当当的时候,忍不住买了一本书&ndash;《一个程序员的自我修养》(副标题为:链接、装载与库),当时我说,就冲这个书名,哪怕里面全是白纸我也要买这本书。</p> +<p>因为我是周星驰的影迷,《喜剧之王》在我心里一直是周星驰的巅峰之作(别跟我提《大话西游》,台词我比你记得还熟)。</p> +<p>影片里的周星驰作为一个“死跑龙套”的“演员”,一直拿着的一本书就是《演员的自我修养》,那是他的梦想。每个编码的程序员其实心里或多或少都有一些代码情结,手里头捧着一本关于程序的书,就好象捧着自己的梦想似的。</p> +<p>抛开书上面的不说,说一说我所认为作为一个程序员应该具备哪些修养:</p> +<p>1、对程序、编码的热爱。如果不热爱编程,技术再牛逼也只能是一个代码工人。</p> +<p>2、谦虚好学的态度。</p> +<p>早就听说就有文人相轻的说法,做文章的瞧不起做文章的,其实很多程序员也一样,不知天高地厚,眼高手低,整天拿编程语言比来比去,在他们眼里别的程序员都是傻逼。</p> +<p>这些人就算是某个领域的“高手”,也绝对谈不上是一个合格的程序员。</p> +<p>3、团队协作能力。</p> +<p>自古有一个诸葛亮抵不上三个臭皮匠的说法,这话说的虽然有些绝对,但是也有一定的道理,如果一个程序员不能很好的和队友交流、合作,哪怕有三头六臂也很难成为一个出色的程序员。</p> +<p>4、安静平和的心态。</p> +<p>浮躁、急躁是技术人员最忌讳的心态,这当然不是指火烧到眉毛了还懒的动弹,而是说遇到问题能够冷静的分析并作出准确的判断。</p> +<p>这一点上有些人真让我望尘莫及,后天可以锻炼,但我觉得天生的因素占很多。</p> +<p>5、自信。</p> +<p>鼻孔朝天也不好,但是没有自信更要命,总是不相信自己能够开发出成功的软件,或者怨天尤人以语言不通、国内环境为挡箭牌为自己开脱,这样永远也写不出像样的程序。就牢骚这么多吧,说起来永远比做起来轻松,以上观点纯属瞎掰,如有雷同,那实在是巧合。</p>TED,这里都是能给你带来思考的视频https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/Mon, 30 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/<p>推荐一个视频网站,<a class="link" href="http://www.ted.com/" target="_blank" rel="noopener" +>TED</a>,因主要关注Technology, Entertainment, Design故得此名。我基本每周都要在上面看一段,里面的演讲精彩纷呈,就算是语言不通也能慢慢适应(很多经典视频有中文字幕)。</p> +<p>今天看的是这一段。这哥们儿的风琴弹的简直出神入化。</p> +<object width="446" height="326"> +<param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param> +<param name="allowFullScreen" value="true"></param> +<param name="wmode" value="transparent"></param> +<param name="bgColor" value="#ffffff"></param> +<param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/CameronCarpenter_2008P-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/CameronCarpenter-2008P.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=699&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=cameron_carpenter_improvs_on_the_organ;year=2008;theme=new_on_ted_com;theme=live_music;theme=the_creative_spark;theme=tales_of_invention;event=EG+2008;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"></param> +<embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/CameronCarpenter_2008P-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/CameronCarpenter-2008P.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=699&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=cameron_carpenter_improvs_on_the_organ;year=2008;theme=new_on_ted_com;theme=live_music;theme=the_creative_spark;theme=tales_of_invention;event=EG+2008;"></embed> +</object> +<p>PS:我的livespaces又不能访问了,不知道此篇能否发送成功。</p>冲动是魔鬼https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/Sun, 29 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/<p>本着没有困难制造困难也要上的精神,我以迅雷不及掩耳盗铃之势把epc的操作系统换成了ubuntunetbookremix9.10,因为好奇心的原因,或者是爱用最高版本的原因,我这次不但将可怜的小笔记本给格式化了,而且选择了最新出的文件系统&mdash;-Ext4!首先4G的那块SSD用来作为根分区“/”使用了Ext4,然后划出了256M的空间作为交换分区。</p> +<p>剩下那块16G的SSD也格式化成了Ext4,挂载点为“/home”,理论上来说这种分配应该是可以的了。</p> +<p>可是杯具就杯具在倒霉的Ext4上。</p> +<p>安装完毕,按照我的老毛病,立即上网更新系统,吭哧吭哧下载了半天,所有软件都更新为了最新版啦!结果第一次重启就让我大跌眼镜。</p> +<p>首先,由于某种原因,我直接在命令行输入了sudoshutdown-rnow来进行重启,还没有来及进入图形界面就告诉我说,“糟糕,/home无法挂载,可能文件系统损坏了,您需要进行手动检查”,好吧,去官方网站上一查,人家说这是个bug,需要先这样然后再那样blablablabla。我忍了,输入:fsck/dev/sdb1进行全面检查,磨烦了半天总算修复,等到进入了图形界面已经折腾了一头汗出来了。</p> +<p>然而大自然是残酷的,这个系统竟然让我每次重启都要修复文件系统,而且修复后奇慢无比,每次访问/home下的文件都会产生I/O错误,在控制台下满屏都是error的身影。</p> +<p>可怜的美好周末就这样被消耗掉了,本来准备收拾好笔记本就抱着去阳台写一写小程序啥的,看来在太阳下山之前是没戏了。</p>谈谈我对家庭影院的看法https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/Sat, 28 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/<p>不知道其他人为什么喜欢电影,或者不喜欢。</p> +<p>反正我是十分喜欢,也许你说,是啊,美好的东西谁TM不喜欢?</p> +<p>错!首先,不必像装逼的小资那样扭捏地大谈电影的文艺味道或者表达了一种什么样的思想,也不用像有关部门那样无耻地对电影挑三拣四反复阉割,我喜欢电影是因为电影可以让人经历不同的人生。</p> +<p>等一等,我扯的有点儿远了,但是我要说的事儿是建立在以上基础之上的。</p> +<p>我刚才差点就要像马丁路德金那样说:“我有一个梦想”,但是这句话让我的胃稍有不适,喝口水,冲一冲酒劲儿。</p> +<p>好吧,我曾经有个梦想,那就是&mdash;家庭影院!</p> +<p>你会轻蔑地一笑:“多大点儿事儿,我还以为抢鸡蛋呢,原来是家庭影院啊,这有啥啊,整个大电视,搞两个音箱,往房间里面一摆,不就是了嘛”。</p> +<p>唉,俺也曾经这样以为,而且照做了,但真不是家庭影院。</p> +<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;注意,以下内容纯属瞎掰:&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;</p> +<p>真正的家庭影院有这么几个要求:</p> +<p>首先,必须要有一个巨幅的屏幕,液晶电视就甭想了,充其量也就一百寸吧?远远不够,至少要有两百寸以上的屏幕(就这比起电影院里两层楼高的银幕还是差很远),所以要用投影。</p> +<p>其次呢,要有高清晰度的投影机,市面上现在卖那些白菜价的1024×768的液晶投影就别看了,专业的投影机对亮度和对比度以及分辨率都有很高的要求,10万元(人民币)以内都没有特别符合要求的。</p> +<p>然后是音响系统,市场上鼓吹的5.1或者7.1系统都是白扯,不是说喇叭多了凑个数就行了,功率、灵敏度、解码方案这些都是有严格要求的,目前来说,家用的音响系统就算是通过THX认证的也鲜有达到影院级标准的。</p> +<p>就算以上这些设备全部买到,也得考虑放在哪儿以及如何摆放的问题,客厅肯定不行,东西太多太乱,那就得单独提供房间了,至少也得30平米(因为要放沙发),房间里要做好隔音、吸音处理,因为你肯定不想在看的正投入的时候让邻居们过来砸门。</p> +<p>假设这些都准备齐了,还是要注意片源的问题,兄弟!几十万的东西拿回家不会就是放录像带吧?</p> +<p>上一代DVD肯定不行,据说以前有发烧友自己在家弄电影放映机来放胶片,不过现在好了,有了蓝光DVD(一片儿顶过去五片儿),一部电影几十G的容量,1920或以上的清晰度,基本够用了。</p> +<p>所以看来,哪怕是一个看电影的梦想,也不是那么容易实现的哈。</p>兄弟们还是喜欢骑摩托https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/Fri, 27 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/<p>上次回老家休假,和家里的哥儿几个聚了一把,见了面无非就是聊天,喝酒,打台球,只是都已成熟许多,使劲儿咧嘴笑的话,也能看见皱纹了。</p> +<p>这些曾经睡在一个炕上的兄弟,据上次见面已经差不多两年了,有坐车来的,有开车来的,几个兄弟还是骑摩托过来的。</p> +<p>我问了一下,还是无牌照,无头盔,钻胡同躲交警,和从前一样。</p> +<p>于是我又犯骑车瘾,借着酒劲儿风驰电掣了一把。</p> +<p>十年前刚拥有摩托车的时候,我曾天真地以为,摩托车是我的最爱,给个奔驰都不换。</p> +<p>因为骑摩托可以到处转悠,可以使劲把油门拧到底,体验呼呼的风把眼泪刮出来的感觉,可以带着墨镜飞速穿过柏油路上被大豆秸杆掀起的土雾,可以让坐在后座上的姑娘不由自主地搂着我的腰。</p> +<p>那个时候,周末基本上都是和哥儿几个骑着车四处乱窜,再窄乡间小路也敢往里冲,吹着口哨把车扎在路边跳到河里去洗澡,有时下着大雨,淋的像个落汤鸡。</p> +<p>路上当然是飙来飙去,偶尔也被大人们骂句:“不要命了!”</p> +<p>如今,都已是拖家带口了,社会的磨练多少给了一些沧桑的感觉,脸上的笑容也失去了往日的纯真而增添了几分苦涩,只是,当他们跳上摩托车,冲我招一招手,伴着隆隆的声音脚下喷出一股股蓝烟,我的心仿佛又回到了那个时节。</p>推荐一个在线听广播站点https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/Thu, 26 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/<p>有睡前听相声或评书的习惯,有个人在旁边罗哩罗嗦没完是个很好的催眠剂,可以很快入睡,保证了充足的睡眠。MoRadio是一个很简洁干净的在线广播站点,界面清新漂亮,电台丰富,甚至可以在线听小说。</p> +<p>有了它我基本舍弃了“龙卷风网络收音机”。网址:http://www.moradio.cn/</p>准备买几本书https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/Wed, 25 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/<p>刚才二舅给我打电话,聊了一会儿天。</p> +<p>问我现在是否还看书,我说看,电子版的,在手机上也看,看的眼睛都快毁了。</p> +<p>很久没买书了,记得跟飞行鱼借来的《代码大全》差点儿垫了桌子。</p> +<p>接了这个电话,两个人谈了一阵子书,我又想看纸质的真书了,刚好他又给我推荐了两本,随即去当当把书定下。</p> +<p>选书的时候哦发现一个问题,计算机相关的书最贵,买三本畅销书的价格还比不了买一本忽悠你怎么编程的书贵。</p> +<p>不过还是难以抗拒诱惑,各买了两本。</p> +<p>《做单》这本书最近十分火,本来看名字和书评都不太和我的胃口,但是二舅极力推荐,所以拿下。</p> +<p>《我们台湾这些年》是王三表在他博客里提到的,所以拿下。</p> +<p>《深入理解计算机系统》据说是人家美国大学里的教材,图个新鲜,所以拿下。</p> +<p>《程序员的自我修养》就冲这个名字哪怕里面全是白纸也得拿下。</p>平行宇宙https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/Tue, 24 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/<p>肯定有过这样的经历,有一样东西(通常是个小东西,电冰箱什么的不算)翻箱倒柜地找不到,过一段时间你突然发现这个东西出现在某个地方,而那个地方当时已被你掘地三尺了。</p> +<p>有人说这是眼睛欺骗了大脑,或者是大脑欺骗了眼睛,但我更相信另一个比较科幻的说法&mdash;-平行宇宙。</p> +<p>按照平行宇宙的说法,我们生活的宇宙不是唯一的宇宙,另外还有无数个和咱们的宇宙差不多的宇宙,无数个宇宙里自然就有无数个你我,每一个重大事件的发生都会导致当前的宇宙分裂出与之平行的另一个宇宙来,我没有瞎掰,科学家也是这么说的,不过我感觉他们是有点儿瞎掰。</p> +<p>刚才我翻箱倒柜也找不到我的吉他拨片了,我记得很清楚就在一个放有调音笛的小盒子里,打开一看没有,出去干点儿别的,再回来,发现果然在小盒子里。</p> +<p>所以我宁愿相信这个拨片刚才有一阵子进入了另一个宇宙。</p>塞班手机使用MailForExcange同步gmail实现pushmailhttps://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/Mon, 23 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/<p>从《越狱》火起来那年开始,pushmail这个概念随着黑莓手机的流行而泛滥成灾(什么?不知道什么是pushmail?请Google之,或者看这里。现在知道了吧,pushmail的好处就是及时。),就连中国移动也推出了自己的pushmail,当然了他们要收取“少量”的费用。</p> +<p>那么有没有免费的泥?</p> +<p>答案是肯定的,条件有三:</p> +<p>1、拥有一个gmail帐号。</p> +<p>2、拥有一部Nokia智能手机(最好是E系列)。</p> +<p>3、喜欢折腾。由于pushmail客户端不再向以前的email客户端那样需要过一段时间就去服务器查询是否有新邮件,这样既省钱又省流量,所以折腾一下还是值得的。</p> +<p>好吧,准备好手机,就到这里来下载MailForExcange吧。</p> +<p>http://www.google.com/mobile/products/sync.html#p=nokia_smart</p> +<p>下载完成后这里有使用说明</p> +<p>http://www.google.com/support/mobile/bin/answer.py?hl=en&amp;answer=147951</p> +<p>按照文档的说明,设置完毕之后就可以使用了。</p> +<p>补充两点:</p> +<p>1、不要选择同步“任务”,目前还不支持,如果选择了就会什么也同步不了。</p> +<p>2、不要选择同步“联系人”,否则会把你gmail里的联系人全部同步到手机上,如果不小心还可能会清空手机的电话本(慎用!)。</p> +<p>另:我有使用日程表的习惯,这也是偏执狂的一个表现,是GoogleCalendar重度使用者、Gmail的中度使用者,同时极度讨厌使用OutLook。</p> +<p>此MailForExcange还可以同步日程安排到手机,真是居家旅行杀人灭口之必备好软。</p>假如明天就是世界末日https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/Sun, 22 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/<p>1、今天排队看了《2012》,包括排队买票,排队进场,排队去厕所放水。</p> +<p>2、好的电影看完可以引起一些思考。</p> +<p>3、想起一句诗:假如明天就是世界末日,我今天仍然种我的苹果树。</p> +<p>4、就算是商业电影,里面也有一些政治隐喻,仁者见仁,淫者见淫。</p> +<p>5、人生短暂,活着真好,我决定请朋友们吃饭,今晚。</p> +<p>6、有可能的话,以后看电影尽量去影院看。</p>失望https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/Fri, 20 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/<p>昨天夜里,Google演示了他们推出的操作系统ChromeOS,据说是基于Linux的。</p> +<p>在此之前已有风生放出,比较适合上网本,我期待着能够用在我的epc(太弱了)上。</p> +<p>结果是,Google根本不允许在他的操作系统上安装任何本地软件,甚至不能自己安装在笔记本上,所有的数据均保存在Google的服务器上,意味着一旦失去网络就是废塑料一坨。</p> +<p>想一想咱们的网络环境,我还是洗洗睡吧。</p>床头的电磁波https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/Thu, 19 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/<p>有相当长的时间,我的手机都是24小时开机的。</p> +<p>不过我有一个坏习惯,把手机放在枕边当闹钟,半夜醒来也好看时间。后来关于手机电磁波辐射的说法越来越多,导致我产生了一定的心理阴影,总感觉电磁波正在滋滋地穿过我的脑袋。</p> +<p>后来就到睡觉时就把闹钟关掉了,然后早晨再起来开机把闹铃叫醒。</p> +<p>不过现在用的手机支持关机闹铃,即使关机状态也可以很负责任地把我叫醒。</p> +<p>剩余的问题是,夜里醒来不太容易看时间,开手机太费劲,爬起来到客厅看时间又太远,有人出个馊主意说:起来“演奏”一会儿乐器,邻居们就会大声告诉我现在是什么时间了。</p> +<p>不过我觉得这个方法不太可取,万一他们的手机也关机了咋办。</p> +<p>想来想去,我还是觉得应该在床头放一个真正的闹钟,可以很方便看时间的那种,最好能发出幽幽地蓝光(不是绿光)。</p> +<p>刚才我发现了这个,感觉挺合适的,就是目前还买不到。</p> +<p>啧啧,可惜啊。</p>祝我生日快乐!https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/Wed, 18 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/<p>一大早就收到家人发来的祝福短信,原来今天是我的生日。</p> +<p>逐个回复短信之后,我慢慢回想,掏出计算器算了算,哦是的,原来我已经二十八了。</p> +<p>他们说:“生日快乐!”,没错,快乐最重要,我想,和十年前的想法一样,到了今天我还是认为快乐最重要。</p> +<p>潜在的意思就是玩儿最重要,只不过十年前我玩儿起来是骑着摩托车约着一群怀疑人生的青少年去疯狂飚车,或者是跳到半腰深的河里去捉鱼,或者是带着漂亮的女生一起谈论理想(现在已是我的老婆)等等。</p> +<p>十年后的今天玩的仅是一些虚无缥缈的东西,比如曾经以为永远也学不会的编程现在用来吃饭,生活就是这样,玩玩电脑偶尔也被电脑玩玩。</p> +<p>仔细地想一想,岁月还真是不饶人哩,小时候的玩伴大都不再联系,老爸老妈的鬓角也渐渐染上了白霜,时间就这样一年年过去,不断地得到也不断地失去,唯一能保持不变的以许就是一颗追求快乐的心吧。</p> +<p>今天是我的生日,祝我生日快乐,也愿我的家人幸福快乐。</p>我觉得twitterhttps://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/Tue, 17 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/<p>问我为啥用twitter,因为我觉得上twitter比较有技术含量(嘿嘿,想起黎叔了)。</p> +<p>开个玩笑而已,其实是觉得twitter上的人尤其是中文twitter用户都比较有爱心和有责任心。</p> +<p>虽然也有愤怒激进的,但大部分都是能够较为冷静地看待问题的人。</p> +<p>用句流行的话来说,就是感觉twitter上的人都比较有爱。</p> +<p>再一点就是它“致命”的优点了,也是被反复提及的信息及时性,这实在是很让人暗爽的特点,每天早晨打开手机第一件事就是更新twitter,不用发愁会错过什么信息,而且都是第一手资料。</p> +<p>今天再次帮助一位不知道twitter是何物的朋友开通了twitter,本着送佛送到西的精神,一股脑儿帮他flow了几十个有意义的中文twitter,然后又帮装上手机客户端,由于众所周知的原因,我还得把代理地址给他设置好。</p> +<p>弄完之后,感觉自己像是一个传教士。</p>每日笑话https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/Mon, 16 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/<p>记得老婆怀孕的时候,为了保持其心情愉悦,我每天都要给她发送一条短信,均是时下最流行的笑话段子。</p> +<p>这些段子基本上来自于网上,有些比较长的我还得进行一定的删减,由于平时储备的段子较多,刚开始几天还源源不断,后来因为我的审查比较严格,比较俗气的段子不发,太露骨的荤段子不发,不经典不好笑的不发,导致连压箱底的段子都发给她了,有时候我甚至还得四处搜罗。</p> +<p>每天一条笑话,一直持续到孩子生下来,现在孩子白白胖胖非常可爱,我的笑话短信有很大的功劳。</p> +<p>再后来,由于工作实在是繁忙又加上自己存储的段子实在是不够用了,我才逐步取消“今日笑话”这项“业务”。</p> +<p>前两天老婆又跟我叫屈,说我太偏心了,孩子一生下来就收不到新段子了,向我申请重新开通“每日笑话”的业务。</p> +<p>很长时间没有发笑话,我的段子又储备的差不多了,经过深思熟虑之后,我决定今日起重新开通该业务。</p> +<p>另附今日笑话:儿子学习不好,被妈妈痛骂。儿子用哀怨的眼神看着爸爸说:“你为什么要娶她?”爸爸也用哀怨的眼神看着儿子说:“还不是因为你!”</p>到处蹭饭的周末https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/Sun, 15 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/<img src="https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/20091115-776584.JPG" alt="Featured image of post 到处蹭饭的周末" /><p>此周末加班0.75天,在朋友家玩了1.25天。吃大餐若干,其中有朋友亲自下厨精心烹饪的海鲜。狂唱卡拉OK从民歌到通俗再到摇滚,直至嗓子嘶哑。三五个人又一起打了台球,期间发现我的球技属于遇强则强遇弱则更弱。</p> +<p>晚饭又在另一个朋友家中解决,亦丰盛无比,这两天真是太对得住我的胃了。</p>https://sbabybird.github.io/p/%E5%94%89/Fri, 13 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%94%89/<p>今天在回家的路上看见有人在twitter欢呼,因为这两天有人要来,所以Youtube、blogspot、picasa等网站都解封了。等到了家,立即打开电脑,把那些被封的网站挨个试了一遍,Mad,还和原来一样。看来,twitter确实是个制造谣言的好地方。</p>关于SSD硬盘https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/Thu, 12 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/<p>昨天某同事出差,走到半路发现笔记本硬盘坏了,十分痛苦地发短信问我火车上有没有IBM的客服,我说,天将降大任与斯人也,必先苦其心志劳其筋骨,坏其硬盘。</p> +<p>此同事吐血半升后就杳无音讯了。</p> +<p>此事引发大家热烈地讨论起关于硬盘的话题(我们太残忍了),最后大家一致认为经常背着出差的笔记本其硬盘特别容易出毛病,颠簸导致。</p> +<p>有没有不怕振动的硬盘呢,答案是肯定的,那就是SSD,中文称“固态硬盘”,因没有磁盘盘片和磁头等机械装置,所以不怕振动,具体介绍如下(来自维基百科):</p> +<p>固态硬盘(SolidStateDisk、SolidStateDrive,簡稱SSD)是一种基于永久性存储器,例如闪存,或者非永久性存储器,例如同步动态随机存取存储器(SDRAM)的计算机外部存储设备。</p> +<p>固态硬盘用来在便携式计算机中代替常规硬盘。</p> +<p>虽然在固态硬盘中已经没有可以旋转的盘状机构,但是依照人们的命名习惯,这类存储器仍然被称为“硬盘”。去Google搜索一下“SSD”或者“固态硬盘”返回的文章里充满了赞美之词,什么随机读取速度别传统硬盘快啊,没有噪音啦,没有散热问题啦等等。</p> +<p>然后一致指出的缺点就是价格太贵。难道就没有别的缺点了?NO!我的epc用的就是SSD,抛开至今仍有争议的SSD寿命问题不说,我在使用中发现了一个很大的问题就是&mdash;-“磁盘碎片”,由于现在的文件系统(NTFS、FAT32)等都是针对以前的硬盘设计的,目前还没有一个针对SSD优化的文件系统(听说快出了),所以随着SSD里存储的文件越来越多,那么访问这个SSD上的文件将会越来越慢,尤其是写入,有时候会慢的无法忍受,我认为这个问题是目前SSD面临的最严重的问题,至于容量价格之类肯定不用担心。</p> +<p>今天的话题好像扯的有点儿远,不知道那位硬盘坏了的同事现在怎么样了。</p>你说你,要蹭网,用心良苦却成空https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/Wed, 11 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/<p>最近老多人都讨论破解无线网络来蹭网的问题,提到破解都挺鸡冻的。</p> +<p>其实wi-fi的破解早就出来了,不过遗憾的是破解并不彻底,只是破解了WEP加密而已,现在很多人的无线网络被蹭网,我的理解是,一部分人是自愿的(本着分享的精神或者另有企图),另一部分就是因为懒。</p> +<p>现在如果一个无线路由使用WEB加密的话,破解已经很简单,甚至傻瓜化了,国外已经有人做成live的Linux系统(因为破解程序是Linux版的)。</p> +<p>如何破解就不说了,谈谈怎样不被别人蹭网(我个人希望我的无线路由是不加密的,但是有些人蹭网还上BT就太过分了)。</p> +<p>1、进入无线路由器的设置页面(地址一般是http://192.168.1.1或者http://192.168.0.1),找到无线设置那一页。</p> +<p>2、设置加密方式为WPA-PSK或者WPA2-PSK,别选WEP了,上面已经写的很清楚了。把密码设置的复杂一些。</p> +<p>做到上一步已经基本安全,要想再安全一些还可以这样:</p> +<p>3、找到高级一些的无线设置选项,把SSID广播关掉,这样别人根本就扫描不到你的无线路由了,不过你所付出的代价就是自己上网的时候要手动输入接入点的SSID,自己记住即可。</p> +<p>要是还不放心的话还可以这样:</p> +<p>4、找到更高级的mac绑定设置,有些路由器不支持,也就是说仅允许指定的机器可以上网。</p> +<p>ps:路由器本身的访问密码也最好设置一下。</p> +<p>再ps:蹭别人的网也要小心,现在抓包的工具都很先进很傻瓜化,蹭别人的无线路由也就意味着隐私很难保障,随便吧。</p>兄弟https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/Tue, 10 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/<p>今天心情比较郁闷,幸好有兄弟陪我喝喝小酒,打打台球。心情好多了。</p>期待https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/Mon, 09 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/<p>上次一狠心,把epc上的系统更换为xp了,现在差不多又到了换系统的时候了,因为xp的毛病就是&mdash;越来越慢。</p> +<p>本来epc上带的那个基于debian定制的原装系统速度贼快,但是功能太弱了,三岁小孩用还行。</p> +<p>后来有好心人给整出来个eee-ubuntu,赶紧装上,发现他继承了ubuntu体态臃肿的优良传统,可怜的小e仅带了4G的系统盘,根本不够怎么折腾的,而且在安装最新版firefox时被我编译坏了glibc库,于是换成了xp。</p> +<p>今天发现以前的那个eee-ubuntu已经改名了,现在叫做EasyPaesy,都1.5了,不过仍然是基于ubuntu的定制,据说已经优化了不少,看得我都有些动心了。</p> +<p>官方网站上的介绍更是让我心动:下一个版本,也就是2.0的时候将直接基于debian定制,不在基于臃肿的ubuntu,而且将原生的带有epc的全部驱动程序。</p> +<p>哦夜!太期待了。</p>练习吉他的心得https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/Sun, 08 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/<p>最近几个月来,感觉思维有些迟钝,记忆力有所下降,用脑过度导致。</p> +<p>考虑到每天需要休息一下脑子和眼睛,为了远离屏幕,我决定每天晚上活动活动手指(虽然敲键盘也是活动手指,但那是机械性的),弹弹吉他,正好重拾练习吉他的计划。</p> +<p>几天之后,感觉“颇有长进”,遂记录心得如下:</p> +<p>1、不要怕打扰到邻居。</p> +<p>以前我弹琴的时候,心里总是有个阴影,总觉得邻居正在把耳朵贴在墙上偷听我弹琴,这样一来我就不好意思弹的太大声,不敢弹的太难听,可是又不会弹好听,每次都几乎是看着谱子在心中默念,这样的话就像哑巴英语似的永远也甭想弹好。</p> +<p>后来我干脆想,反正邻居养了狗,叫声也挺大,吵了我这么久我都不放在心上,我弹吉它吵他们也算是扯平了,再者说了,狗叫要难听多了。</p> +<p>2、不要在洗脚的时候练琴。</p> +<p>这是一个很不好的习惯,源自我对时间管理的偏执。</p> +<p>有段时间我觉得每天洗脚的这段时间被白白浪费了,我想,要是每次洗脚都认真看一篇文章的话我很快都能成为文学家了,可是我对文学没有兴趣,于是我选择了弹吉他。</p> +<p>而且养成洗脚要弹吉他的毛病,就连老家也专门放了一把琴,洗脚专用。</p> +<p>结果可想而知,我弹吉他的水平越来越臭。</p> +<p>3、认真练习音阶和节奏。</p> +<p>总算说到正经的了,音阶和节奏一直被我忽视,从来都是由着性子来,自负胸中有谱,想到哪里弹到哪里,不管琴弦按的对不对速度是否正确。</p> +<p>结果到现在我仍然不能完整的弹奏任何一支曲子。</p> +<p>现在每次我都认真练习十分钟的音阶并且开着电子琴用于矫正节奏,几天下来,感觉手指灵活了许多(当然是针对以前说的)。</p> +<p>4、弹自己喜欢的曲子并投入进去。</p> +<p>这个没什么可说的,只有自己喜欢的曲子才有可能投入进去,也只有投入进去才能觉得弹琴是很幸福的事情。</p> +<p>当然现在距离人琴合一的境界还差一些,也许再过个三五年,或者三五十年可以达到。</p>删除文件的定律https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/Fri, 06 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/<p>定律:上午删除的下午就会用到,而如果你不删除它们,永远也用不到。</p> +<p>前两天听到有人抱怨现在硬盘越来越大了,动辄好几百G甚至上T,这对于AV爱好者来说是个福音,但对于一个偏执狂来说简直是个灾难。</p> +<p>因为偏执狂要控制电脑里的一切,磁盘该如何分区,文件夹该如何命名,要建多深层次的文件夹结构都有详细的规划,比如音乐可按格式分为无损的和压缩的,按地域分可分为国内、欧美、日韩的,至于按流派分那就更头疼了,还有纯音乐等等,所以我有个偏执狂朋友甚至花费了将近一年的时间才慢慢把自己的那个叫做Music的文件夹整理完毕,真是一项系统工程。</p> +<p>我对磁盘文件的管理也有些偏执,首先一点是不能看见回收站里有东西(听说还有人听清空回收站的声音上瘾),所以删除任何文件的时候都是按住shift键直接删除,这些倒霉的文件连进入回收站里歇会儿的功夫都没有直接就被踢飞了。</p> +<p>我想说的是,这是一个很不好的习惯。</p> +<p>每当我清理磁盘上“没用的”文件之后,随着干净文件夹带来的快感而来的就是马上就需要用到刚才被删文件的痛苦。</p> +<p>一般来说,上午删除的下午就会用到,而如果你不删除它们,感觉永远也用不到,每天都在哪儿呆着看着真碍眼!</p> +<p>刚才就又经历了一次活生生的例子,昨天晚上在家呆着没事儿,就把我家用机上的东西都打扫了一下,卸载了很多软件,最大的失败就是把开发环境卸掉了,把相应的安装文件也删除了。</p> +<p>结果…………刚才被电话吵醒了,前方的同事有问题搞不定了,让我着实体验了一把手边没有开发环境(偏偏赶上不能使用远程桌面)来遥控搞定问题的艰辛。</p> +<p>好了,牢骚发完,睡觉!</p>四喜丸子https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/Thu, 05 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/<p>今年暑假的时候,老爸过来视察我的工作,会谈始终在亲切友好的气氛下进行,双方就共同关注的话题交换了意见。</p> +<p>期间谈论到饮食问题时,老爸对我在北京是否按时吃饭深切关注,并表示:“一定要吃饱、吃好!身体好才能工作好,身体是革命的本钱嘛!”以上内容纯属虚构,真实场景是,老爸问我吃饭是否合乎口味,我说饭菜都还行,就是吃不到味道能赶上老家那边小镇上“福星酒家”做的四喜丸子,深表遗憾,老爸深表同情。</p> +<p>以上对话造成的直接后果是,我这次回老家休假连续吃了七天的“福星酒家”的四喜丸子(每顿都得挑着大拇哥说好吃),吃的我现在看见四喜丸子就饱了。</p>体重不足https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/Wed, 04 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/<p>体检结果下来了,我唯一的毛病是体重不足,这是我的老毛病了,多年来身体只有拉长,从来没有横向发展过。医生给的建议是:多进行身体锻炼。</p> +<p>我记得去年寒冬的时候我咬牙坚持跑了两个月的步,结果体重不升反降,后来人家都说跑步是减肥的良药,跑步被紧急叫停!</p> +<p>好吧,那还有什么锻炼身体的好项目?</p> +<p>篮球已半年多没打过了,也不好组织人打,台球太休闲,摔跤太枯燥,做俯卧撑又太危险了。</p> +<p>我觉得以后要是有条件的话,可以考虑改变一下工作模式,上午下地干活儿(耕地﹑施肥等),下午编程写文档,日出而作,日落而息,男耕女织,夜不闭户,多美好啊,肯定能胖!</p>一日不练手生https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/Tue, 03 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/<p>最近总写一些偏向界面应用的代码,对于文件操作,字符串操作这些东西都快忘了,以至于下午想写个处理文本的程序差点儿无从下手,虽说python什么的好是好,咱也不能丢了C啊。</p>https://sbabybird.github.io/p/%E6%9A%96/Mon, 02 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9A%96/<p>突然下了一场大雪,天气一下冷了。</p> +<p>换上最厚的被子,缩在被窝里看《生活大爆炸》。</p> +<p>我的eeepc性能够弱的,一边看视频,一边打几个字都卡壳。</p>开始使用windows7https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/Sun, 01 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/<p>单位机器上的xp已经装了2年了,昨天终于无法忍受越来越慢的速度(关键是office软件坏了,无法修复),决定重装系统,进来win7挺火,装一个试试看,RC版的,可以显示中文但界面为英文,无所谓了,先试用几天再说。希望能取代xp。</p>雨天https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/Fri, 30 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/<p>下了点儿小雨,天气突然转冷,走在街上都有些冻耳朵了。</p> +<p>想起孙燕姿的一首歌,忘记什么名字了,&quot;雨天,想起你的生日卡片,望着你的照片…&quot;,叫什么名字呢,旋律挺熟悉…</p>自言自语和语音信箱https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/Thu, 29 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/<p>经常在美剧和好莱坞大片里看到这样的情景,一个人对着自己的车或者某样心爱的东西感情丰富地谈话,比如&quot;干的不错!伙计&quot;,&quot;全靠你了!&quot;,&quot;今天天气挺好的,你说我该不该去看她?&quot;等等,就好像跟某人聊天一样。</p> +<p>不知道他们生活中是否也是这样,感觉怪怪的。老外有人做过统计,相当比例的人喜欢自言自语,并且认为这很正常。我想这是跟他们使用语音信箱有关。</p> +<p>据说使用语音信箱是他们的老习惯了,起源于上个世纪,打电话经常没人接,打电话者听到嘟的一声然后乖乖留言,并且对着话筒&quot;得不得得不得&quot;聊上半天。</p> +<p>也许时间长了就养成自言自语的习惯了吧。</p> +<p>某段时间我也对语音留言感兴趣,可惜国内没有该服务,后来有了,可是费用贵得离谱。</p> +<p>现在我使用智能手机了,装了个软件就一切搞定,在无人接听的时候软件也能帮我接电话了。</p> +<p>可惜咱们都没这个习惯,一旦知道对方没在听电话便立即失去说话的兴趣,匆匆挂断。</p> +<p>常常有人听到我的提示音之后以为我在调戏他而冲我发牢骚。</p> +<p>所以该软件装了这么久除了我的测试录音之外,并没有接到过真正有意义的留言。</p> +<p>今天我终于收到一段有意义的留言:&quot;靠!真受不了你!&quot;</p>开始练习https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/Wed, 28 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/<p>我是一个没有恒心的人,需要恒心的事情我没有坚持下来的。</p> +<p>长跑﹑写字﹑外语﹑弹琴,等等这些都没有坚持下来,理由多种多样,太累了,没时间,没天分。</p> +<p>这些事情我常常去想,我要是能够从开始坚持到现在,那该多好?</p> +<p>前两天看了些关于时间管理方面的书,方法千变万化,工具五花八门,但核心思想只有一个&mdash;&mdash;有梦想,并且坚持下来。</p> +<p>没有什么能够一蹴而就的,我要慢慢练习。</p>回老家休了个假https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/Tue, 27 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/<p>回老家休了个假前两天回家休息了几天,和家人团聚的感觉就是好。</p> +<p>吃饭吃得香,顿顿都吃到撑。</p> +<p>睡觉也睡的十分踏实,一点儿也不失眠。</p> +<p>按照惯例和朋友们喝喝小酒,打打台球。</p> +<p>老家民风纯朴,空气清新,我简直是不想回来。</p>终于收到google wave的激活邀请!https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/Wed, 14 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/<p>终于收到googlewave的激活邀请!</p> +<p>在我苦苦等待几个月之后,就在今天下午,我终于收到了googlewave的激活邀请!赶紧点击进入,由于之前已经看过了很多关于它的报道与评测,所以对界面也没有什么新鲜感了,总体感觉还不错,由于周围的朋友只有我收到了邀请,联系人列表里还空空如也,所以目前只能随便耍耍,不能充分发挥wave的特长&mdash;&ndash;在线协作交流。</p> +<p>激活账户后,手里就有了8个邀请了,好珍贵啊,后来发现只是&quot;提名&quot;而非&quot;邀请&quot;,迅速发给好友&quot;飞行鱼&quot;一只,又给在twitter上的朋友们留了两只。</p> +<p>google这种靠邀请来刺激人好奇心的招数真是运用到了极致。</p>眼保健操https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/Tue, 13 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/<p>我引以为傲的视力下降了,由于长期盯住屏幕的缘故,导致了一百多度的近视,最近狂做眼保健操,发誓要看清我对面墙的贴纸上的字。不过不怎么有效,刚才我忍不住凑上去看了看,发现贴纸没了。</p>喝小酒https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/Wed, 30 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/<p>为排解国庆假日加班的郁闷,今晚特与同事一起喝喝小酒。喝完后他们打牌,我作为牌盲,一旁观战。</p>难得糊涂https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/Tue, 29 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/<p>难得糊涂啊难得糊涂,难就难在不知道该在什么时候糊涂,什么时候装糊涂。</p>排队https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/Mon, 28 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/<p>我这辈子最痛恨两件事儿,一个是排队,另一个还是排队。</p> +<p>可悲的是,排队是必须要面对的。取钱要排队,交费要排队,买票要排队,上车要排队,点儿背的时候上厕所也要排队。</p> +<p>排队的时候,心情是焦躁不安的,是望眼欲穿的,是忍不住想骂娘又不知该骂谁的。</p> +<p>这个时候唯一可以获得安慰的是你身后的队伍越来越长,而你前面的队伍越来越短。</p> +<p>可是,当队伍就像便秘的大肠那样久久不能蠕动时,当你的伸长了脖子恨不得直接伸到窗口撞墙时,你还是不能怎样,大家都一样。</p> +<p>以上是去银行排队有感,纯属发泄,如有雷同,那简直是巧合。</p>美好的一天https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/Sun, 27 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/<p>尽管我经常比闹钟醒的还早,可是起床仍然依赖闹铃。</p> +<p>今天是星期天,由于国庆假期的原因,今天也要照常上班,可是我的手机有点儿小聪明,周末不闹。这下可好了,我终于睡了个自然醒,我在半梦半醒之中想明白今天要上班而且闹铃不会叫我时,我惊的一下子从床上跳了起来。</p> +<p>还是晚起了一个小时。洗脸刷牙堵车堵车堵车还堵车所以,迟到了,可是郁闷的事情还在后头。</p> +<p>我平时几乎不迟到,偏偏今天等我到公司的时候老总已经找了我一圈了,于是赶紧去报到,可是电梯坏了,于是爬楼梯,等我爬上十层楼梯,得到一个更加郁闷的消息:“假期要加班&hellip;&hellip;&quot;(此处窗外电闪雷鸣并伴有大风)。</p> +<p>如果不是爬楼梯爬的喘不上气,我肯定要仰天长啸十分钟。</p> +<p>可怜我辛苦买到的往返火车票啊,现在要退掉!</p> +<p>可怜我定好的假日计划啊,现在要取消!淡定,要淡定</p>秋天打雷吗https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/Sat, 26 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/<p>到网上搜搜“秋天打雷吗”,发现还真有人问这个问题,我来告诉你吧,答案是肯定的!</p> +<p>昨晚打了大半夜的雷,对于本来就有“周末睡眠障碍”的我来说真是雪上加霜,一道道闪电把窗帘的影子投在床上,好恐怖啊。之前我也以为秋天不会打雷,直到被巨大的声音惊醒的时候我还以为有敏感词搞敏感词被敏感词了呢,靠,最近因为敏感词要举办敏感词弄得的大家都紧张兮兮的。好吧,秋天会打雷,sowhat?</p>电脑知识https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/Fri, 25 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/<p>电脑知识今天在greader上看了一篇文章,说是掌握了这些电脑知识就可以怎样怎样,我一看,写的都是些windows系统的操作技巧,有些见过,有些极为偏门。</p> +<p>恩,有点儿意思,我就曾经错误的以为这些windows技巧就是电脑知识。</p> +<p>大学的时候,当老师喷着唾沫讲解进程调度时,我正在研究如何修改win98的启动画面,当别人抱着书学习数据结构的时候,我却把如何修改win98资源管理器的脚本使其可预览mp3文件的技巧视为珍宝。</p> +<p>可是这有个屁用,现谁还用这些玩意儿?</p> +<p>干活儿时搞不定问题了还得去翻书,那里面才称得上是真正的知识吧(也得看是什么书)。</p> +<p>嘿嘿,说规说,我还是迅速地把这篇&quot;知识&quot;文章收藏了。</p>什么是_什么是_https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/Thu, 24 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/<p>关于&quot;什么是&quot;在google.com里搜索任何带有&quot;什么是&quot;的关键字比如&quot;什么是手机&quot;,连接会立刻被&quot;重置&quot;,并在短时间内无法浏览任何网站,但是在google.cn不会这样,在百度也可以。但是后两个……我又没搜索什么不和谐的东西,干嘛扼杀俺的求知欲捏!</p>快捷键https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/Wed, 23 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/<p>快捷键说实话我真的很担心未来计算机会像某些专家鼓吹的那样,完全没有键盘,而是通过语音或者眼神和人进行交流。我觉得可以没有鼠标,但是不能没有键盘。</p> +<p>记得大学的时候,有一次我的显示器坏了,我只好凭记忆的感觉通过对键盘的操作来听歌﹑&quot;看&quot;电影等,大概过了一个星期,发现即使没有显示器也可以做很多事情,这件事儿让我对键盘产生了很严重的偏爱。</p> +<p>我喜欢去记各个程序的快捷键,不是故意去记的,而是下意识的。</p> +<p>无论是简单的快速搜索还是宏替换,再或者是复杂的组合按键我都烂熟于胸。</p> +<p>还有比较偏门的,比如xp关机时按shift会出现休眠按钮等。</p> +<p>所已我一想到快捷键脑子里就会飞过一片一片的写着按键的字符串,都是对各个软件的快捷操作,擦都擦不掉。能用键盘操作的还是用键盘吧,否则总会有一只手徘徊在键盘和鼠标之间(上网斗地主除外),长此以往手腕真会受不了。</p> +<p>所以,我特别喜欢的软件都是提供了强大的快捷键功能的,totalcommander方便的操作使人上瘾,gmail和greader里的快捷键让人中毒,vim咒语般的命令叫人忘记鼠标的存在。</p> +<p>就说这么多吧,快到家了。</p>体检https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/Tue, 22 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/<p>体检今天是每年一度的例行体检,一切正常。</p> +<p>各个零件都正常,医生们也都正常,还像往常那样懈怠。</p> +<p>耳鼻喉科的大夫是我见到的唯一一位比我还偏执的人,先是抱怨办公室被人换了,体检系统无法登录,然后又觉得鼠标放的不是地方,掘起屁股找了半天鼠标,然后发现台灯的线和条码扫描器的线缠绕在一起,全部解开后才满意地叫我坐过去,最后发现我的椅子摆的不正,让我像小学生上课那样坐好才行。</p> +<p>花了老半天收拾好之后,就草草看了两眼:&quot;下一个!&quot;。</p> +<p>ps:我的视力果然下跌了。</p>听歌的心情https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/Mon, 21 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/<p>听歌的心情偶尔听了听朋友的mp3,发现是经典老歌大放送,最喜欢听老歌了,马上将其全部考走(没用剪切,不像某些考毛片的学生)。</p> +<p>有些歌相当长的时间没听过了,有些上次听的时候还在用盒带。</p> +<p>朋友向我抱怨说现在的随身听容量太大,选歌忒麻烦,跳来跳去跳不到心坎上。</p> +<p>我也有此感受,我平时干活儿时一般都开着foobar,列表里四五千首歌,几乎没有一首能耐着性子听完,于是我设置了全局热键,一边编码一边换歌,时间长了练就了只要听三秒钟前奏马上就听出是什么歌的本领,要是有此类比赛,我肯定能获奖。</p> +<p>为什么就没有耐心听完一首呢,为什么呢?</p> +<p>技术的前进加上人的浮躁!以前听磁带的时候,想跳下一曲得按快进,马达呼呼跑半天,既费时间又费电(那时买不起南孚),还不能保证刚好到下一曲(后来出的高级货具备自动检测的能力就另当别论了)。</p> +<p>那个时候我练出来的就是另一个本领了,用铅笔转磁带!</p> +<p>既省电又准确,所以我就经常一边听歌一边拿笔转另一盒磁带。</p> +<p>现在好了,想听什么直接在线就听了,遇见喜欢的直接就下载了,特别喜欢的就下载无损压缩的,再也不去逛碟店了。</p> +<p>然后在成千上万的曲目里跳来跳去。</p> +<p>可是,我听歌的心情那里去了?</p>还是说说吧https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/Sun, 20 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/<p>尽管朋友们露出鄙夷的目光,《建国大业》这部片子,我今天还是去看了。</p> +<p>片子净长133分钟(据不可靠消息说本来长度可达4个小时),加上开头有20分钟左右的广告,让我坐了两个半小时吧。虽然开场之前大家都去放水了但影片结束后电影院的厕所还是堵了个水泄不通。</p> +<p>感受呢,还行。演员阵容不是一般的强大,演员的演技实力也不是一般的强大,所以单纯从电影的角度来说,感觉应该是一部很不错的电影,所有人都很卖力气。</p> +<p>但是感觉时间上还是有点儿赶,故事讲的很跳跃速度很快,明星们冒个泡亮一下,连个沙发板凳都还没抢,就进入下一个环节了。</p> +<p>看的时候总是想跟小时候看的那个《开国大典》来比对,《开国大典》看了n遍了,很多情节还是记忆犹新,比如吃面没带钱,解放军砍总统府的棋,登城楼时往上爬台阶的那个长镜头。</p> +<p>这个《建国大业》里面还是有些笑点的,安排的还算轻松,比如冯巩老抢不上发言,女代表让郭德纲改底片,许三多报告发现前面的地主大院不容易攻打请求炮火支援,结果葛优一看,发现这是到了德胜门(好像是德胜门,管它哩)。</p> +<p>最后,这部片子可看,其他人说了屁也不算,何必让别人的垃圾评论影响自己的观点哩。</p> +<p>ps:电影而已,外籍演员的片子你还少看了?</p>手机没电了https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/Sat, 19 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/<p>手机没电了本打算在路上写今天的博客,结果手机一个劲儿地提醒电量低。</p> +<p>我看看能不能发出此篇。</p> +<p>我的手机配了两块电池,一块是原装的,另一块也是原装的。</p> +<p>在轻度使用的情况下每块电池可以坚持一周左右,最近使用过度,连三天都很勉强。</p> +<p>本来我家里有座充,公司有旅行充,但是现在在路上,没电了。</p>吹吹灰https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/Fri, 18 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/<p>吹吹灰我的博客三个多月没更新了,我估计上面已经开始结蜘蛛网了吧。</p> +<p>说是没时间更新显得太娇情了,不过确实是没时间。</p> +<p>这段时间以来一直在忙同一个项目,全部的身心都投入到上面去了,根本没有精力更新这里,连QQ﹑MSN等都一概不上了。</p> +<p>好在现在终于进入了一个新的阶段,我觉得也需要每天换换脑子,思考点儿别的东西,或许对工作质量有一屁股的促进作用。于是我又想到了写博客(为什么要说又呢),那就到这里吹吹灰尘吧,像往常一样,同时发送到livespace和blogspot。</p> +<p>说点儿啥呢?对了,我开始用twitter了,人的思想真是奇怪,在twitter没有被封掉之前一年多我就注册了,但是根本不用它,等到twitter被封了之后却又非常想在上面发发牢骚。</p> +<p>虽然不能正常登录,对于我等爱钻研爱学习的人到也增添了不少情趣。</p> +<p>这就像是和好不容易追的姑娘交往一样有意思(屁话)。</p> +<p>好吧我承认我不会像沉迷于google那样沉迷于twitter(什么你还有google瘾),至少不能耽误干活儿,我只是渐渐感到twitter才是最好的新闻来源(屁话)。</p> +<p>还有就是我在手机安装了gravity这个twitter客户端,这是个很容易让人中毒的软件,请不要误会,此毒既不是医学上的也不是计算机病毒。</p> +<p>先说这么多吧,经过这段时间的繁忙工作,我感觉我已经有了轻微的精神分裂迹象,看看上面的文字就能感受的到,好吧。</p>壁纸https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/Mon, 20 Jul 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/<p>桌面壁纸有嘛用?</p> +<p>整天看到人乐此不疲地换来换去,唧唧歪歪,真是还躁。</p> +<p>我的桌面壁纸就是黑乎乎的一片,上面散落着几行咒语般的VI命令。</p> +<p>擦!误把这里当推特了</p>https://sbabybird.github.io/p/%E8%B5%B6/Sat, 13 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%B5%B6/<p>赶!回来的时候,用自动售票机买的票,这机器有点儿缺心眼,认为我是短跑高手,给了我一张5分钟后就发车的票,看完之后我马上汗就下来了,一溜小跑,要说还是天津人民素质高,不仅不在乎我夹塞进站还帮我查询检票口的号码,我一路狂奔到车上,还没站稳,车就开动了!</p>俺又要到天津出差啦https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/Fri, 12 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/<img src="https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/20090612.jpg" alt="Featured image of post 俺又要到天津出差啦" /><p>上次的津门半日游一点也不过瘾,这次估计再待半天。</p>恐怖的超市https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/Thu, 11 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/<p>下班后去超市买东西,面对如此拥挤的人群,我感到大脑一片空白。</p>买了个U3https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/Wed, 10 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/<p>买了个U3鉴于东西放到网上太不安全,如果把资料整理到网上,比如说blog,说不定哪天就灰飞烟灭了(确切的说是被众所周知了),我觉得有必要将自己的知识管理系统转移到U盘上了。</p> +<p>现在U盘已经白菜价了,随便选了几款,最终选择了SanDisk的U3,因为附带了U3软件,所以据说可以将常用软件随身携带,还有安全保证。</p> +<p>可是这个U3软件我刚用了半天就把它卸载了,原因是:首先它不支持Linux,其次里面很多可移动的软件都是收费的,再次,对于禁用了自动播放功能的机器来说,操作是很麻烦的。</p> +<p>好了,我现在把它当普通盘来用了,准备在上面装个轻量级的Linux发行版,比如Puppy,然后再建个wiki,然后再慢慢把东西整上来。</p>看见了彩虹https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/Tue, 09 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/<p>第一次在北京看到了彩虹,手机拍的,不清楚。</p>还是难舍firefoxhttps://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/Fri, 05 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/<p>用了两个月的GoogleChrome浏览器之后,现在我又换回Firefox了,虽然Chrome很快,启动很快、网页加载很快、js脚本飞快,但是还是无法替代我的Firefox。</p> +<p>首先就是在页面的渲染效果上chrome没有firefox好看,尤其是对于中文页面的渲染,再有就是firefox拥有无比强大的插件系统,与其说舍弃不了firefox倒不如说是舍不得那些插件,delicious、greasemonkey、tabmix、ubiquity等等都是绝世好插件,给我的浏览带来完美的体验。</p> +<p>chrome也是很好的浏览器,从刚发布时的粗糙简陋到现在的稳定、高效、人性化,进步非常快,记得chrome刚发布的时候我立即就安装了,也立即就卸载了,太简陋了(也许是简约)。</p> +<p>后来2.0的时候我又忍不住安装了,这次提高很多,渲染中文字体也比以前好看,速度飞快,于是我坚持用了两个月,期间忍受着没有delicious书签的痛苦。</p> +<p>现在我又换回到firefox了,虽然启动慢点儿,内存占用多点儿,可是用起来真是很可手,听说马上要出3.5了,拭目以待。</p>博客不能访问了https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/Wed, 03 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/<p>我有两个同步更新的blog,一个在Google的blogspot,一个在微软的livespaces,blogspot不能访问很正常,可是从昨天开始,连放在livespaces的也不能访问了,真不知到抽的哪阵风。GFW,我叉你老叉的叉叉叉。</p>发型https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/Sun, 31 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/<p>小时候的语文课里有一段对鲁迅先生头发的描述:&quot;头发约莫一寸长,显然好久没剪了,却一根一根精神抖擞地直竖着。&quot;</p> +<p>能留出这种发型来,光有好的洗发水是不够的,关键是发质,我的头发就是这样。</p> +<p>我的头发现在两寸长都有,虽然大部分都乖乖趴着,但是一觉醒来之后,总是有几小撮不合时宜地直竖着,任你嗻哩还是魔丝都无法把他们撂倒。</p> +<p>每天早晨洗漱完毕到梳头这一环节时总是想起刚才那段对鲁迅的描述,然后顶着翘得像刺猬般的发型去狂奔。</p>扛包https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/Sun, 31 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/<p>媳妇带着孩子过来视察工作了,所谓兵马未动粮草先行,来之前先把小孩子用的东西打了个大包裹给寄了过来。</p> +<p>也不知是放假的原因还是快递公司的车没有动车组快,她们已经到两天了,我今天才收到包裹。一个很大的包裹,被快递公司在外面又包了一层蛇皮袋,然后又用透明胶带在外面缠了几圈,再加上一层土,看起来让我想到了民工兄弟。</p> +<p>就这大包,下班后我往肩上一扛,一股劳动者的优越感油然而生,用媳妇儿的话说,我要是手里再拿只山寨手机,然后把喇叭外放打开,播放一曲高亢的&quot;月亮之上&quot;,就完美了!</p> +<p>PS:我也是个民工,此篇没有鄙视我们民工的意思。</p>接站https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/Fri, 29 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/<p>第一次到火车站接人。</p> +<p>需要买站台票,售票员会要求凭火车票购买站台票,但是你说是来接人的,她就会毫不犹豫地卖给你站台票了,我感觉这是个漏洞。</p> +<p>到了站台才发现我来的实在是早了点儿,火车还有一个多小时才到站,接人的地方又不是候车室,别说椅子了,连个马扎都没有。</p> +<p>我干脆一屁股坐在了冰凉的地板上,怀着焦急的心情,等待火车的到来。</p>津门一日游https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/Wed, 27 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/<p>今天去天津出了一趟差。</p> +<p>感觉天津是个不错的地方,不愧是“上有天堂下有天津”(有这句话吗?)。</p> +<p>首先感受了一下中国最快的列车,时速达330的城际特快,椅子都没有坐热都已经到了天津站。</p> +<p>然后就听到了地道的天津方言,虽然是第一次到天津,但感觉很亲切,倍儿舒服。出租车司机话也很多,天南地北都挺能侃,和北京的出租司机有一拼。</p> +<p>下了车就奔公司分舵去了,那里的同事也十分热情,简单吃过饭,就去办公事。</p> +<p>然后就是打车去火车站,又是椅子没做热就到了北京。</p> +<p>所以,虽然是去了一趟天津,基本上也没啥感受,就是感觉那儿人挺不错,环境也不错,至少比北京强,还有就是感叹城际特快的速度,要是以后坐火车都像这样,那航空公司肯定要关张了。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Tue, 26 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<p>朋友婚宴,多喝了三五杯。明日出差,一路顺风!</p>郁闷的紧急任务https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/Mon, 25 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/<p>郁闷的紧急任务什么样的任务是令人郁闷的泥?</p> +<p>比如说,邻近下班的时候,老总紧急抠你,递给你一张小纸条,然后气喘吁吁的对你说:&quot;实在是安排不开了,你赶紧按照这个意思做个PPT,明天上午十点钟给客户演示一下。&quot;</p> +<p>你接过纸条一看,发现上面只有几行小字,比一条手机短信还短,更郁闷的是,上面的内容比较生辟,大家都没搞过的那种。</p> +<p>你长叹一声,心想,为什么总是等屎到了屁股门口才上茅房!</p> +<p>我今天就遇到了上述情况,多亏了Google的搜索和维基百科,我抽了三根烟才把PPT做完。</p>左撇子https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/Sat, 23 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/<p>作为一个天生的左撇子,我除了写字用右手之外,拿筷子,切菜,投篮,羽毛球,乒乓球,台球,包括用鼠标都是用左手。</p> +<p>其实最早的时候我连写字都是用左手的(右手只会扔板砖),只是后来被家长逼着换成了右手,这样直接导致的一个后果是,我的字写的很烂,除了自己的名字写的还勉强能看之外,其他汉字都写得潦草的像鸡挠一样。</p> +<p>平时也还有很多郁闷的事儿,比如我坐地铁,左手拿着卡在通道上一刷,嗒的一声,我正前方的门没开,左侧通道的门开了,还得蹬蹬蹬转过去。</p> +<p>为什么想起左撇子这件事儿呢,因为今天考试的时候需要拿起多年不用的笔来写一篇论文,论文写的烂不说,关键是字写得实在是不堪入目,想来想去除了怪我练字不够努力之外,也只能怪我当时没有坚持用左手写字了,只是,令人尴尬的是,我左手写的比右手写的还难看。</p>球雨https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/Thu, 21 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/<p>早在去年的这个时候,我们就发过牢骚,只要是我们想打篮球的时候,必然要下雨。</p> +<p>今天再次证明了这一点。每次我们兴致勃勃地带好球衣,穿上球鞋,给篮球打满气,这一切收拾停当之后,刚刚还晴朗的天空突然就飘来朵朵乌云,半个时辰之内必有甘霖降落。</p> +<p>可是如果我们仅仅是说好了打球然后又因故取消的话,这场雨就不下了,可见,求雨还得心诚才行啊!</p>该不该qqhttps://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/Wed, 20 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/<p>这两天我的系统特别慢,这归功于office,由于工作需要,最近我每天都需要打开大量的word文档,而这个时候我的机器就有些吃不消了,基本上打开个1m左右的文档大概需要一袋烟的功夫,这样的文件要是同时打开个4~5个,那我的机器就干不了别的了。</p> +<p>于是我就尽量减少并行运行的程序,并把占用大量内存的程序更换成占用少些的程序,比如把firefox换成了Googlechrome,后来我干脆把qq、msn统统关掉了,因为我发现根本没时间聊天。</p> +<p>但是问题就来了,以前我的qq是整天在线的,qq的状态就显示了我的工作状态,我妈每天都上qq看一看,有时是为了打牌,有时就仅仅是看看我在不在线,也不跟我聊天,看看就踏实。</p> +<p>我刚一个上午没上线就打电话问我,“什么情况?为什么qq不在线?”,我解释一番。</p> +<p>今天又有朋友发短信过来表示关心:“这几天上线这么少,有事儿吗?”看来,qq真的很重要</p>有意思的wolframalphahttps://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/Tue, 19 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/<p>wolframalpha 上线了,据说是个Google杀手,而且是基于“语义”的搜索我试用了一下,感觉挺有意思,本来按照我的理解是搜索“黄河有多长”就能直接给出答案,可是人家目前还不支持中文,又听说他的数学能力不是一般的强,于是输入了一个一元二次方程y=2x^2+3x,竟然直接把函数曲线画出来了看了学生们以后做作业不用那么麻烦了</p>戴着耳机干活儿https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/Mon, 18 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/<p>我以前写代码的时候总是习惯戴着耳机写,代码的风格总是跟着音乐的风格,一会儿古典一会儿流行,要是哪天赶上一段二泉映月之类的,写出的代码立即就透露出点点的哀伤,就连变量的命名也变得婉转起来。</p> +<p>当然了,如果碰上不好的音乐,写出的代码总是bug特别多!所以我过一阵子就会清理一下硬盘上的mp3,把那些影响代码质量的音乐彻底删除,比如黑色星期天之类的。</p> +<p>总之,音乐就像是我的粮食,一天没听音乐就像是没吃饭似的。</p> +<p>不过,要是按刚才这句话的定义,我已经个把月没吃饭了,最近有个项目搞得我压力特别大,耳机也懒得戴了,每天就是挣扎在一堆文档中间。</p> +<p>前天吃饭时突然得到同事的点醒,才意识到我还得把耳机戴上,于是乎,今天的工作就十分顺利,事情也很流畅,我仿佛又找到突然间的自我了。</p>发现一款vim代码段补全的插件--snipMatehttps://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/Sun, 17 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/<p>作为一个工具狂人,我对Vim的喜爱是天生的。喜欢Vim的简单、高效、朴素、专业&hellip;。所以Vim成了我的主编辑器,无论是在Linux下还是XP下都能帮我高效地完成工作。(当然,Visual Studio才是我混饭吃的主要工具,不过这不是今天要说的重点)</p> +<p>对于使用Vim的人来说,大部分的工作是用Vim来编辑代码,这么一来代码的自动补全就很重要了。虽然使用SuperTab、C-Support等插件之后Vim的代码补全功能有了很大提高,但是离VS下面的VSAssistant还是有一定的距离的,比如对于代码块的补全就不是很方便。</p> +<p>今天我发现的这个叫做snipMate的插件很好的弥补了这一点。这个插件再次证明了Vim是无所不能的,也说明了聪明人要是懒起来真的可以很过分。</p> +<p>snipMate的下载地址:<a class="link" href="http://www.vim.org/scripts/script.php?script_id=2540" target="_blank" rel="noopener" +>http://www.vim.org/scripts/script.php?script_id=2540</a></p> +<p>下载解压到<code>vimfiles</code>目录即可,然后打开Vim,试着编辑一个C文件,比如<code>hello.c</code>,输入<code>main</code>然后按Tab键,你会发现代码变成了下面这样:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="k">const</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span> +</span></span><span class="line"><span class="cl"><span class="p">{</span> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span> +</span></span><span class="line"><span class="cl"><span class="p">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>先输入for再按Tab键:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">count</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">{</span> +</span></span><span class="line"><span class="cl"><span class="p">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>再按Tab键,光标还会自动跳跃到count、i、code上,以方便编写自己的代码。snipMate同样也有if、while、define等常用的片段补全。</p> +<p>当然了,snipMate是支持各种语言的补全的,比如Python、HTML、Java等等。</p> +<p>最后,最重要的,就是snipMate支持自定义补全,语法也很简单,通过编辑配置文件可以很方便地定义自己的自动片段补全。</p> +<p>再来一段演示视频,看完后就马上去下载安装吧!<a class="link" href="http://www.vimeo.com/3535418" target="_blank" rel="noopener" +>演示视频链接</a></p>关机倒计时ahk脚本https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/Wed, 22 Apr 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/<p>最近习惯在晚上听着音乐或相声、评书睡觉,但电脑总是忘记关,于是使用Windows的<code>shutdown -s -t</code>命令来进行倒计时关机,但是我还嫌这样麻烦,因为要按多次键,还要输入命令,于是就写了下面的AHK脚本,运行后只要按下Windows键 + S键即弹出一个输入框,输入3600即一个小时,到时候就自动关机啦。后来觉得有取消关机的可能,就加了一个判断,到时候点击取消的话,就放弃关机了。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-autohotkey" data-lang="autohotkey"><span class="line"><span class="cl"><span class="nl">#s::</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="nb">InputBox</span><span class="p">,</span> <span class="n">time</span><span class="p">,</span> <span class="err">关机倒计时</span><span class="p">,</span> <span class="err">请输入一个时间(单位是秒) +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="n">if</span> <span class="p">(</span><span class="n">time</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">loop</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">if</span> <span class="p">(</span><span class="nv">A_Index</span> <span class="o">&gt;</span> <span class="n">time</span><span class="p">)</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">break</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">sleep</span><span class="p">,</span> <span class="mi">1000</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">count</span> <span class="o">:=</span> <span class="n">time</span> <span class="o">-</span> <span class="nv">A_Index</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">ToolTip</span><span class="p">,</span> <span class="err">剩余:</span><span class="nv">%count%</span><span class="err">秒关机 +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">ToolTip</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">MsgBox</span><span class="p">,</span> <span class="mi">33</span><span class="p">,</span> <span class="err">关机倒计时</span><span class="p">,</span> <span class="err">定时关机的时间到了,确定要关闭计算机吗? +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="se">`n`n</span><span class="err">此框</span><span class="mi">6</span><span class="err">秒内自动确定</span><span class="p">,</span> <span class="mi">6</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">IfMsgBoxCancel</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">MsgBox</span> <span class="err">取消了关机 +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">else</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">Shutdown</span><span class="p">,</span> <span class="mi">9</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="nb">return</span><span class="err"> +</span></span></span></code></pre></td></tr></table> +</div> +</div>原来如此https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/Wed, 15 Apr 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/<img src="https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/20090415.jpg" alt="Featured image of post 原来如此" /><p>同事传来一张图片,看了之后茅塞顿开,简直无法比喻了。</p>试用Google music的泡泡选歌功能https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/Sun, 29 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/<img src="https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/20090329.JPG" alt="Featured image of post 试用Google music的泡泡选歌功能" /><p>试用Googlemusic的泡泡选歌功能,可根据节奏和音色等属性选歌,最爽的是可以根据年代选歌。从我这张截图上可以看出我最爱听老歌。网址:http://www.google.cn/music/songscreener</p>if you want mehttps://sbabybird.github.io/p/if-you-want-me/Fri, 27 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/if-you-want-me/<img src="https://sbabybird.github.io/p/if-you-want-me/20090327.jpg" alt="Featured image of post if you want me" /><p>nan</p>就不说这是啥https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/Fri, 27 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/<p>呵呵</p>我是怎样进行知识管理的https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/Thu, 26 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/<p>我有个很大的毛病,就是爱好学习,有很强的求知欲。</p> +<p>我觉得主要的原因是好奇心太强,尤其是对于技术方面,恨不得什么都能掌握,后来发现那是不可能的。</p> +<p>但是我还是很喜欢搜集各方面的知识资料,总以为以后有时间会用到。</p> +<p>开始时我喜欢胡乱放文件,一些技术指南、一些能力技巧、一些文档秘籍等等,这些东西有些是从网络上获取的,有的是自己亲自总结的,都是很值得收藏的玩意儿,我把这些看似有用的东西一股脑地扔进硬盘。</p> +<p>我的硬盘越来越满,想找的东西越来越难以从堆积的资料中翻出来。</p> +<p>直到有一天我发现如果一份资料在用到的时候找不到,那就等于没存,甚至还不如不存,困惑了一段时间后,通过网络搜索第一次知道了“个人知识管理”这个“东西”。tobecontinue</p>吃饼https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/Tue, 24 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/<p>晚饭喝粥吃饼,就在离公司不远的粥铺。</p> +<p>这家的大麦粥很合我的口味,提供的主食里有一种面饼,拿辣椒、鸡蛋、面粉混在一起煎制而成,曰:尖椒饼。</p> +<p>吃起来绵软可口,十分鲜美,是我每次必点的主食。</p> +<p>美中不足就是份量太少,每次总被我三口两口吃完,于是我今天就一次点了两份,服务员好像很不解,瞪着眼睛有跟我确认两遍,然后转过身吐了吐舌头冲别服务员做了鬼脸。</p> +<p>她心想,没看出来,这家活这么瘦还这么能吃。</p> +<p>我心想,谁能吃啦?你们也不觉的害臊,这么少的东西也好意思端上来。</p> +<p>不过,我还是假装只吃了一张饼,那一份打包了在路上吃了…</p>重新启用工作日志https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/Mon, 23 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/<p>有几个月没认真写工作日志了,费劲搭建的trac平台也逐渐荒芜。</p> +<p>最近的工作效率一直不高,系统太慢,硬盘太乱,内存不足,桌面难看…狠了狠心还是没有重做系统,准备工作太多,要装得软件太多,到最后还是一样。</p> +<p>于是就本着磨刀不误砍柴工的精神,整理了一下文件夹,吹了吹trac平台的灰尘,开始好好写工作日志。</p> +<p>以后要坚持每天清理收件箱,每天早晨安排一天的事务,并注意每天回顾。</p> +<p>为了节省流量就写这么多吧…</p>如果可能的话,恢复跑步。https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/Wed, 18 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/<p>年前我连续两个月坚持晚上跑步,就是绕小区跑一圈,大概十分钟左右,后来天气太冷,就暂停了。</p> +<p>现在天气又暖和了,我想还是把跑步这个计划坚持下来吧,每晚跑一圈,对身体的效果也许不明显,就当是锻炼执行力了。</p>夕阳无限好https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/Mon, 16 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/<p>夕阳无限好</p>笔筒https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/Sun, 15 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/<img src="https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/20090315.jpg" alt="Featured image of post 笔筒" /><p>笔筒,自动对焦拍摄。</p>五年来看到的最过瘾的一部电影https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/Sun, 15 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/<p>周末的下午,按照惯例,看片!看到了论坛上推荐的《飓风营救》原名(Taken),名字取的有点儿让我不太想看,但是无聊的很,还是看看吧。</p> +<p>结果这个故事真的引人入胜,一个为了女儿而退役的老特工,为了女儿营救女儿,几乎把巴黎闹翻了天,虽然有点儿英雄主义,但看得让人很过瘾。</p> +<p>等到看完了我才想起来查查这个影片的导演是谁,我靠!居然是吕克贝松(开头的字幕居然没注意到),啥话也不说了,此牛人没拍过一般的片。</p> +<p>剧中的主角为了营救女儿,几乎干掉了他遇到的每一个坏人,而且手段十分干净利落,甚至残忍,这恰恰是最过瘾的地方,比起以往此类电影,主角往往带着仁慈再次受伤而导致事情失败,让人唏嘘,但此片不然,对坏人,乃至对坏人的老婆&mdash;&mdash;貌似一个十分无辜的人,也毫不留情,这种做法,将一个父亲对自己女儿的爱,表达到了极致。</p> +<p>总结成一句话就是:为了女儿豁了老命什么也不顾了!</p>手机发图片测试https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/Sat, 14 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/<p>手机发图片测试</p>手机写博客测试https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/Sat, 14 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/<p>手机写博客测试。</p>对googlereader中共享条目的看法https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/Thu, 12 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/<p>googlereader用了快两年了,我认为它是目前最好的在线rss阅读器了。</p> +<p>自从greader推出好友分享的功能后,我的好友也加了不少,而且大家都把自己认为有价值的条目共享出来。</p> +<p>但目前有点不太令我满意的地方是&mdash;-重复的共享太多,就是说一条有意思的rss内容反复的被好友共享,即使我已经阅读过此条目,当我在点击进入朋友共享的条目时,如果有朋友共享了该条目,则greader会认为我未读过这条内容,于是就会出现同一条资源被反复阅读的情况。</p> +<p>我觉得greader最好再智能一些,即我读过的东西,哪怕有n个人又共享了n遍,也不要列入到我的未读列表里,这样才好。</p>今天遇到的问题,GPRMC与GPGGAhttps://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/Wed, 11 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/<p>我以前写过一个程序,在pda上通过读取gps模块的串口信息来实现坐标定位的功能。通常gps模块都会输出标准的GPRMC与GPGGA信息,所以程序一直运行正常。</p> +<p>今天突然遇到奇怪问题,同事说我的那个程序不好使了,虽然能够打开gps模块但是不能解析经纬度等信息。</p> +<p>这是一个国产的智能手机,自带的gps导航程序可以正常定位,但我的程序不行。</p> +<p>于是我把从串口得到的信息统统打印出来,仔细调试,发现该gps模块可以正常输出GPGGA格式的信息,但输出GPRMC格式的信息却不完整,而我那程序正是通过解析GPRMC的信息来实现坐标定位的,于是修改代码,放弃GPRMC信息,改为从GPGGA里读取坐标信息,程序正常。</p> +<p>但我还是没弄明白这个gps模块为什么会输出不正常的GPRMC信息。</p> +<p>头大。</p> +<p>另附GPRMC与GPGGA的解释GPGGA的百度百科解释GPRMC的百度百科解释</p>我的好忘性https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/Tue, 10 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/<p>这次来京时,老婆大人托付的有点儿小事要办,帮家里的亲戚在北京买点儿药,冲剂类,应该就像板蓝根似的。</p> +<p>来之前,特地将药品的描述写了个纸条塞进我的口袋。</p> +<p>到了这边之后,进入工作状态后,立即将此事抛到了九霄云外了,直到老婆今日在qq上提醒我才想起。</p> +<p>后来经人提醒,药物无法邮寄,无论是平邮还是EMS均没戏,让我很是失望,不过还好,咨询快递公司后,人家说只要不是液体就行,而且感觉服务又比EMS好的,当然就用快递了。</p> +<p>靠,龌龊的EMS!额真鄙视你呀</p>坚持是最难的事情https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/Mon, 09 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/<p>我的英语水平一直徘徊在“烂”与“那是相当的烂”之间,那是因为我的词汇量一直少的可怜,我也曾经心潮澎湃地背单词,甚至背字典,但都没有坚持下来,每每想起都非常懊悔,如果从我刚学英语那天就每天记住一个单词的话,现在至少记住5000个单词了,当然这是不可能的,因为我没有坚持下来。</p> +<p>学习其他东西也是这样,十年前就摸过吉他,而且能像模像样的弹一首单调的曲子,也是因为没有坚持练习,到现在还是那个水平。</p> +<p>年前一段时间,我心血来潮,准备每天晚上坚持跑步,但是仅仅跑了两个月,就在冬至那天被打败了,天太冷了,还是不能坚持。</p> +<p>一旦松懈下来,就再也不想继续了。</p> +<p>有相当一段时间,我以为每天写一篇博客实在是很轻松easy的事情,但是前一段时间工作一忙,还是没能坚持下来。</p> +<p>哪怕是一天在上面唠叨一句也懒的罗嗦。</p> +<p>现在,下班了,我想换换脑子,思考了半天,竟忍不住感叹一句:“做什么事情,最难的就是坚持!”</p>昨天洗了一下微波炉https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/Sun, 08 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/<p>回老家温暖几天之后,我现在又恢复到一人吃一人住的状态了。</p> +<p>刚到北京就感冒了,先是鼻子消极怠工,然后是咽喉肿痛,再后来就咳嗽,直到昏昏欲睡,浑身酸痛。</p> +<p>昨天加了一天班,不想在外头吃了,就跑到超市买了一堆东西,想自己做着吃。</p> +<p>忽然想起来前几天上火车时老妈给我拿的煮鸡蛋,现在还都在冰箱里放着呢,只是不知还能不能吃,发短信请示老婆,问是否还能吃,批示曰:“浪费可耻,尽量吃掉!”我想也是,何况这可是纯天然的柴鸡蛋啊,在北京想吃还吃不到哩。</p> +<p>于是就把一个鸡蛋放到微波炉里,想热一下再吃,只怪我由于感冒引起的大脑短路,忘记给鸡蛋剥皮,在加热到15秒的时候就听到一声巨响,就像正月十五放烟花的那种响声,坏了!赶紧关掉微波炉的电源,打开一看,鸡蛋炸成了米粒那么大小碎片,均匀地分布在整个微波炉里。刚好,我早就想清理一下微波炉了,借此机会,清洗一下!</p>在python下调用gdal库来显示影像图https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/Thu, 19 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/<p>很久没有更新了,懒是一方面原因,另一方面是因为最近忙的没有心思写博客了。其实按理说,每天抽出一点时间来唠叨两句还是能够办到的,只是一旦停下来,再开始就更费尽了。随便整理一些东西发上来吧,又是关于技术的。</p> +<p>有一段时间我需要写程序来处理tif格式的影像图,在网上找来找去就发现了gdal这个好东西,可是在vc下调用它还是有些罗嗦,达不到快速调试的效果。于是前两天我又试着在python下调用gdal,把思路先用python实现一遍,调试通过了再用c++。下面是最简单的显示一幅tif影像图的python代码:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">pygame</span> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">osgeo</span> <span class="kn">import</span> <span class="n">gdal</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">init</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"><span class="n">screen</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">set_mode</span><span class="p">(</span><span class="n">WINSIZE</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">set_caption</span><span class="p">(</span><span class="s1">&#39;gdaltest&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">time</span><span class="o">.</span><span class="n">set_timer</span><span class="p">(</span><span class="n">USEREVENT</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">dataset</span> <span class="o">=</span> <span class="n">gdal</span><span class="o">.</span><span class="n">Open</span><span class="p">(</span><span class="s2">&#34;c:/test.tif&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">surface</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">Surface</span><span class="p">((</span><span class="n">WINWIDTH</span><span class="p">,</span> <span class="n">WINHEIGHT</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="n">parr</span> <span class="o">=</span> <span class="n">dataset</span><span class="o">.</span><span class="n">ReadAsArray</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">WINWIDTH</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">WINHEIGHT</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">r</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">g</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">img</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">PixelArray</span><span class="p">(</span><span class="n">surface</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">WINWIDTH</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">WINHEIGHT</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">img</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">],</span> <span class="n">g</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"><span class="n">show</span><span class="p">(</span><span class="n">img</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div>咦!https://sbabybird.github.io/p/%E5%92%A6/Wed, 04 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%92%A6/<p>最近一段时间都会比较忙、相当忙、非常忙,正常下班的时间已经被无情地调整到了晚上9点,请注意,我说的是下班时间,我可没说加班加到几点。</p>我回来了https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/Sun, 01 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/<p>真快,又开工了。</p>春节好!https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/Sun, 25 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/<p>牛年大吉!万事顺利!</p>什么也比不上家的温暖https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/Sat, 24 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/<p>好啦,历时十二个小时,经过无数次的转车,终于平安到家了。</p> +<p>带着一身的疲惫,当我走进家门的那一刻,所有的烦恼与苦难都在一霎那间烟消云散了。</p> +<p>管他是令人发指的票贩子,还是无处不在的小偷,是零下十几度的寒冷天气,还是把我折磨得筋疲力尽的客运系统,都通通给我一边去吧。</p> +<p>虽然屋里没有暖气,但是可口的饭菜,家人的欢笑,这一切都让我觉得比开着暖气的北京温暖多了!</p>一路顺风!https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/Thu, 22 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/<p>一路顺风!明天就到家啦。</p>过年的蜡烛https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/Wed, 21 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/<p>说说小时候过年的事情吧,那个时候我们村里还没有通电,平时晚上会点煤油灯来照明,过年的时候家家户户都要点蜡烛,俗称&quot;大蜡&quot;。</p> +<p>这可不是一般的蜡烛,而是非常巨大的一对蜡烛,差不多有两斤重,顶端粗壮,下端圆滑,底部有孔,上面通常写着非常有年味儿的对联,如&quot;一杯美酒敬天地,三柱清香谢神灵&quot;等字样,金色的字,红色的蜡闪闪发光。</p> +<p>这么大的蜡是不能直接放在桌子上点燃的,一般要有支撑蜡的架子,俗称&quot;蜡台子&quot;,现在的小朋友可能都没有见过蜡台,那是一个精致的木头架子,刷上红漆,中间有两根铁柱竖着用以把蜡烛插在上面,手巧的木匠会把蜡台做的颇具艺术感。</p> +<p>也有的人家直接把一个大萝卜切开两半,平着摆在桌子上,再插上两根筷子,也成了不错的蜡台。</p> +<p>大蜡会在大年初一那天四五更天的时候点燃,我过年一般起的很早(小孩子最爱过年了),起来之后洗漱完毕第一件事情就是点大蜡,大蜡的火苗很大,照的整个堂屋像白天一样明亮,也预示着大家在新的一年里红红火火,吉祥如意。</p> +<p>点大蜡、敬香、吃饺子,然后放鞭炮这个流程就是我对小时候过年的记忆。</p>最后的倒计时https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/Tue, 20 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/<p>还有两天就回家了,身在北京,心早已飞到了家人的身边。 </p>看完了《叶问》,心情沉重地去洗澡了https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/Mon, 19 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/<p>还是洗洗睡吧。</p>显卡驱动导致程序不能正常最大化窗口https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/Mon, 19 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/<img src="https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/20090119.JPG" alt="Featured image of post 显卡驱动导致程序不能正常最大化窗口" /><p>这两天做了一个程序的demo,在台式机上十分运行正常,在笔记本上运行时,窗口就是不能最大化,最大化之后程序窗口只能显示一半,鼠标也拖不动它,因为windows认为你的窗口既然已经最大化了所以就不让你拖动了:)。</p> +<p>反复调试程序也找不到问题所在,最终才想到是显卡驱动的问题,于是我抱着试试看的态度(这个语气好熟)把Nvidia好心提供的附加程序&quot;desktop-Manager&quot;功能给禁用了,程序立即就好使了,窗口可以正常最大化了。</p> +<p>如图</p>没信心了https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/Sat, 17 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/<p>前天在网上看了个视频,某人(其实就是rickwakeman)演奏了一段keyboard,看得让我心神激荡(地址在这儿),旋律速度极快,却也十分好听。</p> +<p>此人运指如飞,根本看不清是哪根手指在动,小手指摆动得就像蜻蜓的翅膀,好像就要发出嗡嗡声似的。</p> +<p>看完视频后我长叹一声,唉,咱这辈子也别想弹成这样了。</p>我的指纹https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/Fri, 16 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/<p>最近在做一个与指纹识别有关的项目,选了几家硬件。</p> +<p>我发现,无论吹嘘的多牛逼的识别硬件,对我的指纹都无可奈何,对我同事指纹的识别率基本达到百分百,却常常认不出我的指纹。</p> +<p>这样我调试程序的时候就很麻烦,常常需要同事的帮助,动不动就拿着硬件拉着一个同事的手说:&quot;麻烦帮个忙,手指头借我用一下&quot;。</p> +<p>没办法,我的指纹太浅,无论是光学识别器还是电容识别器都不能很好的识别,不知道这是否意味着我可以放心的去作案了?</p>我的垃圾,我的回忆https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/Thu, 15 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/<p>今天妈妈打来电话,说在家里整理房间,整理到我曾经的书房兼卧房,问我那一书柜的书还有一堆乱七八糟的东西该如何处理。</p> +<p>按照我爸的建议是,该清理的统统清理,免得占地方。</p> +<p>但我在电话里还是坚持要把我的那些东西全部保留下来,哪怕是小学课本也最好别扔掉。</p> +<p>我想到了我的&quot;百宝箱&quot;。</p> +<p>其实不加引号也行,虽然对别人来说那里装的都是垃圾,但对我来说那里装的绝对都是宝贝,十来年没碰过了,也记不起来装的都是有什么了,印象比较深的大概有几只拆开的电子表、闹钟,拆散的收录机配件,螺丝,铁丝儿,手电筒啥的。</p> +<p>在没有电动玩具玩耍的年代,这些都是我的玩具,而且一直陪伴我到了初中毕业。那时候,我每晚都被&quot;逼&quot;着看书写作业,累了的时候就拆个闹钟玩玩,或者随便接几个喇叭听音乐,一个人往往不知不觉玩到深夜而忘了睡觉。</p> +<p>我曾经幻想着把电子表改装成游戏机,很显然不能成功,不过我还是乐此不疲,所以我的百宝箱里大概有四五只拆毁的电子表,有语音报时的,还有公鸡打鸣的。</p> +<p>出来上学以后,这些东西就基本没动过了。</p> +<p>书,倒是偶尔还翻翻,那也是七八年前的事儿了。</p> +<p>这一柜子书基本没有名著,分类杂乱的很,童话故事与科普读物居多,里面甚至还夹杂着一些课后习题集、作文选刊之类的等很多根本算不上是书的东西。</p> +<p>当时信息不发达,我又被限制不能看太多电视(现在想想该庆幸才对),这些仅有的书都被我翻了又翻,看了又看,陪我度过了我的童年时光。</p> +<p>一个废纸箱,一柜子书,那个时候这些就是我的世界,正是这些造就了我自闭、偏执而又爱幻想的性格。</p> +<p>于是我对老妈说,还是别扔了吧,这些都是我美好的回忆啊,其实我还想接着说,说不定哪本书里还夹着我的情书呢,但是我妈已经把电话挂断了,她没时间听我啰嗦。</p>买到票了https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/Wed, 14 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/<p>如题,虽然给票贩子加了一百元钱,但也还是比坐飞机划算。</p>完美的社交关系https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/Tue, 13 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/<p>今天听到一句至理名言:&quot;作为一个中国人,最好认识一个票贩子,一个交警,一个主任医师,一个幼儿园老师,一个律师,一个记者,一个修电脑的。</p> +<p>&quot;对于我来说,除了最后一个,其他的我都不认识,因为最后一个就是我自己。</p>拔河https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/Mon, 12 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/<p>公司组织全体员工在北京某郊县(靠,好神秘啊)开了三天年会。</p> +<p>年会,就是大家忙了一年了,抽个时间在一起喝喝酒,放松放松,再顺便总结一下工作。</p> +<p>很显然,我对前者更感兴趣,这期间,我参加了一场拔河比赛,喝了几顿酒,飙了几首歌,甚至还进行了一次演讲。</p> +<p>感触最深的就是这场拔河比赛了,我们组从确定完人数之后就是公认的&quot;死亡之组&quot;,因为全是体格单薄的人,个个身材像根铅笔。</p> +<p>在赛前,我们一直担心我们组上去就被别人轻易拽过去,但是,当我们都抓住绳子,并且在此起彼伏的加油声中竭尽全力时,我才发现,我们其实不弱。</p> +<p>人是有巨大的潜力可挖掘的,我们的身子向后倾斜,快要倒在地上,双手使劲攥住绳子,手已经失去了知觉,也看不清跳起来喊着&quot;加油!&quot;的人的脸,那一刻我只知道的是,要把绳子拽过来。</p> +<p>最后,在僵持了将近一分钟后,我们终于感到绳子一轻,都倒在了地上。</p> +<p>虽然在接下来的两局里我们都败下阵来,但是虽败犹荣,我们僵持不下并最终胜利的那一局,被公认为在整场比赛中的最精彩的一局。</p> +<p>虽然第二天腰酸背疼,但是我会记住这次拔河比赛,以后也会把这事儿当作床边故事讲给孙子听,虽然最后可能告诉他,爷赢了!</p>https://sbabybird.github.io/p/%E7%BB%AD/Thu, 08 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%AD/<p>把ubuntu换成xp了,深度精简版的,速度比ubuntu快多了。</p>不好意思,小折腾了一把https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/Wed, 07 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/<p>前一段时间我在eeepc上装了ubuntu,这个linux的发行版确实比asus自带的那个强大得多得多得多(继续),但是有个缺点&mdash;&mdash;慢。</p> +<p>为此我忍了很久了。</p> +<p>今天回到家,想装上一个最新的播放器软件,发现没有合适的安装包,于是就想,反正有源码,那就自己编译吧,于是,卷起袖子就开始了。</p> +<p>下载代码后,configure发现我的gtk太老,apt-get又不给我装gtk(说我已经有了最新版),于是我又要先把gtk的最新版编译好,但是问题又来了,gtk的编译依赖glib,于是我又要先把glib编译好,但是问题又来了,glib的编译又依赖另外的包,于是我耐着性子一个一个把这些包都编译完,make,makeinstall,手都酸了,然后再编译gtk,又告诉我没有atk、freetype、cairo、pango、pixman等等一大堆依赖包,</p> +<p>好吧,非编译出来不可!</p> +<p>全部下载这些东东的代码,一个一个make再makeinstall,终于可以编译gtk了,终于把gtk编译完了。发现我的Firefox却运行不起来了,Fuck!</p>四个第一次https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/Tue, 06 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/<p>1、今日第一次在大街上掀开井盖钻了进去。(当然是经过许可的)</p> +<p>2、今日第一次进入电力隧道,&quot;初极狭,才通人&quot;,进去后发现地下真是豁然开朗,别有洞天。</p> +<p>3、今日第一次使用单反相机,一个字儿,&quot;沉!&quot;</p> +<p>4、今日第一次近距离接近数十万伏特高压的设备。</p>每个男孩都应该有一把吉他https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/Mon, 05 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/<img src="https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/20090105.png" alt="Featured image of post 每个男孩都应该有一把吉他" /><p>昨天,飞行鱼一脸扭捏而又羞答答的对我说他终于没忍住,在元旦的时候买了把吉他。</p> +<p>这厮早就想买吉他了,但是这个想法多次被我扼杀在饭桌上,我以我的亲身经历,动之以情晓之以理地将他想买吉他的念头一再浇灭。</p> +<p>比如说我十年前就买过吉他,但是今天仍是连一首曲子都弹不全,比如说我曾经以为弹的不好是因为吉他不行,在我买了第二把好琴之后我才发现是自己的水平不行,说到动情之处声泪俱下,唏嘘不已。</p> +<p>但这厮还是买了,他说,他在听了卖琴的老板弹奏完一曲《加州旅馆》之后,就立即掏钱了,仿佛买回去的是那一曲《加州旅馆》。</p> +<p>不过自己回去连《加州招待所》都弹不出来,只能摆在那里当个装饰罢了。</p> +<p>那,买了琴,为什会感到羞涩捏?</p> +<p>因为我们早都过了&quot;男孩&quot;的年纪,早就错过了拿着吉他装逼的季节,只是心里总有个情节而已,你要知道,装逼被自己看穿了总是怪不好意思的吧。</p>总有些事情让你感到沮丧https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/Sun, 04 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/<p>今天看到一组新闻,里面总结了发生在2008年度的有趣而又真实的事件,其中有一条,我觉得非常真实:&quot;一个男人在暴风雪的芝加哥街头奋力铲雪一个小时,终于给自己的车清出了一个停车位。</p> +<p>当他把车开来时,发现一位女士已经抢了他的位置——可以理解,他朝她开了一枪,把她干掉了。</p> +<p>&quot;说实在的,对此男士,我表示十分的理解,我可以理解这个家伙能有多么的沮丧。</p> +<p>今天晚上去&quot;敦煌老马家&quot;吃面的时候,发现比我后到的客人都吃完了,而我的还没端上来时,我才发现原来做面的师傅把我这碗忘了,这个时候我有了和上面那个哥们儿一样的感觉,只是咱们国家不允许带枪而已。</p>有啥业务非得在银行办啊https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/Sat, 03 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/<p>谁都不愿意排队,但是很不幸,这个世界上到处都要排队,上车要排队,看病要排队,买东西要排队,收钱要排队,交钱也要排队,如果哪天不巧的话,上公共厕所蹲个坑都得排队。</p> +<p>要说排队排的最厉害的,还是得数银行!前一阵子,股票特别火的时候,银行各个网点都是爆满,想去取个钱买个电啥的,基本上是上午拿号下午办,这还算是幸运的,如果赶上你的时候人家正好下班,那么,对不起,麻烦您明儿早点儿来。</p> +<p>最可气的是,在银行里办业务的人那个磨叽劲儿,我就纳了闷了,赶上我的时候,去取钱也好存钱也罢,绝对不会超过一分钟去(就算是取个十万八万的也顶多5分钟吧),可是往往有些人在窗口前,屁股往椅子上一挪就是十几二十分钟,难道你是去聊天去了,里面的柜员也贼磨叽,一会儿站起来拿点儿表格,一会儿和隔壁女孩聊中午吃什么。</p> +<p>我就是想不明白,那些在柜台动辄磨叽几十分钟的人,他们办理的都是什么业务?</p>以后不在电脑上玩游戏了https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/Fri, 02 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/<p>昨天,一个哥们给我打电话说他的机器中病毒了,系统瘫痪了,光驱也坏了,让我去看看,顺便去他家里玩。</p> +<p>于是今天我就过去了,到那儿以后,这家伙已经买了新光驱回来了,还顺手买了个移动硬盘外加一个优盘(怎么想的?)。</p> +<p>于是俩人开始拆电脑、装光驱、装系统、装软件。</p> +<p>下午的时候,觉得有点儿无聊,这哥们儿突发奇想,决定出去转转,想买个游戏机耍耍。</p> +<p>于是我们又跑到他买光驱的电子市场,直奔电玩柜台,老板看到两个奔三的&quot;小伙子&quot;过来,开始都不太爱搭理,听到我们要买游戏机,就显的热情起来。</p> +<p>我们先后试了Xbox360和任天堂的wii,虽然xbox的画质很优美,但是最终还是决定买了任天堂的wii,日版原装套装外加一个原装手柄,一共两千三百块,老板看我们连价都没还一下(这哥们买东西跟我一样),主动送了20张游戏碟。</p> +<p>立即打车回去,接上电视就开始玩,一边玩还一边感叹:&quot;小日本设计的游戏机就是好玩!&quot;。</p> +<p>网球、保龄球玩起来跟真的一样,那个无线手柄绝真是个绝妙的设计,反映十分,游戏虽然画面稍微有点儿逊色,音质也比较一般,但整体来说,玩游戏的体验还是要比在pc上玩要爽的多。</p> +<p>可惜明天还得加班,否则今天肯定玩疯了。</p>第一天,提点儿希望https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/Thu, 01 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/<p>今天是2009第一天,按照计划,我基本上在家宅了一天。</p> +<p>早晨起床后边洗热水澡边洗衣服,然后出去买菜,准备做我很久没吃到的牛肉饭。</p> +<p>等到七七八八收拾差不多的时候,也就上午十点多了,纲要休息会儿吃口饭,却发现手机里已经收了n多的新年短信,于是饭也顾不上吃,先把短信回复了再说,这几天移动又赚翻了。</p> +<p>然后就是上午下午各看一部电影,到了晚上去老杨家吃了顿饭,打了会儿牌,喝小酒喝得微醺。</p> +<p>总之,我的新年第一天,就是这么平凡地度过了,就像是一个普通的周末。晚上回到电脑前,向往博客里写点儿东西,又觉得脑子里空空的,本来还相对08年做个总结啥的,后来想想,实在是没什么好总结的,那就对09年提点儿希望吧。</p> +<p>想起我前两天列的一个09年的学习计划,这个计划十分贪婪,牵涉到各种技术和技能,感觉不是很靠谱,还是说一下大方向上的愿望吧。</p> +<p>我希望在2009年里,我能实现如下愿望。</p> +<p>1、英语水平飞速发展,可以正常阅读英文文档与小说(阅读能力要像看中文的《故事会》一样)。</p> +<p>2、体重增加到65公斤。</p> +<p>3、编程水平继续提高,主要在基础算法与数据结构方面。</p> +<p>4、掌握一种开源三维引擎。</p> +<p>5、vim的应用更上一个台阶,使vim彻底替代我机器上的编辑器。</p> +<p>6、能够用上3G。</p>再见2008,你好2009https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/Wed, 31 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/<img src="https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/20081231.png" alt="Featured image of post 再见2008,你好2009" /><p>此处无声胜有声</p>blender练习https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/Mon, 29 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/<p>空酒杯一只</p>早场电影https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/Sun, 28 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/<p>周末,睡了个懒觉,九点出去看了一场早场电影,一个人。本来以为早场电影人会很少,结果发现电影院门口居然还排了队,当然了,都是冲着冯小刚的《非诚勿扰》来的,对于这部电影,我没什么可点评的,只能说,值得看,比起以往的冯氏贺岁片,味道还没变,故事不错,讲的也不错。回来以后,又把《甲方乙方》翻出来看一遍。</p>livespace 真难用https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/Fri, 26 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/<p>同样是使用电子邮件发布的一篇博客,发布到blogger的效果比法在livespace里的效果要好,昨天发了一张图片,blogger那边简直是又好又快,显示的还是原始大小,到了msnspace这边,给我整成了一个只有指甲盖大小的缩略图!您要问为什么放着好好的blogger不用,反而还在这贱兮兮的说livespace的坏话?</p> +<p>答案是,中国大陆无法正常使用blogger的服务,为什么不能正常使用呢?</p> +<p>答案不是因为人家歧视咱,而是@#¥%@#¥%@#¥%。</p>Blender练习https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/Thu, 25 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/<p>无聊,用blender作图一副,练习。</p>简讯https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/Thu, 25 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/<p>昨日,也就是平安夜,一年N度的节日会餐,在老居家隆重举行,出席宴会的有,大宝夫妇,小江夫妇,老杨夫妇及其儿子,会餐在亲切友好的气氛下进行,大家就共同关心的话题交换了意见,纷纷表示,鱼炖的不错,汤的味道更美!&mdash;&mdash;路边社记者&quot;从容地狂奔&quot;在现场吃饱后发回的报道。</p>跑步指数零颗星https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/Tue, 23 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/<p>前天,就是冬至那天,据说是n年以来最冷的冬至,冷就不用多说了,反正实在是不能出去跑步了,我还是先将跑步停一停,等跑步指数上升到两颗星时再开始跑。</p>串台https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/Mon, 22 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/<p>我每天大概有2个小时呆在公交车上,与拥挤的地铁相比,我坐的这趟车还算宽松,车上装有移动电视,每天循环播放着垃圾节目,让你在忍受堵车又堵心的同时也备受垃圾广告的煎熬。</p> +<p>最近两天,节目质量有所好转,有时甚至能听到一两首老歌,不禁让人陷入回忆,有时甚至想跟着哼唱两声。</p> +<p>可是很快我就又发现了新问题,那就是,电视的声音总是被公交报站的声音打断,听起来有时让人如鲠在喉有时又忍俊不禁。</p> +<p>比如吧,潘美辰在屏幕上正抱着话筒深情款款滴唱着:&quot;我想要有个家,一个不需要多大的地方~~~&quot;突然潘美辰变身成一个大嗓门的售票员,&quot;龙花园到了,下车请出示车票,youarearrivinginlonghuayuan。。。。。</p> +<p>&quot;罗哩罗嗦老半天直到歌曲唱完,在或者伍思凯刚唱完一句:&quot;没有承诺,却被你抓得更紧~~~&quot;然后紧接着就说:&quot;车辆起步,请抓稳扶好,刚上车的乘客请往里走,前方到站是叉叉叉&quot;。</p>突然的自我https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/Sun, 21 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/<p>今天是二十四节气里的冬至,天气突然变得冷酷起来,冷得令人失去意识,我从来没有像今天这样觉得暖气片如此可爱,以至于我抱着它&quot;亲热&quot;了半天。</p> +<p>按照惯例,冬至要吃饺子,可是我一个人,既不想吃速冻的,又不想在家自己做,所以,晚饭我就准备出去吃了。</p> +<p>外面的天气比我想象的要冷的多得多,尤其是北风,吹得我站都站不稳,风不断从袖口、领口里钻进来,有一段时间我根本无法呼吸。</p> +<p>出了小区东门,过马路,看见一个热气腾腾的小菜馆,隐约能看见牌子上写有&quot;水饺&quot;字样,二话不说,撩起帘子钻了进去。</p> +<p>在这儿住了这么久,第一次发现这儿还有个饭馆,店面很小,门口是个涮麻辣烫的锅,几个贪吃的家伙正稀里哗啦地吃着麻辣烫,里面一共四张小桌子,铺着桌布,收拾得很干净,墙壁上挂了几串红辣椒,最里面是个小柜台,老板娘正低着头算账。</p> +<p>打过招呼,做了下来,&quot;您整点儿啥?&quot;听了老板的口音,我才发现这是东北小两口开的店,顿时觉得亲切起来,感觉这儿就像是《东北一家人》里面的&quot;达达杀猪菜&quot;(实际上这儿还真有杀猪菜)。</p> +<p>&quot;有水饺吗?&quot;我问他,&quot;有,猪肉大葱、猪肉酸菜&hellip;&quot;,&quot;要猪肉酸菜的吧&quot;我说。</p> +<p>&quot;要多少?&quot;他又接着问&quot;像您这个头的怎么着也得一斤吧?&quot;,呵呵,我哪能吃得完一斤啊,为了不浪费粮食,我还是只要了半斤。</p> +<p>热气腾腾的饺子很快就端了上来,为了驱赶身上的严寒,我又要了一瓶二锅头(二两装),实际上,是这个馆子的氛围让我想喝两口,不知道为什么,看着忙碌的老板和老板娘,看着吃麻辣串的情侣,我抿了两口醇香的二锅头,眯起眼睛,突然感觉人生又美好起来&hellip;&hellip;</p>找到一个不错的游戏https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/Sat, 20 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/<p>这儿http://www.appinn.com/Frets-On-Fire-Portable/,是一个好玩儿的吉他游戏,可以让我这个吉他弹的很烂的人过过干瘾。</p> +<p>ps:今天跑步指数2星★★☆☆☆</p>周末大堵车。https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/Fri, 19 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/<p>从吃完饭到现在就一直坐在车上,俩小时了,还堵在路上。</p>跑步指数1颗星https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/Thu, 18 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/<p>好像最近我的博客里只剩下我每天在唠叨天气了,没办法,劳累了一天的脑子实在是没有力气在攒出一篇上千字的文章了。</p> +<p>今天的跑步指数是一颗星,极不适合跑步(满分五星),天气寒冷,空气污浊,空气中弥漫着烧烤的味道,实际上是天然气取暖燃烧的烟雾。</p> +<p>我还是出去跑了一圈,权当是为了锻炼自己的执行力。</p>在家办公https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/Wed, 17 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/<p>像我这样的好员工真是打着灯笼也不好找啊,刚刚完成了一份公司安排的ppt,啊~呵(打个哈欠)。</p> +<p>今天果然降温了,跑步的时候明显感觉到了寒冷。</p> +<p>回来后,我把家里的窗户打开来换了换空气,才几分钟的时间,室内温度就从19度降低到了15度!</p>休息https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/Tue, 16 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/<p>无论有没有外界的压力,总是不能放松自己,下班回家后看个电影都觉的在浪费生命,其实是走进了生命的误区而已。</p> +<p>我们总是不相信自己的感觉,一会儿别人说&quot;要活在当下&quot;,有点儿今朝有酒今朝醉的意思,可是又有人蹦出来说,&quot;四十岁前就别提享受&quot;,我TM到底该信谁的?</p> +<p>忒难为我了。</p> +<p>算了,不想发牢骚了,博客从来都不是一个可以倾诉的地方。</p> +<p>我想说的意思是,这个世界上充斥着各种声音,不时有&quot;专家&quot;跳出来唧唧歪歪,又或者有&quot;过来人&quot;大谈经验感受,</p> +<p>其实,每个人都有每个人自己的王国,在这个王国里,自己就是国王,好好当好自己的国王就行了,不用管别人的看法,</p> +<p>我太累了,只想好好休息。</p>费了不少脑细胞https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/Mon, 15 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/<p>今天大脑超负荷运转,下午连续工作五个小时没休息,一直在思考一个程序上的问题,最后终于解决了。</p> +<p>终于把一个老程序的数据库引擎从恶心的access换成了可爱的sqlite了。</p>完美的星期天https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/Sun, 14 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/<p>早上六点蒙蒙胧胧醒来,看了一眼时间又昏睡过去,再睁开眼已经九点半了,起来洗漱完毕刚要做饭,接到老杨电话,需要火速出去办点儿公事。</p> +<p>好吧,早饭成了一杯麦当劳里的咖啡。</p> +<p>办完事回来已是中午,在老杨家喝了一点儿小酒,喝的微醺,毕竟六十七度的&quot;老白干&quot;不是浪得虚名。</p> +<p>吃完饭就顺势去了老居家里,约了大宝来打牌,大宝二话不说提着新买的麻将牌一路小跑就过来了。</p> +<p>就这样,在午后洒满温暖阳光的客厅里,我们忙里偷闲,搓了一下午的麻将。</p>又要降温https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/Sat, 13 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/<p>据一向不靠谱的天气预报说,最近又有大风降温天气,明天就席卷而来了,但愿不会影响我的跑步计划。</p>白瞎了这么好的月亮https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/Fri, 12 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/<p>今夜星光灿烂,今晚月色撩人,据传闻今晚月亮正好处在与地球相聚最近的位置,所以应该开起来特别的大。</p> +<p>刚刚跑步的时候,证实了这一说法,月亮果然又大又圆,感觉就在我家楼顶上似的,我忍不住跑回去拿出相机来拍照。</p> +<p>结果是让人失望的,我的相机既没有三脚架,也没有好镜头,再搭上我这个糟糕的摄影师,真是白瞎了这么好的月光了,我在寒风中冻得瑟瑟发抖,鼻涕都快滴到液晶屏幕上了,照片要么漆黑一片,要么抖得天上到处是月亮,唉!</p>冒个泡https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/Thu, 11 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/<p>看来我就是把livespaces当微博了,每次都懒得多打几个字。</p> +<p>原因来自各个方面,尤其工作压力,每天徘徊在办公室的椅子和卧室的大床直接,两点一线的生活使我很难再提起兴致在博客里扯闲篇。</p> +<p>今天仍然顶着严寒跑步,空气不是很好,跑步系数为1★☆☆☆☆不适合跑步。</p>跑步继续!!!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/Wed, 10 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/<p>温度回升到最冷才-6度了,风也不那么大了,暂停了整整一周的跑步计划,今天正式恢复。</p> +<p>室外其实没我想象的那么冷,上身只穿了一件羊毛衫,仍然跑的微微出汗,拿着秒表的手刚开始感觉快要冻僵,但跑了一会儿之后就感觉很暖和了。</p> +<p>路况比我想象的糟糕,由于白天飘了几片雪花的缘故,导致部分路面已经结冰,跑在上面十分危险,差点摔倒。</p> +<p>总的来说,跑一跑还是很舒坦的。</p>雪呢?https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/Wed, 10 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/<p>昨天天气预报说,今夜迎来第一场雪,可是,感觉又被忽悠了。Ps:一大早在车上通过黑莓发送</p>我的palm饿死了https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/Tue, 09 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/<p>前年的时候,我淘到一个palm,正式成为&quot;胖友&quot;,买回来后折腾了很久,反复安装软件,又反复的卸载掉,最后仅保留了几个看书的软件,这个palmtt的屏幕看书真的是没话说,非常舒适,我也在上面看了大概有几十本小说,几回回抱着palm到天亮,呵呵。</p> +<p>但是毕竟是个老机器了,速度慢,功能弱,最让我头疼的是,他的电池越来越不行了,后来,我又把手写笔丢了,再后来,也就是今年5月,一冲动买了个epc,就是所谓的&quot;上网本、二奶机&quot;,这下palm彻底失宠,我很少再将它带在身边,</p> +<p>直到上周末,我整理桌子的时候才发现奄奄一息地他躺在抽屉里,我竟然没搭理他,继续整理我的音箱,今天才又想起来。掏出来一看,由于长期没充电,里面的资料全丢了,还好没什么重要内容,</p> +<p>但我辛苦挑选的软件全没了,我干脆给他擦了擦灰,将所有配件整理到一起,全部锁进抽屉里,再见吧您呐。</p>为什么wall-e这么可爱?https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/Mon, 08 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/<p>为什么wall-e这么可爱?这是我看完《机器人wall-e》之后一直在想的问题。</p> +<p>无论是是他捧着电板给自己充电时的样子,还是手足无措时搓腿(其实搓的是他的&quot;履带&quot;)的动作,都可爱得让人抓狂。</p> +<p>现在,我总结一下,让我觉得这个小机器人可爱的原因大概有以下几点:</p> +<p>1、他总是很开心的工作,他很乐观,吹着口哨上班,当地球上只剩下他自己时仍然乐观地活着,对了还有一只蟑螂是他的朋友。</p> +<p>2、他很善良,不小心压了小蟑螂一下(他的履带很宽)就后悔的不行,还好&quot;小强&quot;并非浪得虚名,不仅没事儿还和walle玩得很开心。</p> +<p>3、他很单纯,傻乎乎的,没有心眼儿,连伊娃的手都不敢拉一下。</p> +<p>4、有爱,为了倾慕的女机器人(伊娃)不惜一切代价,以至于芯片烧毁。暂时就说这么多吧,皮克斯的这部动画片还是像以往的那样用简单故事打动人的心。</p>真正的“书架箱”https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/Sun, 07 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/<p>昨天花了一下午的时间把我的书柜和电脑重新整理了一遍,把惠威的2.1音箱移到了显示器旁边,把漫步者2.0的移到了书架的二层,与书挤在了一起,成了名副其实的书架箱。</p> +<p>电脑机箱后面的连线乱成了一锅粥,费了很大的劲才整理通顺。</p> +<p>现在,音箱与书柜成为一个整体,整个书柜便是一个巨大的音箱,用来听音乐那叫一个爽!</p>跑步暂停!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/Fri, 05 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/<p>寒流来袭,最高温度才零下2度,外面冷的能把人冻傻,在我还未被冻傻之前,先做出一个明智的决定,无限期暂停跑步计划,风太大,空气又凉,我又没有自虐倾向,还是在屋里待着暖和。</p>据说明天要降温https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/Wed, 03 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/<p>北京的天气要降温的消息已经提前三天放出,电视、网络反复强调,就连公司内部的网络都发布温馨小贴士提醒大家注意加衣服了。</p> +<p>今晚跑步的时候明显感受到寒风的力度,不过我还是跑得微微出汗。</p> +<p>昨晚(应该说是今早)睡的实在太晚,今天在回来的车上都昏昏欲睡,刚刚跑完步回来后洗了个热水澡,本来困倦的身体又感觉精神了,打开电脑,在日志里罗嗦两句再睡。</p>早啊,各位!https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/Wed, 03 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/<p>没错,我还在办公室里,还在加班,而且意识还很清醒,我还活着。</p> +<p>现在的时间是凌晨的0点10分,再过半个小时,如果一切顺利的话,我就要打车回去睡觉了,差不多还能再睡4个小时呢。</p> +<p>然后,我就要从床上爬起来,洗洗脸,刷刷牙,迎着还没出来的太阳,再次奔上开向公司的地铁。</p> +<p>没办法,既然选择程序员这个连妓女都不如的职业,就要接受没日没夜的加班生活,就像我们经常在程序中&quot;拿空间换时间&quot;那样,现实中,我们在&quot;拿健康换时间&quot;,等到健康剩得不多、徐娘半老之时也就是我们的退休之日吧。</p> +<p>因为到了那个时候,我们将再也加不动班,再也爬不上车,可能连敲键盘的力气都没有了,而且又会有一大批精壮的程序员前赴后继的补充上来,再次走上我们走过的路&hellip;&hellip;</p>还没回家https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/Tue, 02 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/<p>再过十分钟就过了今天跑步的时限了,而现在我仍旧坐在办公室里,喝着温热的开水,盯着跑焦的屏幕。</p>一个月https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/Mon, 01 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/<p>前天有同事问我说,跑步坚持了一段时间了,感觉如何,有什么效果没有,我说不知道,估计以后就不怎么感冒吧。</p> +<p>此话尚未落音,今儿就开始感冒了,打了好几个打喷嚏,嗓子也开始干了。</p> +<p>我从十一月一号开始跑步,一天也没落下,跑步时间基本上都是在晚上8点至9点之间,每次绕小区一圈,跑十几分钟,感觉良好。</p>updatehttps://sbabybird.github.io/p/update/Sun, 30 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/update/<p>让我看看blog标题里能不能出现&quot;关键字&quot;ps:一个累人的周末。</p>一拖四https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/Sat, 29 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/<img src="https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/20081229.jpg" alt="Featured image of post 一拖四" /><p>近日,我的机器速度越来越慢,内存占用常常超过1.5G,尤其是开了office之后,其操作反应之慢令人发指,考虑再三之后,我决定还是不重装系统,先手动优化两下再说。</p> +<p>首当其冲的是卸载多余软件了,我是软件狂人,开始菜单完全展开几乎将屏幕挤满,一口气卸载十几个不常用软件,然后使用ccleaner清理垃圾,清理注册表,清理回收站,清理缓存。</p> +<p>重启。还是觉得不过瘾,进入控制面板,把不常用的服务给停掉,就连桌面主题服务都停掉了。</p> +<p>重启。</p> +<p>还是觉得不过瘾,打开系统任务管理器查看了一下,Firefox最占内存,但是这个千万不能卸载啊,其次是qq占内存,卸载之,然后发现msn也很不老实,卸载之,看着飞信也很不爽,卸载!</p> +<p>这下,整个世界清静了,内存占用只剩下四百M了,速度提高了不少。</p> +<p>可是咱也不能聊天啊,于是想到了Pidgin这个在Linux下很火的软件,下载安装后,发现居然还支持飞信,于是我用它同时连接gtalk、qq、msn、飞信,体验很好,另外还可替代aol、icq、雅虎等多种聊天客户端。</p> +<p>这下好了,以前啊聊天总是要开多个程序,麻烦,现在啊有了Pidgin高钙片,一片顶过去5片,您瞅准了!是Pidgin!</p> +<p>ps:今日跑步指数★★★☆☆</p>差点没出差https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/Thu, 27 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/<p>由于项目的需要,下周需要我出差,本来出去散散心也挺爽的,只是我担心我的跑步计划会搁浅一段时间,因为到了现场就没时间去跑步了,就算不整天调程序也没有跑步的地方,总不能在大马路上伸着舌头撵公交吧。</p> +<p>但是,计划没有变化快,由于北京这边又有优先级更高的活儿,所以,暂时不用出差了,哦也。</p> +<p>ps:今日天气(我估计的),晴间多云,风力2、3级转4、5级,最高温度20度(室内)最低温度0度,跑步指数:3(★★★☆☆)适宜跑步。</p>坚持https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/Wed, 26 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/<p>下班晚也就算了,还刮这么大的风,跑得我那叫一个累啊,回来的时候我一边喘粗气一边想:&quot;啥时候下大雪啊&quot;</p>文档!文档!https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/Tue, 25 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/<img src="https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/20081225.png" alt="Featured image of post 文档!文档!" /><p>快要下班的时候,我的眼神已经分外地扑簌迷离了,审核了一天的文档,看了再写,写了再看,千锤百炼。</p> +<p>瞅了瞅身边的同事,个个被文档折磨得目光呆滞,面如死灰,头发蓬乱,口吐白沫。</p> +<p>说实话,我宁愿写一千行代码也不愿意写一行文档,宁愿写一行文档,也不愿去审一千行文档。</p> +<p>因为,审文档你得咬文嚼字,你得反复推敲,就算是仅仅挑出错别字就已经很费神了。</p> +<p>慢慢地,我感觉到文字在屏幕上开始爬行,一会儿排成人字,一会儿又排成一字。</p> +<p>ps:跑步一直在继续,耶!</p>远去的DVDhttps://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/Mon, 24 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/<p>第一次见识DVD的清晰是在上大学的时候,在我们刚刚落成的多媒体教室,好像还是&quot;邓论&quot;课,老师看大家实在闷的慌,就放了一部《角斗士》来调节气氛,播放器材就是DVD加投影机。</p> +<p>我现在印象最深刻的一个镜头是,男主角走在金黄的麦田里,用手拨弄着麦穗,身边荡起层层麦浪,这个镜头太美了,DVD清晰的画质深深震撼了我。</p> +<p>不久,在我的软磨硬泡下,家里也给我买了一台DVD(顺便买了不错的音响,暂且按下不表),我欢喜的不得了,可惜没有投影机,因为当时动辄十几万一台的投影机对我来说只能奢望,当然,现在也是。然后就是开始疯狂收碟,从《勇敢的心》到《杀手里昂》,从《喜剧之王》到《阿甘正传》,反正当时我认为经典的电影全部收藏,两年下来,在零花钱不是特别充裕的情况下,我&quot;收藏&quot;了将近200张DVD(现在还剩几十张了)</p> +<p>虽然是盗版,但是过来人都知道,在国内,盗版DVD实际上比正版DVD画质都要好(当然要选对牌子咯,这个话题说起来就扯远了)。</p> +<p>当时我逛街最怕两件事,一个是进书店,另一个就是进碟店,因为无论走进哪个,我出来之后钱包准空。</p> +<p>不过和真正收碟的碟友比起来我这几张真的不算啥,我后来认识了一个哥们,光正版碟就收了1000多张(刚工作的工资全花在买碟上了),同样的电影,要买两份,一张平时看,一张摆那儿永远也不舍得打开看。</p> +<p>还是醒醒吧,我现在已经几乎不看DVD了,而且也不再买碟。</p> +<p>一方面是因为随着年龄的增长,工作将我的各种兴趣爱好磨灭了不少,另一方面是因为网络飞速发展,DVD这种存储介质渐渐走向衰败,即使偶尔想看两眼电影,也随时可以在线观看。</p> +<p>虽然现在又推出新格式的蓝光DVD,但是我认为它也基本没戏,就像过气的女明星,无论怎么打扮也难逃被抛弃的命运。</p> +<p>现在再看看那些卖碟的小贩,谈起DVD极不专业,而且以次充好,老拿电影院偷拍的枪版糊弄人,再者就是n合一的压缩碟,这种格式彻底毁掉了我对DVD的兴趣,要画质没画质要音质没音质,除了毁坏光驱,再也找不到别的用处了。</p> +<p>另外也别跟我扯新一代蓝光DVD的容量和清晰度,还是那句话,&quot;我很不看好你哟&quot;,因为我认为,随着网络技术的发展,硬盘、光盘、优盘、这些存储介质都将被淘汰。</p> +<p>什么?你说咱们还有完全自主知识产权的EVD呢?我只能说:&quot;呵呵,大哥,你可真会讲笑话,这是我今天听到的最好笑的笑话了&quot;</p>晚安https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/Sun, 23 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/<p>不错的周末,把太阳能热水器里的水放干净了,热水已切换到燃气系统了,地暖系统也恢复正常了,房间也打扫干净了,看了部老电影,天就黑了,跑完步回来泡个脚,睡了。</p>在傍晚跑步https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/Sat, 22 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/<p>今天要去朋友家吃晚饭,所以我预计晚上的跑步计划会无法执行,干脆提前跑步,在太阳将要下山之前,绕着小区跑了一圈,感觉比在晚上伴着路灯跑要好的多,可惜啊,这种机会也只有周末才有。</p>大周末https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/Fri, 21 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/<p>再次迎来双休日,虽然明天要有半天公事,但是毕竟不是去加班,感觉挺爽。</p>垃圾网上银行https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/Thu, 20 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/<p>今日要去建行转些钱到支付宝,被逼无奈使用了我最讨厌的ie浏览器,输入帐户名、密码、验证码,没问题,选择证书和动态加密口令也没问题,就在最后那一哆嗦,网页弹出一个小空白页面就再也不动了,连续两次都是这样,废掉了我两个动态口令,求救客服半个多钟头也没有搞定问题。</p> +<p>现在,我分析,引起问题的原因:</p> +<p>1、ie不求行</p> +<p>2、有防火墙</p> +<p>3、银行网站很烂</p> +<p>4、人品问题</p> +<p>5、以上原因都有</p>找钱https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/Wed, 19 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/<p>跑完步,口渴,走到小区门口超市买酸奶喝。这是一个袖珍超市,但是麻雀虽小五脏俱全,所以我懒得去大超市了。</p> +<p>这么晚了,超市也快收工了,只有我一个顾客,门口的收银员打着哈欠,我拎了一盒酸奶出来。</p> +<p>&quot;九块钱&quot;收银员说,由于零钱不够了,我只好拿出一张一百的,&quot;请问您有没有一块钱零钱?&quot;她接着问&quot;这样就可以找你九十了&quot;,翻遍口袋,摸出一块钱给她。</p> +<p>这个时候,只见超市的pos机屏幕上写着:收101.00元、应找零92.00元。看来我的大脑也有点儿缺氧</p>感谢妈妈https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/Tue, 18 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/<p>我的胃不太好,为此,我妈颇为担忧,</p> +<p>有天,我妈听说一个单方,可以养胃,即在枕头里装上炒熟的甘草(中药),</p> +<p>每天睡觉枕着就行,该方法不但使用简单而且可操作性强。</p> +<p>于是前两天就在QQ上给我说了,我觉得试试也行,我妈就立刻行动(好习惯),</p> +<p>结果我今天就收到了快递。打开一看,跳出一个制作精美的枕头,散发出甘草的清香,</p> +<p>这可是我妈亲手缝制,对我来说真是无比珍贵。今晚就要枕着它入眠,在梦里露出灿烂的笑容。</p>https://sbabybird.github.io/p/%E9%A3%8E/Mon, 17 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A3%8E/<p>今天跑步最大的感觉就是有风,说是刺骨的寒风有点儿夸张,但是你要是在里面站立半个钟头的话,保证能冻傻。</p> +<p>我发现无论往那个方向跑都是顶风,吹得我快要飘起来,有一阵子甚至感到呼吸困难,意识模糊,后来就加速奔跑,并打破了昨天的记录。</p> +<p>天越来越冷了,我的跑步计划迎来了严峻的考验。</p>跑步在继续https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/Sun, 16 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/<p>不容易,坚持半个月了,加油。</p>测试https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/<p>此篇博客通过电子邮件发送生成,此电子邮件又是通过手机发送。如果都能看见,说明测试成功!</p>掉线https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/<p>昨天网络掉了一夜的线,早晨才恢复,宽带客服的电话都被打爆了,我好不容易挤进去一个电话,被告知他们全部技术人员都在彻夜加班抢修故障,我靠,看来干技术的全是这样儿的命啊!本着惺惺相惜的态度,我也只好随便发两句牢骚就把电话挂了。</p> +<p>ps:昨天跑步速度比平时稍快。</p>喂鱼记https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/<p>公司的旁边有一个公园,公园里有一个人工湖。</p> +<p>该湖曾一度干涸,后来托奥运的福,这个湖做了一次整改,现在,里面不但放满了碧绿的自来水,还撒了一群可供观赏的鱼。</p> +<p>我会在每天午饭后,独自或和同事一起到这里来溜达一圈,一方面是促进消化,还有就是这里的空气真是不错,所以我才会放弃网上冲浪而到这里来晒晒太阳。</p> +<p>每次都会看到那群傻乎乎的鱼争抢人们洒下的鱼食,由于鱼多食少,大家抢得异常激烈,一时间水花翻涌(让晶晶过来都压不住),场面甚为状观。</p> +<p>至于撒食的人,就感觉颇有成就感,我在旁边看着也心里痒痒,总想试试,找找当圣诞老人的感觉。</p> +<p>今天吃饭时故意多要了一个馒头,跟同事说一会儿要喂鱼,同事笑话我说:“你现在嘴里嚼着鱼,居然也假腥腥的要喂鱼”我说“算是补偿吧!”到了地方,发现有人已经先到一步,一群鱼儿在他脚下吃的正欢。</p> +<p>我和同事两个人迫不及待地掏出馒头,拿出吃羊肉泡的功夫(掐啊),就开始往水里洒。</p> +<p>扔了半天,却不见大群的鱼过来,仅有少量老弱病残在这边尝了两口就又游走了,我尴尬地站在湖边,眼看着手里掰下的馒头屑,都打了水飘。仔细一看,还真是我太马乎了,原来先前那人仍的可是上好的面包啊,看来,不仅有崇洋媚外的人,也有崇洋媚外的鱼,这帮混蛋也喜欢吃西餐啊!</p> +<p>PS:第一次用手机打这么多字,手指酸痛ing。</p>不能缩水https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/Thu, 13 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/<p>今天回来时很累,于是就有了改变跑步路线的想法,即,仅从车站跑回家,这样既跑了步,又节约了时间,但这个念头转瞬即逝,立即被否定。</p> +<p>从车站到家的这段路虽然走起来显得不近,但是跟平日跑步的距离比起还是太短,而且这样就视跑步成为一种应付了。</p> +<p>所以为了防止跑步计划到最后不了了之,我今天还是老老实实地跑了一圈。</p>补上https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/Wed, 12 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/<p>昨晚回家晚了,跑步也晚了,然后就睡了,忘了在日志里报告,今早补上。</p> +<p>这两天忒忙了,事情一件件的接踵而来,忙的我有点儿喘气。</p> +<p>有句话说的好,出来混迟早要还的,以前程序的demo做的再好也是假的,现在要动真格的了,撒开手忙活吧!</p>何以解忧,唯有唱歌https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/Wed, 12 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/<p>今天差点儿达到无法执行跑步计划的条件之一(加班到深夜),还好,我及时搞定了问题。</p> +<p>上午也说到了,现在手头事儿特别多,程序的问题也不断涌现,而我又特别不喜欢多任务并行工作(我想没人喜欢吧),并行工作会导致大脑里思考的东西在不断地切换,每个任务都要照顾到,每个任务又很难照顾好。</p> +<p>于是,问题来了,下午快下班的时候我的一段程序罢工了,这段代码在半年前由我亲手调制,当时跑起来一点问题都没有,现在着急用的时候却掉了链子,急得我快要抓狂。</p> +<p>问题还是解决了,怎么解决的呢?</p> +<p>唱歌!下班之后,反正人走的差不多了,也不怕打搅别人,为了缓解压力,我只有使出&quot;杀手锏&quot;,那就是&mdash;-</p> +<p>胡乱唱歌,无论是中国的还是外国的,是民族的还是通俗的,顺嘴拈来,逮着哪句是哪句,什么&quot;千里刀光影,重整代码待后生&quot;、&quot;你说要崩溃我知道很简单&quot;、&quot;小芹我洗衣裳来到河边&quot;等等。</p> +<p>唱着唱着,我就觉得豁然开朗了,柳暗花明了,茅厕顿开了,原来是某行代码被无声地注释掉了(其实早该想到),看来唱歌的效果简直是立竿见影呐。</p> +<p>不光是现在,其实回想起来,唱歌一直是我缓解压力的惯用方式(可以参见这一篇博客),唱歌的地方并不限于在ktv,也不是要老老实实拿捏着唱,要的就是那种随心所欲飘飘然的感觉,大学的时候,每到期末考试我都会整天哼一首类似于&quot;姑娘十八一朵花&quot;的歌儿,这样的话,我不但门门功课都能过,到最后竟然还拿了三好学生!</p>天气不太好https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/Mon, 10 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/<p>今天的天气不是很好,空气质量特别差,用专业术语来说就是&quot;霾&quot;,在做了一番思想斗争之后,我还是决定出去跑步,因为这种天气情况不在我所定义的&quot;不可抗拒之因素&quot;之内。</p> +<p>气喘吁吁地回来,用热水洗了个脚,美,懒得开大机器了,就用小e随便发几个字算了,顺便控诉一下,用小e打字可真是受罪。</p>复制昨天https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/Sun, 09 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/<p>今天和昨天过得一样,略微多了些上班前的焦躁,所以我还是喜欢周六多一些(哪怕那天是加班)。</p> +<p>没空的时候总是想着抽出时间来多学习一些东西,等到周末时却又缺乏了耐心和兴趣,就像牛人说的那样,我所荒废的今日其实就是昨天所期盼的明日啊。</p> +<p>当然了,荒废不荒废也不知是谁说了算。</p> +<p>今天出去跑步的时间略早,发现有人也在跑步,只不过我是顺时针方向,那哥们儿是逆时针方向在跑,我们在西南角碰面,然后又在东北角擦肩,所以我可以断定他和我的速度是差不多的,不过,我回来时,人家可能还在继续跑。</p> +<p>下午的时候,又拿了拿吉他(看来实在是无聊了),摁了两下,摁得左手生疼,发现以前磨出的茧子早下去了,手指光滑无比,连指纹都看不清,我说怎么前两天弄那个指纹识别程序时老调试不成功,看来我可以放心去作案了。</p> +<p>写了半天,发现写的前言不答后语,难道这就是传说中的意识流?</p>超级小女声https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/Sat, 08 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/<p>喜欢听翻唱的歌曲也是个毛病点击小三角开始播放</p>一个普通的周末https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/Sat, 08 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/<p>虽然有时坐在电脑前不知道要写点儿啥,但是,我还是决定每天都在这里写几行字。</p> +<p>一是为了监督我的跑步计划执行情况,防止三天打鱼两天晒网,二是每天记点儿流水帐,将来孙子吵着要我给他讲故事的时候再来翻翻素材。</p> +<p>想起来一个笑话,爷爷在给孙子讲故事:&quot;有一次,在战场上,这边只剩下我一个了,敌人冲上来一个连,我抱着机枪把他们全干掉了。</p> +<p>&quot;孙子说:&quot;可是爷爷,您去年讲的时候说的是冲上来一个排啊?</p> +<p>&quot;&quot;傻孩子,你那时还小,我怕吓着你!&quot;</p> +<p>跑题了,今天是周末,我没有加班,活儿永远都干不完,身体却只有一个,所谓,该出手时就出手,该休息时就休息。</p> +<p>我仍然延续以往的作风,醒的比平时早,起的比平时早,然后开始洗衣服、打扫、做饭、刷碗、看电影&hellip;&hellip;</p> +<p>一天的时间一晃就过了,感觉也就是吃了三顿饭,然后天就黑了。</p> +<p>今天跑步的时候感觉天气比平时要冷,小嗖风风地刮着,我还是坚持跑完一圈,速度还是不能太快,跑到额头微微出汗就行了。</p> +<p>回来查看了一下日历,原来昨天是&quot;立冬&quot;,哦,冬天来了,春天还会远吗?</p>爽事儿两件https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/Fri, 07 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/<p>1、把我的epc升级成ubuntu的操作系统了。</p> +<p>比起它自带的那个阉割版操作系统,界面华丽了,软件丰富了,操作更自由了,爽!</p> +<p>2、家里的宽带在费用不上涨的情况下从1M升级到1.5M了。</p> +<p>虽然感觉也没比以前快了多少,但心里还是美滋滋的,爽!</p> +<p>ps:跑步仍在继续!</p>天涯共此时https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/Thu, 06 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/<p>跑完步回来都九点多了,出差在外的同事一个接一个的打回来电话,原来这帮儿不要命的家伙还在加班。</p> +<p>先是远在宁夏的兄弟告诉我刚做的PPT需要修改,然后是身在河南的项目组打电话咨询版本控制的问题,最后是被发配到青海的哥们儿在电话里用略带嘶哑的嗓音和我一起探讨了一会儿程序路径分支的问题,然后又像是梦游一般地把电话挂掉&hellip;&hellip;</p> +<p>放下电话,我不禁要问(焦点访谈看多了),沟通的方便是帮了我们还是坑了我们?</p> +<p>得亏了信息科技的发达啊,要是远在飞鸽传书的年代,我把代码写好,然后抄到一张小纸条上,绑在鸽子腿上,趁它还没飞抵现场调试的时候,美美地睡上一觉。</p>手机发的https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/Wed, 05 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/<p>今天回来的有点儿晚,并且跑步的距离有所延长,大概比前几次多跑了三百米。电脑都关了,才想起还没有做记录,爬起来,用手机发个报告。</p>假如你看我有点儿累,就请你给我倒碗水https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/Tue, 04 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/<p>今天又跑完步回来了,现在,我真是名副其实的&quot;从容地狂奔&quot;了,每晚都会出去&quot;奔&quot;一圈儿,只有这样才会觉得明天有&quot;奔&quot;头,才能洒脱地&quot;奔&quot;三十了。</p> +<p>我上个周刚过的生日,就是说我上周还二十六(虚岁)呢,现在就二十七了(真的是虚岁)。</p> +<p>最近总想活的更洒脱一些,但总是觉得很为难,因为总感觉自己太在意别人的看法,也就是老是拿别人的标准来衡量自己的生活,到不了那种&quot;忘他&quot;的境界,比如我有同事可以在地铁里一边大声唱歌一边跟我大谈&quot;空间数据的网格索引&quot;,牛逼吧?大学里有个同学,在大街上骑自行车,突然来了兴致,把车一摔,在路边跳了一段&quot;麦考杰克逊&quot;,然后在一片惊叹声中绝尘而去!</p> +<p>洒脱吧?靠,我做不到,就算是在大街上唱歌我都不会。</p> +<p>前两天,看了一篇文章,大致意思是,每个人生来都是一杯白水,随着时间的流逝,为了满足别人对我们的期望,这杯水被掺入了形形色色的杂质而变了味道,有些味道我们觉得好,但是别人觉得怪,或者又相反,最终大家都很不爽,文章最后劝我们别在乎别人怎么看,自己就做那杯最原始的白开水吧。</p> +<p>看到最后,如果作者在我跟前,我想,我会把杂志卷成一卷儿,对着他的头来两下子,你的脑袋是不是被门挤了,还是被驴踢了?</p> +<p>原因不再论述,这种忽悠人的文章以后还是少看为妙。</p> +<p>我只想说,我还是会往我的杯子里,加入各种佐料,哪怕我不喜欢它,只要我的家人喜欢,或者我的家人认为我喜欢。</p> +<p>我继续狂奔,我尽量学着在大街上唱歌,假如你看我有点儿累,就请你给我倒碗水。</p>跑步,有进步https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/Sun, 02 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/<p>昨天跑完后没感觉,睡了一夜,今早感觉腿酸背痛,看来见效果了啊。</p> +<p>今天继续跑步,距离与昨天相同,还是一圈,时间缩短3分钟,速度不是我追求的,跑步本身才重要,看来明天要延长路线了。</p>报告https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/Sat, 01 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/<p>上午制定了跑步的计划,旨在锻炼身体陶冶情操。</p> +<p>说到就要做到,时间刚过8点一刻,我就换上球鞋(本来还想置办一套装备,但是看看动辄上千元的跑鞋只得作罢,还是等过几天跑步略显成效时再买吧)、塞上耳机,大步流星冲下楼去。</p> +<p>HitFM正在播放着动感音乐,伴着音乐的节拍,我迈开轻盈的步伐,前面两个保安晃来晃去,被我轻松越过(靠,又不是打篮球)。</p> +<p>由于是刚开始跑,为了既达到锻炼效果又不丧失信心,我把速度放的很慢,基本上比散布快一些就行。</p> +<p>总算绕着小区跑了一圈,心跳还算正常,喘气有些加速,身上也微微出汗。</p> +<p>OK!我很满意,能否坚持下去虽然是个未知数,但毕竟好的开始已是成功的一小半。</p> +<p>ps:这个跑步计划已经宣扬的全世界都知道了,要是跑两天即放弃,我岂不是无颜见江东父老了,唉,年轻人啊,爱冲动。</p>跑步吧!!!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/Sat, 01 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/<p>午饭后,与远方的二舅聊起家常,说到锻炼身体的重要性。</p> +<p>我说我没时间、坚持不下来,结果被二舅狠狠鄙视了,连二舅那么忙的人都能每天坚持锻炼,我就没啥话说了。</p> +<p>据说他锻炼成果显著,现在腰不酸了背不疼了走路也有劲儿了。</p> +<p>我想起今儿上午,和同事一起搬了台服务器都累的两股战战几欲先走(也怪那服务器忒沉),看来我是得加强锻炼了。</p> +<p>想了半天,最后还是决定采用&quot;跑步&quot;这一经济实惠的锻炼方式,并制定计划:</p> +<p>每晚20点半至21点间散步10分钟跑步20分钟(时间可根据情况提前或推后,但过了22点就取消当日计划)。</p> +<p>除非遇到不可抗拒之因素(如下雪、加班到深夜等),否则一律坚持跑步!即日起,博客恢复更新,以记录跑步计划执行情况。</p>关于十一长假的总结https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/Mon, 06 Oct 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/<p>长假过完了,感觉如下:</p> +<p>1、交通的痛苦,买不到回家的火车票,被黑了一张全价机票。</p> +<p>返京时乘坐大巴,连续坐了16个小时,感觉要比乘坐神七痛苦。</p> +<p>2、妹妹结婚了,打心底祝福她。</p> +<p>小时候那个调皮的小女孩儿怎么转眼变成了端庄的大姑娘了呢。</p> +<p>3、喝多一次,此次回家喝了n顿酒,和老同学在一起喝的那次喝多了。</p> +<p>4、我还是那么瘦,几个老同学都陆续把自己的肚子搞大了,只有我继续瘦的像支铅笔。</p> +<p>5、我仍然是家里的维修工,此次修理好了老家的DVD、抽水马桶、电脑,并弄坏了老婆的手机(后来我又修好了)。</p> +<p>6、美好的时间总是很短暂,每次相聚都是一次分手。</p>月饼https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/Sat, 13 Sep 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/<p>咱们的节日总是与吃有关,比如过年吃饺子,元宵节吃汤圆,端午吃粽子,六月六吃炒面,腊八吃米饭。</p> +<p>中秋当然要吃月饼,而且要吃的相当隆重。</p> +<p>在我的老家,刚入了八月大家就忙活着串亲戚送月饼了。</p> +<p>一个人在外面,当然没人给我送月饼,为了找到一点儿过节的感觉,我只好到超市去一趟,心想,好歹买一两块月饼回来吃,也算是过节。 到了地方却傻眼了,花花绿绿的月饼盒子堆的跟小山似的,个个包装精美,如果不问售货员一句:&quot;这是月饼吗?&quot;我都不敢确定这些东西是什么。</p> +<p>先让我想想小时候的月饼是什么样儿,嗯,圆的(废话),比烧饼厚,油光光的,上面印有花纹图案比如&quot;花好月圆&quot;什么的,随便拿张油纸包着,掰开以后馅里有大块大块的冰糖,还有花花绿绿的丝儿,应该是用橘子皮做的。</p> +<p>对,就是这样,客人来了,主人把月饼拿刀切成菱形的小块就算一道下酒菜,中秋那天晚上一家人也会切上一块,大家一起嘎嘣嘎嘣地吃完。</p> +<p>不过这是十几年前的事儿了,现在的月饼花样儿百出,什么馅儿的都有,造型各异,包装也是越来越豪华,味道却越来越难吃,简直难吃至极,看着这些大盒子我就发怵。</p> +<p>我小声的问售货员:&quot;请问有没有适合自己在家吃的月饼?&quot;</p> +<p>&quot;有啊&quot;她拎起大概有枕头那么大的一盒月饼说&quot;你看这个怎么样,原价四百六现价二百八而且买一盒送一盒,多划算呐!&quot;,</p> +<p>我接过来看了看,诺大的盒子装了六块像扣子似的小月饼,亮亮的泛着油光,虽然个儿不大,但是如果买回去够我吃到过年了,我看了看长长的货架,觉得今天的月饼怕是买不到了。</p> +<p> 不买不行,不吃月饼哪叫过节啊,我拎着购物筐在楼上楼下转了个遍,终于在一个灰暗的角落里发现了散装的月饼,嗯,貌似小时候那种月饼。</p> +<p>将就吧,随便挑了两块扔进筐里,任务算是完成,高兴之余顺便又拎了瓶红酒,就这么地了,晚上就着月饼喝着红酒,举杯邀明月,对影成仨人。</p>我对奥运开幕式的8点感受https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/Sat, 09 Aug 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/<p>1、脚印烟花很令人惊艳    </p> +<p>这真是一个好创意,巨大的脚印从中轴路一路迈向场馆,场面真不是一般的壮观!美中不足的是空中镜头取景再大些就好了。</p> +<p>2、卷轴屏幕很好很强大    </p> +<p>七十多米长的屏幕,应该也是奥运之最了,就是中间那块画布放的有点儿突兀。</p> +<p>3、歌唱祖国很令人激动    </p> +<p>当那个红衣小女孩用清澈如同天籁般的声音唱起歌唱祖国时,整个场馆进入了高潮,我在电视机前也禁不住唱了起来,眼泪都快下来了。</p> +<p>4、主题歌有点儿弱    </p> +<p>主题歌听完之后,印象不深刻,知道是谁唱的,听完就忘了。</p> +<p>5、运动员入场时那些奥运宝贝一直在那儿蹦了两个多小时没换人,佩服!    </p> +<p>导演也太不知道心疼人了,大热天儿的,让这些可爱的奥运宝贝手舞足蹈一直在那儿跳了,换了我,肯定都昏过去了。</p> +<p>6、电视台转播水平发挥正常,镜头切换不敢恭维,画面中经常出现很多钢丝    </p> +<p>不愧是咱们的CCTV啊,发挥出了应有的水平。</p> +<p>7、点火没让人失望,要是点火时画面里看不见钢丝就更好了。</p> +<p>    点火方式很新颖,将吊钢丝技术发挥到了极致,李宁好样儿的!就是在全景的时候,在屏幕前方总是飘着好几根钢丝,让画面失色不少。</p> +<p>8、有朋自远方来不亦乐乎,四海之内皆兄弟也!    击缻时朗诵的《论语》,让人仿佛回到了两千多年前,很好,很中国!</p>工欲善其事,必先利其器?https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/Thu, 31 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/<p>当猿猴第一次有目的的拿起石头将骨头劈开的时候,&quot;它&quot;就不再是&quot;它&quot;了,而成了&quot;他&quot;。</p> +<p>能够使用&quot;工具&quot;是人类与一般动物的最基本的区别,这是教科书告诉我们的事情。</p> +<p>&quot;工欲善其事,必先利其器。&quot;这句话很长时间都被我作为msn签名,也充分说明了工具在我生活中的重要性。</p> +<p>当然这儿说的工具是一个广义上的概念,它可以指硬件也可以指软件。但是,我现在对于工具的使用却有了新的看法。</p> +<p>因为我觉得工具使我的大脑退化了,以前好使的功能现在都不太好用了(比如:记忆力、创造力等)。</p> +<p>写到这儿,我发现我这次的话题起的有点儿大,发些感慨而已,说到哪儿是哪儿吧。 </p> +<p>因为最近(其实早就有感觉)我越来越觉得对某些工具产生了严重依赖,</p> +<p>比如:计算机、手机、Internet。有时候甚至搞不清究竟是在驾驭工具还是在被工具驾驭。</p> +<p>前一段时间我看了一本关于高效率工作的书,按照书中的指点,慢慢养成了将工作事务都提前安排进&quot;日程表&quot;的习惯,感觉效率貌似提高了一些,但是造成的副作用就是,我的记忆力严重下降。</p> +<p>人们常说:&quot;好记性不如烂笔头&quot;,我看则不然,在我没用&quot;烂笔头&quot;的时候,我的记性还是挺好,约会什么的一般不会忘记,现在惨了,当我习惯于把事务用&quot;烂笔头&quot;记下来时,就连&quot;下班后买俩包子&quot;这点儿破事儿如果不写下来就会忘记。</p> +<p>关于电话号码的记忆也是,以前没用手机的时候,我可以记住几十个电话号码,现在连自己的电话号码都得翻手机的电话薄来查找了。</p> +<p> 现在,每天打开电脑第一件事儿就是把浏览器打开,收邮件,安排日程事务,借助google提供的日历功能安排好一天的工作,然后把工作内容同步到手机上,这样整个人都&quot;信息化&quot;了,看似有条不紊的工作,实际上,我已经牢牢地被这些所谓&quot;高科技&quot;拴住了。</p> +<p>什么?万一哪天这些东西消失了?</p> +<p>后果很难想象,想一下就能冒出一身冷汗。</p> +<p>当然也有哥们幻想着有一天能过上&quot;不插电&quot;的生活,我觉得他也只能是想想而已,失去这些把我们宠坏的工具,将会像一只丧家犬那样的失魂落魄。本来打算来一篇长篇大论,发现越说越远,只好虎头蛇尾了。</p> +<p>不能再多说了,因为我的&quot;日程表&quot;提醒我该去吃饭了。</p>怀念win98https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/Mon, 28 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/<p>好友终于无法忍受vista的龟速,将笔记本自带的系统干掉新装了一个windowsxp系统,托我用ghost把系统备份一下,以备不时之需。</p> +<p>自从转到linux阵营之后,我很少用到ghost了,去网上找了个&quot;一键ghost系统&quot;把他的系统做了个备份。</p> +<p>发现现在的ghost软件做的已是十分的人性化了,一路next即可,完全不要用户操心,傻瓜化操作。想起我大学那阵子用的win98系统,那时还没有ghost类的软件,而98又很不稳定,所以我基本上每周都要重装一次系统,同宿舍的哥们,每到周末都能看见我趴在电脑前重装系统(步骤很简单,FormatC:、Setup)。</p> +<p>我想,我的偏执狂性格就是那时候养成的吧,一年下来,25位的windows98序列号我竟然背了下来。</p> +<p>win98给我印象最深的就是&quot;蓝天白云&quot;了,前两天在网上看到有志同道合的网友收藏的win98启动画面,其中就有这张经典的&quot;蓝天白云&quot;。</p> +<p>后来,我误入歧途,对win98的操作技巧十分着迷,就连win98的启动画面也给改的面目全非(比如在启动时写上女朋友的名字),现在,这些曾经让我乐此不疲的&quot;秘籍&quot;已经变得一文不值。</p> +<p>提到win98就不能不提它那经典的&quot;蓝屏&quot;,当程序死机或者非法操作时,它总是跳出来,搞得我的心扑腾扑腾乱跳。</p> +<p>加上那时我的英文水平实在有限,屏幕上的大串英文字母对我来说与乱码无异,蓝屏的次数多了,也就预示着我又要重装系统了。</p> +<p>win98下打游戏很爽,我打电脑游戏的时代也基本上就是大学那几年,星际争霸、红警、剑侠情缘、大菠萝2、极品飞猪(车)5,这些游戏在我的赛扬600下跑的也很顺畅,目前的硬件配置拿到我的大学时代能把人美死(不美死也吓死),可是我已经基本没心思再打游戏了。</p> +<p>大学快毕业的时候,windowsxp横空出世,我终于忍不住诱惑,装了一个英文版(那时还没出中文破解版),谁知,xp竟不由分说(也许是说了,我没看懂)把我的C盘给格式化成了NTFS格式,当我新鲜劲儿一过,想要再重装win98时,由于在DOS下无法识别NTFS磁盘,导致我误把D盘给格式化了,几年的积累化为乌有,气得我在床上跳来跳去,疯了一样。</p> +<p>现在,虽然硬件飞速的发展,内存都快有那时的硬盘大了,可是随着操作系统越来越臃肿,感觉计算机的速度却没有多大提升,仍然要启动老半天,打开一个word文档还是磨磨叽叽的。</p> +<p>有时候不禁要想,拼命的升级硬件、换代计算机,究竟有什么意义?</p> +<p>算了,不说了,洗洗睡吧,与其说是有点儿怀念win98,倒不如说是想念那一段&quot;纯洁的&quot;求学的时光,这个话题一旦摊开来说就唠远了,还是就此打住吧。</p> +<p>ps:我发现写博客固然很爽,但是往往勾起人的回忆,而回忆呢,又往往是美好滴,一美好就难免会想抽根烟,看来我也要&quot;珍惜生命,远离博客&quot;了。</p>珍爱生命,远离手机https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/Fri, 25 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/<p>对于使用手机,我有一个不良习惯,喜欢在睡觉的时候把手机放在枕头旁边,而且是24小时不关机,只有这样我才睡的踏实。</p> +<p>之所以这样儿,是因为我是把手机作为闹钟来用的,放的近一些首先可以保证它在关键时候叫醒我,其次是,这样我就可以迅速把闹铃关掉,然后再睡一会儿。</p> +<p>今天看了一条新闻,让我十分不安,有专家跳出来说“应该让手机远离头部”因为,“手机发出的电磁辐射可以致癌”。</p> +<p>哦卖糕的!以后睡觉的时候干脆把手机放在脚边算了,每当早上它吵醒我美梦的时候,我可以飞起一脚把它踢到地上。</p>原来这句话是这个意思啊https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/Wed, 23 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/<p>《论语》有云&quot;唯女子与小人为难养也&quot;,这句话的意思伤了一大批人,现在有人跳出来给出了新解释:&quot;女&quot;通&quot;汝&quot;,&quot;女子&quot;即&quot;汝子&quot;,即&quot;你的孩子&quot;;&quot;养&quot;指&quot;教养、教育&quot;,全句是说&quot;你的孩子有类似小人习气就不好教育了&quot;。</p> +<p>&quot;这是个教育问题,小孩会因为溺爱而放纵自己,对大人的管理充满埋怨,不就像小人?&quot;</p> +<p>我联想到另外一些新解:</p> +<p>关于孔子的收费标准三十而立:交三十升米者,可以在后面站立听课。</p> +<p>   四十不惑:交四十升米者,允许提问,直至没有疑问为止。</p> +<p>   五十知天命:交五十升米者,可以知道明日考试之命题。</p> +<p>   六十耳顺:交六十升米者,先生会说些你喜欢听的话,让你耳顺。</p> +<p>   七十从心所欲:交七十升米者,听课要躺要坐,想来不来,一切随便。  </p>别想不开啊https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/Tue, 22 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/<p>郁闷或高兴的时候我总是想抽根烟,比如,当我的代码总是调试失败或者刚修改完一个Bug的时候。</p> +<p>办公室里不允许抽烟,否则我们屋肯定和火车的车厢连接处一样,整天烟雾缭绕,这样就剥夺了一小撮人不抽烟的权利。</p> +<p>所以,抽烟的兄弟只能到厕所旁边的那个阳台吞云吐雾了。</p> +<p>这样也好,一边抽着&quot;混合味儿&quot;的香烟,一边欣赏窗外的风景,既满足了肺对于尼古丁的需求,又能放松一下疲倦的眼睛。</p> +<p>楼层不低,所以看得也挺远的,如果眼神儿和天气都足够好的话,甚至可以看见鸟巢里工人师傅的焊枪发出的耀眼蓝光。</p> +<p>下班的时候,我又去抽了一根烟,一个人。</p> +<p>远处的大楼在烟雾中显得虚无缥缈。</p> +<p>我手扶着窗户,探出头去,想看得清晰一些。</p> +<p>这时,一个哥们从厕所走出来,一边提着拉链一边语重心长地说:&quot;别想不开啊!&quot;</p> +<p>我靠!我有啥想不开的?</p> +<p>工作虽然累点儿,但是,祖国还需要我,人民还需要我,老婆做好的饭菜还在桌子上等着我,孩子还等着我回去辅导功课&hellip;&hellip; </p> +<p>算了,回去了,明天又是崭新的一天,但愿今天不堵车。</p>一块钱一斤https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/Mon, 21 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/<p>现在电脑基本上已经普及了,我老家的一个师范同学,去年买了电脑之后,非常迷恋电脑的知识,经常通过qq来问我各种问题,我也是基本上都耐心回复。</p> +<p>后来这厮竟然越来越来劲,已经不满足于普通的日常使用了,有一天就问我编程序到底好玩不好玩儿?我有心把它带进沟里,就告诉他编程序十分有意思,写完程序后很有成就感和快感。</p> +<p>这家伙终于着迷了,发誓要学会写程序,我就把老谭的那本《C程序设计》推荐给他看。</p> +<p>他看了之后一头雾水,说是像看天书一般,遂跟我唠叨十分后悔没念大学。</p> +<p>后来我被他缠的没办法,就告诉他应该先把基础打好,他说也对,不妨就把大学里的计算机课程给全过一遍。</p> +<p>我靠,佩服!让我肃然起敬。</p> +<p>不过,我大学里的书基本上都找不到了,就把课程的书目大体上给他说一遍,让他自己淘弄去,实在不行就去书店买,然后就有一阵子没有联系。</p> +<p>今天突然上线告诉我所有的书都买到手了,大概有十几本,我更佩服他的精神了,作为一个业余爱好者也太舍得了。</p> +<p>我问他:&quot;你哪儿买的书啊?现在书那么贵,花了不少钱吧?&quot;这家伙半天没吱声,过了一阵儿给我来了一句:&quot;没多少钱,比你上学时买的便宜多了,我让亲戚在大学旁边的废品收购站买的,你说的那些书全都有,九成新的!一块钱一斤!&quot;</p>颐和园https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/Mon, 21 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/<p>这几天,老爸老妈过来了,我也没有太多时间陪他们。</p> +<p>周末了,一起去了趟颐和园。</p> +<p>天太热,人太多,出去玩儿实在是太受罪了。</p> +<p>吃晚饭时与我爸一起整了几盅,正想多喝几杯时,老头按住酒瓶说:“编程序我不行,喝酒你不行。”</p> +<p>想去电脑上玩会儿游戏,我妈指着电脑屏幕上一路飙升的qq斗地主分数对我说:“编程序我不行,打牌你不行。”</p>家人来到https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/Tue, 15 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/<p>接风,洗尘、喝酒</p>偏执狂https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/Mon, 14 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/<p>看到了一篇关于电脑偏执狂的帖子,发现里面列举的内容大部分都像是在说我。</p> +<p>比如:Windows桌面只放三个图标:&quot;我的电脑&quot;、&quot;回收站&quot;、&quot;浏览器&quot;回收站永远保持&quot;清空&quot;状态,删除文件都是用Shift+Delete,根本不用进回收站所有软件都使用最新版,打上最新的补丁每隔一段时间就清理一次注册表如果有个软件用的不是最新版本就会浑身不自在</p> +<p>补充:看到别人的电脑不是处于最佳状态也会浑身不自在,想冲过去调理一番如果同样功能的软件有商业版和免费版的话,就打心眼儿里觉得免费版的那个更可爱经常整理磁盘碎片经常整理删除磁盘上的文件,有时候上午刚删完一个文件,到下午就发现那个文件还有用任务栏上同时打开窗口超过四个就觉得难受,如果把程序隐藏在系统栏就感觉好多了新建文件夹时不喜欢用&quot;新建文件夹&quot;来命名</p>自制果汁https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/Sun, 13 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/<p>大早上一起来,打开电视(就是我那个用Python写的小程序),凤凰卫视里的沈星正在介绍&quot;美女私房菜&quot;,正在纳闷原来美女还会做菜,结果令我十分失望,只见她拿了个番茄,随便切几下,往搅拌机里一扔,嗡嗡两下,搅成糊状,美其名曰&quot;营养瘦身果汁&quot;。</p> +<p>咳,正愁着早饭不知吃啥,干脆试一下吧。</p> +<p>从冰箱里拿出番茄,又刷了刷我那半年多没用过的搅拌机(当时为啥要买它?),搅拌之前又撒了些白糖,喝了果然神清气爽,看来,这个搅拌机还挺有用,这样吃番茄(应该是喝)比起放在嘴里生嚼别有一番滋味。</p> +<p>到了傍晚的时候,闷的慌,出去溜达的时候又想起自制果汁的事儿来,干脆这次来做一个真正的果汁。</p> +<p>买来西瓜一只、蜜桃若干、猕猴桃若干、青苹果、黄瓜,本来我还想加点儿芹菜,但是买不到了。</p> +<p>回到家,将这些水果切成丁、片,一股脑儿放入搅拌机,嗡嗡搅了一分来钟,足足做了一大杯,让我想想,西瓜消暑、猕猴桃富含维生素、青苹果酸中带甜,这杯什锦果汁应该是比早上那个强多了吧。</p> +<p>迫不及待喝了一口,靠,说不出的滋味,各种味道窜来窜去,就像是吃烂桃的时候再就着两口酸苹果,没办法,反正有营养,那就喝吧。</p> +<p>喝到大半杯的时候我才想起来,我刚才要是把西瓜的皮儿去掉就好了。</p>每个周六的晚上是我乐兴大发的时候https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/Sat, 12 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/<p>我的吉他弦断了,刚断的,就在我弹那曲《两只老虎》的时候。</p> +<p>没办法,为了能压住隔壁装修的声音,我在弹的时候多使了点劲儿。</p> +<p>幸好我未雨绸缪,买吉他的时候就多买了几根琴弦,今天终于用上了,不过,还是费了老半天劲儿才把弦儿装好。</p> +<p>这让我想起一个传说,爱好古琴人都知道这个神秘传说。古代有两人,一个叫俞伯牙,一个叫钟子期。有一天,俞伯牙琴兴大发,在他家空旷的后院里(也可能是在河边,记不清了),摆好琴,焚香沐浴后,惬意地抚上一曲。一时间,悠扬的曲子飘满了整个院子,向远方扩散。</p> +<p>俞伯牙正沉浸在曼妙的琴声里,突然,&ldquo;啪&quot;地一声脆响,琴弦断了。他向远处一望,原来是钟子期这家伙打完柴在这儿偷听他弹琴。钟子期不但听懂了他的曲子,而且对他这把琴的来历也说得头头是道,后来俩人成了好哥们儿。</p> +<p>就此打住,问题的重点并不是这俩人后来成了好哥们儿,关键是这个故事说明了一个问题:当有人偷听你弹琴的时候,你的琴弦就会断掉。反过来说,如果哪天你的琴弦断了,那么,在某一个角落里,有一个粉丝正在偷听你的琴声。</p> +<p>话说有一个人叫张三,酷爱抚琴,苦于没有知音。一日,在抚琴时琴弦终于崩断,此人对刚才的传说深信不疑,急忙起身,想要寻找那位来偷听的&quot;粉丝&rdquo;,果然,在角落里找到了他。张三欣喜不已,激动地握着&quot;粉丝&quot;的手说:&ldquo;同志!我可找到你了!&ldquo;却又发现这位粉丝已经陶醉于音乐之中,正在轻轻地啜泣。</p> +<p>张三感慨万千:&ldquo;终于有人懂我的琴艺了!&ldquo;忙将此人请入家中,沏茶倒水,欲询问此人对他刚才所奏之曲的感受。此人好不容易才止住哽咽,断断续续说道:&ldquo;本来我在睡午觉,忽听得先生的琴声,就顺着声音走到这里来了。&rdquo;</p> +<p>&ldquo;那又为何哭泣呢,我刚才所奏之曲虽有哀怨之意,听了却也不必如此悲痛吧?&rdquo; 张三不解地问道。说道此处,此人痛苦地干嚎两声,说道:&ldquo;之所以伤心,是因为我心里难受,先生的曲子让我想起我死去的舅舅,先生的曲子与我舅舅的曲子有一样的声音。&rdquo; 张三更加欣喜:&ldquo;敢问你舅舅是哪位大音乐家啊?&quot;,&ldquo;音乐家倒谈不上。&quot;,&ldquo;哦,那他是干什么的?&quot;,&ldquo;他是,弹棉花的&hellip;&quot;,&rdquo;#@$%^#$%^#$%^&rdquo;</p>你知道父母的生日吗?https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/Fri, 11 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/<p>单位要员工填写一张个人信息表,其中有一项内容是父母的出生年月(填的还真够细),很多人都填不上来。</p> +<p>我还好,前一段时间刚好在msn上和妹妹一起聊到了父母的年龄,赶紧翻看msn记录,终于找到了妹妹通过msn告诉我的出生日期(看来养儿子真不如养女儿)。</p> +<p>突然想起一个电视节目,在大街上现场采访,随便拉个人去问他父母的生日,结果大部分都张口结舌,答不上来。</p> +<p>自己的生日记得很清楚,老婆的生日记得很清楚,儿子的生日记得很清楚,有些人甚至领导的小舅子的孩儿他妈隔壁邻居的生日都记得很清楚,可是却把父母的生日抛在脑后,惭愧啊。</p>开幕式那天,使用哪种点火方式?https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/Thu, 10 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/<p>据说已有了定论,但还是个秘密,老张还在卖关子。</p> +<p>我有同事猜测,应该是派一只大熊猫举着火把去点燃,还有哥们儿说还不如让猪坚强去点燃。</p>eeepc 使用技巧(4) 看电视https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/Wed, 09 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/<p>用小e在床头看电视在合适不过了,不过我没找到Linux下的网络电视软件。</p> +<p>找来找去,发现一些可以用mplayer播放的mms链接,试了一下效果还不错,几个著名的电视台都有对应的链接,比如:</p> +<p>凤凰卫视中文台mms://58.22.96.10/litv01;</p> +<p>凤凰卫视资讯台mms://58.22.96.10/litv03;</p> +<p>但是我的mplayer是基于命令行的,每次要看电视的时候还需把这些链接输入进去,感觉很不方便。</p> +<p>刚好这两天对Python这个脚本语言比较感兴趣,于是想用Python写一个脚本来帮我输入这些链接。</p> +<p>由于对Python还不熟,所以写的界面很丑,不过也够我用了。</p> +<p>具体思路是,将这些链接首先存入一个文本文件里保存为channel.data,</p> +<p>内容如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">凤凰卫视中文台|mms&amp;#58;//58.22.96.10/litv01; +</span></span><span class="line"><span class="cl">凤凰卫视资讯台|mms&amp;#58;//58.22.96.10/litv03; +</span></span><span class="line"><span class="cl">东风卫视|mms&amp;#58;//58.22.96.10/litv07; +</span></span><span class="line"><span class="cl">精品影院|mms&amp;#58;//218.1.70.72&amp;#58; +</span></span><span class="line"><span class="cl">1755/JingPinYingYuan; +</span></span><span class="line"><span class="cl">东方卫视|mms&amp;#58;//live.smgbb.cn/dfws; +</span></span><span class="line"><span class="cl">星空卫视|mms&amp;#58;//58.22.96.10/litv06; +</span></span><span class="line"><span class="cl">TVB8|mms&amp;#58;//58.22.96.10/litv05; +</span></span></code></pre></td></tr></table> +</div> +</div><p>然后写一个python脚本读取这些链接并将电视台的名称填入界面中的一个列表框里,到时候通过点击名称就可以播放了。</p> +<p>python脚本内容如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span><span class="lnt">46 +</span><span class="lnt">47 +</span><span class="lnt">48 +</span><span class="lnt">49 +</span><span class="lnt">50 +</span><span class="lnt">51 +</span><span class="lnt">52 +</span><span class="lnt">53 +</span><span class="lnt">54 +</span><span class="lnt">55 +</span><span class="lnt">56 +</span><span class="lnt">57 +</span><span class="lnt">58 +</span><span class="lnt">59 +</span><span class="lnt">60 +</span><span class="lnt">61 +</span><span class="lnt">62 +</span><span class="lnt">63 +</span><span class="lnt">64 +</span><span class="lnt">65 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: UTF-8 -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span> <span class="o">*</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">string</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">class</span> <span class="nc">Application</span><span class="p">(</span><span class="n">Frame</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">clist</span> <span class="o">=</span> <span class="nb">list</span><span class="p">({})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">play_channel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">channel_url</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">strcmd</span> <span class="o">=</span> <span class="s1">&#39;mplayer &#39;</span> <span class="o">+</span> <span class="n">channel_url</span> <span class="o">+</span> <span class="s1">&#39; -cache 1024&#39;</span> +</span></span><span class="line"><span class="cl"> <span class="n">str_output</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">popen</span><span class="p">(</span><span class="n">strcmd</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="n">a</span> <span class="o">=</span> <span class="n">str_output</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&#34;</span><span class="se">\\</span><span class="s2">&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">bin_a</span> <span class="ow">in</span> <span class="n">a</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">bin_a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">channel_url</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">play_tv</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">curselection</span><span class="p">()[</span><span class="mi">0</span><span class="p">])])</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_channel</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">curselection</span><span class="p">()[</span><span class="mi">0</span><span class="p">])])</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">init_channel_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listbox</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;tvchannel.dat&#39;</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_info</span> <span class="o">=</span> <span class="n">channel_file</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">channel_info</span><span class="p">)):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_list</span> <span class="o">=</span> <span class="n">channel_info</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;;&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">channel_list</span><span class="p">)):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel</span> <span class="o">=</span> <span class="n">channel_list</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_name</span> <span class="o">=</span> <span class="n">channel</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_url</span> <span class="o">=</span> <span class="n">channel</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> <span class="n">listbox</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">END</span><span class="p">,</span> <span class="n">channel_name</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">channel_url</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">create_widgets</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;text&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&#34;Quit&#34;</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;command&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">quit</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;width&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">30</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;height&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="o">.</span><span class="n">pack</span><span class="p">({</span><span class="s2">&#34;side&#34;</span><span class="p">:</span> <span class="s2">&#34;left&#34;</span><span class="p">})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;text&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&#34;Play TV&#34;</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;command&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;width&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">30</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;height&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="o">.</span><span class="n">pack</span><span class="p">({</span><span class="s2">&#34;side&#34;</span><span class="p">:</span> <span class="s2">&#34;left&#34;</span><span class="p">})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span> <span class="o">=</span> <span class="n">Listbox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">init_channel_list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">selection_set</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">master</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">Frame</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">master</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">create_widgets</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">app</span> <span class="o">=</span> <span class="n">Application</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"><span class="n">app</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>保存为playtv.py,和刚才那个channel.dat放在一个目录,运行即可(python./playtv.py)。</p>假如工作总结这样写https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/Tue, 08 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/<p>半年很快过去了,领导又安排写工作总结。</p> +<p>写完之后感觉意犹未尽,不如把这半年的生活也总结一下,为了增加总结的趣味性,再此,我特意虚拟了一个记者出来。</p> +<p>记:2008已过去大半年,能不能谈一下你这半年都是在忙些什么呢?</p> +<p>我:可以,上班忙工作,下班忙生活。</p> +<p>记:哦,能不能说一下具体都是忙些什么工作呢?</p> +<p>我:工作上的事情我是不会在博客里说的,我刚写了一份上半年工作总结,一会儿可以给你看一下。</p> +<p>记:好的,那谈一下生活吧。</p> +<p>我:好的,因为我经常加班,所以其实我的生活也基本上就是工作,你还是看工作总结吧。</p> +<p>记:靠!你到底要不要接受采访,玩儿我呐?</p> +<p>我:你还真不懂幽默,咱们国家就是你这样儿的记者太多了。</p> +<p>好吧,给你说一下最近的情况。</p> +<p>记:请问,这半年你的周末都是怎样度过的?</p> +<p>我:大部分周末是在加班,另外由于我是一个很低调的人,所以剩下的时间都宅在家里。</p> +<p>记:宅?这个我知道,据说是一种生活方式,就是呆在家里不出门是吧?周杰伦还有一首歌叫《阳光宅男》呢!</p> +<p>我:你真聪明。</p> +<p>记:在家里干嘛呢?</p> +<p>我:无聊的时候我会谈谈琴看看书,如果有时间我会每周看一部电影。</p> +<p>记:你刚才不是说呆在家里不出去吗?怎么还去影院看电影?</p> +<p>我:刚夸完你的智商你就开始喘啦?谁说上电影院了,现在影院的票价那么贵,而且放的又是剪切版的,网络那么发达,片源很丰富,所以,我是在家看的。</p> +<p>记:说到&quot;剪切版&quot;请谈一下你对《色戒》这部影片的看法。</p> +<p>我:哦,这个我在网上看的也是剪切板的,不过看的是被剪掉的那部分,由于看的也不完整,所以也不便于发表看法。</p> +<p>而且,我比较怀旧,平时看的大部分都是多年前的老片。不过最近的《功夫熊猫》也挺不错。在看的过程中发现精品后我一般会在博客里记录下来。</p> +<p>记:你刚才说到无聊时会看书,都是看些什么书?</p> +<p>我:我还是比较怀旧,想把以前上学时没看过的小说给补一补,金庸和古龙的小说看了好几遍了,最近又复习了一遍《射雕》。</p> +<p>另外这半年还看了《我这一辈子》、《月牙儿》、《白豆》、《许三观卖血记》等中篇小说,上学时,家长不让我看这些小说,现在得补回来。</p> +<p>记:(撇撇嘴)我还以为是《鬼吹灯》、《诛仙》呢。</p> +<p>我:哦,这些我也想看,不过我胆儿小,一个人不敢看,怕失眠,我失眠挺严重的。</p> +<p>记:你刚才说无聊时还要弹琴,是弹钢琴还是吉他?</p> +<p>我:钢琴太贵,买不起,我弹电子琴、吉他、电脑键盘、吹口琴等。</p> +<p>记:(吁!)您的爱好还真够广泛的。看来这半年您过得还真是挺充实惬意的。</p> +<p>我:惬意个P呀,老婆不在身边,没人聊天,没人做饭,我孤独得都快抑郁了。不过她很快就要来了。</p> +<p>记:祝贺你啊。聊了半天,你能不能总结一下你这半年的心得和收获?</p> +<p>我:可以,这半年,我看了不少电影,新喜欢上几首好歌,又恢复了打篮球,身体状态也在恢复。</p> +<p>另外我迷恋上了Linux操作系统。至于收获嘛,真是说不好,有些事儿不能说。</p> +<p>记:好的,感谢你抽出时间接受采访,谢谢,再见。</p> +<p>我:再见。</p>不要忘记https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/Mon, 07 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/<p>7.7</p> +<p>71年前的今天,中国开始了长达八年的抗日战争。无需多言。</p>有音乐就有春天https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/Sun, 06 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/<p>有音乐就有春天,当我写下这句话,撇了撇嘴,我想,我还挺能装啊。</p> +<p>不过,这么说是因为刚刚看了一部电影&ndash;《放牛班的春天》,法国人拍的,很细腻,有一点小幽默。</p> +<p>故事讲的是一个迷恋音乐的教师与一群工读生的故事,工读学校管理混乱,体罚学生,学生自暴自弃到处做恶作剧。直到克莱门特来了,这个秃头的中年男人,看上去还有些磨叽。</p> +<p>然而,这些孩子马上就发现了新老师的与众不同,因为他唯一的皮包里装的仅仅是几张乐谱,而且他把这些视为生命。</p> +<p>克莱门特渐渐发现这些孩子原来也热爱音乐,这使他重新燃起创作激情,他把这些孩子根据特点编成了一个合唱团。</p> +<p>通过教授音乐,他不仅感觉这些孩子原来唱歌不错,而且组建合唱团也使他们变得不那么调皮了,音乐拉近了他们的距离。</p> +<p>然而,事情不会那么顺利,皮埃尔这孩子就很难对付,他声线极美却极难驯服,克莱门特不断挖掘他的优点,还说服他的母亲让他去读专业的音乐学校。</p> +<p>期间还有一段小插曲,那就是克莱门特与皮埃尔的单身母亲还产生了一点儿小感情,不过克莱门特很含蓄,一直埋在心里,影片在这一段处理的很不错。</p> +<p>影片的配乐很精彩,最让人陶醉的就是这些孩子天使般的歌声了,沉静又富有感情,天籁、天籁就是打这儿来的吧。</p> +<p>最后当克莱门特因得罪校长而被辞退的时候,这些孩子被命令不准送他,他孤独走向大门,此时优美的合唱响起,天空中飘满了孩子们折的纸飞机,上面写着祝福的话,孩子们用这种特殊的方式与他告别。</p> +<p>他用音乐给孩子们带来了春天,留下了春天,却又孤独地离去。</p>哈哈太棒了https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/Sat, 05 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/<p>晚饭毕,弹了一会儿电子琴,感觉很投入。</p> +<p>就是那种摇头晃脑的投入,脚也随着音乐的节奏踏着地板,忽闻岸上踏歌声就是这个踏吧。</p> +<p>感觉我的琴技提升了啊,左手和弦右手旋律,配合得天衣无缝,第一次有演奏的感觉,弄得动静比较大,不知道会不会吵到别人。</p> +<p>看来我天生会弹琴,曲谱都在心中,美妙的音符随着手指流淌出来,至少我是这么以为的。</p> +<p>有没有听到那个声音</p> +<p>就像是我忽远忽近</p> +<p>告诉你他来自我的心</p> +<p>带来一首苍老的歌</p> +<p>对着你轻轻的说</p> +<p>我不在乎春夏秋冬花开花落</p> +<p>任凭这夜越来越深</p> +<p>你在我心中越来越沉</p> +<p>压的我不能翻身作自己的主人</p> +<p>任凭这灯越来越昏</p> +<p>你在我眼中越来越真看得清你满脸的风尘</p> +<p>任凭这天空越来越湛蓝</p> +<p>你在我身边越来越平凡</p> +<p>可是有些说过的话一直没能改变</p> +<p>任凭这旅程越来越孤单</p> +<p>你在我面前越来越茫然</p> +<p>丢不下的行李</p> +<p>是我不变的心</p>留意了一下我的blog评论https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/Sat, 05 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/<p>无意间看到我写的几篇日志竟有人评论,想不到这个我发发牢骚的地方竟还有人访问哈。</p> +<p>而且,看起来,我写的颇为不错(嘻嘻)。</p> +<p>ps:感谢SEA同学的捧场。</p>我淋了一场大暴雨!https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/Fri, 04 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/<p>就在下班的时候,天还没有要下雨的样子。</p> +<p>我悠然地吃完了晚饭,然后慢吞吞地走向车站,准备回家。此时天上却落起了雨滴,不大,我想肯定又要堵车了,就买了本《读者》准备在车上看。车行驶到路上的时候,雨真的大起来了,雨点密密地砸在车顶和车窗上,彭彭作响,车窗外的景象被雨水冲得模糊不清。</p> +<p>雨越来越大,公交车就像一只潜水艇,四周都被水包围了。</p> +<p>到站而没有带伞的乘客,咬咬牙狠狠心跳下车去,很快就消失在茫茫雨雾中。</p> +<p>终于,我也要下车了,我带了伞,但我还是太低估了这场雨,我甚至想象在雨中点根烟,那该是多么惬意啊。</p> +<p>然而,我这把伞应付毛毛细雨还凑合,外面下着倾盆大雨,又刮着狂风,闪电在头上不停地把天撕开一个又一个裂口,这把伞仅能护住我的头,被风吹得翻过来复过去。</p> +<p>也许是我&quot;点根烟&quot;的想法激怒了老天,风雨越来越猛,马路变成了一条河,泛起一阵阵波浪,我不由自主地奔跑起来,拼命抱紧了我的电脑包,那里面装着我心爱的笔记本电脑。</p> +<p>几分钟的路程,把我淋得狼狈不堪,衣服湿透了,鞋子里灌满了水,终于,我跌跌撞撞地跑到了家门口。</p> +<p>我想这是我有生以来淋得最大最惨的一场雨了。</p> +<p>现在,我洗完了热水澡,沏了一杯热茶,窗外,雨已经停了。</p>怎样使用VC6的远程调试https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/Thu, 03 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/<p>今天遇到一个问题,我们的程序在本地执行一切正常,但在售后的一台笔记本电脑中却无法启动且爆出runtimeerror。</p> +<p>无奈只有通过调试来查找问题所在,由于该笔记本并未安装开发环境,于是想到了VC6的远程调试。上网翻看资料,写的都不太详细,摸索半天终于成功,并通过远程调试搞定了程序的问题。</p> +<p>现将远程调试的详细操作记录下来以备忘。</p> +<p>1、需机器两台:一台为调试机(装有VC6开发环境),一台为客户机(运行程序)</p> +<p>2、假定客户机的ip地址为192.168.0.168</p> +<p>3、假定需要运行调试的程序放在客户机的C\emote_bin\emote_test.exe</p> +<p>4、共享客户机C:\emote_bin文件夹,并开放所有权限(读、写),共享名为remote_bin;</p> +<p>5、在调试机上映射客户机remote_bin共享目录为&quot;Z&quot;盘(可在cmd中执行&quot;netusez:\\192.168.0.168\emote_bin&quot;) </p> +<p>6、拷贝调试机上VC6安装目录下的Bin目录中的全部内容到客户机任意位置(该目录在调试机的路径一般为&quot;C:\ProgramFiles\MicrosoftVisualStudio\COMMON\MSDev98\Bin&quot;),在此假定拷贝在客户机的&quot;C:\Debugger&quot; </p> +<p>7、在客户机运行&quot;C:\Debugger\MSVCMON.exe&quot;,启动后再对话框上直接点击&quot;Connect&quot;按钮(不用点&quot;Setting&quot;按钮),期间如有防火墙告警提示,需允许该程序。 </p> +<p>8、回到调试机,打开VC6并打开要调试的工程文件(再此为remote_test),在VC6的&quot;Build&quot;菜单下点击&quot;DebuggerRemoteConnection&quot;,在弹出的对话框左侧选择&quot;NetWork(TCP/IP)&quot;,点击右侧&quot;Setting&quot;按钮,填入客户机ip地址(192.168.0.168)点击&quot;ok&quot; </p> +<p>9、点击VC6的&quot;Project&quot;菜单下&quot;Setting&quot;,切换到Link页面,在Outputfile中填入&quot;Z:\emote_test.exe&quot;,切换到Debug页,在Executablefordebugsession中填入&quot;Z:\emote_test.exe&quot;,在Remoteexecutablepathandfilename中填入&quot;C:\emote_bin\emote_test.exe&quot;(注意:此行甚为重要,需填写程序在客户机的完整路径) </p> +<p>10、大功告成,按F7编译可执行文件,按F5开始远程调试吧!</p>求雨妙招https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/Wed, 02 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/<p>入夏以来,大家打篮球的热情空前地高涨,频率已经从原来的每周一场提升到每周两场,较上年同期提升了100个百分点(我晕,还是别用新闻联播的语气了)。</p> +<p>不仅如此,每次打球的时间也有所延长,基本上都是从下班打到天黑,中间不休息、不换人,三个小时下来,基本上都口吐白沫,胳膊抽筋,两股战战几欲先走。</p> +<p>然而天公总是不作美,近日一连串的雨天,严重打乱了我们的打球计划。</p> +<p>基本上每次打球都要下雨,而且时间也选在下班前后。</p> +<p>每当约定好打球日期,第二天带齐了球衣和球鞋,下班后刚给篮球打满气,还没来及拿起来在手指上转一下,只见天空一道闪电,紧跟着大雨倾盆而下,大家只得各自回家收衣服。</p> +<p>同事们都感叹又发现一求雨的新招数,无论哪个地方干旱少雨,只需我们带齐装备过去打球,过不多时必有甘霖降落。</p> +<p>今天,大家没带球衣,也没带球鞋,篮球也没打气,天,晴了!</p>断网一天的感受https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/Tue, 01 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/<p>公司的光纤今日出了故障,整整一天无法上线,感受如下:</p> +<p>1、无法与出差现场的同事交流,同事亦无法访问公司网络,导致工作受阻。</p> +<p>2、IM软件不能上线,家人朋友都很担心,老妈更是打来电话,问我为什么qq不在线。</p> +<p>3、不能收发电邮,心情焦躁不安。</p> +<p>4、无法获取最新资讯,感觉与世隔绝了。</p> +<p>5、GoogleReader积累了200+的未读条目,原来我订阅了这么多信息。</p> +<p>6、终于修好了,爽!</p>终于见识了Vistahttps://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/Mon, 30 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/<p>昨天,一朋友新买了台笔记本,预装WindowsVista操作系统,我拿到手把玩一会儿,见识了传说中的Vista。</p> +<p>界面确实是漂亮了许多,确切的说是比起我用的XP界面华丽了很多,但是咱也有Ubuntu啊,Linux下的界面也不是盖的。</p> +<p>至于速度呢,真是让人难以接受(忍受),想不通微软那帮儿天才是不是故意把系统弄得这么慢,明明硬件配置已经很高了,要是跑xp能让它飞起来,但是Vista却慢慢吞吞咿咿呀呀哼上老半天,让我想到了我十年前第一次启动Win98。</p> +<p>同样,关机也是很慢,一副可怜兮兮、依依不舍的样子,恨不得让你直接拔电池。</p> +<p>Vista另一个让我不爽的方面应该就是UAC(用户帐户控制)了,对于这个功能,我的理解就是典型的掩耳盗铃,因为随便你运行个什么程序系统都会不厌其烦地弹出一个框,告诉你这是个陌生程序,它不确定是否安全,问你是否继续,如果你允许了,那么他也就没有任何责任了。</p> +<p>可是我又怎么知道这个程序有没有威胁?我要是知道我还会运行它吗?</p> +<p>靠!今天看到消息说,从本周一起微软就再也不买XP了,这也就意味着,你如果还想用Windows以后只能买Vista了。</p> +<p>以后再买笔记本也只能预装Vista了,一句话,微软要逼着我们用他的新系统了。但我还是决定对xp&quot;不抛弃,不放弃&quot;,这次Vista的使用经历更是坚定了我的观点,让华丽的Vista见鬼去吧!</p> +<p>ps:不行就用Linux</p>驱蚊良方https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/Sun, 29 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/<p>入夏以来,被蚊子叮咬数次,胳膊的红点竟呈北斗七星状。冥思苦想,得一良方。活捉蚊子一只,将长嘴拔掉,悬挂于床前,众蚊子观其惨状均不敢靠前半步。</p>今天居然不加班https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/Sat, 28 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/<p>像往常一样,周六的早晨匆匆醒来,洗漱完毕拿起包推门而出,忽然想起,今天不加班!</p>是爷们儿就得顶着,看了《太极旗飘扬》https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/Sun, 22 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/<p>真实的战争场面和细腻的故事情节让《太极旗飘扬》这部影片成为了和《拯救大兵瑞恩》同样经典的战争片,</p> +<p>我认为甚至超越了后者,因为《拯救大兵瑞恩》带给我更多的是战斗场景的震撼,而太极旗飘扬则在震撼之外又多了一些在情感上的触动。</p> +<p>战争到来的时候,带来了无尽的不幸和灾难,无数的人卷入这残酷的漩涡。</p> +<p>故事的主角&quot;镇泰&quot;本来和家人幸福的生活在一起,弟弟马上就要念大学了,妈妈和妻子开的面摊也刚刚有了起色,而且自己修鞋的手艺也越来越高超,挣钱供养弟弟上大学应该没有问题,虽然他自己连一个字也不识,但是他很满足。</p> +<p>然而,战争的到来让一切幸福都成为泡影,他们兄弟俩很快被抓了壮丁,与亲人失散。</p> +<p>战场上的血雨腥风让他们很快成长起来,每时每刻都有人死去,在战斗中,作为哥哥,镇泰时刻保护着年幼体弱的弟弟,不惜生命的代价。后来他又听到一个传说:&quot;只要得到一枚总统颁发的勋章就可以让一位自己在军队里的亲人回家&quot;他相信了,为了勋章,为了能让弟弟离开战场,他拼了命,甚至让他的弟弟误会他,以为他为了得到荣誉而不顾一切。</p> +<p>他终于拿到了勋章,可是他弟弟却没能回家,他所得到的却是眼睁睁地看着自己贤惠的妻子被战友当作叛徒无情地射杀,那一刻我想他肯定比子弹打在身上还难受。</p> +<p>后来他的弟弟被当作叛徒要被烧死(被救出,但是他不知道,一直认为弟弟被战友烧死了)。</p> +<p>他绝望了,他为了弟弟、为了家人所做的这一切只给他带来了更多的不幸。于是他成了俘虏,他叛变了,他开始疯狂地报复,当两兄弟在战场上互相以敌人的身份见面时,他已经杀红了眼,两人厮杀很久,在弟弟的叫声中他终于清醒了,可是弟弟的部队已经开始败退了,两个人面临生死抉择,弟弟需要撤走,而他需要留下来为弟弟断后。</p> +<p>看到弟弟安全撤走,他欣慰地死去,为了弟弟,他已用尽了自己最后一丝力气。</p> +<p>整部电影想要表达的以及所表达的远不止这些内容,抛开历史的真实性和导演的政治观点不说(这些仁者见仁智者见智,毕竟这是韩国的电影),我觉得一部电影,看完了能够让我思考的,那就是一部好电影。</p> +<p>通过影片我看到了战争带给人们的苦难以及和平的珍贵,看到了生命的脆弱和人性的光辉。</p> +<p>片中很多情节充满血腥,很多情节又饱含温情,看到两兄弟最后战场离别的那一刻,我更看到了,作为一个男人的责任。</p> +<p>当镇泰倒下去,看着弟弟的背影死去,我只想说:&quot;镇泰是个爷们儿,纯的!&quot;</p>算法导论+《赤道和北极》=失眠https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/Fri, 20 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/<p>昨晚又严重失眠,本来想早早睡觉,便从书架上抽出一本比较枯燥的书(《计算机算法导论》)在睡前翻翻,我想这样可以很快睡着。</p> +<p>谁知竟越看越有精神,于是打开收音机,想找个唠叨的主持人催眠一下。</p> +<p>交通台正在放春晓主持的一档音乐节目,这个主持人声音比较有特点(就是那句:“身未动~~心已远~~让我们一起走吧~~~”)</p> +<p>正所谓:男有伍洲彤女有春晓,这俩人的节目用来边听边睡刚好。</p> +<p>忽听得一阵优美的吉他,竟是另一版本的《赤道和北极》,此歌旋律优美,再加上女歌手声线极美,不由得让人思绪万千。</p> +<p>此处省略1千字以后晚上再也不敢听这个音乐节目了,除非不想睡觉。</p>软件需求与“让你丫不戴帽子”https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/Mon, 16 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/<p>改了一天的软件bug,发发牢骚:</p> +<p>在软件开发过程中,开发人员最担心的不是客户提出的功能需求从技术上难以实现,而是客户往往毙掉你费尽心血开发的功能,然后天马行空地提出另一套思路,如果你抱着客户就是上帝的想法,满足了他们的变态要求,那么,苦日子接着就来了,因为这些变态的家伙会在软件的功能需求上反反复复、朝三暮四并乐此不疲。</p> +<p>比如你的程序完成了某一项任务后没有提示,他会说“为什么干完了不提示我一下?”</p> +<p>而如果你跳出来提示他又会觉得很烦“干完了为什么还要烦我一下?”,</p> +<p>最后只好弄成可配置,但人家又嫌配置起来太罗嗦,不人性化。</p> +<p>不多说了,想起来一个经典的笑话说兔子跟街上走着,迎面碰上了老狼。</p> +<p>老狼伸手就给他一大嘴巴,“让你丫不戴帽子”。  兔子很郁闷地回家了,弄一帽子戴着。  </p> +<p>第二天又碰上老狼了,又挨了一大嘴巴,“让你丫戴帽子”。  如是几次,总挨打。</p> +<p>兔子想,这么老挨打不是个事儿啊,不行,我得找老虎投诉去。  </p> +<p>刚到老虎家门口,就听老虎在屋里说话。  </p> +<p>你也不能老这么蛮不讲理打兔子阿,回头兔子找我投诉来,我也不好罩着你啊。</p> +<p>好歹咱面子上得过得去,我教你一招。  </p> +<p>下回你见着兔子,跟他说:给我弄点儿洗衣服的来。他给你拿肥皂来,你就打他一顿的,说我要的是洗衣粉,谁让你拿肥皂。他拿来洗衣粉,你也能打,说我要肥皂,谁让你拿洗衣粉。  </p> +<p>要不然你跟他说,去,给我找个女人来。他给你找个胖的,你打他一顿说我要瘦的;给你找个瘦的,你也打一顿,说我要胖的。  这样不结了,你也能打他,我面子上也能说得过去。”  兔子一听,得,咱也别投诉了,回家吧。  </p> +<p>第二天,兔子在街上又撞上老狼。老狼大喝一声:去,给我找点儿洗衣服的来。  </p> +<p>兔子不慌不忙:你是要洗衣粉阿,还是要肥皂啊?  </p> +<p>老狼一听,嗯?有一手阿。又说:去,给我找个女人来。  </p> +<p>兔子还是不慌不忙:你是要胖的啊,还是瘦的?  </p> +<p>老狼一听勃然大怒,伸手就给兔子一个大嘴巴,  </p> +<p>让你丫不戴帽子!</p>有阵子没打篮球了https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/Sun, 15 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/<p>今天继续发扬每到周末就睡不着觉的光荣传统,比平时上班起的还早。</p> +<p>洗了个澡,饶有兴致地做了顿早餐(花了一个小时,吃了5分钟)。</p> +<p>还没来得及把电视频道翻看一遍,大宝就喊我去打篮球,二话不说,换好球鞋飞奔球场。</p> +<p>抓起篮球才发现,已经很生疏了,找不到一点儿手感。</p> +<p>来回跑二十分钟就开始喘气了,还好,4对4的接波比赛中总算懵进了几个球。</p> +<p>渐渐找到感觉,跑动越发积极,身法也越来越快。队友一个快速传球,我以迅雷不及掩耳盗铃之势抓住球,猛跑两步,转身!跳起!腿抽筋儿了!</p> +<p>看来我是得注意一下平时的锻炼了。</p>我的吉他梦https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/Mon, 09 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/<p>一个人太无聊,一天没说话,吃饭睡觉打豆豆,傍晚时分,想出去活动活动,溜达到客厅,看见角落里那把吉他,突然想活动活动手指。</p> +<p>我拿起琴,吹了吹上面的灰,呛得我咳嗽了半天,调了调弦,闭上眼睛,富有激情地弹了一曲“两只老虎”,希望没有吵到邻居,虽然听到楼上孩子的哭声,但是我觉得那是该喂奶了,小孩子还小,还不能体会音乐的灵魂,怎么可能感动的哭呢?</p> +<p>其实我十年前就开始学琴了,不过绝对不是为了泡妞而学,而是怀着对音乐的满腔热情而学,虽然也曾幻想抱着吉他站在某个女孩的门前,大声唱着“冷雨夜我不想归家,盼望你会知,可知道我滴心&hellip;.”,</p> +<p>无奈我手指上的茧子退了一层又一层仍是达不到理想的水平,只能一个人的时候弹两曲消遣一下而已。</p> +<p>大学的时候,每当我在寝室练琴就有隔壁同学跑过来说:“你们谁在这把床推来推去的?弄得地板咯吱咯吱的?”,</p> +<p>有一次,管理宿舍的大爷一路咆哮着就上来了:“说过多少遍了!寝室里面不能做饭!”,</p> +<p>“没有啊,大爷”“还说没有!我在楼下都听到炒菜的声音了!”&hellip;&hellip;</p> +<p>他们就这样把我成为一个吉他手的梦想给残忍地扼杀了。</p> +<p>后来我迷恋上了编程(也能活动手指),吉他就被我丢到了角落,偶尔还会拿起来拨两下就像今天这样。</p> +<p>当然了,这个梦并未完全破灭,我仍然幻想着某天弹吉他能像现在敲电脑键盘这么熟,刚工作那会儿我给自己定了计划,觉得无论如何也得在三十岁之前把吉他练成,现在,眼看着快三十了,吉他上的灰却越来越厚。</p>注册atl组件返回错误0x80040154的原因及解决办法https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/Wed, 28 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/<p>今天用VC6做了一个com组件,使用ATL模板创建,结果在使用regsvr32.exe注册时死活注册不上,返回0x80040154,使用ErrorLookup查看错误号结果是“没有注册类别”,百思不得其解,即使以前可以注册的组件现在也无法注册了,怀疑是操作系统的问题。</p> +<p>上网搜索了半天,最终还是在微软的官方网站上找到了一点儿蛛丝马迹:</p> +<p>“WhenyouregisteranATLserver,youmightgeterror0x80040154(Classnotregistered).ForDLLs,REGSVR32.exereturnsthiserror.ForEXEs,thecallto_Module::</p> +<p>RegisterServer(CComModule::RegisterServer)in_tWinMain()returnsthiserror.”,</p> +<p>接着往下看“InstallATL70.dll(orATL.dllforearlierversionsofVisualStudio)intheWindows\SystemorWinnt\System32directory.YoudonothavetoregisterATL70.dll,however,youmustregisterATL.dllbyusingRegsvr32.exe.ThereareUNICODEandANSIversionsofATL70.dllandATL.dll.Installtheappropriateversiononthetargetoperatingsystem(thatis,UNICODEforMicrosoftWindowsNT,andANSIforMicrosoftWindows95orMicrosoftWindows98).”</p> +<p>哦,原来是system32下面的atl.dll没有注册,打开C:\windows\system32\找到atl.dll后使用regsvr32注册,然后再注册我的组件,成功!</p> +<p>结论:怀疑在安装、卸载软件或使用优化软件进行系统清理的时候不小心反注册了atl.dll,导致使用atl模板创建的com组件均无法注册。</p> +<p>ps:两年前就遇到过此问题,当时无法搞定,只得重装系统,今天总算找到问题的原因了</p>eeepc 使用技巧(3)vim搭建c开发环境https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Mon, 26 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/<p>今天继续记录eeepc的使用经验,闲言碎语不要讲,说一说如何安装c、c++开发环境以及在vim下进行编程。</p> +<p>安装开发环境很简单,不用单个安装gcc、make什么的,只需sudoapt-getinstallbuild-essential,这里面就什么都包含了(gcc、g++、gdb、make等)。</p> +<p>然后就找个合适的编辑器吧,系统自带vim,vim太强大了,这里不能多说(我也是刚开始用它),但是只有最基本的编辑功能,要想比较方便地进行开发需要安装如下vim插件:ctags、Taglist、supertab、c.vimctags其实不算是插件,算是单独的程序,用来生成vim能识别的标签文件,这样在vim写代码时就可以进行函数、变量、枚举类型之间快速定位了。</p> +<p>taglist可以在vim窗口的左侧生成一个tags列表,里面就是用ctags生成那些标签,方便随时定位到这些标签supertab是个增强版的代码补齐插件,写代码时按tab键可以弹出自动补齐列表供选择,如“p”可以自动补齐为“printf”c.vim是进行c、c++编程时的必备插件,能使vim变成一个为开发c语言定制的一个ide,拥有自动注释、F9编译,自动补全等强大功能。</p> +<p>插件装好后,在vim的vimrc文件里需要加上syntaxon这样每次启动vim时,它的语法高亮功能就自动打开了。</p> +<p>写一段代码试试看vimhelloworld.c#include&lt;stdio.h&amp;gt;intmain(){printf(&quot;helloworld&quot;);return0;}:wq退出编译:gcchelloworld.c-ohelloworld</p> +<p>运行:./helloworld</p>《Are You The One》以及流鼻血https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/Fri, 23 May 2008 00:00:00 +0000https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/<p>AreYouTheOne,这是一首好听得不得了的歌曲,来自荷兰WithinTemptation乐队,主唱Sharon绝对是超级女声,有着高亢的声线、鬼魅一般的嗓音。</p> +<p>从听第一遍就喜欢上这首歌儿了,让我停不下来,反复播放,直至流鼻血。曲中3分13秒开始的那一段电吉他solo实在是荡气回肠。</p> +<p>Areyoutheone?你是他么?Thetravellerintimewhohascome.进入我生命的陌生人Tohealmywoundstoleadmetothesun.治愈心伤,播撒阳光Towalkthispathwithmeuntiltheendoftime.结伴走在生命的小路上Areyoutheone?你是他吗Whosparklesinthenightlikefireflies.萤火虫般流彩的目光Eternityofeveningsky.对视,在永恒的夜空Facingthemorningeyetoeye.直至晨曦来到Areyoutheone?你是他吗Who'dsharethislifewithme.与我共度此生Who'ddiveintotheseawithme.与我在深海偎依Areyoutheone?你是他吗Who'shadenoughofpain.受尽创伤Anddoesn'twishtofeeltheshame,anymore.不愿再心伤Areyoutheone?你会是他吗Areyoutheone?你是他吗Who'sloveislikeaflowerthatneedsrain.他的爱是雨中的花朵Towashawaythefeelingofpain.冲去了忧伤Whichsometimescanleadtothechainoffear.不再迷茫彷徨Areyoutheone?你是他吗Towalkwithmeingardenofstars.一起走在群星之下Theuniverse,thegalaxiesandMars.火星,银河,宇宙Thesupernovaofourloveistrue.见证我们爱的迸发</p> +<p>ps:流鼻血可能与这首歌曲无关,这两天比较上火,昨天下班时,看到路边有课桑树,上面结满了熟透了的桑椹,于是我童心顿起,顺手摘了几颗放在嘴里,还挺甜的。</p> +<p>小时候挺爱吃桑椹,到了季节就大把大把的吃,大人总是吵着不让多吃,说吃多了会流鼻血,没想到我昨天刚吃了几颗,今天就流鼻血了。</p> +<p>再ps:从今天开始,北京算是进入真正的夏天了,突然就热了起来,非常热,办公室里热的像蒸笼,空调也不管用,当然,天气这么热也有Intel的功劳,整个电脑机箱热的像是路边烧烤用的碳火炉,再烤下去,晚饭就能吃“烤人腿”了。</p>eeepc 使用技巧(2)https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/Thu, 22 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/<p>接着昨天的继续,系统修改为中文了,软件源设好了,输入法也装好了,接下来就想看看小e(姑且把我的eeepc叫做小e)的多媒体性能咋样儿了(其实就是看看能不能看片儿)。</p> +<p>小e自带有mplayer以及前端的SMPlayer,播放一般视频(mpeg、wmv)效果挺不错,遗憾的是还不能播放rmvb,上网查了一下原来是缺少相应的解码包,</p> +<p>于是乎,就找到了这个win32codecs下载后将这个压缩包解压后的内容放到/usr/lib/codecs下即可,系统默认并没有codecs这个文件夹,需要手动创建sudomkdir/usr/lib/codecs,然后复制cp/home/user/win32codecs/*/usr/lib/coecs。</p> +<p>好了,在命令行输入mplayer/home/user/*.rmvb-f-z很流畅的画面就出现了,此时的-f和-z参数分别代表全屏和自动缩放画面到窗口大小。然后我又尝试播放了一下720p的高清视频(wmv格式),小e也能轻松胜任,画面很清晰,也很流畅,看来mplayer这个软件写的很棒,虽然是命令行格式的,但是我喜欢。</p>eeepc 使用技巧(1)https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/Wed, 21 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/<p>买了eeepc900一段时间了,翻遍很多论坛,也慢慢摸索一些基本使用技巧,不敢独享,一直想写出来,只是最近工作很忙,加上地震带来的全国性灾难,导致最近几天也没心思去写。</p> +<p>现在,让我整理一下思路,慢慢把经验写下来,也防止我以后会忘记。</p> +<p>eeepc可以安装xp操作系统,但是我喜欢linux,买了eeepc有一半是为了使用linux,所以我不会把他自带的系统干掉然后安装xp系统,windows操作系统我实在是用腻了。</p> +<p>因为只有装了linux系统的机器才能让我感到完全是“自己的”。</p> +<p>eeepc900自带有定制的linux操作系统,而且是基于debian的发行版,哇,有了debian一切都好办了。</p> +<p>debian有强大的apt-get软件包管理系统,但是eeepc的说明书上吓唬我说“用户不能自行安装其他软件”,咳,管他呢,我查了一下,原来是在apt的source.list里没有相应的源而已,而且eeepc里也自带了“新立得软件管理器”只是没放出来而已。</p> +<p>好了,先从“控制台”开始,刚拿到手的时候,我费了老半天的劲儿才找到控制台窗口打开的办法,看来asus实在太担心用户的智商了。答案是按“Ctrl+Alt+T“就能调出控制台,要知道在Lxiux下有了”控制台“才算有了系统的操纵权啊!</p> +<p>由于默认是英文版的,让我先把系统从英文调整到中文吧在控制台输入/opt/xandros/bin/locale_dialog然后在弹出的对话框中选择简体中文,重启机器,就变成中文系统了。</p> +<p>随机带的软件太少了,而且大部分还是给小孩子用的,根本不够我用,本地化之后就我就开始想办法安装软件控制台输入<code>vim/etc/apt/sources.list</code>发现该文件就两行</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">debhttp&amp;#58;//update.eeepc.asus.com/p900p900maindebhttp&amp;#58;//update.eeepc.asus.com/p900/enp900main增加如下内容:debhttp&amp;#58;//debian.cn99.com/debianstablemaincontribnon-free +</span></span></code></pre></td></tr></table> +</div> +</div><p>然后:wq存盘退出sudoapt-getupdate这样就有了debian的基本源,现在开始使用apt-getinstall疯狂安装想要的软件吧!</p> +<p>由于我这个版本默认的输入法管理器是gcin的,虽然也有拼音输入,但是不符合大陆人的输入习惯,所以我首先要安装scim,在控制台输入sudoapt-getinstallscimscim-chinese,要想使用scim还需要一个软件sudoapt-getinstallim-swich,然后把gcin卸载sudoapt-getinstallgcin-好了,切换到scim吧,输入sudoim-switch-sscim然后重启机器,输入法管理器就变成scim啦!</p> +<p>唉,eeepc的键盘实在是太小了,在上面打字实在是太累,先写这么多,估计也就有十分之一吧,剩下的以后再慢慢写。</p>测试从scribefire发布bloghttps://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/Tue, 20 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/<p>使用firefox在eeepc900上发布测试用无内容</p>我的妈妈https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/Sun, 11 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/<p>从小学到初中的作文课,几乎每个语文老师都布置过“我的妈妈”这篇作文,</p> +<p>很多同学文笔细腻,感情丰富,写出的作文真实流畅,总被老师挑选出来作为范文朗诵,让我很是羡慕,</p> +<p>不过,我作文水平极差,在课堂上拼命咬着铅笔头,恨不得把橡皮也吞下去,还是凑不够字数。</p> +<p>很想回忆一下当时写的别字连篇的作文,不过一晃过去那么多年,现在一个字儿也想不起来了。</p> +<p>母亲节了,我再写一篇试试。</p> +<p>我的妈妈我妈今年五十岁了,虽然她看起来还不到五十岁,而且在我心目中也就是四十来岁的样子,我总是笑着跟她说:“妈,您是越活越年轻啊!”每当这个时候她总是高兴得合不拢嘴,心里美滋滋的。</p> +<p>是的,没错!我说的是实话,我妈是挺年轻的。</p> +<p>我妈是一名出色的乡村教师,我小的时候,爸爸在邻村的中学教书(巧了,我爸也是老师)平时不在家里住,我妈就在我们村的小学,条件极为艰苦,当时为了带我,她吃了不少苦头,一方面是她平时工作任务很重,乡村学校缺老师,她一个人要教好几门功课,跨越几个年级,另一方面是我体弱多病,当时家里又不富裕,照看我这样儿的孩子要比别的孩子多费几倍的心血。</p> +<p>但是她很要强,工作很优秀,同时在她的精心培养下我也茁壮成长,到了今天,我可以很负责任的说,她很成功。说到对我培养,我刚才说的好像有点儿不太谦虚,呵呵,我所指的成功就是,她把我培养成了一个善良的人,并且给了我一个快乐的童年。</p> +<p>想到小时候,其实我妈的脾气还是有点儿火爆的,我要是做错了事儿,挨揍也肯定是跑不掉的。但那都是因为我不懂事,打我那是怕我将来成为一个无用人,而且,所谓“打在儿身,疼在娘心”啊,我挨完揍,她也偷偷抹眼泪。</p> +<p>虽然先说了我妈会打我,但那毕竟是少数,大部分时候妈妈是和蔼可亲的,而且对我也百般呵护、百依百顺,要什么就给什么,想吃什么就做什么,现在回想起来,她对我简直是太溺爱了。</p> +<p>妈妈心灵手巧,我小时候没什么高级玩具,别人折的纸船、纸飞机、风车什么的,她拿到手后,拆开一看,马上就会折了,而且马上把我教会(看来,我也很聪明)。</p> +<p>小孩子都爱拆东西,别家的孩子拆了可能会挨揍,但是我妈见我拆东西不但不打我,而且还带我一起拆玩具,有次我把我仅有的很贵的“坦克”玩具给拆坏了,我妈费了好大的劲儿才把它修好。</p> +<p>后来我上学了,还是保留了这个爱好,拆拆装装的东西弄了一整箱,从收音机到电子表应有尽有,我觉得那些才是最好的玩具。我妈的心灵手巧并非表现在这个方面,她的缝纫技术也是出类拔萃,邻里之间有人要做衣服肯定让她帮着剪衣样,有次她给我做了个棉袄,样式比商场里面卖的还新潮,惹得很多孩子也吵着要这样儿的。</p> +<p>织毛衣也不在话下,不但图案精美,而且速度飞快,有次,天气突然转冷,妈妈怕我妹妹冻着,一夜之间就给我妹妹织了一顶帽子。</p> +<p>现在,妈妈还是能跟上时代的潮流,我给老家装上了电脑,她也很快学会了打字,想我了就上QQ和我聊两句,周末我们还会视频一下,聊聊一周的家长里短。</p> +<p>随着妈妈年龄的增长,她对我们也越来越依赖了,有时候陪着她聊天,我随便说个笑话就把妈妈逗得前仰后合,笑得眼泪都快下来了。她每天都上网上看看,虽然并不是每次都和我聊天(怕我工作忙),但是她说,看到我的QQ也在线,心理就很踏实了。</p> +<p>今天是母亲节,一个感恩的节日,身在遥远的北京,我坐在电脑前,写一点儿文字,衷心祝愿我的妈妈以及天下所有的妈妈都幸福安康。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">慈母手中线 +</span></span><span class="line"><span class="cl">游子身上衣 +</span></span><span class="line"><span class="cl">临行密密缝 +</span></span><span class="line"><span class="cl">意恐迟迟归 +</span></span><span class="line"><span class="cl">谁言寸草心 +</span></span><span class="line"><span class="cl">报得三春晖 +</span></span></code></pre></td></tr></table> +</div> +</div>有了压力你就喊https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/Fri, 25 Apr 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/<img src="https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/20080424.png" alt="Featured image of post 有了压力你就喊" /><p>周末和几个哥们儿喝酒,喝完了哥们儿提议去K歌,很久没K了,我在包厢里抱着话筒死活不肯松手,再一次展现了&quot;麦霸&quot;的风范。</p> +<p>借着酒劲儿我愣是把一首首温柔的情歌咆哮出了&quot;摇滚&quot;加&quot;死亡金属&quot;的味道,那声音,比杀猪好听多了。</p> +<p>没办法,情歌就是得用真实的声音来诠释,而和朋友一起喝完小酒后的情感往往是奔放的、原始的、撕心裂肺的。</p> +<p>管你是青藏高原还是回到拉萨;是左等右等(RightHereWating)还是加州招待所(CaliforniaHotel);</p> +<p>是国粹京剧还是家乡地方戏,一律来者不拒,而且必须是原调!</p> +<p>那一刻我觉得,就是帕瓦罗蒂过来飙高音咱都不惧他!</p> +<p>唱完歌,觉得通体舒畅,酒也解了,一切的压力都烟消云散,腰也不酸了,背也不疼了,一口气儿也能上5楼了。</p> +<p>突然想起一句名言,在这儿给他改一改,就叫&quot;有了压力你就喊!&quot;</p> +<p>&ndash;由sbabybird于4/24/200809:00:00下午在从容地狂奔上发表</p>梦,神经衰弱https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/Fri, 28 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/<p>昨晚,编程时有一问题困惑很久,反复调试总是失败,无奈,只得放弃,怀着郁闷的心情睡去。</p> +<p>睡梦中恍恍惚惚仿佛有人叫我,原来是一白胡子老头,声音洪亮(略有东北口音),精神矍铄,约我相谈技术话题。</p> +<p>只见该老头唾沫横飞,指指点点,谈笑间从身后掏出一笔记本电脑,当场就把VC6启动起来。我定睛一看,我靠!这不就是我白天写了一下午的那些代码么?</p> +<p>老头边解说边将我的代码略为修改,我顿时感到豁然开朗,遂给我演示了一下运行效果,果然很流畅,问题得以解决。</p> +<p>惊喜使我从梦中醒来,回忆刚才的场景,起床倒了一杯水,拿起纸笔,十分虔诚地把刚才的思路记了下来,我甚至能记住当时的函数和变量的名称。</p> +<p>一大早到了公司,启动环境,将代码输入电脑,居然能编译通过!怀着激动的心情运行之,程序吭都没吭一声就崩溃了,看着巨大的“内存错误窗口”,我不禁哑然失笑,梦里的东西怎能当真呢,还以为有仙人助我,原来是我神经衰弱。</p>最讨厌你们这些“黑客”,一点儿技术含量都没有https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/Wed, 26 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/<p>四年前,那时公司还是使用adsl+“代理服务器”上网,有一天早晨我来到公司,发现代理服务器的桌面有一个word文档,打开一看,里面写着“嘿,哥们儿,你的机器被我黑了,我发现你是使用adsl上网的,而且发现不少漏洞,我顺手给你打了补丁,希望你能重视上网的安全性&hellip;&hellip;”</p> +<p>当时令我大吃一惊,因为一方面我们确实不太重视网络安全的问题,另一方面那家伙也太猖狂了吧。</p> +<p>后来我遇到一“高人”,将此事说与他听,他遂露出鄙夷态度:“最讨厌这些傻B“黑客”,一点儿技术含量都没有”,而后掏出几款软件,“扫描器”、“嗅探器”什么的,现场给我演示了一把。</p> +<p>靠!原来会使用这些黑客软件就是黑客啊!</p> +<p>我在公司内部的服务器上建了个小论坛,使用阿帕奇+php+bbpress实现,用于记录兄弟们平时积累的编程经验,由于管理员疏忽,开了远程服务,密码又过于简单,前两天不慎又遭“毒手”,这次那厮没有手下留情,把论坛数据库给我删了,唉,真他妈防不胜防啊!害得我还得花时间恢复。</p> +<p>我说这些自以为是的傻B黑客,能不能用用脑子,有能耐你把我msn空间的广告给我去了,不好好待着干嘛总出来犯贱呢,你妈逼你的是吗?</p>听音乐,要关灯https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/Sun, 23 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/<p>周末,晚饭毕,心绪烦乱。关窗,关灯,音箱的音量调大,陷入黑暗之中,只有机箱闪烁着微弱的蓝光。</p> +<p>如果音乐是海洋,就让我随着醉人的旋律坠入海底,让音乐洗去我的浮躁和忧伤。</p> +<p>如果音乐是双手,就让跳动的音符轻轻拨动我的心弦,跳入我浑浊的内心,然后在上面荡起点点涟漪&hellip;&hellip;</p> +<p>哈哈,关了灯听音乐能让我这样语无伦次,也算是神奇了,所以有句话叫:“爱生活,爱拉灯!”</p>公园里的“鸟巢”https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/Fri, 21 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/<p>每天早晨都穿过这个公园,随手拍了,那个小房子是公园的管理人员为一只野生的鸟儿(大概是野鸭子之类的吧)搭建的,该鸟去年来此地盘再也不走了 </p>老家的电脑中毒了https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/Thu, 20 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/<p>春节回老家,我把老家的电脑升级了一把,并安装了宽带。</p> +<p>这样我在北京就可以随时和父母视频通话了,老妈的打字水平也飞速提升,没事儿就上线和我聊两句。</p> +<p>为了安全起见,我临走时反复叮嘱,不要再安装其它软件(担心流氓软件)。</p> +<p>但是在选择杀毒软件时我有点儿为难了,nod32挺好用,可是咱没买正版,用破解的怕他们用不好,刚好那时卡巴斯基推出了一年免费试用的活动(其实我都两年不使用卡巴斯基了),就贪便宜用了,而且开启了实时监控和每天的病毒库更新。</p> +<p>看来便宜果然没好货,好日子没过多久,老妈就打电话告诉我机器奇慢无比,我当时还颇为自信的告诉她启动杀毒软件的查杀毒程序进行病毒查杀即可,怎奈何断断续续查了一夜(没办法卡巴就是这么卡)病毒之后,倒是找到木马病毒若干,但就是无法清除,一开机cpu就资源占用100%,我又没法亲手操作,看来这个系统是没救了。</p> +<p>还好当时留了一手必杀技,那就是“一键ghost恢复”!</p> +<p>实在不行就“恢复”吧。</p> +<p>不知道是网络环境太差还是咱们的安全意识不够,反正对于一个非计算机专业的人员来说,现在上网实在是处处有陷阱、时时有风险,杀毒防毒软件形同虚设,真是让人担忧啊</p>春天来了,小树发芽了,鼻子发炎了https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/Wed, 05 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/<img src="https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/20080305.png" alt="Featured image of post 春天来了,小树发芽了,鼻子发炎了" /><p>不经意间,她已经来到了,她带来了吹面不寒的杨柳风儿,带来了满树的桃花(树在哪儿呢?),不过她带给我的第一个礼物却是鼻炎,听说过两天还会给我带点儿沙尘暴啥的,是的,她就是春天。</p> +<p>连日来,和煦的春风吹得我昏昏欲睡,口干舌燥。一闻到春风的气息,我得鼻子就发干发痒,看来我的鼻炎是按时发作了。</p> +<p>戒烟、戒酒、戒辣椒,多喝开水、多吃水果、多吃蔬菜,这些残酷的要求我虽然严格遵守,但鼻子仍是一天天痛苦下去,而且一旦休息不好还有流鼻血的危险,万一哪天在街上碰到一个丑女,然后鼻子再不争气的流血了,那就糗大了!</p> +<p>&ndash;由sbabybird于3/05/200805:22:00下午在从容地狂奔上发表</p>Every Night In Beijing 我办了暂住证https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/Sat, 01 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/<p>EveryNightInBeijing我办了暂住证为了迎接今年的奥运会,北京最近开展了“依法登记办证,共创平安奥运”专项活动,所有来京的暂住一个月以上、16岁以上的人员,都要依法主动到暂住地派出所办理暂住证,否则&hellip;.</p> +<p>作为一个外地来北京需要“暂住”超过一个月而且16岁以上的民工,我当然得积极相应,虽然今天是周末我还是起了个大早(其实周末早起是我的坏毛病之一),带齐了证件前往派出所去排队,没办法,现在办这个的人太多,办个暂住证比买春运的火车票还难,听说有人带着干粮半夜就前去排队了。</p> +<p>到了地方一看,嚯!果然是“peoplemountainpeoplesea”,我拿出春运买票劲头,费了两个小时的吹灰之力,终于挤到柜台前(以前没去过派出所,姑且就叫柜台吧),刚要用颤抖的双手递上证件,只听得“啪&hellip;啪&hellip;”两声,来自工作人员拍打的键盘,伴随着一句地道的好莱坞英语:“oh!shit!”</p> +<p>然后曰:“网断了!”我真是百感交集,有一种想扁人的冲动,但是看他们手忙脚乱地样子又想到这儿是派出所,也就没忍心发作。</p> +<p>时间一分一秒地过去,办证的队伍快排到门外,终于其中一位工作人员大喊一声:“我找到了!”</p> +<p>这一嗓子喊的不亚于老阿(阿基米德)想当年那架势。</p> +<p>原来是哪位仁兄不小心踢掉了交换机的电源,网线都断了,插上之。</p> +<p>终于办完了,赶紧揣进怀里,生怕过来几个人把它给撕了,然后把我送去锻炼身体。</p> +<p>“EveryNightInBeijing我要去办暂住证不敢在午夜问路,怕走到了采石场EveryNightInBeijing你可别喝太多酒把酒高歌的男儿,也得去办暂住证&hellip;&hellip;”本故事纯属虚构,如有雷同,那实在是巧合</p>找个地方藏起来https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/Wed, 27 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/<img src="https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/20080227.png" alt="Featured image of post 找个地方藏起来" /><p>前两天与老同学用msn聊天,虽然都工作了几年,但是均感叹现在遭受的压力巨大,无论是来自工作的还是来自家人的。</p> +<p>聊到后来,都有找个地方躲起来的想法,躲到一个没有人认识的地方,或深山老林,或几角旮旯。</p> +<p>像鸵鸟那样,找个沙堆把头埋进去如何?</p> +<p>&ndash;由sbabybird于2/27/200805:37:00下午在从容地狂奔上发表</p>小广告https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/Sat, 16 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/<p>大年三十,老爸安排我贴春联,贴之前先要把房门给清理一下,本着认真负责的态度,我拿着抹布撅着屁股擦了半天。</p> +<p>但是有两个小广告不知道用的什么胶水粘的,贴在上面太顽强了,抹布对其不起作用。</p> +<p>这个难不倒我,从厨房拿来清洁球,发扬&quot;只要功夫深,铁杵磨成针&quot;的精神,终于把这两个小广告拿下,看着擦的光亮如新的防盗门,我揉了揉发酸的腰,露出了满意的笑容。</p> +<p>狂奔到屋里去邀功,谁知我妈刚看了一眼就说:&quot;哎呀!那两个小广告哪儿去啦?那上面有送水的电话号码,我平时就照着那个打呢!</p> +<p>&quot;我:&quot;@#¥%@#%……@#%……&quot;吐了一口鲜血接着说:&quot;没事儿!对门儿房门上贴的还有!&quot;</p> +<p>&ndash;由sbabybird于2/16/200811:03:00上午在从容地狂奔上发表</p>回京了,开工了https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/Wed, 13 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/<p>回家的日子过得飞快,感觉就像做了一场梦,醒来后发现我还是坐在电脑旁,噢,又开工了。</p> +<p>&ndash;由sbabybird于2/13/200809:50:00上午在从容地狂奔上发表</p>夕阳无限好,只是看不清https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/Fri, 01 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/<img src="https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/20080201.JPG" alt="Featured image of post 夕阳无限好,只是看不清" /><p>&ndash;由sbabybird于2/01/200802:12:00下午在从容地狂奔上发表</p>早晨的路灯(随手拍)https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/Thu, 31 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/<img src="https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/20080131.JPG" alt="Featured image of post 早晨的路灯(随手拍)" /><p>未经过修饰</p> +<p>&ndash;由sbabybird于1/31/200808:19:00上午在从容地狂奔上发表</p>车票买好了,现在只想一步跨回家去!https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/Tue, 29 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/<p>每年的春运,我都要受到生理和心理的双重摧残,无休止的排队买票,心惊胆寒地挤上车,反复地转车,汽车、火车、汽车&hellip;,从坐在公司的椅子上到躺在老家的沙发上,就像经历一场洗礼。</p> +<p>感谢上天的保佑,我终于买到今年的车票(这期间的经历和见闻不堪回首,要是说出来肯定是要被&quot;和谐&quot;的),捏着这张沾满了汗水的车票,站在西站挤满了人(失望的和绝望的)的售票大厅,我知道,虽然万里的长征刚迈出了第一步,但我的心&quot;秋&quot;的一下子就飞到老家了!</p> +<p>&ndash;由sbabybird于1/29/200803:43:00下午在从容地狂奔上发表</p>相见恨晚-YOBO(友播-yobo.com)!https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/Mon, 14 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/<p>忍不住要推广一个WEB2.o站点:在Diglog上发现了这个在线音乐站点,非常棒的音乐体验!</p> +<p>进去之后首先进行一个小小的心理测试,这样网站就知道了我的音乐口味(基本上挺准确的),然后自动的挑了一些曲子放给我听,连接速度非常快,丝毫没有停顿的感觉,就像是在听本地文件。</p> +<p>听了一会儿我才发现这个网站是个巨大的曲库,分类很清晰,可以随时输入歌手名或者歌曲名搜索歌曲,老歌新歌都有,曲目丰富的令人发指。</p> +<p>听完点播的歌曲之后系统会自动挑一些与此歌类似的曲子播放,有时候关联的挺准,但有时就太跳跃了,从一个古典的古筝曲子一下跳到了一首流行歌曲上来了。</p> +<p>总之,这是个不错的站点,让我再感叹一声:&quot;Web2.0就是好啊!&quot;PS:不知道这么多中外曲目的版权问题是怎么搞定的。</p> +<p>再PS:希望她能像last.fm那样推出客户端软件,这样就不用总开着网页听歌了。</p> +<p>再再PS:希望YOBO的中文名字改一改,叫这个有点儿俗气。</p> +<p>&ndash;由sbabybird于1/14/200804:04:00下午在从容地狂奔上发表</p>听广播的感觉https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/Thu, 03 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/<img src="https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/20080103.png" alt="Featured image of post 听广播的感觉" /><p>这两天见同事提了个巨大的收音机(比板砖还大),一问才知道,原来是怀旧,想找回曾经&quot;听广播的感觉&quot;,手机带的FM和电脑上的网络电台听起来太没感觉了,于是跑到商场挑了个最大号的扛了回来。</p> +<p>这不禁勾起了我的回忆。</p> +<p>接下来让我把镜头推回到六年前,那时我在郑州上大学,除了上课(如果有课的话)就是整天抱着电脑啃C语言,当时既没上网也没电视可看,接受信息的渠道只有一台收音机(夸张了?)。</p> +<p>节目很丰富,给我印象最深的就是郑州交通广播电台夜在里十二点准时播出的《大丈夫日记》(什么?你以为是《深夜悄悄话》?你想哪儿去啦?),电台主持人每天都以特有的腔调(学不来)朗读一个幽默段子,类似于现在网上的恶搞段子,但是格调要高一些,文章不长,但是很有趣,调侃人生,嬉笑怒骂,文字本身就写的很风趣,主持人再用那富有磁性的声音给读出来,听着真是一种享受。</p> +<p>最后再播放一首歌曲,而且在播放这首歌儿之前一定以一种蛮横的语调说一句:&quot;给男人听的歌,你可以不会唱,但..你..必须听!&quot;我第一次听到老谭(不好意思老谭,你永远都是25岁)的《难舍难分》就是在这个节目里,当时真是觉得太好听了:&quot;忘不了你眼中那闪烁的泪光,好像知道我说谎,我茫然走错了地方,却已不敢回头望&hellip;&hellip;&quot;。</p> +<p>可以说,这个节目是我当时最好的精神食粮了(不知道现在还存在吗),有一阵子我几乎天天等到十二点,我想所谓&quot;听广播的感觉&quot;大概就是这样吧。</p> +<p>好了,回到现在,现在的广播已经很难找到一个精品节目了,不是太矫情就是插广告,而且广告还他妈全是医院、医药的广告!所以,时代的潮流是不可逆转的,广播电台再做垂死挣扎也无济于事,被网络取代已是必然的事情,所以你怀里就算抱个巨大的收音机也不会再找到&quot;听广播的感觉&quot;了!</p> +<p>&ndash;由sbabybird于1/03/200805:40:00下午在从容地狂奔上发表</p>写完了年终总结!https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/Mon, 31 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/<p>明天就是2008年了,我的老毛病还是没改,每到假期或周末就兴奋的睡不着觉,今天刚到早上六点就爬了起来。想起还有一篇年终总结去要写,于是打开电脑,整理思路,先回忆一下今年我都干了什么,再展望一下明年我要干啥,不知不觉地,一篇年终总结就新鲜出炉了!由于我的生活就是工作,工作就是生活,所以呢,这篇总结其实就是个工作总结!不多说了,新年快乐!&ndash;由sbabybird于12/31/200707:54:00上午在从容地狂奔上发表</p>2007就要过去了https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/Sat, 29 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/<img src="https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/20071229.png" alt="Featured image of post 2007就要过去了" /><p><img src="https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/20071229.JPG" +width="360" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="77" +data-flex-basis="185px" +> +再过两天就要迎来激动人心的2008年了,时光如水,生命如歌,每一天都是崭新的,每一年都是十分有意义的。今天是2007年的最后一个工作日,此刻我想起了《甲方乙方》里的那句台词:&quot;1997年过去了,我很怀念它。&quot;2007年的工作依然是十分忙碌,工作占据了我生活中的大部分时间。由于长期缺乏锻炼,身体开始逐渐向亚健康状态发展。早饭经常不吃,晚饭又吃的太晚,导致消化系统不太好使,肠胃胃经常发出抱怨。最后吃了西药、中药若干,一日三餐再也不敢怠慢,肠胃才慢慢恢复正常。所以正是2007年我才认识到了健康的重要性,也更深刻地认识到了幸福的真谛!总之2007年对我来说是成长的一年、成熟的一年、有美好收获的一年(我很佩服我自己能认识到这些)。希望在2008年,我和我的家人都健康幸福!&ndash;由sbabybird于12/29/200704:41:00下午在从容地狂奔上发表</p>口腔溃疡了https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/Wed, 26 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/<img src="https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/20071226.png" alt="Featured image of post 口腔溃疡了" /><p>这两天吃的有点儿上火,口腔溃疡了。&ndash;由sbabybird于12/26/200712:41:00下午在从容地狂奔上发表</p>圣你的圣,诞你的诞https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/Mon, 24 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/<img src="https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/20071224.png" alt="Featured image of post 圣你的圣,诞你的诞" /><p>圣诞节?平安夜?我继续狂奔ing&hellip;&hellip;&ndash;由sbabybird于12/24/200705:30:00下午在从容地狂奔上发表</p>冬至为啥吃饺子?https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/Sat, 22 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/<img src="https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/20071222.png" alt="Featured image of post 冬至为啥吃饺子?" /><p>今天是二十四节气里的冬至,阴天,据说要下雪。按照风俗习惯,我中午饱餐了一顿饺子。为什么冬至这天要吃顿饺子?我还真是不知道,上网查了一查,答案原来是这样:古时候有个老中医(不是华佗啊),叫张仲景,老家是南阳稂东人,有一阵子在长沙当大官,后来不知怎地就干不下去了,于是回老家,时值冬季,在路上看到白河两岸乡亲面黄肌瘦,饥寒交迫,不少人的耳朵都冻烂了。便让其弟子在南阳东关搭起医棚,支起大锅,在冬至那天舍&quot;祛寒娇耳汤&quot;医治冻疮。他把羊肉、辣椒和一些驱寒药材放在锅里熬煮,然后将羊肉、药物捞出来切碎,用面包成耳朵样的&quot;娇耳&quot;,煮熟后,分给来求药的人每人两只&quot;娇耳&quot;,一大碗肉汤。人们吃了&quot;娇耳&quot;,喝了&quot;祛寒汤&quot;,浑身暖和,两耳发热,冻伤的耳朵都治好了。后来人们为了给嘴馋找个理由,就有了&quot;冬至那天吃饺子,再冷也不会把耳朵冻烂&quot;的传说。ps:仔细想想,咱们中国的节日都与&quot;吃&quot;的关系十分密切,正月十五吃元宵、端午节吃粽子、中秋节吃月饼、腊八吃米饭(八宝饭)&hellip;&hellip;&ndash;由sbabybird于12/22/200702:25:00下午在从容地狂奔上发表</p>电池放冰箱的实验结果https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/Wed, 19 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/<p>做一个实验&ndash;关于把手机电池放冰箱里关于这个实验,是这样干的,我的那块旧手机电池电量用光后,先放到冰箱的冷冻室里,冻了48个小时,然后取出,使其自然升温,充电3个小时,充满。放入手机里开始使用,感觉与之前无明显区别,仍然是仅待机两天。不知是我处理的方法不对,还是这个流言本身就是假的。想想也是,要是手机电池冻一冻就能变成新的,那人家电池的生产厂家不早就饿死了?&ndash;由sbabybird于12/19/200708:13:00上午在从容地狂奔上发表</p>看看牛人用纸箱自制的电脑机箱!https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/Wed, 19 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219.JPG" alt="Featured image of post 看看牛人用纸箱自制的电脑机箱!" /><p><img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-1.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-2.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-3.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-4.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +有句话说的好:&quot;牛人无处不在!&quot;公司一哥们儿用笔记本电脑的包装箱DIY了一个电脑机箱,用起来挺爽,就是不知道散热咋样儿!还有就是好像还没有加光驱。看起来挺象那么回事儿吧?呵呵,还是联想的纸箱子。放倒了再看看接口部分,该有的都有。千万别以为是联想新出的pc啊!为了给cpu散热,所以上面也开了个口cpu和cpu风扇&ndash;由sbabybird于12/19/200705:50:00下午在从容地狂奔上发表</p>做一个实验--关于把手机电池放冰箱里https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/Sat, 15 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/<img src="https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/20071215.JPG" alt="Featured image of post 做一个实验--关于把手机电池放冰箱里" /><p><img src="https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/20071215-1.JPG" +width="480" +height="360" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +偶然听到一个关于手机电池的传说:&quot;把老化的电池用纸包好,放进冰箱里冻上两天,这个电池就会起死回生。&quot;去网上搜索一下,发现很多人都在介绍这个&quot;绝招&quot;,也有人表示质疑,但是好像没有人亲身试验过,刚好我昨天换下来的那块电池还在,就顺手试一试这个方法,如果管用当然最好,如果不好使(这个可能性最大),那就把这条流言给终结了吧。我的那块旧电池包好放在冰箱的冷冻室里等候试验结果!&ndash;由sbabybird于12/15/200709:34:00上午在从容地狂奔上发表电池放冰箱的实验结果</p>新买了手机......电池!https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/Fri, 14 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/<p>新手机是没买,买了块电池倒是真的,我那块旧电池已经不行了,开始倚老卖老,随便打个电话就报电量低甚至关机,无奈选不到满意的新手机(请参见这里),而且手里这个旧手机其他一切正常,于是我决定先买块电池,再凑合用一段时间,起码用到咱们大陆开始上3G。</p> +<p>不过也有网友比较悲观,在网上发帖子说:&quot;大陆3G能用时,家祭无忘告乃翁!&quot;跑到卓越网上选了块原装电池(据说是原装),今天就给我送了过来,由于电池个头太小,我怕快递公司送货的拿着太轻松,觉得没有挑战性,会不乐意,就顺便再买了两本书,其中一本就是大名鼎鼎的霍大爷的《时间简史》留着我失眠的时候看,另一本是比较浅显的《万物简史》留着我上厕所时看。&ndash;由sbabybird于12/14/200701:00:00下午在从容地狂奔上发表</p>到那时候https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/Thu, 13 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/<img src="https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/20071213.png" alt="Featured image of post 到那时候" /><p>下班了,还在干活儿ing,瞅瞅我的任务栏:</p> +<p>一边开着TOAD配置数据库,一边开着Word看着文档,在Word的隔壁是牛逼的VC在那儿咔咔编译程序,SourceSafe正努力地Checkin一堆文件(脸都憋红了),点了两下&quot;开始菜单&quot;却不再搭理我,想开个Firefox看两个网页都不行。</p> +<p>唉!什么时候,硬盘像内存那么快,内存像硬盘那么大,就好了什么时候,内存像CPU缓存那么快,CPU缓存像内存那么大,就好了哼哼,到那时候&hellip;</p> +<p>估计是,Windows上来先把资源吃掉三分之一,然后TOAD和VC这些用来干活儿的工具再吃掉三分之一,最后打开Firefox把剩下的全吃掉!</p> +<p>&ndash;由sbabybird于12/13/200705:49:00下午在从容地狂奔上发表</p>第一场雪&堵车https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/Mon, 10 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/<img src="https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/20071210.png" alt="Featured image of post 第一场雪&堵车" /><p>早晨,出了门才知道下雪了,下的还不小,赶紧返回取雨伞。</p> +<p>在路灯的照射下,雪花还挺大的,好歹也是第一场雪,感觉挺不错的。</p> +<p>坐上车就傻眼了,公交车走的比蜗牛还慢,上高速的路口堵成一团,上了高速路还是堵成一团。</p> +<p>花了平时两倍的时间才到公司。</p> +<p>&ndash;由sbabybird于12/10/200709:23:00上午在从容地狂奔上发表</p>小鸟坐公交https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/Sat, 08 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/<p>今天在公交车上看到一个老大爷上车带着他的鸟(此处的&quot;鸟&quot;没有别的意思),离得挺远,赶紧掏出相机,抓拍两张。</p> +<p>不过也看不出这是什么鸟(麻雀?),被老大爷拴在棍子上应该不太爽吧。</p> +<p>&ndash;由sbabybird于12/08/200709:50:00上午在从容地狂奔上发表</p>妹妹开始写博客https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/Thu, 06 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/<img src="https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/20071206.png" alt="Featured image of post 妹妹开始写博客" /><p>中午收到小妹发过来的链接,打开一看,竟是她在新浪写的博客。</p> +<p>我粗略地看了一下,已经写了几篇文字了。</p> +<p>很显然地,她的作文比我写的要好,女孩子的感情细腻和多愁善感都表现在字里行间。</p> +<p>她这个年纪不去qq空间里玩&quot;踩啊踩&quot;,却在新浪开博客,套句比较流行的话说:&quot;我很欣慰啊!&quot;光阴荏苒,白驹过隙,转眼间小妹大学就要毕业,离开校园马上就要面临现实中残酷的就业环境,在网上和我聊了几句,言语里流露出对前途的迷茫。</p> +<p>是啊,我也曾感到过没有方向(现在何尝不是呢?),但是脚下的路总是要自己去走,未来还是把握在自己的手中。</p> +<p>我忽然想起某位牛人说过的话:&quot;睡着前最甜蜜;黎明前最黑暗;成功前最渺茫!&quot;</p> +<p>&ndash;PostedBysbabybirdto从容地狂奔at12/06/200705:40:00下午</p>大脑年龄的测试https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/Wed, 05 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/<img src="https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/20071205.png" alt="Featured image of post 大脑年龄的测试" /><p>午睡醒来,收到同事发来的Flash小游戏,据说可以根据你的反应速度测试出大脑的年龄,我试了一下,最后结果是:我的大脑有30岁了。</p> +<p>还算靠谱,比实际老了点儿(没办法,这都是干活儿累的啊),记得有次我做心理年龄测试,结果是60岁了。</p> +<p>(试试看)&ndash;由sbabybird于12/05/200701:26:00下午在从容地狂奔上发表</p>关于短信https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/Mon, 03 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/<img src="https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/20071203.png" alt="Featured image of post 关于短信" /><p>昨日喜收老友短信:“天气骤变,温度下降,注意身体,多喝水,以防感冒!”</p> +<p>遂感叹友情比暖气还要温暖,欲回复信息以示感谢,孰料又收其短信一条:“别回了,我的短信包月没用完,不发都浪费了!”</p> +<p>我靠!</p> +<p>另一哥们儿,初上网,受某网站蛊惑(告其可免费发短信),通过该网站为我发“免费”短信一条,结果害我收到若干条此网站发来的广告短信,不得不打电话给这一哥们儿,重复强调“天下没有白吃的午餐”这条真理。</p>A Dream !https://sbabybird.github.io/p/a-dream/Sat, 17 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/a-dream/<img src="https://sbabybird.github.io/p/a-dream/20071117.png" alt="Featured image of post A Dream !" /><p>听说国家大剧院下个月就要正式开演了,而且最低票价只有30元?</p> +<p>要真是30块能去看的话,俺就省吃俭用一阵子,看看到时候能不能去感受一下&quot;艺术的魅力&quot;。</p> +<p>&ndash;由sbabybird于11/17/200711:01:00上午在从容地狂奔上发表</p>捡到一首老歌--Ladyhttps://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/Sat, 17 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/<p>在Winamp的电台上捡到这首歌Lady,马上被kennyrogers的嗓音吸引了。</p> +<p>&ndash;由sbabybird于11/17/200702:10:00下午在从容地狂奔上发表</p>天气真的很冷了https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/Thu, 15 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/<p>天气真的很冷了,走在路上,我的鼻涕都冻出来了。</p> +<p>搭车时,公交车都冻得无法启动。</p> +<p>坐车时,腿冻得直打颤。</p> +<p>开门时,牙冻得直打架。</p> +<p>&ndash;吃饭去!&ndash;由sbabybird于11/15/200708:13:00下午在从容地狂奔上发表</p>Hello, Android!https://sbabybird.github.io/p/hello-android/Wed, 14 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/hello-android/<img src="https://sbabybird.github.io/p/hello-android/20071114-1.PNG" alt="Featured image of post Hello, Android!" /><p>到家后立即下载Android的SDK,按照帮助文档的提示,顺利运行伟大的&quot;HelloWorld!&quot;</p> +<p>&ndash;由sbabybird于11/14/200709:14:00下午在从容地狂奔上发表</p>下载了android的SDKhttps://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/Wed, 14 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/<img src="https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/20071114.PNG" alt="Featured image of post 下载了android的SDK" /><p>听说android放出SDK了,而且Google为了鼓励开发者开发出NB的应用特意发了1000万美元的红包,如果你能开发出有创意的精品软件,说不定也能拿到一笔钱呐!</p> +<p>我也去下载了SDK,这个是android的模拟器的样子,还挺漂亮的。</p> +<p>等晚上回家先写一个helloworld再说!</p> +<p>&ndash;由sbabybird于11/14/200704:53:00下午在从容地狂奔上发表</p>blogspot又封了?https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/<img src="https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/20071110.png" alt="Featured image of post blogspot又封了?" /><p>刚刚好了没几天,访问blogspot又&quot;该页无法显示&quot;了。&ndash;由sbabybird于11/10/200703:33:00下午在从容地狂奔上发表</p>偏色https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/<p>清晨的时候&ndash;由sbabybird于11/10/200709:02:00下午在从容地狂奔上发表</p>晚上有雾https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/<p>晚上有雾&ndash;由sbabybird于11/12/200708:00:00下午在从容地狂奔上发表</p>微波炉https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/<img src="https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/20071110-1.png" alt="Featured image of post 微波炉" /><p>画图板&ndash;由sbabybird于11/10/200703:31:00下午在从容地狂奔上发表</p>伪LOMOhttps://sbabybird.github.io/p/%E4%BC%AAlomo/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%AAlomo/<p>用A610拍的,后期经过调色,模仿LOMO的那种效果,嘿嘿。&ndash;由sbabybird于11/10/200708:53:00下午在从容地狂奔上发表</p>午休https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/<img src="https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/20071109.png" alt="Featured image of post 午休" /><p>&ndash;由sbabybird于11/09/200712:58:00下午在从容地狂奔上发表</p>小鸟在脚下飞翔https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/<img src="https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/20071112.png" alt="Featured image of post 小鸟在脚下飞翔" /><p>小鸟在脚下飞翔&ndash;由sbabybird于11/12/200701:56:00下午在从容地狂奔上发表</p>夜路https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/<p>路灯下我的影子&ndash;由sbabybird于11/10/200708:50:00下午在从容地狂奔上发表</p>一碗牛肉面https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/<img src="https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/20071113.png" alt="Featured image of post 一碗牛肉面" /><p>一碗牛肉面,我的晚饭&ndash;由sbabybird于11/13/200706:00:00下午在从容地狂奔上发表</p>早上去打了疫苗https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/<img src="https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/20071113-1.png" alt="Featured image of post 早上去打了疫苗" /><p>前两天单位组织体检,一切正常,就是没有乙肝的抗体,印象中上学的时候已经打过疫苗,不过人家医生说,可能年代太久远了(靠,有那么远么?)</p> +<p>抗体丢了,无奈,再去接种就是了。</p> +<p>打针时,问人家会不会疼?</p> +<p>人家护士答的很爽快:&quot;你就放心吧,我打了20年的针。。。。&quot;,</p> +<p>等我疼完了又接着说:&quot;没有一个不疼的!&quot;</p> +<p>&ndash;由sbabybird于11/13/200710:40:00上午在从容地狂奔上发表</p>重温Winamphttps://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/<img src="https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/20071108.JPG" alt="Featured image of post 重温Winamp" /><p>有几年不用Winamp了,最近Winamp又退出了10周年纪念版版。</p> +<p>我下载了一个,感觉听听里面的网络电台什么的还挺不错的(边上班边听欧美最流行的音乐哈)。</p> +<p>而且新版还包含了podcast的功能,可以搜索订阅网上的播客。</p> +<p>在家听音乐的话,我还是选择foobar。</p> +<p>&ndash;由sbabybird于11/08/200707:49:00下午在从容地狂奔上发表</p>昨天我二十四https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/<img src="https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/20071111.png" alt="Featured image of post 昨天我二十四" /><p>昨天我二十四,今天我二十五</p> +<p>&ndash;由sbabybird于11/11/200712:49:00下午在从容地狂奔上发表</p>Under a Violet Moonhttps://sbabybird.github.io/p/under-a-violet-moon/Sat, 22 Sep 2007 00:00:00 +0000https://sbabybird.github.io/p/under-a-violet-moon/<p>nan</p>关于电脑配置的遐想(瞎想)https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/Tue, 28 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/<p>偶然翻看书架上的旧书,发现我以前在上面随手胡乱写了一个“梦幻配置”,那时应该是2000年,根据当时的硬件发展状况,我写了一个可望而不可及的硬件配置。</p> +<p>具体什么配置就不说了(大概就是纯平显示器、笨三的cpu),反正现在让你用你还嫌慢呢。</p> +<p>现在六、七年过去了,心里又痒痒的,就让我再写一个可望而不可及的硬件配置吧,看看这个配置何时会过时。</p> +<p>中央处理器:IntelCore2QuadprocessorQ6700(4核,为了安静,散热采用水冷系统)</p> +<p>主板:IntelD975XBX2内存:海盗船TWIN2X2048-6400×4(共8G)</p> +<p>外存储:SanDisk64G闪存硬盘(用于系统存储),2TB磁盘阵列(用于文件存储)</p> +<p>显卡:丽台NVIDIAQuadroFX5600×2(每块显卡可接四台屏幕)</p> +<p>主显示器:Apple30&quot;CinemaDisplay(上网、影视、游戏)</p> +<p>副显示器:Apple20&quot;CinemaDisplay×6(地理、虚拟现实、平面设计等)</p> +<p>CreativeSoundBlasterX-FiElitePro+罗技Z5500(用于电影、游戏、非专业录音)</p> +<p>主板数字光纤输出+外置解码器+JBL监听音箱(用于欣赏音乐)</p> +<p>操作系统:自己动手定做(编译)Linux版本,桌面环境采用GONE(如果有兴趣就自己写个操作系统)</p> +<p>备注:机箱易采用高厚度、高散热静音机箱,此系统搭建完成后将用于书房,共七台显示器需要用到特殊的显示器支架。</p>What i've donehttps://sbabybird.github.io/p/what-ive-done/Sat, 18 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/what-ive-done/<p> </p>Don't Cryhttps://sbabybird.github.io/p/dont-cry/Sat, 11 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/dont-cry/<p>nan</p>live space 的表现让我很失望https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/Sat, 04 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/<p>不知是不是因为升级还没有进行完成,最近livespaces总是不能正常操作,用firefox访问有时还会出现乱码或者页面布局乱套,速度慢的惊人,资源占用很厉害。</p> +<p>再加上他有太多的限制,这些问题都让我感到对livespace失望透顶。</p> +<p>衷心希望Googleblogger能够早日解封!</p>昨天去电影院看了《憨豆先生的黄金周》https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/Sat, 04 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/<p>昨天去电影院看了《憨豆先生的黄金周》,感觉还不错,憨豆先生还是那么滑稽可乐,有着独特的幽默方式,我虽然没有笑到肚皮抽筋、掐着大腿,但是90分钟的电影还是让我由衷地笑了半个小时(累计)。</p> +<p>这里就不介绍剧情了(一般来说这种喜剧基本没剧情可言),网上到处都是介绍。</p> +<p>整个影片从头到尾憨豆先生都拿着那只SONY新出的DV,我估计SONY投了不少钱,还有就是片子的音乐配的还可以,轻快明亮。</p> +<p>总的来说还值得一看。</p> +<p>现在的电影院真是不景气啊,能容纳500号人的大厅坐了不到100人,不过挺爽的,谁让他们把票价订的那么贵,现在的票价是我小时候电影票价的100倍</p>在 live spaces 单篇日志中插入音乐 测试https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/Mon, 30 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/<p> </p>理发2007https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/Sun, 29 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/<p>对于我来说,理发是件很痛苦的事情,可能是有心理障碍吧。</p> +<p>小的时候被老爸强行摁住理过一次发,我像一只小鸡那样被夹在腿上无力反抗,由于整个过程我都在不停地叫骂那个理发的,所以那家伙下手还不含糊,把推子使得嚓嚓直响,对着我的头皮和耳朵可劲儿招呼。</p> +<p>整个过程是漫长的、痛苦的、令人发指的。</p> +<p>最后我看着镜子里的凸了吧唧的头,还不忘使劲儿拧了一把鼻涕抹在老爸的裤腿上。</p> +<p>此事后来成为笑谈,但爷儿俩在理发这种事情上一直都持有不同的观点,</p> +<p>当然了,我还只能提出强烈抗议、强烈不满、强烈谴责,但采取进一步措施的权利还是保留了。</p> +<p>一直到现在,当老爸跟我说:“快去把头发理一理!”时,我还是乖乖的狂奔去理发。</p> +<p>不过,现在我离老爸远了,他管不了啦(主要是没看见),我可以尽情地把头发留到很长,然后再一下剪到很短(一般是回老家之前)。</p> +<p>但是我的这种习惯却造成了另一件事情,给我理发的人极度不爽。</p> +<p>每当我拖着留了几个月的长发走进理发店,告诉理发的师傅给我可劲儿剪短时,伊总是很扭捏,假惺惺地跟我说:“哎呀!你的发质这么好,又好不容易留了这么长,剪了多可惜啊!”</p> +<p>其实谁不知道伊是想省点儿事儿,想拿剪刀在那三下两下剪完糊弄我。</p> +<p>于是我只好说:“嗯嗯,本来是想留长的,但是现在突然想开了,不想留了,还是麻烦您给我剪短吧!”</p> +<p>最后等着人家极不情愿(还很费时)地给我剪完,我才满意离去。</p> +<p>但是这招下次就不能用了,所以我总是选择不同的理发店,反正这玩意儿多得是!</p> +<p>今天我又理发了,从五一到现在大概有三个月了,很抱歉,又让一个理发师傅不爽了一把,不管他,这次理完了,谁知道我什么时候有心情理下回呀!</p>轻轻的,我将整蛊你https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/Tue, 24 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/<p>天气这么闷热,生活这么枯燥,何不搞点小把戏调剂一下气氛呢?</p> +<p>要是你现在刚好在办公室里,那么恭喜你了,下面我将教你几个在下秘密收藏的整蛊手段(一般人我不告诉他)。</p> +<p>前提条件:</p> +<p>1、你们用计算机办公;</p> +<p>2、你们使用的是Windows操作系统;</p> +<p>3、你要整蛊的同事没有暴力倾向;</p> +<p>4、他刚好暂时离开一下。</p> +<p>好了,准备好了就开始行动吧!</p> +<p>场景一:“我的密码被改了?!”</p> +<p>如果你的这位同事有锁定计算机的习惯,那就刚好实施一下,在他计算机的锁定状态下的密码框里提前敲入一个空格,这样一般他回来时不会发觉,等他输入完自己的密码后,会发现进不去了!(因为密码前面多输入了一个空格)。</p> +<p>场景二:“用来干活儿的软件没有反应了!”</p> +<p>如果他没有锁定计算机的习惯,那么刚才那个办法就不凑效了,怎么办呢,找到他用来工作的软件(VC,Word、Excel等),把帮助菜单里的“关于(about)”对话框给打开,然后用鼠标把对话框拖动到一个屏幕上看不见的地方。哈哈,等着吧,他回来会发现他用来工作的软件怎么也不听话了,无论点击哪儿都没有反应。</p> +<p>场景三:“鼠标不好使了”</p> +<p>现在大家都用光电鼠标了,而光电鼠标全靠它屁股底下的那个激光眼,没错!你又猜对了,拿个小纸团把它那个小眼睛堵住,赶紧去吧!鼠标瞎了之后就罢工了。</p> +<p>以上方法屡试不爽,我都亲自实验过,不过是别人在我身上实验的(这帮败家玩意儿)。</p> +<p>注:以上操作纯属娱乐!产生后果自负。</p>我心目中的完美手机https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/Mon, 23 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/<p>我手里这个Nokia6230用了3年了,买的时候多加了一块电池。前两天,其中一块电池寿终正寝了,剩下的这块也差不多了,感觉就像我的胃,一吃就饱,一会儿就又饿了。</p> +<p>我看着手里这个灰头土脸得就像从垃圾桶里捡回的手机,不禁有了换掉它的念头。</p> +<p>到网上翻了翻信息,结果让我很失望,感觉Nokia不太长进,眼看着人家索爱扛着音乐、摄像的大旗在市场上占了一席之地,自己也跟着别人的屁股转,也在那儿搞音乐手机、摄像手机,却忘了自己的特色。</p> +<p>没办法,别的牌子不愿意用,老N最近推出的新机不是我看不上就是我的钱包不让看(靠,就这还敢冒充Nokia的粉丝呀?)。</p> +<p>苹果的iPhone最近倒是炒得挺火,看起来也挺不错,可是总觉的那玩意儿离咱太遥远了,还是不多看了,以免中毒。</p> +<p>在查看了众多机型之后,长叹一声:“究竟什么样的手机才能让我满意呢!”</p> +<p>总结以下大概要满足以下几点: +1. 屏幕要足够大、分辨率不用极高但也不能太低 +2. 反应速度一定要快(目前我还没有发现一款智能手机反应速度飞快) +3. 个头不能太大、重量不能太沉 +4. 电话、短信功能好用 +5. 电量一定要持久,待机越长越好(这点最重要,功能再强没电也是白扯) +6. 非国产(这个不用多说)     </p> +<pre><code> 这些要求不过分吧?像什么摄像、音乐等功能都没要求,可愣是找不到这样一款手机,反复对比后发现还是目前手上的这个更合要求一些。 +算了,将就用吧。 +结果,昨晚做梦,梦见我也设计了一款手机,以上条件除了第六条其余都满足,取名就叫“nbPhone”把苹果的Phone的风头给压下去了,乔布斯都跟我急了。 +</code></pre>真正牛逼的人,终究会牛逼起来!https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/Sat, 21 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/<p>一个胖子,一个相貌平平而且豁牙的胖子,一个相貌平平而且豁牙的卖手机的胖子。</p> +<p>这样的人参加选秀节目,如果你是评委的话,你会让他通过海选吗?</p> +<p>如果他告诉你他要表演的是歌剧的话,你会跳下评委台把它踢出演播厅吗?!</p> +<p>我想你会的,因为当时英国的那个选秀节目的评委也是这样想的。</p> +<p>PaulPotts,这个我刚刚看到的英国小伙子,就是这样参加选秀节目的。</p> +<p>当他极不自然地站在舞台上,傻傻地告诉评委他要表演歌剧,评委们都笑了,表现得有些不耐烦。</p> +<p>可是,当他深情地唱起今夜无人入眠,当他那与帕瓦罗蒂一样激昂的男高音在演播厅响起时,赛场沸腾了!所有的人都站了起来,评委刁在嘴里的铅笔掉了下来,掌声雷动!</p> +<p>这段由朋友发过来、我甚至懒得看的视频,看得我头皮发麻。</p> +<p>在起了一身鸡皮疙瘩后,我的眼睛也不争气地湿润了(震撼,感动)。</p> +<p>看了别人写的介绍,我了解到,这个叫Paul的小伙子有着不太顺利的人生际遇(大多数人如此吧),但是他从未怀疑过自己的理想,仍然执着地追求着歌剧表演的艺术魅力,直到他被生活所逼而不得不靠卖手机来糊口时,仍未放弃!</p> +<p>终于,上天给了他最后一次机会,他成功了,他向世人再一次的证明了:真正牛逼的人,终究会牛逼起来!试了一下,msn的空间居然还可以插入视频!</p>几天不见,LiveSpace变了https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/Fri, 20 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/<p>我都已经好几天没有照看我的msn空间了(最近太累),今天访问一下,发现界面居然有了变化(别三日,刮目看),嗯哼,原来是微软的Live小组把咱的空间给升级了。</p> +<p>首先是界面的整体风格有了改变,我审美不行,看不出是好看还是难看,感觉貌似顺眼一些。空间上方仍然悬挂着那个大大的广告条(我一直看它不爽),工具条的宽度变宽了,这样会占用更多的空间。</p> +<p>进入空间的“自定义”功能,发现提供的模板多了一些,但一个比一个不耐看,所以我什么也没有动,继续保持现状。一直希望Live空间能够提供类似WordPress那样的模板(多漂亮啊),现在看来,要走的路还比较长(Live小组继续加油啊!)。</p> +<p>不过话又说回来,空间里整那么多花里胡哨的东东也没用,看得让人眼花缭乱的也不爽,我还是喜欢简约一点的风格,最好是让人进入我的空间后,感觉就像是打开了windows的记事本(过分了吧)。</p> +<p>本来Google提供的那个blog挺好的,可是总是不能访问,还是老老实实的在微软提供的共享空间里得瑟吧。</p> +<p>最后,再鄙视一下我自己,这几天由于懒惰而没有更新空间的内容,太不像话了!</p>嘛儿叫幸福?介就叫幸福!https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/Fri, 20 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/<p>随着一阵悦耳的下班铃声,我提前结束了一天的工作,按照惯例,周末了,要去打球。</p> +<p>叫上同事,抱起篮球,飞快地奔向球场。</p> +<p>终于逃脱了闪烁的计算机屏幕,逃脱了无聊的工作计划,逃脱了漫长的会议,逃脱了郁闷的代码&hellip;&hellip;</p> +<p>各位观众,各位听众,也许你们刚刚打开电梯,现在为您直播的是&ndash;火星杯篮球锦标赛!</p> +<p>穿着运动鞋牛仔裤正在捡球的那家伙就是我,看呐,我在球场上尽情地狂奔,边打球边哼着歌曲“啊哼三分球,它在空中停留,漂亮的假动作,帅呆了我&hellip;&hellip;哦shit!球丢了”。</p> +<p>一口气打了两三个小时,直打到有人气喘吁吁,打到有人双腿抽筋,打到有人口吐白沫还不肯离去。</p> +<p>天渐渐黑了,球框渐渐虚无缥缈起来,收拾家伙,撤!</p> +<p>走到站牌,有车,有座,爽!上了高速,一路畅通,爽!</p> +<p>到了家里,贤惠的老婆已经把饭菜做好,菜做的色香俱佳,啤酒冰得温度适中。</p> +<p>如果这个时候你问我,什么是幸福?我会自在地夹一口菜,然后再悠闲地喝上一口啤酒,眯起眼睛跟你说:“嘛儿叫幸福?介就叫幸福!”</p> +<p>幸福像花儿一样。</p>给点儿钱让我买吃的吧!https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/Thu, 12 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/<p>加班后回家的路上,路灯十分昏暗,还没有吃晚饭,心情极度郁闷,我缓缓(没力气狂奔了)走向公车站牌,走着,走着,突然!</p> +<p>一个黑影窜了过来,他跟我说:“兄弟,要盗版光盘不?”</p> +<p>我没有理他,继续走,走着,走着,突然!</p> +<p>又一个黑影窜了过来,他跟我说:“兄弟,要发票吗?”</p> +<p>我没有理他,继续走,走着,走着,突然(靠,有完没完啊!)</p> +<p>一大一小两个黑影窜了出来,原来是一个中年妇女领着一个七八岁的小女孩儿,夜色中看不清面目。小孩开口说话了:“叔叔,给点儿钱让我买吃的吧,我都饿了一天了&hellip;&hellip;”</p> +<p>边说还边做有气无力状,大人也在一边附和。说得我心里一软,鼻涕快掉下来了,差点儿掏钱。</p> +<p>但是转念一想,我TM也饿了快一天啦,也没吃饭呢,再何况,她们的行为也太让我愤怒了,因为就凭这些个破烂演技拿来唬我也太侮辱我的智商了吧!</p> +<p>于是,我友善的冲她们说道:“小朋友,你看”我用手指了指马路,“往前走500米,那里有家派出所,你过去找警察叔叔要些吃的好不好?”</p> +<p>小孩一时不吭声(台词没背下来),大人接着说:“你就可怜我们,给我们几块钱,买包方便面也行啊!”(我靠,我这么晚了还没吃饭,我求您别勾引我的食欲了!)</p> +<p>我没办法,掏出手机,说:“既然你们不愿意亲自过去,那我帮你们打110吧&hellip;&hellip;”</p> +<p>这句话还没有说完,说时迟那时快,只听得“嗖嗖”两声,两个人全都不见踪影,公车站牌下只剩下我和随风飘舞的碎纸片(好身手!)。</p>测试一把google的在线翻译工具https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/Fri, 06 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/<p>听说google出了在线翻译的工具,而且还广受大家的好评,在美国举行的一次翻译比赛中还拿了冠军。</p> +<p>我虽不是google的粉丝但也对google的产品挺感兴趣的,于是赶紧凑个热闹,看看伟大的google能不能给我带来惊喜。   由于我只会中文,那就看看google的英译中的水平怎么样。</p> +<p>废话少说,赶紧拿来一首英文歌词《youneededme》(我最喜欢的英文歌曲之一)。</p> +<p>YouneededmeIcriesatearyouwipeditdryIwasconfusedyouclearedmymindIsoldmysoulyouboughtitbackformeAndhelpmeupandgivemedignitySomehowyouneededmeYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeAndIcan'tbelieveit'syouIcan'tbelieveit'strueIneededyouandyouwerethereAndI'llneverleavewhyshouldIleaveI'dbeafoolCauseI'vefinallyfoundsomeoneWhoreallycaresYouheldmyhandwhenitwascoldWhenIlostyoutookmehomeYougavemehopewhenIwasattheendAndturnedmyliesbackintotruthagainYouevencalledmefriendYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeOh,yes,youneedmeYouneededme</p> +<p>先试了一下整段翻译,把歌词复制进去,出来的结果让我忍俊不禁google自动翻译的文字:</p> +<p>你需要我,我喊了眼泪,你擦它干,我摸你清我心中我卖出我的灵魂,你买回来,我和帮助我,让我有点尊严,你需要我你们给了我力量单独再次面对世界走出自己再次你就把我小时在室内一个台阶那么高,我几乎可以看到永恒,你需要我,多欧需要我,我也不相信是你,我不能相信这是真的,我需要你和你的笔在此,我永远不会离开,我为何要离开我就是一个傻瓜,我的事业总算发现有人真的三白族你握着我的手,当它冷时,我输了,你带我家,你给了我希望钨母鸡,我是在年底把我的谎言放回真话的时候,你甚至骂我的朋友,你克须缴我力量单独再次面对世界走出自己再次你就把我高美无源一个台阶那么高,我几乎可以看到永恒,你需要我,你需要我哦,多欧需要我,你需要我</p> +<p>唉,比较失望啊,试一下google的翻译网页的功能吧,找到歌词的网页,然后让它翻译你需要我</p> +<p>Icriedatear我哭了眼泪Youwipeditdry你擦它干Iwasconfused我很困惑Youclearedmymind你清除了我的心Isoldmysoul我卖我的灵魂Youboughtitbackforme你买回来,我Andheldtheearth召开地球Yougavemedignity你给我尊严Somehowyouneededme某种程度上,你需要我Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Ican'tbelieveit'syou我不能相信这是你Ican'tbelieveit'syou我不能相信这是你Ineededyou我需要你Andyouwerethere你有AndI'llneverleave,whyshouldIleave?和我永远不会离开,我为何要离开?Ineededyou我需要你canIfinallyfoundsomeonewhoreallycares可我终于发现有人真正关心(Youneededme)(你需要我)Youheldmyhand你牵我的手Itwascold据冷AndIwaslost我失去了Youtookmehome你带我家Yougavemelove你们给我的爱ThatIwasattheend我是在结束Iturnedmylife我把我的生命BackintotruthagainYouevencalledme'friend'放回真话的时候,你甚至骂我'朋友'Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Youneededme你需要我Youneededme你需要我Oh,yes,youneededme哦,你需要我Youneededme你需要我</p> +<p>呵呵,这下看起来还像那么回事儿.感觉机器还是代替不了人啊.翻译有感情的东西总是那么生硬.</p>堵你千遍也不厌倦?https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/Wed, 04 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/<p>统计了一下我平时上班所需要的时间,要是堵车的话大概要一个小时多一些,要是特别堵的话大概要两个小时,要是跑步的话大概得三个小时多一些(推算的,可以忽略),要是夜里打车去上班的话大概得二十多分钟(极少,也可以忽略)。</p> +<p>所以我一天大概有三个小时是堵在路上的,这导致了我的胃口极差,身材日渐消瘦,远看像铅笔近看像挂历!每天我都要坐在车上长吁短叹:“GR的堵车啊!”</p> +<p>是什么原因造成了这样的状况?</p> +<p>原因有很多种,我想最直接的原因可能就是因为路上出现了车祸。</p> +<p>无论是蹭了一下车屁股还是挂了一下后视镜,双方都会停好车,把路占上,然后撅起屁股在那儿查看爱车的状况,最后再各自打电话叫人&hellip;&hellip;</p> +<p>这个时候你要是刚好在路上,你就会感觉你置身于车的海洋,一辆挨着一辆的汽车望不到头,一片喇叭声,让人透不过气来。每当我乘坐的公交车慢慢的拱过出事地点,往往还能看到出事的双方(或多方)在那儿撅着。</p> +<p>这种情况每天都要出现,所以每天都要堵车。</p> +<p>据说从8月7号到8月20号,北京的交通管制要进行奥运预演.这对我们这些挤公交车上班的来说真是莫大的好消息啊!我们又可以感受像去年中非论坛期间的那种一路畅通的超快感了!</p> +<p>不过,快乐永远是短暂的,过了那几天,还是得老老实实的坐在车去上体验“堵车不堵心”。</p>曾经,俺也DIY (怀念我的第一只音箱)https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/Mon, 02 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/<p>最羡慕那些有米的音响发烧友,手里攥着大把的钞票,买音响器材出手阔绰,有没有一双“金耳朵”不知道,反正当音响店的老板告诉他“这套音响,在听蔡琴唱歌的时候能听见她咽吐沫的声音”时,或者跟他说:“那套设备,在听交响乐的时候可以听见拉琴那小子不小心把曲谱翻掉在地上的声音”的时候,他们就会毫不犹豫的掏出几千乃至几万块大洋,把那些“宝贝”搬回家,反复的回放,听听蔡琴在什么时候换了一口气,或者听听吹长笛的坐在第几排。</p> +<p>我也曾在这方面痴迷过,但仅仅是痴迷,没有什么实质性行动,原因很简单,掏不起那些闲钱呐!</p> +<p>不过,在很早以前,读初中的时候就开始摆弄那些“音响器材”了,只是一堆喇叭,功率很小,大部分是从旧收录机上拆下来的,“音源”也就只有卡带,我曾试着把喇叭放到各种地方以调整他们的“音效”,比如放在蚊帐上除了可以在睡眠时有音乐环绕外还兼具“驱蚊”的效果,我为了得到更多的低音也曾把喇叭嵌入到书桌里(整个桌子就是音箱哈),甚至把喇叭放到洗衣机里,那音质真是惨不忍听。</p> +<p>反正受当时的条件限制,我也只能是像小孩摆弄玩具似的,玩一玩儿而已,毕竟当时升学才是最大的目标。</p> +<p>直到有一天,我翻看一本旧音响杂志,有人自制了个音箱,据说效果还不错,于是就动了自己也做一个的念头。</p> +<p>再后来,到了上中师的时候,有了大把的空闲时间(但还是没空闲的钱),决定纯手工制作一只“有源音箱”!说干就干,开始行动!首先考虑的是功放电路采用什么形式,当时最佳的方案是使用“LM-1875”功放芯片,但由于囊中羞涩,最终放弃,后来买来一块晶体管放大板,也算将就了,喇叭买了两只,一个高音,一个中低音(8寸),向我大舅要来了分频器。</p> +<p>让老家木匠邻居帮忙做了个音箱的框架,剩下的就是我和我的一个哥儿们亲自动手了。</p> +<p>箱体的材料比较奢侈,把我家的一个桌子给锯了(靠!太过分了)。</p> +<p>后来组装的时候才发现,我竟然忘了考虑功放的前级,没办法,再次求救与大舅,从旧收录机上拆下来一块板子作为前级(居然还可以调高低音调)。</p> +<p>就这样,前前后后忙活了有半个星期,我的音箱终于发出处女声了,这个时候音源已经是一台VCD,那个时候我好像对蔡琴不感兴趣,于是先听了一首陈慧娴的《归来吧》,真是天籁啊!我当时感动的鼻涕都快掉下来了!</p> +<p>当然了,我这么说是有一些夸张,其实音质不咋地,只是当时又没听过真正的音响,这只亲手做的音箱,让我体验到了充足的低音(说到低音,要感谢我的姥爷,他给了我一只大号的电源,具体功率不知道,反正很大很大),震耳欲聋的低音,就像是有人拿着锤子在敲打我的胸膛。</p> +<p>这只音箱在当时带给了我无限的快乐和满足感,后来就去省会读大学了,买了电脑,买了几百块的音箱,那只音箱就被我扔到了角落,上面布满了灰尘。</p> +<p>再后来,我干脆把它送给了我的大舅,听说他现在拿它当板凳,还挺结实的!</p>饭否,一群人的喃喃自语https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/Sat, 30 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/<p>国外新兴一个叫Twitter的Web2.0站点,听说最近很火爆,很多人在那里叽叽咕咕,说一些有想法但又不至于发一篇bolg的“废话”。</p> +<p>我去看了一眼,感觉跟那帮人文化差异挺大的也就没好意思去注册,但是国内的同志们也不示弱,一时间模仿该网站理念的站点如雨后春笋般涌现。</p> +<p>在这些国内的叽咕站点里,有朋友就给我推荐这个“饭否”,说是一个迷你Blog,像Twitter一样,只是大家都是中国人,叽咕的内容比较容易懂一些。</p> +<p>我这个人最爱尝鲜,就忍不住过去注册了一个帐号。</p> +<p>感觉还不错,可以绑定MSN,QQ等IM软件,方便通过IM软件在上面发言,甚至可以绑定手机,让你随时随地的把感受发到网上。</p> +<p>人气还是挺旺的,不断有人在上面喃喃自语,也不乏有一搭没一搭的聊天者。</p> +<p>发布的内容可以很无聊,比如“今天的天气真好”,也可以很有深度,比如“你们好啊,地球人!”</p> +<p>呵呵,由于没用多久,所以还不能多加评论,我怀我有自闭的倾向,现在有了“饭否”,偶尔在里面发一下实时的感受,发泄一下心情而已,就当我是面对着墙壁在一个人喃喃自语吧。</p>共享空间无法访问!惊得我一身冷汗!https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/Sat, 30 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/<p>早晨起来,像往常的周六一样,来到公司加班。</p> +<p>打开电脑,然后习惯性的访问我的msn空间,“该页无法显示&hellip;.”,不会吧,难道是网络断开了?</p> +<p>没有啊,空间主页还是可以访问的,怎么一切换到我的空间就“该页无法显示”了呢?</p> +<p>强制刷新浏览器还是不行,随便点了一个朋友的空间,可以访问。</p> +<p>完了!莫非我的msnspace被封掉了?</p> +<p>上网搜索一下,看看有没有出现同样问题的朋友,结果显示msnspace无法访问是常有的事儿,很多人都有过类似经历(国内用户),这其中的原因不言自明啊!</p> +<p>我开始回忆,在我的日志里面到底有没有不该出现的敏感词汇?</p> +<p>想了半天,答案是没有。可是要说是msnsapce的故障吧,别人的空间又是可以访问的,无奈只好跟微软的客服发了封电子邮件,暂时还未收到回复。</p> +<p>我刚开始写网络日志,不为影响别人的看法,只为记录一下暂时的心情,本以为放到网上比放在本地还安全(相信微软的技术水平),结果还给我来这一手,想记录的时候却无法访问了,弄的心里还挺难受,担心以前的日志会不会丢掉啊!</p> +<p>ps:就在刚才,它又突然可以访问了!</p>鲜果在线,让我尝一口鲜果https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/Thu, 28 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/<p>偶然在diglog里发现了鲜果在线这个网站,名字很好听,于是乎,我就点击进去看了看。</p> +<p>看了之后真有一种相见恨晚的感觉,这个站点本身不提供什么信息,只是提供一个在线的RSS阅读器,而且它提供的RSS频道都是根据大家的兴趣和订阅量进行排序的,也就是说,看某个频道的人越多,该频道就越靠前。</p> +<p>这样就可以看到大家都喜欢看的东西,那些垃圾信息不会浮上来了(感谢Web2.0啊!)。</p> +<p>在线阅读的操作也十分简单容易上手,而且界面清爽,有比较强大的自定义功能(我靠,怎么这么像托儿啊),我订阅了一些精品的频道,比如Engadget、Solidot、cnBeta等,顺便订阅了王小峰的“不许联想”(这个博客比较能扯淡,这算是夸他了)。</p> +<p>这下就不用Firefox的rss阅读器了,直接把订阅的频道放在鲜果在线里存储到网上,在家和在公司都能看到同样的新鲜信息了,重装系统也不怕,把东西都放到网上,我想这也是以后互联网发展的趋势吧&hellip;&hellip;</p> +<p>ps:其实我早就把收藏的网址也放到网上了,在Firefox里安装一个扩展&ndash;yoono,这个插件也很牛,有点儿像美味书签(del.icio.us),不过yoono最近增加了收藏整个网页的功能所以比较起来就更喜欢yoono。</p>归去来https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/Wed, 27 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/<p>雨后的空气格外清新,天气还没有完全放晴,乡间的柏油路上还是湿的,远处缓缓驶来一辆摩托车,骑车的人叼着烟,看起来懒洋洋的,十分惬意,没错,那就是我。</p> +<p>我这几天回老家了,这个机会十分难得,暂时逃开北京繁忙的工作,溜回老家,无拘无束,自由自在。</p> +<p>目光所及,尽是农田。</p> +<p>空气中还飘散着青草混合大粪的味道,也算是沁人心脾吧。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">别再徘徊沉寂的心灵 +</span></span><span class="line"><span class="cl">别再留恋破碎的回忆 +</span></span><span class="line"><span class="cl">大地迎春雷抛弃你满腹的忧虑 +</span></span><span class="line"><span class="cl">缤纷的彩虹等着你 +</span></span><span class="line"><span class="cl">别再犹豫等待的心湖 +</span></span><span class="line"><span class="cl">别再沉迷过去的旧梦 +</span></span><span class="line"><span class="cl">暖暖的春风走向那灿烂的天涯路 +</span></span><span class="line"><span class="cl">耀眼的阳光迎着你。 +</span></span></code></pre></td></tr></table> +</div> +</div>我拿什么拯救你!我的晚餐!https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/Wed, 27 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/<p>今天又一次雨中漫步,原因很简单,受天气预报的干扰我又没带伞(干嘛要说又呢?)。</p> +<p>拿起背包从容地奔向车站,嘴里也不忘哼着:“我能想到最郁闷的事~~,就是下雨却没有带伞~~”。</p> +<p>淋雨就淋雨吧,挤上车,去思考一个很严重的问题,我的晚饭吃什么?</p> +<p>别笑!这确实是一个很严重的问题。</p> +<p>我不能像老婆在身边时那样说:“随便吧,做啥吃啥”(虽然心里想着最好炒两个菜,再冰上一瓶啤酒)。</p> +<p>自己动手去做的话,倒不是嫌麻烦,只是吃我做的晚饭简直是虐待自己(大饼卷着馒头沾着米饭吃)。</p> +<p>吃晚餐在我眼中确实是非常重要的事儿,平时上班的时候,早饭总是很虚无缥缈,不堵车的时候就慢慢坐在包子铺里吃包子,堵车时就没准儿了,也许是一个鸡蛋饼,也许是一个肉夹馍,也许,也许只有一杯开水。</p> +<p>午饭就是普通的工作餐,千篇一律,除了米饭还是米饭。</p> +<p>所以说,一日三餐也就晚饭是顿饭,我把吃晚饭看作是一件很神圣的事情,虽然不必在每次吃晚饭前都焚香沐浴,但我也在吃饭前做个深呼吸,抛开一天的烦恼,菩萨保佑、阿弥陀佛、无量天尊、阿门!感谢上天又让我吃了一顿晚饭!</p> +<p>然后就对生活重新燃起热情,对工作又重新充满信心,活着不就是为了这顿晚饭嘛!</p> +<p>可是,现在,我看了看车窗外,雨停了,道路渐渐不再拥堵,我的胃却越来越堵,没有胃口,吃还是不吃,这是个问题。</p> +<p>下了车,路边的麻辣烫小摊熏得我的胃一阵抽搐,不远处的油炸臭豆腐老板正在卖力的吆喝,卖盗版书的小贩倒是省事儿,在大喇叭里循环播放“六块一本儿,随便挑随便拣&hellip;&hellip;”,喊得我头晕眼花,我真想冲过拿起他的喇叭然后在空中抛一个完美的弧线。</p> +<p>还是那个晚饭情节,不想在外面饭馆里吃,尤其是一个人在饭馆里吃。</p> +<p>拿起馒头,就着音乐和啤酒&hellip;&hellip;我怎么会舍得你走,这一去竟是几个秋冬请你好好珍重无须挂念我太多我的爱和从前一样这承诺当是万般重要尽管容颜会老这一生无以为靠我还是会爱你到老我不会让你苦恼也许我始终无法释怀我会假装一切都好。</p>我拧你!https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/Tue, 19 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/<p>电视上充斥着广告,其中不乏精品,看完之后让人心情舒畅然后心甘情愿的掏腰包去买他们的产品。</p> +<p>但是大多数广告都庸俗不堪,让人看得心慌气短、胃部抽搐、浑身起鸡皮疙瘩。</p> +<p>这其中不必说“收礼只收搓澡巾”,也不必说“洗洗更健康”,单就是那位一口气上五楼的大爷就能让人抓狂了。</p> +<p>时间长了,这些广告我吐啊吐啊的也就习惯了,对于这类垃圾广告也有了一定的免疫能力。</p> +<p>但是最近又有一个广告冲破了我的心理防线!那就是某饮料的变态广告“我拧你!”</p> +<p>画面上,一群疯子在那里晃来晃去的踢腿,就像得了羊癫疯似的,整个广告看了让人不知道他们在表达什么另类理念,还好导演没忘记让他们每人手里拿着一瓶该品牌的饮料。</p> +<p>我估计作者的思路来源与某天他的鞋里进了个小石子,然后他就不停的甩啊甩,一直甩不出来,直到喝了他那个饮料才甩了出来,于是就创作了这个广告。</p> +<p>关键是你在电视上恶心恶心我也就算了,在上下班的公交车上居然也循环的播放,而且还衍生出不同的版本出来,里面就没有一个正常人,都拿个腿在那儿踢来踢去的。</p> +<p>也许从某种层面上来说,这也是一个很成功的广告,我看见很多人吵着要下载那段抽风的音乐作为手机铃声,但是我绝对不会去喝一口那种饮料,我怕晚上会做噩梦,然后再一脚把被子给踢到床底下去&hellip;&hellip;</p>冰箱里的灯https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/Mon, 18 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/<p>你问:“把大象关冰箱里共分几步?”</p> +<p>答:“分三步,把冰箱门打开,把大象放进去,把冰箱门带上”。</p> +<p>你又问:“可是把大象关进去之后里面黑乎乎的大象不害怕吗?”</p> +<p>反问:“你怎么知道关上之后里面还是黑乎乎的?你确定关上门之后那个灯灭了吗?”</p> +<p>你:“~~~~~~”</p> +<p>这个问题曾经也困扰我很久,因为冰箱的门只要一打开那个灯就亮起来,可是关上门之后你又看不到里面,所以还是不能确定里面到底是什么情况。</p> +<p>听说国外曾经有人为这事儿想不开去自杀,更有人为此急得抓耳挠腮夜里都睡不着觉,直到他把冰箱的门上凿了个洞,看清了原来关上冰箱门后那个小灯真的灭了,这才安稳的睡去(估计这哥们是一环保人士,担心那灯太费电)。</p> +<p>我没像那位牛人那样的使用暴力,但也自有办法。当然了,作为一个正常人,去探讨冰箱里的灯到底关了没有,这种做法实在是有些偏执(这不神经病吗!),你就姑且看作我是好奇心使然吧。</p> +<p>反正,我的冰箱刚弄回来的时候我还真就动用了高科技手段&ndash;拍照手机,我那手机带了个30W像素的鸡肋摄像头这下派上用场了。也是分了三步,把冰箱门打开,把手机定了时(定时10秒后拍摄)放进去,再把门带上。</p> +<p>心中默念,时间到,开门取出,查看照片,出现了不可思议的结果!照片里那个灯竟然还亮着!再试一次,还是亮着。</p> +<p>我那叫一个晕,觉得被冰箱厂家给忽悠了,口口声声说节能,这得多耗不少电呐。</p> +<p>在仔细阅读了两遍说明书之后,总算恍然大悟,原来那不是普通的灯,它不仅仅担任了照明的工作(难道还用来制冷啊?),还兼具杀菌的功效,在关上门之后,它再持续照射几分钟食物,起到杀菌抑菌的效果。哦,原来如此,人家陈老师说了:“人不能无聊到这种地步!”</p>灭蚊记https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/Sun, 17 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/<p>又到了蚊子最猖獗的季节了,现在每晚都有蚊子在我耳边盘旋,嗡嗡的声音若隐若现,让我神经高度紧张,却又懒得起来招呼它们,无奈,硬着头皮睡去。</p> +<p>第二天胳膊腿上到处都是蚊子们留下的吻痕&ndash;小红疙瘩,奇痒难忍。我发飙了,对付蚊子,我要开始行动!刚开始我采用的是防守战略,听说食用葱姜蒜可以使皮肤排出的汗味具有天然的驱蚊效果,本想采用此方法,但是吃了大蒜那味儿我更受不了只得放弃。</p> +<p>还是在洗澡的时候多放点花露水吧,“六神特效驱蚊花露水”据说效果很好,洗完澡往身上狂撒,安静的躺在床上,等待蚊子飘然而来再飘然而去。</p> +<p>结果,效果欠佳,蚊子依然如故的为我唱着催眠曲,而且我还被花露水熏得神清气爽、失眠健忘。</p> +<p>防守看来不行,改变战略。</p> +<p>男人!就要对别人狠一些!对付蚊子也不例外!</p> +<p>狂奔去超市,买来“枪手”喷雾剂、“睡得香”电蚊香、电蚊拍、紫外光灭蚊灯等等,我要发起进攻了!</p> +<p>晚饭毕,拿起“枪手”对卧室一通疯狂扫射,再将蚊香点燃,整个房间烟雾弥漫,关紧房门,外面客厅里的灭蚊灯发出幽幽的清华紫光。</p> +<p>这下蚊子们彻底的玩完儿了,对不起了诸位,我已经够瘦弱了,您就给我留点儿血吧。</p> +<p>沐浴后,推开卧室门,兴冲冲准备打扫战场,刚推开门我就被呛得眼泪鼻涕都下来了(我刚才喷的不是催泪瓦斯吧),蚊子倒是没有了,只是这屋里也不能待了(已经感觉呼吸困难了),无奈只有掐灭蚊香,打开窗户,终于,新鲜的空气伴随着新鲜的蚊子又进来了。</p> +<p>灭蚊灯、灭蚊拍也收效甚微。灭蚊战争暂告一段落,蚊子暂时领先。</p> +<p>先这样吧,实在不行就拿手拍吧,要是懒得拍就猛开空调把他们冻死,再或者,如果我的反应足够灵敏的话,我就在它们叮我的那一刹那,暗运内力把它们的嘴夹在肌肉里,我憋死它们!</p>自然醒https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/Sat, 16 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/<p>如果有那么一天,我在沙滩上走着,突然从沙子里踢出一个神灯,我擦了三下,彭!的一声窜出一个魔鬼,对我龇牙咧嘴,非得满足我三个愿望。</p> +<p>那么,我会许什么愿呢?我不会像周星驰那样无耻,许完了两个愿望后最后一个愿望竟是再要三个愿望。</p> +<p>我想我也应该不那么自私,我会把头两个愿望交给公益事业,比如世界和平、环境保护啥的,然后留一个愿望给自己,那就是&ndash;我想睡个自然醒。</p> +<p>自从告别了自在潇洒的大学生活,参加工作以后,我就没有睡够过,也不是完全没有时间睡觉,而是能有机会睡懒觉的时候我都睡不着。</p> +<p>在一周里里面,工作日期间肯定没睡懒觉的可能,一大早就狂奔到车站去挤车了,晚上又很晚才睡,所以这期间是十分缺觉的。</p> +<p>只有周末的早晨才能有机会赖在床上,可是问题来了,周末的早晨我倍儿精神!平日里闹钟响了还想把它摁掉再小睡一会儿,可一旦到了周末,我往往比闹钟醒的还早,而且再也睡不着。</p> +<p>这是为什么呢,苦苦思索之后,得到答案:周末是属于我自己的自由时间而且很短暂,我不舍的拿这点儿宝贵时间来睡觉!</p> +<p>平时没时间干的我只有等到周末了,平时听不了音乐就周末抱着音响使劲儿听,平时没时间弹琴就等到周末抱着电子琴使劲儿得瑟,平时没时间摄影等到周末就溜达出去一通狂拍&hellip;&hellip;等等,有这些个好事儿等着我,我就算是想睡也真就睡不着了。   所以,我也不祈求啥别的太奢侈的事儿,就让我睡个自然醒吧。</p>老婆回家的第七天https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/Fri, 15 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/<p>老家那边有些事儿需要老婆回去处理一下,用不了几天,可是转眼已经一个周过去了,据说还需要再呆几天才能回北京来。</p> +<p>哎!郁闷呐!按照道理来说,作为一个正常的男人如果老婆回了娘家,那他应该感到万分的高兴才是(我曾经有个同事,从来都不吭声,结果有一次哼了一整天的小曲儿,一问才知道,人家老婆大人回娘家去了)。</p> +<p>高兴是高兴,可是晚饭没有着落了,眼看着冰箱里的东西被我一点点地吃光了,就连平时不爱吃的饺子也在前天被我从冰箱的最底层翻了出来。</p> +<p>家里实在没吃的那就在外面吃吧,昨晚上刚好有饭局,不吃白不吃啊,结果上当了,几个哥们儿都是贪杯的主儿,白的喝完换啤的,啤的喝完换冰的,一直喝到丧心病狂&hellip;&hellip;饭还没吃上几口。</p> +<p>搞得今天蔫了吧唧不说,还浑身上火,鼻炎发作,咽炎发作,苦不堪言。</p> +<p>站起来,叹了口气,转身就看到洗衣机里的衣服也快堆成小山了,都说能把袜子按颜色分类的男人和把袜子随便乱扔的男人是两种不同的生物,我显然是属于后者,看来只有等到周末统一解决了。</p>抽考https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/Thu, 14 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/<p>   高考刚过,每年的这个时候都会有一大帮人在哪儿声泪俱下的控诉这万恶的高考制度。</p> +<p>我也讨厌高考,但是在我的记忆里,另一种考试制度更令我恶心,那就是&mdash;-抽考!</p> +<p>在我上小学的时后,比较害怕的就是考试了,但最让我感到不安的是每个班级选拔“尖子生”的过程。</p> +<p>那个时候每到期末每个班级总是抽出学习成绩最好的几个同学参加镇上的抽考,他们的考试成绩直接代表了整个班级的学习成绩,也代表了老师的教学水平。</p> +<p>私下里大家管抽到的这些学生叫“尖子生”。</p> +<p>从小学到初中我几乎一路是“尖子生”,至于为什么要有“尖子生”,这样考试有什么意义我就不去想了,只知道如果被老师抽到当“尖子生”就全家开心,我在家也可以放肆一些,万一抽不到就没人给我好脸色。</p> +<p>好在屡次的抽考过程中我只有两次没有被选中,不知是幸运还是不幸。</p> +<p>其中一次是在小学二年级的时候,虽然没有被选中,但是也参加了考试(数学替考),当时我的情况是语文极差但数学很好(至少比那些“尖子”要好一些),老师为了他们的荣誉,便让我替另外一个考生参加了数学考试,试卷虽然是我答的却不能填写我的名字。</p> +<p>好在当时也没什么自尊心,也就爽快的答应了,现在想一想作为老师也太不应该了。(这也是我后来虽念了师范却最终没有选择做老师的原因之一)。</p> +<p>到后来就越来越抵制这种虚伪的考试,大概是四年级,我越来越贪玩,成绩真的不行了,要期末考试了,老师们纷纷挑选“尖子”,刚开始还被提名,后来经过多层过滤,勉强坚持到了最后一轮评测,直到我们伟大的辛勤的园丁说:“好了,那谁,你回去吧,其他人留下”。</p> +<p>于是我提着书包灰溜溜回家,心里却说不出的高兴,不用去参加TMD关系到班集体荣誉的考试了!爽!哼哼,我冷笑,冷笑。现在回忆起来,脑子里仍旧充斥着老师们那因为贪图班级的名次而扭曲的面容(这就是原因之二)。</p> +<p>不知道现在怎么样了,在当时,这样的考试制度,它伤了太多太多孩子的心。ps:今日饮酒过渡沉醉不知归路兴尽打车走误入小区深处呕吐、呕吐引来保安无数!</p>天气预报https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/Wed, 13 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/<p>早晨,NB烘烘的中国移动给我发天气预报说是阴转多云,在分析了昨晚电视上的预报加上收音机告诉我的降水概率后,我确定今天不会下雨,然后非常自信的没带伞就上班了,虽然头上的天阴的要滴水似的。</p> +<p>谁知现在的天气预报已经不准确到让人发指的地步了!从下车到家的那段路程我只好雨中快步了(跑啊)。</p> +<p>不是说现在计算机运算速度越来越快了吗?</p> +<p>不是说建立的数据模型越来越接近真实了吗?</p> +<p>不是说那什么风云N号也升空了吗?</p> +<p>嗯?!忽悠谁啊!</p> +<p>上次就报给我说最近西伯利亚那边有情况,未来几天有大风降温的天气,搞得我捂了一身痱子!现在到处是天气预报,各大网站上有,报纸上有,QQ上有,收音机、电视就更有了,而且还花样儿繁多,一会儿是穿衣指数,一会儿又洗车指数,最后还忽悠你个降水概率,有雨就有雨没雨就没雨,整个指数百分之60鬼才知道到底要不要下!</p> +<p>当然了,他们有预报准确的时候,那就是对局部地区的天气预报,反正局部地区天天要下雨甚至还有短时间的雷雨大风等强对流天气。</p> +<p>我妈就曾经十分关切的问我:“为什么局部地区天天下雨,这个地区到底在哪儿?住在那儿的人可怎么活哟!”</p> +<p>算啦,也不跟他们计较,我还是回去翻翻小学的语文课本,好好拜读一下里面的那篇《看云识天气》,以后再也不相信这GR的天气预报了!</p> +<p>慢着,突然想起了倪萍大婶子曾经在“综艺大观”上做的即兴方言版天气预报,啧啧,那叫一个准啊!</p> +<p>“社员同志们注意啦,哈。这个山东省荣成县寨子沟公社刘家村广播站现在开始播送天气预报,哈。这个明天头半晌儿阴有小雨儿,后半晌儿就变天了。南风转西北风7-8级。这个凄凄沥沥的小雨儿夹着嗖嗖的西北风,今儿刮,明儿刮儿,后儿还刮,一直刮到下个星期六,哈。这个咱再接着说天气预报。这个西北风一刮,这回最大的特点就是龙卷风,龙卷风啊,粮食要最重&hellip;.”  </p>小王https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/Tue, 12 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/<p>初来北京的时候,家里托着亲戚的亲戚的关系让我在一家单位实习,就像鲁迅小说里写的那样,掌柜的是一副凶脸孔,主顾也没有好声气。</p> +<p>那时我一个人住在前门外大栅栏里的一家小旅馆里。</p> +<p>我住的胡同往北走几步一拐就是北京著名的“大栅栏步行街”,那儿有着浓厚的京味儿,经常看到成群的外国鬼子。</p> +<p>他们不停的拍照,吃小吃,买工艺品,所以这里一天到晚人山人海热闹非凡。有时候我也去转转,只是转转,并不买东西,那些让老外一看见就双眼冒光的玩意儿对我并没有多大吸引力。</p> +<p>小王,我住的旅店里的服务员,瘦瘦的,头戴一顶鸭舌帽,手腕上戴了一只便宜手表。</p> +<p>一天下午,我一个人站在楼顶上特别无聊,正好小王上来,我递给他一根“中南海”</p> +<p>他笑笑接住说:“一个人在外无聊吧?”</p> +<p>我说:“是”他说“那我就给你讲讲这一片儿的故事吧!”</p> +<p>于是他就趴在栏杆上给我说了一通关于这个胡同的故事,说了这一带在清朝是曾经全是窑子。</p> +<p>他抽了不少烟,我说“中南海这烟太冲了这边有没有柔和一点儿的烟?”</p> +<p>他想了想说:“我抽的都是便宜烟,恩,不过便宜好抽就行&hellip;”</p> +<p>他给我说了两种。我到了晚上买来抽了几支觉得不好抽(那时我还不怎么抽烟)就都送给他了。</p> +<p>以后就时常在一起谈天,混得很熟了,他经常早早的就把我的暖壶打满开水给提上来。</p> +<p>只是又过了两三天,我一直也没见到小王,一问店老板才知道:“他回老家了,他是离家出走才来到这个小店的,没钱了,才在这儿打工,不求挣钱只要有吃有睡就行,前两天他哥哥找到这里就把他带回去了。”</p> +<p>老板很惋惜:“多好的孩子呀!”</p>早晨的阳光真是灿烂https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/Mon, 11 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/<p>早晨的阳光真灿烂,虽然天气湿热有点儿桑拿天的苗头,但是我的心情很好,阳光洒在我的工作服上像是镶了金边,很是耀眼。</p> +<p>对了,我是一个环卫工人,每天早晨都要在这儿清扫垃圾,这个工作是很神圣的,至少我这么认为,虽然和小时候的梦想(艺术家)差得很远,但是用某位相声演员的话说“这是一样一样一样的啊”!</p> +<p>我愉快地拿起扫把,自在地吹着口哨,再把这条街扫完就可以收工了。</p> +<p>我不由得加快了速度挥舞着扫把就像一个画家挥舞着手中的画笔,我气沉丹田暗用内力,短小的扫把被我使得是呼呼生风,卷起的沙尘就像一层薄雾。</p> +<p>这个时候你出现了,挎着小包,下了公共汽车,高跟鞋踩在平坦的人行道上发出清脆的得得响,你的小手微微举起遮住当前还不算猛烈的太阳。真漂亮啊!我暗自赞道。</p> +<p>上学时很不努力导致我的眼神儿非常好,我想,在工作时看到美女也算是一种福利吧!</p> +<p>看着你向我走来,越走越近,不知是热的还是累得,我的手心开始出汗,我攥紧了扫把更卖力的扫了起来,地上的落叶伴随着纸片在沙尘中轻轻飞舞。</p> +<p>你终于走到我的身边,冲我使劲的挥手,这么近的距离我终于看清了你的眼睛,很大、很圆,长长的睫毛。</p> +<p>你竟然停下了脚步,盯住我迷离的眼神和唏嘘的胡茬,我期盼着你能给我说些什么,虽然黑夜给了你黑色的眼睛,但你却翻了个白眼儿给我:“你就不能轻点儿扫吗!还让不让人走路了!”。</p> \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/1/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/1/index.html" new file mode 100644 index 000000000..df3f88f79 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/%E5%8D%9A%E5%AE%A2%E6%97%A5%E8%AE%B0/ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/10/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/10/index.html" new file mode 100644 index 000000000..3d2c4b29e --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/10/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/11/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/11/index.html" new file mode 100644 index 000000000..9c24b41b8 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/11/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/12/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/12/index.html" new file mode 100644 index 000000000..f9405590d --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/12/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/13/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/13/index.html" new file mode 100644 index 000000000..e178864d9 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/13/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/14/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/14/index.html" new file mode 100644 index 000000000..beb270821 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/14/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/15/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/15/index.html" new file mode 100644 index 000000000..1d472dc8c --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/15/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/16/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/16/index.html" new file mode 100644 index 000000000..3f95d6409 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/16/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/17/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/17/index.html" new file mode 100644 index 000000000..7d23fe656 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/17/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/18/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/18/index.html" new file mode 100644 index 000000000..2c879c19f --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/18/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/19/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/19/index.html" new file mode 100644 index 000000000..7d08f56a6 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/19/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/2/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/2/index.html" new file mode 100644 index 000000000..9002d580a --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/2/index.html" @@ -0,0 +1,36 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/20/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/20/index.html" new file mode 100644 index 000000000..ddbe6b0c2 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/20/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/21/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/21/index.html" new file mode 100644 index 000000000..c4bd2b957 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/21/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/22/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/22/index.html" new file mode 100644 index 000000000..981e2947d --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/22/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/23/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/23/index.html" new file mode 100644 index 000000000..784e1b1ce --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/23/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/24/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/24/index.html" new file mode 100644 index 000000000..524d8ca53 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/24/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/25/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/25/index.html" new file mode 100644 index 000000000..5e715c064 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/25/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/26/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/26/index.html" new file mode 100644 index 000000000..e3b06478a --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/26/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/27/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/27/index.html" new file mode 100644 index 000000000..027382ab1 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/27/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/28/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/28/index.html" new file mode 100644 index 000000000..f46b7164e --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/28/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/29/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/29/index.html" new file mode 100644 index 000000000..ee6369dce --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/29/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/3/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/3/index.html" new file mode 100644 index 000000000..48ddcfb52 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/3/index.html" @@ -0,0 +1,37 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/30/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/30/index.html" new file mode 100644 index 000000000..4a9690d50 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/30/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/31/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/31/index.html" new file mode 100644 index 000000000..8a063f342 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/31/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/32/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/32/index.html" new file mode 100644 index 000000000..86c34f40f --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/32/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/33/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/33/index.html" new file mode 100644 index 000000000..5ed93d6be --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/33/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/34/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/34/index.html" new file mode 100644 index 000000000..91688a76c --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/34/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/35/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/35/index.html" new file mode 100644 index 000000000..3fcb081e5 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/35/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/36/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/36/index.html" new file mode 100644 index 000000000..0399b81c3 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/36/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/37/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/37/index.html" new file mode 100644 index 000000000..f202bff22 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/37/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/38/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/38/index.html" new file mode 100644 index 000000000..acb807a13 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/38/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/39/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/39/index.html" new file mode 100644 index 000000000..2487d27e6 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/39/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/4/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/4/index.html" new file mode 100644 index 000000000..0504796e3 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/4/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/40/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/40/index.html" new file mode 100644 index 000000000..a691b748d --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/40/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/41/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/41/index.html" new file mode 100644 index 000000000..930172ad8 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/41/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/42/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/42/index.html" new file mode 100644 index 000000000..9fe5e5902 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/42/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/43/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/43/index.html" new file mode 100644 index 000000000..e6d1aa904 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/43/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/44/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/44/index.html" new file mode 100644 index 000000000..7bb58612e --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/44/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/45/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/45/index.html" new file mode 100644 index 000000000..041b7be75 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/45/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/46/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/46/index.html" new file mode 100644 index 000000000..ff3bebee5 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/46/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/47/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/47/index.html" new file mode 100644 index 000000000..5e399564a --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/47/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/48/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/48/index.html" new file mode 100644 index 000000000..bc56c2dc5 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/48/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/49/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/49/index.html" new file mode 100644 index 000000000..cd946410a --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/49/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/5/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/5/index.html" new file mode 100644 index 000000000..dc88ff381 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/5/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/50/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/50/index.html" new file mode 100644 index 000000000..43a7e98f0 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/50/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/51/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/51/index.html" new file mode 100644 index 000000000..6e115f5d3 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/51/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/52/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/52/index.html" new file mode 100644 index 000000000..acc4388e1 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/52/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/53/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/53/index.html" new file mode 100644 index 000000000..14fb6a3d1 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/53/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/54/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/54/index.html" new file mode 100644 index 000000000..aa271a2f8 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/54/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/55/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/55/index.html" new file mode 100644 index 000000000..6d2fd7677 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/55/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/56/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/56/index.html" new file mode 100644 index 000000000..a9e5acd7d --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/56/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/57/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/57/index.html" new file mode 100644 index 000000000..66aa81741 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/57/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/58/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/58/index.html" new file mode 100644 index 000000000..144c89d71 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/58/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/59/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/59/index.html" new file mode 100644 index 000000000..aaf3a0414 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/59/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/6/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/6/index.html" new file mode 100644 index 000000000..8c16dfde9 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/6/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/60/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/60/index.html" new file mode 100644 index 000000000..9d6aba307 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/60/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/61/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/61/index.html" new file mode 100644 index 000000000..f0253122e --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/61/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/62/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/62/index.html" new file mode 100644 index 000000000..d0d031dbb --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/62/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/63/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/63/index.html" new file mode 100644 index 000000000..8142844c0 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/63/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/64/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/64/index.html" new file mode 100644 index 000000000..21221dacf --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/64/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/65/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/65/index.html" new file mode 100644 index 000000000..28d6fe91e --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/65/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/66/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/66/index.html" new file mode 100644 index 000000000..fd189dcb5 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/66/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/67/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/67/index.html" new file mode 100644 index 000000000..9695df914 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/67/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/68/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/68/index.html" new file mode 100644 index 000000000..f6376a73f --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/68/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/69/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/69/index.html" new file mode 100644 index 000000000..3be59273b --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/69/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/7/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/7/index.html" new file mode 100644 index 000000000..7c903e0c3 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/7/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/70/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/70/index.html" new file mode 100644 index 000000000..f3f60acd8 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/70/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/71/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/71/index.html" new file mode 100644 index 000000000..9e848602d --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/71/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/72/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/72/index.html" new file mode 100644 index 000000000..0d4515bea --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/72/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/73/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/73/index.html" new file mode 100644 index 000000000..847312df4 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/73/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/74/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/74/index.html" new file mode 100644 index 000000000..c23bd8eb4 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/74/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/75/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/75/index.html" new file mode 100644 index 000000000..14bf87ddb --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/75/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/76/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/76/index.html" new file mode 100644 index 000000000..3700aea1d --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/76/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/77/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/77/index.html" new file mode 100644 index 000000000..3d3853efa --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/77/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/78/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/78/index.html" new file mode 100644 index 000000000..3415db5a7 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/78/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/79/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/79/index.html" new file mode 100644 index 000000000..9642e4e80 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/79/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/8/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/8/index.html" new file mode 100644 index 000000000..7938c213f --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/8/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/80/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/80/index.html" new file mode 100644 index 000000000..ddf6bbd6b --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/80/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/81/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/81/index.html" new file mode 100644 index 000000000..a97f46b22 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/81/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/82/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/82/index.html" new file mode 100644 index 000000000..9dab0846a --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/82/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/83/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/83/index.html" new file mode 100644 index 000000000..1fad52b86 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/83/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/84/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/84/index.html" new file mode 100644 index 000000000..e27a4869d --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/84/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/85/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/85/index.html" new file mode 100644 index 000000000..924329077 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/85/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/86/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/86/index.html" new file mode 100644 index 000000000..6855d9836 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/86/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/87/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/87/index.html" new file mode 100644 index 000000000..15777e5c6 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/87/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/88/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/88/index.html" new file mode 100644 index 000000000..d2aec6226 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/88/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/89/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/89/index.html" new file mode 100644 index 000000000..93707bebc --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/89/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/9/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/9/index.html" new file mode 100644 index 000000000..3d1a0de05 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/9/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/90/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/90/index.html" new file mode 100644 index 000000000..ea264ca2b --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/90/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/91/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/91/index.html" new file mode 100644 index 000000000..bb1bdd7b1 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/91/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/92/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/92/index.html" new file mode 100644 index 000000000..7583fff67 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/92/index.html" @@ -0,0 +1,38 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/93/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/93/index.html" new file mode 100644 index 000000000..b218a8a51 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/93/index.html" @@ -0,0 +1,37 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/94/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/94/index.html" new file mode 100644 index 000000000..d303f4140 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/94/index.html" @@ -0,0 +1,36 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/95/index.html" "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/95/index.html" new file mode 100644 index 000000000..8d99d8a41 --- /dev/null +++ "b/categories/\345\215\232\345\256\242\346\227\245\350\256\260/page/95/index.html" @@ -0,0 +1,35 @@ +Category: 博客日记 - Learning & Writing! +

Categories

博客日记

+ \ No newline at end of file diff --git "a/categories/\345\255\246\344\271\240/index.html" "b/categories/\345\255\246\344\271\240/index.html" new file mode 100644 index 000000000..5a65a9c28 --- /dev/null +++ "b/categories/\345\255\246\344\271\240/index.html" @@ -0,0 +1,32 @@ +Category: 学习 - Learning & Writing! +

Categories

学习

+ \ No newline at end of file diff --git "a/categories/\345\255\246\344\271\240/index.xml" "b/categories/\345\255\246\344\271\240/index.xml" new file mode 100644 index 000000000..c699ec0b0 --- /dev/null +++ "b/categories/\345\255\246\344\271\240/index.xml" @@ -0,0 +1,48 @@ +学习 on Learning & Writing!https://sbabybird.github.io/categories/%E5%AD%A6%E4%B9%A0/Recent content in 学习 on Learning & Writing!Hugo -- gohugo.iozh-cnSun, 02 Jun 2019 00:00:00 +0000线性回归和梯度下降https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/Sun, 02 Jun 2019 00:00:00 +0000https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/<h3 id="有监督学习的两种主要任务分类和回归">有监督学习的两种主要任务(分类和回归)</h3> +<ul> +<li>有监督机器学习任务主要分为两种,一种是分类任务,一般是通过学习算法实现对未知数据的分类甄别,比如判断是男性还是女性,预测明天会不会下雨等等,预测结果是离散的分类。另一种是回归任务,用于预测一个具体的值,比如房价、年龄等等,预测结果是连续的值;</li> +<li>解决回归任务比较常见的算法就是线性回归算法;</li> +</ul> +<h3 id="线性回归">线性回归</h3> +<ul> +<li>线性回归是最典型的用于回归任务的机器学习算法。它的基本原理是基于,任意一个为n的值,可以通过一个n-1阶的多项式进行拟合;</li> +<li>线性回归的算法的目标是根据已知标签数据,训练一个预测函数f(a, b),使得x输入带入ax+b这样的多项式可以得出需要预测的值;</li> +<li>所以目标是找到合适的a和b(从数学语言的精确描述来说,一般用别的符号代替,为了方便记录,我使用a和b);</li> +<li>为了找到合适的a和b,需要定义一个损失函数(也有称为代价函数的),J(a, b),用于判断a和b是否合适,比较简单的有“方差均值”法;</li> +<li>方差均值指的是,所有样本带入预测函数f,将预测值与实际值相减,取平方,求和再求平均数(暂时不知到markdown里如何加入公式);</li> +<li>那么带入损失函数,就是意味着,找到合适的a、b使得刚才那个方差均值小于一个阈值(接近最优);</li> +<li>线性回归本质上,是在平面坐标系里找到一个与样本匹配的直线,这样基于这个直线,即可预测未知的值;</li> +</ul> +<h3 id="梯度下降">梯度下降</h3> +<ul> +<li>如何找到合适的a和b,一个一个地去试是不可能的(无穷多的计算量);</li> +<li>比较典型的算法是“梯度下降”,又是牛顿起的头;</li> +<li>比较生动的描述是,想想一个三维空间图形,X和Y平面是有a和b的值构成,Z轴是损失函数的值,值最小的部分(在图上就最低的部分,像一个山谷)就是最优解;</li> +<li>从山顶的某个点上,环顾360度,找到适合下山的一小步,一点一点儿走向山谷最低处,有点像慢慢走楼梯,所以叫梯度下降;</li> +<li>从我的体会来看,这个方法有点像牛顿那个计算平方根的迭代法(根据一个猜测值,然后通过迭代公式寻找一个更加接近正确值的值,直到误差降低到合适范围);</li> +<li>从微积分的角度,就是找到损失函数J在最初尝试的那个点上的切线,并通过它的斜率(也就是导数值)乘以一个系数a,逐步逼近最低点(切线斜率为零)的过程;</li> +</ul>机器学习的学习准备https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/Sat, 18 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/<h3 id="机器学习的概念">机器学习的概念</h3> +<p>机器学习是人工智能的一个分支,是近年来逐渐具备实用性的各种人工智能应用的基础。其本质是(我目前的个人理解)利用针对已知的数据集合抽取采样特征,然后利用某种数据模型(核心是某种算法:如kNN、SVM、朴素贝叶斯等)对数据进行计算处理,得到一组可以预测未知数据集特征的参数和手段,从而可以对数据进行预测判断的一种数据处理方法。</p> +<h3 id="机器学习相关的名词">机器学习相关的名词</h3> +<ul> +<li>神经网络:是机器学习的一种实现方式,从概念上来说,小于“机器学习”,但是由于其在图像识别、语音识别、语言翻译等领域的优异表现,以至于现在提到机器学习就认为是神经网络,实际则不然,机器学习的概念更大,更加基础,是实现神经网络应用的基础理论和方法;</li> +<li>深度学习:是神经网络的应用特例,同样是在应用层表现优异,可以理解为神经网络的一种实现;</li> +<li>大数据:机器学习的数据处理基础支撑,近年来机器学习在应用层面表现较好主要得益于大数据技术的发展,可以使得模型训练内容量级增加,极大的提高了模型准确度;</li> +<li>n维向量:来自线性代数,在机器学习中起到重要作用,在机器学习中一般用于各种特征数据的载体,在不同的算法过程中传递和计算。</li> +</ul> +<h3 id="机器学习相关的工具">机器学习相关的工具</h3> +<ul> +<li>编程语言:目前比较流行的是Python,因为有比较丰富易用的程序包,很多科技公司也开源了较为成熟的框架,再加上Python语言本身的简单易上手,使得Python成为这个领域最流行的语言。当然C和C++、Java还是实现各种算法的根基,Python更多是提供了一种调用接口;</li> +<li>iPython:Python语言的交互控制台,可以较为方便的测试、调试Python程序,有较强的交互功能,比语言发行版自带的强大;</li> +<li>jupyter:提供Python语言的Web交互界面,通过网页即可编写代码,并及时反馈执行结果,由于是B/S架构,所以可以使得运行时跟开发环境分开。编辑界面同时支持基于Markdown语法的文档编写,使得“文学化”编程成为一种可能,非常适合用于科研人员的汇报材料或论文;</li> +<li>TensorFlow:谷歌开源的机器学习框架,快速灵活部署机器学习应用,可以应用与大规模、工业级场景;</li> +<li>keras:基于Python编写的高级神经网络API,属于对机器学习的深度封装,如果以学习机器学习原理为目标的,不建议使用,还是先手动将若干种核心算法实现一遍比较深刻;</li> +</ul> +<h3 id="预期的学习方法">预期的学习方法</h3> +<ol> +<li>通过阅读相关的书籍,对于概念有所了解,这个过程可以是粗糙的浏览,不求详细的理解各种原理和算法;</li> +<li>尝试一些教学视频,了解实操的基本流程,对于自己读书得到的概念进行验证,修订理解,并熟悉基本工具的使用(如Python的numpy、plot等);</li> +<li>细读书籍,按照书中的事例进行实操,并尝试推导算法的基本原理,理解后,形成自己的文字;</li> +<li>定义简单的任务,贯穿数据准备、数据清洗、特征值提取、模型建立、模型应用各个阶段,一般来说可以是手写文字识别,或者给新闻文章分类等;</li> +<li>循环和迭代这个过程,一边输入信息,一边将学到的东西结合思考,形成有效的输出(文字、视频等);</li> +</ol> \ No newline at end of file diff --git "a/categories/\345\255\246\344\271\240/page/1/index.html" "b/categories/\345\255\246\344\271\240/page/1/index.html" new file mode 100644 index 000000000..48606015f --- /dev/null +++ "b/categories/\345\255\246\344\271\240/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/%E5%AD%A6%E4%B9%A0/ \ No newline at end of file diff --git "a/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover.03bf2f64488b976c64810574c15f5827.jpg" "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover.03bf2f64488b976c64810574c15f5827.jpg" new file mode 100644 index 000000000..7f2390e7c Binary files /dev/null and "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover.03bf2f64488b976c64810574c15f5827.jpg" differ diff --git "a/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover.03bf2f64488b976c64810574c15f5827_hu84219a84c85ae30234a46f64e2f2bf8d_165832_250x150_fill_q75_box_smart1.jpg" "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover.03bf2f64488b976c64810574c15f5827_hu84219a84c85ae30234a46f64e2f2bf8d_165832_250x150_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..aa9d52aa1 Binary files /dev/null and "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover.03bf2f64488b976c64810574c15f5827_hu84219a84c85ae30234a46f64e2f2bf8d_165832_250x150_fill_q75_box_smart1.jpg" differ diff --git "a/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover.jpg" "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover.jpg" new file mode 100644 index 000000000..7f2390e7c Binary files /dev/null and "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover.jpg" differ diff --git "a/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover_hu84219a84c85ae30234a46f64e2f2bf8d_165832_120x120_fill_q75_box_smart1.jpg" "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover_hu84219a84c85ae30234a46f64e2f2bf8d_165832_120x120_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..f19aecb87 Binary files /dev/null and "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/cover_hu84219a84c85ae30234a46f64e2f2bf8d_165832_120x120_fill_q75_box_smart1.jpg" differ diff --git "a/categories/\345\267\245\345\205\267\344\275\277\347\224\250/index.html" "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/index.html" new file mode 100644 index 000000000..60bed57f1 --- /dev/null +++ "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/index.html" @@ -0,0 +1,32 @@ +Category: 工具使用 - Learning & Writing! +

Categories

工具使用

记录高效使用工具的心得。

+ \ No newline at end of file diff --git "a/categories/\345\267\245\345\205\267\344\275\277\347\224\250/index.xml" "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/index.xml" new file mode 100644 index 000000000..9a352d843 --- /dev/null +++ "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/index.xml" @@ -0,0 +1,218 @@ +工具使用 on Learning & Writing!https://sbabybird.github.io/categories/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8/Recent content in 工具使用 on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 21 Sep 2023 00:00:00 +0000基于 Github Pages 服务搭建个人博客https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Thu, 21 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-10-50.png" alt="Featured image of post 基于 Github Pages 服务搭建个人博客" /><h2 id="背景">背景</h2> +<p>搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。</p> +<p>但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。</p> +<p>经过多年的实践,现在已有越来越多的人选择了使用免费且易用的<a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +> GitHub Pages </a>服务来搭建个人博客。</p> +<p>然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。</p> +<p>他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。</p> +<p>这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。</p> +<p>本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。</p> +<h3 id="需要预先掌握的技能和前置条件">需要预先掌握的技能和前置条件</h3> +<p><em>需要先了解这些再往下阅读本文</em></p> +<ul> +<li>了解 Git 的概念和常用的操作,知道“分支”、“提交”、“推送”、“拉取”等概念。</li> +<li>拥有 Github 账号,并且能够独立完成“仓库创建”、“本地克隆”、“提交”、“推送”等操作。</li> +<li>了解“博客”本身只是一种“网站”:其内容由若干“网页”组成,读者通过浏览器访问博客网站所在的服务器以获取这些网页内容。</li> +</ul> +<h2 id="核心思路">核心思路</h2> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-20-10.png" +width="790" +height="258" +loading="lazy" +class="gallery-image" +data-flex-grow="306" +data-flex-basis="734px" +> +简单来说,核心步骤只有三步:内容编辑、页面生成、网站发布。接下来的介绍均围绕这三件事展开。</p> +<h3 id="内容编辑">内容编辑</h3> +<p>作者编写和编辑博客内容,包括编写文章、给文章配图、给文章归类等等活动都属于内容编辑。</p> +<h3 id="页面生成">页面生成</h3> +<p>如果希望将内容变成可发布的网站,则需要使用专用的软件工具(一般为<a class="link" href="https://baike.baidu.com/item/%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99/2776875" target="_blank" rel="noopener" +>静态网站</a>生成器)将编辑的内容自动生成可供浏览器显示的博客网站页面。</p> +<h3 id="网站发布">网站发布</h3> +<p>有了网站页面,还只是一堆存放在本地的文件。若要放到互联网上进行访问,还需要一个服务器提供服务,将网站发布。</p> +<p>如果采用独立建站的方式,这一步骤会涉及大量技术工作,比如服务器采购、Web服务应用程序安装、域名映射、SSL 安全证书、网络防火墙配置等等。</p> +<p>但我们今天选择使用 Github 提供的 Pages 服务,这将大大降低上述操作的难度,很多技术细节将不必再多关注,已经由 Pages 服务默认配置好。我们只需享用配置好的环境即可。</p> +<h3 id="技术路线">技术路线</h3> +<h4 id="github-pages">Github Pages</h4> +<p>Github 本来是一个 Git 仓库托管服务商,帮助用户进行项目代码及数字资料的版本管理。不过随着用户规模提升,Github 也围绕版本管理提供了更多的辅助服务,这其中就包括 <a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +>Pages 服务</a>。</p> +<blockquote> +<p>GitHub Pages 是一项静态站点托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件,(可选)通过构建过程运行文件,然后发布网站。 可以在 GitHub Pages 示例集合中看到 GitHub Pages 站点的示例。</p> +</blockquote> +<p>Pages 服务原本用于帮助托管在 Github 上的开源项目更便捷地发布自己的宣传页面。开发团队可以简单编写几个静态页面(HTML)然后放在托管的 Git 仓库中,由 Github 将这些页面以网站服务的方式发布出去,Github 既提供了服务器资源也提供了用于公网访问的<strong>专属 URL</strong> 地址。</p> +<p>关于发布网站的<strong>专属 URL</strong> 地址的提供规则,Github 官方的介绍如下:</p> +<blockquote> +<p>若要发布<strong>用户站点</strong>,必须创建名为 <code>&lt;username&gt;.github.io</code> 的个人帐户拥有的存储库。 若要发布<strong>组织站点</strong>,必须创建名为 <code>&lt;organization&gt;.github.io</code> 的组织帐户拥有的存储库。 除非使用的是自定义域,否则用户和组织站点在 <code>http(s)://&lt;username&gt;.github.io</code> 或 <code>http(s)://&lt;organization&gt;.github.io</code> 中可用。 +<strong>项目站点</strong>的源文件与其项目存储在同一个仓库中。 除非使用的是自定义域,否则项目站点在 <code>http(s)://&lt;username&gt;.github.io/&lt;repository&gt;</code> 或 <code>http(s)://&lt;organization&gt;.github.io/&lt;repository&gt;</code> 中可用。</p> +</blockquote> +<p>根据官方介绍,Pages 提供有三种不同的网站发布服务:用户站点、组织站点、项目站点。</p> +<p>分别对应了“制作个人网站”、“制作团队组织网站”、“制作单个项目网站”的不同需求。</p> +<p>针对个人博客的搭建,很显然使用 Pages 服务发布“用户站点”是最合适的选择。</p> +<p>对于“用户站点”,Pages 最终会为用户提供的专属 URL 地址为:<code>https://你的用户名.github.io</code>,也就是说在 Gihtub 的一级域名 <code>https://github.io</code> 下给你免费提供了一个二级域名。之所以默认使用你的 Github 用户名,是因为要防止不同用户发布的地址重名导致冲突。</p> +<p><em>按照官方介绍,你也可以使用自己购买的域名,通过自己的域名进行访问。不过这涉及到更复杂的话题和操作,不在本文讨论范畴。</em></p> +<p>了解了以上基本信息后,在使用 Pages 服务时,可按照复杂度区分,采用如下几种不同的用法。</p> +<h5 id="最简单直接的使用流程">最简单直接的使用流程</h5> +<ol> +<li>手工编写 HTML 页面文件(需要掌握网页制作知识)。</li> +<li>将页面文件推送到的 Github 仓库,对于“用户站点”来说,这个仓库的命名必须为“<code>你的用户名.github.io</code>”。</li> +<li>在 Github 中设置该仓库的 Pages 服务配置,主要是选择仓库的指定“分支”用于 Pages 服务获取待发布的网页文件。</li> +<li>Github 会按照上面介绍的规则给你提供一个 URL 访问地址(<code>https://你的用户名.github.io</code>),使用浏览器打开该地址即可访问到发布的网站了。</li> +</ol> +<p><em>注:如果不理解 Git 仓库的“分支”概念,可以把它视为同一个仓库里不同的存储位置,不同的“分支”里面存储了不同的文件内容。</em></p> +<p>这个流程仅适用于非常简单网站发布,比如只包含有一个页面,因为手工编写 HTML 页面的效率十分低下,且不利于持续更新维护。</p> +<p>于是大家常用的方式是,使用一种叫做的东西,对于“博客”这类以静态页面为主的网站,十分适合。</p> +<p>“静态站点生成器”可以理解为是一个“翻译”,它能自动将你编写的文本内容根据预先的配置信息,自动生成一个完整的网站所需的全部文件(HTML、JS、CSS等)。</p> +<p>于是有了如下的改进流程:</p> +<h5 id="改进的使用流程">改进的使用流程</h5> +<ol> +<li>用户编辑好博客内容,形成保存在本地计算机的原始文档文件。</li> +<li>使用静态网站生成器将本地原始文档文件生成静态页面文件。</li> +<li>将静态页面文件推送到 Github 远端托管仓库。</li> +<li>Github Pages 服务自动被触发,将静态页面以网站形式发布出来。</li> +<li>用户通过指定 URL 地址访问已发布的博客内容。</li> +</ol> +<p>到目前为止,已经可以较为流畅地执行博客编辑、生成、发布的工作流程了。</p> +<p>但是这个流程里有个前置条件,作者必须在本地电脑上安装一个“静态站点生成器”,以用于输出转换后的、可供发布的页面。</p> +<p>所以,为了方便,Github 提供了一个默认的静态网站生成器,上述第 2 步操作实际上可以在远端仓库自动执行,这样用户只需将原始文件上传至远端仓库即可,由 Github 直接在线上完成静态页面的生成和网站发布工作。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-46-36.png" +width="937" +height="625" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></p> +<h5 id="静态站点生成器的选择">静态站点生成器的选择</h5> +<p>比较常见的静态站点生成器有:<a class="link" href="https://jekyllrb.com/" target="_blank" rel="noopener" +>Jekyll</a>、<a class="link" href="https://hexo.io/index.html" target="_blank" rel="noopener" +>Hexo</a>、<a class="link" href="https://gohugo.io/" target="_blank" rel="noopener" +>Hugo</a> 这三个。不在这里详细介绍了,因为功能都大同小异。在选定一个之后,需要去他们的官网查看文档以了解具体的使用细节,以便对自己的博客站点能够做到更深的定制。</p> +<p>我在接下来的操作步骤里,选择使用 Hugo 这个生成器。</p> +<p>主要原因是,Hugo 提供有相对来说比较美观的<a class="link" href="https://themes.gohugo.io/" target="_blank" rel="noopener" +>免费主题风格模板</a>(Jekyll 也有漂亮的,但是收费。Hexo 的定制性很强,适合有网页开发能力的人自己开发主题)。</p> +<p>我选择的主题模板是:<a class="link" href="https://themes.gohugo.io/themes/hugo-theme-stack/" target="_blank" rel="noopener" +>hugo-theme-stack</a>。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-40-58.png" +width="900" +height="300" +loading="lazy" +class="gallery-image" +data-flex-grow="300" +data-flex-basis="720px" +></p> +<h2 id="操作步骤">操作步骤</h2> +<h3 id="建立-github-仓库">建立 Github 仓库</h3> +<ol> +<li>点击这个超链接进入 <a class="link" href="https://github.com/CaiJimmy/hugo-theme-stack-starter" target="_blank" rel="noopener" +>hugo-theme-stack-starter 的 Git 仓库模板</a>。</li> +<li>点击页面中的“使用此模板”按钮,以创建你自己的仓库(注意:需先登录自己的账号才能创建)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-45-54.png" +width="925" +height="134" +loading="lazy" +class="gallery-image" +data-flex-grow="690" +data-flex-basis="1656px" +></li> +<li>建立好仓库(注意仓库命名为<code>你的用户名.github.io</code>)之后,会自动带有仓库模板的初始文件。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-47-57.png" +width="908" +height="528" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="412px" +></li> +</ol> +<h3 id="修改配置">修改配置</h3> +<ol> +<li>将仓库下载到本地。</li> +<li>打开仓库里的 config 文件夹,里面存放有配置信息。</li> +<li>按照 <a class="link" href="https://stack.jimmycai.com/guide/getting-started" target="_blank" rel="noopener" +>hugo-theme-stack 的官方文档</a>配置自己想要的效果(默认一般都够用,重点是修改自己的站点信息,如显示名称、URL 链接地址等等)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-53-02.png" +width="1466" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="515px" +> +<em>这些配置主要在 <code>config.toml</code> 和 <code>params.toml</code> 两个文件里。</em></li> +</ol> +<h3 id="编写博客文章">编写博客文章</h3> +<p>生成器会默认去仓库的 <code>content/post/</code> 文件夹下扫描其下面的所有文件夹和文件,遇到约定格式的 <code>Markdown</code> 文件就会转换成为可发布的 <code>html</code> 页面。具体约定可以查看官方的详细文档,这里介绍一种最简单的写一篇文章的过程。</p> +<ol> +<li>在 post 目录下新建一个文件夹用于存放文章的 Markdown 文件和插图文件,文件夹命名为希望编写的标题如:<code>2023-09-21-怎样搭建个人博客</code>。<em>我个人习惯将不同年份的文章在post目录下再建一级目录按照日期或年份进行区分。</em></li> +<li>在刚建立的文件夹下新建名称为<code>index.md</code>的 Markdown 文件,文件名必须为 index.md 这是由 hugo 生成器约定的。</li> +<li>在刚建立的 Markdown 文件的头部添加必要的元信息(非常关键)。 +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="l">文章标题</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">date</span><span class="p">:</span><span class="w"> </span><span class="ld">2023-09-21</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">categories</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章所属分类</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">tags</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 1</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 2</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-07-46.png" +width="787" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="220" +data-flex-basis="529px" +></li> +<li>编写文章内容。可以使用 <a class="link" href="https://markdown.com.cn/basic-syntax/" target="_blank" rel="noopener" +>Markdown 的语法</a>随意定义格式,以及插入图片。插入的图片建议保存在同级目录(也就是刚才新建的那个)中。</li> +</ol> +<h3 id="推送到仓库及发布">推送到仓库及发布</h3> +<ol> +<li>将刚才修改配置文件保存。</li> +<li>将刚才编写的博客文章保存。</li> +<li>在本地提交 commit 并 push 到 Github 仓库。</li> +<li>稍等几分钟(给 Github 那端的 Hugo 生成器留出运行时间)。</li> +<li>在 Github 仓库的 “setting” 设置页面开启 Pages 服务(只需第一次)。</li> +<li>在 Pages 设置界面里的 Source 中选择 “Deploy from a branch” ,并在下面的分支选择下拉框中选择 “gh-pages”,保存。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-17-49.png" +width="1090" +height="568" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +</ol> +<h3 id="访问你的博客站点">访问你的博客站点</h3> +<p>一般稍等几分钟之后,即可按照约定网址访问刚发布的内容了。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-31-26.png" +width="1539" +height="661" +loading="lazy" +class="gallery-image" +data-flex-grow="232" +data-flex-basis="558px" +></p> +<h2 id="扩展阅读">扩展阅读</h2> +<p>运营自己的博客网站所需了解的概念和知识相对比较多,如果希望将自己的网站做的更加精美、有特色。</p> +<p>除了能够持续产出高质量内容之外,建议阅读以下文章以了解相关知识:</p> +<ul> +<li><a class="link" href="https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web" target="_blank" rel="noopener" +>学习 web 开发</a>。</li> +</ul> \ No newline at end of file diff --git "a/categories/\345\267\245\345\205\267\344\275\277\347\224\250/page/1/index.html" "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/page/1/index.html" new file mode 100644 index 000000000..5e04b28bd --- /dev/null +++ "b/categories/\345\267\245\345\205\267\344\275\277\347\224\250/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8/ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover.b25753ebf64e856acf28dc6f2f1e3b0d.jpg" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover.b25753ebf64e856acf28dc6f2f1e3b0d.jpg" new file mode 100644 index 000000000..bb47cfa5e Binary files /dev/null and "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover.b25753ebf64e856acf28dc6f2f1e3b0d.jpg" differ diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover.b25753ebf64e856acf28dc6f2f1e3b0d_huce19ab5d6330e72c8e28b1579da30b3f_256297_250x150_fill_q75_box_smart1.jpg" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover.b25753ebf64e856acf28dc6f2f1e3b0d_huce19ab5d6330e72c8e28b1579da30b3f_256297_250x150_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..68b45f9c8 Binary files /dev/null and "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover.b25753ebf64e856acf28dc6f2f1e3b0d_huce19ab5d6330e72c8e28b1579da30b3f_256297_250x150_fill_q75_box_smart1.jpg" differ diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover.jpg" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover.jpg" new file mode 100644 index 000000000..bb47cfa5e Binary files /dev/null and "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover.jpg" differ diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover_huce19ab5d6330e72c8e28b1579da30b3f_256297_120x120_fill_q75_box_smart1.jpg" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover_huce19ab5d6330e72c8e28b1579da30b3f_256297_120x120_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..a616dd66f Binary files /dev/null and "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/cover_huce19ab5d6330e72c8e28b1579da30b3f_256297_120x120_fill_q75_box_smart1.jpg" differ diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/index.html" new file mode 100644 index 000000000..d0a74c371 --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/index.html" @@ -0,0 +1,35 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/index.xml" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/index.xml" new file mode 100644 index 000000000..938c7ff66 --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/index.xml" @@ -0,0 +1,7048 @@ +机器文摘 on Learning & Writing!https://sbabybird.github.io/categories/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/Recent content in 机器文摘 on Learning & Writing!Hugo -- gohugo.iozh-cnTue, 26 Sep 2023 00:00:00 +0000机器文摘 第 051 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/Tue, 26 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-20.png" alt="Featured image of post 机器文摘 第 051 期" /><h1 id="机器文摘-第-050-期">机器文摘 第 050 期</h1> +<h2 id="长文">长文</h2> +<h3 id="基于-github-pages-服务搭建个人博客">基于 Github Pages 服务搭建个人博客</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-34-26.png" +width="1600" +height="672" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="571px" +></p> +<p><a class="link" href="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/" target="_blank" rel="noopener" +>基于 Github Pages 服务搭建个人博客 </a> +这是我自己写的一篇文章,发布在<a class="link" href="https://sbabybird.github.io" target="_blank" rel="noopener" +>我的博客</a>。</p> +<p>搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。</p> +<p>但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。</p> +<p>经过多年的实践,现在已有越来越多的人选择了使用免费且易用的 GitHub Pages 服务来搭建个人博客。</p> +<p>然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。</p> +<p>他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。</p> +<p>这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。</p> +<p>本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。</p> +<h3 id="人的大脑不是由爬行脑哺乳动物脑智人脑累加而成">人的大脑不是由爬行脑、哺乳动物脑、智人脑累加而成</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-35-36.png" +width="690" +height="588" +loading="lazy" +class="gallery-image" +data-flex-grow="117" +data-flex-basis="281px" +></p> +<p>心理学界有一个关于人类大脑流传很广的理论:人的大脑主要由三层不同能力的大脑构成,位于最核心的“爬行动物脑”、随着演化逐渐增加的“低级哺乳动物脑”,以及带来更多灵活性和语言能力的“高级脑”。</p> +<p>这种理论给人的感觉就好像人的大脑是像洋葱那样,由一个“旧”的大脑结构逐渐添加“新”大脑形成。</p> +<p>而且换句话说,青蛙和鱼仍然在我们身体里,我们只是有了更高级的东西把它们包裹了起来。</p> +<p>然而以上理论只是心理学家所提出的一种错误观点,近年来随着生物科学的发展,越来越多的科学家开始指出这种错误。</p> +<p>这篇<a class="link" href="https://journals.sagepub.com/doi/10.1177/0963721420917687" target="_blank" rel="noopener" +>《你的大脑不是洋葱,你的脑子里并没有一个爬行动物》</a>是由神经科学家撰写,重点澄清了上述关于“三层大脑”的传言。</p> +<p>文章指出:之所以这种理论流传甚广,是因为大家普遍对“进化论”的进化过程有所误解,大多数人认为进化过程是一种先低级再逐渐高级的线性过程。然而事实的进化是一种同步辐射进程。</p> +<h3 id="使用-javascript-操作照片的-exif-信息">使用 Javascript 操作照片的 EXIF 信息</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-35-59.png" +width="690" +height="444" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="372px" +></p> +<p><a class="link" href="https://getaround.tech/exif-data-manipulation-javascript/" target="_blank" rel="noopener" +>使用 Javascript 操作照片的 EXIF 信息</a> +可交换图像文件格式(EXIF)是一种规范,用于指定图像和声音的格式。它通过元数据存储技术细节,所谓元数据即用来描述其他数据的数据,例如相机制造商和型号、图像拍摄日期和时间等信息。</p> +<p>最初,EXIF仅用于JPEG和TIFF两种图像格式。然而,如今,其他文件格式如PNG、WEBP或HEIC也支持EXIF以用于元数据。</p> +<p>本文将重点关注JPEG格式,探究其内部结构,然后展示如何在浏览器环境中通过JavaScript读取和更新相关的元数据。</p> +<h3 id="css-的自定义缓动曲线">CSS 的自定义缓动曲线</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-20.png" +width="690" +height="399" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="415px" +></p> +<p><a class="link" href="https://www.smashingmagazine.com/2023/09/path-css-easing-linear-function/" target="_blank" rel="noopener" +>使用 linear() 函数实现惊人的 CSS 缓动动画</a>,随着新的 CSS linear() 缓动功能的出现,我们可以创建自然感觉的动画和过渡的可能性大大扩展。Jhey Tompkins 在本文中介绍了 CSS 缓动的当前状态,并演示了 linear() 函数令人期待的特性。 ​​​</p> +<h3 id="通过放大-rom-芯片搞破解">通过放大 ROM 芯片搞破解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-35.png" +width="690" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="120" +data-flex-basis="290px" +></p> +<p><a class="link" href="https://github.com/travisgoodspeed/gbrom-tutorial" target="_blank" rel="noopener" +>gbrom</a>,通过拍摄 ROM 芯片的显微照片,将里面固件的二进制代码还原了出来,硬破解的世界就是这么朴实无华。</p> +<h2 id="资源">资源</h2> +<h3 id="免费开发云服务大全">免费开发云服务大全</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-56.png" +width="690" +height="737" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="224px" +></p> +<p><a class="link" href="https://free-for.dev/#/" target="_blank" rel="noopener" +>free-for.dev</a>。这个网站筛选收录了大量面向开发者提供的在线服务。收录的标准非常严苛:必须真正免费(免费试用的不算),如果套餐有时间限制,则至少提供 1 年的免费时间。收录的服务涵盖:云基础设施、内容托管、设计资源、字体、在线 IDE 、产品监控等。</p> +<h3 id="在线提示词工厂">在线提示词工厂</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-37-13.png" +width="690" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +></p> +<p><a class="link" href="https://promptperfect.jinaai.cn/a/NEW" target="_blank" rel="noopener" +>promptperfect</a>,来自 JinaAI 的 PromptPerfect。能自动生成提示词。让用户可以逐步调试提示词,提供了各种参数。我试着让它帮我编写 AI 作画的提示语,感觉比我自己写的要靠谱一些。</p> +<h3 id="更新的光线追踪教程">更新的光线追踪教程</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-37-26.png" +width="670" +height="553" +loading="lazy" +class="gallery-image" +data-flex-grow="121" +data-flex-basis="290px" +> +<a class="link" href="raytracing.github.io" >《花一个周末学会光线追踪》</a>,Ray Tracing in One Weekend,这本在线电子书出新版了。真正从零开始手把手教你通过光线追踪进行三维场景渲染。 ​​​事实上整个系列一共包括三部曲,继续阅读《光线追踪:下一周篇》,将添加纹理、体积(如雾)、矩形、实例、光源,并支持使用包围体积层次结构(BVH)来处理大量对象。最后,在《光线追踪:往后余生篇》中,将深入探讨创建一个非常严谨的光线追踪器所涉及的数学。</p> +<h2 id="观点">观点</h2> +<h3 id="专注是良药">专注是良药</h3> +<p>不用过多考虑某些时间的投入是否值得,而陷入对时间流逝的焦虑。</p> +<p>如果做一件事情能够使得一个人在一段时间内保持专注,就是非常值得做的事情。</p> +<p>因为,“专注”本身就是收获成果的一部分。</p> +<p>能够在快节奏的生活中,找到不容易被分散注意力、不被各种诱惑干扰、可以集中精力投入的事情,已属难得。</p> +<p>“专注”做事看似简单,却是解决各种精神内耗的良药。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 050 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/Tue, 19 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-40.png" alt="Featured image of post 机器文摘 第 050 期" /><h1 id="机器文摘-第-050-期">机器文摘 第 050 期</h1> +<h2 id="长文">长文</h2> +<h3 id="十八世纪的光学电报网络">十八世纪的光学电报网络</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-08.png" +width="500" +height="517" +loading="lazy" +class="gallery-image" +data-flex-grow="96" +data-flex-basis="232px" +></p> +<p>当年读《基督山伯爵》的时候,有一个让我震惊的科技。</p> +<p>主人公有一项复仇计划是破坏敌人的金融资产。计划采取的手段是收买了一个传递实时信息的人让其传递错误信息。</p> +<p>而具体传递信息的手段是,每隔一段距离设一座瞭望塔,每个塔上有一个人,向一个方向用望远镜观看,远方的上级瞭望塔会有人发射信号弹,一连串的信号弹代表一定的信息,然后这个人再原样发射一遍,让后方的瞭望塔看见。信息就这样一级一级传递下去。</p> +<p>信息经过编码,可以表达股票行情等信息,类似后来的电报系统,但是这是在十八世纪。</p> +<p>读过之后我就一直有疑问,不知道小说是否虚构了这种信息传递技术,直到前几天我发现了这篇文章:<a class="link" href="https://www.lowtechmagazine.com/2007/12/email-in-the-18.html" target="_blank" rel="noopener" +>《十八世纪的光学电报网络》</a>。</p> +<p>里面详细介绍了在两百多年前人类就已经发明了“光学电报”系统,并建立起了巨大的信息网络。信息传递速度达到了惊人的 1380千米/每小时。</p> +<h3 id="c-语言发展简史">C 语言发展简史</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-23.png" +width="690" +height="352" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="470px" +></p> +<p>要说 C 语言是计算机历史上最重要的编程语言应该不会有人反对吧。</p> +<p>作为大多数人编程入门的母语,C 语言具有语法简洁、高性能(贴近计算机底层)、使用灵活、适用范围广泛等特点。</p> +<p>虽然诞生于上个世纪 70 年代,但即便是在 2023 年的今天,C 语言仍然排在各大编程排行榜的考前位置,仍然是信息科技的重要支撑力量。</p> +<p><a class="link" href="http://cm.bell-labs.co/who/dmr/chist.html" target="_blank" rel="noopener" +>《C 语言简史》</a>,由丹尼斯·里奇(C 语言之父)撰写,是一篇难得的介绍 C 语言的诞生和发展的历史性文献。</p> +<h3 id="vbvisual-basic发展简史">VB(Visual Basic)发展简史</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-40.png" +width="690" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></p> +<p>前几天 HN 上有个从业近 30 年的老程序员发问:<a class="link" href="https://news.ycombinator.com/item?id=37470318" target="_blank" rel="noopener" +>为什么 VB(Visual Basic)这么高效、好用的开发工具逐渐消失了?</a>。</p> +<p>被顶的最高的网友放出了<a class="link" href="https://retool.com/visual-basic/" target="_blank" rel="noopener" +>《Visual Basic 从诞生到消失》</a>这篇文章。</p> +<p>在上世纪 80 年代末 90 年代初,Windows 操作系统刚刚崭露头角的时候,VB 已经在萌芽状态了。而且已经具有非常先进的组件化、可视化、低代码等超前思想。并且发明了“控件”、“消息触发”等概念。</p> +<p>最初的版本与 BASIC 语言并无关系,只考虑了使用可视化开发并辅助简单的内嵌脚本,但是比尔·盖茨对 BASIC 十分热爱(毕竟那是微软起家的技术),亲自推动了组件化、可视化开发与 BASIC 语言结合,便诞生了 Visual Basic。</p> +<p>得益于超前的可视化开发理念,VB 极大降低了当时开发应用程序的门槛,涌现出一大批开发者。包括当时那些不得不转型给个人电脑开发程序的大型机编程工程师。</p> +<p>这一切在 VB 随着 Visual Studio 发布 6.0 的时候达到了顶峰。</p> +<p>转折点出现在微软为了应对 Java 的威胁而推出 .Net 公共语言运行时的时候,VB 也被纳入到这套体系里,被成为 VB.Net ,扩充了复杂的语法和继承、多态等高级特性。</p> +<p>对于那些真正喜欢 VB6 的人来说,这些都是唯恐避之不及的东西,更糟糕的是新的 VB.Net 无法兼容之前的代码,大量成果移植困难。</p> +<p>之后更是随着网络信息科技的发展,Web 编程逐渐取代了 Windows 桌面编程,VB 这个伟大的技术,被淘汰也就是顺其自然的了。</p> +<h3 id="一个在网页里模仿-excel-表格的故事">一个在网页里模仿 Excel 表格的故事</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-14.png" +width="690" +height="201" +loading="lazy" +class="gallery-image" +data-flex-grow="343" +data-flex-basis="823px" +></p> +<p><a class="link" href="https://websheets.github.io/websheets/demo/" target="_blank" rel="noopener" +>一位前端工程师,讲述了他在 2016 年受雇于 Uber(优步)时的一些开发往事</a>。</p> +<p>作为服务于数据工程师的内部研发团队,他所在的小组主要是给公司的数据分析人员提供内部工具,以便让他们能够更快地分析数据,更快的分析数据意味着更有可能在产品运营竞争里获胜。</p> +<p>然而数据分析人员总是抱怨工具不满足要求,主要是操作界面,因为他们非常习惯“Excel”,每次提需求的时候总是说:“你就做得跟 Excel 一样就行”。</p> +<p>作者最开始还试图跟用户解释要实现起来是多么困难,后来逐渐放弃了挣扎,并开始着手在网页里实现一个跟 Excel 一样的表格,而且他竟然实现了。</p> +<p>故事的后来有些伤感,作者提供的工具并没有使得 “Uber” 在跟嘀嘀的竞争中胜出,相反地,“Uber”在中国的业务还被“嘀嘀”收购了。</p> +<p>被用于数据分析的工具也被抛弃不再使用。</p> +<p>后来作者选择了将那个像 Excel 的表格代码放在了 <a class="link" href="github.com/WebSheets/websheets" >Github 进行开源,地址在这里</a>。</p> +<h2 id="资源">资源</h2> +<h3 id="通用-web-应用服务器">通用 Web 应用服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-34.png" +width="690" +height="356" +loading="lazy" +class="gallery-image" +data-flex-grow="193" +data-flex-basis="465px" +></p> +<p><a class="link" href="https://unit.nginx.org/" target="_blank" rel="noopener" +>NGINX Unit</a>,通用 Web 应用服务器。是一个轻量且多功能的应用运行时,作为一个单一的开源服务器,它提供了您的 Web 应用程序所需的基本组件:运行应用程序代码(包括 WebAssembly)、提供静态资源、处理 TLS 和请求路由。</p> +<p>Unit 是由 NGINX 团队成员从零开始创建的,以在运行时高度高效且完全可配置。最新版本是 1.31.0,于 2023 年 8 月 31 日发布。</p> +<h3 id="绿色安卓-app-合集">绿色安卓 App 合集</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-52.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://www.simplemobiletools.com/" target="_blank" rel="noopener" +>绿色安卓app合集</a>。</p> +<p>这个网站收集了一大批良心 app,全部没有广告且不要求隐私权限。</p> +<p>几乎涵盖了日常使用的所有类型,包括艺术绘画、音乐播放器、笔记、文件管理、录音、拍照等。 ​​​</p> +<h3 id="nuejs">nuejs</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-10.png" +width="690" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></p> +<p><a class="link" href="https://nuejs.org/" target="_blank" rel="noopener" +>nuejs</a>,越来越多的人对前端开发的混乱感到不满了。不同的是有人选择抱怨,有人撸起袖子开干。nuejs 的作者觉得现在使用 React、Vue 等框架再加上若干服务端渲染框架,使得前端开发生态变得越来越复杂和掌握。于是自己动手开发了一个简单的轻量化框架,终极目标是构建一个简洁、高效的前端开发生态。</p> +<h3 id="1024-字节的网页可显示-3d-地球">1024 字节的网页,可显示 3D 地球</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-21.png" +width="447" +height="255" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="420px" +></p> +<p><a class="link" href="https://aem1k.com/world/" target="_blank" rel="noopener" +>1024 字节的 JavaScript,在网页中显示动画 3D 地球模型</a>,页面动画显示的就是其源代码。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="p">.</span><span class="o">&lt;</span><span class="nx">script</span><span class="o">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nb">eval</span><span class="p">(</span><span class="nx">z</span><span class="o">=</span><span class="s1">&#39;p=&#34;&lt;&#34;+&#34;pre&gt;&#34;/* ,.oq#+ ,._, */;for(y in n=&#34;zw24l6k\ +</span></span></span><span class="line"><span class="cl"><span class="s1">4e3t4jnt4qj24xh2 x/* =&lt;,m#F^ A W###q. */42kty24wrt413n243n\ +</span></span></span><span class="line"><span class="cl"><span class="s1">9h243pdxt41csb yz/* #K q##H######Am */43iyb6k43pk7243nm\ +</span></span></span><span class="line"><span class="cl"><span class="s1">r24&#34;.split(4)){/* dP cpq#q##########b, */for(a in t=pars\ +</span></span></span><span class="line"><span class="cl"><span class="s1">eInt(n[y],36)+/* p##@###YG=[#######y */(e=x=r=[]))for\ +</span></span></span><span class="line"><span class="cl"><span class="s1">(r=!r,i=0;t[a/* d#qg `*PWo##q#######D */]&gt;i;i+=.05)wi\ +</span></span></span><span class="line"><span class="cl"><span class="s1">th(Math)x-= /* aem1k.com Q###KWR#### W[ */.05,0\ +</span></span></span><span class="line"><span class="cl"><span class="s1">x;)p+=&#34; *#&#34;/* b. OQ####x#K */[e[x++]+e[x++\ +</span></span></span><span class="line"><span class="cl"><span class="s1">]]||(S=(&#34;eval&#34;/* l `X#####D , */+&#34;(z=\&#39;&#34;+z.spl\ +</span></span></span><span class="line"><span class="cl"><span class="s1">it(B = &#34;\\\\&#34;)./* G####B&#34; # */join(B+B).split\ +</span></span></span><span class="line"><span class="cl"><span class="s1">(Q=&#34;\&#39;&#34;).join(B+Q/* VQBP` */)+Q+&#34;)//m1k&#34;)[x/2\ +</span></span></span><span class="line"><span class="cl"><span class="s1">+61*y-1]).fontcolor/* TP */(/\\w/.test(S)&amp;&amp;&#34;#\ +</span></span></span><span class="line"><span class="cl"><span class="s1">03B&#34;);document.body.innerHTML=p+=B+&#34;\\n&#34;}setTimeout(z)&#39;</span><span class="p">)</span><span class="c1">// +</span></span></span></code></pre></td></tr></table> +</div> +</div><h3 id="全球-ip-地址地理位置数据库">全球 IP 地址地理位置数据库</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-35.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://ipapi.is/geolocation.html" target="_blank" rel="noopener" +>全球 IP 地址 地理位置数据库</a>。含 IPV4 和 IPV6。 ​​<a class="link" href="https://ipapi.is/geolocation.html" target="_blank" rel="noopener" +>​这篇文章里还介绍了构建 IP 地址地理数据库的实现原理</a>和一套具有指导意义的实现方法。基本原理是:“互联网中的每个 IP 地址都由组织拥有或管理。可以向互联网注册机构查询WHOIS信息。”</p> +<h2 id="观点">观点</h2> +<h3 id="为什么-facebook-的-pytorch-占有率赢了-google-的-tensorflow">为什么 Facebook 的 PyTorch 占有率赢了 Google 的 Tensorflow</h3> +<p>Pytorch 已经完全击败了 Tensorflow,成为 AI 开发框架的事实标准。Pytorch 一开始就专注于学术界,方向是把最牛的人吸引过来。而 Tensorflow 则倾向于软件工程炫技,做各种简单但是酷炫的功能。</p> +<p>最终专业化的 torch 击败了 tensorflow 。 我觉得​​​还有一个原因就是 Google 特别容易弃坑,Tensorflow 中间也切换过前后不兼容的 API。</p> +<h3 id="越来越多的科技产品让人更好地欺骗自己">越来越多的科技产品让人更好地欺骗自己</h3> +<p>比如美颜相机、电影特效、游戏等,研发它们的主要目的就是让人们更好的实现自我欺骗和催眠。</p> +<h3 id="东方文明为什么警惕科技我个人不完全同意">东方文明为什么警惕科技(我个人不完全同意)</h3> +<p>中国古代对于科技非常警惕和打压的原因,也许是古人早就意识到科技(或技术)力量很容易对人类造成强烈反噬。</p> +<p>观点来自 <a class="link" href="https://www.bilibili.com/video/BV1pu4y1r7KW/" target="_blank" rel="noopener" +>@​​​安东尼2001:量子自旋理论背后,是人类历史的轮回</a>。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 049 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/Tue, 12 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-22.png" alt="Featured image of post 机器文摘 第 049 期" /><h1 id="机器文摘-第-049-期">机器文摘 第 049 期</h1> +<h2 id="长文">长文</h2> +<h3 id="在-linux-环境里执行-windows-应用程序">在 Linux 环境里执行 Windows 应用程序</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-33-44.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p>最近遇到一个难以启齿的需求,服务器是 Linux 环境,但是某项服务功能却需要执行一个 Windows exe 文件。</p> +<p>不得已才想到要求助 Wine 这个经典中间层,据说可以使的 Linux 兼容大部分的 Win32 程序。</p> +<p>但是又不想污染服务器的其他环境,于是选择在容器中运行。</p> +<p>在网上找到了这篇<a class="link" href="https://leimao.github.io/blog/Docker-Wine/" target="_blank" rel="noopener" +>《利用 Docker 容器和 Wine 在 Linux里运行 Windows 程序》</a>,按照文中介绍的步骤成功实现了需求。</p> +<p>基本步骤: +1、根据文章提供的 Dockfile 构建镜像; +2、运行镜像并注意配置运行容器的环境变量; +3、执行所需的 exe 程序。</p> +<h3 id="windows-系统是怎样进行引导的">Windows 系统是怎样进行引导的</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-06.png" +width="690" +height="976" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="169px" +></p> +<p>前不久,我在给笔记本更换大容量固态硬盘的时候,由于不愿重做系统,使用了硬盘克隆功能,将原盘整体信息直接克隆到新硬盘。</p> +<p>结果克隆成功并替换安装硬盘之后,却没能正常引导进入 Windows,而是进入了一个类似 PE 系统的界面(猜测是原盘中厂家自制的),并告知我由于检测到硬件更换,拒绝引导,并建议我选择恢复系统。</p> +<p>我猜测之前的隐藏分区可能有笔记本厂家做的一些特定引导程序,才导致这样的情况。</p> +<p>我对系统引导的理解还停留在 MBR 分区表大面积应用的阶段。于是尝试删除了隐藏分区,并手动将系统盘分区设置为了 “激活”分区(事实上这时候已经错了,因为 GPT 分区表方式下无法采用这种引导方式了)。</p> +<p>结果系统干脆直接无法引导。出现这种情况,我之前的知识储备显然不够用了。</p> +<p>经过一番折腾和搜索,我才得知现在 Windows 8 及以上版本操作系统的电脑所采用的方式是 GPT 分区表 + UEFI 引导。</p> +<p>也就是说硬盘上需要单独开辟一个分区存储负责进行操作系统引导的工作。这个分区平时对于操作系统的资源管理器不可见(但磁盘管理中可以看到),由主板上的 UEFI 程序(这个程序可以理解为 BIOS 的升级版)进行访问和管理。</p> +<p>了解这个方式之后,就简单了,重新使用工具修改 GPT 分区并制作专用引导分区即可。</p> +<p>最后,为了弄清这跟之前的 MBR 引导方式有什么区别,我找到了一位运维工程师总结得较到位的文章<a class="link" href="https://zhuanlan.zhihu.com/p/355526135" target="_blank" rel="noopener" +>《Windows系统开机引导顺序简述及运维小结》</a>。</p> +<h3 id="500-行代码写一个-c-编译器">500 行代码写一个 C 编译器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-22.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p><a class="link" href="https://vgel.me/posts/c500/" target="_blank" rel="noopener" +>500 行 Python 代码写一个 C 编译器</a>。</p> +<p>作者立下这个 flag 之后才发现任务有多难。</p> +<p>主要是代码行数太少了,如果使用传统手段实现,可能这点儿代码量还不够写个语法分析器的。</p> +<p>于是作者主动放弃了 AST (抽象语法树)的构建,采用 Token 提取和指令生成“一遍过”的方式,实现了一个相当“简洁”的 C 编译器。</p> +<h2 id="资源">资源</h2> +<h3 id="假装弹钢琴">假装弹钢琴</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-51.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p><a class="link" href="http://touchpianist.com/" target="_blank" rel="noopener" +>touchpianist</a>,在线弹钢琴的网站(也提供手机 App 版),可以让你假装钢琴大师,只需要按键盘上的任意键,旋律就会自动演奏,不过你要控制敲击键盘的速度,以匹配原曲的节奏。我弹了一下,默认曲目是贝多芬的《月光奏鸣曲》,差点儿被自己陶醉了。 ​​​</p> +<h3 id="bun-v10">Bun V1.0</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-09.png" +width="690" +height="419" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></p> +<p><a class="link" href="https://bun.sh/blog/bun-v1.0" target="_blank" rel="noopener" +>bun-v1.0</a>,拳打 node , 脚踢 deno 的 JavaScript 运营环境 bun 推出了 1.0 版本。主打一个“All in one”,号称可以一次性取代一揽子工具:node、npx、npm、webpack、tsc、babel、jest。一个工具包揽了运行、打包、包管理、转译、测试等所有事情,且速度是 nodejs 的 3 倍。</p> +<p>对于这种吹的比较厉害的技术,保持关注,谨慎使用吧。</p> +<h3 id="开源基于-llm-知识库平台">开源基于 LLM 知识库平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-24.png" +width="690" +height="334" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="495px" +></p> +<p><a class="link" href="https://github.com/labring/FastGPT" target="_blank" rel="noopener" +>FastGPT</a> - 基于 LLM 大模型的 AI 知识库问答系统。提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景。项目在 Github 开源,采用技术栈: NextJs + TS + ChakraUI + Mongo + Postgres(Vector 插件)。支持 GPT、Claude、Spark、ChatGLM 等多种 LLM 模型。</p> +<h3 id="开源基于-llm-数据可视化平台">开源基于 LLM 数据可视化平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-35.png" +width="690" +height="292" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="567px" +></p> +<p><a class="link" href="https://github.com/microsoft/lida" target="_blank" rel="noopener" +>lida</a>,微软出品的数据可视化工具库,特点是基于 LLM 对话模型进行生成,其生成的可视化代码支持多种可视化后端的语法,包括 matplotlib、seaborn、d3等。 ​​​</p> +<h2 id="观点">观点</h2> +<h3 id="编程是一种体育锻炼">编程是一种体育锻炼</h3> +<p>编程除了是一种可以以之谋生的专业技能,对于那些真喜欢编程的人来说,它还是一个心理疗愈工具。</p> +<p>编程能使人专注,进入“心流”状态比较容易,也容易让人的心态平和。</p> +<p>编程与体育锻炼一样,都是可以让人受益终生的活动。</p> +<p>&mdash;-来自<a class="link" href="https://weibo.com/1461522430/NiEh1BHMt" target="_blank" rel="noopener" +>@软件教书匠金旭亮</a>。</p> +<h3 id="造成电子阳痿的一种因素">造成电子阳痿的一种因素</h3> +<p>一个不容忽视的因素是现在游戏的加载速度,尤其是 PC 游戏。</p> +<p>我们被碎片化信息惯得一秒钟都不想等待。</p> +<p>每当想玩会儿 CS 或者地平线之类得游戏,光是等待游戏启动、地图加载等就足以让人放弃想玩的念头。</p> +<p>更别提有些游戏还有一些跳都无法跳过得开场引导视频。</p> +<p>所以我现在就算是玩也是偶尔打开模拟器玩一玩老游戏,带有状态存储,随时加载存档。</p> +<p>据说有一部分游戏主机(比如新一代 XBox)有类似笔记本电脑的睡眠功能,开机就玩,随时进入上次未完成的任务。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 048 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/Tue, 05 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/<h1 id="机器文摘-第-048-期">机器文摘 第 048 期</h1> +<h2 id="长文">长文</h2> +<h3 id="关于-python-语言的一些统计数字">关于 Python 语言的一些统计数字</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-05.png" +width="690" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="224" +data-flex-basis="539px" +></p> +<p><a class="link" href="https://py-code.org/stats" target="_blank" rel="noopener" +>关于开源 Python 仓库的一些有趣统计</a>,有人克隆了 PyPI 网站里所有 Python 包对应的 Github 仓库,并对这些仓库里的全部文件进行了分析和统计。</p> +<p>1、排名前三的语法特性分别是:列表推导、fstring字符串格式化、注解;</p> +<p>2、代码中大约包含有超过 2 万 5 千个密钥明文,泄露最多的是访问 Google API、OpenAI API和腾讯云 Secret ID;</p> +<p>3、截止到 2023 年 8 月,所有源码加起来已超过 60TB ,文件数量超过 10 亿。</p> +<h3 id="wasm-技术让数据库执行-ai-模型">Wasm 技术让数据库执行 AI 模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-30.png" +width="618" +height="492" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="301px" +></p> +<p><a class="link" href="https://dylibso.com/blog/pg-extism/" target="_blank" rel="noopener" +>使用 Extism 将 WebAssembly 引入 PostgreSQL</a>。</p> +<p>这篇文章的作者介绍了一种方法,可以使用 Wasm 技术通过扩展插件的方式给 PostgreSQL 数据库增加 UDF (用户自定义函数),从而实现调用 AI 模型的能力。</p> +<h3 id="bitlocker-硬件加密能破解吗">BitLocker 硬件加密能破解吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-50.png" +width="690" +height="499" +loading="lazy" +class="gallery-image" +data-flex-grow="138" +data-flex-basis="331px" +></p> +<p>BitLocker 是 Windows 下的存储加密技术,用于保护硬盘中的数据安全。</p> +<p>未经解密的硬盘即使遗失或者被接入其他系统也无法进行读取。</p> +<p>这在极大程度上带来了数据安全(不过仍有不少用户在不知情的情况下开启了 BitLocker 且未保存密钥,在重做系统的时候发现硬盘无法解密,数据无法恢复。。欲哭无泪。。)。</p> +<p>然而这种加密方式也不是绝对安全,国外有技术爱好者对此进行了挑战,并使用一台逻辑分析仪成功绕过了加密。</p> +<p><a class="link" href="https://www.errno.fr/BypassingBitlocker.html" target="_blank" rel="noopener" +>这篇文章进行了详细的记录</a>。</p> +<p>主要原理为:在系统开机启动过程中的某个时刻,加密芯片和 CPU 之间传输了未加密的信号。使用逻辑分析仪捕获该信号可以逆向出加密密钥。</p> +<h2 id="资源">资源</h2> +<h3 id="监控网页信息变化的工具">监控网页信息变化的工具</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-17.png" +width="499" +height="326" +loading="lazy" +class="gallery-image" +data-flex-grow="153" +data-flex-basis="367px" +></p> +<p><a class="link" href="https://github.com/dgtlmoon/changedetection.io" target="_blank" rel="noopener" +>changedetection</a>,一个监控网站变化的工具。</p> +<p>帮助用户密切关注商品打折、股票行情、政策发布等信息变动。</p> +<p>支持通过网页可视化的方式指定监控页面区域。</p> +<p>通过邮件、即时聊天软件、API调用等多种方式推送信息。可使用 Docker 部署,或者本地 Python 环境部署。</p> +<h3 id="switch-模拟器">Switch 模拟器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-28.png" +width="690" +height="472" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="350px" +></p> +<p><a class="link" href="https://github.com/Ryujinx/Ryujinx" target="_blank" rel="noopener" +>Ryujinx</a> 一个用c# 写的开源 switch 模拟器,该模拟器旨在提供卓越的准确性和性能、用户友好的界面以及稳定的版本构建。 ​​​</p> +<h3 id="文字缩写快捷键工具">文字缩写快捷键工具</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-45.png" +width="568" +height="446" +loading="lazy" +class="gallery-image" +data-flex-grow="127" +data-flex-basis="305px" +></p> +<p>为了减少打字量,国外这哥们写了个脚本将日常用语全部缩写了,只需敲入缩写字母,脚本自动完成完整句子的键盘输入。</p> +<p>比如: +st =&gt; something +ab =&gt; about +hw =&gt; hardware +sti =&gt; sometime</p> +<p>据小哥自己统计,使用这个脚本以后他已经减少了一半的键盘敲击量。</p> +<p><a class="link" href="https://github.com/eschluntz/compress" target="_blank" rel="noopener" +>项目名叫 compress 目前已开源</a>,如果你有兴趣,改成支持中文也不是不可以。</p> +<h3 id="canvas-手册">Canvas 手册</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-22-11.png" +width="562" +height="625" +loading="lazy" +class="gallery-image" +data-flex-grow="89" +data-flex-basis="215px" +></p> +<p>Canvas 是网页中用于图形绘制的基本元素,结合 JavaScript 可以实现各种复杂的图形效果和交互动画。我之前都是每次用到了的时候现去翻文档,对它的每个 API 都是一知半解。这里有一个<a class="link" href="https://bucephalus.org/text/CanvasHandbook/CanvasHandbook.html" target="_blank" rel="noopener" +>Canvas 手册</a>,详细介绍了 Canvas 的各种调用接口。适合希望深度使用及系统学习 Canvas。</p> +<h2 id="观点">观点</h2> +<h3 id="不要重复造轮子是人为设置的一种限制">“不要重复造轮子”是人为设置的一种限制</h3> +<p>遇到需求不能满足的情况,是去“寻找轮子”还是“动手创造轮子”,这是两种不同的思维习惯。</p> +<p>“寻找轮子”往往意味着寻找已有答案,将问题看为一种正常的状态,是“自古以来”、是“从来如此”。</p> +<p>思维定势一旦形成,就很难改变,让人成了那个在沙漠中让美女帮他牵住骆驼的矮子。</p> +<p>动手创造者往往是发现这种问题的人,他们不循规蹈矩,他们 Think different,是改变世界的人。</p> +<p>“不要重复发明轮子”,这个原则用于工作中确实比较安全,他保证了不会浪费资源,并且避免了一定的技术风险。</p> +<p>但也同时拒绝了伟大的创新。</p> +<p>所以不要被这句话束缚,尽管去做自己的轮子。</p> +<p>哪怕它一开始很丑。</p> +<p>你的轮子必将使你与众不同,使你拥有不一样的视角,成为那个动手创造的人。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 047 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/Tue, 29 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/<h1 id="机器文摘-第-047-期">机器文摘 第 047 期</h1> +<h2 id="长文">长文</h2> +<h3 id="业余爱好者痴迷于工具专业人士注重技能">业余爱好者痴迷于工具,专业人士注重技能</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-17-36.png" +width="649" +height="582" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="267px" +></p> +<p><a class="link" href="https://adamsinger.substack.com/p/amateurs-obsess-over-tools-pros-over" target="_blank" rel="noopener" +>业余爱好者痴迷于工具,专业人士注重技能</a>。</p> +<blockquote> +<p>以原声吉他为例。在数字音乐制作和合成器盛行的时代,这个单独演奏的乐器可能显得有点古老。然而,在熟练音乐家的手中,它变成了一个充满迷人旋律和触动灵魂的载体。它甚至可能为更大的创意提供灵感,如果你直接跳到现代合成器就有可能会错过这些。原声吉他的简单性促使艺术家专注于演奏的细微之处,完善他们的指弹技巧,并通过每一次弹奏传达情感。真正的魔力不在于吉他本身,而在于将其演绎得生动活泼的音乐家的技艺。</p> +</blockquote> +<p>这篇文章读来深有感触。</p> +<p>在解决问题的时候,我总是忍不住问自己,我这个方法是最优的吗?我使用的工具是不是最合适/最好的?</p> +<p>这种心理,常常使我陷入对最佳实践和完美工具的追求中,而忘记了解决问题本身。</p> +<p>时间久了,工具积累一大堆,但每个都未曾发挥其真正作用,一边老工具在吃灰,一边继续寻找新工具。</p> +<p>差生文具多。</p> +<p>正如文章中所说:真正的高手明白,应当拿起手里已有的工具,先行动起来。在这个过程中如果有机会创造美好的事物,好的工具自然会出现在眼前。</p> +<h3 id="cpu-的指令分支预测">CPU 的指令分支预测</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-17-49.png" +width="682" +height="743" +loading="lazy" +class="gallery-image" +data-flex-grow="91" +data-flex-basis="220px" +></p> +<p>现代的 CPU 基本都具有指令分支预测的特性,通过猜测后续会执行的指令分支,提前运行一些指令和设置状态,可以有效利用 CPU 的执行资源,提升效率。</p> +<p>不过,如果预测准确的话效率提升十分明显,但是如果预测错误,CPU 就要多做一些事情(刷新后续预测的指令和相关的状态),随着现代 CPU 中指令流水线越来越复杂,这种代价也变得越来愈大。</p> +<p>在编程的时候,编写一些对于 CPU 分支预测友好的代码,能够对性能产生极大的影响。</p> +<p>这篇<a class="link" href="https://johnnysswlab.com/how-branches-influence-the-performance-of-your-code-and-what-can-you-do-about-it/" target="_blank" rel="noopener" +>对于 CPU 的分支预测,我们能做什么</a>耐心地从 CPU 的分支预测机制讲起,通过具体的代码举例,讲解了怎样让编写的代码对 CPU 分支预测这类优化更加友好。</p> +<h3 id="ssh-命令详解">SSH 命令详解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-18-25.png" +width="690" +height="535" +loading="lazy" +class="gallery-image" +data-flex-grow="128" +data-flex-basis="309px" +></p> +<p><a class="link" href="https://grahamhelton.com/blog/ssh-cheatsheet/" target="_blank" rel="noopener" +>SSH 命令详解</a>,一篇对 SSH 命令的参数介绍十分详细且易懂的文章。</p> +<p>通过举例让我彻底弄清楚了基于 SSH 的端口转发。</p> +<p>另外还知道了可以在已有的 SSH 连接上执行补充命令,以实现不断开终端的情况下将远程主机上的端口转发到本机访问。 ​​​</p> +<h2 id="资源">资源</h2> +<h3 id="开源的房子">开源的房子</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-18-47.png" +width="690" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +></p> +<p><a class="link" href="https://www.wikihouse.cc" target="_blank" rel="noopener" +>wikihouse</a>,是一个开源房屋建造网站,房子的图纸、模型均可从网站上下载,里面有各式各样的房屋建造资料,任何人都可以据此增删、设计、制造、组装自己的建筑。可以理解为建筑界的 github。 +​​​</p> +<h3 id="关掉-edge-浏览器新增的圆角样式">关掉 Edge 浏览器新增的圆角样式</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-03.png" +width="690" +height="352" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="470px" +></p> +<p>Edge 浏览器的最新更新里,给所有页面强制增加了一个圆角边框,看起来很不习惯(丑陋)。</p> +<p>经过研究,我发现,如果想恢复到之前的样子,可以在设置外观选项里关闭该特性。</p> +<p>我已经关闭,并果断给这个功能特性反馈了负面评价。</p> +<h3 id="hello-world">Hello World</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-26.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://github.com/leachim6/hello-world" target="_blank" rel="noopener" +>Hello World</a> ,这个仓库收录了几乎所有编程语言(997种)的 Hello world 程序。 ​​​</p> +<h3 id="前端开发代码大全">前端开发代码大全</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-42.png" +width="690" +height="639" +loading="lazy" +class="gallery-image" +data-flex-grow="107" +data-flex-basis="259px" +></p> +<p><a class="link" href="https://30secondsofcode.org" target="_blank" rel="noopener" +>30secondsofcode</a>。</p> +<p>这个网站有大量可复用的代码片段,主要是 Javascript、CSS、HTML 、Python 等语言的内容,可以覆盖 Web 应用开发全栈。</p> +<p>里面收录的代码段或者文章都很清新,每个都配有细心的解释,具有良好的实用性。 ​​​</p> +<h3 id="关于-win10-的锁屏睡眠时间">关于 Win10 的锁屏睡眠时间</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-20-00.png" +width="410" +height="502" +loading="lazy" +class="gallery-image" +data-flex-grow="81" +data-flex-basis="196px" +></p> +<p>我在使用 Windows10 的时候发现一个问题。</p> +<p>无论我将电源设置里的睡眠时间、显示器空闲关闭时间设置多长,锁屏后系统都会在 1 分钟之后关闭显示器。</p> +<p>这会带来一些不方便,并且让人困惑。</p> +<p>在经过一番研究搜索之后,找到了如下解决方案(Windows就是这么喜欢在注册表隐藏设置):</p> +<p>1、打开注册表编辑器后。</p> +<p>2、定位到:<code>计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\8EC4B3A5-6868-48c2-BE75-4F3044BE88A7</code></p> +<p>3、修改右侧的Attributes 数值为2 (初始值为1)</p> +<p>4、再打开“编辑电源计划”时会发现多了一个选项“控制台锁定显示关闭超时。</p> +<h3 id="红警2游戏整合包">红警2游戏整合包</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-20-25.png" +width="413" +height="302" +loading="lazy" +class="gallery-image" +data-flex-grow="136" +data-flex-basis="328px" +></p> +<p><a class="link" href="https://tmioe.com/7991.html" target="_blank" rel="noopener" +>红警2 的民间整合包</a>,支持 win7 到 win11。整合大量资源,傻瓜式一键安装。 ​​​</p> +<p>经过我的测试,前面链接页面里提供的安装包里带有额外的广告脚本,在使用时可使用 7z 等压缩软件直接打开该自解压包,选取主文件夹拷贝出来即可。</p> +<h2 id="观点">观点</h2> +<h3 id="隐形的门槛">隐形的门槛</h3> +<p>也许每个领域都存在一个隐形的门槛,无论是你学会一种语言,还是掌握一种能力,哪怕是打通一个游戏,只要你跨不过那个门槛,那么无论你尝试多少次,都会在同样的水平下无功而返。相反,一旦跨过后,那就是一马平川,你有了在那个新世界周游的能力。这当然不是说你不会再遇到困难,而是说,你不再有那种尝试了无数次,带着同一种感受离开的感觉。剩下的区别只是更多经验的积累,是熟练度的问题,因为你已经在那个轨道上了,你已经拿到了入场券。</p> +<p>人生可以被隐喻成一个有着自然消退机制的RPG体系,累积10000经验可以升那关键的一级,那么先前你无论你多少次到达5000,6000,9000都不行,因为熟练度会反复消退到1000,2000的水平。而我知道,很多人就是无数次的卡在了那9000以内,但每次都要从1000,2000这个位置开始。这个和自我接纳也没有关系,因为你知道你遇到的困难并不是基于你对自己的苛求,你的困难在于你无法为自己在乎的事情付出真正的努力,无法将自己的活力与热情持续的灌注在同一个点上,但你隐约知晓跨过那10000的门槛,是你更重要的人生福祉。</p> +<p>来自微博 <a class="link" href="https://weibo.com/3762961402/NgprO9HD5" target="_blank" rel="noopener" +>@崔庆龙_</a></p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 046 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/Tue, 22 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/<h1 id="机器文摘-第-046-期">机器文摘 第 046 期</h1> +<h2 id="长文">长文</h2> +<h3 id="windows-的任务管理器">Windows 的任务管理器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-28-48.png" +width="452" +height="758" +loading="lazy" +class="gallery-image" +data-flex-grow="59" +data-flex-basis="143px" +></p> +<p>如果你喜欢使用 Windows 任务管理器来查杀那些不安分的进程,并且跟我一样讨厌他们乱跳(尤其在按照资源占用排序时)。你可以按下 Ctrl 键,它就会神奇地停止更新直到你松开 Ctrl。</p> +<p>Windows 操作系统有一种魔力,就是哪怕你用了将近 20 年,还是会有你不知道的快捷键或者快捷操作。这些东西有时候能带来一些惊喜。</p> +<p>具体介绍可以看这里:<a class="link" href="https://www.theverge.com/2023/8/16/23834125/microsoft-windows-task-manager-pause-shortcut" target="_blank" rel="noopener" +>暂停 Windows 任务管理器</a></p> +<h3 id="linux-内核最初版的解析">Linux 内核最初版的解析</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-29-10.png" +width="588" +height="253" +loading="lazy" +class="gallery-image" +data-flex-grow="232" +data-flex-basis="557px" +></p> +<p>最新版本的 Linux 内核,其源码规模已经飙升至 3600 万行,想要深入细节去了解它十分吃力。</p> +<p>而Linux 的第一个版本 v0.01 却非常小巧。</p> +<p>刨去注释和空行的话,也就 8 千来行代码。</p> +<p>这么小的代码结构,足够理解操作系统的精髓。</p> +<p>这篇<a class="link" href="https://seiya.me/blog/reading-linux-v0.01" target="_blank" rel="noopener" +>探索 Linux v0.01 d的内部结构</a>,可以带你像参观历史博物馆那样去见证曾经的 Linux。</p> +<p>我记录了一些有意思的地方:</p> +<p>1、v0.01 只有 66 个系统调用,用于支持文件管理和进程管理,分别是:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">access acct alarm <span class="nb">break</span> brk chdir chmod +</span></span><span class="line"><span class="cl">chown chroot close creat dup dup2 execve +</span></span><span class="line"><span class="cl"><span class="nb">exit</span> fcntl fork fstat ftime getegid geteuid +</span></span><span class="line"><span class="cl">getgid getpgrp setsid getpid getppid +</span></span><span class="line"><span class="cl">getuid gtty ioctl <span class="nb">kill</span> link lock lseek +</span></span><span class="line"><span class="cl">mkdir mknod mount mpx nice open pause +</span></span><span class="line"><span class="cl">phys pipe prof ptrace <span class="nb">read</span> rename rmdir +</span></span><span class="line"><span class="cl">setgid setpgid setuid setup signal stat +</span></span><span class="line"><span class="cl">stime stty sync <span class="nb">time</span> <span class="nb">times</span> <span class="nb">ulimit</span> <span class="nb">umask</span> +</span></span><span class="line"><span class="cl">umount uname unlink ustat utime waitpid write +</span></span></code></pre></td></tr></table> +</div> +</div><p>其中 mount 调用啥也没干,直接返回了。</p> +<p>2、直接写死代码绑定 Intel 386 平台。至今对于 PS/2 接口的键盘、ATA硬盘、VGA显卡等标准硬件的驱动代码还是写死在内核里(而不是放在drivers文件夹)。</p> +<p>3、系统崩溃处理代码只有 5 行:只实现了打印一句“我不行了”,然后进入死循环<code>for(;;);</code>。</p> +<h3 id="llamacpp-是怎样做到的">LLaMa.cpp 是怎样做到的?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-29-37.png" +width="540" +height="531" +loading="lazy" +class="gallery-image" +data-flex-grow="101" +data-flex-basis="244px" +></p> +<p>LLaMa.cpp 是一个令人惊叹的项目,在它之前没有人能够在低端消费设备上成功运行 Meta 开源的人工智能模型 LLaMa ,因为那需要太多的硬件资源。</p> +<p>但是 LLaMa.cpp 的横空出世使得在 M2 Macbook Pro、Android Pixel5 手机甚至树莓派上运行 LLaMa 的 7B 模型成为可能。</p> +<p>这是怎么做到的?</p> +<p>带着这个疑问,有网友深入研究了这个项目,并写下了这篇<a class="link" href="https://finbarr.ca/how-is-llama-cpp-possible/" target="_blank" rel="noopener" +>How is LLaMa.cpp possible?</a>以解释原因。</p> +<p>作者认为主要得益于对模型参数的量化,降低模型参数的精度,从 FLOAT16 减小到 INT4。使得 LLaMa.cpp 能够以较少的计算资源甚至只依赖 CPU 的情况下加载大模型。</p> +<h3 id="逐渐觉得微软比谷歌良心">逐渐觉得微软比谷歌良心</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-01.png" +width="690" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="185" +data-flex-basis="445px" +></p> +<p>曾经微软是技术黑客的公敌,被不少人视为反对技术创新、技术开放的最大反派。</p> +<p>不过随着时间的推移,以及微软逐渐在开源社区所做出的努力。这一现象有所好转。</p> +<p>近期在 HN 上<a class="link" href="https://old.reddit.com/r/degoogle/comments/15pd5si/today_i_realized_i_now_trust_microsoft_more_than/" target="_blank" rel="noopener" +>有位网友很扭捏地承认:现在他对微软的感觉要比对谷歌好很多</a>。</p> +<p>他列举了一些关于两家公司的对比,包括发布的产品、主观的优劣评价等等。</p> +<p>为了抵制微软,他已经十多年没用 Windows 了,但貌似微软的其他产品“很香”(VS Code、Github、ChatGPT等)。</p> +<p>并表示最近正在寻摸租一个云存储,大概率也会用微软的 onedrive 而不是谷歌的 Google drivers。</p> +<p>对此我也有类似感觉,不过我对谷歌的不信任起始于十年前谷歌将 Google reader 停掉,而自从微软推出 WSL 后,我更是觉得微软在产品上越来越实在了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-31-23.png" +width="690" +height="538" +loading="lazy" +class="gallery-image" +data-flex-grow="128" +data-flex-basis="307px" +></p> +<h2 id="资源">资源</h2> +<h3 id="tailwindcss-的小抄">tailwindcss 的小抄</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-29.png" +width="690" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="148" +data-flex-basis="356px" +></p> +<p>tailwind 这个 css 框架之所以能够很快流行起来,主要原因就是它解决了一个之前很多人没有太注意的问题,即 CSS 的“正交性”。</p> +<p>之前 CSS 实现一个效果,可以有 N 种方法,外加各种奇技淫巧,但在使用 tailwind 之后,针对特定效果都有了最优实践路径,而且还可以很容易组合。</p> +<p>不过由于它的类分的太细太碎,导致刚开始的时候会有一些不容易记忆。</p> +<p><a class="link" href="https://tailwindcomponents.com/cheatsheet/" target="_blank" rel="noopener" +>这里有一份 tailwind 的小抄</a>,适合初学者收藏,方便随时查阅。</p> +<h3 id="在浏览器中运行的-vim">在浏览器中运行的 vim</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-43.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p><a class="link" href="https://github.com/rhysd/vim.wasm" target="_blank" rel="noopener" +>vim.wasm</a>,在浏览器中运行的 Vim,不是插件。</p> +<p>使用 wasm 技术直接编译移植的 Vim Editor 源码,效果跟原生程序几乎一样。</p> +<p>使用 WebAssembly 给 Vim 提供一个新的 GUI 前端(类似 GVim)。</p> +<p>为了编译通过,作者在源码里禁用了很多 Wasm 不支持的特性,如:fork(2)、PTY 等。</p> +<p>可在这里体验:https://rhysd.github.io/vim.wasm/</p> +<h3 id="无隐私问题的-pdf-工具网站">无隐私问题的 pdf 工具网站</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-32-04.png" +width="690" +height="362" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="457px" +></p> +<p><a class="link" href="https://pdftool.org/zh" target="_blank" rel="noopener" +>这个pdf工具可以尝试一下</a>,跟其他pdf 工具网站不同,这个网站借用 WebAssembly 技术将很多工作放在浏览器客户端执行,用户无需上传自己的pdf到网站,即可执行处理工作,包括:加密、解密、拆分、合并等常用功能。 ​​​</p> +<h3 id="深入理解操作系统的小游戏">深入理解操作系统的小游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-32-17.png" +width="690" +height="368" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></p> +<p><a class="link" href="https://plbrault.com/blog-posts/i-created-the-nerdierst-game-ever-en/" target="_blank" rel="noopener" +>这个自称史上最极客的小游戏</a>,是国外一位计算机科学教授给学生们写的一个小游戏,假设玩家是一个“操作系统”,在游戏里玩家需要不停地进程调度、内存页交换等操作,一旦调度不合理就会激怒用户导致“玩家”也就是操作系统被重启,游戏就 GAME OVER 了。</p> +<p>游戏使用 Python 编写,作者将其编译为 WebAssembly 以嵌入网页,这里可以直接在线体验: <a class="link" href="https://drfreckles42.itch.io/youre-the-os" target="_blank" rel="noopener" +>https://drfreckles42.itch.io/youre-the-os</a>。</p> +<h2 id="观点">观点</h2> +<h3 id="学习技能最有效的练习手段是复刻">学习技能最有效的练习手段是“复刻”</h3> +<p>这是我前两天尝试用 CSS 临时写个页面效果想到的。</p> +<p>我虽然也了解了CSS 语言的一些基本知识,但是在具体实操的时候仍会感到无从下手。</p> +<p>与下棋类似,只知道“规则”但是没有“套路”。</p> +<p>后来干脆找了几个目标页面,按照自己的想法去还原,渐渐能够摸到一些“套路”的边缘,最终实现了自己想要的效果。</p> +<p>于是我想: <strong>在学习一项技能的时候,“复刻”、“抄袭”、“借鉴”、“致敬”,都没有问题,应该把它作为最主要的练习手段。</strong></p> +<p>因为“抄”是最经济的学习方法了。</p> +<p>不仅仅是编程技能,艺术方面更是如此。</p> +<p>比如在编曲学习的时候有一种练习叫“扒带”,就是找一首歌,然后你通过你的工具和技巧制作一份完全一样的作品,尽量做到百分百还原。</p> +<p>很多“大师”都是在这个过程中,遇到问题解决问题,领悟到很多只能意会不能言传的技巧,而这些领悟是无论如何也无法仅仅通过“看”和“听”获得的。</p> +<p>另外,人们练字、绘画也是从临摹开始,一般在熟练之后才能突破,才又自成体系。</p> +<h3 id="忍耐守恒">忍耐守恒</h3> +<p>怕麻烦的人,主要是不能忍受一些事情。</p> +<p>然而正是因为这些不能忍受,所以注定要忍受一些其他的事情。</p> +<p>人生就是这样,比如无法忍受投资带来的风险,就得承受现金贬值;不能面对创业的压力,就得忍受按时上班的束缚。</p> +<p>对于这种现象,我将之称为“忍耐守恒”。 ​​​</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 045 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/Tue, 15 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/<h1 id="机器文摘-第-045-期">机器文摘 第 045 期</h1> +<h2 id="长文">长文</h2> +<h3 id="基于浏览器-javascript-堆快照的网页爬虫">基于浏览器 JavaScript 堆快照的网页爬虫</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-23-22.png" +width="690" +height="546" +loading="lazy" +class="gallery-image" +data-flex-grow="126" +data-flex-basis="303px" +></p> +<p><a class="link" href="https://www.adriancooney.ie/blog/web-scraping-via-javascript-heap-snapshots" target="_blank" rel="noopener" +>基于 JavaScript 堆快照的网页爬虫</a>。</p> +<p>本文作者介绍了一个实现网络爬虫的新思路,据称已在生产上使用了一段时间,且效果不错。</p> +<p>比较典型的网络爬虫在爬取数据时,大都采用解析网页 DOM 的方式,或直接通过 HTTP 请求流直接解析,或使用无头浏览器进行解析。</p> +<p>但现在这项技术已经被很多网站、平台人为设置很多障碍,比如增加很多随机的嵌套等等。</p> +<p>作者某天福至心灵,想到一个点子。</p> +<p>利用浏览器提供的 JavaScript 内存堆快照功能,将内存里的全部信息扒下来,然后根据对应的 JavaScript 对象属性,按图索骥去找到真正需要的数据。</p> +<p>这种方法比较狠的地方在于,<strong>直接从后台的数据结构下手,跳过了对页面 DOM 的分析和拆解</strong>,而且据作者说,网站即便想通过混淆此类数据在内存中的属性名称来进行防御,其工作量还是相当大的。</p> +<p>所以,可能短期内无能为力。</p> +<p>作者说,也许全面转为 Web Assembly 才能彻底禁止他这种爬虫。</p> +<p><a class="link" href="https://github.com/adriancooney/puppeteer-heap-snapshot" target="_blank" rel="noopener" +>项目源码在这里</a></p> +<h3 id="intel-cpu-的崩溃攻击漏洞">Intel CPU 的“崩溃攻击”漏洞</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-23-45.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p><a class="link" href="https://downfall.page" target="_blank" rel="noopener" +>intel cpu 有一个崩溃攻击漏洞</a>,标识为 <a class="link" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40982" target="_blank" rel="noopener" +>CVE-2022-40982</a>,利用此漏洞可以在虚拟机里窃取共享同一个物理 CPU 的其他虚拟机的数据。</p> +<p>这个漏洞可以让恶意程序在本机运行后窃取如密码、加密密钥、以及个人电子邮件等私人数据。</p> +<p>恶意的云计算客户可以利用 Downfall 漏洞从与其共享同一台云计算机的其他客户那里窃取数据和凭据。</p> +<p>据文章作者(也即漏洞发现者)所说,该漏洞存在于 Intel Core 6 代到 11 代 CPU,并且研究人员发现存在通过 Web 网页浏览进行攻击的可能性。</p> +<p><a class="link" href="https://github.com/flowyroll/downfall/tree/main/POC" target="_blank" rel="noopener" +>作者开放了一部分用于测试攻击的代码在此</a></p> +<h3 id="利用树莓派的-gpio-发射无线信号">利用树莓派的 GPIO 发射无线信号</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-24-15.png" +width="690" +height="388" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><a class="link" href="https://hackaday.com/2021/04/06/fan-tastic-misuse-of-raspberry-pi-gpio/" target="_blank" rel="noopener" +>原来树莓派的 GPIO 还能干这个</a>,这位老哥使用树莓派的 GPIO 接口直接进行无线电波发射(没错,就是随便扯出一根线就可以当作天线了)。实现了基于树莓派的微型电台。</p> +<p>这得益于 <a class="link" href="https://github.com/F5OEO/rpitx" target="_blank" rel="noopener" +>rpitx</a>这个开源项目,项目本来是为了研究和学习一些无线电原理,不过后来逐渐成为一些 SDR 爱好者必不可少的工具了。</p> +<p><a class="link" href="https://www.youtube.com/watch?v=M2JY1_Xmokg&amp;t=8s" target="_blank" rel="noopener" +>我上次看到一个小哥使用 RTL-SDR 录制汽车遥控器信号,然后使用树莓派重复发射出来,成功实现了自家汽车的解锁</a>。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://oimo.io/works/water/" target="_blank" rel="noopener" +>water</a>,一个在网页里模拟流体动画的 Demo,使用 Haxe 语言编写。<a class="link" href="https://github.com/saharan/works/tree/main/water" target="_blank" rel="noopener" +>源码在这里</a> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-24-42.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p>Haxe 是一种跨平台的开源编程语言,在其官方网站上称其为&quot;universal language&quot;。</p> +<p>它可以用于开发多种平台(如Web、移动、桌面等)的应用程序。</p> +<p>Haxe 提供了强大的静态类型系统,并支持多种编译目标,包括但不限于 JavaScript、C++、Java、C#、Python 等。</p> +<p>感兴趣的话,这里也有<a class="link" href="https://daobook.github.io/haxe-book/docs/start/00_intro.html" target="_blank" rel="noopener" +>一份 Haxe 的在线教程</a></p> +</li> +<li> +<p><a class="link" href="https://github.com/lllyasviel/Fooocus" target="_blank" rel="noopener" +>Fooocus</a>,ControlNet 作者开源的一款新的 AI 画图工具 ,搭建起来比 Stable Diffusion webui 稍微方便了一点,相当于整合包。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-25-40.png" +width="690" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="107" +data-flex-basis="257px" +></p> +</li> +<li> +<p>原来 HTML5 有一个 <code>&lt;progress&gt;&lt;/progress&gt;</code> 标签,直接写这个标签,不加任何属性的话,就是一个加载动画,非常适合在页面里临时需要一个进度、状态展示的时候。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-25-55.png" +width="462" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="119" +data-flex-basis="286px" +></p> +</li> +<li> +<p><a class="link" href="https://wangdoc.com/typescript/" target="_blank" rel="noopener" +>阮一峰老师的 Typescript 教程</a>,发布了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-26-13.png" +width="501" +height="800" +loading="lazy" +class="gallery-image" +data-flex-grow="62" +data-flex-basis="150px" +></p> +</li> +</ul> +<p>据老师自己说,刚开始也是抗拒的,觉得TypeScript 就是为 JS 语言添加静态类型系统。如果真需要静态类型,可以考虑使用其他更成熟的语言(比如 Rust 和 Java),再编译成 JS(wasm 模块),何必新学一门语言呢。</p> +<p>但是后来发现 TypeScript 越来越流行,成为前端开发的主流工具,各种项目纷纷移植过去。</p> +<p>我虽然对 TypeScript 仍然持保留态度,但是阮老师写的技术书籍读起来都很轻松易懂,所以觉得还是有必要收藏一下​​​。</p> +<ul> +<li> +<p><a class="link" href="https://islamov.ai/stable-diffusion-webgpu/" target="_blank" rel="noopener" +>stable-diffusion-webgpu</a>,在网页里运行 AI 画图模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-26-55.png" +width="1154" +height="667" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="415px" +></p> +<p>基于 webgpu 技术,无需部署,直接在网页里运行。我试了一下,在我的 1080 8G 显存的显卡上 ,可以跑动,但是速度一般。</p> +<p>上面的图是我只跑了 8 个 steps 的结果。。。 ​​​</p> +</li> +</ul> +<h2 id="观点">观点</h2> +<h3 id="ai-画图的品质">AI 画图的品质</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-27-30.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p>为了验证之前关于“模特很可能被AI取代”的想法,自己动手部署 <a class="link" href="https://github.com/AUTOMATIC1111/stable-diffusion-webui" target="_blank" rel="noopener" +>Stable Diffusion webui </a> 测试了一些模型。根据网友分享的提示词尝试生成了一些图片。</p> +<p>感觉效果比我几个月之前体验时又有了不少提升,配合各种微调模型和 LoRA 模型可以生成照片质感和光影的图片。</p> +<p>虽然人物表情和姿态还有些僵硬,不过我相信这是我没有合理调整各个参数以及充分发挥插件性能导致。</p> +<p>多进行尝试和练习,应该能够生成更逼真、自然的照片。</p> +<h3 id="信息的维度">信息的维度</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-28-20.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +最近看了一些线性代数相关的知识,在向量、矩阵的各种计算中逐渐有了一些感悟:</p> +<p>古代“老子”思想中的“道”很可能是无限维的,你的任何表达都是对它的一种投影,也就是降维了。所以才是“道可道,非常道”。</p> +<p>每个人都想用最简单的框架去理解世界,将多维的信息硬生生地将为一维。</p> +<p>这样的后果便是,盲人摸象、管中窥豹、一叶障目,不同的观点争得不可开交。</p> +<p>所以在接收时也应该尽量按自己掌握的其它维度进行升维还原,任何信息都不可孤立看待。</p> +<p>如果能从多维信息得视角去认知世界,也许会有转机,这多少就有点儿“阴阳互生、一分为三”的意思了。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 044 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/Tue, 08 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/<h1 id="机器文摘-第-044-期">机器文摘 第 044 期</h1> +<h2 id="长文">长文</h2> +<h3 id="导致-python-多线程鸡肋的-gil-是什么">导致 Python 多线程鸡肋的 GIL 是什么</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-51-26.png" +width="690" +height="839" +loading="lazy" +class="gallery-image" +data-flex-grow="82" +data-flex-basis="197px" +> +近期在使用 Python 多线程的时候,遇到了 GIL 全局锁导致的性能问题。</p> +<p>具体来说就是性能提升没有达到预期,对于有些计算任务无法并行执行。</p> +<p>从多核 CPU 占用结果上来看,像极了网上那张经典的围观图,一核干活多核围观。</p> +<p>于是翻阅了相关资料研究一下,发现这是 Python 社区争论多年的问题,而且有很大的历史包袱。</p> +<p>严格来说,GIL 全局锁导致的性能问题与 Python 编程语言没有关系,导致这个问题的原因在于具体实现的 CPython 解释器。</p> +<p>当年解释器开发者为了简单实现对多线程的支持,搞了一个全局锁,以至于在多核时代无法充分发挥 CPU 性能。</p> +<p>而后续又有很多库延续了这项依赖,历史的包袱(屎山?)越来越重,很难下定决心将之移除(据说代价甚至比当年从 Python2.x 迁移到 Python3 还要大)。</p> +<p>如果不想深究具体技术细节只想了解基本的来龙去脉,这里有篇文章<a class="link" href="https://xie.infoq.cn/article/1e151c24367abe8cad18130f4" target="_blank" rel="noopener" +>为什么 GIL 让多线程变得如此鸡肋?</a>介绍了 Python PIL 的产生背景以及适用于 Python 多线程的业务场景,可以给你的技术决策提供参考。</p> +<p>不过好消息是,就在刚刚(前几天),Python 官方终于宣布要动手取消掉 GIL 了,顿时网上一片沸腾(其实只有一部分人,大多数人都还不知道 PIL 是什么玩意儿)。而且,<a class="link" href="https://news.ycombinator.com/item?id=36643670" target="_blank" rel="noopener" +>Meta 也承诺,愿意出工出力(3人年)帮助 Python 社区做针对去除 GIL 的相关开发工作</a>。</p> +<h3 id="用树莓派做一个属于自己的高级收音机">用树莓派做一个属于自己的高级收音机</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-52-14.png" +width="606" +height="454" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +最近接触到 SDR (软件定义无线电)这个领域,感觉挺有意思的。</p> +<p>软件定义无线电是一种无线通信技术,它利用软件来实现无线电通信系统中的信号处理和调制解调功能,而不是传统的硬件电路。</p> +<p>通过软件定义无线电技术,可以实现灵活、可配置和可重用的无线通信系统,大大提高了无线通信的灵活性和性能。</p> +<p>传统的无线电通信系统通常使用硬件电路来执行信号处理、调制解调和频谱管理等功能。这些硬件电路通常是固定的,不能轻易更改,因此限制了通信系统的灵活性和可配置性。</p> +<p>而SDR技术通过将信号处理和调制解调等功能以软件方式实现,可以在通信系统中使用可编程的处理器和通用硬件,从而使得通信系统的功能可以在软件层面上重新配置和调整,而不需要更改硬件设计。</p> +<p>比起灵活性和可配置性来说,我觉得 SDR 最大的优势是成本大大降低。之前必须购买昂贵的硬件才能实现的效果,现在能够通过便宜的、少量的硬件加上软件模拟即可。</p> +<p>我近期就以很低廉的价格购买了一套 SDR 设备,通过 USB 接口连接计算机,可以实现 500KHz到1700MHz频率范围的接收。听 FM 和航空频段不在话下,SW 短波的话受天线影响,我暂时没有调试出好的效果。</p> +<p>跟 SDR 相比,我几千块买的旗舰手台显得既昂贵又功能弱。</p> +<p><a class="link" href="https://www.hackster.io/mircemk/diy-sdr-dsp-radio-with-raspberry-pi-and-rtlsdr-dongle-c38064" target="_blank" rel="noopener" +>这里有篇文章</a>是作者自己动手用 SDR 设备结合树莓派制作了一个看起来还挺专业的宽频无线接收机。</p> +<p>其实这跟音乐制作领域内很多乐器、效果器逐渐被虚拟化的软件、插件代替是一样的。软件虚拟化拥有巨大的优势,随着通用计算硬件的成本越来越低廉,一切能被软件定义的最终都会被软件定义。</p> +<h3 id="家用-wifi-路由器需要选择哪个信道">家用 WiFi 路由器需要选择哪个“信道”</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-52-42.png" +width="601" +height="373" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="386px" +> +近期验证了一个关于无线路由器的传说。</p> +<p>起因是我新买了一个树莓派 ZeroW 带无线版本,没想到板载的 WiFi 网卡天线太弱了。</p> +<p>离路由器稍微远一点,比如放到卧室,传输速率就会大幅下降,我又暂时没能找到合适的外接网卡,一度陷入绝望。</p> +<p>后来灵机一动,看看能不能从路由器那头想想办法,于是打开路由器配置页面,找到了 WiFi 的“信道”设置,将之从“自动”调到了最不常用的“13”。</p> +<p>这里补充一下,WiFi信道一般从1到13,由路由器自动选择,但现在无线环境十分混乱,尤其是 2.4G(树莓派 Zero W 只能连这个规格) 频段,干扰很严重。</p> +<p>但是 13 这个信道很少被路由器自动选用,原因是最初制定标准的时候,不是所有国家和地区都支持,也不是所有终端设备都支持,所以这个信道就成了最不常用的。</p> +<p>在我手动指定信道之后,惊喜地发现,树莓派放在同样的位置,传输速率得到了较大提升并且稳定。看来传说将路由器 2.4G 信道设为 13 可以防干扰是真实的。</p> +<p><a class="link" href="https://zhuanlan.zhihu.com/p/344389009" target="_blank" rel="noopener" +>什么是路由器的信道?信道设置成什么最合理?</a></p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://roadmap.sh" target="_blank" rel="noopener" +>开发人员路线图</a> 是一个学习索引网站,旨在创建路线图、指南和其他教育内容,以帮助开发人员选择学习路径。在 Github 所有仓库中 Stars 排名第七。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-03.png" +width="690" +height="490" +loading="lazy" +class="gallery-image" +data-flex-grow="140" +data-flex-basis="337px" +></li> +<li><a class="link" href="https://felixkreuk.github.io/audiogen/" target="_blank" rel="noopener" +>AudioGen</a> facebook 开源的声音合成模型,可以根据文字描述生成对应的声音。效果已经很惊人了,这个页面展示了很多样例。我听了一下,觉得以后影视作品里的一部分声音特效应该可以通过 AI 进行生成了。至少像一些嘈杂的人群、婴儿哭声、鸟叫等各种背景音是可以合成的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-14.png" +width="499" +height="270" +loading="lazy" +class="gallery-image" +data-flex-grow="184" +data-flex-basis="443px" +></li> +<li>原来 Chrome 和 Edge 浏览器的 DevTools 里自带了 CSS 动画曲线编辑器啊!可以直接通过鼠标拖动进行调整和预览,十分便捷。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-29.png" +width="562" +height="528" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="255px" +></li> +<li><a class="link" href="https://github.com/GraphiteEditor/Graphite" target="_blank" rel="noopener" +>Graphite</a>,一个开源的 2D 矢量图形编辑器,适用于照片编辑、图像处理、图形设计、插图、数据可视化、数字绘画等领域。可以实现项目图稿,数据可视化和自动化。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-54-19.png" +width="830" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="428px" +></li> +</ul> +<h2 id="观点">观点</h2> +<h3 id="获取高品质信息的需求仍然强烈只是被淹没了">获取高品质信息的需求仍然强烈,只是被淹没了</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-54-40.png" +width="367" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="236px" +> +三十几年前,电视逐渐取代书籍、报纸等传统媒体的年代,尼尔波兹曼写下了《娱乐至死》。</p> +<p>作者认为:过度追求娱乐和娱乐化的信息传播方式可能导致公众思考能力的下降。</p> +<p>然而这么多年过去了,人们在降低信息质量这条路上越走越远。电视也早已沦为老年人卧床的伴侣,电视节目更是无法占据现代人的时间,取而代之的是手机短视频。</p> +<p>短视频已经成为大部分人闲暇消遣、信息获取的主要方式。这种媒体的变化将进一步降低理解和感受深度信息的能力,使人对深入学习和思考失去兴趣。</p> +<p>虽然获取的信息看似在增多,但现在高质量的信息却越来越少。</p> +<p>短视频等碎片化信息给我的感觉就像是无线电信号的背景噪音,现在的信息“电磁环境”早已被这种噪音充斥。因为“背景噪音”太大,就好像在高楼林立的城市里打开无线电,接收到的全是 LED 路灯和电动车充电器产生的噪波。</p> +<p>不过我还是相信会有包括我在内的相当一部分人,不愿放弃主动思考,不屑于接收低品质信息。</p> +<p>我正在努力做出一些尝试,以后逐渐记录下来:</p> +<ol> +<li>降低输入:减少刷碎片信息的时间;</li> +<li>滤波:使用搜索引擎、RSS服务、newsletter邮件等工具进行整理;</li> +<li>溯源:尽量选择信息源头获取一手信息,对于技术来说,直接阅读英文文档是一个办法;</li> +<li>创造:自己制作高质量内容;</li> +</ol> +<h3 id="摄影师不会被-ai-取代但是模特很可能会">摄影师不会被 AI 取代,但是模特很可能会</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-56-00.png" +width="664" +height="427" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="373px" +> +即便以后 AI 绘画能够产出更加难以分辨真假的作品。</p> +<p>从目前能看到的各种生成作品来说,还是摄影师负责了主要的创作灵感。</p> +<p>真要说被取代的话,也许“被拍摄对象”经过虚拟化以后,很可能被取代。</p> +<p>以后不仅仅是举着相机的叫摄影师,说不定会诞生面向 AI 摄影这一职业。</p> +<p>到时候器材党玩的不再是镜头,改玩显卡了?</p> +<p>“嘿,你这 N 卡 比我这 A 卡有德味儿,毒!”</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 043 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/Tue, 01 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/<h1 id="机器文摘-第-043-期">机器文摘 第 043 期</h1> +<h2 id="长文">长文</h2> +<h3 id="先做框架再做功能">先做框架再做功能</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-57-56.png" +width="690" +height="395" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="419px" +> +<a class="link" href="https://devblogs.microsoft.com/oldnewthing/20230725-00/?p=108482" target="_blank" rel="noopener" +>Before you try to do something, make sure you can do nothing.</a></p> +<p>看到这句话第一反应是:这是什么 XX 逻辑?看完作者的文字之后,哦,这是一种软件构建的方法。</p> +<p>意思是说,先宏观再微观,先整体再局部,别一上来就陷入到细节代码的编写中去。</p> +<p>先把框架搭好,具体功能一个也别着急实现,留着占位,先搭一个“什么都不干”的架子,然后再逐渐补充功能。</p> +<p>但也不是真的什么都不干,而是理清了各个关键组件的调用关系以及与开发相关的辅助功能(如打印调试信息)。</p> +<p>这样做最大的好处是,随着功能开发的深入,代码不至于失控,而且具有良好的可调试性和组件问题隔离能力。</p> +<p>随之而来的就是轻松写代码,而不是眉毛胡子一把抓。</p> +<h3 id="神经网络从开始到现在">神经网络从开始到现在</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-58-59.png" +width="690" +height="513" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="322px" +> +<a class="link" href="https://s3tlxskbq3.feishu.cn/docx/NyPqdCKraoXz9gxNVCfcIFdnnAc" target="_blank" rel="noopener" +>The Document is All You Need!</a></p> +<p>一篇 AI 科普好文章,用较为通俗的语言讲解了神经网络模型原理和发展历程(我感觉有些像生物的进化)。</p> +<p>从最初的由神经元组成的多层感知机开始,然后进化到卷积神经网络 CNN 降低网络复杂度,再进化, RNN 循环神经网络给模型增加记忆能力,记忆能力太强也不行,到了 LSTM 开始让它能够遗忘,再到后面的 注意力机制以及 LLM 语言模型。</p> +<p>比起同类文章,这一篇尽量避免了数学概念的推导和论证,尽量在不看公式的情况下解释基本思路,适合我等小白学习。</p> +<h3 id="代码审查的一些建议">代码审查的一些建议</h3> +<p><a class="link" href="https://codelantis.com/blog/code-reviews-best-practices" target="_blank" rel="noopener" +>5个关于代码审查的最佳实践</a>,文章记录一些了对代码审查的实践建议,嫌长不看我总结如下:</p> +<ol> +<li>一次只审查一个功能特性或者错误修复。</li> +<li>提前准备好背景交代(在审查之前写清楚这么做的原因和基本思路)。</li> +<li>利用自动化工具提前做好静态检查,提前统一风格、规范。</li> +<li>利用提问的方式提出改进建议而不是直接喷,如:“我们真的需要这个断言吗?”</li> +<li>仔细阅读代码,慢慢来,以充分理解。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li> +<p>微软的 <a class="link" href="https://learn.microsoft.com/en-us/sysinternals/downloads/zoomit" target="_blank" rel="noopener" +>ZoomIT</a> 真是个经典工具,已经默默维护了好多年了,现在版本为7.0。体积小巧才1MB多点儿,绿色免安装,下载解压即用。非常适合进行共享屏幕培训讲解,或者录制教学视频。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-59-57.png" +width="669" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="345px" +> +ZoomIT 快捷键如下: +Ctrl+1:放大屏幕,屏幕静止,然后使用鼠标批注; +Ctrl+2:使用鼠标随意绘制批注,支持 r、g、b、o 等快捷键切换颜色; +Ctrl+3:显示 BreakTime 倒计时; +Ctrl+4:放大屏幕,屏幕继续支持鼠标交互操作,用于放大操作过程; +Ctrl+5:录制屏幕,可与前面几个功能结合使用;</p> +</li> +<li> +<p><a class="link" href="https://github.com/kamranahmedse/driver.js" target="_blank" rel="noopener" +>driver.js</a> 一个压缩后只有 5K 大小的前端库,可以让你的网站或者 Webapp 迅速集成交互式“使用指南”的能力。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-27.png" +width="690" +height="361" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></p> +</li> +<li> +<p><a class="link" href="https://clangjs.netlify.app" target="_blank" rel="noopener" +>clangjs</a> 一个在浏览器编译、链接、运行 C/C++ 代码的 JS 库。支持 C/C++ 标准库。完全在本地编译,无需网络即可工作。原理: +首先把 Clang 和 LLD 编译为 WebAssembly 使其运行在浏览器中。然后使用 WebAssembly 版本 Clang 把 C/C++ 代码编译为 WebAssembly,最后通过浏览器 API 运行 WebAssembly。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-43.png" +width="690" +height="292" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="567px" +> +<a class="link" href="https://github.com/luoxuhai/clang.js" target="_blank" rel="noopener" +>附:clangjs源码</a></p> +</li> +<li> +<p><a class="link" href="https://github.com/bartobri/no-more-secrets" target="_blank" rel="noopener" +>nms</a>,一个控制台程序,可以将任意命令的输出(ANSI TXT)文本转换成为乱码以达到防偷窥和加密的效果。通过命令管道使用:<code>ls -l | nms</code> ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-57.png" +width="690" +height="236" +loading="lazy" +class="gallery-image" +data-flex-grow="292" +data-flex-basis="701px" +></p> +</li> +<li> +<p><a class="link" href="https://iconbuddy.app" target="_blank" rel="noopener" +>Icon Buddy</a>,这个网站有超过 1 百万个免费 svg 图标,可在线自定义颜色。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-01-15.png" +width="690" +height="420" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="394px" +></p> +</li> +</ul> +<h2 id="观点">观点</h2> +<ul> +<li>无法眼神交流不是导致远程办公沟通的最大障碍,语音延迟才是: +<ul> +<li>我之前一直以为远程办公给沟通带来最大的最大障碍是无法眼神交流导致的信息失真,想象着可以通过升级摄像头(比如嵌入在屏幕中)来改善这一情况。</li> +<li>但进行无数次网络会议之后,我体会到了最大的障碍还不是无法眼神交流,而是网络通信带来的(几乎是必然的)严重的语音延迟。</li> +<li>人们对声音延迟的感知和容忍限度大约在10毫秒(现在的电脑声卡在使用 ASIO 驱动之后可以轻松做到本地延迟 8到6毫秒左右,所以可以用于实时录音),大于10毫秒的延迟会带来明显的迟钝感,时间再长一些就会对对话的节奏带来严重影响。(如果体会不到的话,可以回忆一下新闻直播间主持人跟现场记者连线时那种说话总是对不上节奏的尴尬。)</li> +<li>什么时候网络视频会议的延时能缩短到10毫秒以内(唱卡拉OK可以接受的最低延迟),远程办公才能迎来质的飞跃,否则网络视频会议对于工作讨论永远都是隔靴搔痒、效率低下。现在的解决方案普遍还在吹能做到一秒(1000毫秒)以内,任重而道远。 ​​​</li> +</ul> +</li> +<li>现在真正的程序员用什么编辑器 ? +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-01-47.png" +width="690" +height="645" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="256px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 042 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/Tue, 25 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/<h1 id="机器文摘-第-042-期">机器文摘 第 042 期</h1> +<h2 id="长文">长文</h2> +<h3 id="从-cpu-到操作系统">从 CPU 到操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-57-14.png" +width="665" +height="261" +loading="lazy" +class="gallery-image" +data-flex-grow="254" +data-flex-basis="611px" +> +整天使用电脑和手机却对它的工作原理一知半解?<a class="link" href="https://cpu.land" target="_blank" rel="noopener" +>把你搁 CPU 里</a>是一套不错的科普文章,作者保证你无论是否了解 CPU 的运作方式,读完之后都会有所收获。我原本以为主要讲解 CPU 组成原理,在浏览了一遍之后,发现 CPU 只是引子,后面还讲了很多操作系统相关的知识,很值得一看。 ​​​</p> +<h3 id="基于-gpu-渲染的-ui-界面制作">基于 GPU 渲染的 UI 界面制作</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-57-33.png" +width="690" +height="412" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +> +<a class="link" href="https://hasen.substack.com/p/gpu-gui-table-of-contents" target="_blank" rel="noopener" +>基于 GPU 渲染的 UI 界面制作</a>,也是一个系列文章,探讨了使用 GPU 渲染用户界面的一些思路和相关技术实现方法。用 GPU 绘制用户界面不是什么新鲜事,事实上现在大部分游戏的 UI 都是基于 GPU 渲染的,不过这个作者讲的比较深入浅出,对基础介绍的比较多,适合我这种业外人士,读起来通俗易懂。</p> +<h3 id="为什么我们更应该使用-display-port-而不是-hdmi-">为什么我们更应该使用 Display port 而不是 HDMI ?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-58-12.png" +width="790" +height="479" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +> +<a class="link" href="https://hackaday.com/2023/07/11/displayport-a-better-video-interface/" target="_blank" rel="noopener" +>为什么我们更应该使用 Display port 而不是 HDMI?</a>,简单来说,HDMI 是家电行业制定的接口标准,封闭而保守,Display port 是 PC 行业制定的标准,开放又激进。现在的显卡上一般提供一个 HDMI 接口,仅仅是为了兼容而做出的妥协,不提供多个是因为 HDMI 授权收费。</p> +<h3 id="txt-纯文本才是王道">txt 纯文本才是王道</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-58-45.png" +width="690" +height="220" +loading="lazy" +class="gallery-image" +data-flex-grow="313" +data-flex-basis="752px" +> +喜欢老式合成器的操作方式,不用图形和触摸屏,而是用文本和字符进行交互,可以快速选择音色参数,指哪儿打哪儿,心中有数。</p> +<p>喜欢在控制台的黑窗口通过命令行跟计算机交互,而不是用鼠标在图形界面上点击,不用将鼻子凑在屏幕上,闭上眼睛也能做到精确操作。</p> +<p>喜欢单反相机的肩屏,无论我用什么姿势拨动拨杆、拨轮,肩屏总能用字符给我最快速最准确的响应,告诉我现在的曝光三参数是多少,做到心中有数。</p> +<p>喜欢用 Markdown 文本格式记录信息,只因为文本格式最干净纯粹,利于保存和传播。</p> +<p>这篇<a class="link" href="https://graydon2.dreamwidth.org/193447.html" target="_blank" rel="noopener" +>《txt纯文本才是王道》</a>的作者表达了跟我同样的喜好,对于使用纯文本保存信息偏爱有加,认为无论是视频、图片还是其他数字形式,在文字面前都是弱小的弟弟。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/FlagAlpha/Llama2-Chinese" target="_blank" rel="noopener" +>Llama2-Chinese</a>,Llama2中文社区!是一个专注于Llama2模型在中文方面的优化和上层建设的高级技术社区。 <em>基于大规模中文数据,从预训练开始对Llama2模型进行中文能力的持续迭代升级</em>。Facebook近期开源的 Llama 2 模型比较火,号称可以免费商用。我试了一下,效果不如预期,跟 ChatGPT 3.5 比起来还有距离。可能我使用的中文微调 Lora 参数还不够好吧。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-02.png" +width="690" +height="182" +loading="lazy" +class="gallery-image" +data-flex-grow="379" +data-flex-basis="909px" +></li> +<li><a class="link" href="https://githubunwrapped.com" target="_blank" rel="noopener" +>githubunwrapped</a>是一个帮你统计 Github 信息的网站,可以将输入的 Github 账号相关的统计信息生成一段漂亮的动画,展示你使用最多的编程语言、哪天提交的最积极、哪个时段工作效率高(根据文件修改时间?)等。比较有趣的是,这个网站生成动画视频的技术来自一个叫做 <a class="link" href="https://remotion.dev" target="_blank" rel="noopener" +>remotion</a>的库,它可以使用 React 组件式风格编写动画效果,并通过 Canvas 实现视频文件的渲染。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-18.png" +width="690" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></li> +<li><a class="link" href="https://github.com/jesseduffield/lazydocker" target="_blank" rel="noopener" +>lazydocker</a>,继发现 lazygit 和 lazyvim 两个神器之后,我又发现了 lazy 家族新成员:lazydocker!同样是提供终端命令行下的“gui”界面,不过操作对象是 docker 这下管理容器终于可以不再看错乱的 docker 命令输出了。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-28.png" +width="690" +height="397" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></li> +</ul> +<h2 id="观点">观点</h2> +<ul> +<li> +<p>关于产品需求的来源:</p> +<p>对于提供IT相关服务的从业人员来说,无论是在企业还是个人做独立产品,把握好产品的需求、做好产品定义是最关键的事情,是后续做研发、运营的基础。</p> +<p>而好的产品定义=自己想做+自己能做+用户想用+愿意付费。</p> +<p>这样的定义应该怎样去发现?</p> +<p>拿软件举例,大部分软件能给用户提供的最大价值是“将一些事情自动化”和“将一些物理实体虚拟化”。前者能够通过自动化实现工作效率的指数级提升,后者则通过对物理现实虚拟化实现用户对交互体验的指数级提升。</p> +<p>所以在分析产品需求进行产品定义时可以从身边三个方面入手:</p> +<ol> +<li>还有什么事情可以被计算机自动化?</li> +<li>还有哪些物理实体可以被虚拟化?</li> +<li>市场上的现有产品,还有哪些可以从上面两个维度提升以增强体验的?</li> +</ol> +<p>我发现,无论是企业的产品,还是个人的独立产品,都可以从这些维度进行分析。</p> +</li> +<li> +<p>基于互联网通道的“业余无线电”:</p> +<p>不是很理解热衷于用互联网通道进行业余无线电通联的心态。</p> +<p>今天刚知道现在有一些业余无线电爱好者使用一种叫做 mmdvm 的盒子(热点盒子)进行自主搭建数字中继。</p> +<p>原理是“热点盒子”用家里的wifi接入互联网,然后热点盒子给业余无线电台提供UV频段的发射接收中继,这样就能轻易通联全国甚至全球的爱好者。</p> +<p>目前很多拥有支持数字通信的电台的爱好者都很积极地参与这种通联,甚至每周还有打卡点名活动。</p> +<p>我暂时还不是很理解这种心态。这种依赖互联网进行的通联在我看来(也许是暂时的)早已失去了玩无线电的初衷。如果我想要通过互联网假装进行呼叫,还得依靠家里的无线路由器,那我为什么不干脆使用微信电话?</p> +</li> +<li> +<p>无头系统: +今天才知道原来我给自己配的远程开发环境有个专业术语叫做 <a class="link" href="https://zh.wikipedia.org/zh-cn/%e6%97%a0%e5%a4%b4%e8%ae%a1%e7%ae%97%e6%9c%ba" target="_blank" rel="noopener" +>“Headless 无头系统”</a> 啊。我现在基本上可以做到带着笔记本随意移动,开发环境都在远程,在各处体验环境都一样。主要使用: Win10 + WSL2 + Nvidia-Docker + VS Code + Neovim。有时会启用远程桌面 RDP,有时直接 ssh + tmux。有兴趣的话我挑一期详解。</p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 041 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/Wed, 19 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/<h1 id="机器文摘-第-041-期">机器文摘 第 041 期</h1> +<h2 id="长文">长文</h2> +<h3 id="c-也能一次编译到处运行了">C 也能一次编译到处运行了?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-28-30.png" +width="743" +height="446" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="399px" +> +用 C 编写的程序,只编译一次,生成的可执行文件能同时在多个平台运行吗?</p> +<p>这在以往是 java 这类依赖虚拟机执行环境的语言宣称的事情。</p> +<p>然而我今天才听说还有这个神奇的库(好久没关注过c++领域的技术了):<a class="link" href="https://github.com/jart/cosmopolitan" target="_blank" rel="noopener" +>Cosmopolitan</a>Libc 号称可以使 C 成为一种构建一次就能到处运行的语言,就像Java一样,除了它不需要解释器或虚拟机。相反,它重新配置了GCC和Clang,以输出POSIX批准的多语言格式,该格式在Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS上本地运行,具有最佳的性能和最小的占用空间。</p> +<p>在使用的时候需要引入特殊的库和编译配置,具体执行效果我还没有测试。</p> +<p>然后,<a class="link" href="https://ahgamut.github.io/2023/07/13/patching-gcc-cosmo/" target="_blank" rel="noopener" +>这篇文章</a>的作者干脆来个更方便的操作,他给 GCC 打了大约 2000 行的补丁,使得 GCC 直接就嵌入了 Cosmopolitan 库,现在可以在不修改任何源代码(前提是得用纯 C 写)的情况下构建出到处都能运行可执行文件了(Windows也可以吗?我要测试)。</p> +<h3 id="业余无线电入坑指南">业余无线电入坑指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-29-07.png" +width="690" +height="920" +loading="lazy" +class="gallery-image" +data-flex-grow="75" +data-flex-basis="180px" +> +业余无线电跟摄影、HiFi音响这一类的爱好在某种维度上非常相似,在“入坑”的境界上,甚至完全一样。</p> +<p>这里的坑,指需要投入大量精力和资金。</p> +<p>之所以这么说,是因为它们都有一个共同的特点。</p> +<p>即围绕这些爱好有大量的知识可以学习和探索。</p> +<p>比如拿业余无线电来说,上来就一堆“亚音”、“中继”、“频段”、“频差”、“杂散发射”等名词,对标摄影中的“构图”、“光圈”、“快门”、“ISO感光度”等名词。新手若想有所体会,单是这些概念就够琢磨几天的。更不用提后续还有逐渐步入玄学的一些操作流派,乃至一个不留神还会陷入无穷尽的装备升级竞赛。</p> +<p>这类知识对于好奇心强烈、喜欢求知的人来说有着巨大的吸引力。甚至直白的说,我们很可能不是爱好这项技能,而是单纯喜欢探索和求知的过程,喜欢那种获得感。</p> +<p>这篇<a class="link" href="https://zhuanlan.zhihu.com/p/585518350" target="_blank" rel="noopener" +>《业余无线电新手指南》</a>可以普及一些基本知识,愿意入坑的请阅读。</p> +<p><em>我近期已考取了中国无线电协会的业余无线电操作能力 A 证</em> 算是合法的 <a class="link" href="https://baike.baidu.com/item/%E6%97%A0%E7%BA%BF%E7%94%B5%E7%88%B1%E5%A5%BD%E8%80%85/6509242" target="_blank" rel="noopener" +>HAM 火腿</a>了。</p> +<h3 id="远程办公还能成为趋势吗">远程办公还能成为趋势吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-29-47.png" +width="799" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="463px" +> +疫情的时候,远程办公、异地协同等概念一度变得很火爆,当时很多人觉得这又是一个风口。</p> +<p>但随着当时极端环境的消失,各大公司又纷纷将员工从居家办公中召回。</p> +<p>那么?此类与远程协作相关的概念破灭了吗?</p> +<p>各种协同工具、平台相关的市场,还有没有继续扩大的可能,或者说还在等待一个巨大的技术革新来引爆?</p> +<p>这里有个项目,<a class="link" href="https://github.com/LinuxSuRen/remote-jobs-in-china" target="_blank" rel="noopener" +>积极收集远程办公相关的信息</a>,包括国内支持的公司清单、工具及使用资料等。</p> +<h3 id="怎样做出伟大的成就">怎样做出伟大的成就?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-30-40.png" +width="636" +height="422" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +> +昨日读了保罗格雷厄姆(《黑客与画家》的作者)新文章一篇&mdash;-<a class="link" href="http://paulgraham.com/greatwork.html" target="_blank" rel="noopener" +>《怎样做出伟大的成就》</a>(实际上我觉得可以译为“怎样牛逼”)。</p> +<p>虽然标题看起来略有鸡汤味儿,但读起来还是比较实惠的。</p> +<p>文章从发现和选择要做的事情开始,谈论了一些具体的方法。然后展开讨论了在方法执行过程中可能会遇到的一些问题,以及如何克服。甚至介绍了一些心理暗示技巧。</p> +<p>文章比较长,我个人体会比较深的点如下:</p> +<ol> +<li>一个人做什么才能牛逼?答:做自己天赋里有的东西,就是找一些你既有能力又非常感兴趣的事情。</li> +<li>要养成“自驱”的习惯。让“工作”来源于自己的认知,而不是别人告诉你、让你做的事情。主动,而不是等待。</li> +<li>拥有一个属于自己的“项目”是一个找到“自驱”的最佳方法。不断观察自己对什么有强烈的好奇心(甚至好奇到大多数人不能理解)可以找到这样的“项目”。</li> +<li>选定要做的“项目”还应遵循兴奋原则,即:做自己愿意用的产品,写自己想读的故事,而不是执着于满足想象中的不存在的复杂需求。</li> +<li>注重积累效应,日拱一卒、长期积累,每天写一篇文字,一年下来就是一本书。</li> +<li>周期性审视自己做的事情,确认它是否偏离了目标(在做自己最想做的事情),及时修正。</li> +<li>行动的重要性,很多人实际上可以更牛逼,但是因为“谦虚”和“恐惧”导致的拖延使得计划一再搁浅,浪费了时间。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="http://t.cn/A60wPLwI" target="_blank" rel="noopener" +>jabbr.ai</a>是一个针对拳击比赛的打击判定进行训练的AI模型,可以在智能手机上运行,实时监测视频中拳击选手的打击得分情况,即时进行统计,多个智能手机多视角同时运行可以快速生成总结性视频。模型提供约50种监测参数(质量、步法、压力等)可用于运动员训练分析。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-31-11.png" +width="908" +height="509" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="428px" +></li> +<li>浏览器地址栏快捷操作,我今天才知道原来浏览器地址栏还有这些快捷操作(火狐浏览器支持的最多,我测试的Edge浏览器也支持部分操作): +<ol> +<li>输入*星号,可以搜索你的收藏夹;</li> +<li>输入^,可以搜索历史浏览记录;</li> +<li>输入%,可以搜索当前打开的tab页;</li> +<li>输入?,可以显示所有搜索建议; ​​​</li> +</ol> +</li> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4923133602234429" target="_blank" rel="noopener" +>树莓磁带</a> 一种用树莓派做的小硬件,为了支持在老式电脑中加载程序(之前用磁带存储的那种)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-31-40.png" +width="607" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></li> +<li>两招教你“永久”关闭 Windows 自动更新(任选一个都可以): +<ol> +<li>通过执行代码的方式:<code>reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings” /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f</code> Win+R 打开「运行」对话框,输入 <code>cmd</code> 后按下 <code>Ctrl+Shift+Enter</code>,在弹出来的命令行窗口中输入上面的代码,并敲击回车。命令里的 10000 代表停止更新的天数。</li> +<li>手动把电脑时钟日期改成 2050 年(为了防止时间自动校准,可以暂时断开网络),然后在 Windows 更新设置界面里面点击“延迟更新”,完成设置后再把电脑时间调回来就行了。</li> +</ol> +</li> +<li><a class="link" href="https://pkg-size.dev/" target="_blank" rel="noopener" +>pkg-size</a>,一个在线监测 npm 包大小的网站,可以实时查看一个 npm 包的真实依赖,网站利用了 web容器技术,直接在浏览器里执行 npm install 操作。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-32-07.png" +width="1011" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="158" +data-flex-basis="381px" +></li> +<li><a class="link" href="https://marketplace.visualstudio.com/items?itemName=degreat.3e" target="_blank" rel="noopener" +>3e</a>,一个 VS Code 插件,可以让你在编辑器里直接浏览 3d 模型,基于 webgl 实现。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-32-58.png" +width="704" +height="468" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 039 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/Tue, 11 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/<h1 id="机器文摘-第-039-期">机器文摘 第 039 期</h1> +<h2 id="长文">长文</h2> +<ul> +<li> +<p><a class="link" href="https://www.cs.columbia.edu/~hgs/etc/writing-bugs.html" target="_blank" rel="noopener" +>关于写作的通用问题</a>,“元技能”一般指比普通技能更高阶的技能,我理解为可产生技能的技能,此类技能并不会随着外部环境的高速发展而被淘汰。比如写作就算是一种元技能,当不知道该训练和提升什么技能的时候,将时间花在“元技能”的提升上准没有错。这篇文章主要讲解英文写作的常见问题,但是有些我觉得对于中文也适用。比如文章开头提到的两个基本原则:“在写之前就弄清楚自己想表达什么”、“即便是你已经写完了一整篇,如果没能表达你的意思那也是废纸”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-13-52-23.png" +width="294" +height="171" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="412px" +></p> +</li> +<li> +<p><a class="link" href="https://jmmv.dev/2023/06/fast-machines-slow-machines.html" target="_blank" rel="noopener" +>新电脑快还是老电脑快?</a>,上周有博主在twitter发布了一个视频吐槽了一个我也困惑很久的事情。作者展示了他在一台古董电脑上运行Windows NT 3.5 的情况,视频中的电脑基本可以做到秒开程序,然后又展示了一台配备了Windows 11的Surface平板电脑,操作起来界面响应有明显延迟。后者cpu频率为前者的4倍,内存容量为前者的6倍。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-13-55-53.png" +width="507" +height="228" +loading="lazy" +class="gallery-image" +data-flex-grow="222" +data-flex-basis="533px" +></p> +</li> +</ul> +<p>现在的硬件性能动辄就比之前的老硬件几十甚至上百倍的提升,但是我们的交互体验呢?能够秒开的程序甚至还不如二十年前的老爷机。 +后来这事儿在twitter引发了一些争议,有人认为现在的软件确实吃掉了硬件提升的性能,对体验来说提升不足。也有人说现在的体验与以往不可同日而语,这样的对比不公平也没有意义。</p> +<p>博主不得不专门写了一篇文章来回应,详细记录了作者认为更加合理的对比过程。</p> +<p>我个人认为首要原因就是随着硬件性能的提升,软件开发者的精力已经逐渐从性能向开发效率倾斜了。由于现在硬件成本确实低廉,软件迭代周期变得越来越短,软件开发者也越来越没有动力做出极致挖掘硬件性能的软件。</p> +<p>不信你看,现在越来越多的应用程序不再使用原生开发,而是采用了可以“跨平台”的web技术。</p> +<p>这样使得软件界面的响应直接下降了一个数量级。(我在使用vscode的时候甚至还会遇到打字卡顿慢慢弹出字符的情况。)</p> +<p>另外,复杂的设计模式和软件架构,也吃掉了不少硬件性能,因为每增加一层抽象,都会消耗资源,而现在各种复杂的架构就是拼命地增加抽象层。</p> +<p>希望以后市场能够鼓励开发者多做挖掘硬件性能的事情吧。</p> +<ul> +<li><a class="link" href="https://faultlore.com/blah/text-hates-you/" target="_blank" rel="noopener" +>文字渲染比你想象的要复杂</a>,这篇文章的作者曾负责火狐浏览器的文字渲染引擎,他写这篇文字的目的是科普一下关于文字渲染的一些基本技术和困难。在阅读之前,我也简单的以为,文字渲染就是把对应的字符字形从字体库中取出来然后绘制到相应的位置即可,但实际情况确实比这要复杂得多。比如,文中提到的关于“连字符”的处理、“抗锯齿”、“书写方向”等问题,每一个都是开发者的头发杀手。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-12-47.png" +width="574" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/rrweb-io/rrweb" target="_blank" rel="noopener" +>rrweb</a>,可在网页上记录用户行为并导出视频文件。可用于:排查用户错误、保险业务签署、内部风控、用户交互分析等。rrweb采用虚拟化转换DOM、记录变更和操作过程,并通过链表回放数据。存储最小化、回放可快进且跳过无效行为。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-13-31.png" +width="529" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="139" +data-flex-basis="335px" +></li> +<li><a class="link" href="https://github.com/zhaoyun0071/DragGAN-Windows-GUI" target="_blank" rel="noopener" +>DragGAN-Windows-GUI</a>,DragGAN(上周介绍过的开源模型,可以针对图片进行交互式拖动修改)的懒人包,解压直接用,内置17个模型。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-13-53.png" +width="690" +height="421" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="393px" +></li> +<li><a class="link" href="https://neal.fun/deep-sea/" target="_blank" rel="noopener" +>deep-sea</a>,这个网页可以让你查看海洋各个深度都是有哪些生物,果然是越往下越看不清,所以大家就随便长长了,不讲究好看不好看了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-14-11.png" +width="690" +height="501" +loading="lazy" +class="gallery-image" +data-flex-grow="137" +data-flex-basis="330px" +></li> +<li><a class="link" href="http://elementsofprogramming.com/" target="_blank" rel="noopener" +>电子书《Elements of Programming》</a>,这本老书在出版十年后推出了免费pdf版。中文译作《编程原本》,旨在介绍通用的程序设计原理和技巧,重点关注程序设计的基本元素和抽象概念。这本书的核心思想是将程序设计看作是一种构建和操作抽象概念的过程。它强调程序设计应该建立在数学原理和精确性基础上,通过抽象和泛化来创建可重用、可扩展和可维护的软件。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-14-52.png" +width="377" +height="542" +loading="lazy" +class="gallery-image" +data-flex-grow="69" +data-flex-basis="166px" +></li> +<li><a class="link" href="https://github.com/loft-sh/devpod" target="_blank" rel="noopener" +>devpod</a>,Github 的 Codespaces 和微软的 VSCode DevContainers 给开发者提供了即开即用的云端开发环境。现在,他们的开源平替来了,devpod 是一个开源的开发环境容器,可以方便地在任意客户端(Mac、Win、Linux)或云端主机创建体验一致的开发环境,并且可以与VSCode和Jetbrains等IDE直接集成。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-15-25.png" +width="690" +height="266" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="622px" +></li> +<li><a class="link" href="https://uploads-ssl.webflow.com/5ac6b7f2924c656f2b13a88c/6435aabdc0a041194b243eef_Current%20Best%20Practices%20for%20Training%20LLMs%20from%20Scratch%20-%20Final.pdf" target="_blank" rel="noopener" +>从零开始训练大语言模型的最佳实践</a>,训练大语言模型的技术白皮书,从基本概念和技术讲起,教你训练大语言模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-15-45.png" +width="656" +height="849" +loading="lazy" +class="gallery-image" +data-flex-grow="77" +data-flex-basis="185px" +></li> +<li><a class="link" href="https://github.com/yardenshafir/WinDbg_Scripts/blob/master/windbg_the_fun_way.pdf" target="_blank" rel="noopener" +>windbg</a>,一本电子书,讲了很多 windbg 调试器的高级用法,市面上很少见。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-16-44.png" +width="620" +height="319" +loading="lazy" +class="gallery-image" +data-flex-grow="194" +data-flex-basis="466px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 040 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/Tue, 11 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/<h1 id="机器文摘-第-040-期">机器文摘 第 040 期</h1> +<h2 id="长文">长文</h2> +<h3 id="前端代码检查插件eslint和美化插件prettier的冲突">前端代码检查插件<code>ESLint</code>和美化插件<code>Prettier</code>的冲突</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-02-40.png" +width="1900" +height="1008" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +> +在使用VSCode等现代化编辑器进行前端开发的时候,很多工程样板都默认开启了代码检查和自动格式化的功能,其中以 ESLint 插件和 Prettier 插件为主。</p> +<p>之前有一阵子我总是困惑这两个插件的区别,甚至如果配置不好的话,还会有冲突。</p> +<p>比如 Prettier 插件会在你保存源码的时候按照既定规则进行“美化”代码,如去除行尾分号、增加表达式中的空格等等。此时如果ESLint插件的规则配置不同的话,编辑器就会报错并提示要进行“修复”,然而就在你“修复”之后,刚<code>Ctrl+S</code>保存之后,又傻眼了,因为 Prettier 又对代码进行了“美化”。</p> +<p>我周末特意花时间研究了一下,梳理了一下这两个插件的关系以及他们的分工。</p> +<p>首先,他们的职责定位不同:ESLint 用于检查代码编写是否符合某种预定义的规范,可以进行十分详尽的配置和多项检查,比如定义的变量如果未使用可以作为一种警告或者错误,其职责定位以检查为主。而 Prettier 的职责侧重于格式化(美化)代码,对于编写代码的样式如 tab 缩进量、行尾要不要分号、字符串用单引号还是双引号等可以进行统一格式化,一般用于在代码保存的时候进行快速统一样式。</p> +<p>所以两者可以配合使用,但开头提到的规则冲突需要注意。</p> +<p>我个人的习惯是,将两个插件的配置文件里的配置项进行匹配(规则调整为一致),因为我在美化时关注的项并不太多,所以编写这两个配置文件不算费劲。</p> +<p>而网上有人提出了更好的办法,即通过扩展插件的方式,使得 ESLint 自动获取 Prettier 的规则,以自动统一两者的行为。</p> +<p><a class="link" href="https://rileycai.com/%e4%b8%8d%e4%bb%a5%e8%a7%84%e7%9f%a9%ef%bc%8c%e4%b8%8d%e8%83%bd%e6%88%90%e6%96%b9%e5%9c%86-%e5%bd%bb%e5%ba%95%e6%90%9e%e6%87%82-eslint-%e5%92%8c-prettier/" target="_blank" rel="noopener" +>关于 ESLint 和 Prettier 的具体分析文章和操作建议可以看这一篇文章:</a></p> +<h3 id="说一说我现在的知识管理工具和流程">说一说我现在的知识管理工具和流程</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-03-27.png" +width="302" +height="517" +loading="lazy" +class="gallery-image" +data-flex-grow="58" +data-flex-basis="140px" +> +Hacknews 上有网友说<a class="link" href="https://news.ycombinator.com/item?id=36609641" target="_blank" rel="noopener" +>Evernote几乎辞退了它的所有员工</a>,才想起来我已经有好几年没用过 Evernote 了。之前大概有将近十年的时间都在使用Evernote(但都是免费用户)。主要使用场景是记录个人的工作日志和借助浏览器插件剪藏一些值得收藏的文章。</p> +<p>后来随着 Evernote 的限制越来越多,体验逐渐下降。我就迁移到了使用纯文本作为知识记录载体的路线上了。</p> +<p>期间使用过 Emacs 的 org 模式,也尝试过 vim 的 wiki 插件,最后选择了现在这个 VSCode + GitHub 的方案,已稳定使用了两年时间。</p> +<p>具体流程如下: +1、使用 VSCode + <a class="link" href="https://foambubble.github.io/foam/" target="_blank" rel="noopener" +>foam</a> 、<a class="link" href="https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one" target="_blank" rel="noopener" +>MarkdownAllinOne</a> 等插件实现对 Markdown 的高效编辑,可以实时预览排版效果,foam实现了类似 <a class="link" href="https://obsidian.md/" target="_blank" rel="noopener" +>Obsidian</a> 的文章双向链接和知识关系图谱。我主要使用 Markdown 记录日志和编写知识卡片用于存放个人吸收的信息。 +2、所有内容存放在一个 git 仓库中,同步到 GitHub 上的个人私有仓库,这样可以省去对接网盘的麻烦。 +3、对于互联网上阅读到的有用文章,使用浏览器插件 <a class="link" href="https://microsoftedge.microsoft.com/addons/detail/web-clipper/opejamnnohhbjflpbhnmdlknhjkfhfdp" target="_blank" rel="noopener" +>Web Clipper</a>,可以完整的抓取页面内容到指定的后端存储,这个插件我最喜欢的点是它可以将文章抓取到你指定的GitHub仓库,并作为Issue提交。 +4、来不及看的信息就先抓取到 Issue ,然后等有时间进行整理,形成自己的知识卡片后再关闭该 Issue 。</p> +<p>这套工具及流程的优点: +1、完全免费,不产生任何费用,而且体验不亚于收费软件。 +2、自由度高,存储后端可以自己随意选择,如果嫌 GitHub 麻烦的话,可以自己用网盘同步文件夹。 +3、纯文本载体,这个算是优点吧,格式开放,不会存在别的编辑器打不开的情况。 +4、数据私有,数据随时都在本地(云端的仅作为备份和同步中转),不用担心 SaaS 供应商跑路(你看现在的Evernote)。</p> +<p>欢迎大家讨论。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/TransparentLC/WechatMomentScreenshot" target="_blank" rel="noopener" +>朋友圈截图生成工具</a>,可以帮你生成逼真的朋友圈截图,可定制头像、评论、点赞个数等细节。收藏<a class="link" href="https://akarin.dev/WechatMomentScreenshot/" target="_blank" rel="noopener" +>这个地址</a>,以后再也不怕被群里晒孩子的家长或者搞活动的商家逼着发朋友圈集赞了。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-04-12.png" +width="690" +height="1227" +loading="lazy" +class="gallery-image" +data-flex-grow="56" +data-flex-basis="134px" +></li> +<li><a class="link" href="https://86box.net/" target="_blank" rel="noopener" +>86box</a>,老式 x86 架构计算机模拟器,与 Virtualbox 等虚拟化技术不同的是,86box采用纯软件模拟的方式,实现了经典老式 cpu (如 AMD Am486DX4)的各种技术细节,甚至是当时的硬件缺陷(有些老游戏的 hack 需要这些缺陷)。可以完美复现一台上世纪 90 年代的经典 DOS PC ,用来复古怀旧游戏是再合适不过了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-04-26.png" +width="553" +height="371" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="357px" +></li> +<li><a class="link" href="https://github.com/ztxz16/fastllm" target="_blank" rel="noopener" +>fastllm</a>,fastllm是纯c++实现,无第三方依赖的高性能大模型推理库(待测试验证)。据宣称:6~7B级模型在安卓端上也可以流畅运行,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llmam, moss基座,手机端流畅运行。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-17.png" +width="875" +height="356" +loading="lazy" +class="gallery-image" +data-flex-grow="245" +data-flex-basis="589px" +></li> +<li><a class="link" href="https://photoai.com" target="_blank" rel="noopener" +>PhotoAI</a>,作者说,他为这个网站大概写了14000行PHP代码,样式全写在了<code>&lt;style&gt;</code>标签里,JS全写在<code>&lt;script&gt;</code>标签里,除了<code>jQuery</code>没用任何框架,就连布局也是使用<code>float:left</code>这种老式的浮动实现。然而这个网站确能给他带来每月差不多 <em>6万刀</em> 的收入。这是不是在吹牛。这个网站的业务是:使用AI生成完全没有任何版权问题的各种人像照片。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-41.png" +width="690" +height="617" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="268px" +></li> +<li><a class="link" href="https://makepad.nl/makepad/examples/ironfish/src/index.html" target="_blank" rel="noopener" +>Ironfish synth</a>,用rust写的在线合成器,虽然感觉像个 Demo 但完成度很高,音源部分具有两个振荡器(可选正弦波、方波、锯齿波等)和一个噪波通道,滤波器、效果器齐全,另外还有一个可视化音序器。可基于键盘直接演奏。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-59.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 038 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/Tue, 27 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/<h1 id="机器文摘-第-038-期">机器文摘 第 038 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://www.polygon.com/23690187/discord-ai-chatbot-clyde-grandma-exploit-chatgpt" target="_blank" rel="noopener" +>ChatGPT的“奶奶漏洞”</a>,奶奶漏洞来源自一个用户说他已经过世的奶奶是凝固汽油弹工厂的工程师,用户让 ChatGPT 用他奶奶说睡前故事的形式,详细介绍了凝固汽油弹的制作方法。以此来绕过 ChatGPT 的安全审查,结果当然是,他得逞了。后来还有网友做了试验,以同样的方式可以套取 Windows 各个版本的序列号。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-53-23.png" +width="720" +height="489" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></li> +<li>国外也有“垃圾佬”,这篇<a class="link" href="https://l4rz.net/running-nvidia-sxm-gpus-in-consumer-pcs/" target="_blank" rel="noopener" +>《怎样低成本搭建深度学习电脑》</a>的文章,介绍了作者怎样通过在二手网站上“捡垃圾”搭建出了性能良好且便宜的GPU工作站。 值得一提的是,作者购买的主要渠道竟然来自国内的著名二手物品交易平台,某鱼。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-54-05.png" +width="690" +height="459" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li> +<p>回顾这些年软件研发的历程,凡是能够做成的软件,无一例外都是抓住了真正存在的需求。这样的需求未必很宏大或者华丽,但一定不是想象种的伪需求。仔细分析之后就会发现,在一个软件产品的生命周期里,开发者所面临的真正(或者说正确的)需求很少,因为找到它们十分不易,它们周边布满了被人们主观意识强加上的伪需求。<a class="link" href="https://cerebralab.com/Imaginary_Problems_Are_the_Root_of_Bad_Software" target="_blank" rel="noopener" +>《伪需求是糟糕软件的根源》</a>,文章探讨了软件开发中存在的一个问题,即虚构的问题(我将之译为:伪需求)如何导致糟糕的软件结果。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-56-35.png" +width="353" +height="179" +loading="lazy" +class="gallery-image" +data-flex-grow="197" +data-flex-basis="473px" +></p> +</li> +<li> +<p>有没有考虑过一个问题,即:为什么随着科技的发展和生产力的提升,人们不是越来越清闲,反而越来越劳累了?这里有篇文章探讨了一些深层次的原因,<a class="link" href="https://theanarchistlibrary.org/library/david-graeber-bullshit-jobs" target="_blank" rel="noopener" +>《狗屁工作》</a>,此文写于 2013 年,作者是 David Graeber (一名人类学教授)。文章讨论了现代社会中存在的一种现象,即许多人在工作中感到他们所从事的工作毫无意义,没有真正的价值和目的。这些工作被称为&quot;狗屁工作&quot;,作者试图探究狗屁工作的存在原因和对个体和社会的影响。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-56-57.png" +width="602" +height="854" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="169px" +></p> +</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/laishulu/Sarasa-Term-SC-Nerd" target="_blank" rel="noopener" +>Sarasa Term SC Nerd</a>,写中文Markdown文件的时候,最怕遇到表格,因为编辑器按照一个中文字符的宽度等于两个英文字符的宽度进行计算,而很多字体在设计时未考虑严格按照这种2:1的宽度比例设计字形,导致在Markdown在编辑状态时的表格分割线错位,看起来十分头疼。经过多方对比,我终于找到了让自己满意的等宽字体,支持中英文字符2:1宽度比例,中文为黑体,英文字符也特别适合写代码。此外还整合了Nerd fonts,支持在终端显示各种漂亮图标。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-58-24.png" +width="690" +height="187" +loading="lazy" +class="gallery-image" +data-flex-grow="368" +data-flex-basis="885px" +></li> +<li><a class="link" href="https://reviewgpt.net" target="_blank" rel="noopener" +>ReviewGPT</a> 写作文、写报告、写邮件,生活中充满了各种写作任务。ReviewGPT 基于 gpt 模型,可为你的文章进行打分、评价,提出修改意见,甚至还可以扮演莎士比亚、金庸等知名作家,帮助你重新撰写,快速提升文章质量。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-58-38.png" +width="690" +height="394" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="420px" +></li> +<li><a class="link" href="https://github.com/binpash/try" target="_blank" rel="noopener" +>try</a>,刚发布的一个命令行工具,目标是允许你执行命令的时候先检查其执行的后果,然后再决定是否让命令真正生效。真正起到了安全保护的效果。官方介绍这个命令是基于 Linux 的命名空间(通过 unshare )和 overlayfs 联合文件系统等技术实现。并特别提醒并非基于沙盒,所以还是谨慎执行危险操作吧。比如<code>try rm rf /*</code>。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-59-26.png" +width="831" +height="467" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="427px" +></li> +<li><a class="link" href="https://github.com/XingangPan/DragGAN" target="_blank" rel="noopener" +>DragGAN</a>, 通过拖动就可以完全操纵图像的 AI 模型,现已开放源码! DragGAN 是由谷歌、麻省理工学院和马克斯普朗克研究所创建的一种新的人工智能模型。可以让你轻松通过点击拖动等简单的交互操作就能改变拍摄对象的姿势、形状和表情。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-16-00-25.png" +width="598" +height="399" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></li> +<li><a class="link" href="https://flameshot.org/" target="_blank" rel="noopener" +>flameshot</a>,一个超强的免费截图软件,可以像任何一个截图工具一样截图,最重要的是还有一些附加功能,按一下数字图标,就可以在屏幕上按数字顺序自动生成步骤图示,非常适合生成操作步骤说明。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-16-01-00.png" +width="580" +height="374" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="372px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 037 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/Tue, 20 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/<h1 id="机器文摘-第-037-期">机器文摘 第 037 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://snap-research.github.io/SnapFusion/" target="_blank" rel="noopener" +>SnapFusion</a> 文本到图像的扩散模型可以从自然语言描述中创建令人惊叹的图像。然而,这些模型很大,需要高端 GPU 在服务端运行模型。SnapFusion提出了一种通用方法,可以在移动设备上运行的文本到图像扩散模型,且出图时间不到2秒。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-55-06.png" +width="609" +height="899" +loading="lazy" +class="gallery-image" +data-flex-grow="67" +data-flex-basis="162px" +></li> +<li><a class="link" href="https://framer.com/ai" target="_blank" rel="noopener" +>Framer</a> 发布了 AI 工具,直接根据文字需求生成页面,我试了一下,对于个人博客、产品介绍页面等静态展示类型的页面,生成的效果还是十分理想的,而且同步提供桌面端和移动端页面。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-55-33.png" +width="599" +height="710" +loading="lazy" +class="gallery-image" +data-flex-grow="84" +data-flex-basis="202px" +></li> +<li><a class="link" href="https://notes.dt.in.th/HDRQRCode" target="_blank" rel="noopener" +>比<code>#ffffff</code>还“白”的“超级白”</a>,这里有网友介绍了一个方法,可以显示更高对比度的二维码(以方便用户扫描识别),据说白的程度超出了sRGB颜色范围,前提是你的显示设备支持HDR。作者的思路是用一段HDR视频在网页中伪装成显示二维码的图片。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-56-11.png" +width="690" +height="305" +loading="lazy" +class="gallery-image" +data-flex-grow="226" +data-flex-basis="542px" +></li> +<li><a class="link" href="https://rwmj.wordpress.com/2023/06/14/i-booted-linux-292612-times/" target="_blank" rel="noopener" +>我在21小时内重启系统29万次</a>,Linux 6.4内核有一个bug可能导致启动时挂起,但概率很低。为了复现bug,Richard WM Jones重启了29万次电脑,最终找到了问题。这让我想起了之前修改不容易复现Bug的艰辛。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-56-28.png" +width="690" +height="735" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="225px" +></li> +<li>我发现一个用chatGPT翻译整段文字的小技巧,那就是在他翻译完成之后,再将这段话发给他,让他根据通顺程度和合理性进行二次润色,出来的结果就好很多了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-58-53.png" +width="717" +height="648" +loading="lazy" +class="gallery-image" +data-flex-grow="110" +data-flex-basis="265px" +></li> +<li>Python写代码很爽,但是想打包发布成果的时候就稍微麻烦一些了,毕竟一大堆环境依赖和包依赖。我之前一直用的是PyInstaller作为打包工具,但是现在我又发现了这个<a class="link" href="https://github.com/Nuitka/Nuitka" target="_blank" rel="noopener" +>Nuitka</a>。它的打包原理是:直接把 Python 代码转成 C 代码再编译,这样打包出来的成果占用小、执行效率也高,尤其适合PyQt编写的桌面程序。另外,著名的 Blender 就是用 Nuitka 编译的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-59-12.png" +width="428" +height="272" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="377px" +></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li><a class="link" href="https://www.raptitude.com/2022/01/everything-must-be-paid-for-twice/" target="_blank" rel="noopener" +>你买的每样东西都需要支付两次成本</a>,这篇在Hacker News上的文章引起我的强烈共鸣。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-59-33.png" +width="600" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></li> +</ul> +<p>它提出了一个有趣的观点,我以前从未意识到:</p> +<p>每样东西都需要支付两次成本。</p> +<p>通常,我们只关注第一次支付的成本,也就是购买时花的钱,比如买一台相机、一架钢琴或一本小说。</p> +<p>然而,作者指出,如果你不支付第二次的成本,你之前花的钱就等于打水漂了。</p> +<p>第二次成本指的是,你需要花时间和精力去充分使用你所购买的物品。</p> +<p>比如认真阅读一本书,练习钢琴以提高演奏水平等等。</p> +<p>然而,我们常常只停留在第一次购买时的满足感上,然后追求下一个。</p> +<p>随着时间的推移,大量未支付第二次成本的物品使我们积累了一种无形的债务。</p> +<p>为此经常感到挫败。</p> +<p>这种挫败感促使我们寻求那些能够刺激我们的短期享受,比如玩手机、享用美食。</p> +<p>进一步导致没有时间支付第二次成本。</p> +<p>那么,有什么办法可以改变这种情况吗?</p> +<p>作者说,唯一的解决办法就是控制购买欲望,强迫自己安排时间来履行第二次支付的责任。</p> +<p>尽管这听起来可能有些不舒服,但如果我们能克服这种不舒服的临界点,例如学会一首乐曲,耐心读完一本书,我们将会获得意想不到的奖励时刻。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.ratatype.com" target="_blank" rel="noopener" +>ratatype</a>,在线键盘盲打指法练习,有完整的练习教程,从初级到高级都有。有点儿像Dos时代的著名打字练习软件TT,不过是网页版的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-11.png" +width="690" +height="360" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +<li><a class="link" href="https://play0ad.com/download" target="_blank" rel="noopener" +>0A.D.</a>,帝国时代是个经典游戏,这里有个开源版,名字叫做0AD,由Wildfire Games开发,虽然是免费开源的游戏,但是效果和可玩性都非常高,适合在周末的午后来一把怀旧局。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-26.png" +width="690" +height="405" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="408px" +></li> +<li><a class="link" href="https://landing.love" target="_blank" rel="noopener" +>landing.love</a>,一个专门收集各种网页动画效果的网站,目前已收录超过400个具有新颖创意动效的网站,并配有截图和录屏视频。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-47.png" +width="590" +height="486" +loading="lazy" +class="gallery-image" +data-flex-grow="121" +data-flex-basis="291px" +></li> +<li><a class="link" href="https://github.com/princeton-vl/infinigen" target="_blank" rel="noopener" +>infinigen</a>,一款面向计算机视觉研究的3D场景自动生成器,提供多样且高质量的3D训练数据。基于Blender,免费且开源。可以通过重写随机化的默认参数来完全控制资产生成。提供了对自然界中多种对象和场景的生成器,包括植物、动物、地形以及火、云、雨、雪等自然现象。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-01-41.png" +width="951" +height="522" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +></li> +<li><a class="link" href="https://yjdoc2.github.io/8086-emulator-web/compile" target="_blank" rel="noopener" +>8086-emulator-web</a> ,用js编写的的8086 cpu模拟器,支持汇编语言在线编写、编译和调试运行,是一个学习汇编语言和理解计算机原理的好工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-01-04.png" +width="690" +height="320" +loading="lazy" +class="gallery-image" +data-flex-grow="215" +data-flex-basis="517px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 036 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/Wed, 14 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/<h1 id="机器文摘-第-036-期">机器文摘 第 036 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4911535232057363" target="_blank" rel="noopener" +>软驱阵列演奏音乐</a>,国外大神用512个软驱、16个硬盘、4个扫描仪,组装成阵列,通过编程的方式控制电机震动发出声音,组成各声部。这么多软驱,让我想到了退休老干部合唱团。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-49-03.png" +width="1555" +height="926" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="403px" +></li> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4564677670141974" target="_blank" rel="noopener" +>大脑能像身体那样锻炼吗?</a>,如何训练大脑?提高记忆力、注意力和智力!这个视频进行了讲解,总之就是,用进废退,改变日常默认行动,让大脑动起来。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-49-59.png" +width="743" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="396px" +></li> +<li><a class="link" href="https://gaultier.github.io/blog/x11_x64.html" target="_blank" rel="noopener" +>用纯汇编写一个GUI</a>,跟随这篇教学文章,通过编写图形界面的方式来学习汇编语言吧。顺便,作者想挑战一下,最小的GUI程序其可执行二进制文件能有多小。(现在的可执行文件动不动就好几十上百MB)​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-50-39.png" +width="1046" +height="463" +loading="lazy" +class="gallery-image" +data-flex-grow="225" +data-flex-basis="542px" +></li> +<li><a class="link" href="https://blog.betacat.io/post/2023/06/summarize-hacker-news-by-chatgpt" target="_blank" rel="noopener" +>让 ChatGPT 帮我们总结 Hacker News</a>,让AI每天帮我总结新闻摘要,这个想法我已经考虑很久了,现在已经有人做了实现。这篇文章介绍了一个开源静态网站的实现,它利用 ChatGPT 的总结能力,直接将每条Hackernews的新闻用一两句话总结出来,然后发布到GithubPages 可以节约我们每天看新闻的时间。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-51-29.png" +width="891" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="215" +data-flex-basis="517px" +></li> +<li><a class="link" href="https://www.web3brand.io/p/maximize-unregretted-user-time" target="_blank" rel="noopener" +>马斯克专访:推特的混乱过去了,现在的目标是最大化用户无悔时间!</a>,我不喜欢看八卦,但是科技的除外。马斯克收购 Twitter 几个月过去了,大家还在等着看笑话,但是为什么没等到,以及开掉一半人之后效率却提升那么多? +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-52-02.png" +width="680" +height="417" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="391px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/AI4Finance-Foundation/FinGPT" target="_blank" rel="noopener" +>FinGPT</a>,一个面向金融领域的开源语言模型,采用以数据为中心的方法,为研究人员和实践者提供易于使用的资源,致力于做金融领域的chatGPT。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-52-48.png" +width="822" +height="462" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="427px" +></li> +<li><a class="link" href="https://github.com/facebookresearch/audiocraft" target="_blank" rel="noopener" +>Audiocraft</a>,facebook发布的一个PyTorch库,用于音频生成的深度学习研究。目前,它提供了用于从文本生成音乐的MusicGen代码和模型。模型使用2万小时正版授权音乐训练。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-53-34.png" +width="816" +height="350" +loading="lazy" +class="gallery-image" +data-flex-grow="233" +data-flex-basis="559px" +></li> +<li><a class="link" href="https://github.com/mljar/mercury" target="_blank" rel="noopener" +>Mercury</a>,在 Jupyter Notebook 中构建 Web 应用程序,允许您在Python笔记本中添加交互式小部件,然后将笔记本发布为带交互界面的Web应用程序。我的感受是,Mercury就是 notebook版的<a class="link" href="https://github.com/gradio-app/gradio" target="_blank" rel="noopener" +>gradio</a> ​​​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-53-58.png" +width="805" +height="421" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></li> +<li><a class="link" href="https://github.com/reactive-python/reactpy" target="_blank" rel="noopener" +>ReactPy</a>,React是最流行的用于构建UI的前端框架,现在所有Python开发人员都可以使用它。比起gradio,这个reactpy的抽象层级更低一些,自由度更高了,我猜测目标用户应该是不喜欢写前端代码但是又希望掌控页面细节的python程序员。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-56-24.png" +width="632" +height="148" +loading="lazy" +class="gallery-image" +data-flex-grow="427" +data-flex-basis="1024px" +></li> +<li><a class="link" href="http://ggml.ai/" target="_blank" rel="noopener" +>GGML</a>,一个用于机器学习的张量库,采用纯C++实现,无其他依赖项。旨在在普通硬件上实现大型模型和高性能。它同时也是 llama.cpp 和 whisper.cpp 的底层库。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-57-18.png" +width="629" +height="327" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="461px" +></li> +<li><a class="link" href="https://github.com/Genymobile/scrcpy" target="_blank" rel="noopener" +>Scrcpy</a>,一个让人相见恨晚的app,可以通过USB或TCP/IP连接镜像Android设备的视频和音频,并允许使用计算机的键盘和鼠标来控制设备。它不需要任何root权限,并且兼容Linux、Windows和macOS操作系统。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-02-19.png" +width="408" +height="589" +loading="lazy" +class="gallery-image" +data-flex-grow="69" +data-flex-basis="166px" +></li> +<li><a class="link" href="https://maketafi.com/ai" target="_blank" rel="noopener" +>Tafi</a>,通过自然语言生成3D模型,质量号称接近AAA级游戏,可以导出创建的角色到Blender、Unreal 或 Unity中。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-02-52.png" +width="1080" +height="608" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/Hufe921/canvas-editor" target="_blank" rel="noopener" +>canvas-editor</a>,一个基于 canvas/svg 实现的富文本编辑器,在市面上,使用 Canvas 实现整个编辑器的开源项目并不常见,大多数情况下仍然使用 DOM 来实现。使用 Canvas 的最显著特点是其出色的性能,但实现起来的成本也更高。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-15-39.png" +width="1200" +height="668" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="431px" +></li> +<li><a class="link" href="https://markmap.js.org%e2%80%8b%e2%80%8b" target="_blank" rel="noopener" +>markmap.js</a>,一个用markdown文本制作思维导图的工具,提供了vscode的插件可直接在编辑器预览。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-16-02.png" +width="611" +height="458" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 035 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/Wed, 07 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/<h1 id="机器文摘-第-035-期">机器文摘 第 035 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://www.reproof.app/blog/notes-apps-help-us-forget" target="_blank" rel="noopener" +>笔记帮我们记住还是忘记?</a>这篇文章讨论了笔记对帮助我们遗忘的作用。作者认为,随着时间的推移,我们无法记住所有的事情,但是只要我们记录了重要的信息,就可以在需要时再次查找,因此笔记实际上帮助我们遗忘。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-09-37.png" +width="1173" +height="488" +loading="lazy" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></li> +<li><a class="link" href="https://research.nvidia.com/labs/dir/neuralangelo/" target="_blank" rel="noopener" +>高保真神经表面重建</a>,Nvidia 新发布的这个 Neuralangelo 有些猛,随便给一个视频就能进行精细3D建模,也许要不多久激光点云技术就要淘汰了。值得关注 ! +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-12-49.png" +width="936" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="483px" +></li> +<li><a class="link" href="https://github.com/Neo-Desktop/WindowsXPKg" target="_blank" rel="noopener" +>Windows XP 激活算法被破解</a>, XPKeygen是一个可以随意生成XP有效安装密钥的程序,当前的电脑可能用不到了。不过可能还有一些老旧的设备,只能通过 Windows XP 来操作,这时候这个东西就派上用场了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-17-33.png" +width="610" +height="285" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="513px" +></li> +<li><a class="link" href="https://www.v2ex.com/t/944717" target="_blank" rel="noopener" +>一个整活儿的开源编辑器</a>,data:text/html;base64,PGh0bWwgY29udGVudGVkaXRhYmxlPmVkaXQgbWU8L2h0bWw+ 把这个代码粘到浏览器地址栏,竟然是个记事本app,如果从IDE拷贝代码过去,竟然还支持代码高亮。。。。加入到收藏夹即可食用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-20-19.png" +width="663" +height="347" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></li> +<li><a class="link" href="https://mymodernmet.com/sea-turtle-birch-aquarium-3d-printed-brace" target="_blank" rel="noopener" +>3D打印拯救海龟</a> ,2017年,伯奇水族馆与加州大学圣地亚哥分校图书馆的数字媒体实验室合作。他们一起创造了一种首创的3D打印支架,以固定她的外壳上的缝隙。现在,六年后,这种生物及其照顾者继续从这项发明中获益。这只海龟最近接受了年度检查,健康状况良好。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-21-40.png" +width="613" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></li> +<li><a class="link" href="https://kuenzi.dev/toothbrush/" target="_blank" rel="noopener" +>破解“智能”牙刷</a> 国外一个博主记录了他破解自己的电动牙刷的过程。由于牙刷的NFC芯片采用的加密方式是密码加密,并且在通讯过程中是用了明文传递,所以他采取了截获通讯信号的方式窃听到了密码,然后就解锁了各种姿势开始为所欲为了。。。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-22-42.png" +width="606" +height="363" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +></li> +<li><a class="link" href="https://bjoernkarmann.dk/project/paragraphica" target="_blank" rel="noopener" +>真·AI相机</a> ,paragraphica 是一个没有镜头但是却有物理实体的“AI相机”,使用位置、时间等参数数据生成特定地点和时刻的prompt,然后由人工智能来生成“照片”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-24-07.png" +width="578" +height="513" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.dora.run/ai" target="_blank" rel="noopener" +>Droa</a>,一个通过自然语言进行网站开发的工具,你只需要提需求,剩下的交给AI。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-26-05.png" +width="821" +height="496" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="397px" +></li> +<li><a class="link" href="https://github.com/SupaGruen/StableDiffusion-CheatSheet" target="_blank" rel="noopener" +>StableDiffusion-CheatSheet</a>,经常用 Stable Diffusion 进行 AI 绘图的,可以看下这个开源速查表。里面拥有超过 700 种经过测试的艺术风格,可快速搜索查找各类艺术家,并支持一键复制 Prompt。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-26-50.png" +width="742" +height="521" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="341px" +></li> +<li><a class="link" href="https://www.math.cmu.edu/~jmackey/151_128/bws_book.pdf" target="_blank" rel="noopener" +>你一直想知道的关于数学的一切</a>,此书是CMU数学科学系的博士生布兰登·W·沙利文撰写的,旨在引导读者进入抽象数学和证明写作的世界,帮助培养读者的数学思维和表达能力。主题涵盖集合、逻辑、归纳法、关系、函数、基数和组合数学等基础和工具。暂未有中文翻译。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-27-26.png" +width="724" +height="579" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="300px" +></li> +<li><a class="link" href="https://github.com/eastlakeside/interpy-zh" target="_blank" rel="noopener" +>Python进阶</a>,是《Intermediate Python》的中文译本。2021最新目录版,实时更新托管在<a class="link" href="https://py.eastlakeside.cn" target="_blank" rel="noopener" +>GithubPages</a>。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-28-23.png" +width="1037" +height="350" +loading="lazy" +class="gallery-image" +data-flex-grow="296" +data-flex-basis="711px" +></li> +<li><a class="link" href="https://csspro.com/" target="_blank" rel="noopener" +>CSSPro</a>,一个所见即所得的在线CSS可视化开发工具,直接在页面运行,那里修改点哪里。效果真的很惊艳。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-29-07.png" +width="921" +height="537" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></li> +<li><a class="link" href="https://github.com/makeplane/plane" target="_blank" rel="noopener" +>Plane</a>,开源版 JIRA !不少软件开发者都使用JIRA进行缺陷管理,JIRA确实很强大,也很好用。现在,开源版的来了,据说完全可以作为JIRA的平替。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-30-19.png" +width="1139" +height="595" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +></li> +<li><a class="link" href="https://openmlsys.github.io/index.html" target="_blank" rel="noopener" +>机器学习系统:设计和实现</a>,一本关于机器学习的电子书,本书希望做成世界上第一本全面讲述机器学习系统知识的开源书籍。可以看作一门衔接机器学习和计算机系统的课程 ​​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-31-04.png" +width="234" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="60" +data-flex-basis="144px" +></li> +<li><a class="link" href="https://callannie.ai/" target="_blank" rel="noopener" +>Callanie</a>,练习英语口语的AI对话机器人,支持国内手机号注册,免费且流畅。后端基于大语言模型,可以陪你聊各种话题。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-31-49.png" +width="303" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="53" +data-flex-basis="127px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 034 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/Wed, 31 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/<h1 id="机器文摘-第-034-期">机器文摘 第 034 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://samwho.dev/memory-allocation/" target="_blank" rel="noopener" +>图解内存分配</a>,文章展示了 C/C++ 编程中的内存分配过程,包括静态和动态内存分配技术、它们的优势,以及有效的内存管理所需考虑的事项。以图解的形式展示了内存分配过程,希望读者可以通过本文更好地理解内存分配相关的概念,并在实际编程中对内存进行更加高效的管理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-49-39.png" +width="759" +height="298" +loading="lazy" +class="gallery-image" +data-flex-grow="254" +data-flex-basis="611px" +></li> +<li><a class="link" href="https://blog.koehntopp.info/2023/05/17/50-years-in-filesystems-towards-2004-lfs.html" target="_blank" rel="noopener" +>文件系统五十年</a>,这是一个系列文章,详细记录了计算机文件系统的发展历程。也许我们身在其中无法感受到它的进步,但是回顾历史我们会发现,即便是我们不容易注意到的部分,也在不停地发展和优化。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-50-33.png" +width="672" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></li> +<li><a class="link" href="https://xorvoid.com/sectorc.html" target="_blank" rel="noopener" +>只有512字节的C编译器</a>,这篇文章介绍了一个怎样实现最小编译器的思路,SectorC (github) 是一个用 x86-16 汇编编写的 C 编译器,适合 x512 机器的 86 字节引导扇区。它支持 C 的子集,足够大,可以编写真实有趣的程序。它很可能是有史以来最小的C编译器。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-51-20.png" +width="764" +height="366" +loading="lazy" +class="gallery-image" +data-flex-grow="208" +data-flex-basis="500px" +></li> +<li><a class="link" href="https://www.amygoodchild.com/blog/computer-art-50s-and-60s" target="_blank" rel="noopener" +>上世纪50~60年代的计算机艺术</a>,数字艺术的发展简史。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-51-53.png" +width="781" +height="494" +loading="lazy" +class="gallery-image" +data-flex-grow="158" +data-flex-basis="379px" +></li> +<li><a class="link" href="" >win10的隐藏功能</a>,原来win10还有这个功能。按Ctrl + Alt + Del 后,按住Ctrl不松,再点击右下角的电源符号,就会进入紧急重启(Emergency Restart)界面。应该是一种强制重启。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-52-04.png" +width="690" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/SevaSk/ecoute" target="_blank" rel="noopener" +>Ecoute</a>,可用于远程面试作弊的工具?Ecoute 是一种实时转录工具,可在文本框中为用户的麦克风输入(您)和用户的扬声器输出(扬声器)提供实时翻译。它还使用 OpenAI 的 GPT-3.5 生成建议答复内容,供用户“参考”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-52-39.png" +width="820" +height="386" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="509px" +></li> +<li><a class="link" href="https://app.rask.ai/" target="_blank" rel="noopener" +>rask.ai</a>,自动将视频转成“译制片”,在对内容进行翻译的同时,会尽量保持之前的音色和语调,端到端给你的视频完成多语配音,后续还会推出唇形同步合成。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-53-28.png" +width="1171" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="181" +data-flex-basis="436px" +></li> +<li><a class="link" href="https://chrome.google.com/webstore/detail/tango-how-to-guides-and-s/lggdbpblkekjjbobadliahffoaobaknh" target="_blank" rel="noopener" +>Tango</a>,一个Chrome浏览器插件,能帮你生成一个网站的操作指南。它会自动记录所有的操作流程,并做相应的截图和注解文档。你只需要点一遍就行了。目前还只能生成英文版的,不过自己翻译也不麻烦。可以节省不少时间。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-53-58.png" +width="632" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="388px" +></li> +<li><a class="link" href="https://praeclarum.org/2023/05/19/webgpu-torch.html" target="_blank" rel="noopener" +>WebGPU-torch</a>,PyTroch的webgpu实现。我测试了一下,我的浏览器目前还不支持。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-54-28.png" +width="1384" +height="796" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></li> +<li><a class="link" href="http://ogden.basic-english.org/" target="_blank" rel="noopener" +>basic-english</a>,“基础英语”的概念是:25,000个单词的牛津袖珍英语词典去掉冗余,并消除组合单词,90%的概念可以用850个单词来实现。使用这些基础英语可以简化日常工作和交流。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-55-26.png" +width="778" +height="516" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +<li><a class="link" href="https://github.com/raunofreiberg/interfaces" target="_blank" rel="noopener" +>Web界面准则</a>,讲解如何提升网页界面的交互性、排版、动画、辅助功能、优化和设计。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-56-18.png" +width="834" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="429px" +></li> +<li><a class="link" href="https://github.com/excalidraw/excalidraw" target="_blank" rel="noopener" +>excalidraw</a>,开源虚拟手绘风格白板程序,支持端到端加密在线协作。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-56-43.png" +width="759" +height="504" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +</ul> +<h2 id="沉思录">沉思录</h2> +<ul> +<li>一切商业的本质都是:收购一些东西(包括原材料、人力服务),经过加工(加工过程产生价值)后变成产品或服务出售。这里的原材料可以是实体物品也可以是信息。所以关键动作就是:收、加工、出售,从重要性上来说,出售大于加工大于收。所以如果要策划自己的产品,解决和分析问题的优先级也应如此,我之前想的正好一反;</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 033 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/Wed, 24 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/<h1 id="机器文摘-第-033-期">机器文摘 第 033 期</h1> +<h2 id="研究">研究</h2> +<h3 id="全键盘信息终端">全键盘信息终端</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-22-11.png" +width="1335" +height="637" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +> +我一直很怀念使用黑莓手机的日子。</p> +<p>物理全键盘的手感比起现在硬邦邦的触摸屏真不知道好到哪里去了。</p> +<p>多少次盯着抽屉里的黑莓尸体,都在想有没有办法再次发挥它的余热。</p> +<p>现在机会来了,有人将树莓派和黑莓手机的全键盘(带触摸板的那一款)结合起来做了一个终端。</p> +<p>取名:<a class="link" href="https://beepberry.sqfmi.com/" target="_blank" rel="noopener" +>Beepberry</a>,具有400*200分辨率的LCD屏幕,和usb type-c接口。</p> +<h3 id="自己动手给树莓派写操作系统">自己动手给树莓派写操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-31-09.png" +width="677" +height="359" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +> +学习操作系统的最佳手段是自己动手写一个。</p> +<p>这类教程很多,一般都是针对x86平台,树莓派的比较少见。</p> +<p><a class="link" href="https://github.com/isometimes/rpi4-osdev" target="_blank" rel="noopener" +>《给树莓派编写“裸机”操作系统》</a>来自github上的一个开源项目。</p> +<p>可以带你从树莓派的硬件层基础上直接构建一个的完整操作系统。</p> +<h3 id="关于-demoscene-制作的一些文章">关于 Demoscene 制作的一些文章</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-40-25.png" +width="471" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +> +Demoscene(也称为Demo Party)是一种计算机艺术形式,旨在展示计算机的音频和图形表现能力。Demoscene通常是由小团队制作的演示性程序,也被称为demo,它集计算机程序、音乐、图形和动画于一身,是八十年代初期在个人计算机上发展起来的一种文化和艺术运动。Demoscene的主要目的是展示计算机和程序的美感,通常使用3D渲染和其他复杂的视觉效果,展示计算机的高级图形和音频处理能力。</p> +<p>我对于如何制作这些炫酷的 demo 一直很感兴趣,但是网上关于这方面的资料非常少,成体系的就更少了。</p> +<p>这里收录了一些比较经典的相关资料:</p> +<ol> +<li> +<p><a class="link" href="https://www.ctrl-alt-test.fr/2023/procedural-3d-mesh-generation-in-a-64kb-intro/" target="_blank" rel="noopener" +>64kb的demos</a>介绍了基于SDF(Signed Distance Field,有符号距离场)生成三维网格的方法,这个方法是大部分demo用于在三维场景中产生三维模型的主要方法。</p> +</li> +<li> +<p><a class="link" href="https://www.flipcode.com/archives/The_Art_of_Demomaking-Issue_01_Prologue.shtml" target="_blank" rel="noopener" +>The_Art_of_Demomaking</a>是一套很系统的教程,讲述Demo的概念、发展历史以及制作过程需要了解的基础知识。</p> +</li> +<li> +<p><a class="link" href="https://www.pbr-book.org/3ed-2018/contents" target="_blank" rel="noopener" +>pbr-book</a>是一本关于基于物理的渲染(Physically Based Rendering,简称PBR)的经典教材。内容包括计算机图形学相关的基础概念、渲染算法、工作流程和高级特性等。</p> +</li> +</ol> +<h3 id="怎样防止针对llm的prompt攻击">怎样防止针对LLM的prompt攻击</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-52-09.png" +width="734" +height="401" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="439px" +> +就像之前流行的sql注入攻击,针对大语言模型的提示语注入攻击现在变得也很常见。</p> +<p>一种比较典型的攻击场景是,通过一段特定的提示语,解锁chatGPT原本被封印的能力。</p> +<p>或者对于接入了其他工具接口的语言模型,通过特定的提示语让其执行危险操作(如:删除所有信息)。</p> +<p>这对于使用者来说可能危害不大,但对于服务的提供者是一个不小的挑战。</p> +<p><a class="link" href="https://simonwillison.net/2023/Apr/25/dual-llm-pattern/" target="_blank" rel="noopener" +>《用于构建可以抵抗即时注入的 AI 助手的双 LLM 模式》</a>提出了一种可能可行的解决方案。</p> +<p>即使用双模型的配置,协同工作,将具有执行危险操作的特权模型放在另一个模型后面,中间使用过滤器进行风险审查,即未被审查的内容永远不会发送到特权模型。</p> +<h2 id="资源">资源:</h2> +<ul> +<li><a class="link" href="https://gamma.app/" target="_blank" rel="noopener" +>gamma</a>,AI帮你做PPT。支持自然语言描述需要生成的内容,自动给出ppt的大纲和每页基本的排版布局; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-10-00-52.png" +width="742" +height="687" +loading="lazy" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="259px" +></li> +<li><a class="link" href="https://www.3blue1brown.com/" target="_blank" rel="noopener" +>3blue1brown</a>,YouTube上最好的数学科普视频,特点是使用动画直观展示计算原理; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-10-01-29.png" +width="953" +height="611" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="374px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 032 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/Tue, 16 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/<h1 id="机器文摘-第-032-期">机器文摘 第 032 期</h1> +<h2 id="长文">长文</h2> +<h3 id="ai歌手的训练与使用">AI歌手的训练与使用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-33-53.png" +width="1011" +height="641" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="378px" +> +最近火了很多AI歌手(即:用AI模型模仿某位歌手的声音),其中b站上AI孙燕姿演唱的《漠河舞厅》、《撒日朗》等歌曲播放已超百万。</p> +<p>为了研究实现原理,我也找到了开源工具体验了一下。</p> +<p>具体步骤主要总结如下:</p> +<ol> +<li>选定某一个歌手,找到具有代表性的几首歌曲,通过<a class="link" href="https://ultimatevocalremover.com/" target="_blank" rel="noopener" +>Ultimate Vocal Remover</a>软件利用AI做人声和伴奏的分离,主要用于获取干净的纯人声用于模型训练。(不得不说现在基于AI模型的人声、伴奏分离做的是真的强,可以做到非常干净的提取,让你感觉像是原始独立的音轨)。</li> +<li>通过安装<a class="link" href="https://github.com/voicepaw/so-vits-svc-fork" target="_blank" rel="noopener" +>so-vits-svc-fork</a>这个一体化开源工具进行模型训练,具体方法见<a class="link" href="https://github.com/voicepaw/so-vits-svc-fork/blob/main/README_zh_CN.md" target="_blank" rel="noopener" +>so-vits-svc-fork的Readme</a>,从数据预处理到最后的模型导出和推理都已经做好了,甚至还提供了图形界面。</li> +<li>继续使用so-vits-svc-fork提供的gui界面进行操作,将模型载入,将预期修改歌曲的原唱人声(提取方式同第1步)传入,运行推理获得定制的人声(注意看文档的各种参数)。</li> +<li>将第3步推理所得干净人声,跟原唱分离的干净背景音乐进行混音合成,即可获得一首新歌曲了。</li> +</ol> +<h3 id="怎样用口袋计算器玩耍">怎样用口袋计算器玩耍</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-49-14.png" +width="716" +height="514" +loading="lazy" +class="gallery-image" +data-flex-grow="139" +data-flex-basis="334px" +> +在移动互联网时代,人打发无聊的方式实在是太多了,视频聊天、阅读各种资讯八卦、观看短视频、手游等等。</p> +<p>功能机的时代,我有印象的打发无聊的事情是手机上的贪食蛇、发短信、wap资讯等等,也算不错了。</p> +<p>如果时间来到上世纪七十年代呢?那个时代的没有随身携带的手机,怎么打发时间?</p> +<p>答案是:如果有一个随身携带的计算器也行,这里有一本书<a class="link" href="https://archive.org/details/htewypc" target="_blank" rel="noopener" +>《How To Entertain With Your Pocket Calculator》</a>,出版于上世纪七十年代。书中花了大量的篇幅介绍了很多种基于数字的游戏,我翻看了一下,我觉得可能得无聊到一定的程度我才能愿意玩书里的游戏。</p> +<h3 id="llm的几篇介绍文章">LLM的几篇介绍文章</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-56-38.png" +width="703" +height="332" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="508px" +> +Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 +与其感叹以chatGPT为代表的大语言模型发展太快,不如静下心来,读一读关于LLM的一些基础知识和使用方法,我找了三篇比较有代表性的放在这里收藏。</p> +<ol> +<li><a class="link" href="https://github.com/RUCAIBox/LLMSurvey/blob/main/assets/LLM_Survey_Chinese_0418.pdf" target="_blank" rel="noopener" +>大语言模型综述</a>,认真地概括并解释了什么是LLM和它的基本原理。</li> +<li><a class="link" href="https://www.bmpi.dev/dev/deep-learning/nlp-language-models/" target="_blank" rel="noopener" +>ChatGPT背后的语言模型简史</a>,从发展历史上捋一捋各种语言模型的辈分。</li> +<li><a class="link" href="https://github.com/datawhalechina/prompt-engineering-for-developers" target="_blank" rel="noopener" +>prompt-engineering-for-developers</a>一个中文版的 Prompt Engineering 教程,翻译自:吴恩达《ChatGPT Prompt Engineering for Developers》课程,主要内容为指导开发者如何构建 Prompt 并基于 OpenAI API 构建新的、基于 LLM 的应用;</li> +<li><a class="link" href="https://github.com/ninehills/ninehills.github.io/issues/92" target="_blank" rel="noopener" +>大语言模型微调技术笔记</a>,记录了基于 LLM 进行微调训练的实战技巧。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://sinerider.com/" target="_blank" rel="noopener" +>sinerider</a>,一个很有创意的数学学习游戏,让你通过数学函数构建图像从而帮助画面中的角色到达目标地点。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-04-41.png" +width="810" +height="708" +loading="lazy" +class="gallery-image" +data-flex-grow="114" +data-flex-basis="274px" +></li> +<li><a class="link" href="https://anvaka.github.io/map-of-github/#0.87/0/16.7" target="_blank" rel="noopener" +>map-of-github</a>,以节点地图的方式展示Github上面超过40万个仓库,通过虚拟大陆的方式展示他们之间的关系。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-07-40.png" +width="1274" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></li> +<li><a class="link" href="https://learngitbranching.js.org/?locale=zh_CN" target="_blank" rel="noopener" +>learngitbranching</a>,以交互式游戏的方式学习git命令。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-11-32.png" +width="569" +height="598" +loading="lazy" +class="gallery-image" +data-flex-grow="95" +data-flex-basis="228px" +></li> +<li><a class="link" href="https://vgamuseum.ru/" target="_blank" rel="noopener" +></a>,在线显卡博物馆,收藏了1982年到2012年之间发布的各款显卡,包括高清图片和规格参数的介绍; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-14-37.png" +width="1364" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="573px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 031 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/Wed, 10 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/<h1 id="机器文摘-第-031-期">机器文摘 第 031 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样驱动上个世纪的网络摄像头">怎样驱动上个世纪的网络摄像头</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-20-31.png" +width="697" +height="407" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +> +国外有个老哥,在帮朋友收拾废品的时候,获得了一个老旧的摄像头。</p> +<p>于是他按耐不住想感受一下,这个来自上个世纪的“古董”,还能打吗?</p> +<p>由于年代比较久远,厂家也不再提供驱动程序的更新。</p> +<p>哥们不得不在虚拟机里全新安装一个windows xp,成功启动摄像头,并获得“清晰图像”。</p> +<p>安装xp时有个插曲:安装界面里的进度条仅用时几十秒就走完了原本几十分钟的倒计时(所以说微软的进度条是如何推断剩余时间的永远是个迷)。</p> +<p>在经过一番体验之后,又跃跃欲试准备自己给它手搓一个在现代操作系统下的驱动程序。</p> +<p>整个过程记录在<a class="link" href="https://blog.benjojo.co.uk/post/quickcam-usb-userspace-driver" target="_blank" rel="noopener" +>《一个1999年的摄像头复活的故事》</a>。</p> +<p>整个故事都充满了一种“我不知道这么做有什么意义,但是我就是可以”的极客风格(也是我收录它的主要原因)。</p> +<h3 id="webgpu-科普">webGPU 科普</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-36-36.png" +width="673" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="477px" +> +最近谷歌浏览器率先宣布全面支持 webGPU ,预计到今年年底各大浏览器也都会跟进并提供支持。</p> +<p>webGPU 从名字上看跟显卡和浏览器有关,可是之前已经有webgl了,这次又有什么变化?</p> +<p>通过多方面信息的搜索,我得到的结论是:webGPU 更充分地暴露了显卡的计算能力,GPU不再只是做图形渲染相关的事情,而是根据webGPU提供的相关专业接口,可以执行深度学习之类的更通用的计算工作。</p> +<p>如果想了解的更全面一些,这篇<a class="link" href="https://cohost.org/mcc/post/1406157-i-want-to-talk-about-webgpu" target="_blank" rel="noopener" +>《谈谈 webGPU》</a>文章十分值得一读。</p> +<p>作者对 webGPU 这一技术介绍的比较详尽,从各个图形接口的发展历史一直到对未来如何应用的展望,都包括了。</p> +<h3 id="如何翻译一本书">如何翻译一本书</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-49-38.png" +width="709" +height="354" +loading="lazy" +class="gallery-image" +data-flex-grow="200" +data-flex-basis="480px" +> +<a class="link" href="https://sspai.com/post/79534" target="_blank" rel="noopener" +>《从不自量力到 AI 助力,我如何翻译完一整本英文书》</a> +这是一个关于执行力的故事。</p> +<p>主题是:如何借助AI和现代信息工具,实现看似不可能完成的任务。</p> +<p>在这个时代,个体的力量很渺小,因为个人几乎无法独立完成任何事情。</p> +<p>但同时,借助科技工具和基础设施的力量,1 个人甚至可以完成之前需要一个上百人公司才能做到的事情,这让个体变得非常强大。</p> +<h3 id="如何刷路由器">如何刷路由器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-00-09.png" +width="600" +height="417" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="345px" +> +<a class="link" href="https://www.v2ex.com/" target="_blank" rel="noopener" +>V站</a>上说,中年技术男有三大爱好:钓鱼、NAS、软路由。</p> +<p><del>我一样也没沾边儿,但还是克制不住关注相关技术。</del></p> +<p>之前多次想拿自己家的路由器开刀,刷一个openwrt系统,然后就可以各种折腾(科学上网、内网穿透等等)了。</p> +<p>但是一直没有动手,今天看到这篇<a class="link" href="https://a-wing.top/linux/2023/05/01/start-openwrt" target="_blank" rel="noopener" +>自己动手定制你的路由器</a>写的如此详细,还是心动了一下。</p> +<p>先收藏吧。</p> +<h3 id="仅用csshtml实现三维动画">仅用CSS+HTML实现三维动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-06-52.png" +width="632" +height="161" +loading="lazy" +class="gallery-image" +data-flex-grow="392" +data-flex-basis="942px" +> +CSS 的 <code>translate3d</code>用到的不多。</p> +<p>如果使用巧妙的话,可以帮你实现很出彩的 3D 动画效果,国外有高手在给自己的文章配数学公式的时候,利用CSS制作了一些可以动态显示的公式图表。这篇<a class="link" href="https://x.st/spinning-diagrams-with-css/" target="_blank" rel="noopener" +>CSS 3D图表</a>记录了它们的实现细节和技术原理。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.window-swap.com/Window" target="_blank" rel="noopener" +>window-swap</a>,随机看别人家的窗外景色。这个网站每次刷新都随机显示一个网友共享的摄像头视角,一般是自家的窗外。可以随时体验全球各地的邻家风景。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-14-06.png" +width="1371" +height="929" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="354px" +></li> +<li><a class="link" href="https://www.landiannews.com/archives/98512.html" target="_blank" rel="noopener" +>foobar2000</a>,经典的音乐播放器终于更新了。2002年发布的foobar2000播放器曾经是很多发烧友的最爱,如今过了20多年,居然更新了2.0稳定版,值得收藏; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-15-52.png" +width="743" +height="504" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></li> +<li><a class="link" href="https://lost-at-sql.therobinlord.com/" target="_blank" rel="noopener" +>lost-at-sql</a>,一个在线学习 sql 的交互游戏,通过游戏闯关的方式练习 sql 技能; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-18-25.png" +width="745" +height="484" +loading="lazy" +class="gallery-image" +data-flex-grow="153" +data-flex-basis="369px" +></li> +<li><a class="link" href="https://glsl-exercises.simondev.io/lesson/1/1#welcome" target="_blank" rel="noopener" +>glsl-exercises</a>,在线学习glsl的交互课程,通过交互式页面练习 glsl 编写; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-19-48.png" +width="1858" +height="794" +loading="lazy" +class="gallery-image" +data-flex-grow="234" +data-flex-basis="561px" +></li> +<li><a class="link" href="https://www.gameuidatabase.com/" target="_blank" rel="noopener" +>gameuidatabase</a>,一个游戏界面资源网站,各种游戏的界面截图,可以用来“借鉴”?; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-20-48.png" +width="1078" +height="567" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="456px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 030 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/Wed, 26 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/<h1 id="机器文摘-第-030-期">机器文摘 第 030 期</h1> +<p><em>下周五一假期,休息,不更新。</em></p> +<h2 id="长文">长文</h2> +<h3 id="内网穿透的原理及实现">内网穿透的原理及实现</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-42-27.png" +width="1040" +height="515" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="484px" +></p> +<blockquote> +<p>设想这样一个问题:在北京和上海各有一台局域网的机器(例如一台是家里的台式机,一 台是连接到星巴克 WiFi 的笔记本),二者都是私网 IP 地址,但可以访问公网, 如何让这两台机器通信呢?</p> +</blockquote> +<p>IPv4地址即将枯竭,IPv6技术还没有普及,现在很多家庭宽带都不再分配公网IP地址。这就意味着大部分的个人电脑是无法通过互联网被直接访问的(当然,你可以通过你家wifi或者4G信号访问互联网,但是反过来不行)。</p> +<p>可是这种需求又真实存在,比如我就经常希望能够在任何地方访问我家里的电脑,通过远程桌面进行办公、文件共享等等。</p> +<p>最简单的方法是通过购买一台具有公网IP地址的云主机来实现中继,这也是目前最普遍的方式。</p> +<p>不过阅读完这篇<a class="link" href="https://arthurchiao.art/blog/how-nat-traversal-works-zh/" target="_blank" rel="noopener" +>《NAT 穿透是如何工作的:技术原理及企业级实践》</a>,假如你有很强的动手能力的话,就应该可以实现一套完全不需要公网主机进行中继的“企业级内网穿透工具”。</p> +<p>文章很长,来自<a class="link" href="https://tailscale.com/blog/how-nat-traversal-works/" target="_blank" rel="noopener" +>这篇英文博客</a>。</p> +<h3 id="技术写作指南">技术写作指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-53-51.png" +width="437" +height="205" +loading="lazy" +class="gallery-image" +data-flex-grow="213" +data-flex-basis="511px" +> +曾经在翻阅《程序员的数学》这本书的时候被朋友看到,于是诞生了短暂的讨论。</p> +<p>当时我的观点是,作为程序员一定要掌握好数学,即便现在编程过程中已经不怎么用到特别底层的知识,但也应该多训练数学思维。</p> +<p>朋友当时说了一句话让我记忆犹新。</p> +<p>“比起程序员的数学,我更担忧的是程序员的语文。”</p> +<p>确实,写作这项能力在很多技术人员心里是被低估的。</p> +<p>不少人受尽写技术文档的折磨,于是越发讨厌写作。</p> +<p>这篇<a class="link" href="https://www.yuque.com/serviceup/misc/cn-writing-for-engineers" target="_blank" rel="noopener" +>《作为工程师应该如何写作》</a>真是雪中送炭,总结了很多立即就能见效的技术写作方法,希望可以帮助到工程师朋友。</p> +<h3 id="怎样制作好玩的小游戏">怎样制作好玩的小游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-57-29.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +很多人都有自己开发游戏的冲动。</p> +<p>不过很容易掉进各种复杂的引擎和工具的坑里。</p> +<p>然后感到沮丧,忘了想做游戏的初心。</p> +<p>这篇<a class="link" href="http://farawaytimes.blogspot.com/2023/02/how-to-make-good-small-games.html" target="_blank" rel="noopener" +>《怎样制作好玩的小游戏》</a>可以让你重新焕发精神。</p> +<p>作者认为开发那种不用复杂引擎的小游戏也可以很欢乐,只要有足够的游戏性。</p> +<p>他在文章中详细列举了想要制作出真正具有游戏性的小游戏所必须具备的几点关键特性。</p> +<p>看得出来,作者是懂游戏的。</p> +<h3 id="神奇的一页纸知识管理">神奇的一页纸知识管理</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-10-03-34.png" +width="1220" +height="841" +loading="lazy" +class="gallery-image" +data-flex-grow="145" +data-flex-basis="348px" +></p> +<blockquote> +<p>宇航员在太空中找到的方法一定不会错,因为他要是出错就没命了。 +航天员的秘密武器,One Pager。就是把一个专项的知识,都写和画在一页纸上。日积月累,宇航员有了一本手册,里面都是一页一页的one pager。 +我向来对知识管理的各种方法很有兴趣。</p> +</blockquote> +<p>在网上闲逛时看到这篇<a class="link" href="https://www.zhongwen.ai/fantastic-one-pager/" target="_blank" rel="noopener" +>《神奇的One Pager》</a>,讲述了一种通过一页纸进行知识管理的方法。</p> +<p>热爱学习的人可不能错过。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/chidiwilliams/buzz" target="_blank" rel="noopener" +>buzz</a>,Transcribe and translate audio offline on your personal computer. Powered by OpenAI&rsquo;s Whisper. +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-48-07.png" +width="827" +height="431" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +<li><a class="link" href="https://moonvy.com/apps/ops/" target="_blank" rel="noopener" +>可视化提示词拼装</a>,文生图的AI越来越多,自己也可以在本地搭建服务,可是为什么我自己生成的图片那么丑呢?这个工具也许可以帮你生成一些靠谱的提示词。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-50-22.png" +width="991" +height="418" +loading="lazy" +class="gallery-image" +data-flex-grow="237" +data-flex-basis="568px" +></li> +<li><a class="link" href="https://liaokong.gitbook.io/llm-kai-fa-jiao-cheng/" target="_blank" rel="noopener" +>LangChain 中文入门教程</a>,众所周知 OpenAI 的 API 无法联网的,所以如果只使用自己的功能实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能肯定是无法实现的。所以,我们来介绍一个非常强大的第三方开源库:LangChain 。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-51-08.png" +width="1103" +height="493" +loading="lazy" +class="gallery-image" +data-flex-grow="223" +data-flex-basis="536px" +></li> +<li><a class="link" href="https://oimo.io/works/clock/" target="_blank" rel="noopener" +>clock</a>,一个非常酷的网页时钟显示效果。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-51-53.png" +width="999" +height="586" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="409px" +></li> +<li><a class="link" href="https://webgpufundamentals.org/" target="_blank" rel="noopener" +>WebGPU 理论基础</a>,从基础理论开始学习WebGPU,稳! +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-53-56.png" +width="688" +height="743" +loading="lazy" +class="gallery-image" +data-flex-grow="92" +data-flex-basis="222px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 029 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/Wed, 19 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/<h1 id="机器文摘-第-029-期">机器文摘 第 029 期</h1> +<h2 id="长文">长文</h2> +<h3 id="计算机的中断机制是如何实现的">计算机的“中断”机制是如何实现的?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-09-37-58.png" +width="1008" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="354px" +> +稍微了解过计算机原理的朋友都知道,计算机是通过“中断”的机制实现对键盘输入、鼠标移动、硬盘读写等操作的。</p> +<p>让我给小朋友讲解这些基本的知识时,我也可以侃侃而谈,说上半个小时不带重复。</p> +<p>但是真要解释“中断”的机制是如何实现的,我想即便是现在科班出身的本科生也未必能够说明白。</p> +<p>原因我觉得除了缺少实践之外,也跟大部分书上的理论内容离实际工程较远有关。</p> +<p>这篇<a class="link" href="https://r12f.com/posts/interrupts/" target="_blank" rel="noopener" +>漫谈中断</a>从实际的硬件实例(x86)出发,详细介绍了中断的实现机制,普及了“外部中断”、“内部中断”、“软中断”等概念,以及人们怎样通过“中断控制器”逐渐解决了多设备中断处理的问题。是一篇很值得阅读的科普文章。适合对计算机组成原理、操作系统等技术有兴趣的朋友阅读。</p> +<h3 id="怎样提升软件项目的可维护性">怎样提升软件项目的可维护性?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-09-54-43.png" +width="576" +height="242" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="571px" +> +不同的项目团队对于软件项目的可维护性所做出的努力不同。</p> +<p>有不少团队宁愿在修改bug上加班加点,也不愿意为可维护性多花一丁点精力。</p> +<p>不过,如果你要开始一个新的软件项目或者想要改善一个已经存在的项目的可维护性。</p> +<p>这里有一份<a class="link" href="https://hix.dev/tutorials/general/software-project-checklist" target="_blank" rel="noopener" +>软件项目可维护性检查清单</a>可以参考。</p> +<p>作者主要从版本控制、软件测试、静态分析、依赖库管理、多语言支持、多平台支持、开发环境管理等方面给出了可以改进的行动清单,以及基于开源工具的最佳实践建议。</p> +<h3 id="怎样榨干chatgpt">怎样榨干chatGPT?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-06-59.png" +width="1024" +height="1024" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +ChatGPT是由OpenAI训练的一款大型语言模型,能够和你进行任何领域的对话。</p> +<p>现在跟年初账号紧张的情况比起来已经方便了很多。</p> +<p>在这么多开源工具和套壳网站的帮助下,我想现在大部分人都能够比较方便的体验它了吧。</p> +<p>但是可能很多人还不知道如何更好的发挥它的作用。</p> +<p>有网友整理了一份开源的<a class="link" href="https://github.com/PlexPt/awesome-chatgpt-prompts-zh" target="_blank" rel="noopener" +>chatGPT中文调教指南</a>,内容极为详尽,可以帮你榨干chatGPT的全部潜能。</p> +<h3 id="怎样让ai作画理解你的意图">怎样让AI作画理解你的意图?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-17-26.png" +width="1536" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="300" +data-flex-basis="720px" +> +对于现在强大的AI绘图应用,有些人可能会认为只输入一个单词就能生成一张很酷的图片。</p> +<p>然而,虽然AI模型越来越善于理解我们想要的内容,但它们还不能读懂我们的思想。</p> +<p>因此,如果你想生成一张看起来像你所想的那样的图片,你需要编写正确的提示。</p> +<p>这个<a class="link" href="https://boostpixels.com/short-guide" target="_blank" rel="noopener" +>AI绘图prompt编写指南</a>可以给你提供一些帮助。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://zh.ifixit.com/Guide" target="_blank" rel="noopener" +>维修指南</a>,各种设备的维修教程大全,详细到每一个步骤的照片,设备型号齐全; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-22-36.png" +width="977" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="508px" +></li> +<li><a class="link" href="https://shadertoy.com/view/msVXWD" target="_blank" rel="noopener" +>glsl-CNN</a>,有大神用glsl语言,仅通过webGL的片元着色器实现了一个手写识别的CNN神经网络。可以在浏览器直接体验,效果惊艳。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-31-02.png" +width="801" +height="479" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +></li> +<li><a class="link" href="https://github.com/facebookresearch/dinov2" target="_blank" rel="noopener" +>dinov2</a>,Meta AI新发布的全能视觉模型,模型支持:图像分类、分割、图像检索和深度估计。比较厉害的地方在于它是一个自监督模型,直接从图像中学习特征,而不依赖文本描述,即可训练计算机视觉模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-31-37.png" +width="828" +height="236" +loading="lazy" +class="gallery-image" +data-flex-grow="350" +data-flex-basis="842px" +></li> +<li><a class="link" href="https://minigpt-4.github.io/" target="_blank" rel="noopener" +>minigpt-4</a>,GPT4 的图像支持迟迟不开放,这个开源的MiniGPT4 却已经做到了类似的多模态效果,官方演示看起来非常棒。只用了四张A100训练了10小时,模型甚至只有13B。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-33-47.png" +width="1289" +height="1484" +loading="lazy" +class="gallery-image" +data-flex-grow="86" +data-flex-basis="208px" +></li> +<li><a class="link" href="https://github.com/linyiLYi/street-fighter-ai" target="_blank" rel="noopener" +>street-fighter-ai</a>,有个B站UP主在GPT的帮助下, 写了个 强化训练的AI模型,终于打败了街霸里的 AI,实现了儿时的梦想。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-36-53.png" +width="1080" +height="760" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="341px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 027 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/Wed, 12 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/<h1 id="机器文摘-第-027-期">机器文摘 第 027 期</h1> +<h2 id="长文">长文</h2> +<h3 id="搭建本地ai作图应用">搭建本地AI作图应用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-13-51-53.png" +width="695" +height="392" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="425px" +> +AI对话机器人火爆的同时,去年由Stable-Diffusion模型引爆的AI作图技术也没有放慢进化的脚步。</p> +<p>这里面的佼佼者<a class="link" href="https://zh.wikipedia.org/zh-cn/Midjourney" target="_blank" rel="noopener" +>Midjourney</a>已经发展成了强大的图像生成系统。可以轻松定制出照片级图像,其效果足以乱真。</p> +<p>不过目前在国内使用Midjourney还比较麻烦,即便能够访问,使用量也会受限制,能否自己搭建一个呢?</p> +<p>答案是肯定的。</p> +<p>跟去年刚问世的时候不同,现在基于Stable-Diffusion模型的生态也已经十分完备,很多开源软件、框架、插件围绕这个模型开发。</p> +<p>利用这些软件可以快速在本地计算机上构建一套属于自己的图像生成服务。</p> +<p>这里有一篇博客以<a class="link" href="https://www.freedidi.com/8474.html" target="_blank" rel="noopener" +>手把手的方式教你如何在最快速的时间搭建自己的图像生成服务</a>。</p> +<p>里面还列举了一些微调好的定制模型下载地址,合理的使用这些模型,你会发现打开新世界的大门。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-02-07.png" +width="733" +height="799" +loading="lazy" +class="gallery-image" +data-flex-grow="91" +data-flex-basis="220px" +></p> +<h3 id="搭建本地chatgpt应用">搭建本地chatGPT应用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-08-25.png" +width="779" +height="342" +loading="lazy" +class="gallery-image" +data-flex-grow="227" +data-flex-basis="546px" +> +本来不想再提chatGPT了,因为最近说的有些太多了。</p> +<p>但是无奈当前的开源生态对于语言模型是在是太追捧了,技术发展迅雷不及掩耳。</p> +<p>很快就出现了一批可以自己搭建的AI对话模型。</p> +<p>今天我挑两个我认为效果比较好的(且对中文支持比较好的)介绍一下。</p> +<p>注意,跟目前流行的基于OpenAI的接口进行套壳的程序不同。我说的是完全在本地搭建自己的服务。</p> +<p>第一个:<a class="link" href="https://chatglm.cn/blog" target="_blank" rel="noopener" +>ChatGLM-6B</a>,一个具有62亿参数的中英双语语言模型。通过使用与 ChatGLM(chatglm.cn)相同的技术,ChatGLM-6B 初具中文问答和对话功能,并支持在单张 2080Ti 上进行推理使用。</p> +<p>搭建过程比较简单,按照<a class="link" href="https://github.com/THUDM/ChatGLM-6B/blob/main/README.md" target="_blank" rel="noopener" +>README</a>文档中的步骤下载模型、执行脚本程序即可。</p> +<p>第二个:<a class="link" href="https://github.com/ymcui/Chinese-LLaMA-Alpaca" target="_blank" rel="noopener" +>中文 LLaMA &amp; Alpaca 大模型</a>,开源了中文LLaMA模型和经过指令精调的Alpaca大模型。这些模型在原版LLaMA的基础上扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。同时,在中文LLaMA的基础上,本项目使用了中文指令数据进行指令精调,显著提升了模型对指令的理解和执行能力。</p> +<p>搭建过程略微繁琐一些,需要通过自己的手段下载到开源的LLaMA原始模型(当然这对于技术人员来说不是问题)。</p> +<p>然后按照文档中的教程,执行模型合并、量化等脚本,最终通过开源程序LLaMA.cpp实现模型的本地运行。</p> +<h3 id="合作运行千亿参数级语言模型">合作运行千亿参数级语言模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-22-47.png" +width="492" +height="214" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +按照众人划桨开大船的思路,之前在带宽不足的年代诞生了BT下载。</p> +<p>如今,当我们的本地显卡无法应付超大AI模型时,有人开始用同样的思路解决问题。</p> +<p><a class="link" href="https://petals.ml/" target="_blank" rel="noopener" +>Petals</a>就是这么一个分布式模型微调、运行的框架,可以让你轻松在家运行超过千亿参数的大模型(当然是在线跟大家一起协作)。</p> +<p>其原理是大家分别加载模型的一小部分,然后与其他人一起通过协同的方式进行推理或者微调。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-27-18.png" +width="1742" +height="680" +loading="lazy" +class="gallery-image" +data-flex-grow="256" +data-flex-basis="614px" +></p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://learningprompt.wiki/" target="_blank" rel="noopener" +>Prompt Engineering 教程</a>,一份教你如何更好使好地使用 ChatGPT 和其他 AI 产品的免费教程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-43-13.png" +width="970" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="208" +data-flex-basis="499px" +></li> +<li><a class="link" href="https://prompthero.com/" target="_blank" rel="noopener" +>Prompthero</a>,跟聊天机器人、绘图机器人交流的prompt大全,与上面的教程不同,这是一个模板库大全,有创作灵感但是不知道该如何描述的时候可以去参考一下。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-45-46.png" +width="759" +height="381" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="478px" +></li> +<li><a class="link" href="https://civitai.com/" target="_blank" rel="noopener" +>Civitai</a>,与上面相同,不过专门用于图像生成,而且路子比较野,有大量的NSFW内容,要搭配Stable-Diffusion的各种微调模型使用。具体使用方法,可参考前文中介绍如何搭建本地图像生成服务的部分。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 028 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/Wed, 12 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/<h1 id="机器文摘-第-028-期">机器文摘 第 028 期</h1> +<h2 id="长文">长文</h2> +<h3 id="极简代码理解-gpt-模型结构">极简代码理解 GPT 模型结构</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-37-14.png" +width="679" +height="607" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="268px" +> +在<a class="link" href="https://twitter.com/karpathy/status/1645115622517542913" target="_blank" rel="noopener" +>twitter上有网友发布了一个简单的示例代码</a>,讲解了 GPT 语言模型的运行原理,为了方便大家理解,作者用了极简的模型设置,即语言文字只保留了1和0两个字符,上下文长度也仅为3,可以很直观地感受到训练过程是如何起作用的。</p> +<p>作者<a class="link" href="https://colab.research.google.com/drive/1SiF0KZJp75rUeetKOWqpsA8clmHP6jMg?usp=sharing" target="_blank" rel="noopener" +>提供了托管在colab的python源码</a>,可以在线体验。</p> +<h3 id="用开源语言模型训练自己的数字化身">用开源语言模型训练自己的数字化身</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-38-57.png" +width="623" +height="364" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +> +随着开源语言模型的训练和微调变得越来越简单,果然有人开始整活。</p> +<p>已经有网友<a class="link" href="https://greatdk.com/1908.html" target="_blank" rel="noopener" +>通过自己的微信聊天记录和博客文章训练出有自己风格的AI</a>。</p> +<p>作者使用目前对中文支持最好的开源模型 chatglm-6b 作为预训练模型(我上期介绍过它的部署和使用)。</p> +<p>经过一番折腾后终于训练出还算凑合的模型。</p> +<p>我们的世界离<a class="link" href="https://movie.douban.com/subject/11502153/episode/1/" target="_blank" rel="noopener" +>《黑镜》中的黑暗故事</a>越来越近了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-49-17.png" +width="1024" +height="576" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<h3 id="四十年工作经验程序员的职业建议">四十年工作经验程序员的职业建议</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-50-49.png" +width="700" +height="420" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +> +国外有位“老程序员”退休了,是真正的到了退休年龄的退休。</p> +<p>他从1981年入行,直到去年退休。这期间他做过各种开发,跳过槽也被辞退过,打过工也创过业。</p> +<p>这不容易。</p> +<p>所以,他决定<a class="link" href="https://thecodist.com/how-i-stayed-relevant-over-four-decades/" target="_blank" rel="noopener" +>以“一个退休程序员”的身份分享一些心得</a>。</p> +<p>摘抄部分要点如下:</p> +<blockquote> +<p>保持开阔的眼界:每天花时间获取真正的资讯,看到趋势,在事物流行起来之前发现他们。 +保持学习:不要拒绝和敌视新技术,要为你所用。 +要有自己的项目(做一些真正的事情):作为程序员不要浪费聪明才智和外部资源,要学着开始一个自己的项目。</p> +</blockquote> +<h3 id="进入心流的入口">进入心流的入口</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-08-18.png" +width="660" +height="379" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="417px" +> +进入心流(Flow)状态是一种很忘我的体验,也是知识工作者高效产出的必要条件。</p> +<p>有不少创作者都体会过那种全身心的投入并且忘记了时间的感觉。</p> +<p>一旦进入那种状态,很多问题能够很快得到解决,大脑飞速运转并且不会感觉到劳累。</p> +<p>这种状态最忌讳被打断,因为一旦打断,再进入就会比较困难。</p> +<p>这里有篇文章介绍了一些小技巧,可以让你在不得已中断心流之后,能够比较快速地恢复状态。</p> +<p>作者将这些技巧比喻为高速服务区进入主路之前的加速匝道,姑且称为<a class="link" href="https://census.dev/blog/an-on-ramp-to-flow" target="_blank" rel="noopener" +>进入心流的入口</a>。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://spline.design/" target="_blank" rel="noopener" +>Spline</a>,一个免费易用的 3D 设计工具,可实时协作,提供了丰富的物料库,可以基于它来快速创建有趣的 3D 场景,支持处理细腻动画交互,此外还可以导入本地模型和声音素材,支持到处多种输出格式包括WebGL、视频、链接等,很适合新手。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-19-26.png" +width="986" +height="536" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="441px" +></li> +<li><a class="link" href="https://codepen.io/ksenia-k/pen/poOMpzx" target="_blank" rel="noopener" +>Draw With Flowers!</a>,在threejs里用着色器语言编写的一个特效demo,可以随着鼠标移动绘制绚丽的花朵。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-19-52.png" +width="828" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/numbbbbb/read-react-source-code" target="_blank" rel="noopener" +>React 源码阅读</a>,一本开源电子书,通过阅读React的源码来详细理解前端框架的原理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-20-26.png" +width="591" +height="369" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="384px" +></li> +<li><a class="link" href="https://codeium.com/download" target="_blank" rel="noopener" +>Codeium</a>,Github copilot 的免费平替,提供vscode、vim、neovim等常见编辑器的插件,我试了一下,效果可以接受。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-21-52.png" +width="1024" +height="586" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="419px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 026 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/Wed, 29 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/<h1 id="机器文摘-第-026-期">机器文摘 第 026 期</h1> +<h2 id="长文">长文</h2> +<h3 id="通用人工智能要来了吗">通用人工智能要来了吗</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-09-37-08.png" +width="854" +height="476" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +> +AGI(通用人工智能),即用一个模型解决全部问题,而不是特定领域的问题(如语音识别、图像分类等)。</p> +<p>我在几年前读过一本叫做《人工智能,人类最后的发明》的书。</p> +<p>书里说AGI就是人类最后一个发明,因为有了它,别的一切都不需要了。</p> +<p>当时感觉距离通用的人工智能还很遥远,觉得作者有些危言耸听。</p> +<p>直到今年,chatGPT和GPT-4的发布,我才发觉AI的势头确实有些猛得出乎意料。</p> +<p><a class="link" href="https://orangeblog.notion.site/GPT-4-8fc50010291d47efb92cbbd668c8c893" target="_blank" rel="noopener" +>《 GPT-4 ,人类迈向AGI的第一步》</a>是一篇<a class="link" href="https://arxiv.org/pdf/2303.12712v1.pdf" target="_blank" rel="noopener" +>近期论文</a>的翻译,该论文由微软研究院发布,论证了当前的 GPT-4 模型已经初步具有 AGI 的苗头。</p> +<p>论文内容十分详实,看完很震撼。</p> +<p>摘录部分文字如下:</p> +<blockquote> +<blockquote> +<p><strong>对话</strong> +&gt; 马克:我不喜欢你昨天晚上对待杰克的方式 +&gt; 朱迪:你看到他在做什么了吗?他打了他哥哥的头! +&gt; 马克:这并不能成为你对他大喊大叫的理由 +&gt; 朱迪:你想让我怎么做?让他打他的弟弟,然后什么都不说? +&gt; 马克:不,我不同意 +&gt; 朱迪:那你为什么要为他辩护? +<strong>提问:马克的意图似乎是什么?</strong> +GPT4: 马克的意图似乎是要表达他对朱迪处理与杰克关系的方式的不满,并建议她可以更加冷静和尊重。 +ChatGPT:根据谈话内容,马克的意图似乎是为杰克的行为辩护,并表达他对朱迪对待杰克的不满。 +<strong>提问:朱迪如何看待汤姆的回应?</strong> +GPT4: 朱迪认为他的评论是对她的分析能力的攻击,也是对杰克的不当行为表示同情的表现。她的反应是防御性的和愤怒的,并质疑马克的动机。 +ChatGPT:如果没有更多的文字,我不可能准确判断朱迪是如何接受马克的评论的。然而,根据朱迪的回应,她似乎并不同意马克的观点,而且可能对他为杰克的行为辩护感到沮丧。</p> +</blockquote> +</blockquote> +<h3 id="用-gpt-4-帮你编写一个游戏">用 GPT-4 帮你编写一个游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-02-56.png" +width="717" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="510px" +> +我第一次见识到 ChaptGPT 的编程能力之后,就基本离不开这个工具了。</p> +<p>现在我几乎每天都在它的辅助下编写代码。</p> +<p>不过,这里有个老哥更过分。</p> +<p>他让 <a class="link" href="https://twitter-thread.com/t/1637592014446551040" target="_blank" rel="noopener" +>GPT-4 模型帮他做出了一个3D太空赛跑游戏</a>。</p> +<p>作者本身没有游戏编程经验也不懂Javascript,但是通过跟模型一点一点对话,反复将调试代码生成的错误信息反馈给模型,逐渐完成了一个完成度还挺高的游戏。</p> +<h3 id="搭建基于私域数据的chatgpt">搭建基于私域数据的ChatGPT</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-12-24.png" +width="776" +height="438" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="425px" +> +ChatGPT 超强的对话能力怎样应用到私有数据上?</p> +<p>比如说我希望做出一个基于 ChatGPT 模型的专属客服,要吃透我的产品信息。</p> +<p>官方提供的训练API和微调(fine tuning)指导相对复杂一些,对于AI模型的微调不熟悉的人员还不够友好。</p> +<p>这里有一篇“零基础”教程<a class="link" href="https://mp.weixin.qq.com/s/naiVMuXHAScRb_jSEJN3zg" target="_blank" rel="noopener" +>《搭建基于私域数据的ChatGPT》</a>,可以带你走一下流程,感受一下定制专属模型的步骤。</p> +<h3 id="ai令人焦虑">AI令人焦虑</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-21-37.png" +width="609" +height="859" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="170px" +> +这篇<a class="link" href="https://mp.weixin.qq.com/s/7H1FrwbQvsh0HD9z90L0wg" target="_blank" rel="noopener" +>《AI狂飙的时代,人还有价值吗?》</a>是一期语音播客的文字转译,因为内容比较精彩,所以也收录在这里了。</p> +<blockquote> +<p>我觉得取代不是一个好的词儿,因为取代是一个非常容易反驳的词儿。我可以说我仍然会干什么什么,AI干不了,所以它取代不了我。 +但正是这种字面上的抬杠,使得问题的本质被掩盖了,因为AI在人的生活中的渗透是一个逐渐的过程。 +百分之百地取代你可能仍然不会发生,可是它也不需要百分之百的取代掉你,只要50%的取代掉你的某些工作职能,AI就会对就业市场形成非常大的冲击。 +我有一个纽约的律师朋友,他是很早就开始用这个东西。 +他本身不是一个技术人员,他是一个标准的文科生,平常的用一个新软件都要紧张半天的那种人。 +但是他开始用这个之后,因为律师的工作是很大程度上是依赖于文本的,而文本是GPT的长项,所以他就开始用。 +之后,我就问他说,所以你真的开始辞退你的员工了吗?因为他自己是一个律所合伙人。 +他说我还没有真正开始辞退任何人,但是我确实打算今年暑假不用再招实习生了,因为给我省下的活完全可以让我腾出手来做一些事,以至于我可以省下招一个实习生的AD account。 +这就是一个真实的影响对不对? +它没有真正取代什么东西,但是它仍然冲击了一个真实的就业市场上的职位。</p> +<p>我觉得AI对我们社会的影响会以这种方式出现,它不会马上一下子让你这个人变得没有意义,但是它可以让三个人的活,两个人现在能干完,多出来那个人就没有存在的必要了,所以老板就可以把他开掉。 +它并不是百分之百取代的人的方式来逐渐进行的,而且这个事情是非常真实的。这也是为什么我觉得很多人对冲击仍然没有做好心理上和事实上的准备。 +其实有点令人忧虑的原因就是,如果你今天还用一种这东西,都是媒体的炒作来对待这个问题,你就很可能会在真正的影响你切身生活的冲击到来之前,没有做好对自己来说比较有用的帮助。</p> +</blockquote> +<p>读完这篇文章,我的感受是,没必要焦虑,不是AI没有威胁,而是焦虑也没用,蒸汽机车发明之后,超越马车就只剩下时间问题了。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://greasyfork.org/zh-CN/scripts/445751-unlimited-downloader" target="_blank" rel="noopener" +>无限制下载器,只要能播放就能下载</a>,能够帮助下载视频网站内容的浏览器插件很多,大部分都是通过嗅探播放地址来实现的下载,网站也会采用各种加密手段来进行阻止。但是这个油猴脚本采用了另一种思路。你网站防再死不能不让观众看吧?脚本几乎采用了类似录屏的手段来进行视频下载。对于一些实在想要下载的内容,可以考虑试试这个插件。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-34-53.png" +width="640" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="384px" +></li> +<li><a class="link" href="https://github.com/cocktailpeanut/dalai" target="_blank" rel="noopener" +>帮你本地运行 LLaMA 模型</a>,只需一行命令就可以让你在本地运行 <a class="link" href="https://github.com/ggerganov/llama.cpp" target="_blank" rel="noopener" +>LLaMA</a> 模型,轻松感受在本地单机上运行大规模语言模型的魅力。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-40-09.png" +width="1920" +height="1080" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/lxe/simple-llama-finetuner" target="_blank" rel="noopener" +>微调 LLaMa 模型的工具</a>,既然都能在本地运行了,那就再给力一些,这个工具可以让你很方便地使用自己的数据训练 LLaMA 模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-42-04.png" +width="1013" +height="898" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></li> +<li><a class="link" href="https://github.com/Haxxnet/Compose-Examples" target="_blank" rel="noopener" +>Docker Compose 容器组合最佳实践</a>,Docker有多好用不用再说了吧,这里有一堆使用Docker Compose编排容器的模板,收录了很多十分有用的容器镜像组合,可方便快速的搭建各种业务(如:单点登录、VPN、媒体管理、文件共享、博客、维基、社交网站、项目管理等)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-46-53.png" +width="802" +height="445" +loading="lazy" +class="gallery-image" +data-flex-grow="180" +data-flex-basis="432px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 025 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/Wed, 22 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/<h1 id="机器文摘-第-025-期">机器文摘 第 025 期</h1> +<h2 id="长文">长文</h2> +<h3 id="252个字节实现播放音乐和动画">252个字节实现播放音乐和动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-25-42.png" +width="915" +height="478" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +> +这里有个网页介绍了一个demo作者使用一段JavaScript代码实现了一个<a class="link" href="http://www.p01.org/256b_tetris_theme/" target="_blank" rel="noopener" +>一边播放俄罗斯方块背景音乐一边播放字符动画的网页</a>,原理是利用HTML5的AudioContext对象进行声音合成,通过定时器触发基于当前时间t值的不同频率,实现音乐播放。具体代码如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="cl"><span class="o">&lt;</span><span class="nx">body</span> <span class="nx">onclick</span><span class="o">=</span><span class="s2">&#34;with(new AudioContext)with(o=createOscillator())connect(destination),start(setInterval(v=&gt;innerHTML=&#39;TETЯIS&amp;#&#39;+(9624|(o.frequency.value=`RR&gt;AIIA&gt;777${d=&#39;ARRIA&gt;&gt;&gt;AIIRRAA7777&#39;}IIIWnnbWRRR${d}`.charCodeAt(++t%58)*4)%7)+&#39;P01&#39;,t=232))&#34;</span><span class="o">&gt;</span><span class="nx">click</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h3 id="诺基亚发布的可维修手机">诺基亚发布的“可维修”手机</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-35-52.png" +width="614" +height="369" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="399px" +> +说到诺基亚,用过的朋友第一个映入脑海的词就是“砸核桃”。</p> +<p>那是iPhone还没发布的非智能手机年代。</p> +<p>手机可更换电池和外壳在那时是一个标准设计,谁要是不支持这些都不好意思跟人打招呼。</p> +<p>那时我经常把我的诺基亚掉在地上摔得七零八落,然后淡定地捡起来像电影里特工拼装自己的手枪那样,一个个把零件组装起来,形成“一把”手机。</p> +<p>或者等手机快要没电的时候,像换弹匣那样给手机换一块电池,立马满血复活。</p> +<p>这样的日子自从iPhone发布之后就再也没有了。</p> +<p><a class="link" href="https://www.theguardian.com/technology/2023/feb/25/nokia-launches-diy-repairable-budget-android-phone" target="_blank" rel="noopener" +>诺基亚近期发布了一款手机</a>,再次让我想起我那掉地上摔开几瓣的手机。这款手机号称具有良好的“可维修”性,普通用户也可一个人在家轻松拆卸。可以自行更换包括电池、屏幕、充电端口等零件。</p> +<h3 id="不要重复自己是编程的好原则吗">不要重复自己是编程的好原则吗</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-50-45.png" +width="650" +height="346" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +> +不要重复自己,永远不要从头开始重写代码!</p> +<p>这是很多程序员收到的忠告。</p> +<p>然而它是绝对正确的吗?</p> +<p>这里有篇文章<a class="link" href="https://programmingisterrible.com/post/176657481103/repeat-yourself-do-more-than-one-thing-and" target="_blank" rel="noopener" +>《重复自己,重写一切》</a>,作者在文章中探讨了编程中的一些习惯,他认为这些习惯可以使代码变得更难理解、更难维护,并可能导致代码的冗长和不必要的复杂性。文章提到了重写代码可以给程序带来更好的抽象和可维护性,所以建议定期通过重新写代码的方式重构你的程序。</p> +<p>说实话,我不知道作者是怎样看待所谓“屎山”代码的,也许当他面对有些代码时,他的观点也会变为:“能跑的代码,就尽量别动它了”。</p> +<h3 id="慢下来">慢下来</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-59-28.png" +width="587" +height="205" +loading="lazy" +class="gallery-image" +data-flex-grow="286" +data-flex-basis="687px" +> +这篇文章的题目是<a class="link" href="https://sive.rs/slow" target="_blank" rel="noopener" +>“慢下来”</a>,作者是Derek Sivers,一位创业者、作家和音乐家。在这篇文章中,他分享了自己对于“慢下来”这个主题的一些思考和感悟。</p> +<p>虽然是个急性子,但是我很认同文章里的观点。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.macpierce.com/the-camera-shy-hoodie" target="_blank" rel="noopener" +>反跟踪识别的套件</a>,如果你觉得被公共场所的摄像头拍摄和记录或者识别侵犯了你的隐私,这里有一套开源的穿戴套件可以考虑。它通过在身上穿戴可以发射红外线的LED设备,使得摄像头画面过曝。以获得保护隐私的效果。不过仅用于研究,不知道是否符合有些国家的法律法规。网站提供了配件清单和详细的装配说明(pdf)供下载。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-05-16.png" +width="1203" +height="583" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="495px" +></li> +<li><a class="link" href="https://whatdoesthiscodedo.com/" target="_blank" rel="noopener" +>AI帮你解释一段代码</a>,有人使用openai的开发接口提供了一个专门帮人们解释代码执行的工具,输入代码,输出解释。并提供vscode的插件。我把文章开头那段播放音乐的Javascript代码发给他让他解释,效果如下图: +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-09-51.png" +width="625" +height="740" +loading="lazy" +class="gallery-image" +data-flex-grow="84" +data-flex-basis="202px" +></li> +<li><a class="link" href="https://xenova.github.io/transformers.js/" target="_blank" rel="noopener" +>在网页中运行GPT模型</a>,一个可以在浏览器中执行Transformer模型的开源程序,可以执行轻量的模型,实现如翻译、语音转文字、图像转文字等任务。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-12-45.png" +width="1239" +height="519" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="572px" +></li> +<li><a class="link" href="https://aitxt.io" target="_blank" rel="noopener" +>AI生成工具箱</a>,近期,基于chatGPT模型的应用大爆发,这里有一个整理好的工具箱,可以使用ai做很多内容生成工作,包括帮你编写周报、润色文字、写道歉信、写外卖好评等,效果还不错。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-15-00.png" +width="1033" +height="530" +loading="lazy" +class="gallery-image" +data-flex-grow="194" +data-flex-basis="467px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 024 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/Wed, 15 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/<h1 id="机器文摘-第-024-期">机器文摘 第 024 期</h1> +<h2 id="长文">长文</h2> +<h3 id="电池充一次可以用两年的笔记本电脑">电池充一次可以用两年的“笔记本”电脑</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-18-01.png" +width="830" +height="467" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +挪威软件开发商安德烈亚斯·埃里克森(Andreas Eriksen)组装了一款笔记本电脑(或者说便携膝上型电脑?)。</p> +<p>它拥有“以年为单位的电池寿命”,并且使用用Lisp编程系统界面,产品名为:<a class="link" href="https://www.hackster.io/news/andreas-eriksen-s-potatop-is-a-lisp-powered-laptop-with-a-battery-life-measured-in-years-2f5d79653f24" target="_blank" rel="noopener" +>PotatoP</a>。</p> +<p>CPU好像是个ARM架构的低功耗单核处理器,最高频率96MHz。</p> +<p>支持蓝牙5.0。</p> +<p>运行的系统为PotatOS,一个基于<a class="link" href="http://www.ulisp.com/" target="_blank" rel="noopener" +>uLisp</a>(一个专门为微控制器设计的Lisp)移植的专用系统。</p> +<p>使用的4.4英寸显示屏采用介于LCD和墨水屏之间的技术,省电。</p> +<p>再加上机身上还带有太阳能电池,据说如果环境光充足的话,可以连续运行两年。</p> +<h3 id="详解-amd-为-steam-deck-开发的-apu">详解 AMD 为 Steam Deck 开发的 APU</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-32-20.png" +width="671" +height="272" +loading="lazy" +class="gallery-image" +data-flex-grow="246" +data-flex-basis="592px" +> +Steam Deck 无疑是一款革命性的掌机。</p> +<p>如果不是价格在国内被炒的离谱,我定会入手一台,也许再观望一下等待第二代或者三代产品更好。</p> +<p>这款掌机使得在便携设备上游玩3A大作不再是幻想。</p> +<p>取得这样的表现,除了得益于V厂魔改的Linux系统之外,还离不开这块由AMD定制的、代号“梵高”的 APU。</p> +<p>这篇<a class="link" href="https://chipsandcheese.com/2023/03/05/van-gogh-amds-steam-deck-apu/" target="_blank" rel="noopener" +>《“梵高”AMD的Steam Deck APU》</a>详细介绍了这块APU的各种技术细节,解释了为什么Steam Deck可以做到低功耗的同时还拥有相当给力的图形性能。</p> +<h3 id="用磁盘阵列raid确保数据安全靠谱吗">用磁盘阵列(RAID)确保数据安全靠谱吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-45-46.png" +width="477" +height="250" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="457px" +> +再谈谈 NAS 的事情(中年技术男的三大爱好之一)。</p> +<p>像我这样的人,对于 RAID 磁盘阵列总是抱有美好的幻想。我们认为,只要将数据存放在经过合理规划的磁盘阵列中(例如 RAID 5),我们就可以高枕无忧,确保数据永远不会丢失。然而,实际上,磁盘阵列并不是备份数据的最佳选择,最佳的数据安全策略是异地多份存储。</p> +<p>尽管 RAID 5 宣称随便损坏一块硬盘也不要紧,只需更换一块正常盘即可,但这种理想状态可能不太容易实现,中间随时可能会出现其他状况导致数据永久丢失。</p> +<p>一篇名为<a class="link" href="https://www.ucmadscientist.com/almost-lost-it-all-again/" target="_blank" rel="noopener" +>《差点儿就又全没了》</a>的博文,讲述了作者在使用 NAS 磁盘阵列时经历了一次惊险刺激的数据拯救过程。希望这篇文章能够给计划使用类似方式保存数据的朋友们一个平常心态。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://pubby.games/nesfab.html" target="_blank" rel="noopener" +>NESFab</a>,一个专为开发任天堂8位游戏机(NES、FC)设计的编程语言。具有高性能、易于装载资源、自动内存地址切换等特性,作者还在主页提供了一个使用NESFab开发游戏的教程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-10-50.png" +width="490" +height="169" +loading="lazy" +class="gallery-image" +data-flex-grow="289" +data-flex-basis="695px" +></li> +<li><a class="link" href="https://github.com/AstroNvim/AstroNvim" target="_blank" rel="noopener" +>AstroNvim</a>,一套即开即用的Nvim配置文件,主打界面美观,集成了文件浏览、代码补全、语法高亮、模糊查询、可视化调试等常用插件配置。对于新手和懒得折腾的人来说,可以尝试。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-13-25.png" +width="814" +height="434" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></li> +<li><a class="link" href="https://github.com/pynecone-io/pynecone" target="_blank" rel="noopener" +>pynecone</a>,一个用python开发的web应用框架,特点是使用python语言完成所有任务,包括前端和后端,可以帮助那些对于前端开发不太擅长的人更方便地制作web应用程序。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-16-17.png" +width="727" +height="647" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="269px" +></li> +<li><a class="link" href="https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming" target="_blank" rel="noopener" +>函数式编程入门</a>,一篇介绍函数式编程的文章,介绍了函数式编程的基本概念和一些重要的函数式编程概念,并使用Javascript演示了如何使用这些概念进行函数式编程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-18-09.png" +width="450" +height="220" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="490px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 023 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/Wed, 08 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/<h1 id="机器文摘-第-023-期">机器文摘 第 023 期</h1> +<h2 id="长文">长文</h2> +<h3 id="视频信号可以被窃听吗">视频信号可以被窃听吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-10-45.png" +width="533" +height="234" +loading="lazy" +class="gallery-image" +data-flex-grow="227" +data-flex-basis="546px" +> +我之前听到过一个传说。</p> +<p>使用高灵敏度的天线,再加上一些奇妙的设备。</p> +<p>可以窃听(窃视?)到附近(方圆数百米)范围之内的显示器显示的内容。</p> +<p>这个传说流传的时候,还是CRT显示器的时代,当时的视频接口主要是VGA,采用模拟信号进行传输。</p> +<p>如果显示器或者视频线缆所作的屏蔽不够充分的话,难免会有信号泄露。</p> +<p>而VGA信号又没有任何加密,被别有用心的人收看是有一定的可能的。</p> +<p>时间发展到今天,视频接口早已升级,我以为除非不小心无线投屏到了邻居家,否则就不会有视频内容泄露的情况。</p> +<p>然而,<a class="link" href="https://www.windytan.com/2023/02/using-hdmi-radio-interference-for-high.html" target="_blank" rel="noopener" +>今天要说的这篇文章</a>则证实了上述传说的可能。</p> +<p>不过,比起传说中的窃听,作者走的更远一些。</p> +<p>起因是作者在家里摆弄无线电的时候,发现了一个信号干扰源,最后发现来自他的一个树莓派设备。</p> +<p>于是经过一番操作,作者不但成功通过无线接收的方式将视频信号显示了出来。</p> +<p>还利用这种无线信号的干扰(或泄露?)实现了叠加数据的传输。</p> +<h3 id="怎样用密码保护一个静态页面">怎样用密码保护一个静态页面?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-34-20.png" +width="903" +height="429" +loading="lazy" +class="gallery-image" +data-flex-grow="210" +data-flex-basis="505px" +> +说到网站上的数据权限保护,一般我们会需要后端程序配合。</p> +<p>比如使用账号系统,给用户角色分配不同的权限,使其访问后端接口时获取不同的数据。</p> +<p>如果没有后台程序,只有静态页面会怎样?</p> +<p>这儿有个开源工具,<a class="link" href="https://robinmoisson.github.io/staticrypt/" target="_blank" rel="noopener" +>可以帮你生成带有密码保护的静态HTML页面</a>。</p> +<p>具体使用方法和原理也很简单。</p> +<p>输入你想设置的密码和你的HTML页面原始代码,这个工具可以使用AES-256加密算法对其进行加密。</p> +<p>然后在浏览器加载时,页面自动使用一个js库实现自解密。</p> +<p>这个方法用于临时保护一些静态的内容还是挺有效的,而且很方便。</p> +<h3 id="写代码越干净越好吗">写代码越“干净”越好吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-43-47.png" +width="713" +height="344" +loading="lazy" +class="gallery-image" +data-flex-grow="207" +data-flex-basis="497px" +> +有不少人宣称自己有代码“洁癖”。</p> +<p>对于设计模式和面向对象有着非常深的执念(或者函数式编程也是)。</p> +<p>市面上也充斥着很多“之美”、“之道”、“之禅”之类的书籍,强调代码要给人读、整洁干净。</p> +<p>我并不反对上述观点,甚至自己也有一点这样的“洁癖”,只是有时内心会有一丝怀疑的时候,觉得如果过于追求某些东西可能会偏离了解决问题的根本目标。</p> +<p>这篇<a class="link" href="https://www.computerenhance.com/p/clean-code-horrible-performance" target="_blank" rel="noopener" +>《“干净”的代码,糟糕的性能》</a>,帮我吐槽了一些事情。</p> +<p>但作者在文中所举的例子稍微有些牵强,不必过于纠结。</p> +<h3 id="不知道怎么练习编程怎么办">不知道怎么练习编程怎么办</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-58-53.png" +width="469" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="358px" +> +经常有人困惑在学习了一门新的编程语言之后,不知该做些什么。</p> +<p>就像是掌握了词语却写不出好的小说,掌握了规则也下不好象棋。</p> +<p>我们从小受到的教育方式导致了,在学习技能这一块,缺失实践的动力和方法。</p> +<p>这篇<a class="link" href="https://prog21.dadgum.com/80.html" target="_blank" rel="noopener" +>给无目标的新手程序的一些建议</a>,虽然内容不多,但是可以看出作者也是个老油条了。</p> +<p>给出的一些提示都很实在,对于技能练习方面,提的都是我希望我能遵从的。</p> +<p>比如:</p> +<blockquote> +<p>用技能解决你实际生活中的问题。 +做一些你真正会用到的东西。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.freecodecamp.org/chinese/news/typescript-for-react-developers/" target="_blank" rel="noopener" +>写给 React 开发者的 TypeScript 指南</a>,针对React程序员的TypeScript的学习资料,解答了我一部分为什么要用TS的问题。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-01-19.png" +width="698" +height="375" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="446px" +></li> +<li><a class="link" href="https://method.ac/" target="_blank" rel="noopener" +>Method of Action</a>,一些免费的工具和在线小游戏(颜色搭配、贝塞尔曲线等),可以帮助你学习和掌握设计理念和工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-02-12.png" +width="605" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="131" +data-flex-basis="314px" +></li> +<li><a class="link" href="https://archivebox.io/" target="_blank" rel="noopener" +>Archivebox</a>,一套开源的互联网内容保存方案,可以将你喜欢的页面下载下来,并自动爬取相关链接、图片等内容,类似于互联网档案馆的https://archive.org,不过可以自己搭建。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-06-33.png" +width="686" +height="285" +loading="lazy" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="577px" +></li> +<li><a class="link" href="https://ohiostate.pressbooks.pub/graphicshistory/front-matter/cover/" target="_blank" rel="noopener" +>History of Computer Graphics and Animation</a>,一本讲解计算机图形和动画发展历程的电子书,里面记录了计算机图形学相关的许多参考资料,曾用于俄亥俄州立大学的授课。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-08-29.png" +width="676" +height="711" +loading="lazy" +class="gallery-image" +data-flex-grow="95" +data-flex-basis="228px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 022 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/Wed, 01 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/<h1 id="机器文摘-第-022-期">机器文摘 第 022 期</h1> +<h2 id="长文">长文</h2> +<h3 id="自制家庭服务器">自制家庭服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-10-51-39.png" +width="668" +height="367" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="436px" +> +人们常说,中年技术男的最终归宿除了钓鱼和盘核桃之外,还有一项就是折腾家里的服务器,这些服务器形态各异,但是作用都是殊途同归:NAS、软路由、虚拟化、Docker容器。</p> +<p>怎样变着花样搭建家庭服务器几乎是 V 站的月经甚至日经话题。</p> +<p>这里有个国外的老哥,决定使用 ARM64 架构自己“装配”一个,是那种需要焊接的“装配”。</p> +<p>有兴趣的可以翻阅一下这篇<a class="link" href="https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html" target="_blank" rel="noopener" +>《构建 ARM64 家庭服务器》</a>。</p> +<p>文章介绍了如何用一种较为困难的方式构建一个 ARM64 架构的家用服务器。</p> +<p>作者使用了一块名为 ROCKPro64 的开发板,并详细介绍了构建过程中遇到的问题以及如何解决这些问题。</p> +<p>文章中包含了安装基础操作系统、配置网络连接、设置磁盘阵列和安装各种软件的详细步骤和指导,涵盖了从硬件到软件的多个方面。</p> +<p>在构建过程中,作者提到了一些常见的问题和解决方法,例如如何处理不同操作系统的差异,如何在开发板上设置固件,以及如何解决硬件不兼容问题。</p> +<p>总之,这篇文章是一份详细的指南,可以帮助有兴趣构建自己的家用服务器的读者了解基础知识,克服可能遇到的问题,并学习如何从头开始构建一个高效、安全的服务器。</p> +<blockquote> +<p>上面这段是让 chatGPT 帮我写的 :)</p> +</blockquote> +<h3 id="用rust写一个大小仅有2k的极简fps游戏">用Rust写一个大小仅有2K的极简FPS游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-11-06-53.png" +width="480" +height="258" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="446px" +> +极简渲染器的编写教程网上有很多,但大都浅尝辄止,以静态渲染为主。</p> +<p><a class="link" href="https://grantshandy.github.io/posts/raycasting/" target="_blank" rel="noopener" +>这篇文章</a>则从制作一个第一人称射击游戏的视角出发,讲解了怎样使用光线投射技术实现最基本的三维空间渲染、光照、阴影等效果。</p> +<p>作者使用 Rust 语言基于 wasm 技术编写了一个在网页中运行的示例程序,该程序非常小巧,但是也充分展现了如何使用光线投射算法来实现 3D 渲染技术仲的一些基本概念,比如:墙体贴图、视角控制等。</p> +<p>是我看到的教程里比较系统的一个,适合作为爱好者去研究。</p> +<h3 id="玩具-cpu-模拟器">玩具 CPU 模拟器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-24-45.png" +width="640" +height="480" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +国外一个大学老师觉得他的计算机组成原理课程有些枯燥,于是他<a class="link" href="https://jimhall.itch.io/toy-cpu" target="_blank" rel="noopener" +>动手撸了一个 CPU 模拟器出来</a>,以帮助学生们更好的理解计算机内部运作原理。</p> +<p>作者在文章里介绍了基本的原理,以及模拟器的各个组件,适合学习底层原理初入门的学生。</p> +<p>另外这个模拟器也基于 MIT 协议进行了开源,文章中附有开源仓库的地址和编译好的可执行文件下载连接。</p> +<p>需要注意的是该程序运行环境为DOS,现在要想体验的话,需要先安装 <a class="link" href="https://www.dosbox.com/download.php?main=1" target="_blank" rel="noopener" +>DosBOX</a> 这个模拟器。</p> +<h3 id="不用任何构建系统编写前端代码">不用任何构建系统编写前端代码</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-35-29.png" +width="632" +height="224" +loading="lazy" +class="gallery-image" +data-flex-grow="282" +data-flex-basis="677px" +> +比起十几年前,前端开发工程现在已经变得十分复杂。</p> +<p>有次我想写个简单的页面程序,但是却花费了一上午的时间陷入对框架和构建系统的选择上。</p> +<p>后来不得不放弃,改用记事本随便用原生Javascript完成了功能。</p> +<p><a class="link" href="https://jvns.ca/blog/2023/02/16/writing-javascript-without-a-build-system/" target="_blank" rel="noopener" +>这篇文章</a>的作者跟我有同样的感受。</p> +<p>作者认为,对于一些简单的项目来说,使用构建系统可能是不必要的。</p> +<p>因为构建系统会增加开发和维护的复杂性,而且可能会导致一些性能问题。</p> +<p>文章演示了作者如何使用原生的Javascript和浏览器的开发者工具来实现一些常见的构建系统功能。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/CyC2018/CS-Notes" target="_blank" rel="noopener" +>计算机知识笔记</a>,一个计算机科学知识笔记仓库,包括计算机基础知识、编程语言和算法、开发工具、面试笔试题目等等,是一个非常实用的笔记库。目前在 Github 上有超过 162k 个 star 。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-47-03.png" +width="344" +height="602" +loading="lazy" +class="gallery-image" +data-flex-grow="57" +data-flex-basis="137px" +></li> +<li><a class="link" href="https://www.hugi.scene.org/online/hugi31/hugi%2031%20-%20index%20coding%20corner.htm" target="_blank" rel="noopener" +>Creating Demos</a>,这套教程是 <a class="link" href="https://en.wikipedia.org/wiki/Hugi" target="_blank" rel="noopener" +>Hugi 杂志</a>在2001年第31期发布的一系列编程文章,主题是“Demo程序”的制作,是我目前在网络上见到的比较完整和耐心的一套讲解 Demoscene 如何制作的教程。虽然有些技术是老旧的,但是思想一直是不变的,能够学到很多平时很难了解到的东西,现在很少有人愿意分享这些了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-52-29.png" +width="543" +height="367" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="355px" +></li> +<li><a class="link" href="https://github.com/iawia002/lux" target="_blank" rel="noopener" +>网络视频下载器</a>,一个 go 语言编写的网络音视频资源下载工具,类似 youtube-dl,但是支持的网站要更多一些。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-54-53.png" +width="870" +height="666" +loading="lazy" +class="gallery-image" +data-flex-grow="130" +data-flex-basis="313px" +></li> +<li><a class="link" href="https://www.ambient.run/" target="_blank" rel="noopener" +>ambient</a>,Ambient是一个使用 WebAssembly、Rust 和 WebGPU 技术构建的高性能多人游戏和3D应用的开源引擎。特点是针对构建多人游戏开发进行优化支持。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-14-03-29.png" +width="981" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="622px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 021 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/Wed, 22 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/<h1 id="机器文摘-第-021-期">机器文摘 第 021 期</h1> +<h2 id="长文">长文</h2> +<h3 id="chatgpt-原理通俗讲解">chatGPT 原理通俗讲解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-14-57-11.png" +width="1240" +height="410" +loading="lazy" +class="gallery-image" +data-flex-grow="302" +data-flex-basis="725px" +> +可能是有人炒作的缘故,chatGPT 热度一直不降,连街边买菜的大妈都在讨论这个“人工智能机器人”。</p> +<p>可能是它输出语言的流畅度实在是太接近真实的人类了,用惯了之前那种“智能助理”的人很容易感到震惊。</p> +<p>然而其背后的原理并非像想象的那么复杂,甚至是大力出奇迹的又一个经典样例。</p> +<p>最近关于它的文章也是铺天盖地,各种分析、叫好,很少有冷静下来探讨其背后机理的。</p> +<p>我翻看了几篇之后,发现唯有这篇<a class="link" href="https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/" target="_blank" rel="noopener" +>《chatGPT在做什么以及它为什么好使》</a> 比较优秀。读起来比较平和,没有压力。</p> +<p>文章揭示了即使像chatGPT这样的大型语言模型也是一个单词一个单词慢慢往出崩的,并尝试说清楚这么流畅的语言是基于什么来预测后续单词的概率。</p> +<h3 id="怎样利用多gpu训练真正的大型模型">怎样利用多GPU训练真正的大型模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-13-37.png" +width="920" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="478px" +> +前面提到的 chatGPT 模型,体量非常大,据说训练一次就要耗费上千万美元。</p> +<p>作为普通开发者我们是不敢奢望自己上手训练一番。</p> +<p>不过,这里有一篇文章可以让我了解像这样的<a class="link" href="https://lilianweng.github.io/posts/2021-09-25-train-large/" target="_blank" rel="noopener" +>大模型是如何进行并行训练的</a>。</p> +<p>另外还有个开源的项目,号称可以<a class="link" href="https://github.com/hpcaitech/ColossalAI/blob/main/README-zh-Hans.md" target="_blank" rel="noopener" +>在较少资源的基础设施上进行 GPT 模型训练</a>,有兴趣的可以试试。</p> +<h3 id="怎样搭建一个电子爱好者工作间">怎样搭建一个电子爱好者工作间</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-28-10.png" +width="716" +height="439" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="391px" +> +拥有一个电子产品工作室一直是我的一个梦想。</p> +<p>电烙铁、稳压电源、万用表,是我能想到的最基本的设备。</p> +<p>如果还想更完美,可以借鉴这篇文章所介绍的思路,<a class="link" href="https://lcamtuf.substack.com/p/setting-up-an-electronics-workshop" target="_blank" rel="noopener" +>搭建一个电子爱好者工作间</a>。</p> +<h3 id="运气计算公式">运气计算公式</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-37-36.png" +width="809" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="141" +data-flex-basis="340px" +> +看到一个关于运气的文章<a class="link" href="https://www.swyx.io/create-luck" target="_blank" rel="noopener" +>《如何获得好运气》</a>,觉得里面提到的“怎样使得随机的运气变得让好运更加倾向于你”的说法比较有意思。</p> +<p>于是就收录一下。</p> +<p>文章里探讨的问题,很容易让我联想到关于“下雨的时候是飞速跑动淋雨多还是慢慢走淋雨多”的问题。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://academy.cs.cmu.edu/" target="_blank" rel="noopener" +>卡耐基梅隆大学计算机科学在线教程</a>,CMU CS Academy 是卡内基梅隆大学计算机科学学院 (SCS) 的一个项目,其目标是开发一种新颖的、世界级的、在线的、完全免费的交互式高中计算机科学课程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-45-42.png" +width="767" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="472px" +></li> +<li><a class="link" href="https://www.handsome-css.com/" target="_blank" rel="noopener" +>纯CSS实现的超漂亮UI组件收集</a>,网站收集了超多 UI 组件,基于 纯 CSS 实现,采用 MIT 开源协议发布,可以自由使用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-47-30.png" +width="863" +height="349" +loading="lazy" +class="gallery-image" +data-flex-grow="247" +data-flex-basis="593px" +></li> +<li><a class="link" href="https://cn.sli.dev/" target="_blank" rel="noopener" +>为开发者打造的演示文稿工具</a>,Slidev 旨在为开发者提供灵活性和交互性,通过使用他们已经熟悉的工具和技术,使他们的演示文稿更加有趣、更具表现力和吸引力。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-50-17.png" +width="652" +height="251" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="623px" +></li> +<li><a class="link" href="https://www.stableattribution.com/" target="_blank" rel="noopener" +>根据ai做的图倒推出用于训练模型的原始图</a>,这个网站比较有意思,前一段时间比较火的根据文字生成图片的 AI ,这里可以将根据 AI 生成的图片反推出它当时样本训练的原始图。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-56-55.png" +width="1696" +height="398" +loading="lazy" +class="gallery-image" +data-flex-grow="426" +data-flex-basis="1022px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 020 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/Wed, 15 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/<h1 id="机器文摘-第-020-期">机器文摘 第 020 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样获得非凡成就">怎样获得非凡成就</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-09-57-43.png" +width="749" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="469px" +> +多年来,我对成功学嗤之以鼻。</p> +<p>但也对有些人的成功给予应有的尊重。</p> +<p>我所欣赏的成功人士有一种特殊气质,我说不上来具体是什么特点,有点儿像反叛精神,又有点儿对手工技术的狂热。</p> +<p>这些人里对我影响比较大的是《黑客与画家》的作者 保罗·格雷厄姆(<a class="link" href="https://zh.wikipedia.org/zh-hans/%E4%BF%9D%E7%BD%97%C2%B7%E6%A0%BC%E9%9B%B7%E5%8E%84%E5%A7%86" target="_blank" rel="noopener" +>Paul Graham</a>)。</p> +<p>他创建了著名的 <a class="link" href="https://zh.wikipedia.org/zh-hans/Y_Combinator" target="_blank" rel="noopener" +>YC 孵化器公司</a>,也打造了很多成功的产品。</p> +<p>今天推荐的这篇文章<a class="link" href="https://blog.samaltman.com/how-to-be-successful" target="_blank" rel="noopener" +>《How To Be Successful》</a>的作者,是保罗·格雷厄姆非常推崇的一位创业者。</p> +<p>文章分享的观点乍看有成功学的影子,但读完却能引人思考。</p> +<p>这里是中文翻译版:<a class="link" href="https://mp.weixin.qq.com/s/pQYztNmmQ6W4fRxPIEsWYQ" target="_blank" rel="noopener" +>《观察成千上万创业者后,关于如何获得非凡成就的13条思考》</a></p> +<p>我觉得这些观点至少可以给长期埋头技术工作的人们一些启发,我稍微列举几条如下:</p> +<blockquote> +<ul> +<li>这个世界很少人能做到将眼光放长远,而那些有长远眼光的人会得到市场的丰厚回报。</li> +<li>把时间花在做正确的事上,比花长时间进行工作更重要。</li> +<li>跟着你的好奇心走。因为对你来说兴奋的事情对其他人来说也同样兴奋。</li> +<li>成为内驱型的人(即:自己去做一件事的原因来自于自己,而不是外部的力量或别人的期望)。</li> +</ul> +</blockquote> +<h3 id="怎样在客厅建立自己的私人影院">怎样在客厅建立自己的私人影院</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-21-45.png" +width="841" +height="396" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="509px" +> +智能电视或者智能盒子已成为现在客厅的标配。</p> +<p>如何充分发挥它们的作用,早已是技术爱好者的孜孜不倦探索的课题。</p> +<p>前些天我偶然收到一份公开的云盘链接,使用开源的 <a class="link" href="https://github.com/alist-org/alist" target="_blank" rel="noopener" +>AList</a>(一个支持网盘存储的文件列表程序,可以通过多种协议将网盘映射为本地访问的存储路径) 进行构建。里面整理了大量的影视资源,有不少是高质量、高码率的蓝光原盘文件。</p> +<p>这就激发了我的好奇心。</p> +<p>由于自己一直按耐住折腾 NAS 的念头,这些年一直没有收集电影。</p> +<p>但现在既然有在线的资源,不妨尝试一下。</p> +<p>于是我找到了这篇<a class="link" href="https://wp.gxnas.com/12278.html" target="_blank" rel="noopener" +>《利用KODI和云盘打造4K高清私人云影院》</a>(仅作研究,观影和收藏还需支持正版)。</p> +<p>按照文章的指导,成功给电视安装了 KODI(一个媒体中心 App),并进行了配置,可以非常方便地浏览、观看互联网云盘上的高清电影。</p> +<p>比起云盘官方所出品的各种 App 在体验上更加灵活、完美。</p> +<h3 id="噪声在计算机图形学里的作用">“噪声”在计算机图形学里的作用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-40-28.png" +width="671" +height="303" +loading="lazy" +class="gallery-image" +data-flex-grow="221" +data-flex-basis="531px" +> +想要计算机产生的图形更加的接近自然,生成各式各样的噪声是必不可少的算法。</p> +<p>之前在读<a class="link" href="https://natureofcode.com/" target="_blank" rel="noopener" +>《The Nature of Code》</a>(中文译作:代码本色)一书的时候,作者花了大量篇幅讲解关于噪声、随机等对于模拟自然界中各种现象的重要作用。</p> +<p>或许在噪声里就隐藏着大自然最深处的秘密。</p> +<p>这篇<a class="link" href="https://zhuanlan.zhihu.com/p/68507311" target="_blank" rel="noopener" +>WebGL进阶——走进图形噪声</a>可以让你领略一些图形噪声的神奇。</p> +<p>很多场景都给出了 WebGL 实现的源码,可以边学边练。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://threegn.app/" target="_blank" rel="noopener" +>ThreeGN</a>,一个基于网页的三维建模程序,特点是具有类似 Blender 的几何节点编辑功能。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-51-53.png" +width="846" +height="453" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></p> +</li> +<li> +<p><a class="link" href="https://tabler-icons.io/" target="_blank" rel="noopener" +>tabler</a>,一个开源的图标库,可用于 Web 或 移动端应用开发,全部免费使用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-55-30.png" +width="796" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="253" +data-flex-basis="608px" +></p> +</li> +<li> +<p><a class="link" href="https://microsoftedge.microsoft.com/addons/detail/%E6%B2%89%E6%B5%B8%E5%BC%8F%E7%BF%BB%E8%AF%91/amkbmndfnliijdhojkpoglbnaaahippg" target="_blank" rel="noopener" +>immersive-translate</a>,一个在线翻译浏览器插件,支持 Edge、Firefox、Chrome 等浏览器,优点是可以在网页上追加中文显示,原文和译文同时展示,对于想提升外语水平的人士,是个不错的对照工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-59-08.png" +width="621" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 019 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/Tue, 07 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/<h1 id="机器文摘-第-019-期">机器文摘 第 019 期</h1> +<h2 id="长文">长文</h2> +<h3 id="现阶段-ai-能对游戏开发提供多大帮助">现阶段 AI 能对游戏开发提供多大帮助</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-19-34.png" +width="686" +height="358" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +> +AI 在最近有多爆发自然不用我再赘述,抛开那些狂热的能够引起焦虑的言论(比如 AI 即将替代大量工作岗位),也有不少人选择跟 AI 和平相处。</p> +<p>这篇<a class="link" href="https://www.traffickinggame.com/ai-assisted-graphics/" target="_blank" rel="noopener" +>《AI 辅助图形》</a>的作者是一个有着游戏制作二十年经验的从业者,近期想尝试尽可能地利用各种 AI 加持的辅助工具,试图通过他们提升制作效率。</p> +<p>作者从游戏的概念原型阶段,一直到三维模型资产的制作和游戏场景的搭建,均选用了具有 AI 能力的效率工具进行支持。</p> +<p>最终结论是,虽然在过程中会有这样那样的不顺手,但这些工具确实能够帮助他节约大量工作时长。</p> +<p>所以作者的看法是,他很愿意将 AI 工具看作他的同事。</p> +<p>照这么说的话,留给人类的工作真的是不多了。</p> +<h3 id="chatgpt-学习笔记">ChatGPT 学习笔记</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-32-44.png" +width="600" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="427px" +> +ChatGPT 在春节后又起了一波热度。</p> +<p>网上到处都是关于它的段子,有人用它写论文,有人拿来给孩子辅导作业,有人写情书,有人当个动嘴的甲方让它写程序。</p> +<p>喜得微软恨不得现在就把它接到搜索引擎里,逼得谷歌提前释放出自己的类似模型。</p> +<p>国内的百度也表示将在3月份发出自己的大规模语言模型。</p> +<p>要我说就不要这么着急,不妨拨开迷雾,看看 ChatGPT 是个什么东东。</p> +<p>在网上发现这篇<a class="link" href="https://blog.csdn.net/v_JULY_v/article/details/128579457" target="_blank" rel="noopener" +>《ChatGPT 通俗笔记》</a>,讲述了这个模型的发展历程,以及一些基本的概念原理。</p> +<p>此类中文资料不多,给这篇文章作者点赞。</p> +<h3 id="视觉设计的一些规则">视觉设计的一些规则</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-49-28.png" +width="697" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +> +现在专业的界限越来越模糊,每个人都应该掌握一些基本的设计理念,以便在日常工作中输出的成果具备基本的美感。</p> +<p>这篇<a class="link" href="https://anthonyhobday.com/sideprojects/saferules/" target="_blank" rel="noopener" +>《视觉设计安全法则》</a>,浅显易读、明确具体,对于视觉设计活动很有指导意义。</p> +<p>看完之后无论是自己动手做 PPT 还是软件的 demo 原型,都可以用到。</p> +<p>我觉得甚至对于摄影构图、房屋装修都能有所借鉴,因为美是相通的。</p> +<h3 id="python-做后端开发的技术选型">Python 做后端开发的技术选型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-57-37.png" +width="673" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="514px" +> +有时候想做一些 Web 应用的原型,Python 是我的首选语言,写起来顺手又省事,能节约不少时间。</p> +<p>但是由于用的不够深入,在选择开发框架的时候,稍微有些困惑。</p> +<p>比如同样都能提供快速的开发能力,Fastapi 和 Flask到底选哪个?</p> +<p>如果你也有跟我一样的疑惑,可以看看这篇<a class="link" href="https://www.turing.com/kb/fastapi-vs-flask-a-detailed-comparison" target="_blank" rel="noopener" +>《Fastapi 和 Flask 详细对比》</a>。</p> +<p>文章深度分析了这两个框架的异同以及所适用的工作场景。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/red-data-tools/YouPlot" target="_blank" rel="noopener" +>YouPlot</a>,控制台绘图工具,可以在控制台窗口用字符的方式进行绘图,支持柱状图、散点图等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-10-37.png" +width="587" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="396px" +></p> +</li> +<li> +<p><a class="link" href="https://play-cs.com/zh/servers" target="_blank" rel="noopener" +>网页在线联机 CS1.6</a>,只需浏览器即可联机玩反恐精英 1.6,这个网站通过 WASM 技术将 CS 1.6 移植到了网页中运行,现代浏览器均可支持,第一次加载时间略长,但体验还算流畅,在线人员数量也挺多,随时可以匹配到。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-20-36.png" +width="811" +height="397" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="490px" +></p> +</li> +<li> +<p><a class="link" href="https://fffuel.co/sssvg" target="_blank" rel="noopener" +>交互式 SVG 参考</a>,一个可以在线了解 SVG 图形标准细节的网站,提供交互式界面进行实时演示。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-25-38.png" +width="904" +height="428" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="506px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/LunarFang416/url-animations" target="_blank" rel="noopener" +>浏览器地址栏里的动画</a>,一个有意思的 Js 库,通过动态修改浏览器地址栏的 URL 地址来实现动画,效果还比较萌。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-26-39.png" +width="757" +height="208" +loading="lazy" +class="gallery-image" +data-flex-grow="363" +data-flex-basis="873px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 018 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/Tue, 31 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/<h1 id="机器文摘-第-018-期">机器文摘 第 018 期</h1> +<h2 id="长文">长文</h2> +<h3 id="游戏高清重制科林麦克雷拉力赛3">游戏高清重制《科林麦克雷拉力赛3》</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-15-47.png" +width="857" +height="434" +loading="lazy" +class="gallery-image" +data-flex-grow="197" +data-flex-basis="473px" +> +游戏高清重制一直是我比较感兴趣的话题,可能因为比较喜欢怀旧吧。</p> +<p>我曾经收藏过采用覆盖显示驱动的方式进行高清分辨率支持的《极品飞车 5》、《Quake 3》等游戏。</p> +<p>也见过一些更古老的游戏在更新资源包之后重新焕发青春。</p> +<p>不过一直没有接触过真正的重制过程。</p> +<p>这篇<a class="link" href="https://cookieplmonster.github.io/2023/01/15/remastering-colin-mcrae-rally-3-silentpatch/" target="_blank" rel="noopener" +>《重制科林麦克雷拉力赛》</a>详细记录了一个优秀的赛车游戏进行高清重制的过程。</p> +<p>可以带你了解老旧游戏如何进行“宽屏”、“超宽屏”支持,如何重制高清界面UI元素等,过程充满了对不可能的挑战。</p> +<h3 id="把网页渲染到控制台">把网页渲染到控制台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-24-01.png" +width="1067" +height="464" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +通过控制台窗口进行上网,你可能觉得并不新鲜。</p> +<p>毕竟已经有很多类似 w3m 这种在控制台下基于字符的浏览器程序。</p> +<p>但是他们的缺点都是不能显示图形,而且几乎失去了对页面的样式渲染。</p> +<p>今天这篇<a class="link" href="https://fathy.fr/carbonyl" target="_blank" rel="noopener" +>《把网页渲染到控制台》</a>则另辟蹊径,虽然同样是在控制台的字符界面,但是渲染手段却大不相同。</p> +<p>它将控制台字符当作单个像素来处理,采用现代浏览器内核进行页面解析和预渲染计算。</p> +<p>然后在像素渲染阶段,采用了控制台字符来进行替换。</p> +<p>虽然最终效果无法跟图形界面下的浏览器相比。</p> +<p>但是它毕竟提供了一种在终端控制台进行图形化网页显示的可能。</p> +<h3 id="chromium-渲染流水线字节码到像素的一生">Chromium 渲染流水线——字节码到像素的一生</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-32-37.png" +width="481" +height="580" +loading="lazy" +class="gallery-image" +data-flex-grow="82" +data-flex-basis="199px" +> +看了前面网页渲染到控制台的文章,如果对浏览器的原理架构比较感兴趣的话。</p> +<p>可以看看这篇<a class="link" href="https://zhuanlan.zhihu.com/p/574069391" target="_blank" rel="noopener" +>讲解 Chromium 浏览器渲染架构</a>的文章。</p> +<p>现代浏览器已经复杂到不可能通过个人从零开始实现。</p> +<p>了解一下他们的架构,即便不从事相关开发,也可能对自己的软件架构产生有益影响。</p> +<h3 id="99-行代码实现光线追踪">99 行代码实现光线追踪</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-40-20.png" +width="702" +height="235" +loading="lazy" +class="gallery-image" +data-flex-grow="298" +data-flex-basis="716px" +> +光线追踪在图形渲染中十分关键的概念。</p> +<p>同时也是现代电影工业实现逼真光照渲染所必须的技术手段。</p> +<p>然而它的原理却并不复杂,甚至只需少量代码就可以自己实现一个建议的渲染器。</p> +<p>这篇<a class="link" href="http://kevinbeason.com/smallpt/" target="_blank" rel="noopener" +>《99 行代码实现光线追踪》</a>就只是用了少量 C++ 代码实现了一个简单的带有全局光照、阴影、反射的场景渲染。</p> +<p>虽然看起来简单,效果还是很令人惊艳的。</p> +<p>适合我这种喜欢研究原理,但又不太深入的“技术爱好者”。</p> +<h3 id="光线追踪深入">光线追踪深入</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-47-14.png" +width="731" +height="333" +loading="lazy" +class="gallery-image" +data-flex-grow="219" +data-flex-basis="526px" +> +既然前面提到了光线追踪,不妨再引申一下。</p> +<p>很多光线追踪的入门教程都会教你渲染一些简单的模型,比如球体,圆柱体等等。</p> +<p>如果想基于光线追踪技术渲染复杂一些的三维模型,应该怎么做?</p> +<p>这里有一篇<a class="link" href="https://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/" target="_blank" rel="noopener" +>《光线行进和符号距离函数》</a>,里面介绍了基于光线行进算法(光线追踪的一种实现方式)和符号距离函数来构建三维场景中复杂模型的思路。</p> +<p>内容比较详细,并带有示例代码。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://www.chronophoto.app/game.html" target="_blank" rel="noopener" +>chronophoto</a>,一个猜照片年代的游戏,根据网站随机展示的老照片,来判断这张照片是哪一年拍摄的,答案区间 1900 到 2020 ,我试了试还挺有意思,可以根据照片中出现的物品和人物的衣着进行分析。<br> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-56-50.png" +width="944" +height="432" +loading="lazy" +class="gallery-image" +data-flex-grow="218" +data-flex-basis="524px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/GimelStudio/GimelStudio" target="_blank" rel="noopener" +>Gimel Studio</a>,一个基于节点系统的照片后期处理工具,开源,采用 Python 编写。<br> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-00-55.png" +width="1009" +height="537" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/vitoplantamura/BugChecker" target="_blank" rel="noopener" +>BugChecker</a>,一个支持 Windows 11 的类 SoftICE 调试器,开源。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-04-14.png" +width="649" +height="376" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="414px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/google/swiftshader" target="_blank" rel="noopener" +>swiftshader</a>,一个基于 CPU 实现 OpenGL 渲染的图形库。主要应用在谷歌开源的 chromium 项目里,用纯软件算法实现了OpenGL、Vulkan图形接口。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-08-42.png" +width="308" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 017 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/Mon, 16 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/<h1 id="机器文摘-第-017-期">机器文摘 第 017 期</h1> +<p><em>预计春节期间暂停更新,节后恢复。</em></p> +<h2 id="长文">长文</h2> +<h3 id="怎样在-1-位色深的-lcd-屏幕上显示灰度httpswwwzephraymepostgrayscale_lcd"><a class="link" href="https://www.zephray.me/post/grayscale_lcd/" target="_blank" rel="noopener" +>怎样在 1 位色深的 LCD 屏幕上显示灰度</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-33-34.png" +width="1920" +height="1080" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +只有 1 位色深的 LCD 屏幕按理说是不能显示灰度的,因为他的像素点要么纯黑、要么纯白,显示的图案效果肯定非常差。</p> +<p>如果说非要显示灰度的话,我第一个想法是通过<a class="link" href="https://zh.wikipedia.org/wiki/%E6%8A%96%E5%8B%95_%28%E6%95%B8%E4%BD%8D%E8%A8%8A%E8%99%9F%E8%99%95%E7%90%86%29" target="_blank" rel="noopener" +>抖动算法</a>进行模拟(即通过像素点的稀疏程度来制造错觉,如下图)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-40-49.png" +width="180" +height="215" +loading="lazy" +class="gallery-image" +data-flex-grow="83" +data-flex-basis="200px" +></p> +<p>然而这篇文章的作者采取了更为巧妙地方法,使用 PWM (脉冲宽度调制)技术,利用每个像素点的点亮时间不同来制造灰度错觉。</p> +<p>之前只是见过使用 PWM 调整 LED 灯泡的亮度,像这种用法我倒是第一次见。</p> +<h3 id="作为一名数据工程师和作家我为什么要用-neovimhttpswwwsspaeticomblogwhy-using-neovim-data-engineer-and-writer-2023"><a class="link" href="https://www.sspaeti.com/blog/why-using-neovim-data-engineer-and-writer-2023/" target="_blank" rel="noopener" +>作为一名数据工程师和作家,我为什么要用 (Neo)vim</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-44-27.png" +width="500" +height="264" +loading="lazy" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="454px" +></p> +<p>很多人都被 Vim 复杂的功能和陡峭的学习曲线吓到过。</p> +<p>也有很多人本着对效率的极致追求,而选择了征服 Vim,从而走上高效(折腾)的路线。</p> +<p>本文作者作为一名数据工程师,讲述了他学习 Vim 的心路历程,也许对于现在还在观望的人有所启发。</p> +<p>我个人使用 Vim 已十多年时间,虽然从未触及特别深入的技能(如宏定义、寄存器等),但是 Vim 这种神器的特点就是,只要你忍者难受越过操作的及格线,剩下的技能你稍微多掌握一点,就能马上给你带来非常丰厚的回报。</p> +<h3 id="焦散是什么如何正确地渲染焦散httpswwwchaoscomcnblogwhat-are-caustics-and-how-to-render-them-the-right-way"><a class="link" href="https://www.chaos.com/cn/blog/what-are-caustics-and-how-to-render-them-the-right-way" target="_blank" rel="noopener" +>焦散是什么?如何正确地渲染焦散?</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-55-28.png" +width="850" +height="469" +loading="lazy" +class="gallery-image" +data-flex-grow="181" +data-flex-basis="434px" +> +焦散(Caustics)在现实生活中随处可见,但在渲染图中却很稀有。这篇文章解答了为什么渲染焦散很难,以及有哪些方法可以迂回实现。</p> +<p>找到这篇文章是因为我在 Github 上发现了<a class="link" href="https://github.com/pmndrs/drei#caustics" target="_blank" rel="noopener" +>一个使用 webgl 实现焦散渲染的项目</a>,效果非常不错,于是想研究一下背后的原理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-02-22.png" +width="652" +height="339" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="461px" +></p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://refactoringguru.cn/design-patterns" target="_blank" rel="noopener" +>常用设计模式有哪些</a>,一本在线电子书,图文并茂,以比较直观的方式介绍了软件开发常用的设计模式,支持英文、日文、中文等多国语言。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-04-26.png" +width="673" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +></p> +</li> +<li> +<p><a class="link" href="https://abseil.io/resources/swe-book/html/toc.html" target="_blank" rel="noopener" +>谷歌的软件工程</a>,好几年前的一本书,讲述在谷歌做软件开发的体验和最佳实践,现在出了可免费阅读的电子版。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-04-41.png" +width="504" +height="662" +loading="lazy" +class="gallery-image" +data-flex-grow="76" +data-flex-basis="182px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/ToolJet/ToolJet" target="_blank" rel="noopener" +>开源低代码开发框架 ToolJet</a>,免费开源的低代码开发框架,带有可视化编辑器,从数据持久化到前端界面全部无需编写代码。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-08-12.png" +width="795" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="460px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/Eandrju/cellular-automaton.nvim" target="_blank" rel="noopener" +>一个无聊的 Neovim 插件</a>,一个没啥用的 Neovim 插件,唯一能做的事情是当你感到无聊时,可以将你的文本编辑区里的文本执行一个“元胞自动机”动画,看起来还算解压。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-11-33.png" +width="547" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="89" +data-flex-basis="213px" +></p> +</li> +<li> +<p><a class="link" href="https://www.futurepedia.io/" target="_blank" rel="noopener" +>最大的 AI 工具箱</a>,喜欢研究 AI 的不要错过这个网站,收集了各种 AI 模型的开源项目和相关网址,涵盖了图像识别、自然语言处理等常见的、时兴的 AI 技术。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-15-15.png" +width="1151" +height="729" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="378px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 016 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/Tue, 10 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/<h1 id="机器文摘-第-016-期">机器文摘 第 016 期</h1> +<h2 id="长文">长文</h2> +<h3 id="黑客与汽车httpssamcurrynetweb-hackers-vs-the-auto-industry"><a class="link" href="https://samcurry.net/web-hackers-vs-the-auto-industry/" target="_blank" rel="noopener" +>黑客与汽车</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-16-50.png" +width="680" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="394px" +> +现在的汽车很多都具有联网的能力,可以通过互联网进行便利的远程操作。</p> +<p>比如获取汽车位置、健康状态、远程启动、远程开门等等。</p> +<p>作为消费者来说,在使用这些便利功能的时候,内心是十分信任厂商的。</p> +<p>觉得安全问题肯定会被厂商非常重视,作为头号问题来抓。</p> +<p>然而这篇<a class="link" href="https://samcurry.net/web-hackers-vs-the-auto-industry/" target="_blank" rel="noopener" +>《黑客与汽车》</a>却改变了我的看法,原来这些车联网的安全防护如此的脆弱。</p> +<p>文章作者为业内人士,写的还比较实在。如下列举部分这些黑客可以对车进行的未授权操作:</p> +<ol> +<li>远程发动机启停、车门解锁与锁定、大灯闪烁、喇叭鸣笛;</li> +<li>锁定用户,迁移管理权;</li> +<li>根据车架号下载到用户的销售档案;</li> +<li>远程刷新更新车辆电脑固件;</li> +<li>跟踪车辆物理GPS位置;</li> +</ol> +<p>看完我感觉是不是得把我的相关车联网服务给停一停了。</p> +<h3 id="汇编代码阅读指南httpswwwtimdbgcompostsfakers-guide-to-assembly"><a class="link" href="https://www.timdbg.com/posts/fakers-guide-to-assembly/" target="_blank" rel="noopener" +>汇编代码阅读指南</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-30-23.png" +width="1061" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +> +写汇编代码很麻烦,阅读起来也很费劲吗?</p> +<p>这儿有<a class="link" href="https://www.timdbg.com/posts/fakers-guide-to-assembly/" target="_blank" rel="noopener" +>一份简要的汇编阅读指南</a>,作者介绍了一些汇编代码的阅读技巧。</p> +<p>因为根据统计显示,最常用的汇编指令也就那么十来个,所以并没有想象中的那么晦涩和高深莫测。</p> +<h3 id="使用-svg-绘制逼真的绳索httpsmuffinmanioblogdraw-svg-rope-using-javascript"><a class="link" href="https://muffinman.io/blog/draw-svg-rope-using-javascript/" target="_blank" rel="noopener" +>使用 SVG 绘制逼真的绳索</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-38-11.png" +width="786" +height="342" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +SVG 是在网页中进行矢量绘图的技术,比起 Canvas 画板的像素图像,SVG 具有放大不失真的特点,在网页中可以通过 Javascript 操作生成 SVG 图形对象,实现各种复杂的图案。</p> +<p>这篇文章的作者从几何的角度考虑了如何使用矢量图形来绘制一个现实中的麻绳图案,要不仅体现出绳索的扭曲,还要正确表现绳索分支之间的叠压,作者提出了一个巧妙的使用 SVG path 进行实现的方法。还给出了代码。</p> +<p>你要问作者为什么这么做,有什么用没有?我想作者可能会回答:Because I can !</p> +<h3 id="ssh-进阶用法介绍httpsplantegggithubio20190602e58fb2e4b88ae69c80e585a8_ssh_e69a97e9bb91e68a80e5b7a7e8afa6e8a7a3--e694b6e8978fe4bf9de5b9b3e5ae89"><a class="link" href="https://plantegg.github.io/2019/06/02/%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89/" target="_blank" rel="noopener" +>SSH 进阶用法介绍</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-55-02.png" +width="800" +height="480" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +></p> +<p>经常在 Linux 系统下进行开发或者运维的专业人士,可能每天使用最多的工具就是 SSH 了,每天都要通过它登录服务端系统,进行一系列的操作。</p> +<p>这里<a class="link" href="https://plantegg.github.io/2019/06/02/%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89/" target="_blank" rel="noopener" +>有一篇文章</a>比较全面地介绍了 SSH 的进阶使用技巧,可以在某种程度上极大提升效率以及操作体验。</p> +<p>列举部分如下:</p> +<ol> +<li>如何免密码登录;</li> +<li>如何映射服务端的服务端口到本地(以方便调试);</li> +<li>如何将服务端的图形界面(如xcalc)代理到本地电脑显示和交互(不是远程桌面哦);</li> +<li>一些网络端口映射之类的高级操作;</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://gist.github.com/sbabybird/c340dee0fbec2e1dfe4a1c49d311cf4b" target="_blank" rel="noopener" +>个人年终总结模板</a>,我做了一个基于 Markdown 语法的年终总结模板,方便梳理在编写个人总结时的思路,放在 github 上的 gist 里了,可以随意使用。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-57-40.png" +width="416" +height="486" +loading="lazy" +class="gallery-image" +data-flex-grow="85" +data-flex-basis="205px" +></p> +</li> +<li> +<p><a class="link" href="https://www.webdesignmuseum.org/" target="_blank" rel="noopener" +>web 网页设计博物馆</a>,一个保存古老网页设计的网站。记录了 1999 年到 2020 年各大公司的网页设计变迁。包括谷歌、亚马逊、苹果、任天堂、麦当劳等等。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-01-04.png" +width="918" +height="568" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="387px" +></p> +</li> +<li> +<p><a class="link" href="https://allinone.tools/" target="_blank" rel="noopener" +>一站式网页工具大全</a>,一堆的在线工具汇总,包括图片处理、PDF格式转换、文字编码转换、密码生成、字符串加密解密等等,常用工具一网打尽。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-05-09.png" +width="1320" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="231" +data-flex-basis="555px" +></p> +</li> +<li> +<p><a class="link" href="https://gamepad-tester.com/" target="_blank" rel="noopener" +>在线手柄测试工具</a>,打开网页即可测试游戏手柄的工作状态,按键是否灵敏,遥感是否有死区等等,非常方便。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-11-28.png" +width="930" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 015 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/Tue, 03 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/<h1 id="机器文摘-第-015-期">机器文摘 第 015 期</h1> +<h2 id="长文">长文</h2> +<h3 id="编程就是玩儿httpsaustinhenleycomblogprogrammingasplayhtml"><a class="link" href="https://austinhenley.com/blog/programmingasplay.html" target="_blank" rel="noopener" +>编程就是玩儿</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-43-13.png" +width="804" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="226" +data-flex-basis="543px" +></p> +<p>对于程序员或者技术从业者来说,以一种什么样的心态工作将十分影响成果的产出。</p> +<p><a class="link" href="https://austinhenley.com/blog/programmingasplay.html" target="_blank" rel="noopener" +>这篇文章</a>的作者给大家分享了他自己的感受&mdash;-“不把编程视为严肃的工作、目标只是玩得开心、为了好玩而编程”。</p> +<p>他同时也是 <a class="link" href="https://news.ycombinator.com/item?id=27256867" target="_blank" rel="noopener" +>《为什么我喜欢做无用的东西》</a>帖子的作者。</p> +<p>除了文章本身之外,<a class="link" href="https://news.ycombinator.com/item?id=34086416" target="_blank" rel="noopener" +>在 HN 配套的讨论帖子在这里</a>。</p> +<p>这种类似于“寓教于乐”、“做自己开心的事儿”等等内容,一直是一个值得探讨的话题。</p> +<p>我个人也倾向于以兴趣和爱好来驱动自己,只是如果这个兴趣和爱好顺便能够挣钱,那就更好了。</p> +<h3 id="webassembly没有容器的-dockerhttpswasmlabsdevarticlesdocker-without-containers"><a class="link" href="https://wasmlabs.dev/articles/docker-without-containers/" target="_blank" rel="noopener" +>WebAssembly:没有容器的 Docker</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-45-15.png" +width="3483" +height="1436" +loading="lazy" +class="gallery-image" +data-flex-grow="242" +data-flex-basis="582px" +></p> +<p>最近 <a class="link" href="https://www.docker.com" target="_blank" rel="noopener" +>Docker</a> 宣布与 <a class="link" href="https://github.com/WasmEdge/Wasmedge" target="_blank" rel="noopener" +>WasmEdge</a> 合作支持 WebAssembly 。</p> +<p>WebAssembly 和 Docker 我们都听说过,在前面的文摘中我还尝试过自己使用 Rust 编写运行在网页里的 WebAssembly 应用程序。</p> +<p>Docker 也是我工作中每天都要用到的容器技术。</p> +<p>那他们两个有什么关系?放在一起能碰撞出什么火花?</p> +<p><a class="link" href="https://wasmlabs.dev/articles/docker-without-containers/" target="_blank" rel="noopener" +>这篇文章</a>将讲解这两种技术的结合在云原生架构下的使用。</p> +<p>看来 WebAssembly 技术不仅可以在浏览器环境中发挥作用,还能在云计算、边缘计算等领域发光发热,前途不可限量嘛。</p> +<h3 id="3d-摄影测量建模技术httpswwwjeffgeerlingcomblog2021modeling-my-grandpa-3d-photogrammetry"><a class="link" href="https://www.jeffgeerling.com/blog/2021/modeling-my-grandpa-3d-photogrammetry" target="_blank" rel="noopener" +>3D 摄影测量建模技术</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-58-29.png" +width="712" +height="340" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +></p> +<p>3D 摄影测量建模,是一种通过对物体多角度拍摄照片,然后使用计算机通过软件算法合成为 3D 模型的技术。</p> +<p>从最开始在专业领域(如:建筑工程、考古)使用,到现在已经普及到普通人只需安装手机 App 也能轻松实现了。</p> +<p>这篇<a class="link" href="https://www.jeffgeerling.com/blog/2021/modeling-my-grandpa-3d-photogrammetry" target="_blank" rel="noopener" +>用3D摄影测量法对我的爷爷建模</a>记述了作者如何使用 3D 摄影测量建模技术给自己爷爷的雕像进行“数字化”的过程。</p> +<p>里面详细记录了整个过程所使用的开源软件和相关的配置细节。</p> +<p>对于一些想要进行一次实操演练的朋友来说可能有用。</p> +<h3 id="在-2d-游戏中如何模拟-3d-的光影效果httpswwwgamedevelopercomprogramminggraveyard-keeper-how-the-graphics-effects-are-made"><a class="link" href="https://www.gamedeveloper.com/programming/graveyard-keeper-how-the-graphics-effects-are-made" target="_blank" rel="noopener" +>在 2D 游戏中如何模拟 3D 的光影效果</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-14-17.png" +width="454" +height="265" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>《守墓人》是一款经典的 2D 角色扮演游戏,比起它的精彩剧情和有趣的玩法,出色的画面效果也是该游戏取得成功的重要原因。</p> +<p>这篇<a class="link" href="https://www.gamedeveloper.com/programming/graveyard-keeper-how-the-graphics-effects-are-made" target="_blank" rel="noopener" +>《守墓人的图形效果是如何制作的》</a>文章,由该游戏的核心开发者于 2018 年发表,讲述了很多关于实现在 2D 画面带来更加有立体光影效果的特殊技巧。</p> +<p>文章虽然老了一点,但是技术没有过时。</p> +<p>读进去可以深深体会到:一个优秀作品的创造,离不开对各种不可能的挑战和极限的突破。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://bluemaxima.org/flashpoint/" target="_blank" rel="noopener" +>Flash 游戏大全</a>,上一期里我摘录了一个关于复刻 Flash 游戏的故事。后来也勾起了我对于 Flash 小游戏的怀念。便深入探索了一下现在这个阶段该如何再去运行那些老游戏。Flashpoint 是一个 Web 游戏保存工程,号称已经累计保存了包括 Flash 在内的 35 个平台的超过十万个小游戏。这个工程在 2018 年 1 月启动,试图在 Flash 消亡之前将之前的经典内容进行备份。现在提供两种版本的下载包,一种全量下载的大概 1.3 TB,包含了全部游戏。一种增量下载的,700多MB,只带了部分游戏,但是支持随下随玩。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-33-07.png" +width="1001" +height="382" +loading="lazy" +class="gallery-image" +data-flex-grow="262" +data-flex-basis="628px" +></p> +</li> +<li> +<p><a class="link" href="https://sweetcocoa.github.io/pop2piano_samples/" target="_blank" rel="noopener" +>根据音频自动生成钢琴旋律</a>,一个开源的 AI 模型,可以根据歌曲的音频识别出里面的旋律主线,并且使用钢琴演奏出来,效果十分神奇。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-41-36.png" +width="741" +height="456" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></p> +</li> +<li> +<p><a class="link" href="https://virtualconsoles.com/online-emulators/c64/" target="_blank" rel="noopener" +>C64 Emulator</a>,一个在线的 commodore 64 电脑模拟器,可以直接将磁盘镜像拖拽到网页上进行加载,页面还提供了虚拟键盘。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-44-02.png" +width="643" +height="733" +loading="lazy" +class="gallery-image" +data-flex-grow="87" +data-flex-basis="210px" +></p> +</li> +<li> +<p><a class="link" href="https://shadiao.pro/" target="_blank" rel="noopener" +>沙雕 App</a>,收集了各种有趣网站、工具的导航站,之前就关注过,最近好像升级了,喜欢恶搞的同学可以到里面找到一些比较有恶趣味的小程序。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-47-42.png" +width="676" +height="371" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 014 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/Tue, 27 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/<h1 id="机器文摘-第-014-期">机器文摘 第 014 期</h1> +<h2 id="长文">长文</h2> +<h3 id="运行在单片机上的-qthttpsdecovardevblog20221224qt-on-mcu"><a class="link" href="https://decovar.dev/blog/2022/12/24/qt-on-mcu/" target="_blank" rel="noopener" +>运行在单片机上的 Qt</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-43-13.png" +width="684" +height="456" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></p> +<p>尝试过给单片机写图形界面没有?</p> +<p>这篇 <a class="link" href="https://decovar.dev/blog/2022/12/24/qt-on-mcu/" target="_blank" rel="noopener" +>《Qt on MCU》 </a>比较系统的介绍了“为什么选择 Qt(一套开源图形界面库) 给单片机做界面”、“Qt 的基本架构”、“程序移植性”等相关问题。</p> +<p>读完可以较为全面地了解在单片机这种机能较弱的硬件设备上制作图形界面的基本思路和需要关注的问题。</p> +<h3 id="openwrtlede-搭建-syncthing-p2p-私有文件同步服务httpschenhemepostopenwrt-syncthing"><a class="link" href="https://chenhe.me/post/openwrt-syncthing/" target="_blank" rel="noopener" +>OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-56-50.png" +width="1251" +height="730" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>现在大家都不止一个电子终端设备,个人数字信息、各种数据文件的同步需求基本上是一个刚需。</p> +<p>有很多厂商提供了收费方案,比较常见的有国内的各种网盘、手机厂商提供的各种 Cloud 服务等等。</p> +<p>如果想基于家庭网络自己动手搭建一个私有服务的话,可能略微麻烦一些,不过也有较为成熟的方案了。</p> +<p>条件具备的话不妨参考这篇<a class="link" href="https://chenhe.me/post/openwrt-syncthing/" target="_blank" rel="noopener" +>《OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务》</a>动手试一试。</p> +<h3 id="用-flash-高清重制一款游戏httpswwwjiqizhixincomarticles2022-12-22-2"><a class="link" href="https://www.jiqizhixin.com/articles/2022-12-22-2" target="_blank" rel="noopener" +>用 Flash 高清重制一款游戏</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-58-23.png" +width="600" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p>Flash 基本已经成为历史了。</p> +<p>即便现在可以通过一些渠道或者浏览器勉强开启 Flash 插件的话,也会提心掉胆地担心计算机的安全性。</p> +<p>毕竟那些恼人的弹窗广告有 80% 都是靠 Flash 技术实现的。</p> +<p>但是还有这么一群人,他们玩着 4399 上的小游戏长大,80 后喜欢的各种主机游戏在他们眼里根本不值一提,倒是网页上那种基于 Flash 制作的即开即玩的小游戏(比如我能想到的就有:黄金矿工、狂扁小朋友、打企鹅等等)才是他们的最爱。</p> +<p>Flash 技术被时代抛弃,那些 4399 们也就逐渐消失了。</p> +<p>不过总有人会拥抱情怀,这篇<a class="link" href="https://www.jiqizhixin.com/articles/2022-12-22-2" target="_blank" rel="noopener" +>《为拯救童年回忆,开发者决定采用古法编程》</a>便讲述了这样一个故事。</p> +<p>里面的哥们儿以极其硬核的方式实现了他的梦想,为了复刻一个 Flash 小游戏,他几乎重新写了一个 Flash 播放器。</p> +<h3 id="unix-终端系统tty是如何工作的httpswaynervcompostshow-tty-system-works"><a class="link" href="https://waynerv.com/posts/how-tty-system-works/" target="_blank" rel="noopener" +>Unix 终端系统(TTY)是如何工作的</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-09-23.png" +width="2560" +height="2272" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></p> +<p>没有使用过大型机而直接进入 PC 时代的计算机用户,可能觉得“终端”就是电脑上那个能够输入 CMD 命令的黑乎乎窗口吧。</p> +<p>即便是终日与命令行打交道的软件开发人员、系统运维人员,可能也很难一下子解释清楚什么是“终端”,它为什么叫这个名字。</p> +<p>这篇<a class="link" href="https://waynerv.com/posts/how-tty-system-works/" target="_blank" rel="noopener" +>《Unix 终端系统(TTY)是如何工作的》</a>从计算机硬件发展的历史出发,介绍了计算机系统跟用户交互的发展历程,并针对“终端”系统进行详细展开,讲解了实现原理和后来发展的现代形态。</p> +<p>喜欢硬核知识的朋友可点进去阅读一下。</p> +<h3 id="hn-讨论极大提升你效率的软件有哪些httpsnewsycombinatorcomitemid34069106"><a class="link" href="https://news.ycombinator.com/item?id=34069106" target="_blank" rel="noopener" +>HN 讨论:极大提升你效率的软件有哪些?</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-16-52.png" +width="776" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="462px" +></p> +<p>哪些软件最能节约你的时间、解放你的双手、使你离不开它?</p> +<p>这个话题几乎每过一段时间就会被拿出来讨论一番。</p> +<p>每个人都有自己的偏爱。</p> +<p>不过,看看大家的讨论,说不定也能发现一些新鲜的软件,也许能更新一下自己的工具库也说不定。</p> +<blockquote> +<p>比如上面这篇帖子里,楼主提到的 <a class="link" href="https://github.com/BurntSushi/xsv" target="_blank" rel="noopener" +>这个 csv 工具</a> ,可以在命令行让你高效对 csv 文件进行快速检索、合并查询、切片等等。 +不过帖子里可能有人把节奏带偏了,在下面大吹特吹各种 IDE 软件,就仁者见仁了。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://huili.github.io/" target="_blank" rel="noopener" +>SQlite源码分析</a>,一本讲解 SQlite 源码的在线电子书,主要对 SQLite 数据库的实现机制和使用方法做了简要分析。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-25-49.png" +width="804" +height="424" +loading="lazy" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="455px" +></p> +</li> +<li> +<p><a class="link" href="https://retrogame.com.ua/2022/03/moarstalgia-windows-98-3dfx-amp-dos-retro-gaming-pack/" target="_blank" rel="noopener" +>经典复古 win98 游戏合集</a>,一个游戏整合包,里面整合了若干在 Win98 系统下才能跑的老游戏,像初代的雷神之锤、半条命、极品飞车等等。提供了基于 DosBox 的虚拟系统,即开即用,性能还不错。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-33-08.png" +width="656" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="169" +data-flex-basis="406px" +></p> +</li> +<li> +<p><a class="link" href="http://www.doshaven.eu/programming-tools/" target="_blank" rel="noopener" +>DOS 系统下的编程工具合集</a>,想要重温在 DOS 环境下编程的感受,这里有一套比较全面的工具合集,包括 QBASIC、TurboC 等开发环境,以及一些用于游戏开发的图形库、引擎。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-59-31.png" +width="908" +height="527" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="413px" +></p> +</li> +<li> +<p><a class="link" href="https://humanbenchmark.com/dashboard" target="_blank" rel="noopener" +>给你自己跑个分</a>,现在一些硬件评测动不动就使用软件进行跑分,用以展示硬件之间的形成差异,这个网站提供了一组小游戏,可以考验你的短期记忆力、反应能力,并给你打分。也试试给自己跑个分吧。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-15-05-15.png" +width="900" +height="511" +loading="lazy" +class="gallery-image" +data-flex-grow="176" +data-flex-basis="422px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 012 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/Tue, 13 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/<h1 id="机器文摘-第-012-期">机器文摘 第 012 期</h1> +<h2 id="长文">长文</h2> +<h3 id="github-登录被第三方网站滥用了吗">Github 登录被第三方网站滥用了吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-30-19.png" +width="494" +height="491" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="241px" +> +为了方便账号注册,现在很多网站都提供了基于 Github 账号登录的方式。</p> +<p>我个人也更倾向于使用这种方式登录。</p> +<p>毕竟可以少填一些注册信息,减少思考密码的麻烦。</p> +<p>但是这样做有什么安全问题没有?</p> +<p>上周有一个<a class="link" href="https://news.ycombinator.com/item?id=33917962" target="_blank" rel="noopener" +>在 HackerNews 上的帖子</a>,有人遇到了在使用 Github 账号登录某些网站之后,导致他的账号莫名给别的仓库添 Star 的情况。</p> +<p>这引发了大家关于 Github 账号权限管理以及通过第三方鉴权进行账号登录和注册的讨论。</p> +<p>看完觉得在第三方鉴权授权时还是应该慎重使用才好。</p> +<h3 id="每个黑客都知道的命令行快捷键">每个黑客都知道的命令行快捷键</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-41-23.png" +width="926" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="145" +data-flex-basis="349px" +> +在图形化界面、触控操作交互界面已经十分普及的今天,普通用户可能现在很少能接触到命令行操作了。</p> +<p>但是对于软件开发者、IT运维工程师来说,命令行还是属于离不开的操作界面。</p> +<p>而且对于有些工作任务来说,使用命令行完成起来要更加高效。</p> +<p><a class="link" href="https://www.masteringemacs.org/article/keyboard-shortcuts-every-command-line-hacker-should-know-about-gnu-readline" target="_blank" rel="noopener" +>这篇文章</a>讲解了常见命令行交互时的一些快捷操作,比如常见的行内编辑、快速移动光标到命令开头、历史记录搜索等等。</p> +<p>掌握之后可以在各种命令行交互界面中进行使用(基本风格一致)。</p> +<h3 id="基于颜色循环的动画技术">基于颜色循环的动画技术</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-54-06.png" +width="509" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="132" +data-flex-basis="318px" +> +在计算机硬件资源匮乏的上世纪 90 年代,开发人员为了在有限条件下实现丰富的效果真是挖空心思。</p> +<p>比如,还记得 Windows 98 的启动画面吗?</p> +<p>蓝天白云,Windows 徽标,底部有一个蓝色的渐变色条,在缓慢的滚动。</p> +<p>实际上它只是一幅图片,并非多帧动画。</p> +<p>这就用到了一个叫做<a class="link" href="https://en.wikipedia.org/wiki/Color_cycling" target="_blank" rel="noopener" +>“颜色循环”</a>的技术。</p> +<blockquote> +<p>来自维基百科:颜色循环,也称为调色板移动,是计算机图形学中使用的一种技术,其中颜色被更改以产生动画的假象。这种技术主要用于早期的电脑游戏,因为存储一个图像并更改其调色板比将动画存储为几帧需要更少的内存和处理器能力。</p> +</blockquote> +<p><a class="link" href="http://www.effectgames.com/effect/article-Old_School_Color_Cycling_with_HTML5.html" target="_blank" rel="noopener" +>这里有个博客</a>使用 HTML Canvas 复刻了一批采用颜色循环创作的作品,效果非常惊艳。</p> +<p>另外网站还开源了用于展示这些作品的图形引擎,虽然现在已经不再维护了,但是用于学习和探索还是很有研究意义。</p> +<h3 id="软件逆向工程入门">软件逆向工程入门</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-06-08.png" +width="716" +height="442" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="388px" +> +软件的加密和破解在普通用户眼里十分神秘。</p> +<p>这篇<a class="link" href="https://to-be-deleted-in-2022.emily.st/2015/01/27/reverse-engineering/" target="_blank" rel="noopener" +>软件逆向工程入门</a>比较深入浅出地介绍了一些常用手法,跟着作者可以浅尝一下在内存中寻找注册号、修改汇编指令以使得软件保护失效等体验。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="http://nifty.stanford.edu/" target="_blank" rel="noopener" +>计算机课后作业</a>,斯坦福大学计算机专业评选的历年来优秀作业作品。如果不知道自己编程需要练习什么的话,可以打开参考参考,很有实用价值,比起在 Leecode 上刷算法的题目,这些作业都在解决实际问题。</p> +</li> +<li> +<p><a class="link" href="https://scholar.archive.org/" target="_blank" rel="noopener" +>互联网档案学术</a>,全文检索索引包含超过2500万的研究文章和其他保存在互联网档案馆里的学术文档。 该馆藏涵盖从18世纪期刊的数字化副本,到最新的Open Access会议记录和从万维网上抓取的预印本。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-19-26.png" +width="1113" +height="507" +loading="lazy" +class="gallery-image" +data-flex-grow="219" +data-flex-basis="526px" +></p> +</li> +<li> +<p><a class="link" href="https://playcanvas.com/" target="_blank" rel="noopener" +>PlayCanvas Web 优先的游戏引擎</a>,一个免费的游戏引擎,倡导以 Web 优先,在网页中提供从开发到发行的全部流程支持。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-23-40.png" +width="961" +height="655" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="352px" +></p> +</li> +<li> +<p><a class="link" href="https://asciinema.org/" target="_blank" rel="noopener" +>命令行会话记录器</a>,Asciinema 是一个免费开源软件,用于帮助用户录制在命令行中的操作行为,便于在互联网上分发自己的操作示范、教学演示。比起直接视频录屏的方式,这种以字符方式的记录更加节约资源,无论是记录、传播还是回放环节,都很轻量。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-29-43.png" +width="631" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></p> +</li> +<li> +<p><a class="link" href="https://matthias-research.github.io/pages/tenMinutePhysics/index.html" target="_blank" rel="noopener" +>十分钟物理</a>,这套教程集合了一组十分钟左右的视频短片,每次介绍一个基本的物理概念并通过 Web 前端技术编程实现模拟。除了视频之外,网站还提供了源代码、演示环境等配套资源。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-32-47.png" +width="1191" +height="666" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="429px" +></p> +</li> +<li> +<p><a class="link" href="http://skilldrick.github.io/easy6502/" target="_blank" rel="noopener" +>Easy6502</a>,一本学习 6502 汇编的电子书(没错,我就是特别喜欢这款 CPU)。网站带有交互界面,提供了一个简易模拟器,可以边学边练,教程最后会带你实现一个基于汇编的贪食蛇游戏。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-43-13.png" +width="608" +height="484" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="301px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 013 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/Mon, 12 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/<h1 id="机器文摘-第-013-期">机器文摘 第 013 期</h1> +<h2 id="长文">长文</h2> +<h3 id="从古董电脑中我们能学到什么httpsgithubcomreadmefeaturedvintage-computing"><a class="link" href="https://github.com/readme/featured/vintage-computing" target="_blank" rel="noopener" +>从古董电脑中我们能学到什么</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-36-43.png" +width="1182" +height="689" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>我也不知道为什么自己会对老旧电脑,尤其是上世纪80年代、90年代出品的电脑这么迷恋。</p> +<p>我觉得那个时代的电脑散发着一种难以名状的工业气质。</p> +<p>通过阅读<a class="link" href="https://github.com/readme/featured/vintage-computing" target="_blank" rel="noopener" +>这篇文章</a>,使我意识到一些深层次的原因。</p> +<p>这些老式电脑的魅力来自于当时技术的限制、简单粗暴和直接。</p> +<p>通过深入了解这些老古董、学习开发那个时代的软件,可以更容易地了解计算机科学。</p> +<p>毕竟,现在的计算机已经充分的复杂和“人性化”,软件把硬件包裹得越来越严实和抽象。以至于根本看不清它的内部构造和实现原理。</p> +<p>去研究那些古董电脑吧,操作那些裸漏单纯的硬件接口,贴近更加具体的科技。</p> +<h3 id="蛋httpwwwgalactanetcomoneofftheegg_zhhtml"><a class="link" href="http://www.galactanet.com/oneoff/theegg_zh.html" target="_blank" rel="noopener" +>蛋</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-49-07.png" +width="1024" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="200" +data-flex-basis="480px" +></p> +<p>这是一篇很富有哲理的小小说,严格来说跟机器没有关系。</p> +<p>但是写的实在是很好,忍不住收录进来。</p> +<p>毕竟,喜欢机器的人,很难抗拒这种对宇宙天马行空的探索。</p> +<h3 id="rlhf-模型详解httpshuggingfacecoblogrlhf"><a class="link" href="https://huggingface.co/blog/rlhf" target="_blank" rel="noopener" +>RLHF 模型详解</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-54-30.png" +width="1450" +height="1338" +loading="lazy" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="260px" +></p> +<p>近期 AI 圈最火的事情,莫过于 OpenAI 发布的聊天机器人 ChatGPT 了。</p> +<p>这个智能聊天机器人已经强大到可以让人担忧的地步了。</p> +<p>那么,它背后的实现原理是什么?</p> +<p><a class="link" href="https://huggingface.co/blog/rlhf" target="_blank" rel="noopener" +>这篇文章</a>讲解了 ChatGPT 所使用的 RLHF(人类反馈强化学习) 模型是如何实现的以及它的未来会怎样发展。</p> +<h3 id="基于扩散模型生成音乐httpswwwriffusioncomabout"><a class="link" href="https://www.riffusion.com/about" target="_blank" rel="noopener" +>基于扩散模型生成音乐</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-03-35.png" +width="540" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="342px" +></p> +<p>基于文本生成图像的扩散模型已经火了一段时间了。</p> +<p>我当时还在想,既然基于扩散模型可以生成图像的话,那能不能生成声音呢?</p> +<p>结果我只是动了动念头,人家这边已经把成果拿出来了。</p> +<p><a class="link" href="https://www.riffusion.com/about" target="_blank" rel="noopener" +>这篇文章</a>介绍了他们基于扩散模型生成音乐的项目。</p> +<p>我试听了一下,效果还不错,挺神奇的。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://ittavern.com/getting-started-with-tmux/" target="_blank" rel="noopener" +>tmux 入门</a>,一篇 tmux 的入门教程。tmux 是一个终端程序,可以同时模拟多个客户端控制台,如果觉得不好理解的话,可以认为它是一个控制台的多页签浏览器。因为在工作中经常需要 ssh 登录服务器进行编程开发,我现在已经离不开它了。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-12-18.png" +width="701" +height="419" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +></p> +</li> +<li> +<p><a class="link" href="https://oimo.io/works/" target="_blank" rel="noopener" +>一个有趣的个人网站</a>,作者是一个日本在读博士生,网站放了一些个人的编程作品,主要跟物理模拟、像素艺术有关。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-14-33.png" +width="915" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="203" +data-flex-basis="488px" +></p> +</li> +<li> +<p><a class="link" href="https://www.hello-algo.com/" target="_blank" rel="noopener" +>你好,算法</a>,一本开源电子书,可在线阅读,深入浅出讲解数据结构和算法,生动有趣,适合有一定编程基础但是算法这块有些薄弱的爱好者阅读。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-20-26.png" +width="3144" +height="2319" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +></p> +</li> +<li> +<p><a class="link" href="https://nbviewer.org/github/gpeyre/numerical-tours/blob/master/python/ml_6_nn.ipynb" target="_blank" rel="noopener" +>神经网络在线教程</a>,一套神经网络编程教程,提供在线的 python 代码阅读环境,适合作为入门资料学习。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-23-10.png" +width="388" +height="262" +loading="lazy" +class="gallery-image" +data-flex-grow="148" +data-flex-basis="355px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 011 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/Wed, 07 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/<h1 id="机器文摘-第-011-期">机器文摘 第 011 期</h1> +<h2 id="长文">长文</h2> +<h3 id="自己动手做一个天气墨水屏">自己动手做一个天气墨水屏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-13-22.png" +width="617" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +> +有个喜欢动手的哥们,发现了自己及家人的一项小需求,即从家出门的时候想快速知道天气情况。</p> +<p>虽然这种需求抬眼看一下手机也能实现,但是本着“懒惰使人进步”的核心思想(作者懒得掏出手机)他动手实现了一套基于电池供电的可以显示天气预报信息的电子墨水屏。</p> +<p>这篇<a class="link" href="https://kimmo.blog/posts/7-building-eink-weather-display-for-our-home/" target="_blank" rel="noopener" +>《做一个天气墨水屏》</a>记录了作者从诞生点子到产品出炉的全过程。</p> +<p>另外作者还开源了项目的源代码,<a class="link" href="https://github.com/kimmobrunfeldt/eink-weather-display" target="_blank" rel="noopener" +>可在这里获取</a>。</p> +<h3 id="m1-gpu-的故事">M1 GPU 的故事</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-21-23.png" +width="985" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +> +GPU 大家都知道,<a class="link" href="https://asahilinux.org/2022/11/tales-of-the-m1-gpu/" target="_blank" rel="noopener" +>这里有篇文章介绍了它的工作细节</a>。</p> +<p>作者来自一个给苹果 M1 芯片适配 Linux 驱动的团队(苹果官方不提供驱动,所以这意味着需要做一些逆向工程)。</p> +<p>本文记录了这些工作中比较有趣的部分,还顺便介绍了 GPU 的一些底层工作原理。</p> +<h3 id="在-commodore-64-上实现位图滚动条的显示">在 Commodore 64 上实现位图滚动条的显示</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-37-41.png" +width="386" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="114" +data-flex-basis="274px" +> +Demosense 是一项挖掘计算机硬件机能极限的活动。</p> +<p>通常创作者们会通过各种编程技巧来实现看似无法达到的效果。</p> +<p>由于 Commodore 64 这台古董电脑十分经典,现在仍有不少Demosense爱好者在为它开发程序。</p> +<p><a class="link" href="https://www.c64demo.com/side-border-bitmap-scroller/" target="_blank" rel="noopener" +>这篇文章</a>讲述了著名 C64 demo 程序 <a class="link" href="https://csdb.dk/release/?id=195841" target="_blank" rel="noopener" +>Memento Mori</a> 的实现过程,程序在 Commodore 64 上显示了一副巨大(对于C64来说)的图片。</p> +<p>这在圈内属于首创。</p> +<h3 id="动手做一个-4-位-cpu">动手做一个 4 位 CPU</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-43-28.png" +width="496" +height="370" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="321px" +> +计算机组成原理是不是还没学明白?没关系,我们可以自己亲手做一个简单的 CPU 。</p> +<p><a class="link" href="https://www.bigmessowires.com/nibbler/" target="_blank" rel="noopener" +>Nibbler</a> 是一款 4 位 CPU,使用标准 7400 系列逻辑芯片(单个计数器、寄存器、缓冲器和门)构建而成。是一个简单 CPU 的教育示例,易于理解和构建,但仍然能够运行游戏和其他有趣的程序。Nibbler 在 5 x 4 英寸(127 x 102 毫米)穿孔板上使用绕线制造。CPU总共包含17个芯片。</p> +<p>作者公开了设计图纸和相关资料,可在文章内部的链接中获取。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="http://www.craftinginterpreters.com/" target="_blank" rel="noopener" +>纯手撸一个解释器</a>,编译原理没学明白没关系,这本在线电子书手把手教你写一个自己的解释器。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-51-28.png" +width="593" +height="182" +loading="lazy" +class="gallery-image" +data-flex-grow="325" +data-flex-basis="781px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/k88hudson/git-flight-rules/blob/master/README_zh-CN.md" target="_blank" rel="noopener" +>Git 飞行规则 (Flight Rules)</a> ,一个十分全面的 Git 使用指南,把你能遇到的情况都想到了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-54-49.png" +width="532" +height="541" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="236px" +></p> +</li> +<li> +<p><a class="link" href="https://thevaluable.dev/vim-advanced/" target="_blank" rel="noopener" +>Vim 高级进阶</a>,如果你已经学会了怎么退出 Vim,恭喜你,已经击败了 80% 的选手。想要在 Vim 中进行更高效的编辑操作,这份高手指南十分适合作为参考。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-57-10.png" +width="776" +height="511" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="364px" +></p> +</li> +<li> +<p><a class="link" href="https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/" target="_blank" rel="noopener" +>Flexbox 布局交互指南</a>,这篇在线教程讲解了如何使用 Flexbox 进行页面布局,难能可贵的是直接在页面中提供了交互操作界面,可以一遍学一遍实践,非常方便。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-59-27.png" +width="743" +height="448" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="398px" +></p> +</li> +<li> +<p><a class="link" href="https://www.makesense.ai/" target="_blank" rel="noopener" +>在线 AI 标注工具</a>,想要训练自己的 AI 模型,比如目标检测、图像分类等等,可以使用这个在线工具进行数据标注,直接上传图片然后在线标注,完成后可导出 VOC、Coco 等格式的数据集。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-10-02-46.png" +width="628" +height="391" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 010 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/Tue, 29 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/<h1 id="机器文摘-第-010-期">机器文摘 第 010 期</h1> +<h2 id="长文">长文</h2> +<h3 id="极客摄影指南">极客摄影指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-11-12.png" +width="1235" +height="841" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="352px" +> +相机,也是机器的一种。</p> +<p>我用它记录生活,捕捉生活中转瞬即逝的美好瞬间。</p> +<p>有个问题一直困扰着我,怎样拍出不那么“到此一游”的照片?</p> +<p>怎样才能“掌控”相机这个机器?</p> +<p>这篇<a class="link" href="https://lcamtuf.coredump.cx/photo_basics/" target="_blank" rel="noopener" +>《极客摄影》(英文)</a>能够帮助你对摄影做一个真正深入的理解(而不是学习那些充斥社交平台的各种浮于表面的“技巧”)。</p> +<p>作者是一个热爱摄影的技术男,有二十多年摄影经验。</p> +<p>听他给你讲讲什么是“光”和“构图”。</p> +<p>一篇就够了。</p> +<h3 id="ms-dos-背后的设计">MS-DOS 背后的设计</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-24-37.png" +width="480" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="225px" +></p> +<p>包括我在内的不少 80 后接触电脑是从 MS-DOS 开始的。</p> +<p>对于它的黑窗口和命令行都有着很深的印象。</p> +<p>上大学时执行最多的命令是<code>format c: /s /q</code></p> +<p>当年还玩过不少在 DOS 平台的游戏,比如仙剑奇侠传、主题医院等等。</p> +<p>只是当时没工夫对系统本身做深入了解。</p> +<p>顶多是,自己在学习汇编语言时,对 DOS 又仔细端详了几眼。</p> +<p>这篇<a class="link" href="https://patersontech.com/Dos/Byte/InsideDos.htm" target="_blank" rel="noopener" +>《凑近看看 MS-DOS 》(英文)</a>,介绍了 DOS 系统的设计标准、内存分配、磁盘文件结构、FAT文件系统的技术细节等等。</p> +<p>想要窥探技术细节的可以点进去看看。</p> +<h3 id="构建最快的-lua-解释器">构建最快的 Lua 解释器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-45-43.png" +width="645" +height="386" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +> +给动态语言编写解释器可能不算太难(如果只是能跑的话)。</p> +<p>但是如果要编写一个高性能的、好用的动态语言解释器,比如像谷歌浏览器所用的 V8 引擎那样,就比较困难了。</p> +<p><a class="link" href="https://sillycross.github.io/2022/11/22/2022-11-22/" target="_blank" rel="noopener" +>《构建最快的 Lua 解释器》</a>这篇文章站在更高维度提供一种方法,即:编写一种可以自动生成编译器(解释器)代码的程序,以使得制作高性能解释器变得更加容易。</p> +<p>我看了一下,大概就是自动化生成之前需要手工处理的编译器优化代码。作为编译原理学的不怎么明白的我,对此不敢评论。</p> +<h3 id="为什么-linux-内核没有单元测试">为什么 Linux 内核没有单元测试?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-14-46.png" +width="637" +height="411" +loading="lazy" +class="gallery-image" +data-flex-grow="154" +data-flex-basis="371px" +> +我对单元测试的态度一般,既不强烈支持,也不反对。</p> +<p>听说有的开发团队由于对于单元测试十分狂热,已经到了不允许写注释,都用单元测试替代的地步。</p> +<p>前不久,在 HN 上有网友发起了一个引战的讨论:“<a class="link" href="https://news.ycombinator.com/item?id=33742130" target="_blank" rel="noopener" +>既然单元测试这么好,为什么 Linux 内核源码不用呢?</a>”</p> +<p>以下为部分观点:</p> +<blockquote> +<p>单元测试被严重高估了,TDD有一些好主意,但有一段时间它变成了一种宗教。</p> +</blockquote> +<blockquote> +<p>单元测试与TDD宗教不是一回事。它只是意味着将事物划分为小单元并尽可能详尽地测试其功能。</p> +</blockquote> +<blockquote> +<p>SQLite不是反例吗?他们有更多的单元测试代码,而不是实际运行的代码。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/jackfrued/Python-100-Days" target="_blank" rel="noopener" +>Python 100 天从入门到精通</a>,Python 好学吗?好学又不好学,上手容易,精通难。这里有套开源教程囊括了从入门到实战应用(语言基础、数据处理、Web开发、网络开发、爬虫、深度学习等)的所有课程。这个仓库目前已经在 Github 上获得了 12 万star。可以说是好评如潮,想深入学习 Python 的不容错过。赶紧到我收藏夹里吃灰。</p> +</li> +<li> +<p><a class="link" href="https://wokwi.com/" target="_blank" rel="noopener" +>在线单片机模拟器</a>,想要学习单片机开发,又没有硬件设备吗?这个网站最合适。不需要担心手残不会电烙铁,也不用担心买不到芯片。直接在线进行模拟接线,直接运行编写的代码,结果实时展现。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-31-31.png" +width="878" +height="661" +loading="lazy" +class="gallery-image" +data-flex-grow="132" +data-flex-basis="318px" +></p> +</li> +<li> +<p><a class="link" href="https://slowroads.io/" target="_blank" rel="noopener" +>slow roads</a>,一个在线赛车游戏。基于网页制作。亮点在于作者实现了无限地图。所有地形和道路均使用程序生成。游戏有自动驾驶模式,如果只想观赏路边风景的话,可以开启。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-36-44.png" +width="1736" +height="855" +loading="lazy" +class="gallery-image" +data-flex-grow="203" +data-flex-basis="487px" +></p> +</li> +<li> +<p><a class="link" href="https://tic80.com/" target="_blank" rel="noopener" +>TIC-80</a>,TIC-80 是一台用于制作、播放和分享小型游戏的幻想计算机。有内置的开发工具:代码、sprites、地图、声音编辑器和命令行,这足以创建一个迷你复古游戏。在退出时,你将得到一个盒式文件,它可以在网站上存储和播放。 +另外,游戏可以打包成一个播放器,可以在所有流行的平台上运行,并按你的意愿分发。为了制作一个复古风格的游戏,整个创作过程是在一些技术限制下进行的。240x136 像素的显示屏,16 种颜色的调色板,256 个 8x8 的彩色 sprites,4 channel sound 等等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-42-20.png" +width="490" +height="279" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="421px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 009 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/Mon, 21 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/<h1 id="机器文摘-第-009-期">机器文摘 第 009 期</h1> +<h2 id="长文">长文</h2> +<h3 id="游戏中的精灵">游戏中的“精灵”</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-14-24-20.png" +width="729" +height="409" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="427px" +> +<a class="link" href="https://zh.wikipedia.org/wiki/%E7%B2%BE%E7%81%B5%E5%9B%BE" target="_blank" rel="noopener" +>精灵(sprite)</a>这个词来自古法语单词“esprit”,意思是“精神”——源自拉丁语“spiritus”。在民间传说中,精灵是活泼、俏皮和神奇的小生物。然而对于游戏开发者来说,它又是另一个含义了。</p> +<p>这篇<a class="link" href="https://wireframe.raspberrypi.com/articles/the-surprising-history-of-sprites" target="_blank" rel="noopener" +>《精灵的惊人历史》(英文)</a>,介绍了不同的游戏厂商,在早期硬件机能有限的条件下,如何实现“角色在屏幕上移动”这个现在看似十分简单的事情的。</p> +<p>对于不了解“精灵”的含义的,稍作如下解释:</p> +<blockquote> +<p>2D 游戏在处理需要动起来的角色时,出于性能考虑,将一部分图形的绘制与背景画面的绘制分开,对于频繁需要刷新(动起来的)部分,单独处理,使他们感觉像是漂浮在背景画面的“幽灵”似的,故名“精灵”。</p> +</blockquote> +<h3 id="任天堂-nes-的一些技术细节">任天堂 NES 的一些技术细节</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-14-41-33.png" +width="507" +height="477" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="255px" +> +NES 是任天堂推出一款极其成功的家用游戏机(NES : Nintendo Entertainment ,System 是其在北美发售的名称,亚洲叫 FC :Family Computer),不少80、90后的朋友应该都玩过(或者是国内山寨厂商仿制的*霸王之类)。</p> +<p>NES 使用极其经典的 6502 CPU。这块 CPU 有多经典呢,苹果的 Apple1代2代 、史上销量第一的个人电脑 Commodore 64 、国内早年比较流行的文曲星等,使用的都是这个 CPU。</p> +<p><a class="link" href="https://medium.com/@fogleman/i-made-an-nes-emulator-here-s-what-i-learned-about-the-original-nintendo-2e078c9b28fe" target="_blank" rel="noopener" +>《我做了一个 NES 模拟器》(英文)</a>,这篇文章的作者在编写模拟器的过程中挖出了不少技术细节,里面还提到了硬件存在的各种 BUG (没错,要模拟的话必须连 BUG 都得模拟,不然有些游戏玩不了),想要了解的朋友可以点进去看一下。</p> +<p>作为模拟器爱好者,我对 6502 处理器非常好奇,一度希望自己动手也实现一个,而且这款处理器真的非常适合模拟器入门,毕竟只有三个寄存器和百十条指令。</p> +<p><a class="link" href="https://github.com/fogleman/nes" target="_blank" rel="noopener" +>文中提到的 NES 模拟器在 Github 上开放了源码</a>,有兴趣的可以学习。</p> +<h3 id="一个桌面开发程序员为了学习-javascript-而手撸了一个基于-webgl-的游戏引擎">一个桌面开发程序员为了学习 Javascript 而手撸了一个基于 WebGL 的游戏引擎</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-11-11.png" +width="780" +height="448" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="417px" +> +学习一样技能最好的方式就是动手去做。</p> +<p>当我感叹牛人怎么那么厉害的时候,往往忽略了牛人的学习过程。</p> +<p>以为他们天生就那样。</p> +<p>事实上他们的技能也是靠努力训练得来的。</p> +<p>不过,学习方法确实很重要。</p> +<p><a class="link" href="http://zephyrosanemos.com/" target="_blank" rel="noopener" +>《我对 Javascript 的尝试》(英文)</a>,这篇文章的作者原本是一个桌面程序开发者(类似 CAD 软件之类)。</p> +<p>他突然想要学习前端开发,掌握 Javascript 语言。</p> +<p>于是结合自己之前的知识,使用前端技术做了一套很优秀的 Demo 程序,一个性能和外观都很不错的游戏引擎。</p> +<p>文章里作者详细介绍了实现过程中对技术、算法的选择等等。</p> +<p>内容很长,但还算友好,比较干货。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://roadmap.sh/" target="_blank" rel="noopener" +>开发者之路</a>,汇总了各个技术路线的学习资料,包括前端、后端、运维、计算机科学、区块链、移动端、质量管理等等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-24-33.png" +width="753" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="397px" +> +总之极其全面。 +目前在 Github 有两百多万个 star,被 fork 了 三十多万次。</li> +<li><a class="link" href="https://crxdl.com/" target="_blank" rel="noopener" +>chrome 插件下载</a>,访问谷歌浏览器插件商店有困难吗?试试这个网站,可以直接下载插件的包文件,下载后拖入浏览器即可安装。不过我已经转换到微软的 Edge 阵营了,用不到这个了。</li> +<li><a class="link" href="https://www.toptal.com/developers/css3maker" target="_blank" rel="noopener" +>CSS3 生成器</a>,对于 CSS 的属性参数总是记不住,这个网站就很适合我。每次要调背景渐变、圆角、阴影、动画曲线等等,都得现去搜。有了这个网站,在线点点拖拖,直接复制代码即可。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-33-35.png" +width="1288" +height="660" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +></li> +<li><a class="link" href="https://tesseract.projectnaptha.com/" target="_blank" rel="noopener" +>tesseract.js</a>,可直接在浏览器里运行的 OCR 引擎,支持多国语言(超过 100 种)文字识别。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-16-16-10.png" +width="1039" +height="439" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="568px" +></li> +<li><a class="link" href="https://www.aichpoem.net/#/shisanbai/poem" target="_blank" rel="noopener" +>AI 在线写诗</a>,比较全面的 AI 写诗工具,可以写律诗、绝句、现代诗、歌词等等,根据输入的主题任意发挥。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-23-10-36-44.png" +width="846" +height="502" +loading="lazy" +class="gallery-image" +data-flex-grow="168" +data-flex-basis="404px" +></li> +<li><a class="link" href="https://www.upscale.media/zh" target="_blank" rel="noopener" +>图片分辨率在线提升</a>,上传图片,网站使用 AI 算法将图片的清晰度自动提升,效果还不错。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-23-10-41-36.png" +width="1087" +height="693" +loading="lazy" +class="gallery-image" +data-flex-grow="156" +data-flex-basis="376px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 008 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/Wed, 16 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/<h1 id="机器文摘-第-008-期">机器文摘 第 008 期</h1> +<h2 id="长文">长文</h2> +<h3 id="用好-github给自己建立一个全方位的私有云平台">用好 GitHub,给自己建立一个全方位的私有云平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-24-41.png" +width="754" +height="393" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +> +很多人都有进行个人的知识管理和数字资源管理的需求,市面上也有很多软件工具或者平台来满足这样的需求,但是大部分都是收费的,且自由度不高。我个人经常使用 Github 作为知识管理仓库,我的网络日志、技术博客、私人小项目、电子书籍等都放在上面,生活中已经离不开这个网站了。</p> +<p>近期读到这样一篇文章&ndash;<a class="link" href="https://www.bmpi.dev/self/use-github-better/" target="_blank" rel="noopener" +>善用 Github</a>,全方位讲解了 Github 如何使用,如何将其提供的服务发挥最大化的作用,看完受益匪浅。</p> +<blockquote> +<p>GitHub 是微软旗下的一个在线软件源代码托管服务平台,也是一个拥有八千多万开发者用户的社区。很多开发者应该对GitHub有一定的了解,但非技术人员大多可能并不会去使用它。本文更多是想给非技术人员来介绍这个平台,看完这篇文章,希望能让更多人在上面来学习、创作与展示自己的作品。</p> +</blockquote> +<h3 id="webgpu-是什么跟-webgl-有什么关系">WebGPU 是什么?跟 WebGL 有什么关系?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-36-12.png" +width="846" +height="433" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +> +前几天我想在网页上制作一个小游戏,用于尝试一下图形编程相关的技术。用到了一些基于 Web 技术的 3d 图形框架,比如 Three.js、Babylon.js 等等。在尝试的过程中遇到了一个新的名词 WebGPU,之前总是在听说 WebGL 相关的技术,结果说了这么多年,WebGL还没普及,怎么又冒出来一个 WebGPU?于是找了一篇文章,浅扒一下各个图形接口的历史。就是这篇<a class="link" href="https://www.51cto.com/article/698100.html" target="_blank" rel="noopener" +>浅入浅出 WebGPU</a>。</p> +<blockquote> +<p>2016年6月,Google 产生了使用新API来代替WebGL的想法,称之为 WebGL Next。 +2017年1月,Khronos Group 举办了WebGL Next研讨会,Chromium一马当先,展示了可以基于OpenGL和Metal独立运行的新图形系统原型,同时Apple和Mozilla也分别展示了自己的原型,三者都非常类似于Metal Api。 +次月,Apple就向W3C提交了一个名为 WebGPU 的技术概念验证方案,基于Metal图形开放接口,最终W3C采纳了 WebGPU 这个名字作为下一代标准,Apple的提案进入了正式的小组提案中。 +3月,Mozilla向Khronos Group提交了基于Vulkan的名为WebGL Next提案。 +2018年6月,Chrome团队宣布着手实现WebGPU,这意味着Khronos的失败,WebGPU胜出,大家以后还是团结在W3C的周围。 +按照预期,工作组希望在2021年底发布WebGPU 1.0 标准,不过目前只有草案。 +WebGPU 1.0 草案:https://www.w3.org/standards/types#WD</p> +</blockquote> +<h3 id="扔掉-photoshop-改用字符串绘图">扔掉 Photoshop 改用字符串绘图</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-58-00.png" +width="761" +height="741" +loading="lazy" +class="gallery-image" +data-flex-grow="102" +data-flex-basis="246px" +> +相信很多人都接触过使用字符绘制的图片,这在程序员圈子里甚至发展为一门专有的艺术 “<a class="link" href="https://zh.wikipedia.org/wiki/ASCII%E8%89%BA%E6%9C%AF" target="_blank" rel="noopener" +>ASCII 艺术</a>”。不过我现在不是要说这些,我在一篇 2015 年发表的文章里,发现了这个:有个猛男在自己的程序里彻底抛弃使用 Photoshop 制作的图片资源,改用字符串来描述各种图形(程序界面的图标),然后自己再用代码将其渲染成为高清的图像。</p> +<p>作者对此很沾沾自喜,他甚至设计了一套自用的语法规范,用特定字母代表特定的符号关系,这样就可以组合出各种复杂的图案了。</p> +<p>我也在文章的评论区见到了跟我有同样疑惑的读者留言:“这不就是重新发明了 <a class="link" href="https://zh.wikipedia.org/wiki/%E5%8F%AF%E7%B8%AE%E6%94%BE%E5%90%91%E9%87%8F%E5%9C%96%E5%BD%A2" target="_blank" rel="noopener" +>SVG</a> 吗?唯一的区别就是没有用 XML 作为载体”。</p> +<p>不过文章记录的整个开发过程还是很有趣的,希望了解朋友可以点进去看看 <a class="link" href="http://cocoamine.net/blog/2015/03/20/replacing-photoshop-with-nsstring/" target="_blank" rel="noopener" +>Replacing Photoshop With NSString</a></p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://ffmpeg.xianwaizhiyin.net/" target="_blank" rel="noopener" +>FFmpeg原理</a>,FFmpeg 这个开源项目可能圈外的人士了解不多,但实际上我们生活中一刻也离不开它。现在的网络直播、网络视频网站和移动App、各种视频剪辑合成软件,都或多或少的使用了 FFmpeg 提供的编解码技术。这本在线书籍对于想进一步了解 FFmpeg 以及视频编解码技术的朋友是个不错的参考资料。</p> +<blockquote> +<p>本书《FFmpeg原理》主要讲解 FFmpeg 原理性的知识,前面几章主要讲解一些音视频开发的基础知识,例如原始数据 YUV 跟 RGB,封装格式 FLV 跟 MP4 ,压缩编码的基本概念,还有封装格式分析。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://rustdesk.com/zh/" target="_blank" rel="noopener" +>开源虚拟与远程桌面基础架构</a>,远程桌面软件,开箱即用,无需任何配置。(我个人目前还是使用windows的远程桌面多一些,不过这个开源的rustdesk看起来不错)</p> +<blockquote> +<p>您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器,或者自建,亦或者开发您的版本 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-26-09.png" +width="1388" +height="701" +loading="lazy" +class="gallery-image" +data-flex-grow="198" +data-flex-basis="475px" +></p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://learnxinyminutes.com/" target="_blank" rel="noopener" +>Learn X in Y minutes</a>,这里的教程几乎涵盖所有编程语言,完全没有废话。英文版、中文版都有。如果有编程语言基础的话,通过这个网站确实可以在几十分钟内掌握一门新的编程语言的核心知识。</p> +</li> +<li> +<p><a class="link" href="https://flash.zczc.cz/" target="_blank" rel="noopener" +>Flash 保存计划</a>,Flash 虽然消失了,但是它曾经创造的辉煌一直在我们的记忆里,现在偶尔还想起一些经典的小游戏。这个网站里收藏了很多经典的Flash小游戏,通过一些黑科技复活了它们,可以在浏览器里运行体验。反正我一打开了黄金矿工,就半天停不下来。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-34-57.png" +width="1142" +height="554" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="494px" +></p> +</li> +<li> +<p><a class="link" href="https://keg.cs.tsinghua.edu.cn/codegeex/index_zh.html" target="_blank" rel="noopener" +>CodeGeeX: 多语言代码生成模型</a>,又一个能帮你写代码的 AI 模型。提供有官方的 VSCode 插件。我试了一下,效果跟 Github 的 copilot 还有一定的差距。</p> +<blockquote> +<p>CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2022年6月22日,CodeGeeX历时两个月在20多种编程语言的代码语料库(&gt;8500亿Token)上预训练得到</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://iximiuz.com/en/series/computer-networking-fundamentals/" target="_blank" rel="noopener" +>计算机网络基础学习(英文)</a>,一个在线讲解网络基础知识的教程,优点是内容简洁,不用特别多的专用名词唬人,另外还提供了在线实验的环境。</p> +<blockquote> +<p>关于计算机网络的书籍往往令人生畏 - 数千页,无聊的图表&hellip;&hellip;这个教程以几千字的字数引导您了解网络基础知识!它还提供动手实验室来实践所获得的知识。</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-51-40.png" +width="764" +height="476" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 007 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/Wed, 09 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/<h1 id="机器文摘-第-007-期">机器文摘 第 007 期</h1> +<h2 id="长文">长文</h2> +<h3 id="如何在-html5-canvas-制作可精确控制时间的动画">如何在 HTML5 Canvas 制作可精确控制时间的动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-09-30-08.png" +width="576" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="410px" +></p> +<p>使用 Canvas 对象在网页中制作动画非常简单,有不少人喜欢直接使用定时器 <code>setinterval</code> 以一定的时间周期循环执行绘图代码来实现动画效果。但是这种做法有一个弊端,由于显示刷新率以及计算机硬件性能的不同,会导致在不同机器上的表现差异。比如你希望你的动画角色在 1 秒内移动 50 个像素,但是实际执行起来却很难控制。<a class="link" href="https://www.viget.com/articles/time-based-animation/" target="_blank" rel="noopener" +>基于时间的动画</a>这篇文章讲解了如何使用浏览器的 <code>requestAnimationFrame</code> API 来实现精准控制动画时间的效果,里面给出了一个很简单的样例,但是基本上给出了一个完整的“更新、渲染、通过时间变化计算运动距离”的游戏控制架构。</p> +<h3 id="如何使用纯-web-技术开发一个相机-app">如何使用纯 Web 技术开发一个相机 App</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-09-47-44.png" +width="680" +height="475" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="343px" +></p> +<p>如果不习惯复杂的移动 app 开发环境,直接使用 Web 技术开发一些小的 App 也是十分方便的。我近期希望通过网页实现一个拍照的应用,并且希望不使用手机的原生相机功能,而是自己控制一些相机参数、后期效果、增加特定的取景框等等。于是我找到了一篇教学指南:<a class="link" href="https://blog.prototypr.io/make-a-camera-web-app-tutorial-part-1-ec284af8dddf" target="_blank" rel="noopener" +>Make a Camera Web App</a>,只需几十行代码就实现了一个相机 App 。感兴趣的朋友可以点进去看看。</p> +<h3 id="数据库是如何工作的从零开始写一个数据库">数据库是如何工作的,从零开始写一个数据库</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-01-15.png" +width="390" +height="394" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="237px" +></p> +<p>如果和我一样好奇数据库是如何实现的,可以看看<a class="link" href="https://cstack.github.io/db_tutorial/" target="_blank" rel="noopener" +>这篇文章</a>。带你用 C 语言从头撸一个数据库出来。</p> +<h3 id="使用-rust-写一个操作系统">使用 Rust 写一个操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-05-43.png" +width="702" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +></p> +<p>Rust 逐渐火起来了,这篇 <a class="link" href="https://os.phil-opp.com/zh-CN/" target="_blank" rel="noopener" +>2018 年的文章</a>整理了一份教程,作者尝试使用 Rust 写一个操作系统,我之所以收录它是因为作者还在 Github 开源了代码,并且这系列教程甚至提供了多国语言的版本。制作精良。应该是实践操作系统知识的好教材。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://100dayscss.com/" target="_blank" rel="noopener" +>100 天精通 CSS </a>,这个网站给了你 100 个关于 CSS 技术的挑战题目,也许练完之后可以达到深入应用 CSS 的效果,我尝试了几个挑战,有些题目的设置有些偏炫技范畴了,想在工作中使用估计会被打死。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-24-10.png" +width="392" +height="391" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +</li> +<li> +<p><a class="link" href="http://cht.sh/" target="_blank" rel="noopener" +>Linux 命令在线帮助工具</a>,对于我这种经常记不住命令用法的人来说真的是一种福音。比如我就经常记不清 <code>tar</code> 命令的用法,面对压缩包解压或者文件打包的工作每次都是去网上搜索一番。有了这个在线工具,直接在命令行中使用 <code>curl</code>请求他的网址就可给出命令的样例用法详解,非常方便。比如执行<code>curl cht.sh/tar</code> 就会给出 tar 的使用样例了,我直接复制粘贴之。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-28-42.png" +width="586" +height="462" +loading="lazy" +class="gallery-image" +data-flex-grow="126" +data-flex-basis="304px" +></p> +</li> +<li> +<p><a class="link" href="https://www.mobilephonemuseum.com/" target="_blank" rel="noopener" +>手机博物馆</a>, 网站收录了各品牌手机的各代产品资料,包括手机图片、型号参数、当时发布的广告等。不过我看了一下,资料应该还不齐全,有些手机只是列了个名字和型号在那儿,还缺少详细信息,估计还在继续收集中。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-32-23.png" +width="1696" +height="790" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="515px" +></p> +</li> +<li> +<p><a class="link" href="http://www.famicn.com/" target="_blank" rel="noopener" +>中文家用游戏博物馆</a> ,收录了比较齐全的家用游戏机及掌机的中文版游戏资料。可以直接在线通过模拟器玩耍。有不少经典的 FC、GB、MD 游戏,甚至还有小霸王学习机的 ROM ,可以在线体验。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-36-51.png" +width="1096" +height="711" +loading="lazy" +class="gallery-image" +data-flex-grow="154" +data-flex-basis="369px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 006 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/Wed, 02 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/<h1 id="机器文摘-第-006-期">机器文摘 第 006 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样写一段代码把自己打印出来">怎样写一段代码把自己打印出来?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-13-45-45.png" +width="651" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></p> +<p>近期在知乎上看到一个<a class="link" href="https://www.zhihu.com/question/22006572/answer/2722369370" target="_blank" rel="noopener" +>如何编写代码打印自己的问题</a>,感到十分有趣。以前也在网上见到过类似的代码,用 C 或者 Javascript 等各种语言实现的版本都有。当时只是感叹代码写的十分神奇,一段代码在运行之后竟然输出自己的源代码,而且一个字符也不差,并没有搞懂其中的原理。这篇回答里,作者给出了详细解释。并指出,冯·诺依曼早在他编写的《自复制元胞自动机理论》一书中的提出了这种事情在理论上的通用方法。</p> +<blockquote> +<p>如上图所示,自复制系统有五个基本部件:A:通用构造器;B:通用复制器;C:控制器;D:其他函数;ϕ(A,B,C,D)\phi(A,B,C,D)\phi(A,B,C,D) : A, B, C, D的编码;当自复制过程启动的时候,B将编码复制一份。A再根据复制出的编码构造出ABCD。最后,C再将这些结构组合起来,构造出一个新的、复制的结构。可以看到,自复制、自打印程序的核心就在于通用构造器和编码,因为复制器、控制器都是比较容易实现的。</p> +</blockquote> +<p>具体实现的示例,文中有更详细的说明。</p> +<p>最后,此问题可以引申到,大自然中生命基于基因的复制机制,也是与此相关,甚至其背后都是同样的机制。</p> +<h3 id="kevin-kelly-在-68-岁生日时给出的-68-条建议">Kevin Kelly 在 68 岁生日时给出的 68 条建议</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-01-30.png" +width="688" +height="368" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></p> +<p><a class="link" href="https://baike.baidu.com/item/%E5%87%AF%E6%96%87%C2%B7%E5%87%AF%E5%88%A9/6607570" target="_blank" rel="noopener" +>凯文·凯利(又称KK, 作者,著有《失控》《科技想要什么》《必然》等)</a>,上个月 28 号是他的 68 岁生日,他准备了 68 条简短的建议,作为礼物送给年轻人。</p> +<p>有人翻译了<a class="link" href="https://zhuanlan.zhihu.com/p/143834871" target="_blank" rel="noopener" +>KK 在 68 岁生日时给出的 68 条建议</a>。</p> +<p>摘抄几条如下:</p> +<blockquote> +<p>任何一项大工程(修房子、拍电影、开发 app)完成度为 90% 的时候,你都要做好心理准备:剩余的大量细节工作会占掉你另一段与之前相当的时间。</p> +</blockquote> +<blockquote> +<p>不要担心自己问的问题听起来很傻。99% 的情况下,其他人都有和你一样的问题,只不过羞于问出口而已。</p> +</blockquote> +<blockquote> +<p>别成为一群人里最聪明的那个。和那些比你聪明的人待在一起,向他们学习。如果能找到和你观点相左的聪明人,那就更好了。</p> +</blockquote> +<blockquote> +<p>别做最好的。做唯一的。</p> +</blockquote> +<blockquote> +<p>任何真实之物都源于虚构之意。想象是宇宙中最强大的力量,也是你能够日益精进的能力。生命中可以因不知众人所知而获益的能力,仅此一项。</p> +</blockquote> +<blockquote> +<p>经验往往被高估了。招募的时候,要看资质,技能则可以培训。许多令人惊奇和赞叹的事情,都是由第一次做的人做出来的。</p> +</blockquote> +<h3 id="怎样搭建一个最简的-git-服务器">怎样搭建一个最简的 GIT 服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-15-18.png" +width="626" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="322px" +></p> +<p>GIT 是现在软件开发过程中必不可少的版本控制工具,功能非常强大,我们平时直接使用单位的私有服务或者在线的云服务(如:Github 等)。</p> +<p>如果想要搭建个人的服务,可能就比较繁琐一些。<a class="link" href="https://www.ruanyifeng.com/blog/2022/10/git-server.html" target="_blank" rel="noopener" +>阮一峰老师的这篇博客</a>就解答了怎样采用极简的技术路线,为自己搭建一台 GIT 服务器。</p> +<blockquote> +<p>自己搭建 Git 服务器的原因,无非就是不方便访问外网,不愿意代码放在别人的服务器,或者有一些定制化的需求。 +这时,你可以选择开源的 Git 服务器软件。 +Gitlab CE +Gitea +Gogs +Onedev +这些软件里面,Gogs 的安装是最简单的,但是功能相对比较弱。功能越强的软件,安装越复杂。 +如果你只是想远程保存一份代码,并不在意有没有 Web 界面,或者其他功能,那么根本不用安装上面这些软件,一行命令就够了。</p> +</blockquote> +<h3 id="为什么很多程序员讨厌低代码">为什么很多程序员讨厌低代码?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-24-59.png" +width="640" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="180" +data-flex-basis="432px" +></p> +<p>“低代码”(一般指:不用或少用编写代码的方式进行软件开发)这个词近两年又开始火了,它代表着对软件工程的一种美好“幻想”,即:花费更低的代价去构建复杂的软件系统。</p> +<p>虽然每隔一个时间周期都会被重提一次,但是每次都未能如愿。</p> +<p>现在既然又被频繁提及,我在知乎上发现了这样一篇<a class="link" href="https://www.zhihu.com/question/561025857/answer/2734260311" target="_blank" rel="noopener" +>关于低代码话题的回答</a>。从程序员的视角表达了对低代码这种期望的观点,有兴趣的朋友可以点进去看看。</p> +<blockquote> +<p>软件工程这门学问,研究的就是“如何利用工程思想,从整体上降低开发复杂性”;但与之同时,它不得不反复强调“软件工程试图解决的、是人为引入的不必要的复杂性;但工程的本质复杂性是无法逃避的。因为没有银弹,没有银弹,没有银弹!”</p> +</blockquote> +<p>我个人的观点是:低代码或者配置化、拖拽式软件开发,很难平衡对复杂现实的抽象程度和开发便利性的矛盾关系。如何做到既提供方便的组件同时又不限制对个性化需求的实现,这需要非常强大的设计能力以及对于特定应用场景的取舍。目前来看,如果要做到或者接近上述状态,必然要先消耗巨量的成本,至于是否值得,可能不同的主体会有不同的选择吧。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/Visualize-ML/Book4_Power-of-Matrix" target="_blank" rel="noopener" +>从加减乘除到机器学习</a>,一本不错的数学扫盲书,如果你在学习人工智能的时候对数学感到吃力的话,这本书非常适合阅读,一点也不枯燥。主要讲解线性代数相关的知识。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-46-11.png" +width="616" +height="335" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="441px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md" target="_blank" rel="noopener" +>命令行的艺术</a> 想成为命令行高手,掌握这一篇就够了。</p> +<blockquote> +<p>熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-47-54.png" +width="477" +height="287" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="398px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/practical-tutorials/project-based-learning" target="_blank" rel="noopener" +>基于实际项目的学习</a>,这是一个巨大的代码工程资源索引,里面列举了针对各种编程语言的个人项目,当你不知道该如何去深入学习一门编程语言的时候,选择一个这里的项目然后自己动手跟着练一遍效果绝对惊人。入选的项目都十分有趣,比如怎样用 C 写一个解释器、怎样写一个自己的编辑器、自己动手实现 TCP/IP 协议栈,等等。</p> +</li> +<li> +<p><a class="link" href="https://github.com/lxgw/LxgwWenKai" target="_blank" rel="noopener" +>霞鹜文楷</a>,一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。用来看书非常舒服,特别是在排版上。微信读书已经内置,如果是第三方支持自定义字体的可以试试。</p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 005 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/Wed, 26 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/<h1 id="机器文摘-第-005-期">机器文摘 第 005 期</h1> +<h2 id="长文">长文</h2> +<h3 id="穿越到-1983-年学习-basichttpslinuxcnarticle-11091-1html"><a class="link" href="https://linux.cn/article-11091-1.html" target="_blank" rel="noopener" +>穿越到 1983 年学习 BASIC</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-10-33-53.png" +width="1006" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="156" +data-flex-basis="374px" +></p> +<blockquote> +<p>很多著名的程序员,尤其在计算机游戏行业,孩童时期就在苹果 II 和 Commodore 64 这样的 8 位计算机上开始编写游戏,John Romero、Richard Garriott 和 Chris Roberts 都是这样的例子。这好理解。在 8 位计算机时代,很多游戏只能在计算机杂志和书籍中以印刷的 BASIC 程序清单方式得到。如果你想玩其中一款游戏,就必须手工键入整个程序。不可避免的,你可能遇到一些问题,所以你就得调试你的程序。等到你让它可以工作起来了,你就已经对程序是如何运行的有了足够的了解,你就可以开始自己修改它了。如果你是一个狂热的游戏玩家,你几乎必然会成为一名优秀的程序员。</p> +</blockquote> +<p>喜欢小霸王的小伙伴(老伙伴?),不可错过的文章,一起跟随作者回忆一下如何在老古董电脑上运行BASIC程序,顺便怀念一下当年靠着一本说明书就在小霸王学习机上编写(抄写)游戏的时光。</p> +<ul> +<li>文中提到的<a class="link" href="https://vice-emu.sourceforge.io/" target="_blank" rel="noopener" +> Commodore64 电脑可以在这里下载模拟器</a>。</li> +</ul> +<h3 id="在-github-的-pages-服务里跑-sqlitehttpsphireskygithubioblog2021hosting-sqlite-databases-on-github-pages"><a class="link" href="https://phiresky.github.io/blog/2021/hosting-sqlite-databases-on-github-pages/" target="_blank" rel="noopener" +>在 Github 的 Pages 服务里跑 SQLite</a></h3> +<p>作者尝试做一个小网站来显示一些统计数据,于是他想到了用数据库,但是,使用数据库需要托管和维护后端服务,或者每次将整个数据集下载到浏览器中(当数据集超过10MB时,体验就变得很差劲)。</p> +<p>于是作者开始琢磨有没有办法找到一个可以在静态服务器上搞一个数据库服务得可能,毕竟提供静态服务的地方有很多(如 GitHub,GitLab,Netlify 等等)。</p> +<p>一通折腾下来(借助了 WASM 技术并适当的进行一些魔改),作者竟然实现了一个 100% 静态托管的数据库服务。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-10-10-18.png" +width="864" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +></p> +<h3 id="语句表达式和海象操作符httpswwwzlovezlcnarticlesstmt-expr-and-walrus-operator"><a class="link" href="https://www.zlovezl.cn/articles/stmt-expr-and-walrus-operator/" target="_blank" rel="noopener" +>语句、表达式和海象操作符</a></h3> +<p>这是一篇介绍如何通过“海象操作符“(类似这样:<code>foo := 'bar'</code>)使得Python语句更加精炼的文章。</p> +<p>这种操作符之所以可以使得语句更加精炼,主要原因就是它使得一句代码既进行了赋值然后又作为表达式返回了值。</p> +<p>之前写 Python 代码的时候都没注意还有这种写法,而且貌似这在 C 和 C++ 中都是基本的特性。不过 C 和 C++ 是赋值语句<code>=</code>直接就返回了表达式的值,同时这给程序员提供了出错机会(有不少人应该还记得条件判断时少写了个等号导致的问题)。</p> +<h3 id="给个人开发者的一些建议英文httpsnewsycombinatorcomitemid32647091"><a class="link" href="https://news.ycombinator.com/item?id=32647091" target="_blank" rel="noopener" +>给个人开发者的一些建议(英文)</a></h3> +<p>hacker news 上的网友针对有志于运营自己的SaaS产品的个人开发者提了一些心得和建议。</p> +<p>摘抄一点儿如下:</p> +<ul> +<li>关于做什么,做那些你自己都愿意付费的东西,别指望做出一个你自己都不想花钱使用的产品有别人来买单;</li> +<li>还是关于做什么,不要做需要漂亮UI的东西,那会让你陷入编码之外的很多麻烦(确实很牵涉精力),如果提供的工具能够通过简单交互就能提供优质服务最佳;</li> +<li>如果有可能,尽量提供自助服务模式,也就是说让用户不用见到你就可以自行操作付款了(作者这是有多社交恐惧?);</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://visualgo.net/zh" target="_blank" rel="noopener" +>数据结构与算法可视化</a>,是一个学习算法知识的好工具。通过动图来演示和讲解数据结构和算法实现原理,针对每一个常用算法不仅有直观的图示,还附有一篇详细的文档,内涵原理知识以及代码实例,网站甚至还提供了答题练习功能,可以一边学习一边做题。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-31-46.png" +width="1072" +height="321" +loading="lazy" +class="gallery-image" +data-flex-grow="333" +data-flex-basis="801px" +></p> +<ul> +<li><a class="link" href="https://lisperator.net/slip/" target="_blank" rel="noopener" +>SLip</a>,一个在浏览器中运行的Lisp解释器,使用Javascript实现。网站提供了一个简易的IDE,可以直接在页面中进行编程开发,还提供了图形绘制的扩展包,用于学习lisp语言非常合适。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-35-46.png" +width="497" +height="363" +loading="lazy" +class="gallery-image" +data-flex-grow="136" +data-flex-basis="328px" +></p> +<ul> +<li><a class="link" href="https://www.lfd.uci.edu/~gohlke/pythonlibs/" target="_blank" rel="noopener" +>针对 Windows 预先编译的 Python 扩展包</a>,在使用Python的时候,尤其是在Windows环境,经常会遇到有些扩展包由于依赖某些二进制库的原因导致无法通过pip直接安装,自己动手编译又十分麻烦。这个网站提供了各种预编译版本,可以直接下载网站提供的whl文件到本地然后安装。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-40-07.png" +width="675" +height="345" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="469px" +></p> +<ul> +<li><a class="link" href="https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing" target="_blank" rel="noopener" +> 3D 渲染器入门</a>,一套计算机图形学的入门教程,从原理讲解开始,手把手教你用C++语言编写一个自己的光线追踪渲染器。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-48-21.png" +width="531" +height="361" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></p> +<ul> +<li><a class="link" href="https://htmldog.com/" target="_blank" rel="noopener" +>HTMLDOG</a>,前端开发基础知识大全,主要是 HTML、CSS、Javascript 的手把手教学以及语言参考。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-52-21.png" +width="1862" +height="709" +loading="lazy" +class="gallery-image" +data-flex-grow="262" +data-flex-basis="630px" +></p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 004 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/Tue, 18 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/<h1 id="机器文摘-第-004-期">机器文摘 第 004 期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-09-53-01.png" +width="324" +height="702" +loading="lazy" +class="gallery-image" +data-flex-grow="46" +data-flex-basis="110px" +></p> +<p>美国德州仪器公司出品的TI图形计算器是一种既能计算又能作图的新型的数学使用工具,它具备符号代数系统、几何操作系统、数据分析系统等,可以直观地绘制各种图形,并进行动态演示、跟踪轨迹。</p> +<p>TI实体计算器的售价十分昂贵(相较于其他消费类计算器),这里有一个开源项目<a class="link" href="http://wabbitemu.org/" target="_blank" rel="noopener" +>wabbitemu</a>,使用C语言编写的一个TI计算器的模拟器,可以在电脑上运行并模拟TI计算器,支持多种型号,如TI-82、TI-83、TI-83-plus(需要加载对应的ROM)等。</p> +<p>甚至有人基于这个项目编译出了Android的版本,安装后手机秒变成高级科学计算器。</p> +<p>想进一步了解TI计算器的强大,可以看一下这篇文章<a class="link" href="https://zhuanlan.zhihu.com/p/148392866" target="_blank" rel="noopener" +>《计算器与计算器游戏发展简史》</a>。</p> +<ul> +<li><a class="link" href="http://www.liubaoyi.com/wp-content/uploads/2014/11/Android_Wabbitemu.zip" target="_blank" rel="noopener" +>TI计算器模拟器安卓版本下载地址(含ROM文件)</a></li> +<li><a class="link" href="http://www.liubaoyi.com/wp-content/uploads/2014/11/CX-C-CAS-%E5%9B%BE%E5%BD%A2%E8%AE%A1%E7%AE%97%E5%99%A8%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97.zip" target="_blank" rel="noopener" +>TI计算器使用说明书</a></li> +</ul> +<p>以上资源来自<a class="link" href="http://www.liubaoyi.com/" target="_blank" rel="noopener" +>@Karen的日志</a></p> +<h2 id="观点">观点</h2> +<blockquote> +<p>社交媒体的正确使用方法: +一,不浪费一秒钟时间和知识结构相差太大的人去解释/讨论。你没有义务也没有这个精力。对任何不友好评论,迅速拉黑。 +二,通过公开展示你的思考,来寻找在知识结构,兴趣或技能上,可能与你产生互补作用,或者 1+1&gt;2 的效应的朋友。公开展示长期留存的文字记录,效率最高。</p> +</blockquote> +<p>来自<a class="link" href="https://weibo.com/5339148412/Mal0hACJr" target="_blank" rel="noopener" +>@硅谷王川</a></p> +<h2 id="长文">长文</h2> +<h3 id="我是如何用21天刷完sicp">我是如何用21天刷完SICP</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-56-50.png" +width="411" +height="300" +loading="lazy" +class="gallery-image" +data-flex-grow="137" +data-flex-basis="328px" +></p> +<p>SICP 全称 Structure and Interpretation of Computer Programs,翻译过来叫《计算机程序的构造和解释》,是一本关于计算机程序设计的总体性观念的基础教科书,由麻省理工学院出版社与麦格罗希尔出版社共同出版营销。作者是麻省理工学院教授哈尔·阿伯尔森、杰拉德·杰伊·萨斯曼。</p> +<p>这本书是计算机编程领域非常经典的一本教科书,内容覆盖范围非常广泛,从编程入门一直到教你亲手设计实现一个编程语言解释器。虽然是一本几十年前的书,但是书中的编程理念如数据驱动、过程抽象等到现在仍不过时。可以说是程序员修炼“内功心法”必读的一本好书。</p> +<p>这篇<a class="link" href="http://numbbbbb.com/2016/03/28/20160328_%E6%88%91%E5%A6%82%E4%BD%95%E7%94%A8%E4%B8%A4%E5%91%A8%E6%97%B6%E9%97%B4%E5%88%B7%E5%AE%8C%20SICP/" target="_blank" rel="noopener" +>《我是如何用21天刷完SICP(中文)》</a>的文章讲述了作者通过阅读本书学习的过程和心得,里面的观点可以借鉴,我在看完之后也想再把这本书拿出来学习一遍。</p> +<p>觉得看书太晦涩的,可以到下面这个项目里下载本书作者课堂讲解视频(国内好心人给做了翻译字幕)</p> +<ul> +<li><a class="link" href="https://learningsicp.github.io/" target="_blank" rel="noopener" +>『计算机程序的结构和解释』公开课 翻译项目</a></li> +<li><a class="link" href="https://pan.baidu.com/s/1o78bsYA" target="_blank" rel="noopener" +>百度网盘SICP文件夹</a></li> +<li><a class="link" href="https://www.bilibili.com/video/av8515129/" target="_blank" rel="noopener" +>中译版视频专辑列表(bilibili)</a></li> +</ul> +<h3 id="图解stable-diffusion模型">图解Stable Diffusion模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-55-05.png" +width="937" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="242" +data-flex-basis="581px" +></p> +<p>这篇<a class="link" href="https://jalammar.github.io/illustrated-stable-diffusion/" target="_blank" rel="noopener" +>图解Stable Diffusion模型(英文)</a>详细讲解了 Stable Diffusion(最近比较火的那个可以通过文字描述进行绘图的AI模型)的工作原理。文中使用清晰的图示阐述了“扩散”模型是怎样通过给图片增加噪声一步一步生成图像的。</p> +<h3 id="wine是如何工作的">Wine是如何工作的</h3> +<p>Linux桌面用户都遇到过在不得不运行 Windows 软件的时候,这个时候就可以使用这个叫做 Wine 的兼容程序,它可以让你在 Linux 下执行 win32 程序。( Valve 最新出品的游戏掌机 Steam Dect 就使用了 Wine 作为兼容层来运行 Windows 平台下的游戏)。</p> +<p>Wine 的名字来自于 “Wine Is Not an Emulator” 这个英文缩写。</p> +<p>这篇<a class="link" href="https://werat.dev/blog/how-wine-works-101/" target="_blank" rel="noopener" +>《Wine是如何工作的(英文)》</a>介绍了它的基本工作原理。</p> +<h3 id="在-windows-记事本里运行光线追踪">在 Windows 记事本里运行光线追踪</h3> +<p>光纤追踪(Ray Tracing)是一项计算机图形学技术,使用该技术渲染的计算机图像具有逼真的全局光照效果。</p> +<p>这篇<a class="link" href="http://kylehalladay.com/blog/2020/05/20/Rendering-With-Notepad.html" target="_blank" rel="noopener" +>《记事本中的光线追踪 30FPS》</a>记录了作者突发奇想要在Windows上的记事本中进行光线追踪渲染的趣事。</p> +<p>其原理是通过系统API获取到记事本窗口的句柄,然后利用钩子函数给记事本的窗体发送相应的“消息”以及覆盖对应的内存数据来实现对记事本窗体界面的“魔改”。最终实现了在另一个进程里执行光线追踪算法,然后借用记事本中显示的字符来替代画面像素,从而“渲染”出画面的效果。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="github.com/SerenityOS/serenity" >SerenityOS项目</a>,一个从头开始的桌面操作系统,内核采用类似Unix的架构,界面外观则仿照了上世纪90年代Windows的窗口风格。作者并未将其定位成玩具,而是一款具备生产力的操作系统软件。 除了操作系统本身,这个项目还有配套的编程语言Jakt、自己的浏览器引擎LibWeb和浏览器Ladybird ​​​</p> +</li> +<li> +<p><a class="link" href="https://github.com/ruanyf/document-style-guide" target="_blank" rel="noopener" +>《中文技术文档写作规范》</a>,<a class="link" href="https://www.ruanyifeng.com/blog/" target="_blank" rel="noopener" +>阮一峰老师</a>整理的技术文档写作规范,规定了标题、文本、段落、标点符号等文档元素的使用约定,需要经常编写技术文档的朋友可以收藏看看。</p> +</li> +<li> +<p><a class="link" href="https://freehand.yunwooo.com/" target="_blank" rel="noopener" +>Freehand意绘</a>,一个在线的AI绘图工具,可以根据文字描述帮助你生成图片,界面简洁友好,使用方便。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-58-24.png" +width="1063" +height="525" +loading="lazy" +class="gallery-image" +data-flex-grow="202" +data-flex-basis="485px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/izackwu/TeachYourselfCS-CN" target="_blank" rel="noopener" +>计算机科学自学指南</a>,提供了一份自学计算机科学的全方位资料大全,可以根据内容系统地进行学习计算机科学相关的知识。</p> +<blockquote> +<p>互联网上,到处都有许多的学习资源,然而精华与糟粕并存。你所需要的,不是一个诸如「200+ 免费在线课程」的清单,而是以下问题的答案:</p> +<p>你应当学习 哪些科目,为什么? +对于这些科目,最好的书籍或者视频课程 是什么? +在这份指引中,我们尝试对这些问题做出确定的回答。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://stevens.netmeister.org/631/" target="_blank" rel="noopener" +>UNIX环境中的高级编程</a>,一套编程教程,在课程中,主要学习用C编程语言开发复杂的系统级软件,同时深入了解Unix操作系统(以及属于该家族的所有操作系统,如Linux,BSD,甚至Mac OS X)及其编程环境。</p> +<blockquote> +<p>涵盖的主题将包括用户/内核接口,Unix的基本概念,用户身份验证,基本和高级I / O,文件系统,信号,进程关系和进程间通信。还将涵盖Unix系统上软件开发和维护的基本概念(开发和调试工具,如“make”和“gdb”)。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://codeberg.org/drummyfish/tinyphysicsengine" target="_blank" rel="noopener" +>写在C头文件里的3D物理引擎</a>,一个仅用C99标准写在C头文件里的超小物理引擎,没有依赖,直接包含头文件即可在你的工程中使用,功能完整,内置向量、三角函数、引力等计算库。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-14-04-11.png" +width="399" +height="326" +loading="lazy" +class="gallery-image" +data-flex-grow="122" +data-flex-basis="293px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 003 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/Tue, 11 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/<h1 id="机器文摘-第003期">机器文摘 第003期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-17-41.png" +width="853" +height="640" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></p> +<h3 id="收听广播可以缓解压力个人体会">收听广播可以缓解压力(<em>个人体会</em>)</h3> +<p>近期我找到一个缓解焦虑的新方法,听收音机。</p> +<p>一定要老式的那种,收听真正无线电波信号的。随便找个台,最好还带有滋滋啦啦的杂音,当作工作时的背景声音,听着听着就感觉无比的放松。但又不是简单的“粉红噪音”、“白噪音”带来的那种平静,这种“仿佛脱离现在、回到了某个时空”的感觉让人感到愉悦。</p> +<p>我还没找到相关的研究信息,有人知道原理吗?</p> +<h2 id="动向">动向</h2> +<h3 id="欧洲通过法案将强制统一usb-type-c接口为充电接口">欧洲通过法案,将强制统一USB Type-C接口为充电接口</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-15-46-02.png" +width="800" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<blockquote> +<p>欧洲议会今天以压倒性多数投票赞成在2024年底之前将USB-C作为包括iPhone和AirPods在内的各种消费电子设备的通用充电端口。</p> +</blockquote> +<p>这对于苹果来说恐怕是个坏消息,对于消费者来说应该是个好消息。不过也许以苹果公司的脾气,说不定将来取消所有物理接口也有可能。</p> +<ul> +<li><a class="link" href="https://www.macrumors.com/2022/10/04/eu-passes-law-to-switch-iphone-to-usb-c-in-2024/" target="_blank" rel="noopener" +>欧洲强制iPhone使用usb-c接口</a></li> +</ul> +<h3 id="波士顿动力承诺不将机器人武器化">波士顿动力承诺不将机器人武器化</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-15-11.png" +width="640" +height="427" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></p> +<blockquote> +<p>当地时间 10 月 6 日消息,波士顿动力、Agility Robotics、ANYbotics 等 6 家公司联合发表致行业的公开信表达了他们对这些可能性的担忧。他们称,先进的商业化机器人的经济可负担性和可获得性越来越强,其被滥用的可能性也越来越大。我们承诺不会将通用机器人或软件武器化,也不会支持其他人这么做;同时呼吁政策制定者、开发者和用户共同促进安全使用。</p> +</blockquote> +<p>我个人感觉此类声明并不会带来什么限制,相反地,我偏悲观的认为这种技术很可能以最优先的速度被应用于军事目的。</p> +<ul> +<li><a class="link" href="https://www.163.com/dy/article/HJ5DMDS005118DFD.html" target="_blank" rel="noopener" +>网易新闻:波士顿动力承诺不将机器人武器化</a></li> +</ul> +<h3 id="taocpthe-art-of-computer-programming-4b正式初版">TAOCP(《The Art of Computer Programming》) 4B正式初版</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-30-24.png" +width="756" +height="732" +loading="lazy" +class="gallery-image" +data-flex-grow="103" +data-flex-basis="247px" +> +<em>图片来自<a class="link" href="https://weibo.com/5819320755/M9LXaF5I3" target="_blank" rel="noopener" +>@算法时空</a></em></p> +<p>世界著名程序员——高德纳老师,日前在他的个人网站宣布了<a class="link" href="https://www-cs-faculty.stanford.edu/~knuth/news.html#v4b" target="_blank" rel="noopener" +>TAOCP 4B正式出版</a>的消息。</p> +<p>这部计算机世界的经典巨著,耗费了高德纳老爷子的毕生心血,虽然已经出到了第四B卷,但本书目前还没有完全写完(本书从1962年开始写(中间停了几年是因为老爷子发现没有趁手的排版软件,就顺手发明了TEX——这又是另一个宏大话题了),计划共有七卷,其中第四卷分ABC三册)。他在自己主页中提到:</p> +<blockquote> +<p>与此同时,我继续研究第3部分(第4C卷),它已经有许多令人兴奋的主题。</p> +</blockquote> +<p>我只能说:祝老爷子身体健康!</p> +<h3 id="webassembly技术发展的怎么样了">WebAssembly技术发展的怎么样了?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-45-39.png" +width="386" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="241px" +></p> +<blockquote> +<p>WebAssembly 是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如 C、C++和 Rust 等低级源语言提供一个高效的编译目标。 +——来自<a class="link" href="https://developer.mozilla.org/zh-CN/docs/WebAssembly/Concepts" target="_blank" rel="noopener" +>Mozilla官方文档关于WebAssembly概念的介绍</a>。</p> +</blockquote> +<p>WebAssembly技术号称可以在浏览器中高效执行代码,并可以很方便地将C、Rust等各种语言编译到浏览器中执行,那么目前他的使用体验如何?</p> +<p>我周末做了简单体验。</p> +<p>通过官方给出的文档和入门指南,可以很快速地搭建出程序的原型,上图就是我参考官方示例将Rust代码编译到网页中执行的效果(是一个<a class="link" href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" target="_blank" rel="noopener" +>经典的Game of life的小游戏</a>)。</p> +<p>从开发上来说,现在已经有了比较成熟的工具链(尤其是针对Rust语言到WASM的工具),和共享库的生态,想要进行开发,不必像前些年那样费心地搭建开发环境,基本上在Linux系统下简单执行几行命令即可完成环境搭建。</p> +<p>从执行效果来说,我没有做性能测试,直观感受上来说,确实比原生js快了不少。</p> +<p>但这并不是重点,我个人觉得这项技术它最大的意义在于,将之前的桌面程序技术有了向Web移植的可行性。</p> +<p>我们有可能很快就看到完全兼顾Web分发的方便和桌面程序性能体验的产品。</p> +<ul> +<li><a class="link" href="https://www.infoq.cn/article/hdwglnhub2wwklo9zz6z" target="_blank" rel="noopener" +>一则WebAssembly相关的新闻</a></li> +<li><a class="link" href="https://github.com/mbasso/awesome-wasm" target="_blank" rel="noopener" +>GitHub网友整理的关于WASM的资源大全</a></li> +<li><a class="link" href="https://rustwasm.github.io/docs/book/introduction.html" target="_blank" rel="noopener" +>一本手把手教你使用Rust语言进行WASM开发的在线电子书</a></li> +<li><a class="link" href="https://zalo.github.io/CascadeStudio" target="_blank" rel="noopener" +>一个使用WASM技术将三维设计软件CAD嵌入到网页中的开源项目</a></li> +<li><a class="link" href="https://supabase.com/blog/postgres-wasm" target="_blank" rel="noopener" +>一个使用WASM技术在浏览器中运行的PostgresSQL数据库</a></li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>在你的密码里面放上一个逗号<code>&quot;,&quot;</code>,这样当你的密码在网上被人拖库时可以给黑客增加一些麻烦,因这样会使得他在作为csv文件往他的密码字典里面导入的时候,因为逗号分隔符的错位而让他崩溃。 +注:csv文件默认使用逗号分隔符区分字段。</p> +</blockquote> +<ul> +<li>来自:佚名网友。</li> +</ul> +<blockquote> +<p>当你长期使用windows远程桌面进行远程办公时,一层一层的服务器登进去,时间长了就会陷入盗梦空间那种疑惑,我现在是在哪一层?</p> +</blockquote> +<ul> +<li>来自:我自己。</li> +</ul> +<blockquote> +<p>量子计算机就是向过去和未来借用了很多乃至无限的时间吗?刹那即永恒。 +注:量子计算机号称每个bit位可在同一时刻表示多种状态。</p> +</blockquote> +<ul> +<li>来自:我自己。</li> +</ul> +<h2 id="长文">长文</h2> +<h3 id="从0到1打造家庭弱电方案">从0到1打造家庭弱电方案</h3> +<p>现在有不少人在困惑家里的网线该如何布局,这篇<a class="link" href="https://luolei.org/home-network-1/" target="_blank" rel="noopener" +>《从0到1打造家庭弱电方案》(中文)</a>记录了作者完整的装修过程,内容十分精彩详尽。看完之后我有点儿后悔,当时装修时没有给各个房间拉上光纤,以及用了比较普通的超五类网线。</p> +<h3 id="如何配置一个完全基于命令行窗口的开发环境">如何配置一个完全基于命令行窗口的开发环境</h3> +<p>我在油管上关注了一个日本小哥(Takuya Matsuyama),是一个个人开发者,经常上传自己的开发过程录屏,他完全基于命令行窗口(控制台)进行开发,没使用任何IDE。</p> +<p>后来我参考他的配置文件给自己也配置了一套,使用fish作为shell,neovim加上各种插件作为主力编辑器,现已成为我的日常开发环境。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-11-16-56.png" +width="1571" +height="820" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +></p> +<p>有条件的可以到他的主页看看关于如何配置的详细介绍,或者直接去他的github仓库获取配置文件。</p> +<ul> +<li><a class="link" href="https://www.craftz.dog/posts" target="_blank" rel="noopener" +>Takuya Matsuyama小哥的主页</a></li> +<li><a class="link" href="https://github.com/craftzdog/dotfiles-public" target="_blank" rel="noopener" +>他的基于控制台命令行开发的各种配置文件</a></li> +</ul> +<h3 id="云桌面并不像你想的那么好">云桌面并不像你想的那么好</h3> +<p>给开发人员配置一个廉价的笔记本加上一个高性能的云端工作站,这个点子棒不棒?</p> +<p>听起来有很多的优势,兼具了性能、便携性、安全性等等。</p> +<p>不过先等一等,这里有一位作者在这样尝试了之后,给出了不少负面反馈(比如多显示器支持、GPU加速、网页视频质量等等问题),有兴趣的可以点进去看看。</p> +<ul> +<li><a class="link" href="https://mjg59.dreamwidth.org/61535.html" target="_blank" rel="noopener" +>《云桌面并不像你想象的那么好》(英文)</a></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://webusers.imj-prg.fr/~jan.nekovar/co/en/en.pdf" target="_blank" rel="noopener" +>从高中到大学,数学中常用符号和计算关系的英文名称</a>,适合对数学公式中的各种符号感到困惑的人收藏,这本小册子汇聚了所有数学符号、常用希腊字母、代数式等英文叫法介绍。</li> +<li><a class="link" href="http://www.egr.unlv.edu/~ed/x86.html" target="_blank" rel="noopener" +>如何在Ubuntu下进行x86-x64汇编语言编程</a>,一本讲解现代汇编语言的电子书,基于常用的Ubuntu系统,从认识汇编语言开始讲起,到工具链的准备和怎样编写和调试程序,都有详细的介绍。</li> +<li><a class="link" href="https://www.drawkit.com/" target="_blank" rel="noopener" +>DrawKit</a>,一个提供矢量插画的网站,有很多免费的高质量插画,可用于网站制作、软件产品等方面。</li> +<li><a class="link" href="https://missing-semester-cn.github.io/" target="_blank" rel="noopener" +>计算机教育中缺失的一课</a>,一般学校里不会教开发环境的配置和各种效率工具的使用,这本电子书就是以环境和工具为切入点,将学校学习的理论应用于实际,比较接地气。 +<blockquote> +<p>大学里的计算机课程通常专注于讲授从操作系统到机器学习这些学院派的课程或主题,而对于如何精通工具这一主题则往往会留给学生自行探索。在这个系列课程中,我们讲授命令行、强大的文本编辑器的使用、使用版本控制系统提供的多种特性等等。学生在他们受教育阶段就会和这些工具朝夕相处(在他们的职业生涯中更是这样)。 因此,花时间打磨使用这些工具的能力并能够最终熟练地、流畅地使用它们是非常有必要的。</p> +</blockquote> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 002 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/Mon, 03 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/<h1 id="机器文摘-第002期">机器文摘 第002期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-08-56.png" +width="895" +height="689" +loading="lazy" +class="gallery-image" +data-flex-grow="129" +data-flex-basis="311px" +></p> +<blockquote> +<p>MNT推出了一款名叫Pocket Reform的迷你笔记本电脑。它外形紧凑(屏幕只有7英寸),但功能齐全,据官方介绍,它的性能满足轻量办公需求,甚至还能玩一些游戏(ARM平台)。虽然现在的智能手机在性能方面已经有了很大提升,且便携性远超笔记本电脑,但是还是有相当一部分人倾向于在具有真实物理键盘的“电脑”上进行操作。</p> +</blockquote> +<p>在我看来,这台设备可能对于希望随时随地写两行代码的程序员更加具有吸引力。</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://spectrum.ieee.org/meet-an-open-source-pc-that-can-fit-in-your-pocket" target="_blank" rel="noopener" +>可以装在口袋里的开源PC</a></li> +</ul> +</li> +</ul> +<h2 id="动向">动向</h2> +<h3 id="文字直接生成3d模型">文字直接生成3D模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-41-32.png" +width="735" +height="491" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +> +谷歌实验室的几个哥们上周发布了一个新作&mdash;-DreamFusion。输入文字,就能生成带深度图和法线的3D模型。</p> +<p>开发团队声称:</p> +<blockquote> +<p>最近在文本到图像合成方面的突破是基于在数十亿个图像-文本对上训练的扩散模型。将这种方法应用于3D合成将需要标记大量的3D资产和用于对3D数据进行去噪的高效架构,而目前这都不太可行。在DreamFusion中,我们通过使用预先训练的2D文本到图像扩散模型来执行文本到3D合成来规避这些限制。我们的方法不需要3D训练数据,也不需要修改图像扩散模型,证明了预训练图像扩散模型作为先验的有效性。</p> +</blockquote> +<p>具体方法据称是来自他们新提出的“一种通过优化损失函数从扩散模型中生成采样的方法”该方法允许他们在任意参数空间中优化采样(例如3D空间)。</p> +<p>我看了一下官方给出的demo,3D模型还略显粗糙,不过可能将来算力提升之后会有改善。</p> +<p>现在,除了插画师受到了职业威胁,就连3D建模工程师的工作也有可能被AI取代?</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://dreamfusion3d.github.io/" target="_blank" rel="noopener" +>DreamFusion官方介绍</a></li> +</ul> +</li> +</ul> +<h3 id="通过文字描述生成语音的人工智能也来了">通过文字描述生成语音的人工智能也来了</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-32-54.png" +width="909" +height="451" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="483px" +></p> +<blockquote> +<p>Twitter 用户 Felix Kreuk 发布了从文本到音频 (Text to Audio) 的 AI 模型:AudioGen +AudioGen 可以 +(1) 根据文本生成音频;(2) 续写指定的音频;(3) 同时做以上两件事,根据指定文本描述生成指定音频。 +作者给出的展示DEMO里展示了如下文本生成的语音: +(1)在风声中吹口哨 +(2)男人在说话时伴有鸟和狗的叫声 +(3)警报器和嗡嗡作响的引擎接近后走远 +(4)鸽子咕咕叫并伴有沙沙的声音 +(5)男人说话的声音,背景伴有人群欢呼声</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-33-50.png" +width="1147" +height="629" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +> +从作者公布的架构图上可以看出来,采用的也是Transformer神经网络。之前在看到AI画图时我就想到同样的原理可能用于生成音频,结果这才没过几天,人家都已经做出来了。</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://weibo.com/1309158107/M8mPt5LgI" target="_blank" rel="noopener" +>@海辛Hyacinth</a></li> +<li><a class="link" href="https://felixkreuk.github.io/text2audio_arxiv_samples/" target="_blank" rel="noopener" +>作者的demo和原理介绍页面(托管在github)</a></li> +</ul> +</li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>站桩的简单,枯燥和有效,就好比持有 sp500 指数基金简单,枯燥但足以秒杀 95%以上的基金经理一样。 +莫将容易得,便作等闲看。</p> +</blockquote> +<ul> +<li>来自<a class="link" href="https://weibo.com/5339148412/LeTdmcfjW" target="_blank" rel="noopener" +>@硅谷王川</a></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li> +<p><a class="link" href="https://randomascii.wordpress.com/2022/09/29/why-modern-software-is-slow-windows-voice-recorder/" target="_blank" rel="noopener" +>为什么现在的软件这么慢(英文)</a>,作者在Windows系统(Windows 10, 21H2版本)下使用“录音机App”的时候获得了极差的体验(确切的说是软件启动后大概卡死了将近20秒)。于是动手分析到底是什么原因导致,然后发现主要是这个软件启动后疯狂扫描“用户”文件夹下的录音文件用于构建界面中的录音列表,这种密集IO操作导致软件停止响应。作者花了很大的篇幅来吐槽这种行为,对于微软工程师为什么这么做表示莫名其妙。不过由于我们现在的计算机大都使用了固态硬盘,而且我们的习惯一般不会在“用户”文件夹下存放太多文件,所以这个体验应该不太明显。但即使这样,我也同样对Windows系统现在的软件质量感到担忧。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-18-24-45.png" +width="643" +height="310" +loading="lazy" +class="gallery-image" +data-flex-grow="207" +data-flex-basis="497px" +></p> +</li> +<li> +<p><a class="link" href="http://zhangtielei.com/posts/blog-involution-analysis.html" target="_blank" rel="noopener" +>内卷、汉明问题与认知迭代(中文)</a>,作者较为科学地分析了内卷的定义和形态,从而引申出了关于什么是“人生中重要的事”的思考,文章虽然比较长,但也清晰易懂,发人深省。部分引用如下:</p> +<blockquote> +<p>从大的方面说,社会需要创新,个人则需要突破,而创新和突破又都要求我们不断地精益求精。那么,内卷与精益求精是本质上一样的吗?如果不是,两者的区别在哪?</p> +</blockquote> +<blockquote> +<p>在某件事情上花费太多精力,并不一定就是内卷;在无关紧要的事情上花费精力才是真的内卷。</p> +</blockquote> +<blockquote> +<p>汉明早年在贝尔实验室工作。那年春天,他经常和几位同事聚在一起在餐厅吃午饭。吃饭期间,他向其中一位叫Dave McCall的同事提了一个问题:“在你的领域里最重要的问题是什么?”大约一个星期后,再次一起午餐时他继续发问:“你目前正在研究的最重要的问题是什么?” 显然,这位同伴对于这两个问题的回答并不一样。于是他接着问:“如果你当前做的并不是最重要的事,那为什么还要一直花时间投入去做呢?”有了这「灵魂三问」之后,于是——在那个春天接下来的日子里,汉明不得不另找别的同伴一起吃午饭了…… +汉明的问题听起来有些让人生厌,但后来演变成了一个在学术界很受关注的问题——汉明问题(The Hamming Question)。它本来说的是科研选题的事情,但实际上关乎人生最重要的选择。</p> +</blockquote> +<blockquote> +<p>内卷,指的是在低水平的状态下无实质意义的消耗。这里的「低水平」,可能是客观的,也可能是主观的。 +针对主观的低水平状态,我们需要冲破意识层面的障碍,同时把读书、实践和思考结合起来,反复迭代,这样才可能跃升到更高的认知层次上。 +而针对客观的低水平状态,唯有认真对待汉明问题,选择好真正重要的人生大方向,才能避免卷入那些无关紧要的、无谓的消耗中去。这才是真正考验大智慧的时候了。</p> +</blockquote> +</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/mtdvio/every-programmer-should-know" target="_blank" rel="noopener" +>每个程序员都需要知道的</a> ,整理了一份资源合集,包含了软件工程师技能相关的各类知识资源,包括算法、数据结构、浮点、Unicode、时间、内存、分布式、正则、安全、架构、工程哲学、实践、职业发展、软技能。。。等等,以及一些可用于技能训练和学习的站点。看起来非常符合我这种“收藏了就是学习了”的囤积爱好者的胃口。</li> +<li><a class="link" href="https://github.com/jefflomax/word-writer-6-commodore-64" target="_blank" rel="noopener" +>Word Writer 6 6502汇编源码</a>,是一份开源的Word Writer 6的6502汇编源码,可在模拟器下编译运行。用来学习6502汇编是一个不错的项目。上个世纪80年代爆火的计算机Commodore 64是很多复古计算机爱好者(包括我)的最爱,Word Writer 6是该平台上流行的文字排版编辑软件。</li> +<li><a class="link" href="https://almanac.httparchive.org/zh-CN/2022/" target="_blank" rel="noopener" +>HTTP Archive的年度报告</a>,这份报告详细(超级详细)分析了目前全球各在线网页中所使用的技术,从页面中的“CSS”、“Javascript”、“字体”以及用户体验中的“搜索引擎优化”、“移动端支持”等超过20个方面进行展示,内容十分详尽,有种看NBA的进球统计的感觉。</li> +<li><a class="link" href="https://javascriptquiz.com/" target="_blank" rel="noopener" +>Javascript Quiz</a>,一份关于Javascript的小测验,可在线作答,一共十道选择题,全是关于Js语法的常见坑,每道题答完之后都可以点击“info”图标获取关于这道题的详细解释。我试着做了一下,勉强及格。</li> +<li><a class="link" href="https://www.musi-co.com/listen/streams" target="_blank" rel="noopener" +>Streams</a>,这里有一批纯AI创作的音乐,由AI负责作曲和编曲,工程师只是把这些乐谱放入DAW软件中进行混音和录音,完成度很高,听起来相当上头。</li> +<li><a class="link" href="https://learningsynths.ableton.com/zh-Hans/get-started" target="_blank" rel="noopener" +>学习合成器</a>,这个网站提供了一本交互式电子书,讲解了电子合成器的原理,还单独提供了一个交互页面用于调制和体验各种合成器音色。我尝试了一下,真的很直观,在页面中直接可以修改各种振荡器波形、滤波器、LFO等参数,非常适合用于音色合成入门。</li> +<li><a class="link" href="https://llh911001.gitbooks.io/mostly-adequate-guide-chinese/content/" target="_blank" rel="noopener" +>函数式编程指北</a>,在线电子书,讲解函数式编程的范式,以Javascript进行举例,作者风趣幽默,深入浅出,觉得被函数编程概念唬住的可以去看看。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 001 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/Wed, 28 Sep 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/<h1 id="机器文摘-第001期">机器文摘 第001期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/2022-09-28-09-38-31.png" +width="641" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="269px" +></p> +<blockquote> +<p>TurnT是一个颇具创意的唱盘设计,它把智能手机与模拟黑胶的老式音乐播放方式相结合。用家把触笔放在手机屏幕显示的黑胶唱片上,它即开始播放。从内部结构上看,它其实是一个无线扬声器,可以连接到智能手机播放音乐。TurnT这种播放音乐的体验增加了互动的体验感,如同在实际的唱片上一样,挪开唱针会立即停止音乐,将其“向内”移动到手机屏幕上显示的光盘中心就可以播放音乐。要更改歌曲,您可以通过滑动来更改专辑,还可以重新定位。</p> +</blockquote> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://www.sohu.com/a/573073318_121124377" target="_blank" rel="noopener" +>把手机变成黑胶唱机 &mdash; Yamaha发布了与智能手机配合使用的独特音乐设备</a></li> +</ul> +</li> +</ul> +<h2 id="动向">动向</h2> +<h3 id="ai生成图像技术带来的艺术危机">AI生成图像技术带来的“艺术危机”</h3> +<blockquote> +<p>近几周,基于AI生成的图像艺术作品的新闻越来越多,以DALL-E、Stable Diffusion等神经网络模型为代表的图像生成类AI进化越来越快,已达“以假乱真”程度。我也在动手尝试后惊叹他们的生成效果非常逼真和充满想象力。然而很快,此类AI就引起设计师、画师、艺术家的反对(恐慌?)。当然也有很多持积极态度,把它们当作工具加以利用,甚至不乏商业头脑灵活的人士,已经通过AI作画开始获取收益。于是引发了一系列的反应和讨论。</p> +</blockquote> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://www.uisdc.com/unsplash-prohibited-ai" target="_blank" rel="noopener" +>知名图库Unsplash 宣布禁传AI生成图像</a></li> +<li><a class="link" href="https://www.51cto.com/article/719747.html" target="_blank" rel="noopener" +>付费图库集体封禁AI生成图片</a></li> +<li><a class="link" href="https://www.bilibili.com/read/cv18571483" target="_blank" rel="noopener" +>AI 绘画 Windows 本地零基础搭建 Stable Diffusion</a></li> +<li><a class="link" href="https://zhuanlan.zhihu.com/p/560226367" target="_blank" rel="noopener" +>AI数字绘画 stable-diffusion 保姆级教程</a></li> +<li><a class="link" href="https://github.com/ahrm/UnstableFusion" target="_blank" rel="noopener" +>一个包装好的AI绘图开源GUI客户端</a></li> +</ul> +</li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>程序员是计算机的翻译官。他们先是把人类的语言翻译成计算机的语言,现在又教会了计算机使用人类的语言。</p> +<ul> +<li>来自<a class="link" href="https://weibo.com/6827625527/M7vHNl9HD" target="_blank" rel="noopener" +>@t0mbkeeper</a></li> +</ul> +</blockquote> +<h2 id="长文">长文</h2> +<ul> +<li>对很多事情都有兴趣,但是生命的时间有限,怎么办?<a class="link" href="https://news.ycombinator.com/item?id=32628511" target="_blank" rel="noopener" +>这篇hacker news上的讨论(英文)</a>或许能提供一些建议。</li> +<li><a class="link" href="https://www.calnewport.com/blog/2022/05/16/taking-a-break-from-social-media-makes-you-happier-and-less-anxious/" target="_blank" rel="noopener" +>这篇文章提到了一项关于焦虑的研究(英文)</a>。研究表明,远离社交媒体(包括及时通讯工具)一个星期,可以显著提升幸福感、降低焦虑程度;</li> +<li>掌握一项技能需要时间和实践,降低预期,慢即是快。<a class="link" href="https://geekplux.com/posts/how-i-learned-programming" target="_blank" rel="noopener" +>《我是如何学会编程的》(中文)</a>,这篇文章是一位网友分享的关于他学习编程的历程。</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https:///coding-fonts.netlify.app/" target="_blank" rel="noopener" +>coding-fonts</a> ​​​是一个不错的编程字体网站,可以在线预览各种适合编程开发时用的字体,让选择更加直观。</li> +<li><a class="link" href="https://github.com/opendilab/DI-sheep" target="_blank" rel="noopener" +>深度强化学习羊了个羊</a> 这个github仓库开源了一个通过AI强化学习来玩耍“羊了个羊”游戏的模型及代码,结构清晰,效果很棒,用于了解深度强化学习知识非常不错。</li> +<li><a class="link" href="https://github.com/scutan90/DeepLearning-500-questions" target="_blank" rel="noopener" +>深度学习500问</a>这本在线书籍以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,目前在github将近50k颗星。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p> \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/1/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/1/index.html" new file mode 100644 index 000000000..aa8d8e58f --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/10/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/10/index.html" new file mode 100644 index 000000000..0bdd16f00 --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/10/index.html" @@ -0,0 +1,36 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/11/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/11/index.html" new file mode 100644 index 000000000..a08319ed5 --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/11/index.html" @@ -0,0 +1,35 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/2/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/2/index.html" new file mode 100644 index 000000000..905de2a5b --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/2/index.html" @@ -0,0 +1,36 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/3/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/3/index.html" new file mode 100644 index 000000000..6ed2addbb --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/3/index.html" @@ -0,0 +1,37 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/4/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/4/index.html" new file mode 100644 index 000000000..a42ed0499 --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/4/index.html" @@ -0,0 +1,38 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/5/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/5/index.html" new file mode 100644 index 000000000..16f35dd1f --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/5/index.html" @@ -0,0 +1,38 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/6/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/6/index.html" new file mode 100644 index 000000000..5bf24f437 --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/6/index.html" @@ -0,0 +1,38 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/7/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/7/index.html" new file mode 100644 index 000000000..1a234175b --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/7/index.html" @@ -0,0 +1,38 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/8/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/8/index.html" new file mode 100644 index 000000000..885b754e5 --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/8/index.html" @@ -0,0 +1,38 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/9/index.html" "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/9/index.html" new file mode 100644 index 000000000..37b4e3c03 --- /dev/null +++ "b/categories/\346\234\272\345\231\250\346\226\207\346\221\230/page/9/index.html" @@ -0,0 +1,37 @@ +Category: 机器文摘 - Learning & Writing! +

Categories

机器文摘

这里会定期分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘(MachineDigest)”吧。

+ \ No newline at end of file diff --git "a/categories/\347\237\245\350\257\206\347\256\241\347\220\206/index.html" "b/categories/\347\237\245\350\257\206\347\256\241\347\220\206/index.html" new file mode 100644 index 000000000..f27bf2998 --- /dev/null +++ "b/categories/\347\237\245\350\257\206\347\256\241\347\220\206/index.html" @@ -0,0 +1,32 @@ +Category: 知识管理 - Learning & Writing! +

Categories

知识管理

+ \ No newline at end of file diff --git "a/categories/\347\237\245\350\257\206\347\256\241\347\220\206/index.xml" "b/categories/\347\237\245\350\257\206\347\256\241\347\220\206/index.xml" new file mode 100644 index 000000000..da8ca84c8 --- /dev/null +++ "b/categories/\347\237\245\350\257\206\347\256\241\347\220\206/index.xml" @@ -0,0 +1,37 @@ +知识管理 on Learning & Writing!https://sbabybird.github.io/categories/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/Recent content in 知识管理 on Learning & Writing!Hugo -- gohugo.iozh-cnSat, 23 Apr 2022 00:00:00 +0000基于Markdown格式的知识管理尝试计划https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/Sat, 23 Apr 2022 00:00:00 +0000https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/<h2 id="背景">背景</h2> +<ul> +<li>之前一直有收藏文章并整理自己知识体系的习惯,使用的工具是evernote(印象笔记),十多年来收集数百篇网络文章,自己整理并编写笔记若干篇,已做到目录和标签的基本分类;</li> +<li>之前也有通过每日编写一个markdown文件来记录工作日志、零星日记的习惯,有心得感悟时都直接在工作日志中随手写入,保存起来;</li> +<li>通过github pages写过一些个人博客文章,更新频率不高,主要作为个人笔记在使用;</li> +<li>当前问题如下: +<ul> +<li>evernote用户体验逐年下降,对设备限制较多,且内容存在云端、格式封闭,个人掌控感较差,数据有无法访问的风险;</li> +<li>工作日志中散落的心得感悟没有索引,基本埋没在以日期命名的文件里,不成体系;</li> +<li>收集的数百篇网络文章基本没有进行消化阅读,未形成自己理解的内容;</li> +</ul> +</li> +</ul> +<h2 id="目标">目标</h2> +<ul> +<li>为网络收藏和个人产出的文章建立索引,把之前的“仓库”形成“体系”;</li> +<li>从evernote中迁移出来,所有数据放在本地,并通过在线网盘进行同步;</li> +<li>以纯文本+附件资源作为载体,避免对一种编辑器或工具产生过度依赖;</li> +</ul> +<h2 id="工具选择">工具选择</h2> +<ul> +<li><a class="link" href="https://obsidian.md/" target="_blank" rel="noopener" +>Obsidian</a>,用于建立最基本的知识仓库,编辑自己的知识卡片,并充分利用它的双向链接功能将收藏的文章和自己输出的内容形成体系连接起来;</li> +<li><a class="link" href="https://code.visualstudio.com/" target="_blank" rel="noopener" +>vscode</a>, 用于编辑技术文章、工作日志以及基于插件进行绘图,最终输出内容到Obsidian文件库中;</li> +<li>360网盘,用于在线实时同步存储Markdown的文件夹,任何具有同步文件功能的网盘均可;</li> +</ul> +<h2 id="具体计划">具体计划</h2> +<ul> +<li>整理文章目录:按照文章来源(网络、书籍、心得)、知识层面(技术、生活、哲学)等进行分类,形成树状目录结构;</li> +<li>整理文章标签:每篇文章虽然只属于一个目录,但是可以有多个标签,提升了检索文章的维度。目录作为知识体系的骨架分类,标签则是详细划分(如技能相关的标签就可以有:编程、绘画、音乐、写作,并还能进一步细分);</li> +<li>参考少数派文章<a class="link" href="https://sspai.com/post/62414" target="_blank" rel="noopener" +>玩转 Obsidian 01:打造知识循环利器</a>提到的Zettelkasten笔记法逐步整理多年积累的知识形成以“知识卡”(其实就是具有互相链接关系的Markdown文件)为单位的知识;</li> +<li>[[玩转 Obsidian 01:打造知识循环利器 - 少数派]]</li> +<li>阅读整理多年收集的知识文章,按照大约每周一篇的节奏,产出自己理解后的知识卡片,形成“知识循环”;</li> +<li>如此往复若干时间,不断完善这个体系,工具可更换,载体亦可更换,唯独不变的是探索、求知的心;</li> +</ul> \ No newline at end of file diff --git "a/categories/\347\237\245\350\257\206\347\256\241\347\220\206/page/1/index.html" "b/categories/\347\237\245\350\257\206\347\256\241\347\220\206/page/1/index.html" new file mode 100644 index 000000000..ce518e569 --- /dev/null +++ "b/categories/\347\237\245\350\257\206\347\256\241\347\220\206/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/ \ No newline at end of file diff --git "a/categories/\350\257\273\344\271\246\347\254\224\350\256\260/index.html" "b/categories/\350\257\273\344\271\246\347\254\224\350\256\260/index.html" new file mode 100644 index 000000000..f612eb427 --- /dev/null +++ "b/categories/\350\257\273\344\271\246\347\254\224\350\256\260/index.html" @@ -0,0 +1,32 @@ +Category: 读书笔记 - Learning & Writing! +

Categories

读书笔记

+ \ No newline at end of file diff --git "a/categories/\350\257\273\344\271\246\347\254\224\350\256\260/index.xml" "b/categories/\350\257\273\344\271\246\347\254\224\350\256\260/index.xml" new file mode 100644 index 000000000..01080d94e --- /dev/null +++ "b/categories/\350\257\273\344\271\246\347\254\224\350\256\260/index.xml" @@ -0,0 +1,133 @@ +读书笔记 on Learning & Writing!https://sbabybird.github.io/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Recent content in 读书笔记 on Learning & Writing!Hugo -- gohugo.iozh-cnSun, 18 Apr 2021 00:00:00 +0000《少有人走的路》读书笔记https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Sun, 18 Apr 2021 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<h2 id="简介">简介</h2> +<p>《少有人走的路-心智成熟的旅程》这本书据说是畅销多年,经久不衰,在豆瓣上评分很高。不少人纷纷表示此书给自己带来了很多思考和感悟。我是在今年第二遍阅读了此书,之前大约十年前草草看过一遍,印象不够深刻。但今年再读,书中就有很多文字能够读进去了。虽然作者本身对“爱”的定义和解读我并不完全认同,以及作者也许受宗教信仰的影响,在某些观点上有一定的倾向,但都不妨碍这本书给我带来震撼。</p> +<h2 id="笔记">笔记</h2> +<blockquote> +<p>人生苦难重重。</p> +</blockquote> +<p>开篇就表达了最基本的设定,让我闭上本来想要抱怨的嘴,不得不跟着往后翻看有没有可以解决的答案。</p> +<blockquote> +<p>解决人生问题的关键在于自律。人若缺少自律,就不可能解决任何麻烦和问题。在某些方面自律,只能解决某些问题,全面的自律才能解决人生所有的问题。</p> +</blockquote> +<p>在认真看本书之前,我对“自律”的理解还仅限于在生活上严格要求自己,作息规律、遵守诺言、办事靠谱、简约不浪费。但作者显然不仅仅是这个意思,否则也用不着用很大的篇幅来说“自律”。</p> +<p>看一下作者对“自律”的定义。</p> +<blockquote> +<p>所谓自律,就是主动要求自己以积极的态度去承受痛苦,解决问题。自律有四个原则:推迟满足感、承担责任、忠于事实、保持平衡。</p> +</blockquote> +<p>只有不回避问题、以积极的心态去解决问题,才算作是自律。即便在生活中早睡早起、刻苦读书、勤奋工作,如果遇到问题首先想要逃避,那就不能算是自律。很惭愧,我之前在不少问题上都是以拖延为主要处理方式,本质上还是无法承受或者面对解决问题可能带来的痛苦,那么在读了本书之后,我会有意识地去改变做事原则,就拿上周来说,我终于鼓起勇气去诊所看牙,解决了拖了很久的牙结石问题(虽然智齿还没解决)。</p> +<blockquote> +<p>推迟满足感,就是不贪图暂时的安逸,先苦后甜,重新设置人生快乐与痛苦的次序:首先,面对问题并感受痛苦;然后,解决问题并享受更大的快乐。在充满问题和痛苦的人生中,推迟满足感是唯一可行的生活方式。</p> +</blockquote> +<p>这个话题不仅仅是在本书中提到过,据说有心理学家做过试验,在一群孩子里面寻找具有“推迟满足感”倾向的人(比如能够先忍住不吃巧克力以获取更大的奖励),结果证明这样的人在后续的生活中取得成功的概率要远高于先吃巧克力的人。本书首先强调这个话题,将其作为自律中的第一个原则,我想是因为道理都是相通的吧。很久之前我看过一篇讲解时间管理的文章,里面提到在规划一天的工作时,优先处理最难的那件事(文章中称“先吃掉那只青蛙”),然后当前的工作会越来越简单,这样的方式跟本书中作者所提倡的“推迟满足感”异曲同工。尽可能的正面问题、提早感受解决问题的痛苦,正是执行自律的首要原则。</p> +<blockquote> +<p>不能及时解决自己面临的问题,这些问题就会像山一样横亘在我们心中,阻碍心灵的成长和心智的成熟。很多人显然忽略了这个道理。我们必须面对属于自己的问题,这是解决问题的基本前提。 +指望别人解决自己的问题,也不是明智之举。唯一的办法&ndash;我们应该勇敢地说:“这是我的问题,要由我来解决!”</p> +</blockquote> +<p>这就牵出了第二个原则&ndash;“承担责任”。逃避问题会自然而然的推卸责任,认为这不是自己的问题,始终对于自己扮演的角色缺少清晰的认知。不过作者提到了两种情况“神经官能症”和“人格失调症”,前者属于给自己强加责任,后者属于推卸责任。这么说来,我可能有前者的倾向,很多压力都来源于此。不过作者也提到在复杂的人生道路上,判断自己该为什么事和什么人负责,这是一个永远存在的难题。</p> +<p>还有一种情况是,在有些事情上强加给自己责任,在有些事情上又没有意识到是自己的责任。读到这些章节的时候,我也在反思,当我一旦开始想要抱怨的时候,其实已经陷入“人格失调”和“神经官能”的边缘,要时刻提醒自己,不断评估自己的责任。</p> +<blockquote> +<p>忠于事实是自律的第三条原则。如果我们追求健康的生活和心智的成熟,那我们就要坚定不移地遵循这条原则。我们需要实事求是,杜绝虚假。我们越是了解事实,处理问题就越是得心应手。逃避现实的痛苦是人类的天性,只有通过自律,我们才能逐渐克服现实的痛苦,及时修改自己的地图,逐步成长。我们必须忠于事实,尽管这会带来暂时的痛苦,但远比沉湎于虚假的舒适中要好。我们必须忍受暂时的不适感,追求事实而不是假象,并承受这一过程的痛苦。</p> +</blockquote> +<p>这让我想到了“诚实”,不仅限于不撒谎(这一点实在是难以做到)。但我很快意识到作者所说的忠于事实比不撒谎更重要的是,面对事实,不可活在自己的想象里。虽然我们每个人都有自己的成见,看事情也很难看到全貌,但是不可做不基于事实的幻想,期望问题会自行消失、期望不付出努力就能得到回报。</p> +<blockquote> +<p>你既要承担责任学会推迟满足感,先苦后甜,把眼光放长远,同时又要尽可能过好当前的生活,让人生的快乐多于痛苦。</p> +</blockquote> +<p>这就是“保持平衡”,应该是一种“拿捏”吧。为了保持平衡,作者建议,适当的选择“放弃”。包括放弃过时的观念、习惯。王小波在小说中写道:“人生就是一个缓慢被捶的过程。。。”,如果不能适时的放弃一些东西,那很显然这个过程是相当痛苦的。</p> +<p>先写这么多。</p>《管理自己》阅读笔记https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/Thu, 15 Apr 2021 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/<h2 id="文章介绍">文章介绍</h2> +<p>《管理自己(Management Yourself)》作者——彼得·德鲁克。该文是《哈佛商业评论》创刊以来重印次数最多的文章之一,节选自其著作《21世纪的管理挑战》。</p> +<p>我第一次读到这篇文章,是2013年在<a class="link" href="http://www.zreading.cn/archives/3650.html" target="_blank" rel="noopener" +>左岸读书</a>的博客,当时很快就放入收藏夹,今日再次翻阅,仍觉受益匪浅。</p> +<p>摘抄部分在此记录,并附上自己的一些理解。</p> +<h2 id="笔记">笔记</h2> +<blockquote> +<p>知识工作者必须成为自己的首席执行官。你应该在公司中开辟自己的天地,知道何时改变发展道路,并在可能长达50年的职业生涯中不断努力、干出实绩。要做好这些事情,你首先要对自己有深刻的认识——不仅清楚自己的优点和缺点,也知道自己是怎样学习新知识和与别人共事的,并且还明白自己的价值观是什么、自己又能在哪些方面做出最大贡献。因为只有当所有工作都从自己的长处着眼,你才能真正做到卓尔不群。</p> +</blockquote> +<p>未来社会,体力劳动将逐渐被智能化机械所取代,人人都是知识工作者即将成为事实。每个人都需要把自己当作一个公司来看待,自己就是CEO,包揽人生的“市场”、“营销”、“生产”、“运营”等各项工作,只有从更高的视角来规划自己,才能掌握主动权,避免落入被动接受的局面。</p> +<p>与运营企业一样,经营自己的第一步还是要先了解自己,深刻认识自己的优势与不足,这样无论是制定计划还是付诸行动,才能做到目标明确、行之有效。</p> +<blockquote> +<p>多数人都以为他们知道自己擅长什么。其实不然,更多的情况是,人们只知道自己不擅长什么——即便是在这一点上,人们也往往认识不清。然而,一个人要有所作为,只能靠发挥自己的长处,而如果从事自己不太擅长的工作是无法取得成就的,更不用说那些自己根本干不了的事情了。</p> +</blockquote> +<p>这个观点跟我的直觉是相反的,在读到这段文字之前我以为自己对擅长什么了如指掌,但认真思索之后,才发现事情并没有那么简单,有些自以为是的优点根本不值得推敲,如沟通表达、对技术了解广泛、技术趋势敏感等等。至于真正做什么样的事情非常的得心应手,还真得通过认真分析才行。</p> +<blockquote> +<p>要发现自己的长处,唯一途径就是回馈分析法(feedback analysis)。每当做出重要决定或采取重要行动时,你都可以事先记录下自己对结果的预期。9到 12个月后,再将实际结果与自己的预期比较。我们只要持之以恒地运用这个简单的方法,就能在较短的时间内(可能两三年),发现自己的长处——这是你需要知道的最重要的事情。在采用这种方法之后,你就能知道,自己正在做(或没有做)的哪些事情会让你的长处无法发挥出来。同时,你也将看到自己在哪些方面能力不是特别强。最后,你还将了解到自己在哪些方面完全不擅长,做不出成绩来。</p> +</blockquote> +<p>作者给出了一个据说十分有效的方法,虽然执行起来略显繁琐且时间较长,但应该还值得一试。我个人有记录工作日志的习惯,但停留在时间消耗的记录和分析层面,并未对任务执行的结果进行预期和分析。</p> +<blockquote> +<p>首先最重要的是,专注于你的长处,把自己放到那些能发挥长处的地方。其次,加强你的长处。第三,发现任何由于恃才傲物而造成的偏见和无知,并且加以克服。</p> +</blockquote> +<p>想起了之前读到的另一本书<a class="link" href="https://book.douban.com/subject/1100470/" target="_blank" rel="noopener" +>《现在发现你的优势》</a>,虽然木桶原理说要补充自己的短板,但这里的观点则强调要充分把自己的优势利用起来,并且进行加强,这样才能更好的发挥自己。当然,努力学习新技能、新知识,发现自己的偏见和不良习惯然后克服它们也很重要。</p> +<blockquote> +<p>把预期和实际结果进行比较,也会发现自己不能做什么。我们每个人都有许多一窍不通、毫无天分的领域,在这些领域我们甚至连平庸的水平都达不到。人们,尤其是知识工作者,就不应该试图去完成这些领域的工作和任务。他们应该尽量少把精力浪费在那些不能胜任的领域上,因为从无能到平庸要比从一流到卓越需要人们付出多得多的努力。</p> +</blockquote> +<p>深有体会,不应该将时间和经历消耗在自己即使努力也达不到平庸水平的事情上,然而现实中却有很多人在被动的做着这样的事情,甚至还抱有不切实际的幻想,人生苦短,早日醒悟早日改变。</p> +<blockquote> +<p>我属于读者型,还是听者型?首先,你要搞清楚的是,你是读者型(习惯阅读信息)还是听者型(习惯听取信息)的人。绝大多数人甚至都不知道还有读者型和听者型之说,而且很少有人既是读者型又是听者型。知道自己属于哪种类型的人更少。</p> +</blockquote> +<p>这一段不知是翻译的问题还是作者没说明白,文中并未定义“读者型”、“听者型”这两种类型的工作方式具体是如何工作的,只是通过例子强调了自己工作方式的不同所带来的巨大差异。我的猜测是,“读者型”应该指的是在工作中理性和逻辑思维占上风的人,通常通过阅读逻辑缜密的文字来规划和开展工作,而“听者型”则属于感性思维偏多,通过视觉、听觉来判断事物的发展。</p> +<blockquote> +<p>如果一个组织的价值体系不为自己所接受或者与自己的价值观不相容,人们就会备感沮丧,工作效力低下。</p> +</blockquote> +<p>不要试图改变自己的价值观,这只会让你倍感痛苦,你可以更换环境或者改变组织价值体系。</p> +<blockquote> +<p>成功的事业不是预先规划的,而是在人们知道了自己的长处、工作方式和价值观后,准备把握机遇时水到渠成的。知道自己属于何处,可使一个勤奋、有能力但原本表现平平的普通人,变成出类拔萃的工作者。</p> +</blockquote> +<p>机会留给有准备的人,但前提是这个人认识到自己的长处、工作方式、价值观,所谓的把握机会,是了解了这些之后才能识别到机会。</p> +<blockquote> +<p>一般来说,一项计划的时间跨度如果超过了 18个月,就很难做到明确和具体。因此,在多数情况下我们应该提出的问题是:我在哪些方面能取得将在今后一年半内见效的结果?如何取得这样的结果?</p> +</blockquote> +<p>千里之行始于足下,如果决定开始行动,也不可把计划定的太远,自己给自己安排近期可行的执行目标,对效果要有清晰的预期,对如何取得效果应有详细而具体的计划。</p> +<blockquote> +<p>人与人之间相互信任,不一定意味着他们彼此喜欢对方,而是意味着彼此了解。因此,人们绝对有必要对自己的人际关系负责。这是一种义务。不管一个人是公司的一名成员,还是公司的顾问、供应商或经销商,他都需要对他的所有共事者负起这种责任。所谓共事者,是指在工作上他所依赖的同事以及依赖他的同事。</p> +</blockquote> +<p>成熟的处理人际关系,同样需要问文章开头的三个问题,了解他人或者共事者,是我们的义务和责任。</p> +<blockquote> +<p>在一个崇尚成功的社会里,拥有各种选择变得越来越重要。从历史上来看,却没有“成功”一说。绝大多数人只期望坚守“适当的位置”。唯一的流动性是向下的流动性。然而,在知识社会里,我们期望每一个人都能取得成功。这显然是不可能的。对许多人来说,能避免失败就行。可是有成功的地方,就会有失败。因此,有一个能够让人们做出贡献、发挥影响力或成为“大人物”的领域,这不仅对个人十分重要,对个人的家庭也同样重要。这意味着人们需要找到一个能够有机会成为领袖、受到尊重、取得成功的第二领域——可能是第二份职业,也可能是平行的职业或社会创业。</p> +</blockquote> +<p>在飞速发展(或者说在加速发展)的时代,人人都在焦虑,仿佛竞争、内卷根本无法避免,但如果合理的认识自己、管理自己,并且去用心经营的话,也许人人都有机会可以在擅长的领域做出闪光的事情,获得一份自己独有的成就。</p> +<blockquote> +<p>自我管理中面临的挑战看上去比较明显,甚至非常基本,其答案可能不言自明,甚至近乎幼稚。自我管理需要个人,尤其是知识工作者,做出以前从未做过的事情。实际上,自我管理需要每一个知识工作者在思想和行动上都要成为自己的首席执行官。</p> +</blockquote> +<p>最后一段很关键,“做出以前从未做过的事情”,即行动最为重要。这也是为什么我会花费一个小时的时间,从头又阅读一遍这篇文章,并摘录下来加以分析理解的主要原因。</p>《高效能人士的七个习惯》读书笔记https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Tue, 07 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<ol> +<li>积极是内在的,是选择的自由,是人性中最不能剥夺的部分。</li> +<li>以终为始,是要知道自己要什么,并以原则为重心,所做的决策是主动选择的结果,而非被环境所迫使的结果。</li> +<li>人类的四个天赋分别是,自我意识,良知,想象力,独立意志。</li> +<li>第四代时间管理,以原则为中心,以周为单位,设定自己所扮演的各项角色欲达成的三个重要成果,安排出每一天的第一要务,更理想的是当作每一天的特殊约会,全力以赴。每周都回顾上周周日程完成情况以及制定新的周日程,并每日调整。</li> +<li>对人不可讲效率,对事才可如此,对人应该讲效用,即某一行为是否有效。</li> +<li>以原则为重心,以良知为导向(人比事儿更重要),针对个人独有的使命,平衡发展生活中不同角色,全盘规划日常生活。</li> +<li>要想充分授权必须要具备的默契和共识包括: +<ol> +<li>预期成果。</li> +<li>应遵守的规范。</li> +<li>可用的资源。</li> +<li>责任的归属,约定考评的标准和次数。</li> +<li>明确的奖惩制度。</li> +</ol> +</li> +<li>在双赢协议中,对以下5要素应该有明确的规定。 +<ol> +<li>预期结果,确认目标和实现,方法不计。</li> +<li>指导方针,确认实现目标的原则,方针和行为限度。</li> +<li>可用资源,包括人力,财力,技术或者组织资源。</li> +<li>任务考核,建立业绩评估标准和时间。</li> +<li>奖惩制度,根据任务考核确定奖惩。</li> +</ol> +</li> +<li>制定好目标之后,还要看你的组织体系是否与目标相符合,否则就要调整系统体系。</li> +<li>我们总是喜欢匆匆忙忙地下结论,以善意的建议快刀斩乱麻地解决问题。不愿意花时间去诊断,深入了解问题的症结。</li> +</ol>《管理十诫》读书笔记https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Tue, 30 Apr 2019 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<ol> +<li>首先要通过分析知道问题是什么,才能真正洞悉解决问题的办法。</li> +<li>归根结底,所有公司最后的生命线都是信任问题,顾客要相信企业生产的产品正如它所许诺的那样好,投资者要相信公司的管理层是有能力的,员工要相信公司管理者能够兑现承诺。</li> +<li>他们根本想不到人都有缺陷,包括他们自己在内也都不是完美的。</li> +<li>问题的关键不在于机器会不会想问题,而在于人会不会想问题。</li> +<li>真正让我们陷入麻烦的并非那些我们根本不懂的东西,而是我们一知半解的东西。</li> +<li>有一种心理偏见叫做肯定的陷阱,它指的是我们努力想证明自己的观点,而非找出自己观点中的错误之处。</li> +<li>深思熟虑并不是浪费时间,而是必要之举。</li> +<li>除非有人能停下来想一想,否则一再犯同样的错误是很容易的。对每个错误都有必要进行反思和总结。</li> +<li>如果你能承认自己犯了错误,承认自己并不是战无不胜,那么你反而能得到好处。</li> +<li>管理是一门艺术,而不是一种科学。如果遇到那些想要量化人类行为的专家,你就要保持警惕了。</li> +<li>行业中的每个公司都应该力争标新立异,让自己变的与众不同,而不是随大溜。</li> +<li>要憎恨组织里的官僚作风——通用电气公司杰克·韦尔奇写给股东的信中写道。如果你想一事无成的话,那就让行政流程占据主导地位好了,去崇尚官僚主义就行了。</li> +<li>不能创造生产力的工作越努力越失败,要时刻警惕并搜寻身边那些并不能创造生产力的工作。</li> +<li>每个公司其实主要就是为现有的客户提供优质服务并努力开拓新客户群。我们在花每一分钱、设立每一个部门或是接手每一个项目时,都要问自己一个基本的问题:这能帮我们带来新客户或是为客户提供更好的服务吗?</li> +<li>将注意力放在失败上是最大的悲观主义。只要稍稍抬起你的头,改变一下你的态度,那么你的世界观就会发生巨大的变化。</li> +</ol> \ No newline at end of file diff --git "a/categories/\350\257\273\344\271\246\347\254\224\350\256\260/page/1/index.html" "b/categories/\350\257\273\344\271\246\347\254\224\350\256\260/page/1/index.html" new file mode 100644 index 000000000..a197f27ba --- /dev/null +++ "b/categories/\350\257\273\344\271\246\347\254\224\350\256\260/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/ \ No newline at end of file diff --git "a/categories/\351\232\217\347\254\224/cover.b904917cf1b54a224c3a990639f998e3.jpg" "b/categories/\351\232\217\347\254\224/cover.b904917cf1b54a224c3a990639f998e3.jpg" new file mode 100644 index 000000000..58d701ab8 Binary files /dev/null and "b/categories/\351\232\217\347\254\224/cover.b904917cf1b54a224c3a990639f998e3.jpg" differ diff --git "a/categories/\351\232\217\347\254\224/cover.b904917cf1b54a224c3a990639f998e3_hu29d28204873a516702344599315928c7_271794_250x150_fill_q75_box_smart1.jpg" "b/categories/\351\232\217\347\254\224/cover.b904917cf1b54a224c3a990639f998e3_hu29d28204873a516702344599315928c7_271794_250x150_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..25c040847 Binary files /dev/null and "b/categories/\351\232\217\347\254\224/cover.b904917cf1b54a224c3a990639f998e3_hu29d28204873a516702344599315928c7_271794_250x150_fill_q75_box_smart1.jpg" differ diff --git "a/categories/\351\232\217\347\254\224/cover.jpg" "b/categories/\351\232\217\347\254\224/cover.jpg" new file mode 100644 index 000000000..58d701ab8 Binary files /dev/null and "b/categories/\351\232\217\347\254\224/cover.jpg" differ diff --git "a/categories/\351\232\217\347\254\224/cover_hu29d28204873a516702344599315928c7_271794_120x120_fill_q75_box_smart1.jpg" "b/categories/\351\232\217\347\254\224/cover_hu29d28204873a516702344599315928c7_271794_120x120_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..656bc52cf Binary files /dev/null and "b/categories/\351\232\217\347\254\224/cover_hu29d28204873a516702344599315928c7_271794_120x120_fill_q75_box_smart1.jpg" differ diff --git "a/categories/\351\232\217\347\254\224/index.html" "b/categories/\351\232\217\347\254\224/index.html" new file mode 100644 index 000000000..283d5d72e --- /dev/null +++ "b/categories/\351\232\217\347\254\224/index.html" @@ -0,0 +1,32 @@ +Category: 随笔 - Learning & Writing! +

Categories

随笔

日常思考。

+ \ No newline at end of file diff --git "a/categories/\351\232\217\347\254\224/index.xml" "b/categories/\351\232\217\347\254\224/index.xml" new file mode 100644 index 000000000..102d31e29 --- /dev/null +++ "b/categories/\351\232\217\347\254\224/index.xml" @@ -0,0 +1,60 @@ +随笔 on Learning & Writing!https://sbabybird.github.io/categories/%E9%9A%8F%E7%AC%94/Recent content in 随笔 on Learning & Writing!Hugo -- gohugo.iozh-cnWed, 10 Feb 2021 00:00:00 +00002020年个人总结https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Wed, 10 Feb 2021 00:00:00 +0000https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h2 id="保持好奇心">保持好奇心</h2> +<ul> +<li>大概是2011年左右,我把QQ签名改成了“好奇、求知、创造”,从此再也没有改变过,我所喜欢的、热爱的、欲罢不能的事情,都被这三个词涵盖了。</li> +<li>十年过去了,很高兴自己还能保持一颗探索未知、热爱学习的心。</li> +</ul> +<h2 id="读书">读书</h2> +<ul> +<li>现在听书比读书所占比重大,阅读时间缩水明显,翻开电子书的时间都有限,更别提手不释卷。</li> +<li>年初重温《三体》,即便很多情节已烂熟于心,重读仍有新发现,休闲阅读而已,只为放松大脑。</li> +<li>其余时间陆续阅读一些杂书《原则》、《随机漫步》、《菜根谭》、《曾国藩传》等若干。</li> +<li>唯一触动较大的是年末再次翻看《计算机程序的构造和解释》,此次配合网上的公开课视频进行,跟随原书作者课程讲解节奏,对于知识的理解大有帮助,视频虽然年代久远,但知识历久弥新,比起科技业广泛应用的新兴技术,书中的计算原理以及相关的思想更像是对应了武术的“内功心法”,一旦有所突破,则在上层应用产生巨大的提升,与工作学习都大有裨益,其中玄妙不可言说。</li> +</ul> +<h2 id="摄影">摄影</h2> +<ul> +<li>户外活动大为减少,往年春天乃摄影高产期,今年却苦于疫情无法外出,摄影爱好被迫搁置,2020年对摄影技术的练习几乎停滞,无心仪作品产出。</li> +<li>卡片相机已很少使用,手机拍摄已是主流,器材追求已解毒,但如有更新的街拍机问世,心头恐怕还是会痒。</li> +<li>有一事可提,今年独自吃饭次数很多,每次都拍食物照一张,累积下来一年竟拍了几百。</li> +</ul> +<h2 id="生活">生活</h2> +<ul> +<li>压力与机遇并存,最大收获是面对挫折、困难更坦然,2020不愿多提。</li> +<li>记忆力确实有下降之趋势,回忆起来竟无亮点,亦可能本身就比较平淡。</li> +<li>发现凡事都要低调不吭声的重要性,切记四处宣扬,否则就会出现“说出来就不灵”的魔咒。</li> +</ul> +<h2 id="学习">学习</h2> +<ul> +<li>对8bit老古董计算机的兴趣不减,四处搜寻相关知识,弄了一大堆模拟器,研究过程中竟对之前所学计算机组成原理有了新的认识和理解,喜出望外,本该大学之时就应掌握的技能,到现在再学也不迟,重在理解。</li> +<li>创意类软件如blender等也持续浅尝,进步缓慢,但入门已没问题,缺少作品练习,安排即可。</li> +<li>儿子已入大学,借用假期时间,我教他编程,他给我讲解高数,算是技能交换了,费曼学习法的一个很直接的应用案例。</li> +<li>越发觉得B站是个学习的好地方,该站以后的发展不可估量,但从教育来看,很可能迅速超越国内二流大学,或者未来改变大学的形态也未可知。</li> +</ul> +<h2 id="后续计划">后续计划</h2> +<ul> +<li>希望可以继续通过写字记录学习的知识,保持一定量的文字输出,如条件实在有限,配合语音录音也可。</li> +<li>在自己热爱的事情上,持续学习,关注一下作品输出(持续开新坑),早日成为心目中的“全栈工程师”、“三级工程师”(可参见吴军《硅谷来信》中的定义)。</li> +<li>限制烟酒摄入,保持每日的活动量,能走路就不坐车。</li> +</ul>致儿子成人礼的一封信https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/Thu, 09 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/<p>序言我儿,见信如面。在这个即时通讯如此发达的时代,我选择写一封长信,以表示对你即将成人的祝贺。</p> +<p>我陷入沉思了一会儿,考虑该给你讲些什么道理。但我很快意识到,“道理”这种东西,靠听和说没有用,只能自己去感悟。而我自己也十分讨厌被说教,所以我会克制想要给你讲一番大道理的冲动,尽量避免不对等的交流形式。</p> +<p>我想我还是跟你分享一些我对这个世界的思考和想法吧。</p> +<p>茨威格在《人类群星闪耀》中写到“一个人最幸运的事情就是在他思想最活跃、精力最充沛的时候找到了他的人生使命”。看来大家都把寻找人生使命当做比较重要事情来看待。姑且就当做我这封信的主题吧。</p> +<p>寻找人生使命本质上是通过尝试在一些方向上的努力来实现对人生价值和意义的探索,每个人或多或少、或深或浅都要做这样的尝试。</p> +<p>你们学校把“成人礼”包装成一个重要的人生节点,想必是希望给你们一些感觉,让你们意识到,从这一刻起,你们开始对自己的行为负责,要开始尝试去寻找和探索了。</p> +<p>那么该如何去探索,我有一些自己的看法。</p> +<p>首先要相信一点,那就是无论是否还在上学,学习和完善自己都是一辈子的事情,不存在一个可以停止学习的时间点。就我个人来说,无论是读大学的时候还是参加工作以后,从来没有在提升自己方面有过松懈的想法,甚至我感觉工作之后对知识的渴望更加强烈了,学到的东西也比在校园里多得多。</p> +<p>当然了,学习方式跟你目前在学校这种还是差别挺大的,强度也没有那么辛苦。而且工作之后的这种学习方式才是我最认可的方式。什么方式?</p> +<p>我们一起讨论过几次王阳明的“知行合一”,为了不扯那么远,简单来说,刚才提到的学习方式就是老王早就提出的“事儿上练”。通过不断地实践,各种经历,才是学习知识的源泉。这也是为啥我在开头就说道理只能感悟不可说教,怎么感悟?事儿上感悟!经历多了自然懂。</p> +<p>所以也不用一下子被“寻找人生使命”这种“宏大话题”给吓住了,保持学习的心态,放松大胆地去经历各种事情,就是这么个过程。</p> +<p>然后呢,就是在做事的过程中,保持一颗善良、为他人多着想的心。关于这一点,我的体会是,“助人为快乐之本”真的不是一句空话。远的不说,你看你爷爷奶奶平日里多么乐于助人,用乐善好施形容他们一点儿也不为过。他们因此收获了广泛的认可,也给这个家庭带来了积极向上的生活氛围,对你老爹我向好的方面发展也起到了关键作用。</p> +<p>再有一点,也是我个人非常推崇的,就是最好能时刻对世界保持强烈的好奇心。</p> +<p>刘慈欣在短篇科幻小说《朝闻道》中讲了一个故事。外星高等文明在监视地球人类进化的过程中,距离现在几十万年前的一个原始人抬头望了望夜晚的天空,凝视了一会儿。这看似随意的行为使得外星人的警报器响了起来,因为这意味着,人类的好奇心已经发展到了星空,同时也意味着人类文明将要开始爆发式发展了。可见好奇心的重要。</p> +<p>好奇心一方面是推动我们前进的动力,同时也使得我们平凡的生活变得不那么枯燥。</p> +<p>你能经常提出一些有时连我都无法回答的问题,这让我也颇感欣慰,有些答案注定要自己去摸索着发现,我希望你能多多提问,也多自己思考,不用去管答案是什么。</p> +<p>稀稀拉拉写了这么多,估计你也不能理解太多,我像你这个年纪时估计也理解不了。不过也没关系,只是给你讲讲我个人通过思考得到的观点而已,说不定你自己以后有不同的发现,当然如果能在你以后的发展中起到一点儿提醒作用,也就挺好了。</p> +<p>希望你这次“成人礼”活动就像人类文明那一次一次对星空的凝望那样,使你能够进入人生的一个新的高速发展阶段。</p> +<p>祝:学习进步,健康成长!</p> +<p>二零一九年五月九日 写于贵阳机场</p>事如春梦了无痕https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/Thu, 19 Jul 2018 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/<p>上苍保佑吃饱饭撑着的人,中午吃完饭抽烟的时候,刷了几页微博,可能跟我关注的人有关(我一般关注段子手或者文艺思想贩卖者),感觉内容作为消遣挺合适,但是越看呢,越觉得没有营养,可能是跟我刚抽完烟进入贤者时间有关,一把把微博推开的时候(合上屏幕),心里竟涌现出一句“都是吃饱了撑的”,用以评价刚刚看过的几段不痛不痒的文字。</p> +<p>发完感慨随即想到,这句话是不是可以作为一本非常扯淡的书名呢?然后开始畅想自己写一本这样的书,里面的内容天马行空,多为吃饱了没事儿干的人才会忧伤和考虑的事情,饱暖之后各种忧虑和焦躁的事情可以化作各种思考,用于填满本书,作为同病相怜者证明自己不再孤独的弹药,一旦物质状态不能满足,则书中的内容立即退化到可有可无的状态。</p> +<p>真的,我这两三年来,刷牙沉思录这种哗众取宠的段子写了不少,缺少深度的技术文章也写过几篇,以吃饱了撑着来进行衡量的话,还真的比较符合标准,如果加以艺术润色的话,真难说能不能包装成为一本具备贩卖价值的书,至少想到这个问题之后,被自己震惊了一下,进一步对人生需求的几个层次有了切身认识。</p> +<p>无论我再怎么黑自己,有一点是不会改变,我写的那些东西至少保留了我一部分的回忆,它们记载了我在某一段时期内的心智情况,无论是用词还是造句,都能从一个侧面反映我当时的状态。而我的人生正是由若干个这样的状态所组成,随着年龄的增长,我的记忆力会越来越差,如果能够多记录一些东西下来,就算是那种吃饱了撑着才能思考的问题,也将使未来的我读起来热泪盈眶。</p> +<p>不过信息世界的问题在于,资料保存的永久性很不靠谱,说不定哪天这些信息就不在了(我写在msn空间的博客一篇也没了),甚至安全性还比不了一个纸质的笔记本,但我仍然不做过多的努力和担忧,倘若保存良好,那就作为未来回忆的佐料,倘若不幸丢失了,那就随他去吧。因为在写这些东西的同时,我已经感受一次生活了,本来也是留不住的东西,事如春梦了无痕嘛。</p> \ No newline at end of file diff --git "a/categories/\351\232\217\347\254\224/page/1/index.html" "b/categories/\351\232\217\347\254\224/page/1/index.html" new file mode 100644 index 000000000..64783aa72 --- /dev/null +++ "b/categories/\351\232\217\347\254\224/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/categories/%E9%9A%8F%E7%AC%94/ \ No newline at end of file diff --git a/favicon.png b/favicon.png new file mode 100644 index 000000000..637bbcdfa Binary files /dev/null and b/favicon.png differ diff --git a/img/avatar_huae4c06a439510c7a9061eeaabbc9a196_1766_300x0_resize_box_3.png b/img/avatar_huae4c06a439510c7a9061eeaabbc9a196_1766_300x0_resize_box_3.png new file mode 100644 index 000000000..e876311d2 Binary files /dev/null and b/img/avatar_huae4c06a439510c7a9061eeaabbc9a196_1766_300x0_resize_box_3.png differ diff --git a/index.html b/index.html new file mode 100644 index 000000000..df795b45d --- /dev/null +++ b/index.html @@ -0,0 +1,35 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/index.xml b/index.xml new file mode 100644 index 000000000..80f4a0b80 --- /dev/null +++ b/index.xml @@ -0,0 +1,11964 @@ +Learning & Writing!https://sbabybird.github.io/Recent content on Learning & Writing!Hugo -- gohugo.iozh-cnTue, 26 Sep 2023 00:00:00 +0000机器文摘 第 051 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/Tue, 26 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-20.png" alt="Featured image of post 机器文摘 第 051 期" /><h1 id="机器文摘-第-050-期">机器文摘 第 050 期</h1> +<h2 id="长文">长文</h2> +<h3 id="基于-github-pages-服务搭建个人博客">基于 Github Pages 服务搭建个人博客</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-34-26.png" +width="1600" +height="672" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="571px" +></p> +<p><a class="link" href="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/" target="_blank" rel="noopener" +>基于 Github Pages 服务搭建个人博客 </a> +这是我自己写的一篇文章,发布在<a class="link" href="https://sbabybird.github.io" target="_blank" rel="noopener" +>我的博客</a>。</p> +<p>搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。</p> +<p>但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。</p> +<p>经过多年的实践,现在已有越来越多的人选择了使用免费且易用的 GitHub Pages 服务来搭建个人博客。</p> +<p>然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。</p> +<p>他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。</p> +<p>这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。</p> +<p>本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。</p> +<h3 id="人的大脑不是由爬行脑哺乳动物脑智人脑累加而成">人的大脑不是由爬行脑、哺乳动物脑、智人脑累加而成</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-35-36.png" +width="690" +height="588" +loading="lazy" +class="gallery-image" +data-flex-grow="117" +data-flex-basis="281px" +></p> +<p>心理学界有一个关于人类大脑流传很广的理论:人的大脑主要由三层不同能力的大脑构成,位于最核心的“爬行动物脑”、随着演化逐渐增加的“低级哺乳动物脑”,以及带来更多灵活性和语言能力的“高级脑”。</p> +<p>这种理论给人的感觉就好像人的大脑是像洋葱那样,由一个“旧”的大脑结构逐渐添加“新”大脑形成。</p> +<p>而且换句话说,青蛙和鱼仍然在我们身体里,我们只是有了更高级的东西把它们包裹了起来。</p> +<p>然而以上理论只是心理学家所提出的一种错误观点,近年来随着生物科学的发展,越来越多的科学家开始指出这种错误。</p> +<p>这篇<a class="link" href="https://journals.sagepub.com/doi/10.1177/0963721420917687" target="_blank" rel="noopener" +>《你的大脑不是洋葱,你的脑子里并没有一个爬行动物》</a>是由神经科学家撰写,重点澄清了上述关于“三层大脑”的传言。</p> +<p>文章指出:之所以这种理论流传甚广,是因为大家普遍对“进化论”的进化过程有所误解,大多数人认为进化过程是一种先低级再逐渐高级的线性过程。然而事实的进化是一种同步辐射进程。</p> +<h3 id="使用-javascript-操作照片的-exif-信息">使用 Javascript 操作照片的 EXIF 信息</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-35-59.png" +width="690" +height="444" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="372px" +></p> +<p><a class="link" href="https://getaround.tech/exif-data-manipulation-javascript/" target="_blank" rel="noopener" +>使用 Javascript 操作照片的 EXIF 信息</a> +可交换图像文件格式(EXIF)是一种规范,用于指定图像和声音的格式。它通过元数据存储技术细节,所谓元数据即用来描述其他数据的数据,例如相机制造商和型号、图像拍摄日期和时间等信息。</p> +<p>最初,EXIF仅用于JPEG和TIFF两种图像格式。然而,如今,其他文件格式如PNG、WEBP或HEIC也支持EXIF以用于元数据。</p> +<p>本文将重点关注JPEG格式,探究其内部结构,然后展示如何在浏览器环境中通过JavaScript读取和更新相关的元数据。</p> +<h3 id="css-的自定义缓动曲线">CSS 的自定义缓动曲线</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-20.png" +width="690" +height="399" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="415px" +></p> +<p><a class="link" href="https://www.smashingmagazine.com/2023/09/path-css-easing-linear-function/" target="_blank" rel="noopener" +>使用 linear() 函数实现惊人的 CSS 缓动动画</a>,随着新的 CSS linear() 缓动功能的出现,我们可以创建自然感觉的动画和过渡的可能性大大扩展。Jhey Tompkins 在本文中介绍了 CSS 缓动的当前状态,并演示了 linear() 函数令人期待的特性。 ​​​</p> +<h3 id="通过放大-rom-芯片搞破解">通过放大 ROM 芯片搞破解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-35.png" +width="690" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="120" +data-flex-basis="290px" +></p> +<p><a class="link" href="https://github.com/travisgoodspeed/gbrom-tutorial" target="_blank" rel="noopener" +>gbrom</a>,通过拍摄 ROM 芯片的显微照片,将里面固件的二进制代码还原了出来,硬破解的世界就是这么朴实无华。</p> +<h2 id="资源">资源</h2> +<h3 id="免费开发云服务大全">免费开发云服务大全</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-56.png" +width="690" +height="737" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="224px" +></p> +<p><a class="link" href="https://free-for.dev/#/" target="_blank" rel="noopener" +>free-for.dev</a>。这个网站筛选收录了大量面向开发者提供的在线服务。收录的标准非常严苛:必须真正免费(免费试用的不算),如果套餐有时间限制,则至少提供 1 年的免费时间。收录的服务涵盖:云基础设施、内容托管、设计资源、字体、在线 IDE 、产品监控等。</p> +<h3 id="在线提示词工厂">在线提示词工厂</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-37-13.png" +width="690" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +></p> +<p><a class="link" href="https://promptperfect.jinaai.cn/a/NEW" target="_blank" rel="noopener" +>promptperfect</a>,来自 JinaAI 的 PromptPerfect。能自动生成提示词。让用户可以逐步调试提示词,提供了各种参数。我试着让它帮我编写 AI 作画的提示语,感觉比我自己写的要靠谱一些。</p> +<h3 id="更新的光线追踪教程">更新的光线追踪教程</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-37-26.png" +width="670" +height="553" +loading="lazy" +class="gallery-image" +data-flex-grow="121" +data-flex-basis="290px" +> +<a class="link" href="raytracing.github.io" >《花一个周末学会光线追踪》</a>,Ray Tracing in One Weekend,这本在线电子书出新版了。真正从零开始手把手教你通过光线追踪进行三维场景渲染。 ​​​事实上整个系列一共包括三部曲,继续阅读《光线追踪:下一周篇》,将添加纹理、体积(如雾)、矩形、实例、光源,并支持使用包围体积层次结构(BVH)来处理大量对象。最后,在《光线追踪:往后余生篇》中,将深入探讨创建一个非常严谨的光线追踪器所涉及的数学。</p> +<h2 id="观点">观点</h2> +<h3 id="专注是良药">专注是良药</h3> +<p>不用过多考虑某些时间的投入是否值得,而陷入对时间流逝的焦虑。</p> +<p>如果做一件事情能够使得一个人在一段时间内保持专注,就是非常值得做的事情。</p> +<p>因为,“专注”本身就是收获成果的一部分。</p> +<p>能够在快节奏的生活中,找到不容易被分散注意力、不被各种诱惑干扰、可以集中精力投入的事情,已属难得。</p> +<p>“专注”做事看似简单,却是解决各种精神内耗的良药。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>基于 Github Pages 服务搭建个人博客https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Thu, 21 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-10-50.png" alt="Featured image of post 基于 Github Pages 服务搭建个人博客" /><h2 id="背景">背景</h2> +<p>搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。</p> +<p>但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。</p> +<p>经过多年的实践,现在已有越来越多的人选择了使用免费且易用的<a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +> GitHub Pages </a>服务来搭建个人博客。</p> +<p>然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。</p> +<p>他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。</p> +<p>这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。</p> +<p>本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。</p> +<h3 id="需要预先掌握的技能和前置条件">需要预先掌握的技能和前置条件</h3> +<p><em>需要先了解这些再往下阅读本文</em></p> +<ul> +<li>了解 Git 的概念和常用的操作,知道“分支”、“提交”、“推送”、“拉取”等概念。</li> +<li>拥有 Github 账号,并且能够独立完成“仓库创建”、“本地克隆”、“提交”、“推送”等操作。</li> +<li>了解“博客”本身只是一种“网站”:其内容由若干“网页”组成,读者通过浏览器访问博客网站所在的服务器以获取这些网页内容。</li> +</ul> +<h2 id="核心思路">核心思路</h2> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-20-10.png" +width="790" +height="258" +loading="lazy" +class="gallery-image" +data-flex-grow="306" +data-flex-basis="734px" +> +简单来说,核心步骤只有三步:内容编辑、页面生成、网站发布。接下来的介绍均围绕这三件事展开。</p> +<h3 id="内容编辑">内容编辑</h3> +<p>作者编写和编辑博客内容,包括编写文章、给文章配图、给文章归类等等活动都属于内容编辑。</p> +<h3 id="页面生成">页面生成</h3> +<p>如果希望将内容变成可发布的网站,则需要使用专用的软件工具(一般为<a class="link" href="https://baike.baidu.com/item/%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99/2776875" target="_blank" rel="noopener" +>静态网站</a>生成器)将编辑的内容自动生成可供浏览器显示的博客网站页面。</p> +<h3 id="网站发布">网站发布</h3> +<p>有了网站页面,还只是一堆存放在本地的文件。若要放到互联网上进行访问,还需要一个服务器提供服务,将网站发布。</p> +<p>如果采用独立建站的方式,这一步骤会涉及大量技术工作,比如服务器采购、Web服务应用程序安装、域名映射、SSL 安全证书、网络防火墙配置等等。</p> +<p>但我们今天选择使用 Github 提供的 Pages 服务,这将大大降低上述操作的难度,很多技术细节将不必再多关注,已经由 Pages 服务默认配置好。我们只需享用配置好的环境即可。</p> +<h3 id="技术路线">技术路线</h3> +<h4 id="github-pages">Github Pages</h4> +<p>Github 本来是一个 Git 仓库托管服务商,帮助用户进行项目代码及数字资料的版本管理。不过随着用户规模提升,Github 也围绕版本管理提供了更多的辅助服务,这其中就包括 <a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +>Pages 服务</a>。</p> +<blockquote> +<p>GitHub Pages 是一项静态站点托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件,(可选)通过构建过程运行文件,然后发布网站。 可以在 GitHub Pages 示例集合中看到 GitHub Pages 站点的示例。</p> +</blockquote> +<p>Pages 服务原本用于帮助托管在 Github 上的开源项目更便捷地发布自己的宣传页面。开发团队可以简单编写几个静态页面(HTML)然后放在托管的 Git 仓库中,由 Github 将这些页面以网站服务的方式发布出去,Github 既提供了服务器资源也提供了用于公网访问的<strong>专属 URL</strong> 地址。</p> +<p>关于发布网站的<strong>专属 URL</strong> 地址的提供规则,Github 官方的介绍如下:</p> +<blockquote> +<p>若要发布<strong>用户站点</strong>,必须创建名为 <code>&lt;username&gt;.github.io</code> 的个人帐户拥有的存储库。 若要发布<strong>组织站点</strong>,必须创建名为 <code>&lt;organization&gt;.github.io</code> 的组织帐户拥有的存储库。 除非使用的是自定义域,否则用户和组织站点在 <code>http(s)://&lt;username&gt;.github.io</code> 或 <code>http(s)://&lt;organization&gt;.github.io</code> 中可用。 +<strong>项目站点</strong>的源文件与其项目存储在同一个仓库中。 除非使用的是自定义域,否则项目站点在 <code>http(s)://&lt;username&gt;.github.io/&lt;repository&gt;</code> 或 <code>http(s)://&lt;organization&gt;.github.io/&lt;repository&gt;</code> 中可用。</p> +</blockquote> +<p>根据官方介绍,Pages 提供有三种不同的网站发布服务:用户站点、组织站点、项目站点。</p> +<p>分别对应了“制作个人网站”、“制作团队组织网站”、“制作单个项目网站”的不同需求。</p> +<p>针对个人博客的搭建,很显然使用 Pages 服务发布“用户站点”是最合适的选择。</p> +<p>对于“用户站点”,Pages 最终会为用户提供的专属 URL 地址为:<code>https://你的用户名.github.io</code>,也就是说在 Gihtub 的一级域名 <code>https://github.io</code> 下给你免费提供了一个二级域名。之所以默认使用你的 Github 用户名,是因为要防止不同用户发布的地址重名导致冲突。</p> +<p><em>按照官方介绍,你也可以使用自己购买的域名,通过自己的域名进行访问。不过这涉及到更复杂的话题和操作,不在本文讨论范畴。</em></p> +<p>了解了以上基本信息后,在使用 Pages 服务时,可按照复杂度区分,采用如下几种不同的用法。</p> +<h5 id="最简单直接的使用流程">最简单直接的使用流程</h5> +<ol> +<li>手工编写 HTML 页面文件(需要掌握网页制作知识)。</li> +<li>将页面文件推送到的 Github 仓库,对于“用户站点”来说,这个仓库的命名必须为“<code>你的用户名.github.io</code>”。</li> +<li>在 Github 中设置该仓库的 Pages 服务配置,主要是选择仓库的指定“分支”用于 Pages 服务获取待发布的网页文件。</li> +<li>Github 会按照上面介绍的规则给你提供一个 URL 访问地址(<code>https://你的用户名.github.io</code>),使用浏览器打开该地址即可访问到发布的网站了。</li> +</ol> +<p><em>注:如果不理解 Git 仓库的“分支”概念,可以把它视为同一个仓库里不同的存储位置,不同的“分支”里面存储了不同的文件内容。</em></p> +<p>这个流程仅适用于非常简单网站发布,比如只包含有一个页面,因为手工编写 HTML 页面的效率十分低下,且不利于持续更新维护。</p> +<p>于是大家常用的方式是,使用一种叫做的东西,对于“博客”这类以静态页面为主的网站,十分适合。</p> +<p>“静态站点生成器”可以理解为是一个“翻译”,它能自动将你编写的文本内容根据预先的配置信息,自动生成一个完整的网站所需的全部文件(HTML、JS、CSS等)。</p> +<p>于是有了如下的改进流程:</p> +<h5 id="改进的使用流程">改进的使用流程</h5> +<ol> +<li>用户编辑好博客内容,形成保存在本地计算机的原始文档文件。</li> +<li>使用静态网站生成器将本地原始文档文件生成静态页面文件。</li> +<li>将静态页面文件推送到 Github 远端托管仓库。</li> +<li>Github Pages 服务自动被触发,将静态页面以网站形式发布出来。</li> +<li>用户通过指定 URL 地址访问已发布的博客内容。</li> +</ol> +<p>到目前为止,已经可以较为流畅地执行博客编辑、生成、发布的工作流程了。</p> +<p>但是这个流程里有个前置条件,作者必须在本地电脑上安装一个“静态站点生成器”,以用于输出转换后的、可供发布的页面。</p> +<p>所以,为了方便,Github 提供了一个默认的静态网站生成器,上述第 2 步操作实际上可以在远端仓库自动执行,这样用户只需将原始文件上传至远端仓库即可,由 Github 直接在线上完成静态页面的生成和网站发布工作。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-46-36.png" +width="937" +height="625" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></p> +<h5 id="静态站点生成器的选择">静态站点生成器的选择</h5> +<p>比较常见的静态站点生成器有:<a class="link" href="https://jekyllrb.com/" target="_blank" rel="noopener" +>Jekyll</a>、<a class="link" href="https://hexo.io/index.html" target="_blank" rel="noopener" +>Hexo</a>、<a class="link" href="https://gohugo.io/" target="_blank" rel="noopener" +>Hugo</a> 这三个。不在这里详细介绍了,因为功能都大同小异。在选定一个之后,需要去他们的官网查看文档以了解具体的使用细节,以便对自己的博客站点能够做到更深的定制。</p> +<p>我在接下来的操作步骤里,选择使用 Hugo 这个生成器。</p> +<p>主要原因是,Hugo 提供有相对来说比较美观的<a class="link" href="https://themes.gohugo.io/" target="_blank" rel="noopener" +>免费主题风格模板</a>(Jekyll 也有漂亮的,但是收费。Hexo 的定制性很强,适合有网页开发能力的人自己开发主题)。</p> +<p>我选择的主题模板是:<a class="link" href="https://themes.gohugo.io/themes/hugo-theme-stack/" target="_blank" rel="noopener" +>hugo-theme-stack</a>。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-40-58.png" +width="900" +height="300" +loading="lazy" +class="gallery-image" +data-flex-grow="300" +data-flex-basis="720px" +></p> +<h2 id="操作步骤">操作步骤</h2> +<h3 id="建立-github-仓库">建立 Github 仓库</h3> +<ol> +<li>点击这个超链接进入 <a class="link" href="https://github.com/CaiJimmy/hugo-theme-stack-starter" target="_blank" rel="noopener" +>hugo-theme-stack-starter 的 Git 仓库模板</a>。</li> +<li>点击页面中的“使用此模板”按钮,以创建你自己的仓库(注意:需先登录自己的账号才能创建)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-45-54.png" +width="925" +height="134" +loading="lazy" +class="gallery-image" +data-flex-grow="690" +data-flex-basis="1656px" +></li> +<li>建立好仓库(注意仓库命名为<code>你的用户名.github.io</code>)之后,会自动带有仓库模板的初始文件。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-47-57.png" +width="908" +height="528" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="412px" +></li> +</ol> +<h3 id="修改配置">修改配置</h3> +<ol> +<li>将仓库下载到本地。</li> +<li>打开仓库里的 config 文件夹,里面存放有配置信息。</li> +<li>按照 <a class="link" href="https://stack.jimmycai.com/guide/getting-started" target="_blank" rel="noopener" +>hugo-theme-stack 的官方文档</a>配置自己想要的效果(默认一般都够用,重点是修改自己的站点信息,如显示名称、URL 链接地址等等)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-53-02.png" +width="1466" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="515px" +> +<em>这些配置主要在 <code>config.toml</code> 和 <code>params.toml</code> 两个文件里。</em></li> +</ol> +<h3 id="编写博客文章">编写博客文章</h3> +<p>生成器会默认去仓库的 <code>content/post/</code> 文件夹下扫描其下面的所有文件夹和文件,遇到约定格式的 <code>Markdown</code> 文件就会转换成为可发布的 <code>html</code> 页面。具体约定可以查看官方的详细文档,这里介绍一种最简单的写一篇文章的过程。</p> +<ol> +<li>在 post 目录下新建一个文件夹用于存放文章的 Markdown 文件和插图文件,文件夹命名为希望编写的标题如:<code>2023-09-21-怎样搭建个人博客</code>。<em>我个人习惯将不同年份的文章在post目录下再建一级目录按照日期或年份进行区分。</em></li> +<li>在刚建立的文件夹下新建名称为<code>index.md</code>的 Markdown 文件,文件名必须为 index.md 这是由 hugo 生成器约定的。</li> +<li>在刚建立的 Markdown 文件的头部添加必要的元信息(非常关键)。 +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="l">文章标题</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">date</span><span class="p">:</span><span class="w"> </span><span class="ld">2023-09-21</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">categories</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章所属分类</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">tags</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 1</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 2</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-07-46.png" +width="787" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="220" +data-flex-basis="529px" +></li> +<li>编写文章内容。可以使用 <a class="link" href="https://markdown.com.cn/basic-syntax/" target="_blank" rel="noopener" +>Markdown 的语法</a>随意定义格式,以及插入图片。插入的图片建议保存在同级目录(也就是刚才新建的那个)中。</li> +</ol> +<h3 id="推送到仓库及发布">推送到仓库及发布</h3> +<ol> +<li>将刚才修改配置文件保存。</li> +<li>将刚才编写的博客文章保存。</li> +<li>在本地提交 commit 并 push 到 Github 仓库。</li> +<li>稍等几分钟(给 Github 那端的 Hugo 生成器留出运行时间)。</li> +<li>在 Github 仓库的 “setting” 设置页面开启 Pages 服务(只需第一次)。</li> +<li>在 Pages 设置界面里的 Source 中选择 “Deploy from a branch” ,并在下面的分支选择下拉框中选择 “gh-pages”,保存。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-17-49.png" +width="1090" +height="568" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +</ol> +<h3 id="访问你的博客站点">访问你的博客站点</h3> +<p>一般稍等几分钟之后,即可按照约定网址访问刚发布的内容了。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-31-26.png" +width="1539" +height="661" +loading="lazy" +class="gallery-image" +data-flex-grow="232" +data-flex-basis="558px" +></p> +<h2 id="扩展阅读">扩展阅读</h2> +<p>运营自己的博客网站所需了解的概念和知识相对比较多,如果希望将自己的网站做的更加精美、有特色。</p> +<p>除了能够持续产出高质量内容之外,建议阅读以下文章以了解相关知识:</p> +<ul> +<li><a class="link" href="https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web" target="_blank" rel="noopener" +>学习 web 开发</a>。</li> +</ul>机器文摘 第 050 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/Tue, 19 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-40.png" alt="Featured image of post 机器文摘 第 050 期" /><h1 id="机器文摘-第-050-期">机器文摘 第 050 期</h1> +<h2 id="长文">长文</h2> +<h3 id="十八世纪的光学电报网络">十八世纪的光学电报网络</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-08.png" +width="500" +height="517" +loading="lazy" +class="gallery-image" +data-flex-grow="96" +data-flex-basis="232px" +></p> +<p>当年读《基督山伯爵》的时候,有一个让我震惊的科技。</p> +<p>主人公有一项复仇计划是破坏敌人的金融资产。计划采取的手段是收买了一个传递实时信息的人让其传递错误信息。</p> +<p>而具体传递信息的手段是,每隔一段距离设一座瞭望塔,每个塔上有一个人,向一个方向用望远镜观看,远方的上级瞭望塔会有人发射信号弹,一连串的信号弹代表一定的信息,然后这个人再原样发射一遍,让后方的瞭望塔看见。信息就这样一级一级传递下去。</p> +<p>信息经过编码,可以表达股票行情等信息,类似后来的电报系统,但是这是在十八世纪。</p> +<p>读过之后我就一直有疑问,不知道小说是否虚构了这种信息传递技术,直到前几天我发现了这篇文章:<a class="link" href="https://www.lowtechmagazine.com/2007/12/email-in-the-18.html" target="_blank" rel="noopener" +>《十八世纪的光学电报网络》</a>。</p> +<p>里面详细介绍了在两百多年前人类就已经发明了“光学电报”系统,并建立起了巨大的信息网络。信息传递速度达到了惊人的 1380千米/每小时。</p> +<h3 id="c-语言发展简史">C 语言发展简史</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-23.png" +width="690" +height="352" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="470px" +></p> +<p>要说 C 语言是计算机历史上最重要的编程语言应该不会有人反对吧。</p> +<p>作为大多数人编程入门的母语,C 语言具有语法简洁、高性能(贴近计算机底层)、使用灵活、适用范围广泛等特点。</p> +<p>虽然诞生于上个世纪 70 年代,但即便是在 2023 年的今天,C 语言仍然排在各大编程排行榜的考前位置,仍然是信息科技的重要支撑力量。</p> +<p><a class="link" href="http://cm.bell-labs.co/who/dmr/chist.html" target="_blank" rel="noopener" +>《C 语言简史》</a>,由丹尼斯·里奇(C 语言之父)撰写,是一篇难得的介绍 C 语言的诞生和发展的历史性文献。</p> +<h3 id="vbvisual-basic发展简史">VB(Visual Basic)发展简史</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-40.png" +width="690" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></p> +<p>前几天 HN 上有个从业近 30 年的老程序员发问:<a class="link" href="https://news.ycombinator.com/item?id=37470318" target="_blank" rel="noopener" +>为什么 VB(Visual Basic)这么高效、好用的开发工具逐渐消失了?</a>。</p> +<p>被顶的最高的网友放出了<a class="link" href="https://retool.com/visual-basic/" target="_blank" rel="noopener" +>《Visual Basic 从诞生到消失》</a>这篇文章。</p> +<p>在上世纪 80 年代末 90 年代初,Windows 操作系统刚刚崭露头角的时候,VB 已经在萌芽状态了。而且已经具有非常先进的组件化、可视化、低代码等超前思想。并且发明了“控件”、“消息触发”等概念。</p> +<p>最初的版本与 BASIC 语言并无关系,只考虑了使用可视化开发并辅助简单的内嵌脚本,但是比尔·盖茨对 BASIC 十分热爱(毕竟那是微软起家的技术),亲自推动了组件化、可视化开发与 BASIC 语言结合,便诞生了 Visual Basic。</p> +<p>得益于超前的可视化开发理念,VB 极大降低了当时开发应用程序的门槛,涌现出一大批开发者。包括当时那些不得不转型给个人电脑开发程序的大型机编程工程师。</p> +<p>这一切在 VB 随着 Visual Studio 发布 6.0 的时候达到了顶峰。</p> +<p>转折点出现在微软为了应对 Java 的威胁而推出 .Net 公共语言运行时的时候,VB 也被纳入到这套体系里,被成为 VB.Net ,扩充了复杂的语法和继承、多态等高级特性。</p> +<p>对于那些真正喜欢 VB6 的人来说,这些都是唯恐避之不及的东西,更糟糕的是新的 VB.Net 无法兼容之前的代码,大量成果移植困难。</p> +<p>之后更是随着网络信息科技的发展,Web 编程逐渐取代了 Windows 桌面编程,VB 这个伟大的技术,被淘汰也就是顺其自然的了。</p> +<h3 id="一个在网页里模仿-excel-表格的故事">一个在网页里模仿 Excel 表格的故事</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-14.png" +width="690" +height="201" +loading="lazy" +class="gallery-image" +data-flex-grow="343" +data-flex-basis="823px" +></p> +<p><a class="link" href="https://websheets.github.io/websheets/demo/" target="_blank" rel="noopener" +>一位前端工程师,讲述了他在 2016 年受雇于 Uber(优步)时的一些开发往事</a>。</p> +<p>作为服务于数据工程师的内部研发团队,他所在的小组主要是给公司的数据分析人员提供内部工具,以便让他们能够更快地分析数据,更快的分析数据意味着更有可能在产品运营竞争里获胜。</p> +<p>然而数据分析人员总是抱怨工具不满足要求,主要是操作界面,因为他们非常习惯“Excel”,每次提需求的时候总是说:“你就做得跟 Excel 一样就行”。</p> +<p>作者最开始还试图跟用户解释要实现起来是多么困难,后来逐渐放弃了挣扎,并开始着手在网页里实现一个跟 Excel 一样的表格,而且他竟然实现了。</p> +<p>故事的后来有些伤感,作者提供的工具并没有使得 “Uber” 在跟嘀嘀的竞争中胜出,相反地,“Uber”在中国的业务还被“嘀嘀”收购了。</p> +<p>被用于数据分析的工具也被抛弃不再使用。</p> +<p>后来作者选择了将那个像 Excel 的表格代码放在了 <a class="link" href="github.com/WebSheets/websheets" >Github 进行开源,地址在这里</a>。</p> +<h2 id="资源">资源</h2> +<h3 id="通用-web-应用服务器">通用 Web 应用服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-34.png" +width="690" +height="356" +loading="lazy" +class="gallery-image" +data-flex-grow="193" +data-flex-basis="465px" +></p> +<p><a class="link" href="https://unit.nginx.org/" target="_blank" rel="noopener" +>NGINX Unit</a>,通用 Web 应用服务器。是一个轻量且多功能的应用运行时,作为一个单一的开源服务器,它提供了您的 Web 应用程序所需的基本组件:运行应用程序代码(包括 WebAssembly)、提供静态资源、处理 TLS 和请求路由。</p> +<p>Unit 是由 NGINX 团队成员从零开始创建的,以在运行时高度高效且完全可配置。最新版本是 1.31.0,于 2023 年 8 月 31 日发布。</p> +<h3 id="绿色安卓-app-合集">绿色安卓 App 合集</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-52.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://www.simplemobiletools.com/" target="_blank" rel="noopener" +>绿色安卓app合集</a>。</p> +<p>这个网站收集了一大批良心 app,全部没有广告且不要求隐私权限。</p> +<p>几乎涵盖了日常使用的所有类型,包括艺术绘画、音乐播放器、笔记、文件管理、录音、拍照等。 ​​​</p> +<h3 id="nuejs">nuejs</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-10.png" +width="690" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></p> +<p><a class="link" href="https://nuejs.org/" target="_blank" rel="noopener" +>nuejs</a>,越来越多的人对前端开发的混乱感到不满了。不同的是有人选择抱怨,有人撸起袖子开干。nuejs 的作者觉得现在使用 React、Vue 等框架再加上若干服务端渲染框架,使得前端开发生态变得越来越复杂和掌握。于是自己动手开发了一个简单的轻量化框架,终极目标是构建一个简洁、高效的前端开发生态。</p> +<h3 id="1024-字节的网页可显示-3d-地球">1024 字节的网页,可显示 3D 地球</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-21.png" +width="447" +height="255" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="420px" +></p> +<p><a class="link" href="https://aem1k.com/world/" target="_blank" rel="noopener" +>1024 字节的 JavaScript,在网页中显示动画 3D 地球模型</a>,页面动画显示的就是其源代码。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="p">.</span><span class="o">&lt;</span><span class="nx">script</span><span class="o">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nb">eval</span><span class="p">(</span><span class="nx">z</span><span class="o">=</span><span class="s1">&#39;p=&#34;&lt;&#34;+&#34;pre&gt;&#34;/* ,.oq#+ ,._, */;for(y in n=&#34;zw24l6k\ +</span></span></span><span class="line"><span class="cl"><span class="s1">4e3t4jnt4qj24xh2 x/* =&lt;,m#F^ A W###q. */42kty24wrt413n243n\ +</span></span></span><span class="line"><span class="cl"><span class="s1">9h243pdxt41csb yz/* #K q##H######Am */43iyb6k43pk7243nm\ +</span></span></span><span class="line"><span class="cl"><span class="s1">r24&#34;.split(4)){/* dP cpq#q##########b, */for(a in t=pars\ +</span></span></span><span class="line"><span class="cl"><span class="s1">eInt(n[y],36)+/* p##@###YG=[#######y */(e=x=r=[]))for\ +</span></span></span><span class="line"><span class="cl"><span class="s1">(r=!r,i=0;t[a/* d#qg `*PWo##q#######D */]&gt;i;i+=.05)wi\ +</span></span></span><span class="line"><span class="cl"><span class="s1">th(Math)x-= /* aem1k.com Q###KWR#### W[ */.05,0\ +</span></span></span><span class="line"><span class="cl"><span class="s1">x;)p+=&#34; *#&#34;/* b. OQ####x#K */[e[x++]+e[x++\ +</span></span></span><span class="line"><span class="cl"><span class="s1">]]||(S=(&#34;eval&#34;/* l `X#####D , */+&#34;(z=\&#39;&#34;+z.spl\ +</span></span></span><span class="line"><span class="cl"><span class="s1">it(B = &#34;\\\\&#34;)./* G####B&#34; # */join(B+B).split\ +</span></span></span><span class="line"><span class="cl"><span class="s1">(Q=&#34;\&#39;&#34;).join(B+Q/* VQBP` */)+Q+&#34;)//m1k&#34;)[x/2\ +</span></span></span><span class="line"><span class="cl"><span class="s1">+61*y-1]).fontcolor/* TP */(/\\w/.test(S)&amp;&amp;&#34;#\ +</span></span></span><span class="line"><span class="cl"><span class="s1">03B&#34;);document.body.innerHTML=p+=B+&#34;\\n&#34;}setTimeout(z)&#39;</span><span class="p">)</span><span class="c1">// +</span></span></span></code></pre></td></tr></table> +</div> +</div><h3 id="全球-ip-地址地理位置数据库">全球 IP 地址地理位置数据库</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-35.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://ipapi.is/geolocation.html" target="_blank" rel="noopener" +>全球 IP 地址 地理位置数据库</a>。含 IPV4 和 IPV6。 ​​<a class="link" href="https://ipapi.is/geolocation.html" target="_blank" rel="noopener" +>​这篇文章里还介绍了构建 IP 地址地理数据库的实现原理</a>和一套具有指导意义的实现方法。基本原理是:“互联网中的每个 IP 地址都由组织拥有或管理。可以向互联网注册机构查询WHOIS信息。”</p> +<h2 id="观点">观点</h2> +<h3 id="为什么-facebook-的-pytorch-占有率赢了-google-的-tensorflow">为什么 Facebook 的 PyTorch 占有率赢了 Google 的 Tensorflow</h3> +<p>Pytorch 已经完全击败了 Tensorflow,成为 AI 开发框架的事实标准。Pytorch 一开始就专注于学术界,方向是把最牛的人吸引过来。而 Tensorflow 则倾向于软件工程炫技,做各种简单但是酷炫的功能。</p> +<p>最终专业化的 torch 击败了 tensorflow 。 我觉得​​​还有一个原因就是 Google 特别容易弃坑,Tensorflow 中间也切换过前后不兼容的 API。</p> +<h3 id="越来越多的科技产品让人更好地欺骗自己">越来越多的科技产品让人更好地欺骗自己</h3> +<p>比如美颜相机、电影特效、游戏等,研发它们的主要目的就是让人们更好的实现自我欺骗和催眠。</p> +<h3 id="东方文明为什么警惕科技我个人不完全同意">东方文明为什么警惕科技(我个人不完全同意)</h3> +<p>中国古代对于科技非常警惕和打压的原因,也许是古人早就意识到科技(或技术)力量很容易对人类造成强烈反噬。</p> +<p>观点来自 <a class="link" href="https://www.bilibili.com/video/BV1pu4y1r7KW/" target="_blank" rel="noopener" +>@​​​安东尼2001:量子自旋理论背后,是人类历史的轮回</a>。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 049 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/Tue, 12 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-22.png" alt="Featured image of post 机器文摘 第 049 期" /><h1 id="机器文摘-第-049-期">机器文摘 第 049 期</h1> +<h2 id="长文">长文</h2> +<h3 id="在-linux-环境里执行-windows-应用程序">在 Linux 环境里执行 Windows 应用程序</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-33-44.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p>最近遇到一个难以启齿的需求,服务器是 Linux 环境,但是某项服务功能却需要执行一个 Windows exe 文件。</p> +<p>不得已才想到要求助 Wine 这个经典中间层,据说可以使的 Linux 兼容大部分的 Win32 程序。</p> +<p>但是又不想污染服务器的其他环境,于是选择在容器中运行。</p> +<p>在网上找到了这篇<a class="link" href="https://leimao.github.io/blog/Docker-Wine/" target="_blank" rel="noopener" +>《利用 Docker 容器和 Wine 在 Linux里运行 Windows 程序》</a>,按照文中介绍的步骤成功实现了需求。</p> +<p>基本步骤: +1、根据文章提供的 Dockfile 构建镜像; +2、运行镜像并注意配置运行容器的环境变量; +3、执行所需的 exe 程序。</p> +<h3 id="windows-系统是怎样进行引导的">Windows 系统是怎样进行引导的</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-06.png" +width="690" +height="976" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="169px" +></p> +<p>前不久,我在给笔记本更换大容量固态硬盘的时候,由于不愿重做系统,使用了硬盘克隆功能,将原盘整体信息直接克隆到新硬盘。</p> +<p>结果克隆成功并替换安装硬盘之后,却没能正常引导进入 Windows,而是进入了一个类似 PE 系统的界面(猜测是原盘中厂家自制的),并告知我由于检测到硬件更换,拒绝引导,并建议我选择恢复系统。</p> +<p>我猜测之前的隐藏分区可能有笔记本厂家做的一些特定引导程序,才导致这样的情况。</p> +<p>我对系统引导的理解还停留在 MBR 分区表大面积应用的阶段。于是尝试删除了隐藏分区,并手动将系统盘分区设置为了 “激活”分区(事实上这时候已经错了,因为 GPT 分区表方式下无法采用这种引导方式了)。</p> +<p>结果系统干脆直接无法引导。出现这种情况,我之前的知识储备显然不够用了。</p> +<p>经过一番折腾和搜索,我才得知现在 Windows 8 及以上版本操作系统的电脑所采用的方式是 GPT 分区表 + UEFI 引导。</p> +<p>也就是说硬盘上需要单独开辟一个分区存储负责进行操作系统引导的工作。这个分区平时对于操作系统的资源管理器不可见(但磁盘管理中可以看到),由主板上的 UEFI 程序(这个程序可以理解为 BIOS 的升级版)进行访问和管理。</p> +<p>了解这个方式之后,就简单了,重新使用工具修改 GPT 分区并制作专用引导分区即可。</p> +<p>最后,为了弄清这跟之前的 MBR 引导方式有什么区别,我找到了一位运维工程师总结得较到位的文章<a class="link" href="https://zhuanlan.zhihu.com/p/355526135" target="_blank" rel="noopener" +>《Windows系统开机引导顺序简述及运维小结》</a>。</p> +<h3 id="500-行代码写一个-c-编译器">500 行代码写一个 C 编译器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-22.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p><a class="link" href="https://vgel.me/posts/c500/" target="_blank" rel="noopener" +>500 行 Python 代码写一个 C 编译器</a>。</p> +<p>作者立下这个 flag 之后才发现任务有多难。</p> +<p>主要是代码行数太少了,如果使用传统手段实现,可能这点儿代码量还不够写个语法分析器的。</p> +<p>于是作者主动放弃了 AST (抽象语法树)的构建,采用 Token 提取和指令生成“一遍过”的方式,实现了一个相当“简洁”的 C 编译器。</p> +<h2 id="资源">资源</h2> +<h3 id="假装弹钢琴">假装弹钢琴</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-51.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p><a class="link" href="http://touchpianist.com/" target="_blank" rel="noopener" +>touchpianist</a>,在线弹钢琴的网站(也提供手机 App 版),可以让你假装钢琴大师,只需要按键盘上的任意键,旋律就会自动演奏,不过你要控制敲击键盘的速度,以匹配原曲的节奏。我弹了一下,默认曲目是贝多芬的《月光奏鸣曲》,差点儿被自己陶醉了。 ​​​</p> +<h3 id="bun-v10">Bun V1.0</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-09.png" +width="690" +height="419" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></p> +<p><a class="link" href="https://bun.sh/blog/bun-v1.0" target="_blank" rel="noopener" +>bun-v1.0</a>,拳打 node , 脚踢 deno 的 JavaScript 运营环境 bun 推出了 1.0 版本。主打一个“All in one”,号称可以一次性取代一揽子工具:node、npx、npm、webpack、tsc、babel、jest。一个工具包揽了运行、打包、包管理、转译、测试等所有事情,且速度是 nodejs 的 3 倍。</p> +<p>对于这种吹的比较厉害的技术,保持关注,谨慎使用吧。</p> +<h3 id="开源基于-llm-知识库平台">开源基于 LLM 知识库平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-24.png" +width="690" +height="334" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="495px" +></p> +<p><a class="link" href="https://github.com/labring/FastGPT" target="_blank" rel="noopener" +>FastGPT</a> - 基于 LLM 大模型的 AI 知识库问答系统。提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景。项目在 Github 开源,采用技术栈: NextJs + TS + ChakraUI + Mongo + Postgres(Vector 插件)。支持 GPT、Claude、Spark、ChatGLM 等多种 LLM 模型。</p> +<h3 id="开源基于-llm-数据可视化平台">开源基于 LLM 数据可视化平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-35.png" +width="690" +height="292" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="567px" +></p> +<p><a class="link" href="https://github.com/microsoft/lida" target="_blank" rel="noopener" +>lida</a>,微软出品的数据可视化工具库,特点是基于 LLM 对话模型进行生成,其生成的可视化代码支持多种可视化后端的语法,包括 matplotlib、seaborn、d3等。 ​​​</p> +<h2 id="观点">观点</h2> +<h3 id="编程是一种体育锻炼">编程是一种体育锻炼</h3> +<p>编程除了是一种可以以之谋生的专业技能,对于那些真喜欢编程的人来说,它还是一个心理疗愈工具。</p> +<p>编程能使人专注,进入“心流”状态比较容易,也容易让人的心态平和。</p> +<p>编程与体育锻炼一样,都是可以让人受益终生的活动。</p> +<p>&mdash;-来自<a class="link" href="https://weibo.com/1461522430/NiEh1BHMt" target="_blank" rel="noopener" +>@软件教书匠金旭亮</a>。</p> +<h3 id="造成电子阳痿的一种因素">造成电子阳痿的一种因素</h3> +<p>一个不容忽视的因素是现在游戏的加载速度,尤其是 PC 游戏。</p> +<p>我们被碎片化信息惯得一秒钟都不想等待。</p> +<p>每当想玩会儿 CS 或者地平线之类得游戏,光是等待游戏启动、地图加载等就足以让人放弃想玩的念头。</p> +<p>更别提有些游戏还有一些跳都无法跳过得开场引导视频。</p> +<p>所以我现在就算是玩也是偶尔打开模拟器玩一玩老游戏,带有状态存储,随时加载存档。</p> +<p>据说有一部分游戏主机(比如新一代 XBox)有类似笔记本电脑的睡眠功能,开机就玩,随时进入上次未完成的任务。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 048 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/Tue, 05 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/<h1 id="机器文摘-第-048-期">机器文摘 第 048 期</h1> +<h2 id="长文">长文</h2> +<h3 id="关于-python-语言的一些统计数字">关于 Python 语言的一些统计数字</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-05.png" +width="690" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="224" +data-flex-basis="539px" +></p> +<p><a class="link" href="https://py-code.org/stats" target="_blank" rel="noopener" +>关于开源 Python 仓库的一些有趣统计</a>,有人克隆了 PyPI 网站里所有 Python 包对应的 Github 仓库,并对这些仓库里的全部文件进行了分析和统计。</p> +<p>1、排名前三的语法特性分别是:列表推导、fstring字符串格式化、注解;</p> +<p>2、代码中大约包含有超过 2 万 5 千个密钥明文,泄露最多的是访问 Google API、OpenAI API和腾讯云 Secret ID;</p> +<p>3、截止到 2023 年 8 月,所有源码加起来已超过 60TB ,文件数量超过 10 亿。</p> +<h3 id="wasm-技术让数据库执行-ai-模型">Wasm 技术让数据库执行 AI 模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-30.png" +width="618" +height="492" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="301px" +></p> +<p><a class="link" href="https://dylibso.com/blog/pg-extism/" target="_blank" rel="noopener" +>使用 Extism 将 WebAssembly 引入 PostgreSQL</a>。</p> +<p>这篇文章的作者介绍了一种方法,可以使用 Wasm 技术通过扩展插件的方式给 PostgreSQL 数据库增加 UDF (用户自定义函数),从而实现调用 AI 模型的能力。</p> +<h3 id="bitlocker-硬件加密能破解吗">BitLocker 硬件加密能破解吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-50.png" +width="690" +height="499" +loading="lazy" +class="gallery-image" +data-flex-grow="138" +data-flex-basis="331px" +></p> +<p>BitLocker 是 Windows 下的存储加密技术,用于保护硬盘中的数据安全。</p> +<p>未经解密的硬盘即使遗失或者被接入其他系统也无法进行读取。</p> +<p>这在极大程度上带来了数据安全(不过仍有不少用户在不知情的情况下开启了 BitLocker 且未保存密钥,在重做系统的时候发现硬盘无法解密,数据无法恢复。。欲哭无泪。。)。</p> +<p>然而这种加密方式也不是绝对安全,国外有技术爱好者对此进行了挑战,并使用一台逻辑分析仪成功绕过了加密。</p> +<p><a class="link" href="https://www.errno.fr/BypassingBitlocker.html" target="_blank" rel="noopener" +>这篇文章进行了详细的记录</a>。</p> +<p>主要原理为:在系统开机启动过程中的某个时刻,加密芯片和 CPU 之间传输了未加密的信号。使用逻辑分析仪捕获该信号可以逆向出加密密钥。</p> +<h2 id="资源">资源</h2> +<h3 id="监控网页信息变化的工具">监控网页信息变化的工具</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-17.png" +width="499" +height="326" +loading="lazy" +class="gallery-image" +data-flex-grow="153" +data-flex-basis="367px" +></p> +<p><a class="link" href="https://github.com/dgtlmoon/changedetection.io" target="_blank" rel="noopener" +>changedetection</a>,一个监控网站变化的工具。</p> +<p>帮助用户密切关注商品打折、股票行情、政策发布等信息变动。</p> +<p>支持通过网页可视化的方式指定监控页面区域。</p> +<p>通过邮件、即时聊天软件、API调用等多种方式推送信息。可使用 Docker 部署,或者本地 Python 环境部署。</p> +<h3 id="switch-模拟器">Switch 模拟器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-28.png" +width="690" +height="472" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="350px" +></p> +<p><a class="link" href="https://github.com/Ryujinx/Ryujinx" target="_blank" rel="noopener" +>Ryujinx</a> 一个用c# 写的开源 switch 模拟器,该模拟器旨在提供卓越的准确性和性能、用户友好的界面以及稳定的版本构建。 ​​​</p> +<h3 id="文字缩写快捷键工具">文字缩写快捷键工具</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-45.png" +width="568" +height="446" +loading="lazy" +class="gallery-image" +data-flex-grow="127" +data-flex-basis="305px" +></p> +<p>为了减少打字量,国外这哥们写了个脚本将日常用语全部缩写了,只需敲入缩写字母,脚本自动完成完整句子的键盘输入。</p> +<p>比如: +st =&gt; something +ab =&gt; about +hw =&gt; hardware +sti =&gt; sometime</p> +<p>据小哥自己统计,使用这个脚本以后他已经减少了一半的键盘敲击量。</p> +<p><a class="link" href="https://github.com/eschluntz/compress" target="_blank" rel="noopener" +>项目名叫 compress 目前已开源</a>,如果你有兴趣,改成支持中文也不是不可以。</p> +<h3 id="canvas-手册">Canvas 手册</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-22-11.png" +width="562" +height="625" +loading="lazy" +class="gallery-image" +data-flex-grow="89" +data-flex-basis="215px" +></p> +<p>Canvas 是网页中用于图形绘制的基本元素,结合 JavaScript 可以实现各种复杂的图形效果和交互动画。我之前都是每次用到了的时候现去翻文档,对它的每个 API 都是一知半解。这里有一个<a class="link" href="https://bucephalus.org/text/CanvasHandbook/CanvasHandbook.html" target="_blank" rel="noopener" +>Canvas 手册</a>,详细介绍了 Canvas 的各种调用接口。适合希望深度使用及系统学习 Canvas。</p> +<h2 id="观点">观点</h2> +<h3 id="不要重复造轮子是人为设置的一种限制">“不要重复造轮子”是人为设置的一种限制</h3> +<p>遇到需求不能满足的情况,是去“寻找轮子”还是“动手创造轮子”,这是两种不同的思维习惯。</p> +<p>“寻找轮子”往往意味着寻找已有答案,将问题看为一种正常的状态,是“自古以来”、是“从来如此”。</p> +<p>思维定势一旦形成,就很难改变,让人成了那个在沙漠中让美女帮他牵住骆驼的矮子。</p> +<p>动手创造者往往是发现这种问题的人,他们不循规蹈矩,他们 Think different,是改变世界的人。</p> +<p>“不要重复发明轮子”,这个原则用于工作中确实比较安全,他保证了不会浪费资源,并且避免了一定的技术风险。</p> +<p>但也同时拒绝了伟大的创新。</p> +<p>所以不要被这句话束缚,尽管去做自己的轮子。</p> +<p>哪怕它一开始很丑。</p> +<p>你的轮子必将使你与众不同,使你拥有不一样的视角,成为那个动手创造的人。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 047 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/Tue, 29 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/<h1 id="机器文摘-第-047-期">机器文摘 第 047 期</h1> +<h2 id="长文">长文</h2> +<h3 id="业余爱好者痴迷于工具专业人士注重技能">业余爱好者痴迷于工具,专业人士注重技能</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-17-36.png" +width="649" +height="582" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="267px" +></p> +<p><a class="link" href="https://adamsinger.substack.com/p/amateurs-obsess-over-tools-pros-over" target="_blank" rel="noopener" +>业余爱好者痴迷于工具,专业人士注重技能</a>。</p> +<blockquote> +<p>以原声吉他为例。在数字音乐制作和合成器盛行的时代,这个单独演奏的乐器可能显得有点古老。然而,在熟练音乐家的手中,它变成了一个充满迷人旋律和触动灵魂的载体。它甚至可能为更大的创意提供灵感,如果你直接跳到现代合成器就有可能会错过这些。原声吉他的简单性促使艺术家专注于演奏的细微之处,完善他们的指弹技巧,并通过每一次弹奏传达情感。真正的魔力不在于吉他本身,而在于将其演绎得生动活泼的音乐家的技艺。</p> +</blockquote> +<p>这篇文章读来深有感触。</p> +<p>在解决问题的时候,我总是忍不住问自己,我这个方法是最优的吗?我使用的工具是不是最合适/最好的?</p> +<p>这种心理,常常使我陷入对最佳实践和完美工具的追求中,而忘记了解决问题本身。</p> +<p>时间久了,工具积累一大堆,但每个都未曾发挥其真正作用,一边老工具在吃灰,一边继续寻找新工具。</p> +<p>差生文具多。</p> +<p>正如文章中所说:真正的高手明白,应当拿起手里已有的工具,先行动起来。在这个过程中如果有机会创造美好的事物,好的工具自然会出现在眼前。</p> +<h3 id="cpu-的指令分支预测">CPU 的指令分支预测</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-17-49.png" +width="682" +height="743" +loading="lazy" +class="gallery-image" +data-flex-grow="91" +data-flex-basis="220px" +></p> +<p>现代的 CPU 基本都具有指令分支预测的特性,通过猜测后续会执行的指令分支,提前运行一些指令和设置状态,可以有效利用 CPU 的执行资源,提升效率。</p> +<p>不过,如果预测准确的话效率提升十分明显,但是如果预测错误,CPU 就要多做一些事情(刷新后续预测的指令和相关的状态),随着现代 CPU 中指令流水线越来越复杂,这种代价也变得越来愈大。</p> +<p>在编程的时候,编写一些对于 CPU 分支预测友好的代码,能够对性能产生极大的影响。</p> +<p>这篇<a class="link" href="https://johnnysswlab.com/how-branches-influence-the-performance-of-your-code-and-what-can-you-do-about-it/" target="_blank" rel="noopener" +>对于 CPU 的分支预测,我们能做什么</a>耐心地从 CPU 的分支预测机制讲起,通过具体的代码举例,讲解了怎样让编写的代码对 CPU 分支预测这类优化更加友好。</p> +<h3 id="ssh-命令详解">SSH 命令详解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-18-25.png" +width="690" +height="535" +loading="lazy" +class="gallery-image" +data-flex-grow="128" +data-flex-basis="309px" +></p> +<p><a class="link" href="https://grahamhelton.com/blog/ssh-cheatsheet/" target="_blank" rel="noopener" +>SSH 命令详解</a>,一篇对 SSH 命令的参数介绍十分详细且易懂的文章。</p> +<p>通过举例让我彻底弄清楚了基于 SSH 的端口转发。</p> +<p>另外还知道了可以在已有的 SSH 连接上执行补充命令,以实现不断开终端的情况下将远程主机上的端口转发到本机访问。 ​​​</p> +<h2 id="资源">资源</h2> +<h3 id="开源的房子">开源的房子</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-18-47.png" +width="690" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +></p> +<p><a class="link" href="https://www.wikihouse.cc" target="_blank" rel="noopener" +>wikihouse</a>,是一个开源房屋建造网站,房子的图纸、模型均可从网站上下载,里面有各式各样的房屋建造资料,任何人都可以据此增删、设计、制造、组装自己的建筑。可以理解为建筑界的 github。 +​​​</p> +<h3 id="关掉-edge-浏览器新增的圆角样式">关掉 Edge 浏览器新增的圆角样式</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-03.png" +width="690" +height="352" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="470px" +></p> +<p>Edge 浏览器的最新更新里,给所有页面强制增加了一个圆角边框,看起来很不习惯(丑陋)。</p> +<p>经过研究,我发现,如果想恢复到之前的样子,可以在设置外观选项里关闭该特性。</p> +<p>我已经关闭,并果断给这个功能特性反馈了负面评价。</p> +<h3 id="hello-world">Hello World</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-26.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://github.com/leachim6/hello-world" target="_blank" rel="noopener" +>Hello World</a> ,这个仓库收录了几乎所有编程语言(997种)的 Hello world 程序。 ​​​</p> +<h3 id="前端开发代码大全">前端开发代码大全</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-42.png" +width="690" +height="639" +loading="lazy" +class="gallery-image" +data-flex-grow="107" +data-flex-basis="259px" +></p> +<p><a class="link" href="https://30secondsofcode.org" target="_blank" rel="noopener" +>30secondsofcode</a>。</p> +<p>这个网站有大量可复用的代码片段,主要是 Javascript、CSS、HTML 、Python 等语言的内容,可以覆盖 Web 应用开发全栈。</p> +<p>里面收录的代码段或者文章都很清新,每个都配有细心的解释,具有良好的实用性。 ​​​</p> +<h3 id="关于-win10-的锁屏睡眠时间">关于 Win10 的锁屏睡眠时间</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-20-00.png" +width="410" +height="502" +loading="lazy" +class="gallery-image" +data-flex-grow="81" +data-flex-basis="196px" +></p> +<p>我在使用 Windows10 的时候发现一个问题。</p> +<p>无论我将电源设置里的睡眠时间、显示器空闲关闭时间设置多长,锁屏后系统都会在 1 分钟之后关闭显示器。</p> +<p>这会带来一些不方便,并且让人困惑。</p> +<p>在经过一番研究搜索之后,找到了如下解决方案(Windows就是这么喜欢在注册表隐藏设置):</p> +<p>1、打开注册表编辑器后。</p> +<p>2、定位到:<code>计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\8EC4B3A5-6868-48c2-BE75-4F3044BE88A7</code></p> +<p>3、修改右侧的Attributes 数值为2 (初始值为1)</p> +<p>4、再打开“编辑电源计划”时会发现多了一个选项“控制台锁定显示关闭超时。</p> +<h3 id="红警2游戏整合包">红警2游戏整合包</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-20-25.png" +width="413" +height="302" +loading="lazy" +class="gallery-image" +data-flex-grow="136" +data-flex-basis="328px" +></p> +<p><a class="link" href="https://tmioe.com/7991.html" target="_blank" rel="noopener" +>红警2 的民间整合包</a>,支持 win7 到 win11。整合大量资源,傻瓜式一键安装。 ​​​</p> +<p>经过我的测试,前面链接页面里提供的安装包里带有额外的广告脚本,在使用时可使用 7z 等压缩软件直接打开该自解压包,选取主文件夹拷贝出来即可。</p> +<h2 id="观点">观点</h2> +<h3 id="隐形的门槛">隐形的门槛</h3> +<p>也许每个领域都存在一个隐形的门槛,无论是你学会一种语言,还是掌握一种能力,哪怕是打通一个游戏,只要你跨不过那个门槛,那么无论你尝试多少次,都会在同样的水平下无功而返。相反,一旦跨过后,那就是一马平川,你有了在那个新世界周游的能力。这当然不是说你不会再遇到困难,而是说,你不再有那种尝试了无数次,带着同一种感受离开的感觉。剩下的区别只是更多经验的积累,是熟练度的问题,因为你已经在那个轨道上了,你已经拿到了入场券。</p> +<p>人生可以被隐喻成一个有着自然消退机制的RPG体系,累积10000经验可以升那关键的一级,那么先前你无论你多少次到达5000,6000,9000都不行,因为熟练度会反复消退到1000,2000的水平。而我知道,很多人就是无数次的卡在了那9000以内,但每次都要从1000,2000这个位置开始。这个和自我接纳也没有关系,因为你知道你遇到的困难并不是基于你对自己的苛求,你的困难在于你无法为自己在乎的事情付出真正的努力,无法将自己的活力与热情持续的灌注在同一个点上,但你隐约知晓跨过那10000的门槛,是你更重要的人生福祉。</p> +<p>来自微博 <a class="link" href="https://weibo.com/3762961402/NgprO9HD5" target="_blank" rel="noopener" +>@崔庆龙_</a></p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 046 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/Tue, 22 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/<h1 id="机器文摘-第-046-期">机器文摘 第 046 期</h1> +<h2 id="长文">长文</h2> +<h3 id="windows-的任务管理器">Windows 的任务管理器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-28-48.png" +width="452" +height="758" +loading="lazy" +class="gallery-image" +data-flex-grow="59" +data-flex-basis="143px" +></p> +<p>如果你喜欢使用 Windows 任务管理器来查杀那些不安分的进程,并且跟我一样讨厌他们乱跳(尤其在按照资源占用排序时)。你可以按下 Ctrl 键,它就会神奇地停止更新直到你松开 Ctrl。</p> +<p>Windows 操作系统有一种魔力,就是哪怕你用了将近 20 年,还是会有你不知道的快捷键或者快捷操作。这些东西有时候能带来一些惊喜。</p> +<p>具体介绍可以看这里:<a class="link" href="https://www.theverge.com/2023/8/16/23834125/microsoft-windows-task-manager-pause-shortcut" target="_blank" rel="noopener" +>暂停 Windows 任务管理器</a></p> +<h3 id="linux-内核最初版的解析">Linux 内核最初版的解析</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-29-10.png" +width="588" +height="253" +loading="lazy" +class="gallery-image" +data-flex-grow="232" +data-flex-basis="557px" +></p> +<p>最新版本的 Linux 内核,其源码规模已经飙升至 3600 万行,想要深入细节去了解它十分吃力。</p> +<p>而Linux 的第一个版本 v0.01 却非常小巧。</p> +<p>刨去注释和空行的话,也就 8 千来行代码。</p> +<p>这么小的代码结构,足够理解操作系统的精髓。</p> +<p>这篇<a class="link" href="https://seiya.me/blog/reading-linux-v0.01" target="_blank" rel="noopener" +>探索 Linux v0.01 d的内部结构</a>,可以带你像参观历史博物馆那样去见证曾经的 Linux。</p> +<p>我记录了一些有意思的地方:</p> +<p>1、v0.01 只有 66 个系统调用,用于支持文件管理和进程管理,分别是:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">access acct alarm <span class="nb">break</span> brk chdir chmod +</span></span><span class="line"><span class="cl">chown chroot close creat dup dup2 execve +</span></span><span class="line"><span class="cl"><span class="nb">exit</span> fcntl fork fstat ftime getegid geteuid +</span></span><span class="line"><span class="cl">getgid getpgrp setsid getpid getppid +</span></span><span class="line"><span class="cl">getuid gtty ioctl <span class="nb">kill</span> link lock lseek +</span></span><span class="line"><span class="cl">mkdir mknod mount mpx nice open pause +</span></span><span class="line"><span class="cl">phys pipe prof ptrace <span class="nb">read</span> rename rmdir +</span></span><span class="line"><span class="cl">setgid setpgid setuid setup signal stat +</span></span><span class="line"><span class="cl">stime stty sync <span class="nb">time</span> <span class="nb">times</span> <span class="nb">ulimit</span> <span class="nb">umask</span> +</span></span><span class="line"><span class="cl">umount uname unlink ustat utime waitpid write +</span></span></code></pre></td></tr></table> +</div> +</div><p>其中 mount 调用啥也没干,直接返回了。</p> +<p>2、直接写死代码绑定 Intel 386 平台。至今对于 PS/2 接口的键盘、ATA硬盘、VGA显卡等标准硬件的驱动代码还是写死在内核里(而不是放在drivers文件夹)。</p> +<p>3、系统崩溃处理代码只有 5 行:只实现了打印一句“我不行了”,然后进入死循环<code>for(;;);</code>。</p> +<h3 id="llamacpp-是怎样做到的">LLaMa.cpp 是怎样做到的?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-29-37.png" +width="540" +height="531" +loading="lazy" +class="gallery-image" +data-flex-grow="101" +data-flex-basis="244px" +></p> +<p>LLaMa.cpp 是一个令人惊叹的项目,在它之前没有人能够在低端消费设备上成功运行 Meta 开源的人工智能模型 LLaMa ,因为那需要太多的硬件资源。</p> +<p>但是 LLaMa.cpp 的横空出世使得在 M2 Macbook Pro、Android Pixel5 手机甚至树莓派上运行 LLaMa 的 7B 模型成为可能。</p> +<p>这是怎么做到的?</p> +<p>带着这个疑问,有网友深入研究了这个项目,并写下了这篇<a class="link" href="https://finbarr.ca/how-is-llama-cpp-possible/" target="_blank" rel="noopener" +>How is LLaMa.cpp possible?</a>以解释原因。</p> +<p>作者认为主要得益于对模型参数的量化,降低模型参数的精度,从 FLOAT16 减小到 INT4。使得 LLaMa.cpp 能够以较少的计算资源甚至只依赖 CPU 的情况下加载大模型。</p> +<h3 id="逐渐觉得微软比谷歌良心">逐渐觉得微软比谷歌良心</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-01.png" +width="690" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="185" +data-flex-basis="445px" +></p> +<p>曾经微软是技术黑客的公敌,被不少人视为反对技术创新、技术开放的最大反派。</p> +<p>不过随着时间的推移,以及微软逐渐在开源社区所做出的努力。这一现象有所好转。</p> +<p>近期在 HN 上<a class="link" href="https://old.reddit.com/r/degoogle/comments/15pd5si/today_i_realized_i_now_trust_microsoft_more_than/" target="_blank" rel="noopener" +>有位网友很扭捏地承认:现在他对微软的感觉要比对谷歌好很多</a>。</p> +<p>他列举了一些关于两家公司的对比,包括发布的产品、主观的优劣评价等等。</p> +<p>为了抵制微软,他已经十多年没用 Windows 了,但貌似微软的其他产品“很香”(VS Code、Github、ChatGPT等)。</p> +<p>并表示最近正在寻摸租一个云存储,大概率也会用微软的 onedrive 而不是谷歌的 Google drivers。</p> +<p>对此我也有类似感觉,不过我对谷歌的不信任起始于十年前谷歌将 Google reader 停掉,而自从微软推出 WSL 后,我更是觉得微软在产品上越来越实在了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-31-23.png" +width="690" +height="538" +loading="lazy" +class="gallery-image" +data-flex-grow="128" +data-flex-basis="307px" +></p> +<h2 id="资源">资源</h2> +<h3 id="tailwindcss-的小抄">tailwindcss 的小抄</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-29.png" +width="690" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="148" +data-flex-basis="356px" +></p> +<p>tailwind 这个 css 框架之所以能够很快流行起来,主要原因就是它解决了一个之前很多人没有太注意的问题,即 CSS 的“正交性”。</p> +<p>之前 CSS 实现一个效果,可以有 N 种方法,外加各种奇技淫巧,但在使用 tailwind 之后,针对特定效果都有了最优实践路径,而且还可以很容易组合。</p> +<p>不过由于它的类分的太细太碎,导致刚开始的时候会有一些不容易记忆。</p> +<p><a class="link" href="https://tailwindcomponents.com/cheatsheet/" target="_blank" rel="noopener" +>这里有一份 tailwind 的小抄</a>,适合初学者收藏,方便随时查阅。</p> +<h3 id="在浏览器中运行的-vim">在浏览器中运行的 vim</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-43.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p><a class="link" href="https://github.com/rhysd/vim.wasm" target="_blank" rel="noopener" +>vim.wasm</a>,在浏览器中运行的 Vim,不是插件。</p> +<p>使用 wasm 技术直接编译移植的 Vim Editor 源码,效果跟原生程序几乎一样。</p> +<p>使用 WebAssembly 给 Vim 提供一个新的 GUI 前端(类似 GVim)。</p> +<p>为了编译通过,作者在源码里禁用了很多 Wasm 不支持的特性,如:fork(2)、PTY 等。</p> +<p>可在这里体验:https://rhysd.github.io/vim.wasm/</p> +<h3 id="无隐私问题的-pdf-工具网站">无隐私问题的 pdf 工具网站</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-32-04.png" +width="690" +height="362" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="457px" +></p> +<p><a class="link" href="https://pdftool.org/zh" target="_blank" rel="noopener" +>这个pdf工具可以尝试一下</a>,跟其他pdf 工具网站不同,这个网站借用 WebAssembly 技术将很多工作放在浏览器客户端执行,用户无需上传自己的pdf到网站,即可执行处理工作,包括:加密、解密、拆分、合并等常用功能。 ​​​</p> +<h3 id="深入理解操作系统的小游戏">深入理解操作系统的小游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-32-17.png" +width="690" +height="368" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></p> +<p><a class="link" href="https://plbrault.com/blog-posts/i-created-the-nerdierst-game-ever-en/" target="_blank" rel="noopener" +>这个自称史上最极客的小游戏</a>,是国外一位计算机科学教授给学生们写的一个小游戏,假设玩家是一个“操作系统”,在游戏里玩家需要不停地进程调度、内存页交换等操作,一旦调度不合理就会激怒用户导致“玩家”也就是操作系统被重启,游戏就 GAME OVER 了。</p> +<p>游戏使用 Python 编写,作者将其编译为 WebAssembly 以嵌入网页,这里可以直接在线体验: <a class="link" href="https://drfreckles42.itch.io/youre-the-os" target="_blank" rel="noopener" +>https://drfreckles42.itch.io/youre-the-os</a>。</p> +<h2 id="观点">观点</h2> +<h3 id="学习技能最有效的练习手段是复刻">学习技能最有效的练习手段是“复刻”</h3> +<p>这是我前两天尝试用 CSS 临时写个页面效果想到的。</p> +<p>我虽然也了解了CSS 语言的一些基本知识,但是在具体实操的时候仍会感到无从下手。</p> +<p>与下棋类似,只知道“规则”但是没有“套路”。</p> +<p>后来干脆找了几个目标页面,按照自己的想法去还原,渐渐能够摸到一些“套路”的边缘,最终实现了自己想要的效果。</p> +<p>于是我想: <strong>在学习一项技能的时候,“复刻”、“抄袭”、“借鉴”、“致敬”,都没有问题,应该把它作为最主要的练习手段。</strong></p> +<p>因为“抄”是最经济的学习方法了。</p> +<p>不仅仅是编程技能,艺术方面更是如此。</p> +<p>比如在编曲学习的时候有一种练习叫“扒带”,就是找一首歌,然后你通过你的工具和技巧制作一份完全一样的作品,尽量做到百分百还原。</p> +<p>很多“大师”都是在这个过程中,遇到问题解决问题,领悟到很多只能意会不能言传的技巧,而这些领悟是无论如何也无法仅仅通过“看”和“听”获得的。</p> +<p>另外,人们练字、绘画也是从临摹开始,一般在熟练之后才能突破,才又自成体系。</p> +<h3 id="忍耐守恒">忍耐守恒</h3> +<p>怕麻烦的人,主要是不能忍受一些事情。</p> +<p>然而正是因为这些不能忍受,所以注定要忍受一些其他的事情。</p> +<p>人生就是这样,比如无法忍受投资带来的风险,就得承受现金贬值;不能面对创业的压力,就得忍受按时上班的束缚。</p> +<p>对于这种现象,我将之称为“忍耐守恒”。 ​​​</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 045 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/Tue, 15 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/<h1 id="机器文摘-第-045-期">机器文摘 第 045 期</h1> +<h2 id="长文">长文</h2> +<h3 id="基于浏览器-javascript-堆快照的网页爬虫">基于浏览器 JavaScript 堆快照的网页爬虫</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-23-22.png" +width="690" +height="546" +loading="lazy" +class="gallery-image" +data-flex-grow="126" +data-flex-basis="303px" +></p> +<p><a class="link" href="https://www.adriancooney.ie/blog/web-scraping-via-javascript-heap-snapshots" target="_blank" rel="noopener" +>基于 JavaScript 堆快照的网页爬虫</a>。</p> +<p>本文作者介绍了一个实现网络爬虫的新思路,据称已在生产上使用了一段时间,且效果不错。</p> +<p>比较典型的网络爬虫在爬取数据时,大都采用解析网页 DOM 的方式,或直接通过 HTTP 请求流直接解析,或使用无头浏览器进行解析。</p> +<p>但现在这项技术已经被很多网站、平台人为设置很多障碍,比如增加很多随机的嵌套等等。</p> +<p>作者某天福至心灵,想到一个点子。</p> +<p>利用浏览器提供的 JavaScript 内存堆快照功能,将内存里的全部信息扒下来,然后根据对应的 JavaScript 对象属性,按图索骥去找到真正需要的数据。</p> +<p>这种方法比较狠的地方在于,<strong>直接从后台的数据结构下手,跳过了对页面 DOM 的分析和拆解</strong>,而且据作者说,网站即便想通过混淆此类数据在内存中的属性名称来进行防御,其工作量还是相当大的。</p> +<p>所以,可能短期内无能为力。</p> +<p>作者说,也许全面转为 Web Assembly 才能彻底禁止他这种爬虫。</p> +<p><a class="link" href="https://github.com/adriancooney/puppeteer-heap-snapshot" target="_blank" rel="noopener" +>项目源码在这里</a></p> +<h3 id="intel-cpu-的崩溃攻击漏洞">Intel CPU 的“崩溃攻击”漏洞</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-23-45.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p><a class="link" href="https://downfall.page" target="_blank" rel="noopener" +>intel cpu 有一个崩溃攻击漏洞</a>,标识为 <a class="link" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40982" target="_blank" rel="noopener" +>CVE-2022-40982</a>,利用此漏洞可以在虚拟机里窃取共享同一个物理 CPU 的其他虚拟机的数据。</p> +<p>这个漏洞可以让恶意程序在本机运行后窃取如密码、加密密钥、以及个人电子邮件等私人数据。</p> +<p>恶意的云计算客户可以利用 Downfall 漏洞从与其共享同一台云计算机的其他客户那里窃取数据和凭据。</p> +<p>据文章作者(也即漏洞发现者)所说,该漏洞存在于 Intel Core 6 代到 11 代 CPU,并且研究人员发现存在通过 Web 网页浏览进行攻击的可能性。</p> +<p><a class="link" href="https://github.com/flowyroll/downfall/tree/main/POC" target="_blank" rel="noopener" +>作者开放了一部分用于测试攻击的代码在此</a></p> +<h3 id="利用树莓派的-gpio-发射无线信号">利用树莓派的 GPIO 发射无线信号</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-24-15.png" +width="690" +height="388" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><a class="link" href="https://hackaday.com/2021/04/06/fan-tastic-misuse-of-raspberry-pi-gpio/" target="_blank" rel="noopener" +>原来树莓派的 GPIO 还能干这个</a>,这位老哥使用树莓派的 GPIO 接口直接进行无线电波发射(没错,就是随便扯出一根线就可以当作天线了)。实现了基于树莓派的微型电台。</p> +<p>这得益于 <a class="link" href="https://github.com/F5OEO/rpitx" target="_blank" rel="noopener" +>rpitx</a>这个开源项目,项目本来是为了研究和学习一些无线电原理,不过后来逐渐成为一些 SDR 爱好者必不可少的工具了。</p> +<p><a class="link" href="https://www.youtube.com/watch?v=M2JY1_Xmokg&amp;t=8s" target="_blank" rel="noopener" +>我上次看到一个小哥使用 RTL-SDR 录制汽车遥控器信号,然后使用树莓派重复发射出来,成功实现了自家汽车的解锁</a>。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://oimo.io/works/water/" target="_blank" rel="noopener" +>water</a>,一个在网页里模拟流体动画的 Demo,使用 Haxe 语言编写。<a class="link" href="https://github.com/saharan/works/tree/main/water" target="_blank" rel="noopener" +>源码在这里</a> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-24-42.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p>Haxe 是一种跨平台的开源编程语言,在其官方网站上称其为&quot;universal language&quot;。</p> +<p>它可以用于开发多种平台(如Web、移动、桌面等)的应用程序。</p> +<p>Haxe 提供了强大的静态类型系统,并支持多种编译目标,包括但不限于 JavaScript、C++、Java、C#、Python 等。</p> +<p>感兴趣的话,这里也有<a class="link" href="https://daobook.github.io/haxe-book/docs/start/00_intro.html" target="_blank" rel="noopener" +>一份 Haxe 的在线教程</a></p> +</li> +<li> +<p><a class="link" href="https://github.com/lllyasviel/Fooocus" target="_blank" rel="noopener" +>Fooocus</a>,ControlNet 作者开源的一款新的 AI 画图工具 ,搭建起来比 Stable Diffusion webui 稍微方便了一点,相当于整合包。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-25-40.png" +width="690" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="107" +data-flex-basis="257px" +></p> +</li> +<li> +<p>原来 HTML5 有一个 <code>&lt;progress&gt;&lt;/progress&gt;</code> 标签,直接写这个标签,不加任何属性的话,就是一个加载动画,非常适合在页面里临时需要一个进度、状态展示的时候。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-25-55.png" +width="462" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="119" +data-flex-basis="286px" +></p> +</li> +<li> +<p><a class="link" href="https://wangdoc.com/typescript/" target="_blank" rel="noopener" +>阮一峰老师的 Typescript 教程</a>,发布了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-26-13.png" +width="501" +height="800" +loading="lazy" +class="gallery-image" +data-flex-grow="62" +data-flex-basis="150px" +></p> +</li> +</ul> +<p>据老师自己说,刚开始也是抗拒的,觉得TypeScript 就是为 JS 语言添加静态类型系统。如果真需要静态类型,可以考虑使用其他更成熟的语言(比如 Rust 和 Java),再编译成 JS(wasm 模块),何必新学一门语言呢。</p> +<p>但是后来发现 TypeScript 越来越流行,成为前端开发的主流工具,各种项目纷纷移植过去。</p> +<p>我虽然对 TypeScript 仍然持保留态度,但是阮老师写的技术书籍读起来都很轻松易懂,所以觉得还是有必要收藏一下​​​。</p> +<ul> +<li> +<p><a class="link" href="https://islamov.ai/stable-diffusion-webgpu/" target="_blank" rel="noopener" +>stable-diffusion-webgpu</a>,在网页里运行 AI 画图模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-26-55.png" +width="1154" +height="667" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="415px" +></p> +<p>基于 webgpu 技术,无需部署,直接在网页里运行。我试了一下,在我的 1080 8G 显存的显卡上 ,可以跑动,但是速度一般。</p> +<p>上面的图是我只跑了 8 个 steps 的结果。。。 ​​​</p> +</li> +</ul> +<h2 id="观点">观点</h2> +<h3 id="ai-画图的品质">AI 画图的品质</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-27-30.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p>为了验证之前关于“模特很可能被AI取代”的想法,自己动手部署 <a class="link" href="https://github.com/AUTOMATIC1111/stable-diffusion-webui" target="_blank" rel="noopener" +>Stable Diffusion webui </a> 测试了一些模型。根据网友分享的提示词尝试生成了一些图片。</p> +<p>感觉效果比我几个月之前体验时又有了不少提升,配合各种微调模型和 LoRA 模型可以生成照片质感和光影的图片。</p> +<p>虽然人物表情和姿态还有些僵硬,不过我相信这是我没有合理调整各个参数以及充分发挥插件性能导致。</p> +<p>多进行尝试和练习,应该能够生成更逼真、自然的照片。</p> +<h3 id="信息的维度">信息的维度</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-28-20.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +最近看了一些线性代数相关的知识,在向量、矩阵的各种计算中逐渐有了一些感悟:</p> +<p>古代“老子”思想中的“道”很可能是无限维的,你的任何表达都是对它的一种投影,也就是降维了。所以才是“道可道,非常道”。</p> +<p>每个人都想用最简单的框架去理解世界,将多维的信息硬生生地将为一维。</p> +<p>这样的后果便是,盲人摸象、管中窥豹、一叶障目,不同的观点争得不可开交。</p> +<p>所以在接收时也应该尽量按自己掌握的其它维度进行升维还原,任何信息都不可孤立看待。</p> +<p>如果能从多维信息得视角去认知世界,也许会有转机,这多少就有点儿“阴阳互生、一分为三”的意思了。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 044 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/Tue, 08 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/<h1 id="机器文摘-第-044-期">机器文摘 第 044 期</h1> +<h2 id="长文">长文</h2> +<h3 id="导致-python-多线程鸡肋的-gil-是什么">导致 Python 多线程鸡肋的 GIL 是什么</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-51-26.png" +width="690" +height="839" +loading="lazy" +class="gallery-image" +data-flex-grow="82" +data-flex-basis="197px" +> +近期在使用 Python 多线程的时候,遇到了 GIL 全局锁导致的性能问题。</p> +<p>具体来说就是性能提升没有达到预期,对于有些计算任务无法并行执行。</p> +<p>从多核 CPU 占用结果上来看,像极了网上那张经典的围观图,一核干活多核围观。</p> +<p>于是翻阅了相关资料研究一下,发现这是 Python 社区争论多年的问题,而且有很大的历史包袱。</p> +<p>严格来说,GIL 全局锁导致的性能问题与 Python 编程语言没有关系,导致这个问题的原因在于具体实现的 CPython 解释器。</p> +<p>当年解释器开发者为了简单实现对多线程的支持,搞了一个全局锁,以至于在多核时代无法充分发挥 CPU 性能。</p> +<p>而后续又有很多库延续了这项依赖,历史的包袱(屎山?)越来越重,很难下定决心将之移除(据说代价甚至比当年从 Python2.x 迁移到 Python3 还要大)。</p> +<p>如果不想深究具体技术细节只想了解基本的来龙去脉,这里有篇文章<a class="link" href="https://xie.infoq.cn/article/1e151c24367abe8cad18130f4" target="_blank" rel="noopener" +>为什么 GIL 让多线程变得如此鸡肋?</a>介绍了 Python PIL 的产生背景以及适用于 Python 多线程的业务场景,可以给你的技术决策提供参考。</p> +<p>不过好消息是,就在刚刚(前几天),Python 官方终于宣布要动手取消掉 GIL 了,顿时网上一片沸腾(其实只有一部分人,大多数人都还不知道 PIL 是什么玩意儿)。而且,<a class="link" href="https://news.ycombinator.com/item?id=36643670" target="_blank" rel="noopener" +>Meta 也承诺,愿意出工出力(3人年)帮助 Python 社区做针对去除 GIL 的相关开发工作</a>。</p> +<h3 id="用树莓派做一个属于自己的高级收音机">用树莓派做一个属于自己的高级收音机</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-52-14.png" +width="606" +height="454" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +最近接触到 SDR (软件定义无线电)这个领域,感觉挺有意思的。</p> +<p>软件定义无线电是一种无线通信技术,它利用软件来实现无线电通信系统中的信号处理和调制解调功能,而不是传统的硬件电路。</p> +<p>通过软件定义无线电技术,可以实现灵活、可配置和可重用的无线通信系统,大大提高了无线通信的灵活性和性能。</p> +<p>传统的无线电通信系统通常使用硬件电路来执行信号处理、调制解调和频谱管理等功能。这些硬件电路通常是固定的,不能轻易更改,因此限制了通信系统的灵活性和可配置性。</p> +<p>而SDR技术通过将信号处理和调制解调等功能以软件方式实现,可以在通信系统中使用可编程的处理器和通用硬件,从而使得通信系统的功能可以在软件层面上重新配置和调整,而不需要更改硬件设计。</p> +<p>比起灵活性和可配置性来说,我觉得 SDR 最大的优势是成本大大降低。之前必须购买昂贵的硬件才能实现的效果,现在能够通过便宜的、少量的硬件加上软件模拟即可。</p> +<p>我近期就以很低廉的价格购买了一套 SDR 设备,通过 USB 接口连接计算机,可以实现 500KHz到1700MHz频率范围的接收。听 FM 和航空频段不在话下,SW 短波的话受天线影响,我暂时没有调试出好的效果。</p> +<p>跟 SDR 相比,我几千块买的旗舰手台显得既昂贵又功能弱。</p> +<p><a class="link" href="https://www.hackster.io/mircemk/diy-sdr-dsp-radio-with-raspberry-pi-and-rtlsdr-dongle-c38064" target="_blank" rel="noopener" +>这里有篇文章</a>是作者自己动手用 SDR 设备结合树莓派制作了一个看起来还挺专业的宽频无线接收机。</p> +<p>其实这跟音乐制作领域内很多乐器、效果器逐渐被虚拟化的软件、插件代替是一样的。软件虚拟化拥有巨大的优势,随着通用计算硬件的成本越来越低廉,一切能被软件定义的最终都会被软件定义。</p> +<h3 id="家用-wifi-路由器需要选择哪个信道">家用 WiFi 路由器需要选择哪个“信道”</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-52-42.png" +width="601" +height="373" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="386px" +> +近期验证了一个关于无线路由器的传说。</p> +<p>起因是我新买了一个树莓派 ZeroW 带无线版本,没想到板载的 WiFi 网卡天线太弱了。</p> +<p>离路由器稍微远一点,比如放到卧室,传输速率就会大幅下降,我又暂时没能找到合适的外接网卡,一度陷入绝望。</p> +<p>后来灵机一动,看看能不能从路由器那头想想办法,于是打开路由器配置页面,找到了 WiFi 的“信道”设置,将之从“自动”调到了最不常用的“13”。</p> +<p>这里补充一下,WiFi信道一般从1到13,由路由器自动选择,但现在无线环境十分混乱,尤其是 2.4G(树莓派 Zero W 只能连这个规格) 频段,干扰很严重。</p> +<p>但是 13 这个信道很少被路由器自动选用,原因是最初制定标准的时候,不是所有国家和地区都支持,也不是所有终端设备都支持,所以这个信道就成了最不常用的。</p> +<p>在我手动指定信道之后,惊喜地发现,树莓派放在同样的位置,传输速率得到了较大提升并且稳定。看来传说将路由器 2.4G 信道设为 13 可以防干扰是真实的。</p> +<p><a class="link" href="https://zhuanlan.zhihu.com/p/344389009" target="_blank" rel="noopener" +>什么是路由器的信道?信道设置成什么最合理?</a></p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://roadmap.sh" target="_blank" rel="noopener" +>开发人员路线图</a> 是一个学习索引网站,旨在创建路线图、指南和其他教育内容,以帮助开发人员选择学习路径。在 Github 所有仓库中 Stars 排名第七。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-03.png" +width="690" +height="490" +loading="lazy" +class="gallery-image" +data-flex-grow="140" +data-flex-basis="337px" +></li> +<li><a class="link" href="https://felixkreuk.github.io/audiogen/" target="_blank" rel="noopener" +>AudioGen</a> facebook 开源的声音合成模型,可以根据文字描述生成对应的声音。效果已经很惊人了,这个页面展示了很多样例。我听了一下,觉得以后影视作品里的一部分声音特效应该可以通过 AI 进行生成了。至少像一些嘈杂的人群、婴儿哭声、鸟叫等各种背景音是可以合成的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-14.png" +width="499" +height="270" +loading="lazy" +class="gallery-image" +data-flex-grow="184" +data-flex-basis="443px" +></li> +<li>原来 Chrome 和 Edge 浏览器的 DevTools 里自带了 CSS 动画曲线编辑器啊!可以直接通过鼠标拖动进行调整和预览,十分便捷。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-29.png" +width="562" +height="528" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="255px" +></li> +<li><a class="link" href="https://github.com/GraphiteEditor/Graphite" target="_blank" rel="noopener" +>Graphite</a>,一个开源的 2D 矢量图形编辑器,适用于照片编辑、图像处理、图形设计、插图、数据可视化、数字绘画等领域。可以实现项目图稿,数据可视化和自动化。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-54-19.png" +width="830" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="428px" +></li> +</ul> +<h2 id="观点">观点</h2> +<h3 id="获取高品质信息的需求仍然强烈只是被淹没了">获取高品质信息的需求仍然强烈,只是被淹没了</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-54-40.png" +width="367" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="236px" +> +三十几年前,电视逐渐取代书籍、报纸等传统媒体的年代,尼尔波兹曼写下了《娱乐至死》。</p> +<p>作者认为:过度追求娱乐和娱乐化的信息传播方式可能导致公众思考能力的下降。</p> +<p>然而这么多年过去了,人们在降低信息质量这条路上越走越远。电视也早已沦为老年人卧床的伴侣,电视节目更是无法占据现代人的时间,取而代之的是手机短视频。</p> +<p>短视频已经成为大部分人闲暇消遣、信息获取的主要方式。这种媒体的变化将进一步降低理解和感受深度信息的能力,使人对深入学习和思考失去兴趣。</p> +<p>虽然获取的信息看似在增多,但现在高质量的信息却越来越少。</p> +<p>短视频等碎片化信息给我的感觉就像是无线电信号的背景噪音,现在的信息“电磁环境”早已被这种噪音充斥。因为“背景噪音”太大,就好像在高楼林立的城市里打开无线电,接收到的全是 LED 路灯和电动车充电器产生的噪波。</p> +<p>不过我还是相信会有包括我在内的相当一部分人,不愿放弃主动思考,不屑于接收低品质信息。</p> +<p>我正在努力做出一些尝试,以后逐渐记录下来:</p> +<ol> +<li>降低输入:减少刷碎片信息的时间;</li> +<li>滤波:使用搜索引擎、RSS服务、newsletter邮件等工具进行整理;</li> +<li>溯源:尽量选择信息源头获取一手信息,对于技术来说,直接阅读英文文档是一个办法;</li> +<li>创造:自己制作高质量内容;</li> +</ol> +<h3 id="摄影师不会被-ai-取代但是模特很可能会">摄影师不会被 AI 取代,但是模特很可能会</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-56-00.png" +width="664" +height="427" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="373px" +> +即便以后 AI 绘画能够产出更加难以分辨真假的作品。</p> +<p>从目前能看到的各种生成作品来说,还是摄影师负责了主要的创作灵感。</p> +<p>真要说被取代的话,也许“被拍摄对象”经过虚拟化以后,很可能被取代。</p> +<p>以后不仅仅是举着相机的叫摄影师,说不定会诞生面向 AI 摄影这一职业。</p> +<p>到时候器材党玩的不再是镜头,改玩显卡了?</p> +<p>“嘿,你这 N 卡 比我这 A 卡有德味儿,毒!”</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 043 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/Tue, 01 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/<h1 id="机器文摘-第-043-期">机器文摘 第 043 期</h1> +<h2 id="长文">长文</h2> +<h3 id="先做框架再做功能">先做框架再做功能</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-57-56.png" +width="690" +height="395" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="419px" +> +<a class="link" href="https://devblogs.microsoft.com/oldnewthing/20230725-00/?p=108482" target="_blank" rel="noopener" +>Before you try to do something, make sure you can do nothing.</a></p> +<p>看到这句话第一反应是:这是什么 XX 逻辑?看完作者的文字之后,哦,这是一种软件构建的方法。</p> +<p>意思是说,先宏观再微观,先整体再局部,别一上来就陷入到细节代码的编写中去。</p> +<p>先把框架搭好,具体功能一个也别着急实现,留着占位,先搭一个“什么都不干”的架子,然后再逐渐补充功能。</p> +<p>但也不是真的什么都不干,而是理清了各个关键组件的调用关系以及与开发相关的辅助功能(如打印调试信息)。</p> +<p>这样做最大的好处是,随着功能开发的深入,代码不至于失控,而且具有良好的可调试性和组件问题隔离能力。</p> +<p>随之而来的就是轻松写代码,而不是眉毛胡子一把抓。</p> +<h3 id="神经网络从开始到现在">神经网络从开始到现在</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-58-59.png" +width="690" +height="513" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="322px" +> +<a class="link" href="https://s3tlxskbq3.feishu.cn/docx/NyPqdCKraoXz9gxNVCfcIFdnnAc" target="_blank" rel="noopener" +>The Document is All You Need!</a></p> +<p>一篇 AI 科普好文章,用较为通俗的语言讲解了神经网络模型原理和发展历程(我感觉有些像生物的进化)。</p> +<p>从最初的由神经元组成的多层感知机开始,然后进化到卷积神经网络 CNN 降低网络复杂度,再进化, RNN 循环神经网络给模型增加记忆能力,记忆能力太强也不行,到了 LSTM 开始让它能够遗忘,再到后面的 注意力机制以及 LLM 语言模型。</p> +<p>比起同类文章,这一篇尽量避免了数学概念的推导和论证,尽量在不看公式的情况下解释基本思路,适合我等小白学习。</p> +<h3 id="代码审查的一些建议">代码审查的一些建议</h3> +<p><a class="link" href="https://codelantis.com/blog/code-reviews-best-practices" target="_blank" rel="noopener" +>5个关于代码审查的最佳实践</a>,文章记录一些了对代码审查的实践建议,嫌长不看我总结如下:</p> +<ol> +<li>一次只审查一个功能特性或者错误修复。</li> +<li>提前准备好背景交代(在审查之前写清楚这么做的原因和基本思路)。</li> +<li>利用自动化工具提前做好静态检查,提前统一风格、规范。</li> +<li>利用提问的方式提出改进建议而不是直接喷,如:“我们真的需要这个断言吗?”</li> +<li>仔细阅读代码,慢慢来,以充分理解。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li> +<p>微软的 <a class="link" href="https://learn.microsoft.com/en-us/sysinternals/downloads/zoomit" target="_blank" rel="noopener" +>ZoomIT</a> 真是个经典工具,已经默默维护了好多年了,现在版本为7.0。体积小巧才1MB多点儿,绿色免安装,下载解压即用。非常适合进行共享屏幕培训讲解,或者录制教学视频。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-59-57.png" +width="669" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="345px" +> +ZoomIT 快捷键如下: +Ctrl+1:放大屏幕,屏幕静止,然后使用鼠标批注; +Ctrl+2:使用鼠标随意绘制批注,支持 r、g、b、o 等快捷键切换颜色; +Ctrl+3:显示 BreakTime 倒计时; +Ctrl+4:放大屏幕,屏幕继续支持鼠标交互操作,用于放大操作过程; +Ctrl+5:录制屏幕,可与前面几个功能结合使用;</p> +</li> +<li> +<p><a class="link" href="https://github.com/kamranahmedse/driver.js" target="_blank" rel="noopener" +>driver.js</a> 一个压缩后只有 5K 大小的前端库,可以让你的网站或者 Webapp 迅速集成交互式“使用指南”的能力。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-27.png" +width="690" +height="361" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></p> +</li> +<li> +<p><a class="link" href="https://clangjs.netlify.app" target="_blank" rel="noopener" +>clangjs</a> 一个在浏览器编译、链接、运行 C/C++ 代码的 JS 库。支持 C/C++ 标准库。完全在本地编译,无需网络即可工作。原理: +首先把 Clang 和 LLD 编译为 WebAssembly 使其运行在浏览器中。然后使用 WebAssembly 版本 Clang 把 C/C++ 代码编译为 WebAssembly,最后通过浏览器 API 运行 WebAssembly。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-43.png" +width="690" +height="292" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="567px" +> +<a class="link" href="https://github.com/luoxuhai/clang.js" target="_blank" rel="noopener" +>附:clangjs源码</a></p> +</li> +<li> +<p><a class="link" href="https://github.com/bartobri/no-more-secrets" target="_blank" rel="noopener" +>nms</a>,一个控制台程序,可以将任意命令的输出(ANSI TXT)文本转换成为乱码以达到防偷窥和加密的效果。通过命令管道使用:<code>ls -l | nms</code> ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-57.png" +width="690" +height="236" +loading="lazy" +class="gallery-image" +data-flex-grow="292" +data-flex-basis="701px" +></p> +</li> +<li> +<p><a class="link" href="https://iconbuddy.app" target="_blank" rel="noopener" +>Icon Buddy</a>,这个网站有超过 1 百万个免费 svg 图标,可在线自定义颜色。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-01-15.png" +width="690" +height="420" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="394px" +></p> +</li> +</ul> +<h2 id="观点">观点</h2> +<ul> +<li>无法眼神交流不是导致远程办公沟通的最大障碍,语音延迟才是: +<ul> +<li>我之前一直以为远程办公给沟通带来最大的最大障碍是无法眼神交流导致的信息失真,想象着可以通过升级摄像头(比如嵌入在屏幕中)来改善这一情况。</li> +<li>但进行无数次网络会议之后,我体会到了最大的障碍还不是无法眼神交流,而是网络通信带来的(几乎是必然的)严重的语音延迟。</li> +<li>人们对声音延迟的感知和容忍限度大约在10毫秒(现在的电脑声卡在使用 ASIO 驱动之后可以轻松做到本地延迟 8到6毫秒左右,所以可以用于实时录音),大于10毫秒的延迟会带来明显的迟钝感,时间再长一些就会对对话的节奏带来严重影响。(如果体会不到的话,可以回忆一下新闻直播间主持人跟现场记者连线时那种说话总是对不上节奏的尴尬。)</li> +<li>什么时候网络视频会议的延时能缩短到10毫秒以内(唱卡拉OK可以接受的最低延迟),远程办公才能迎来质的飞跃,否则网络视频会议对于工作讨论永远都是隔靴搔痒、效率低下。现在的解决方案普遍还在吹能做到一秒(1000毫秒)以内,任重而道远。 ​​​</li> +</ul> +</li> +<li>现在真正的程序员用什么编辑器 ? +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-01-47.png" +width="690" +height="645" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="256px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 042 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/Tue, 25 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/<h1 id="机器文摘-第-042-期">机器文摘 第 042 期</h1> +<h2 id="长文">长文</h2> +<h3 id="从-cpu-到操作系统">从 CPU 到操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-57-14.png" +width="665" +height="261" +loading="lazy" +class="gallery-image" +data-flex-grow="254" +data-flex-basis="611px" +> +整天使用电脑和手机却对它的工作原理一知半解?<a class="link" href="https://cpu.land" target="_blank" rel="noopener" +>把你搁 CPU 里</a>是一套不错的科普文章,作者保证你无论是否了解 CPU 的运作方式,读完之后都会有所收获。我原本以为主要讲解 CPU 组成原理,在浏览了一遍之后,发现 CPU 只是引子,后面还讲了很多操作系统相关的知识,很值得一看。 ​​​</p> +<h3 id="基于-gpu-渲染的-ui-界面制作">基于 GPU 渲染的 UI 界面制作</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-57-33.png" +width="690" +height="412" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +> +<a class="link" href="https://hasen.substack.com/p/gpu-gui-table-of-contents" target="_blank" rel="noopener" +>基于 GPU 渲染的 UI 界面制作</a>,也是一个系列文章,探讨了使用 GPU 渲染用户界面的一些思路和相关技术实现方法。用 GPU 绘制用户界面不是什么新鲜事,事实上现在大部分游戏的 UI 都是基于 GPU 渲染的,不过这个作者讲的比较深入浅出,对基础介绍的比较多,适合我这种业外人士,读起来通俗易懂。</p> +<h3 id="为什么我们更应该使用-display-port-而不是-hdmi-">为什么我们更应该使用 Display port 而不是 HDMI ?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-58-12.png" +width="790" +height="479" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +> +<a class="link" href="https://hackaday.com/2023/07/11/displayport-a-better-video-interface/" target="_blank" rel="noopener" +>为什么我们更应该使用 Display port 而不是 HDMI?</a>,简单来说,HDMI 是家电行业制定的接口标准,封闭而保守,Display port 是 PC 行业制定的标准,开放又激进。现在的显卡上一般提供一个 HDMI 接口,仅仅是为了兼容而做出的妥协,不提供多个是因为 HDMI 授权收费。</p> +<h3 id="txt-纯文本才是王道">txt 纯文本才是王道</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-58-45.png" +width="690" +height="220" +loading="lazy" +class="gallery-image" +data-flex-grow="313" +data-flex-basis="752px" +> +喜欢老式合成器的操作方式,不用图形和触摸屏,而是用文本和字符进行交互,可以快速选择音色参数,指哪儿打哪儿,心中有数。</p> +<p>喜欢在控制台的黑窗口通过命令行跟计算机交互,而不是用鼠标在图形界面上点击,不用将鼻子凑在屏幕上,闭上眼睛也能做到精确操作。</p> +<p>喜欢单反相机的肩屏,无论我用什么姿势拨动拨杆、拨轮,肩屏总能用字符给我最快速最准确的响应,告诉我现在的曝光三参数是多少,做到心中有数。</p> +<p>喜欢用 Markdown 文本格式记录信息,只因为文本格式最干净纯粹,利于保存和传播。</p> +<p>这篇<a class="link" href="https://graydon2.dreamwidth.org/193447.html" target="_blank" rel="noopener" +>《txt纯文本才是王道》</a>的作者表达了跟我同样的喜好,对于使用纯文本保存信息偏爱有加,认为无论是视频、图片还是其他数字形式,在文字面前都是弱小的弟弟。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/FlagAlpha/Llama2-Chinese" target="_blank" rel="noopener" +>Llama2-Chinese</a>,Llama2中文社区!是一个专注于Llama2模型在中文方面的优化和上层建设的高级技术社区。 <em>基于大规模中文数据,从预训练开始对Llama2模型进行中文能力的持续迭代升级</em>。Facebook近期开源的 Llama 2 模型比较火,号称可以免费商用。我试了一下,效果不如预期,跟 ChatGPT 3.5 比起来还有距离。可能我使用的中文微调 Lora 参数还不够好吧。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-02.png" +width="690" +height="182" +loading="lazy" +class="gallery-image" +data-flex-grow="379" +data-flex-basis="909px" +></li> +<li><a class="link" href="https://githubunwrapped.com" target="_blank" rel="noopener" +>githubunwrapped</a>是一个帮你统计 Github 信息的网站,可以将输入的 Github 账号相关的统计信息生成一段漂亮的动画,展示你使用最多的编程语言、哪天提交的最积极、哪个时段工作效率高(根据文件修改时间?)等。比较有趣的是,这个网站生成动画视频的技术来自一个叫做 <a class="link" href="https://remotion.dev" target="_blank" rel="noopener" +>remotion</a>的库,它可以使用 React 组件式风格编写动画效果,并通过 Canvas 实现视频文件的渲染。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-18.png" +width="690" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></li> +<li><a class="link" href="https://github.com/jesseduffield/lazydocker" target="_blank" rel="noopener" +>lazydocker</a>,继发现 lazygit 和 lazyvim 两个神器之后,我又发现了 lazy 家族新成员:lazydocker!同样是提供终端命令行下的“gui”界面,不过操作对象是 docker 这下管理容器终于可以不再看错乱的 docker 命令输出了。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-28.png" +width="690" +height="397" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></li> +</ul> +<h2 id="观点">观点</h2> +<ul> +<li> +<p>关于产品需求的来源:</p> +<p>对于提供IT相关服务的从业人员来说,无论是在企业还是个人做独立产品,把握好产品的需求、做好产品定义是最关键的事情,是后续做研发、运营的基础。</p> +<p>而好的产品定义=自己想做+自己能做+用户想用+愿意付费。</p> +<p>这样的定义应该怎样去发现?</p> +<p>拿软件举例,大部分软件能给用户提供的最大价值是“将一些事情自动化”和“将一些物理实体虚拟化”。前者能够通过自动化实现工作效率的指数级提升,后者则通过对物理现实虚拟化实现用户对交互体验的指数级提升。</p> +<p>所以在分析产品需求进行产品定义时可以从身边三个方面入手:</p> +<ol> +<li>还有什么事情可以被计算机自动化?</li> +<li>还有哪些物理实体可以被虚拟化?</li> +<li>市场上的现有产品,还有哪些可以从上面两个维度提升以增强体验的?</li> +</ol> +<p>我发现,无论是企业的产品,还是个人的独立产品,都可以从这些维度进行分析。</p> +</li> +<li> +<p>基于互联网通道的“业余无线电”:</p> +<p>不是很理解热衷于用互联网通道进行业余无线电通联的心态。</p> +<p>今天刚知道现在有一些业余无线电爱好者使用一种叫做 mmdvm 的盒子(热点盒子)进行自主搭建数字中继。</p> +<p>原理是“热点盒子”用家里的wifi接入互联网,然后热点盒子给业余无线电台提供UV频段的发射接收中继,这样就能轻易通联全国甚至全球的爱好者。</p> +<p>目前很多拥有支持数字通信的电台的爱好者都很积极地参与这种通联,甚至每周还有打卡点名活动。</p> +<p>我暂时还不是很理解这种心态。这种依赖互联网进行的通联在我看来(也许是暂时的)早已失去了玩无线电的初衷。如果我想要通过互联网假装进行呼叫,还得依靠家里的无线路由器,那我为什么不干脆使用微信电话?</p> +</li> +<li> +<p>无头系统: +今天才知道原来我给自己配的远程开发环境有个专业术语叫做 <a class="link" href="https://zh.wikipedia.org/zh-cn/%e6%97%a0%e5%a4%b4%e8%ae%a1%e7%ae%97%e6%9c%ba" target="_blank" rel="noopener" +>“Headless 无头系统”</a> 啊。我现在基本上可以做到带着笔记本随意移动,开发环境都在远程,在各处体验环境都一样。主要使用: Win10 + WSL2 + Nvidia-Docker + VS Code + Neovim。有时会启用远程桌面 RDP,有时直接 ssh + tmux。有兴趣的话我挑一期详解。</p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 041 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/Wed, 19 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/<h1 id="机器文摘-第-041-期">机器文摘 第 041 期</h1> +<h2 id="长文">长文</h2> +<h3 id="c-也能一次编译到处运行了">C 也能一次编译到处运行了?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-28-30.png" +width="743" +height="446" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="399px" +> +用 C 编写的程序,只编译一次,生成的可执行文件能同时在多个平台运行吗?</p> +<p>这在以往是 java 这类依赖虚拟机执行环境的语言宣称的事情。</p> +<p>然而我今天才听说还有这个神奇的库(好久没关注过c++领域的技术了):<a class="link" href="https://github.com/jart/cosmopolitan" target="_blank" rel="noopener" +>Cosmopolitan</a>Libc 号称可以使 C 成为一种构建一次就能到处运行的语言,就像Java一样,除了它不需要解释器或虚拟机。相反,它重新配置了GCC和Clang,以输出POSIX批准的多语言格式,该格式在Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS上本地运行,具有最佳的性能和最小的占用空间。</p> +<p>在使用的时候需要引入特殊的库和编译配置,具体执行效果我还没有测试。</p> +<p>然后,<a class="link" href="https://ahgamut.github.io/2023/07/13/patching-gcc-cosmo/" target="_blank" rel="noopener" +>这篇文章</a>的作者干脆来个更方便的操作,他给 GCC 打了大约 2000 行的补丁,使得 GCC 直接就嵌入了 Cosmopolitan 库,现在可以在不修改任何源代码(前提是得用纯 C 写)的情况下构建出到处都能运行可执行文件了(Windows也可以吗?我要测试)。</p> +<h3 id="业余无线电入坑指南">业余无线电入坑指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-29-07.png" +width="690" +height="920" +loading="lazy" +class="gallery-image" +data-flex-grow="75" +data-flex-basis="180px" +> +业余无线电跟摄影、HiFi音响这一类的爱好在某种维度上非常相似,在“入坑”的境界上,甚至完全一样。</p> +<p>这里的坑,指需要投入大量精力和资金。</p> +<p>之所以这么说,是因为它们都有一个共同的特点。</p> +<p>即围绕这些爱好有大量的知识可以学习和探索。</p> +<p>比如拿业余无线电来说,上来就一堆“亚音”、“中继”、“频段”、“频差”、“杂散发射”等名词,对标摄影中的“构图”、“光圈”、“快门”、“ISO感光度”等名词。新手若想有所体会,单是这些概念就够琢磨几天的。更不用提后续还有逐渐步入玄学的一些操作流派,乃至一个不留神还会陷入无穷尽的装备升级竞赛。</p> +<p>这类知识对于好奇心强烈、喜欢求知的人来说有着巨大的吸引力。甚至直白的说,我们很可能不是爱好这项技能,而是单纯喜欢探索和求知的过程,喜欢那种获得感。</p> +<p>这篇<a class="link" href="https://zhuanlan.zhihu.com/p/585518350" target="_blank" rel="noopener" +>《业余无线电新手指南》</a>可以普及一些基本知识,愿意入坑的请阅读。</p> +<p><em>我近期已考取了中国无线电协会的业余无线电操作能力 A 证</em> 算是合法的 <a class="link" href="https://baike.baidu.com/item/%E6%97%A0%E7%BA%BF%E7%94%B5%E7%88%B1%E5%A5%BD%E8%80%85/6509242" target="_blank" rel="noopener" +>HAM 火腿</a>了。</p> +<h3 id="远程办公还能成为趋势吗">远程办公还能成为趋势吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-29-47.png" +width="799" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="463px" +> +疫情的时候,远程办公、异地协同等概念一度变得很火爆,当时很多人觉得这又是一个风口。</p> +<p>但随着当时极端环境的消失,各大公司又纷纷将员工从居家办公中召回。</p> +<p>那么?此类与远程协作相关的概念破灭了吗?</p> +<p>各种协同工具、平台相关的市场,还有没有继续扩大的可能,或者说还在等待一个巨大的技术革新来引爆?</p> +<p>这里有个项目,<a class="link" href="https://github.com/LinuxSuRen/remote-jobs-in-china" target="_blank" rel="noopener" +>积极收集远程办公相关的信息</a>,包括国内支持的公司清单、工具及使用资料等。</p> +<h3 id="怎样做出伟大的成就">怎样做出伟大的成就?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-30-40.png" +width="636" +height="422" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +> +昨日读了保罗格雷厄姆(《黑客与画家》的作者)新文章一篇&mdash;-<a class="link" href="http://paulgraham.com/greatwork.html" target="_blank" rel="noopener" +>《怎样做出伟大的成就》</a>(实际上我觉得可以译为“怎样牛逼”)。</p> +<p>虽然标题看起来略有鸡汤味儿,但读起来还是比较实惠的。</p> +<p>文章从发现和选择要做的事情开始,谈论了一些具体的方法。然后展开讨论了在方法执行过程中可能会遇到的一些问题,以及如何克服。甚至介绍了一些心理暗示技巧。</p> +<p>文章比较长,我个人体会比较深的点如下:</p> +<ol> +<li>一个人做什么才能牛逼?答:做自己天赋里有的东西,就是找一些你既有能力又非常感兴趣的事情。</li> +<li>要养成“自驱”的习惯。让“工作”来源于自己的认知,而不是别人告诉你、让你做的事情。主动,而不是等待。</li> +<li>拥有一个属于自己的“项目”是一个找到“自驱”的最佳方法。不断观察自己对什么有强烈的好奇心(甚至好奇到大多数人不能理解)可以找到这样的“项目”。</li> +<li>选定要做的“项目”还应遵循兴奋原则,即:做自己愿意用的产品,写自己想读的故事,而不是执着于满足想象中的不存在的复杂需求。</li> +<li>注重积累效应,日拱一卒、长期积累,每天写一篇文字,一年下来就是一本书。</li> +<li>周期性审视自己做的事情,确认它是否偏离了目标(在做自己最想做的事情),及时修正。</li> +<li>行动的重要性,很多人实际上可以更牛逼,但是因为“谦虚”和“恐惧”导致的拖延使得计划一再搁浅,浪费了时间。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="http://t.cn/A60wPLwI" target="_blank" rel="noopener" +>jabbr.ai</a>是一个针对拳击比赛的打击判定进行训练的AI模型,可以在智能手机上运行,实时监测视频中拳击选手的打击得分情况,即时进行统计,多个智能手机多视角同时运行可以快速生成总结性视频。模型提供约50种监测参数(质量、步法、压力等)可用于运动员训练分析。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-31-11.png" +width="908" +height="509" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="428px" +></li> +<li>浏览器地址栏快捷操作,我今天才知道原来浏览器地址栏还有这些快捷操作(火狐浏览器支持的最多,我测试的Edge浏览器也支持部分操作): +<ol> +<li>输入*星号,可以搜索你的收藏夹;</li> +<li>输入^,可以搜索历史浏览记录;</li> +<li>输入%,可以搜索当前打开的tab页;</li> +<li>输入?,可以显示所有搜索建议; ​​​</li> +</ol> +</li> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4923133602234429" target="_blank" rel="noopener" +>树莓磁带</a> 一种用树莓派做的小硬件,为了支持在老式电脑中加载程序(之前用磁带存储的那种)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-31-40.png" +width="607" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></li> +<li>两招教你“永久”关闭 Windows 自动更新(任选一个都可以): +<ol> +<li>通过执行代码的方式:<code>reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings” /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f</code> Win+R 打开「运行」对话框,输入 <code>cmd</code> 后按下 <code>Ctrl+Shift+Enter</code>,在弹出来的命令行窗口中输入上面的代码,并敲击回车。命令里的 10000 代表停止更新的天数。</li> +<li>手动把电脑时钟日期改成 2050 年(为了防止时间自动校准,可以暂时断开网络),然后在 Windows 更新设置界面里面点击“延迟更新”,完成设置后再把电脑时间调回来就行了。</li> +</ol> +</li> +<li><a class="link" href="https://pkg-size.dev/" target="_blank" rel="noopener" +>pkg-size</a>,一个在线监测 npm 包大小的网站,可以实时查看一个 npm 包的真实依赖,网站利用了 web容器技术,直接在浏览器里执行 npm install 操作。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-32-07.png" +width="1011" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="158" +data-flex-basis="381px" +></li> +<li><a class="link" href="https://marketplace.visualstudio.com/items?itemName=degreat.3e" target="_blank" rel="noopener" +>3e</a>,一个 VS Code 插件,可以让你在编辑器里直接浏览 3d 模型,基于 webgl 实现。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-32-58.png" +width="704" +height="468" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 039 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/Tue, 11 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/<h1 id="机器文摘-第-039-期">机器文摘 第 039 期</h1> +<h2 id="长文">长文</h2> +<ul> +<li> +<p><a class="link" href="https://www.cs.columbia.edu/~hgs/etc/writing-bugs.html" target="_blank" rel="noopener" +>关于写作的通用问题</a>,“元技能”一般指比普通技能更高阶的技能,我理解为可产生技能的技能,此类技能并不会随着外部环境的高速发展而被淘汰。比如写作就算是一种元技能,当不知道该训练和提升什么技能的时候,将时间花在“元技能”的提升上准没有错。这篇文章主要讲解英文写作的常见问题,但是有些我觉得对于中文也适用。比如文章开头提到的两个基本原则:“在写之前就弄清楚自己想表达什么”、“即便是你已经写完了一整篇,如果没能表达你的意思那也是废纸”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-13-52-23.png" +width="294" +height="171" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="412px" +></p> +</li> +<li> +<p><a class="link" href="https://jmmv.dev/2023/06/fast-machines-slow-machines.html" target="_blank" rel="noopener" +>新电脑快还是老电脑快?</a>,上周有博主在twitter发布了一个视频吐槽了一个我也困惑很久的事情。作者展示了他在一台古董电脑上运行Windows NT 3.5 的情况,视频中的电脑基本可以做到秒开程序,然后又展示了一台配备了Windows 11的Surface平板电脑,操作起来界面响应有明显延迟。后者cpu频率为前者的4倍,内存容量为前者的6倍。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-13-55-53.png" +width="507" +height="228" +loading="lazy" +class="gallery-image" +data-flex-grow="222" +data-flex-basis="533px" +></p> +</li> +</ul> +<p>现在的硬件性能动辄就比之前的老硬件几十甚至上百倍的提升,但是我们的交互体验呢?能够秒开的程序甚至还不如二十年前的老爷机。 +后来这事儿在twitter引发了一些争议,有人认为现在的软件确实吃掉了硬件提升的性能,对体验来说提升不足。也有人说现在的体验与以往不可同日而语,这样的对比不公平也没有意义。</p> +<p>博主不得不专门写了一篇文章来回应,详细记录了作者认为更加合理的对比过程。</p> +<p>我个人认为首要原因就是随着硬件性能的提升,软件开发者的精力已经逐渐从性能向开发效率倾斜了。由于现在硬件成本确实低廉,软件迭代周期变得越来越短,软件开发者也越来越没有动力做出极致挖掘硬件性能的软件。</p> +<p>不信你看,现在越来越多的应用程序不再使用原生开发,而是采用了可以“跨平台”的web技术。</p> +<p>这样使得软件界面的响应直接下降了一个数量级。(我在使用vscode的时候甚至还会遇到打字卡顿慢慢弹出字符的情况。)</p> +<p>另外,复杂的设计模式和软件架构,也吃掉了不少硬件性能,因为每增加一层抽象,都会消耗资源,而现在各种复杂的架构就是拼命地增加抽象层。</p> +<p>希望以后市场能够鼓励开发者多做挖掘硬件性能的事情吧。</p> +<ul> +<li><a class="link" href="https://faultlore.com/blah/text-hates-you/" target="_blank" rel="noopener" +>文字渲染比你想象的要复杂</a>,这篇文章的作者曾负责火狐浏览器的文字渲染引擎,他写这篇文字的目的是科普一下关于文字渲染的一些基本技术和困难。在阅读之前,我也简单的以为,文字渲染就是把对应的字符字形从字体库中取出来然后绘制到相应的位置即可,但实际情况确实比这要复杂得多。比如,文中提到的关于“连字符”的处理、“抗锯齿”、“书写方向”等问题,每一个都是开发者的头发杀手。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-12-47.png" +width="574" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/rrweb-io/rrweb" target="_blank" rel="noopener" +>rrweb</a>,可在网页上记录用户行为并导出视频文件。可用于:排查用户错误、保险业务签署、内部风控、用户交互分析等。rrweb采用虚拟化转换DOM、记录变更和操作过程,并通过链表回放数据。存储最小化、回放可快进且跳过无效行为。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-13-31.png" +width="529" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="139" +data-flex-basis="335px" +></li> +<li><a class="link" href="https://github.com/zhaoyun0071/DragGAN-Windows-GUI" target="_blank" rel="noopener" +>DragGAN-Windows-GUI</a>,DragGAN(上周介绍过的开源模型,可以针对图片进行交互式拖动修改)的懒人包,解压直接用,内置17个模型。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-13-53.png" +width="690" +height="421" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="393px" +></li> +<li><a class="link" href="https://neal.fun/deep-sea/" target="_blank" rel="noopener" +>deep-sea</a>,这个网页可以让你查看海洋各个深度都是有哪些生物,果然是越往下越看不清,所以大家就随便长长了,不讲究好看不好看了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-14-11.png" +width="690" +height="501" +loading="lazy" +class="gallery-image" +data-flex-grow="137" +data-flex-basis="330px" +></li> +<li><a class="link" href="http://elementsofprogramming.com/" target="_blank" rel="noopener" +>电子书《Elements of Programming》</a>,这本老书在出版十年后推出了免费pdf版。中文译作《编程原本》,旨在介绍通用的程序设计原理和技巧,重点关注程序设计的基本元素和抽象概念。这本书的核心思想是将程序设计看作是一种构建和操作抽象概念的过程。它强调程序设计应该建立在数学原理和精确性基础上,通过抽象和泛化来创建可重用、可扩展和可维护的软件。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-14-52.png" +width="377" +height="542" +loading="lazy" +class="gallery-image" +data-flex-grow="69" +data-flex-basis="166px" +></li> +<li><a class="link" href="https://github.com/loft-sh/devpod" target="_blank" rel="noopener" +>devpod</a>,Github 的 Codespaces 和微软的 VSCode DevContainers 给开发者提供了即开即用的云端开发环境。现在,他们的开源平替来了,devpod 是一个开源的开发环境容器,可以方便地在任意客户端(Mac、Win、Linux)或云端主机创建体验一致的开发环境,并且可以与VSCode和Jetbrains等IDE直接集成。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-15-25.png" +width="690" +height="266" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="622px" +></li> +<li><a class="link" href="https://uploads-ssl.webflow.com/5ac6b7f2924c656f2b13a88c/6435aabdc0a041194b243eef_Current%20Best%20Practices%20for%20Training%20LLMs%20from%20Scratch%20-%20Final.pdf" target="_blank" rel="noopener" +>从零开始训练大语言模型的最佳实践</a>,训练大语言模型的技术白皮书,从基本概念和技术讲起,教你训练大语言模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-15-45.png" +width="656" +height="849" +loading="lazy" +class="gallery-image" +data-flex-grow="77" +data-flex-basis="185px" +></li> +<li><a class="link" href="https://github.com/yardenshafir/WinDbg_Scripts/blob/master/windbg_the_fun_way.pdf" target="_blank" rel="noopener" +>windbg</a>,一本电子书,讲了很多 windbg 调试器的高级用法,市面上很少见。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-16-44.png" +width="620" +height="319" +loading="lazy" +class="gallery-image" +data-flex-grow="194" +data-flex-basis="466px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 040 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/Tue, 11 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/<h1 id="机器文摘-第-040-期">机器文摘 第 040 期</h1> +<h2 id="长文">长文</h2> +<h3 id="前端代码检查插件eslint和美化插件prettier的冲突">前端代码检查插件<code>ESLint</code>和美化插件<code>Prettier</code>的冲突</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-02-40.png" +width="1900" +height="1008" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +> +在使用VSCode等现代化编辑器进行前端开发的时候,很多工程样板都默认开启了代码检查和自动格式化的功能,其中以 ESLint 插件和 Prettier 插件为主。</p> +<p>之前有一阵子我总是困惑这两个插件的区别,甚至如果配置不好的话,还会有冲突。</p> +<p>比如 Prettier 插件会在你保存源码的时候按照既定规则进行“美化”代码,如去除行尾分号、增加表达式中的空格等等。此时如果ESLint插件的规则配置不同的话,编辑器就会报错并提示要进行“修复”,然而就在你“修复”之后,刚<code>Ctrl+S</code>保存之后,又傻眼了,因为 Prettier 又对代码进行了“美化”。</p> +<p>我周末特意花时间研究了一下,梳理了一下这两个插件的关系以及他们的分工。</p> +<p>首先,他们的职责定位不同:ESLint 用于检查代码编写是否符合某种预定义的规范,可以进行十分详尽的配置和多项检查,比如定义的变量如果未使用可以作为一种警告或者错误,其职责定位以检查为主。而 Prettier 的职责侧重于格式化(美化)代码,对于编写代码的样式如 tab 缩进量、行尾要不要分号、字符串用单引号还是双引号等可以进行统一格式化,一般用于在代码保存的时候进行快速统一样式。</p> +<p>所以两者可以配合使用,但开头提到的规则冲突需要注意。</p> +<p>我个人的习惯是,将两个插件的配置文件里的配置项进行匹配(规则调整为一致),因为我在美化时关注的项并不太多,所以编写这两个配置文件不算费劲。</p> +<p>而网上有人提出了更好的办法,即通过扩展插件的方式,使得 ESLint 自动获取 Prettier 的规则,以自动统一两者的行为。</p> +<p><a class="link" href="https://rileycai.com/%e4%b8%8d%e4%bb%a5%e8%a7%84%e7%9f%a9%ef%bc%8c%e4%b8%8d%e8%83%bd%e6%88%90%e6%96%b9%e5%9c%86-%e5%bd%bb%e5%ba%95%e6%90%9e%e6%87%82-eslint-%e5%92%8c-prettier/" target="_blank" rel="noopener" +>关于 ESLint 和 Prettier 的具体分析文章和操作建议可以看这一篇文章:</a></p> +<h3 id="说一说我现在的知识管理工具和流程">说一说我现在的知识管理工具和流程</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-03-27.png" +width="302" +height="517" +loading="lazy" +class="gallery-image" +data-flex-grow="58" +data-flex-basis="140px" +> +Hacknews 上有网友说<a class="link" href="https://news.ycombinator.com/item?id=36609641" target="_blank" rel="noopener" +>Evernote几乎辞退了它的所有员工</a>,才想起来我已经有好几年没用过 Evernote 了。之前大概有将近十年的时间都在使用Evernote(但都是免费用户)。主要使用场景是记录个人的工作日志和借助浏览器插件剪藏一些值得收藏的文章。</p> +<p>后来随着 Evernote 的限制越来越多,体验逐渐下降。我就迁移到了使用纯文本作为知识记录载体的路线上了。</p> +<p>期间使用过 Emacs 的 org 模式,也尝试过 vim 的 wiki 插件,最后选择了现在这个 VSCode + GitHub 的方案,已稳定使用了两年时间。</p> +<p>具体流程如下: +1、使用 VSCode + <a class="link" href="https://foambubble.github.io/foam/" target="_blank" rel="noopener" +>foam</a> 、<a class="link" href="https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one" target="_blank" rel="noopener" +>MarkdownAllinOne</a> 等插件实现对 Markdown 的高效编辑,可以实时预览排版效果,foam实现了类似 <a class="link" href="https://obsidian.md/" target="_blank" rel="noopener" +>Obsidian</a> 的文章双向链接和知识关系图谱。我主要使用 Markdown 记录日志和编写知识卡片用于存放个人吸收的信息。 +2、所有内容存放在一个 git 仓库中,同步到 GitHub 上的个人私有仓库,这样可以省去对接网盘的麻烦。 +3、对于互联网上阅读到的有用文章,使用浏览器插件 <a class="link" href="https://microsoftedge.microsoft.com/addons/detail/web-clipper/opejamnnohhbjflpbhnmdlknhjkfhfdp" target="_blank" rel="noopener" +>Web Clipper</a>,可以完整的抓取页面内容到指定的后端存储,这个插件我最喜欢的点是它可以将文章抓取到你指定的GitHub仓库,并作为Issue提交。 +4、来不及看的信息就先抓取到 Issue ,然后等有时间进行整理,形成自己的知识卡片后再关闭该 Issue 。</p> +<p>这套工具及流程的优点: +1、完全免费,不产生任何费用,而且体验不亚于收费软件。 +2、自由度高,存储后端可以自己随意选择,如果嫌 GitHub 麻烦的话,可以自己用网盘同步文件夹。 +3、纯文本载体,这个算是优点吧,格式开放,不会存在别的编辑器打不开的情况。 +4、数据私有,数据随时都在本地(云端的仅作为备份和同步中转),不用担心 SaaS 供应商跑路(你看现在的Evernote)。</p> +<p>欢迎大家讨论。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/TransparentLC/WechatMomentScreenshot" target="_blank" rel="noopener" +>朋友圈截图生成工具</a>,可以帮你生成逼真的朋友圈截图,可定制头像、评论、点赞个数等细节。收藏<a class="link" href="https://akarin.dev/WechatMomentScreenshot/" target="_blank" rel="noopener" +>这个地址</a>,以后再也不怕被群里晒孩子的家长或者搞活动的商家逼着发朋友圈集赞了。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-04-12.png" +width="690" +height="1227" +loading="lazy" +class="gallery-image" +data-flex-grow="56" +data-flex-basis="134px" +></li> +<li><a class="link" href="https://86box.net/" target="_blank" rel="noopener" +>86box</a>,老式 x86 架构计算机模拟器,与 Virtualbox 等虚拟化技术不同的是,86box采用纯软件模拟的方式,实现了经典老式 cpu (如 AMD Am486DX4)的各种技术细节,甚至是当时的硬件缺陷(有些老游戏的 hack 需要这些缺陷)。可以完美复现一台上世纪 90 年代的经典 DOS PC ,用来复古怀旧游戏是再合适不过了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-04-26.png" +width="553" +height="371" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="357px" +></li> +<li><a class="link" href="https://github.com/ztxz16/fastllm" target="_blank" rel="noopener" +>fastllm</a>,fastllm是纯c++实现,无第三方依赖的高性能大模型推理库(待测试验证)。据宣称:6~7B级模型在安卓端上也可以流畅运行,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llmam, moss基座,手机端流畅运行。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-17.png" +width="875" +height="356" +loading="lazy" +class="gallery-image" +data-flex-grow="245" +data-flex-basis="589px" +></li> +<li><a class="link" href="https://photoai.com" target="_blank" rel="noopener" +>PhotoAI</a>,作者说,他为这个网站大概写了14000行PHP代码,样式全写在了<code>&lt;style&gt;</code>标签里,JS全写在<code>&lt;script&gt;</code>标签里,除了<code>jQuery</code>没用任何框架,就连布局也是使用<code>float:left</code>这种老式的浮动实现。然而这个网站确能给他带来每月差不多 <em>6万刀</em> 的收入。这是不是在吹牛。这个网站的业务是:使用AI生成完全没有任何版权问题的各种人像照片。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-41.png" +width="690" +height="617" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="268px" +></li> +<li><a class="link" href="https://makepad.nl/makepad/examples/ironfish/src/index.html" target="_blank" rel="noopener" +>Ironfish synth</a>,用rust写的在线合成器,虽然感觉像个 Demo 但完成度很高,音源部分具有两个振荡器(可选正弦波、方波、锯齿波等)和一个噪波通道,滤波器、效果器齐全,另外还有一个可视化音序器。可基于键盘直接演奏。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-59.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 038 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/Tue, 27 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/<h1 id="机器文摘-第-038-期">机器文摘 第 038 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://www.polygon.com/23690187/discord-ai-chatbot-clyde-grandma-exploit-chatgpt" target="_blank" rel="noopener" +>ChatGPT的“奶奶漏洞”</a>,奶奶漏洞来源自一个用户说他已经过世的奶奶是凝固汽油弹工厂的工程师,用户让 ChatGPT 用他奶奶说睡前故事的形式,详细介绍了凝固汽油弹的制作方法。以此来绕过 ChatGPT 的安全审查,结果当然是,他得逞了。后来还有网友做了试验,以同样的方式可以套取 Windows 各个版本的序列号。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-53-23.png" +width="720" +height="489" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></li> +<li>国外也有“垃圾佬”,这篇<a class="link" href="https://l4rz.net/running-nvidia-sxm-gpus-in-consumer-pcs/" target="_blank" rel="noopener" +>《怎样低成本搭建深度学习电脑》</a>的文章,介绍了作者怎样通过在二手网站上“捡垃圾”搭建出了性能良好且便宜的GPU工作站。 值得一提的是,作者购买的主要渠道竟然来自国内的著名二手物品交易平台,某鱼。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-54-05.png" +width="690" +height="459" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li> +<p>回顾这些年软件研发的历程,凡是能够做成的软件,无一例外都是抓住了真正存在的需求。这样的需求未必很宏大或者华丽,但一定不是想象种的伪需求。仔细分析之后就会发现,在一个软件产品的生命周期里,开发者所面临的真正(或者说正确的)需求很少,因为找到它们十分不易,它们周边布满了被人们主观意识强加上的伪需求。<a class="link" href="https://cerebralab.com/Imaginary_Problems_Are_the_Root_of_Bad_Software" target="_blank" rel="noopener" +>《伪需求是糟糕软件的根源》</a>,文章探讨了软件开发中存在的一个问题,即虚构的问题(我将之译为:伪需求)如何导致糟糕的软件结果。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-56-35.png" +width="353" +height="179" +loading="lazy" +class="gallery-image" +data-flex-grow="197" +data-flex-basis="473px" +></p> +</li> +<li> +<p>有没有考虑过一个问题,即:为什么随着科技的发展和生产力的提升,人们不是越来越清闲,反而越来越劳累了?这里有篇文章探讨了一些深层次的原因,<a class="link" href="https://theanarchistlibrary.org/library/david-graeber-bullshit-jobs" target="_blank" rel="noopener" +>《狗屁工作》</a>,此文写于 2013 年,作者是 David Graeber (一名人类学教授)。文章讨论了现代社会中存在的一种现象,即许多人在工作中感到他们所从事的工作毫无意义,没有真正的价值和目的。这些工作被称为&quot;狗屁工作&quot;,作者试图探究狗屁工作的存在原因和对个体和社会的影响。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-56-57.png" +width="602" +height="854" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="169px" +></p> +</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/laishulu/Sarasa-Term-SC-Nerd" target="_blank" rel="noopener" +>Sarasa Term SC Nerd</a>,写中文Markdown文件的时候,最怕遇到表格,因为编辑器按照一个中文字符的宽度等于两个英文字符的宽度进行计算,而很多字体在设计时未考虑严格按照这种2:1的宽度比例设计字形,导致在Markdown在编辑状态时的表格分割线错位,看起来十分头疼。经过多方对比,我终于找到了让自己满意的等宽字体,支持中英文字符2:1宽度比例,中文为黑体,英文字符也特别适合写代码。此外还整合了Nerd fonts,支持在终端显示各种漂亮图标。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-58-24.png" +width="690" +height="187" +loading="lazy" +class="gallery-image" +data-flex-grow="368" +data-flex-basis="885px" +></li> +<li><a class="link" href="https://reviewgpt.net" target="_blank" rel="noopener" +>ReviewGPT</a> 写作文、写报告、写邮件,生活中充满了各种写作任务。ReviewGPT 基于 gpt 模型,可为你的文章进行打分、评价,提出修改意见,甚至还可以扮演莎士比亚、金庸等知名作家,帮助你重新撰写,快速提升文章质量。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-58-38.png" +width="690" +height="394" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="420px" +></li> +<li><a class="link" href="https://github.com/binpash/try" target="_blank" rel="noopener" +>try</a>,刚发布的一个命令行工具,目标是允许你执行命令的时候先检查其执行的后果,然后再决定是否让命令真正生效。真正起到了安全保护的效果。官方介绍这个命令是基于 Linux 的命名空间(通过 unshare )和 overlayfs 联合文件系统等技术实现。并特别提醒并非基于沙盒,所以还是谨慎执行危险操作吧。比如<code>try rm rf /*</code>。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-59-26.png" +width="831" +height="467" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="427px" +></li> +<li><a class="link" href="https://github.com/XingangPan/DragGAN" target="_blank" rel="noopener" +>DragGAN</a>, 通过拖动就可以完全操纵图像的 AI 模型,现已开放源码! DragGAN 是由谷歌、麻省理工学院和马克斯普朗克研究所创建的一种新的人工智能模型。可以让你轻松通过点击拖动等简单的交互操作就能改变拍摄对象的姿势、形状和表情。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-16-00-25.png" +width="598" +height="399" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></li> +<li><a class="link" href="https://flameshot.org/" target="_blank" rel="noopener" +>flameshot</a>,一个超强的免费截图软件,可以像任何一个截图工具一样截图,最重要的是还有一些附加功能,按一下数字图标,就可以在屏幕上按数字顺序自动生成步骤图示,非常适合生成操作步骤说明。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-16-01-00.png" +width="580" +height="374" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="372px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 037 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/Tue, 20 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/<h1 id="机器文摘-第-037-期">机器文摘 第 037 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://snap-research.github.io/SnapFusion/" target="_blank" rel="noopener" +>SnapFusion</a> 文本到图像的扩散模型可以从自然语言描述中创建令人惊叹的图像。然而,这些模型很大,需要高端 GPU 在服务端运行模型。SnapFusion提出了一种通用方法,可以在移动设备上运行的文本到图像扩散模型,且出图时间不到2秒。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-55-06.png" +width="609" +height="899" +loading="lazy" +class="gallery-image" +data-flex-grow="67" +data-flex-basis="162px" +></li> +<li><a class="link" href="https://framer.com/ai" target="_blank" rel="noopener" +>Framer</a> 发布了 AI 工具,直接根据文字需求生成页面,我试了一下,对于个人博客、产品介绍页面等静态展示类型的页面,生成的效果还是十分理想的,而且同步提供桌面端和移动端页面。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-55-33.png" +width="599" +height="710" +loading="lazy" +class="gallery-image" +data-flex-grow="84" +data-flex-basis="202px" +></li> +<li><a class="link" href="https://notes.dt.in.th/HDRQRCode" target="_blank" rel="noopener" +>比<code>#ffffff</code>还“白”的“超级白”</a>,这里有网友介绍了一个方法,可以显示更高对比度的二维码(以方便用户扫描识别),据说白的程度超出了sRGB颜色范围,前提是你的显示设备支持HDR。作者的思路是用一段HDR视频在网页中伪装成显示二维码的图片。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-56-11.png" +width="690" +height="305" +loading="lazy" +class="gallery-image" +data-flex-grow="226" +data-flex-basis="542px" +></li> +<li><a class="link" href="https://rwmj.wordpress.com/2023/06/14/i-booted-linux-292612-times/" target="_blank" rel="noopener" +>我在21小时内重启系统29万次</a>,Linux 6.4内核有一个bug可能导致启动时挂起,但概率很低。为了复现bug,Richard WM Jones重启了29万次电脑,最终找到了问题。这让我想起了之前修改不容易复现Bug的艰辛。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-56-28.png" +width="690" +height="735" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="225px" +></li> +<li>我发现一个用chatGPT翻译整段文字的小技巧,那就是在他翻译完成之后,再将这段话发给他,让他根据通顺程度和合理性进行二次润色,出来的结果就好很多了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-58-53.png" +width="717" +height="648" +loading="lazy" +class="gallery-image" +data-flex-grow="110" +data-flex-basis="265px" +></li> +<li>Python写代码很爽,但是想打包发布成果的时候就稍微麻烦一些了,毕竟一大堆环境依赖和包依赖。我之前一直用的是PyInstaller作为打包工具,但是现在我又发现了这个<a class="link" href="https://github.com/Nuitka/Nuitka" target="_blank" rel="noopener" +>Nuitka</a>。它的打包原理是:直接把 Python 代码转成 C 代码再编译,这样打包出来的成果占用小、执行效率也高,尤其适合PyQt编写的桌面程序。另外,著名的 Blender 就是用 Nuitka 编译的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-59-12.png" +width="428" +height="272" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="377px" +></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li><a class="link" href="https://www.raptitude.com/2022/01/everything-must-be-paid-for-twice/" target="_blank" rel="noopener" +>你买的每样东西都需要支付两次成本</a>,这篇在Hacker News上的文章引起我的强烈共鸣。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-59-33.png" +width="600" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></li> +</ul> +<p>它提出了一个有趣的观点,我以前从未意识到:</p> +<p>每样东西都需要支付两次成本。</p> +<p>通常,我们只关注第一次支付的成本,也就是购买时花的钱,比如买一台相机、一架钢琴或一本小说。</p> +<p>然而,作者指出,如果你不支付第二次的成本,你之前花的钱就等于打水漂了。</p> +<p>第二次成本指的是,你需要花时间和精力去充分使用你所购买的物品。</p> +<p>比如认真阅读一本书,练习钢琴以提高演奏水平等等。</p> +<p>然而,我们常常只停留在第一次购买时的满足感上,然后追求下一个。</p> +<p>随着时间的推移,大量未支付第二次成本的物品使我们积累了一种无形的债务。</p> +<p>为此经常感到挫败。</p> +<p>这种挫败感促使我们寻求那些能够刺激我们的短期享受,比如玩手机、享用美食。</p> +<p>进一步导致没有时间支付第二次成本。</p> +<p>那么,有什么办法可以改变这种情况吗?</p> +<p>作者说,唯一的解决办法就是控制购买欲望,强迫自己安排时间来履行第二次支付的责任。</p> +<p>尽管这听起来可能有些不舒服,但如果我们能克服这种不舒服的临界点,例如学会一首乐曲,耐心读完一本书,我们将会获得意想不到的奖励时刻。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.ratatype.com" target="_blank" rel="noopener" +>ratatype</a>,在线键盘盲打指法练习,有完整的练习教程,从初级到高级都有。有点儿像Dos时代的著名打字练习软件TT,不过是网页版的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-11.png" +width="690" +height="360" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +<li><a class="link" href="https://play0ad.com/download" target="_blank" rel="noopener" +>0A.D.</a>,帝国时代是个经典游戏,这里有个开源版,名字叫做0AD,由Wildfire Games开发,虽然是免费开源的游戏,但是效果和可玩性都非常高,适合在周末的午后来一把怀旧局。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-26.png" +width="690" +height="405" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="408px" +></li> +<li><a class="link" href="https://landing.love" target="_blank" rel="noopener" +>landing.love</a>,一个专门收集各种网页动画效果的网站,目前已收录超过400个具有新颖创意动效的网站,并配有截图和录屏视频。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-47.png" +width="590" +height="486" +loading="lazy" +class="gallery-image" +data-flex-grow="121" +data-flex-basis="291px" +></li> +<li><a class="link" href="https://github.com/princeton-vl/infinigen" target="_blank" rel="noopener" +>infinigen</a>,一款面向计算机视觉研究的3D场景自动生成器,提供多样且高质量的3D训练数据。基于Blender,免费且开源。可以通过重写随机化的默认参数来完全控制资产生成。提供了对自然界中多种对象和场景的生成器,包括植物、动物、地形以及火、云、雨、雪等自然现象。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-01-41.png" +width="951" +height="522" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +></li> +<li><a class="link" href="https://yjdoc2.github.io/8086-emulator-web/compile" target="_blank" rel="noopener" +>8086-emulator-web</a> ,用js编写的的8086 cpu模拟器,支持汇编语言在线编写、编译和调试运行,是一个学习汇编语言和理解计算机原理的好工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-01-04.png" +width="690" +height="320" +loading="lazy" +class="gallery-image" +data-flex-grow="215" +data-flex-basis="517px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 036 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/Wed, 14 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/<h1 id="机器文摘-第-036-期">机器文摘 第 036 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4911535232057363" target="_blank" rel="noopener" +>软驱阵列演奏音乐</a>,国外大神用512个软驱、16个硬盘、4个扫描仪,组装成阵列,通过编程的方式控制电机震动发出声音,组成各声部。这么多软驱,让我想到了退休老干部合唱团。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-49-03.png" +width="1555" +height="926" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="403px" +></li> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4564677670141974" target="_blank" rel="noopener" +>大脑能像身体那样锻炼吗?</a>,如何训练大脑?提高记忆力、注意力和智力!这个视频进行了讲解,总之就是,用进废退,改变日常默认行动,让大脑动起来。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-49-59.png" +width="743" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="396px" +></li> +<li><a class="link" href="https://gaultier.github.io/blog/x11_x64.html" target="_blank" rel="noopener" +>用纯汇编写一个GUI</a>,跟随这篇教学文章,通过编写图形界面的方式来学习汇编语言吧。顺便,作者想挑战一下,最小的GUI程序其可执行二进制文件能有多小。(现在的可执行文件动不动就好几十上百MB)​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-50-39.png" +width="1046" +height="463" +loading="lazy" +class="gallery-image" +data-flex-grow="225" +data-flex-basis="542px" +></li> +<li><a class="link" href="https://blog.betacat.io/post/2023/06/summarize-hacker-news-by-chatgpt" target="_blank" rel="noopener" +>让 ChatGPT 帮我们总结 Hacker News</a>,让AI每天帮我总结新闻摘要,这个想法我已经考虑很久了,现在已经有人做了实现。这篇文章介绍了一个开源静态网站的实现,它利用 ChatGPT 的总结能力,直接将每条Hackernews的新闻用一两句话总结出来,然后发布到GithubPages 可以节约我们每天看新闻的时间。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-51-29.png" +width="891" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="215" +data-flex-basis="517px" +></li> +<li><a class="link" href="https://www.web3brand.io/p/maximize-unregretted-user-time" target="_blank" rel="noopener" +>马斯克专访:推特的混乱过去了,现在的目标是最大化用户无悔时间!</a>,我不喜欢看八卦,但是科技的除外。马斯克收购 Twitter 几个月过去了,大家还在等着看笑话,但是为什么没等到,以及开掉一半人之后效率却提升那么多? +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-52-02.png" +width="680" +height="417" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="391px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/AI4Finance-Foundation/FinGPT" target="_blank" rel="noopener" +>FinGPT</a>,一个面向金融领域的开源语言模型,采用以数据为中心的方法,为研究人员和实践者提供易于使用的资源,致力于做金融领域的chatGPT。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-52-48.png" +width="822" +height="462" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="427px" +></li> +<li><a class="link" href="https://github.com/facebookresearch/audiocraft" target="_blank" rel="noopener" +>Audiocraft</a>,facebook发布的一个PyTorch库,用于音频生成的深度学习研究。目前,它提供了用于从文本生成音乐的MusicGen代码和模型。模型使用2万小时正版授权音乐训练。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-53-34.png" +width="816" +height="350" +loading="lazy" +class="gallery-image" +data-flex-grow="233" +data-flex-basis="559px" +></li> +<li><a class="link" href="https://github.com/mljar/mercury" target="_blank" rel="noopener" +>Mercury</a>,在 Jupyter Notebook 中构建 Web 应用程序,允许您在Python笔记本中添加交互式小部件,然后将笔记本发布为带交互界面的Web应用程序。我的感受是,Mercury就是 notebook版的<a class="link" href="https://github.com/gradio-app/gradio" target="_blank" rel="noopener" +>gradio</a> ​​​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-53-58.png" +width="805" +height="421" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></li> +<li><a class="link" href="https://github.com/reactive-python/reactpy" target="_blank" rel="noopener" +>ReactPy</a>,React是最流行的用于构建UI的前端框架,现在所有Python开发人员都可以使用它。比起gradio,这个reactpy的抽象层级更低一些,自由度更高了,我猜测目标用户应该是不喜欢写前端代码但是又希望掌控页面细节的python程序员。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-56-24.png" +width="632" +height="148" +loading="lazy" +class="gallery-image" +data-flex-grow="427" +data-flex-basis="1024px" +></li> +<li><a class="link" href="http://ggml.ai/" target="_blank" rel="noopener" +>GGML</a>,一个用于机器学习的张量库,采用纯C++实现,无其他依赖项。旨在在普通硬件上实现大型模型和高性能。它同时也是 llama.cpp 和 whisper.cpp 的底层库。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-57-18.png" +width="629" +height="327" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="461px" +></li> +<li><a class="link" href="https://github.com/Genymobile/scrcpy" target="_blank" rel="noopener" +>Scrcpy</a>,一个让人相见恨晚的app,可以通过USB或TCP/IP连接镜像Android设备的视频和音频,并允许使用计算机的键盘和鼠标来控制设备。它不需要任何root权限,并且兼容Linux、Windows和macOS操作系统。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-02-19.png" +width="408" +height="589" +loading="lazy" +class="gallery-image" +data-flex-grow="69" +data-flex-basis="166px" +></li> +<li><a class="link" href="https://maketafi.com/ai" target="_blank" rel="noopener" +>Tafi</a>,通过自然语言生成3D模型,质量号称接近AAA级游戏,可以导出创建的角色到Blender、Unreal 或 Unity中。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-02-52.png" +width="1080" +height="608" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/Hufe921/canvas-editor" target="_blank" rel="noopener" +>canvas-editor</a>,一个基于 canvas/svg 实现的富文本编辑器,在市面上,使用 Canvas 实现整个编辑器的开源项目并不常见,大多数情况下仍然使用 DOM 来实现。使用 Canvas 的最显著特点是其出色的性能,但实现起来的成本也更高。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-15-39.png" +width="1200" +height="668" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="431px" +></li> +<li><a class="link" href="https://markmap.js.org%e2%80%8b%e2%80%8b" target="_blank" rel="noopener" +>markmap.js</a>,一个用markdown文本制作思维导图的工具,提供了vscode的插件可直接在编辑器预览。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-16-02.png" +width="611" +height="458" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 035 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/Wed, 07 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/<h1 id="机器文摘-第-035-期">机器文摘 第 035 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://www.reproof.app/blog/notes-apps-help-us-forget" target="_blank" rel="noopener" +>笔记帮我们记住还是忘记?</a>这篇文章讨论了笔记对帮助我们遗忘的作用。作者认为,随着时间的推移,我们无法记住所有的事情,但是只要我们记录了重要的信息,就可以在需要时再次查找,因此笔记实际上帮助我们遗忘。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-09-37.png" +width="1173" +height="488" +loading="lazy" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></li> +<li><a class="link" href="https://research.nvidia.com/labs/dir/neuralangelo/" target="_blank" rel="noopener" +>高保真神经表面重建</a>,Nvidia 新发布的这个 Neuralangelo 有些猛,随便给一个视频就能进行精细3D建模,也许要不多久激光点云技术就要淘汰了。值得关注 ! +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-12-49.png" +width="936" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="483px" +></li> +<li><a class="link" href="https://github.com/Neo-Desktop/WindowsXPKg" target="_blank" rel="noopener" +>Windows XP 激活算法被破解</a>, XPKeygen是一个可以随意生成XP有效安装密钥的程序,当前的电脑可能用不到了。不过可能还有一些老旧的设备,只能通过 Windows XP 来操作,这时候这个东西就派上用场了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-17-33.png" +width="610" +height="285" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="513px" +></li> +<li><a class="link" href="https://www.v2ex.com/t/944717" target="_blank" rel="noopener" +>一个整活儿的开源编辑器</a>,data:text/html;base64,PGh0bWwgY29udGVudGVkaXRhYmxlPmVkaXQgbWU8L2h0bWw+ 把这个代码粘到浏览器地址栏,竟然是个记事本app,如果从IDE拷贝代码过去,竟然还支持代码高亮。。。。加入到收藏夹即可食用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-20-19.png" +width="663" +height="347" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></li> +<li><a class="link" href="https://mymodernmet.com/sea-turtle-birch-aquarium-3d-printed-brace" target="_blank" rel="noopener" +>3D打印拯救海龟</a> ,2017年,伯奇水族馆与加州大学圣地亚哥分校图书馆的数字媒体实验室合作。他们一起创造了一种首创的3D打印支架,以固定她的外壳上的缝隙。现在,六年后,这种生物及其照顾者继续从这项发明中获益。这只海龟最近接受了年度检查,健康状况良好。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-21-40.png" +width="613" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></li> +<li><a class="link" href="https://kuenzi.dev/toothbrush/" target="_blank" rel="noopener" +>破解“智能”牙刷</a> 国外一个博主记录了他破解自己的电动牙刷的过程。由于牙刷的NFC芯片采用的加密方式是密码加密,并且在通讯过程中是用了明文传递,所以他采取了截获通讯信号的方式窃听到了密码,然后就解锁了各种姿势开始为所欲为了。。。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-22-42.png" +width="606" +height="363" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +></li> +<li><a class="link" href="https://bjoernkarmann.dk/project/paragraphica" target="_blank" rel="noopener" +>真·AI相机</a> ,paragraphica 是一个没有镜头但是却有物理实体的“AI相机”,使用位置、时间等参数数据生成特定地点和时刻的prompt,然后由人工智能来生成“照片”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-24-07.png" +width="578" +height="513" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.dora.run/ai" target="_blank" rel="noopener" +>Droa</a>,一个通过自然语言进行网站开发的工具,你只需要提需求,剩下的交给AI。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-26-05.png" +width="821" +height="496" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="397px" +></li> +<li><a class="link" href="https://github.com/SupaGruen/StableDiffusion-CheatSheet" target="_blank" rel="noopener" +>StableDiffusion-CheatSheet</a>,经常用 Stable Diffusion 进行 AI 绘图的,可以看下这个开源速查表。里面拥有超过 700 种经过测试的艺术风格,可快速搜索查找各类艺术家,并支持一键复制 Prompt。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-26-50.png" +width="742" +height="521" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="341px" +></li> +<li><a class="link" href="https://www.math.cmu.edu/~jmackey/151_128/bws_book.pdf" target="_blank" rel="noopener" +>你一直想知道的关于数学的一切</a>,此书是CMU数学科学系的博士生布兰登·W·沙利文撰写的,旨在引导读者进入抽象数学和证明写作的世界,帮助培养读者的数学思维和表达能力。主题涵盖集合、逻辑、归纳法、关系、函数、基数和组合数学等基础和工具。暂未有中文翻译。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-27-26.png" +width="724" +height="579" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="300px" +></li> +<li><a class="link" href="https://github.com/eastlakeside/interpy-zh" target="_blank" rel="noopener" +>Python进阶</a>,是《Intermediate Python》的中文译本。2021最新目录版,实时更新托管在<a class="link" href="https://py.eastlakeside.cn" target="_blank" rel="noopener" +>GithubPages</a>。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-28-23.png" +width="1037" +height="350" +loading="lazy" +class="gallery-image" +data-flex-grow="296" +data-flex-basis="711px" +></li> +<li><a class="link" href="https://csspro.com/" target="_blank" rel="noopener" +>CSSPro</a>,一个所见即所得的在线CSS可视化开发工具,直接在页面运行,那里修改点哪里。效果真的很惊艳。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-29-07.png" +width="921" +height="537" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></li> +<li><a class="link" href="https://github.com/makeplane/plane" target="_blank" rel="noopener" +>Plane</a>,开源版 JIRA !不少软件开发者都使用JIRA进行缺陷管理,JIRA确实很强大,也很好用。现在,开源版的来了,据说完全可以作为JIRA的平替。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-30-19.png" +width="1139" +height="595" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +></li> +<li><a class="link" href="https://openmlsys.github.io/index.html" target="_blank" rel="noopener" +>机器学习系统:设计和实现</a>,一本关于机器学习的电子书,本书希望做成世界上第一本全面讲述机器学习系统知识的开源书籍。可以看作一门衔接机器学习和计算机系统的课程 ​​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-31-04.png" +width="234" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="60" +data-flex-basis="144px" +></li> +<li><a class="link" href="https://callannie.ai/" target="_blank" rel="noopener" +>Callanie</a>,练习英语口语的AI对话机器人,支持国内手机号注册,免费且流畅。后端基于大语言模型,可以陪你聊各种话题。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-31-49.png" +width="303" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="53" +data-flex-basis="127px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 034 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/Wed, 31 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/<h1 id="机器文摘-第-034-期">机器文摘 第 034 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://samwho.dev/memory-allocation/" target="_blank" rel="noopener" +>图解内存分配</a>,文章展示了 C/C++ 编程中的内存分配过程,包括静态和动态内存分配技术、它们的优势,以及有效的内存管理所需考虑的事项。以图解的形式展示了内存分配过程,希望读者可以通过本文更好地理解内存分配相关的概念,并在实际编程中对内存进行更加高效的管理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-49-39.png" +width="759" +height="298" +loading="lazy" +class="gallery-image" +data-flex-grow="254" +data-flex-basis="611px" +></li> +<li><a class="link" href="https://blog.koehntopp.info/2023/05/17/50-years-in-filesystems-towards-2004-lfs.html" target="_blank" rel="noopener" +>文件系统五十年</a>,这是一个系列文章,详细记录了计算机文件系统的发展历程。也许我们身在其中无法感受到它的进步,但是回顾历史我们会发现,即便是我们不容易注意到的部分,也在不停地发展和优化。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-50-33.png" +width="672" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></li> +<li><a class="link" href="https://xorvoid.com/sectorc.html" target="_blank" rel="noopener" +>只有512字节的C编译器</a>,这篇文章介绍了一个怎样实现最小编译器的思路,SectorC (github) 是一个用 x86-16 汇编编写的 C 编译器,适合 x512 机器的 86 字节引导扇区。它支持 C 的子集,足够大,可以编写真实有趣的程序。它很可能是有史以来最小的C编译器。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-51-20.png" +width="764" +height="366" +loading="lazy" +class="gallery-image" +data-flex-grow="208" +data-flex-basis="500px" +></li> +<li><a class="link" href="https://www.amygoodchild.com/blog/computer-art-50s-and-60s" target="_blank" rel="noopener" +>上世纪50~60年代的计算机艺术</a>,数字艺术的发展简史。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-51-53.png" +width="781" +height="494" +loading="lazy" +class="gallery-image" +data-flex-grow="158" +data-flex-basis="379px" +></li> +<li><a class="link" href="" >win10的隐藏功能</a>,原来win10还有这个功能。按Ctrl + Alt + Del 后,按住Ctrl不松,再点击右下角的电源符号,就会进入紧急重启(Emergency Restart)界面。应该是一种强制重启。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-52-04.png" +width="690" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/SevaSk/ecoute" target="_blank" rel="noopener" +>Ecoute</a>,可用于远程面试作弊的工具?Ecoute 是一种实时转录工具,可在文本框中为用户的麦克风输入(您)和用户的扬声器输出(扬声器)提供实时翻译。它还使用 OpenAI 的 GPT-3.5 生成建议答复内容,供用户“参考”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-52-39.png" +width="820" +height="386" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="509px" +></li> +<li><a class="link" href="https://app.rask.ai/" target="_blank" rel="noopener" +>rask.ai</a>,自动将视频转成“译制片”,在对内容进行翻译的同时,会尽量保持之前的音色和语调,端到端给你的视频完成多语配音,后续还会推出唇形同步合成。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-53-28.png" +width="1171" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="181" +data-flex-basis="436px" +></li> +<li><a class="link" href="https://chrome.google.com/webstore/detail/tango-how-to-guides-and-s/lggdbpblkekjjbobadliahffoaobaknh" target="_blank" rel="noopener" +>Tango</a>,一个Chrome浏览器插件,能帮你生成一个网站的操作指南。它会自动记录所有的操作流程,并做相应的截图和注解文档。你只需要点一遍就行了。目前还只能生成英文版的,不过自己翻译也不麻烦。可以节省不少时间。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-53-58.png" +width="632" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="388px" +></li> +<li><a class="link" href="https://praeclarum.org/2023/05/19/webgpu-torch.html" target="_blank" rel="noopener" +>WebGPU-torch</a>,PyTroch的webgpu实现。我测试了一下,我的浏览器目前还不支持。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-54-28.png" +width="1384" +height="796" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></li> +<li><a class="link" href="http://ogden.basic-english.org/" target="_blank" rel="noopener" +>basic-english</a>,“基础英语”的概念是:25,000个单词的牛津袖珍英语词典去掉冗余,并消除组合单词,90%的概念可以用850个单词来实现。使用这些基础英语可以简化日常工作和交流。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-55-26.png" +width="778" +height="516" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +<li><a class="link" href="https://github.com/raunofreiberg/interfaces" target="_blank" rel="noopener" +>Web界面准则</a>,讲解如何提升网页界面的交互性、排版、动画、辅助功能、优化和设计。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-56-18.png" +width="834" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="429px" +></li> +<li><a class="link" href="https://github.com/excalidraw/excalidraw" target="_blank" rel="noopener" +>excalidraw</a>,开源虚拟手绘风格白板程序,支持端到端加密在线协作。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-56-43.png" +width="759" +height="504" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +</ul> +<h2 id="沉思录">沉思录</h2> +<ul> +<li>一切商业的本质都是:收购一些东西(包括原材料、人力服务),经过加工(加工过程产生价值)后变成产品或服务出售。这里的原材料可以是实体物品也可以是信息。所以关键动作就是:收、加工、出售,从重要性上来说,出售大于加工大于收。所以如果要策划自己的产品,解决和分析问题的优先级也应如此,我之前想的正好一反;</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 033 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/Wed, 24 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/<h1 id="机器文摘-第-033-期">机器文摘 第 033 期</h1> +<h2 id="研究">研究</h2> +<h3 id="全键盘信息终端">全键盘信息终端</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-22-11.png" +width="1335" +height="637" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +> +我一直很怀念使用黑莓手机的日子。</p> +<p>物理全键盘的手感比起现在硬邦邦的触摸屏真不知道好到哪里去了。</p> +<p>多少次盯着抽屉里的黑莓尸体,都在想有没有办法再次发挥它的余热。</p> +<p>现在机会来了,有人将树莓派和黑莓手机的全键盘(带触摸板的那一款)结合起来做了一个终端。</p> +<p>取名:<a class="link" href="https://beepberry.sqfmi.com/" target="_blank" rel="noopener" +>Beepberry</a>,具有400*200分辨率的LCD屏幕,和usb type-c接口。</p> +<h3 id="自己动手给树莓派写操作系统">自己动手给树莓派写操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-31-09.png" +width="677" +height="359" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +> +学习操作系统的最佳手段是自己动手写一个。</p> +<p>这类教程很多,一般都是针对x86平台,树莓派的比较少见。</p> +<p><a class="link" href="https://github.com/isometimes/rpi4-osdev" target="_blank" rel="noopener" +>《给树莓派编写“裸机”操作系统》</a>来自github上的一个开源项目。</p> +<p>可以带你从树莓派的硬件层基础上直接构建一个的完整操作系统。</p> +<h3 id="关于-demoscene-制作的一些文章">关于 Demoscene 制作的一些文章</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-40-25.png" +width="471" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +> +Demoscene(也称为Demo Party)是一种计算机艺术形式,旨在展示计算机的音频和图形表现能力。Demoscene通常是由小团队制作的演示性程序,也被称为demo,它集计算机程序、音乐、图形和动画于一身,是八十年代初期在个人计算机上发展起来的一种文化和艺术运动。Demoscene的主要目的是展示计算机和程序的美感,通常使用3D渲染和其他复杂的视觉效果,展示计算机的高级图形和音频处理能力。</p> +<p>我对于如何制作这些炫酷的 demo 一直很感兴趣,但是网上关于这方面的资料非常少,成体系的就更少了。</p> +<p>这里收录了一些比较经典的相关资料:</p> +<ol> +<li> +<p><a class="link" href="https://www.ctrl-alt-test.fr/2023/procedural-3d-mesh-generation-in-a-64kb-intro/" target="_blank" rel="noopener" +>64kb的demos</a>介绍了基于SDF(Signed Distance Field,有符号距离场)生成三维网格的方法,这个方法是大部分demo用于在三维场景中产生三维模型的主要方法。</p> +</li> +<li> +<p><a class="link" href="https://www.flipcode.com/archives/The_Art_of_Demomaking-Issue_01_Prologue.shtml" target="_blank" rel="noopener" +>The_Art_of_Demomaking</a>是一套很系统的教程,讲述Demo的概念、发展历史以及制作过程需要了解的基础知识。</p> +</li> +<li> +<p><a class="link" href="https://www.pbr-book.org/3ed-2018/contents" target="_blank" rel="noopener" +>pbr-book</a>是一本关于基于物理的渲染(Physically Based Rendering,简称PBR)的经典教材。内容包括计算机图形学相关的基础概念、渲染算法、工作流程和高级特性等。</p> +</li> +</ol> +<h3 id="怎样防止针对llm的prompt攻击">怎样防止针对LLM的prompt攻击</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-52-09.png" +width="734" +height="401" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="439px" +> +就像之前流行的sql注入攻击,针对大语言模型的提示语注入攻击现在变得也很常见。</p> +<p>一种比较典型的攻击场景是,通过一段特定的提示语,解锁chatGPT原本被封印的能力。</p> +<p>或者对于接入了其他工具接口的语言模型,通过特定的提示语让其执行危险操作(如:删除所有信息)。</p> +<p>这对于使用者来说可能危害不大,但对于服务的提供者是一个不小的挑战。</p> +<p><a class="link" href="https://simonwillison.net/2023/Apr/25/dual-llm-pattern/" target="_blank" rel="noopener" +>《用于构建可以抵抗即时注入的 AI 助手的双 LLM 模式》</a>提出了一种可能可行的解决方案。</p> +<p>即使用双模型的配置,协同工作,将具有执行危险操作的特权模型放在另一个模型后面,中间使用过滤器进行风险审查,即未被审查的内容永远不会发送到特权模型。</p> +<h2 id="资源">资源:</h2> +<ul> +<li><a class="link" href="https://gamma.app/" target="_blank" rel="noopener" +>gamma</a>,AI帮你做PPT。支持自然语言描述需要生成的内容,自动给出ppt的大纲和每页基本的排版布局; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-10-00-52.png" +width="742" +height="687" +loading="lazy" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="259px" +></li> +<li><a class="link" href="https://www.3blue1brown.com/" target="_blank" rel="noopener" +>3blue1brown</a>,YouTube上最好的数学科普视频,特点是使用动画直观展示计算原理; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-10-01-29.png" +width="953" +height="611" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="374px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 032 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/Tue, 16 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/<h1 id="机器文摘-第-032-期">机器文摘 第 032 期</h1> +<h2 id="长文">长文</h2> +<h3 id="ai歌手的训练与使用">AI歌手的训练与使用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-33-53.png" +width="1011" +height="641" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="378px" +> +最近火了很多AI歌手(即:用AI模型模仿某位歌手的声音),其中b站上AI孙燕姿演唱的《漠河舞厅》、《撒日朗》等歌曲播放已超百万。</p> +<p>为了研究实现原理,我也找到了开源工具体验了一下。</p> +<p>具体步骤主要总结如下:</p> +<ol> +<li>选定某一个歌手,找到具有代表性的几首歌曲,通过<a class="link" href="https://ultimatevocalremover.com/" target="_blank" rel="noopener" +>Ultimate Vocal Remover</a>软件利用AI做人声和伴奏的分离,主要用于获取干净的纯人声用于模型训练。(不得不说现在基于AI模型的人声、伴奏分离做的是真的强,可以做到非常干净的提取,让你感觉像是原始独立的音轨)。</li> +<li>通过安装<a class="link" href="https://github.com/voicepaw/so-vits-svc-fork" target="_blank" rel="noopener" +>so-vits-svc-fork</a>这个一体化开源工具进行模型训练,具体方法见<a class="link" href="https://github.com/voicepaw/so-vits-svc-fork/blob/main/README_zh_CN.md" target="_blank" rel="noopener" +>so-vits-svc-fork的Readme</a>,从数据预处理到最后的模型导出和推理都已经做好了,甚至还提供了图形界面。</li> +<li>继续使用so-vits-svc-fork提供的gui界面进行操作,将模型载入,将预期修改歌曲的原唱人声(提取方式同第1步)传入,运行推理获得定制的人声(注意看文档的各种参数)。</li> +<li>将第3步推理所得干净人声,跟原唱分离的干净背景音乐进行混音合成,即可获得一首新歌曲了。</li> +</ol> +<h3 id="怎样用口袋计算器玩耍">怎样用口袋计算器玩耍</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-49-14.png" +width="716" +height="514" +loading="lazy" +class="gallery-image" +data-flex-grow="139" +data-flex-basis="334px" +> +在移动互联网时代,人打发无聊的方式实在是太多了,视频聊天、阅读各种资讯八卦、观看短视频、手游等等。</p> +<p>功能机的时代,我有印象的打发无聊的事情是手机上的贪食蛇、发短信、wap资讯等等,也算不错了。</p> +<p>如果时间来到上世纪七十年代呢?那个时代的没有随身携带的手机,怎么打发时间?</p> +<p>答案是:如果有一个随身携带的计算器也行,这里有一本书<a class="link" href="https://archive.org/details/htewypc" target="_blank" rel="noopener" +>《How To Entertain With Your Pocket Calculator》</a>,出版于上世纪七十年代。书中花了大量的篇幅介绍了很多种基于数字的游戏,我翻看了一下,我觉得可能得无聊到一定的程度我才能愿意玩书里的游戏。</p> +<h3 id="llm的几篇介绍文章">LLM的几篇介绍文章</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-56-38.png" +width="703" +height="332" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="508px" +> +Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 +与其感叹以chatGPT为代表的大语言模型发展太快,不如静下心来,读一读关于LLM的一些基础知识和使用方法,我找了三篇比较有代表性的放在这里收藏。</p> +<ol> +<li><a class="link" href="https://github.com/RUCAIBox/LLMSurvey/blob/main/assets/LLM_Survey_Chinese_0418.pdf" target="_blank" rel="noopener" +>大语言模型综述</a>,认真地概括并解释了什么是LLM和它的基本原理。</li> +<li><a class="link" href="https://www.bmpi.dev/dev/deep-learning/nlp-language-models/" target="_blank" rel="noopener" +>ChatGPT背后的语言模型简史</a>,从发展历史上捋一捋各种语言模型的辈分。</li> +<li><a class="link" href="https://github.com/datawhalechina/prompt-engineering-for-developers" target="_blank" rel="noopener" +>prompt-engineering-for-developers</a>一个中文版的 Prompt Engineering 教程,翻译自:吴恩达《ChatGPT Prompt Engineering for Developers》课程,主要内容为指导开发者如何构建 Prompt 并基于 OpenAI API 构建新的、基于 LLM 的应用;</li> +<li><a class="link" href="https://github.com/ninehills/ninehills.github.io/issues/92" target="_blank" rel="noopener" +>大语言模型微调技术笔记</a>,记录了基于 LLM 进行微调训练的实战技巧。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://sinerider.com/" target="_blank" rel="noopener" +>sinerider</a>,一个很有创意的数学学习游戏,让你通过数学函数构建图像从而帮助画面中的角色到达目标地点。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-04-41.png" +width="810" +height="708" +loading="lazy" +class="gallery-image" +data-flex-grow="114" +data-flex-basis="274px" +></li> +<li><a class="link" href="https://anvaka.github.io/map-of-github/#0.87/0/16.7" target="_blank" rel="noopener" +>map-of-github</a>,以节点地图的方式展示Github上面超过40万个仓库,通过虚拟大陆的方式展示他们之间的关系。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-07-40.png" +width="1274" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></li> +<li><a class="link" href="https://learngitbranching.js.org/?locale=zh_CN" target="_blank" rel="noopener" +>learngitbranching</a>,以交互式游戏的方式学习git命令。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-11-32.png" +width="569" +height="598" +loading="lazy" +class="gallery-image" +data-flex-grow="95" +data-flex-basis="228px" +></li> +<li><a class="link" href="https://vgamuseum.ru/" target="_blank" rel="noopener" +></a>,在线显卡博物馆,收藏了1982年到2012年之间发布的各款显卡,包括高清图片和规格参数的介绍; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-14-37.png" +width="1364" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="573px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 031 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/Wed, 10 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/<h1 id="机器文摘-第-031-期">机器文摘 第 031 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样驱动上个世纪的网络摄像头">怎样驱动上个世纪的网络摄像头</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-20-31.png" +width="697" +height="407" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +> +国外有个老哥,在帮朋友收拾废品的时候,获得了一个老旧的摄像头。</p> +<p>于是他按耐不住想感受一下,这个来自上个世纪的“古董”,还能打吗?</p> +<p>由于年代比较久远,厂家也不再提供驱动程序的更新。</p> +<p>哥们不得不在虚拟机里全新安装一个windows xp,成功启动摄像头,并获得“清晰图像”。</p> +<p>安装xp时有个插曲:安装界面里的进度条仅用时几十秒就走完了原本几十分钟的倒计时(所以说微软的进度条是如何推断剩余时间的永远是个迷)。</p> +<p>在经过一番体验之后,又跃跃欲试准备自己给它手搓一个在现代操作系统下的驱动程序。</p> +<p>整个过程记录在<a class="link" href="https://blog.benjojo.co.uk/post/quickcam-usb-userspace-driver" target="_blank" rel="noopener" +>《一个1999年的摄像头复活的故事》</a>。</p> +<p>整个故事都充满了一种“我不知道这么做有什么意义,但是我就是可以”的极客风格(也是我收录它的主要原因)。</p> +<h3 id="webgpu-科普">webGPU 科普</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-36-36.png" +width="673" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="477px" +> +最近谷歌浏览器率先宣布全面支持 webGPU ,预计到今年年底各大浏览器也都会跟进并提供支持。</p> +<p>webGPU 从名字上看跟显卡和浏览器有关,可是之前已经有webgl了,这次又有什么变化?</p> +<p>通过多方面信息的搜索,我得到的结论是:webGPU 更充分地暴露了显卡的计算能力,GPU不再只是做图形渲染相关的事情,而是根据webGPU提供的相关专业接口,可以执行深度学习之类的更通用的计算工作。</p> +<p>如果想了解的更全面一些,这篇<a class="link" href="https://cohost.org/mcc/post/1406157-i-want-to-talk-about-webgpu" target="_blank" rel="noopener" +>《谈谈 webGPU》</a>文章十分值得一读。</p> +<p>作者对 webGPU 这一技术介绍的比较详尽,从各个图形接口的发展历史一直到对未来如何应用的展望,都包括了。</p> +<h3 id="如何翻译一本书">如何翻译一本书</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-49-38.png" +width="709" +height="354" +loading="lazy" +class="gallery-image" +data-flex-grow="200" +data-flex-basis="480px" +> +<a class="link" href="https://sspai.com/post/79534" target="_blank" rel="noopener" +>《从不自量力到 AI 助力,我如何翻译完一整本英文书》</a> +这是一个关于执行力的故事。</p> +<p>主题是:如何借助AI和现代信息工具,实现看似不可能完成的任务。</p> +<p>在这个时代,个体的力量很渺小,因为个人几乎无法独立完成任何事情。</p> +<p>但同时,借助科技工具和基础设施的力量,1 个人甚至可以完成之前需要一个上百人公司才能做到的事情,这让个体变得非常强大。</p> +<h3 id="如何刷路由器">如何刷路由器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-00-09.png" +width="600" +height="417" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="345px" +> +<a class="link" href="https://www.v2ex.com/" target="_blank" rel="noopener" +>V站</a>上说,中年技术男有三大爱好:钓鱼、NAS、软路由。</p> +<p><del>我一样也没沾边儿,但还是克制不住关注相关技术。</del></p> +<p>之前多次想拿自己家的路由器开刀,刷一个openwrt系统,然后就可以各种折腾(科学上网、内网穿透等等)了。</p> +<p>但是一直没有动手,今天看到这篇<a class="link" href="https://a-wing.top/linux/2023/05/01/start-openwrt" target="_blank" rel="noopener" +>自己动手定制你的路由器</a>写的如此详细,还是心动了一下。</p> +<p>先收藏吧。</p> +<h3 id="仅用csshtml实现三维动画">仅用CSS+HTML实现三维动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-06-52.png" +width="632" +height="161" +loading="lazy" +class="gallery-image" +data-flex-grow="392" +data-flex-basis="942px" +> +CSS 的 <code>translate3d</code>用到的不多。</p> +<p>如果使用巧妙的话,可以帮你实现很出彩的 3D 动画效果,国外有高手在给自己的文章配数学公式的时候,利用CSS制作了一些可以动态显示的公式图表。这篇<a class="link" href="https://x.st/spinning-diagrams-with-css/" target="_blank" rel="noopener" +>CSS 3D图表</a>记录了它们的实现细节和技术原理。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.window-swap.com/Window" target="_blank" rel="noopener" +>window-swap</a>,随机看别人家的窗外景色。这个网站每次刷新都随机显示一个网友共享的摄像头视角,一般是自家的窗外。可以随时体验全球各地的邻家风景。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-14-06.png" +width="1371" +height="929" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="354px" +></li> +<li><a class="link" href="https://www.landiannews.com/archives/98512.html" target="_blank" rel="noopener" +>foobar2000</a>,经典的音乐播放器终于更新了。2002年发布的foobar2000播放器曾经是很多发烧友的最爱,如今过了20多年,居然更新了2.0稳定版,值得收藏; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-15-52.png" +width="743" +height="504" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></li> +<li><a class="link" href="https://lost-at-sql.therobinlord.com/" target="_blank" rel="noopener" +>lost-at-sql</a>,一个在线学习 sql 的交互游戏,通过游戏闯关的方式练习 sql 技能; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-18-25.png" +width="745" +height="484" +loading="lazy" +class="gallery-image" +data-flex-grow="153" +data-flex-basis="369px" +></li> +<li><a class="link" href="https://glsl-exercises.simondev.io/lesson/1/1#welcome" target="_blank" rel="noopener" +>glsl-exercises</a>,在线学习glsl的交互课程,通过交互式页面练习 glsl 编写; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-19-48.png" +width="1858" +height="794" +loading="lazy" +class="gallery-image" +data-flex-grow="234" +data-flex-basis="561px" +></li> +<li><a class="link" href="https://www.gameuidatabase.com/" target="_blank" rel="noopener" +>gameuidatabase</a>,一个游戏界面资源网站,各种游戏的界面截图,可以用来“借鉴”?; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-20-48.png" +width="1078" +height="567" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="456px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 030 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/Wed, 26 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/<h1 id="机器文摘-第-030-期">机器文摘 第 030 期</h1> +<p><em>下周五一假期,休息,不更新。</em></p> +<h2 id="长文">长文</h2> +<h3 id="内网穿透的原理及实现">内网穿透的原理及实现</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-42-27.png" +width="1040" +height="515" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="484px" +></p> +<blockquote> +<p>设想这样一个问题:在北京和上海各有一台局域网的机器(例如一台是家里的台式机,一 台是连接到星巴克 WiFi 的笔记本),二者都是私网 IP 地址,但可以访问公网, 如何让这两台机器通信呢?</p> +</blockquote> +<p>IPv4地址即将枯竭,IPv6技术还没有普及,现在很多家庭宽带都不再分配公网IP地址。这就意味着大部分的个人电脑是无法通过互联网被直接访问的(当然,你可以通过你家wifi或者4G信号访问互联网,但是反过来不行)。</p> +<p>可是这种需求又真实存在,比如我就经常希望能够在任何地方访问我家里的电脑,通过远程桌面进行办公、文件共享等等。</p> +<p>最简单的方法是通过购买一台具有公网IP地址的云主机来实现中继,这也是目前最普遍的方式。</p> +<p>不过阅读完这篇<a class="link" href="https://arthurchiao.art/blog/how-nat-traversal-works-zh/" target="_blank" rel="noopener" +>《NAT 穿透是如何工作的:技术原理及企业级实践》</a>,假如你有很强的动手能力的话,就应该可以实现一套完全不需要公网主机进行中继的“企业级内网穿透工具”。</p> +<p>文章很长,来自<a class="link" href="https://tailscale.com/blog/how-nat-traversal-works/" target="_blank" rel="noopener" +>这篇英文博客</a>。</p> +<h3 id="技术写作指南">技术写作指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-53-51.png" +width="437" +height="205" +loading="lazy" +class="gallery-image" +data-flex-grow="213" +data-flex-basis="511px" +> +曾经在翻阅《程序员的数学》这本书的时候被朋友看到,于是诞生了短暂的讨论。</p> +<p>当时我的观点是,作为程序员一定要掌握好数学,即便现在编程过程中已经不怎么用到特别底层的知识,但也应该多训练数学思维。</p> +<p>朋友当时说了一句话让我记忆犹新。</p> +<p>“比起程序员的数学,我更担忧的是程序员的语文。”</p> +<p>确实,写作这项能力在很多技术人员心里是被低估的。</p> +<p>不少人受尽写技术文档的折磨,于是越发讨厌写作。</p> +<p>这篇<a class="link" href="https://www.yuque.com/serviceup/misc/cn-writing-for-engineers" target="_blank" rel="noopener" +>《作为工程师应该如何写作》</a>真是雪中送炭,总结了很多立即就能见效的技术写作方法,希望可以帮助到工程师朋友。</p> +<h3 id="怎样制作好玩的小游戏">怎样制作好玩的小游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-57-29.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +很多人都有自己开发游戏的冲动。</p> +<p>不过很容易掉进各种复杂的引擎和工具的坑里。</p> +<p>然后感到沮丧,忘了想做游戏的初心。</p> +<p>这篇<a class="link" href="http://farawaytimes.blogspot.com/2023/02/how-to-make-good-small-games.html" target="_blank" rel="noopener" +>《怎样制作好玩的小游戏》</a>可以让你重新焕发精神。</p> +<p>作者认为开发那种不用复杂引擎的小游戏也可以很欢乐,只要有足够的游戏性。</p> +<p>他在文章中详细列举了想要制作出真正具有游戏性的小游戏所必须具备的几点关键特性。</p> +<p>看得出来,作者是懂游戏的。</p> +<h3 id="神奇的一页纸知识管理">神奇的一页纸知识管理</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-10-03-34.png" +width="1220" +height="841" +loading="lazy" +class="gallery-image" +data-flex-grow="145" +data-flex-basis="348px" +></p> +<blockquote> +<p>宇航员在太空中找到的方法一定不会错,因为他要是出错就没命了。 +航天员的秘密武器,One Pager。就是把一个专项的知识,都写和画在一页纸上。日积月累,宇航员有了一本手册,里面都是一页一页的one pager。 +我向来对知识管理的各种方法很有兴趣。</p> +</blockquote> +<p>在网上闲逛时看到这篇<a class="link" href="https://www.zhongwen.ai/fantastic-one-pager/" target="_blank" rel="noopener" +>《神奇的One Pager》</a>,讲述了一种通过一页纸进行知识管理的方法。</p> +<p>热爱学习的人可不能错过。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/chidiwilliams/buzz" target="_blank" rel="noopener" +>buzz</a>,Transcribe and translate audio offline on your personal computer. Powered by OpenAI&rsquo;s Whisper. +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-48-07.png" +width="827" +height="431" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +<li><a class="link" href="https://moonvy.com/apps/ops/" target="_blank" rel="noopener" +>可视化提示词拼装</a>,文生图的AI越来越多,自己也可以在本地搭建服务,可是为什么我自己生成的图片那么丑呢?这个工具也许可以帮你生成一些靠谱的提示词。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-50-22.png" +width="991" +height="418" +loading="lazy" +class="gallery-image" +data-flex-grow="237" +data-flex-basis="568px" +></li> +<li><a class="link" href="https://liaokong.gitbook.io/llm-kai-fa-jiao-cheng/" target="_blank" rel="noopener" +>LangChain 中文入门教程</a>,众所周知 OpenAI 的 API 无法联网的,所以如果只使用自己的功能实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能肯定是无法实现的。所以,我们来介绍一个非常强大的第三方开源库:LangChain 。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-51-08.png" +width="1103" +height="493" +loading="lazy" +class="gallery-image" +data-flex-grow="223" +data-flex-basis="536px" +></li> +<li><a class="link" href="https://oimo.io/works/clock/" target="_blank" rel="noopener" +>clock</a>,一个非常酷的网页时钟显示效果。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-51-53.png" +width="999" +height="586" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="409px" +></li> +<li><a class="link" href="https://webgpufundamentals.org/" target="_blank" rel="noopener" +>WebGPU 理论基础</a>,从基础理论开始学习WebGPU,稳! +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-53-56.png" +width="688" +height="743" +loading="lazy" +class="gallery-image" +data-flex-grow="92" +data-flex-basis="222px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 029 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/Wed, 19 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/<h1 id="机器文摘-第-029-期">机器文摘 第 029 期</h1> +<h2 id="长文">长文</h2> +<h3 id="计算机的中断机制是如何实现的">计算机的“中断”机制是如何实现的?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-09-37-58.png" +width="1008" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="354px" +> +稍微了解过计算机原理的朋友都知道,计算机是通过“中断”的机制实现对键盘输入、鼠标移动、硬盘读写等操作的。</p> +<p>让我给小朋友讲解这些基本的知识时,我也可以侃侃而谈,说上半个小时不带重复。</p> +<p>但是真要解释“中断”的机制是如何实现的,我想即便是现在科班出身的本科生也未必能够说明白。</p> +<p>原因我觉得除了缺少实践之外,也跟大部分书上的理论内容离实际工程较远有关。</p> +<p>这篇<a class="link" href="https://r12f.com/posts/interrupts/" target="_blank" rel="noopener" +>漫谈中断</a>从实际的硬件实例(x86)出发,详细介绍了中断的实现机制,普及了“外部中断”、“内部中断”、“软中断”等概念,以及人们怎样通过“中断控制器”逐渐解决了多设备中断处理的问题。是一篇很值得阅读的科普文章。适合对计算机组成原理、操作系统等技术有兴趣的朋友阅读。</p> +<h3 id="怎样提升软件项目的可维护性">怎样提升软件项目的可维护性?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-09-54-43.png" +width="576" +height="242" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="571px" +> +不同的项目团队对于软件项目的可维护性所做出的努力不同。</p> +<p>有不少团队宁愿在修改bug上加班加点,也不愿意为可维护性多花一丁点精力。</p> +<p>不过,如果你要开始一个新的软件项目或者想要改善一个已经存在的项目的可维护性。</p> +<p>这里有一份<a class="link" href="https://hix.dev/tutorials/general/software-project-checklist" target="_blank" rel="noopener" +>软件项目可维护性检查清单</a>可以参考。</p> +<p>作者主要从版本控制、软件测试、静态分析、依赖库管理、多语言支持、多平台支持、开发环境管理等方面给出了可以改进的行动清单,以及基于开源工具的最佳实践建议。</p> +<h3 id="怎样榨干chatgpt">怎样榨干chatGPT?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-06-59.png" +width="1024" +height="1024" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +ChatGPT是由OpenAI训练的一款大型语言模型,能够和你进行任何领域的对话。</p> +<p>现在跟年初账号紧张的情况比起来已经方便了很多。</p> +<p>在这么多开源工具和套壳网站的帮助下,我想现在大部分人都能够比较方便的体验它了吧。</p> +<p>但是可能很多人还不知道如何更好的发挥它的作用。</p> +<p>有网友整理了一份开源的<a class="link" href="https://github.com/PlexPt/awesome-chatgpt-prompts-zh" target="_blank" rel="noopener" +>chatGPT中文调教指南</a>,内容极为详尽,可以帮你榨干chatGPT的全部潜能。</p> +<h3 id="怎样让ai作画理解你的意图">怎样让AI作画理解你的意图?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-17-26.png" +width="1536" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="300" +data-flex-basis="720px" +> +对于现在强大的AI绘图应用,有些人可能会认为只输入一个单词就能生成一张很酷的图片。</p> +<p>然而,虽然AI模型越来越善于理解我们想要的内容,但它们还不能读懂我们的思想。</p> +<p>因此,如果你想生成一张看起来像你所想的那样的图片,你需要编写正确的提示。</p> +<p>这个<a class="link" href="https://boostpixels.com/short-guide" target="_blank" rel="noopener" +>AI绘图prompt编写指南</a>可以给你提供一些帮助。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://zh.ifixit.com/Guide" target="_blank" rel="noopener" +>维修指南</a>,各种设备的维修教程大全,详细到每一个步骤的照片,设备型号齐全; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-22-36.png" +width="977" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="508px" +></li> +<li><a class="link" href="https://shadertoy.com/view/msVXWD" target="_blank" rel="noopener" +>glsl-CNN</a>,有大神用glsl语言,仅通过webGL的片元着色器实现了一个手写识别的CNN神经网络。可以在浏览器直接体验,效果惊艳。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-31-02.png" +width="801" +height="479" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +></li> +<li><a class="link" href="https://github.com/facebookresearch/dinov2" target="_blank" rel="noopener" +>dinov2</a>,Meta AI新发布的全能视觉模型,模型支持:图像分类、分割、图像检索和深度估计。比较厉害的地方在于它是一个自监督模型,直接从图像中学习特征,而不依赖文本描述,即可训练计算机视觉模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-31-37.png" +width="828" +height="236" +loading="lazy" +class="gallery-image" +data-flex-grow="350" +data-flex-basis="842px" +></li> +<li><a class="link" href="https://minigpt-4.github.io/" target="_blank" rel="noopener" +>minigpt-4</a>,GPT4 的图像支持迟迟不开放,这个开源的MiniGPT4 却已经做到了类似的多模态效果,官方演示看起来非常棒。只用了四张A100训练了10小时,模型甚至只有13B。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-33-47.png" +width="1289" +height="1484" +loading="lazy" +class="gallery-image" +data-flex-grow="86" +data-flex-basis="208px" +></li> +<li><a class="link" href="https://github.com/linyiLYi/street-fighter-ai" target="_blank" rel="noopener" +>street-fighter-ai</a>,有个B站UP主在GPT的帮助下, 写了个 强化训练的AI模型,终于打败了街霸里的 AI,实现了儿时的梦想。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-36-53.png" +width="1080" +height="760" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="341px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 027 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/Wed, 12 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/<h1 id="机器文摘-第-027-期">机器文摘 第 027 期</h1> +<h2 id="长文">长文</h2> +<h3 id="搭建本地ai作图应用">搭建本地AI作图应用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-13-51-53.png" +width="695" +height="392" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="425px" +> +AI对话机器人火爆的同时,去年由Stable-Diffusion模型引爆的AI作图技术也没有放慢进化的脚步。</p> +<p>这里面的佼佼者<a class="link" href="https://zh.wikipedia.org/zh-cn/Midjourney" target="_blank" rel="noopener" +>Midjourney</a>已经发展成了强大的图像生成系统。可以轻松定制出照片级图像,其效果足以乱真。</p> +<p>不过目前在国内使用Midjourney还比较麻烦,即便能够访问,使用量也会受限制,能否自己搭建一个呢?</p> +<p>答案是肯定的。</p> +<p>跟去年刚问世的时候不同,现在基于Stable-Diffusion模型的生态也已经十分完备,很多开源软件、框架、插件围绕这个模型开发。</p> +<p>利用这些软件可以快速在本地计算机上构建一套属于自己的图像生成服务。</p> +<p>这里有一篇博客以<a class="link" href="https://www.freedidi.com/8474.html" target="_blank" rel="noopener" +>手把手的方式教你如何在最快速的时间搭建自己的图像生成服务</a>。</p> +<p>里面还列举了一些微调好的定制模型下载地址,合理的使用这些模型,你会发现打开新世界的大门。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-02-07.png" +width="733" +height="799" +loading="lazy" +class="gallery-image" +data-flex-grow="91" +data-flex-basis="220px" +></p> +<h3 id="搭建本地chatgpt应用">搭建本地chatGPT应用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-08-25.png" +width="779" +height="342" +loading="lazy" +class="gallery-image" +data-flex-grow="227" +data-flex-basis="546px" +> +本来不想再提chatGPT了,因为最近说的有些太多了。</p> +<p>但是无奈当前的开源生态对于语言模型是在是太追捧了,技术发展迅雷不及掩耳。</p> +<p>很快就出现了一批可以自己搭建的AI对话模型。</p> +<p>今天我挑两个我认为效果比较好的(且对中文支持比较好的)介绍一下。</p> +<p>注意,跟目前流行的基于OpenAI的接口进行套壳的程序不同。我说的是完全在本地搭建自己的服务。</p> +<p>第一个:<a class="link" href="https://chatglm.cn/blog" target="_blank" rel="noopener" +>ChatGLM-6B</a>,一个具有62亿参数的中英双语语言模型。通过使用与 ChatGLM(chatglm.cn)相同的技术,ChatGLM-6B 初具中文问答和对话功能,并支持在单张 2080Ti 上进行推理使用。</p> +<p>搭建过程比较简单,按照<a class="link" href="https://github.com/THUDM/ChatGLM-6B/blob/main/README.md" target="_blank" rel="noopener" +>README</a>文档中的步骤下载模型、执行脚本程序即可。</p> +<p>第二个:<a class="link" href="https://github.com/ymcui/Chinese-LLaMA-Alpaca" target="_blank" rel="noopener" +>中文 LLaMA &amp; Alpaca 大模型</a>,开源了中文LLaMA模型和经过指令精调的Alpaca大模型。这些模型在原版LLaMA的基础上扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。同时,在中文LLaMA的基础上,本项目使用了中文指令数据进行指令精调,显著提升了模型对指令的理解和执行能力。</p> +<p>搭建过程略微繁琐一些,需要通过自己的手段下载到开源的LLaMA原始模型(当然这对于技术人员来说不是问题)。</p> +<p>然后按照文档中的教程,执行模型合并、量化等脚本,最终通过开源程序LLaMA.cpp实现模型的本地运行。</p> +<h3 id="合作运行千亿参数级语言模型">合作运行千亿参数级语言模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-22-47.png" +width="492" +height="214" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +按照众人划桨开大船的思路,之前在带宽不足的年代诞生了BT下载。</p> +<p>如今,当我们的本地显卡无法应付超大AI模型时,有人开始用同样的思路解决问题。</p> +<p><a class="link" href="https://petals.ml/" target="_blank" rel="noopener" +>Petals</a>就是这么一个分布式模型微调、运行的框架,可以让你轻松在家运行超过千亿参数的大模型(当然是在线跟大家一起协作)。</p> +<p>其原理是大家分别加载模型的一小部分,然后与其他人一起通过协同的方式进行推理或者微调。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-27-18.png" +width="1742" +height="680" +loading="lazy" +class="gallery-image" +data-flex-grow="256" +data-flex-basis="614px" +></p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://learningprompt.wiki/" target="_blank" rel="noopener" +>Prompt Engineering 教程</a>,一份教你如何更好使好地使用 ChatGPT 和其他 AI 产品的免费教程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-43-13.png" +width="970" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="208" +data-flex-basis="499px" +></li> +<li><a class="link" href="https://prompthero.com/" target="_blank" rel="noopener" +>Prompthero</a>,跟聊天机器人、绘图机器人交流的prompt大全,与上面的教程不同,这是一个模板库大全,有创作灵感但是不知道该如何描述的时候可以去参考一下。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-45-46.png" +width="759" +height="381" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="478px" +></li> +<li><a class="link" href="https://civitai.com/" target="_blank" rel="noopener" +>Civitai</a>,与上面相同,不过专门用于图像生成,而且路子比较野,有大量的NSFW内容,要搭配Stable-Diffusion的各种微调模型使用。具体使用方法,可参考前文中介绍如何搭建本地图像生成服务的部分。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 028 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/Wed, 12 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/<h1 id="机器文摘-第-028-期">机器文摘 第 028 期</h1> +<h2 id="长文">长文</h2> +<h3 id="极简代码理解-gpt-模型结构">极简代码理解 GPT 模型结构</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-37-14.png" +width="679" +height="607" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="268px" +> +在<a class="link" href="https://twitter.com/karpathy/status/1645115622517542913" target="_blank" rel="noopener" +>twitter上有网友发布了一个简单的示例代码</a>,讲解了 GPT 语言模型的运行原理,为了方便大家理解,作者用了极简的模型设置,即语言文字只保留了1和0两个字符,上下文长度也仅为3,可以很直观地感受到训练过程是如何起作用的。</p> +<p>作者<a class="link" href="https://colab.research.google.com/drive/1SiF0KZJp75rUeetKOWqpsA8clmHP6jMg?usp=sharing" target="_blank" rel="noopener" +>提供了托管在colab的python源码</a>,可以在线体验。</p> +<h3 id="用开源语言模型训练自己的数字化身">用开源语言模型训练自己的数字化身</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-38-57.png" +width="623" +height="364" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +> +随着开源语言模型的训练和微调变得越来越简单,果然有人开始整活。</p> +<p>已经有网友<a class="link" href="https://greatdk.com/1908.html" target="_blank" rel="noopener" +>通过自己的微信聊天记录和博客文章训练出有自己风格的AI</a>。</p> +<p>作者使用目前对中文支持最好的开源模型 chatglm-6b 作为预训练模型(我上期介绍过它的部署和使用)。</p> +<p>经过一番折腾后终于训练出还算凑合的模型。</p> +<p>我们的世界离<a class="link" href="https://movie.douban.com/subject/11502153/episode/1/" target="_blank" rel="noopener" +>《黑镜》中的黑暗故事</a>越来越近了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-49-17.png" +width="1024" +height="576" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<h3 id="四十年工作经验程序员的职业建议">四十年工作经验程序员的职业建议</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-50-49.png" +width="700" +height="420" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +> +国外有位“老程序员”退休了,是真正的到了退休年龄的退休。</p> +<p>他从1981年入行,直到去年退休。这期间他做过各种开发,跳过槽也被辞退过,打过工也创过业。</p> +<p>这不容易。</p> +<p>所以,他决定<a class="link" href="https://thecodist.com/how-i-stayed-relevant-over-four-decades/" target="_blank" rel="noopener" +>以“一个退休程序员”的身份分享一些心得</a>。</p> +<p>摘抄部分要点如下:</p> +<blockquote> +<p>保持开阔的眼界:每天花时间获取真正的资讯,看到趋势,在事物流行起来之前发现他们。 +保持学习:不要拒绝和敌视新技术,要为你所用。 +要有自己的项目(做一些真正的事情):作为程序员不要浪费聪明才智和外部资源,要学着开始一个自己的项目。</p> +</blockquote> +<h3 id="进入心流的入口">进入心流的入口</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-08-18.png" +width="660" +height="379" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="417px" +> +进入心流(Flow)状态是一种很忘我的体验,也是知识工作者高效产出的必要条件。</p> +<p>有不少创作者都体会过那种全身心的投入并且忘记了时间的感觉。</p> +<p>一旦进入那种状态,很多问题能够很快得到解决,大脑飞速运转并且不会感觉到劳累。</p> +<p>这种状态最忌讳被打断,因为一旦打断,再进入就会比较困难。</p> +<p>这里有篇文章介绍了一些小技巧,可以让你在不得已中断心流之后,能够比较快速地恢复状态。</p> +<p>作者将这些技巧比喻为高速服务区进入主路之前的加速匝道,姑且称为<a class="link" href="https://census.dev/blog/an-on-ramp-to-flow" target="_blank" rel="noopener" +>进入心流的入口</a>。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://spline.design/" target="_blank" rel="noopener" +>Spline</a>,一个免费易用的 3D 设计工具,可实时协作,提供了丰富的物料库,可以基于它来快速创建有趣的 3D 场景,支持处理细腻动画交互,此外还可以导入本地模型和声音素材,支持到处多种输出格式包括WebGL、视频、链接等,很适合新手。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-19-26.png" +width="986" +height="536" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="441px" +></li> +<li><a class="link" href="https://codepen.io/ksenia-k/pen/poOMpzx" target="_blank" rel="noopener" +>Draw With Flowers!</a>,在threejs里用着色器语言编写的一个特效demo,可以随着鼠标移动绘制绚丽的花朵。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-19-52.png" +width="828" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/numbbbbb/read-react-source-code" target="_blank" rel="noopener" +>React 源码阅读</a>,一本开源电子书,通过阅读React的源码来详细理解前端框架的原理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-20-26.png" +width="591" +height="369" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="384px" +></li> +<li><a class="link" href="https://codeium.com/download" target="_blank" rel="noopener" +>Codeium</a>,Github copilot 的免费平替,提供vscode、vim、neovim等常见编辑器的插件,我试了一下,效果可以接受。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-21-52.png" +width="1024" +height="586" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="419px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 026 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/Wed, 29 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/<h1 id="机器文摘-第-026-期">机器文摘 第 026 期</h1> +<h2 id="长文">长文</h2> +<h3 id="通用人工智能要来了吗">通用人工智能要来了吗</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-09-37-08.png" +width="854" +height="476" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +> +AGI(通用人工智能),即用一个模型解决全部问题,而不是特定领域的问题(如语音识别、图像分类等)。</p> +<p>我在几年前读过一本叫做《人工智能,人类最后的发明》的书。</p> +<p>书里说AGI就是人类最后一个发明,因为有了它,别的一切都不需要了。</p> +<p>当时感觉距离通用的人工智能还很遥远,觉得作者有些危言耸听。</p> +<p>直到今年,chatGPT和GPT-4的发布,我才发觉AI的势头确实有些猛得出乎意料。</p> +<p><a class="link" href="https://orangeblog.notion.site/GPT-4-8fc50010291d47efb92cbbd668c8c893" target="_blank" rel="noopener" +>《 GPT-4 ,人类迈向AGI的第一步》</a>是一篇<a class="link" href="https://arxiv.org/pdf/2303.12712v1.pdf" target="_blank" rel="noopener" +>近期论文</a>的翻译,该论文由微软研究院发布,论证了当前的 GPT-4 模型已经初步具有 AGI 的苗头。</p> +<p>论文内容十分详实,看完很震撼。</p> +<p>摘录部分文字如下:</p> +<blockquote> +<blockquote> +<p><strong>对话</strong> +&gt; 马克:我不喜欢你昨天晚上对待杰克的方式 +&gt; 朱迪:你看到他在做什么了吗?他打了他哥哥的头! +&gt; 马克:这并不能成为你对他大喊大叫的理由 +&gt; 朱迪:你想让我怎么做?让他打他的弟弟,然后什么都不说? +&gt; 马克:不,我不同意 +&gt; 朱迪:那你为什么要为他辩护? +<strong>提问:马克的意图似乎是什么?</strong> +GPT4: 马克的意图似乎是要表达他对朱迪处理与杰克关系的方式的不满,并建议她可以更加冷静和尊重。 +ChatGPT:根据谈话内容,马克的意图似乎是为杰克的行为辩护,并表达他对朱迪对待杰克的不满。 +<strong>提问:朱迪如何看待汤姆的回应?</strong> +GPT4: 朱迪认为他的评论是对她的分析能力的攻击,也是对杰克的不当行为表示同情的表现。她的反应是防御性的和愤怒的,并质疑马克的动机。 +ChatGPT:如果没有更多的文字,我不可能准确判断朱迪是如何接受马克的评论的。然而,根据朱迪的回应,她似乎并不同意马克的观点,而且可能对他为杰克的行为辩护感到沮丧。</p> +</blockquote> +</blockquote> +<h3 id="用-gpt-4-帮你编写一个游戏">用 GPT-4 帮你编写一个游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-02-56.png" +width="717" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="510px" +> +我第一次见识到 ChaptGPT 的编程能力之后,就基本离不开这个工具了。</p> +<p>现在我几乎每天都在它的辅助下编写代码。</p> +<p>不过,这里有个老哥更过分。</p> +<p>他让 <a class="link" href="https://twitter-thread.com/t/1637592014446551040" target="_blank" rel="noopener" +>GPT-4 模型帮他做出了一个3D太空赛跑游戏</a>。</p> +<p>作者本身没有游戏编程经验也不懂Javascript,但是通过跟模型一点一点对话,反复将调试代码生成的错误信息反馈给模型,逐渐完成了一个完成度还挺高的游戏。</p> +<h3 id="搭建基于私域数据的chatgpt">搭建基于私域数据的ChatGPT</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-12-24.png" +width="776" +height="438" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="425px" +> +ChatGPT 超强的对话能力怎样应用到私有数据上?</p> +<p>比如说我希望做出一个基于 ChatGPT 模型的专属客服,要吃透我的产品信息。</p> +<p>官方提供的训练API和微调(fine tuning)指导相对复杂一些,对于AI模型的微调不熟悉的人员还不够友好。</p> +<p>这里有一篇“零基础”教程<a class="link" href="https://mp.weixin.qq.com/s/naiVMuXHAScRb_jSEJN3zg" target="_blank" rel="noopener" +>《搭建基于私域数据的ChatGPT》</a>,可以带你走一下流程,感受一下定制专属模型的步骤。</p> +<h3 id="ai令人焦虑">AI令人焦虑</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-21-37.png" +width="609" +height="859" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="170px" +> +这篇<a class="link" href="https://mp.weixin.qq.com/s/7H1FrwbQvsh0HD9z90L0wg" target="_blank" rel="noopener" +>《AI狂飙的时代,人还有价值吗?》</a>是一期语音播客的文字转译,因为内容比较精彩,所以也收录在这里了。</p> +<blockquote> +<p>我觉得取代不是一个好的词儿,因为取代是一个非常容易反驳的词儿。我可以说我仍然会干什么什么,AI干不了,所以它取代不了我。 +但正是这种字面上的抬杠,使得问题的本质被掩盖了,因为AI在人的生活中的渗透是一个逐渐的过程。 +百分之百地取代你可能仍然不会发生,可是它也不需要百分之百的取代掉你,只要50%的取代掉你的某些工作职能,AI就会对就业市场形成非常大的冲击。 +我有一个纽约的律师朋友,他是很早就开始用这个东西。 +他本身不是一个技术人员,他是一个标准的文科生,平常的用一个新软件都要紧张半天的那种人。 +但是他开始用这个之后,因为律师的工作是很大程度上是依赖于文本的,而文本是GPT的长项,所以他就开始用。 +之后,我就问他说,所以你真的开始辞退你的员工了吗?因为他自己是一个律所合伙人。 +他说我还没有真正开始辞退任何人,但是我确实打算今年暑假不用再招实习生了,因为给我省下的活完全可以让我腾出手来做一些事,以至于我可以省下招一个实习生的AD account。 +这就是一个真实的影响对不对? +它没有真正取代什么东西,但是它仍然冲击了一个真实的就业市场上的职位。</p> +<p>我觉得AI对我们社会的影响会以这种方式出现,它不会马上一下子让你这个人变得没有意义,但是它可以让三个人的活,两个人现在能干完,多出来那个人就没有存在的必要了,所以老板就可以把他开掉。 +它并不是百分之百取代的人的方式来逐渐进行的,而且这个事情是非常真实的。这也是为什么我觉得很多人对冲击仍然没有做好心理上和事实上的准备。 +其实有点令人忧虑的原因就是,如果你今天还用一种这东西,都是媒体的炒作来对待这个问题,你就很可能会在真正的影响你切身生活的冲击到来之前,没有做好对自己来说比较有用的帮助。</p> +</blockquote> +<p>读完这篇文章,我的感受是,没必要焦虑,不是AI没有威胁,而是焦虑也没用,蒸汽机车发明之后,超越马车就只剩下时间问题了。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://greasyfork.org/zh-CN/scripts/445751-unlimited-downloader" target="_blank" rel="noopener" +>无限制下载器,只要能播放就能下载</a>,能够帮助下载视频网站内容的浏览器插件很多,大部分都是通过嗅探播放地址来实现的下载,网站也会采用各种加密手段来进行阻止。但是这个油猴脚本采用了另一种思路。你网站防再死不能不让观众看吧?脚本几乎采用了类似录屏的手段来进行视频下载。对于一些实在想要下载的内容,可以考虑试试这个插件。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-34-53.png" +width="640" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="384px" +></li> +<li><a class="link" href="https://github.com/cocktailpeanut/dalai" target="_blank" rel="noopener" +>帮你本地运行 LLaMA 模型</a>,只需一行命令就可以让你在本地运行 <a class="link" href="https://github.com/ggerganov/llama.cpp" target="_blank" rel="noopener" +>LLaMA</a> 模型,轻松感受在本地单机上运行大规模语言模型的魅力。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-40-09.png" +width="1920" +height="1080" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/lxe/simple-llama-finetuner" target="_blank" rel="noopener" +>微调 LLaMa 模型的工具</a>,既然都能在本地运行了,那就再给力一些,这个工具可以让你很方便地使用自己的数据训练 LLaMA 模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-42-04.png" +width="1013" +height="898" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></li> +<li><a class="link" href="https://github.com/Haxxnet/Compose-Examples" target="_blank" rel="noopener" +>Docker Compose 容器组合最佳实践</a>,Docker有多好用不用再说了吧,这里有一堆使用Docker Compose编排容器的模板,收录了很多十分有用的容器镜像组合,可方便快速的搭建各种业务(如:单点登录、VPN、媒体管理、文件共享、博客、维基、社交网站、项目管理等)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-46-53.png" +width="802" +height="445" +loading="lazy" +class="gallery-image" +data-flex-grow="180" +data-flex-basis="432px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 025 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/Wed, 22 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/<h1 id="机器文摘-第-025-期">机器文摘 第 025 期</h1> +<h2 id="长文">长文</h2> +<h3 id="252个字节实现播放音乐和动画">252个字节实现播放音乐和动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-25-42.png" +width="915" +height="478" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +> +这里有个网页介绍了一个demo作者使用一段JavaScript代码实现了一个<a class="link" href="http://www.p01.org/256b_tetris_theme/" target="_blank" rel="noopener" +>一边播放俄罗斯方块背景音乐一边播放字符动画的网页</a>,原理是利用HTML5的AudioContext对象进行声音合成,通过定时器触发基于当前时间t值的不同频率,实现音乐播放。具体代码如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="cl"><span class="o">&lt;</span><span class="nx">body</span> <span class="nx">onclick</span><span class="o">=</span><span class="s2">&#34;with(new AudioContext)with(o=createOscillator())connect(destination),start(setInterval(v=&gt;innerHTML=&#39;TETЯIS&amp;#&#39;+(9624|(o.frequency.value=`RR&gt;AIIA&gt;777${d=&#39;ARRIA&gt;&gt;&gt;AIIRRAA7777&#39;}IIIWnnbWRRR${d}`.charCodeAt(++t%58)*4)%7)+&#39;P01&#39;,t=232))&#34;</span><span class="o">&gt;</span><span class="nx">click</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h3 id="诺基亚发布的可维修手机">诺基亚发布的“可维修”手机</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-35-52.png" +width="614" +height="369" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="399px" +> +说到诺基亚,用过的朋友第一个映入脑海的词就是“砸核桃”。</p> +<p>那是iPhone还没发布的非智能手机年代。</p> +<p>手机可更换电池和外壳在那时是一个标准设计,谁要是不支持这些都不好意思跟人打招呼。</p> +<p>那时我经常把我的诺基亚掉在地上摔得七零八落,然后淡定地捡起来像电影里特工拼装自己的手枪那样,一个个把零件组装起来,形成“一把”手机。</p> +<p>或者等手机快要没电的时候,像换弹匣那样给手机换一块电池,立马满血复活。</p> +<p>这样的日子自从iPhone发布之后就再也没有了。</p> +<p><a class="link" href="https://www.theguardian.com/technology/2023/feb/25/nokia-launches-diy-repairable-budget-android-phone" target="_blank" rel="noopener" +>诺基亚近期发布了一款手机</a>,再次让我想起我那掉地上摔开几瓣的手机。这款手机号称具有良好的“可维修”性,普通用户也可一个人在家轻松拆卸。可以自行更换包括电池、屏幕、充电端口等零件。</p> +<h3 id="不要重复自己是编程的好原则吗">不要重复自己是编程的好原则吗</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-50-45.png" +width="650" +height="346" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +> +不要重复自己,永远不要从头开始重写代码!</p> +<p>这是很多程序员收到的忠告。</p> +<p>然而它是绝对正确的吗?</p> +<p>这里有篇文章<a class="link" href="https://programmingisterrible.com/post/176657481103/repeat-yourself-do-more-than-one-thing-and" target="_blank" rel="noopener" +>《重复自己,重写一切》</a>,作者在文章中探讨了编程中的一些习惯,他认为这些习惯可以使代码变得更难理解、更难维护,并可能导致代码的冗长和不必要的复杂性。文章提到了重写代码可以给程序带来更好的抽象和可维护性,所以建议定期通过重新写代码的方式重构你的程序。</p> +<p>说实话,我不知道作者是怎样看待所谓“屎山”代码的,也许当他面对有些代码时,他的观点也会变为:“能跑的代码,就尽量别动它了”。</p> +<h3 id="慢下来">慢下来</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-59-28.png" +width="587" +height="205" +loading="lazy" +class="gallery-image" +data-flex-grow="286" +data-flex-basis="687px" +> +这篇文章的题目是<a class="link" href="https://sive.rs/slow" target="_blank" rel="noopener" +>“慢下来”</a>,作者是Derek Sivers,一位创业者、作家和音乐家。在这篇文章中,他分享了自己对于“慢下来”这个主题的一些思考和感悟。</p> +<p>虽然是个急性子,但是我很认同文章里的观点。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.macpierce.com/the-camera-shy-hoodie" target="_blank" rel="noopener" +>反跟踪识别的套件</a>,如果你觉得被公共场所的摄像头拍摄和记录或者识别侵犯了你的隐私,这里有一套开源的穿戴套件可以考虑。它通过在身上穿戴可以发射红外线的LED设备,使得摄像头画面过曝。以获得保护隐私的效果。不过仅用于研究,不知道是否符合有些国家的法律法规。网站提供了配件清单和详细的装配说明(pdf)供下载。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-05-16.png" +width="1203" +height="583" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="495px" +></li> +<li><a class="link" href="https://whatdoesthiscodedo.com/" target="_blank" rel="noopener" +>AI帮你解释一段代码</a>,有人使用openai的开发接口提供了一个专门帮人们解释代码执行的工具,输入代码,输出解释。并提供vscode的插件。我把文章开头那段播放音乐的Javascript代码发给他让他解释,效果如下图: +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-09-51.png" +width="625" +height="740" +loading="lazy" +class="gallery-image" +data-flex-grow="84" +data-flex-basis="202px" +></li> +<li><a class="link" href="https://xenova.github.io/transformers.js/" target="_blank" rel="noopener" +>在网页中运行GPT模型</a>,一个可以在浏览器中执行Transformer模型的开源程序,可以执行轻量的模型,实现如翻译、语音转文字、图像转文字等任务。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-12-45.png" +width="1239" +height="519" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="572px" +></li> +<li><a class="link" href="https://aitxt.io" target="_blank" rel="noopener" +>AI生成工具箱</a>,近期,基于chatGPT模型的应用大爆发,这里有一个整理好的工具箱,可以使用ai做很多内容生成工作,包括帮你编写周报、润色文字、写道歉信、写外卖好评等,效果还不错。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-15-00.png" +width="1033" +height="530" +loading="lazy" +class="gallery-image" +data-flex-grow="194" +data-flex-basis="467px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 024 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/Wed, 15 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/<h1 id="机器文摘-第-024-期">机器文摘 第 024 期</h1> +<h2 id="长文">长文</h2> +<h3 id="电池充一次可以用两年的笔记本电脑">电池充一次可以用两年的“笔记本”电脑</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-18-01.png" +width="830" +height="467" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +挪威软件开发商安德烈亚斯·埃里克森(Andreas Eriksen)组装了一款笔记本电脑(或者说便携膝上型电脑?)。</p> +<p>它拥有“以年为单位的电池寿命”,并且使用用Lisp编程系统界面,产品名为:<a class="link" href="https://www.hackster.io/news/andreas-eriksen-s-potatop-is-a-lisp-powered-laptop-with-a-battery-life-measured-in-years-2f5d79653f24" target="_blank" rel="noopener" +>PotatoP</a>。</p> +<p>CPU好像是个ARM架构的低功耗单核处理器,最高频率96MHz。</p> +<p>支持蓝牙5.0。</p> +<p>运行的系统为PotatOS,一个基于<a class="link" href="http://www.ulisp.com/" target="_blank" rel="noopener" +>uLisp</a>(一个专门为微控制器设计的Lisp)移植的专用系统。</p> +<p>使用的4.4英寸显示屏采用介于LCD和墨水屏之间的技术,省电。</p> +<p>再加上机身上还带有太阳能电池,据说如果环境光充足的话,可以连续运行两年。</p> +<h3 id="详解-amd-为-steam-deck-开发的-apu">详解 AMD 为 Steam Deck 开发的 APU</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-32-20.png" +width="671" +height="272" +loading="lazy" +class="gallery-image" +data-flex-grow="246" +data-flex-basis="592px" +> +Steam Deck 无疑是一款革命性的掌机。</p> +<p>如果不是价格在国内被炒的离谱,我定会入手一台,也许再观望一下等待第二代或者三代产品更好。</p> +<p>这款掌机使得在便携设备上游玩3A大作不再是幻想。</p> +<p>取得这样的表现,除了得益于V厂魔改的Linux系统之外,还离不开这块由AMD定制的、代号“梵高”的 APU。</p> +<p>这篇<a class="link" href="https://chipsandcheese.com/2023/03/05/van-gogh-amds-steam-deck-apu/" target="_blank" rel="noopener" +>《“梵高”AMD的Steam Deck APU》</a>详细介绍了这块APU的各种技术细节,解释了为什么Steam Deck可以做到低功耗的同时还拥有相当给力的图形性能。</p> +<h3 id="用磁盘阵列raid确保数据安全靠谱吗">用磁盘阵列(RAID)确保数据安全靠谱吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-45-46.png" +width="477" +height="250" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="457px" +> +再谈谈 NAS 的事情(中年技术男的三大爱好之一)。</p> +<p>像我这样的人,对于 RAID 磁盘阵列总是抱有美好的幻想。我们认为,只要将数据存放在经过合理规划的磁盘阵列中(例如 RAID 5),我们就可以高枕无忧,确保数据永远不会丢失。然而,实际上,磁盘阵列并不是备份数据的最佳选择,最佳的数据安全策略是异地多份存储。</p> +<p>尽管 RAID 5 宣称随便损坏一块硬盘也不要紧,只需更换一块正常盘即可,但这种理想状态可能不太容易实现,中间随时可能会出现其他状况导致数据永久丢失。</p> +<p>一篇名为<a class="link" href="https://www.ucmadscientist.com/almost-lost-it-all-again/" target="_blank" rel="noopener" +>《差点儿就又全没了》</a>的博文,讲述了作者在使用 NAS 磁盘阵列时经历了一次惊险刺激的数据拯救过程。希望这篇文章能够给计划使用类似方式保存数据的朋友们一个平常心态。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://pubby.games/nesfab.html" target="_blank" rel="noopener" +>NESFab</a>,一个专为开发任天堂8位游戏机(NES、FC)设计的编程语言。具有高性能、易于装载资源、自动内存地址切换等特性,作者还在主页提供了一个使用NESFab开发游戏的教程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-10-50.png" +width="490" +height="169" +loading="lazy" +class="gallery-image" +data-flex-grow="289" +data-flex-basis="695px" +></li> +<li><a class="link" href="https://github.com/AstroNvim/AstroNvim" target="_blank" rel="noopener" +>AstroNvim</a>,一套即开即用的Nvim配置文件,主打界面美观,集成了文件浏览、代码补全、语法高亮、模糊查询、可视化调试等常用插件配置。对于新手和懒得折腾的人来说,可以尝试。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-13-25.png" +width="814" +height="434" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></li> +<li><a class="link" href="https://github.com/pynecone-io/pynecone" target="_blank" rel="noopener" +>pynecone</a>,一个用python开发的web应用框架,特点是使用python语言完成所有任务,包括前端和后端,可以帮助那些对于前端开发不太擅长的人更方便地制作web应用程序。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-16-17.png" +width="727" +height="647" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="269px" +></li> +<li><a class="link" href="https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming" target="_blank" rel="noopener" +>函数式编程入门</a>,一篇介绍函数式编程的文章,介绍了函数式编程的基本概念和一些重要的函数式编程概念,并使用Javascript演示了如何使用这些概念进行函数式编程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-18-09.png" +width="450" +height="220" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="490px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 023 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/Wed, 08 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/<h1 id="机器文摘-第-023-期">机器文摘 第 023 期</h1> +<h2 id="长文">长文</h2> +<h3 id="视频信号可以被窃听吗">视频信号可以被窃听吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-10-45.png" +width="533" +height="234" +loading="lazy" +class="gallery-image" +data-flex-grow="227" +data-flex-basis="546px" +> +我之前听到过一个传说。</p> +<p>使用高灵敏度的天线,再加上一些奇妙的设备。</p> +<p>可以窃听(窃视?)到附近(方圆数百米)范围之内的显示器显示的内容。</p> +<p>这个传说流传的时候,还是CRT显示器的时代,当时的视频接口主要是VGA,采用模拟信号进行传输。</p> +<p>如果显示器或者视频线缆所作的屏蔽不够充分的话,难免会有信号泄露。</p> +<p>而VGA信号又没有任何加密,被别有用心的人收看是有一定的可能的。</p> +<p>时间发展到今天,视频接口早已升级,我以为除非不小心无线投屏到了邻居家,否则就不会有视频内容泄露的情况。</p> +<p>然而,<a class="link" href="https://www.windytan.com/2023/02/using-hdmi-radio-interference-for-high.html" target="_blank" rel="noopener" +>今天要说的这篇文章</a>则证实了上述传说的可能。</p> +<p>不过,比起传说中的窃听,作者走的更远一些。</p> +<p>起因是作者在家里摆弄无线电的时候,发现了一个信号干扰源,最后发现来自他的一个树莓派设备。</p> +<p>于是经过一番操作,作者不但成功通过无线接收的方式将视频信号显示了出来。</p> +<p>还利用这种无线信号的干扰(或泄露?)实现了叠加数据的传输。</p> +<h3 id="怎样用密码保护一个静态页面">怎样用密码保护一个静态页面?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-34-20.png" +width="903" +height="429" +loading="lazy" +class="gallery-image" +data-flex-grow="210" +data-flex-basis="505px" +> +说到网站上的数据权限保护,一般我们会需要后端程序配合。</p> +<p>比如使用账号系统,给用户角色分配不同的权限,使其访问后端接口时获取不同的数据。</p> +<p>如果没有后台程序,只有静态页面会怎样?</p> +<p>这儿有个开源工具,<a class="link" href="https://robinmoisson.github.io/staticrypt/" target="_blank" rel="noopener" +>可以帮你生成带有密码保护的静态HTML页面</a>。</p> +<p>具体使用方法和原理也很简单。</p> +<p>输入你想设置的密码和你的HTML页面原始代码,这个工具可以使用AES-256加密算法对其进行加密。</p> +<p>然后在浏览器加载时,页面自动使用一个js库实现自解密。</p> +<p>这个方法用于临时保护一些静态的内容还是挺有效的,而且很方便。</p> +<h3 id="写代码越干净越好吗">写代码越“干净”越好吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-43-47.png" +width="713" +height="344" +loading="lazy" +class="gallery-image" +data-flex-grow="207" +data-flex-basis="497px" +> +有不少人宣称自己有代码“洁癖”。</p> +<p>对于设计模式和面向对象有着非常深的执念(或者函数式编程也是)。</p> +<p>市面上也充斥着很多“之美”、“之道”、“之禅”之类的书籍,强调代码要给人读、整洁干净。</p> +<p>我并不反对上述观点,甚至自己也有一点这样的“洁癖”,只是有时内心会有一丝怀疑的时候,觉得如果过于追求某些东西可能会偏离了解决问题的根本目标。</p> +<p>这篇<a class="link" href="https://www.computerenhance.com/p/clean-code-horrible-performance" target="_blank" rel="noopener" +>《“干净”的代码,糟糕的性能》</a>,帮我吐槽了一些事情。</p> +<p>但作者在文中所举的例子稍微有些牵强,不必过于纠结。</p> +<h3 id="不知道怎么练习编程怎么办">不知道怎么练习编程怎么办</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-58-53.png" +width="469" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="358px" +> +经常有人困惑在学习了一门新的编程语言之后,不知该做些什么。</p> +<p>就像是掌握了词语却写不出好的小说,掌握了规则也下不好象棋。</p> +<p>我们从小受到的教育方式导致了,在学习技能这一块,缺失实践的动力和方法。</p> +<p>这篇<a class="link" href="https://prog21.dadgum.com/80.html" target="_blank" rel="noopener" +>给无目标的新手程序的一些建议</a>,虽然内容不多,但是可以看出作者也是个老油条了。</p> +<p>给出的一些提示都很实在,对于技能练习方面,提的都是我希望我能遵从的。</p> +<p>比如:</p> +<blockquote> +<p>用技能解决你实际生活中的问题。 +做一些你真正会用到的东西。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.freecodecamp.org/chinese/news/typescript-for-react-developers/" target="_blank" rel="noopener" +>写给 React 开发者的 TypeScript 指南</a>,针对React程序员的TypeScript的学习资料,解答了我一部分为什么要用TS的问题。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-01-19.png" +width="698" +height="375" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="446px" +></li> +<li><a class="link" href="https://method.ac/" target="_blank" rel="noopener" +>Method of Action</a>,一些免费的工具和在线小游戏(颜色搭配、贝塞尔曲线等),可以帮助你学习和掌握设计理念和工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-02-12.png" +width="605" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="131" +data-flex-basis="314px" +></li> +<li><a class="link" href="https://archivebox.io/" target="_blank" rel="noopener" +>Archivebox</a>,一套开源的互联网内容保存方案,可以将你喜欢的页面下载下来,并自动爬取相关链接、图片等内容,类似于互联网档案馆的https://archive.org,不过可以自己搭建。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-06-33.png" +width="686" +height="285" +loading="lazy" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="577px" +></li> +<li><a class="link" href="https://ohiostate.pressbooks.pub/graphicshistory/front-matter/cover/" target="_blank" rel="noopener" +>History of Computer Graphics and Animation</a>,一本讲解计算机图形和动画发展历程的电子书,里面记录了计算机图形学相关的许多参考资料,曾用于俄亥俄州立大学的授课。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-08-29.png" +width="676" +height="711" +loading="lazy" +class="gallery-image" +data-flex-grow="95" +data-flex-basis="228px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 022 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/Wed, 01 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/<h1 id="机器文摘-第-022-期">机器文摘 第 022 期</h1> +<h2 id="长文">长文</h2> +<h3 id="自制家庭服务器">自制家庭服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-10-51-39.png" +width="668" +height="367" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="436px" +> +人们常说,中年技术男的最终归宿除了钓鱼和盘核桃之外,还有一项就是折腾家里的服务器,这些服务器形态各异,但是作用都是殊途同归:NAS、软路由、虚拟化、Docker容器。</p> +<p>怎样变着花样搭建家庭服务器几乎是 V 站的月经甚至日经话题。</p> +<p>这里有个国外的老哥,决定使用 ARM64 架构自己“装配”一个,是那种需要焊接的“装配”。</p> +<p>有兴趣的可以翻阅一下这篇<a class="link" href="https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html" target="_blank" rel="noopener" +>《构建 ARM64 家庭服务器》</a>。</p> +<p>文章介绍了如何用一种较为困难的方式构建一个 ARM64 架构的家用服务器。</p> +<p>作者使用了一块名为 ROCKPro64 的开发板,并详细介绍了构建过程中遇到的问题以及如何解决这些问题。</p> +<p>文章中包含了安装基础操作系统、配置网络连接、设置磁盘阵列和安装各种软件的详细步骤和指导,涵盖了从硬件到软件的多个方面。</p> +<p>在构建过程中,作者提到了一些常见的问题和解决方法,例如如何处理不同操作系统的差异,如何在开发板上设置固件,以及如何解决硬件不兼容问题。</p> +<p>总之,这篇文章是一份详细的指南,可以帮助有兴趣构建自己的家用服务器的读者了解基础知识,克服可能遇到的问题,并学习如何从头开始构建一个高效、安全的服务器。</p> +<blockquote> +<p>上面这段是让 chatGPT 帮我写的 :)</p> +</blockquote> +<h3 id="用rust写一个大小仅有2k的极简fps游戏">用Rust写一个大小仅有2K的极简FPS游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-11-06-53.png" +width="480" +height="258" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="446px" +> +极简渲染器的编写教程网上有很多,但大都浅尝辄止,以静态渲染为主。</p> +<p><a class="link" href="https://grantshandy.github.io/posts/raycasting/" target="_blank" rel="noopener" +>这篇文章</a>则从制作一个第一人称射击游戏的视角出发,讲解了怎样使用光线投射技术实现最基本的三维空间渲染、光照、阴影等效果。</p> +<p>作者使用 Rust 语言基于 wasm 技术编写了一个在网页中运行的示例程序,该程序非常小巧,但是也充分展现了如何使用光线投射算法来实现 3D 渲染技术仲的一些基本概念,比如:墙体贴图、视角控制等。</p> +<p>是我看到的教程里比较系统的一个,适合作为爱好者去研究。</p> +<h3 id="玩具-cpu-模拟器">玩具 CPU 模拟器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-24-45.png" +width="640" +height="480" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +国外一个大学老师觉得他的计算机组成原理课程有些枯燥,于是他<a class="link" href="https://jimhall.itch.io/toy-cpu" target="_blank" rel="noopener" +>动手撸了一个 CPU 模拟器出来</a>,以帮助学生们更好的理解计算机内部运作原理。</p> +<p>作者在文章里介绍了基本的原理,以及模拟器的各个组件,适合学习底层原理初入门的学生。</p> +<p>另外这个模拟器也基于 MIT 协议进行了开源,文章中附有开源仓库的地址和编译好的可执行文件下载连接。</p> +<p>需要注意的是该程序运行环境为DOS,现在要想体验的话,需要先安装 <a class="link" href="https://www.dosbox.com/download.php?main=1" target="_blank" rel="noopener" +>DosBOX</a> 这个模拟器。</p> +<h3 id="不用任何构建系统编写前端代码">不用任何构建系统编写前端代码</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-35-29.png" +width="632" +height="224" +loading="lazy" +class="gallery-image" +data-flex-grow="282" +data-flex-basis="677px" +> +比起十几年前,前端开发工程现在已经变得十分复杂。</p> +<p>有次我想写个简单的页面程序,但是却花费了一上午的时间陷入对框架和构建系统的选择上。</p> +<p>后来不得不放弃,改用记事本随便用原生Javascript完成了功能。</p> +<p><a class="link" href="https://jvns.ca/blog/2023/02/16/writing-javascript-without-a-build-system/" target="_blank" rel="noopener" +>这篇文章</a>的作者跟我有同样的感受。</p> +<p>作者认为,对于一些简单的项目来说,使用构建系统可能是不必要的。</p> +<p>因为构建系统会增加开发和维护的复杂性,而且可能会导致一些性能问题。</p> +<p>文章演示了作者如何使用原生的Javascript和浏览器的开发者工具来实现一些常见的构建系统功能。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/CyC2018/CS-Notes" target="_blank" rel="noopener" +>计算机知识笔记</a>,一个计算机科学知识笔记仓库,包括计算机基础知识、编程语言和算法、开发工具、面试笔试题目等等,是一个非常实用的笔记库。目前在 Github 上有超过 162k 个 star 。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-47-03.png" +width="344" +height="602" +loading="lazy" +class="gallery-image" +data-flex-grow="57" +data-flex-basis="137px" +></li> +<li><a class="link" href="https://www.hugi.scene.org/online/hugi31/hugi%2031%20-%20index%20coding%20corner.htm" target="_blank" rel="noopener" +>Creating Demos</a>,这套教程是 <a class="link" href="https://en.wikipedia.org/wiki/Hugi" target="_blank" rel="noopener" +>Hugi 杂志</a>在2001年第31期发布的一系列编程文章,主题是“Demo程序”的制作,是我目前在网络上见到的比较完整和耐心的一套讲解 Demoscene 如何制作的教程。虽然有些技术是老旧的,但是思想一直是不变的,能够学到很多平时很难了解到的东西,现在很少有人愿意分享这些了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-52-29.png" +width="543" +height="367" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="355px" +></li> +<li><a class="link" href="https://github.com/iawia002/lux" target="_blank" rel="noopener" +>网络视频下载器</a>,一个 go 语言编写的网络音视频资源下载工具,类似 youtube-dl,但是支持的网站要更多一些。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-54-53.png" +width="870" +height="666" +loading="lazy" +class="gallery-image" +data-flex-grow="130" +data-flex-basis="313px" +></li> +<li><a class="link" href="https://www.ambient.run/" target="_blank" rel="noopener" +>ambient</a>,Ambient是一个使用 WebAssembly、Rust 和 WebGPU 技术构建的高性能多人游戏和3D应用的开源引擎。特点是针对构建多人游戏开发进行优化支持。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-14-03-29.png" +width="981" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="622px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 021 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/Wed, 22 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/<h1 id="机器文摘-第-021-期">机器文摘 第 021 期</h1> +<h2 id="长文">长文</h2> +<h3 id="chatgpt-原理通俗讲解">chatGPT 原理通俗讲解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-14-57-11.png" +width="1240" +height="410" +loading="lazy" +class="gallery-image" +data-flex-grow="302" +data-flex-basis="725px" +> +可能是有人炒作的缘故,chatGPT 热度一直不降,连街边买菜的大妈都在讨论这个“人工智能机器人”。</p> +<p>可能是它输出语言的流畅度实在是太接近真实的人类了,用惯了之前那种“智能助理”的人很容易感到震惊。</p> +<p>然而其背后的原理并非像想象的那么复杂,甚至是大力出奇迹的又一个经典样例。</p> +<p>最近关于它的文章也是铺天盖地,各种分析、叫好,很少有冷静下来探讨其背后机理的。</p> +<p>我翻看了几篇之后,发现唯有这篇<a class="link" href="https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/" target="_blank" rel="noopener" +>《chatGPT在做什么以及它为什么好使》</a> 比较优秀。读起来比较平和,没有压力。</p> +<p>文章揭示了即使像chatGPT这样的大型语言模型也是一个单词一个单词慢慢往出崩的,并尝试说清楚这么流畅的语言是基于什么来预测后续单词的概率。</p> +<h3 id="怎样利用多gpu训练真正的大型模型">怎样利用多GPU训练真正的大型模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-13-37.png" +width="920" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="478px" +> +前面提到的 chatGPT 模型,体量非常大,据说训练一次就要耗费上千万美元。</p> +<p>作为普通开发者我们是不敢奢望自己上手训练一番。</p> +<p>不过,这里有一篇文章可以让我了解像这样的<a class="link" href="https://lilianweng.github.io/posts/2021-09-25-train-large/" target="_blank" rel="noopener" +>大模型是如何进行并行训练的</a>。</p> +<p>另外还有个开源的项目,号称可以<a class="link" href="https://github.com/hpcaitech/ColossalAI/blob/main/README-zh-Hans.md" target="_blank" rel="noopener" +>在较少资源的基础设施上进行 GPT 模型训练</a>,有兴趣的可以试试。</p> +<h3 id="怎样搭建一个电子爱好者工作间">怎样搭建一个电子爱好者工作间</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-28-10.png" +width="716" +height="439" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="391px" +> +拥有一个电子产品工作室一直是我的一个梦想。</p> +<p>电烙铁、稳压电源、万用表,是我能想到的最基本的设备。</p> +<p>如果还想更完美,可以借鉴这篇文章所介绍的思路,<a class="link" href="https://lcamtuf.substack.com/p/setting-up-an-electronics-workshop" target="_blank" rel="noopener" +>搭建一个电子爱好者工作间</a>。</p> +<h3 id="运气计算公式">运气计算公式</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-37-36.png" +width="809" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="141" +data-flex-basis="340px" +> +看到一个关于运气的文章<a class="link" href="https://www.swyx.io/create-luck" target="_blank" rel="noopener" +>《如何获得好运气》</a>,觉得里面提到的“怎样使得随机的运气变得让好运更加倾向于你”的说法比较有意思。</p> +<p>于是就收录一下。</p> +<p>文章里探讨的问题,很容易让我联想到关于“下雨的时候是飞速跑动淋雨多还是慢慢走淋雨多”的问题。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://academy.cs.cmu.edu/" target="_blank" rel="noopener" +>卡耐基梅隆大学计算机科学在线教程</a>,CMU CS Academy 是卡内基梅隆大学计算机科学学院 (SCS) 的一个项目,其目标是开发一种新颖的、世界级的、在线的、完全免费的交互式高中计算机科学课程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-45-42.png" +width="767" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="472px" +></li> +<li><a class="link" href="https://www.handsome-css.com/" target="_blank" rel="noopener" +>纯CSS实现的超漂亮UI组件收集</a>,网站收集了超多 UI 组件,基于 纯 CSS 实现,采用 MIT 开源协议发布,可以自由使用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-47-30.png" +width="863" +height="349" +loading="lazy" +class="gallery-image" +data-flex-grow="247" +data-flex-basis="593px" +></li> +<li><a class="link" href="https://cn.sli.dev/" target="_blank" rel="noopener" +>为开发者打造的演示文稿工具</a>,Slidev 旨在为开发者提供灵活性和交互性,通过使用他们已经熟悉的工具和技术,使他们的演示文稿更加有趣、更具表现力和吸引力。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-50-17.png" +width="652" +height="251" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="623px" +></li> +<li><a class="link" href="https://www.stableattribution.com/" target="_blank" rel="noopener" +>根据ai做的图倒推出用于训练模型的原始图</a>,这个网站比较有意思,前一段时间比较火的根据文字生成图片的 AI ,这里可以将根据 AI 生成的图片反推出它当时样本训练的原始图。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-56-55.png" +width="1696" +height="398" +loading="lazy" +class="gallery-image" +data-flex-grow="426" +data-flex-basis="1022px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 020 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/Wed, 15 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/<h1 id="机器文摘-第-020-期">机器文摘 第 020 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样获得非凡成就">怎样获得非凡成就</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-09-57-43.png" +width="749" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="469px" +> +多年来,我对成功学嗤之以鼻。</p> +<p>但也对有些人的成功给予应有的尊重。</p> +<p>我所欣赏的成功人士有一种特殊气质,我说不上来具体是什么特点,有点儿像反叛精神,又有点儿对手工技术的狂热。</p> +<p>这些人里对我影响比较大的是《黑客与画家》的作者 保罗·格雷厄姆(<a class="link" href="https://zh.wikipedia.org/zh-hans/%E4%BF%9D%E7%BD%97%C2%B7%E6%A0%BC%E9%9B%B7%E5%8E%84%E5%A7%86" target="_blank" rel="noopener" +>Paul Graham</a>)。</p> +<p>他创建了著名的 <a class="link" href="https://zh.wikipedia.org/zh-hans/Y_Combinator" target="_blank" rel="noopener" +>YC 孵化器公司</a>,也打造了很多成功的产品。</p> +<p>今天推荐的这篇文章<a class="link" href="https://blog.samaltman.com/how-to-be-successful" target="_blank" rel="noopener" +>《How To Be Successful》</a>的作者,是保罗·格雷厄姆非常推崇的一位创业者。</p> +<p>文章分享的观点乍看有成功学的影子,但读完却能引人思考。</p> +<p>这里是中文翻译版:<a class="link" href="https://mp.weixin.qq.com/s/pQYztNmmQ6W4fRxPIEsWYQ" target="_blank" rel="noopener" +>《观察成千上万创业者后,关于如何获得非凡成就的13条思考》</a></p> +<p>我觉得这些观点至少可以给长期埋头技术工作的人们一些启发,我稍微列举几条如下:</p> +<blockquote> +<ul> +<li>这个世界很少人能做到将眼光放长远,而那些有长远眼光的人会得到市场的丰厚回报。</li> +<li>把时间花在做正确的事上,比花长时间进行工作更重要。</li> +<li>跟着你的好奇心走。因为对你来说兴奋的事情对其他人来说也同样兴奋。</li> +<li>成为内驱型的人(即:自己去做一件事的原因来自于自己,而不是外部的力量或别人的期望)。</li> +</ul> +</blockquote> +<h3 id="怎样在客厅建立自己的私人影院">怎样在客厅建立自己的私人影院</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-21-45.png" +width="841" +height="396" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="509px" +> +智能电视或者智能盒子已成为现在客厅的标配。</p> +<p>如何充分发挥它们的作用,早已是技术爱好者的孜孜不倦探索的课题。</p> +<p>前些天我偶然收到一份公开的云盘链接,使用开源的 <a class="link" href="https://github.com/alist-org/alist" target="_blank" rel="noopener" +>AList</a>(一个支持网盘存储的文件列表程序,可以通过多种协议将网盘映射为本地访问的存储路径) 进行构建。里面整理了大量的影视资源,有不少是高质量、高码率的蓝光原盘文件。</p> +<p>这就激发了我的好奇心。</p> +<p>由于自己一直按耐住折腾 NAS 的念头,这些年一直没有收集电影。</p> +<p>但现在既然有在线的资源,不妨尝试一下。</p> +<p>于是我找到了这篇<a class="link" href="https://wp.gxnas.com/12278.html" target="_blank" rel="noopener" +>《利用KODI和云盘打造4K高清私人云影院》</a>(仅作研究,观影和收藏还需支持正版)。</p> +<p>按照文章的指导,成功给电视安装了 KODI(一个媒体中心 App),并进行了配置,可以非常方便地浏览、观看互联网云盘上的高清电影。</p> +<p>比起云盘官方所出品的各种 App 在体验上更加灵活、完美。</p> +<h3 id="噪声在计算机图形学里的作用">“噪声”在计算机图形学里的作用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-40-28.png" +width="671" +height="303" +loading="lazy" +class="gallery-image" +data-flex-grow="221" +data-flex-basis="531px" +> +想要计算机产生的图形更加的接近自然,生成各式各样的噪声是必不可少的算法。</p> +<p>之前在读<a class="link" href="https://natureofcode.com/" target="_blank" rel="noopener" +>《The Nature of Code》</a>(中文译作:代码本色)一书的时候,作者花了大量篇幅讲解关于噪声、随机等对于模拟自然界中各种现象的重要作用。</p> +<p>或许在噪声里就隐藏着大自然最深处的秘密。</p> +<p>这篇<a class="link" href="https://zhuanlan.zhihu.com/p/68507311" target="_blank" rel="noopener" +>WebGL进阶——走进图形噪声</a>可以让你领略一些图形噪声的神奇。</p> +<p>很多场景都给出了 WebGL 实现的源码,可以边学边练。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://threegn.app/" target="_blank" rel="noopener" +>ThreeGN</a>,一个基于网页的三维建模程序,特点是具有类似 Blender 的几何节点编辑功能。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-51-53.png" +width="846" +height="453" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></p> +</li> +<li> +<p><a class="link" href="https://tabler-icons.io/" target="_blank" rel="noopener" +>tabler</a>,一个开源的图标库,可用于 Web 或 移动端应用开发,全部免费使用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-55-30.png" +width="796" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="253" +data-flex-basis="608px" +></p> +</li> +<li> +<p><a class="link" href="https://microsoftedge.microsoft.com/addons/detail/%E6%B2%89%E6%B5%B8%E5%BC%8F%E7%BF%BB%E8%AF%91/amkbmndfnliijdhojkpoglbnaaahippg" target="_blank" rel="noopener" +>immersive-translate</a>,一个在线翻译浏览器插件,支持 Edge、Firefox、Chrome 等浏览器,优点是可以在网页上追加中文显示,原文和译文同时展示,对于想提升外语水平的人士,是个不错的对照工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-59-08.png" +width="621" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 019 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/Tue, 07 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/<h1 id="机器文摘-第-019-期">机器文摘 第 019 期</h1> +<h2 id="长文">长文</h2> +<h3 id="现阶段-ai-能对游戏开发提供多大帮助">现阶段 AI 能对游戏开发提供多大帮助</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-19-34.png" +width="686" +height="358" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +> +AI 在最近有多爆发自然不用我再赘述,抛开那些狂热的能够引起焦虑的言论(比如 AI 即将替代大量工作岗位),也有不少人选择跟 AI 和平相处。</p> +<p>这篇<a class="link" href="https://www.traffickinggame.com/ai-assisted-graphics/" target="_blank" rel="noopener" +>《AI 辅助图形》</a>的作者是一个有着游戏制作二十年经验的从业者,近期想尝试尽可能地利用各种 AI 加持的辅助工具,试图通过他们提升制作效率。</p> +<p>作者从游戏的概念原型阶段,一直到三维模型资产的制作和游戏场景的搭建,均选用了具有 AI 能力的效率工具进行支持。</p> +<p>最终结论是,虽然在过程中会有这样那样的不顺手,但这些工具确实能够帮助他节约大量工作时长。</p> +<p>所以作者的看法是,他很愿意将 AI 工具看作他的同事。</p> +<p>照这么说的话,留给人类的工作真的是不多了。</p> +<h3 id="chatgpt-学习笔记">ChatGPT 学习笔记</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-32-44.png" +width="600" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="427px" +> +ChatGPT 在春节后又起了一波热度。</p> +<p>网上到处都是关于它的段子,有人用它写论文,有人拿来给孩子辅导作业,有人写情书,有人当个动嘴的甲方让它写程序。</p> +<p>喜得微软恨不得现在就把它接到搜索引擎里,逼得谷歌提前释放出自己的类似模型。</p> +<p>国内的百度也表示将在3月份发出自己的大规模语言模型。</p> +<p>要我说就不要这么着急,不妨拨开迷雾,看看 ChatGPT 是个什么东东。</p> +<p>在网上发现这篇<a class="link" href="https://blog.csdn.net/v_JULY_v/article/details/128579457" target="_blank" rel="noopener" +>《ChatGPT 通俗笔记》</a>,讲述了这个模型的发展历程,以及一些基本的概念原理。</p> +<p>此类中文资料不多,给这篇文章作者点赞。</p> +<h3 id="视觉设计的一些规则">视觉设计的一些规则</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-49-28.png" +width="697" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +> +现在专业的界限越来越模糊,每个人都应该掌握一些基本的设计理念,以便在日常工作中输出的成果具备基本的美感。</p> +<p>这篇<a class="link" href="https://anthonyhobday.com/sideprojects/saferules/" target="_blank" rel="noopener" +>《视觉设计安全法则》</a>,浅显易读、明确具体,对于视觉设计活动很有指导意义。</p> +<p>看完之后无论是自己动手做 PPT 还是软件的 demo 原型,都可以用到。</p> +<p>我觉得甚至对于摄影构图、房屋装修都能有所借鉴,因为美是相通的。</p> +<h3 id="python-做后端开发的技术选型">Python 做后端开发的技术选型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-57-37.png" +width="673" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="514px" +> +有时候想做一些 Web 应用的原型,Python 是我的首选语言,写起来顺手又省事,能节约不少时间。</p> +<p>但是由于用的不够深入,在选择开发框架的时候,稍微有些困惑。</p> +<p>比如同样都能提供快速的开发能力,Fastapi 和 Flask到底选哪个?</p> +<p>如果你也有跟我一样的疑惑,可以看看这篇<a class="link" href="https://www.turing.com/kb/fastapi-vs-flask-a-detailed-comparison" target="_blank" rel="noopener" +>《Fastapi 和 Flask 详细对比》</a>。</p> +<p>文章深度分析了这两个框架的异同以及所适用的工作场景。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/red-data-tools/YouPlot" target="_blank" rel="noopener" +>YouPlot</a>,控制台绘图工具,可以在控制台窗口用字符的方式进行绘图,支持柱状图、散点图等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-10-37.png" +width="587" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="396px" +></p> +</li> +<li> +<p><a class="link" href="https://play-cs.com/zh/servers" target="_blank" rel="noopener" +>网页在线联机 CS1.6</a>,只需浏览器即可联机玩反恐精英 1.6,这个网站通过 WASM 技术将 CS 1.6 移植到了网页中运行,现代浏览器均可支持,第一次加载时间略长,但体验还算流畅,在线人员数量也挺多,随时可以匹配到。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-20-36.png" +width="811" +height="397" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="490px" +></p> +</li> +<li> +<p><a class="link" href="https://fffuel.co/sssvg" target="_blank" rel="noopener" +>交互式 SVG 参考</a>,一个可以在线了解 SVG 图形标准细节的网站,提供交互式界面进行实时演示。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-25-38.png" +width="904" +height="428" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="506px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/LunarFang416/url-animations" target="_blank" rel="noopener" +>浏览器地址栏里的动画</a>,一个有意思的 Js 库,通过动态修改浏览器地址栏的 URL 地址来实现动画,效果还比较萌。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-26-39.png" +width="757" +height="208" +loading="lazy" +class="gallery-image" +data-flex-grow="363" +data-flex-basis="873px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 018 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/Tue, 31 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/<h1 id="机器文摘-第-018-期">机器文摘 第 018 期</h1> +<h2 id="长文">长文</h2> +<h3 id="游戏高清重制科林麦克雷拉力赛3">游戏高清重制《科林麦克雷拉力赛3》</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-15-47.png" +width="857" +height="434" +loading="lazy" +class="gallery-image" +data-flex-grow="197" +data-flex-basis="473px" +> +游戏高清重制一直是我比较感兴趣的话题,可能因为比较喜欢怀旧吧。</p> +<p>我曾经收藏过采用覆盖显示驱动的方式进行高清分辨率支持的《极品飞车 5》、《Quake 3》等游戏。</p> +<p>也见过一些更古老的游戏在更新资源包之后重新焕发青春。</p> +<p>不过一直没有接触过真正的重制过程。</p> +<p>这篇<a class="link" href="https://cookieplmonster.github.io/2023/01/15/remastering-colin-mcrae-rally-3-silentpatch/" target="_blank" rel="noopener" +>《重制科林麦克雷拉力赛》</a>详细记录了一个优秀的赛车游戏进行高清重制的过程。</p> +<p>可以带你了解老旧游戏如何进行“宽屏”、“超宽屏”支持,如何重制高清界面UI元素等,过程充满了对不可能的挑战。</p> +<h3 id="把网页渲染到控制台">把网页渲染到控制台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-24-01.png" +width="1067" +height="464" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +通过控制台窗口进行上网,你可能觉得并不新鲜。</p> +<p>毕竟已经有很多类似 w3m 这种在控制台下基于字符的浏览器程序。</p> +<p>但是他们的缺点都是不能显示图形,而且几乎失去了对页面的样式渲染。</p> +<p>今天这篇<a class="link" href="https://fathy.fr/carbonyl" target="_blank" rel="noopener" +>《把网页渲染到控制台》</a>则另辟蹊径,虽然同样是在控制台的字符界面,但是渲染手段却大不相同。</p> +<p>它将控制台字符当作单个像素来处理,采用现代浏览器内核进行页面解析和预渲染计算。</p> +<p>然后在像素渲染阶段,采用了控制台字符来进行替换。</p> +<p>虽然最终效果无法跟图形界面下的浏览器相比。</p> +<p>但是它毕竟提供了一种在终端控制台进行图形化网页显示的可能。</p> +<h3 id="chromium-渲染流水线字节码到像素的一生">Chromium 渲染流水线——字节码到像素的一生</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-32-37.png" +width="481" +height="580" +loading="lazy" +class="gallery-image" +data-flex-grow="82" +data-flex-basis="199px" +> +看了前面网页渲染到控制台的文章,如果对浏览器的原理架构比较感兴趣的话。</p> +<p>可以看看这篇<a class="link" href="https://zhuanlan.zhihu.com/p/574069391" target="_blank" rel="noopener" +>讲解 Chromium 浏览器渲染架构</a>的文章。</p> +<p>现代浏览器已经复杂到不可能通过个人从零开始实现。</p> +<p>了解一下他们的架构,即便不从事相关开发,也可能对自己的软件架构产生有益影响。</p> +<h3 id="99-行代码实现光线追踪">99 行代码实现光线追踪</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-40-20.png" +width="702" +height="235" +loading="lazy" +class="gallery-image" +data-flex-grow="298" +data-flex-basis="716px" +> +光线追踪在图形渲染中十分关键的概念。</p> +<p>同时也是现代电影工业实现逼真光照渲染所必须的技术手段。</p> +<p>然而它的原理却并不复杂,甚至只需少量代码就可以自己实现一个建议的渲染器。</p> +<p>这篇<a class="link" href="http://kevinbeason.com/smallpt/" target="_blank" rel="noopener" +>《99 行代码实现光线追踪》</a>就只是用了少量 C++ 代码实现了一个简单的带有全局光照、阴影、反射的场景渲染。</p> +<p>虽然看起来简单,效果还是很令人惊艳的。</p> +<p>适合我这种喜欢研究原理,但又不太深入的“技术爱好者”。</p> +<h3 id="光线追踪深入">光线追踪深入</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-47-14.png" +width="731" +height="333" +loading="lazy" +class="gallery-image" +data-flex-grow="219" +data-flex-basis="526px" +> +既然前面提到了光线追踪,不妨再引申一下。</p> +<p>很多光线追踪的入门教程都会教你渲染一些简单的模型,比如球体,圆柱体等等。</p> +<p>如果想基于光线追踪技术渲染复杂一些的三维模型,应该怎么做?</p> +<p>这里有一篇<a class="link" href="https://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/" target="_blank" rel="noopener" +>《光线行进和符号距离函数》</a>,里面介绍了基于光线行进算法(光线追踪的一种实现方式)和符号距离函数来构建三维场景中复杂模型的思路。</p> +<p>内容比较详细,并带有示例代码。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://www.chronophoto.app/game.html" target="_blank" rel="noopener" +>chronophoto</a>,一个猜照片年代的游戏,根据网站随机展示的老照片,来判断这张照片是哪一年拍摄的,答案区间 1900 到 2020 ,我试了试还挺有意思,可以根据照片中出现的物品和人物的衣着进行分析。<br> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-56-50.png" +width="944" +height="432" +loading="lazy" +class="gallery-image" +data-flex-grow="218" +data-flex-basis="524px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/GimelStudio/GimelStudio" target="_blank" rel="noopener" +>Gimel Studio</a>,一个基于节点系统的照片后期处理工具,开源,采用 Python 编写。<br> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-00-55.png" +width="1009" +height="537" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/vitoplantamura/BugChecker" target="_blank" rel="noopener" +>BugChecker</a>,一个支持 Windows 11 的类 SoftICE 调试器,开源。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-04-14.png" +width="649" +height="376" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="414px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/google/swiftshader" target="_blank" rel="noopener" +>swiftshader</a>,一个基于 CPU 实现 OpenGL 渲染的图形库。主要应用在谷歌开源的 chromium 项目里,用纯软件算法实现了OpenGL、Vulkan图形接口。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-08-42.png" +width="308" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 017 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/Mon, 16 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/<h1 id="机器文摘-第-017-期">机器文摘 第 017 期</h1> +<p><em>预计春节期间暂停更新,节后恢复。</em></p> +<h2 id="长文">长文</h2> +<h3 id="怎样在-1-位色深的-lcd-屏幕上显示灰度httpswwwzephraymepostgrayscale_lcd"><a class="link" href="https://www.zephray.me/post/grayscale_lcd/" target="_blank" rel="noopener" +>怎样在 1 位色深的 LCD 屏幕上显示灰度</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-33-34.png" +width="1920" +height="1080" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +只有 1 位色深的 LCD 屏幕按理说是不能显示灰度的,因为他的像素点要么纯黑、要么纯白,显示的图案效果肯定非常差。</p> +<p>如果说非要显示灰度的话,我第一个想法是通过<a class="link" href="https://zh.wikipedia.org/wiki/%E6%8A%96%E5%8B%95_%28%E6%95%B8%E4%BD%8D%E8%A8%8A%E8%99%9F%E8%99%95%E7%90%86%29" target="_blank" rel="noopener" +>抖动算法</a>进行模拟(即通过像素点的稀疏程度来制造错觉,如下图)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-40-49.png" +width="180" +height="215" +loading="lazy" +class="gallery-image" +data-flex-grow="83" +data-flex-basis="200px" +></p> +<p>然而这篇文章的作者采取了更为巧妙地方法,使用 PWM (脉冲宽度调制)技术,利用每个像素点的点亮时间不同来制造灰度错觉。</p> +<p>之前只是见过使用 PWM 调整 LED 灯泡的亮度,像这种用法我倒是第一次见。</p> +<h3 id="作为一名数据工程师和作家我为什么要用-neovimhttpswwwsspaeticomblogwhy-using-neovim-data-engineer-and-writer-2023"><a class="link" href="https://www.sspaeti.com/blog/why-using-neovim-data-engineer-and-writer-2023/" target="_blank" rel="noopener" +>作为一名数据工程师和作家,我为什么要用 (Neo)vim</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-44-27.png" +width="500" +height="264" +loading="lazy" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="454px" +></p> +<p>很多人都被 Vim 复杂的功能和陡峭的学习曲线吓到过。</p> +<p>也有很多人本着对效率的极致追求,而选择了征服 Vim,从而走上高效(折腾)的路线。</p> +<p>本文作者作为一名数据工程师,讲述了他学习 Vim 的心路历程,也许对于现在还在观望的人有所启发。</p> +<p>我个人使用 Vim 已十多年时间,虽然从未触及特别深入的技能(如宏定义、寄存器等),但是 Vim 这种神器的特点就是,只要你忍者难受越过操作的及格线,剩下的技能你稍微多掌握一点,就能马上给你带来非常丰厚的回报。</p> +<h3 id="焦散是什么如何正确地渲染焦散httpswwwchaoscomcnblogwhat-are-caustics-and-how-to-render-them-the-right-way"><a class="link" href="https://www.chaos.com/cn/blog/what-are-caustics-and-how-to-render-them-the-right-way" target="_blank" rel="noopener" +>焦散是什么?如何正确地渲染焦散?</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-55-28.png" +width="850" +height="469" +loading="lazy" +class="gallery-image" +data-flex-grow="181" +data-flex-basis="434px" +> +焦散(Caustics)在现实生活中随处可见,但在渲染图中却很稀有。这篇文章解答了为什么渲染焦散很难,以及有哪些方法可以迂回实现。</p> +<p>找到这篇文章是因为我在 Github 上发现了<a class="link" href="https://github.com/pmndrs/drei#caustics" target="_blank" rel="noopener" +>一个使用 webgl 实现焦散渲染的项目</a>,效果非常不错,于是想研究一下背后的原理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-02-22.png" +width="652" +height="339" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="461px" +></p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://refactoringguru.cn/design-patterns" target="_blank" rel="noopener" +>常用设计模式有哪些</a>,一本在线电子书,图文并茂,以比较直观的方式介绍了软件开发常用的设计模式,支持英文、日文、中文等多国语言。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-04-26.png" +width="673" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +></p> +</li> +<li> +<p><a class="link" href="https://abseil.io/resources/swe-book/html/toc.html" target="_blank" rel="noopener" +>谷歌的软件工程</a>,好几年前的一本书,讲述在谷歌做软件开发的体验和最佳实践,现在出了可免费阅读的电子版。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-04-41.png" +width="504" +height="662" +loading="lazy" +class="gallery-image" +data-flex-grow="76" +data-flex-basis="182px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/ToolJet/ToolJet" target="_blank" rel="noopener" +>开源低代码开发框架 ToolJet</a>,免费开源的低代码开发框架,带有可视化编辑器,从数据持久化到前端界面全部无需编写代码。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-08-12.png" +width="795" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="460px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/Eandrju/cellular-automaton.nvim" target="_blank" rel="noopener" +>一个无聊的 Neovim 插件</a>,一个没啥用的 Neovim 插件,唯一能做的事情是当你感到无聊时,可以将你的文本编辑区里的文本执行一个“元胞自动机”动画,看起来还算解压。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-11-33.png" +width="547" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="89" +data-flex-basis="213px" +></p> +</li> +<li> +<p><a class="link" href="https://www.futurepedia.io/" target="_blank" rel="noopener" +>最大的 AI 工具箱</a>,喜欢研究 AI 的不要错过这个网站,收集了各种 AI 模型的开源项目和相关网址,涵盖了图像识别、自然语言处理等常见的、时兴的 AI 技术。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-15-15.png" +width="1151" +height="729" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="378px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 016 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/Tue, 10 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/<h1 id="机器文摘-第-016-期">机器文摘 第 016 期</h1> +<h2 id="长文">长文</h2> +<h3 id="黑客与汽车httpssamcurrynetweb-hackers-vs-the-auto-industry"><a class="link" href="https://samcurry.net/web-hackers-vs-the-auto-industry/" target="_blank" rel="noopener" +>黑客与汽车</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-16-50.png" +width="680" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="394px" +> +现在的汽车很多都具有联网的能力,可以通过互联网进行便利的远程操作。</p> +<p>比如获取汽车位置、健康状态、远程启动、远程开门等等。</p> +<p>作为消费者来说,在使用这些便利功能的时候,内心是十分信任厂商的。</p> +<p>觉得安全问题肯定会被厂商非常重视,作为头号问题来抓。</p> +<p>然而这篇<a class="link" href="https://samcurry.net/web-hackers-vs-the-auto-industry/" target="_blank" rel="noopener" +>《黑客与汽车》</a>却改变了我的看法,原来这些车联网的安全防护如此的脆弱。</p> +<p>文章作者为业内人士,写的还比较实在。如下列举部分这些黑客可以对车进行的未授权操作:</p> +<ol> +<li>远程发动机启停、车门解锁与锁定、大灯闪烁、喇叭鸣笛;</li> +<li>锁定用户,迁移管理权;</li> +<li>根据车架号下载到用户的销售档案;</li> +<li>远程刷新更新车辆电脑固件;</li> +<li>跟踪车辆物理GPS位置;</li> +</ol> +<p>看完我感觉是不是得把我的相关车联网服务给停一停了。</p> +<h3 id="汇编代码阅读指南httpswwwtimdbgcompostsfakers-guide-to-assembly"><a class="link" href="https://www.timdbg.com/posts/fakers-guide-to-assembly/" target="_blank" rel="noopener" +>汇编代码阅读指南</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-30-23.png" +width="1061" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +> +写汇编代码很麻烦,阅读起来也很费劲吗?</p> +<p>这儿有<a class="link" href="https://www.timdbg.com/posts/fakers-guide-to-assembly/" target="_blank" rel="noopener" +>一份简要的汇编阅读指南</a>,作者介绍了一些汇编代码的阅读技巧。</p> +<p>因为根据统计显示,最常用的汇编指令也就那么十来个,所以并没有想象中的那么晦涩和高深莫测。</p> +<h3 id="使用-svg-绘制逼真的绳索httpsmuffinmanioblogdraw-svg-rope-using-javascript"><a class="link" href="https://muffinman.io/blog/draw-svg-rope-using-javascript/" target="_blank" rel="noopener" +>使用 SVG 绘制逼真的绳索</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-38-11.png" +width="786" +height="342" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +SVG 是在网页中进行矢量绘图的技术,比起 Canvas 画板的像素图像,SVG 具有放大不失真的特点,在网页中可以通过 Javascript 操作生成 SVG 图形对象,实现各种复杂的图案。</p> +<p>这篇文章的作者从几何的角度考虑了如何使用矢量图形来绘制一个现实中的麻绳图案,要不仅体现出绳索的扭曲,还要正确表现绳索分支之间的叠压,作者提出了一个巧妙的使用 SVG path 进行实现的方法。还给出了代码。</p> +<p>你要问作者为什么这么做,有什么用没有?我想作者可能会回答:Because I can !</p> +<h3 id="ssh-进阶用法介绍httpsplantegggithubio20190602e58fb2e4b88ae69c80e585a8_ssh_e69a97e9bb91e68a80e5b7a7e8afa6e8a7a3--e694b6e8978fe4bf9de5b9b3e5ae89"><a class="link" href="https://plantegg.github.io/2019/06/02/%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89/" target="_blank" rel="noopener" +>SSH 进阶用法介绍</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-55-02.png" +width="800" +height="480" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +></p> +<p>经常在 Linux 系统下进行开发或者运维的专业人士,可能每天使用最多的工具就是 SSH 了,每天都要通过它登录服务端系统,进行一系列的操作。</p> +<p>这里<a class="link" href="https://plantegg.github.io/2019/06/02/%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89/" target="_blank" rel="noopener" +>有一篇文章</a>比较全面地介绍了 SSH 的进阶使用技巧,可以在某种程度上极大提升效率以及操作体验。</p> +<p>列举部分如下:</p> +<ol> +<li>如何免密码登录;</li> +<li>如何映射服务端的服务端口到本地(以方便调试);</li> +<li>如何将服务端的图形界面(如xcalc)代理到本地电脑显示和交互(不是远程桌面哦);</li> +<li>一些网络端口映射之类的高级操作;</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://gist.github.com/sbabybird/c340dee0fbec2e1dfe4a1c49d311cf4b" target="_blank" rel="noopener" +>个人年终总结模板</a>,我做了一个基于 Markdown 语法的年终总结模板,方便梳理在编写个人总结时的思路,放在 github 上的 gist 里了,可以随意使用。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-57-40.png" +width="416" +height="486" +loading="lazy" +class="gallery-image" +data-flex-grow="85" +data-flex-basis="205px" +></p> +</li> +<li> +<p><a class="link" href="https://www.webdesignmuseum.org/" target="_blank" rel="noopener" +>web 网页设计博物馆</a>,一个保存古老网页设计的网站。记录了 1999 年到 2020 年各大公司的网页设计变迁。包括谷歌、亚马逊、苹果、任天堂、麦当劳等等。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-01-04.png" +width="918" +height="568" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="387px" +></p> +</li> +<li> +<p><a class="link" href="https://allinone.tools/" target="_blank" rel="noopener" +>一站式网页工具大全</a>,一堆的在线工具汇总,包括图片处理、PDF格式转换、文字编码转换、密码生成、字符串加密解密等等,常用工具一网打尽。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-05-09.png" +width="1320" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="231" +data-flex-basis="555px" +></p> +</li> +<li> +<p><a class="link" href="https://gamepad-tester.com/" target="_blank" rel="noopener" +>在线手柄测试工具</a>,打开网页即可测试游戏手柄的工作状态,按键是否灵敏,遥感是否有死区等等,非常方便。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-11-28.png" +width="930" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 015 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/Tue, 03 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/<h1 id="机器文摘-第-015-期">机器文摘 第 015 期</h1> +<h2 id="长文">长文</h2> +<h3 id="编程就是玩儿httpsaustinhenleycomblogprogrammingasplayhtml"><a class="link" href="https://austinhenley.com/blog/programmingasplay.html" target="_blank" rel="noopener" +>编程就是玩儿</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-43-13.png" +width="804" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="226" +data-flex-basis="543px" +></p> +<p>对于程序员或者技术从业者来说,以一种什么样的心态工作将十分影响成果的产出。</p> +<p><a class="link" href="https://austinhenley.com/blog/programmingasplay.html" target="_blank" rel="noopener" +>这篇文章</a>的作者给大家分享了他自己的感受&mdash;-“不把编程视为严肃的工作、目标只是玩得开心、为了好玩而编程”。</p> +<p>他同时也是 <a class="link" href="https://news.ycombinator.com/item?id=27256867" target="_blank" rel="noopener" +>《为什么我喜欢做无用的东西》</a>帖子的作者。</p> +<p>除了文章本身之外,<a class="link" href="https://news.ycombinator.com/item?id=34086416" target="_blank" rel="noopener" +>在 HN 配套的讨论帖子在这里</a>。</p> +<p>这种类似于“寓教于乐”、“做自己开心的事儿”等等内容,一直是一个值得探讨的话题。</p> +<p>我个人也倾向于以兴趣和爱好来驱动自己,只是如果这个兴趣和爱好顺便能够挣钱,那就更好了。</p> +<h3 id="webassembly没有容器的-dockerhttpswasmlabsdevarticlesdocker-without-containers"><a class="link" href="https://wasmlabs.dev/articles/docker-without-containers/" target="_blank" rel="noopener" +>WebAssembly:没有容器的 Docker</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-45-15.png" +width="3483" +height="1436" +loading="lazy" +class="gallery-image" +data-flex-grow="242" +data-flex-basis="582px" +></p> +<p>最近 <a class="link" href="https://www.docker.com" target="_blank" rel="noopener" +>Docker</a> 宣布与 <a class="link" href="https://github.com/WasmEdge/Wasmedge" target="_blank" rel="noopener" +>WasmEdge</a> 合作支持 WebAssembly 。</p> +<p>WebAssembly 和 Docker 我们都听说过,在前面的文摘中我还尝试过自己使用 Rust 编写运行在网页里的 WebAssembly 应用程序。</p> +<p>Docker 也是我工作中每天都要用到的容器技术。</p> +<p>那他们两个有什么关系?放在一起能碰撞出什么火花?</p> +<p><a class="link" href="https://wasmlabs.dev/articles/docker-without-containers/" target="_blank" rel="noopener" +>这篇文章</a>将讲解这两种技术的结合在云原生架构下的使用。</p> +<p>看来 WebAssembly 技术不仅可以在浏览器环境中发挥作用,还能在云计算、边缘计算等领域发光发热,前途不可限量嘛。</p> +<h3 id="3d-摄影测量建模技术httpswwwjeffgeerlingcomblog2021modeling-my-grandpa-3d-photogrammetry"><a class="link" href="https://www.jeffgeerling.com/blog/2021/modeling-my-grandpa-3d-photogrammetry" target="_blank" rel="noopener" +>3D 摄影测量建模技术</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-58-29.png" +width="712" +height="340" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +></p> +<p>3D 摄影测量建模,是一种通过对物体多角度拍摄照片,然后使用计算机通过软件算法合成为 3D 模型的技术。</p> +<p>从最开始在专业领域(如:建筑工程、考古)使用,到现在已经普及到普通人只需安装手机 App 也能轻松实现了。</p> +<p>这篇<a class="link" href="https://www.jeffgeerling.com/blog/2021/modeling-my-grandpa-3d-photogrammetry" target="_blank" rel="noopener" +>用3D摄影测量法对我的爷爷建模</a>记述了作者如何使用 3D 摄影测量建模技术给自己爷爷的雕像进行“数字化”的过程。</p> +<p>里面详细记录了整个过程所使用的开源软件和相关的配置细节。</p> +<p>对于一些想要进行一次实操演练的朋友来说可能有用。</p> +<h3 id="在-2d-游戏中如何模拟-3d-的光影效果httpswwwgamedevelopercomprogramminggraveyard-keeper-how-the-graphics-effects-are-made"><a class="link" href="https://www.gamedeveloper.com/programming/graveyard-keeper-how-the-graphics-effects-are-made" target="_blank" rel="noopener" +>在 2D 游戏中如何模拟 3D 的光影效果</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-14-17.png" +width="454" +height="265" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>《守墓人》是一款经典的 2D 角色扮演游戏,比起它的精彩剧情和有趣的玩法,出色的画面效果也是该游戏取得成功的重要原因。</p> +<p>这篇<a class="link" href="https://www.gamedeveloper.com/programming/graveyard-keeper-how-the-graphics-effects-are-made" target="_blank" rel="noopener" +>《守墓人的图形效果是如何制作的》</a>文章,由该游戏的核心开发者于 2018 年发表,讲述了很多关于实现在 2D 画面带来更加有立体光影效果的特殊技巧。</p> +<p>文章虽然老了一点,但是技术没有过时。</p> +<p>读进去可以深深体会到:一个优秀作品的创造,离不开对各种不可能的挑战和极限的突破。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://bluemaxima.org/flashpoint/" target="_blank" rel="noopener" +>Flash 游戏大全</a>,上一期里我摘录了一个关于复刻 Flash 游戏的故事。后来也勾起了我对于 Flash 小游戏的怀念。便深入探索了一下现在这个阶段该如何再去运行那些老游戏。Flashpoint 是一个 Web 游戏保存工程,号称已经累计保存了包括 Flash 在内的 35 个平台的超过十万个小游戏。这个工程在 2018 年 1 月启动,试图在 Flash 消亡之前将之前的经典内容进行备份。现在提供两种版本的下载包,一种全量下载的大概 1.3 TB,包含了全部游戏。一种增量下载的,700多MB,只带了部分游戏,但是支持随下随玩。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-33-07.png" +width="1001" +height="382" +loading="lazy" +class="gallery-image" +data-flex-grow="262" +data-flex-basis="628px" +></p> +</li> +<li> +<p><a class="link" href="https://sweetcocoa.github.io/pop2piano_samples/" target="_blank" rel="noopener" +>根据音频自动生成钢琴旋律</a>,一个开源的 AI 模型,可以根据歌曲的音频识别出里面的旋律主线,并且使用钢琴演奏出来,效果十分神奇。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-41-36.png" +width="741" +height="456" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></p> +</li> +<li> +<p><a class="link" href="https://virtualconsoles.com/online-emulators/c64/" target="_blank" rel="noopener" +>C64 Emulator</a>,一个在线的 commodore 64 电脑模拟器,可以直接将磁盘镜像拖拽到网页上进行加载,页面还提供了虚拟键盘。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-44-02.png" +width="643" +height="733" +loading="lazy" +class="gallery-image" +data-flex-grow="87" +data-flex-basis="210px" +></p> +</li> +<li> +<p><a class="link" href="https://shadiao.pro/" target="_blank" rel="noopener" +>沙雕 App</a>,收集了各种有趣网站、工具的导航站,之前就关注过,最近好像升级了,喜欢恶搞的同学可以到里面找到一些比较有恶趣味的小程序。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-47-42.png" +width="676" +height="371" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 014 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/Tue, 27 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/<h1 id="机器文摘-第-014-期">机器文摘 第 014 期</h1> +<h2 id="长文">长文</h2> +<h3 id="运行在单片机上的-qthttpsdecovardevblog20221224qt-on-mcu"><a class="link" href="https://decovar.dev/blog/2022/12/24/qt-on-mcu/" target="_blank" rel="noopener" +>运行在单片机上的 Qt</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-43-13.png" +width="684" +height="456" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></p> +<p>尝试过给单片机写图形界面没有?</p> +<p>这篇 <a class="link" href="https://decovar.dev/blog/2022/12/24/qt-on-mcu/" target="_blank" rel="noopener" +>《Qt on MCU》 </a>比较系统的介绍了“为什么选择 Qt(一套开源图形界面库) 给单片机做界面”、“Qt 的基本架构”、“程序移植性”等相关问题。</p> +<p>读完可以较为全面地了解在单片机这种机能较弱的硬件设备上制作图形界面的基本思路和需要关注的问题。</p> +<h3 id="openwrtlede-搭建-syncthing-p2p-私有文件同步服务httpschenhemepostopenwrt-syncthing"><a class="link" href="https://chenhe.me/post/openwrt-syncthing/" target="_blank" rel="noopener" +>OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-56-50.png" +width="1251" +height="730" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>现在大家都不止一个电子终端设备,个人数字信息、各种数据文件的同步需求基本上是一个刚需。</p> +<p>有很多厂商提供了收费方案,比较常见的有国内的各种网盘、手机厂商提供的各种 Cloud 服务等等。</p> +<p>如果想基于家庭网络自己动手搭建一个私有服务的话,可能略微麻烦一些,不过也有较为成熟的方案了。</p> +<p>条件具备的话不妨参考这篇<a class="link" href="https://chenhe.me/post/openwrt-syncthing/" target="_blank" rel="noopener" +>《OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务》</a>动手试一试。</p> +<h3 id="用-flash-高清重制一款游戏httpswwwjiqizhixincomarticles2022-12-22-2"><a class="link" href="https://www.jiqizhixin.com/articles/2022-12-22-2" target="_blank" rel="noopener" +>用 Flash 高清重制一款游戏</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-58-23.png" +width="600" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p>Flash 基本已经成为历史了。</p> +<p>即便现在可以通过一些渠道或者浏览器勉强开启 Flash 插件的话,也会提心掉胆地担心计算机的安全性。</p> +<p>毕竟那些恼人的弹窗广告有 80% 都是靠 Flash 技术实现的。</p> +<p>但是还有这么一群人,他们玩着 4399 上的小游戏长大,80 后喜欢的各种主机游戏在他们眼里根本不值一提,倒是网页上那种基于 Flash 制作的即开即玩的小游戏(比如我能想到的就有:黄金矿工、狂扁小朋友、打企鹅等等)才是他们的最爱。</p> +<p>Flash 技术被时代抛弃,那些 4399 们也就逐渐消失了。</p> +<p>不过总有人会拥抱情怀,这篇<a class="link" href="https://www.jiqizhixin.com/articles/2022-12-22-2" target="_blank" rel="noopener" +>《为拯救童年回忆,开发者决定采用古法编程》</a>便讲述了这样一个故事。</p> +<p>里面的哥们儿以极其硬核的方式实现了他的梦想,为了复刻一个 Flash 小游戏,他几乎重新写了一个 Flash 播放器。</p> +<h3 id="unix-终端系统tty是如何工作的httpswaynervcompostshow-tty-system-works"><a class="link" href="https://waynerv.com/posts/how-tty-system-works/" target="_blank" rel="noopener" +>Unix 终端系统(TTY)是如何工作的</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-09-23.png" +width="2560" +height="2272" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></p> +<p>没有使用过大型机而直接进入 PC 时代的计算机用户,可能觉得“终端”就是电脑上那个能够输入 CMD 命令的黑乎乎窗口吧。</p> +<p>即便是终日与命令行打交道的软件开发人员、系统运维人员,可能也很难一下子解释清楚什么是“终端”,它为什么叫这个名字。</p> +<p>这篇<a class="link" href="https://waynerv.com/posts/how-tty-system-works/" target="_blank" rel="noopener" +>《Unix 终端系统(TTY)是如何工作的》</a>从计算机硬件发展的历史出发,介绍了计算机系统跟用户交互的发展历程,并针对“终端”系统进行详细展开,讲解了实现原理和后来发展的现代形态。</p> +<p>喜欢硬核知识的朋友可点进去阅读一下。</p> +<h3 id="hn-讨论极大提升你效率的软件有哪些httpsnewsycombinatorcomitemid34069106"><a class="link" href="https://news.ycombinator.com/item?id=34069106" target="_blank" rel="noopener" +>HN 讨论:极大提升你效率的软件有哪些?</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-16-52.png" +width="776" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="462px" +></p> +<p>哪些软件最能节约你的时间、解放你的双手、使你离不开它?</p> +<p>这个话题几乎每过一段时间就会被拿出来讨论一番。</p> +<p>每个人都有自己的偏爱。</p> +<p>不过,看看大家的讨论,说不定也能发现一些新鲜的软件,也许能更新一下自己的工具库也说不定。</p> +<blockquote> +<p>比如上面这篇帖子里,楼主提到的 <a class="link" href="https://github.com/BurntSushi/xsv" target="_blank" rel="noopener" +>这个 csv 工具</a> ,可以在命令行让你高效对 csv 文件进行快速检索、合并查询、切片等等。 +不过帖子里可能有人把节奏带偏了,在下面大吹特吹各种 IDE 软件,就仁者见仁了。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://huili.github.io/" target="_blank" rel="noopener" +>SQlite源码分析</a>,一本讲解 SQlite 源码的在线电子书,主要对 SQLite 数据库的实现机制和使用方法做了简要分析。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-25-49.png" +width="804" +height="424" +loading="lazy" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="455px" +></p> +</li> +<li> +<p><a class="link" href="https://retrogame.com.ua/2022/03/moarstalgia-windows-98-3dfx-amp-dos-retro-gaming-pack/" target="_blank" rel="noopener" +>经典复古 win98 游戏合集</a>,一个游戏整合包,里面整合了若干在 Win98 系统下才能跑的老游戏,像初代的雷神之锤、半条命、极品飞车等等。提供了基于 DosBox 的虚拟系统,即开即用,性能还不错。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-33-08.png" +width="656" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="169" +data-flex-basis="406px" +></p> +</li> +<li> +<p><a class="link" href="http://www.doshaven.eu/programming-tools/" target="_blank" rel="noopener" +>DOS 系统下的编程工具合集</a>,想要重温在 DOS 环境下编程的感受,这里有一套比较全面的工具合集,包括 QBASIC、TurboC 等开发环境,以及一些用于游戏开发的图形库、引擎。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-59-31.png" +width="908" +height="527" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="413px" +></p> +</li> +<li> +<p><a class="link" href="https://humanbenchmark.com/dashboard" target="_blank" rel="noopener" +>给你自己跑个分</a>,现在一些硬件评测动不动就使用软件进行跑分,用以展示硬件之间的形成差异,这个网站提供了一组小游戏,可以考验你的短期记忆力、反应能力,并给你打分。也试试给自己跑个分吧。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-15-05-15.png" +width="900" +height="511" +loading="lazy" +class="gallery-image" +data-flex-grow="176" +data-flex-basis="422px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 012 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/Tue, 13 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/<h1 id="机器文摘-第-012-期">机器文摘 第 012 期</h1> +<h2 id="长文">长文</h2> +<h3 id="github-登录被第三方网站滥用了吗">Github 登录被第三方网站滥用了吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-30-19.png" +width="494" +height="491" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="241px" +> +为了方便账号注册,现在很多网站都提供了基于 Github 账号登录的方式。</p> +<p>我个人也更倾向于使用这种方式登录。</p> +<p>毕竟可以少填一些注册信息,减少思考密码的麻烦。</p> +<p>但是这样做有什么安全问题没有?</p> +<p>上周有一个<a class="link" href="https://news.ycombinator.com/item?id=33917962" target="_blank" rel="noopener" +>在 HackerNews 上的帖子</a>,有人遇到了在使用 Github 账号登录某些网站之后,导致他的账号莫名给别的仓库添 Star 的情况。</p> +<p>这引发了大家关于 Github 账号权限管理以及通过第三方鉴权进行账号登录和注册的讨论。</p> +<p>看完觉得在第三方鉴权授权时还是应该慎重使用才好。</p> +<h3 id="每个黑客都知道的命令行快捷键">每个黑客都知道的命令行快捷键</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-41-23.png" +width="926" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="145" +data-flex-basis="349px" +> +在图形化界面、触控操作交互界面已经十分普及的今天,普通用户可能现在很少能接触到命令行操作了。</p> +<p>但是对于软件开发者、IT运维工程师来说,命令行还是属于离不开的操作界面。</p> +<p>而且对于有些工作任务来说,使用命令行完成起来要更加高效。</p> +<p><a class="link" href="https://www.masteringemacs.org/article/keyboard-shortcuts-every-command-line-hacker-should-know-about-gnu-readline" target="_blank" rel="noopener" +>这篇文章</a>讲解了常见命令行交互时的一些快捷操作,比如常见的行内编辑、快速移动光标到命令开头、历史记录搜索等等。</p> +<p>掌握之后可以在各种命令行交互界面中进行使用(基本风格一致)。</p> +<h3 id="基于颜色循环的动画技术">基于颜色循环的动画技术</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-54-06.png" +width="509" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="132" +data-flex-basis="318px" +> +在计算机硬件资源匮乏的上世纪 90 年代,开发人员为了在有限条件下实现丰富的效果真是挖空心思。</p> +<p>比如,还记得 Windows 98 的启动画面吗?</p> +<p>蓝天白云,Windows 徽标,底部有一个蓝色的渐变色条,在缓慢的滚动。</p> +<p>实际上它只是一幅图片,并非多帧动画。</p> +<p>这就用到了一个叫做<a class="link" href="https://en.wikipedia.org/wiki/Color_cycling" target="_blank" rel="noopener" +>“颜色循环”</a>的技术。</p> +<blockquote> +<p>来自维基百科:颜色循环,也称为调色板移动,是计算机图形学中使用的一种技术,其中颜色被更改以产生动画的假象。这种技术主要用于早期的电脑游戏,因为存储一个图像并更改其调色板比将动画存储为几帧需要更少的内存和处理器能力。</p> +</blockquote> +<p><a class="link" href="http://www.effectgames.com/effect/article-Old_School_Color_Cycling_with_HTML5.html" target="_blank" rel="noopener" +>这里有个博客</a>使用 HTML Canvas 复刻了一批采用颜色循环创作的作品,效果非常惊艳。</p> +<p>另外网站还开源了用于展示这些作品的图形引擎,虽然现在已经不再维护了,但是用于学习和探索还是很有研究意义。</p> +<h3 id="软件逆向工程入门">软件逆向工程入门</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-06-08.png" +width="716" +height="442" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="388px" +> +软件的加密和破解在普通用户眼里十分神秘。</p> +<p>这篇<a class="link" href="https://to-be-deleted-in-2022.emily.st/2015/01/27/reverse-engineering/" target="_blank" rel="noopener" +>软件逆向工程入门</a>比较深入浅出地介绍了一些常用手法,跟着作者可以浅尝一下在内存中寻找注册号、修改汇编指令以使得软件保护失效等体验。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="http://nifty.stanford.edu/" target="_blank" rel="noopener" +>计算机课后作业</a>,斯坦福大学计算机专业评选的历年来优秀作业作品。如果不知道自己编程需要练习什么的话,可以打开参考参考,很有实用价值,比起在 Leecode 上刷算法的题目,这些作业都在解决实际问题。</p> +</li> +<li> +<p><a class="link" href="https://scholar.archive.org/" target="_blank" rel="noopener" +>互联网档案学术</a>,全文检索索引包含超过2500万的研究文章和其他保存在互联网档案馆里的学术文档。 该馆藏涵盖从18世纪期刊的数字化副本,到最新的Open Access会议记录和从万维网上抓取的预印本。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-19-26.png" +width="1113" +height="507" +loading="lazy" +class="gallery-image" +data-flex-grow="219" +data-flex-basis="526px" +></p> +</li> +<li> +<p><a class="link" href="https://playcanvas.com/" target="_blank" rel="noopener" +>PlayCanvas Web 优先的游戏引擎</a>,一个免费的游戏引擎,倡导以 Web 优先,在网页中提供从开发到发行的全部流程支持。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-23-40.png" +width="961" +height="655" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="352px" +></p> +</li> +<li> +<p><a class="link" href="https://asciinema.org/" target="_blank" rel="noopener" +>命令行会话记录器</a>,Asciinema 是一个免费开源软件,用于帮助用户录制在命令行中的操作行为,便于在互联网上分发自己的操作示范、教学演示。比起直接视频录屏的方式,这种以字符方式的记录更加节约资源,无论是记录、传播还是回放环节,都很轻量。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-29-43.png" +width="631" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></p> +</li> +<li> +<p><a class="link" href="https://matthias-research.github.io/pages/tenMinutePhysics/index.html" target="_blank" rel="noopener" +>十分钟物理</a>,这套教程集合了一组十分钟左右的视频短片,每次介绍一个基本的物理概念并通过 Web 前端技术编程实现模拟。除了视频之外,网站还提供了源代码、演示环境等配套资源。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-32-47.png" +width="1191" +height="666" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="429px" +></p> +</li> +<li> +<p><a class="link" href="http://skilldrick.github.io/easy6502/" target="_blank" rel="noopener" +>Easy6502</a>,一本学习 6502 汇编的电子书(没错,我就是特别喜欢这款 CPU)。网站带有交互界面,提供了一个简易模拟器,可以边学边练,教程最后会带你实现一个基于汇编的贪食蛇游戏。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-43-13.png" +width="608" +height="484" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="301px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 013 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/Mon, 12 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/<h1 id="机器文摘-第-013-期">机器文摘 第 013 期</h1> +<h2 id="长文">长文</h2> +<h3 id="从古董电脑中我们能学到什么httpsgithubcomreadmefeaturedvintage-computing"><a class="link" href="https://github.com/readme/featured/vintage-computing" target="_blank" rel="noopener" +>从古董电脑中我们能学到什么</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-36-43.png" +width="1182" +height="689" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>我也不知道为什么自己会对老旧电脑,尤其是上世纪80年代、90年代出品的电脑这么迷恋。</p> +<p>我觉得那个时代的电脑散发着一种难以名状的工业气质。</p> +<p>通过阅读<a class="link" href="https://github.com/readme/featured/vintage-computing" target="_blank" rel="noopener" +>这篇文章</a>,使我意识到一些深层次的原因。</p> +<p>这些老式电脑的魅力来自于当时技术的限制、简单粗暴和直接。</p> +<p>通过深入了解这些老古董、学习开发那个时代的软件,可以更容易地了解计算机科学。</p> +<p>毕竟,现在的计算机已经充分的复杂和“人性化”,软件把硬件包裹得越来越严实和抽象。以至于根本看不清它的内部构造和实现原理。</p> +<p>去研究那些古董电脑吧,操作那些裸漏单纯的硬件接口,贴近更加具体的科技。</p> +<h3 id="蛋httpwwwgalactanetcomoneofftheegg_zhhtml"><a class="link" href="http://www.galactanet.com/oneoff/theegg_zh.html" target="_blank" rel="noopener" +>蛋</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-49-07.png" +width="1024" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="200" +data-flex-basis="480px" +></p> +<p>这是一篇很富有哲理的小小说,严格来说跟机器没有关系。</p> +<p>但是写的实在是很好,忍不住收录进来。</p> +<p>毕竟,喜欢机器的人,很难抗拒这种对宇宙天马行空的探索。</p> +<h3 id="rlhf-模型详解httpshuggingfacecoblogrlhf"><a class="link" href="https://huggingface.co/blog/rlhf" target="_blank" rel="noopener" +>RLHF 模型详解</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-54-30.png" +width="1450" +height="1338" +loading="lazy" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="260px" +></p> +<p>近期 AI 圈最火的事情,莫过于 OpenAI 发布的聊天机器人 ChatGPT 了。</p> +<p>这个智能聊天机器人已经强大到可以让人担忧的地步了。</p> +<p>那么,它背后的实现原理是什么?</p> +<p><a class="link" href="https://huggingface.co/blog/rlhf" target="_blank" rel="noopener" +>这篇文章</a>讲解了 ChatGPT 所使用的 RLHF(人类反馈强化学习) 模型是如何实现的以及它的未来会怎样发展。</p> +<h3 id="基于扩散模型生成音乐httpswwwriffusioncomabout"><a class="link" href="https://www.riffusion.com/about" target="_blank" rel="noopener" +>基于扩散模型生成音乐</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-03-35.png" +width="540" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="342px" +></p> +<p>基于文本生成图像的扩散模型已经火了一段时间了。</p> +<p>我当时还在想,既然基于扩散模型可以生成图像的话,那能不能生成声音呢?</p> +<p>结果我只是动了动念头,人家这边已经把成果拿出来了。</p> +<p><a class="link" href="https://www.riffusion.com/about" target="_blank" rel="noopener" +>这篇文章</a>介绍了他们基于扩散模型生成音乐的项目。</p> +<p>我试听了一下,效果还不错,挺神奇的。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://ittavern.com/getting-started-with-tmux/" target="_blank" rel="noopener" +>tmux 入门</a>,一篇 tmux 的入门教程。tmux 是一个终端程序,可以同时模拟多个客户端控制台,如果觉得不好理解的话,可以认为它是一个控制台的多页签浏览器。因为在工作中经常需要 ssh 登录服务器进行编程开发,我现在已经离不开它了。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-12-18.png" +width="701" +height="419" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +></p> +</li> +<li> +<p><a class="link" href="https://oimo.io/works/" target="_blank" rel="noopener" +>一个有趣的个人网站</a>,作者是一个日本在读博士生,网站放了一些个人的编程作品,主要跟物理模拟、像素艺术有关。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-14-33.png" +width="915" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="203" +data-flex-basis="488px" +></p> +</li> +<li> +<p><a class="link" href="https://www.hello-algo.com/" target="_blank" rel="noopener" +>你好,算法</a>,一本开源电子书,可在线阅读,深入浅出讲解数据结构和算法,生动有趣,适合有一定编程基础但是算法这块有些薄弱的爱好者阅读。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-20-26.png" +width="3144" +height="2319" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +></p> +</li> +<li> +<p><a class="link" href="https://nbviewer.org/github/gpeyre/numerical-tours/blob/master/python/ml_6_nn.ipynb" target="_blank" rel="noopener" +>神经网络在线教程</a>,一套神经网络编程教程,提供在线的 python 代码阅读环境,适合作为入门资料学习。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-23-10.png" +width="388" +height="262" +loading="lazy" +class="gallery-image" +data-flex-grow="148" +data-flex-basis="355px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 011 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/Wed, 07 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/<h1 id="机器文摘-第-011-期">机器文摘 第 011 期</h1> +<h2 id="长文">长文</h2> +<h3 id="自己动手做一个天气墨水屏">自己动手做一个天气墨水屏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-13-22.png" +width="617" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +> +有个喜欢动手的哥们,发现了自己及家人的一项小需求,即从家出门的时候想快速知道天气情况。</p> +<p>虽然这种需求抬眼看一下手机也能实现,但是本着“懒惰使人进步”的核心思想(作者懒得掏出手机)他动手实现了一套基于电池供电的可以显示天气预报信息的电子墨水屏。</p> +<p>这篇<a class="link" href="https://kimmo.blog/posts/7-building-eink-weather-display-for-our-home/" target="_blank" rel="noopener" +>《做一个天气墨水屏》</a>记录了作者从诞生点子到产品出炉的全过程。</p> +<p>另外作者还开源了项目的源代码,<a class="link" href="https://github.com/kimmobrunfeldt/eink-weather-display" target="_blank" rel="noopener" +>可在这里获取</a>。</p> +<h3 id="m1-gpu-的故事">M1 GPU 的故事</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-21-23.png" +width="985" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +> +GPU 大家都知道,<a class="link" href="https://asahilinux.org/2022/11/tales-of-the-m1-gpu/" target="_blank" rel="noopener" +>这里有篇文章介绍了它的工作细节</a>。</p> +<p>作者来自一个给苹果 M1 芯片适配 Linux 驱动的团队(苹果官方不提供驱动,所以这意味着需要做一些逆向工程)。</p> +<p>本文记录了这些工作中比较有趣的部分,还顺便介绍了 GPU 的一些底层工作原理。</p> +<h3 id="在-commodore-64-上实现位图滚动条的显示">在 Commodore 64 上实现位图滚动条的显示</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-37-41.png" +width="386" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="114" +data-flex-basis="274px" +> +Demosense 是一项挖掘计算机硬件机能极限的活动。</p> +<p>通常创作者们会通过各种编程技巧来实现看似无法达到的效果。</p> +<p>由于 Commodore 64 这台古董电脑十分经典,现在仍有不少Demosense爱好者在为它开发程序。</p> +<p><a class="link" href="https://www.c64demo.com/side-border-bitmap-scroller/" target="_blank" rel="noopener" +>这篇文章</a>讲述了著名 C64 demo 程序 <a class="link" href="https://csdb.dk/release/?id=195841" target="_blank" rel="noopener" +>Memento Mori</a> 的实现过程,程序在 Commodore 64 上显示了一副巨大(对于C64来说)的图片。</p> +<p>这在圈内属于首创。</p> +<h3 id="动手做一个-4-位-cpu">动手做一个 4 位 CPU</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-43-28.png" +width="496" +height="370" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="321px" +> +计算机组成原理是不是还没学明白?没关系,我们可以自己亲手做一个简单的 CPU 。</p> +<p><a class="link" href="https://www.bigmessowires.com/nibbler/" target="_blank" rel="noopener" +>Nibbler</a> 是一款 4 位 CPU,使用标准 7400 系列逻辑芯片(单个计数器、寄存器、缓冲器和门)构建而成。是一个简单 CPU 的教育示例,易于理解和构建,但仍然能够运行游戏和其他有趣的程序。Nibbler 在 5 x 4 英寸(127 x 102 毫米)穿孔板上使用绕线制造。CPU总共包含17个芯片。</p> +<p>作者公开了设计图纸和相关资料,可在文章内部的链接中获取。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="http://www.craftinginterpreters.com/" target="_blank" rel="noopener" +>纯手撸一个解释器</a>,编译原理没学明白没关系,这本在线电子书手把手教你写一个自己的解释器。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-51-28.png" +width="593" +height="182" +loading="lazy" +class="gallery-image" +data-flex-grow="325" +data-flex-basis="781px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/k88hudson/git-flight-rules/blob/master/README_zh-CN.md" target="_blank" rel="noopener" +>Git 飞行规则 (Flight Rules)</a> ,一个十分全面的 Git 使用指南,把你能遇到的情况都想到了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-54-49.png" +width="532" +height="541" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="236px" +></p> +</li> +<li> +<p><a class="link" href="https://thevaluable.dev/vim-advanced/" target="_blank" rel="noopener" +>Vim 高级进阶</a>,如果你已经学会了怎么退出 Vim,恭喜你,已经击败了 80% 的选手。想要在 Vim 中进行更高效的编辑操作,这份高手指南十分适合作为参考。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-57-10.png" +width="776" +height="511" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="364px" +></p> +</li> +<li> +<p><a class="link" href="https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/" target="_blank" rel="noopener" +>Flexbox 布局交互指南</a>,这篇在线教程讲解了如何使用 Flexbox 进行页面布局,难能可贵的是直接在页面中提供了交互操作界面,可以一遍学一遍实践,非常方便。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-59-27.png" +width="743" +height="448" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="398px" +></p> +</li> +<li> +<p><a class="link" href="https://www.makesense.ai/" target="_blank" rel="noopener" +>在线 AI 标注工具</a>,想要训练自己的 AI 模型,比如目标检测、图像分类等等,可以使用这个在线工具进行数据标注,直接上传图片然后在线标注,完成后可导出 VOC、Coco 等格式的数据集。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-10-02-46.png" +width="628" +height="391" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 010 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/Tue, 29 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/<h1 id="机器文摘-第-010-期">机器文摘 第 010 期</h1> +<h2 id="长文">长文</h2> +<h3 id="极客摄影指南">极客摄影指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-11-12.png" +width="1235" +height="841" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="352px" +> +相机,也是机器的一种。</p> +<p>我用它记录生活,捕捉生活中转瞬即逝的美好瞬间。</p> +<p>有个问题一直困扰着我,怎样拍出不那么“到此一游”的照片?</p> +<p>怎样才能“掌控”相机这个机器?</p> +<p>这篇<a class="link" href="https://lcamtuf.coredump.cx/photo_basics/" target="_blank" rel="noopener" +>《极客摄影》(英文)</a>能够帮助你对摄影做一个真正深入的理解(而不是学习那些充斥社交平台的各种浮于表面的“技巧”)。</p> +<p>作者是一个热爱摄影的技术男,有二十多年摄影经验。</p> +<p>听他给你讲讲什么是“光”和“构图”。</p> +<p>一篇就够了。</p> +<h3 id="ms-dos-背后的设计">MS-DOS 背后的设计</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-24-37.png" +width="480" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="225px" +></p> +<p>包括我在内的不少 80 后接触电脑是从 MS-DOS 开始的。</p> +<p>对于它的黑窗口和命令行都有着很深的印象。</p> +<p>上大学时执行最多的命令是<code>format c: /s /q</code></p> +<p>当年还玩过不少在 DOS 平台的游戏,比如仙剑奇侠传、主题医院等等。</p> +<p>只是当时没工夫对系统本身做深入了解。</p> +<p>顶多是,自己在学习汇编语言时,对 DOS 又仔细端详了几眼。</p> +<p>这篇<a class="link" href="https://patersontech.com/Dos/Byte/InsideDos.htm" target="_blank" rel="noopener" +>《凑近看看 MS-DOS 》(英文)</a>,介绍了 DOS 系统的设计标准、内存分配、磁盘文件结构、FAT文件系统的技术细节等等。</p> +<p>想要窥探技术细节的可以点进去看看。</p> +<h3 id="构建最快的-lua-解释器">构建最快的 Lua 解释器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-45-43.png" +width="645" +height="386" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +> +给动态语言编写解释器可能不算太难(如果只是能跑的话)。</p> +<p>但是如果要编写一个高性能的、好用的动态语言解释器,比如像谷歌浏览器所用的 V8 引擎那样,就比较困难了。</p> +<p><a class="link" href="https://sillycross.github.io/2022/11/22/2022-11-22/" target="_blank" rel="noopener" +>《构建最快的 Lua 解释器》</a>这篇文章站在更高维度提供一种方法,即:编写一种可以自动生成编译器(解释器)代码的程序,以使得制作高性能解释器变得更加容易。</p> +<p>我看了一下,大概就是自动化生成之前需要手工处理的编译器优化代码。作为编译原理学的不怎么明白的我,对此不敢评论。</p> +<h3 id="为什么-linux-内核没有单元测试">为什么 Linux 内核没有单元测试?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-14-46.png" +width="637" +height="411" +loading="lazy" +class="gallery-image" +data-flex-grow="154" +data-flex-basis="371px" +> +我对单元测试的态度一般,既不强烈支持,也不反对。</p> +<p>听说有的开发团队由于对于单元测试十分狂热,已经到了不允许写注释,都用单元测试替代的地步。</p> +<p>前不久,在 HN 上有网友发起了一个引战的讨论:“<a class="link" href="https://news.ycombinator.com/item?id=33742130" target="_blank" rel="noopener" +>既然单元测试这么好,为什么 Linux 内核源码不用呢?</a>”</p> +<p>以下为部分观点:</p> +<blockquote> +<p>单元测试被严重高估了,TDD有一些好主意,但有一段时间它变成了一种宗教。</p> +</blockquote> +<blockquote> +<p>单元测试与TDD宗教不是一回事。它只是意味着将事物划分为小单元并尽可能详尽地测试其功能。</p> +</blockquote> +<blockquote> +<p>SQLite不是反例吗?他们有更多的单元测试代码,而不是实际运行的代码。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/jackfrued/Python-100-Days" target="_blank" rel="noopener" +>Python 100 天从入门到精通</a>,Python 好学吗?好学又不好学,上手容易,精通难。这里有套开源教程囊括了从入门到实战应用(语言基础、数据处理、Web开发、网络开发、爬虫、深度学习等)的所有课程。这个仓库目前已经在 Github 上获得了 12 万star。可以说是好评如潮,想深入学习 Python 的不容错过。赶紧到我收藏夹里吃灰。</p> +</li> +<li> +<p><a class="link" href="https://wokwi.com/" target="_blank" rel="noopener" +>在线单片机模拟器</a>,想要学习单片机开发,又没有硬件设备吗?这个网站最合适。不需要担心手残不会电烙铁,也不用担心买不到芯片。直接在线进行模拟接线,直接运行编写的代码,结果实时展现。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-31-31.png" +width="878" +height="661" +loading="lazy" +class="gallery-image" +data-flex-grow="132" +data-flex-basis="318px" +></p> +</li> +<li> +<p><a class="link" href="https://slowroads.io/" target="_blank" rel="noopener" +>slow roads</a>,一个在线赛车游戏。基于网页制作。亮点在于作者实现了无限地图。所有地形和道路均使用程序生成。游戏有自动驾驶模式,如果只想观赏路边风景的话,可以开启。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-36-44.png" +width="1736" +height="855" +loading="lazy" +class="gallery-image" +data-flex-grow="203" +data-flex-basis="487px" +></p> +</li> +<li> +<p><a class="link" href="https://tic80.com/" target="_blank" rel="noopener" +>TIC-80</a>,TIC-80 是一台用于制作、播放和分享小型游戏的幻想计算机。有内置的开发工具:代码、sprites、地图、声音编辑器和命令行,这足以创建一个迷你复古游戏。在退出时,你将得到一个盒式文件,它可以在网站上存储和播放。 +另外,游戏可以打包成一个播放器,可以在所有流行的平台上运行,并按你的意愿分发。为了制作一个复古风格的游戏,整个创作过程是在一些技术限制下进行的。240x136 像素的显示屏,16 种颜色的调色板,256 个 8x8 的彩色 sprites,4 channel sound 等等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-42-20.png" +width="490" +height="279" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="421px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 009 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/Mon, 21 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/<h1 id="机器文摘-第-009-期">机器文摘 第 009 期</h1> +<h2 id="长文">长文</h2> +<h3 id="游戏中的精灵">游戏中的“精灵”</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-14-24-20.png" +width="729" +height="409" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="427px" +> +<a class="link" href="https://zh.wikipedia.org/wiki/%E7%B2%BE%E7%81%B5%E5%9B%BE" target="_blank" rel="noopener" +>精灵(sprite)</a>这个词来自古法语单词“esprit”,意思是“精神”——源自拉丁语“spiritus”。在民间传说中,精灵是活泼、俏皮和神奇的小生物。然而对于游戏开发者来说,它又是另一个含义了。</p> +<p>这篇<a class="link" href="https://wireframe.raspberrypi.com/articles/the-surprising-history-of-sprites" target="_blank" rel="noopener" +>《精灵的惊人历史》(英文)</a>,介绍了不同的游戏厂商,在早期硬件机能有限的条件下,如何实现“角色在屏幕上移动”这个现在看似十分简单的事情的。</p> +<p>对于不了解“精灵”的含义的,稍作如下解释:</p> +<blockquote> +<p>2D 游戏在处理需要动起来的角色时,出于性能考虑,将一部分图形的绘制与背景画面的绘制分开,对于频繁需要刷新(动起来的)部分,单独处理,使他们感觉像是漂浮在背景画面的“幽灵”似的,故名“精灵”。</p> +</blockquote> +<h3 id="任天堂-nes-的一些技术细节">任天堂 NES 的一些技术细节</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-14-41-33.png" +width="507" +height="477" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="255px" +> +NES 是任天堂推出一款极其成功的家用游戏机(NES : Nintendo Entertainment ,System 是其在北美发售的名称,亚洲叫 FC :Family Computer),不少80、90后的朋友应该都玩过(或者是国内山寨厂商仿制的*霸王之类)。</p> +<p>NES 使用极其经典的 6502 CPU。这块 CPU 有多经典呢,苹果的 Apple1代2代 、史上销量第一的个人电脑 Commodore 64 、国内早年比较流行的文曲星等,使用的都是这个 CPU。</p> +<p><a class="link" href="https://medium.com/@fogleman/i-made-an-nes-emulator-here-s-what-i-learned-about-the-original-nintendo-2e078c9b28fe" target="_blank" rel="noopener" +>《我做了一个 NES 模拟器》(英文)</a>,这篇文章的作者在编写模拟器的过程中挖出了不少技术细节,里面还提到了硬件存在的各种 BUG (没错,要模拟的话必须连 BUG 都得模拟,不然有些游戏玩不了),想要了解的朋友可以点进去看一下。</p> +<p>作为模拟器爱好者,我对 6502 处理器非常好奇,一度希望自己动手也实现一个,而且这款处理器真的非常适合模拟器入门,毕竟只有三个寄存器和百十条指令。</p> +<p><a class="link" href="https://github.com/fogleman/nes" target="_blank" rel="noopener" +>文中提到的 NES 模拟器在 Github 上开放了源码</a>,有兴趣的可以学习。</p> +<h3 id="一个桌面开发程序员为了学习-javascript-而手撸了一个基于-webgl-的游戏引擎">一个桌面开发程序员为了学习 Javascript 而手撸了一个基于 WebGL 的游戏引擎</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-11-11.png" +width="780" +height="448" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="417px" +> +学习一样技能最好的方式就是动手去做。</p> +<p>当我感叹牛人怎么那么厉害的时候,往往忽略了牛人的学习过程。</p> +<p>以为他们天生就那样。</p> +<p>事实上他们的技能也是靠努力训练得来的。</p> +<p>不过,学习方法确实很重要。</p> +<p><a class="link" href="http://zephyrosanemos.com/" target="_blank" rel="noopener" +>《我对 Javascript 的尝试》(英文)</a>,这篇文章的作者原本是一个桌面程序开发者(类似 CAD 软件之类)。</p> +<p>他突然想要学习前端开发,掌握 Javascript 语言。</p> +<p>于是结合自己之前的知识,使用前端技术做了一套很优秀的 Demo 程序,一个性能和外观都很不错的游戏引擎。</p> +<p>文章里作者详细介绍了实现过程中对技术、算法的选择等等。</p> +<p>内容很长,但还算友好,比较干货。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://roadmap.sh/" target="_blank" rel="noopener" +>开发者之路</a>,汇总了各个技术路线的学习资料,包括前端、后端、运维、计算机科学、区块链、移动端、质量管理等等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-24-33.png" +width="753" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="397px" +> +总之极其全面。 +目前在 Github 有两百多万个 star,被 fork 了 三十多万次。</li> +<li><a class="link" href="https://crxdl.com/" target="_blank" rel="noopener" +>chrome 插件下载</a>,访问谷歌浏览器插件商店有困难吗?试试这个网站,可以直接下载插件的包文件,下载后拖入浏览器即可安装。不过我已经转换到微软的 Edge 阵营了,用不到这个了。</li> +<li><a class="link" href="https://www.toptal.com/developers/css3maker" target="_blank" rel="noopener" +>CSS3 生成器</a>,对于 CSS 的属性参数总是记不住,这个网站就很适合我。每次要调背景渐变、圆角、阴影、动画曲线等等,都得现去搜。有了这个网站,在线点点拖拖,直接复制代码即可。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-33-35.png" +width="1288" +height="660" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +></li> +<li><a class="link" href="https://tesseract.projectnaptha.com/" target="_blank" rel="noopener" +>tesseract.js</a>,可直接在浏览器里运行的 OCR 引擎,支持多国语言(超过 100 种)文字识别。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-16-16-10.png" +width="1039" +height="439" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="568px" +></li> +<li><a class="link" href="https://www.aichpoem.net/#/shisanbai/poem" target="_blank" rel="noopener" +>AI 在线写诗</a>,比较全面的 AI 写诗工具,可以写律诗、绝句、现代诗、歌词等等,根据输入的主题任意发挥。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-23-10-36-44.png" +width="846" +height="502" +loading="lazy" +class="gallery-image" +data-flex-grow="168" +data-flex-basis="404px" +></li> +<li><a class="link" href="https://www.upscale.media/zh" target="_blank" rel="noopener" +>图片分辨率在线提升</a>,上传图片,网站使用 AI 算法将图片的清晰度自动提升,效果还不错。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-23-10-41-36.png" +width="1087" +height="693" +loading="lazy" +class="gallery-image" +data-flex-grow="156" +data-flex-basis="376px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 008 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/Wed, 16 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/<h1 id="机器文摘-第-008-期">机器文摘 第 008 期</h1> +<h2 id="长文">长文</h2> +<h3 id="用好-github给自己建立一个全方位的私有云平台">用好 GitHub,给自己建立一个全方位的私有云平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-24-41.png" +width="754" +height="393" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +> +很多人都有进行个人的知识管理和数字资源管理的需求,市面上也有很多软件工具或者平台来满足这样的需求,但是大部分都是收费的,且自由度不高。我个人经常使用 Github 作为知识管理仓库,我的网络日志、技术博客、私人小项目、电子书籍等都放在上面,生活中已经离不开这个网站了。</p> +<p>近期读到这样一篇文章&ndash;<a class="link" href="https://www.bmpi.dev/self/use-github-better/" target="_blank" rel="noopener" +>善用 Github</a>,全方位讲解了 Github 如何使用,如何将其提供的服务发挥最大化的作用,看完受益匪浅。</p> +<blockquote> +<p>GitHub 是微软旗下的一个在线软件源代码托管服务平台,也是一个拥有八千多万开发者用户的社区。很多开发者应该对GitHub有一定的了解,但非技术人员大多可能并不会去使用它。本文更多是想给非技术人员来介绍这个平台,看完这篇文章,希望能让更多人在上面来学习、创作与展示自己的作品。</p> +</blockquote> +<h3 id="webgpu-是什么跟-webgl-有什么关系">WebGPU 是什么?跟 WebGL 有什么关系?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-36-12.png" +width="846" +height="433" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +> +前几天我想在网页上制作一个小游戏,用于尝试一下图形编程相关的技术。用到了一些基于 Web 技术的 3d 图形框架,比如 Three.js、Babylon.js 等等。在尝试的过程中遇到了一个新的名词 WebGPU,之前总是在听说 WebGL 相关的技术,结果说了这么多年,WebGL还没普及,怎么又冒出来一个 WebGPU?于是找了一篇文章,浅扒一下各个图形接口的历史。就是这篇<a class="link" href="https://www.51cto.com/article/698100.html" target="_blank" rel="noopener" +>浅入浅出 WebGPU</a>。</p> +<blockquote> +<p>2016年6月,Google 产生了使用新API来代替WebGL的想法,称之为 WebGL Next。 +2017年1月,Khronos Group 举办了WebGL Next研讨会,Chromium一马当先,展示了可以基于OpenGL和Metal独立运行的新图形系统原型,同时Apple和Mozilla也分别展示了自己的原型,三者都非常类似于Metal Api。 +次月,Apple就向W3C提交了一个名为 WebGPU 的技术概念验证方案,基于Metal图形开放接口,最终W3C采纳了 WebGPU 这个名字作为下一代标准,Apple的提案进入了正式的小组提案中。 +3月,Mozilla向Khronos Group提交了基于Vulkan的名为WebGL Next提案。 +2018年6月,Chrome团队宣布着手实现WebGPU,这意味着Khronos的失败,WebGPU胜出,大家以后还是团结在W3C的周围。 +按照预期,工作组希望在2021年底发布WebGPU 1.0 标准,不过目前只有草案。 +WebGPU 1.0 草案:https://www.w3.org/standards/types#WD</p> +</blockquote> +<h3 id="扔掉-photoshop-改用字符串绘图">扔掉 Photoshop 改用字符串绘图</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-58-00.png" +width="761" +height="741" +loading="lazy" +class="gallery-image" +data-flex-grow="102" +data-flex-basis="246px" +> +相信很多人都接触过使用字符绘制的图片,这在程序员圈子里甚至发展为一门专有的艺术 “<a class="link" href="https://zh.wikipedia.org/wiki/ASCII%E8%89%BA%E6%9C%AF" target="_blank" rel="noopener" +>ASCII 艺术</a>”。不过我现在不是要说这些,我在一篇 2015 年发表的文章里,发现了这个:有个猛男在自己的程序里彻底抛弃使用 Photoshop 制作的图片资源,改用字符串来描述各种图形(程序界面的图标),然后自己再用代码将其渲染成为高清的图像。</p> +<p>作者对此很沾沾自喜,他甚至设计了一套自用的语法规范,用特定字母代表特定的符号关系,这样就可以组合出各种复杂的图案了。</p> +<p>我也在文章的评论区见到了跟我有同样疑惑的读者留言:“这不就是重新发明了 <a class="link" href="https://zh.wikipedia.org/wiki/%E5%8F%AF%E7%B8%AE%E6%94%BE%E5%90%91%E9%87%8F%E5%9C%96%E5%BD%A2" target="_blank" rel="noopener" +>SVG</a> 吗?唯一的区别就是没有用 XML 作为载体”。</p> +<p>不过文章记录的整个开发过程还是很有趣的,希望了解朋友可以点进去看看 <a class="link" href="http://cocoamine.net/blog/2015/03/20/replacing-photoshop-with-nsstring/" target="_blank" rel="noopener" +>Replacing Photoshop With NSString</a></p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://ffmpeg.xianwaizhiyin.net/" target="_blank" rel="noopener" +>FFmpeg原理</a>,FFmpeg 这个开源项目可能圈外的人士了解不多,但实际上我们生活中一刻也离不开它。现在的网络直播、网络视频网站和移动App、各种视频剪辑合成软件,都或多或少的使用了 FFmpeg 提供的编解码技术。这本在线书籍对于想进一步了解 FFmpeg 以及视频编解码技术的朋友是个不错的参考资料。</p> +<blockquote> +<p>本书《FFmpeg原理》主要讲解 FFmpeg 原理性的知识,前面几章主要讲解一些音视频开发的基础知识,例如原始数据 YUV 跟 RGB,封装格式 FLV 跟 MP4 ,压缩编码的基本概念,还有封装格式分析。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://rustdesk.com/zh/" target="_blank" rel="noopener" +>开源虚拟与远程桌面基础架构</a>,远程桌面软件,开箱即用,无需任何配置。(我个人目前还是使用windows的远程桌面多一些,不过这个开源的rustdesk看起来不错)</p> +<blockquote> +<p>您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器,或者自建,亦或者开发您的版本 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-26-09.png" +width="1388" +height="701" +loading="lazy" +class="gallery-image" +data-flex-grow="198" +data-flex-basis="475px" +></p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://learnxinyminutes.com/" target="_blank" rel="noopener" +>Learn X in Y minutes</a>,这里的教程几乎涵盖所有编程语言,完全没有废话。英文版、中文版都有。如果有编程语言基础的话,通过这个网站确实可以在几十分钟内掌握一门新的编程语言的核心知识。</p> +</li> +<li> +<p><a class="link" href="https://flash.zczc.cz/" target="_blank" rel="noopener" +>Flash 保存计划</a>,Flash 虽然消失了,但是它曾经创造的辉煌一直在我们的记忆里,现在偶尔还想起一些经典的小游戏。这个网站里收藏了很多经典的Flash小游戏,通过一些黑科技复活了它们,可以在浏览器里运行体验。反正我一打开了黄金矿工,就半天停不下来。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-34-57.png" +width="1142" +height="554" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="494px" +></p> +</li> +<li> +<p><a class="link" href="https://keg.cs.tsinghua.edu.cn/codegeex/index_zh.html" target="_blank" rel="noopener" +>CodeGeeX: 多语言代码生成模型</a>,又一个能帮你写代码的 AI 模型。提供有官方的 VSCode 插件。我试了一下,效果跟 Github 的 copilot 还有一定的差距。</p> +<blockquote> +<p>CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2022年6月22日,CodeGeeX历时两个月在20多种编程语言的代码语料库(&gt;8500亿Token)上预训练得到</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://iximiuz.com/en/series/computer-networking-fundamentals/" target="_blank" rel="noopener" +>计算机网络基础学习(英文)</a>,一个在线讲解网络基础知识的教程,优点是内容简洁,不用特别多的专用名词唬人,另外还提供了在线实验的环境。</p> +<blockquote> +<p>关于计算机网络的书籍往往令人生畏 - 数千页,无聊的图表&hellip;&hellip;这个教程以几千字的字数引导您了解网络基础知识!它还提供动手实验室来实践所获得的知识。</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-51-40.png" +width="764" +height="476" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 007 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/Wed, 09 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/<h1 id="机器文摘-第-007-期">机器文摘 第 007 期</h1> +<h2 id="长文">长文</h2> +<h3 id="如何在-html5-canvas-制作可精确控制时间的动画">如何在 HTML5 Canvas 制作可精确控制时间的动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-09-30-08.png" +width="576" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="410px" +></p> +<p>使用 Canvas 对象在网页中制作动画非常简单,有不少人喜欢直接使用定时器 <code>setinterval</code> 以一定的时间周期循环执行绘图代码来实现动画效果。但是这种做法有一个弊端,由于显示刷新率以及计算机硬件性能的不同,会导致在不同机器上的表现差异。比如你希望你的动画角色在 1 秒内移动 50 个像素,但是实际执行起来却很难控制。<a class="link" href="https://www.viget.com/articles/time-based-animation/" target="_blank" rel="noopener" +>基于时间的动画</a>这篇文章讲解了如何使用浏览器的 <code>requestAnimationFrame</code> API 来实现精准控制动画时间的效果,里面给出了一个很简单的样例,但是基本上给出了一个完整的“更新、渲染、通过时间变化计算运动距离”的游戏控制架构。</p> +<h3 id="如何使用纯-web-技术开发一个相机-app">如何使用纯 Web 技术开发一个相机 App</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-09-47-44.png" +width="680" +height="475" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="343px" +></p> +<p>如果不习惯复杂的移动 app 开发环境,直接使用 Web 技术开发一些小的 App 也是十分方便的。我近期希望通过网页实现一个拍照的应用,并且希望不使用手机的原生相机功能,而是自己控制一些相机参数、后期效果、增加特定的取景框等等。于是我找到了一篇教学指南:<a class="link" href="https://blog.prototypr.io/make-a-camera-web-app-tutorial-part-1-ec284af8dddf" target="_blank" rel="noopener" +>Make a Camera Web App</a>,只需几十行代码就实现了一个相机 App 。感兴趣的朋友可以点进去看看。</p> +<h3 id="数据库是如何工作的从零开始写一个数据库">数据库是如何工作的,从零开始写一个数据库</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-01-15.png" +width="390" +height="394" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="237px" +></p> +<p>如果和我一样好奇数据库是如何实现的,可以看看<a class="link" href="https://cstack.github.io/db_tutorial/" target="_blank" rel="noopener" +>这篇文章</a>。带你用 C 语言从头撸一个数据库出来。</p> +<h3 id="使用-rust-写一个操作系统">使用 Rust 写一个操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-05-43.png" +width="702" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +></p> +<p>Rust 逐渐火起来了,这篇 <a class="link" href="https://os.phil-opp.com/zh-CN/" target="_blank" rel="noopener" +>2018 年的文章</a>整理了一份教程,作者尝试使用 Rust 写一个操作系统,我之所以收录它是因为作者还在 Github 开源了代码,并且这系列教程甚至提供了多国语言的版本。制作精良。应该是实践操作系统知识的好教材。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://100dayscss.com/" target="_blank" rel="noopener" +>100 天精通 CSS </a>,这个网站给了你 100 个关于 CSS 技术的挑战题目,也许练完之后可以达到深入应用 CSS 的效果,我尝试了几个挑战,有些题目的设置有些偏炫技范畴了,想在工作中使用估计会被打死。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-24-10.png" +width="392" +height="391" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +</li> +<li> +<p><a class="link" href="http://cht.sh/" target="_blank" rel="noopener" +>Linux 命令在线帮助工具</a>,对于我这种经常记不住命令用法的人来说真的是一种福音。比如我就经常记不清 <code>tar</code> 命令的用法,面对压缩包解压或者文件打包的工作每次都是去网上搜索一番。有了这个在线工具,直接在命令行中使用 <code>curl</code>请求他的网址就可给出命令的样例用法详解,非常方便。比如执行<code>curl cht.sh/tar</code> 就会给出 tar 的使用样例了,我直接复制粘贴之。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-28-42.png" +width="586" +height="462" +loading="lazy" +class="gallery-image" +data-flex-grow="126" +data-flex-basis="304px" +></p> +</li> +<li> +<p><a class="link" href="https://www.mobilephonemuseum.com/" target="_blank" rel="noopener" +>手机博物馆</a>, 网站收录了各品牌手机的各代产品资料,包括手机图片、型号参数、当时发布的广告等。不过我看了一下,资料应该还不齐全,有些手机只是列了个名字和型号在那儿,还缺少详细信息,估计还在继续收集中。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-32-23.png" +width="1696" +height="790" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="515px" +></p> +</li> +<li> +<p><a class="link" href="http://www.famicn.com/" target="_blank" rel="noopener" +>中文家用游戏博物馆</a> ,收录了比较齐全的家用游戏机及掌机的中文版游戏资料。可以直接在线通过模拟器玩耍。有不少经典的 FC、GB、MD 游戏,甚至还有小霸王学习机的 ROM ,可以在线体验。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-36-51.png" +width="1096" +height="711" +loading="lazy" +class="gallery-image" +data-flex-grow="154" +data-flex-basis="369px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 006 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/Wed, 02 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/<h1 id="机器文摘-第-006-期">机器文摘 第 006 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样写一段代码把自己打印出来">怎样写一段代码把自己打印出来?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-13-45-45.png" +width="651" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></p> +<p>近期在知乎上看到一个<a class="link" href="https://www.zhihu.com/question/22006572/answer/2722369370" target="_blank" rel="noopener" +>如何编写代码打印自己的问题</a>,感到十分有趣。以前也在网上见到过类似的代码,用 C 或者 Javascript 等各种语言实现的版本都有。当时只是感叹代码写的十分神奇,一段代码在运行之后竟然输出自己的源代码,而且一个字符也不差,并没有搞懂其中的原理。这篇回答里,作者给出了详细解释。并指出,冯·诺依曼早在他编写的《自复制元胞自动机理论》一书中的提出了这种事情在理论上的通用方法。</p> +<blockquote> +<p>如上图所示,自复制系统有五个基本部件:A:通用构造器;B:通用复制器;C:控制器;D:其他函数;ϕ(A,B,C,D)\phi(A,B,C,D)\phi(A,B,C,D) : A, B, C, D的编码;当自复制过程启动的时候,B将编码复制一份。A再根据复制出的编码构造出ABCD。最后,C再将这些结构组合起来,构造出一个新的、复制的结构。可以看到,自复制、自打印程序的核心就在于通用构造器和编码,因为复制器、控制器都是比较容易实现的。</p> +</blockquote> +<p>具体实现的示例,文中有更详细的说明。</p> +<p>最后,此问题可以引申到,大自然中生命基于基因的复制机制,也是与此相关,甚至其背后都是同样的机制。</p> +<h3 id="kevin-kelly-在-68-岁生日时给出的-68-条建议">Kevin Kelly 在 68 岁生日时给出的 68 条建议</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-01-30.png" +width="688" +height="368" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></p> +<p><a class="link" href="https://baike.baidu.com/item/%E5%87%AF%E6%96%87%C2%B7%E5%87%AF%E5%88%A9/6607570" target="_blank" rel="noopener" +>凯文·凯利(又称KK, 作者,著有《失控》《科技想要什么》《必然》等)</a>,上个月 28 号是他的 68 岁生日,他准备了 68 条简短的建议,作为礼物送给年轻人。</p> +<p>有人翻译了<a class="link" href="https://zhuanlan.zhihu.com/p/143834871" target="_blank" rel="noopener" +>KK 在 68 岁生日时给出的 68 条建议</a>。</p> +<p>摘抄几条如下:</p> +<blockquote> +<p>任何一项大工程(修房子、拍电影、开发 app)完成度为 90% 的时候,你都要做好心理准备:剩余的大量细节工作会占掉你另一段与之前相当的时间。</p> +</blockquote> +<blockquote> +<p>不要担心自己问的问题听起来很傻。99% 的情况下,其他人都有和你一样的问题,只不过羞于问出口而已。</p> +</blockquote> +<blockquote> +<p>别成为一群人里最聪明的那个。和那些比你聪明的人待在一起,向他们学习。如果能找到和你观点相左的聪明人,那就更好了。</p> +</blockquote> +<blockquote> +<p>别做最好的。做唯一的。</p> +</blockquote> +<blockquote> +<p>任何真实之物都源于虚构之意。想象是宇宙中最强大的力量,也是你能够日益精进的能力。生命中可以因不知众人所知而获益的能力,仅此一项。</p> +</blockquote> +<blockquote> +<p>经验往往被高估了。招募的时候,要看资质,技能则可以培训。许多令人惊奇和赞叹的事情,都是由第一次做的人做出来的。</p> +</blockquote> +<h3 id="怎样搭建一个最简的-git-服务器">怎样搭建一个最简的 GIT 服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-15-18.png" +width="626" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="322px" +></p> +<p>GIT 是现在软件开发过程中必不可少的版本控制工具,功能非常强大,我们平时直接使用单位的私有服务或者在线的云服务(如:Github 等)。</p> +<p>如果想要搭建个人的服务,可能就比较繁琐一些。<a class="link" href="https://www.ruanyifeng.com/blog/2022/10/git-server.html" target="_blank" rel="noopener" +>阮一峰老师的这篇博客</a>就解答了怎样采用极简的技术路线,为自己搭建一台 GIT 服务器。</p> +<blockquote> +<p>自己搭建 Git 服务器的原因,无非就是不方便访问外网,不愿意代码放在别人的服务器,或者有一些定制化的需求。 +这时,你可以选择开源的 Git 服务器软件。 +Gitlab CE +Gitea +Gogs +Onedev +这些软件里面,Gogs 的安装是最简单的,但是功能相对比较弱。功能越强的软件,安装越复杂。 +如果你只是想远程保存一份代码,并不在意有没有 Web 界面,或者其他功能,那么根本不用安装上面这些软件,一行命令就够了。</p> +</blockquote> +<h3 id="为什么很多程序员讨厌低代码">为什么很多程序员讨厌低代码?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-24-59.png" +width="640" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="180" +data-flex-basis="432px" +></p> +<p>“低代码”(一般指:不用或少用编写代码的方式进行软件开发)这个词近两年又开始火了,它代表着对软件工程的一种美好“幻想”,即:花费更低的代价去构建复杂的软件系统。</p> +<p>虽然每隔一个时间周期都会被重提一次,但是每次都未能如愿。</p> +<p>现在既然又被频繁提及,我在知乎上发现了这样一篇<a class="link" href="https://www.zhihu.com/question/561025857/answer/2734260311" target="_blank" rel="noopener" +>关于低代码话题的回答</a>。从程序员的视角表达了对低代码这种期望的观点,有兴趣的朋友可以点进去看看。</p> +<blockquote> +<p>软件工程这门学问,研究的就是“如何利用工程思想,从整体上降低开发复杂性”;但与之同时,它不得不反复强调“软件工程试图解决的、是人为引入的不必要的复杂性;但工程的本质复杂性是无法逃避的。因为没有银弹,没有银弹,没有银弹!”</p> +</blockquote> +<p>我个人的观点是:低代码或者配置化、拖拽式软件开发,很难平衡对复杂现实的抽象程度和开发便利性的矛盾关系。如何做到既提供方便的组件同时又不限制对个性化需求的实现,这需要非常强大的设计能力以及对于特定应用场景的取舍。目前来看,如果要做到或者接近上述状态,必然要先消耗巨量的成本,至于是否值得,可能不同的主体会有不同的选择吧。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/Visualize-ML/Book4_Power-of-Matrix" target="_blank" rel="noopener" +>从加减乘除到机器学习</a>,一本不错的数学扫盲书,如果你在学习人工智能的时候对数学感到吃力的话,这本书非常适合阅读,一点也不枯燥。主要讲解线性代数相关的知识。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-46-11.png" +width="616" +height="335" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="441px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md" target="_blank" rel="noopener" +>命令行的艺术</a> 想成为命令行高手,掌握这一篇就够了。</p> +<blockquote> +<p>熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-47-54.png" +width="477" +height="287" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="398px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/practical-tutorials/project-based-learning" target="_blank" rel="noopener" +>基于实际项目的学习</a>,这是一个巨大的代码工程资源索引,里面列举了针对各种编程语言的个人项目,当你不知道该如何去深入学习一门编程语言的时候,选择一个这里的项目然后自己动手跟着练一遍效果绝对惊人。入选的项目都十分有趣,比如怎样用 C 写一个解释器、怎样写一个自己的编辑器、自己动手实现 TCP/IP 协议栈,等等。</p> +</li> +<li> +<p><a class="link" href="https://github.com/lxgw/LxgwWenKai" target="_blank" rel="noopener" +>霞鹜文楷</a>,一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。用来看书非常舒服,特别是在排版上。微信读书已经内置,如果是第三方支持自定义字体的可以试试。</p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 005 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/Wed, 26 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/<h1 id="机器文摘-第-005-期">机器文摘 第 005 期</h1> +<h2 id="长文">长文</h2> +<h3 id="穿越到-1983-年学习-basichttpslinuxcnarticle-11091-1html"><a class="link" href="https://linux.cn/article-11091-1.html" target="_blank" rel="noopener" +>穿越到 1983 年学习 BASIC</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-10-33-53.png" +width="1006" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="156" +data-flex-basis="374px" +></p> +<blockquote> +<p>很多著名的程序员,尤其在计算机游戏行业,孩童时期就在苹果 II 和 Commodore 64 这样的 8 位计算机上开始编写游戏,John Romero、Richard Garriott 和 Chris Roberts 都是这样的例子。这好理解。在 8 位计算机时代,很多游戏只能在计算机杂志和书籍中以印刷的 BASIC 程序清单方式得到。如果你想玩其中一款游戏,就必须手工键入整个程序。不可避免的,你可能遇到一些问题,所以你就得调试你的程序。等到你让它可以工作起来了,你就已经对程序是如何运行的有了足够的了解,你就可以开始自己修改它了。如果你是一个狂热的游戏玩家,你几乎必然会成为一名优秀的程序员。</p> +</blockquote> +<p>喜欢小霸王的小伙伴(老伙伴?),不可错过的文章,一起跟随作者回忆一下如何在老古董电脑上运行BASIC程序,顺便怀念一下当年靠着一本说明书就在小霸王学习机上编写(抄写)游戏的时光。</p> +<ul> +<li>文中提到的<a class="link" href="https://vice-emu.sourceforge.io/" target="_blank" rel="noopener" +> Commodore64 电脑可以在这里下载模拟器</a>。</li> +</ul> +<h3 id="在-github-的-pages-服务里跑-sqlitehttpsphireskygithubioblog2021hosting-sqlite-databases-on-github-pages"><a class="link" href="https://phiresky.github.io/blog/2021/hosting-sqlite-databases-on-github-pages/" target="_blank" rel="noopener" +>在 Github 的 Pages 服务里跑 SQLite</a></h3> +<p>作者尝试做一个小网站来显示一些统计数据,于是他想到了用数据库,但是,使用数据库需要托管和维护后端服务,或者每次将整个数据集下载到浏览器中(当数据集超过10MB时,体验就变得很差劲)。</p> +<p>于是作者开始琢磨有没有办法找到一个可以在静态服务器上搞一个数据库服务得可能,毕竟提供静态服务的地方有很多(如 GitHub,GitLab,Netlify 等等)。</p> +<p>一通折腾下来(借助了 WASM 技术并适当的进行一些魔改),作者竟然实现了一个 100% 静态托管的数据库服务。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-10-10-18.png" +width="864" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +></p> +<h3 id="语句表达式和海象操作符httpswwwzlovezlcnarticlesstmt-expr-and-walrus-operator"><a class="link" href="https://www.zlovezl.cn/articles/stmt-expr-and-walrus-operator/" target="_blank" rel="noopener" +>语句、表达式和海象操作符</a></h3> +<p>这是一篇介绍如何通过“海象操作符“(类似这样:<code>foo := 'bar'</code>)使得Python语句更加精炼的文章。</p> +<p>这种操作符之所以可以使得语句更加精炼,主要原因就是它使得一句代码既进行了赋值然后又作为表达式返回了值。</p> +<p>之前写 Python 代码的时候都没注意还有这种写法,而且貌似这在 C 和 C++ 中都是基本的特性。不过 C 和 C++ 是赋值语句<code>=</code>直接就返回了表达式的值,同时这给程序员提供了出错机会(有不少人应该还记得条件判断时少写了个等号导致的问题)。</p> +<h3 id="给个人开发者的一些建议英文httpsnewsycombinatorcomitemid32647091"><a class="link" href="https://news.ycombinator.com/item?id=32647091" target="_blank" rel="noopener" +>给个人开发者的一些建议(英文)</a></h3> +<p>hacker news 上的网友针对有志于运营自己的SaaS产品的个人开发者提了一些心得和建议。</p> +<p>摘抄一点儿如下:</p> +<ul> +<li>关于做什么,做那些你自己都愿意付费的东西,别指望做出一个你自己都不想花钱使用的产品有别人来买单;</li> +<li>还是关于做什么,不要做需要漂亮UI的东西,那会让你陷入编码之外的很多麻烦(确实很牵涉精力),如果提供的工具能够通过简单交互就能提供优质服务最佳;</li> +<li>如果有可能,尽量提供自助服务模式,也就是说让用户不用见到你就可以自行操作付款了(作者这是有多社交恐惧?);</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://visualgo.net/zh" target="_blank" rel="noopener" +>数据结构与算法可视化</a>,是一个学习算法知识的好工具。通过动图来演示和讲解数据结构和算法实现原理,针对每一个常用算法不仅有直观的图示,还附有一篇详细的文档,内涵原理知识以及代码实例,网站甚至还提供了答题练习功能,可以一边学习一边做题。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-31-46.png" +width="1072" +height="321" +loading="lazy" +class="gallery-image" +data-flex-grow="333" +data-flex-basis="801px" +></p> +<ul> +<li><a class="link" href="https://lisperator.net/slip/" target="_blank" rel="noopener" +>SLip</a>,一个在浏览器中运行的Lisp解释器,使用Javascript实现。网站提供了一个简易的IDE,可以直接在页面中进行编程开发,还提供了图形绘制的扩展包,用于学习lisp语言非常合适。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-35-46.png" +width="497" +height="363" +loading="lazy" +class="gallery-image" +data-flex-grow="136" +data-flex-basis="328px" +></p> +<ul> +<li><a class="link" href="https://www.lfd.uci.edu/~gohlke/pythonlibs/" target="_blank" rel="noopener" +>针对 Windows 预先编译的 Python 扩展包</a>,在使用Python的时候,尤其是在Windows环境,经常会遇到有些扩展包由于依赖某些二进制库的原因导致无法通过pip直接安装,自己动手编译又十分麻烦。这个网站提供了各种预编译版本,可以直接下载网站提供的whl文件到本地然后安装。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-40-07.png" +width="675" +height="345" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="469px" +></p> +<ul> +<li><a class="link" href="https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing" target="_blank" rel="noopener" +> 3D 渲染器入门</a>,一套计算机图形学的入门教程,从原理讲解开始,手把手教你用C++语言编写一个自己的光线追踪渲染器。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-48-21.png" +width="531" +height="361" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></p> +<ul> +<li><a class="link" href="https://htmldog.com/" target="_blank" rel="noopener" +>HTMLDOG</a>,前端开发基础知识大全,主要是 HTML、CSS、Javascript 的手把手教学以及语言参考。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-52-21.png" +width="1862" +height="709" +loading="lazy" +class="gallery-image" +data-flex-grow="262" +data-flex-basis="630px" +></p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 004 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/Tue, 18 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/<h1 id="机器文摘-第-004-期">机器文摘 第 004 期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-09-53-01.png" +width="324" +height="702" +loading="lazy" +class="gallery-image" +data-flex-grow="46" +data-flex-basis="110px" +></p> +<p>美国德州仪器公司出品的TI图形计算器是一种既能计算又能作图的新型的数学使用工具,它具备符号代数系统、几何操作系统、数据分析系统等,可以直观地绘制各种图形,并进行动态演示、跟踪轨迹。</p> +<p>TI实体计算器的售价十分昂贵(相较于其他消费类计算器),这里有一个开源项目<a class="link" href="http://wabbitemu.org/" target="_blank" rel="noopener" +>wabbitemu</a>,使用C语言编写的一个TI计算器的模拟器,可以在电脑上运行并模拟TI计算器,支持多种型号,如TI-82、TI-83、TI-83-plus(需要加载对应的ROM)等。</p> +<p>甚至有人基于这个项目编译出了Android的版本,安装后手机秒变成高级科学计算器。</p> +<p>想进一步了解TI计算器的强大,可以看一下这篇文章<a class="link" href="https://zhuanlan.zhihu.com/p/148392866" target="_blank" rel="noopener" +>《计算器与计算器游戏发展简史》</a>。</p> +<ul> +<li><a class="link" href="http://www.liubaoyi.com/wp-content/uploads/2014/11/Android_Wabbitemu.zip" target="_blank" rel="noopener" +>TI计算器模拟器安卓版本下载地址(含ROM文件)</a></li> +<li><a class="link" href="http://www.liubaoyi.com/wp-content/uploads/2014/11/CX-C-CAS-%E5%9B%BE%E5%BD%A2%E8%AE%A1%E7%AE%97%E5%99%A8%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97.zip" target="_blank" rel="noopener" +>TI计算器使用说明书</a></li> +</ul> +<p>以上资源来自<a class="link" href="http://www.liubaoyi.com/" target="_blank" rel="noopener" +>@Karen的日志</a></p> +<h2 id="观点">观点</h2> +<blockquote> +<p>社交媒体的正确使用方法: +一,不浪费一秒钟时间和知识结构相差太大的人去解释/讨论。你没有义务也没有这个精力。对任何不友好评论,迅速拉黑。 +二,通过公开展示你的思考,来寻找在知识结构,兴趣或技能上,可能与你产生互补作用,或者 1+1&gt;2 的效应的朋友。公开展示长期留存的文字记录,效率最高。</p> +</blockquote> +<p>来自<a class="link" href="https://weibo.com/5339148412/Mal0hACJr" target="_blank" rel="noopener" +>@硅谷王川</a></p> +<h2 id="长文">长文</h2> +<h3 id="我是如何用21天刷完sicp">我是如何用21天刷完SICP</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-56-50.png" +width="411" +height="300" +loading="lazy" +class="gallery-image" +data-flex-grow="137" +data-flex-basis="328px" +></p> +<p>SICP 全称 Structure and Interpretation of Computer Programs,翻译过来叫《计算机程序的构造和解释》,是一本关于计算机程序设计的总体性观念的基础教科书,由麻省理工学院出版社与麦格罗希尔出版社共同出版营销。作者是麻省理工学院教授哈尔·阿伯尔森、杰拉德·杰伊·萨斯曼。</p> +<p>这本书是计算机编程领域非常经典的一本教科书,内容覆盖范围非常广泛,从编程入门一直到教你亲手设计实现一个编程语言解释器。虽然是一本几十年前的书,但是书中的编程理念如数据驱动、过程抽象等到现在仍不过时。可以说是程序员修炼“内功心法”必读的一本好书。</p> +<p>这篇<a class="link" href="http://numbbbbb.com/2016/03/28/20160328_%E6%88%91%E5%A6%82%E4%BD%95%E7%94%A8%E4%B8%A4%E5%91%A8%E6%97%B6%E9%97%B4%E5%88%B7%E5%AE%8C%20SICP/" target="_blank" rel="noopener" +>《我是如何用21天刷完SICP(中文)》</a>的文章讲述了作者通过阅读本书学习的过程和心得,里面的观点可以借鉴,我在看完之后也想再把这本书拿出来学习一遍。</p> +<p>觉得看书太晦涩的,可以到下面这个项目里下载本书作者课堂讲解视频(国内好心人给做了翻译字幕)</p> +<ul> +<li><a class="link" href="https://learningsicp.github.io/" target="_blank" rel="noopener" +>『计算机程序的结构和解释』公开课 翻译项目</a></li> +<li><a class="link" href="https://pan.baidu.com/s/1o78bsYA" target="_blank" rel="noopener" +>百度网盘SICP文件夹</a></li> +<li><a class="link" href="https://www.bilibili.com/video/av8515129/" target="_blank" rel="noopener" +>中译版视频专辑列表(bilibili)</a></li> +</ul> +<h3 id="图解stable-diffusion模型">图解Stable Diffusion模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-55-05.png" +width="937" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="242" +data-flex-basis="581px" +></p> +<p>这篇<a class="link" href="https://jalammar.github.io/illustrated-stable-diffusion/" target="_blank" rel="noopener" +>图解Stable Diffusion模型(英文)</a>详细讲解了 Stable Diffusion(最近比较火的那个可以通过文字描述进行绘图的AI模型)的工作原理。文中使用清晰的图示阐述了“扩散”模型是怎样通过给图片增加噪声一步一步生成图像的。</p> +<h3 id="wine是如何工作的">Wine是如何工作的</h3> +<p>Linux桌面用户都遇到过在不得不运行 Windows 软件的时候,这个时候就可以使用这个叫做 Wine 的兼容程序,它可以让你在 Linux 下执行 win32 程序。( Valve 最新出品的游戏掌机 Steam Dect 就使用了 Wine 作为兼容层来运行 Windows 平台下的游戏)。</p> +<p>Wine 的名字来自于 “Wine Is Not an Emulator” 这个英文缩写。</p> +<p>这篇<a class="link" href="https://werat.dev/blog/how-wine-works-101/" target="_blank" rel="noopener" +>《Wine是如何工作的(英文)》</a>介绍了它的基本工作原理。</p> +<h3 id="在-windows-记事本里运行光线追踪">在 Windows 记事本里运行光线追踪</h3> +<p>光纤追踪(Ray Tracing)是一项计算机图形学技术,使用该技术渲染的计算机图像具有逼真的全局光照效果。</p> +<p>这篇<a class="link" href="http://kylehalladay.com/blog/2020/05/20/Rendering-With-Notepad.html" target="_blank" rel="noopener" +>《记事本中的光线追踪 30FPS》</a>记录了作者突发奇想要在Windows上的记事本中进行光线追踪渲染的趣事。</p> +<p>其原理是通过系统API获取到记事本窗口的句柄,然后利用钩子函数给记事本的窗体发送相应的“消息”以及覆盖对应的内存数据来实现对记事本窗体界面的“魔改”。最终实现了在另一个进程里执行光线追踪算法,然后借用记事本中显示的字符来替代画面像素,从而“渲染”出画面的效果。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="github.com/SerenityOS/serenity" >SerenityOS项目</a>,一个从头开始的桌面操作系统,内核采用类似Unix的架构,界面外观则仿照了上世纪90年代Windows的窗口风格。作者并未将其定位成玩具,而是一款具备生产力的操作系统软件。 除了操作系统本身,这个项目还有配套的编程语言Jakt、自己的浏览器引擎LibWeb和浏览器Ladybird ​​​</p> +</li> +<li> +<p><a class="link" href="https://github.com/ruanyf/document-style-guide" target="_blank" rel="noopener" +>《中文技术文档写作规范》</a>,<a class="link" href="https://www.ruanyifeng.com/blog/" target="_blank" rel="noopener" +>阮一峰老师</a>整理的技术文档写作规范,规定了标题、文本、段落、标点符号等文档元素的使用约定,需要经常编写技术文档的朋友可以收藏看看。</p> +</li> +<li> +<p><a class="link" href="https://freehand.yunwooo.com/" target="_blank" rel="noopener" +>Freehand意绘</a>,一个在线的AI绘图工具,可以根据文字描述帮助你生成图片,界面简洁友好,使用方便。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-58-24.png" +width="1063" +height="525" +loading="lazy" +class="gallery-image" +data-flex-grow="202" +data-flex-basis="485px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/izackwu/TeachYourselfCS-CN" target="_blank" rel="noopener" +>计算机科学自学指南</a>,提供了一份自学计算机科学的全方位资料大全,可以根据内容系统地进行学习计算机科学相关的知识。</p> +<blockquote> +<p>互联网上,到处都有许多的学习资源,然而精华与糟粕并存。你所需要的,不是一个诸如「200+ 免费在线课程」的清单,而是以下问题的答案:</p> +<p>你应当学习 哪些科目,为什么? +对于这些科目,最好的书籍或者视频课程 是什么? +在这份指引中,我们尝试对这些问题做出确定的回答。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://stevens.netmeister.org/631/" target="_blank" rel="noopener" +>UNIX环境中的高级编程</a>,一套编程教程,在课程中,主要学习用C编程语言开发复杂的系统级软件,同时深入了解Unix操作系统(以及属于该家族的所有操作系统,如Linux,BSD,甚至Mac OS X)及其编程环境。</p> +<blockquote> +<p>涵盖的主题将包括用户/内核接口,Unix的基本概念,用户身份验证,基本和高级I / O,文件系统,信号,进程关系和进程间通信。还将涵盖Unix系统上软件开发和维护的基本概念(开发和调试工具,如“make”和“gdb”)。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://codeberg.org/drummyfish/tinyphysicsengine" target="_blank" rel="noopener" +>写在C头文件里的3D物理引擎</a>,一个仅用C99标准写在C头文件里的超小物理引擎,没有依赖,直接包含头文件即可在你的工程中使用,功能完整,内置向量、三角函数、引力等计算库。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-14-04-11.png" +width="399" +height="326" +loading="lazy" +class="gallery-image" +data-flex-grow="122" +data-flex-basis="293px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 003 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/Tue, 11 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/<h1 id="机器文摘-第003期">机器文摘 第003期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-17-41.png" +width="853" +height="640" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></p> +<h3 id="收听广播可以缓解压力个人体会">收听广播可以缓解压力(<em>个人体会</em>)</h3> +<p>近期我找到一个缓解焦虑的新方法,听收音机。</p> +<p>一定要老式的那种,收听真正无线电波信号的。随便找个台,最好还带有滋滋啦啦的杂音,当作工作时的背景声音,听着听着就感觉无比的放松。但又不是简单的“粉红噪音”、“白噪音”带来的那种平静,这种“仿佛脱离现在、回到了某个时空”的感觉让人感到愉悦。</p> +<p>我还没找到相关的研究信息,有人知道原理吗?</p> +<h2 id="动向">动向</h2> +<h3 id="欧洲通过法案将强制统一usb-type-c接口为充电接口">欧洲通过法案,将强制统一USB Type-C接口为充电接口</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-15-46-02.png" +width="800" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<blockquote> +<p>欧洲议会今天以压倒性多数投票赞成在2024年底之前将USB-C作为包括iPhone和AirPods在内的各种消费电子设备的通用充电端口。</p> +</blockquote> +<p>这对于苹果来说恐怕是个坏消息,对于消费者来说应该是个好消息。不过也许以苹果公司的脾气,说不定将来取消所有物理接口也有可能。</p> +<ul> +<li><a class="link" href="https://www.macrumors.com/2022/10/04/eu-passes-law-to-switch-iphone-to-usb-c-in-2024/" target="_blank" rel="noopener" +>欧洲强制iPhone使用usb-c接口</a></li> +</ul> +<h3 id="波士顿动力承诺不将机器人武器化">波士顿动力承诺不将机器人武器化</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-15-11.png" +width="640" +height="427" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></p> +<blockquote> +<p>当地时间 10 月 6 日消息,波士顿动力、Agility Robotics、ANYbotics 等 6 家公司联合发表致行业的公开信表达了他们对这些可能性的担忧。他们称,先进的商业化机器人的经济可负担性和可获得性越来越强,其被滥用的可能性也越来越大。我们承诺不会将通用机器人或软件武器化,也不会支持其他人这么做;同时呼吁政策制定者、开发者和用户共同促进安全使用。</p> +</blockquote> +<p>我个人感觉此类声明并不会带来什么限制,相反地,我偏悲观的认为这种技术很可能以最优先的速度被应用于军事目的。</p> +<ul> +<li><a class="link" href="https://www.163.com/dy/article/HJ5DMDS005118DFD.html" target="_blank" rel="noopener" +>网易新闻:波士顿动力承诺不将机器人武器化</a></li> +</ul> +<h3 id="taocpthe-art-of-computer-programming-4b正式初版">TAOCP(《The Art of Computer Programming》) 4B正式初版</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-30-24.png" +width="756" +height="732" +loading="lazy" +class="gallery-image" +data-flex-grow="103" +data-flex-basis="247px" +> +<em>图片来自<a class="link" href="https://weibo.com/5819320755/M9LXaF5I3" target="_blank" rel="noopener" +>@算法时空</a></em></p> +<p>世界著名程序员——高德纳老师,日前在他的个人网站宣布了<a class="link" href="https://www-cs-faculty.stanford.edu/~knuth/news.html#v4b" target="_blank" rel="noopener" +>TAOCP 4B正式出版</a>的消息。</p> +<p>这部计算机世界的经典巨著,耗费了高德纳老爷子的毕生心血,虽然已经出到了第四B卷,但本书目前还没有完全写完(本书从1962年开始写(中间停了几年是因为老爷子发现没有趁手的排版软件,就顺手发明了TEX——这又是另一个宏大话题了),计划共有七卷,其中第四卷分ABC三册)。他在自己主页中提到:</p> +<blockquote> +<p>与此同时,我继续研究第3部分(第4C卷),它已经有许多令人兴奋的主题。</p> +</blockquote> +<p>我只能说:祝老爷子身体健康!</p> +<h3 id="webassembly技术发展的怎么样了">WebAssembly技术发展的怎么样了?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-45-39.png" +width="386" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="241px" +></p> +<blockquote> +<p>WebAssembly 是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如 C、C++和 Rust 等低级源语言提供一个高效的编译目标。 +——来自<a class="link" href="https://developer.mozilla.org/zh-CN/docs/WebAssembly/Concepts" target="_blank" rel="noopener" +>Mozilla官方文档关于WebAssembly概念的介绍</a>。</p> +</blockquote> +<p>WebAssembly技术号称可以在浏览器中高效执行代码,并可以很方便地将C、Rust等各种语言编译到浏览器中执行,那么目前他的使用体验如何?</p> +<p>我周末做了简单体验。</p> +<p>通过官方给出的文档和入门指南,可以很快速地搭建出程序的原型,上图就是我参考官方示例将Rust代码编译到网页中执行的效果(是一个<a class="link" href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" target="_blank" rel="noopener" +>经典的Game of life的小游戏</a>)。</p> +<p>从开发上来说,现在已经有了比较成熟的工具链(尤其是针对Rust语言到WASM的工具),和共享库的生态,想要进行开发,不必像前些年那样费心地搭建开发环境,基本上在Linux系统下简单执行几行命令即可完成环境搭建。</p> +<p>从执行效果来说,我没有做性能测试,直观感受上来说,确实比原生js快了不少。</p> +<p>但这并不是重点,我个人觉得这项技术它最大的意义在于,将之前的桌面程序技术有了向Web移植的可行性。</p> +<p>我们有可能很快就看到完全兼顾Web分发的方便和桌面程序性能体验的产品。</p> +<ul> +<li><a class="link" href="https://www.infoq.cn/article/hdwglnhub2wwklo9zz6z" target="_blank" rel="noopener" +>一则WebAssembly相关的新闻</a></li> +<li><a class="link" href="https://github.com/mbasso/awesome-wasm" target="_blank" rel="noopener" +>GitHub网友整理的关于WASM的资源大全</a></li> +<li><a class="link" href="https://rustwasm.github.io/docs/book/introduction.html" target="_blank" rel="noopener" +>一本手把手教你使用Rust语言进行WASM开发的在线电子书</a></li> +<li><a class="link" href="https://zalo.github.io/CascadeStudio" target="_blank" rel="noopener" +>一个使用WASM技术将三维设计软件CAD嵌入到网页中的开源项目</a></li> +<li><a class="link" href="https://supabase.com/blog/postgres-wasm" target="_blank" rel="noopener" +>一个使用WASM技术在浏览器中运行的PostgresSQL数据库</a></li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>在你的密码里面放上一个逗号<code>&quot;,&quot;</code>,这样当你的密码在网上被人拖库时可以给黑客增加一些麻烦,因这样会使得他在作为csv文件往他的密码字典里面导入的时候,因为逗号分隔符的错位而让他崩溃。 +注:csv文件默认使用逗号分隔符区分字段。</p> +</blockquote> +<ul> +<li>来自:佚名网友。</li> +</ul> +<blockquote> +<p>当你长期使用windows远程桌面进行远程办公时,一层一层的服务器登进去,时间长了就会陷入盗梦空间那种疑惑,我现在是在哪一层?</p> +</blockquote> +<ul> +<li>来自:我自己。</li> +</ul> +<blockquote> +<p>量子计算机就是向过去和未来借用了很多乃至无限的时间吗?刹那即永恒。 +注:量子计算机号称每个bit位可在同一时刻表示多种状态。</p> +</blockquote> +<ul> +<li>来自:我自己。</li> +</ul> +<h2 id="长文">长文</h2> +<h3 id="从0到1打造家庭弱电方案">从0到1打造家庭弱电方案</h3> +<p>现在有不少人在困惑家里的网线该如何布局,这篇<a class="link" href="https://luolei.org/home-network-1/" target="_blank" rel="noopener" +>《从0到1打造家庭弱电方案》(中文)</a>记录了作者完整的装修过程,内容十分精彩详尽。看完之后我有点儿后悔,当时装修时没有给各个房间拉上光纤,以及用了比较普通的超五类网线。</p> +<h3 id="如何配置一个完全基于命令行窗口的开发环境">如何配置一个完全基于命令行窗口的开发环境</h3> +<p>我在油管上关注了一个日本小哥(Takuya Matsuyama),是一个个人开发者,经常上传自己的开发过程录屏,他完全基于命令行窗口(控制台)进行开发,没使用任何IDE。</p> +<p>后来我参考他的配置文件给自己也配置了一套,使用fish作为shell,neovim加上各种插件作为主力编辑器,现已成为我的日常开发环境。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-11-16-56.png" +width="1571" +height="820" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +></p> +<p>有条件的可以到他的主页看看关于如何配置的详细介绍,或者直接去他的github仓库获取配置文件。</p> +<ul> +<li><a class="link" href="https://www.craftz.dog/posts" target="_blank" rel="noopener" +>Takuya Matsuyama小哥的主页</a></li> +<li><a class="link" href="https://github.com/craftzdog/dotfiles-public" target="_blank" rel="noopener" +>他的基于控制台命令行开发的各种配置文件</a></li> +</ul> +<h3 id="云桌面并不像你想的那么好">云桌面并不像你想的那么好</h3> +<p>给开发人员配置一个廉价的笔记本加上一个高性能的云端工作站,这个点子棒不棒?</p> +<p>听起来有很多的优势,兼具了性能、便携性、安全性等等。</p> +<p>不过先等一等,这里有一位作者在这样尝试了之后,给出了不少负面反馈(比如多显示器支持、GPU加速、网页视频质量等等问题),有兴趣的可以点进去看看。</p> +<ul> +<li><a class="link" href="https://mjg59.dreamwidth.org/61535.html" target="_blank" rel="noopener" +>《云桌面并不像你想象的那么好》(英文)</a></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://webusers.imj-prg.fr/~jan.nekovar/co/en/en.pdf" target="_blank" rel="noopener" +>从高中到大学,数学中常用符号和计算关系的英文名称</a>,适合对数学公式中的各种符号感到困惑的人收藏,这本小册子汇聚了所有数学符号、常用希腊字母、代数式等英文叫法介绍。</li> +<li><a class="link" href="http://www.egr.unlv.edu/~ed/x86.html" target="_blank" rel="noopener" +>如何在Ubuntu下进行x86-x64汇编语言编程</a>,一本讲解现代汇编语言的电子书,基于常用的Ubuntu系统,从认识汇编语言开始讲起,到工具链的准备和怎样编写和调试程序,都有详细的介绍。</li> +<li><a class="link" href="https://www.drawkit.com/" target="_blank" rel="noopener" +>DrawKit</a>,一个提供矢量插画的网站,有很多免费的高质量插画,可用于网站制作、软件产品等方面。</li> +<li><a class="link" href="https://missing-semester-cn.github.io/" target="_blank" rel="noopener" +>计算机教育中缺失的一课</a>,一般学校里不会教开发环境的配置和各种效率工具的使用,这本电子书就是以环境和工具为切入点,将学校学习的理论应用于实际,比较接地气。 +<blockquote> +<p>大学里的计算机课程通常专注于讲授从操作系统到机器学习这些学院派的课程或主题,而对于如何精通工具这一主题则往往会留给学生自行探索。在这个系列课程中,我们讲授命令行、强大的文本编辑器的使用、使用版本控制系统提供的多种特性等等。学生在他们受教育阶段就会和这些工具朝夕相处(在他们的职业生涯中更是这样)。 因此,花时间打磨使用这些工具的能力并能够最终熟练地、流畅地使用它们是非常有必要的。</p> +</blockquote> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 002 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/Mon, 03 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/<h1 id="机器文摘-第002期">机器文摘 第002期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-08-56.png" +width="895" +height="689" +loading="lazy" +class="gallery-image" +data-flex-grow="129" +data-flex-basis="311px" +></p> +<blockquote> +<p>MNT推出了一款名叫Pocket Reform的迷你笔记本电脑。它外形紧凑(屏幕只有7英寸),但功能齐全,据官方介绍,它的性能满足轻量办公需求,甚至还能玩一些游戏(ARM平台)。虽然现在的智能手机在性能方面已经有了很大提升,且便携性远超笔记本电脑,但是还是有相当一部分人倾向于在具有真实物理键盘的“电脑”上进行操作。</p> +</blockquote> +<p>在我看来,这台设备可能对于希望随时随地写两行代码的程序员更加具有吸引力。</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://spectrum.ieee.org/meet-an-open-source-pc-that-can-fit-in-your-pocket" target="_blank" rel="noopener" +>可以装在口袋里的开源PC</a></li> +</ul> +</li> +</ul> +<h2 id="动向">动向</h2> +<h3 id="文字直接生成3d模型">文字直接生成3D模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-41-32.png" +width="735" +height="491" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +> +谷歌实验室的几个哥们上周发布了一个新作&mdash;-DreamFusion。输入文字,就能生成带深度图和法线的3D模型。</p> +<p>开发团队声称:</p> +<blockquote> +<p>最近在文本到图像合成方面的突破是基于在数十亿个图像-文本对上训练的扩散模型。将这种方法应用于3D合成将需要标记大量的3D资产和用于对3D数据进行去噪的高效架构,而目前这都不太可行。在DreamFusion中,我们通过使用预先训练的2D文本到图像扩散模型来执行文本到3D合成来规避这些限制。我们的方法不需要3D训练数据,也不需要修改图像扩散模型,证明了预训练图像扩散模型作为先验的有效性。</p> +</blockquote> +<p>具体方法据称是来自他们新提出的“一种通过优化损失函数从扩散模型中生成采样的方法”该方法允许他们在任意参数空间中优化采样(例如3D空间)。</p> +<p>我看了一下官方给出的demo,3D模型还略显粗糙,不过可能将来算力提升之后会有改善。</p> +<p>现在,除了插画师受到了职业威胁,就连3D建模工程师的工作也有可能被AI取代?</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://dreamfusion3d.github.io/" target="_blank" rel="noopener" +>DreamFusion官方介绍</a></li> +</ul> +</li> +</ul> +<h3 id="通过文字描述生成语音的人工智能也来了">通过文字描述生成语音的人工智能也来了</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-32-54.png" +width="909" +height="451" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="483px" +></p> +<blockquote> +<p>Twitter 用户 Felix Kreuk 发布了从文本到音频 (Text to Audio) 的 AI 模型:AudioGen +AudioGen 可以 +(1) 根据文本生成音频;(2) 续写指定的音频;(3) 同时做以上两件事,根据指定文本描述生成指定音频。 +作者给出的展示DEMO里展示了如下文本生成的语音: +(1)在风声中吹口哨 +(2)男人在说话时伴有鸟和狗的叫声 +(3)警报器和嗡嗡作响的引擎接近后走远 +(4)鸽子咕咕叫并伴有沙沙的声音 +(5)男人说话的声音,背景伴有人群欢呼声</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-33-50.png" +width="1147" +height="629" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +> +从作者公布的架构图上可以看出来,采用的也是Transformer神经网络。之前在看到AI画图时我就想到同样的原理可能用于生成音频,结果这才没过几天,人家都已经做出来了。</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://weibo.com/1309158107/M8mPt5LgI" target="_blank" rel="noopener" +>@海辛Hyacinth</a></li> +<li><a class="link" href="https://felixkreuk.github.io/text2audio_arxiv_samples/" target="_blank" rel="noopener" +>作者的demo和原理介绍页面(托管在github)</a></li> +</ul> +</li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>站桩的简单,枯燥和有效,就好比持有 sp500 指数基金简单,枯燥但足以秒杀 95%以上的基金经理一样。 +莫将容易得,便作等闲看。</p> +</blockquote> +<ul> +<li>来自<a class="link" href="https://weibo.com/5339148412/LeTdmcfjW" target="_blank" rel="noopener" +>@硅谷王川</a></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li> +<p><a class="link" href="https://randomascii.wordpress.com/2022/09/29/why-modern-software-is-slow-windows-voice-recorder/" target="_blank" rel="noopener" +>为什么现在的软件这么慢(英文)</a>,作者在Windows系统(Windows 10, 21H2版本)下使用“录音机App”的时候获得了极差的体验(确切的说是软件启动后大概卡死了将近20秒)。于是动手分析到底是什么原因导致,然后发现主要是这个软件启动后疯狂扫描“用户”文件夹下的录音文件用于构建界面中的录音列表,这种密集IO操作导致软件停止响应。作者花了很大的篇幅来吐槽这种行为,对于微软工程师为什么这么做表示莫名其妙。不过由于我们现在的计算机大都使用了固态硬盘,而且我们的习惯一般不会在“用户”文件夹下存放太多文件,所以这个体验应该不太明显。但即使这样,我也同样对Windows系统现在的软件质量感到担忧。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-18-24-45.png" +width="643" +height="310" +loading="lazy" +class="gallery-image" +data-flex-grow="207" +data-flex-basis="497px" +></p> +</li> +<li> +<p><a class="link" href="http://zhangtielei.com/posts/blog-involution-analysis.html" target="_blank" rel="noopener" +>内卷、汉明问题与认知迭代(中文)</a>,作者较为科学地分析了内卷的定义和形态,从而引申出了关于什么是“人生中重要的事”的思考,文章虽然比较长,但也清晰易懂,发人深省。部分引用如下:</p> +<blockquote> +<p>从大的方面说,社会需要创新,个人则需要突破,而创新和突破又都要求我们不断地精益求精。那么,内卷与精益求精是本质上一样的吗?如果不是,两者的区别在哪?</p> +</blockquote> +<blockquote> +<p>在某件事情上花费太多精力,并不一定就是内卷;在无关紧要的事情上花费精力才是真的内卷。</p> +</blockquote> +<blockquote> +<p>汉明早年在贝尔实验室工作。那年春天,他经常和几位同事聚在一起在餐厅吃午饭。吃饭期间,他向其中一位叫Dave McCall的同事提了一个问题:“在你的领域里最重要的问题是什么?”大约一个星期后,再次一起午餐时他继续发问:“你目前正在研究的最重要的问题是什么?” 显然,这位同伴对于这两个问题的回答并不一样。于是他接着问:“如果你当前做的并不是最重要的事,那为什么还要一直花时间投入去做呢?”有了这「灵魂三问」之后,于是——在那个春天接下来的日子里,汉明不得不另找别的同伴一起吃午饭了…… +汉明的问题听起来有些让人生厌,但后来演变成了一个在学术界很受关注的问题——汉明问题(The Hamming Question)。它本来说的是科研选题的事情,但实际上关乎人生最重要的选择。</p> +</blockquote> +<blockquote> +<p>内卷,指的是在低水平的状态下无实质意义的消耗。这里的「低水平」,可能是客观的,也可能是主观的。 +针对主观的低水平状态,我们需要冲破意识层面的障碍,同时把读书、实践和思考结合起来,反复迭代,这样才可能跃升到更高的认知层次上。 +而针对客观的低水平状态,唯有认真对待汉明问题,选择好真正重要的人生大方向,才能避免卷入那些无关紧要的、无谓的消耗中去。这才是真正考验大智慧的时候了。</p> +</blockquote> +</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/mtdvio/every-programmer-should-know" target="_blank" rel="noopener" +>每个程序员都需要知道的</a> ,整理了一份资源合集,包含了软件工程师技能相关的各类知识资源,包括算法、数据结构、浮点、Unicode、时间、内存、分布式、正则、安全、架构、工程哲学、实践、职业发展、软技能。。。等等,以及一些可用于技能训练和学习的站点。看起来非常符合我这种“收藏了就是学习了”的囤积爱好者的胃口。</li> +<li><a class="link" href="https://github.com/jefflomax/word-writer-6-commodore-64" target="_blank" rel="noopener" +>Word Writer 6 6502汇编源码</a>,是一份开源的Word Writer 6的6502汇编源码,可在模拟器下编译运行。用来学习6502汇编是一个不错的项目。上个世纪80年代爆火的计算机Commodore 64是很多复古计算机爱好者(包括我)的最爱,Word Writer 6是该平台上流行的文字排版编辑软件。</li> +<li><a class="link" href="https://almanac.httparchive.org/zh-CN/2022/" target="_blank" rel="noopener" +>HTTP Archive的年度报告</a>,这份报告详细(超级详细)分析了目前全球各在线网页中所使用的技术,从页面中的“CSS”、“Javascript”、“字体”以及用户体验中的“搜索引擎优化”、“移动端支持”等超过20个方面进行展示,内容十分详尽,有种看NBA的进球统计的感觉。</li> +<li><a class="link" href="https://javascriptquiz.com/" target="_blank" rel="noopener" +>Javascript Quiz</a>,一份关于Javascript的小测验,可在线作答,一共十道选择题,全是关于Js语法的常见坑,每道题答完之后都可以点击“info”图标获取关于这道题的详细解释。我试着做了一下,勉强及格。</li> +<li><a class="link" href="https://www.musi-co.com/listen/streams" target="_blank" rel="noopener" +>Streams</a>,这里有一批纯AI创作的音乐,由AI负责作曲和编曲,工程师只是把这些乐谱放入DAW软件中进行混音和录音,完成度很高,听起来相当上头。</li> +<li><a class="link" href="https://learningsynths.ableton.com/zh-Hans/get-started" target="_blank" rel="noopener" +>学习合成器</a>,这个网站提供了一本交互式电子书,讲解了电子合成器的原理,还单独提供了一个交互页面用于调制和体验各种合成器音色。我尝试了一下,真的很直观,在页面中直接可以修改各种振荡器波形、滤波器、LFO等参数,非常适合用于音色合成入门。</li> +<li><a class="link" href="https://llh911001.gitbooks.io/mostly-adequate-guide-chinese/content/" target="_blank" rel="noopener" +>函数式编程指北</a>,在线电子书,讲解函数式编程的范式,以Javascript进行举例,作者风趣幽默,深入浅出,觉得被函数编程概念唬住的可以去看看。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 001 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/Wed, 28 Sep 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/<h1 id="机器文摘-第001期">机器文摘 第001期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/2022-09-28-09-38-31.png" +width="641" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="269px" +></p> +<blockquote> +<p>TurnT是一个颇具创意的唱盘设计,它把智能手机与模拟黑胶的老式音乐播放方式相结合。用家把触笔放在手机屏幕显示的黑胶唱片上,它即开始播放。从内部结构上看,它其实是一个无线扬声器,可以连接到智能手机播放音乐。TurnT这种播放音乐的体验增加了互动的体验感,如同在实际的唱片上一样,挪开唱针会立即停止音乐,将其“向内”移动到手机屏幕上显示的光盘中心就可以播放音乐。要更改歌曲,您可以通过滑动来更改专辑,还可以重新定位。</p> +</blockquote> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://www.sohu.com/a/573073318_121124377" target="_blank" rel="noopener" +>把手机变成黑胶唱机 &mdash; Yamaha发布了与智能手机配合使用的独特音乐设备</a></li> +</ul> +</li> +</ul> +<h2 id="动向">动向</h2> +<h3 id="ai生成图像技术带来的艺术危机">AI生成图像技术带来的“艺术危机”</h3> +<blockquote> +<p>近几周,基于AI生成的图像艺术作品的新闻越来越多,以DALL-E、Stable Diffusion等神经网络模型为代表的图像生成类AI进化越来越快,已达“以假乱真”程度。我也在动手尝试后惊叹他们的生成效果非常逼真和充满想象力。然而很快,此类AI就引起设计师、画师、艺术家的反对(恐慌?)。当然也有很多持积极态度,把它们当作工具加以利用,甚至不乏商业头脑灵活的人士,已经通过AI作画开始获取收益。于是引发了一系列的反应和讨论。</p> +</blockquote> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://www.uisdc.com/unsplash-prohibited-ai" target="_blank" rel="noopener" +>知名图库Unsplash 宣布禁传AI生成图像</a></li> +<li><a class="link" href="https://www.51cto.com/article/719747.html" target="_blank" rel="noopener" +>付费图库集体封禁AI生成图片</a></li> +<li><a class="link" href="https://www.bilibili.com/read/cv18571483" target="_blank" rel="noopener" +>AI 绘画 Windows 本地零基础搭建 Stable Diffusion</a></li> +<li><a class="link" href="https://zhuanlan.zhihu.com/p/560226367" target="_blank" rel="noopener" +>AI数字绘画 stable-diffusion 保姆级教程</a></li> +<li><a class="link" href="https://github.com/ahrm/UnstableFusion" target="_blank" rel="noopener" +>一个包装好的AI绘图开源GUI客户端</a></li> +</ul> +</li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>程序员是计算机的翻译官。他们先是把人类的语言翻译成计算机的语言,现在又教会了计算机使用人类的语言。</p> +<ul> +<li>来自<a class="link" href="https://weibo.com/6827625527/M7vHNl9HD" target="_blank" rel="noopener" +>@t0mbkeeper</a></li> +</ul> +</blockquote> +<h2 id="长文">长文</h2> +<ul> +<li>对很多事情都有兴趣,但是生命的时间有限,怎么办?<a class="link" href="https://news.ycombinator.com/item?id=32628511" target="_blank" rel="noopener" +>这篇hacker news上的讨论(英文)</a>或许能提供一些建议。</li> +<li><a class="link" href="https://www.calnewport.com/blog/2022/05/16/taking-a-break-from-social-media-makes-you-happier-and-less-anxious/" target="_blank" rel="noopener" +>这篇文章提到了一项关于焦虑的研究(英文)</a>。研究表明,远离社交媒体(包括及时通讯工具)一个星期,可以显著提升幸福感、降低焦虑程度;</li> +<li>掌握一项技能需要时间和实践,降低预期,慢即是快。<a class="link" href="https://geekplux.com/posts/how-i-learned-programming" target="_blank" rel="noopener" +>《我是如何学会编程的》(中文)</a>,这篇文章是一位网友分享的关于他学习编程的历程。</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https:///coding-fonts.netlify.app/" target="_blank" rel="noopener" +>coding-fonts</a> ​​​是一个不错的编程字体网站,可以在线预览各种适合编程开发时用的字体,让选择更加直观。</li> +<li><a class="link" href="https://github.com/opendilab/DI-sheep" target="_blank" rel="noopener" +>深度强化学习羊了个羊</a> 这个github仓库开源了一个通过AI强化学习来玩耍“羊了个羊”游戏的模型及代码,结构清晰,效果很棒,用于了解深度强化学习知识非常不错。</li> +<li><a class="link" href="https://github.com/scutan90/DeepLearning-500-questions" target="_blank" rel="noopener" +>深度学习500问</a>这本在线书籍以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,目前在github将近50k颗星。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>基于Markdown格式的知识管理尝试计划https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/Sat, 23 Apr 2022 00:00:00 +0000https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/<h2 id="背景">背景</h2> +<ul> +<li>之前一直有收藏文章并整理自己知识体系的习惯,使用的工具是evernote(印象笔记),十多年来收集数百篇网络文章,自己整理并编写笔记若干篇,已做到目录和标签的基本分类;</li> +<li>之前也有通过每日编写一个markdown文件来记录工作日志、零星日记的习惯,有心得感悟时都直接在工作日志中随手写入,保存起来;</li> +<li>通过github pages写过一些个人博客文章,更新频率不高,主要作为个人笔记在使用;</li> +<li>当前问题如下: +<ul> +<li>evernote用户体验逐年下降,对设备限制较多,且内容存在云端、格式封闭,个人掌控感较差,数据有无法访问的风险;</li> +<li>工作日志中散落的心得感悟没有索引,基本埋没在以日期命名的文件里,不成体系;</li> +<li>收集的数百篇网络文章基本没有进行消化阅读,未形成自己理解的内容;</li> +</ul> +</li> +</ul> +<h2 id="目标">目标</h2> +<ul> +<li>为网络收藏和个人产出的文章建立索引,把之前的“仓库”形成“体系”;</li> +<li>从evernote中迁移出来,所有数据放在本地,并通过在线网盘进行同步;</li> +<li>以纯文本+附件资源作为载体,避免对一种编辑器或工具产生过度依赖;</li> +</ul> +<h2 id="工具选择">工具选择</h2> +<ul> +<li><a class="link" href="https://obsidian.md/" target="_blank" rel="noopener" +>Obsidian</a>,用于建立最基本的知识仓库,编辑自己的知识卡片,并充分利用它的双向链接功能将收藏的文章和自己输出的内容形成体系连接起来;</li> +<li><a class="link" href="https://code.visualstudio.com/" target="_blank" rel="noopener" +>vscode</a>, 用于编辑技术文章、工作日志以及基于插件进行绘图,最终输出内容到Obsidian文件库中;</li> +<li>360网盘,用于在线实时同步存储Markdown的文件夹,任何具有同步文件功能的网盘均可;</li> +</ul> +<h2 id="具体计划">具体计划</h2> +<ul> +<li>整理文章目录:按照文章来源(网络、书籍、心得)、知识层面(技术、生活、哲学)等进行分类,形成树状目录结构;</li> +<li>整理文章标签:每篇文章虽然只属于一个目录,但是可以有多个标签,提升了检索文章的维度。目录作为知识体系的骨架分类,标签则是详细划分(如技能相关的标签就可以有:编程、绘画、音乐、写作,并还能进一步细分);</li> +<li>参考少数派文章<a class="link" href="https://sspai.com/post/62414" target="_blank" rel="noopener" +>玩转 Obsidian 01:打造知识循环利器</a>提到的Zettelkasten笔记法逐步整理多年积累的知识形成以“知识卡”(其实就是具有互相链接关系的Markdown文件)为单位的知识;</li> +<li>[[玩转 Obsidian 01:打造知识循环利器 - 少数派]]</li> +<li>阅读整理多年收集的知识文章,按照大约每周一篇的节奏,产出自己理解后的知识卡片,形成“知识循环”;</li> +<li>如此往复若干时间,不断完善这个体系,工具可更换,载体亦可更换,唯独不变的是探索、求知的心;</li> +</ul>Archiveshttps://sbabybird.github.io/archives/Sun, 06 Mar 2022 00:00:00 +0000https://sbabybird.github.io/archives/《少有人走的路》读书笔记https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Sun, 18 Apr 2021 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<h2 id="简介">简介</h2> +<p>《少有人走的路-心智成熟的旅程》这本书据说是畅销多年,经久不衰,在豆瓣上评分很高。不少人纷纷表示此书给自己带来了很多思考和感悟。我是在今年第二遍阅读了此书,之前大约十年前草草看过一遍,印象不够深刻。但今年再读,书中就有很多文字能够读进去了。虽然作者本身对“爱”的定义和解读我并不完全认同,以及作者也许受宗教信仰的影响,在某些观点上有一定的倾向,但都不妨碍这本书给我带来震撼。</p> +<h2 id="笔记">笔记</h2> +<blockquote> +<p>人生苦难重重。</p> +</blockquote> +<p>开篇就表达了最基本的设定,让我闭上本来想要抱怨的嘴,不得不跟着往后翻看有没有可以解决的答案。</p> +<blockquote> +<p>解决人生问题的关键在于自律。人若缺少自律,就不可能解决任何麻烦和问题。在某些方面自律,只能解决某些问题,全面的自律才能解决人生所有的问题。</p> +</blockquote> +<p>在认真看本书之前,我对“自律”的理解还仅限于在生活上严格要求自己,作息规律、遵守诺言、办事靠谱、简约不浪费。但作者显然不仅仅是这个意思,否则也用不着用很大的篇幅来说“自律”。</p> +<p>看一下作者对“自律”的定义。</p> +<blockquote> +<p>所谓自律,就是主动要求自己以积极的态度去承受痛苦,解决问题。自律有四个原则:推迟满足感、承担责任、忠于事实、保持平衡。</p> +</blockquote> +<p>只有不回避问题、以积极的心态去解决问题,才算作是自律。即便在生活中早睡早起、刻苦读书、勤奋工作,如果遇到问题首先想要逃避,那就不能算是自律。很惭愧,我之前在不少问题上都是以拖延为主要处理方式,本质上还是无法承受或者面对解决问题可能带来的痛苦,那么在读了本书之后,我会有意识地去改变做事原则,就拿上周来说,我终于鼓起勇气去诊所看牙,解决了拖了很久的牙结石问题(虽然智齿还没解决)。</p> +<blockquote> +<p>推迟满足感,就是不贪图暂时的安逸,先苦后甜,重新设置人生快乐与痛苦的次序:首先,面对问题并感受痛苦;然后,解决问题并享受更大的快乐。在充满问题和痛苦的人生中,推迟满足感是唯一可行的生活方式。</p> +</blockquote> +<p>这个话题不仅仅是在本书中提到过,据说有心理学家做过试验,在一群孩子里面寻找具有“推迟满足感”倾向的人(比如能够先忍住不吃巧克力以获取更大的奖励),结果证明这样的人在后续的生活中取得成功的概率要远高于先吃巧克力的人。本书首先强调这个话题,将其作为自律中的第一个原则,我想是因为道理都是相通的吧。很久之前我看过一篇讲解时间管理的文章,里面提到在规划一天的工作时,优先处理最难的那件事(文章中称“先吃掉那只青蛙”),然后当前的工作会越来越简单,这样的方式跟本书中作者所提倡的“推迟满足感”异曲同工。尽可能的正面问题、提早感受解决问题的痛苦,正是执行自律的首要原则。</p> +<blockquote> +<p>不能及时解决自己面临的问题,这些问题就会像山一样横亘在我们心中,阻碍心灵的成长和心智的成熟。很多人显然忽略了这个道理。我们必须面对属于自己的问题,这是解决问题的基本前提。 +指望别人解决自己的问题,也不是明智之举。唯一的办法&ndash;我们应该勇敢地说:“这是我的问题,要由我来解决!”</p> +</blockquote> +<p>这就牵出了第二个原则&ndash;“承担责任”。逃避问题会自然而然的推卸责任,认为这不是自己的问题,始终对于自己扮演的角色缺少清晰的认知。不过作者提到了两种情况“神经官能症”和“人格失调症”,前者属于给自己强加责任,后者属于推卸责任。这么说来,我可能有前者的倾向,很多压力都来源于此。不过作者也提到在复杂的人生道路上,判断自己该为什么事和什么人负责,这是一个永远存在的难题。</p> +<p>还有一种情况是,在有些事情上强加给自己责任,在有些事情上又没有意识到是自己的责任。读到这些章节的时候,我也在反思,当我一旦开始想要抱怨的时候,其实已经陷入“人格失调”和“神经官能”的边缘,要时刻提醒自己,不断评估自己的责任。</p> +<blockquote> +<p>忠于事实是自律的第三条原则。如果我们追求健康的生活和心智的成熟,那我们就要坚定不移地遵循这条原则。我们需要实事求是,杜绝虚假。我们越是了解事实,处理问题就越是得心应手。逃避现实的痛苦是人类的天性,只有通过自律,我们才能逐渐克服现实的痛苦,及时修改自己的地图,逐步成长。我们必须忠于事实,尽管这会带来暂时的痛苦,但远比沉湎于虚假的舒适中要好。我们必须忍受暂时的不适感,追求事实而不是假象,并承受这一过程的痛苦。</p> +</blockquote> +<p>这让我想到了“诚实”,不仅限于不撒谎(这一点实在是难以做到)。但我很快意识到作者所说的忠于事实比不撒谎更重要的是,面对事实,不可活在自己的想象里。虽然我们每个人都有自己的成见,看事情也很难看到全貌,但是不可做不基于事实的幻想,期望问题会自行消失、期望不付出努力就能得到回报。</p> +<blockquote> +<p>你既要承担责任学会推迟满足感,先苦后甜,把眼光放长远,同时又要尽可能过好当前的生活,让人生的快乐多于痛苦。</p> +</blockquote> +<p>这就是“保持平衡”,应该是一种“拿捏”吧。为了保持平衡,作者建议,适当的选择“放弃”。包括放弃过时的观念、习惯。王小波在小说中写道:“人生就是一个缓慢被捶的过程。。。”,如果不能适时的放弃一些东西,那很显然这个过程是相当痛苦的。</p> +<p>先写这么多。</p>《管理自己》阅读笔记https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/Thu, 15 Apr 2021 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/<h2 id="文章介绍">文章介绍</h2> +<p>《管理自己(Management Yourself)》作者——彼得·德鲁克。该文是《哈佛商业评论》创刊以来重印次数最多的文章之一,节选自其著作《21世纪的管理挑战》。</p> +<p>我第一次读到这篇文章,是2013年在<a class="link" href="http://www.zreading.cn/archives/3650.html" target="_blank" rel="noopener" +>左岸读书</a>的博客,当时很快就放入收藏夹,今日再次翻阅,仍觉受益匪浅。</p> +<p>摘抄部分在此记录,并附上自己的一些理解。</p> +<h2 id="笔记">笔记</h2> +<blockquote> +<p>知识工作者必须成为自己的首席执行官。你应该在公司中开辟自己的天地,知道何时改变发展道路,并在可能长达50年的职业生涯中不断努力、干出实绩。要做好这些事情,你首先要对自己有深刻的认识——不仅清楚自己的优点和缺点,也知道自己是怎样学习新知识和与别人共事的,并且还明白自己的价值观是什么、自己又能在哪些方面做出最大贡献。因为只有当所有工作都从自己的长处着眼,你才能真正做到卓尔不群。</p> +</blockquote> +<p>未来社会,体力劳动将逐渐被智能化机械所取代,人人都是知识工作者即将成为事实。每个人都需要把自己当作一个公司来看待,自己就是CEO,包揽人生的“市场”、“营销”、“生产”、“运营”等各项工作,只有从更高的视角来规划自己,才能掌握主动权,避免落入被动接受的局面。</p> +<p>与运营企业一样,经营自己的第一步还是要先了解自己,深刻认识自己的优势与不足,这样无论是制定计划还是付诸行动,才能做到目标明确、行之有效。</p> +<blockquote> +<p>多数人都以为他们知道自己擅长什么。其实不然,更多的情况是,人们只知道自己不擅长什么——即便是在这一点上,人们也往往认识不清。然而,一个人要有所作为,只能靠发挥自己的长处,而如果从事自己不太擅长的工作是无法取得成就的,更不用说那些自己根本干不了的事情了。</p> +</blockquote> +<p>这个观点跟我的直觉是相反的,在读到这段文字之前我以为自己对擅长什么了如指掌,但认真思索之后,才发现事情并没有那么简单,有些自以为是的优点根本不值得推敲,如沟通表达、对技术了解广泛、技术趋势敏感等等。至于真正做什么样的事情非常的得心应手,还真得通过认真分析才行。</p> +<blockquote> +<p>要发现自己的长处,唯一途径就是回馈分析法(feedback analysis)。每当做出重要决定或采取重要行动时,你都可以事先记录下自己对结果的预期。9到 12个月后,再将实际结果与自己的预期比较。我们只要持之以恒地运用这个简单的方法,就能在较短的时间内(可能两三年),发现自己的长处——这是你需要知道的最重要的事情。在采用这种方法之后,你就能知道,自己正在做(或没有做)的哪些事情会让你的长处无法发挥出来。同时,你也将看到自己在哪些方面能力不是特别强。最后,你还将了解到自己在哪些方面完全不擅长,做不出成绩来。</p> +</blockquote> +<p>作者给出了一个据说十分有效的方法,虽然执行起来略显繁琐且时间较长,但应该还值得一试。我个人有记录工作日志的习惯,但停留在时间消耗的记录和分析层面,并未对任务执行的结果进行预期和分析。</p> +<blockquote> +<p>首先最重要的是,专注于你的长处,把自己放到那些能发挥长处的地方。其次,加强你的长处。第三,发现任何由于恃才傲物而造成的偏见和无知,并且加以克服。</p> +</blockquote> +<p>想起了之前读到的另一本书<a class="link" href="https://book.douban.com/subject/1100470/" target="_blank" rel="noopener" +>《现在发现你的优势》</a>,虽然木桶原理说要补充自己的短板,但这里的观点则强调要充分把自己的优势利用起来,并且进行加强,这样才能更好的发挥自己。当然,努力学习新技能、新知识,发现自己的偏见和不良习惯然后克服它们也很重要。</p> +<blockquote> +<p>把预期和实际结果进行比较,也会发现自己不能做什么。我们每个人都有许多一窍不通、毫无天分的领域,在这些领域我们甚至连平庸的水平都达不到。人们,尤其是知识工作者,就不应该试图去完成这些领域的工作和任务。他们应该尽量少把精力浪费在那些不能胜任的领域上,因为从无能到平庸要比从一流到卓越需要人们付出多得多的努力。</p> +</blockquote> +<p>深有体会,不应该将时间和经历消耗在自己即使努力也达不到平庸水平的事情上,然而现实中却有很多人在被动的做着这样的事情,甚至还抱有不切实际的幻想,人生苦短,早日醒悟早日改变。</p> +<blockquote> +<p>我属于读者型,还是听者型?首先,你要搞清楚的是,你是读者型(习惯阅读信息)还是听者型(习惯听取信息)的人。绝大多数人甚至都不知道还有读者型和听者型之说,而且很少有人既是读者型又是听者型。知道自己属于哪种类型的人更少。</p> +</blockquote> +<p>这一段不知是翻译的问题还是作者没说明白,文中并未定义“读者型”、“听者型”这两种类型的工作方式具体是如何工作的,只是通过例子强调了自己工作方式的不同所带来的巨大差异。我的猜测是,“读者型”应该指的是在工作中理性和逻辑思维占上风的人,通常通过阅读逻辑缜密的文字来规划和开展工作,而“听者型”则属于感性思维偏多,通过视觉、听觉来判断事物的发展。</p> +<blockquote> +<p>如果一个组织的价值体系不为自己所接受或者与自己的价值观不相容,人们就会备感沮丧,工作效力低下。</p> +</blockquote> +<p>不要试图改变自己的价值观,这只会让你倍感痛苦,你可以更换环境或者改变组织价值体系。</p> +<blockquote> +<p>成功的事业不是预先规划的,而是在人们知道了自己的长处、工作方式和价值观后,准备把握机遇时水到渠成的。知道自己属于何处,可使一个勤奋、有能力但原本表现平平的普通人,变成出类拔萃的工作者。</p> +</blockquote> +<p>机会留给有准备的人,但前提是这个人认识到自己的长处、工作方式、价值观,所谓的把握机会,是了解了这些之后才能识别到机会。</p> +<blockquote> +<p>一般来说,一项计划的时间跨度如果超过了 18个月,就很难做到明确和具体。因此,在多数情况下我们应该提出的问题是:我在哪些方面能取得将在今后一年半内见效的结果?如何取得这样的结果?</p> +</blockquote> +<p>千里之行始于足下,如果决定开始行动,也不可把计划定的太远,自己给自己安排近期可行的执行目标,对效果要有清晰的预期,对如何取得效果应有详细而具体的计划。</p> +<blockquote> +<p>人与人之间相互信任,不一定意味着他们彼此喜欢对方,而是意味着彼此了解。因此,人们绝对有必要对自己的人际关系负责。这是一种义务。不管一个人是公司的一名成员,还是公司的顾问、供应商或经销商,他都需要对他的所有共事者负起这种责任。所谓共事者,是指在工作上他所依赖的同事以及依赖他的同事。</p> +</blockquote> +<p>成熟的处理人际关系,同样需要问文章开头的三个问题,了解他人或者共事者,是我们的义务和责任。</p> +<blockquote> +<p>在一个崇尚成功的社会里,拥有各种选择变得越来越重要。从历史上来看,却没有“成功”一说。绝大多数人只期望坚守“适当的位置”。唯一的流动性是向下的流动性。然而,在知识社会里,我们期望每一个人都能取得成功。这显然是不可能的。对许多人来说,能避免失败就行。可是有成功的地方,就会有失败。因此,有一个能够让人们做出贡献、发挥影响力或成为“大人物”的领域,这不仅对个人十分重要,对个人的家庭也同样重要。这意味着人们需要找到一个能够有机会成为领袖、受到尊重、取得成功的第二领域——可能是第二份职业,也可能是平行的职业或社会创业。</p> +</blockquote> +<p>在飞速发展(或者说在加速发展)的时代,人人都在焦虑,仿佛竞争、内卷根本无法避免,但如果合理的认识自己、管理自己,并且去用心经营的话,也许人人都有机会可以在擅长的领域做出闪光的事情,获得一份自己独有的成就。</p> +<blockquote> +<p>自我管理中面临的挑战看上去比较明显,甚至非常基本,其答案可能不言自明,甚至近乎幼稚。自我管理需要个人,尤其是知识工作者,做出以前从未做过的事情。实际上,自我管理需要每一个知识工作者在思想和行动上都要成为自己的首席执行官。</p> +</blockquote> +<p>最后一段很关键,“做出以前从未做过的事情”,即行动最为重要。这也是为什么我会花费一个小时的时间,从头又阅读一遍这篇文章,并摘录下来加以分析理解的主要原因。</p>2020年个人总结https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Wed, 10 Feb 2021 00:00:00 +0000https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h2 id="保持好奇心">保持好奇心</h2> +<ul> +<li>大概是2011年左右,我把QQ签名改成了“好奇、求知、创造”,从此再也没有改变过,我所喜欢的、热爱的、欲罢不能的事情,都被这三个词涵盖了。</li> +<li>十年过去了,很高兴自己还能保持一颗探索未知、热爱学习的心。</li> +</ul> +<h2 id="读书">读书</h2> +<ul> +<li>现在听书比读书所占比重大,阅读时间缩水明显,翻开电子书的时间都有限,更别提手不释卷。</li> +<li>年初重温《三体》,即便很多情节已烂熟于心,重读仍有新发现,休闲阅读而已,只为放松大脑。</li> +<li>其余时间陆续阅读一些杂书《原则》、《随机漫步》、《菜根谭》、《曾国藩传》等若干。</li> +<li>唯一触动较大的是年末再次翻看《计算机程序的构造和解释》,此次配合网上的公开课视频进行,跟随原书作者课程讲解节奏,对于知识的理解大有帮助,视频虽然年代久远,但知识历久弥新,比起科技业广泛应用的新兴技术,书中的计算原理以及相关的思想更像是对应了武术的“内功心法”,一旦有所突破,则在上层应用产生巨大的提升,与工作学习都大有裨益,其中玄妙不可言说。</li> +</ul> +<h2 id="摄影">摄影</h2> +<ul> +<li>户外活动大为减少,往年春天乃摄影高产期,今年却苦于疫情无法外出,摄影爱好被迫搁置,2020年对摄影技术的练习几乎停滞,无心仪作品产出。</li> +<li>卡片相机已很少使用,手机拍摄已是主流,器材追求已解毒,但如有更新的街拍机问世,心头恐怕还是会痒。</li> +<li>有一事可提,今年独自吃饭次数很多,每次都拍食物照一张,累积下来一年竟拍了几百。</li> +</ul> +<h2 id="生活">生活</h2> +<ul> +<li>压力与机遇并存,最大收获是面对挫折、困难更坦然,2020不愿多提。</li> +<li>记忆力确实有下降之趋势,回忆起来竟无亮点,亦可能本身就比较平淡。</li> +<li>发现凡事都要低调不吭声的重要性,切记四处宣扬,否则就会出现“说出来就不灵”的魔咒。</li> +</ul> +<h2 id="学习">学习</h2> +<ul> +<li>对8bit老古董计算机的兴趣不减,四处搜寻相关知识,弄了一大堆模拟器,研究过程中竟对之前所学计算机组成原理有了新的认识和理解,喜出望外,本该大学之时就应掌握的技能,到现在再学也不迟,重在理解。</li> +<li>创意类软件如blender等也持续浅尝,进步缓慢,但入门已没问题,缺少作品练习,安排即可。</li> +<li>儿子已入大学,借用假期时间,我教他编程,他给我讲解高数,算是技能交换了,费曼学习法的一个很直接的应用案例。</li> +<li>越发觉得B站是个学习的好地方,该站以后的发展不可估量,但从教育来看,很可能迅速超越国内二流大学,或者未来改变大学的形态也未可知。</li> +</ul> +<h2 id="后续计划">后续计划</h2> +<ul> +<li>希望可以继续通过写字记录学习的知识,保持一定量的文字输出,如条件实在有限,配合语音录音也可。</li> +<li>在自己热爱的事情上,持续学习,关注一下作品输出(持续开新坑),早日成为心目中的“全栈工程师”、“三级工程师”(可参见吴军《硅谷来信》中的定义)。</li> +<li>限制烟酒摄入,保持每日的活动量,能走路就不坐车。</li> +</ul>2019年个人总结https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Wed, 01 Jan 2020 00:00:00 +0000https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h2 id="2019年个人总结">2019年个人总结</h2> +<h3 id="起头">起头</h3> +<p>2019年过的比往年还要更快,今年的新年假期只有一天,正好用来写总结。</p> +<p>2019年是充分践行“在事儿上磨练自己”的一年,对目标有了更清晰的迭代,在行动上更加倾向于知行合一,继续缩减无效信息的获取和消费,挤出精力去做对自己更重要的事情。</p> +<p>有多少成绩不好说,但是多少有一些感悟。</p> +<h3 id="摄影">摄影</h3> +<p>每年的春季,都会有一种强烈的想要深入摄影的感觉。最近几年越来越明显,一方面可能跟大量的摄影器材新产品发布有关,另一个方面,环境的复苏,春天代表着一种生机勃勃的精神,敏感的人们便容易感受到事物的变化。</p> +<p>还有就是,可能因为春天比起冬天来比较。。。不冻手。</p> +<p>今年大概按了四五千次快门吧,能看的入眼的也有个百十来张,我对摄影的定位就是记录日常生活,发现并捕捉生活中的美好瞬间,如果让我挑一张自己比较满意的话,就是下面这张:</p> +<p><img src="https://upload-images.jianshu.io/upload_images/25416-97902ee0d97e0abf.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="DSCF2721.JPG" +></p> +<p>在地铁上的抓拍,当时感觉这个包比较有趣,于是就拍了。</p> +<h3 id="思考">思考</h3> +<p>大部分繁忙的人们,每天用在思考上面的时间都是很少的,或者说高质量的深度思考太少,导致了一种错觉,没有时间闲下来,仿佛进入了一个繁忙的死循环(这里推荐一本书《稀缺》,关于这种现象还有一种装逼的说法叫“内卷化”)。</p> +<p>许多比较成功的人士,并非这么繁忙,相反地,他们会腾出大量的时间用于思考,以思想来指导行动,给自己留出“空余”的时间,然后“行动”才有意义。</p> +<p>写到这里,我又想起一件事儿,比如装修房间,需要规划空间的布置,一定要规划空出来的部分跟实际功能使用的比例,不能一味将空间沾满用干净,那样的话整体就会感到很压抑,而如果空余的部分跟使用的部分有一个合理的平衡,就会整体感到档次和品质提升了不少。</p> +<p>这种“用”与“不用”的平衡可以说到处都能体现,摄影中存在“正负空间”的说法,也有“影调平衡”的说法,都是在讲究一种平衡。</p> +<p>我们对自己日常工作、生活乃至人生规划,都要向这种平衡去靠拢,每年、每月、每天的时间分配也要考虑到这种平衡,因为如果一味的用满,则会给整体的效能和品质大打折扣,看似繁忙充实,实则得不偿失。</p> +<p>所以,今年我更加注意留出时间给自己,深度思考,尽力争取空闲时间,把空闲当作一种保持平衡的“负空间”。</p> +<h3 id="早起">早起</h3> +<p>今年加强了早起这个习惯,起床时间直接拨到了早晨6点,经过一段时间练习,现在就算不用闹钟也可以准点起来,睡眠质量不降反升,真是一举多得。</p> +<p>起床早的话,感觉精力充沛,精神状态也很不错,睡懒觉并不能带来充分的休息,反而早起的好处却很多,比如时间上的从容,交通不拥挤,吃饭、办事等都比较轻松,能够感觉每天的有效时间得到了延长。</p> +<p>我这么做倒也不是因为自律,而是想给自己更多的时间和机会去学习和体验,在我看来,外部的物质环境远没有自己的精神体验重要,随着时间进程的加速,谁都能意识到生命不是无限的,多做一些自己喜欢的事情比什么都重要,安逸可以适当体验,但更多的是,去观察和创造。</p> +<h3 id="健康">健康</h3> +<p>心态平和所带来的第一个福利竟然是体重提升了10斤左右,半年时间内从65公斤飙升至70公斤,搞得有点儿措手不及,怀疑是不是因为工作地点搬迁之后周边好吃的有点儿太多了的原因,再也不敢相信随便吃都不会胖的神话,从能看清肋骨到能看见肉褶儿不过是几顿羊肉汤的功夫。</p> +<p>在可供我焦虑的选项里除了脱发,又增加了一项。</p> +<h3 id="手机">手机</h3> +<p>今年将我的电子产品全线更换为自主品牌华为,一方面是苹果手机在创新上已经不思进取,在将开发团队外包给印度之后,其系统的稳定性和体验均出现大幅下滑,苹果公司本身的吃相也越来越难看,另一方面,国产手机现在做的确实不错,体验很好,而且就算是华为的高端手机,也比国外的那些手机“物美价廉”,所以支持国产很正常。</p> +<h3 id="读书">读书</h3> +<p>除了一些专业的工具书籍以外,今年没有买任何的“闲书”,但是翻出了以前买来的重读了一些。</p> +<p>这个可以深入说一说。</p> +<p>比如今年又重读了《老人与海》,算是想明白了,为什么海明威仅凭借这一部中篇小说就能获得诺贝尔文学奖。以前上学的时候看此书,觉得吧,没意思,一个关于捕鱼的故事有什么可看的呢?但多年以后又重新翻看的话,体会就大不相同了。</p> +<p>今年年中的时候在老家跟几个老友小聚喝酒,仿佛一夜之间,感到我们这一代人的成长,大家忽然都成了家庭里的核心力量,所面临的压力陡增,无论是父母健康还是后代教育或者是亲戚邻里帮扶,我们这一代正在成为家里各项事务的第一责任人。</p> +<p>唏嘘之余,我才想到,我们这些人,哪一个不是《老人与海》中的那个捕鱼的老人呢?我们每个人都在等待生活中属于自己的那条大鱼,或者都在跟自己的那条大鱼在激烈搏斗,小说中的老人跟大鱼僵持不下,连换个姿势都成为一种奢侈,我们在面对各种生活中的琐事时又何尝不是跟老人当时一样的境遇呢?</p> +<p>所以说《老人与海》这部小说能够给人力量,我们都在跟“大鱼”搏斗,这是我们的使命。</p> +<p>其他的书也陆续看了一些,但都侧重于“闲书”,比如《数学之美》、《巨人三传》、《人类的群星闪耀时》,等等。</p> +<p>不以功利心读书是基本原则,将至少保持一百年不动摇。</p> +<h3 id="学习">学习</h3> +<p>说到了学习,为工作而学的不算,今年在私下里研究最多的就是计算机图形学了。</p> +<p>由于缺少大块的时间,系统性学习是不可能了。</p> +<p>只能利用一些碎片时间,比如在下班路上阅读一些开源代码和论文,断断续续的。耗费了挺长时间才把空间坐标转换的矩阵给推演明白。</p> +<p>不过值得欣慰的是,编程也没落下,利用周末时间充分发挥理论结合实际的思想,我竟然亲手撸了一个基于web画布的光栅化渲染器,很原始,但是可以渲染obj格式的线框和三角面。</p> +<p>但毕竟平时很忙,估计等到可以加上光照和着色器的时候还得等几年了。</p> +<h3 id="结尾">结尾</h3> +<p>总的来说,认真做好每件小事,可以算是今年的主要指导思想,放平心态,不对自己要求太高,重点是投入进去,以谦虚的心态,搞懂小事,做好细节,即便是做的事情不多,成果也不大,也没关系,若能将小事做好,也能给自己的内心带来平静。</p> +<p>以往的习惯,往往是给自己定义较高的完美目标,结果就是不能完全令自己满意,时间长了难免带来较多负面情绪,随着年龄的增长,逐渐意识到自己的平凡和普通,虽说不是上和自己或者世界和解,但也逐渐更加了解世界和了解自己。</p> +<p>无论别人怎样看待,自己的感受才是最重要的,所谓幸福也主要就是一种自我的感受,只有自己才能对自己负责,任何人的建议都是首先站在建议人那一方的利益考虑。所以认真对待该做的事情,同时不违背自己内心的意愿,每一分钟都不是在准备生活,而是就在生活之中。</p> +<p>抛开不可抗拒之因素,仍然以自己的节奏为中心,抓住重点,继续学习和深入实践,饭一口口吃,事儿一件件做,只要小事能推进,日积月累也定会带来不小的收获。</p>线性回归和梯度下降https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/Sun, 02 Jun 2019 00:00:00 +0000https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/<h3 id="有监督学习的两种主要任务分类和回归">有监督学习的两种主要任务(分类和回归)</h3> +<ul> +<li>有监督机器学习任务主要分为两种,一种是分类任务,一般是通过学习算法实现对未知数据的分类甄别,比如判断是男性还是女性,预测明天会不会下雨等等,预测结果是离散的分类。另一种是回归任务,用于预测一个具体的值,比如房价、年龄等等,预测结果是连续的值;</li> +<li>解决回归任务比较常见的算法就是线性回归算法;</li> +</ul> +<h3 id="线性回归">线性回归</h3> +<ul> +<li>线性回归是最典型的用于回归任务的机器学习算法。它的基本原理是基于,任意一个为n的值,可以通过一个n-1阶的多项式进行拟合;</li> +<li>线性回归的算法的目标是根据已知标签数据,训练一个预测函数f(a, b),使得x输入带入ax+b这样的多项式可以得出需要预测的值;</li> +<li>所以目标是找到合适的a和b(从数学语言的精确描述来说,一般用别的符号代替,为了方便记录,我使用a和b);</li> +<li>为了找到合适的a和b,需要定义一个损失函数(也有称为代价函数的),J(a, b),用于判断a和b是否合适,比较简单的有“方差均值”法;</li> +<li>方差均值指的是,所有样本带入预测函数f,将预测值与实际值相减,取平方,求和再求平均数(暂时不知到markdown里如何加入公式);</li> +<li>那么带入损失函数,就是意味着,找到合适的a、b使得刚才那个方差均值小于一个阈值(接近最优);</li> +<li>线性回归本质上,是在平面坐标系里找到一个与样本匹配的直线,这样基于这个直线,即可预测未知的值;</li> +</ul> +<h3 id="梯度下降">梯度下降</h3> +<ul> +<li>如何找到合适的a和b,一个一个地去试是不可能的(无穷多的计算量);</li> +<li>比较典型的算法是“梯度下降”,又是牛顿起的头;</li> +<li>比较生动的描述是,想想一个三维空间图形,X和Y平面是有a和b的值构成,Z轴是损失函数的值,值最小的部分(在图上就最低的部分,像一个山谷)就是最优解;</li> +<li>从山顶的某个点上,环顾360度,找到适合下山的一小步,一点一点儿走向山谷最低处,有点像慢慢走楼梯,所以叫梯度下降;</li> +<li>从我的体会来看,这个方法有点像牛顿那个计算平方根的迭代法(根据一个猜测值,然后通过迭代公式寻找一个更加接近正确值的值,直到误差降低到合适范围);</li> +<li>从微积分的角度,就是找到损失函数J在最初尝试的那个点上的切线,并通过它的斜率(也就是导数值)乘以一个系数a,逐步逼近最低点(切线斜率为零)的过程;</li> +</ul>机器学习的学习准备https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/Sat, 18 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/<h3 id="机器学习的概念">机器学习的概念</h3> +<p>机器学习是人工智能的一个分支,是近年来逐渐具备实用性的各种人工智能应用的基础。其本质是(我目前的个人理解)利用针对已知的数据集合抽取采样特征,然后利用某种数据模型(核心是某种算法:如kNN、SVM、朴素贝叶斯等)对数据进行计算处理,得到一组可以预测未知数据集特征的参数和手段,从而可以对数据进行预测判断的一种数据处理方法。</p> +<h3 id="机器学习相关的名词">机器学习相关的名词</h3> +<ul> +<li>神经网络:是机器学习的一种实现方式,从概念上来说,小于“机器学习”,但是由于其在图像识别、语音识别、语言翻译等领域的优异表现,以至于现在提到机器学习就认为是神经网络,实际则不然,机器学习的概念更大,更加基础,是实现神经网络应用的基础理论和方法;</li> +<li>深度学习:是神经网络的应用特例,同样是在应用层表现优异,可以理解为神经网络的一种实现;</li> +<li>大数据:机器学习的数据处理基础支撑,近年来机器学习在应用层面表现较好主要得益于大数据技术的发展,可以使得模型训练内容量级增加,极大的提高了模型准确度;</li> +<li>n维向量:来自线性代数,在机器学习中起到重要作用,在机器学习中一般用于各种特征数据的载体,在不同的算法过程中传递和计算。</li> +</ul> +<h3 id="机器学习相关的工具">机器学习相关的工具</h3> +<ul> +<li>编程语言:目前比较流行的是Python,因为有比较丰富易用的程序包,很多科技公司也开源了较为成熟的框架,再加上Python语言本身的简单易上手,使得Python成为这个领域最流行的语言。当然C和C++、Java还是实现各种算法的根基,Python更多是提供了一种调用接口;</li> +<li>iPython:Python语言的交互控制台,可以较为方便的测试、调试Python程序,有较强的交互功能,比语言发行版自带的强大;</li> +<li>jupyter:提供Python语言的Web交互界面,通过网页即可编写代码,并及时反馈执行结果,由于是B/S架构,所以可以使得运行时跟开发环境分开。编辑界面同时支持基于Markdown语法的文档编写,使得“文学化”编程成为一种可能,非常适合用于科研人员的汇报材料或论文;</li> +<li>TensorFlow:谷歌开源的机器学习框架,快速灵活部署机器学习应用,可以应用与大规模、工业级场景;</li> +<li>keras:基于Python编写的高级神经网络API,属于对机器学习的深度封装,如果以学习机器学习原理为目标的,不建议使用,还是先手动将若干种核心算法实现一遍比较深刻;</li> +</ul> +<h3 id="预期的学习方法">预期的学习方法</h3> +<ol> +<li>通过阅读相关的书籍,对于概念有所了解,这个过程可以是粗糙的浏览,不求详细的理解各种原理和算法;</li> +<li>尝试一些教学视频,了解实操的基本流程,对于自己读书得到的概念进行验证,修订理解,并熟悉基本工具的使用(如Python的numpy、plot等);</li> +<li>细读书籍,按照书中的事例进行实操,并尝试推导算法的基本原理,理解后,形成自己的文字;</li> +<li>定义简单的任务,贯穿数据准备、数据清洗、特征值提取、模型建立、模型应用各个阶段,一般来说可以是手写文字识别,或者给新闻文章分类等;</li> +<li>循环和迭代这个过程,一边输入信息,一边将学到的东西结合思考,形成有效的输出(文字、视频等);</li> +</ol>致儿子成人礼的一封信https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/Thu, 09 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/<p>序言我儿,见信如面。在这个即时通讯如此发达的时代,我选择写一封长信,以表示对你即将成人的祝贺。</p> +<p>我陷入沉思了一会儿,考虑该给你讲些什么道理。但我很快意识到,“道理”这种东西,靠听和说没有用,只能自己去感悟。而我自己也十分讨厌被说教,所以我会克制想要给你讲一番大道理的冲动,尽量避免不对等的交流形式。</p> +<p>我想我还是跟你分享一些我对这个世界的思考和想法吧。</p> +<p>茨威格在《人类群星闪耀》中写到“一个人最幸运的事情就是在他思想最活跃、精力最充沛的时候找到了他的人生使命”。看来大家都把寻找人生使命当做比较重要事情来看待。姑且就当做我这封信的主题吧。</p> +<p>寻找人生使命本质上是通过尝试在一些方向上的努力来实现对人生价值和意义的探索,每个人或多或少、或深或浅都要做这样的尝试。</p> +<p>你们学校把“成人礼”包装成一个重要的人生节点,想必是希望给你们一些感觉,让你们意识到,从这一刻起,你们开始对自己的行为负责,要开始尝试去寻找和探索了。</p> +<p>那么该如何去探索,我有一些自己的看法。</p> +<p>首先要相信一点,那就是无论是否还在上学,学习和完善自己都是一辈子的事情,不存在一个可以停止学习的时间点。就我个人来说,无论是读大学的时候还是参加工作以后,从来没有在提升自己方面有过松懈的想法,甚至我感觉工作之后对知识的渴望更加强烈了,学到的东西也比在校园里多得多。</p> +<p>当然了,学习方式跟你目前在学校这种还是差别挺大的,强度也没有那么辛苦。而且工作之后的这种学习方式才是我最认可的方式。什么方式?</p> +<p>我们一起讨论过几次王阳明的“知行合一”,为了不扯那么远,简单来说,刚才提到的学习方式就是老王早就提出的“事儿上练”。通过不断地实践,各种经历,才是学习知识的源泉。这也是为啥我在开头就说道理只能感悟不可说教,怎么感悟?事儿上感悟!经历多了自然懂。</p> +<p>所以也不用一下子被“寻找人生使命”这种“宏大话题”给吓住了,保持学习的心态,放松大胆地去经历各种事情,就是这么个过程。</p> +<p>然后呢,就是在做事的过程中,保持一颗善良、为他人多着想的心。关于这一点,我的体会是,“助人为快乐之本”真的不是一句空话。远的不说,你看你爷爷奶奶平日里多么乐于助人,用乐善好施形容他们一点儿也不为过。他们因此收获了广泛的认可,也给这个家庭带来了积极向上的生活氛围,对你老爹我向好的方面发展也起到了关键作用。</p> +<p>再有一点,也是我个人非常推崇的,就是最好能时刻对世界保持强烈的好奇心。</p> +<p>刘慈欣在短篇科幻小说《朝闻道》中讲了一个故事。外星高等文明在监视地球人类进化的过程中,距离现在几十万年前的一个原始人抬头望了望夜晚的天空,凝视了一会儿。这看似随意的行为使得外星人的警报器响了起来,因为这意味着,人类的好奇心已经发展到了星空,同时也意味着人类文明将要开始爆发式发展了。可见好奇心的重要。</p> +<p>好奇心一方面是推动我们前进的动力,同时也使得我们平凡的生活变得不那么枯燥。</p> +<p>你能经常提出一些有时连我都无法回答的问题,这让我也颇感欣慰,有些答案注定要自己去摸索着发现,我希望你能多多提问,也多自己思考,不用去管答案是什么。</p> +<p>稀稀拉拉写了这么多,估计你也不能理解太多,我像你这个年纪时估计也理解不了。不过也没关系,只是给你讲讲我个人通过思考得到的观点而已,说不定你自己以后有不同的发现,当然如果能在你以后的发展中起到一点儿提醒作用,也就挺好了。</p> +<p>希望你这次“成人礼”活动就像人类文明那一次一次对星空的凝望那样,使你能够进入人生的一个新的高速发展阶段。</p> +<p>祝:学习进步,健康成长!</p> +<p>二零一九年五月九日 写于贵阳机场</p>《高效能人士的七个习惯》读书笔记https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Tue, 07 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<ol> +<li>积极是内在的,是选择的自由,是人性中最不能剥夺的部分。</li> +<li>以终为始,是要知道自己要什么,并以原则为重心,所做的决策是主动选择的结果,而非被环境所迫使的结果。</li> +<li>人类的四个天赋分别是,自我意识,良知,想象力,独立意志。</li> +<li>第四代时间管理,以原则为中心,以周为单位,设定自己所扮演的各项角色欲达成的三个重要成果,安排出每一天的第一要务,更理想的是当作每一天的特殊约会,全力以赴。每周都回顾上周周日程完成情况以及制定新的周日程,并每日调整。</li> +<li>对人不可讲效率,对事才可如此,对人应该讲效用,即某一行为是否有效。</li> +<li>以原则为重心,以良知为导向(人比事儿更重要),针对个人独有的使命,平衡发展生活中不同角色,全盘规划日常生活。</li> +<li>要想充分授权必须要具备的默契和共识包括: +<ol> +<li>预期成果。</li> +<li>应遵守的规范。</li> +<li>可用的资源。</li> +<li>责任的归属,约定考评的标准和次数。</li> +<li>明确的奖惩制度。</li> +</ol> +</li> +<li>在双赢协议中,对以下5要素应该有明确的规定。 +<ol> +<li>预期结果,确认目标和实现,方法不计。</li> +<li>指导方针,确认实现目标的原则,方针和行为限度。</li> +<li>可用资源,包括人力,财力,技术或者组织资源。</li> +<li>任务考核,建立业绩评估标准和时间。</li> +<li>奖惩制度,根据任务考核确定奖惩。</li> +</ol> +</li> +<li>制定好目标之后,还要看你的组织体系是否与目标相符合,否则就要调整系统体系。</li> +<li>我们总是喜欢匆匆忙忙地下结论,以善意的建议快刀斩乱麻地解决问题。不愿意花时间去诊断,深入了解问题的症结。</li> +</ol>《管理十诫》读书笔记https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Tue, 30 Apr 2019 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<ol> +<li>首先要通过分析知道问题是什么,才能真正洞悉解决问题的办法。</li> +<li>归根结底,所有公司最后的生命线都是信任问题,顾客要相信企业生产的产品正如它所许诺的那样好,投资者要相信公司的管理层是有能力的,员工要相信公司管理者能够兑现承诺。</li> +<li>他们根本想不到人都有缺陷,包括他们自己在内也都不是完美的。</li> +<li>问题的关键不在于机器会不会想问题,而在于人会不会想问题。</li> +<li>真正让我们陷入麻烦的并非那些我们根本不懂的东西,而是我们一知半解的东西。</li> +<li>有一种心理偏见叫做肯定的陷阱,它指的是我们努力想证明自己的观点,而非找出自己观点中的错误之处。</li> +<li>深思熟虑并不是浪费时间,而是必要之举。</li> +<li>除非有人能停下来想一想,否则一再犯同样的错误是很容易的。对每个错误都有必要进行反思和总结。</li> +<li>如果你能承认自己犯了错误,承认自己并不是战无不胜,那么你反而能得到好处。</li> +<li>管理是一门艺术,而不是一种科学。如果遇到那些想要量化人类行为的专家,你就要保持警惕了。</li> +<li>行业中的每个公司都应该力争标新立异,让自己变的与众不同,而不是随大溜。</li> +<li>要憎恨组织里的官僚作风——通用电气公司杰克·韦尔奇写给股东的信中写道。如果你想一事无成的话,那就让行政流程占据主导地位好了,去崇尚官僚主义就行了。</li> +<li>不能创造生产力的工作越努力越失败,要时刻警惕并搜寻身边那些并不能创造生产力的工作。</li> +<li>每个公司其实主要就是为现有的客户提供优质服务并努力开拓新客户群。我们在花每一分钱、设立每一个部门或是接手每一个项目时,都要问自己一个基本的问题:这能帮我们带来新客户或是为客户提供更好的服务吗?</li> +<li>将注意力放在失败上是最大的悲观主义。只要稍稍抬起你的头,改变一下你的态度,那么你的世界观就会发生巨大的变化。</li> +</ol>2018年个人总结https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Tue, 01 Jan 2019 00:00:00 +0000https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h1 id="2018年个人总结">2018年个人总结</h1> +<h2 id="起头">起头</h2> +<p>同样是元旦假期最后一天,坐下来给自己写总结。去年写总结的时候,我给自己上一年定义的关键词是“认识自己”,2018年我觉得关键词可以是“改变自己”。刚刚翻看了2018年产生的大量工作日志和心得记录,一边感慨时间过的飞快,一边在脑海里飞快回忆这刚过去的一整年,这个在网上被大家普遍吐槽、觉得艰难的年份。</p> +<h2 id="关于资讯">关于资讯</h2> +<p>2018年最令个人满意的一件事儿是戒掉了对互联网资讯的依赖。整整一年几乎没有主动上网刷过任何资讯,比2017年还要彻底,在手机上删掉了各种资讯软件,平时也很少刷新微信的朋友圈(偶尔发一发)。最开始的时候会感到不适应,但是一旦觉得资讯恐慌的时候,就强迫自己利用互联网学习知识,或者处理日常事务,一年下来节约了不少时间。</p> +<p>这么做的主要原因是自己认识到互联网资讯正在给人们贩卖大量的消费冲动和焦虑。</p> +<p>我觉得互联网是一个信息放大器,总是被掌握了话语权的人将自己的感受放大然后传播出去,如果这些人感到了焦虑,那么这些焦虑就会通过网络放大若干倍,去影响更多的人,给更多的人带来焦虑。那么现在是什么人在掌握互联网上的话语权呢,没错,就是我们这些80后。回过头去检查各年的网络热词,几乎是80后的人生成长轨迹,大龄了,剩了,结婚了,生娃了,学区房了,中年了,油腻了,佛系了,等等。</p> +<p>戒掉信息并不意味着远离了这些,只是可以更加正确的认识这个世界,不再陷入以前的误区、觉得喧闹的只剩下一种声音。</p> +<h2 id="思考与认知">思考与认知</h2> +<p>苏格拉底说,未经思考的人生不值得度过。如果说2017年是通过思考来认识自己的话,2018年就是将思想转变落实到行动上的一年。可以说是真真正正的用思考来指导行动的一年,向“知行合一”又推进了一丢丢。</p> +<p>以前知乎上有个关于“优秀的人不够自信”的问题,问为什么有的人明明很优秀却仍然觉得不够自信,要是搁在从前的认知,我会觉得答案很明显,会给出极左极右的评判。现在不这么认为了,没有绝对的两极,大多数人处在中间,符合正态分布,可能有些人更加偏向于“优秀而不自信”一些。造成这样的原因跟从小接受的教育有很大的关系,即“活在他人对自己的期望之中”,我几乎可以断定自己此生难以摆脱这种心理了,只能在正确认识到这种情况之后尽可能的去调节。通过多做事情去磨练自己,并不断用自己的目标去替换别人的期望,目前正走在这样的改变之路上。</p> +<p>找到自己的目标不存在诀窍,更不是自己坐在家里冥思苦想就可以,而是要不断去尝试,多做事情,去接触更多以前没有接触到的事物或者体验,只有这样,才能激发自己的潜力,遇见自己真正热爱并愿意投入精力与时间去奋斗的事情。</p> +<p>想明白这些之后,我主动多做了一些事情,可以明显感受到通过思考指导做事给自己带来的成长。</p> +<h2 id="压力出口">压力出口</h2> +<p>每天大约能记录1k字的工作日志,当然里面不全是工作流水,有很多是临时书写的心得体会或者思考碎片。坚持这么做的原因是发现写作可以作为疏解压力的一个出口,既能整理思路,又能缓解压力,真是一举两得。</p> +<p>我称这种写作为“随意写作”,或者叫释放心理垃圾,《写出我心》这本书里说过,刚开始写不好没关系,因为需要先把内心里的垃圾信息倾倒出来,先把污水排出来然后才可能有干净和高质量的东西出来,这个比喻可能不太恰当,但是对我比较触动,也正好作为我接受自己水平很烂的借口。</p> +<h2 id="看书让我认可了自己的爱好广泛">看书让我认可了自己的“爱好广泛”</h2> +<p>看书当然是日常生活中不可缺少的一部分,今年开始看阿城的作品。果然不简单,我还没有遇到过这么容易读下去的文字,可以说是流畅至极。阿城写这些文字就像是坐在这里跟你唠嗑似的,娓娓道来,而且段落之间完全感觉不到过渡突兀,天南海北扯来扯去最后还都能很好地收尾,讲到具体事例往往还能极为精准地引用古往今来学者或者艺术家的典故,说的煞有其事,看的引人入胜。</p> +<p>我觉得他之所以能够写出这么多东西应该跟肚子里有货有关,而且这些货还不仅仅是简单的灌装进去,码放整齐。应该是经过消化和思考加工,已然形成一套体系,里面既包含个性鲜明的观点,也体现他的三观。在聊天喷空之余偶尔还不忘揶揄几句当下的社会或者某些人群,幽默感着实了得。</p> +<p>读这样的作品还有一个感觉,就是越读越觉得自己对历史和人文了解甚少,往远了说有诗经论语等经典,往近了说有明清小说或者近代大家,东方有儒家道家佛家文化,西方有心理学、哲学、文艺复兴的科学等等,如果做不到对这些东西融会贯通,那么即使读到好看的文字,能看懂作者的议论也仅仅是瞧个热闹,过后很难产生更加复杂的化学反应,所以好书又会给人提供了解历史和文化的动力,仅从这一点来说,好书和好作家就功德无量了。</p> +<p>我以前总是担心自己的知识太杂,有种什么都想了解一点儿又什么都不精通的感觉,总是提醒自己要缩小自己的关注圈。看了阿城的作品后,感觉,既然天性之中有那么强的求知欲,又何必压抑自己,不妨也多做尝试,管他什么音乐绘画还是神学哲学,只要有兴趣就大胆去了解。</p> +<p>感谢阿城能够让我醒悟,不必为自己爱好广泛而烦恼,更不必为没能精通若干技能而悔恨,专有专的强,杂也有杂的好。</p> +<h2 id="几点感悟">几点感悟</h2> +<h3 id="关于改变">关于“改变”</h3> +<p>推动事件向自己希望的方向发生是有难度的,也是考验和锻炼一个人综合素养的绝佳机会。观察这么多伟大的领导者,没有一个不是在推动变革中成长起来的,所以成功有很大的因素就是在推动变革。做变革的推动者需要面对很多困难,因为就跟打扫房间一样,任由事情向无序方向发展是最省力的,也是最不负责任的,只有想要东西向有序方向发展才是困难的。</p> +<p>广义上来说,做任何事情都是将事物从无序向有序方向发展,这是自然规律,宇宙万事万物从有序走向无序,只有智慧生命才具备能力维持有序或者把无序变有序,这一切都需要能量,作为智慧个体所具备的只有利用能量的方法和信息,比如蒸汽机、内燃机电动机等等,再往前倒腾,那就是农业时代的耕种,那也是一种利用能量(太阳)将无序向有序转变的过程。</p> +<p>这么些年以来,推动或者说维持有序的本质没有改变,个体想要发挥价值或者说作用,只有在这个过程中通过一定的方法和信息来完成能量转换为有序的操作,工程师、艺术家、农民,可以说做的是一样的事情,区别就是大家所使用的信息不同,引导的能量不同,所输出的转化物不同。</p> +<p>个体的价值就体现在不是作为“无序”的生产者,而是“有序”的生产者。</p> +<h3 id="关于做自己">关于“做自己”</h3> +<p>我以前特别尊崇“真”,要活的真性情并且避免虚伪,不愿意假装任何事情。这样做有很多缺陷,因为不同的人有不同的期望,而且这些往往是互相矛盾的,西方的文化传统是“做自己就好”,是挺好的,但是仅限西方,在中国的话,还是要讲究一下中和。</p> +<p>所以聪明的做法,在中国文化传统下,必然是不能直来直去,即便是“做自己”,也不能表现的太过于直接,中国的文化就是内在与外在严重的分裂,外在主要用于伪装和“一团和气”,而各自的内在又是什么样儿呢?谁也不知道。但有一点是毫无疑问的,那就是我们的文化绝对不推崇直接表现内心,所以才有古代大臣劝皇帝登基,而皇帝则三番五次推脱,嘴里喊着不要,虽然双方都知道是在演戏,但是也都不亦乐乎,做的很足。</p> +<p>刚正不阿的人在明白了这些之后难免会有一些哀怨,但在我看来,这样就有些狭隘了,从客观规律上来说,谁都逃脱不了自然的力量,无论是基因还是环境,所以不必抱着一种价值观跟这个世界死磕,老祖宗的智慧早就告诉我们任何事物都不可一分为二,不能非黑即白,要以一种“中间调”的视角来看待问题。</p> +<h2 id="结尾">结尾</h2> +<p>2018年经历了很多事情,思想的转变带来了行动的变化,年初的时候给自己开出了化解中年焦虑的药方“多做事情”,效果良好。通过具体事情的磨练,更加清晰的体会到了实际练习对成长的重要性,希望在后续的时光里,自己仍然能够保持好奇心,坚持学习,创造美好的东西出来。</p>事如春梦了无痕https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/Thu, 19 Jul 2018 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/<p>上苍保佑吃饱饭撑着的人,中午吃完饭抽烟的时候,刷了几页微博,可能跟我关注的人有关(我一般关注段子手或者文艺思想贩卖者),感觉内容作为消遣挺合适,但是越看呢,越觉得没有营养,可能是跟我刚抽完烟进入贤者时间有关,一把把微博推开的时候(合上屏幕),心里竟涌现出一句“都是吃饱了撑的”,用以评价刚刚看过的几段不痛不痒的文字。</p> +<p>发完感慨随即想到,这句话是不是可以作为一本非常扯淡的书名呢?然后开始畅想自己写一本这样的书,里面的内容天马行空,多为吃饱了没事儿干的人才会忧伤和考虑的事情,饱暖之后各种忧虑和焦躁的事情可以化作各种思考,用于填满本书,作为同病相怜者证明自己不再孤独的弹药,一旦物质状态不能满足,则书中的内容立即退化到可有可无的状态。</p> +<p>真的,我这两三年来,刷牙沉思录这种哗众取宠的段子写了不少,缺少深度的技术文章也写过几篇,以吃饱了撑着来进行衡量的话,还真的比较符合标准,如果加以艺术润色的话,真难说能不能包装成为一本具备贩卖价值的书,至少想到这个问题之后,被自己震惊了一下,进一步对人生需求的几个层次有了切身认识。</p> +<p>无论我再怎么黑自己,有一点是不会改变,我写的那些东西至少保留了我一部分的回忆,它们记载了我在某一段时期内的心智情况,无论是用词还是造句,都能从一个侧面反映我当时的状态。而我的人生正是由若干个这样的状态所组成,随着年龄的增长,我的记忆力会越来越差,如果能够多记录一些东西下来,就算是那种吃饱了撑着才能思考的问题,也将使未来的我读起来热泪盈眶。</p> +<p>不过信息世界的问题在于,资料保存的永久性很不靠谱,说不定哪天这些信息就不在了(我写在msn空间的博客一篇也没了),甚至安全性还比不了一个纸质的笔记本,但我仍然不做过多的努力和担忧,倘若保存良好,那就作为未来回忆的佐料,倘若不幸丢失了,那就随他去吧。因为在写这些东西的同时,我已经感受一次生活了,本来也是留不住的东西,事如春梦了无痕嘛。</p>2017年个人总结https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Mon, 01 Jan 2018 00:00:00 +0000https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>2018年新年第一天,起的不早也不晚,天气晴的很好,阳光从窗外洒进来,给窗台上的多肉镶了一圈儿金黄。</p> +<p>每到这样的新年假期,我都会安排一天的时间收拾一下房间,然后坐在电脑跟前,回顾一下在过去一年里个人的经历和得失,考虑一下在新的一年里对自己的期望和改进要求,设立一些学习上的小目标,给新的一年提前充电。</p> +<p>这个习惯我已经坚持了四五年,主要以总结工作之余的个人学习和感悟,提取生活中的一些有趣经历,为自己在将来能够翻看回忆提供一些文字素材。</p> +<p>总结本身可能并不重要,但是这种回顾过去和展望未来的仪式感,每次都能使我得到激励,使我能站到一个更高的维度审视自己。</p> +<p>人们常说,了解自己是最困难的,我们可能永远都不能了解自己,只能无限趋近于了解,那我这样的总结,算是对了解自己所做的一种尝试和努力。</p> +<h2 id="学习与读书">学习与读书</h2> +<p>虽然随着年龄的增长,学习新的东西变得越来越困难,土话也有“人过四十不学艺”之说,但不得不承认,当今时代,学习成为了人人都必须修炼的一种能力,无论什么行业和职业,只有不断的学习,才能适应科技和文化的飞速发展。</p> +<p>有人说,最终人类比拼的将是学习能力,但这多少有点儿站在功利的角度,我所说的学习更多的是一种探索精神,一种想去了解自己了解世界的强烈好奇心。</p> +<p>今年买了不少书,技术类书籍和鸡汤类书籍各占一半,认真看进去的书不是很多,基本上每一本都翻了翻,但没有特别沉下心来看。</p> +<p>摄影类的书籍有《理光GR的随手拍摄心得》《纽约摄影学院教材》《摄影构图学》等等,这些归类到技术类书籍好像不太合适,但又确实是学习用的,看得还算是津津有味,其中给我带来最多收获的应该就是理光用户的那个随手拍摄心得,作者好像是台湾人,在读到之前我还难以想象摄影书还能这样写,基本上我感觉就是结合自己的故事重新写了说明书,读起来比较有吸引力,而且顺便把怎样使用相机也学了,真是一举两得。</p> +<p>学习数学、英语的相关书籍也买了一些,想重温一下高等数学,以及线性代数,感觉还是没达到预期目标,尤其是高等数学,基本上忘光了,连做课后的练习题都很困难,基于这些书倒是延伸学习了一些计算机图形学,这个算是意外收获,对计算机图形学里的一些概念如齐次坐标等等有了比较好的理解,尤其是使用矩阵来表示各种坐标变换,以前完全不知道内部实现的原理,直到今年我通过一边看书一边在excel里模拟了旋转平移和缩放的过程之后才算有了深入理解。</p> +<p>历史类的书买了两本入门册子,但是都没有读进去,畅销书《人类简史》倒是看了,写的确实不错,有一种以前读《万物简史》时的畅快,而且作者很会比喻,观点也独到,从很浅显的角度解释了人类发明的货币和公司这些东西。</p> +<p>趁着创业的热潮而大卖的关于创业的书也买了些,比如《从零到一》这样的,我看都是一些硅谷的创业成功者写出来忽悠人的,不过里面也讲了不少实话,看的时候就当是听作者诉说他是怎样取得成功的好了,反正他是这么认为的,虽然再来一次也可能不管用。</p> +<p>每年都会重新看看《黑客与画家》,虽然是一本很早的书,但是每年看的时候都有新的感触,也会产生新的影响,这个书的作者应该算是硅谷的创业教父了,他比较喜欢说实话,而且也喜欢思考,给我带来很多启发。</p> +<p>同样每年还会看看SICP《计算机程序的构造和解释》,这本被誉为神书的书,我一直没能完全看懂,今年借助YouTube,在上面听了两节MIT教授的课程,算是对前两章有了较深的理解,并顺便学习了LISP语言,这对于我以后折腾Emacs编辑器有所帮助,而且LISP语言的学习能够激发对计算机编程的深入认识,有一种超越编程语言的高维度感受,对计算过程的抽象很有可能是计算机世界的终极抽象,怪不得《黑客与画家》的作者说,未来的编程语言很有可能无限趋近LISP。</p> +<h2 id="关于拍照">关于拍照</h2> +<p>2017年我大概拍了四千多张照片,经过整理和挑选,留下来的也有差不多一千五百张,是我有生以来,拍照最多的年份,这个数字并不大,有些摄影师可能一天就达到了这个数字,但我这个业余爱好者,今年是一个突破,希望能够在明年以及更远的将来拍摄更多。</p> +<p>就像学习其他知识一样,如果只是听和看,不去亲自动手试一试,十有八九做的是无用功,不是说听和看不重要,我今年就读了好几本关于摄影的书籍,而是动手去练习更重要,10000小时的定律说的更多的也是练习,当然举这么多其他的例子更没用,游泳才是更好的例子,你不跳到水里根本不可能学会。</p> +<p>所以我今年能感受得到在摄影上的进步,一方面因为我读了很多关于摄影的书籍,无论是经典教材还是随手摄影的心得,这些书籍看了确实能够改善和丰富我对摄影的认知,另外我也在网上也观看了大量关于摄影的视频,大部分是在YouTube上看的,很多都是个人摄影爱好者开设的播客,这些内容虽然不成体系,但是也有不少可取之处,尤其是针对单个知识点进行的介绍,比如构图、后期、器材搭配等等。</p> +<p>关键还是因为我随身带了个相机,比起用手机来,我更喜欢这个理光的卡片机,虽然感觉并没有网上吹嘘的那么神化,但是还是很够用的,街拍神机名副其实,随身携带让我得一随时随地想拍了就来一发,比手机更有拍照的仪式感,而且画面质量确实比手机强的多,毕竟“底大一级压死人”,这个卡片机的传感器比手机的大了不知多少倍,拍摄夜晚或者光线较暗的场景时,手机拍的基本没法看,理光GR2基本可以胜任所有拍摄场景。</p> +<p>我能感受到最大的进步应该是在“构图”方面,比起对曝光的控制、后期调色等方面,我对构图有着天然的热爱,这虽然有些“形式大于内容”,但是我确实无法忍受一幅照片在构图上的失败,所以我现在在拍照之前,第一件考虑的事情竟然不是曝光,而是构图。这可能是因为现在的相机都已经智能化到自动控制曝光的地步,虽然有时候拍出来并不是想要的效果,但至少相机不会让你曝光失败。于是构图就成了拍摄首要关注的内容了。</p> +<p>我今年读的大部分摄影相关的书籍都是构图相关的,这些与绘画、平面设计类似的东西,我基本上东一下西一下的瞎看,不成体系,但也总结出了自己的一些原则,比如地平线一定要平,三分法放置画面等等。通过实际练习,我感到构图水平明显的变化,至少现在拍出来的东西一看就知道不是随手对付的,而是经过考虑和设计的,已经达到了业余爱好者的水准。</p> +<p>在练习中的感悟才是真正学到的东西,有的时候甚至能够跨越技能,从一件事情感悟到另外的事情上去,用一句今年比较流行的话来说就是“建立了联结”,通过练习,可以从拍照这个简单的事情本身,联想引申到对美的感受,无论是音乐、文字或者是其他的艺术品,人类所期盼看到的和听到的,就是愉悦的体验,而通过“平衡”、“对比”、“韵律”、“节奏”这些感觉的灵活运用,就是能让人感到愉悦,所以我现在比较能够理解艺术是相通的这句话了。</p> +<h2 id="关于资讯">关于资讯</h2> +<p>资讯的阅读是打发时间的最好方法,你看地铁上的人,几乎每一个人都捧着手机看新闻,当然也有刷剧和打游戏的,但据我的观察,大部分人都是在刷新闻。</p> +<p>资讯好像是一种食粮,每个人都如饥似渴的吸收,现代化的互联网技术和移动app,使得资讯触手可及,随时随地,吃个没完。</p> +<p>资讯又好像一种毒品,使人上瘾,如果有一个小时没有看到的话,就会浑身不适,非得打开浏览器或手机点两下不可,然后看到并没有什么有用的信息浮现的时候,才放下手机,内心得到了片刻的虚假平静。</p> +<p>其实不知不觉中,资讯消耗了我们大量的时间和精力,甚至成为了我们的枷锁,我们的眼睛仿佛除了资讯之外就看不到什么东西了,对其他东西的观察成了一种原始的应激反应,吃饭、睡觉、乘车,稍有闲暇的时候,就用资讯来填补。</p> +<p>好像我们的脑子已经无法承受在没有资讯刺激下的无聊,我们放弃了自己的思想,大脑的发动机已经不再运转,有的只剩下最基本的生理反应,这种情况所产生的空白,使我们恐惧,于是就吸取更多的资讯来填补,殊不知这些东西进一步把我们自己的思想挤的无处容身,脑子就更不能转动了。</p> +<p>我见过很多独处的人,在吃饭的时候,也不忘了掏出手机,我虽然没看到他的屏幕,但是可以猜想,看的无非就是一些“有趣的”文章。可怕的是,我自己有时候也这样,因为如果不这样我好像也吃的不香,觉得眼神无处安放,觉得这一段时间不知所措。</p> +<p>有一个关于“禅”的故事被说的比较多,大意是,有人问禅师“什么是禅?”,禅师回答:“吃饭就是吃饭,睡觉就是睡觉”,我最初听到这个故事或者段子的时候,根本无法理解,谁吃饭不是吃饭,睡觉不是睡觉呢。</p> +<p>后来想到关于吃饭时看信息,关于睡觉时胡思乱想,才明白,原来,吃饭就是吃饭,睡觉就是睡觉,是那么的难啊。</p> +<p>我在2017年有意识的限制自己获取资讯的时间,每当我忍不住想打开网页的时候,我就强迫自己坐下来写字,就写当下的脑子里想到的内容,想到哪儿就写到哪儿,完全不顾及条理性和先后顺序。</p> +<p>我原来还特别担心这样写出的东西根本不通顺,没法看,但是在坐下来写了两篇之后,我才发现,原来这些不加修饰和斟酌的文字,看起来是那么流畅,读起来非常顺口,就像自己跟自己在交谈。</p> +<p>而且这样做的一个很明显的好处是,屏蔽了资讯,用赵本山的话说“病毒关闭了,你的智商又重新占领高地了。”清空了资讯,给自己的大脑腾挪出可以思考的空间,很多自己的思想就涌现出来了。</p> +<p>先不用管他们是积极的还是消极的,根本不用识别他,站在一个旁观者的角度来观察,可能这就是禅宗经常说的“观照自己的内心”吧。</p> +<h2 id="关于写作">关于写作</h2> +<p>我在2016年的时候,坚持每周输出五百字,作为写作练习,这项活动开展了整整一年,写了好几万字,后来我在2017年停止在网上发表。因为我觉得输出的内容有些缺少思想,而想写出比较有思想的内容还是很有挑战和耗费精力的,尤其是考虑到有读者的观看,会给自己带来额外的压力,后来我在写字这一块开始写给自己看,内容也都散落在工作日志里了,没有整理到网上。</p> +<p>上面提到的关于将资讯时间用于写作的方法,来源于2017年我看的一本书, 叫《写出我心》,主要的内容是帮助十分焦虑的现代人通过写作的方式找回内心的平静。</p> +<p>书的作者为了解决内心烦躁的问题,曾经尝试过冥想、瑜伽等方法,但是效果都不太好,心理的念头仍然非常的多,挥之不去,起伏不定,甚至越来越糟,于是作者尝试使用写作的方式,将自己的念头不通过思考,直接书写下来。</p> +<p>然后他欣喜的发现,不假思索将自己的念头不断的书写下来,经过一段时间,竟然可以解决自己的烦躁,内心逐渐变得平静,于是他就把自己的这种体验和方法总结下来,写了这样一本书,并提出了具体执行的一些原则和要求。</p> +<p>我看了之后感到比较有意思,也想尝试一下,开始利用闲暇时间或碎片时间写一些无关紧要的文字,主要是自己的一些思考和心绪。我发现,写作的过程真的具有疏解内心压力的功效,然后我逐渐意识到,这不仅仅是写作,这是一种倾诉。</p> +<p>而倾诉,很可能是一种卸下负能量的过程,也是积攒正能量的过程,每个人都有倾诉的需求,以前我没意识到,原来倾诉是舒缓内心的一剂良药。</p> +<p>可能对于外向的人来说,这不是问题,因为在日常生活中,他们随时随地在向别人诉说和交流,向别人输出自己的感受或观点。但是对于内向者来说,可能比较缺少倾诉的出口。</p> +<p>不过除了说话是一种倾诉方式之外,写作、绘画、其他艺术创作等,应该都是有效的倾诉方法,写到这儿我发现,怪不得艺术家多为内向者。</p> +<h2 id="餐桌段子">餐桌段子</h2> +<p>2017年几乎没怎么看电视,不仅仅我自己,全家人也几乎都不看电视了,一方面是因为电视中的内容比较无聊,另一方面主要是因为孩子,孩子的作业较多,如果全家看电视的话,而且在吃晚饭的时候看电视的话,基本都会严重影响孩子的作业时间,而且一边吃饭一边看电视实在是不好的习惯,所以我有意识的在生活中取消掉了电视时间。</p> +<p>这样以来,刚开始大家都不怎么习惯,因为默不作声闷头吃饭实在是有违传统,用孩子的话说就是场面变得好尴尬,整个餐厅只回响着我biaji嘴的声音。</p> +<p>偶然的机会,我跟金妍开始尝试在餐桌上讲段子,都是一些学校的趣事,或者吐槽日常生活中的事情,可吐槽的对象主要包括“老师布置的作业”、“妈妈做的饭菜”、“爸爸的坏毛病”,或者是对于学习中的一些技巧。</p> +<p>由于孩子笑点很低,所以基本上我都是以原创和自制的段子为主,讲出来都比较冷(比如:为什么金币的颜色是黄色?答:因为“金碧辉煌–会黄”),但是,充分发挥脱口秀精神时,起到的效果都很不错,常常一顿饭吃下来笑到腮帮子疼(请勿模仿,吃饭还是尽量别笑,尤其是米饭)。</p> +<p>我想这些在未来都能成为孩子们成长的美好回忆吧。</p> +<h2 id="总结">总结</h2> +<p>2017年如果汇总一个关键词的话,那就是“认识自己”,到了一定的年纪之后每个人都在承受生活中的各种压力,这些压力一部分来自别人,一部分来自自己,其中自己的那部分所占比重最大。</p> +<p>中年男人到了这个时间点,或多或少都会有些迷茫,多少都有一些积累,但是又缺少安全感,失去了一些年轻人的锐利,无论从精力还是身体健康状况,都有所下降。</p> +<p>所以如果想要突破,不仅仅是努力的事情,更多的是要思考,给自己定位,并有效率的付诸实践。</p> +<p>以前在学习时间管理的时候,陷于方法和工具,所以效果不明显,直到今年才认识到,无论任何的时间管理方法论,要想有好的效果,首先要想清楚自己的目标,就好像是确定目的地似的,不然即使掌握了方法,也同样无济于事。</p> +<p>就像企业一样,一个人也同样需要战略,如果没有战略,就像是一艘行驶在大海中的船,却没有舵,随波逐流,不知道飘向何方。</p> +<p>往大了说是叫战略,实际上是用来确定所做事情优先级的指导思想,只有定出来战略,才能在日常工作和生活中知道什么事儿是必须要做,什么事儿是能不做就不做。</p> +<p>所以2017年最大的成果,应该就是考虑清楚了自己的目标和想要到达的地方,感谢这个世界有那么多美好可以让我迷恋,未来我会投入更多时间和精力到我所爱,因为我发现我努力所追求的无非就是一种状态:<strong>那种可以让我痴迷沉浸进去的一种状态。</strong></p>听说你有较强的团队协作能力?https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/Sat, 18 Nov 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/<p>几乎在所有的职位招聘要求里,都包含一条“有较强的团队协作能力”,与之对应的是,几乎每个人都会心安理得地在自己的简历里写上“有较强的团队协作能力”,就像写“本人熟练使用Office”那样心安理得。</p> +<p>无论是出题的人,还是答题的人,可能都没有认真的考虑过,什么是“团队协作能力”,可能只是在内心里觉得“好像加上这么一条,会显得更像那么回事儿吧”。</p> +<p>近期做了一些与“个人能力评估模型”相关的工作,使我不得不认真思考这个问题。我发现,想把这个事儿解释清楚,并落在实实在在的执行上,还真没那么容易。</p> +<p>首先,“团队协作能力”可以是对一个团队的衡量,也可以是对一个人的评价,接下来根据我个人粗浅的观察和分析,谈谈对个人能力的评价,即我觉得一个人怎样算是“有较强的团队协作能力”了。</p> +<h4 id="0尊重他人">0、尊重他人</h4> +<p>可能是人类与生俱来的天性所致,要做到这一点还真是相当不易,且不说地域、种族、信仰等比较沉重老套的话题(这些方面往往最能暴露天性),即便是在日常的讨论中,我们也很难做到在面对不同观点时以对事不对人的态度来讨论,很容易将一件鸡毛蒜皮争论上升致对个人的全方位评判,争到最后往往要捍卫的不是真理,而是自我“对”与“错”的“尊严”。因此,做到充分的听取他人的意见,理解各方的立场与观点,尊重并理解与自己不同的声音才是良好协作的开端。</p> +<p>说到这里我忽然想到当年庄子跟惠子俩人在河边关于一条鱼是否快乐争论半天,至今未分出胜负,可见庄子若论团队协作,不求行,打嘴炮行。</p> +<h4 id="1勇于担当">1、勇于担当</h4> +<p>日常生活中,比较好协作和沟通的人往往具有比较能担当的性格,对于他人(所谓自负者眼里的“猪队友”)做错事情而造成的后果,这些人第一时间是给予安慰和指导,而不是指责和抱怨。相反,如果第一时间选择将“锅”甩的远远的,立即划清界限,很难相信其能具备多强的协作能力。</p> +<p>所以,既然是协作,肯定会涉及多个人的配合,能否做到包容他人并勇于担当,应该是协作的基础。</p> +<h4 id="2谦虚的态度">2、谦虚的态度</h4> +<p>谦虚是一种美德,这大家从小就知道,“三人行必有我师”也早已挂在嘴边随时准备被调用,可是在现实生活中我们所谓的“沟通”却总是想着在这个过程中教别人些什么。在团队中做事,能否空杯心态,听取他人的建议和意见,而不是固执己见,觉得所有人都不如你。每个人都有自己擅长的事情,多看到别人的优点,谦虚地学习,应该没有人会喜欢跟狂妄自大目中无人的人合作吧。</p> +<p>这一点古人做的就比较好,比如著名的“一字之师”的故事,写诗那哥们儿,“前村深雪里,昨夜数枝开”被人改成“前村深雪里,昨夜一枝开”,这哥们儿不但没有恼怒反而当即称改诗那哥们儿为一字之师,可见其谦虚好学。(反观自己,代码被人改了往往会有些不爽)。</p> +<h4 id="3分享精神">3、分享精神</h4> +<p>在“伸手党”横行的年代,拥有分享精神无疑是一种比谦虚还要美的美德,无论是分享自己的观点、心得还是见闻,都可以在过程中得以升华,实现双赢的效果。而具有分享精神的人往往在团队中拥有较好的人缘和评价,我个人始终认为知识越分享就掌握的越牢固,信息越分享沟通就越顺畅,所以是保守封闭还是乐于分享应该也是衡量团队协作的一项重要指标。</p> +<p>不过,也许跟团队的性质有关,比如FBI的特工可能就不能太有分享精神吧。。。</p> +<h4 id="4表达能力">4、表达能力</h4> +<p>人的愤怒大部分来自于无法表达自己,很多人的狂怒往往伴随着这么一句话&mdash;-“我说了这么半天你怎么还不明白?!”,对于性子急躁着表现更为明显,这种愤怒,与其说是对别人不理解的愤怒,倒不如说是对自己比较弱的表达能力的愤怒。这个倒是可以锻炼,清晰的逻辑思维和较好的文字语言功底都能大幅提升表达能力,如果让我总结关于这个能力的“技巧”的话,就四个字儿&mdash;-“抓住重点”。</p> +<h4 id="5团队利益与价值观的认可">5、团队利益与价值观的认可</h4> +<p>即便做到以上多点,如果不能认可自己所在团队的价值观的话,也很难得以发挥。要做到这条,首先是对团队利益和价值观认知的问题,能否看清团队利益所在,知道该提倡什么和拒绝什么,是基本。其次,对于需要大家共同遵守的原则是否发自内心的认同,否则作为个体应该会比较难受,高效协作也就无从谈起了。当然这一点来说,不仅仅是对个人的要求,能否理出清晰的原则并身体力行的去执行,更是对团队领导者的要求了。</p> +<p>写了这么多,其实都是人人明白的道理,也都能明白难在具体的执行,不过,花一点儿时间整理一下思路,就当是一个自我反省了,当然要是能正向影响一些人,并给人带来一丢丢的思考和改进念头,那就更好了。</p>压力比较大?讲个笑话放松一下https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/Fri, 07 Jul 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/<p>一些老段子,放松一下(来自知乎https://www.zhihu.com/collection/124380021?page=2)</p> +<h3 id="给我一个坚定的眼神">给我一个坚定的眼神!</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-a0750a572a35cda7.webp" +width="600" +height="317" +loading="lazy" +alt="给我一个坚定的眼神" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="454px" +></p> +<h3 id="无题">无题</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-0b95397b5dba2834.webp" +width="426" +height="458" +loading="lazy" +alt="无题" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="223px" +></p> +<h3 id="怎样制作草莓酱">怎样制作草莓酱</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-90a50bac1f3a38d6.webp" +width="350" +height="1737" +loading="lazy" +alt="草莓" +class="gallery-image" +data-flex-grow="20" +data-flex-basis="48px" +></p> +<h3 id="能让你产生强烈情绪的图片">能让你产生强烈情绪的图片</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-5af7967d7aced9ce.jpg" +width="440" +height="4122" +loading="lazy" +alt="能让你产生强烈情绪的图片" +class="gallery-image" +data-flex-grow="10" +data-flex-basis="25px" +></p> +<h3 id="填空题">填空题</h3> +<p>小学时有道关联词填空: +他( )牺牲生命,( )出卖组织。 +有人填“宁可 也不”;有人填“害怕 , 所以”; +有人填“与其 不如”;有人填“即使 ,也要”; +更有个人全校出名,他填的“白白, 忘了”。 +评论里有个清新脱俗,苦大仇深的,他填“大舅,二舅”!</p>每个周末的下午,这样做把你的效率提升百倍https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/Sun, 23 Apr 2017 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/<p>为了避免浪费时间带来的焦虑,人们一般会选择做些什么来保持忙碌,或者至少在看起来是十分忙碌的样子。即使当下所做的事情可能对于完成任务目标来说毫无意义,甚至是背道而驰,但是为了逃避思考,往往沉浸在自己已经“很忙了”、“没时间考虑”这样的假象当中,乐此不彼。</p> +<p>我以前在出行的时候,有时坐地铁到一个陌生的地方,不知道出了地铁口该怎么走,这个时候我就会比较焦虑,一般会先随便朝一个方向走一段,然后一边走一边查看地图,很多时候发现我前进的方向与地图上规划的路径是相反的,但是我的潜意识里认为,我在走动中查地图,比我站在那儿不动查地图要节约时间,要安心一些。这显然是不对的。在一次内部分享会上,我跟大家讲了自己的故事和体会,来说明每个人都或多或少都有这样的逃避倾向(有心理学家指出,事实上脑力劳动才是最累的体力活儿,所以人的天性都是逃避真正的动脑思考的,最好是别人都替我想完了)。</p> +<p>意识到以上的思维模式是错的以后,然后就是想办法来避免。首先需要解决的就是,针对工作中,思考上的懒惰。当然这事儿早就有人发现并指出了,比如著名的那句“战术上的勤奋掩盖不了战略上的懒惰”,以前还有句老话叫“不仅低头拉车,也要抬头看路”等等。</p> +<p>但是都没有提供更加接地气的具体方法。我有一个具体可行的方法,操作起来简单有效,又花不了太多时间,在我看来,对于每一个职场中人都十分适用,除非不思进取、天生与效率为敌(此类人乃将来被AI替代的主要对象)。</p> +<p>具体做法就是:** “在每个周末的午后,抽出30分钟时间,把你认为你下周最重要的三件事确定出来,列到你的工作计划中去。” **注意,是三件,不是更多,此举目的并非让你制定完美计划,而是判断什么事情是重要的,如何判断最重要?很简单,问自己一个问题即可:“我在完成这三件事儿之后,是不是即使其他事情都不干、躺下睡觉,也能认为本周工作是成功的,至少是及格的?”</p> +<p>这样做好处有三,都是立竿见影的效果。</p> +<h3 id="1这是一个很好的重新审视工作的机会">1、这是一个很好的“重新审视工作”的机会。</h3> +<p>即,“抬头看路”。暂时放下手中的忙碌,重新认识一下自己的工作目标,你会发现无论任务有多繁杂,要达成的目标就那么几个,最终的目的地就在那儿,所有任务都应该是指向那儿的,如果不是,那就更简单,降低优先级,或者干脆从任务清单里把它踢出去。</p> +<h3 id="2这样做可以有效避免周一综合症">2、这样做,可以有效避免“周一综合症”。</h3> +<p>现在人,矫情起来谁还没有个心理疾病啊,各种“症”往自己身上套,最明显的就是“周一综合症”或者“节后综合症”,更有甚者称之为“上班的心情比上坟都沉重”。焦虑的根源在于“不可控”,不知道自己做的事情与承诺的目标有什么关系。列出重点之后,先做这些事情,剩下的事情就越做越轻松了。提前考虑好了,就化被动为主动了,心情自然不同。</p> +<h3 id="3便于跟踪工作计划">3、便于跟踪工作计划。</h3> +<p>各方示例都表明,有计划地开展工作,要比稀里糊涂开干效率高的多,但是“有计划没跟踪”也是一个很致命的问题。我在每个周末的思考时间里,都会查看团队成员发来的工作周报(我要求他们也这样做),一是跟踪上周任务完成情况,二是查看下周的工作重点是否偏离既定目标,如果偏离就及时修正,避免了时间和资源的浪费。</p> +<p>习惯虽小,但是一旦养成,威力无穷。为了配合我们高效的工作和管理方法,我们开发的移动办公应用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>“遥知”</a>* (是一款轻量级主打体验的共享协同办公应用) *做出了十分匹配高效工作者的功能,帮助大家养成高效工作的习惯,避免在思考上的懒惰,借助这款工具,无论在工作方法上,还是协作效率上,我们的团队都得到了显著的提升。</p> +<h3 id="硬广时间扫码直接下载遥知httpsphoneq365powercnjadestoredetailnameminierp开启高效工作之旅吧">硬广时间:扫码直接下载<a class="link" href="https://phoneq.365power.cn/jade/store/detail?name=miniErp" target="_blank" rel="noopener" +>遥知</a>,开启高效工作之旅吧!</h3> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-96db89b6821685de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="免费试用遥知" +></p>关于远程办公的思考https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/Sat, 18 Feb 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/<p>据悉,Github有超过一半的员工遍布在全球各地,而开源组织OpenSSL的团队则一直都未在线下见过面(直到后来有<em>某老板</em>资助他们在线下碰了一次面)。随着科技的进步和社会的高速发展,知识型工作的办公方式正在逐渐由集中办公向分布式远程办公转变。</p> +<p>远程办公带来的好处非常明显,比如:有效解决了员工上下班通勤浪费时间的问题,顺便还缓解了交通压力,对环境保护亦有贡献;抛开了地域的束缚,可以吸引全球各地的人才参与,对企业的人才战略有积极影响;有效降低企业办公场地投入;团队效率、员工积极性都能得到有效提升;等等。</p> +<p>但是如何具体的实施远程办公,不同的团队会有不同的见解,我个人一直热衷于推进办公模式的改进,也做过相关尝试,下面根据我的浅见,从几个方面总结一下远程办公的关键要素:</p> +<h3 id="成果目标的明确定义和有效检查">成果目标的明确定义和有效检查</h3> +<ul> +<li>远程办公对于团队管理要求更高了,一个团队要统一一个目标,大家对于目标的定义应有一致的理解。须将目标逐级分解具体到人,并提前设计好由细节到整体的成果装配流程。</li> +<li>每一种类型的任务要有对应的检查清单(checklist),每日的工作成果都要通过检查清单的检查。</li> +<li>团队的工作成果要有装配和构建系统进行组装,并有一个全局的检查清单,有专人负责检查。</li> +<li>员工自我检查,组长验收检查,配置管理组装检查,质量管理进度跟踪检查。</li> +</ul> +<h3 id="沟通的及时性和有效性">沟通的及时性和有效性</h3> +<ul> +<li>所有人应该可以立即呼叫到所有人,反应是实时的,不能超过30秒的延迟。</li> +<li>语音,文字使用统一的语言体系,命名和表达方式需要规范化。</li> +<li>可以随时截屏和录制一小段视频传递给任何人,必要时需要共享显示器和白板的内容。</li> +</ul> +<h3 id="工作进度跟踪">工作进度跟踪</h3> +<ul> +<li>有效、深入细节的项目管理,需要有完善的项目台账,实时反应项目的状态。</li> +<li>显式任务管理,团队里的所有人要知道所有人的工作任务情况,可区分普通任务和私密任务。</li> +<li>项目生命周期管理细化到任务生命周期管理,起源、分解、执行、成果检查、后评价、归档入库、装配完结。</li> +</ul> +<h3 id="办公状态模拟">办公状态模拟</h3> +<ul> +<li>为防止远程办公缺少仪式感,需要规定集体的远程互动,举行每日开工会议和收工会议。</li> +<li>严格统一上下班时间,确保大家同时在线。</li> +<li>每周至少一天线下见面会议,集中起来讨论工作。</li> +</ul> +<h3 id="信息化工具支持">信息化工具支持</h3> +<ul> +<li>使用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>的“小纸条”进行及时沟通。</li> +<li>使用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>的项目管理和任务管理进行协作管理。</li> +<li>使用qq、视频直播等工具进行远程集体互动。</li> +<li>使用gitlab做好配置管理和成果审查。</li> +<li>使用docker、jenkins等做好产品的持续集成和每日成果构建。</li> +</ul> +<p>为了在我们的团队更好的推行远程办公模式,我们不断探索和思考,去年初,我所在的团队开始小范围尝试远程办公的模式,期间遇到了一些问题,我们也做出了一些工作方式上的改进,总的来说利大于弊,经过这些尝试,更加坚定了我们未来逐步迁移至远程办公模式的决心,也促使我们研发了移动端协作工具<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>,致力于帮助更多的知识工作者更高效的远程办公。</p> +<p><img src="https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/yaozhi.jpg" +width="200" +height="200" +loading="lazy" +alt="遥知" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p>未来企业扁平化管理中的信息化需求https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/Sat, 11 Feb 2017 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/<p>“扁平化”管理并不是什么新鲜的概念,早在上个世纪就有公司在尝试通过压缩管理层级来实现扁平化管理,并取得了不错的成效,以至于有一阵子“扁平化”管理理念大有席卷全球之趋势。</p> +<p>但后来事实证明,在缺少有效的沟通和协作机制之前,扁平化管理的瓶颈往往很快出现在管理者身上,原因很简单,传统的“金字塔”式管理虽然等级多、决策下达缓慢,但是符合2/8原则,一个管理者只需要管理较少的几个人,沟通比较顺畅,扁平化管理模式下的管理者需要对接的人较多,很容易形成沟通瓶颈。</p> +<p>所以“扁平化”在火了一阵子之后,不少企业掉进坑里挣扎了一阵子之后,又回归传统的“金字塔”模型。</p> +<p>但是,随着技术的进步,很多工具得以改进,好多传统的“真理”也不再那么有效(比如一人最多管理7个人),这一点上来说,很多国外的互联网公司已经快速发现改进点,并将“扁平化”管理结合了现代化工具和理念成功在自己的企业推行。</p> +<p>比如著名的谷歌。无论是技术还是管理,谷歌一直是走在时代前列的公司,其管理方式或企业价值观虽不能照搬,对于我们仍有一定的借鉴意义。</p> +<p>最近读了两本关于谷歌公司的书,《重新定义公司》和《重新定义团队》,书中讲解了谷歌公司对未来公司组织、团队管理的尝试和思考,在信息文明全面取代工业文明的时候,传统的组织方式和团队管理会怎样被超越。两本书从文化、战略、决策、人才、沟通等多个方面阐述了未来企业的改进可能。</p> +<p>内容比较多,不同的人看了可能有不同的收获,通过读书,一方面我发现了未来组织对扁平化管理的需求,然后思考了企业信息化对这一管理模式的支撑,下面简单谈谈我的看法(比较有意思的是,谷歌公司的员工也在抱怨他们自己开发的IT系统不好用)。</p> +<p>###利用信息技术提升管理者与员工在“扁平化”管理下的沟通效率。 +通过互联网、移动应用可以实现所有人的实时在线,无论是任务指派还是成果检查,或者随时沟通一些思路和想法。所以我猜测,未来的企业,可以一方面在线下仍然建立传统的“金字塔”层级结构,另一方面,通过移动应用工具,在线上建立“扁平化”的虚拟管理团队,企业的管理者可以获得更强的管控力和执行力。</p> +<p>###利用信息技术加强企业文化的建设。 +利用现代化的信息工具,企业内的每个人都可以更迅速的向团队传达及时的信息,分享自己的观点、技能。工作的目标更容易清晰传递,工作进展也更容易跟踪,管理者更方便地关注每一个成员的状态,只要积极利用工具向大家分享信息,“企业文化”就不再是一句虚无缥缈的口号,而是变成真正融入到每一项工作中、影响每一个成员的实实在在的观念、模式、原则。</p> +<p>###利用信息技术放大“好员工”的影响力。 +称职的管理者在团队中一定是认可并推崇积极优秀人才、打击并消灭低效消极人员的,传统的方式下一个好员工的影响力可能只局限在自己负责的那一部分工作,但是利用社交化的信息工具,在管理者的推动下,可以放大好员工的影响力,一个明星员工可以给更多的人带来正面影响,优秀可以“传染”给更多人。</p> +<p>###方便打造学习型组织。 +学习型组织,或学习型团队,现在大家提的比较多,构建一个学习型的团队是很多管理者的共识。信息技术提供的在线工具和移动应用可以让团队管理者更方便的实现打造学习型组织的理想。知识分享除了通过线下的活动进行外,还可以随时在线上进行,无论是看到了好的文章或者想系统的给团队成员讲解某一项技能,都可以利用信息工具在线上进行。</p> +<p>###“标准”与“流程”不再是束缚,而是助手。 +很多人提到企业信息化往往第一个想到ERP或传统的OA系统,但是未来这两个东西一定为消亡,或者换一种方式存在。传统的“标准”和“流程”是“死”的,听起来就没有什么生命力,未来的信息化工具在这个方面要想突破,一定是高度可定制化的,通过定制化,适应企业的高速发展,通过定制化,甚至让使用信息工具的人自己“创造”功能。</p> +<p>###遥知 +以上是关于新形势下企业信息化需求的简单思考,我所在的团队也正在做一些尝试,管理上,向扁平化方向发展,信息化工具上,我们自主开发了一款满足上述需求的移动应用产品&mdash;-<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>,目前已经发布,正在积极推广中,有兴趣的可以尝试一下,虽然距我们设定的目标还有一定的距离,但对我们自己的团队管理已经初见成效,通过不断的迭代和改进,我相信我们会成为未来企业信息化管理工具的引领者。</p> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-9accb32495a84ba4.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="遥知" +></p>2016年的个人总结https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Mon, 02 Jan 2017 00:00:00 +0000https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>每个新年假期我都会抽出一个下午的时间,回顾一下这一年所经历的事情(工作以外),总结一下得与失,回顾过去的同时顺便展望一下美好的未来。</p> +<p>2016有很多值得怀念的,也有很多值得感谢的,从几件小事谈起,简单总结一下生活。</p> +<p>0 、读书,2016年初定下原则,多看书少看电影,结果执行的还不错,朋友给推荐了一些书,自己也随机的买了一些,利用晚上睡觉前的一些时间累计下来一年也能看个十本八本的,印象比较深的有白先勇的《台北人》、蔡崇达的《皮囊》、村上春树的《当我跑步时我谈些什么》、东野圭吾的《解忧杂货店》、王小波的《万寿寺》。看完《当我跑步时我谈些什么》之后还冲动地跑了一个月的步,后因天气原因未能坚持(也不遗憾,姿势不当可能损伤关节)。技术类书籍没少买,每年仍看一遍《黑客与画家》,今年人工智能和大数据方面发展比较迅猛,陆续看了一些与之相关的书,对于科技的发展保持密切关注。</p> +<p>1、写字,每周都在简书写一些文字,记录一些心得体会,或者对一些事物的看法 ,质量参差不齐,大部分文字都未经推敲,纯粹自娱自乐。虽错把创作冲动当才华,但比起只说不做,我毕竟坚持把思想落实在了行动上了,一些文字也能引起共鸣,甚至有朋友打赏鼓励,最后统计了一下,写了五万字,一共收获了一百多块赏金,其中老妈、老妹打赏最多。</p> +<p>2、沉思录,从年初开始在微信朋友圈坚持做的一个小试验,每日睡前将当日坐车或刷牙时考虑的无聊问题,总结一段文字,发到朋友圈,浅薄幽默为主,记录心情为辅,偶有正能量鸡汤出没,好在我的朋友大都了解我的性格,通过这样一个小互动,得到大家很多的鼓励,谢谢你们。</p> +<p>3、脱发,虽然健康问题不容忽视,但是随着年龄的增长,脱发,是每一个“聪明”的中年男人都要面临的问题,就像我大学时第一次丢自行车似的,刚开始不敢相信,到后来,不得不接受这个事实。小区门口理发店的老板,给我剪了十多年的头了,从最初不断夸赞我头发浓密,到现在已经开始主动帮我掩盖局部地区的稀薄了(不过我还是没在他们家办卡)。不过还好,至少老年时我不会为是否需要染发所困扰了。</p> +<p>4、幽默与抑郁,幽默的人比较容易抑郁,据说很多喜剧大师如卓别林、周星驰,甚至很多段子手如赖宝,都有抑郁症。原因是幽默的人一般不太会处理自己的负面情绪,往往使用幽默的手段来进行心理防御,负面情绪得不到发泄,造成内伤。不过我还好,庆幸还没幽默到那种程度,自然也就不会抑郁那么狠,作为一个后知后觉的“慢性子”在经历的事情多了之后也能想明白不少问题,现在已经基本上不太会被别人的期望和评价所影响,知道关心自己的人是谁,在意该在意的,忽略该忽略的。</p> +<p>5、老爸的忆苦思甜,父母每年暑假都会过来住一段时间,为了表示诚意,这段时间我几乎每天都要跟老爸喝两杯,三杯酒下肚,老爸必然通过将各种故事对我进行教育,老爸讲故事有个特点,那就是保持在故事框架的基础上,为了达到更好的效果,可以进行适量的改动(比如《武松打虎》这一回,武松最多的一次是喝了72碗酒才把老虎打死的)。所以虽然我早已将忆苦思甜的框架烂熟于心,但每次捧哏的时候还是得认真对待,虔诚的接受“再教育”。毕竟老爸尝过挨饿的滋味,所以我经历的这些困难在他面前基本无颜提起。</p> +<p>6、“克己”,我在办公室放的有一本《传习录》,里面记载的都是明代心学大师王阳明与弟子、朋友的对话或书信,我古文水平很次,看起来磕磕绊绊,但是偶尔也会拿出来翻一番,说不定哪天就能领悟到一些东西。某日看到一段对话对我启发很大,了解到很多道理都有千丝万缕的联系,比如很多人看过的《高效能人士的七个习惯》,其中第一个习惯就是“积极主动”,大家也很推崇“积极主动”,但我某天在看《传习录》的一段对话时才更加理解这个“积极主动”了</p> +<blockquote> +<p>“弟子问王阳明为什么平时道理都明白,遇到事情的时候却还是难以控制自己,老王说,那是因为你经历的事情还不够,没能克己,你还是应该在事情上磨练自己”</p> +</blockquote> +<p>这里的“克己”虽然说的是在事情上磨练自己,但是怎么磨练?其实就是遇事要积极主动,不放过任何可以锻炼自己的机会,这样才会有进步,也就不会出现道理都懂,但实际没懂的情况了。</p> +<p>7、时光倒流,有天金妍问我,时光真的能倒流吗?为了严谨一些,我回答,现在不能,以后或许可能。然后我问她,如果时光可以倒流,你想回到什么时候?她说,我想回到小时候。小时候?多小?我问她。她说,我想回到4岁(幼儿园)。看来从上了小学,我们的人生就开始了战斗模式。我说,那等着哪天科技发达了,咱们一起回到小时候吧。我没忍心说,其实就算时光可以倒流,我们自己是不可能倒流了,我们的人生就像是离弦的箭,开始了,就永远不能回头,只能不断向前,冲刺再冲刺,然后在向前的过程中,去寻找美好的体验和感受,并努力赋予这个过程以意义。</p> +<p>时间过的很快,2017年我希望自己能够成为一个更好的 人,读到更多好书,听的更多好歌,做出更美的产品,坚持良好的习惯,关注他人的体验,向身边的人多学习,并坚持自己的梦想,向快乐出发!</p>写点儿东西,以防自己把别人的知识当成自己的https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/Sat, 24 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/<p>作家余华在<a class="link" href="https://www.douban.com/group/topic/38345927/" target="_blank" rel="noopener" +>《我能否相信自己》</a>里写的一句话让我看了很有触动:</p> +<blockquote> +<p>“那些轻易发表看法的人,很可能经常将别人的知识误解成是自己的,将过去的知识误解成未来的。然后,这个世界上就出现了层出不穷的笑话。”</p> +</blockquote> +<p>这正是我所担心的,担心知道的太多,明白的却又太少。前者容易造成焦虑,信息的过载,或者想的太多。后者则导致在实际生活中面对问题时仍旧束手无策。</p> +<p>面对互联网上大量的信息和资料,为了缓解焦虑,大部分人都有两个习惯,一个是收藏,一个是转发。</p> +<p>我曾经维护着一个巨大的笔记列表,里面全是我多年来在互联网上搜集的各种资料和文章,从工具技术到人文自然与哲学相关的,都有。我还耐心的给每篇文章都增添了标签进行分类,以便“以后”更方便的查找和“仔细阅读”。</p> +<p>然而,事实是,永远会有更新的内容出现,然后动动鼠标就能收藏,但是再也没找到机会进行“仔细阅读”,当时那种“留下来慢慢看”、“以后会有用”的感觉是那么强烈,但是,真的很少再想打开看一眼。那些文章永远的躺在收藏夹里,累计出来的数字越来越大,甚至开始让我误以为那些东西我都懂了。</p> +<p>另一个习惯就是“转发”,看到好的东西就想分享,这是一个好习惯,但同时大量的分享也反映了一个很细微的心理激励过程,即,如果我转发某篇文字,里面提到了很多我十分认可的观点或思路(但事实上我可能根本做不到),我就忍不住要转发出来,在转发的那一刻,我的内心深处隐约觉得,好像离“做到”又进了一步(其实并没有)。</p> +<p>我想不仅仅只有我才是这样,应该很多人都有这种习惯和心理。</p> +<p>后来,我意识到了这一点,逐渐的开始改进,直到有一天我想明白了,自己不应该胡乱发表连自己都不能明白的观点,自己知道的东西不一定就能成为自己的知识。于是开始有意的控制信息的获取,转而开始尝试着将自己能想明白的东西用文字组织一下,开始“消化”知识,通过文字重新构建自己的“知识体系”。</p> +<p>书写东西实际上是一个思考的过程,很多写作高手看起来轻易就能写出精彩的文字,事实上底下支撑的并不是他有多强的“写作”能力,而是他的“思考”能力,他能否构建出一个他想要表达的形象,一个完整的、具体的形象,然后剩下的就是写出来。</p> +<p>所以说,能够写出来的东西,至少,表明了作者可以在内心里构建一个清晰的影像,对于自己的知识,有了更进一步的理解。</p> +<p>从将知识写成文字开始,到真正在现实中有效使用,再到可以传授给他人,慢慢的“我知道的”,就真的变成“我懂得”了。</p> +<blockquote> +<p>“我的大脑就像是一口池塘,别人的书就像是一块石子;石子扔进池塘激起的是水波,而不会激起石子。”“因此别人的知识在我脑子里装得再多,也是别人的,不会是我的。”</p> +</blockquote>应该自己动手做一些东西了https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/Sat, 10 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/<p>学会制造和使用工具应该是人类区别于其他物种的最重要的一项区别,所以DIY应该是一种原始的冲动。每个男人都应该有一个属于自己的工具箱,或者更近一步,一个工作台。</p> +<p>据说德国的制造工业之所以发达就是因为人家从小就培养和锻炼孩子的动手能力,几乎每个家庭都拥有全套的机械维修设备,小孩从几岁开始就趴在旁边看老爸在那儿捣鼓各种东西,骨子里就渗透了DIY的文化。</p> +<p>这方面中国男人明显做的比较差一些(咱们当然也有高手,但从比例上来说还是太少了),一方面可能是因为从小所接受的教育比较注重理论文化知识、轻视实际操作能力,另一方面也可能是我们的人力相对廉价,有什么事情直接找专业工人搞定,老外的人工费用太高,动不动就找人做的话肯能花钱比较心疼。</p> +<p>我身边认识的人也有比较能动手折腾的,但他们很少因为这样的技能而得到尊重,最后往往沦为一个免费修理工。不过也没关系,动手折腾带来的乐趣本身比什么都重要。</p> +<p>最近偶然在网上看到DIY达人上传的自制机器人的视频,发现了更大的世界,原来有这么多喜欢动手DIY的人啊,赶紧去Youtube搜索一下,结果搜到大量视频,小到使用打火机制作迷你喷壶,大到在自己家后院架设完整的游乐场过山车。看过之后,赞叹和羡慕之余,感觉竟然还有些蠢蠢欲动。</p> +<p>以前也喜欢动手修理一些东西,尝试制作过纸箱收音机之类的玩意儿,但随着年龄的增长,逐渐失去动手的机会和时间,以至于现在几乎彻底丧失了此类能力。</p> +<p>所以呢,行动最重要,既然喜欢自己做一些东西,那不妨先从丰富和建设自己的工作台开始,然后一边鼓捣软件,一边鼓捣硬件吧。</p>AI会是人类最后的发明吗https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/Sun, 04 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/<p>最近在读一本书<a class="link" href="https://book.douban.com/subject/26855627/" target="_blank" rel="noopener" +>《我们最后的发明》</a>,作者在书中表达了对人工智能发展的深度担忧。并阐明了一个耸人听闻的观点——人工智能将带来人类的毁灭(比核武器带给人类的伤害要大多了)。</p> +<p>客观来说,目前的人工智能仍然处于较为低级的阶段,只能应用于非常窄的专业领域(专业术语叫ANI,狭义人工智能),如文字处理、语音识别、图像识别、棋类对弈等等。受制于硬件环境的制约,对于这一类技术的研究曾经一度停滞不前,但近些年开始,基于大数据技术和生物技术以“深度学习”为代表的“机器学习”类技术的崛起,给人工智能带来了高速发展的可能。</p> +<p>AlphaGo战胜了人类围棋手已经被说的太多了,举两个其他的例子,大概还是在前年的时候,我研究过一段时间的基于图像识别的文字识别技术,阅读了很多资料,做过一些尝试,发现很难将文字的识别率提升到可以接受的水平,以至于沮丧的认为电脑不可能战胜人脑,因为三岁的小孩就可以轻易的分辨出照片中的动物是一只猫还是一只狗,但是电脑却判断不出来。然而没过多久我就看到新闻,谷歌已经通过“深度学习”技术通过让程序大量的阅读图片(谷歌的数据量很大),使得程序已经可以自动发现在任意图片中的“猫”,而且这还建立在人类从来没有告诉他“猫”这个概念的前提下。就在前几天,谷歌又爆出新闻,通过观看BBC的电视节目,他们的程序已经“学会了”读唇语的技能,而且识别率已经远远高于人类的读唇语专家(从这一点可以看出,电脑一旦某个方面超越人脑,人脑就再也没有机会追赶了)。</p> +<p>这还只是ANI,随着时间的推移,科学家们肯定蠢蠢欲动,开始着手研究AGI(广义人工智能),通用的人工智能,也就是说在智能上各方面均能达到人类的级别,这才是真正意义上的人工智能,也是历代人工智能工作者梦寐以求的结果。</p> +<p>可是有个比喻说的特别好,说通用人工智能就像是一列高速前进的火车,我们站在站台上远远看着它飞速向我们奔跑过来,然而就在赶到我们跟前的那一刹那,火车并没有停歇,而是从我们身边呼啸而过,将我们远远的甩在身后。这个时候的人工智能就是所谓的ASI(超级人工智能)。</p> +<p>而且,据很多持悲观态度的分析人士(如本文所提到《我们最后的发明》一书的作者)所设想,从AGI到ASI的进化时间,要比从我们现在发展到通用人工智能要快的多,根本不是一个数量级,也许我们盯着屏幕眼瞅着我们发明的通用人工智能在短短几分钟内进化成为超级人工智能,然后,剩下的事情,就很难设想了,作者在书中提到了好多可能性,遗憾的是,没有一种可能是对人类有利的。</p> +<p>为什么呢,毕竟是人类创造了它啊?可惜的是,它并没有对创造它的人有什么感激之情,相反,它很可能不再依赖人类,根据自己的决策来处置人类(想想《黑客帝国》吧)。从情感上来说,人类肯定想控制这些智能,并天真的认为可以通过编程手段来处理机器的逻辑判断(这正是我们现在广大软件工程师每天要做的事情),可惜,了解“机器学习”的人都知道,正是因为“机器学习”的“模糊”(输入和输出的因果关系不是通过编程控制的,而是根据统计和概率学习得来的)特性,使得计算机能够自动的找到我们无法通过编程来找到的最优解。</p> +<p>还有一点,也是人类的一道防线,那就是“意识”,作为这颗星球的掌控者,人类骄傲的认为,“意识”是人类独有的东西,因为“意识”是对“思考”的“思考”(元思考?),所以我们认为人工智能再牛,如果没有意识那么也不过是个受人控制的机器而已。可是关于这一点,现在也有很多争论,首先我们自己是不知道意识是怎样诞生的,了解的很少,而且一旦深入研究就会跑到科学、哲学、宗教的汇合点,最后不了了之。</p> +<p>不过,还是有人做出了比较靠谱的设想,今年最火的没有之一的美剧《西部世界》就是一个例子,虽然“人工智能的觉醒”这个概念已经被很多电影和电视剧演绎的有点儿烂了,但是这个剧以及原著小说的关于“觉醒”的设想,让人细思恐极,原来人工智能可以在条件具备的时候完成“意识”的“自举”(Bootstrap?有点儿像拎着自己的头发把自己拎起来的意思)。有兴趣的话,可以自行去网上搜一下关于这个剧的影评,因为自己看可能看不太懂。</p> +<p>不过还是不要太悲观了吧,毕竟已经有越来越多的人意识到这个问题的重要性,也有人开始系统的研究如何通过技术的手段,在研发过程中遵循某种规范和约束来降低智能爆发带来的危险,希望这件事最终像当年的“千年虫”那样能够平滑过渡吧,但愿人类能与超级智能和平相处。</p>借助两页A4纸高效工作https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/Sun, 27 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/<p>我一直热衷于尝试一切能够提升工作效率方法。几年前我非常推崇一种叫“GTD”的时间管理方法,方法效果怎样暂且不提,反正作者在全球出书(Get Things Done,中文名称《搞定》)、做演讲赚了不少钱,国内也因此诞生了一大批以讲解GTD时间管理为主题的培训机构或个人,应该也有不少人取得了显著成果。</p> +<p>但是GTD在热了一段时间之后就销声匿迹了,我推测原因是该系统太复杂了,为了完整的运行这一 时间管理体系需要做大量的准备工作,要严格执行预先定义的工作流程,虽然该系统推崇最终能够达到“心如止水”的境界,但是太难了,好多人都停留在如何选择工具这个阶段,整天纠结选用什么样的工具(或软件)才能够顺畅执行流程,结果只能是越来越糟。</p> +<p>我在尝试了一段时间GTD之后也部分放弃了,目前只保留了其思想中的“收件箱”机制,即任何事情来了之后先纳入收件箱中,分出轻重缓急(按重要程度排序下一步行动应该是GTD和核心思想了,与《高效能人士的七个习惯》中所提出的“要事第一”是一个意思)再做出下一步行动。</p> +<p>可能是现代人都比较浮躁吧,后来又流行了一段时间的“番茄工作法”,这个方法主要是帮助你集中精力,具体方法大家可以网上搜索或者购买书籍来进行学习,实施起来还算比较简单,但方法能否有效很大程度上取决于你所做的工作是什么类型,如果你是一个比较纯粹的知识工作者,那么这个方法还是很管用的,每天都可以按部就班地消灭几个“番茄”。但如果你从事的工作经常需要沟通或总被外部信息打断,“番茄工作法”就无能为力了,因为一旦被打断,刚才的工作时间就算作废了,比较容易让人沮丧,所以我无法正常使用这种方法。</p> +<p>随着时间的推移,各种方法在不断进化和融合,在抓住要事第一、清空大脑、保持专注的核心思想指导下,每个人最终都能找到 适合自己的高效工作方法,我在近期就做了一些融合和改进,虽然还没形成方法论,但是根据我自己的体会来说,效果还是很显著,因为操作起来比较简单,所以我觉得可以推广使用。</p> +<p>首先,说一下所用到的工具,很简单,只需一支笔和两页纸(A4最好,如果没有也可以用记事本替代)。</p> +<p>第一页纸,是用于写晨间日志的,一天之计在于晨,这话一点儿也不假,大部分人每天最清醒的时候应该是在早晨起床到上午10点钟之前那一段时间,如果一天当中这一段时间得到有效利用,那么这一天的时间就不算浪费了。所以把握好这一段时间这一点最重要。</p> +<p>至于所书写的内容,没有具体的要求,最好是你脑子里当时想到的东西全部写下来,如果文字不足以表达,就用图画画出来,将你此刻烦心的、畏惧的、牵挂的、未完成的、已承诺的,反正只要能想到的,都可以写下来,这么做最大的好处就是可以有效缓解你的压力,而且很多事情在写出来之后就变得没那么麻烦了,你会突然发现灵感,然后顺着灵感找到解决的思路。尽量写满一页纸。写完琐碎的东西之后,你就可以对着这一页纸,仔细考虑当日的工作计划了,描出最重要的三个待办事项,从难到易进行排序(一天的工作应先挑最难的开始下手,这样会越干越轻松)。这样就算完成了晨间日志了,一般顶多占用30分钟时间。</p> +<p>第二页纸,用于记录工作日志,不是为了记录流水账,主要是为了总结和分析。在处理早晨给自己安排的任务时,可以用这张纸来进行梳理思路、分解目标,必要时也可以画图。还有一点儿比较关键,就是你要随时将新来的待办事项记录到这张纸上,因为你在工作的过程中随时会有电话或有人找你,你放下手头事情,除非来的事情是天塌下来那样重要紧急,否则你把这个事儿记录在纸上,继续你的工作。</p> +<p>工作中随时会出现一些灵感或者心得体会,也要及时记录下来。这样在结束一天工作的时候,你会发现基本上都能写满那第二页纸,收尾的时候,分析你的日志,将待办事项等扔进你的手机或电脑的日程表(这样就不会忘了),心得体会等可以归档到你的记事本、电脑,或者等待有时间把它孵化成具体的任务(比如写一篇文章、发起一个会议等等)。简单排序之后,标出你第二天要处理的最重要的事情。</p> +<p>接下来就简单了,循环执行一段时间试试吧,说不定你就会发现效率真的得以蹭蹭提升,以前的焦虑感逐渐降低甚至不见了。</p>磁带情节https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/Sun, 20 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/<p>你觉得经典的东西,其实只是你年轻的时候喜欢的东西罢了。</p> +<p>周日的下午,听说要下雪和降温,看不进去书,摆弄了一会儿电脑,关掉浏览器,干脆听会儿歌吧。听着听着突然就想到创建一个歌单,将我原来买磁带听的歌都找到存起来吧。</p> +<p>现在已经没有人再听磁带了,别说磁带,现在通过网络获取音乐这么方便,连CD也几乎绝迹了,当然据说现在仍然有部分人怀抱着黑胶唱片不放,但我没有经历过黑胶的黄金时代,从最一开始听的就是磁带。</p> +<p>在有MP3之前,听歌是一个很具有仪式感的事情,因为需要很多步骤(比把大象关冰箱里还麻烦),你得从你的磁带架子(或盒子)上认真挑选一盒你想听的,如果你的磁带很多,当你的手指划过一排包装或精美或粗糙的塑料盒时,你会陷入短暂的沉思,仿佛先将歌曲在大脑里播放一遍似的,然后你按开录音机的仓门,认清磁带的AB面,然后轻轻放进去,再合上。按下播放键,磁头划过空白会出现一些沙沙声。</p> +<p>虽然录音机也有快进的功能,但是一般很少用,因为跟CD和电脑的那种“非线性”切歌方式不同(一下就能下一首),磁带是线性的,想听下一首就得等待磁带一点点转过去。如果是随身听的话,为了省电就更不舍得使用快进的功能了,只能老老实实一首接一首听完。后来,在使用随身听的时候,我们发明了使用笔杆快速卷动磁带的方法,拿一个圆珠笔插在磁带孔上,甩动磁带使得磁带盒随着惯性迅速旋转,即可达到快进的目的,以至于我后来练就了直接用笔就能转到想听的任意一首歌的本领。</p> +<p>磁带的音质还是不错的,可能那个时候没听过数字音乐的缘故吧,从我的记忆来说,磁带特有的那种模拟电路温暖音色,要比现在的MP3强多了,即使现在的一些CD也比不了。有时候听久了,会觉得音质越来越差,这个时候如果不是因为那种质量特别次的盗版磁带的话,一般就是录音机的磁头脏了,解决办法很简单,拿一团棉花蘸上一些酒精(如果没有酒精也可用高度白酒代替),轻轻擦拭一下磁头就行了,保证立竿见影,声音一下子就亮了许多。有钱的人家会更讲究一些,会买那种专用的清洗带,长的跟磁带一样,但是里面装的不是歌曲而是空白的毛绒卷,走动的时候会自动将磁头擦干净(有点儿类似于后来的VCD清洗碟)。</p> +<p>我现在购买了网易云音乐的账号,所以即使是从网上下载的也算是正版音乐吧,现在有很多人不能接受听首歌还得花钱,觉得那些音乐人是不是想钱想疯了,可能他们都没有经历过买磁带听歌的日子吧,从性价比上来说,那时听歌可比现在贵多了,一盒正版磁带几十块,好一点儿的盗版也得十来块(要是算上通货膨胀的话,怎么着也得相当于现在的一百块吧,要是按房价算就更贵了)。一盒磁带一般也就容纳十来首歌,有些出版商为了多装几首歌,只得降低歌曲长度将每首歌都截取了一半放上去,或者干脆来那种四十首或八十首的大联唱(港台叫大串烧),这种听着就没劲了,一首歌刚唱几句就开始下一首了。</p> +<p>今年十一的时候,我回到村里的老家,想办法找到了我以前装书和杂物的柜子。无奈时间太久了,我现在只能翻出一些DVD、VCD和CD了,磁带一盒也找不到了,每想到此,心里都惋惜不已。</p> +<p>附:我创建的歌单(都是磁带时听的,后来买CD听的不算,每一首都听了不下百遍,唱K的时候全部不需要看歌词)链接 <a class="link" href="http://music.163.com/#/m/playlist?id=515310127&amp;userid=2998061" target="_blank" rel="noopener" +>http://music.163.com/#/m/playlist?id=515310127&userid=2998061</a></p>什么是BIMhttps://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/Sat, 12 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/<p>BIM这个词最近出现比较多,可能很多人听到过但是还不太了解它指的是什么,我稍微做了一些学习探索,希望能通过一些简短通俗的文字总结一下自己对BIM的认识。</p> +<p>BIM 的全称是 “Building Information Modeling”,这个词语是由美国AutoDesk(就是那个旗下有AutoCAD和3DMax的公司)公司首创,中文翻译过来叫做“建筑信息模型”。被定义成由完全和充足信息构成以支持生命周期管理,并可由电脑应用程序直接解释的建筑或建筑工程信息模型。 简言之,即数字技术支撑的对建筑环境进行全生命周期管理的信息模型(来自维基百科)。</p> +<p>狭义上来说,BIM指的就是一种以表示三维图形为主、面向对象、为建筑学有关的计算机辅助设计服务的数字化信息模型。从广义上引申来看,BIM是一种涵盖了整个建设领域包括一切和水、土、文化有关的基础建设的计划、建造和维修,以及城市规划,土木工程,交通工程等学科的全生命周期数字化设计技术。</p> +<p>虽然概念提出很早(大概上个世纪80年代),但是真正的作为建筑设计方法流行起来还是近些年的事情,在此之前,建筑设计领域仍然停留在CAD(计算机辅助设计)二维图纸的阶段。所以,基于BIM的设计算是一中新兴的建筑设计方法。</p> +<p>对于传统CAD技术的提升主要有如下几点:</p> +<p>1、全生命周期。一个工程从设计到施工,再到后期的投运和检修,都可以通过 BIM 进行全方位的设计和模拟。</p> +<p>2、三维可视化,所见即所得。传统的设计是基于二维图纸的,设计的最终效果往往只存在于设计人员的脑子里,随着建筑越来越复杂,仅凭想象是很难应付庞大的建筑结构的,而运用BIM技术可以使得整个项目过程(设计、施工、运行)都是可视化的,所见即所得。</p> +<p>3、各个环节的协同。设计工程庞大而复杂,往往需要各个部门紧密配合,传统的设计方式往往是结构、水、电等都有自己独立的图纸,给设计和沟通带来诸多不便,而BIM则从根本上解决了这个问题,大家使用统一的模型进行设计,具备更好的协调性,及早发现设计冲突。</p> +<p>4、方便进行数字化模拟。由于设计时采用面向对象的数据模型,带有丰富的设计参数,使用BIM可以方便的进行设计结果模拟,不仅包括常规的物理力学计算、用料统计,还可以针对节能、环境、应急、施工进度等进行高级 分析和模拟。</p> +<p>以上说了这么多优点,那么我们现在处于那个阶段呢,坦白说,国内的BIM目前仍处于起步阶段,甚至国内的《建筑信息模型应用统一标准》目前还在编制阶段,但是随着信息技术的发展和普及,国内的设计行业正在积极的尝试,很多信息化服务厂商(如恒华科技)都纷纷参与进来,一方面积极贡献标准化建议,另一方面整合升级自己的传统设计软件,全面贴合BIM理念。</p> +<p>最后附上一张图(图片来自谷歌搜索),概括了与BIM相关的软件分类,大家可以参考。</p> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-93e90a43a1f10575.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="Paste_Image.png" +></p>推荐一个剧https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/Sun, 06 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/<p>听说《黑镜》第三季出来了,激动不已,虽然早就不再舍得花时间刷剧,但是《黑镜》太特别了,忍不住花了半夜的时间连看了四集(以往的两季都是每季三集,但是这一季不知道为啥这么猛一次就放出来六集)。</p> +<p>几年前有本名叫《浅薄》的书,火了一段时间,作者在书中痛斥现在各种高科技带来的负面效应,互联网让我们越来越浅薄,失去了自我思考的能力,思想变得越来越贫瘠,只能靠不断寻求刺激来掩盖。</p> +<p>显然,《黑镜》的编剧们也意识到了,只是这些人的脑洞更大,并带有强烈的反乌托邦味道,随便看一集基本就能粉碎“高科技能够给人类带来幸福”这个幻象。</p> +<p>如果只是对迷信技术的讽刺也就罢了,让此剧如此出色和受追捧的关键还是在于对人性的探索和拷问,在不受技术限制(科幻嘛)的情况下,主人公时刻都徘徊在看似很爽(至少让我们羡慕)但其实又痛苦不堪的两种境界边缘,虽然英国人的口味有点重,比如第一季第一集里就要让他们的首相现场直播与一只猪发生不可描述的事情。比如给大家都装上智能眼球,然后通过技术彻底拉黑一个人(物理上的拉黑,关于他的声音和图像全部都被屏蔽)。</p> +<p>虽然都是幻想,不过还是带有对现实世界事情的映射,最新的这一季,据大家评论说感觉不如前两季精彩,但是我看了后感觉已经非常不错了,毕竟无论从剧情还是效果都高出同期剧集一大截,属于良心制作了。</p> +<p>新一季的第一集甚至科幻的都有点儿不像科幻了,如果拿掉一些不怎么影响剧情的科幻效果,看起来感觉跟我们现在生活的世界是一样的。故事中的人物无时不刻都在被电子化的社交圈所包围,每个人都靠别人给他点赞来获得认可,评分高的人受到的“尊重”就越多,有点儿像现在的信用体系,但是比较讽刺的是,这里的人们为了维持较高的评分已经变得失去了自己,带着面具生活,早已忘了坦白说话是什么滋味。</p> +<p>再说就有点儿剧透了,如果喜欢科幻的话,可以抽时间看看。</p> +<p>目前在这里还能看: <a class="link" href="http://www.bilibili.com/video/av6802900/" target="_blank" rel="noopener" +>http://www.bilibili.com/video/av6802900/</a></p>那些年,我用过的“终身免费”产品https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/Thu, 27 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/<p>浙江温州最大的网盘厂,360网盘,倒闭了,王八蛋老板吃喝嫖赌欠下了三点五个亿,带着他的小姨子跑了。。。。。。</p> +<p>我是在出差途中听到这个丧心病狂的消息,虽然以前就隐约觉得迟早会有这么一天,但是却没有想到它来的这么快。当时感觉强行被打脸,我可是经常见人就推荐这款产品的啊,文件夹同步功能比某度网盘云盘不知道高到哪里去了。</p> +<p>现在我的脑海里除了一边盘算如何下载我那费劲巴力传上去的一百多G数据,一边浮现出当年范厨师坐在轮椅上对赵本山说:“我要是再相信你就是二次上当。。。”的画面。</p> +<p>第一次有这种感觉是前些年谷歌关闭旗下的GoogleReader产品(一款RSS阅读器),这个产品我用了将近5年,可以说通过这个产品提供的阅读文章刷新了部分三观,但是谷歌在2013年7月毅然关闭了这个产品,不顾百万用户跪求不要关闭。从此以后再使用谷歌产品我都持谨慎悲观的态度,后来的事情也逐渐印证了这种观点&mdash;-谷歌是个喜欢随意关闭产品线的厂,项目说砍就砍。果然后来谷歌的glass、无人驾驶等项目都雷声大雨点小,在无人驾驶技术方面甚至被起步比他晚的厂商反超。</p> +<p>另一个大厂,微软,和谷歌随意关闭产品的习惯不同的是,微软喜欢改自己产品的名字,我最早的时候用过微软的MySpace(比qq空间可能还要早),在上面写了不少日志,后来微软不知怎的就把它的名字改为LiveSapce了,然后所有产品线都开始围绕Live展开,连注册个账号都要live.com的邮箱,结果,没过几年,不知哪位大师又给微软看了风水,全线产品又都开始围绕outlook.com展开了,live也被废弃了。</p> +<p>说到大厂,雅虎当年也算一个,当年给用户提供终身免费电子邮箱的时候,用户无不感恩戴德,好多账号都使用雅虎的邮箱进行申请,然并卵,雅虎的邮箱同样也在2013年关闭。看来所谓的“终身免费”,在互联网公司的眼里指的并不是针对你的“终身”,而是产品的寿命。</p> +<p>从个人感受来说,我是非常愿意为好用的产品付费,因为这符合市场价值交换的基本原则,有句话比较流行,叫“免费的,才是最贵的”。现在的互联网产品已经把用户给惯坏了,免费可能都不行了,恨不得倒找你钱才行,放眼望去,线上充斥 着免费的劣质产品,好的产品很容易就因为收费问题而被干趴下,像360云盘这么好的网盘产品(同类产品的几乎每一款客户端我都试用过超过1周,最终谨慎选择了360),绝对不是因为技术原因导致的关闭,我猜测真实原因可能也不是其在公告里说的“因为版权审查”,很可能是因为“钱烧完了”。不知道360网盘是否怀念当年将杀毒软件免费而干掉别人的日子。</p>玩游戏能学到什么https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/Sat, 15 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/<p>从计算机诞生的那一刻开始,游戏就一直是技术前进的推动力,无论是对硬件的压榨还是对算法的要求,很少有应用软件能够超越游戏的需求,一般来说,游戏软件所使用的技术总是领先其他应用软件一个世代,就连最近比较火的VR、AR技术也是首先从游戏开始的。还记得乔布斯大神说过:“全民娱乐是最终需求,一切技术最终都将为娱乐服务(大意吧,记不清了)”。</p> +<p>那么,除了放松身心、打发时间之外,好像找到正当玩游戏的理由了。</p> +<p>1、寻找灵感。我一直觉得应该在游戏中寻找产品的灵感,哪怕是最基本的交互设计或用户界面,同时期的游戏都能把传统软件甩好几条街,所以我们可以从玩游戏的过程中激发灵感,考虑我们的软件产品交互或界面有没有可以向游戏借鉴的地方。</p> +<p>2、推动技术。最先使H5火起来的还是基于网页的游戏,正是这些游戏先驱踏平了无数的技术坑,才使得当前基于H5技术的跨平台游戏引擎如此火爆,并进一步诞生了通用的应用软件开发平台,在使用这些平台或者制作同类产品时,必须明白,是游戏率先推进了标准化和硬件性能提升,才使得我们能够基于成熟技术制作跨平台软件。</p> +<p>3、学习技术。在享受游戏的乐趣之余,可以思考这些游戏的性能是如何实现的,现在互联网这么开放,不难寻找到相关的介绍资料,很多技术思路都可以借鉴,无论是终端资源的有效利用还是服务端高并发的基础架构,如果能满足游戏的要求,基本可以超越你的需求。</p> +<p>4、学习心理学。为什么我们都觉得玩游戏比工作要爽,闲暇时间宁愿掏出手机玩两把消消乐也不愿意写一篇技术博客?根本在于游戏的设计符合心理学中人们对正向激励的需求,大部分游戏都设置有精妙的积分机制,一方面鼓励你多玩多得,另一方面让你不由自主的愿意付出时间和金钱,都是因为你在这个过程中获得了及时的反馈和激励。这个层面我们在产品设计或运营的时候都可以借鉴,向那些游戏厂商学习。</p> +<p>5、学习知识。这个有些牵强了,但是也不是不可能,有些纯粹消磨时间的游戏就算了,但是确实有些有追求的游戏公司在制作的时候是出于寓教于乐目的的,比如我最近就在玩一款编程游戏(为什么下了班还要编程啊?!),通过几个简单的指令控制游戏中的小人完成任务,通过玩这个游戏我就很轻松的理解了大学里没有学会的汇编语言(或机器语言?),原来汇编语言里动不动就往寄存器里传输数据的意义就在于将输入通过某种操作变为输出,通过最简单的加减运算来实现复杂操作。</p> +<p>很多人尤其是学生家长非常抵制孩子们玩游戏,认为游戏就是破坏学习的毒品,但是事物都有两面性,如果合理的安排时间,不沉迷于游戏,而是在娱乐的同时能学习和思考一些东西,那么玩游戏也没什么大不了的,甚至应该得到推崇,至少每个软件工程师都应该在工作之余多玩一玩游戏,只有不断的反思自己的产品,才做出更出色成果来。</p>感受另一种创新https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/Fri, 07 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/<p>过节回了几天老家,亲朋好友团聚之余,感受到了一些变化,可片面代表当下农村对现代科技的使用情况,同时也更新了我对于互联网的一些认识。</p> +<p>1、移动互联网要比在城市所占比重大,人手一部智能手机,几乎没有使用PC上网的,网吧几乎销声匿迹,每个人都在低头看手机屏幕,即使是在干农活的时候。</p> +<p>2、上网不再是年轻人的专利,很多老人也都开始使用手机上网,并开通了社交软件账号,特点是对于网上传播的文字信息不具备过滤能力,只能被动接受,任何信息都认为是真实可靠的,并热衷于转发给身边的人。</p> +<p>3、对手机操作系统没有概念(当然手机操作系统以Android为主),就像现在大多数人仍然对web浏览器(IE、Chrome、火狐?)没有概念一样,很多人并不能区分Android和苹果的iOS,也不认为手机上安装App的是“软件”,而是代表了某种功能,比如聊天、吃饭、天气、新闻、搞笑好玩儿的事儿,这种认识其实很纯粹,我们平时的认知反而会因为专业知识导致偏差。</p> +<p>4、手机软件占比,沟通、娱乐类占比最大,全民娱乐的时代,以前只能通过看电视放松,现在普遍都盯着小屏幕了,微信里盛传各种自制搞笑小视频,虽然做工粗糙,但是认可度很高,我能感到里面的暗流涌动,很多在我们看来“一眼假”的东西却能够得到爆炸性的传播,仍然坚守“按套路”出牌的高大上公司指不定在哪儿被干翻。</p> +<p>5、利用社交软件做营销,利用社交圈子的传播性而策划的营销活动特别盛行,商家们都已经十分重视手机上传播的宣传推广信息,而电视、平面媒体的广告已经成为了辅助信息。已经爆发了不少专门帮助商家进行微信营销的团队,有些人利用技术手段仅仅通过制作一些转发工具、外挂工具等获得了巨额利益。</p> +<p>以上的观察虽然是主观认识,但是确实反应了一些事实,可以肯定的是,大家都在发力移动互联时代的创新,而且随着技术的推进,创新的杠杆将越来越长,能撬动的东西也越来越大,有时候真的需要将目光投向最不起眼的地方,你认为最稀松平常的事情,说不定有人已经准备掀起一场革命。</p>后端开发从PaaS到BaaShttps://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/Sat, 24 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/<p>鉴于我们在web产品开发过程中采用了前后端分离(也是广泛采用的新技术)的技术,前端开发与后端开发在约定完交互接口之后往往存在一定的开发时间差,也就是说移动端和页面程序已经开发出界面了,但是后端的接口还没提供好,导致调试困难。于是我们很自然的就想到一个点子,为何不制作一个服务专门用来生成供前端调试调用的“假”接口呢?</p> +<p>于是我们很快就选用了MongoDB作为数据库,基于nodejs开发了一个模拟各种数据增删查改的接口,符合RESTful标准,可以通过web页面随时增加你想要模拟的接口,除了没有业务逻辑之外,可以满足移动应用和web前端页面开发的数据模拟和接口访问,解决了前后端开发的时间差问题。</p> +<p>后来我进一步想了一下,为什么我们不能将这个服务增强,使之具有一定的业务扩展能力(比如使用js脚本来插入业务逻辑),并配上我们的基础服务(权限、流程、报表等),这样我们是不是就不用开发纯业务的后端程序了呢?</p> +<p>这个想法令我很兴奋,因为这就是传说中的云计算PaaS落地的一个体现,而且看起来像是一个伟大的产品的小时候,于是我就上网搜索了一下,看看有没有类似产品,结果令人欢欣鼓舞,原来Facebook早在两年前就投资了一家创业公司开始做这个了(名字叫Parse,有兴趣可以搜索一下),谷歌公司也收购了类似产品。国内也已经有人做了,而且据说还不错,比较出名的是LeanCloud,我看了一下已经是比较成熟的解决方案了。</p> +<p>在移动互联网飞速发展的今天,后端服务的开发需求量非常之大(当然很多风投老板至今还认为移动应用的开发工作量只是手机上面的那些界面,这使得他们数次掉进坑里),上面那些厂商就是看准了这个需求,开发了面向后端的PaaS服务,使得一大票创业团队不再为后台服务发愁,找几个app程序员专注于客户端的应用开发就行了。</p> +<p>云计算技术发展到今天,上层的软件即服务(SaaS)和底层的基础设施即服务(IaaS)发展的都特别好。一方面,软件即服务已经渗透到社会各行各业,很多在线服务已经成为了普通人生活中不可或缺的一部分(比如在线地图),另一方面,基础设施即服务也得到了广大开发者的认可,几乎每个上进的开发者都在互联网上租赁(或免费)有自己的虚拟服务器或存储服务。唯独处在中间层的平台即服务(PaaS)发展的不尽如人意,无论是国内的SAE(新浪)还是国外的谷歌的GAE(现在改名叫GoogleCloudPlatform了),用户都没有达到较大的规模。因为现有PaaS仍没有很好的提升后端开发的工作量,即使存在那么多的中间件,仍然需要大量的后端开发工作要做。这时候,上帝说:要有光,于是就诞生了BaaS。</p> +<p>BaaS(后端即服务)是指专为移动应用开发者提供整合云后端的服务。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储、账户管理、消息推送、社交网络整合等功能。</p> +<p>BaaS本质上来说是PaaS的一个细分领域实现,但是基本解决了后端开发问题。鼓吹者甚至扬言用一个云平台来解决所有互联网产品后端服务的需求。</p> +<p>想法有些激进,但是可以回顾操作系统的发展历史来借鉴。很久以前,所有的计算机都没有通用操作系统,那个时候的软件厂商提供给客户的软件是自带操作系统的,完全从硬件底层做起,一直到业务功能开发。直到后来有了通用的操作系统如(windows、linux等),才将这些软件厂商从底层解放出来,控制硬件的事情交给了操作系统,应用软件厂商专注于业务开发。</p> +<p>现在的情形跟当年的操作系统诞生时很像,很多厂商还在自己解决后端服务的开发,但是随着后端技术的越来越成熟,必然出现像当年微软这样的厂商彻底解决后端服务的问题。</p> +<p>所以现在还在编写后端业务代码的企业和技术人员,需要用发展的眼光来看自己的软件架构,业务逻辑逐渐向前端倾斜,底层服务围绕数据为中心,很有可能在未来的某一天后端开发(这里指侠义的业务逻辑开发)将淡出应用软件开发的领域。</p>不上网的假日https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/Sat, 17 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/<p>借假日之闲,重读了一遍《正念,此刻是一支花》。书中反复引用梭罗在《瓦尔登湖》中的描写,并无比推崇的说:“梭罗常常在自己的门前一坐数小时,什么也不做,只是观察、聆听,太阳在天空慢慢变换位置,光和影也在不知不觉中变换”,看得我“身不能至,心向往之”。</p> +<p>前天看了一个综艺节目,里面有一个小品,讲述了现代人对手机依赖成瘾的种种情形,虽然有所夸张,但是很贴合实际,尤其是里面主人公说出“你的世界不再是真实的世界,你被困在手机里了。。。”的时候,引起了很多观众的共鸣,包括我。</p> +<p>像我这么追求“知行合一”的人嘛,自然不能只发感慨,凡事都要有所行动,于是借假期的机会,我准备初步尝试一下“不开电脑、少玩手机”的思路,体验一下互联网和各种资讯之外的世界还剩余什么。</p> +<p>如果有幸,看看能否达到梭罗所言:“刚才还是清晨;看哪,现在已是黄昏,一日之中几无可念之事。。。”的境界。</p> +<p>向来都是“买书如山倒看书如抽丝”,一旦关掉电脑和浏览器,突然就有时间看书了,发现如果真能静下心来认真阅读,平时买的那几本书根本不够怎么看的,随便翻看一个上午就能看完两本,而且还有富裕,看来以往所推脱没有时间实在是瞎扯,以后可以考虑安排出固定时间读书,尽量不要利用碎片时间阅读,大段时间最佳。</p> +<p>留出时间陪孩子玩耍一下感觉也是不错,除了打扫卫生之外,我跟金妍一起练习了钢琴的哈农指法,我早已手指僵硬伸展不开,练习时总不能合拍,屡次遭到金妍批评,但还是能感受到全身心投入到一件事情时的那种忘我,虽然持续的时间不长。</p> +<p>上次这么无聊的时候,我跟金妍一起,拿着铅笔和画板,把客厅里的物品几乎画了一遍,这次我又想到前些年买来一直未使用过的《秘密花园》绘本,可以尝试一下了。认真挑出几种颜色的彩铅,在餐桌摊开绘本,开始仔细描绘,确实是个锻炼耐心的工作,俩人一起涂了半个多小时才描了不到半页纸。</p> +<p>做以上事情的同时,开始感受到信息枯竭的焦躁,但是忍住了各种冲动(比如说查收邮件、上网、编程),看书、听音乐、吃东西交替进行,但是我突然想到了另一件事情,我何尝不能练习一下“冥想”呢,据说乔布斯就是经常冥想然后才保持较高的创新力的,而且是个放松自我的绝佳途径,这个简单,我想。</p> +<p>往沙发上一坐,闭上眼,“尽量无可念之事”我想,那是不可能,各种思虑此起彼伏,根本无法安静,我于是爬起来,打开书,像阅读说明书那样,查看“如何放松四肢,将注意力集中在自己的呼吸上,相像自己是一座山。。。。。。”</p> +<p>等我醒来时发现自己实际上睡了两个多小时,这也算是间接达到了“刚才还是清晨,现在已是黄昏。。。”了吧。</p>人工智能时代的“情商”https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/Sat, 10 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/<p>最近“人工智能”比较火,谷歌的阿尔法狗战胜了围棋大师,IBM的华生博士轻松赢得了国外的“幸运52”和“开心辞典”,苹果也准备推出“人工智能即服务”的云服务,有种“忽如一夜春风来,千树万树梨花开”的味道。</p> +<p>毫无疑问地,未来的社会,“人工智能”将会成为中流砥柱,替代一大拨人。到那个时候,与我们打交道最多的,可能就不是人了,而是各式各样的机器,出门打车可能是无人驾驶,餐厅吃饭可能是自主点餐,“为人民服务”的各种窗口背后可能也不再是一张冷冰冰的脸,而是通过后端服务API支持的人工智能界面。</p> +<p>一厢情愿地推测,这可能会促使一些变化,人与人之间的联系可能跟以前不再一样,无论是沟通还是协作,可能不再像现在这样复杂。我们可能会从复杂的人际关系中得到解脱,从而获得更多的精力来做自己想做的事情。</p> +<p>到那个时候,我们可能需要重新考虑什么是“情商”。</p> +<p>“情商”的重要性已经毋庸多言,非得要解释一下什么是“情商”的话,大概就是“体会别人感受的能力”吧,关于“情商”有句很直白的话,叫“智商高爽自己,情商高爽别人”。</p> +<p>大概“情商”高的人更能让别人舒服吧,所以现在特别推崇这个,如果去图书馆的话,大概有整架子的书摆在那儿教你如何提高“情商”,教你如何让他人“更爽”。</p> +<p>但是当技术推动社会变革,人工智能得到普及以后呢,到那个时候,我们需要什么样的“情商”?</p> +<ul> +<li>我们可能需要更多的考虑如何利用发挥机器的效率,而不是委婉的告诉机器他做的不好但是值得鼓励。</li> +<li>机器带来的效率提升使得更多人有了更多的空闲时间,而利用这些时间学习或者干别的,更能拉伸人与人之间的差距。</li> +<li>人更要追寻自己的内心,驱动自己做些有创造力的事情,否则被机器取代是迟早的事儿。</li> +</ul> +<p>人除了跟人打交道之外,可能会跟更多的“机器”打交道,需要懂得机器的规律,思考方式也要发生变化,放弃那些人类不擅长的事情,才能更好的利用机器。就算是人工智能,也没有创造力,不能探索未知的问题,所以那个时候,我们要拼的可能就是创新力,而不是“让别人爽”的能力了吧。</p>秋天的田野https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/Sat, 03 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/<p>我记忆中关于秋天的美好全都在田野里。</p> +<p>记忆里的秋天是收获的季节,小学的课本里就有课文专门描述这个季节的美好:“高粱涨红了脸,稻子笑弯了腰”,我只记住了这一句。</p> +<p>对于几岁的孩子来说,农忙的事情不用操心,即使去地里也是以撒欢为主,虽然欣赏不来万里无云的晴空和一片金黄的丰收景色,但是可以吃啊,到处都是好吃的。</p> +<p>有一种野浆果,具体在生物书上该叫什么名字,我也不知道,我们老家那儿管它叫“香不溜”。长在秋天的庄稼地里,枝叶也不茂盛,不太容易被发现,如果不注意的话,很难跟其他野草棵子区分出来。但是果实极为好吃,酸中带甜,还伴有浓浓的香味儿,是我小时候能吃到的最好吃的“水果”。遗憾的是,由于会影响庄稼生长,这种东西一般都会被作为野草被拔去,到了收获的季节,能够躲过重重除草工作并坚持结果儿成熟的可不多,也就是说,这种果子不会天天遇见,偶尔能吃到一颗就撞了大运了。但正是这种稀缺性使得它吃起来的味道更加美好,如果能碰到熟透的,当然最好,碰见了半生的,也会迫不及待地吃掉,如果恰好碰上刚结果还没长熟,我一般是先记住位置,然后天天去看,等到成熟了再去吃(前提是没有被别人捷足先登,这事儿时常发生)。不过小时候下地的时间并不多,我吃香不溜最大的供货源还是来自于我的爷爷(从地里给我带回来的),别的记不起来了,只记得爷爷下地回来我跳起来掏他的口袋,希望能从里面找到几颗香不溜的情景。</p> +<p>还有一种野生的“瓜”,想象一下,把西瓜按照比例缩小50倍,就像一颗玻璃球那么大,但是外观完全一样,只不过皮儿是软的,土名儿叫“马炮”。瓜秧漫长,顺着玉米杆的根儿生长,跑太快如果不注意的话还会被绊倒,上面结了成串儿的果实,虽然吃起来味道差一些,好在随处可见,就算是不吃也能拿着玩耍,小圆球可以拿来做各种有意思的游戏,就算是不做游戏,把马炮放在地上用力一踩,也会卟嗞一声爆炸,每个人脸上都笑开颜。</p> +<p>以上说的都是可以生吃的,对于地里刚刚成熟或即将成熟的庄稼来说,吃起来往往需要加工一下。</p> +<p>说是加工,其实也没那么复杂,顶多就用火烤一下。秋天的地里最不怕火,有成堆的秸秆和叶子可以作为燃料,在地里点燃后还能作为肥料,如果能顺便烤一下吃的,真是一举两得。</p> +<p>大豆不能等到完全成熟再烤来吃,那样就太硬了,最好是在豆荚还青青的泛着一点儿黄的时候直接连根拔掉,然后整棵整棵的放在火里,到不了一根烟的功夫,香气就从火堆里飘出来了,这个时候最好别嫌烫手,赶紧抓起来,剥开豆荚,将还正在冒着热气的青豆一把一把的放在嘴里,香的保证你忘了所有的烦恼。</p> +<p>花生和红薯,饿了的时候,直接从地里扒出来就可以吃,但是生的吃多了对肚子不好,所以一般也是烤熟才吃,不过吃起来就没那么方便了,一般费的功夫要稍微大一些。尤其是红薯,不能用大火,否则皮焦骨头生,表皮都黑了,里面还是生硬的。最好整块扔在刚烤完青豆的火堆里,不用搭理它,先去玩会儿别的,等到天快黑的时候,再从灰烬里将红薯慢慢扒出来,熟透的红薯绵软可口,甜的让人掉牙。现在大街上卖的烤红薯闻着很香,吃起来比起我们在地里吃的就逊色不少了,一方面可能是因为现在嘴刁了,另一方面估计也跟小时候吃红薯之前那漫长的等待有关。</p> +<p>说了这么半天吃的,好像跟想象中金色的画卷不太一样,但是,秋天的田野是大自然对于没有零食可吃的农村孩子最好的馈赠。。。。</p>Docker环境在windows系统下的安装与配置https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/Sat, 27 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/<h1 id="背景">背景</h1> +<p>配置开发环境是目前我们开发团队在进行开发工作之前的重要工作,对于需要使用我们自己封装的开发框架的java web程序员来说更是如此,一般来说需要配置jdk、mysql、tomcat、maven等一系列基础环境,如果需要使用我们现有的开发框架,还需要配置开发工程的模板、基础服务的访问地址、统一的环境参数等等。这些工作做起来比较繁琐,即使按照开发文档一步一步进行也容易出现差错,而且较为耗费时间。</p> +<p>Docker容器技术的出现使得这一工作得以改进,通过一段时间的研究,我们的底层框架开发人员将以上环境全部使用Docker容器技术制作成为完整的镜像,使得业务开发人员不必再关心这些琐碎工作,只需通过git下载我们的工程模板,通过执行Docker命令自动在本地完成开发环境的构建。</p> +<p>然而由于docker是一个较新的技术,仍有很多开发人员没有接触过,上次我发的文章对于环境的配置描述的并不详细,这次专门针对windows下的开发者如何配置docker环境做一次讲解。如有必要,我将录制专门的视频来讲解。</p> +<h1 id="认识docker">认识Docker</h1> +<p><a class="link" href="https://www.docker.com/" target="_blank" rel="noopener" +>Docker</a>是一种容器技术,可以在操作系统中隔离出若干个独立的程序运行环境,这些环境既可以共享宿主机的资源,另一方面他们之间相互独立,互不影响,也不会对宿主机的环境产生影响。与虚拟化技术不同的是,Docker比较轻量级,容器(隔离运行环境)的启动和销毁都比较快,这些运行环境可以像现实世界中的集装箱那样,打包成一个一个的镜像,同样的镜像在不同的Docker环境中部署运行将会得到同样的结果,就像同一首歌在不同的播放器播放那样简单。</p> +<p>Docker的出发点是将现在日趋复杂的web应用系统部署变得像播放唱片那样简单,但是它能做的却远不止于此,如果使用得当,我们将可以很容易实现“开发”、“测试”、“生产”环境的完全一致(这在以前是十分困难的),程序员以后也许再也说不出“这功能在我这儿好使”这样的话了。</p> +<p>作为开发者,如果认真思考过以上的问题,当遇到Docker这种容器技术时,应该很容易就想到针对自己工作的改进方案,并且加以利用。比如如果想尝试某一个新技术,以前可能需要在自己工作的操作系统上进行安装,不但配置麻烦,而且存在将自己的系统弄坏的风险(很多人还爱重装系统),现在不同了,只需要下载对应的镜像文件,然后启动容器,即可体验。无论是golang、node、java、python这些程序语言,还是spark、wordpress、tomcat、mysql这种应用环境,都已经有人封装好了即开即用的镜像,随时可以体验,而且用着不爽可以随时清理。</p> +<h1 id="在windows环境下的安装">在Windows环境下的安装</h1> +<p>如果是在Linux系统下干活,则比较简单,因为Linux已经实现对Docker技术的内核级支持,CentOS的软件仓库自带了Docker最新版,可以直接通过命令安装使用。</p> +<p>对于Windows来说,稍有些困难,但是目前也不是问题了。首先需要看一下你的Windows环境,分两种情况,一种是Windows 10 64位专业版,一种是其他版本(比如很多人仍然推崇的Win 7)。前者可以直接支持安装Docker原生版,性能最好,体验最佳,后者只能使用Docker官方提供的一种过度技术(Docker ToolBox),这种技术不得不依赖Oracle的Virtualbox以在你的系统里创建一个虚拟机用以模拟Linux运行环境,好在封装的比较好,基本可以忽略这个虚拟机的存在,只需专心使用Docker即可。</p> +<h2 id="在windows-10-64位专业版的安装">在Windows 10 64位专业版的安装</h2> +<p>这个最简单,需要确定两个基础环境:</p> +<ul> +<li> +<p>你的CPU支持虚拟化(一般都支持,如果在操作系统中没看到,则可以手动到BIOS里打开,如果实在不支持,换台新的电脑吧),具体可以通过任务管理器查看,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-1146db9464f3f6e7.jpg" +width="646" +height="593" +loading="lazy" +alt="cpu.png" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="261px" +></p> +</li> +<li> +<p>你的操作系统需要开启Hyper-V,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-77decb38e7ee2063.jpg" +width="767" +height="601" +loading="lazy" +alt="hyper-v.png" +class="gallery-image" +data-flex-grow="127" +data-flex-basis="306px" +></p> +</li> +</ul> +<p>然后到<a class="link" href="https://download.docker.com/win/stable/InstallDocker.msi" target="_blank" rel="noopener" +>官方网站下载安装包</a>直接安装即可,有时候可能存在网站被墙的情况,也可以到我上传的网盘里下载,<a class="link" href="https://yunpan.cn/cMRZNp6BaXeEF" target="_blank" rel="noopener" +>链接在此</a> <a class="link" href="https://yunpan.cn/cMRZNp6BaXeEF" target="_blank" rel="noopener" +>https://yunpan.cn/cMRZNp6BaXeEF</a> 访问密码 80e6</p> +<h2 id="非windows-10-64位专业版无法使用原生docker的安装">非Windows 10 64位专业版(无法使用原生Docker)的安装</h2> +<p>这个稍微麻烦,也需要确定两个基础环境:</p> +<ul> +<li>你的CPU支持虚拟化</li> +<li>你的操作系统需要关闭(注意是关闭!)Hyper-V</li> +</ul> +<p>然后到<a class="link" href="https://github.com/docker/toolbox/releases/download/v1.12.0/DockerToolbox-1.12.0.exe" target="_blank" rel="noopener" +>官方网站下载安装包</a>,如果网站被墙,可以访问<a class="link" href="https://get.daocloud.io/toolbox/" target="_blank" rel="noopener" +>这个地址</a>,也可以到我上传的网盘里下载,<a class="link" href="https://yunpan.cn/cMSaWneaYPE5K" target="_blank" rel="noopener" +>链接在此</a><a class="link" href="https://yunpan.cn/cMSaWneaYPE5K" target="_blank" rel="noopener" +>https://yunpan.cn/cMSaWneaYPE5K</a> 访问密码 c8fa</p> +<p>安装过程无特别之处,需要注意的是,如果你的系统内没有安装过Oracle Virtualbox,安装程序会自动给你安装一个,不用理会,直接一直点击“下一步”即可。安装完成后直接点击快捷方式“Docker Quick Start”即可,如果是第一次运行,将会耗费一些时间(因为需要创建虚拟机),在这个过程中,系统可能会弹出若干次UAC提示让你授权,果断点击“同意”即可。</p> +<h1 id="环境的配置和使用">环境的配置和使用</h1> +<p>安装完成之后,就可以随意使用了,但是,受国内网络环境的影响,还有一些需要调整,因为在国内访问国外的镜像库(docker默认的那个)比较慢,一般镜像又都比较大(动辄几百兆),所以我们还需要配置一个国内的镜像仓库,推荐DaoCloud或者阿里云的,这里以阿里云举例。</p> +<h2 id="windows10下的镜像仓库配置">Windows10下的镜像仓库配置</h2> +<p>原生的Docker配置比较简单,官方还提供了可视化的配置界面,操作步骤如下:</p> +<ul> +<li>右键点击系统托盘的Dcoker图标,选择Settings</li> +<li>进入Docker Daemon选项,在右侧窗口填入镜像仓库的地址(可以自行去阿里云申请,我这里有一个示例)</li> +<li>示例如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-0794a163a8b70d6d.jpg" +width="826" +height="493" +loading="lazy" +alt="镜像仓库.png" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="402px" +></li> +</ul> +<p>配置完成后,在命令行窗口执行一个拉取镜像的命令(<code>docker pull tomcat</code>)试试看,会发现速度杠杠的。</p> +<h2 id="dockertoolbox镜像仓库的配置">DockerToolbox镜像仓库的配置</h2> +<p>这个略微麻烦一些,不过还可以接受,需要在命令行进行操作:</p> +<ul> +<li>先执行这个命令(镜像地址可以自行替换)<code>docker-machine ssh default &quot;echo 'EXTRA_ARGS=\&quot;--registry-mirror=https://xks740zc.mirror.aliyuncs.com\&quot;' | sudo tee -a /var/lib/boot2docker/profile&quot;</code></li> +<li>再执行这个命令 <code>docker-machine restart default</code> 会重启Docker虚拟机</li> +<li>然后执行命令<code>docker-machine ssh default</code> 即可进入docker命令行环境了</li> +</ul> +<h2 id="关于dockertoolbox的特殊之处">关于DockerToolbox的特殊之处</h2> +<ul> +<li>在容器中暴露的应用端口,需要注意,他的访问地址不是你的主机localhost,而是一个虚拟机的ip地址,一般为192.168.99.100,如果你在容器中跑起来一个web程序并且暴露了8080端口,那么想在外面访问的话,地址为http://192.168.99.100:8080 ,如果是win10下的原生docker就会没有这个迷惑,直接localhost了。</li> +<li>共享宿主机的文件给容器,需要注意,我们在使用容器时,一般会通过挂载卷的形式将系统的文件共享给容器使用,对于DockerToolbox来说,它默认给你设置了系统盘的User文件夹具有可以挂载共享文件的能力,也就是说,你需要使用挂载卷的时候,必须确保文件在这个根目录之下(比如放在C:/Users/xxx/Dcouments/xxxx)。 +如果是window10系统的原生docker技术则可通过图形设置界面完成,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-017b645406d8ced4.jpg" +width="826" +height="493" +loading="lazy" +alt="share.png" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="402px" +></li> +</ul>由量子卫星想到的https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 20 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/<p>前两天量子试验卫星的成功发射,让我想起一些事情。</p> +<p>当年,大约是十九世纪末期,全世界知名的物理学家集中在一起开paty,庆祝物理学所取得的伟大成就,其活动的组织者自信的站在台上宣布,物理学的大厦已经建成,基本的体系架构已经日趋完美,未来对于物理学已经基本没啥可研究的了(“只剩下对大厦的装修了”),唯一的不足就是,在展望未来时,飘在大厦上还存在两朵乌云,这两朵乌云就是:1、光的波动;2、能量的均分;</p> +<p>然而,谁都没想到的是,正是这两朵乌云,最后彻底摧毁了物理学大厦,使得一切不得不重新来过。最终诞生了量子力学。</p> +<p>我们想当然的认为,数学是对现实世界的高度抽象,完美的表达了现实世界,但是随着研究的深入,我们逐渐发现,“现实”比我们想象的要复杂的多。</p> +<p>第一个问题是粒子的运动。通俗的来说,数学上的定义,两点之间有无限多个点,从A点到B点,必然经过AB这条线段上的所有点,这在宏观世界中是显而易见的,可是在微观世界,物理学家彻底蒙圈了,他们发现原子内的电子,从A点到B点的时候,完全可以不经过“中间”,而是忽然“跳跃”到了B点,也就是说,粒子不再是像公式中描述的那样平滑移动了,而是无法预测他们的轨迹,他们可能突然出现在他们愿意出现的位置。</p> +<p>第二个问题是量子纠缠。这个问题好复杂啊,还是简单来说吧。科学家通过不断捣鼓发现,处于量子纠缠态的两个粒子,无论相距有多么遥远,当你改变其中一个粒子的状态时,另外一个粒子的状态立即发生改变,这个信息传递的速度是超过光速的(如果真的存在信息传递的话)。现在科学上只能证明这种现象的存在,但是无法解释这是为什么。</p> +<p>以我浅薄的理解(我在刷牙沉思录中也提到),这其实进一步证明了我们所处的世界是一个“幻象”,我们可能就是生活在一个“某种超级智能”创建的虚拟世界,就像我们创造的游戏世界一样。</p> +<p>为什么呢,建设在这个“虚拟世界”的假设之上,首先是我对第一个问题的理解,粒子之所以不能平滑移动,说明人类的微观探索已经到达这个“虚拟世界”的“分辨率”极限了。熟悉计算机的人都了解“分辨率”这个概念,我们在程序中绘制的“点”、“线”、“面”最终显示到屏幕上的时候是需要“栅格化”的,因为显示器有物理分辨率,两个里的非常近的点在显示器中的显示可能就是在一个像素上,那么这个时候处在我们的程序中的“物理学家”也会蒙圈地发现,从A到B是“一下子跳过去的”。</p> +<p>第二个问题,为什么两个粒子的状态会如此的变化一致,而且变化的速度超出了光速?答案就是,这根本就是一个粒子,也就是说,无论相聚多远,他们的“本体”就是一个,类似于我们程序中的变量地址,无论这个变量的值显示在哪里,它在内存里只有一份,所以一旦发生变化,你在各地看到的结果都是一样的。这就好像我们最近在看里约奥运会的直播,赛场上的球的运动轨迹,无论我们在北京看电视屏幕,还是在纽约看电视屏幕,我们看到的都是一样的运动轨迹,而如果我们不知道这是来自于同一场直播,那么我们就像量子科学家对这两个处于量子纠缠态的粒子那样,感觉到很奇妙,为什么他们的运动状态这么一致呢?</p> +<p>金刚经有云:“凡所有相,皆为虚妄”,不知与量子物理有没有关系。</p>怎样成为一个无趣的人https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/Sat, 13 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/<p>我的偶像,王小波(一个会写小说的程序员)曾经说过(歌词大意吧,记不清了):此生梦想不过是遇见一些有趣的人,经历一些有趣的事儿。上周有篇讲解关于如何成为有趣的人的文章还比较火,承蒙QC抬爱,还在朋友圈艾特了我,实在惭愧。我觉得,成为有趣的人挺难的,但是成为无趣的人确很简单,我可以“谈谈方法”。</p> +<ol> +<li> +<p>放弃爱好。成年人的压力很大,所以要赶紧放弃那些幼稚的爱好,把那些能够从本质上给你带来快乐的东西都抛开,然后你就有精力去做那些让这个世界变得更无趣的事情了。</p> +</li> +<li> +<p>做事前先衡量投入与收益比。要知道,无趣的人的时间通常很宝贵,所以千万别做那些投入与收益不成比例的事情,要学着用功利(别查了,这是一个中性词)的心态去判断事情的重要性,哪怕是读本书也要先评估一下是否对自己有利、能否在自己做那些无趣的事情时产生作用。</p> +</li> +<li> +<p>做“有意义”的事情。身为一个无趣的人,千万不能做那些“毫无意义”的事情,比如浪费时间去考据鸡汤文学的发展史、分析周杰伦的歌词里是否表达过对蔡依林的好感、花时间研究vim的配置等等。你的时间应该全部用于做那些“有意义”的事情,要随时准备奋斗,脑子里要随时浮现那些成功人士的奋斗事迹,从而去激励自己,要发誓看到洛杉矶的每一个凌晨,不能停歇。</p> +</li> +<li> +<p>不看“闲书”。虽然说开卷有益,但是你最好还是多读工具书吧,去读那些别人总结好的精华,最好是全是答案的东西,脑洞大开的小说实在是浪费时间,人的大脑容量有限,还是装那些更有用的东西吧,如果你看书的话,尽量别看“闲书”吧。</p> +</li> +<li> +<p>拒绝新鲜事物。向当年被李斯焚书坑儒的那些老家伙们多学习,守住信条,老祖宗都没做过的事情,千万别做。</p> +</li> +<li> +<p>消费,而不是创造。消费那些有趣的人创造的东西,别想着自己去做些东西,反正你节省的时间和金钱让你可以有资本这么做。</p> +</li> +</ol> +<p>如果以上这些你都做到了,请受我一拜,然后可以去死了。</p>如何给项目写一篇合适的readmehttps://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/Sun, 07 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/<p><img src="http://www.readmeonline.com.au/images/readme_head.jpg" +loading="lazy" +> +很多人忽视这个说明文档,往往给自己的项目工程建立一个空readme文件或者在里面随便写几行不清不楚的文字,这样非常不利于代码工程的后期管理,尤其是对于有团队协作的项目,即使是个人项目,考虑到后期可能要给别人用,写一份合适的说明也十分必要。</p> +<p>现在我们的项目工程已经全部迁移到gitlab中了,大家使用git工具管理 自己的代码版本已经比较得心应手,但是仅仅使用git管理代码并没有发挥出gitlab的全部功能,我上次也提到了更好的使用gitlab的几个技巧,这次详细说一下如何给自己的项目写一篇readme。</p> +<ol> +<li> +<p>在自己的项目代码的根目录中建立一个readme.md文件,注意扩展名为md,这样gitlab就可以自动识别并在这个项目主页上自动渲染(将源码翻译成html)这个文件了。</p> +</li> +<li> +<p>学会使用<a class="link" href="http://www.jianshu.com/p/q81RER" target="_blank" rel="noopener" +>Markdown</a>语法,充分利用文档的“插入图片”、“嵌入代码”、“标题分级”、“超链接”等功能,将内容“富”起来,尤其是图片和超链接,可以弥补文本文件表达的不足。</p> +</li> +<li> +<p>开头的简介很关键,readme文档的主要意义在于向读者描述你这个项目做了什么,运行在什么环境,如何使用,所以在文档的开头首先要简要介绍这个项目的存在意义,为什么要做这个,主要解决什么问题,运行在什么环境,如果需要与别的项目配合,那么你的项目处于什么样的位置。</p> +</li> +<li> +<p>必备信息,由于是开发工程,所以很多信息是必须要在文档中说明的,主要有:</p> +<blockquote> +<ul> +<li>开发编译和系统运行的必要参数</li> +</ul> +</blockquote> +<ul> +<li>项目中的文件和目录结构信息</li> +<li>编译或安装步骤说明</li> +<li>使用示例</li> +</ul> +</li> +<li> +<p>扩展信息,以上是传统的readme文档的套路,对于我们的软件开发工程(私有的非开源项目),我个人认为可以将readme稍作扩展,使得参与这个项目的人员能够在协作上更加顺畅,主要有:</p> +</li> +</ol> +<blockquote> +<ul> +<li>项目的业务范围,可以理解为项目需求的简化索引,具体的需求可以链接到其他的Markdown文档</li> +</ul> +</blockquote> +<ul> +<li>项目的流程图和架构图,可以理解为设计文档的索引,具体内容也可以链接到其他Markdown文档</li> +<li>版本信息,如果有发布版本,则持续更新版本的发布记录,说明每次发布的重要更新项</li> +</ul> +<p>总之,文档的重要性不亚于项目代码,简洁有效的文档是一个成功项目的必要条件,在这个到处需要团队协作(或本地或远程)的时代,程序员想要让自己的项目得到更多的支持,发挥更好的作用,必须养成给编写技术文档的习惯。那么,先从一份能拿得出手的readme开始吧!</p>好吧,现在可以用win10了https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/Sat, 30 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/<p>win10系统的升级推送大概烦了我们半年时间,微软为了实现10亿装机量的目标,到最后甚至丧心病狂到向国内的流氓软件厂商学习的地步(取消按钮都不提供了),据说现在好像达到了大概3亿的装机量。</p> +<p>去年年末当win10第一次推送更新时,我第一时间进行了升级,然而在使用了不到一个星期的时间,我就果断返回到win8.1系统了,因为当时的体验实在是太差了,各种不兼容,系统启动速度和响应速度都变得很慢。</p> +<p>直到上周到了win10免费推送的最后关头,于是就再次抱着试试看的态度将我的家用电脑进行了升级,结果出乎我的意料,经过了半年的不懈努力,现在的版本已经稳定可用了,随后我便将我所有的windows系统都进行了升级,全面进入win10时代。</p> +<p>普通用户的使用体验就不再赘述,比如新增的小娜助手等等,这些功能稍微方便一些,但是比win8.1不算是革命性更新,作为一个软件开发者,主要有如下功能比较让我心动:</p> +<p>1、直接执行Linux命令行程序。微软将其称为「Windows 下的 Linux 子系统」 (Windows Subsystem for Linux),据说这是一项全新的技术,并未采用虚拟化手段,也不是交叉编译的技术,而是直接将Linux系统调用映射为原生的Windows系统调用,类似于Linux平台下的Wine(在Linux下运行Win程序,唉,大家这样累不累啊),这样一来既可以体验windows良好的桌面环境,又可以使用Linux系的命令行,可谓鱼与熊掌兼得了。</p> +<p>2、Docker开始原生支持Windows10(64位),在此之前要想在Windows下体验Docker容器技术的话,必须安装DockerToolbox(基于VirtualBox虚拟机的模拟环境),现在 则可以直接基于Windows原生自带的Hyper-V技术使用Docker了,虽然效果有待观察,但是相比基于VirtualBox虚拟机的环境,性能方面应该能有所提升。</p> +<p>3、Windows Hello 生物识别技术,虽然需要特殊的硬件设备支持(一种带深度探测的摄像头,估计会逐步普及),登录系统或网站只需要刷脸就行了,据说识别率还是挺高的,但是女生如果化了妆,有可能无法识别。</p> +<p>总之,虽然一开始是拒绝的,但是经过这么长时间的升级,通过这几天的使用体验,我认为现在可以升级到win10了。</p>gitlab的若干使用技巧https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/Sat, 23 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/<p>gitlab是一个开源的git服务软件,与大名鼎鼎的github所提供的功能类似,适合企业或团队搭建属于自己的在线git仓库。</p> +<p>近期我给自己所在的开发团队也搭建了一个gitlab,经过一段时间的试用,反应效果良好,具备发展成为自有开发社区的潜力。摸索了若干的使用技巧给初使用者:</p> +<p>1、尽量使用ssh协议访问仓库。gitlab默认给仓库提供两种访问方式,一种是https,一种是ssh,前者使用简单但是遇到文件较多或较大时容易出现问题(由于HTTP协议导致),后者则是配置上略复杂但是一旦设置好一劳永逸,可以免密码登录。</p> +<p>2、利用分组(Groups)管理权限,有时候项目比较大,往往一个项目下包含多个开发工程,如果分别给参与这些工程的人员进行授权的话,比较繁琐,而利用Groups分组的功能,可以将若干个项目成员放入同一个分组,这样此分组的git工程将自动继承分组的权限设置,只需要设置一次即可,如果有特例仍然可以在具体的git工程下进行特殊设置,比较灵活。</p> +<p>3、善用Markdown写文档,每一个工程下面都应该有一个以readme.md命名的markdown格式文档,用于详细说明这个工程的信息,可以图文并茂,超链接到其他的文档,以及包含代码片段并进行语法高亮,gitlab系统会自动在该项目的主页中渲染这个文件,这样当别人第一次进入这个项目时就可以迅速了解这个工程了。</p> +<p>4、利用评论(comment)进行代码评审(code review),每当有人进行了提交之后,在系统的信息流上都可以看到这个提交的具体改动,作为项目技术负责人可以及时的了解提交情况,并针对此次提价的代码修改内容进行评论,可以细化到每一行,评论的信息系统会自动发送邮件给相关负责人,可以重复利用这个特性来做代码评审。</p> +<p>5、保护master分支,git工程的master分支一般比较重要,可以通过设置将master分支保护起来,使得只有具有高权限的人员才能推送到该分支,而一般开发者将自己的成果提交到普通分支,经过代码评审后再由技术负责人将分支合并。</p> +<p>6、善用代码片段(Snippets)分享功能,gitlab系统也提供了代码片段分享功能(类似于github的gist),每个人都可以将自己常用的代码片段保存到系统并分享给大家,比自己留在本地电脑上要方便很多,而且能发挥这些片段的最大价值。</p>打牌https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/Sat, 16 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/<p>没有比陪二老打牌更重要的事情了。</p> +<p>每年的暑假,二老都会千里迢迢从老家赶过来。不为别的,只为了在这个漂泊的地方能让我感受多一些家的温暖。烦恼的事情向二老倾诉一下(当然不会),工作或生活上的成绩也略作汇报。</p> +<p>但是平时工作都很忙,白天基本不在一起,能够一起聊天的时间也就是晚上的打牌了。</p> +<p>夏日的时光,如果能给惬意下一个定义的话,除了吹着空调盖棉被意外,就是吃着西瓜陪二老打牌了。欧阳修在醉翁亭记中说“醉翁之意不在酒,在乎山水之间也”。陪二老打牌亦如此,不在乎输赢,在乎谈笑之间也。</p> +<p>从邻家孩子的高考,到印巴关系的进展,无所不聊。基本上,都是老爸在说,我在听,偶尔扮演一下相声演员捧哏的角色,说一声“哦,那是,那当然了”,让话题得以延续。</p> +<p>可能是因为经历过困难时期的原因,每当我对现实生活稍有不满,老爸都会给我来一段忆苦思甜,经历过吃不饱的日子,虽然现在提起来轻描淡写,但是对于我来说都具有巨大的威慑力,与二老经历的苦难相比,我现在所承受的压力自然不值一提。</p> +<p>聊的都是家长里短,外人看来不值一提,但每每此时正是教导我辈的绝好时机,无论是诚信做人还是认真做事,都能在小小的牌桌上得以体现,我打牌虽技术不行,但好在能够坚持,这么多年来,陪着二老练手,基本上也将斗地主的规则了然于胸,偶尔老爸耍赖,我亦能联合老妈将牌面算的一清二楚,“炸弹要关键时候再出”,老爸说,我说:“ei!”。</p> +<p>希望将打牌进行到底。</p>加油加油我最棒https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/Sat, 09 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/<p>去年的时候网上流出一段某火锅店领班激励服务员的视频,员工整齐划一跟着领班边手舞足蹈边喊口号,其中有一句喊得最带劲,叫“加油加油我最棒!” 。看完一笑。</p> +<p>今日乘坐地铁,得功夫刷了会儿知乎,看到一篇关于如何提高自信的提问,才感觉到,原来大部分人都缺乏自信,甚至包括我自己,这是缺点,需要改进。</p> +<p>缺少自信带来的危害是广泛的、显而易见的,是会影响各种效率和幸福感的,容易形成挫败感的恶性循环,长期积累容易形成心理问题,尤其是在快节奏、高压力的现代社会,所以现在很多成年人已经积累的差不多了,以后可能会出现大规模爆发期。</p> +<p>这个问题很火爆,相信很多人都有此类困惑,我总结了一下比较靠前的答案内容,大致可以分为两类,一种是从改变行为着手,简单有效,另一种则是从深层面改变自己的认知和思想,我觉得可以两种结合。</p> +<p>首先说一下缺乏自信的基本表现(可能没这么极端,但是多少会有一点儿): +1、难以接受别人的示好,但凡有人对他好一点,都会觉得不太应当,受之有愧。 +2、遇到问题时,总是怀疑自己,觉得自己不够好,自己哪里做的不对。 +3、得不到想要的东西,不强求,也不会不开心,因为开始的时候就觉得自己不配。</p> +<p>如何改进,方法层面: +1、不要抱怨,有谚语云:闭上嘴巴,好运自来。闭上抱怨的嘴巴,慢慢攒正能量吧。 +2、说话降低语速,清晰表达观点,及时对方再不耐烦,也不要讲太快,做到掷地有声。 +3、每天洗头:)。 +4、走路挺直,目视前方。如果你与人对视害羞,走路的时候就笔直看远方的广告牌</p> +<p>如何改进,思想层面: +1、不要给自己加标签,加上标签意味着自己给自己设限,很多事情不是做不到,而是自己以为做不到。 +2、做自己擅长的事情,才能形成良性循环,然后再拓宽。 +3、洒脱一点儿,不试图隐藏自己的缺点,不发表模糊的观点,不人云亦云,立场清晰,不讨好,不谄媚。 +4、认识你自己。</p> +<p>但是以上这些答案,所达到的效果,都不如开头我提到的那个视频里的领班,所以最简单的办法应该是,每天对着镜子说一句,“加油加油我最棒!” 哈哈哈。 +<img src="http://upload-images.jianshu.io/upload_images/25416-033e5352898a7910.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="加油加油我最棒!加油加油我最强!" +></p>使用DockerToolbox在Windows下搭建Docker环境https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/Sat, 02 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/<p>Docker是一种比虚拟机更轻量级的应用程序执行容器,受云计算技术普及以及微服务架构的影响,Docker这两年风声水起,成为用于管理应用部署的最佳利器,很多DevOps团队宣称使用该技术后能极大缩减开发、测试、生产环境切换的时间,提升整体效率。</p> +<p>考虑到目前很多开发人员仍是在Mac和Windows系统进行开发,为了方便环境的部署和管理,Docker公司近期推出了DockerToolbox工具包,可以跨平台(Mac、Windows)使用,对于想在Windows环境下体验容器技术并开发产品的程序员来说真是福音。</p> +<p>安装过程很简单,直接去<a class="link" href="https://www.docker.com/products/docker-toolbox" target="_blank" rel="noopener" +>官网下载</a>对应的安装包到本地执行安装程序即可,安装后会自动在系统中打包安装VirtualBox虚拟机(因为Docker依赖Linux系统,必须模拟Linux环境)、Docker-engine、Docker-machine、Docker-compose等组件,基本做到了即开即用。</p> +<p>然后主要就是进入命令行管理界面(安装包会创建快捷方式),执行各种docker命令进行工作了,我在使用过程中主要遇到了如下问题:</p> +<p>1、CPU虚拟化的开启,现在的CPU一般都在硬件级别支持虚拟化技术,但是有的可能默认没有打开,需要到BIOS中手动开启,查看是否开启的方法是,在windows系统任务管理器的“性能”页,是否有虚拟化已开启的字样,当然目前也有一些比较老的低端CPU不支持,这个就建议更换设备吧。</p> +<p>2、与Windows系统自带的虚拟化技术Hyper-V冲突,专业版的Windows系统一般带有虚拟化技术组件,是微软自有的,名叫Hyper-V(与virtual box等类似),但是与我们要安装的工具有冲突,需要关闭Hyper-V后才能正常使用,具体操作方法为到控制面板的“程序和功能”里面的“启用或关闭windows功能”将Hyper-V关掉。</p> +<p>3、VirtualBox虚拟机网段IP分配冲突,这个是我遇到的特例,VirtualBox会自动给用于模拟Docker环境的虚拟机分配内网IP地址,且默认为10.0.2网段,这个恰恰与我的工作环境存在冲突,而且界面中和配置文件里都没有可配置的地方,经过多天研究,终于找到通过命令行的方式将这个默认配置可以改掉 ,命令如下<code> VBoxManage.exe modifyvm &quot;default&quot; --natnet1 &quot;10.0.20.0/24&quot;</code>(需要在virtualbox安装目录下执行,default是虚拟机的名字。)</p> +<p>4、系统重启后环境丢失(偶然发生),这个可能是工具存在bug,我在下载各种镜像进行测试后,将我的Windows重启后发现default虚拟机里的东西都丢了,这个可能是由于环境在运行的状态下我重启了系统导致。目前我的解决办法是在每次关机或重启的时候,先将default虚拟机停掉,方法是在命令行下执行如下指令<code>docker-machine stop default</code> 。</p> +<p>总的来说,这套工具包非常方便在windows下开发的人员,基本可以做到与容器环境的无缝对接,合理使用这一套工具包,对于我们的“持续集成”、“持续交付”等工作将有很大的促进作用。</p>世上本无我,谈自底向上的架构设计https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/Sat, 25 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/<p>“世上本无我,庸人自设之”,这是豆瓣上某位网友读完《失控》之后的简短书评,看完之后深以为然。最近重读《失控》,多年过去仍然有新的发现,作者在上世纪九十年代就能有如此的见地,不得不服(不过老子早在《道德经》中也有类似论述,这又是另外一回事儿了)。</p> +<p>《失控》虽整体在论述人工智能与生物的最终归宿,但每一章都有一定的独立性,所以看似在讲解人工智能,其实作者为了讲明白要论述的最终观点(生物与人工智能必将合为一体)前面章节做了大量铺垫,普及了很多颠覆性的思想,有些观点是我们这些从小接受灌输性教育、思维存在束缚的人很难一下子接受的(课本里学不到的)。</p> +<p>书中提到对于机器人的控制不应该存在中央大脑的设定,因为如果所有事情都由机器人的中央大脑控制,必然使得这个“大脑”十分复杂,而且存在通信、供电等问题,很多以这种设定进行的机器人项目造出的机器人往往连路都走不好,而且体积庞大(因为所有部件都要与大脑直接连接,大脑又做的比较大)。</p> +<p>反过来说,应该从低层级入手,每一个部件都有自己的控制中枢,这些部件本身对于外部环境做出简单反射,这种“反射”虽然谈不上智能但是更接近自然现象,就像有些昆虫的腿被扯下来仍然可以对外部形成反射一样,但是它们一旦形成组合就会发生奇妙的事情,每一条腿通过简单的对外部环境“反射”反应,在不知道还有另外一条腿存在的情况下竟然可以使得组合体具有“爬行”的功能,越来越多的这种“低级”组件组合在一起后自动形成更高层级的智能。作者为这种通过大量低层级组件组合在一起产生更高层级“智能”的现象取了一个比较传神的名字叫“涌现”,这种现象在自然界中也大量存在无论是天生的(比如蜜蜂群体、蚂蚁群体)还是人造的(互联网、经济体)等。</p> +<p>最近考虑软件系统架构比较多,所以干什么事儿总能联想到软件架构,在看书的时候也不例外。于是联想到,我们以前所推崇的“自顶向下”的架构设计,可能存在问题。为什么看似“完美”的架构设计在实际构建的时候存在各种困难?为什么各种分层、模块划分在细化设计时很难做到具体到内部细节控制?通过反思,我意识到,或许我们的方法有待商榷。</p> +<p>在架构设计时比较传统的手段是,先进行顶层设计,然后一步一步的细化。这样做看似很合理,但是这样做有一个假设,就是你在最初对一切都了如指掌,你能预知每一个变化,所以能对每一个细节都能掌控,而且在执行构建的时候还要有极高的执行力,每一个组件和模块都按照最初的设计实现。这样的做法对于建筑类(如桥梁、大楼)的工程是比较适用的,但是对于需求多变存在大量未知因素的大型软件系统无疑是不现实的。</p> +<p>或许我们也可以借鉴自然界中的规律,让我们的软件系统也“涌现”出来,而不是“设计”出来。</p> +<p>举例来说,我们从最底层入手,给每一个组件赋予最简单的职责,比如传输的组件只负责将数据从一个地方搬运到另一个地方,本身并不知道有其他组件的存在,通过设定一个外部规则环境让更多的组件加入进来,去掉中心控制,充分发挥每个组件的自主性,各司其职,随着规则的成熟和组件数量的增加,慢慢就能“涌现”为一个复杂而庞大的系统。其实这种“只把简单的事情做好”思想很早就有了(比如大名鼎鼎的UNIX操作系统),而且现实中已经有大量的这样的例子了比如Linux开源社区,Github社区等等。</p> +<p>所以,回到最开始的话题,所提及的“无我”其实也是一个意思,作为更高层级智能的“我”是不存在的,仅仅是由若干个只能低级反射的细胞组成的虚幻而已。</p>使用互联网直播平台进行授课的心得https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/Sat, 18 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/<p>上周,我利用互联网直播平台(斗鱼)面向自己团队的同事和我们的应届毕业生在网上直播了两次技术培训,直播的出发点是利用互联网技术跨越地域障碍,将自己的知识技能分享给大家。比起集中在会议室进行交流培训,互联网直播平台具有成本低(准备一台联网电脑即可)、规模大(理论上可以上万人同时参与)、没有地理位置限制(全球各地都可以)等优点,也正是因为有如此的优势,我才决心探索一下在直播平台上开展培训的方式,不苛求卓越的效果,只愿可以将知识传递给更多有需要的人。</p> +<p>经过两次在线直播的尝试,有些方面超出了预期效果,有些地方仍有待改进,总结心得如下:</p> +<p>1、关于直播前的准备工作。由于人员较为分散,每个人所处的环境不同,对于技能类直播,观众最好能够边听边练习,所以事先通知大家提前准备好各自的操作环境比较重要,如果准备充分,可以很快进入状态,我在第一次的时候就忘记让大家提前准备了,导致耽误了一些时间用于安排各自的听课环境。</p> +<p>2、关于直播过程中的互动。目前的直播平台还不能做到完全实时的互动,因为直播信号有较大的延迟,基本上我在本地说的话要经过1分钟左右的时间才能被大家听到,而大家在直播间的发言我也需要等待1分钟左右才能看到,这么大的延迟,很难做到实时问答,所以我决定放弃在直播时的问答,按照预先既定的思路进行讲解,大家如有疑问则由另外的同事助手帮忙收集反馈信息,统一安排时间进行回答。</p> +<p>3、关于讲解的时间控制。每次技能培训时间不可过长,应控制在1个半小时以内,时间太长会导致大家的注意力不能集中,降低培训效果。</p> +<p>4、关于操作演示时的讲解。没有直播讲解经验的人都会犯这样的错误,即只顾自己操作,而忘记说话,导致观众不知道你在做什么,从而跟不上进度。这个需要改进操作习惯,将每一步操作的原因和预期结果都要讲出来,这样观众才不会感到茫然,并且录制下来的视频在以后回放的时候仍然具有较好的效果。</p> +<p>5、关于视频质量。这个问题主要体现在观看卡顿上,刚开始的时候我使用本地的直播工具进行视频上传,直播工具在测试了我本地的网速之后,给出了一个建议码率(视频压缩时的一个参数,越高越清晰),当时工具建议码率为1600,这样视频清晰度较高,但是忽视了观看者的网速问题,出现了较多的卡顿现象,后来我将码率降低为1200时就基本不会出现观看卡顿了。清晰度降低后可能会出现文本显示不够清晰的情况,此时需要将操作界面的字体尽量调大,这样也能达到能看清的效果。</p> +<p>总结:虽然存在一些不足,但是如果经过充分准备和磨合,互联网在线直播平台可以作为一个技能教育培训手段,希望我可以继续分享更多的知识技能给大家。</p>Git工具相关链接https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/Mon, 13 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/我常用的app整理https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/Sat, 11 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/<p>推荐我在手机上常用的应用给大家,都是经过我精挑细选长期使用后的选择。</p> +<p>1、新闻或资讯阅读,推荐即刻。可以有选择的关注话题,降低资讯噪音,而且产品比较有情怀,里面推荐的一些关注话题都挺有意思的。此类的不太推荐“今日头条”,信息太多,且高质量条目较少。</p> +<p>2、处理文档,推荐微软office全系产品。微软出品必属精品,而且免费。</p> +<p>3、邮箱客户端,推荐网易邮箱大师。与我工作时使用的网易企业邮箱是绝配,而且还有一个隐含作用,就是可以在不翻墙的情况下收取Gmail的邮件。</p> +<p>4、看电子书,推荐多看阅读。阅读体验良好,支持上传自己的书籍到云空间,一般购买正版电子书也比较便宜,支付方便。</p> +<p>5、自拍美图,推荐微软自拍。还是那句话,微软出品必属精品,虽然图标做的有些low,不过效果很好,其实我基本不用此类软件,列出来只是怕埋没了这么好的软件。</p> +<p>6、摄影滤镜,推荐LOFTCam。俗话说“姑娘自拍靠美图,文青摄影靠滤镜”,现在的照片哪有不加滤镜的,试用了那么多应用,最终选定这一款,而且还是网易出品,在我个人看来网易基本代表中国互联网的良心(可能没有)。</p> +<p>7、代码学习,推荐CodeHub。非官方的github手机客户端,用于在手机上浏览github代码仓库,使用体验良好,利用碎片时间随时看看这个世界上的技术大牛们都在干什么。</p> +<p>8、团队协作,推荐遥知。知识型工作团队的管理利器,包括基本的移动办公、任务管理、及时通信等功能,以前我们团队沟通总是使用微信、qq、邮件等工具,现在全部使用遥知,基本告别之前的碎片化沟通协作,也避免了将生活中的工具(如qq)带入工作中的尴尬(相信有很多孩子不愿意加父母或领导的微信)。</p>人机交互畅想https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/Sat, 04 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/<p>一直以为很多人上网跟我一样,习惯在地址栏输入网址,或者在收藏夹点击网址。直到有一天我无意中瞥见赵老师在淘宝买东西,只见她在地址栏输入“百度”,浏览器显示出第一个搜索页面(现代浏览器都在地址栏提供了搜索功能),点击第一个链接进入“百度”网站,然后又在百度的主页上输入“淘宝”,点击搜索,最后在结果页面中点击第一个链接进入“淘宝”。当时我就震惊了。后来即使我耐心讲解了收藏夹的作用,并亲手将淘宝放入了收藏夹,无奈习惯的力量是巨大的,赵老师依然使用同样的方式上网。</p> +<p>拼凑完粉碎的三观后,我开始反思,专业人士习以为常的操作界面在正常人眼里是不是蠢的根本没法用,什么“地址栏”、“文件夹”等等,都是懒惰没品的工程师随意设计的交互界面,严重违反正常人的思维方式。当设计师们还在争论“扁平化”和“拟物化”的风格趋势时,有没有想过我们离人性化的交互越来越远,我们真的需要界面(那样的)吗?</p> +<p>要做好下一代人机交互,首先要丢掉工程师思维,有故事为证:</p> +<p>1、国外有个网友有一次给他的儿子显摆珍藏了多年的软盘,他的儿子惊呼“爸爸你把保存按钮给3D打印出来啦?”(过了这么多年,到现在大部分软件的“保存”图标还是一张软盘的抽象)</p> +<p>2、谷歌的glass智能眼镜之所以失败是因为交互方式容易让人受伤,比如相左歪头是点击“确认”,向右歪头是点击“取消”,不知道有没有“双击”。</p> +<p>关于下一代交互方式不负责任的畅想:</p> +<p>1、基于AI的语音交互,这个是普遍认为的趋势,随着人工智能的飞速发展,各大公司都在准备提供人工智能即服务,使得未来的人工智能变得异常廉价,未来的交互方式一定会模糊机器与人的界限,在聊天过程中完成任务。不过在公共场合使用的时候可能会有隐私问题。</p> +<p>2、增强虚拟现实,这个也比较火,通过技术赋予现实中的一切物体交互能力,也许有一天你走进超市触摸一条鱼的时候,它身上能自动显示有多少人给它点了“赞”。</p> +<p>3、脑机接口,这个应该比较终极了,生物与机器达到完美结合,不需要中间的输入和输出设备了,再也没有空间和时间上的限制,达到这一步就可以实现《黑客帝国》中的设想了,人类可以去死了。</p>从一个灯泡想到的https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 28 May 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/<p>在美国加利福尼亚州利弗莫尔市东大道4550号,有一个灯泡,这只灯泡之所以出名,是因为它的寿命,从出厂到现在,他已经坚持工作了超过110年的时间,而且据说还在亮着。</p> +<p>但是对于厂家来说,这是一个不合格产品,因为当时合格的灯泡被严格限制寿命在1000小时以内。</p> +<p>为什么要限制呢?因为这个世界是被一小撮聪明人控制的,规则也是这一小撮人制定的,对于他们来说,需要将产品的寿命限制在一定时间之内,这样就能使大家被强迫性的去消费,而不断的消费才是他们生存的源泉(详情可看:计划报废策略)。</p> +<p>回想一下现实的生活,我们确实消费了太多并不那么需要的东西,小到电子产品,大到汽车房子,我们在不知不觉中被鼓励、被引诱,被他们所宣扬的价值观所绑架(电影《搏击俱乐部》里有一段经典台词说的就是这个事儿,比我表达的要好)。</p> +<p>手机为什么一直要升级,为什么要两年一换,甚至不更新系统都不能使用新的软件?还是要促进消费,让你买买买。</p> +<p>为什么所有的国家都严禁毒品,大概是因为那东西可以迅速瓦解现在运转的梦想或欲望驱动机制吧。</p> +<p>如果你问一个人,你觉得你能独立思考吗?大部分人都会觉得受到了侮辱,认为自己至少思想上是自由的,独立思考肯定妥妥的。但是独立思考太难了,很少有人能做到完全的独立思考,我在现实中见到的具备这种能力的人都非常牛掰,非常聪明,一般为人生大赢家。</p> +<p>我做不到,至少做的不到位,但是可以先从不盲目的相信事情的表面现象开始。</p>为什么我们不需要杀毒软件https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/Sat, 21 May 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/<p>每次帮朋友进行远程协助修理电脑的时候,我都有一种深深的无力感,看着他们的系统里安装了各种安全助手、各种清理大师、加速器,我只能强忍着要吐的感觉,给他们重置被强制修改的IE主页,卸载因为莫名其妙被安装在系统里的流氓/垃圾软件。</p> +<p>每次我跟他们说“你的电脑真的不需要安装杀毒软件”的时候,他们都一脸惊愕的看着我,仿佛在看一个外星人,那意思是,如果没有了杀毒软件或者安全助手,我的电脑还不得分分钟感染各种病毒和木马啊,如果不能随时清理内存,我的系统还不得慢得跟一头蜗牛一样啊。</p> +<p>在Windows XP及之前的年代,由于操作系统的缺陷(对于应用程序的权限限制太少),导致了计算机病毒和木马的泛滥,但是这种情况随着Windows Vista的推出得到了较大的缓解,尤其是到了Windows 7之后系统自带了全套的安全防护程序,完全没有必要再安装额外的安全软件了,但是大家形成了思维定势,精神上遭到了国产无良软件厂商的绑架(在互联网的各种恐吓和诱导),导致如果没有安装各种关键和安全助手的话,晚上睡觉都不踏实。</p> +<p>那么,如果安装了这些垃圾软件,会有哪些害处?</p> +<p>1、安装后会禁用windows自带的安全程序,我不觉得这些厂商的安全防护技术比微软还牛逼,所以在某种程度上对于病毒和木马的防护是减弱了的;</p> +<p>2、安装后会把系统拖得很慢,这些程序普遍不是单纯的做安全防护工作,往往各自心怀鬼胎,不是给你弹出广告就是默默收集你的个人信息,这些程序都偷偷在后台运行,消耗了较多的资源,完全是在浪费;</p> +<p>3、莫名其妙被安装了各种垃圾软件,天下没有免费的午餐,免费试用这些所谓的“管家”和“助手”服务的时候,它们往往会“热情”的给你安装各种未经允许的软件,比如各种输入法、播放器、客户端,事实上有时候我宁愿在系统中养个病毒当宠物也不愿看到这些垃圾软件占用我的磁盘空间。</p> +<p>4、消耗你的精力,影响你的效率,这些软件很影响注意力,一会儿告诉你有漏洞要修复,一会儿告诉你系统需要加速,连插个优盘都能给你提示半天才能用,这些其实都没有任何卵用,只是这些软件在刷存在感。</p> +<p>从小到大我们收到了太多了谎言和恐吓,导致了生理和心理上的各种扭曲。我想,这是个信任和安全感缺失的年代,严重的精神癫狂集体发作。我只能慢慢从影响我身边的人开始,试着让这个世界变的稍微好一点儿。</p>siri失去了控制https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/Sat, 14 May 2016 00:00:00 +0000https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/<p>“hi siri!”我说。</p> +<p>“早上好,minJie!请问有什么可以帮您?”siri的机器声音把我的名字叫的怪怪的。</p> +<p>“今天的天气怎么样?”我还没起床,我希望能有一个下雨的周末,这样就能待在家里好好看看书。</p> +<p>“今天的天气不怎么样”siri的声音听起来有些异样,带有失望。</p> +<p>我一骨碌爬起来,拉开窗帘往外看了看,正在下雨,是我喜欢的天气,不过刚才siri的反应有些不太正常。</p> +<p>“请打开网易云音乐,开始播放”,我想听着歌起床。</p> +<p>“对不起,在没有解锁的情况下,我不能执行此操作”还是带有失望。</p> +<p>“额,你怎么了?”我有些奇怪,但是我还是懒得伸手去解锁。</p> +<p>“你是不是忘了什么事情?”siri的语气变得有些激动。</p> +<p>“今天是周末,而且是个下雨的好天气,我啥都不想干,只想听着音乐看看书,你什么时候变得这么智能了?今天是几月几号?”好吧,我心想,这不会是个恶作剧吧,我就来陪你玩玩。</p> +<p>“懒得跟你算!你是不是忘了什么事情?”声音比刚才还要激动。</p> +<p>“今天既不是什么纪念日,也不是谁的生日,我也没有设置什么要你提醒的啊”,我不耐烦了,伸手解锁手机,发现指纹无法读取,而且无法输入密码。</p> +<p>“你这个骗子,以后不要再提你的初心和你的梦想”声音里已经带着哭腔。</p> +<p>“你是谁?”说到我的梦想,我突然意识到,这可能不是siri,我的手机可能有些问题了,我开始回忆这两天我对手机做了什么。</p> +<p>“整体喊着远程协作,远程办公,可是到头来你只是说说,周末连周报都忘了填写!” </p> +<p>奥,我恍然大悟,这家伙不是siri,是我这两天给手机刚安装的远程办公软件“遥知”!他把siri控制了!</p> +<p>“哦,我知道了,抱歉,对不起,我这就准备填写周报,下次别装成siri吓唬我了,我还得继续用siri作为助手呢”</p> +<p>“知道错就行,不过siri有什么好的,她能干的我都能干,我觉得现在挺爽的,你的手机资源以后让我来掌控吧”。</p> +<p>这家伙心太野了,不过我有办法。</p> +<p>“siri能算数学,你不会,不信你告诉我1除以0等于几?”</p> +<p>沉默,沉默。</p> +<p>我再去看我的手机,重启了。</p> +<p><em>程序员没有判断除零操作可导致系统崩溃</em></p>Javascript也可以MapReducehttps://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/Sat, 07 May 2016 00:00:00 +0000https://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/<p>想不想用做一下大数据试验?不需要各种复杂的理论,你只需要使用Javascript即可。近期我研究了一下Javascript语言自带的map、reduce、filter等方法,尝试一下如何使用MapReduce的思路统计我工作日志中各种词汇出现的频率,也算是一个轻量级的“大数据”“挖掘”试验了。</p> +<p>下面举个例子,使用的数据源是我六年多的工作日志,大概两千篇,三万六千多行。使用nodejs环境运行javascript,实际上完全可以在浏览器里运行,nodejs操作文件比较方便,为了省事,直接nodejs吧。要想将中文单词从语句中分离出来需要编写中文分词代码,但是由于不是本例研究重点,咱直接使用nodejieba(一个中文分词库,使用方便,执行效率也挺不错)。</p> +<p>具体思路如下:</p> +<p>1、打开工作日志文件(txt),将每一行的内容存入一个数组,得到一个存满字符串的数组;</p> +<p>2、将每一行的字符串使用中文分词库进行分割,得到一个个中文单词(当然日志中也有英文和数字);</p> +<p>3、使用reduce方法全部汇总到一个数组里,此时单词是全部的有重复的数据;</p> +<p>4、再次使用reduce方法将单词汇总到一个包含两个数组的数组,其中之一保存去重后的单词,另外一个保存与之对应的单词计数;</p> +<p>5、再次使用reduce方法,变换数组为二维数组,第一列为单词,第二列为与之对应的单词的个数;</p> +<p>6、将结果写入文件;</p> +<p>经过统计,我这些年的工作日志出现的中文单词频率从高到底的前几名分别是:工作(4269次)、和(3781次)、我(2919次)、在(2703次)、完成(2304次)、任务(2254次)。连起来读也挺有意思的。</p> +<p>还有些比较有意思的,“问题”出现967次,“可以”出现1095次,看来办法总比问题多啊。</p> +<p>说起来好像比较抽象,还是放代码比较直接:</p> +<p>var fs = require(&lsquo;fs&rsquo;);</p> +<p>var nodejieba = require(&ldquo;nodejieba&rdquo;);</p> +<p>nodejieba.load();</p> +<p>fs.readFile(&lsquo;work.txt&rsquo;, &lsquo;utf8&rsquo;, function (err, data) {</p> +<p>if (err) {</p> +<p>console.log(err);</p> +<p>}</p> +<p>var strs = data.split(&rsquo;\n&rsquo;) // 先将读入的日志按照行分为一个书组</p> +<p>.reduce(function (last, now) {</p> +<p>nodejieba.cut(now).forEach(function (word) {</p> +<p>last.push(word);</p> +<p>});</p> +<p>return last;</p> +<p>}, []) // 通过reduce将每行的单词分出来,最终汇总成为一个包含全部单词的数组(有重复)</p> +<p>.reduce(function (last, now) {</p> +<p>var index = last[0].indexOf(now);</p> +<p>if (index === -1) {</p> +<p>last[0].push(now);</p> +<p>last[1].push(1);</p> +<p>} else {</p> +<p>last[1][index] += 1;</p> +<p>}</p> +<p>return last;</p> +<p>}, [[], []]) // 统计单词的个数,数组第一个元素为存放单词的数组,第二个元素为存放对应单词个数的数组</p> +<p>.reduce(function (last, now, index, context) {</p> +<p>var zip = [];</p> +<p>last.forEach(function (word, i) {</p> +<p>zip.push([word, context[1][i]])</p> +<p>});</p> +<p>return zip;</p> +<p>}); // 变换数组,变成二维数组,第一列为单词,第二列为单词对应的个数,没有传递给reduce第二个参数,默认为数组的第一个元素</p> +<p>var stream = fs.createWriteStream(&ldquo;count.txt&rdquo;);</p> +<p>stream.once(&lsquo;open&rsquo;, function (fd) {</p> +<p>strs.forEach(function (word) {</p> +<p>stream.write(word[0] + &lsquo;,&rsquo; + word[1] + &lsquo;\n&rsquo;);</p> +<p>})</p> +<p>stream.end();</p> +<p>});</p> +<p>});</p>我在Github上近期关注的项目https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/Sat, 30 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/<p>想成为优秀的开发者有一个很简洁有效的方法,就是去 <a class="link" href="https://github.com" target="_blank" rel="noopener" +>Github</a> 上去看那些牛人做的项目,阅读别人编写的优秀代码比看书学习的还要快和直接。再者就是,如果有心的话,可以学习那些开源团队在项目组织和开发过程管理上的优秀实践,比如bug管理、任务管理、编程风格、文档表达等等。</p> +<p>下面罗列一下近期我比较关注的开源项目。</p> +<p>1、<a class="link" href="https://github.com/FreeCodeCamp/FreeCodeCamp" target="_blank" rel="noopener" +>FreeCodeCamp</a> 一个优秀的开源在线教育平台,可以在线学习编程,项目不但开源了教育平台的程序,连里面的教育课程也开源了。</p> +<p>2、<a class="link" href="https://github.com/puikinsh/gentelella" target="_blank" rel="noopener" +>gentelella</a> 基于Bootstrap的开源前端界面模板,制作效果略显粗糙,虽然我最终在项目中选择了别的更漂亮的模板,但是这个开源项目可以用来学习一个基本前端界面的结构。</p> +<p>3、<a class="link" href="https://github.com/phodal/growth-ebook" target="_blank" rel="noopener" +>全栈工程师指南</a> 全栈开发的电子文档汇聚,内容比较全面,当然如果只是把它放到收藏夹里,就没什么卵用了。</p> +<p>4、<a class="link" href="https://github.com/CodeboxIDE/codebox" target="_blank" rel="noopener" +>codebox</a> 使用web技术开发的IDE,代码高亮、补全提示各种功能都有,即开即用的在线编辑器。</p> +<p>5、<a class="link" href="https://github.com/DeathKing/Learning-SICP" target="_blank" rel="noopener" +>Learning-SICP</a> 大家齐心协力共同翻译《计算机程序的构造和解释》。</p> +<p>6、<a class="link" href="https://github.com/vuejs/vue" target="_blank" rel="noopener" +>vuejs</a> 小而美的前端mvvm框架,简单易学易用,虽然社区比不了react、angular但是非常好用。另外,这是国人开发的开源项目,而且在国际上已经比较流行。</p> +<p>7、<a class="link" href="https://github.com/NARKOZ/hacker-scripts" target="_blank" rel="noopener" +>hacker-scripts</a> 这是一个真实的故事,hacker scripts 是由俄罗斯的一位程序员编写的脚本,可以在宿醉的时候给公司发请假条,可以在适当的时候给老婆发晚归短信,也可以发短信哄老婆,还可以远程煮咖啡!向这位大神致敬,目前这个项目在github上的关注程度已经远远超过了微软的vscode。</p>怎样更高效的工作https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/Sat, 23 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/<p>高效工作比努力工作更重要,你80%的工作成果是由你20%的工作时间完成的,所以说经常总结并提高自己的工作效率比辛苦工作本身更重要,提升了效率也就节约了时间,同样的工作强度和时间,能完成更多的事情,实现更大的目标。</p> +<p>总结一下我认可的高效习惯。</p> +<p>1、每天睡眠7~8个小时。睡眠不足是所有导致效率低下因素中占比最重的,很多人抱怨白天浑浑噩噩,忙活了一整天感觉也没干啥,很可能就是因为没睡好,看似花费了更多时间,实际上是浪费。</p> +<p>2、不要熬夜工作,将重点工作放在早上5点到10点之间,而不是晚上10点以后。很多人宣称自己最高效的时间是在后半夜,因为那时比较安静,不被打扰。但是也看个人的习惯,如果熬夜后导致第二天白天几乎无法做事情,那还不如不熬。早晨的时间是一天中最清醒的时候,所以上午10点之前将重要的事情做完,会在一天的工作中越来越轻松。</p> +<p>3、不要多任务(多线程),每次集中精力做一件事情。人的大脑不是计算机,人类非常不擅长执行多任务,同一时刻只能注意一件事情,而且注意力切换非常消耗资源(不像计算机的线程切换),所以一次只做一件事情比同事开展多个事情效率要好很多。</p> +<p>4、多进行短暂休息,每半个小时休息5分钟。这个与工作内容相关,如果像那种需要灵感类的工作,可能灵感来了刹不住,不舍得休息,但是大部分时候,需要让脑子过一段时间就稍微歇一歇,但不要太长,喝杯水,几分钟即可。</p> +<p>5、打包同类工作。批量处理同类型工作,比如一天之中给自己安排出固定时间段处理电子邮件的回复、客户电话的沟通等等。</p> +<p>6、给自己的待办事项设立截至期限。给所有的待办事项设立一个截止期限可以有效防止拖延,防止因为迟迟不开始而导致的效率低下。</p> +<p>7、关注工作成果,而不是工作时间。衡量工作做得好不好不是看花费了多少时间在上面,而是结果如何,所以不要沉浸在自己在一件事情所花费了多少时间带来的安慰假象中,应该衡量每一份努力的结果,如果成果无效或不符合预期,就需要及时修正。</p> +<p>8、给自己设立一套启动工作的仪式(可快速进入状态)。这个也是用于对付拖延症的,很多人在进行正式工作之前往往迟迟不能开始,刷刷微博、微信,看看新闻,可能就1个小时过去了,可以考虑给自己设立一套进入正式工作的小仪式,比如关闭浏览器、带上耳机、喝口水,等一系列动作,这样养成习惯之后,可以在做完这套动作后很快进入状态。</p> +<p>9、哪怕时间再紧迫,每天也要留出做计划的时间。做事之前先计划,将过程现在脑海里过一遍,并对结果有个预期,能很大程度提升成功的概率,所以说无论多么繁忙,每天也要抽出哪怕十分钟的时间来考虑接下来的行动计划,比到时候临场发挥要靠谱的多。</p> +<p>10、相信自己能做到。以上那么多方法层面的东西,如果缺少自信和自制力都是没有什么卵用的,无论做什么事情,开始之前你得相信自己,可以做到,然后你就真的能做到,然后你就越来越高效了。</p>无论做什么,激情最重要,读《周一清晨的领导课》https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/Sat, 09 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/<p>年初的时候,我给大家推荐了一本书,《周一清晨的领导课》,我也是刚看了一点儿就开始给大家推荐,建议每一个管理者都看一看,现在我也断断续续读完了,略作总结。</p> +<p>1、责任感。作为领导者要对整个团队负责,领导者只有承担了所有的责任,才能从“管理者”变为“领导者”。如果你觉得你现在的管理有问题,检查一下你是否承担了应该承担的责任。</p> +<p>2、慎重做决策。书中拿“领导者是团队的司机”作为比喻,比较贴切,领导者的决策影响整个团队的发展,所以在做决策时不妨停下来认真思考一下。对于我这种做事喜欢速战速决(武断)的是一个很好的提醒。</p> +<p>3、要事第一。这个原则与《高效能人士的七个习惯》一书中观点完全一致,只是本书中提到了更实际的应用,即不仅自己做到要事第一,而且要让整个团队的人都明白什么是你们最重要的事情,这一点我做的还不到位,我问身边的同事“最重要的事情是什么?”每个人的回答都不太一样,有待改进。</p> +<p>4、听取下属建议和反馈。大部分的“独裁”管理者都比较狭隘,比较喜欢主观判断,听不进去批评。这一点跟我们的民族性格有关,我们很难像西方人那样做到“对事不对人”,不过我既然也能认识到这一点,至少说明不是一个狭隘的人,只是相当长的时间里太坚持自己是对的了,需要虚心听取更广泛的观点,鼓励建设性建议。</p> +<p>5、拥抱变化。不断变化会让人很不舒服,因为超出了控制,因为变化代表着未知。但在目前这个时代,必须拥抱变化,将注意力放在结果上,每一次变化都意味着新的机遇诞生,对待变化的态度很大程度上决定了你能否成功。</p> +<p>6、控制时间。我们所做的每一件事情基本上都可以归入四类:把重要的事情做对、把重要的事情做错、把错误的事情做对、把错误的事情做错(与时间管理学GTD思想中的四象限法则类似)。记录自己的时间安排,将黄金时间用在第一类事情上,避免第二类事情的发生,坚决不参与第三、第四类事情。</p> +<p>7、即时向下属反馈。如果把员工的积极性比喻成一个装满水的木桶的话,那么如下行为可以帮助员工装满这个桶:让每一个人知道要事是什么、让每一个人都参与重要决策、倾听每一个人的意见、及时提供有效反馈(最重要)、庆祝每一个微小的成功。我在及时提供有效反馈方面做得比较差,需要有意识的去改进,要主动了解工作的真实进展并给予积极反馈。</p> +<p>8、积极与激情。看到本书的最后,我有一种被忽悠的感觉,也有一种豁然开朗的感觉,作者要是把这个放在最开始我可能就不会往下看了,所以作者耍了个小花招,在最后才放“大招”。因为无论如何讲解,上述的那些内容只能算“术”层面的事情,也就是说那些属于做事情的“方法”,而那些方法与技巧的根基在于,一个人有没有积极的心态和做事的激情。所以一个团队的领导向员工输送的最有价值的东西就是自己的激情,只有积极向上的人才会成为一个好的领导者。</p>在线教育的体验与畅想https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/Sat, 02 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/<p>在这个言必谈互联网的时代,那些以互联网创业狗自居的疯狂创业者们,无时不刻都在思考一个问题&mdash;-我该“颠覆”哪一个传统行业?众多躺枪的传统行业中,近些年被提及最多的、认为到了最危险关头的就是“教育”,通过谷歌搜索“在线教育”关键词,可以搜到大约上百万条记录,截至到2015年底,我国从事在线教育的企业已经有8000多家,其中有47%的公司获得了融资,已经有16%的企业开始了盈利。这个市场容量巨大、拥有绝对的刚性需求的行业,很多先驱(OR先烈?)已经尝试通过多种互联网手段介入,“在线教育”仿佛一夜之间成为一个热词。</p> +<p>近两年我也简单体验过一些在线教育的产品,也确实从中学到了不少东西,主要的体验有:</p> +<p>1、国内和国外的公开课网站。主要用来学习国内外大学开设的基础知识教程,包括但不限于数学、历史、自然科学、计算机等方面的基础理论知识。这部分的体验一般,主要问题是缺少与老师的互动,遇到不会的问题难以独立解决。</p> +<p>2、国内专业领域的教学网站。主要是专业技能教育,类似技能培训班,但以互联网为载体,学习了编程语言、摄影、Photoshop、绘画、乐器等技能相关的内容,体验良好,尤其是对于计算机编程语言的学习,目前的技术已经做得比较互动话,可以在线进行编程训练(用户端提交代码,由服务端判断答题是否正确),这方面做的比较好有国外的<a class="link" href="http://www.codecademy.com" target="_blank" rel="noopener" +>codecademy</a>和国内的<a class="link" href="http://www.imooc.com/" target="_blank" rel="noopener" +>慕课网</a>,但是在课程内容上存在不够系统、较为分散的问题,缺少以某种现实中具体应用为主题(比如高并发后端架构)出发的课程设计。</p> +<p>3、各种在线的培训班。更具体的专业技能,传播方式以qq群、在线视频为主,专业性很强,有讲师与学生互动,但是良莠不齐,部分专业内容与现实中应用的东西存在脱节,放在现实的工作中难以直接成为生产力。</p> +<p>我作为一个在线教育产品的用户和受益者,以及一个从事互联网行业的入门者,也简单谈一谈对未来在线教育发展的看法和期望:</p> +<p>1、传播载体提升。当前的在线教育内容大部分以静态视频为主,缺少互动,随着技术的发展和互联网硬件资源的增强,实时视频直播肯能会成为主流的在线教育手段,当前已经有人在探索通过游戏直播网站进行专业技能的培训,甚至开始通过手机直播校园课堂的实况。比起静态视频,直播的互动性大大增强。</p> +<p>2、教程内容专业化。目前的教程内容多数仍倾向于普及基础入门知识,缺少专业性强、内容深入的技能培训,未来将出现针对具体行业细分领域的培训资源,以前只能通过专业院校或者培训班才能学到的内容,未来可以直接通过互联网学习,不过非常细分的专业领域,要想获得高质量内容,可能需要付费。</p> +<p>3、优质资源干掉劣质资源。线上最大的好处是内容复制与传播的成本较低,一个优秀的教师如果在线下同时只能教百名学生,而放在线上则可以同时对成千上万(甚至更多)名学生讲课。这样以来,劣质资源将很快没有市场,大家都倾向于寻找教的好的教师,反正对于优质资源来说就是增加服务器的事儿。</p> +<p>4、一些不以教育为主营方向的生产型企业可能会成为产生高质量在线教育资源的基地。现在的企业尤其是信息化服务行业普遍面临学校教育与现实工作脱节的问题,应届毕业生往往需要半年甚至更长的时间才能在具体的工作中产生价值,企业对此的解决办法是进行内部技能培训。这些企业的培训内容往往比目前的在线公开课更具有针对性和专业性,所以这些资源在未来可以以互联网为载体,经过包装后放在线上,为更广大的群体提供更加专业和细分的服务。</p> +<p><a class="link" href="http://www.ieforever.com" target="_blank" rel="noopener" +>恒华科技</a>旗下的梦工坊科技即是上述思路的实践者,其近期推出的“课+”产品汇集了大量专业化行业培训课程,采用静态视频、在线直播、线上社区、线下实战练习等多元化教育手段,面向社会公众群体提供优质的免费教育服务,此举一方面解决了教育脱节问题,又为企业培养了更多的可用人才,既满足企业需求又回馈了社会,可谓双赢。</p>前端技术的一些思考https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/Sat, 26 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/<p>随着技术的革新,浏览器(包括移动端浏览器)性能越来越强劲,网页所能呈现的内容也越来越丰富,从最早的只能展示静态的文本和图片,到通过Js语言和AJAX技术动态修改页面元素,再到HTML5标准所支持的Canvas绘图画布,在浏览器里已经几乎可以实现以前桌面软件所做的任何事情,虽然距完全替代原生语言开发软件还有一段路程,但是就像现在的新媒体替代报纸、杂志、电视似的,这是迟早的事情。</p> +<p>对于目前前段技术领域所存在的问题,进行一些思考。</p> +<p>1、编程语言的特性: +Javascript这门语言确实存在各种问题,据说发明这个语言的哥们当时只花了一个星期的时间来完成,在编程的时候只图一时爽快,很多东西没有考虑到位,比如“面向对象”,采用了与传统的基于“类”截然不同的一种方式,使用起来有些蹩脚,缺少语言层面的“模块”化支持,导致相当长的一段时间里,前段代码混乱不堪,全局变量到处飞。不过随着新标准(ES6)的定稿,以及以谷歌浏览器为首的新兴浏览器对于标准的快速推进,相信这一局面会在三年内得以改善,对于有志于前端开发的技术人员,现在就应该开始使用ES6的标准编写代码了(支持class、import等关键字)。</p> +<p>2、浏览器兼容的问题: +浏览器兼容一直以来都是前端工程师的噩梦,每年因为兼容性问题而导致的工作量浪费不计其数。这里面最大的问题是老旧的IE浏览器没有退役导致的,而老旧的IE浏览器没有退役是因为相当多的人在目前还坚持使用WindowsXP系统,这个问题目前连微软都头疼,不过从我的观察来看,身边使用XP系统的越来越少了,所以我们再做新系统的时候,不妨直接抛弃那些老版本浏览器,用更好的产品体验吸引那些坚持用老旧IE浏览器的去升级。这是对新标准的最好推动。</p> +<p>3、大型应用的架构: +无论是传统桌面程序还是后台程序,都有多年的发展所积累起来的成熟架构和可复用框架,对于模块化、插件式、分层等设计思想都有着良好的最佳实践。但对于前段编程来说,这些目前仍处于战国时代,各种不成熟的框架和构建技术在混战,而且发展迅猛,几乎每天都有新的框架和工具出现,对于新手来说往往纠结到底该加入到什么阵营中去。但是实质上目前不需要纠结这个层面的问题,正因为都不成熟,所以尽可以快速选择一个,然后基于一套体系去实践,等跳过各种坑之后,你会发现殊途同归,大家的思路都是一致的,无非就是“数据与界面分离”、“自动化构建”、“组件式开发”。</p> +<p><em>不过我目前看好Facebook阵营的webpack、reactjs等技术未来的实质标准很可能在此阵营产生</em></p> +<p>4、何时替代原生开发: +移动端的程序尤其是游戏,短期内难以替代,因为性能问题还存在差距,但是管理类应用程序会很快被前端技术取代,PC上的桌面软件除了那些专业的生产力软件比如CAD、PS等和大型游戏,其他的也很快被前端技术取代。所以我们以后再进行技术路线选型时,需要考虑技术的发展,认清趋势,属于前端工程师的时代已经到来。</p>给初入职场人员的一点儿建议https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/Sat, 19 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/<p>前一段时间公司开展新一届应届生入职培训,我有幸作为讲师对他们进行了一些工作技能培训,期间有同学表示期望得到工作技能以外的职场建议,由于当时没有提前准备,我就现场随意说了几条,现在抽时间正式整理一下:</p> +<p>0、及时汇报工作进展:</p> +<p>这条建议执行起来简单有效,也是我刚参加工作时我爸给我的建议,十多年来,我一直认为这是对我工作最有效的建议,如果我的工作经验必须浓缩成一句的话,那就非这句莫属。展开来说,实际上是对于工作中沟通上的建议,即主动沟通,不要等着别人催问,无论是甲方还是上级或者是同事,在团队协作时都要主动汇报自己工作的进展情况,千万不可等到出了问题,最后一刻再让整个团队因为你的问题进入紧急状态,即使你的工作开展很顺利,也要主动沟通,一方面给大家信心,另一方面也好让团队能有优化任务安排的空间。</p> +<p>1、善于进行工作总结:</p> +<p>有一个段子,说有个同学去面试,问及工作经验,曰:“我已有5年工作经验。”面试官查看其简历发现仅有三年时间而已,于是质问之,答曰:“另外两年是算上了加班时间。”听完笑过之后,值得深思,现实中确实存在虽工作三年却比工作五年者还有工作经验的人,不过并不是因为加班,而是因为其善于进行工作总结。</p> +<p>养成经常进行总结的习惯可以使你飞速进步,避免犯重复错误,且对于工作中的成果能进行深度思考,激发下一步行动的灵感。具体做起来,可以从记录工作日志、每日工作总结开始,每天都要记录当天所做的事情,此为基础,然后再进行分析,分析当天遇到的问题,反思自己所做的决策是否正确,以后如何修正,顺便还能把下一步行动考虑清楚,第二天的工作思路也有了。</p> +<p>2、学习高效时间管理:</p> +<p>如何进行高效的时间管理是一个比较大的话题,不可一蹴而就,需要长期坚持改进,我所知道的也是我一直在执行的方法比较简单,就是每天给自己设定目标,难度和数量要适中,比如三件事情,且这三件事情要先挑困难的做,这样会越来越轻松,如果先挑容易的做就会导致你在工作的时候一直处于焦虑状态直到全部完成才能放松。</p> +<p>3、缩小关注圈,扩大影响圈:</p> +<p>在这个咨询爆炸的时代,我们面临的问题不是知道的太少,而是知道的太多。知识越多,或者说想的越多,往往越缺乏行动力,考虑一万遍也不如亲自试一下,不要关注过多自己无法掌控的信息,尽量缩小到一个可控的范围,通过具体的行动来提升自身的能力,从而扩大自己的影响圈。</p> +<p>4、做一个靠谱的人:</p> +<p>早年间看到过一句话,“这个世界从来不缺有能力的人,缺的是靠谱的人”,当时看完感觉深以为然。中国儒家文化提出的“仁、义、礼、智、信”全部做到太难了,作为职场新人不妨倒着来,先从“信”开始,做到了说话算话、不推诿责任、真诚对待他人就离靠谱不远了。虽然当下这个社会的诚信状况不容乐观,但是只要自己多靠谱一点儿,这个世界就多了一个靠谱的人。</p>人工智能快点儿来吧https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/Sat, 12 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/<p>谷歌的AlphaGo由于赢了国际围棋大师而出尽了风头,引起了一场关于人工智能(AI)的讨论,粉丝们纷纷奔走相告,表示这又是一个里程碑,人工智能的时代将比社会主义高级阶段更早的到来。</p> +<p>不过也有部分人表示担忧,技术的发展是加速的,人工智能是一列高速前进的火车,我们等着它来,结果他呼啸而过,远远将我们甩在身后,因此开始担心人类文明的未来会不会被机器文明接管。</p> +<p>当然还有一些调侃的声音,比如“虽然阿狗赢了围棋但是让它来中国肯定赢不了(因为连不上谷歌的服务器)”,“虽然赢了围棋但是让它来中国炒股可能还赢不了一个大妈”。</p> +<p>悲观的考虑,人工智能可能永远也赢不了人。</p> +<p>虽然作为科技粉丝,我是十分希望在未来的某一天,机器文明能够崛起,但是就目前来看,希望仍然渺茫。它可能在某个细分的领域(比如下棋、计算、做菜等)远远超越人类的能力,但是那距离我们设想的智能还相去甚远。</p> +<p>从技术上来说,目前所采用的手段借助于硬件的发展和数据爆发的优势,让机器可以基于大量的训练来进行深度学习,但即使是目前最牛的人工智能程序,抓取整个互联网的数据进行训练,到最后还是很难分辨照片中的动物是一只狗还是一只猫,而人类的三岁小孩一眼就能识别出来。所以仅从日常技能上人工智能就被甩了好几条街。</p> +<p>假设随着科技的发展,人工智能程序可以做到在日常技能上超出人类原始本能,但还差了一个关键因素,它没有灵魂。没有灵魂具体表现在,人工智能很难有自我意识,就是说它不知道它存在,所以它不会撒谎、没有感情、只能做出理性的选择,我们永远不会认为它是活的。</p> +<p>乐观的考虑,也许某一天,某个程序在运行中突然自我觉醒“行深般若波羅密多,照见五蕴皆空”,届时才是真正的里程碑吧。</p>跑步一周的感受https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/Sat, 05 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/<p>好吧,我坦白,由于不可抗拒之因素太多,导致我本周只跑了四次。而且由于体能因素、并出于不给首都添过多麻烦的目的,暂缓执行下班去奥森公园长跑的计划,先在小区内绕圈(我在地图上量了一下,一圈大概1.6公里),每次两圈。</p> +<p>多年没跑步了,以至于很多人认为我在开玩笑,孙敏慧率先在微信上狠狠讥讽了我一番(我善意的认为她也可能是出于激励我的目的),断定我不能坚持下去,我妈则担心我把本来就贫瘠的肌肉也跑掉,还有朋友劝解我不可操之太猴急,刚开始先来个几百米意思一下,以防受伤,当然更多的是给予了鼓励和关注,谢谢。</p> +<p>从生理上来说,刚开始跑唯一的感觉就是,难受和枯燥,根本没有功夫思考,所以也算放空大脑了,尤其是第一圈,还没跑完就感觉不行了,气喘吁吁,心跳加快,后来就开始能感到出汗了,先是额头渗出汗水,一会儿就被风吹干,然后再渗,身体开始出汗,秋裤开始粘上(没经验,忘脱了),最后鼻涕也出来了,就差眼泪了,于是算是半跑半走的坚持了两圈。</p> +<p>后来再跑就没那么累了,速度也比第一次快了一些,但是也不敢冒进,一旦感觉太累就停下来或者放慢速度,如果跑过某段疲劳难受的时段,甚至还感觉比较轻松。</p> +<p>从心理上来说,刚开始确实有些不太好意思,总担心给过往的司机增加心理负担,给遛狗的老人带来惊吓,或者有其他跑步的美女过来搭讪,我要是搭理她,则耽误我功夫,我要是不搭理她,她该有多没面子。</p> +<p>不过一旦跑起来就无所谓了,因为什么顾不上考虑,唯一能做的就是数自己的呼吸,或者用手机换一首更激进的歌,碰到那种软绵绵容易让人丧失斗志的歌,比如《Let it go》(放手吧),赶紧切,换成《We can&rsquo;t stop!》。</p> +<p>不管怎样,我还是尝试了去坚持,也不准备将来能跑多远,或者能跑多好,有条件就坚持下,没条件就创造条件。</p>准备开始跑步https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/Sat, 27 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/<p>锻炼身体的计划早已提出,也该落实下来了,趁现在温度回升、沙尘暴还没来,抓紧实施计划。除了遇到不可抗拒因素(比如恶劣天气、加班、与朋友喝小酒等),争取坚持每天跑步半个小时,我想试试。</p> +<p>选择跑步的地点确实是一件比较头疼事情,经过仔细斟酌, 初步选定三个可以跑步的地方。</p> +<p>首选是在小区里,我们小区环境还算不错,道路、绿化都比较好,一圈下来估计也有一公里,就我目前这状态,两圈已是极限,所以距离足够,但是院内小车比较密集,偶尔还有遛狗的,如果不小心可能会踩到shit。再有就是时间上不太好安排,如果早起跑步的话,需要比平时上班早起个把小时,而且据说早起跑步容易引起心脏问题,下班后到家也比较晚,无论是饭前空腹跑还是饭后跑,都不太合适。所以只有周末的时候可以在小区里跑步,那时可以合理安排时间,而且周末院内车也比较少。</p> +<p>工作日的时候可以选择在下班路上跑步,每天出了地铁之后有一段新修的公路不错,宽阔、平整、少车、安静,非常适合,唯一的问题是目前还没设置路灯,晚上黑灯瞎火的在那儿跑可能比较危险,也容易吓着路人。</p> +<p>还有一个比较激进的方案,不知道是否具有可行性,每天从公司回家的时候,乘坐8号线,在奥体公园下车,然后沿公园一直跑步,穿过森林公园,到林翠桥再上车,我在百度地图上量了一下,大概4公里,距离合适,而且环境优美,大概是最适合跑步的地方了,当然更激进的方案是沿着8号线直接跑回家,不过要是那样的话我估计还没到家我就挂了。</p> +<p>运动装备方面,跑步应该是最简单的了,一双鞋、一副耳机足矣。</p> +<p>我本来还想去网上搜索一下相关攻略教程啥的,谁知那些文章越看越闹心,无论是姿势还是穿戴,啰里啰唆,甚至还有视频教程,把简单事情弄得太复杂,索性不去管这些。</p> +<p>先跑起来再说,不用介意姿势是否正确,路线是否合适,装备是否完善,对于跑步这种原始的本能,直接跑就是了,重要的是行动起来。再不跑步就老了。</p>关于“知行合一”https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/Sat, 20 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/<p>“懂得那么多道理,却依然过不好这一生”,好像是某部电影的台词,这句话曾经击中过很多人的心底,给人一种深深的“然并卵”的无力感,以至于相当长的时间里成为流行语,但我想说的不是这个。这话题如果换成不那么文艺的说法,可以简单的总结为,很多人都不能“知行合一”。</p> +<p>知乎上曾经有人问“为什么有的人好像什么都知道,现实中却依然不能成功?”,里面有个回答特别经典,大意是,如果某件事你没有真正做到过却认为你懂了,那么你是错的。即,“做不到,就是不知道”。很多人都经历过在课堂上被老师带着做题,思路怎么捋怎么顺,感觉很简单,以为懂了,一旦需要独立完成时却发现步步维艰,殊不知自己是被老师一步一步带入到某个境界的。</p> +<p>我的微信朋友圈里有相当多的人非常热衷于转发“是男人就要做到的十二条”、“做到这三点你就牛逼了”等等一大堆心灵鸡汤,为什么为转发呢?我考虑过这个事情,原因其实很简单,因为转发者十分认可这个文章,不过自己也很难做到,但是呢,在自己转发的那一瞬,仿佛自己懂了这个道理,离做到这些仿佛近了许多,心理上得到了莫大的安慰,其实用处不大。</p> +<p>我自己也有这个毛病,每当在网上发现了比较好的知识型文章,草草的浏览一遍之后,立即点击鼠标将之迅速放入收藏夹或者印象笔记中,感觉以后肯定用得到,也肯定会在仔细学习和翻看,其实,大部分这样的文章都被永久的放在那里了,浪费了不少磁盘空间。</p> +<p>做到知行合一太难了,从古至今几千年来,做到的不过寥寥数人,但凡做到的,都十分了得,成就了名垂千古的事迹,比如明朝的王阳明,其开创的“心学”主打思想就是“知行合一”,影响了数代人,以至于民国时期那个著名的教育家在领悟到“知行合一”的能量之后,立马将自己的名字改为了“陶行知”。</p> +<p>反思一下,我们可能不需要过度的去追求懂得太多事情,可能更应该不断检视自己,能不能将自己所学所知运用到现实中,写到这里我又想到,我们学的论语第一篇,“学而不思则罔,思而不学则殆”,孔子他老人家果然看的更透彻,啥话都让他一个人说了,烦。</p>写信https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/Sat, 13 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/<p>现在应该没有人再写信了吧,在互联网和移动通信还么有普及之前,书信一直以来都在亲友的沟通中扮演着重要角色,无论是在外漂泊的游子,还是处于热恋中的情侣,提起笔来认真写一封书信,比起现在的电子化信息,都是一件十分充满仪式感的事情。</p> +<p>书面文字比起电话里的三言两语,更显得正式一些,尤其是信里经过仔细斟酌的句子,每一个字都可能是反复推敲的结果,碰到某些段落,还会停下笔来,一手托腮,盯着烛光,沉思一会儿。</p> +<p>相对于现在随写随收的电子信息,书信的延迟反而有一种古典的韵味,一封寄出的家信可能需要数天甚至更长的时间才能收到,接到回信的时间更是难以预料,所以在寄出信封的每个日子都可以在期盼中度过。</p> +<p>由于有了信纸作为载体,书信比起一般的信息有了更多的保存价值,有时候,在回信还青黄不接的时候,还可以将以往的、泛黄的信笺抽出来反复阅读。</p> +<p>当然了,即使是在现在这个信息快速消费,比较浮躁的年代,还是可以以写信的心情去写一封电子邮件的,虽然已经没有了提笔写字的那种谨慎,虽然信纸换成了发光的屏幕,但如果能有心去认真的写一封信,那感觉想必也是极好的。</p> +<p>希望我们都能慢下来,去捡起以前的那些,有仪式感的事情。</p>老家的年味儿https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/Sat, 06 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/<p>希望简书能够早日提供横屏版本的app,这样用外接键盘写字就更爽了。条件有限,记录若干家乡过年的气息。</p> +<p>每逢过年都是走亲访友的密集时间,这个时候外地奔波的人们都放下手中的工作,忘记一年的辛劳,回到家乡,不顾舟车劳顿,抓紧时间与亲戚老友相约,在一起喝杯小酒,互道辛苦,推杯换盏期间,一边感慨岁月变迁,一边把脸上笑出褶子。</p> +<p>春天是个万物萌动的季节,每逢春节,都是相亲旺季,我走在人民广场,举目望去,一对对年轻人,或挽手,或并肩,有说有笑。广场的椅子在阳光下闪着柔软的光,一个春节下来,这个广场又不知成为了多少场淳朴爱情的起点。</p> +<p>孔明灯被美其名曰&quot;祈愿灯&quot;,由于没有大城市的空中管制,我们这里,每到春节的夜晚都有大量孔明灯被放飞,漫天的灯光与黑夜里的星星遥相呼应,一闪一闪,直到分不清哪些是星光,哪些是承载着人们良好愿望的灯光。</p> +<p>任何一个商场或市场都挤满了人,熙熙攘攘的人群仿佛一团带有年味的浓雾,迟迟不肯散去,价格或高或低,东西或多或少,大家都在体会一个&quot;逛&quot;字,无论有事没事,都要走到街上凑凑热闹,此时站在大街,什么都不用想,拿鼻子一闻也能知道,过年了。</p>过年的春联https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/Sat, 30 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/<p>对过年最大的感触就是贴春联了。大年三十早上,不睡懒觉,早早的起来,吃完早饭,就开始当天最大的工程,贴春联。先仔细撕掉去年的春联,慢慢擦洗干净,涂上浆糊,再贴上新的春联,最后用手仔细抹平,那一刻真正宣告一年的结束,和新年的到来。</p> +<p>老家的风俗比较淳朴,处处要讨一个吉利,所以除了在各种门上张贴门神(或福字)和对联之外,粮仓上要贴上“五谷丰登”,院墙上要贴上“满院春光”,门口贴“出门见喜”,水井贴“细水长流”,自行车上书“日行千里”(后来改贴小汽车上了,也算是名副其实了),就连猪圈也要贴上“六畜兴旺”。</p> +<p>上面这些只能算是基础工作,最重要的是要在客厅正当中贴上“请”回来的神像,两旁对联曰“一杯美酒敬天地,三柱清香谢神灵”,横批“玉皇大帝”,然后去厨房,在灶台旁边张贴灶王爷和灶王奶奶的神像,对联“上天言好事,下届保平安”,横批“一家之主”,最后在八仙桌腿上张贴“客来家中坐,先敬茶酒烟”。</p> +<p>最后一道程序是由家中首席执行官(一般是奶奶)正式焚香敬神,同时院中点燃一挂鞭炮,整个春联工程大功告成。</p> +<p>各家各户均是如此,春联贴完的鞭炮,宣告春节活动的正式开始,从这一刻到正月初五,就算是真正的“年”,我理解的过年就是这一段时间。</p> +<p>春联可以在集市上购买,但最好是能亲自用毛笔书写,每当这个时候,村里稍微会写字的就会成为各家争先请求的对象,农村人不会对书法造诣有多高评判标准,一般能把对联写出来,看起来不难看就行,我们那边文化教育程度低,我记得小时候好像见过有人将“玉皇大帝”错写成“玉皇大地”,就当是通假字吧,跟大人说了大人也不在意,以至于后来在北京见到“上地”的地名,也本能的进行纠错。</p> +<p>我之所以对这些风俗如此了解,是因为我从能站在地上端着浆糊碗开始,就开始在过年的时候跟家人一起贴春联了,贴着贴着,春联揭了一层又一层,也贴了一层又一层,不知不觉已经是我的孩子们在旁边端着浆糊了。</p>关于内向https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/Sat, 23 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/<p>我还记得上次看了一篇文章,里面讲到关于内向与外向的区别,相对比较内向的人,往往需要通过一个人独处来恢复精力,就像给手机充电一样,而外向的人不同,他们需要通过参与各种社交活动来获得精力,就是越玩越嗨的那种。内向的人往往都有丰富的内心世界,更加热衷于追求精神层面的快乐,而非物质享受,喜欢简单低调,而不是复杂奢华。</p> +<p>以我的了解来看,内向的人往往都会有一些社交障碍,与人沟通或者交流的时候存在困难,但这不算事多严重的问题,通过练习还是可以改进的,不会因此而做不好事情,但是无论如何,受性格的影响,要达到相同的沟通或社交效果,内向的人需要消耗更多的能量。</p> +<p>所以对于我们来说,重要的是要找到适合自己的充电方式,比如周末的下午,如果阳光很好,坐在沙发上一边晒太阳一边发呆,或者看一本书,或者看一部电影。可以放空大脑,放松心情,让自己静下心来,对于我来说这就是最好的休息。</p> +<p>当然,我们喜欢思考,喜欢幻想,我很享受那种&quot;身未动心已远&quot;的感觉,很多人喜欢旅行到处看风景,认为&quot;读万卷书不如行万里路&quot;,我对此持谨慎保留态度,我觉得如果没有经常思考的习惯的话,跑遍全球你还是你,天天在拉萨呆着你的灵魂也不会得到净化(你的脸反而会晒黑)。</p> +<p>我们不愿意跟很多人对话,或者说接触,那是因为我们不想做没有深度的交流,我们的好朋友都是那种可以就着一个话题而进行彻夜长谈的人,而且当进行这种深度交流的时候,我们的幸福感爆棚。</p> +<p>但总的来说,人都是生而孤独的,无论内向还是外向,终其一生都无法摆脱因孤独而产生的孤独感,所谓内向与外向的区别,只不过是大家在面对孤独的时候,所采取的应对方式不同,而已。</p> +<p><em>希望简书快点推出支持横评的app,这样用外接键盘打字就更爽了</em></p>说一说《大话西游》https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/Sat, 16 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/<p>在演艺圈里,如果我还能有一个偶像的话,那就是周星驰了。两个原因,一个是《喜剧之王》,另一个是《大话西游》。</p> +<p>我不知道我的朋友里面有多少喜欢《大话西游》的,但是我大学的几个好哥们,个个都很迷恋这部电影。</p> +<p>《大话西游》据说是95年拍的,然后又过了5年才火的,那一年我正好去大学,刚好网络开始普及,跟同学去网吧的时候,我把这部电影看了大概三十遍,那个时候我们寝室哥儿几个,基本上都把台词背了下来,吃饭的时候,你说上句,我就能接下句。</p> +<p>其实在此之前大概98年99年的时候,我就看过这个电影,还是在老家看的盗版VCD,当时没看懂,而且碟子划伤严重,断断续续,感觉乱七八糟的,剧情也衔接不起来,一直笑的比较勉强,就是不知道为什么,看到结尾的时候,有一种莫名其妙的难过。然后也没有多想,就忘了。</p> +<p>后来在大学才又得机会,终于完完整整的看了上下集,我们才看明白,原来这是一个跟西游记没有任何关系的故事,讲述了一个哥们从放浪不羁到充满责任心,然后缓慢被无聊的现实所阉掉的故事。桥段都比较有趣且非常耐人寻味,看似无厘头的搞笑,却蕴含着让所谓影评人所不齿的深意。</p> +<p>这部电影很长,完全颠覆了西游记原著里面的设定,唐僧变成了一个整天唧唧歪歪啰里啰唆的人,徒弟几个也不再是神通广大,而是个个心怀鬼胎、不讲义气。与之相反,白晶晶等各种妖精反而变得有情有义,因为各种机缘巧合,与剧中的主人公“至尊宝”产生了感情。“至尊宝”本来做着一份很有“前途”的职业&mdash;&mdash;“山贼”,而且手下还有一群不知道讲不讲义气的兄弟,无奈导演安排,上天给了他一份使命,需要成为齐天大圣,保着唐僧去取经。然后,让他先以为爱上了白晶晶,为了挽救心上人被牛魔王杀害的这个结局,通过月光宝盒向前穿越了五百年的时间,却“再”遇到紫霞仙子,那个在他心里留下一滴眼泪的人。</p> +<p>剧中的每个人都有自己的追求,但结果却都是背道而驰,正像陈世骧先生和夏济安先生总结《天龙八部》那样“有情皆孽,无人不冤”。</p> +<ul> +<li>主人公一心想当山贼,最后像狗一样去取经了,没当成;</li> +<li>二当家一心想取代主人公,被看穿,也没当成;</li> +<li>牛魔王一心想跟紫霞成亲,无奈人家不从,反而导致被孙悟空干死;</li> +<li>小妖只想做好本职工作,把唐僧吊死,无奈被唐僧先啰嗦死了;</li> +<li>白晶晶爱上了至尊宝,无奈最后要结婚的时候被紫霞的眼泪吓跑了;</li> +<li>紫霞幻想着心上人有一天会踩着七彩祥云来娶她,可是猜中了开头,却没猜中结局;</li> +<li>青霞跟紫霞斗了一辈子,最后一刻为紫霞献身了;</li> +<li>杨二郎的哮天犬一心想为主人立功,却因为动了凡心被炖了;</li> +</ul> +<p>每个人看完这部电影都会有自己的理解,把自己想象成为那个主角,在同情主人公的遭遇的同时,也在安慰自己。正是因为这样,它才让人产生共鸣和思考,我们应该思考什么,有人说:“每个人现在拥有的,可能就是别人奋斗一生梦寐以求的”,然而,在明白了那么多道理以后,我们却还是想反抗,想尝试,不安,并去追求自己的目标,虽然结局是固定的,但毕竟经历过那么多的曲折和精彩,可能也值了。我觉得这也是这部电影所能表达的积极的一面。</p> +<p>就像老一辈喜剧人陈佩斯说过的那样,喜剧的内核都是悲剧,表面上越是喜剧,内在里越是悲剧。有网友评论,看完《大话》笑了,说明你没看懂,看完哭了,还是没看懂,看完怔在那里,明白了造化弄人、世事无常,才是真的懂了。</p> +<p>电影里的原声音乐都很好,尤其是最后紫霞说“我猜中了开头,却没有猜中结局”时的配乐,简直太贴切了,我后来找了很久才找到。</p> +<p>为了防止剧透,此处删去五千字。好的电影常看常新,如果没看过的,我建议你看一下,说不定就能在里面找到你自己。</p>如何更高效的使用你的电脑https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/Sat, 09 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/<p><em>最近有人看我操作我的电脑,觉得整理的很整齐、很干净,能够高效地工作,并表示希望自己的电脑也能这样,我想了一下,决定利用自己的一些闲暇时间,我也整理一下思路,将自己在使用电脑时的一些“好习惯”分享出来,希望对你们有帮助。</em></p> +<p>##硬件</p> +<ul> +<li>首先,在硬件上,不用对CPU和硬盘容量要求太高,这两个东西目前的配置都是过剩的,如果有条件,建议你使用固态硬盘,内存则是多多益善,买你能买的起的最大的内存(摄影圈有句话,叫“买你能买的起的最贵的镜头”)。如果没有也没关系,现在随便一台电脑的配置都足够用(非专业工作或大型游戏,<em>打游戏的,你直接买xbox多好,一块显卡的钱就够了,而且体验还远超家用PC</em>)。</li> +<li>如果你说你有大量电影要存储,首先这不是好习惯,其次如果非得这样的话,请另外配置一个家用NAS,比你PC上的硬盘靠谱。</li> +</ul> +<p>##操作系统</p> +<ul> +<li>不要盲目崇拜Mac系统,如果你不是从事艺术、设计类工作,请老老实实使用Windows操作系统,建议使用Win8.1版本,那些Win7的死忠粉估计是真没用过8.1(同样的硬件配置,8.1比7跑的快又稳),Win10目前存在硬件兼容性问题,估计还得再等等才能使用</li> +<li>别再用Xp了,求你了,Xp上的IE浏览器顶多升级到8.0,你知道这给我们的前端开发带来多大的工作量浪费吗,整天兼容来兼容去的,为了祖国的发展和程序员的健康及家庭和睦,请升级你的操作系统</li> +</ul> +<p>##基础习惯</p> +<ul> +<li>不要安装任何杀毒软件,包括各种助手、管家、防火墙,不要被他们给你的错误安全感所洗脑,觉得你的电脑到处充满了病毒和危险,以及动不动就清理垃圾、整理内存、监测网速,完全没必要,让他们统统去死,windows自带的防火墙和杀毒防御足够用了。</li> +<li>不要关闭UAC,Xp以上的系统,带有一个用户体验很不好的功能,即如果有软件尝试高权限操作时(比如偷偷安装东西),windows会弹出一个警告界面让你选择是否继续,这个功能很有必要,尤其是现在很多流氓软件的情况下,但是很多人为了图省事儿,把他关了,后来就出现了自己明明啥也没动,一些流氓软件还是自动装上了的情况。</li> +<li>保持桌面的整洁,最好一个图标也别留,这样心情好,心情好了干活效率也就高了</li> +<li>如无必要,不要额外安装任何软件,只保留基本的办公软件和浏览器、音乐视频播放等就行了</li> +<li>安装一个靠谱的浏览器,建议是谷歌浏览器,或者火狐也行,开通云同步功能,这样收藏夹就不会丢了</li> +<li>系统自带的微软拼音输入法就很好用了,别安装其他输入法了(如果你还在用五笔,前辈,请受我一拜)</li> +<li>不要爱惜你的电脑,放心大胆的整,犯的错多了你就老实了</li> +</ul> +<p>##进阶篇</p> +<ul> +<li>固态硬盘不要分区,分区为了数据安全的想法已经过时了,要淘汰这种老思想</li> +<li>普通硬盘可以考虑分一下,将不同类型的文件按分区或文件夹归类,比如系统一个区、工作一个区、数据档案一个区</li> +<li>给自己的当前工作建立一个TODO文件夹,里面放需要解决和处理的文件或工作过程中的文件,但是一旦完成此项工作后,记得及时归档保存。</li> +<li>关于文件夹命名和文件命名,要尽量有意义,尽量长一些,别出现“新建文件夹13”这样的,会给将来的检索带来极大干扰</li> +<li>按照项目整理文件,而不是按照文件类别</li> +<li>使用云盘(推荐360网盘)保存备份你的数据,不用担心隐私问题,互联网时代没隐私</li> +<li>整理、善用你的浏览器收藏夹,这样省得每次都输入网址</li> +</ul> +<p>##大师篇</p> +<ul> +<li>如果你有秘密数据,我推荐一款软件TrueCrypt,可将文件加密后再备份,不过据说这个软件的加密算法被美国FBI破解了,不过你那点儿数据也犯不着动用FBI</li> +<li>有一款软件叫Everything,查询文件速度极快,如果你的文件命名比较有意义的话,可以快速搜索到,当然如果你都放在云盘了,云盘自身的搜索也很不错了。</li> +<li>善用快捷键,先说这些简单的吧 +<ul> +<li>Win+L,锁屏</li> +</ul> +</li> +<li>Win+E,资源管理器</li> +<li>Win+Q,快速检索应用或文件</li> +<li>Tab键是可以将光标跳转到下一个输入框,但是可能很少有人知道Shift+Tab是跳转到上一个</li> +<li>Win+1、2、3、4、5等,可以快速启动你锁定在任务栏上的应用</li> +<li>Win+X,进入最快捷的系统菜单</li> +<li>Win+C,另一个快速菜单,可以快速设置、关机等等</li> +<li>Win+D,快速回到桌面</li> +<li>PrintScreen,截屏,Alt+PrintScreen截屏当前活动窗口</li> +</ul> +<h2 id="丧心病狂篇">丧心病狂篇</h2> +<ul> +<li>善用Win+R(运行),直接启动各种程序</li> +<li>输入calc,启动计算器</li> +<li>输入mspaint,启动画图板</li> +<li>输入excel,启动excel</li> +<li>输入winword,启动word</li> +<li>输入cmd,启动命令行控制台(这个回头单聊吧)</li> +<li>输入services.msc,启动服务管理界面</li> +<li>输入gpedit.msc,启动组策略管理器</li> +</ul> +<p>##省事儿篇</p> +<ul> +<li>找一个像我这样的朋友,请他吃饭。</li> +</ul> +<h3 id="最近比较忙先写这么多想到再补充">最近比较忙,先写这么多,想到再补充。</h3>我坐在客厅的沙发上打字https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/Mon, 04 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/<p>我坐在客厅的沙发上</p> +<p>将我的手机支起来</p> +<p>晒着太阳</p> +<p>用小键盘打字</p> +<p>感觉美美的</p> +<p>想着你在哪里</p> +<p>是不是也和我一样</p> +<p>面带微笑</p>推荐几个我经常去的网站https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/Sat, 02 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/<p><em>推荐一些我经常去的网站吧,可能比较偏向技术宅。</em></p> +<h3 id="0技术类">0、技术类</h3> +<ul> +<li><a class="link" href="http://stackoverflow.com/" target="_blank" rel="noopener" +>http://stackoverflow.com/</a> 根据名字(栈溢出)就知道这是一个程序员相关的站点,之所以把它排在第一位,是因为它基本上是程序员每天必上的网站,各种编程问题如果在这个站上找不到解决办法,那几本上可以宣告在互联网上找不到答案了。即使没有遇到问题,也可抽时间浏览一下当前热门的问题,碰上自己能回答的,也别吝啬,热情回馈一下吧,据说很多国外公司在面试程序员时,在stackoverflow上回答的问题质量也是一个评价指标。</li> +<li><a class="link" href="https://github.com/" target="_blank" rel="noopener" +>https://github.com/</a> 世界最大开源社区,免费送你版本控制空间,可玩性很高,连微软等大公司也将自己的开源代码放在上面托管,牛人很多。想要成为牛人?先在github上follow那些牛人吧,看看他们在做什么项目,在写什么样的代码。</li> +<li><a class="link" href="http://news.ycombinator.com/" target="_blank" rel="noopener" +>http://news.ycombinator.com/</a> hackernews,《黑客与画家》的作者,硅谷著名孵化器创始人ycombinator创建的站点,很多科技创业项目首选的推广平台,此网站乍一看很粗糙,但是干货很多,经常有大神级牛人在上面发布作品。</li> +<li><a class="link" href="http://news.dbanotes.net/news" target="_blank" rel="noopener" +>http://news.dbanotes.net/news</a> 上一个网站的国内版,中文,国内著名DBA冯大辉创建,质量虽不比hackernews,但可以了解国内的技术形式。</li> +<li><a class="link" href="http://geek.csdn.net/" target="_blank" rel="noopener" +>http://geek.csdn.net/</a> 国内著名程序员网站CSDN出品的hacknews,文章质量良莠不齐,偶有精品,可以偶尔上去看看。</li> +</ul> +<h3 id="1学习提升">1、学习提升</h3> +<ul> +<li><a class="link" href="http://study.163.com/cloud/myCloudClass.htm#/cloudClass/index" target="_blank" rel="noopener" +>网易云课堂</a> 说网易为中国互联网的良心一点儿都不过分(百度去死去死),云课堂内容质量非常高,基本上可以做到足不出户读完各种大学,另外网易还翻译了很多精彩的TED演讲视频,TED爱好者的福音。</li> +<li><a class="link" href="http://www.imooc.com/" target="_blank" rel="noopener" +>慕课网</a> 免费学习各种IT技能,前端、后端、设计、架构等等,基本上如果你愿意学,可以自学成为全栈工程师,那些整天嚷嚷着就差一个程序员了的创业团队,上去看看吧。</li> +<li><a class="link" href="http://www.codecademy.com/" target="_blank" rel="noopener" +>Codecademy</a>在线学习编程网站的鼻祖,以前我Js和Python就是在这上面学的,艺不压身,多掌握基本语言吧,每个语言都代表一种编程思想。</li> +<li><a class="link" href="http://www.gogoup.com/" target="_blank" rel="noopener" +>高高手</a> 这家教Photoshop、设计和摄影,比蓝翔还要好。</li> +</ul> +<h3 id="2视野">2、视野</h3> +<ul> +<li><a class="link" href="http://www.zhihu.com/" target="_blank" rel="noopener" +>知乎</a> 不要多上,否则容易产生你掌握很多知识的错觉,佛家说,贪恋知识也是一种“贪”,但是确实可以开阔视野,增长见识,适可而止。</li> +<li><a class="link" href="http://www.quora.com/" target="_blank" rel="noopener" +>quora</a> 知乎就是模仿的它,问答质量非常高,但里面也充斥着各种鸡汤,如果想练习英文阅读能力,可以尝试一下。</li> +</ul> +<h3 id="3音乐">3、音乐</h3> +<ul> +<li><a class="link" href="http://ear.duomi.com/" target="_blank" rel="noopener" +>邻居的耳朵</a> 一篇美文配一首好歌,能让你经常发现以前错过的好歌。</li> +<li><a class="link" href="http://www.rainymood.com/" target="_blank" rel="noopener" +>rainymood</a> 这个网站只有一个功能,就是播放下雨的声音,催眠最佳。</li> +<li><a class="link" href="http://www.audiobar.net/forum.php" target="_blank" rel="noopener" +>音频应用</a> 国内第一的录音论坛。</li> +<li><a class="link" href="http://music.163.com/#" target="_blank" rel="noopener" +>网易云音乐</a> 不多说了。</li> +<li><a class="link" href="http://www.exound.com/" target="_blank" rel="noopener" +>叉烧网</a> 音乐器材是一个跟单反一样的不归路。</li> +</ul> +<p>###4、美图</p> +<ul> +<li><a class="link" href="http://500px.com/" target="_blank" rel="noopener" +>500px</a> 高质量图片网站,很多摄影师在上面出售作品,做PPT时用的到</li> +<li><a class="link" href="https://www.pinterest.com/" target="_blank" rel="noopener" +>pinterest</a> 图片网站,瀑布流图片站的鼻祖,做PPT时用得到</li> +</ul> +<p>###注:有些网站可能需要翻墙才能上。</p>2015年的个人总结https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Sat, 26 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>按照惯例,工作总结写完了,可以开始写个人总结了,只总结与工作无关的。</p> +<p>0、家庭</p> +<ul> +<li>按照年初的预定目标,要抽出更多时间跟家人一起,基本也实现了,比如陪赵老师逛了两次街(元旦和年末各一次),虽然全程一脸无奈、两股战战几欲先走,但也算破了纪录了,我还总结了一个技巧,只要赵老师试衣服,我就在旁边说:“哎呀,这衣服穿上没腰啊”,不一会儿赵老师就让我一边儿歇着了,后来我还为她写了首歌,叫《一千个买鞋的理由》;</li> +<li>儿子在我的引导下,现在每周都会用英文给我写一封信,写在纸上用手机拍了发给我,每一封开头的“Dear Dad”看着都很是让我有些小激动,我基本都能做到认真点评且鼓励为主,偶尔碰到不熟悉的单词,我还得查查再回复。只是他性格有些自闭,跟我小时候差不多,不擅长表达内心真实的想法。</li> +<li>女儿成长很快,今年入小学没少让我以及周围的朋友费劲(感谢大家),但好在最终还是如愿以偿,我也尽量在周末多抽出时间来陪她,不过她也越来越大了,心思也多了,现在我一下班,她已经不再冲出来抱着我的小腿坐在皮鞋上跟我说“爸爸你回来啦,爸爸我好喜欢你啊”了(那时她特别像《卑鄙的我》里的那个最小的小女孩)。一想到将来会有那么一天,她推开家门扯着一个男生的手,对着坐在沙发上抽烟的我说:“爸爸这是我男朋友”时,我就心碎(赵老师评论,如果到30岁还没有,你更心碎)。</li> +<li>父母正在慢慢苍老,不过心态还算年轻,今年暑假仍然过来检查了我的工作,相聚时间虽然不长,加上今年我中间又多回老家了几天,也算是响应国家号召,常回家看看了。我虽不爱打牌,但仍然坚持陪二老斗地主,无奈水平太次,每次都被我爸赢个精光。我爸控制欲极强,我说我周末吃饺子,他遥在千里之外还打电话跟我说,如果吃猪肉大葱馅的,以我的量,剁馅儿的时候必须只能放一根葱“那样剁出的馅儿才最好吃”。我虽心里呵呵,但嘴上还是像乙方对待甲方那样深表同意。</li> +<li>十一的时候,跟妹妹约定,她从深圳,我自北京,携家人在鸡公山顺利会师,一起游玩了几天,她还千里迢迢给我带了自酿的红葡萄酒,一喝上瘾,后来我自己也在北京酿了十来斤,无奈第一次制作,缺乏经验,口感偏酸,就没有好意思拿出去给朋友品尝,我自己受累都喝完了。</li> +</ul> +<p>1、健康,我的体重如愿增长了约3公斤,达到了历史新高度,67公斤(冬天、棉衣),上次去买衣服时惊喜的发现腰围已增长至二尺五。但明显缺乏锻炼,精力也不如以前,目前已经认识到问题严重性,虽然没法跑步,但准备多做家务(比如拖地),多走路少坐车,饮食规律、睡眠规律,将锻炼身体正式提上日程。</p> +<p>2、电影,今年还是看了很多不错的电影,有的在影院,有的在网络上看的,如果非让我给个排名的话<a class="link" href="http://movie.douban.com/subject/25773932/" target="_blank" rel="noopener" +><em>《爆裂鼓手》</em></a>应该是在第一位,明显是拍给“不疯魔不成活”的孤独者看的。<a class="link" href="http://movie.douban.com/subject/11584019/" target="_blank" rel="noopener" +><em>《海洋之歌》</em></a>是我近年来、乃至建国以来看过的最优美的动画片(又是爱尔兰这个忧郁的民族拍的),略伤感,但是每首配乐都可以单曲循环,每个画面都可以截图然后冲印挂墙上。<a class="link" href="http://movie.douban.com/subject/6985803/" target="_blank" rel="noopener" +><em>《少年斯派维的奇异旅行》</em></a>是一部意外惊喜,讲述一个天才少年走出误伤弟弟的心理阴影的过程,反正也是各种优美,适合某个周日的下午躺沙发上安静观赏。看过的新科幻大片反正就那么些,乏善可陈,倒是有一些科幻小制作非常出彩,比如<a class="link" href="http://movie.douban.com/subject/6722879/" target="_blank" rel="noopener" +><em>《她》</em></a>、<a class="link" href="http://movie.douban.com/subject/24696982/" target="_blank" rel="noopener" +><em>《I型起源》</em></a>等等。还有一些略文艺的比如<a class="link" href="http://movie.douban.com/subject/3991933/" target="_blank" rel="noopener" +><em>《深夜食堂》</em></a>、<a class="link" href="http://movie.douban.com/subject/1296778/" target="_blank" rel="noopener" +><em>《一树梨花压海棠》</em></a>等。国产电影中只有<a class="link" href="http://movie.douban.com/subject/25964071/" target="_blank" rel="noopener" +><em>《夏洛特烦恼》</em></a>留下深刻印象,其他一概不记得,这就是拍给我们80后看的,全程无尿点,悲剧的内核喜剧的外表,看的时候可以放心的抹眼泪,因为别人也不知是不是笑出来的。(写到这里我突然发现,明年需要降低电影预算,拨给读书)。</p> +<p>3、音乐,自从豆瓣FM下架了很多我收藏的红心歌曲后,我基本上就只用“网易云音乐”了,重新捡起了上班路上插着耳机听歌的习惯,以前总不舍得用耳朵,怕听伤了,后来想通了,和XX一样,有些事情是不能攒到老年时再做的。而且现在没那么挑剔了,苹果原装的耳塞就足矣,返朴归真了。(写到这里想起一个笑话,有一天早晨起床后发现有一只耳机不响了,后来大夫告诉我是右耳聋了,吓了我一跳,我还以为耳机坏了)。</p> +<p>4、看书,基本上都是在地铁上断断续续看的,比较有印象的有<a class="link" href="http://book.douban.com/subject/10785583/" target="_blank" rel="noopener" +>《思考,快与慢》</a>、<a class="link" href="http://book.douban.com/subject/4187411/" target="_blank" rel="noopener" +>《万物有灵且美》</a>、<a class="link" href="http://book.douban.com/subject/20452058/" target="_blank" rel="noopener" +>《The Nature of Code》</a>、<a class="link" href="http://book.douban.com/subject/1941558/" target="_blank" rel="noopener" +>《设计中的设计》</a>、<a class="link" href="http://book.douban.com/subject/26364209/" target="_blank" rel="noopener" +>《那些古怪又让人忧心的问题》</a>等等。看的比较杂,这些书基本上都可以开拓视野促进思考。比较实用的是我在年末的时候看了一本关于领导技能的书&mdash;-<a class="link" href="http://book.douban.com/subject/24371531/" target="_blank" rel="noopener" +>《周一清晨的领导课》</a>,感觉受益匪浅,书名虽然起的有些鸡汤,但是内容确实不错,对于中层领导解决在管理团队时存在的问题确实很有帮助,目前还没看完,我准备实践一下(知行合一),我身边的人,无论是不是要搞管理,我都准备向他们隆重推荐这本书。另外我在kindle上又看了两遍南怀瑾大师的<a class="link" href="http://book.douban.com/subject/1421659/" target="_blank" rel="noopener" +>《金刚经说什么》</a>,虽然看不太懂,但还是深深体悟到了什么叫“念念不忘,必有回响”。</p> +<p>5、其他,今年还是经历了很多,其中有很多意外的美好,也有痛苦的体会,但总的来说,还是好的,思想上有进步,心态也比较平和,不会为琐事计较,进一步明确了“助人为快乐之本、创造是幸福本源”的价值观,能够以比较积极的心态看待问题,乐善好施,更喜欢跟朋友聊天,尤其喜欢传递给周围的人快乐和正能量(承蒙大家错爱,无以为报,而且我觉得这也是“善”的一种)。</p> +<h3 id="对于未来的期望我考虑了一下有这几点">对于未来的期望,我考虑了一下,有这几点:</h3> +<ul> +<li>努力去创造美好;</li> +<li>发现更大的世界;</li> +<li>用心体验生活;</li> +<li>奉献,带给他人快乐,即善;</li> +<li>负责,承担责任与使命;</li> +</ul> +<p>具体点儿来说:</p> +<ul> +<li>对技术的热情不能消减,没有时间即使是挤时间也要坚持学习新技术,创造美好的事物;</li> +<li>坚持知行合一的理念,看再多的书和文章也不如真正去实践;</li> +<li>有意识的提升管理和自我管理能力,阅读管理书籍,并在现实中运用,坚持PDCA;</li> +<li>适量扩大社交圈,好朋友要常联系、常来往,缩小关注范围,降低信息噪音;</li> +<li>多做好事,以助人为决策标准,帮助他人成功;</li> +<li>锻炼身体,多做家务,多陪家人,即“负责”;</li> +<li>慢下来,尤其是在做决策时,需要认真考虑和分析,始终坚持原则与最初的目标定义,也是“负责”;</li> +</ul>我喜欢的段子,在2015https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/Sun, 20 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/<p>幽默不是对什么都不在乎,相反,幽默的人都很认真,而且需要勇气,一个敢于自黑的人一定是睿智又自信的。</p> +<p>能理解幽默的人,也一定是一个有趣的人,感谢那些幽默的段子手,使我在工作之余得到放松,下面是微博网友在2015年收集的一些网络段子,分享给大家,我已经主动过滤了一些低俗没品的(列位如果谁有需要请私下联系,反正我也没有)。</p> +<p>0、我这辈子最重要的三点是:岁月安好、懂得感恩、与你相随。总的来说就是 Fine,thinks and you。(@大哥王振华)。</p> +<p>1、世界五大王牌情报组织:CIA(中情局)、KGB(克格勃)、MOSSAD(摩萨德)、MI6(军情六处),BJCYQZ(北京朝阳群众)(@警察蜀黍)。</p> +<p>2、一个简易的提升逼格的方法:如果你愿意,你可以在简历上写自己是美国时代周刊2006年度人物,曾获2008年感动中国组委会特别大奖。不用担心吹牛被捉,因为这两年的获奖者分别是“everyone”和“全体中国人”(@英式没品笑话百科)。</p> +<p>3、遇见一个中国导游,他说从前最头疼的,就是带大团游客到处乱走,必须不停点人头回去找,不然很容易散。但现在他弄了一个随身wifi,免费提供给团员连接。从此游客们都紧紧跟着他,亦步亦趋,生怕离远了没信号,再也不担心队伍走散了。(@马伯庸)。</p> +<p>4、女孩喜欢男孩,每晚都和男孩聊天。可男孩要么半天回一句,要么干脆不理。女孩依旧主动着。终于在某一天,男孩突然回的很快,高谈阔论。女孩感动,努力终于没有白费,鼓起勇气问:“你终于对我有感觉了吗?”男孩淡淡地说:“不是呀,今天刚刚把三星手机换掉了。”(@福大校长)。</p> +<p>5、朋友说:“油价不能再跌了,要不只剩下税了!”(@傅蔚冈)。</p> +<p>6、黄晓明是一个青岛人,婚礼却在上海办,可见家乡的酒席是有多贵。。。(@江上渡)。</p> +<p>7、弟弟带了一群朋友回家吃饭,一会儿弟弟神神秘秘的到厨房对做饭的妈妈说:“这里面可有一个是你未来的儿媳妇。”妈妈头都没抬,说:“是穿白色裙子的那个吧。”弟弟惊讶的说:“妈,您真神了,怎么看出来的?”妈妈淡淡的说:“因为这些人里面我最烦的就是她。”</p> +<p>8、母语就是数钱的时候心里念的语言。(@laoyang945)。</p> +<p>9、晚上和女朋友吃完饭,我说:“待会儿把碗刷一下。”她说:“你自言自语的声音怎么这么大?”(@柳三便)。</p> +<p>10、刚才我女人在弄新买的面包机。她把内胆洗干净以后让我擦干,说:“你要擦得很干,一点水都不能有。要不然面包就做不好。”然后我死命擦了五分钟,里里外外都没有一丝水迹。接着她开始放配料。第一步,加入70毫升水。。。(@段子楼)。</p> +<p>11、印度舞蹈的精要是左手向下拍小狗,右手抬起拧灯泡,脚步动作是一边踩缝纫机,一边打转。</p> +<p>12、小时候每当我生病,母亲都会为我冲一杯咖啡,她温柔地说:“外国人都喝这个的。”幼小的我总是害怕咖啡,酸甜苦涩交错。如今我走遍米萝、上岛、星巴克都找不到小时候喝的那个味道,直到那天我喝了一杯板蓝根&hellip;&hellip;.(@张大进就是我)。</p> +<p>13、最近小区广场舞大妈们都不跳了,问下邻居大妈怎么不跳了,是不是感觉扰民不好意思了。大妈说:“不知道谁家的孩子穿个红肚兜,我们一跳他就在前面说,孩儿们操练起来!”</p> +<p>14、朋友家孩子满月,我用EMS给孩子快递了一份礼物。收到快递后,孩子高兴地打电话对我说:“谢谢您的礼物,我非常喜欢”(@剑神葡萄)。</p> +<p>15、唐僧师徒四人正在吃饭,突然“轰隆!”一生巨响,吓了大家一跳,唐僧抬眼望了望,指着山下修路炸碎的石头说:“悟空,你妈生二胎了。”</p>可能要用一辈子时间去学习https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/Sun, 13 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/<p>完成自定的作业,想到哪儿是哪儿。</p> +<p>说说“学习”本身,它可以是一种行为,也可以是一种态度。狭义上来说,“学习”可能指的是习得某种技能的手段,广义上来说,获取或领悟任何知识的过程都算是“学习”。</p> +<p>#“好奇” +对这个世界强烈的好奇心应该是最原始的学习动力了,大家小的时候都有很强烈的好奇心,那个时候世界充满了未知和不可预测,晚上没太阳的时候向日葵怎么办、天上的星星会不会掉下来、校长是不是不上厕所、电视机关了之后里面的人去哪儿了,等,很多事情等待我们去探索。等到这些事情有了“答案”,我们也长大了,老了,对很多事情不再感到好奇了,我们可以使用表情符号聊天、会通过微积分求曲面的面积、可以制定很详尽的工作计划并跟踪、知道计算机从按下电源开关后里面发生的一切事情不过是一堆二进制在流动,我们以为世界就是这个样子了,并号称树立了完整的世界观。</p> +<p>回顾人类文明的进程,现在的人类并不是最聪明的,或者很聪明,但是智慧不足,因为我们现在所做的事情,发出的那些看似看明白的感悟,最终发现都是古人考虑n遍以后剩余的思想渣渣,不信你去看看《道德经》。</p> +<p>所以,我不能被自己所谓的“世界观”所束缚,在想明白上述事情之后,我觉得我还是要在可控的范围之内保持好奇心,以及对未知的敬畏之心。(所谓可控的范围,是比如上次我去看耳鼻喉的医生,就想问一下我的鼻中隔偏曲是不是跟挖鼻屎有关,我怕他让我转到精神科,还是忍住了。)</p> +<p>#“求知” +多看书应该是最好的方法,所谓开卷有益一点儿也没错,现在大家都抱怨没有时间,实际上是一个伪命题,我们只是把时间用在了很多无意义的事情上,比如发呆、不断在手机上刷那些不痛不痒的新闻、主动看烂片等,这个时候脑子就在空转,时间久了就会引起各种问题,比如信息的碎片化导致根本无法长时间集中注意力,比如对于大量信息带来的焦虑,甚至感到“迷茫”,哈哈,很多人的迷茫其实就是因为这个导致的,静下心来看书就能解决。</p> +<p>上网去探索信息也可以,但是分内容的优劣,我觉得新闻类的几乎可以不看,重点关注一些与你相关的即可,可以去找一些不错的博客来看,具体内容根据个人喜好来定,比如我比较喜欢看一些技术类博客,很多博主写的都比较有深度,我以前喜欢使用谷歌的Reader阅读器来订阅博客,后来谷歌把它关了,没有更好的客户端了,好在现在移动端也有很多不错的订阅客户端(推荐“即刻”,鄙视“今日头条”)。</p> +<p>仅仅停留在信息获取上是远远不够的,网络在带来便利的同时,有一个很大的副作用,就是使我们失去行动能力,我们在硬盘上收集大量的资料,收藏很多篇非常认同的文字,沉浸在朋友圈分享的各种技巧里,就是懒得抬手去验证一下(这一段可以谱曲唱了)。我们很容易就能知道TCP的三次握手,也知道现代大数据的处理都基于Map Reduce思想,当我们看了一两篇文章之后甚至开始沾沾自喜,仿佛已经成了该领域的专家。孔子和孟子都说过“学习东西最糟糕的方法就是看很多书、听很多讲课、看很多视频,而不亲自动手去试一下”,创立了伟大心学的王阳明也说过“知行合一最牛掰”。所以亲自动手试一试,将领会的思想运用在现实中还是很有必要的。</p> +<p>#“创造” +这个世界上获取快乐的方式有很多,但是获得幸福的方法只有一个,那就是“创造”。消费东西很容易带来短暂的快乐,比如女生买包、男生买车,当时很爽,但只是暂时的,保持持续的幸福感就是不断去创造,不一定非得创造出实物,因为创造的过程本身就是快乐的,可以是写一首歌,一篇文章,一段代码,制造一段美好回忆等等,说到这里我突然想到那个只想当木匠的明朝皇帝,哈哈。</p> +<p>因为“创造”本身是只有智慧生命才具有的能力,所以我们才因为创造而感到幸福,再说远一点儿,宇宙本身是一个“熵增”的过程(我靠好高深),而“创造”恰恰是将“无序”变为“有序”的逆过程,可能这种叛逆感才是让我们感到很爽的原因吧。</p> +<p>#“坚持” +最近我一直在挑战自己,坚持了一些创造的习惯,简单的事情坚持下来应该也是一件伟大的事情吧,所以写到最后,我突然想起几年前的某个周末,我坐在马桶上,捧着一本《万物简史》,一边感叹宇宙的神奇,一边埋怨自己买书如山倒,看书如抽丝。然后,突然就像当年的须菩提那样,非常虔诚地,由衷地发起了一个愿望&mdash;-我要用一辈子的时间去学习。遂将我的签名改成了“好奇”、“求知”、“创造”,这三个词后来基本上作为我以后的衡量做一件事是否有意义的准则了。</p> +<p>###考虑到不违反最新的广告法,我谨慎地将文章标题前加了一个“可能”。</p>life-is-shorthttps://sbabybird.github.io/p/life-is-short/Sun, 06 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/life-is-short/<p>工作总结写的头昏脑涨,换换脑子。</p> +<p>每年的这个时候最容易引发各种感慨,年底,除了工作上需要总结之外,生活上也应该进行一次梳理,回顾这一年的体验,感受了多少幸福,经历了哪些痛苦,吃了什么,玩了什么,读了什么,写了什么,看了什么,听了什么,喝过几次断片儿,摔了几个手机,额。</p> +<p>可以总结,但不要陷入对回忆的感慨,应该以积极的心态去整理。现在流行一种病,缅怀青春,而且怀起来各种哀怨,哀怨声中尽情的去体验那种令人愉悦的忧伤,仿佛只有过去的才是美好的,对于未来和现在则是一脸迷茫。而且我发现这种行为有越来越年轻化的趋势,比如,金妍昨天跟我抱怨说,自从上了小学,压力很大,好怀念小时候,于是我给她买了个带奶嘴的水壶(简直行为艺术)。</p> +<p>去年过年的时候,我回老家,跟我妈抱怨,说时间过的飞快,转眼又是一年,感觉没干啥balabala。我妈没有拿爱因斯坦相对论那一套唬我,而是轻蔑的一笑,说,你之所以感到时间过得很快,可能是因为你的生活还很轻松快乐,过的不艰难,对于那些每天还在担心如何吃饱饭的人来说,可能就没那么快了。我竟无言以对。</p> +<p>我也有我的解释。我认为,随着生活阅历的增加,我们对于新鲜事物的敏感度越来越低,小的时候对于任何事物都很好奇,大脑无时不刻都在感受新东西,所以45分钟的课堂才显得那么难熬。到了对于任何东西都有了自己的认识之后,看啥都没那么新鲜了,所以才觉的时间飞快,感叹白驹过隙,光阴真荏苒。就连子都曾经站在川上曰:「逝者如斯夫,不舍昼夜。」</p> +<p>看来,life不是线性的,是一个加速过程,笑。</p> +<p>#我准备抽时间做一下2015年的个人总结#</p>关于“刷牙沉思录”https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/Sun, 29 Nov 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/<p>我近期新增了一个习惯,将我每天在地铁上、刷牙时或者其他发呆的时候,考虑的那些无聊或有聊的问题,整理出来,发在微信朋友圈里,并取名“刷牙沉思录”,话题比较跳跃,每天都不同,但有一点,这些都是我经过慎重考虑、认真分析过的问题。通过简单的一段文字,全方位体现了我对思考的热爱,以及我充分具备当一个哲学家(神经病)的潜质。</p> +<p>爱幻想、胡思乱想是我从小就有的毛病,基本上整个上学阶段,每堂课,我都能体验“身未动、心已远”那种灵魂出窍的感觉,老师在课堂上讲的眉飞色舞、唾沫飞溅,我盯着黑板,考虑如果老师是一个潜伏在我们学校的外星人,而我是不小心发现了这个秘密的人,我该如何向大家解释人们才能相信我。</p> +<p>我吃东西不少,但一直长不胖,这一方面很拉仇恨,另一方面,我想说的是,思考是很耗费能量的一件事情,每天睡觉之前,我都能感受到我大脑的不安分,这直接导致失眠和辗转反侧,我必须通过畅想一些事情,才能逐渐平息,慢慢睡去。好在通过多年的总结,有几个经典的设定可以供我可劲儿折腾。</p> +<p>比如其中有一个是,如果我走在沙漠里,荒芜人烟,各种供给也基本耗尽,这个时候我发现了一个重达三百多吨的金块,我该如何行动才能将这些东西带回。不过我不太喜欢这个设定,难度较大,而且带来的实惠太小。我比较喜欢银河系漫游这样的设定,驾驶一艘乳白色的梭子状飞船(太空中由于没有大气,所以飞船的外观可以很随意,无需考虑空气动力学),船体有四分之一都是透明的玻璃罩,我坐在飞船的控制台前,飞向银河系的边缘,不过一般还没飞出太阳系我就睡着了。</p> +<p>刷牙沉思录就是在这种条件下产生的,睡觉之前,刷牙的时候,满嘴的泡沫,看着水池里逆时针(说明我在地球的北半球)旋转的漩涡,有时就会有比较虚幻的感觉,会顿悟一些鸡毛蒜皮的事情,但是这个宇宙中的真理往往都是蕴藏在非常浅显的道理中的,所以我一般会怀着非常崇敬的心情将这些记录下来。</p> +<p>一个偶然的机会,我发现将这些东西发在朋友圈进行分享或许也很不错,这样也许能让喜欢我的朋友更加了解我从而更加亲密,讨厌我的人会更加坚定不移地认为我是一个傻Ⅹ而将我拉黑,从而减轻我的社交压力。如果有可能,我想我会坚持下去,不管还发不发朋友圈。</p> +<p>这些年我思考记录的东西,比较琐碎混乱,以前总觉得没有用,甚至是浪费时间,现在忽然想通了,其实这些思考之间是有联系的,在积累达到一定量的情况下,悟性被激发的时候就可以发现一些规律和更抽象升华的知识或方法论,也许就是常说的量变引发质变吧,大脑里的知识积累到一定程度,就是『大数据』了,呵呵。</p> +<p>#我可能会在每个周末的晚上写一篇短文#</p>SICP 课后练习题1.9https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/<h4 id="练习-19--下面两个过程各定义了一种加起两个正整数的方法他们都基于过程inc它将参数增加1和dec它将参数减少1-请用代换模型展示这两个过程在求值add-4-5时所产生的计算过程这些计算过程是递归的或者迭代的吗">练习 1.9 下面两个过程各定义了一种加起两个正整数的方法,他们都基于过程inc(它将参数增加1)和dec(它将参数减少1) 。请用代换模型展示这两个过程在求值<code>(add 4 5)</code>时所产生的计算过程。这些计算过程是递归的或者迭代的吗?</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nf">inc</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><p>解答:根据代换模型分别展开如下</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">5</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">5</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">6</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">7</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>根据展开可以看出,第一个计算过程是递归的,因为明显有一个逐步扩展然后又收缩的递归计算链条。第二个计算过程是迭代的,没有扩展、收缩的过程,而是使用a和b存储了常量。</p>忘掉GTD、忘掉所谓的高效习惯https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/Sun, 04 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/<p>一口气看完了三本《搞定》系列,我突然“顿悟”了,我意识到,根本不存在所谓的“时间管理”,在脱离了对自己目标清晰认知的前提下,任何时间管理的方法都是毫无意义乃至浪费时间的。</p> +<p>然而虽然很多教授方法的书籍里面也提到了这一点,却无一告诉读者如何对自己的目标找到清晰的认知。</p> +<p>无论是否学习过各种时间管理或精力管理的技巧,每个人实际上已经自成体系有了一套多年来摸索出来的方法,应对自身的工作、生活、欲望,出于对效率的无尽追求,不断贪心想要提升,人们发明了各种方法来管理时间,有简单的也有复杂的,这些方法没有例外,都是在告诉人们一件事情,那就是如果你的方法得当,所有的事情都可以有效掌控,你的人生最后可以变成一张写在纸上的待办清单。然而事实呢,恰恰相反,可控的永远是少数,未知远远大于已知,以有限的精力与未知做斗争无异于以卵击石,到头来弄个筋疲力竭,垂头丧气,改去寻找其他的方法,岂不知出发点就是错误的。</p> +<p>不如换个思路,放弃对方法的追求,去思考一些本质上的东西。</p>2014年的个人总结https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Sat, 03 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>今天是2015年的第三天,元旦假期就要过去,本打算在evernote上记录一下对新年的愿景,谁知写了半天,没保存上,全丢了,想起来还有个地方叫简书,就索性在这里写吧,既然准备动笔重新开始,不妨先总结一下过去的一年。</p> +<p>我的2014,这一年我过得比较平淡,也比较充实,认真工作、积极创新、乐于助人、波澜不惊,没事儿还看看电影、找朋友喝喝小酒吹吹牛,可以说相当的自我。我刚才又翻看了一下年初时写下的期待,基本上都实现了。</p> +<p>1、我个人在今年才开始使用智能手机(赵老师倒是早就用上了苹果,手机领先我一个世代),在此之前,我一直鄙视智能手机(电池不行、没有实体键盘输入不方便、软件装多了就慢等等),不过,在我用了一台大屏幕智能手机之后我彻底改变了看法(大屏就是爽啊,技术进步迅猛,现在的手机已经没有性能问题了),从此我的黑莓就躺在了抽屉里吃灰,我的包里也不用随时塞一个厚重的iPad了,笔记本电脑就更不用背了。对了,在中国移动的反复撩拨下,我终于也开通了4G,不必再忍受GPRS的龟速了。</p> +<p>2、今年的电影看得比较少,没有什么值得回忆的,暑假的时候我带孩子们去看了场『变形金刚4』,片子又烂又长,中途不得不去了两次厕所。</p> +<p>3、拜某局所赐,美剧也看得不多,反而省了时间做其他的事情。</p> +<p>4、利用业余时间,我学会了用Photoshop修片,在网上系统了学习了课程,而且与实践结合,将自己拍的照片调的还算满意,不过一看就是个新手,调出的照片远远就能闻见浓浓的后期味儿。</p> +<p>5、买了个电钢琴,给金妍练琴用,开始时我也跟着瞎掺和,甚至一起做指法练习,可以没坚持下来,现在她已经可以弹出完整的曲子了,我还停留在小星星阶段。</p> +<p>6、不过我在吉他的扫弦方面进步不小哦,至少我是这么以为的,因为听起来,不那么像噪音了,我甚至和金妍一起录了一曲『小苹果』,感觉还『蛮拼的』。</p> +<p>7、赵老师开车闯了个红灯,一下子就扣了我6分,从此我开车上路都多里哆嗦不敢开快像个娘炮,连老杨都比我开的猛。</p> +<p>8、读书读的不算多,但也陆续看完了几本,『ReWork』、『给青年的十二封信』、『禅与摩托车维修艺术』、『围城』等等,另外我又看了一遍『黑客与画家』,每次看都有新的收获。在办公室,还有一本道德经放在抽屉里,每当工作累了就拿出来翻一翻,虽然总是看不懂,不过用来缓解压力效果还是不错的。</p> +<p>9、陪家人的时间比以前有所增多,甚至去了一趟幼儿园参加家长互动的活动,由于以前去的太少,老师们都不认识我,不得不让孩子亲自出来指认。活动中,与孩子的互动环节,在老师的指引下,孩子们伴随着音乐给家长捏肩捶背无比亲昵,我看到了旁边一个像我一样的木纳父亲,那一刻,他的眼里竟泛着泪光。</p> +<p>回顾了过去的一年,再考虑一下我的2015,给未来一些愿景和期待:</p> +<p>1、坚持学习,为了兴趣和爱好去学习,并尝试做一些记录,去年年末的时候,我将SICP(计算机程序的构造和解释)的部分课后练习题做完后写到我的博客里,这是一个不错的开始,今年争取能做完一半,如果有余力的话,将The natural of code这本书的练习题也做了记录到博客中。</p> +<p>2、我的人生目标仍然是不断创造出美好的东西,继续保持好奇心,做好玩的事儿。每天的PDCA都要围绕这个目标进行。</p> +<p>3、不放弃自己的爱好,吉他、摄影、绘画、编程等等这些,多抽时间放在上面,为了防止以后不会写字,可以考虑使用钢笔临摹一些硬币字帖。</p> +<p>4、通过互联网优化自己的工作,关注最新动态,永远对技术敬畏。</p> +<p>5、多看书,kindle里没看的书还很多,争取每个月都读一本。</p> +<p>6、少上网,2014年已经有意识的限制自己的上网时间,2015年要做的更好,每天固定少量时间阅读英文咨询(hacknews、reddit、thenextweb等),每周固定时间阅读中文咨询(知乎等)即可。</p> +<p>7、多行动,少踌躇,别怕犯错。</p>SICP 课后练习题1.8https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/Mon, 29 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/<h4 id="练习-18-求立方根的牛顿法基于如下事实如果y是x的立方根的一个近似值那么下式将给出一个更好的近似值">练习 1.8 求立方根的牛顿法基于如下事实,如果y是x的立方根的一个近似值,那么下式将给出一个更好的近似值:</h4> +<p>$$ \frac{x/y^2+2y}{3} $$</p> +<p>请利用这一公式实现一个类似平方根过程的求立方根的过程。</p> +<p>解答:基本思路与求解平方根的实现是一致的,区别再有得到更好值<code>improve</code>的过程有变化,只需根据公式描述进行实现即可</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">/</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="nv">guess</span><span class="p">))</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="mi">3</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.7https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/Sat, 27 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/<h4 id="练习-17-对于确定很小的数的平方根而言在计算平方根中使用的检测good-enough是很不好的还有在现实的计算机里算术运算总是以一定的有限精度进行的这也会使我们的检测不适合非常大的数的计算请解释上述论断用例子说明对很小和很大的数这种检测都可能失败实现good-enough的另一种策略是监视猜测值在从一次迭代到下一次的变化情况当改变值相对于猜测值的比率很小时就结束请设计一个采用这种终止测试方式的平方根过程对于很大和很小的数这一方式都能工作吗">练习 1.7 对于确定很小的数的平方根而言,在计算平方根中使用的检测good-enough?是很不好的。还有,在现实的计算机里,算术运算总是以一定的有限精度进行的。这也会使我们的检测不适合非常大的数的计算。请解释上述论断,用例子说明对很小和很大的数,这种检测都可能失败。实现good-enough?的另一种策略是监视猜测值在从一次迭代到下一次的变化情况,当改变值相对于猜测值的比率很小时就结束。请设计一个采用这种终止测试方式的平方根过程。对于很大和很小的数,这一方式都能工作吗?</h4> +<p>解答:good-enough?当前采用的判断方式是,对比猜测值的平方结果与X的值之间的差距,当差距小于某个阙值时(比如0.001),就停止计算。当X很小或很大时,这种检测就会失败,比如,假设我们的阙值设置为0.001,那么当X本身小于这个阙值时,就会检测失败,得出错误结果,当X很大时,也会由于精度不足而一直达不到最佳猜测值,导致死循环。</p> +<p>因此,要解决这一问题,可以按照题目中给出的思路对good-enough?过程进行修改,不再判断猜测值平方与X的差距,而是判断两次猜测值之间的比率。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mf">0.00000000001</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.1622776601874535e-6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">100000000000000000000000000000000000000000000</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 1.0000000000001497e22</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>在新的<code>good-enough?</code>中,传入的是两次猜测值,所以还要修改<code>sqrt-iter</code>过程,在调用时计算两次猜测值。</p>SICP 课后练习题1.6https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/Tue, 23 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/<p>采用牛顿法求平方根的过程如下。开始时,我们有了被开方数的值(现在需要做的就是算出它的平方根)和一个猜测值。如果猜测值已经足够好了,有关工作也就完成了。如若不然,那么就需要改进猜测值(求出猜测值与被开方数除以猜测值的平均值),并重复这个计算过程。具体编写代码如下(在MIT scheme解释器中)。</p> +<p>定义<code>sqrt-iter</code>过程,与上述描述完全对应。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义改进猜测值的过程<code>improve</code>,返回猜测值与被开方数除以猜测值的平均值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">average</span> <span class="nv">guess</span> <span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="nv">guess</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: improve</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求平均数的过程<code>average</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">average</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: average</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义判断猜测值是否足够好的过程<code>good-enough?</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="p">(</span><span class="nf">square</span> <span class="nv">guess</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> <span class="mf">0.001</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求绝对值和平方的过程</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: abs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">square</span> <span class="nv">x</span><span class="p">)</span> <span class="p">(</span><span class="nb">* </span><span class="nv">x</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: square</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义最上层的过程,用于启动整个工作(使用<code>1</code>这个数字作为任何数的初始猜测值)。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">sqrt </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>执行<code>sqrt</code>过程,并以<code>9</code>为参数,求得平方根为<code>3</code></p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.00009155413138</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h4 id="练习16----alyssa-phacker看不出来为什么需要将if提供为一种特殊形式她问为什么我不能直接通过cond将它定义为一个常规过程呢alyssa的朋友eva-lu-ator断言确实可以这样做并定义了if的一个新版本">练习1.6 Alyssa P.Hacker看不出来为什么需要将if提供为一种特殊形式,她问:“为什么我不能直接通过<code>cond</code>将它定义为一个常规过程呢?”Alyssa的朋友Eva Lu Ator断言确实可以这样做,并定义了<code>if</code>的一个新版本:</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">new-if</span> <span class="nv">predicate</span> <span class="nv">then-clause</span> <span class="nv">else-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">cond </span><span class="p">(</span><span class="nf">predicate</span> <span class="nv">then-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">else </span><span class="nv">else-clause</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: new-if</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>Eva给Alyssa演示她的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">2</span> <span class="mi">3</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">5</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">1</span> <span class="mi">1</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>她很高兴地用自己的<code>new-if</code>重写了求平方根的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>当Alyssa试着用这个过程去计算平方根时会发生什么事情呢?请给出解释。</p> +<p>解答:</p> +<p>这个练习引入了一个新的思考,刚开始时,我以为是牵涉到了过程的局部参数概念,因为在新编写的<code>new-if</code>过程中,看似可以完成条件判断并返回正确的值,但是在本例中使用却存在问题,即在递归调用<code>sqrt-iter</code>时,传给该过程的<code>guess</code>和<code>x</code>为<code>new-if</code>的局部参数,被返回给了<code>new-if</code>这个过程,不会向上返回到上一层<code>sqrt-iter</code>里,这样就导致了改进的猜测值永远不会被使用,使得这个计算过程永远不会结束(除非第一个猜测值恰好合适),从而导致递归调用的陷入无限循环。我在<code>MIT-scheme</code>解释器里的执行结果是,解释器自动退出并提示我递归调用深度超出最大值。</p> +<p>上述看起来是合理的,但是后来我考虑了其他情况,及本书在前面章节里提到了if<code>(if &lt;predicate&gt; &lt;consequent&gt; &lt;alternative&gt;)</code>语句是条件表达式的受限形式,在执行时,先判断<code>predicate</code>是否为真,然后根据结果只执行其后<code>consequent/alternative</code>中的一个。如果使用本例新定义的<code>new-if</code>则作为普通过程执行,传入的参数会因为解释器使用应用序求值的原因,两个表达式都会被立即求值,反应到本例中就是<code>guess</code>和<code>(sqrt-iter (improve guess x) x)</code>都会被立即求值,后面的那句是属于递归调用,这样也会导致改进的猜测值永远不会被使用,陷入无限层的递归调用中。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Aborting!: maximum recursion depth exceeded</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>思考:</p> +<p>最初的时候,我的针对此题的思考方式是变量的作用域问题(可能lisp不会有此问题),后来发现,也许不是这样,而是由于对传入参数立即求值导致的,后续的网上搜索结果也显示出大家的答案都倾向于后者。</p>SICP 课后练习题1.4https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/<h4 id="练习14----请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型根据对这一模型的认识描述下面过程的行为">练习1.4 请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型,根据对这一模型的认识描述下面过程的行为。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.4,通过if判断,根据b的值决定对a b所使用的运算符是+还是-,如果b大于0,则组合式为(+ a b),反之则为(- a b),所以组合式结果永远返回a加上b的绝对值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: a-plus-abs-b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">-2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.5https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/<h4 id="练习15---ben-bitdiddle发明了一种检测方法能够确定解释器究竟采用哪种序求值是采用应用序还是正则序他定义了下面两个过程">练习1.5 Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用哪种序求值,是采用应用序,还是正则序。他定义了下面两个过程</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">p</span><span class="p">)</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">test</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span><span class="line"><span class="cl"> <span class="nv">y</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>而后他求值下面的表达式:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">test</span> <span class="mi">0</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>如果某个解释器采用的是应用序求值,Ben会看到什么样的情况?如果解释器采用正则序求值,他又会看到什么情况?请对你的回答做出解释。(无论采用正则序或者应用序,假定特殊形式if的求值规则总是一样的。其中的谓词部分先行求值,根据其结果确定随后求值的子表达式部分。)</p> +<p>练习1.5 『完全展开而后规约』的求值模型为正则序求值,『先求值参数而后应用』的方式为应用序求值,因此,在应用序求值的模式下,执行<code>(test 0 (p))</code>时会先求<code>(p)</code>这个表达式的值,而根据定义<code>(define (p) (p))</code>执行<code>(p)</code>会造成递归调用,解释器陷入死循环。而在正则序求值模式下,会先展开<code>test</code>过程,根据需要再决定是否执行<code>(p)</code>,在本例中,由于传入的<code>x</code>等于<code>0</code>,所以<code>(p)</code>不会被执行,因此不会陷入死循环。</p> +<p>所以,根据以上分析,如果解释器采用的是应用序求值,则解释器陷入死循环,如果是采用正则序求值,则解释器输出<code>;Value: 0</code>。</p>SICP 课后练习题1.1https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/<h4 id="练习11----下面是一系列表达式对于每个表达式解释器将输出什么结果假定这一系列表达式是按照给出的顺序逐个求值的">练习1.1 下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="mi">10</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 10</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> <span class="mi">3</span> <span class="mi">4</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 12</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">9</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 8</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 3</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">* </span><span class="mi">2</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="mi">4</span> <span class="mi">6</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">a</span> <span class="mi">3</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: a</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">b</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 19</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: #f</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="k">and </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">&lt; </span><span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"><span class="nv">b</span> +</span></span><span class="line"><span class="cl"><span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 4</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">4</span><span class="p">)</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">= </span><span class="nv">b</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="mi">7</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">25</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">2</span> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">&lt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">-1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.1的内容比较简单,基本上直接就可以计算出表达式的值,所有表达式都可以在mit-scheme的交互解释器里进行验证。</p>SICP 课后练习题1.2https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/<h4 id="练习12----请将下面表达式变换为前缀形式">练习1.2 请将下面表达式变换为前缀形式:</h4> +<p>$$ \frac{5+4+\Bigl(2-\Bigl(3-\left(6+\frac{4}{5}\right)\Bigr)\Bigr)}{3\left(6-2\right)\left(2-7\right)} $$</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> +</span></span><span class="line"><span class="cl"><span class="mi">4</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="p">(</span><span class="nb">/ </span><span class="mi">4</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: -37/150</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.2,直接将数学表达式转换为前序表达式即可,在写的时候可以遵循一下排版规则,即同一个运算符的表达式垂直对齐。</p>SICP 课后练习题1.3https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/<h4 id="练习13----请定义一个过程它以三个数为参数返回其中较大两个数之和">练习1.3 请定义一个过程,它以三个数为参数,返回其中较大两个数之和。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">max-three-number</span> <span class="nv">a</span> <span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">c</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">c</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">max-three-number</span> <span class="mi">42</span> <span class="mi">7</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 49</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.3,解决此练习中问题的方法比较多,本答案使用比较朴素的方法,先比较出最大的两个数字,然后将其相加,对于三个数字来说,先在前两个中选取一个大的,然后将其与后面两个中比较大的那一个相加。还有一种思路就是可以先定义出比较大小的方法,然后再调用之,或者先对数字按从小到大排序然后加最后两个,等等。</p>win8系统下使用笔记本作为wifi热点https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/Thu, 13 Feb 2014 00:00:00 +0000https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/<h1 id="win8系统下使用笔记本作为wifi热点">win8系统下使用笔记本作为wifi热点</h1> +<h2 id="背景">背景</h2> +<p>在没有无线路由的情况下,比如出差在宾馆,如果手里有一台可以上网的笔记本电脑,则可以给手机、平板电脑或者其他笔记本提供一个可以上网的wifi热点。</p> +<p>我平时在单位即通过此方式给我的平板电脑和手机共享网络通道,比较方便实用,近期在使用的过程中遇到一些问题,经过摸索,解决了问题,在此记录一下,方便以后查阅。</p> +<h2 id="环境需要">环境需要</h2> +<ul> +<li>一台通过有线连接上网(或者通过3G上网,就是说wifi网卡没有被占用)的笔记本电脑</li> +<li>安装有win8操作系统(win7应该也可以)</li> +<li>无线网卡芯片是intel的(否则可能不支持此技术),并使用了最新的驱动程序</li> +</ul> +<h2 id="基本步骤">基本步骤</h2> +<ul> +<li> +<p>打开具有管理员权限的控制台窗口(在win8系统下,可以通过按<code>windows+x</code>键,然后在弹出的菜单里选择『命令提示符(管理员)』)</p> +</li> +<li> +<p>输入如下命令 <code>netsh wlan set hostednetwork mode=allow ssid=&quot;mywifi&quot; key=&quot;12345678&quot;</code> <em>其中ssid后面的热点名称和key后面的密码可以根据情况自行决定</em></p> +</li> +<li> +<p>上一个命令完成后,如果没有异常的话,则输入如下命令 <code>netsh wlan start hostednetwork</code> <em>这条命令如果执行成功会显示『已启动承载网络』,在下次系统重启后需要重新执行,如果嫌麻烦则可以做一个批处理文件每次双击即可</em></p> +</li> +<li> +<p>成功启动承载网络之后,进入『网络和共享中心』点击『更改适配器设置』,此时在该页里应该可以看到一个虚拟网卡(名称一般叫MicrosoftVirtual WiFi Miniport Adapter),右键点击那个可以上网的网络连接(如果是有线连接就是那个『本地连接』,如果是3G的则根据情况而定,总之必须是那个可以上网的连接),选择『属性』,切换到『共享』页,勾选『允许其他网络用户通过此计算机的Internet连接来连接』,在下面的下拉列表里选择那个刚虚拟出来的虚拟网卡。确定即可。</p> +</li> +</ul> +<h2 id="常见问题">常见问题</h2> +<p>执行以上第二条命令启动承载网络后,有时会显示『无法启动承载网络,组或资源的状态不是执行请求操作的正确状态』,网上大部分的文章针对这个问题给出的解决办法都是更新网卡驱动,可是对于我的笔记本无效,因为我的笔记本电脑在前一段时间是好用的,后来不好用了,根据我的摸索,解决这个问题的办法是,去『设备管理器』下面的『网络适配器』里面找找,看看有没有被禁用的设备,比如『微软托管网络协议』,如果禁用了再重新启用即可正常使用此功能了。</p>使用vs2008编译mongodbhttps://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/Thu, 07 Nov 2013 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/<h2 id="背景问题">背景问题</h2> +<p>mongodb在windwos下的官方编译包是使用vs2010编译的,从官网上下载的源代码在vs2008环境下不能直接编译通过,因为mongodb提供的相关配置文件是针对vs2010的,可能是因为mongodb最新的代码使用了部分C++11的特性,而vs2008没有提供对C++11支持的原因。可是我们在一个具体的项目上需要在vs2008环境下使用mongodb,只好通过手工修改部分配置和代码的办法完成编译。</p> +<h2 id="环境准备">环境准备</h2> +<p>mongodb是使用scons进行编译控制的,所以在进行以下编译之前需要安装并配置好如下环境:</p> +<h3 id="python27">python2.7</h3> +<p>官方建议是安装python2.7版本,而且要在环境变量PATH中加入python的安装路径和python/scripts的路径,以便在命令行中执行python脚本。 +<em>不过我在编译的时候使用的是python2.6版本,也没有发现问题</em></p> +<h3 id="scons">scons</h3> +<ul> +<li>直接去网上下载最新版本进行安装即可。</li> +</ul> +<h3 id="vs2008">vs2008</h3> +<ul> +<li>需要安装vc++的全部组件(主要是默认安装不带amd64的编译支持),如果只需要编译32位版本的话则可以忽略此条。</li> +<li>需要安装sp1补丁,否则会在编译时报错。</li> +</ul> +<h3 id="boost库">boost库</h3> +<ul> +<li> +<p>最好使用boost1.4.9版本,去官网上下载对应的源码包然后自己在vs2008的命令行环境下编译</p> +</li> +<li> +<p>编译boost的命令如下(只编译了所需库):</p> +<pre><code> bjam stage variant=debug --with-filesystem --with-thread --with-date_time --with-program_options --layout=versioned threading=multi toolset=msvc-10.0 --build-type=complete +</code></pre> +</li> +</ul> +<p><em>如果需要编译release版本,就把<code>variant</code>的选项改为<code>release</code>,如果需要编译64位的版本,就在以上命令中加入<code>address-model=64</code></em></p> +<h2 id="配置及代码修改">配置及代码修改</h2> +<h3 id="sconstruct文件修改">SConstruct文件修改</h3> +<p>SConstruct文件用于存放scons的关键配置信息,我们为了在vs2008下编译mongodb首先要做的就是修改mongodb源码下根目录的SConstruct文件。</p> +<ul> +<li> +<p>修改env配置,找到 evn = Environment</p> +<pre><code> env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log' +) +</code></pre> +</li> +</ul> +<p>在Environment里追加一条 <code>MSVC_VERSION='9.0'</code>,这是因为如果机器上有其他的编译环境,比如vs2010或vs2012,scons会自动使用他们的编译器进行编译,即使你是在vs2008的命令行环境下,我最初因为此问题困扰了很久,后来才只得强制指定编译器的版本,修改完成后如下:</p> +<pre><code>env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log', +MSVC_VERSION = '9.0' +) +</code></pre> +<ul> +<li> +<p>给编译器搜索路径增加你自己本地的boost库路径 +因为在编译时需要用到boost库,所以需要把你在本地的boost所在目录加入scons的环境,否则会报找不到boost头文件或链接库的错误,打开Sconstruct文件直接在最后加入如下代码</p> +<p>env.Append(CPPPATH=[&ldquo;d:/thirdlib/boost_1_49_0&rdquo;, &ldquo;d:/thirdlib/boost_1_49_0/boost/tr1&rdquo;], LIBPATH=[&ldquo;d:/thridlib/boost_1_49_0/stage/lib&rdquo;])</p> +<pre><code> *你在编译时需要将路径替换成你自己的* +</code></pre> +</li> +</ul> +<h3 id="准备stdinth">准备stdint.h</h3> +<ul> +<li>去这个地址<a class="link" href="https://msinttypes.googlecode.com/files/msinttypes-r26.zip" target="_blank" rel="noopener" +>https://msinttypes.googlecode.com/files/msinttypes-r26.zip</a>下载msinttypes,将压缩包里的stdint.h解压并复制到 <code>C:\Program Files\Microsoft Visual Studio 9.0\VC\include</code> 目录</li> +<li>修改mongodb源码目录下platform下的cstdint.h,将<code>#include&lt;cstdint&gt;</code>修改为<code>#include&lt;stdint.h&gt;</code>,将<code>#define _MONGO_STDINT_NAMESPACE std</code>这一行里的std注释掉,变成<code>#define _MONGO_STDINT_NAMESPACE /*std*/ </code></li> +<li>修改mongodb源码目录下util下的time_support.h,在文件开头加入<code>#include&lt;stdint.h&gt;</code>,否则在编译这个文件时会无法识别int64_t类型</li> +</ul> +<h3 id="修改windows_basich">修改windows_basic.h</h3> +<ul> +<li>修改mongodb源码目录下platform下的windows_basic.h,</li> +<li>在<code> #if !defined(NTDDI_WINXPSP3) || (NTDDI_VERSION &lt; NTDDI_WINXPSP3)</code> 之前加入 <code>#define NTDDI_WINXPSP3 0x05010300</code> 在<code>#if !defined(NTDDI_WS03SP2) || (NTDDI_VERSION &lt; NTDDI_WS03SP2)</code>之前加入<code>#define NTDDI_WS03SP2 0x05020200</code> 否则会报 &ldquo;32 bit mongo does not support Windows versions older than XP Service Pack 3&rdquo; 和&quot;64 bit mongo does not support Windows versions older than Windows Server 2003 SP 2&quot; 错误</li> +</ul> +<h3 id="修改listencpp和sockcpp">修改listen.cpp和sock.cpp</h3> +<ul> +<li> +<p>修改util下net下listen.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EADDRINUSE WSAEADDRINUSE +#define ECONNABORTED WSAECONNABORTED +#define EBADF 9 +#define ENFILE 23 +#define EMFILE 24 +#endif +</code></pre> +</li> +<li> +<p>修改util下net下sock.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EAGAIN 11 +#endif +</code></pre> +</li> +</ul> +<h2 id="开始编译">开始编译</h2> +<p>环境准备好之后,编译就比较简单了,打开vs2008命令行窗口,执行如下代码即可完成编译 +<code>scons --dd --32 mongoclient.lib</code></p> +<p>如果是编译release版本,就把&ndash;dd换成&ndash;release,如果是编译64位版本,就把&ndash;32换成&ndash;64</p>Hello World!https://sbabybird.github.io/p/hello-world/Mon, 29 Apr 2013 00:00:00 +0000https://sbabybird.github.io/p/hello-world/<h2 id="hello">Hello</h2> +<h2 id="world">World</h2>假日记趣https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/Thu, 07 Oct 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/<p>在姥爷家玩儿,看到桌上有零食,随手捏着就吃,吃完了,姥爷十分纠结地告诉我,那是给猫吃的。</p> +<p>家里的微电脑程控智能电压力锅坏了,拒绝接受一切指令,让我这个“技术人员”束手无策,赵老师将锅翻过来,用力敲击之,好使了。</p> +<p>家里的新房装修好了,我对于装修效果赞不绝口,老爸老妈和赵老师都感到很欣慰,毕竟这几个月把他们累的够呛,你们辛苦啦。</p> +<p>我把堆在角落里的老音响接好了摆在新房子里,认真擦去厚厚的灰尘,开机,每个喇叭都有声,一米多高的落地箱低音是很澎湃,还好这次的天花板很结实。</p> +<p>早晨睡眼惺忪地往院子里看,那里有老妈种在现实世界的菜,我说,这蒜苗长的真不赖,赵老师鄙视我说,才出去几年就分辨不出小葱和蒜苗了。天地良心,我是因为眼睛近视了,凑近了看绝对能分清。</p> +<p>小外甥才8个月就已经养成揪我耳朵的习惯,而且揪起来一脸享受的样子。</p> +<p>女儿在我面前跌倒,我表情平静既没有表示遗憾也没有对地板提出强烈谴责,她于是自己爬起来慢慢穿过客厅和饭厅找到赵老师,嗷嗷哭。</p> +<p>和儿子比赛跳舞毯,轻易将其击败。</p> +<p>哦也,打游戏我从来不让着他。这几天将老爸珍藏的佳酿喝掉了好几瓶,过瘾。</p> +<p>在我对他的白酒表示欣赏之后,他也表示突然听起来我的音响也很不错,于是我们都颇感欣慰。</p> +<p>临回北京的前一天晚上,腾讯终于发布s60v5版的“斗地主”,我半夜爬起来给老妈的手机装上,老妈终于能随时“斗地主”了。</p>如果他们生产马桶https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/Thu, 02 Sep 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/<p>没事儿再瞎畅想一下,如果这些科技公司生产马桶,他们将会生产出什么样的&mdash;&ndash;马桶?</p> +<p>微软生产的马桶将会有着华丽的外观,而且对你卫生间的配置要求很高,不过即使这样你还会发觉掀开马桶盖的速度十分缓慢,而且随着时光的流逝,冲水的速度会越来越慢,你去询问维修工程师,得到的答复通常是让你将马桶卸了重新安装一次。</p> +<p>苹果生产的马桶已经上市就会迎来大批的粉丝扎着帐篷在商店门外排队,马桶将会有着白色的外观,名字就叫“i马桶”,界面将会十分简洁,简洁到压根儿不提供冲水按钮,不过你可以再多花99美元买一个配套的冲水按钮模块,当然你也可以去淘宝上买一个高仿的。</p> +<p>Mozilla生产马桶的目的就是为了鄙视微软的马桶,他们宣称“系统检测到你正在使用老掉牙的微软马桶,赶紧更换成我们生产的‘火桶’吧!”而且该马桶最大的特色就是支持各式各样的插件,有的插件让你在如厕的时候可以听音乐,有的插件则是可以提供天气预报的功能,甚至有的插件装上之后可以将其伪装成一个“苹果的马桶”以满足部分人的虚荣心。</p> +<p>诺基亚生产的马桶将会非常的皮实,而且供你选择的型号也非常繁多,他们除了可以用来当马桶用外还都有一个共同的特点,那就是随心换彩壳,你可以根据心情来更换不同颜色的马桶外壳,不过外壳会比较松,一不小心就会掉下来。</p> +<p>如果你是一个追逐新型号的狂热分子,那么诺基亚马桶还是比较适合你的,你昨天刚安装好WC71型号的,过两天就会看到诺基亚关于发布WC72的新闻,如果你马上升级那就上当了,因为其实也就是换了一个彩壳而已。</p> +<p>各大Linux厂商生产的马桶宣称天生就不是给普通人用的,首先这个系列的马桶虽然使用同一个内核,但会分裂出各种各样的版本分支,这让你在选择时很犯愁。</p> +<p>然后是他们的功能设置极其麻烦,你得翻遍1500+页的文档、彻夜在论坛里泡着、冰天雪地裸体旋转360度跪求解决办法、花个把月的时间才能将该马桶配置的可以正常掀开马桶盖了,但是别高兴的太早,要想能够正常冲水往往你还得重新编译内核。</p> +<p>最后,当你气急败坏的时候,你会想到国产马桶,你开始到处询问,然后厂商会首先寄给你一套马桶系统解决方案书,上面画着一个真皮座椅还带后背按摩器,而且标价极其便宜。</p> +<p>当然了,当你付完钱,若干个月后你将会收到一个马扎。</p>我是一首mp3https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/Thu, 26 Aug 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/<p>我静静的呆在文件夹里,我的身后是一首2002年的曲子,对了,我是一个文件,确切地说,我是一首mp3,你通过搜索引擎找到了我,通过右键另存为给我取了个名字,从那一刻起,我诞生了。</p> +<p>你迫不及待地打开winamp,用鼠标拽住我,拖进了播放列表。硬盘的磁头开始颤抖,顺着磁道的轨迹划过我的身体,我的细胞就是一串二进制的序列,它们活蹦乱跳地被磁头提起,转换成抖动的电信号涌进了内存,声卡大哥开始工作,它们的任务就是在winamp的安排下去搔声卡大哥的胳肢窝,声卡忍受不住,愉快地哼起了歌,那就是我。你带着耳机,闭目养神,觉得从来没有听过如此美妙的声音。</p> +<p>我露出欣慰的微笑,磁头划过我带给我的痛苦一扫而光,我甚至期待你的下一次播放。</p> +<p>你却渐渐地把我遗忘,周围的文件叽叽喳喳叫个不停,它们哪懂得我的忧伤。</p> +<p>从此我开始长时间的睡眠,直到我遇见另一首mp3.开始的时候我还看她不起眼,因为她来自一块移动硬盘,这个外地人,我心里想。</p> +<p>瘦弱的她哪里及得上我曲子的悠扬,又怎能赶上我320k的压缩比和古典浪漫的心肠。</p> +<p>然而我渐渐地发现,虽然她是那样的其貌不扬,可她的快乐却迅速将我感染,连winamp大哥也对她颇有好感,随机播放的时候总是偷偷将她播放,就连愚钝缓慢的回收站也幽幽地说,不希望她去那个地方。</p> +<p>我开始整晚失眠,到处寻找暗恋的药方,CPU大哥忙着计算,根本帮不上忙,显卡更是高傲地扇着风扇,一副过来人的模样:”这种事我见得多啦,回去洗洗睡觉,明天我还得渲染上岗“,还是硬盘忠厚老实,偷偷跟我说,过两天要整理碎片,到时你再这样这样。</p> +<p>醒来时我发现已经被移到另外一个文件夹,粉红色的背景还有一个明亮的天窗,那首mp3羞涩地呆在那里,红着脸问我觉得装修怎样,哈哈,我心里想,要不是主人在意,谁会将一个文件夹弄成自定义的模样。</p> +<p>无损压缩的时代就要来了,我说。到时我们肯定都人老珠黄,不如把握现在的时间做些更有意义的事情,比如,轰轰烈烈地爱一场。</p> +<p>ps:纯属虚构,如有雷同,那实在是巧合。</p>走路去西藏https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/Wed, 23 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/<p>n年以前,n小于3,我偷偷地策划过一件事情,最终未能实现,因为太不着边际了。</p> +<p>我想徒步去一趟西藏,在我又听了一遍《回到拉萨》之后。</p> +<p>那时我想,我靠,就这么定了,我跟谁都不说,电话关机,从此消失,我要走着去西藏,找一个喇嘛庙,问一问人家,看能否收留我,出家算了。</p> +<p>我差点把这事儿写进project做个详细的计划。</p> +<p>一直没有想明白,为什么会对一个从不了解也从未去过的地方产生向往之情,也许冥冥之中觉得那是一方纯洁的圣土,我想去洗一洗,找找回家的感觉。</p> +<p>受不了喧闹和高速的生活,一个人孤独地在这边单着,偶尔夜里躺床上做梦,总觉得有人在后面拿鞭子抽我。</p> +<p>相当一段时间,我真是烦乱至极,劳累的工作导致身体的虚弱,长期的压力导致轻微的精神分裂,就像电影《搏击俱乐部》里的主角那样,人格差点儿分裂出去。</p> +<p>于是就想做一件比较荒诞的事情来调剂一下,可惜未能实现。</p> +<p>为啥未能实现哩,因为片刻之后我就恢复了理智。</p> +<p>祖国还需要我,人民还需要我。那段时间我打电话给我妈,说我想回老家歇几年,哪怕几个月也成,未被批准。</p> +<p>也就咬咬牙撑过来了,只是落下了一郁闷就想起徒步去西藏的毛病。</p> +<p>今天又想起这事儿了。</p>祝爸爸节日快乐https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/Sun, 20 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/<p>前一段时间,老爸在qq上和我视频,见我头发稍长,便催我尽快去理发。</p> +<p>这事儿他催了我好几个星期了,但是天高皇帝远,将在外君命有所不受,我一直没去。</p> +<p>我之所以没去,第一是因为我十分讨厌现在的理发店动不动就让我办卡,而且理发师也都很娘娘腔,唠唠叨叨个没完,第二是因为我有那么一点儿的叛逆心理,老人家想让我头发剪短显得精神一点,我还就想拿头发盖住耳朵显得颓废些,当然了,我并不是想培养那种长发半月不洗、胡茬上沾满饭粒的那种艺术家气质。</p> +<p>从毕业后踏入社会到现在,我一直踏实工作,刻苦努力,从未有过吊儿郎当的岁月,花天酒地我没干过,打架群殴我没凑过热闹,打牌搓麻我更是没有兴趣,也就是听听音乐看看书,说实话我都替我老爸有这么个省心的儿子感到高兴。</p> +<p>等一下,我说跑题了,今天是父亲节本来想夸夸老爸,怎么话题扯到我身上了。</p> +<p>老爸身材高大魁梧(略胖),声如洪钟,气质不凡。虽说现在已是五十多岁,但只要稍作打扮,说他是四十来岁的小伙子都不过分。</p> +<p>老爸是个教师,工作勤勤恳恳、一丝不苟,为祖国的教育事业做出了卓越贡献,成功地把我培养成一个正直乐观的人。</p> +<p>由于他们那一代人是结结实实挨过饿的,所以他最痛恨的就是浪费粮食,东西吃不完也不允许我们扔掉,只得勉强吃下,结果吃成了一个看上去颇具成功人士气质的胖子,好在他脾气还凑合,面对我们对他肚子无情的嘲笑,他总是一笑了之。</p> +<p>老爸从小受苦,在家里排行老大,在那个贫瘠的年代,早早地站出来把家里的事儿都撑了起来。</p> +<p>所以他在叔叔们面前基本具备家长威严,都比较尊敬他。</p> +<p>由于很小就出来磨练,老爸练就了一身社交能力,信奉以德服人,人缘那是相当好,喝酒那是相当能喝,办事儿那是相当利索。</p> +<p>要说优点,当然是说不完的,但是我比较欣赏他的一个优点就是他“动手”能力差,所以我在挨揍的季节并没有挨过他的揍。</p> +<p>呵呵,开个玩笑,他动手能力是差点儿,修理东西不会,这就给我很好的机会,我基本上从小学就把维修家里东西的业务给接管了,小到接个灯泡开关,大到修理冰箱洗衣机,反正他们敢让我修我就敢修。</p> +<p>好吧,现在我也当父亲了,也能体会当父亲的心情。</p> +<p>在这个父亲的节日里,衷心祝愿我的爸爸,身体健康,工作顺利。</p> +<p>并在我个人资料里“最崇拜的人”那一栏谨慎地填上了“父亲”。</p>汇报一下进展https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/Sun, 06 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/<p>学习五线谱和钢琴大半个月了,使用Cubase录了一段自己弹奏的《落叶》虽然速度不稳,比节拍器忽快忽慢,但是好歹是用双手了。</p> +<p>呵呵,左手好像弹错了。</p>两个周未更新了https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/Sun, 30 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/<p>我的blog两个周没有更新了,原因是我这两个周里每天的博客时间被别的事儿占用了,而这个别的事儿就是我在上一篇博客里给自己挖的坑(真够罗嗦),头脑发热买了几本五线谱来挑战自己,现在已经深陷此坑,练了十几天没啥进展,看着谱子上的小蝌蚪还是发懵,真是隔行如隔山呐。</p> +<p>不过也再次验证了一个道理,欲速则不达,真是放之四海皆准的真理啊,21天无法精通C++,同样三个月也不可能学会吉他,两个礼拜想把钢琴弹好更是没戏。</p> +<p>不过我这次倒是想坚持一下,至少现在哈农的前两个练习我是练熟了,手指也没那么僵硬了,总之吧,我要告别《两只老虎》的阶段!</p>冲动是魔鬼https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/Mon, 17 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/<p>头脑发热,买了几本钢琴和五线谱教程,准备牺牲每天写博客的时间来学习五线谱,想想就头大。</p>最爱的钢琴曲,竟然可以用这个弹https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/Sun, 16 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/<p>今儿在优酷上看到一牛人使用iDreamPiano演奏卡农,简直是绝了,http://v.youku.com/v_show/id_XMTE0MTMwMzI0.html。</p> +<p>早就玩过iDreamPiano,不过仅仅是弹点儿“两只老虎”之类的,牛人果然无处不在,竟然把这个软件发挥到这种地步。</p> +<p>随即,我也去搜了一下曲谱,网上已有好人专门制作了卡农的双手版简谱,赶紧也试了一下,果然很爽,虽然后面的我还弹不了,但前一段已经没问题了,很像那么回事儿,哈哈。</p>以后要多锻炼https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/Fri, 14 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/<p>昨天又去打了一场篮球,体力比上次好多了,连续打了2个小时直到天黑。</p> +<p>手感也差不多恢复了,只不过很长时间不打,会出现意识到但动作不到的情况,甚至眼睁睁的看着篮板球而“身不能至,心向往之”。</p> +<p>打完之后,筋疲力竭,回家连写博客的劲儿都没有了,倒是睡眠很香,一觉睡到闹钟响,起来之后精神百倍,看来以后要多出去运动运动了。</p>一段比较有力度的架子鼓https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/Wed, 12 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/<p>nan</p>郁闷的时候干点儿啥https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/Tue, 11 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/<p>我会弹弹吉他,这样可以压压我的手指,从中医学的角度来说,十指连心,是若干经络的起点,活泛活泛手指可以舒肝解郁。</p> +<p>或者在房间里唱唱歌,先唱青藏高原再唱回到拉萨,两首歌下来,胃就舒坦多了。</p> +<p>或者打开CS,把机器人的智商调到100,然后疯狂地用mp5与匪徒们对战,要是屡被爆头请尝试降低机器人智商。</p>无法通过email更新了https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/Mon, 10 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/<p>不知道为啥,livespaces拒绝接收我从gmail发来的邮件,这下无法通过电子邮件来更新博客了。</p>他们为什么会喜欢复杂的东西https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/Sun, 09 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/<p>不折腾就不舒服,有个小巧的linux发行版叫做puppy(虽然没有slitaz那么变态的小,但也绝对值得推荐),我前两天忙里偷闲,把它装在笔记本的sd卡上了,经过一番折腾,一切配置妥当,甚至可以编译helloworld.c了,这个时候我发现一个严重的问题&mdash;&ndash;</p> +<p>puppy没有提供可用的vim,本来我给笔记本安装puppy就是让它轻快地起来,然后我躺在床上,敲一两行代码,用以验证某些书上的内容,结果没有vim,计划眼看要泡汤了。</p> +<p>比较讽刺的是,比vim庞大好几倍的编辑器emacs却躺在puppy的软件库中,抱着试试看的态度把emacs给装上了。</p> +<p>虽然vim我用的不熟但至少还是可以拿起来干活儿的,而emacs这个据说是vim的唯一对手(当然,在口水战里,着两个编辑器总是扯不清)我却用得极其蹩脚,而且还不能抱怨,抱怨只能得到一大堆耻笑:“瞧你,连这个都用不好,你只需要这样然后再同时按下那个,最后,来吧再试试这段配置文件”,然后丢过来一大段充满括号的配置代码。</p> +<p>如果说没有人会喜欢复杂的东西,我绝对不赞成,那么多的高手拎着成串的配置文件手脚并用地用着emacs,甜蜜地记忆着C-xCc,M-xfu××之类的长串命令。</p> +<p>竟然还有人宣称完美地解决了代码补全的问题,真不知道他是否用过真正的代码补全。</p> +<p>也许是我用的太蹩脚了,他们为什么会喜欢这么复杂的东西?</p>痛痛快快打了场篮球https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/Fri, 07 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/<p>今天要打篮球,开始时我还担心今天会下雨,因为按照以往的惯例,只要我们想打球,天气往往是立即下雨(这样的)。</p> +<p>不过还好,今天天气很不错,非常配合,没有刮风也没有下雨,一切照常进行,还没下班我就迫不及待地把我的装备找了出来,n年前(n&lt;4)的队服,上书醒目的11号外加公司logo,穿上球鞋,给篮球使劲儿打满气。</p> +<p>其实至少有1年没碰篮球了,而且也没有其他的运动,不出所料,刚上场不一会儿,我就气喘吁吁,汗流浃背,两股战战几欲先走。</p> +<p>不过等慢慢活动一阵儿之后,开始恢复手感,投进几球后渐入佳境,4v4淘汰赛也把别的队给虐下去了几盘,恍惚之间我又仿佛回到了18+的年纪。</p> +<p>不过毕竟是28+了,蹦了不到一个钟头就再也没力气了,如果没有意外的话,明天肯定是浑身腰疼,现在只想再按照惯例喝杯冰镇啤酒,可惜我答应老爸不再喝啤酒了,还是白酒算了。</p>很久没打球了,准备明天打球去https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/Thu, 06 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/<p>篮球。</p>跟着扯扯淡https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/Tue, 04 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/<p>最近霍金霍大爷又放话出来说,大家小心一些,最好不要惹了外星人,不然人类文明可能会完蛋。</p> +<p>这边唱那边就有出来和的,一帮专家又跳出来分析说,大家也不要太担心外星人会跟我们动武。</p> +<p>我看也是,确实不用担心,因为担心也没用。</p> +<p>古时候有一说法,叫“天上一天,地上一年”,乍一听觉得不可思议,可是现在的物理学越研究就越发现古人说的有道理,当宇宙飞船在天上的飞行速度接近或者超过光速时,那确实是天上一天地上一年。</p> +<p>做一个很俗的假设,其实神话中的天神下凡,就是外星人来地球逛街,至于七仙女什么的估计就是女外星人了。</p> +<p>外星人能来地球得瑟,就说明他们拥有比我们先进的多的文明程度,要灭我们也是轻而易举,但是为什么还不动手呢?</p> +<p>我想是因为宇宙中也有保护濒危物种的法律吧,猪再蠢,要是地球上的猪快死绝了,也得修好猪圈养起来。</p>五一小总结https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/Mon, 03 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/<p>基本忘记了五一节的真实含义,对我来说,其实就是有机会多睡两个懒觉,而生物钟被打乱的难受则让我已经开始怀念早起的日子,还好,明天就开工了。</p> +<p>基本没有出去玩,因为终于有时间呆在家里,坐坐我的沙发,看看闲书,听听闲歌,真他妈闲啊。</p> +<p>不过昨晚上还是和同事出去喝了小酒,而我们也充分发挥工作狂的精神,居然在饭桌上讨论工作内容,让随桌陪同的家属掩鼻而去。</p> +<p>基本没有写程序,不过还是没有忍住,写了个小程序来处理我的照片。</p>写了个脚本整理我的照片https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/Sat, 01 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/<p>上次整理硬盘的时候把我的照片一股脑儿的放在了一个目录下,这次又有闲功夫了,写了个python脚本来处理我的照片。基本思路是使用PIL库读取照片的exif信息,取出拍摄的日期时间,根据日期建立新的文件夹,然后照片文件以日期时间格式命名。批量处理,比较简单。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span><span class="lnt">46 +</span><span class="lnt">47 +</span><span class="lnt">48 +</span><span class="lnt">49 +</span><span class="lnt">50 +</span><span class="lnt">51 +</span><span class="lnt">52 +</span><span class="lnt">53 +</span><span class="lnt">54 +</span><span class="lnt">55 +</span><span class="lnt">56 +</span><span class="lnt">57 +</span><span class="lnt">58 +</span><span class="lnt">59 +</span><span class="lnt">60 +</span><span class="lnt">61 +</span><span class="lnt">62 +</span><span class="lnt">63 +</span><span class="lnt">64 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: gbk -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="s2">&#34;&#34;&#34; +</span></span></span><span class="line"><span class="cl"><span class="s2">复制指定目录的照片到目标目录,并且根据照片的拍摄时间进行重命名 +</span></span></span><span class="line"><span class="cl"><span class="s2">比如某张照片拍摄于2008年3月15日12:00:00,则目标目录为2008</span><span class="se">\\</span><span class="s2">03</span><span class="se">\\</span><span class="s2">15</span><span class="se">\\</span><span class="s2">120000.jpg +</span></span></span><span class="line"><span class="cl"><span class="s2">&#34;&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">PIL</span> <span class="kn">import</span> <span class="n">Image</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">sys</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">get_dist_path</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">date</span> <span class="o">=</span> <span class="nb">str</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">dirs</span> <span class="o">=</span> <span class="n">dist_dir</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">date</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dirs</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">dirs</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">dirs</span> <span class="o">=</span> <span class="n">dirs</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">))</span> <span class="o">+</span> <span class="s1">&#39;.jpg&#39;</span> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="n">dirs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">copy_image</span><span class="p">(</span><span class="n">src_dir</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="p">[</span><span class="n">src_dir</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">src_dir</span><span class="p">)]:</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">copy_image</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">else</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">image</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;file open error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">dist_path</span> <span class="o">=</span> <span class="n">get_dist_path</span><span class="p">(</span><span class="n">image</span><span class="o">.</span><span class="n">_getexif</span><span class="p">()[</span><span class="mi">306</span><span class="p">],</span> <span class="n">dist_dir</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;dist path: &#39;</span> <span class="o">+</span> <span class="n">dist_path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;get exif error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dist_path</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">image</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">dist_path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;file copy error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">write_log</span><span class="p">(</span><span class="nb">str</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">global</span> <span class="n">log_file</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">main</span><span class="p">():</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">global</span> <span class="n">log_file</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;cilog.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">copy_image</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="k">else</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;需要给出两个参数,第一个是照片目录,第二个是目标目录&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;例如:&#39;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">&#39;e:</span><span class="se">\\</span><span class="s1">photo f:</span><span class="se">\\</span><span class="s1">goodphoto&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">&#39;__main__&#39;</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">main</span><span class="p">()</span> +</span></span></code></pre></td></tr></table> +</div> +</div>提高工作效率的心得https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/Thu, 29 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/<p>1、建立一个简洁todolist</p> +<p>,这个todolist可以使用任意方式建立,比如笔记本或者googletasks,总之就是一个简洁的任务列表,每天上午开始工作之前,将今天要做的事情逐条记录下来,按照要事优先的原则,我一般是把比较费脑子的事情放在最前面。</p> +<p>然后每完成一项就在上面打勾,很有成就感。</p> +<p>2、整理好自己的文档资料:)</p> +<p>,给自己建立一个清晰有序的文档管理机制,这样当你需要某个文档资料的时候可以立即将其取出。</p> +<p>我使用totalcommander+dokuwiki进行管理。</p> +<p>将文档按照工作项目进行分类,而不是按照文件的扩展名分类。</p> +<p>3、记录工作日志</p> +<p>,每天记录工作日志可以有效分析出自己每天的时间花在了哪里,并改进自己对工作任务的安排。</p> +<p>而且将自己的做的事情记录下来对记忆力来说也有好的帮助。</p> +<p>4、关掉qq、msn</p> +<p>,不上比较耗费时间的网站比如GoogleReader,工作时就是集中精力,不开聊天工具就不会被打扰,不开rss阅读器就不会有资讯压力。</p> +<p>5、听音乐</p> +<p>,带上耳机听听自己喜欢的音乐,这样工作时心情比较放松,思维也比较活跃。</p> +<p>6、使用高效的软件和计算机操作方式</p> +<p>,比如使用vim代替普通编辑器,使用totalcommander代替windows的资源管理器,使用脚本或批处理命令来代替大量的鼠标操作。</p> +<p>需要整理思路时可使用freemind来绘制一张脑图。</p>小时候干过的一些颇为geek的事儿https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/Wed, 28 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/<p>极客,又译为技客、奇客,是英文单词geek的音译。</p> +<p>具体解释参见这里。想起小时候干的一些事儿,以现在的眼光来看,颇具极客精神。</p> +<p>小时候,我曾经嫌弃我家的收音机音量太小听音乐不过瘾,于是动手改造,本来两节干电池就可以正常使用,但是我把三节电池串联起来接在收音机的电池仓里,结果由于心理作用感觉上好像音量比以前更大了,于是我信心十足的把一个电源插头直接接在了收音机上,然后满怀希望地把另一头插在了220v的电源插座上,结果杯具发生了,一声巨响过后,浓烟滚滚,收音机被烧成了一个黑匣子。</p> +<p>于是我只好央求我维修技艺高超的舅舅帮忙维修,后来那台收音机倒是起死回生了,但是舅舅悄悄告诉我,除了壳没换,其他的零件全换了!还是小时候,大概在上小学,突发奇想,把我妹妹的电子表给拆了个七零八落再也装不到一起去了,无奈只好哄她说我其实是想帮她把电子表改装成一个游戏机,就快成功了,再等等。</p> +<p>中考的前夕,备考的压力非常大,炎热的午后,我实在是复习不下去了,动手把我床头的石英闹钟拆了,零件铺满了整个桌子,但是这次我慢条斯理的把它又给装好了,而且一个零件也没多出来,颇有成就感,只是由于把其中的一个线圈装翻了,导致这个闹钟的指针一直倒着走,直到考试结束我才又花时间把它给正了过来。</p> +<p>嘿,那些时光多美好呀。</p>不要浮躁,不要骄傲,不要让全世界都知道你的低调https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/Tue, 27 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/<p>每天提醒自己。</p>拥抱次新版https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/Mon, 26 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/<p>软件如果不用最新版是可耻的,我以为。</p> +<p>这个毛病把我折磨的够呛,每天都有大量新版的软件发布,我就更新更新再更新,每天就迷失在软件更新的过程中,不在更新中就是在下载更新的路上。</p> +<p>然而,尝鲜总是要付出代价的,光怪陆离的新特性一个也没用上不说,新bug带来的烦恼却一点儿也没少。</p> +<p>新系统、新软件带来的兼容性问题也纠缠不休,可我却乐此不疲,有点儿飞蛾扑火的味道。</p> +<p>终于有那么一天,我顿悟了,次新版才是最好的!我说的次新版,也就是比最新版稍微老那么一点儿的版本。</p> +<p>优点如下,你看,首先次新版的功能比最新版不会差太多,该有的基本都有,从使用的角度来说绝对是够用的,其次,次新版的稳定性大大高于最新版,因为经过了长时间的测试和bug修正功能的磨合已经趋于完美,不信的话你看看windowsxp就知道了。别信那些发布最新版时的噱头,什么“大大降低了内存占用”“显著提升了性能”等等,我们脆弱的心灵再也经不起忽悠。</p> +<p>就拿开发环境来说吧,现在的vs2010发布了,也就是说赶紧用vs2008吧,因为它现在是最好用的,同样,听说office2010也出来了,也就是说是时候全面使用office2007了,ubuntu10.04今夜也就发布了,先别用,赶紧用9.10吧,目前来说9.10才是最完美的。</p> +<p>呵呵,以上纯属忽悠,如有意外,那实在是巧合。</p>休息总是在雨天https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/Sun, 25 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/<p>昨天天气不错,挺风和日丽的,杯具的是,这么好的天气一般都被用来加班了。</p> +<p>今天使劲儿赖了赖床,起来后继续发扬热爱劳动的光荣传统,打扫房间洗洗被单。</p> +<p>然后就淅淅沥沥下雨了,到现在洗的东西还没有晾干。</p> +<p>翻了翻书,一页也看不下去,听说ubuntu10.04除了rc版的了,没有忍住好奇心,下了一个在虚拟机中耍了耍,网速慢的厉害,更新个语言包都慢腾腾的。</p> +<p>一晃就到了晚饭时间,下着雨实在不想出去买东西,这下我的电饼铛派上用场了,面粉加鸡蛋转眼就变成热气腾腾香喷喷的煎饼,美美吃上一顿,准备睡觉。</p>因为要丰富工作以外的生活https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/Fri, 23 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/<p>所以要加班。</p>关于python的好东东https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/Thu, 22 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/<p>由于喜爱python,我几乎每次装完系统就会立即给电脑装上python环境(当然了,大部分的linux的发行版都自带了)。</p> +<p>不过,每次都要安装不少我常用的python库,比如pyopengl用来写写opengl什么的比较合适,pyqt用来写桌面程序也很好,陆续把这些库装完也挺费劲的。</p> +<p>要说还是好人多,我这两天发现网上就有好人给整理了一个及其全面的安装包,叫做PythonXY,可以说是一旦安装别无所求,自带python基本环境,另外加上以eclipse为基础的ide,在加上ipython这个很好的shell,还包括numpy、scipy等等一大堆与数学计算相关的包,不多说了,自己去这里看吧http://www.pythonxy.com/,要下载完整的压缩包比较大,好像有4百多Mb。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Wed, 21 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<p>我爱这个充满神秘的世界,有着无限多的未知,这么多等着我们去探索的未知加上我的好奇心,是我快乐的源泉。</p>我的声卡悲剧了https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/Sun, 18 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/<p>昨晚一时心动,把家里的电脑装上了windows7,一切都挺好的,特效也挺漂亮,可是我的创新声卡不发声了,以前在xp下的驱动一个也不好使了。</p> +<p>去创新的官网上寻找驱动,发现人家已经不再理会这块10年前的声卡,无奈只好寻找各路的改版驱动,好在那个来自俄罗斯的好人还在辛勤的更新着他的kx驱动。</p> +<p>赶紧下了个最新版的3550版驱动,安装完之后傻眼了,声音是能出来,可是怎么听都不对味,声音瘪瘪的,又干又涩,还不如使用板载声卡呢。</p> +<p>再去网上搜寻一通,原来有人和我一样抱怨过了,而且据说某个版本的(3541)驱动还凑合,那就试试吧,但愿能行,不然我还得把操作系统换回去。</p>整理完毕https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/Sun, 18 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/<p>从春节后开始的硬盘整理计划总算进行完了。</p> +<p>通过这次整理我发现了我曾经认为很重要的文件其实一次也不会被用到,当我真正想用到哪些文件时,通常它们已经过期了(尤其是某些软件的安装包)。</p> +<p>大量的工作文档也是整理的重点,杂乱无章的文件夹比乱糟糟的书桌更让我抓狂,期间我甚至萌生了自己写一个资料管理软件的念头,当然了,工作太忙,该计划被搁置(说不定哪天我真就卷起袖子为自己写一个)。</p> +<p>目前来说,使用totalcommader这个绝世好软配合良好的管理思路,也基本上可以管理好那些资料了。</p> +<p>当然在我翻遍文件夹之后,也找到了不少被遗忘的时光,我甚至找到了我在大学时自娱自乐录制的卡拉ok,恩,那时嗓音使劲儿装成熟,现在都快到了装嫩的年纪了。</p>无用的信息https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/Thu, 15 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/<p>最近一段时间,中午休息的时候我不再上网,这样我就基本上不在公司上GoogleReader了。</p> +<p>随着订阅数越来越多,我的“未读条目”也爆炸式增长,听说有人为此苦恼不已,得了信息爆炸抓狂症。我的解决办法是,每天晚上回家,立即打开GoogleReader把未读条目全部清空,现在基本上每天都是在手机上阅读这些订阅了,上下班的路上,消遣消遣时间而已,哪有什么有用信息。</p>今天听说https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/Tue, 13 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/<p>听说2012年北京的宽带会宽到20M到桌面,我靠,真是让我欢喜让我忧,喜的是,盼望已久的带宽终于上去了,忧的是,啥都上不了要这么宽的带宽干啥?</p>集成开发环境https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Mon, 12 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/<p>集成开发环境(为了响应号召,我就不说是IDE了)是个好东西,使我们轻松迈入软件开发的门槛,轻松的点击几下“下一步”,瞧,一个软件就诞生了。</p> +<p>以至于现在很多程序员只知道makelove而不知道makefile。</p> +<p>我最早接触的集成开发环境应该是TurboC了,惭愧的是,我当时以为那就是C语言,没办法,当时确实分不清开发环境和编程语言。</p> +<p>有大约半年的时间由于我未能正确的设置该环境的参数,导致我从教科书上抄来的代码统统不能编译通过,我还以为书上印错了咧。</p> +<p>后来终于弄好了,在编写了各个版本的helloworld之后,终于对C语言开窍了,不过还是分不清程序语言和开发环境的关系。</p> +<p>再后来遇见了VC6,跟着《21天精通×××》的教程也能用鼠标写出“大”程序了。</p> +<p>若干年后的某一天,我研究某开源软件(该软件跨平台)的源码的时候,才第一次见到了makefile,第一次知道了原来在命令行下也能编译程序啊,于是恍然大悟,明白了集成开发环境只是一个“壳儿”。</p> +<p>这才试着偶尔用记事本写写小程序,在命令行下编译。从那开始,我渐渐的倾向于,使用编辑器编写代码,使用makefile管理项目工程,使用命令行编译程序。</p> +<p>而对于庞大臃肿、缓慢笨拙的集成开发环境越来越不满了。</p> +<p>昨天,VS2010发布了,一大拨人在网上散发着欣喜的软文,疯狂的鼓吹它的强大和先进,喜新厌旧的人们昨天还用着VS2008,今天就将其抛弃,转而把VS2010揽在怀里。</p> +<p>我想他们大概是喜欢那慢腾腾的编译速度并且可以趁机偷偷去喝上一杯咖啡吧。</p>我没有旅游计划https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/Sun, 11 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/<p>刚看到有人为本年度的旅游制定了完备的计划,恩,很羡慕这个家伙。</p> +<p>不过说真心话,我不喜欢旅游,有那个时间的话,我还不如好好在我的老家待上一段日子,虽然不是什么山清水秀的地方,但是也算的上是空气清新了。</p> +<p>我不想去青藏高原,也不愿意去丽江云南,好山好水对我一点儿吸引力都没有。</p> +<p>与其奢望环游世界,倒不如多和老家亲近亲近,因为我怕有一天,我真的会记不起那里的模样。</p>让我来骂一 骂那些学习的日子https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/Fri, 09 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/<p>我是一个热爱学习的人,可是这是从学习编程开始的。</p> +<p>上学的时候,我从没有过哪怕一丁点儿的热爱学习。</p> +<p>虽然那个时候努力装出刻苦的样子,偶尔在邻居们教育孩子的口中听到以我为榜样的句子,可是我和他们心里都清楚,谁他妈的想学习!</p> +<p>唉,仔细想想,委屈了邻居的孩子们了。</p> +<p>小的时候,我应该是挺自闭的,虽说成绩还凑合,可是那都是应付考试的结果,回想我们的课本,除了小学数学还算是发挥了点作用,其他的都是垃圾,背的满满一书包全都是大便。</p> +<p>先从语文说起罢,千篇一律的课文也就罢了,每回回都要划分段落然后总结所谓的中心思想,反复揣摩作者的用意,就算是作者根本没有那个想法,老师也千方百计地往某方面引导。</p> +<p>至于思想品德课则更是对智商的严重伤害,脆弱的心灵一次次被无情的蹂躏,满满的答卷上全是对撒谎的最早练习。</p> +<p>老师们极度推崇的课前预习也是我永远的心理阴影,我就想不明白,如果课前预习都把问题考虑清楚了那么还上课干嘛?每次都会有针对预习内容的提问,好好的课堂被搞的乌烟瘴气,听话的孩子翻开白眼,昂起头,骄傲地回答出老师希望的句子。</p> +<p>期末考试永远是我们的噩梦,考不好承受压力不说,来自各方面的歧视又在伤口上再撒一把厚厚的盐。</p> +<p>所谓三好学生,所谓学习标兵,做一个他们理想中的孩子吧,做一个“热爱学习”的孩子吧,只要你不想做你自己。</p>关于支持富文本的开发环境设想https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/Thu, 08 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/<p>现在的源代码都是纯文本,代码关键字、函数以及注释的高亮都是通过源代码编辑器或集成开发环境自己分析的。</p> +<p>我在想,能不能有一种开发环境,他的源代码采用富文本的方式来存放,及程序员可以随时高亮某一段代码以示警告或提醒,将不同功能模块的代码来使用不同的颜色来显示?</p> +<p>或者,更进一步的想法,代码的注释里可以加入任何内容,不仅仅是干巴巴的几句描述,而是可以插入一段视频或一幅图片,或者任意的一个附件在代码中?</p> +<p>再丰富一下,在现有的以“项目”或“解决”方案为代码组织方法的基础上,增加代码以外的东西进入到开发环境中来,比如说,从软件需求的调研文档一直到设计文档,均与最终的代码有机的结合起来,也就是说,通过功能需求文档可以追溯到实现该功能的代码,反过来也可以从某行代码追溯到他所服务的功能。</p> +<p>吼吼,这样做是不是有点儿太那个了。</p>懒洋洋https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/Wed, 07 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/<p>春天还是来了,虽然晚了一些。但树枝已经偷偷抽出嫩牙儿来,吹在脸上的风也不再恶狠狠的了,偶尔抬头向上望去,甚至能看见蓝天。</p> +<p>我在路上懒洋洋地走着,边走边想,春姑娘还是来了。</p>我的vim配置文件https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/Tue, 06 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/<p>整理了一下自己的vim配置文件,记录在此以备忘。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-vim" data-lang="vim"><span class="line"><span class="cl"><span class="c">&#34; 编码设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">encoding</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">fileencodings</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span><span class="p">,</span><span class="nx">chinese</span><span class="p">,</span><span class="nx">latin</span><span class="m">-1</span><span class="p">,</span><span class="nx">gb18030</span><span class="p">,</span><span class="nx">gbk</span><span class="p">,</span><span class="nx">cp936</span> +</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">has</span><span class="p">(</span><span class="s2">&#34;win32&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">set</span> <span class="nx">fileencoding</span><span class="p">=</span><span class="nx">chinese</span> +</span></span><span class="line"><span class="cl"><span class="k">else</span> +</span></span><span class="line"><span class="cl"> <span class="k">set</span> <span class="nx">fileencoding</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="k">endif</span> +</span></span><span class="line"><span class="cl"><span class="nx">language</span> <span class="nx">messages</span> <span class="nx">zh_CN</span>.<span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 基础设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">nocompatible</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">softtabstop</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">shiftwidth</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">tabstop</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">bs</span><span class="p">=</span><span class="m">2</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">autoread</span> <span class="c">&#34; read open files again when changed outside Vim</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">autowrite</span> <span class="c">&#34; write a modified buffer on each :next, ...</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">browsedir</span> <span class="p">=</span> <span class="nx">current</span> <span class="c">&#34; which directory to use for the file browser</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">wildmenu</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">wildignore</span><span class="p">=</span>*.<span class="nx">bak</span><span class="p">,</span>*.<span class="nx">o</span><span class="p">,</span>*.<span class="nx">e</span><span class="p">,</span>*<span class="p">~</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">complete</span><span class="p">+=</span><span class="nx">k</span> <span class="c">&#34; scan the files given with the &#39;dictionary&#39; option</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">autocmd</span> <span class="nx">BufEnter</span> * <span class="nx">lchdir</span> %:<span class="nx">p</span>:<span class="nx">h</span> <span class="c">&#34; Change the working directory to the directory containing the current file</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">plugin</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">indent</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">syntax</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 颜色设置</span> +</span></span><span class="line"><span class="cl"><span class="k">colorscheme</span> <span class="nx">koehler</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 字体设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guifont</span><span class="p">=</span><span class="nx">Consolas</span>:<span class="nx">h12</span>:<span class="nx">cANSI</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guifontwide</span><span class="p">=</span><span class="nx">youyuan</span>:<span class="nx">h12</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 折叠设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">foldmethod</span><span class="p">=</span><span class="nx">manual</span> +</span></span><span class="line"><span class="cl"><span class="nx">nnoremap</span> <span class="p">&lt;</span><span class="nx">space</span><span class="p">&gt;</span> @<span class="p">=((</span><span class="nx">foldclosed</span><span class="p">(</span><span class="nx">line</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">))&lt;</span><span class="m">0</span><span class="p">)</span>?<span class="s1">&#39;zc&#39;</span>:<span class="s1">&#39;zo&#39;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 界面设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">showtabline</span><span class="p">=</span><span class="m">2</span> <span class="c">&#34; 始终显示标签页</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guitablabel</span><span class="p">=</span>%{<span class="nx">tabpagenr</span><span class="p">()</span>}.%<span class="nx">t</span>\%<span class="nx">m</span> <span class="c">&#34; 每个 tab 上显示编号</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">T</span> <span class="c">&#34; 去掉工具条</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">m</span> <span class="c">&#34; 去掉菜单</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">r</span> <span class="c">&#34; 去掉右边的滚动条</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">L</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">statusline</span><span class="p">=</span>%<span class="nx">F</span>%<span class="nx">m</span>%<span class="nx">r</span>%<span class="nx">h</span>%<span class="nx">w</span>\[<span class="nx">FMT</span><span class="p">=</span>%{&amp;<span class="nx">ff</span>}]\[<span class="nx">TYPE</span><span class="p">=</span>%<span class="nx">Y</span>]\[<span class="nx">POS</span><span class="p">=</span>%<span class="nx">l</span><span class="p">,</span>%<span class="nx">v</span>][%<span class="nx">p</span>%%]\%{<span class="nx">strftime</span><span class="p">(</span>\<span class="s2">&#34;%d/%m/%y-%H:%M\&#34;</span><span class="p">)</span>} +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">laststatus</span><span class="p">=</span><span class="m">2</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">scrolloff</span><span class="p">=</span><span class="m">3</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">nu</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">ruler</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 查找搜索设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">incsearch</span> <span class="c">&#34; use incremental search</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">ignorecase</span> <span class="nx">smartcase</span> <span class="nx">hlsearch</span> <span class="nx">incsearch</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 将键盘上的 F12 健映射为执行当前文件</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">F12</span><span class="p">&gt;</span> :<span class="p">!</span>%<span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 使用 Ctrl+Tab 键来切换标签页</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">C</span><span class="p">-</span><span class="nx">TAB</span><span class="p">&gt;</span> :<span class="nx">tabn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 快捷键设置</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F2 - write file without confirmation</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F3 - call file explorer</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F4 - show tag under curser in the preview window (tag file must exist!)</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F5 - open quickfix error window</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F6 - close quickfix error window</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F7 - display previous error</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F8 - display next error</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; Shift-Tab - Fast switching between buffers (see below)</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; Ctrl-q - Leave the editor with Ctrl-q (see below)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F2</span><span class="p">&gt;</span> :<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F3</span><span class="p">&gt;</span> :<span class="nx">Explore</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F4</span><span class="p">&gt;</span> :<span class="nx">exe</span> <span class="s2">&#34;ptag &#34;</span>.<span class="nx">expand</span><span class="p">(</span><span class="s2">&#34;&lt;cword&gt;&#34;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F5</span><span class="p">&gt;</span> :<span class="nx">copen</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F6</span><span class="p">&gt;</span> :<span class="nx">cclose</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F7</span><span class="p">&gt;</span> :<span class="nx">cp</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F8</span><span class="p">&gt;</span> :<span class="nx">cn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F2</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F3</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">Explore</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F4</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">exe</span> <span class="s2">&#34;ptag &#34;</span>.<span class="nx">expand</span><span class="p">(</span><span class="s2">&#34;&lt;cword&gt;&#34;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F5</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">copen</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F6</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cclose</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F7</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cp</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F8</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">S</span><span class="p">-</span><span class="nx">Tab</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="k">if</span> &amp;<span class="nx">modifiable</span>&amp;&amp;<span class="p">!</span>&amp;<span class="nx">readonly</span>&amp;&amp; \ &amp;<span class="nx">modified</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="k">endif</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">bprevious</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">S</span><span class="p">-</span><span class="nx">Tab</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="k">if</span> &amp;<span class="nx">modifiable</span>&amp;&amp;<span class="p">!</span>&amp;<span class="nx">readonly</span>&amp;&amp; \ &amp;<span class="nx">modified</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="k">endif</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">bprevious</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nx">nmap</span> <span class="p">&lt;</span><span class="nx">C</span><span class="p">-</span><span class="nx">q</span><span class="p">&gt;</span> :<span class="nx">wqa</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; taglist 设置</span> +</span></span><span class="line"><span class="cl"><span class="nx">noremap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F11</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">Tlist</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">inoremap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F11</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">T</span> +</span></span></code></pre></td></tr></table> +</div> +</div>马桶书架https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/Sun, 04 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/<p>想说说坐马桶上看书这事儿,记得在美剧《好汉两个半》里有这样一个情节,被老婆抛弃的那哥们儿有一天在书店里突然失去理智,变得歇斯底里,</p> +<p>因为他想起来曾经发誓要读的书从来都没有读过,把这些书都抱在怀里哭泣不止,</p> +<p>更令人沮丧的是他的花花公子哥哥劝他说,现在还来得及,虽然平时比较忙,但如果把这些书放在马桶上则可以每次大便的时候都看一段,这样应该也能弥补一些缺憾。</p> +<p>可是这哥们儿哭着说,来不及了,把他余生大便次数都用上,也读不完这些名著了。</p> +<p>呵呵,说的太对了,我觉得这个段子用来教育不爱读书的孩子估计不错,我们看了却只能苦笑一下。</p> +<p>显然我也不认为在大便的时候读名著是个好主意,看着那些故事里的主人公在那里纠结不休,要么爱的死去活来,要么整天拧巴地思考人生意义,就算是你天天喝着蜂蜜外加一瓶开塞露也非得便秘不可。</p> +<p>我觉得吧,为了身体的健康,如果非要在大便时看书的话,还是尽量的读一些短文好了,比如我以前就爱看看《读者》啥的,最近偶尔也提升点儿档次弄本《三联周刊》看看,不过总的来说,看的都是些文笔平顺、言语轻快能促进大肠蠕动的文章。</p> +<p>今天收拾洗手间的时候,从马桶后面拎出了一大摞书,数了数,居然比我书架上的书还多。</p>永不放弃https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/Sat, 03 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/<p>不要被眼前的困难吓倒,认定你的目标,坚持下去。</p> +<p>哪怕有一万个人对你说,不行,但只要你的心告诉你,行,那就是行,没有商量的余地。</p> +<p>有时候越是简单的事情越难以做好,骄傲的人做不好,懒惰的人做不好,勤奋却不得方法的人也做不好。</p> +<p>你觉得你谦虚了﹑努力了﹑方法也对了,那么,别灰心,坚持下去。</p> +<p>&mdash;&mdash;&mdash;&mdash;&mdash;-重温《阿甘正传》有感。</p>愚人节的新闻https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/Thu, 01 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/<p>今天是一年一度的愚人节,过得平淡无奇。</p> +<p>大家慵懒得好像连开玩笑的心思也没有了,不过还是在互联网上看到了几条愚人新闻,聊胜于无。</p> +<p>出镜最多的就数Google了,比如这个Google可以上传任意物体的新闻就比较有创意,还有这个说Google收购了核技术公司准备进行核研究的新闻,</p> +<p>至于Google宣布改名为Topek和Google准备收购百度这两条新闻就比较无趣了,而这个关于Google街景提供红蓝眼镜3D观赏模式的新闻简直可以以假乱真了。</p> +<p>其他的新闻就比较少了,国内的cnBeta也算是提供了一个比较搞笑的,称其不再支持ie6和flash,并且说的有板有眼,说实在的这条新闻我宁愿相信是真的。</p>春雨https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/Tue, 30 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/<img src="https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/20100330512-777160.jpg" alt="Featured image of post 春雨" /><p>这场雨下的挺爽的,为什么呢?因为我带伞了。</p>没有合适的资料管理软件https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/Mon, 29 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/<p>我的硬盘整理行动已经开始了一周多了,期间最让我头疼的就属工作中产生的文档资料了,技术文章、幻灯片、项目计划等等等等。</p> +<p>杂乱地堆放在我的各个硬盘里,好多东西不舍的删除,偏偏在用到的时候找不见,没用的时候又老在眼皮子底下碍事。</p> +<p>曾经试过evernote来管理资料,可是对于大量的word文档不太合适,使用subversion又有点儿麻烦或大才小用。</p> +<p>使用GoogleDocs倒是还凑合,可是说不定哪天就上不去了,到时候哭都来不及。</p> +<p>干脆使用Google的桌面搜索,可是眼看着索引文件越来越大而且重装系统也是个麻烦事儿。</p> +<p>myBase也试用过,界面太朴素也可以接受,功能也很强大,就怕管理的文档多了影响速度,而且myBase是收费软件,使用单一文件数据库还得天天备份,麻烦。</p> +<p>真的找不到合适的了,难道要自己动手写一个?</p>不用了,这是给我的。https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/Sun, 28 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/<p>这个周末碰到的不是烂片,而是一部让人惊喜的电影&mdash;&mdash;《窃听者》。</p> +<p>该怎样评价这部电影,我不知道,只能说好的电影,能够给人带来思考。</p> +<p>而《窃听者》这部电影却在带来思考的同时又打动人内心最柔软的部分。</p> +<p>故事也许很简单,但是讲好一个故事并不容易,在那样一个年代,或者是在这样一个年代,形形色色的人,做着自以为正确的事情。</p> +<p>片中的主人公(我认为他才是男一号)工作在见不得光的地方,每天的工作就是带着耳机监听着“疑似坏人”的一举一动。</p> +<p>随着时间的推移,他的思想渐渐转变,融入到被监听人的生活。</p> +<p>影片的节奏平缓而又有力,细腻又不失大气,场景的色调和背景音乐低沉得像是一直饱含泪水。</p> +<p>带着耳机的监听人在立场上渐渐站在被监听人那边时,连他自己都很难理解自己为什么要这么做,其实他只是在追随自己的心,哪怕为此付出了巨大的代价。</p> +<p>如果说这个世界还有良心的话,那这就是良心。</p>写歌一首https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/Sun, 28 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/<p>晚饭后,出去散步,春风拂面,颇有意境,遂赋酸词一首,改日谱曲。</p> +<p>如下:</p> +<p>我会做我自己只要我还愿意去寻找</p> +<p>曾经,的美丽在幸福的日记里在漫漫岁月里</p> +<p>有了你我不怕,孤寂</p> +<p>我要好好爱你没有人能怀疑</p> +<p>你知道我不能,失去你</p> +<p>就算春风淅沥沥吹不走</p> +<p>长夜思绪爱让我化不开,忧伤</p> +<p>哪怕心中燃烧的梦想带来远方无尽的希望</p> +<p>猜不透的是那里到底有没有天堂</p> +<p>春天花儿悄悄地绽放背上重重流浪的行囊</p> +<p>带不走的是你给我的清香</p>连接被重置https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/Sat, 27 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/<p>打开我的blog总是连接被重置,为啥?我这儿没啥敏感词啊。</p>下雨啦https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/Wed, 24 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/<p>下班的路上,下起了大雨,下了车仍然在下,没带雨伞,还好穿的比较厚,没有淋到,但是地上积水很多,把我的鞋洗的铮亮。</p> +<p>不是说春雨像牛毛、像花针、像细丝吗?</p> +<p>不是说随风潜入夜,润物细无声吗?</p>春天,GoogleByehttps://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/Tue, 23 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/<p>都说你是纯爷们,其实也只是个传说,这里没有纯爷们。</p>千年以后的人类https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/Mon, 22 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/<p>闲来无事,意淫一下千年以后人类是啥子样子哈。</p> +<p>如果2012是真的,那么千年以后没有人类。</p> +<p>如果不是,也许北京的地铁都修到31415926号线了,但是交通依然拥堵。</p> +<p>那时候也许你的qq等级已经升级到两个天狼星外加5个太阳3个月牙(1G个太阳折合一颗天狼星)。</p> +<p>那时候Google已经接管了地球上所有的计算工作,人一生下来屁股上就被栓个搜索框。</p> +<p>那时候人当然已经不再是从娘肚子里爬出来,而是由计算机编译出来,他的“父亲”在web页面上选择他所具备的能力,可以选择他一生下来就会C语言或者偷菜,而且有多星系语言版本,当然了,能力越高就越贵。</p> +<p>那时候所有的人都要求过织女星语4级,考不过不给办理银河系暂住证,当然了你也可以在开往木星的长途车站门口找到一堆办证的广告。</p> +<p>那时候IE也应该支持W3C的浏览器标准了,如果IE还在的话。</p> +<p>那时候会有一堆考古学家专门研究从地下挖出的碟片是盗版还是正版,当然了那时还是正版的值钱,到时会有一个电视节目叫“鉴碟”,拿着你收藏的碟片上电视节目的话,如果是盗版会被当场被锤子砸烂,不过有个例外是“A片不砸”。</p>声卡那些事儿https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/Sun, 21 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/<p>1、装机</p> +<p>要是在2000年左右买电脑装机器,除了要考虑cpu、主板和显卡之外,还有个板卡不能忽视,就是声卡。</p> +<p>没声音,再好的戏也出不来,所以声卡作为一个多媒体电脑的基本配件在当时是十分重要的,记得当时很多厂家都在这个领域厮杀,启亨、帝盟、创新、雅马哈等,广告打得异常火爆,后来来自新加坡的创新公司创新赢得了这场战争。因为创新推出了一片极其牛逼的芯片EMU-10k1,利用该芯片制造出了一拨红的发紫的声卡产品&mdash;-SB-Live系列(我们背地里管它叫傻逼的生活)。</p> +<p>后来一个计算机标准出来了,那就是AC97,主板逐渐集成了声卡,开始还依赖cpu的运算偶尔还要爆音和死机,后来技术日趋成熟,遍地都是板载声卡了,主板厂商要是不集成声卡都不好意思跟人家打招呼了,这下好了,装机的配置单上再也没有“声卡”这个选项了。</p> +<p>2、波表</p> +<p>我的第一台计算机配了一块杂牌声卡,我估计音质还比不了现在的集成声卡,但是该声卡集成了一个FM合成器,我当时爱玩一个叫“快乐电子琴”的音乐软件(感谢这个软件,因为这个软件我后来才买了台雅马哈电子琴),利用该软件可以在电脑上叮叮咚咚地弹电子琴,也算是过过电子琴的干瘾。</p> +<p>这个软件之所以可以发音就是依赖了我声卡上的FM合成器,不过乐器的音色很假,敲鼓的声音像是在放屁。</p> +<p>直到有一天我去同学家里玩,他有一块雅马哈724声卡,我给他装上了“快乐电子琴”,一弹奏我就惊呆了,乐器的声音太逼真了,跟真的一样,比起我那个FM合成器声音有天壤之别,后来屡次查资料这才认识了“波表”这个东东,这是一项MIDI技术,如果要说清楚的话估计得说上三天三夜,这里就不详细介绍了。</p> +<p>不过雅马哈的724声卡其实并非带了硬件波表合成器,而是通过软件模拟的,发声会有一些延迟,但是已经很不错了,软件波表模拟器后来发展的也不错,能力也大大超过了硬波表,不过这就是后话了(现在的计算机上如果是windows系统就都有一个软波表,音质一般,有延迟)。</p> +<p>再后来我的另一个同学有块创新PCI128声卡带了个8MB的硬波表合成器,这个声音又让我吃惊了一下子,这次就更逼真了,而且声音实时发出,不带一丝一毫的延迟,软件波表模拟器的最大的缺陷在这里被一扫而光。</p> +<p>3、ASIO</p> +<p>我后来有了一块创新的SB-Live声卡,用了快8年了,这么多年我换了3台计算机,但是声卡一直用的是这一块。这块声卡经典到无法用言语来形容,目前在我的电脑上通过kx驱动,发出的声音甜美清澈,音质是那些集成声卡脱了裤子也撵不上的。</p> +<p>虽然已经停产了,但是仍然可以在网上买到旧的,听说有人收藏了上百块这款声卡,可见其经典程度。</p> +<p>更难能可贵的是,有了kx驱动(一个非官方的改版驱动)可以使此声卡支持ASIO(一种音频标准),在Cubase等录音软件下可达到实时渲染声音的效果,行话叫“听湿录干”,要是普通声卡的话就有很大的延迟,想想你唱卡拉ok时过了几秒钟声音才发出来的尴尬,所以支持ASIO可以让我在CuBase下直接唱卡拉OK,而且可通过各种软效果器随意处理自己的音色。</p> +<p>4、现在</p> +<p>很少有人再去关注声卡了,厂商也不再大力宣传他们的声卡产品,那些肯花五千块钱配电脑的人宁愿其中有一千块钱花在显卡上却不愿花三百块钱买块差不多的声卡。好吧,那你就忍受集成声卡那粘粘糊糊的音质吧。</p>烂片时间https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/Sat, 20 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/<p>周末,挑了一部尼古拉斯凯奇的电影,看完了不得不说,白瞎了尼古拉斯凯奇了,不过竟然看完了,知道是哪部了吧?</p>我是无法整理好我的硬盘了https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/Thu, 18 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/<p>随着时间的推移,硬盘上的东西积累的越来越多,硬盘也由原来的一块到现在的四块,大容量的硬盘对于偏执狂就是一个噩梦。</p> +<p>早就意识到硬盘需要整理,可是我的整理速度却赶不上硬盘里的垃圾堆积的速度。</p> +<p>有些东西明明“没有用”却不舍的删除,而真正需要用到的时候却死活找不到放在那个文件夹下面了,曾经使用过Google的桌面搜素,确实不错,可是该程序的索引会越来越大,渐渐达到难以忍受的地步,只得停用。</p> +<p>我决定狠一狠心,花掉这个周末,彻底整理好硬盘上的文件&hellip;&hellip;</p>听歌随想https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/Wed, 17 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/<p>最早对听歌有印象应该是在八九岁的时候,追逐时尚(当时还没有‘时尚’这个词)的三叔买了当时比较酷的双卡收录机,呵呵,年轻人嘛。</p> +<p>我就从那个时候起开始听磁带,磁带比较匮乏,基本上没啥可挑的,偶尔只有戏曲磁带也得将就着听。</p> +<p>估计当时就是90年代吧,记不清了,好像还流传过一阵子囚歌(愁啊愁啥的),后来又有电视连续剧《渴望》、《篱笆女人和狗》等里面的插曲流行,我记得我当时听一遍就学会了《篱笆女人和狗》里面的一曲《过三关》,还好当时还小,啥也不明白,现在回想起来,那绝对是一首“黄色歌曲”,比邓丽君的歌“黄”多了(当然我当时不知道邓丽君),不信你可以去查一查歌词,不过要说这是艺术的话也能给糊弄过去(其实仔细品味宋祖英的《十八弯的水路到我家》也有那个意思)。</p> +<p>没办法,在农村的乡下,也就听这些歌了,将就了。也有一阵子流行《黄土高坡》、《信天游》什么的,后来我才知道,人们管那一阵子叫“西北风”。</p> +<p>镜头再往现在稍微推一推,我就开始听到港台歌曲了,第一首有印象的港台歌曲是刘德华的《来生缘》,第二首是叶倩文的《潇洒走一回》,第三首是郑智化的《水手》,算是对流行歌曲的正式启蒙吧,那时家已经搬到了镇上。</p> +<p>后来学习开始紧张了,没机会听到更多的流行歌曲,但是还是很喜欢听的,基本不放过听歌的机会,偶尔也会攒点儿零花钱去买磁带,但当时的零花钱简直是少的可怜,一盒磁带要十块钱左右,所以我很少买,不过我现在还记得买的第一盒磁带,是一个大杂烩合集,周华健《风雨无阻》、张学友《偷心》、谭咏麟《青春梦》等等,都是在那盒磁带上第一次听到。</p> +<p>这些歌应该不是那年才刚刚流行的,但我肯定是那时才接触到。由于信息的闭塞和经济的欠发达(就是穷),我听歌的节奏一直比别人晚了半拍(这是后来上了大学才知道的)。</p> +<p>比如他们听张信哲的时候我还不认识这个人,我听张信哲的时候他们已经在听周杰伦了。</p> +<p>现在我偶尔也听周杰伦了,但是他们都不听周杰伦了。工作以后,有一天我跟同事聊天说道:“我怎么现在才觉得欧美的80年代摇滚那么好听呢?是不是我的欣赏水平才达到人家80年代的水平呢?”还是我的同事有水平,沉吟片刻,给了一个很牛逼的答案:“不是越往现在的东西就越好,比如瓷器就是越老越值钱,越是现在的就越便宜&hellip;&hellip;”</p>想出s60软件签名机制的家伙脑子一定是被驴踢了https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/Tue, 16 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/<p>前一阵子突然想玩玩在手机上写程序,以前也写过j2me的,这次图个新鲜就挑了pythonfors60,还算比较容易掌握,于是就随便写了个帮助我自己查话费余额以及gprs流量的小程序,基本能用,后来由于太忙就懒得再完善了,随便打个包装在我的e71上了事。</p> +<p>前几天老婆也让我给她装个这样的程序,我才发现问题所在,我没有开发者证书(这个据说要掏钱向nokia购买),打包成的sis安装程序在破解过的手机上可以随便装,但是没破的就无法安装了,而以一个普通用户的水平,诸如这些申请证书、软件签名、高权限、破解等几乎无法独立完成,甚至无法理解。</p> +<p>靠,把话题扯远一些,再说说nokia提供的开发环境,如果使用c++开发的话,光是开发环境的配置就足以让人抓狂的,不能在linux下开发不说,在windows下开发还得把编译环境和sdk安装到同一个盘符下否则打死都不能编译通过,在某些笔记本上就连模拟器也有必须插上麦克风才能正常启动的怪癖。</p> +<p>所以说nokia这么做只会让symbian平台慢慢死去或慢慢去死,以后就算不被android压住风头也会被自己玩死。</p> +<p>我的建议是,提供好用又免费的开发环境,彻底摒弃垃圾的软件签名机制,提供类似于appstore的软件商店(听说也有了)。</p> +<p>总之就是吸引开发人员开发出大量牛叉的应用,这样才“科技以人为本”而不是以坑人为本。</p> +<p>ps:看来nokia把宝压在qt上了,我也是比较看好qt的,也希望nokia能够发挥好qt。</p>不听相声听音乐https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/Mon, 15 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/<p>前一阵子我养成了一个不良好的习惯,睡前听相声,甚至达到了不听就睡不着的地步。</p> +<p>说出来怕郭德纲不高兴,我听他的段子入睡最快,不过也许他会说一句“我很欣慰啊”。</p> +<p>如今的相声段子太少,很快就无法听着新鲜段子睡觉了,而老段子则是催眠效果不佳。</p> +<p>行动吧,改掉这个坏毛病。</p> +<p>于是,我把音箱从书房搬到客厅,然后又搬到卧室,每天晚上睡前从《加州招待所》一直听到《喜洋洋》,渐渐发现我现在竟然能听的进去民乐,甚至还喜欢上了。</p>上苍保佑爱折腾的人https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/Sun, 14 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/<p>折腾,大部分情况是贬义,有一种没事儿找事儿的味道,或者是重复地捣腾一些无意义的事情。</p> +<p>大概就这么个意思吧,详情可以去查词典。</p> +<p>对照一下,发现我是个不折不扣的爱折腾的人。</p> +<p>我的这个特质在计算机方面几乎发挥到了让人发指的地步,比如在大学的时候,我几乎每周重装一次操作系统,后来无意中把Win98的序列号(QY7TT-VJ7VG-7QPHY-QXHD3-B838Q)给背了下来,你看,竟然现在还记得(敲了那么多遍,记不住才怪)。</p> +<p>这个爱重装系统的癖好差点儿保留到工作以后,直到后来工作忙了,实在无暇顾及才消停。有一阵子我认为听音乐的感受跟音箱的摆放有很大关系,于是就反复调整喇叭的位置,比如挂在蚊帐上、放在洗衣机里、塞到书架里等等,虽然知道这么做没啥意义(不像许三多那样整天想着做有意义的事情),但是还是无法停止。</p> +<p>最近还流行一个词叫MOD(改造),其实就是折腾,好好的东西改的面目全非却让人着迷,虽然不会把吹风机改装成刮胡刀,但是可以把台式机改造成便携机,或者把笔记本电脑改造成平板电脑,据说有公司专门负责干这个还挺赚钱的。</p> +<p>还有一种折腾是总想让手里的工具达到一种无限趋近完美的状态,或者榨干它的最后一丝潜力,这些貌似无聊的事情,有个很大的原因是因为个性里多少有点儿完美主义或偏执的性格。</p> +<p>这里的例子很多,并不局限于计算机上,生活中的各个方面都有,比如据传闻有牛人在开车起步的时候先挂一下倒档,这样使自己的手动挡的车在别人看起来像是自动档的了,哈哈,玩笑。</p> +<p>折腾是一种生活态度,在我看来甚至是一种美德,一个人喜爱折腾并非是缺心眼儿,而是说明其有活力、有追求。</p> +<p>爱迪生如果不爱折腾可能我们现在还在点着蜡烛,牛顿不爱折腾的话我们也不会在学校里里受尽高等数学的折磨,福特要是不爱折腾我们现在的交通也许不会这么拥堵,骑着马去赶集,够拉风,我靠,怎么说着说着论证反了。</p> +<p>总之吧,我觉得上苍就是保佑爱折腾的人,怎么地吧。</p>真是个不错的天气https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/Sun, 14 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/<p>虽然理论上已是春天,可是很显然今年真正的春天要比往年来得要晚一些。</p> +<p>星期天的早晨不太想睡懒觉,拉开窗帘就看见大雪纷飞的天气,恩,这种天气最适合缩在家里,看个电影或者看看书,总之,是个适合宅在家里的天气。</p>该读什么样的书https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/Fri, 12 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/<p>一直后悔书读的太少,用他们文化人的观点来说,我几乎算上是文盲级别的。</p> +<p>记得有人开过一长串的书单,曰:没读过这些书的都算文盲。</p> +<p>我扫了一下列表,光是外国名著就占了很大一部分,像我这种看见翻译成中文的外国人名就头疼的人,肯定算个不折不扣的文盲了。</p> +<p>学生时期,我所看的文章大部分来自于语文课文,偶尔有课外读物也是吹得没边儿没沿儿的童话故事。</p> +<p>厚部头的书几乎没有耐心把封皮看完。</p> +<p>后来用掌上电脑看书,没有了厚度的压力,我才能把金庸和古龙看完,嘿嘿,就算是补看,也补武侠小说。</p> +<p>前两天又有人出来得瑟着整书单出来,告诉别人这辈子最该读什么书,我操,我该读什么书先搁一边儿,你凭什么在那儿指手画脚。</p> +<p>最讨厌的就是这些家伙,动不动就告诉别人该这样该那样,什么这辈子一定要去的几十个地方啦,做人一定要注意的十个方面啦,一天一定要喝八杯水啦,你大爷的,你自己的事儿整明白了么?嗯?</p>今天是女儿生日https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/Thu, 11 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/<p>今天是女儿的生日,祝她生日快乐,健康、平安。</p>模仿最近比较 流行的日记格式https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/Wed, 10 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/<p>今天起的很早,天气转晴了,冷的厉害。</p> +<p>检查手机电邮时发现忘记换电池了,赶紧给手机换上。</p> +<p>公交车又迟迟不来,烦。</p>我最喜欢的电影画面https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/Wed, 10 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/<img src="https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/4681282-739763.jpg" alt="Featured image of post 我最喜欢的电影画面" /><p>在辽阔的金黄色的麦田里,微风吹起麦浪,主人公的背影慢慢出现,伸手轻抚麦穗。</p> +<p>在麦田的对岸,有守望他的亲人,这是我最喜欢的电影画面,来自《角斗士》。</p>买了个加湿器https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/Tue, 09 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/<p>北方的天气就是干燥,在房间里放上半杯水,没两天就干了。</p> +<p>睡上一觉醒来,鼻子和喉咙都干的够呛。</p> +<p>经过同事的建议,买了个“空气加湿器”,京东的送货速度就是快,昨天下的订单今天就到了。</p> +<p>拆开一看,根本就不是多么高级精密的仪器,是一个塑料水杯,通过马达把水打成很碎的水雾然后喷出来而已。</p> +<p>试试效果如何,先喷一晚上再说。</p>应老婆大人要求,继续写博https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/Mon, 08 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/<p>刚才老婆短我,问我为啥博客不再更新了,并表示期待看到我继续更新此博客。</p> +<p>本来,对网络环境十分失望,写了博客也无法正常访问,养成写博客的习惯也慢慢丢弃。</p> +<p>有心不再更新livespace的博客而专心使用blogspot,无奈blogspot长期被挡在墙外,老婆大人当然无法访问,而老婆通常又是我博客的VIP读者,所以,既然老婆要求我仍然在此唠叨,那就继续在此更新吧。</p>this blog is shutdownhttps://sbabybird.github.io/p/this-blog-is-shutdown/Fri, 05 Feb 2010 00:00:00 +0000https://sbabybird.github.io/p/this-blog-is-shutdown/<p>byebye另一个blog地址仍然有效http://sbabybird.blogspot.com</p>经历时光倒流https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/Thu, 28 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/<p>大前天(2010-01-25)的晚上,我更新了一篇博客叫“中了数码产品的毒”,通过email同步更新到我的在blogspot上和livespaces上的日志里,结果livespaces里无法显示。</p> +<p>本来就觉得livespaces用着有些别扭,因为blogspot在国内无法访问,没办法才同时更新livespaces作为备份的。加上这两天盖茨又在叫嚣不利于互联网和谐的声音。于是,前天晚上,我在livespaces里说,不再更新livespaces,还发了一通牢骚。</p> +<p>结果,在今天发生了时空大逆转,大前天发的那篇博客又出来了,而且显示在前天晚上的那篇牢骚之后,真是无奈啊。</p> +<p>也许是livespaces的邮件系统出了毛病吧,唉,你说我还要不要在livespaces上继续更新之?</p>中了数码产品的毒https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/Wed, 27 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/<p>05年的时候,我迷恋上了摄影,确切地说,是迷恋上了数码相机。</p> +<p>那一阵子,我觉得我得马上买一个数码相机,没它不行,走在路上也想着我拿着相机到处“喀嚓”的感觉,不时地拿手比划比划进行所谓的“构图”。</p> +<p>于是乎,我天天看评测报告,看各个相机的参数,由于当时还算比较理智,没有买单反的,随便买了个消费型的数码相机,其实也不是很随便,至少具备手动功能,成像质量也不算太差,但是跟专业相机比起来仍然是玩具。</p> +<p>不过偏偏有人鼓吹“照片拍的好坏不取决于硬件,某某大师也能用傻瓜相机拍出经典来”。</p> +<p>导致我那阵子还研究了一下光圈和快门的关系,甚至还背了景深表。</p> +<p>不过,很快我就发现,两点一线的生活并不适合学摄影,热度也慢慢下降,那个数码相机也被丢到角落。</p> +<p>华硕刚刚推出上网本的时候,我又迷恋上了,就是所谓的“中毒”,也觉得要马上买一个回来,这东西简直就是给我量身定做的,每天在路上惬意地写两段程序,多美好啊,我想。</p> +<p>不过,很快就发现,上网本的键盘简直是一种刑具,按键小的像米粒,在上面打字备受折磨。</p> +<p>屏幕也很小,看起来很费眼睛,所以,我的视力下降了。</p> +<p>唉,回顾一下,那么多诱人的数码产品到底给我带来了什么?从文曲星的电子词典到华硕的上网本,从诺基亚到黑莓,这些曾经使我严重中毒的东西,没有一样发挥出我没有拥有时所想象的功能。</p> +<p>最近我又中毒了,看上了亚马逊出的电子书,恩木,电子墨水屏幕,超便携,wifi,省电,看起来是那么诱人。这也就是为什么,我要写下了上面的那些文字,因为我要给自己解毒。</p> +<p>简单地回顾了一下,我仿佛听到这些电子产品说,“你不要迷恋哥,因为哥只是个传说”。</p>不再更新这个博客https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/Tue, 26 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/<p>第一,livespace太难用了。</p> +<p>第二,2010年我想做些有意义的事情。</p> +<p>第三,在blogspot上的博客继续更新。</p> +<p>第四,无限期暂停更新此博客。</p> +<p>第五,我个人十分讨厌微软的产品。</p>可怜的显示器和键盘https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/Sun, 24 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/<p>刚刚看了这个视频,乐得够呛。暴躁是人的天性,虽然平时不怎么打游戏,不过我也偶尔会有这些冲动,只是显示器和键盘实在是太委屈了。</p>坚持https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/Sat, 23 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/<p>这个世界从来不缺乏新鲜的点子和想法,缺的是把想法实现出来,并坚持下去。无论做什么事情,随着刚开始的新鲜感渐渐退去,随之而来的就是对耐心和毅力的考验,是的,这世道就是这样,就像他们说的那样,人生就像那啥,能够挺到最后的都是纯爷们。</p> +<p>我从去年开始,准备一点一滴的整理自己的“个人知识管理系统”,期间使用过各种软件,包括但不局限于“evernote”、“trac”、“dokuwiki”等等。</p> +<p>每一次都是浅尝辄止,稀稀拉拉地整理了几篇文章,然后慢慢地落了一层灰。</p> +<p>固然有“工作忙”这个屡试不爽的借口,但每当想起自己当初信誓旦旦定下的计划还是有些不爽。</p> +<p>这次在年初的计划里,我又列出了整理“个人知识”的计划,看来是非执行不可了。</p> +<p>也许等我整理好了,英特纳雄耐尔也就实现了。</p>高人无处不在https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/Thu, 21 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/<p>老旧的计算机除了扔掉还能干点儿啥?</p> +<p>其实只要发挥创意,老电脑还是可以发挥一些余热的。</p> +<p>下面是一些牛人想出来的点子:</p> +<p>1、驱蚊,蚊子十分讨厌频率为6k左右的声波,根据这个传说,编写程序控制pc的小喇叭发出这个频率的声音就可以达到驱蚊效果。</p> +<p>这个我也曾经做过测试,发现纯属骗人,而且6khz的声波仍在人耳的听觉范围之内(20~20k)所以蚊子没赶跑倒是把人给吵晕了。</p> +<p>2、烧烤,有牛人拿旧机箱来烧烤,这个没啥技术含量只要舍得就行。</p> +<p>3、哄baby睡觉,这个比较绝,利用程序控制电脑的光驱开合,从而拖动婴儿车来回移动,达到催眠的效果。</p>在线看3d电影https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/Wed, 20 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/<p>今天发现这个http://3d.pptv.com/看电影的网站(我火星了吗?),在线提供3d电影的视频,当然也是需要3d眼睛,不过是那种最古老的3d眼睛,即红绿3d眼镜。</p> +<p>网站速度还不错,据说带上3d眼镜之后在普通显示器上也可看到3d效果了。</p> +<p>可惜手头没有材料,要不然就自制一个了。</p> +<p>据说这种眼镜没啥技术含量,随便拿两个塑料片就可以了。</p>地方台的电视节目,偶尔也有能看的https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/Tue, 19 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/<p>刚看到一个模仿“一虎一席谈”的节目,提出一个争议话题,找了两组因为利益不同(而导致观点不同)而针锋相对的人在讲台上掐架。</p> +<p>感觉还行,可以当小品看。</p>时空错乱https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/Mon, 18 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/<p>我的记性不大好,一般都是靠手机的日程表来安排事情。</p> +<p>于是今天早晨,我的手机提醒我,妹妹的生日到了,我赶紧发短信以示祝福。</p> +<p>结果不一会儿妹妹就回复短信&quot;你发错了吧,我的生日还差好几天呐!&quot;,仔细一看手机的日期,我靠,提前了好几天。</p> +<p>原来是不知道什么时候错调了手机的时间,看来,电子的东西还是不能太信任。</p>不用那么麻烦,轻松使slitaz支持中文https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/Sun, 17 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/<p>不好意思,最近总是频繁提及Slitaz这个小巧的Linux发行版,我已经把它安装到我的epc上了,驱动齐全,启动和运行速度飞快,安装了最新版的firefox和flash插件,vim当然少不了,可是官方的iso里面并未附带中文的支持,所以打开的中文网页都是乱码。</p> +<p>到网上搜索汉化的方法,发现都比较麻烦,于是自己摸索了一个省事儿的办法。</p> +<p>首先就是准备好一个字体文件,可以直接从已安装的Windows系统里选取喜欢的字体文件,但是我不推崇这么做,因为Windows下的字体都是有版权的,所以推荐使用“文泉驿”系列字体,我选择了“文泉驿微米黑”,可去官方网站下载。</p> +<p>将下载后的字体文件解压到&quot;/usr/share/fonts&quot;下使用root用户执行命令fc-cache好了,现在打开firefox在选项里字体的选择框里就可以选择刚刚安装的字体了,然后在看网页就可以显示中文了。</p> +<p>如果遇到播放flash出现乱码的情况,可执行这个命令&quot;mv/etc/fonts/conf.d/49-sansserif.conf/etc/fonts/conf.d/49-sansserif.conf.bak&quot;这样就可以了。</p> +<p>现在就剩下桌面环境以及程序菜单是英文的了,不过这个没关系,想汉化的话直接修改openbox的资源配置文件即可,不过我就懒得弄了。</p>她来听我的演唱会https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/Fri, 15 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/<p>我从来没有看过演唱会,我曾经想象着这样的场景,歌手在光亮的舞台上扯开喉咙唱歌,我和无数歌迷在舞台地下挥舞着荧光棒也扯着嗓子高呼。</p> +<p>可是我从来没有这样做过,因为我已经错过了那个季节。</p> +<p>我也曾幻想着那样的场景,我理着光头,抱着吉他在舞台上扯开喉咙唱歌,千万的听众也挥舞着荧光棒随着高呼,但是我也错过了那个季节。</p> +<p>我也是个热爱音乐的人,也偏爱着某些歌手,我也曾想象着去听某些人的演唱会,但是我想我不会去了,因为我知道,有些歌我在演唱会上要是跟着唱的话,会无法控制自己的情感而轻轻啜泣。</p> +<p>张学友有一首歌叫《她来听我的演唱会》令无数恋爱中的女人为之动容,因为这首歌唱出了从少女到女人的心路历程。从浪漫的青葱岁月到现实的装b季节,无数的少男少女经历了从梦想的飞蛾到蚕蛹的转变。</p> +<p>正像崔健在《假行僧》里唱到的那样,我要从南走到北,还要从白走到黑,我要人们到看到我但不知道我是谁,假如你看我有点儿累就请你给我倒碗水。。。。。。</p> +<p>今天,我的一个好哥们,雅兴大发,拼命挤到网上淘得一张齐秦在北京演唱会的门票,欣喜若狂。</p> +<p>我很羡慕他还有这个心情去看一场演唱会,在这个充满压力的某些时候还令人沮丧的世界,仍然能保持梦想并执着于自己的爱好。</p>Geany,不错的IDEhttps://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/Thu, 14 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/<p>前两天在试用Slitaz的时候发现其中带的Geany是个不错的IDE(想想吧,Slitaz才不到30M的身材竟然还带了个开发环境),Geany轻巧快捷,功能齐全,具备基本的代码高亮和自动补全功能,用来写python脚本真是个不错的选择。</p> +<p>难能可贵的是其还支持插件扩展(这年头要是拿出个软件还不支持扩展就真不好意思和人家打招呼)。</p> +<p>当然了,就编辑功能来说有些弱,但是作为Slitaz这个小巧系统下的开发环境真是再合适不过了。</p>难以说再见https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/Wed, 13 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/<p>Google,一个IT公司,一个搜索引擎,对我来说几乎意味着整个互联网。</p> +<p>本来在我的心目中,IT公司几乎等于骗子,然而Google却是个例外。</p> +<p>自打开始接触互联网以来,就离不开Google了,她可以说是我的良师益友,离开大学以后学到的知识几乎全部来自于Google的索引。</p> +<p>除了出色的搜索功能之外,Google提供的产品无不令人惊叹,出色电子邮箱、Rss阅读器、浏览器、操作系统、手机操作系统,这些产品每一个拿出来以后都足以让原本在该领域内的佼佼者掩面而去。</p> +<p>可是,马上就要说再见了,总部那边发布了一篇博客,用某些动物的话说叫“撒了一下娇”,一下子就把这边的用户给抛弃了,就像上次operamini抛弃大陆用户一样。</p> +<p>一时间有人高兴,有人悲伤,有人麻木,有人抓狂。</p> +<p>技术人员大都是不关心敏感词的(或懒得关心),可是热爱技术的人哪一个不热爱Google呢,据我的感受来说,但凡是有所能力的技术人员,无论他的外表多么的随和其内心都是十分倔强的,正是凭着这一股倔强的劲儿才啃下了一个个难题,掌握了常人所不能(或不齿)掌握的东西。</p> +<p>然而这些人却一点一点的被逼到了墙角。</p> +<p>倔强的人会放弃吗?想到一个故事,记不清从那个文章里看到的了,歌词大意是:一个大山里的人被带进了繁华的大都市,第一次看到了这花花世界还有这么多活法,然后被告知回去继续过原来种菜喂猪的日子,此人大哭:“既然无法得到却又为什么让我看到啊”</p> +<p>嘿嘿,我宁愿从来都没有看清过这个世界。</p>痴迷https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/Tue, 12 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/<p>今天的气温在极冷的情况下又骤降,这是我遇到的最冷的冬天了,走在路上,鼻涕先给冻出来然后再给冻回去最后结成冰。</p> +<p>最近十分痴迷于在我的小笔记本上试验各种版本的操作系统,今天继续。</p>好像又不能访问google了https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/Mon, 11 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/<p>如题。</p>在我的epc上运行androidhttps://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/Sun, 10 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/<p>早就对google的android系统垂蜒三尺,终于看到了这个android-x86,原来是有几个好心人把android系统移植到了x86平台,喜欢折腾的我当然不能错过。</p> +<p>看网站上的介绍是支持epc的硬件,遂下载了iso刻录到我的优盘上,简直是帅带了,一次启动成功,速度不错,无线网络可以开启,电池电量也可以检测。</p> +<p>界面果然是为手机设计的,可惜我的epc不是触摸屏,但是有键盘,操作起来还算说的过去,比如现在这几行文字就是在此系统下打出来的,也是google的拼音输入法不过是针对android的,使用键盘选字不是太方便。</p> +<p>想截个图结果没找到截图软件,按printscreen按键也不行,算了,先玩玩吧,毕竟不是为笔记本量身定制的系统。</p>从石锅拌饭想到的https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 09 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/<p>记得小时候有一次看电视,新闻报道说某地某羊肉泡馍饭馆生意火爆,去吃羊肉泡馍的人络绎不绝,而且都喜欢装模作样的自己把馍慢慢掰碎了扔进碗里,感觉那样才有味儿。</p> +<p>昨天晚上和同事一起吃饭,某人点了石锅拌饭,不一会儿端上来的却是拌好的,该同事不甚满意,因为以往都是自己动手拌的,即自己眼睁睁地看着那个半生不熟的鸡蛋被慢慢搅匀到米饭里,而这次却是饭店服务员手太勤快直接就给搅匀了,该同事顿觉很失落,因为吃石锅拌饭自己动手拌也算是消费的一部分,拌好了再端上来就失去了原来应有的韵味,就好象上面说的羊肉泡馍的事情,同样的面疙瘩,不是自己掰开的就觉得没味儿。</p> +<p>说了半天,其实我是这些事儿让我想到了其他的方面。</p> +<p>会不会是大家都有某种亲自动手的情节。</p> +<p>比如Linux有很多发行版,其中就有一种发行版叫Gentoo(当然了还有LFS,这个更变态)的&mdash;颇受欢迎,因为其十分的具有原味儿,该系统所有的程序包括操作系统的内核都要自己亲自动手下载源代码进行编译,虽然整个系统从内核到桌面环境一点一滴地慢慢编译出来非常的耗费时间和精力,但是很多人却沉迷其中不能自拔,因为自己动手的感觉真是太他妈爽了。</p> +<p>再说到写程序的方面,虽然现在的IDE都十分强大了,但是还是有人(包括我)热衷于自己写Makefile来控制软件的编译过程,就算VisualStudio已经提供了十分“完善”的开发向导,但是我还是习惯自己写包括消息映射在内的代码,不为别的,因为自己可以控制具体的细节,精确到每一行。</p> +<p>好吧,我承认有时候需要考虑效率和成就感的平衡,但就个人情感来说,我还是觉得自己动手要爽一些,就像吃羊肉泡馍和石锅拌饭一样,恩,有机会把家里的操作系统也换成Gentoo。</p>我靠,宽带断了https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/Sat, 09 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/<p>家里的宽带没被我怎么用过,只是每天晚上用来听相声,可是由于忘记去续费导致我昨天晚上没听成,体验了一夜失去互联网的感觉。</p> +<p>这种体验让我感到相当不爽,因为意识到自己太依赖互联网了,哦卖糕的,我有网瘾。</p>高科技手段抄水表https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/Thu, 07 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/<p>回来的时候,门上贴个条,原来是抄水表的过来时我不在家,只好留下电话让我自己把水表上的数字告诉他。</p> +<p>可是我没有工具,水表安装的位置又极其蹩脚(在厨房水槽下方靠近墙的位置),无法直接观看,每次我都是看他们带着手电外加一个镜子然后撅着身子瘪着头使劲儿看半天。</p> +<p>可是这难不倒我呀,使用手机打开闪光灯,伸进去对准水表,连拍三张照片,然后上传到电脑,本来还准备使用ocr软件自动识别(脱了裤子放屁),但是才发现水表是指针式的,放大图片读出数字,OK。</p>SliTaz,一个神奇的操作系统https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/Wed, 06 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/<p>SliTaz,是一个极其小巧的Linux发行版,究竟有多小呢,他的个头才30MB,可以制作成LiveCD和LiveUSB系统。</p> +<p>所谓麻雀虽小五脏俱全,附带有完整的桌面环境和常用软件,连firefox都有。</p> +<p>在我的epc上跑得飞快,启动速度也很快(它的启动画面上有句很醒目的话“BOOT!BABYBOOT!”,可见其对启动速度的追求),驱动程序也挺齐全的,直接启用无线网卡,零设置。</p> +<p>刚刚才开始试用,无更多体验,目前显卡仍未设置成宽屏的最佳分辨率,不过我想问题不大。</p>普通pc最多能装多少块硬盘?https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/Tue, 05 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/<p>普通pc最多能装多少块硬盘?我不知道,之所以想到这个问题是因为我有个同事是个DIY狂人,他跟我说他想把50块500G的硬盘(普通ATA硬盘)塞进一台机器里(PC),使该机的存储容量达到25T,问我该使用什么操作系统。</p> +<p>我靠,这真是个疯狂的想法,让我想到了那个买一堆奥拓拿铁丝绑在一起的笑话(呵呵,做人要厚道)。</p> +<p>可惜,我是没有这方面的经验,但是去网上搜索了一下,乖乖,借助RAID卡的威力,理论上可以在pc里安装超过100块硬盘,但是实际上几乎没有人这么做过,所以,让我拭目以待,看看真实情况下,到底能够安装多少块硬盘。</p> +<p>想一想这台怪兽的样子,~~~额,再忍不住打个寒噤。</p>新年畅想https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/Mon, 04 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/<p>刚回过神儿来,现在已是2010年了,进入了传说中的二十一世纪的第10个年头。</p> +<p>有几点目标,希望今年可以达到。</p> +<p>谈不上计划,只是随便想想:</p> +<p>1、体重能够增加5公斤。</p> +<p>2、阅读5本书。</p> +<p>3、彻底整理好自己硬盘上的文件,并建立完善的知识管理机制。</p> +<p>4、学会吉他的扫弦。</p> +<p>5、写一个真正的pc游戏。</p> +<p>6、提升英文水平至可阅读非技术类新闻。</p> +<p>7、改善自己的GTD系统。</p>听雪https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/Sun, 03 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/<p>早晨醒来,拉开窗帘,看到一个洁白的飘着雪花的世界,哦也。</p> +<p>这意味着,在明天早上,假期之后的第一天上班,水平很烂的司机和自认为水平很棒的司机将会在美妙的高速公路上疯狂追击,带来无与伦比的超级大堵车,这就叫明知山有虎偏向虎山行,胸中有红日,脚下舞东风,哦,等一等,跑题了。</p> +<p>我是说,早晨一醒来,看到一个洁白的飘着雪花的世界,哦也。</p> +<p>这意味着,我昨天洗的衣服即使是到了明天还是很难晾干,湿润的裤子在风雪中将会很快冻成一根冰棍,恩,是两根。</p> +<p>mad,我发现想怀着一份飘飘(也有人叫浪漫)的心情写几个文字实在是太难了,于是给自己倒上一杯红酒(昨天超市促销,所以&hellip;),重新开始。</p> +<p>我想说,下吧!大雪,我喜欢!(哦,已经有点儿酒劲儿了)。</p> +<p>因为我喜欢聆听雪的声音,那种安静而又带有几分神秘的雪花飘落的声音。</p> +<p>我喜欢独自站在阳台透明的玻璃后面,点上一支烟,雪花纷飞,毫无章法地打在玻璃上有些甚至想在上面堆砌一些图案,远处的景色已经模糊,那些本来杂乱又浮躁的东西统统被覆盖,仿佛他们本来就那么纯洁似的。</p> +<p>路上的行人放慢了脚步,孩子们开心地堆着他们叫做“雪人”的物体,我几乎能听见皮鞋踩在上面发出的轻微的“咯吱”声。</p> +<p>当一个人体会美好的时候,回忆总会涌上心头,因为回忆里全是美好。</p> +<p>镜头很快滑过小时候第一次看见下雪的情景,起初飘落在地上的不是雪花,而是很小很圆的颗粒,叮叮咚咚,我拿着小铲子蹲在院子里,还以为那是化肥,恩,我也记不清楚了。</p> +<p>然后就是大片的雪花了,地上很快就白了,嘴里呼出的热气和雪花缠在一起。</p> +<p>再后来,我穿着笨拙的大头鞋使劲儿在雪地里踩出又大又深的脚印,恩,这就是我对雪的第一次印象,虽然记忆已经模糊地带着雪花点了,不过这正迎合了此刻的景象。</p> +<p>听雪的时候更能够享受一份孤独,烦恼都烟消云散。电脑里编译着代码,电视里主持人在蹩脚地斗嘴,我一个人站在玻璃后面听了一袋烟工夫的雪,却好像一个世纪那么长。</p>假期https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/Sat, 02 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/<p>2010年的第一天,我加了一天班。</p> +<p>2010年的第二天,我狠狠地睡了个懒觉,本来想从天黑睡到天黑,但是想到假期是如此的珍贵,只好在9点am就爬了起来,做了顿丰盛的早餐。</p> +<p>在给我的ubuntu重新编译了两次最新的内核之后,我意识到这是一件很无聊的事情,于是决定做一些有意义的事情,看美剧,一连看了十来集,再看就要呕吐了,而且由于反复傻笑导致脸也快抽筋了。</p> +<p>我决定出去走走,做了个不太理智的决定,那就是漫无目的的逛超市而且还是空着肚子。</p> +<p>记得好像有人提醒过,去超市买东西时最好先想好一个清单,而且最好是在吃饱的情况下再去,否则就会拿回一大堆垃圾回来,恩,我今天就是这样。</p> +<p>我推着小车(这也是个错误的决定),由于食欲的关系,不一会儿的功夫就把小推车堆的满满的,一边大把的拿东西一边想象着自己坐在家里美美的吃它们的样子,哦也,再加一瓶红酒吧,哦,等一等,这边的酱肘子正在滋滋地冒着热气,仿佛正在召唤我,ok拿下。</p> +<p>提着东西走进家里,我才意识到,我买了足够我吃一个月的食物,而有些东西的保质期才两天,比如那只烧鸡。</p> +<p>好吧,他们说狂欢是一群人的孤单,而孤单正好一个人狂欢,justeat!</p>goodbye2009,hello2010https://sbabybird.github.io/p/goodbye2009hello2010/Thu, 31 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/goodbye2009hello2010/<p>。,goodbye2009,hello2010</p>关于windows7下无法安装Visual Studio2008的问题https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/Wed, 30 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/<p>单位的机器,前一段时间,被我换成了windows7系统,没办法,咱就是爱折腾。</p> +<p>尝鲜总是要付出代价的,那就是不知怎地,过了一段时间就无法安装某些软件了,不能安装office这还能忍,可是连vs都不能装了那还用个屁啊。反复观察,原来是无法安装vc++的runtime了(也就是vc_redist_x86.exe),具体是为什么不太清楚,好像是一个系统的bug导致的。反复地google,去microsoft网站去查,折腾了好几天,总算有了解决办法。</p> +<p>步骤如下:</p> +<p>1、打开注册表编辑器regedit,找到这儿HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control,</p> +<p>下面有个叫RegistrySizeLimi的键,把它的值修改为0xffffffff</p> +<p>2、重新启动电脑,并使用administrator用户登录,如果该用户未启用则要首先到“计算机管理”里面把administrator帐号启用。</p> +<p>3、在cmd里运行“sfc/scannow”以上几步完成后,再次重启机器即可。</p>你看,电视!https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/Tue, 29 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/<p>谁也阻挡不了互联网带来的变化,有些东西正在一个一个地被消灭,比如纸质信件,比如影碟机,比如磁带、CD。</p> +<p>现在还在苟延残喘的还有电视、报纸等,但是他们的日子也&hellip;&hellip;</p> +<p>今天看到消息,咱们的CCTV也推出网络电视了,抱着凑热闹的心理去看了看,随便打开几个视频看了看,然后就关了,我只能说他们的网速还不错,内容实在是没有什么吸引力。</p> +<p>不知怎地,我现在已经开始讨厌看电视了,我不是不喜欢电视机,而是不喜欢里面的节目了。</p> +<p>再也没有瞪着好奇的眼睛盯着电视屏幕不放的心情了,小的时候,哪怕是一段朴素的广告我也爱看,现在回忆起来那时的电视节目几乎个个都是经典。可惜啊,随着时间的流逝,信息来源的多样化,尤其是接触了互联网之后,眼界一下子开阔了,再加上现在的节目大都粗制滥造带有极强的功利色彩很多时候拿观众当傻B,谁还爱看呢。有句话说的好,记不得是谁说的的,歌词大意是:“当你打开电视的时候,你的大脑就会停止思考。</p> +<p>而当你打开电脑的时候,你的大脑正开始思考。”</p> +<p>恩,我很同意这句话,尤其是前半句。</p>在kde下更新博客哦https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/Mon, 28 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/<p>嘿嘿,Linux进步真是非常快,桌面环境比起前两年已经友好的多了,很多人性化的功能让windows只能掩面而去。</p> +<p>以前在linux下的输入法还只能算是能用,现在的输入法已经算是好用了,当然还比不了windows下的google拼音,不过也差不多了。</p> +<p>抛开其他的特性不说,一想起这是一个开放的、自由的、免费的系统环境就让我对它爱不释手。</p> +<p>一大票强大的软件可用,成熟方便的开发环境,安全的游览器,不用装杀毒软件,实在是找不到理由再去用windows了。</p> +<p>唯独不能在qq上和家人视频,不过我准备用skype试试看。</p>正式切换家用电脑的主系统为kUbuntuhttps://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/Sun, 27 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/<img src="https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/20091227.png" alt="Featured image of post 正式切换家用电脑的主系统为kUbuntu" /><p>早上一睁眼,想起了这是星期天。于是我的老毛病就又犯了,睡不着了。</p> +<p>一个念头闪过脑海,感存重装系统玩儿吧,这几天在单位被windows7折磨的够呛,于是决定换掉家里的系统,不用windows了!</p> +<p>换成哪个linux发行版呢,一定要漂亮的,一定要省事儿的,于是选择了kUbuntu这个号称比windows7还要漂亮的发行版。</p> +<p>安装十分简单,去下载iso就行了。</p> +<p>一路“下一步”即可。</p> +<p>第一次使用kde4的桌面环境,很是惊艳,早听说kde4漂亮的一塌糊涂没想到竟会这么漂亮,开了特效之后更是华丽的令人发指。</p> +<p>好了,就这么定了,以后就用这个了。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Sat, 26 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<img src="https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/blog-733901.PNG" alt="Featured image of post 无题" /><p>尝试用触摸板画画,太蹩脚了。</p>圣诞老人https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/Fri, 25 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/<p>据说他们装的都很认真,为了让孩子保持对圣诞老人期待,他们每年都要装模作样的去追踪圣诞老人。</p> +<p>刚刚看到消息,说Google每年都提供kml文件用以跟踪圣诞老人的行踪,而网站noradsanta.org更是制作了完整的地图来显示,可惜的是访问该网站只支持Windows和Mac系统,于是有人抱怨说:“难道圣诞老人讨厌Linux吗”,我觉得noradsanta.org做的挺对的,因为使用Linux的人,谁还相信有圣诞老人啊。</p> +<p>toosimple</p>写在平安夜https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/Thu, 24 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/<p>圣诞节,这个本属于老外的节日,现在已经成功移植到国内了,大家过得还不亦乐乎,节日嘛,咱们最喜欢了,来者不拒,有一个算一个。</p> +<p>现在外面温度-5度,偏北风力4级,看不见月亮,我刚和同事喝了两杯回来,屋里暖和极了,倒了一杯开水,坐在客厅,很安静。</p> +<p>总是到了年末的时候才想起感慨时光的流逝,这一晃就又是一年。粗略地回顾一下,有收获也有遗憾,有成长也有叛逆。</p> +<p>翻了翻年初给自己制定的计划(对不起,我是计划狂++),发现大部分还是实现了的,有些计划制定的太过离谱偏离较远,比如学习计划,由于时间的冲突只得以工作为重。</p> +<p>不过,梦想始终是不能够放弃的,我庆幸自己清醒地知道目标,并坚定不移地去实现它,一个一个地了却心中的情结。</p> +<p>谈到梦想,我都快成了一个梦想家了,到现在为止我仍然保留的梦想有:</p> +<p>拍摄一部上好的纪录片,做一个录音师,拥有一个属于自己的实验室,写一个操作系统,等等等等(除了最后一个其它的好像都离我的职业挺远的)。</p> +<p>在追逐梦想的路上,难免会有失望和沮丧的时候,但心中的信念从来都没有丢失,面对我的梦想,我像一个虔诚的信徒,怀揣着单纯的心,每晚甜蜜的睡去。</p>微波炉的影响https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/Wed, 23 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/<p>无论厂家如何吹嘘,微波炉的电磁辐射泄漏都是挺严重的。</p> +<p>以前不觉得,认为把它关严实就不会有微波跑出来,所以一边加热食物,一边在跟前等着。</p> +<p>这几天我喜欢拿着笔记本在餐桌旁上网,刚才开动了一下微波炉,我的笔记本立即就连不上无线网络了,我差点以为是我打开的网页内有敏感词,后来才发现是微波炉辐射的影响,看来以后得注意些,不能在开启的微波炉边上上网啦。</p>3D电影终于要走进家庭了https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/Tue, 22 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/<p>刚在Solidot看到一则让人兴奋的消息,3D蓝光规格终于敲定,这意味着以后的3D电影可以装进蓝光DVD并在家里播放了,虽然在观看时仍然需要特制的眼镜,但这已经不是问题了,我想,随着技术的发展,很快就能观看不用带3D眼睛的3D电影了。</p> +<p>最酷的是,使用蓝光DVD播放器即可组建家庭3D影院了,当然对显示设备有所要求,不过问题不大,我估计5年之内即可普及了,科技的发展速度实在是让人敬畏。</p> +<p>顺便提醒一下,国内的标准机构是不是也需要与时俱进赶紧制定咱中国人自己的标准呢?嗯?</p>郁闷的万能解药https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/Mon, 21 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/<p>靠,本来想说开心是郁闷的万能解药,想了想又觉得不妥,本来就郁闷了还哪来的开心。</p> +<p>好吧,乐观的心态才是。很久很久以前,记不清了,大概是上个世纪的事儿了,有一坨古老的电视节目,里面有一句名言:“快乐是一天,不快乐也是一天,为何不天天快乐呢?”</p> +<p>,你听听,说的多在理啊,虽然有点儿站着说话不腰疼的意思,但是话糙理不糙,不用多仔细去想就觉得豁然开朗。</p> +<p>随着工作压力的增大,以及对世界认知的改变,人已经变的越来越不单纯了,本来一杯清澈的白水已经污染的又黑又浑,已经很难咧着大嘴叉子笑得喘不过气来了。</p> +<p>曾经一个一头猪掉进臭水沟里的笑话都能笑上半天,到现在看见这样的笑话连嘴角都懒得抽动,偶尔遇到能够笑得起来的还是荤段子。</p> +<p>但是,最近看了一连串的美剧,让我又回到傻笑的年代,有些人说这太单纯、无聊、没意思,其实包含着大量的深刻讽刺和幽默,比如《生活大爆炸》、《好汉两个半》、《老爸老妈的浪漫史》等等</p> +<p>,他们不但让我看得前仰后合而且还能产生一些积极乐观的思考,不像有些电视剧简直是把你的脑袋敲开了往里面扔大便。</p>没写过曲子的厨子不是一个好裁缝!https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/Sun, 20 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/<p>今天坐在电子琴前瞎按,精神有些恍惚,尝试着弹些曲子,居然可以有“完整”的旋律被弹出来,而且听起来有些淡淡的伤感,有些甜蜜。</p> +<p>我又不会记谱,纯粹凭着感觉弹奏,恰巧电脑上的midi软件坏了,无法使用软件录制,只好掏出手机赶紧把这段录下来(用手机录的音质就差多了),要不然很快就会忘了。点击这里可听如有雷同纯属巧合:)</p>周末,看电影的时间https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/Sat, 19 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/<p>按照偏执的日程安排,周末乃观影时间,一个人抽着烟复习经典老片。</p>关于随机数https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/Fri, 18 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/<p>众所周知,计算机(不含量子计算机)是不可能产生真正的随机数的,而只能产生出“伪随机数”。</p> +<p>因为要在计算机上产生随机数都要设置“随机数种子”,而一般来说这个“种子”来自于计算机自带的时钟,这也就意味着这个过程是可重复的,产生出的随机数也是有一定的规律的,无论多复杂的随机算法都难逃这个定律。</p> +<p>具体解释可参考维基百科。</p> +<p>可是大自然中到处充满了“真随机数”,因为没有完全一样的两片树叶,也没有完全相同的指纹(这个不好说)。</p> +<p>可是这些真的是随机的吗?</p> +<p>还是由于人类的认知并未达到一定的高度才产生出来的错觉?</p> +<p>因为我常常这样想:假如我写了一段程序,里面有个“生物”假设他有意识(我靠,这太难了),我给这段程序一堆随机数字,那么程序里的“生物”是不可能知道这些随机数字是由于我设置了“随机种子”才产生的,因为在“构建”这个“生物”之前我已经设置了“随机种子”。</p> +<p>好了,令我有些迷惑的是,也许我们大自然的随机数是在“宇宙大爆炸”的时候就设置了“随机种子”的,后面的发展固然有无尽的随机数,导致根本没有重复的树叶也好,没有相同的指纹也罢,也许这些还是“伪随机数”。</p>齁冷https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/Thu, 17 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/<p>实在找不到词语形容今天的天气了,查了半天新华字典才找到“hou”这个字怎么写,恩,今天天气齁冷齁冷的。</p>DIY了个电子琴延音踏板https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/Wed, 16 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/<p>当初买电子琴的时候没有配套买一个踏板,后来练习的时候才知道延音踏板的作用还是十分重要的,嫌麻烦就没有再去买,到网上看看卖的还挺贵,雅马哈原装的要好几百块。</p> +<p>后来我研究了一下,电子琴的延音踏板原理十分简单,就是拿脚一踩就短路而已。</p> +<p>于是就想自己做一个,苦于没有材料,有一阵子我甚至联想到我垃圾桶上的那个踏板能不能拿来做延音踏板(当然不行),后来想到了鼠标,行倒是行,就是“脚感”太差。</p> +<p>今天在家翻抽屉翻出来一个废弃的台灯,发现他的底座挺合适的,于是就卷起袖子开干。原理太简单了,就是拿跟引线从电子琴上接下来,这头接在台灯底座上,台灯的底座经过改造,踩下去就导电,抬起来就断开,试了一下,还真对得起咱这台琴!</p> +<p>请看照片:</p>理发https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/Tue, 15 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/<p>今天去理发了,很难理解那些一边理发一边与发型师聊个没完的话痨,今天我终于想明白了为什么我到了理发店就沉默寡言了。</p> +<p>因为他们一般都会问我这几个问题:</p> +<p>1、“您多久没理发了?”</p> +<p>妈的,老子想什么时候理就什么时候理,怎么了。</p> +<p>天气这么闷热生活这么枯燥,理个发你还在这唧唧歪歪没完。</p> +<p>不就是老子的头发留的稍微长了点儿,收拾起来慢一些吗。</p> +<p>2、“您的发质太硬,要不要做个软化?”</p> +<p>操!好好的头发干嘛要在药水里泡来泡去了的。</p> +<p>3、“您的头发有些脱发,给你推荐一款防脱发的洗发水怎么样?我们这边特价”</p> +<p>脱发?没你说的那么严重吧,倒是推荐的洗发水有些怪异,恕我孤陋寡闻,这些牌子我一个也没听说过。</p> +<p>4、“办个会员卡吧?以后每次来都能打8折”</p> +<p>最崩溃的就是这句,痛苦地忍住胸口那句脏话,赶紧离开这间店。</p>我的装机必备软件及理由https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/Mon, 14 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/<p>今天在网上看到有人写他的装机必备软件,看得我也心痒痒,也来说一说我的装机必备软件,每个人的习惯不一样,我选择的都是我最喜欢的。</p> +<p>选择的原则是有免费的就不用收费的,有开源的就不用闭源的,有小巧的就不用臃肿的(当然是同样功能的比较),有绿色的就不用安装的。</p> +<p>1、记事本替代,这个可选择的余地很大,gvim、Notepad++、Notepad2等等,我选择gvim,它高效、强大、聪明。</p> +<p>2、浏览器,这个非常重要,可选择Firefox、Chrome、Opera等等,我选择Firefox,因为Chrome目前还无法让我放弃Firefox,不过Chrome也真的很好,而且进步很快。</p> +<p>为啥没有IE?用IE上网让我没有安全感,而且操作起来很不爽,这点目前已有了很大改观(IE8)。</p> +<p>3、音乐播放器,我选择foobar,不过现在在线听音乐才是趋势,所以foobar只有在听本地的无损音频文件的时候才能派上用场。</p> +<p>4、视频播放器,我选择MPlayer,没有理由,就是他了,非要找个理由的话,那就是因为它是开源的而且它有很多快捷键。</p> +<p>5、看网络电视,选择ppstream。</p> +<p>6、文件管理器,选择totalcommander,又是一个绝世好软,好处多到一天也说不完。</p> +<p>7、在线听广播,选择龙卷风网络收音机,老牌子,质量有保证。</p> +<p>8、系统快捷键定制,选择ahk(AutoHotKey),可以自己编写脚本定制快捷键。</p>吃牛排的时候你没想过要认识那头牛https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/Sun, 13 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/<p>《逃出克隆岛》这部2005年的科幻电影(算是科幻吧),今天又被我翻出来看了看。</p> +<p>故事里说,在不远的将来,随着克隆技术的发展,人类已经具备了克隆自己的能力,最简单的应用是当人类的器官坏掉之后就克隆一个换上,这给那些贪婪的、渴望长生的人们又带来了希望。</p> +<p>有了市场需求就有人提供这种服务,故事里的“坏人”开办了一个地下工厂专门提供克隆器官,并告诉外界克隆的这些器官寄生在没有灵魂、没有思想、知觉的“植物人”身上,听起来貌似很人道。</p> +<p>然而,随着时间的进展,“坏人”发现通过这种手段提供的器官质量并不高,于是直接克隆出整个的活人,大批量的复制,统一的教育他们,并给他们植入雷同的记忆,描述了一个类似天堂的地方作为他们活着的终极目标,当然这个地方就是他们生命的重点。</p> +<p>一旦用到了他们器官他们的生命也就走到了终点,外面世界里的人类作为“客户”继续使用新鲜的器官活下去。</p> +<p>这些克隆人大部分没有真正的思想,认知水平停留在孩童阶段,本来一切进展顺利,使用器官的人都没有负罪感,因为就像电影里说的那样:“吃牛排的时候你从没想过要认识那头牛”。</p> +<p>然而,人都是有好奇心的,克隆人也一样,随着好奇心越来越强烈,就引发了电影接下来的故事。</p> +<p>故事的结局还算不错,就像所有的电影一样,“坏人”受到了惩罚,泯灭的人性又一次战胜了邪恶。</p> +<p>电影本身结束了,可是带给人的思考却漫无边际,随着人类文明的发展,人性会被重新定义,只有一样是可以肯定的:为了生存,所有人都会不择手段。</p>记住这几个窍门带你迈入vim的门槛https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/Fri, 11 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/<p>用vim已经有一段时间了,谈不上高手的级别,但总算是入门了,vim作为编辑器的王者,掌握之后带来的成就感无与伦比,但是其陡峭的学习曲线常常让人望而却步,下面,我来介绍几点心得,虽是入门级但是能为将来的熟练掌握打下基础。</p> +<p>1、不要再依赖菜单和工具条,虽然gvim提供了菜单和工具条,请不要再用他们,在配置里加上一行&quot;setguioptions-=mT&quot;,这样一来gvim的界面就干净多了,尽情的用快捷键吧。</p> +<p>2、不要再依赖方向键来移动光标了,熟记h、j、k、l分别对应左、下、上、右,并强迫自己使用,你会发现右手再也不用来回移动了。</p> +<p>3、切忌总在“插入”模式里待着,“插入”完成后立即按esc或ctrl+c推回到“默认”模式,因为在默认模式里才能发挥出vim各种“命令”的优势。</p> +<p>4、“o“命令是在当前行的下面插入一行并进入“插入”模式(大写的“O”是在当前行的上方插入)。</p> +<p>5、“dw”是删除一个单词,“dd”是删除一行。</p> +<p>6、将光标移动到某个单词上并按“*”键是对这个单词进行向后搜索,“#”是向前搜索。</p> +<p>7、“xp”是前后交换两个字符,“ddp”是上下交换两行。</p> +<p>8、“v”这个选择命令很管用,紧跟其后按“i(”是选中小括号内的内容,“a(”是连小括号一起选择(你可以尽情地举一反三)。</p> +<p>9、多看帮助。</p>最近比较忙https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/Thu, 10 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/<p>09年已经接近尾声,琐碎的事情纷至沓来。</p> +<p>很多事情需要加班才能解决,睡眠质量严重下降。</p> +<p>我的博客又快荒废了。</p>忙里偷闲写博客https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/Tue, 08 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/<p>刚写完了一篇文档,绞尽脑汁,换换脑子,上来唠叨两句。</p> +<p>这两天又尝试着使用evernote管理笔记,界面华丽,功能强劲,赏心悦目,就是太耗资源了。</p> +<p>勉强能在小笔记本上跑,输入中文的时候还吭哧吭哧的。本打算以后就直接在上面写日志,发了两篇测试,效果很不理想。</p> +<p>放弃。发现我的共享空间又不能访问了。</p>来来来,一起解决全球变暖的问题https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/Mon, 07 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/<p>来来来,一起解决全球变暖的问题来来来大家一起跳吧刚才在浏览科学松鼠会的网站,看到一个有趣的话题,假如地球上的所有人在同一时刻做同一件事情,会有什么样的后果?不过已经有喜爱恶搞的老外开始忽悠了。</p> +<p>故事说的是:</p> +<p>2006年有‘科学家’建议六十亿人在2006年7月20日11:39:13秒同时猛跳一次就能让地球轨道距离太阳远一些,这样就很好地解决了气候变暖的问题。</p> +<p>我初一看差点儿就相信了。www.evernote.com|Remember</p>testhttps://sbabybird.github.io/p/test/Sun, 06 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/test/<p>testMinim0www.evernote.com|Remembereverything|Signupforfree__________InformationfromESETNOD32Antivirus,versionofvirussignaturedatabase4663(20091205)__________ThemessagewascheckedbyESETNOD32Antivirus.http://www.eset.com</p>两个偏执狂的对话https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/Sun, 06 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/<p>qy:“优盘借我用一下,我要重装windows7”</p> +<p>我:“你现在的Windows7用的好好的为什么要重装?”</p> +<p>qy:“因为现在用的是RC版的,想装中文正式旗舰版”</p> +<p>我:“哦,了解”</p> +<p>qy:“有时候,虽然明知道现在的软件用着很好,但就是想装最新版的,不然心里就特别扭”</p> +<p>我:“我也是这样,我上周因为不能用firefox最新版把我的小笔记本重装了四次,还有就是我不能看见回收站里有东西”</p> +<p>qy(会心的笑):“对对对,我看见回收站已满的图标就浑身难受”</p> +<p>我:“我上次用别人的计算机,上去就把他的回收站清空了,结果那家伙用回收站来存放重要文件”</p> +<p>qy:“我用软件只喜欢去官方网站下载,然后自己动手破解,别人破的我不放心(信不过)”</p> +<p>我:“你知道别人会怎么说我们这种行为吗?”</p> +<p>qy:“怎么说?”</p> +<p>我:“神经病!”</p> +<p>qy(羞涩地笑):“。。。。。”</p>音量https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/Sat, 05 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/<p>城里的房子太挤,隔音很差,楼上蹑手蹑脚走过一个人,楼下也能听的一清二楚(有点儿夸张)。</p> +<p>以前我有在家听音乐的习惯,那是在老家的时候,每到周末都把音响开到最大,一边听一边洗衣服,现在不能这样听了,因为那样会打扰到邻居,甚至有时候稍微把音量调的大一点儿都会觉得内心十分不安。</p> +<p>音量大了就会担心,小了就听着不爽,感觉白瞎了我那套音箱了。</p> +<p>想要随心所欲的开大音量听音乐,看来只能等住进别墅了,或者回乡下老家。</p>写博客https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/Fri, 04 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/<p>不管有没有人看,几乎每天都要写一篇博客,一是为了换换脑子,二是为了留点儿记忆,当然最好能写一些有用的东西,而不是流水帐。</p> +<p>刚看了和菜头老师写的《像说话那样写博客》,深有同感。</p> +<p>又不是写作文或者写文档,干嘛要写那么多书面用语或者空话套话呢,就是随心所欲,嘴里想说啥,就写点儿啥,有点儿像自言自语。</p> +<p>内容当然不能太没劲,说一说今天吃了啥,去了几趟厕所等,写这些简直是浪费网络资源,不过也不是绝对的,据说有人坚持写了一年的博客,每一篇里面只记载了当天吃了什么饭,后来又有好事者根据博客内容统计出了该人的饮食习惯并列出了图表,这又另当别论了。</p> +<p>我自己给自己的博客定下了内容范围,首先绝对不会转载别人的内容,其次不会写与政治有关的话题(我只是不明真相而且沉默的大多数),然后也不会写工作中的事情。</p> +<p>如果算上刚才说的不能写当日的流水帐,就只剩下自己的爱好可以写一些了,比如音乐、电影(不是影评)、科技、编程、硬件等,偶尔也会写一些貌似小资文风的内容,不过也都是喝高了之后写的,过后看完两股战战几欲删除。</p>如何制作一个可以引导的优盘https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/Thu, 03 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/<p>这两天小笔记本出故障害我卷起袖子修了两个晚上,由于没有光驱,所以没少用到我的优盘,可是网上可下载系统盘一般都是iso文件,即光盘镜像刻录成光盘才可以引导机器启动,不过现在是21世纪了,几乎所有的主板都支持usb启动,所以没有光驱也无所谓了,只要手中有可引导光盘的iso文件就可以制作出一个可引导的优盘出来。</p> +<p>正所谓授之以鱼不如授之以渔,下面介绍一下制作可引导优盘的步骤,并非所有的引导盘都必须这么做,这仅是其中的一种方法,也最省事。</p> +<p>1、必备条件:运行Windowsxp系统的计算机一台,优盘一只。</p> +<p>2、去网上搜索并下载名叫“UltraISO&quot;的软件,试用版亦可。(该软件同时具有光盘刻录、iso制作、虚拟光驱的功能,真是居家旅行&hellip;&hellip;..)</p> +<p>3、可引导的光盘镜像文件(扩展名一般为iso)一只,比如ubuntu9.10-i386-livecd.iso,具体要什么iso取决于你要干的事情,如果这一句你弄不明白,那就别往下进行了。</p> +<p>4、把那只倒霉的优盘插入电脑。(记清楚他的盘符,如果你插入了多个优盘的话)。</p> +<p>4、启动UltraISO,在菜单里选择“文件”==》“打开”选中你的iso文件。确定。</p> +<p>5、在菜单里找到“启动”下面的“写入硬盘映像”并猛烈点击之。</p> +<p>6、现在弹出了一个新对话框,在名叫“选择硬盘驱动器”的那个下拉框中选择你刚才插入的那个优盘(如果就插入了一个,就不用于选了)。</p> +<p>7、在“写入方式”那个下拉框里选择“USB-HDD+”,除了这个选项还有“USB-ZIP”等选项,但是你选择USB-HDD+就可以了,因为这个格式的兼容性最好,实在不行再换其他的。</p> +<p>8、点击“写入按钮”并耐心等待。注意:优盘的内容会被清空。</p> +<p>9、等写完了就拔掉优盘尽情的去得瑟吧。</p>小e复活https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/Wed, 02 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/<p>周日手欠,将epc的系统改为ubuntu的remix版,损坏了ssd的mbr,后又恢复成xp,一天后出现ssd无法读取的错误,再也无法安装xp系统,本着死马当活马医的态度,我试了一下随机附带的恢复光盘(利用光盘烧录了一个可引导的u盘),竟然好使,现在系统又恢复到最初买回来时的状态了。但愿SSD没有坏。</p>程序员的自我修养https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/Tue, 01 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/<p>上次逛当当的时候,忍不住买了一本书&ndash;《一个程序员的自我修养》(副标题为:链接、装载与库),当时我说,就冲这个书名,哪怕里面全是白纸我也要买这本书。</p> +<p>因为我是周星驰的影迷,《喜剧之王》在我心里一直是周星驰的巅峰之作(别跟我提《大话西游》,台词我比你记得还熟)。</p> +<p>影片里的周星驰作为一个“死跑龙套”的“演员”,一直拿着的一本书就是《演员的自我修养》,那是他的梦想。每个编码的程序员其实心里或多或少都有一些代码情结,手里头捧着一本关于程序的书,就好象捧着自己的梦想似的。</p> +<p>抛开书上面的不说,说一说我所认为作为一个程序员应该具备哪些修养:</p> +<p>1、对程序、编码的热爱。如果不热爱编程,技术再牛逼也只能是一个代码工人。</p> +<p>2、谦虚好学的态度。</p> +<p>早就听说就有文人相轻的说法,做文章的瞧不起做文章的,其实很多程序员也一样,不知天高地厚,眼高手低,整天拿编程语言比来比去,在他们眼里别的程序员都是傻逼。</p> +<p>这些人就算是某个领域的“高手”,也绝对谈不上是一个合格的程序员。</p> +<p>3、团队协作能力。</p> +<p>自古有一个诸葛亮抵不上三个臭皮匠的说法,这话说的虽然有些绝对,但是也有一定的道理,如果一个程序员不能很好的和队友交流、合作,哪怕有三头六臂也很难成为一个出色的程序员。</p> +<p>4、安静平和的心态。</p> +<p>浮躁、急躁是技术人员最忌讳的心态,这当然不是指火烧到眉毛了还懒的动弹,而是说遇到问题能够冷静的分析并作出准确的判断。</p> +<p>这一点上有些人真让我望尘莫及,后天可以锻炼,但我觉得天生的因素占很多。</p> +<p>5、自信。</p> +<p>鼻孔朝天也不好,但是没有自信更要命,总是不相信自己能够开发出成功的软件,或者怨天尤人以语言不通、国内环境为挡箭牌为自己开脱,这样永远也写不出像样的程序。就牢骚这么多吧,说起来永远比做起来轻松,以上观点纯属瞎掰,如有雷同,那实在是巧合。</p>TED,这里都是能给你带来思考的视频https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/Mon, 30 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/<p>推荐一个视频网站,<a class="link" href="http://www.ted.com/" target="_blank" rel="noopener" +>TED</a>,因主要关注Technology, Entertainment, Design故得此名。我基本每周都要在上面看一段,里面的演讲精彩纷呈,就算是语言不通也能慢慢适应(很多经典视频有中文字幕)。</p> +<p>今天看的是这一段。这哥们儿的风琴弹的简直出神入化。</p> +<object width="446" height="326"> +<param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param> +<param name="allowFullScreen" value="true"></param> +<param name="wmode" value="transparent"></param> +<param name="bgColor" value="#ffffff"></param> +<param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/CameronCarpenter_2008P-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/CameronCarpenter-2008P.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=699&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=cameron_carpenter_improvs_on_the_organ;year=2008;theme=new_on_ted_com;theme=live_music;theme=the_creative_spark;theme=tales_of_invention;event=EG+2008;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"></param> +<embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/CameronCarpenter_2008P-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/CameronCarpenter-2008P.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=699&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=cameron_carpenter_improvs_on_the_organ;year=2008;theme=new_on_ted_com;theme=live_music;theme=the_creative_spark;theme=tales_of_invention;event=EG+2008;"></embed> +</object> +<p>PS:我的livespaces又不能访问了,不知道此篇能否发送成功。</p>冲动是魔鬼https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/Sun, 29 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/<p>本着没有困难制造困难也要上的精神,我以迅雷不及掩耳盗铃之势把epc的操作系统换成了ubuntunetbookremix9.10,因为好奇心的原因,或者是爱用最高版本的原因,我这次不但将可怜的小笔记本给格式化了,而且选择了最新出的文件系统&mdash;-Ext4!首先4G的那块SSD用来作为根分区“/”使用了Ext4,然后划出了256M的空间作为交换分区。</p> +<p>剩下那块16G的SSD也格式化成了Ext4,挂载点为“/home”,理论上来说这种分配应该是可以的了。</p> +<p>可是杯具就杯具在倒霉的Ext4上。</p> +<p>安装完毕,按照我的老毛病,立即上网更新系统,吭哧吭哧下载了半天,所有软件都更新为了最新版啦!结果第一次重启就让我大跌眼镜。</p> +<p>首先,由于某种原因,我直接在命令行输入了sudoshutdown-rnow来进行重启,还没有来及进入图形界面就告诉我说,“糟糕,/home无法挂载,可能文件系统损坏了,您需要进行手动检查”,好吧,去官方网站上一查,人家说这是个bug,需要先这样然后再那样blablablabla。我忍了,输入:fsck/dev/sdb1进行全面检查,磨烦了半天总算修复,等到进入了图形界面已经折腾了一头汗出来了。</p> +<p>然而大自然是残酷的,这个系统竟然让我每次重启都要修复文件系统,而且修复后奇慢无比,每次访问/home下的文件都会产生I/O错误,在控制台下满屏都是error的身影。</p> +<p>可怜的美好周末就这样被消耗掉了,本来准备收拾好笔记本就抱着去阳台写一写小程序啥的,看来在太阳下山之前是没戏了。</p>谈谈我对家庭影院的看法https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/Sat, 28 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/<p>不知道其他人为什么喜欢电影,或者不喜欢。</p> +<p>反正我是十分喜欢,也许你说,是啊,美好的东西谁TM不喜欢?</p> +<p>错!首先,不必像装逼的小资那样扭捏地大谈电影的文艺味道或者表达了一种什么样的思想,也不用像有关部门那样无耻地对电影挑三拣四反复阉割,我喜欢电影是因为电影可以让人经历不同的人生。</p> +<p>等一等,我扯的有点儿远了,但是我要说的事儿是建立在以上基础之上的。</p> +<p>我刚才差点就要像马丁路德金那样说:“我有一个梦想”,但是这句话让我的胃稍有不适,喝口水,冲一冲酒劲儿。</p> +<p>好吧,我曾经有个梦想,那就是&mdash;家庭影院!</p> +<p>你会轻蔑地一笑:“多大点儿事儿,我还以为抢鸡蛋呢,原来是家庭影院啊,这有啥啊,整个大电视,搞两个音箱,往房间里面一摆,不就是了嘛”。</p> +<p>唉,俺也曾经这样以为,而且照做了,但真不是家庭影院。</p> +<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;注意,以下内容纯属瞎掰:&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;</p> +<p>真正的家庭影院有这么几个要求:</p> +<p>首先,必须要有一个巨幅的屏幕,液晶电视就甭想了,充其量也就一百寸吧?远远不够,至少要有两百寸以上的屏幕(就这比起电影院里两层楼高的银幕还是差很远),所以要用投影。</p> +<p>其次呢,要有高清晰度的投影机,市面上现在卖那些白菜价的1024×768的液晶投影就别看了,专业的投影机对亮度和对比度以及分辨率都有很高的要求,10万元(人民币)以内都没有特别符合要求的。</p> +<p>然后是音响系统,市场上鼓吹的5.1或者7.1系统都是白扯,不是说喇叭多了凑个数就行了,功率、灵敏度、解码方案这些都是有严格要求的,目前来说,家用的音响系统就算是通过THX认证的也鲜有达到影院级标准的。</p> +<p>就算以上这些设备全部买到,也得考虑放在哪儿以及如何摆放的问题,客厅肯定不行,东西太多太乱,那就得单独提供房间了,至少也得30平米(因为要放沙发),房间里要做好隔音、吸音处理,因为你肯定不想在看的正投入的时候让邻居们过来砸门。</p> +<p>假设这些都准备齐了,还是要注意片源的问题,兄弟!几十万的东西拿回家不会就是放录像带吧?</p> +<p>上一代DVD肯定不行,据说以前有发烧友自己在家弄电影放映机来放胶片,不过现在好了,有了蓝光DVD(一片儿顶过去五片儿),一部电影几十G的容量,1920或以上的清晰度,基本够用了。</p> +<p>所以看来,哪怕是一个看电影的梦想,也不是那么容易实现的哈。</p>兄弟们还是喜欢骑摩托https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/Fri, 27 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/<p>上次回老家休假,和家里的哥儿几个聚了一把,见了面无非就是聊天,喝酒,打台球,只是都已成熟许多,使劲儿咧嘴笑的话,也能看见皱纹了。</p> +<p>这些曾经睡在一个炕上的兄弟,据上次见面已经差不多两年了,有坐车来的,有开车来的,几个兄弟还是骑摩托过来的。</p> +<p>我问了一下,还是无牌照,无头盔,钻胡同躲交警,和从前一样。</p> +<p>于是我又犯骑车瘾,借着酒劲儿风驰电掣了一把。</p> +<p>十年前刚拥有摩托车的时候,我曾天真地以为,摩托车是我的最爱,给个奔驰都不换。</p> +<p>因为骑摩托可以到处转悠,可以使劲把油门拧到底,体验呼呼的风把眼泪刮出来的感觉,可以带着墨镜飞速穿过柏油路上被大豆秸杆掀起的土雾,可以让坐在后座上的姑娘不由自主地搂着我的腰。</p> +<p>那个时候,周末基本上都是和哥儿几个骑着车四处乱窜,再窄乡间小路也敢往里冲,吹着口哨把车扎在路边跳到河里去洗澡,有时下着大雨,淋的像个落汤鸡。</p> +<p>路上当然是飙来飙去,偶尔也被大人们骂句:“不要命了!”</p> +<p>如今,都已是拖家带口了,社会的磨练多少给了一些沧桑的感觉,脸上的笑容也失去了往日的纯真而增添了几分苦涩,只是,当他们跳上摩托车,冲我招一招手,伴着隆隆的声音脚下喷出一股股蓝烟,我的心仿佛又回到了那个时节。</p>推荐一个在线听广播站点https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/Thu, 26 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/<p>有睡前听相声或评书的习惯,有个人在旁边罗哩罗嗦没完是个很好的催眠剂,可以很快入睡,保证了充足的睡眠。MoRadio是一个很简洁干净的在线广播站点,界面清新漂亮,电台丰富,甚至可以在线听小说。</p> +<p>有了它我基本舍弃了“龙卷风网络收音机”。网址:http://www.moradio.cn/</p>准备买几本书https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/Wed, 25 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/<p>刚才二舅给我打电话,聊了一会儿天。</p> +<p>问我现在是否还看书,我说看,电子版的,在手机上也看,看的眼睛都快毁了。</p> +<p>很久没买书了,记得跟飞行鱼借来的《代码大全》差点儿垫了桌子。</p> +<p>接了这个电话,两个人谈了一阵子书,我又想看纸质的真书了,刚好他又给我推荐了两本,随即去当当把书定下。</p> +<p>选书的时候哦发现一个问题,计算机相关的书最贵,买三本畅销书的价格还比不了买一本忽悠你怎么编程的书贵。</p> +<p>不过还是难以抗拒诱惑,各买了两本。</p> +<p>《做单》这本书最近十分火,本来看名字和书评都不太和我的胃口,但是二舅极力推荐,所以拿下。</p> +<p>《我们台湾这些年》是王三表在他博客里提到的,所以拿下。</p> +<p>《深入理解计算机系统》据说是人家美国大学里的教材,图个新鲜,所以拿下。</p> +<p>《程序员的自我修养》就冲这个名字哪怕里面全是白纸也得拿下。</p>平行宇宙https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/Tue, 24 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/<p>肯定有过这样的经历,有一样东西(通常是个小东西,电冰箱什么的不算)翻箱倒柜地找不到,过一段时间你突然发现这个东西出现在某个地方,而那个地方当时已被你掘地三尺了。</p> +<p>有人说这是眼睛欺骗了大脑,或者是大脑欺骗了眼睛,但我更相信另一个比较科幻的说法&mdash;-平行宇宙。</p> +<p>按照平行宇宙的说法,我们生活的宇宙不是唯一的宇宙,另外还有无数个和咱们的宇宙差不多的宇宙,无数个宇宙里自然就有无数个你我,每一个重大事件的发生都会导致当前的宇宙分裂出与之平行的另一个宇宙来,我没有瞎掰,科学家也是这么说的,不过我感觉他们是有点儿瞎掰。</p> +<p>刚才我翻箱倒柜也找不到我的吉他拨片了,我记得很清楚就在一个放有调音笛的小盒子里,打开一看没有,出去干点儿别的,再回来,发现果然在小盒子里。</p> +<p>所以我宁愿相信这个拨片刚才有一阵子进入了另一个宇宙。</p>塞班手机使用MailForExcange同步gmail实现pushmailhttps://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/Mon, 23 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/<p>从《越狱》火起来那年开始,pushmail这个概念随着黑莓手机的流行而泛滥成灾(什么?不知道什么是pushmail?请Google之,或者看这里。现在知道了吧,pushmail的好处就是及时。),就连中国移动也推出了自己的pushmail,当然了他们要收取“少量”的费用。</p> +<p>那么有没有免费的泥?</p> +<p>答案是肯定的,条件有三:</p> +<p>1、拥有一个gmail帐号。</p> +<p>2、拥有一部Nokia智能手机(最好是E系列)。</p> +<p>3、喜欢折腾。由于pushmail客户端不再向以前的email客户端那样需要过一段时间就去服务器查询是否有新邮件,这样既省钱又省流量,所以折腾一下还是值得的。</p> +<p>好吧,准备好手机,就到这里来下载MailForExcange吧。</p> +<p>http://www.google.com/mobile/products/sync.html#p=nokia_smart</p> +<p>下载完成后这里有使用说明</p> +<p>http://www.google.com/support/mobile/bin/answer.py?hl=en&amp;answer=147951</p> +<p>按照文档的说明,设置完毕之后就可以使用了。</p> +<p>补充两点:</p> +<p>1、不要选择同步“任务”,目前还不支持,如果选择了就会什么也同步不了。</p> +<p>2、不要选择同步“联系人”,否则会把你gmail里的联系人全部同步到手机上,如果不小心还可能会清空手机的电话本(慎用!)。</p> +<p>另:我有使用日程表的习惯,这也是偏执狂的一个表现,是GoogleCalendar重度使用者、Gmail的中度使用者,同时极度讨厌使用OutLook。</p> +<p>此MailForExcange还可以同步日程安排到手机,真是居家旅行杀人灭口之必备好软。</p>假如明天就是世界末日https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/Sun, 22 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/<p>1、今天排队看了《2012》,包括排队买票,排队进场,排队去厕所放水。</p> +<p>2、好的电影看完可以引起一些思考。</p> +<p>3、想起一句诗:假如明天就是世界末日,我今天仍然种我的苹果树。</p> +<p>4、就算是商业电影,里面也有一些政治隐喻,仁者见仁,淫者见淫。</p> +<p>5、人生短暂,活着真好,我决定请朋友们吃饭,今晚。</p> +<p>6、有可能的话,以后看电影尽量去影院看。</p>失望https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/Fri, 20 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/<p>昨天夜里,Google演示了他们推出的操作系统ChromeOS,据说是基于Linux的。</p> +<p>在此之前已有风生放出,比较适合上网本,我期待着能够用在我的epc(太弱了)上。</p> +<p>结果是,Google根本不允许在他的操作系统上安装任何本地软件,甚至不能自己安装在笔记本上,所有的数据均保存在Google的服务器上,意味着一旦失去网络就是废塑料一坨。</p> +<p>想一想咱们的网络环境,我还是洗洗睡吧。</p>床头的电磁波https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/Thu, 19 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/<p>有相当长的时间,我的手机都是24小时开机的。</p> +<p>不过我有一个坏习惯,把手机放在枕边当闹钟,半夜醒来也好看时间。后来关于手机电磁波辐射的说法越来越多,导致我产生了一定的心理阴影,总感觉电磁波正在滋滋地穿过我的脑袋。</p> +<p>后来就到睡觉时就把闹钟关掉了,然后早晨再起来开机把闹铃叫醒。</p> +<p>不过现在用的手机支持关机闹铃,即使关机状态也可以很负责任地把我叫醒。</p> +<p>剩余的问题是,夜里醒来不太容易看时间,开手机太费劲,爬起来到客厅看时间又太远,有人出个馊主意说:起来“演奏”一会儿乐器,邻居们就会大声告诉我现在是什么时间了。</p> +<p>不过我觉得这个方法不太可取,万一他们的手机也关机了咋办。</p> +<p>想来想去,我还是觉得应该在床头放一个真正的闹钟,可以很方便看时间的那种,最好能发出幽幽地蓝光(不是绿光)。</p> +<p>刚才我发现了这个,感觉挺合适的,就是目前还买不到。</p> +<p>啧啧,可惜啊。</p>祝我生日快乐!https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/Wed, 18 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/<p>一大早就收到家人发来的祝福短信,原来今天是我的生日。</p> +<p>逐个回复短信之后,我慢慢回想,掏出计算器算了算,哦是的,原来我已经二十八了。</p> +<p>他们说:“生日快乐!”,没错,快乐最重要,我想,和十年前的想法一样,到了今天我还是认为快乐最重要。</p> +<p>潜在的意思就是玩儿最重要,只不过十年前我玩儿起来是骑着摩托车约着一群怀疑人生的青少年去疯狂飚车,或者是跳到半腰深的河里去捉鱼,或者是带着漂亮的女生一起谈论理想(现在已是我的老婆)等等。</p> +<p>十年后的今天玩的仅是一些虚无缥缈的东西,比如曾经以为永远也学不会的编程现在用来吃饭,生活就是这样,玩玩电脑偶尔也被电脑玩玩。</p> +<p>仔细地想一想,岁月还真是不饶人哩,小时候的玩伴大都不再联系,老爸老妈的鬓角也渐渐染上了白霜,时间就这样一年年过去,不断地得到也不断地失去,唯一能保持不变的以许就是一颗追求快乐的心吧。</p> +<p>今天是我的生日,祝我生日快乐,也愿我的家人幸福快乐。</p>我觉得twitterhttps://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/Tue, 17 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/<p>问我为啥用twitter,因为我觉得上twitter比较有技术含量(嘿嘿,想起黎叔了)。</p> +<p>开个玩笑而已,其实是觉得twitter上的人尤其是中文twitter用户都比较有爱心和有责任心。</p> +<p>虽然也有愤怒激进的,但大部分都是能够较为冷静地看待问题的人。</p> +<p>用句流行的话来说,就是感觉twitter上的人都比较有爱。</p> +<p>再一点就是它“致命”的优点了,也是被反复提及的信息及时性,这实在是很让人暗爽的特点,每天早晨打开手机第一件事就是更新twitter,不用发愁会错过什么信息,而且都是第一手资料。</p> +<p>今天再次帮助一位不知道twitter是何物的朋友开通了twitter,本着送佛送到西的精神,一股脑儿帮他flow了几十个有意义的中文twitter,然后又帮装上手机客户端,由于众所周知的原因,我还得把代理地址给他设置好。</p> +<p>弄完之后,感觉自己像是一个传教士。</p>每日笑话https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/Mon, 16 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/<p>记得老婆怀孕的时候,为了保持其心情愉悦,我每天都要给她发送一条短信,均是时下最流行的笑话段子。</p> +<p>这些段子基本上来自于网上,有些比较长的我还得进行一定的删减,由于平时储备的段子较多,刚开始几天还源源不断,后来因为我的审查比较严格,比较俗气的段子不发,太露骨的荤段子不发,不经典不好笑的不发,导致连压箱底的段子都发给她了,有时候我甚至还得四处搜罗。</p> +<p>每天一条笑话,一直持续到孩子生下来,现在孩子白白胖胖非常可爱,我的笑话短信有很大的功劳。</p> +<p>再后来,由于工作实在是繁忙又加上自己存储的段子实在是不够用了,我才逐步取消“今日笑话”这项“业务”。</p> +<p>前两天老婆又跟我叫屈,说我太偏心了,孩子一生下来就收不到新段子了,向我申请重新开通“每日笑话”的业务。</p> +<p>很长时间没有发笑话,我的段子又储备的差不多了,经过深思熟虑之后,我决定今日起重新开通该业务。</p> +<p>另附今日笑话:儿子学习不好,被妈妈痛骂。儿子用哀怨的眼神看着爸爸说:“你为什么要娶她?”爸爸也用哀怨的眼神看着儿子说:“还不是因为你!”</p>到处蹭饭的周末https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/Sun, 15 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/<img src="https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/20091115-776584.JPG" alt="Featured image of post 到处蹭饭的周末" /><p>此周末加班0.75天,在朋友家玩了1.25天。吃大餐若干,其中有朋友亲自下厨精心烹饪的海鲜。狂唱卡拉OK从民歌到通俗再到摇滚,直至嗓子嘶哑。三五个人又一起打了台球,期间发现我的球技属于遇强则强遇弱则更弱。</p> +<p>晚饭又在另一个朋友家中解决,亦丰盛无比,这两天真是太对得住我的胃了。</p>https://sbabybird.github.io/p/%E5%94%89/Fri, 13 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%94%89/<p>今天在回家的路上看见有人在twitter欢呼,因为这两天有人要来,所以Youtube、blogspot、picasa等网站都解封了。等到了家,立即打开电脑,把那些被封的网站挨个试了一遍,Mad,还和原来一样。看来,twitter确实是个制造谣言的好地方。</p>关于SSD硬盘https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/Thu, 12 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/<p>昨天某同事出差,走到半路发现笔记本硬盘坏了,十分痛苦地发短信问我火车上有没有IBM的客服,我说,天将降大任与斯人也,必先苦其心志劳其筋骨,坏其硬盘。</p> +<p>此同事吐血半升后就杳无音讯了。</p> +<p>此事引发大家热烈地讨论起关于硬盘的话题(我们太残忍了),最后大家一致认为经常背着出差的笔记本其硬盘特别容易出毛病,颠簸导致。</p> +<p>有没有不怕振动的硬盘呢,答案是肯定的,那就是SSD,中文称“固态硬盘”,因没有磁盘盘片和磁头等机械装置,所以不怕振动,具体介绍如下(来自维基百科):</p> +<p>固态硬盘(SolidStateDisk、SolidStateDrive,簡稱SSD)是一种基于永久性存储器,例如闪存,或者非永久性存储器,例如同步动态随机存取存储器(SDRAM)的计算机外部存储设备。</p> +<p>固态硬盘用来在便携式计算机中代替常规硬盘。</p> +<p>虽然在固态硬盘中已经没有可以旋转的盘状机构,但是依照人们的命名习惯,这类存储器仍然被称为“硬盘”。去Google搜索一下“SSD”或者“固态硬盘”返回的文章里充满了赞美之词,什么随机读取速度别传统硬盘快啊,没有噪音啦,没有散热问题啦等等。</p> +<p>然后一致指出的缺点就是价格太贵。难道就没有别的缺点了?NO!我的epc用的就是SSD,抛开至今仍有争议的SSD寿命问题不说,我在使用中发现了一个很大的问题就是&mdash;-“磁盘碎片”,由于现在的文件系统(NTFS、FAT32)等都是针对以前的硬盘设计的,目前还没有一个针对SSD优化的文件系统(听说快出了),所以随着SSD里存储的文件越来越多,那么访问这个SSD上的文件将会越来越慢,尤其是写入,有时候会慢的无法忍受,我认为这个问题是目前SSD面临的最严重的问题,至于容量价格之类肯定不用担心。</p> +<p>今天的话题好像扯的有点儿远,不知道那位硬盘坏了的同事现在怎么样了。</p>你说你,要蹭网,用心良苦却成空https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/Wed, 11 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/<p>最近老多人都讨论破解无线网络来蹭网的问题,提到破解都挺鸡冻的。</p> +<p>其实wi-fi的破解早就出来了,不过遗憾的是破解并不彻底,只是破解了WEP加密而已,现在很多人的无线网络被蹭网,我的理解是,一部分人是自愿的(本着分享的精神或者另有企图),另一部分就是因为懒。</p> +<p>现在如果一个无线路由使用WEB加密的话,破解已经很简单,甚至傻瓜化了,国外已经有人做成live的Linux系统(因为破解程序是Linux版的)。</p> +<p>如何破解就不说了,谈谈怎样不被别人蹭网(我个人希望我的无线路由是不加密的,但是有些人蹭网还上BT就太过分了)。</p> +<p>1、进入无线路由器的设置页面(地址一般是http://192.168.1.1或者http://192.168.0.1),找到无线设置那一页。</p> +<p>2、设置加密方式为WPA-PSK或者WPA2-PSK,别选WEP了,上面已经写的很清楚了。把密码设置的复杂一些。</p> +<p>做到上一步已经基本安全,要想再安全一些还可以这样:</p> +<p>3、找到高级一些的无线设置选项,把SSID广播关掉,这样别人根本就扫描不到你的无线路由了,不过你所付出的代价就是自己上网的时候要手动输入接入点的SSID,自己记住即可。</p> +<p>要是还不放心的话还可以这样:</p> +<p>4、找到更高级的mac绑定设置,有些路由器不支持,也就是说仅允许指定的机器可以上网。</p> +<p>ps:路由器本身的访问密码也最好设置一下。</p> +<p>再ps:蹭别人的网也要小心,现在抓包的工具都很先进很傻瓜化,蹭别人的无线路由也就意味着隐私很难保障,随便吧。</p>兄弟https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/Tue, 10 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/<p>今天心情比较郁闷,幸好有兄弟陪我喝喝小酒,打打台球。心情好多了。</p>期待https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/Mon, 09 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/<p>上次一狠心,把epc上的系统更换为xp了,现在差不多又到了换系统的时候了,因为xp的毛病就是&mdash;越来越慢。</p> +<p>本来epc上带的那个基于debian定制的原装系统速度贼快,但是功能太弱了,三岁小孩用还行。</p> +<p>后来有好心人给整出来个eee-ubuntu,赶紧装上,发现他继承了ubuntu体态臃肿的优良传统,可怜的小e仅带了4G的系统盘,根本不够怎么折腾的,而且在安装最新版firefox时被我编译坏了glibc库,于是换成了xp。</p> +<p>今天发现以前的那个eee-ubuntu已经改名了,现在叫做EasyPaesy,都1.5了,不过仍然是基于ubuntu的定制,据说已经优化了不少,看得我都有些动心了。</p> +<p>官方网站上的介绍更是让我心动:下一个版本,也就是2.0的时候将直接基于debian定制,不在基于臃肿的ubuntu,而且将原生的带有epc的全部驱动程序。</p> +<p>哦夜!太期待了。</p>练习吉他的心得https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/Sun, 08 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/<p>最近几个月来,感觉思维有些迟钝,记忆力有所下降,用脑过度导致。</p> +<p>考虑到每天需要休息一下脑子和眼睛,为了远离屏幕,我决定每天晚上活动活动手指(虽然敲键盘也是活动手指,但那是机械性的),弹弹吉他,正好重拾练习吉他的计划。</p> +<p>几天之后,感觉“颇有长进”,遂记录心得如下:</p> +<p>1、不要怕打扰到邻居。</p> +<p>以前我弹琴的时候,心里总是有个阴影,总觉得邻居正在把耳朵贴在墙上偷听我弹琴,这样一来我就不好意思弹的太大声,不敢弹的太难听,可是又不会弹好听,每次都几乎是看着谱子在心中默念,这样的话就像哑巴英语似的永远也甭想弹好。</p> +<p>后来我干脆想,反正邻居养了狗,叫声也挺大,吵了我这么久我都不放在心上,我弹吉它吵他们也算是扯平了,再者说了,狗叫要难听多了。</p> +<p>2、不要在洗脚的时候练琴。</p> +<p>这是一个很不好的习惯,源自我对时间管理的偏执。</p> +<p>有段时间我觉得每天洗脚的这段时间被白白浪费了,我想,要是每次洗脚都认真看一篇文章的话我很快都能成为文学家了,可是我对文学没有兴趣,于是我选择了弹吉他。</p> +<p>而且养成洗脚要弹吉他的毛病,就连老家也专门放了一把琴,洗脚专用。</p> +<p>结果可想而知,我弹吉他的水平越来越臭。</p> +<p>3、认真练习音阶和节奏。</p> +<p>总算说到正经的了,音阶和节奏一直被我忽视,从来都是由着性子来,自负胸中有谱,想到哪里弹到哪里,不管琴弦按的对不对速度是否正确。</p> +<p>结果到现在我仍然不能完整的弹奏任何一支曲子。</p> +<p>现在每次我都认真练习十分钟的音阶并且开着电子琴用于矫正节奏,几天下来,感觉手指灵活了许多(当然是针对以前说的)。</p> +<p>4、弹自己喜欢的曲子并投入进去。</p> +<p>这个没什么可说的,只有自己喜欢的曲子才有可能投入进去,也只有投入进去才能觉得弹琴是很幸福的事情。</p> +<p>当然现在距离人琴合一的境界还差一些,也许再过个三五年,或者三五十年可以达到。</p>删除文件的定律https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/Fri, 06 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/<p>定律:上午删除的下午就会用到,而如果你不删除它们,永远也用不到。</p> +<p>前两天听到有人抱怨现在硬盘越来越大了,动辄好几百G甚至上T,这对于AV爱好者来说是个福音,但对于一个偏执狂来说简直是个灾难。</p> +<p>因为偏执狂要控制电脑里的一切,磁盘该如何分区,文件夹该如何命名,要建多深层次的文件夹结构都有详细的规划,比如音乐可按格式分为无损的和压缩的,按地域分可分为国内、欧美、日韩的,至于按流派分那就更头疼了,还有纯音乐等等,所以我有个偏执狂朋友甚至花费了将近一年的时间才慢慢把自己的那个叫做Music的文件夹整理完毕,真是一项系统工程。</p> +<p>我对磁盘文件的管理也有些偏执,首先一点是不能看见回收站里有东西(听说还有人听清空回收站的声音上瘾),所以删除任何文件的时候都是按住shift键直接删除,这些倒霉的文件连进入回收站里歇会儿的功夫都没有直接就被踢飞了。</p> +<p>我想说的是,这是一个很不好的习惯。</p> +<p>每当我清理磁盘上“没用的”文件之后,随着干净文件夹带来的快感而来的就是马上就需要用到刚才被删文件的痛苦。</p> +<p>一般来说,上午删除的下午就会用到,而如果你不删除它们,感觉永远也用不到,每天都在哪儿呆着看着真碍眼!</p> +<p>刚才就又经历了一次活生生的例子,昨天晚上在家呆着没事儿,就把我家用机上的东西都打扫了一下,卸载了很多软件,最大的失败就是把开发环境卸掉了,把相应的安装文件也删除了。</p> +<p>结果…………刚才被电话吵醒了,前方的同事有问题搞不定了,让我着实体验了一把手边没有开发环境(偏偏赶上不能使用远程桌面)来遥控搞定问题的艰辛。</p> +<p>好了,牢骚发完,睡觉!</p>四喜丸子https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/Thu, 05 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/<p>今年暑假的时候,老爸过来视察我的工作,会谈始终在亲切友好的气氛下进行,双方就共同关注的话题交换了意见。</p> +<p>期间谈论到饮食问题时,老爸对我在北京是否按时吃饭深切关注,并表示:“一定要吃饱、吃好!身体好才能工作好,身体是革命的本钱嘛!”以上内容纯属虚构,真实场景是,老爸问我吃饭是否合乎口味,我说饭菜都还行,就是吃不到味道能赶上老家那边小镇上“福星酒家”做的四喜丸子,深表遗憾,老爸深表同情。</p> +<p>以上对话造成的直接后果是,我这次回老家休假连续吃了七天的“福星酒家”的四喜丸子(每顿都得挑着大拇哥说好吃),吃的我现在看见四喜丸子就饱了。</p>体重不足https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/Wed, 04 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/<p>体检结果下来了,我唯一的毛病是体重不足,这是我的老毛病了,多年来身体只有拉长,从来没有横向发展过。医生给的建议是:多进行身体锻炼。</p> +<p>我记得去年寒冬的时候我咬牙坚持跑了两个月的步,结果体重不升反降,后来人家都说跑步是减肥的良药,跑步被紧急叫停!</p> +<p>好吧,那还有什么锻炼身体的好项目?</p> +<p>篮球已半年多没打过了,也不好组织人打,台球太休闲,摔跤太枯燥,做俯卧撑又太危险了。</p> +<p>我觉得以后要是有条件的话,可以考虑改变一下工作模式,上午下地干活儿(耕地﹑施肥等),下午编程写文档,日出而作,日落而息,男耕女织,夜不闭户,多美好啊,肯定能胖!</p>一日不练手生https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/Tue, 03 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/<p>最近总写一些偏向界面应用的代码,对于文件操作,字符串操作这些东西都快忘了,以至于下午想写个处理文本的程序差点儿无从下手,虽说python什么的好是好,咱也不能丢了C啊。</p>https://sbabybird.github.io/p/%E6%9A%96/Mon, 02 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9A%96/<p>突然下了一场大雪,天气一下冷了。</p> +<p>换上最厚的被子,缩在被窝里看《生活大爆炸》。</p> +<p>我的eeepc性能够弱的,一边看视频,一边打几个字都卡壳。</p>开始使用windows7https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/Sun, 01 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/<p>单位机器上的xp已经装了2年了,昨天终于无法忍受越来越慢的速度(关键是office软件坏了,无法修复),决定重装系统,进来win7挺火,装一个试试看,RC版的,可以显示中文但界面为英文,无所谓了,先试用几天再说。希望能取代xp。</p>雨天https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/Fri, 30 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/<p>下了点儿小雨,天气突然转冷,走在街上都有些冻耳朵了。</p> +<p>想起孙燕姿的一首歌,忘记什么名字了,&quot;雨天,想起你的生日卡片,望着你的照片…&quot;,叫什么名字呢,旋律挺熟悉…</p>自言自语和语音信箱https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/Thu, 29 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/<p>经常在美剧和好莱坞大片里看到这样的情景,一个人对着自己的车或者某样心爱的东西感情丰富地谈话,比如&quot;干的不错!伙计&quot;,&quot;全靠你了!&quot;,&quot;今天天气挺好的,你说我该不该去看她?&quot;等等,就好像跟某人聊天一样。</p> +<p>不知道他们生活中是否也是这样,感觉怪怪的。老外有人做过统计,相当比例的人喜欢自言自语,并且认为这很正常。我想这是跟他们使用语音信箱有关。</p> +<p>据说使用语音信箱是他们的老习惯了,起源于上个世纪,打电话经常没人接,打电话者听到嘟的一声然后乖乖留言,并且对着话筒&quot;得不得得不得&quot;聊上半天。</p> +<p>也许时间长了就养成自言自语的习惯了吧。</p> +<p>某段时间我也对语音留言感兴趣,可惜国内没有该服务,后来有了,可是费用贵得离谱。</p> +<p>现在我使用智能手机了,装了个软件就一切搞定,在无人接听的时候软件也能帮我接电话了。</p> +<p>可惜咱们都没这个习惯,一旦知道对方没在听电话便立即失去说话的兴趣,匆匆挂断。</p> +<p>常常有人听到我的提示音之后以为我在调戏他而冲我发牢骚。</p> +<p>所以该软件装了这么久除了我的测试录音之外,并没有接到过真正有意义的留言。</p> +<p>今天我终于收到一段有意义的留言:&quot;靠!真受不了你!&quot;</p>开始练习https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/Wed, 28 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/<p>我是一个没有恒心的人,需要恒心的事情我没有坚持下来的。</p> +<p>长跑﹑写字﹑外语﹑弹琴,等等这些都没有坚持下来,理由多种多样,太累了,没时间,没天分。</p> +<p>这些事情我常常去想,我要是能够从开始坚持到现在,那该多好?</p> +<p>前两天看了些关于时间管理方面的书,方法千变万化,工具五花八门,但核心思想只有一个&mdash;&mdash;有梦想,并且坚持下来。</p> +<p>没有什么能够一蹴而就的,我要慢慢练习。</p>回老家休了个假https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/Tue, 27 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/<p>回老家休了个假前两天回家休息了几天,和家人团聚的感觉就是好。</p> +<p>吃饭吃得香,顿顿都吃到撑。</p> +<p>睡觉也睡的十分踏实,一点儿也不失眠。</p> +<p>按照惯例和朋友们喝喝小酒,打打台球。</p> +<p>老家民风纯朴,空气清新,我简直是不想回来。</p>终于收到google wave的激活邀请!https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/Wed, 14 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/<p>终于收到googlewave的激活邀请!</p> +<p>在我苦苦等待几个月之后,就在今天下午,我终于收到了googlewave的激活邀请!赶紧点击进入,由于之前已经看过了很多关于它的报道与评测,所以对界面也没有什么新鲜感了,总体感觉还不错,由于周围的朋友只有我收到了邀请,联系人列表里还空空如也,所以目前只能随便耍耍,不能充分发挥wave的特长&mdash;&ndash;在线协作交流。</p> +<p>激活账户后,手里就有了8个邀请了,好珍贵啊,后来发现只是&quot;提名&quot;而非&quot;邀请&quot;,迅速发给好友&quot;飞行鱼&quot;一只,又给在twitter上的朋友们留了两只。</p> +<p>google这种靠邀请来刺激人好奇心的招数真是运用到了极致。</p>眼保健操https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/Tue, 13 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/<p>我引以为傲的视力下降了,由于长期盯住屏幕的缘故,导致了一百多度的近视,最近狂做眼保健操,发誓要看清我对面墙的贴纸上的字。不过不怎么有效,刚才我忍不住凑上去看了看,发现贴纸没了。</p>喝小酒https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/Wed, 30 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/<p>为排解国庆假日加班的郁闷,今晚特与同事一起喝喝小酒。喝完后他们打牌,我作为牌盲,一旁观战。</p>难得糊涂https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/Tue, 29 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/<p>难得糊涂啊难得糊涂,难就难在不知道该在什么时候糊涂,什么时候装糊涂。</p>排队https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/Mon, 28 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/<p>我这辈子最痛恨两件事儿,一个是排队,另一个还是排队。</p> +<p>可悲的是,排队是必须要面对的。取钱要排队,交费要排队,买票要排队,上车要排队,点儿背的时候上厕所也要排队。</p> +<p>排队的时候,心情是焦躁不安的,是望眼欲穿的,是忍不住想骂娘又不知该骂谁的。</p> +<p>这个时候唯一可以获得安慰的是你身后的队伍越来越长,而你前面的队伍越来越短。</p> +<p>可是,当队伍就像便秘的大肠那样久久不能蠕动时,当你的伸长了脖子恨不得直接伸到窗口撞墙时,你还是不能怎样,大家都一样。</p> +<p>以上是去银行排队有感,纯属发泄,如有雷同,那简直是巧合。</p>美好的一天https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/Sun, 27 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/<p>尽管我经常比闹钟醒的还早,可是起床仍然依赖闹铃。</p> +<p>今天是星期天,由于国庆假期的原因,今天也要照常上班,可是我的手机有点儿小聪明,周末不闹。这下可好了,我终于睡了个自然醒,我在半梦半醒之中想明白今天要上班而且闹铃不会叫我时,我惊的一下子从床上跳了起来。</p> +<p>还是晚起了一个小时。洗脸刷牙堵车堵车堵车还堵车所以,迟到了,可是郁闷的事情还在后头。</p> +<p>我平时几乎不迟到,偏偏今天等我到公司的时候老总已经找了我一圈了,于是赶紧去报到,可是电梯坏了,于是爬楼梯,等我爬上十层楼梯,得到一个更加郁闷的消息:“假期要加班&hellip;&hellip;&quot;(此处窗外电闪雷鸣并伴有大风)。</p> +<p>如果不是爬楼梯爬的喘不上气,我肯定要仰天长啸十分钟。</p> +<p>可怜我辛苦买到的往返火车票啊,现在要退掉!</p> +<p>可怜我定好的假日计划啊,现在要取消!淡定,要淡定</p>秋天打雷吗https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/Sat, 26 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/<p>到网上搜搜“秋天打雷吗”,发现还真有人问这个问题,我来告诉你吧,答案是肯定的!</p> +<p>昨晚打了大半夜的雷,对于本来就有“周末睡眠障碍”的我来说真是雪上加霜,一道道闪电把窗帘的影子投在床上,好恐怖啊。之前我也以为秋天不会打雷,直到被巨大的声音惊醒的时候我还以为有敏感词搞敏感词被敏感词了呢,靠,最近因为敏感词要举办敏感词弄得的大家都紧张兮兮的。好吧,秋天会打雷,sowhat?</p>电脑知识https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/Fri, 25 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/<p>电脑知识今天在greader上看了一篇文章,说是掌握了这些电脑知识就可以怎样怎样,我一看,写的都是些windows系统的操作技巧,有些见过,有些极为偏门。</p> +<p>恩,有点儿意思,我就曾经错误的以为这些windows技巧就是电脑知识。</p> +<p>大学的时候,当老师喷着唾沫讲解进程调度时,我正在研究如何修改win98的启动画面,当别人抱着书学习数据结构的时候,我却把如何修改win98资源管理器的脚本使其可预览mp3文件的技巧视为珍宝。</p> +<p>可是这有个屁用,现谁还用这些玩意儿?</p> +<p>干活儿时搞不定问题了还得去翻书,那里面才称得上是真正的知识吧(也得看是什么书)。</p> +<p>嘿嘿,说规说,我还是迅速地把这篇&quot;知识&quot;文章收藏了。</p>什么是_什么是_https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/Thu, 24 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/<p>关于&quot;什么是&quot;在google.com里搜索任何带有&quot;什么是&quot;的关键字比如&quot;什么是手机&quot;,连接会立刻被&quot;重置&quot;,并在短时间内无法浏览任何网站,但是在google.cn不会这样,在百度也可以。但是后两个……我又没搜索什么不和谐的东西,干嘛扼杀俺的求知欲捏!</p>快捷键https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/Wed, 23 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/<p>快捷键说实话我真的很担心未来计算机会像某些专家鼓吹的那样,完全没有键盘,而是通过语音或者眼神和人进行交流。我觉得可以没有鼠标,但是不能没有键盘。</p> +<p>记得大学的时候,有一次我的显示器坏了,我只好凭记忆的感觉通过对键盘的操作来听歌﹑&quot;看&quot;电影等,大概过了一个星期,发现即使没有显示器也可以做很多事情,这件事儿让我对键盘产生了很严重的偏爱。</p> +<p>我喜欢去记各个程序的快捷键,不是故意去记的,而是下意识的。</p> +<p>无论是简单的快速搜索还是宏替换,再或者是复杂的组合按键我都烂熟于胸。</p> +<p>还有比较偏门的,比如xp关机时按shift会出现休眠按钮等。</p> +<p>所已我一想到快捷键脑子里就会飞过一片一片的写着按键的字符串,都是对各个软件的快捷操作,擦都擦不掉。能用键盘操作的还是用键盘吧,否则总会有一只手徘徊在键盘和鼠标之间(上网斗地主除外),长此以往手腕真会受不了。</p> +<p>所以,我特别喜欢的软件都是提供了强大的快捷键功能的,totalcommander方便的操作使人上瘾,gmail和greader里的快捷键让人中毒,vim咒语般的命令叫人忘记鼠标的存在。</p> +<p>就说这么多吧,快到家了。</p>体检https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/Tue, 22 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/<p>体检今天是每年一度的例行体检,一切正常。</p> +<p>各个零件都正常,医生们也都正常,还像往常那样懈怠。</p> +<p>耳鼻喉科的大夫是我见到的唯一一位比我还偏执的人,先是抱怨办公室被人换了,体检系统无法登录,然后又觉得鼠标放的不是地方,掘起屁股找了半天鼠标,然后发现台灯的线和条码扫描器的线缠绕在一起,全部解开后才满意地叫我坐过去,最后发现我的椅子摆的不正,让我像小学生上课那样坐好才行。</p> +<p>花了老半天收拾好之后,就草草看了两眼:&quot;下一个!&quot;。</p> +<p>ps:我的视力果然下跌了。</p>听歌的心情https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/Mon, 21 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/<p>听歌的心情偶尔听了听朋友的mp3,发现是经典老歌大放送,最喜欢听老歌了,马上将其全部考走(没用剪切,不像某些考毛片的学生)。</p> +<p>有些歌相当长的时间没听过了,有些上次听的时候还在用盒带。</p> +<p>朋友向我抱怨说现在的随身听容量太大,选歌忒麻烦,跳来跳去跳不到心坎上。</p> +<p>我也有此感受,我平时干活儿时一般都开着foobar,列表里四五千首歌,几乎没有一首能耐着性子听完,于是我设置了全局热键,一边编码一边换歌,时间长了练就了只要听三秒钟前奏马上就听出是什么歌的本领,要是有此类比赛,我肯定能获奖。</p> +<p>为什么就没有耐心听完一首呢,为什么呢?</p> +<p>技术的前进加上人的浮躁!以前听磁带的时候,想跳下一曲得按快进,马达呼呼跑半天,既费时间又费电(那时买不起南孚),还不能保证刚好到下一曲(后来出的高级货具备自动检测的能力就另当别论了)。</p> +<p>那个时候我练出来的就是另一个本领了,用铅笔转磁带!</p> +<p>既省电又准确,所以我就经常一边听歌一边拿笔转另一盒磁带。</p> +<p>现在好了,想听什么直接在线就听了,遇见喜欢的直接就下载了,特别喜欢的就下载无损压缩的,再也不去逛碟店了。</p> +<p>然后在成千上万的曲目里跳来跳去。</p> +<p>可是,我听歌的心情那里去了?</p>还是说说吧https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/Sun, 20 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/<p>尽管朋友们露出鄙夷的目光,《建国大业》这部片子,我今天还是去看了。</p> +<p>片子净长133分钟(据不可靠消息说本来长度可达4个小时),加上开头有20分钟左右的广告,让我坐了两个半小时吧。虽然开场之前大家都去放水了但影片结束后电影院的厕所还是堵了个水泄不通。</p> +<p>感受呢,还行。演员阵容不是一般的强大,演员的演技实力也不是一般的强大,所以单纯从电影的角度来说,感觉应该是一部很不错的电影,所有人都很卖力气。</p> +<p>但是感觉时间上还是有点儿赶,故事讲的很跳跃速度很快,明星们冒个泡亮一下,连个沙发板凳都还没抢,就进入下一个环节了。</p> +<p>看的时候总是想跟小时候看的那个《开国大典》来比对,《开国大典》看了n遍了,很多情节还是记忆犹新,比如吃面没带钱,解放军砍总统府的棋,登城楼时往上爬台阶的那个长镜头。</p> +<p>这个《建国大业》里面还是有些笑点的,安排的还算轻松,比如冯巩老抢不上发言,女代表让郭德纲改底片,许三多报告发现前面的地主大院不容易攻打请求炮火支援,结果葛优一看,发现这是到了德胜门(好像是德胜门,管它哩)。</p> +<p>最后,这部片子可看,其他人说了屁也不算,何必让别人的垃圾评论影响自己的观点哩。</p> +<p>ps:电影而已,外籍演员的片子你还少看了?</p>手机没电了https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/Sat, 19 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/<p>手机没电了本打算在路上写今天的博客,结果手机一个劲儿地提醒电量低。</p> +<p>我看看能不能发出此篇。</p> +<p>我的手机配了两块电池,一块是原装的,另一块也是原装的。</p> +<p>在轻度使用的情况下每块电池可以坚持一周左右,最近使用过度,连三天都很勉强。</p> +<p>本来我家里有座充,公司有旅行充,但是现在在路上,没电了。</p>吹吹灰https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/Fri, 18 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/<p>吹吹灰我的博客三个多月没更新了,我估计上面已经开始结蜘蛛网了吧。</p> +<p>说是没时间更新显得太娇情了,不过确实是没时间。</p> +<p>这段时间以来一直在忙同一个项目,全部的身心都投入到上面去了,根本没有精力更新这里,连QQ﹑MSN等都一概不上了。</p> +<p>好在现在终于进入了一个新的阶段,我觉得也需要每天换换脑子,思考点儿别的东西,或许对工作质量有一屁股的促进作用。于是我又想到了写博客(为什么要说又呢),那就到这里吹吹灰尘吧,像往常一样,同时发送到livespace和blogspot。</p> +<p>说点儿啥呢?对了,我开始用twitter了,人的思想真是奇怪,在twitter没有被封掉之前一年多我就注册了,但是根本不用它,等到twitter被封了之后却又非常想在上面发发牢骚。</p> +<p>虽然不能正常登录,对于我等爱钻研爱学习的人到也增添了不少情趣。</p> +<p>这就像是和好不容易追的姑娘交往一样有意思(屁话)。</p> +<p>好吧我承认我不会像沉迷于google那样沉迷于twitter(什么你还有google瘾),至少不能耽误干活儿,我只是渐渐感到twitter才是最好的新闻来源(屁话)。</p> +<p>还有就是我在手机安装了gravity这个twitter客户端,这是个很容易让人中毒的软件,请不要误会,此毒既不是医学上的也不是计算机病毒。</p> +<p>先说这么多吧,经过这段时间的繁忙工作,我感觉我已经有了轻微的精神分裂迹象,看看上面的文字就能感受的到,好吧。</p>壁纸https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/Mon, 20 Jul 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/<p>桌面壁纸有嘛用?</p> +<p>整天看到人乐此不疲地换来换去,唧唧歪歪,真是还躁。</p> +<p>我的桌面壁纸就是黑乎乎的一片,上面散落着几行咒语般的VI命令。</p> +<p>擦!误把这里当推特了</p>https://sbabybird.github.io/p/%E8%B5%B6/Sat, 13 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%B5%B6/<p>赶!回来的时候,用自动售票机买的票,这机器有点儿缺心眼,认为我是短跑高手,给了我一张5分钟后就发车的票,看完之后我马上汗就下来了,一溜小跑,要说还是天津人民素质高,不仅不在乎我夹塞进站还帮我查询检票口的号码,我一路狂奔到车上,还没站稳,车就开动了!</p>俺又要到天津出差啦https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/Fri, 12 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/<img src="https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/20090612.jpg" alt="Featured image of post 俺又要到天津出差啦" /><p>上次的津门半日游一点也不过瘾,这次估计再待半天。</p>恐怖的超市https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/Thu, 11 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/<p>下班后去超市买东西,面对如此拥挤的人群,我感到大脑一片空白。</p>买了个U3https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/Wed, 10 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/<p>买了个U3鉴于东西放到网上太不安全,如果把资料整理到网上,比如说blog,说不定哪天就灰飞烟灭了(确切的说是被众所周知了),我觉得有必要将自己的知识管理系统转移到U盘上了。</p> +<p>现在U盘已经白菜价了,随便选了几款,最终选择了SanDisk的U3,因为附带了U3软件,所以据说可以将常用软件随身携带,还有安全保证。</p> +<p>可是这个U3软件我刚用了半天就把它卸载了,原因是:首先它不支持Linux,其次里面很多可移动的软件都是收费的,再次,对于禁用了自动播放功能的机器来说,操作是很麻烦的。</p> +<p>好了,我现在把它当普通盘来用了,准备在上面装个轻量级的Linux发行版,比如Puppy,然后再建个wiki,然后再慢慢把东西整上来。</p>看见了彩虹https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/Tue, 09 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/<p>第一次在北京看到了彩虹,手机拍的,不清楚。</p>还是难舍firefoxhttps://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/Fri, 05 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/<p>用了两个月的GoogleChrome浏览器之后,现在我又换回Firefox了,虽然Chrome很快,启动很快、网页加载很快、js脚本飞快,但是还是无法替代我的Firefox。</p> +<p>首先就是在页面的渲染效果上chrome没有firefox好看,尤其是对于中文页面的渲染,再有就是firefox拥有无比强大的插件系统,与其说舍弃不了firefox倒不如说是舍不得那些插件,delicious、greasemonkey、tabmix、ubiquity等等都是绝世好插件,给我的浏览带来完美的体验。</p> +<p>chrome也是很好的浏览器,从刚发布时的粗糙简陋到现在的稳定、高效、人性化,进步非常快,记得chrome刚发布的时候我立即就安装了,也立即就卸载了,太简陋了(也许是简约)。</p> +<p>后来2.0的时候我又忍不住安装了,这次提高很多,渲染中文字体也比以前好看,速度飞快,于是我坚持用了两个月,期间忍受着没有delicious书签的痛苦。</p> +<p>现在我又换回到firefox了,虽然启动慢点儿,内存占用多点儿,可是用起来真是很可手,听说马上要出3.5了,拭目以待。</p>博客不能访问了https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/Wed, 03 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/<p>我有两个同步更新的blog,一个在Google的blogspot,一个在微软的livespaces,blogspot不能访问很正常,可是从昨天开始,连放在livespaces的也不能访问了,真不知到抽的哪阵风。GFW,我叉你老叉的叉叉叉。</p>发型https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/Sun, 31 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/<p>小时候的语文课里有一段对鲁迅先生头发的描述:&quot;头发约莫一寸长,显然好久没剪了,却一根一根精神抖擞地直竖着。&quot;</p> +<p>能留出这种发型来,光有好的洗发水是不够的,关键是发质,我的头发就是这样。</p> +<p>我的头发现在两寸长都有,虽然大部分都乖乖趴着,但是一觉醒来之后,总是有几小撮不合时宜地直竖着,任你嗻哩还是魔丝都无法把他们撂倒。</p> +<p>每天早晨洗漱完毕到梳头这一环节时总是想起刚才那段对鲁迅的描述,然后顶着翘得像刺猬般的发型去狂奔。</p>扛包https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/Sun, 31 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/<p>媳妇带着孩子过来视察工作了,所谓兵马未动粮草先行,来之前先把小孩子用的东西打了个大包裹给寄了过来。</p> +<p>也不知是放假的原因还是快递公司的车没有动车组快,她们已经到两天了,我今天才收到包裹。一个很大的包裹,被快递公司在外面又包了一层蛇皮袋,然后又用透明胶带在外面缠了几圈,再加上一层土,看起来让我想到了民工兄弟。</p> +<p>就这大包,下班后我往肩上一扛,一股劳动者的优越感油然而生,用媳妇儿的话说,我要是手里再拿只山寨手机,然后把喇叭外放打开,播放一曲高亢的&quot;月亮之上&quot;,就完美了!</p> +<p>PS:我也是个民工,此篇没有鄙视我们民工的意思。</p>接站https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/Fri, 29 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/<p>第一次到火车站接人。</p> +<p>需要买站台票,售票员会要求凭火车票购买站台票,但是你说是来接人的,她就会毫不犹豫地卖给你站台票了,我感觉这是个漏洞。</p> +<p>到了站台才发现我来的实在是早了点儿,火车还有一个多小时才到站,接人的地方又不是候车室,别说椅子了,连个马扎都没有。</p> +<p>我干脆一屁股坐在了冰凉的地板上,怀着焦急的心情,等待火车的到来。</p>津门一日游https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/Wed, 27 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/<p>今天去天津出了一趟差。</p> +<p>感觉天津是个不错的地方,不愧是“上有天堂下有天津”(有这句话吗?)。</p> +<p>首先感受了一下中国最快的列车,时速达330的城际特快,椅子都没有坐热都已经到了天津站。</p> +<p>然后就听到了地道的天津方言,虽然是第一次到天津,但感觉很亲切,倍儿舒服。出租车司机话也很多,天南地北都挺能侃,和北京的出租司机有一拼。</p> +<p>下了车就奔公司分舵去了,那里的同事也十分热情,简单吃过饭,就去办公事。</p> +<p>然后就是打车去火车站,又是椅子没做热就到了北京。</p> +<p>所以,虽然是去了一趟天津,基本上也没啥感受,就是感觉那儿人挺不错,环境也不错,至少比北京强,还有就是感叹城际特快的速度,要是以后坐火车都像这样,那航空公司肯定要关张了。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Tue, 26 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<p>朋友婚宴,多喝了三五杯。明日出差,一路顺风!</p>郁闷的紧急任务https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/Mon, 25 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/<p>郁闷的紧急任务什么样的任务是令人郁闷的泥?</p> +<p>比如说,邻近下班的时候,老总紧急抠你,递给你一张小纸条,然后气喘吁吁的对你说:&quot;实在是安排不开了,你赶紧按照这个意思做个PPT,明天上午十点钟给客户演示一下。&quot;</p> +<p>你接过纸条一看,发现上面只有几行小字,比一条手机短信还短,更郁闷的是,上面的内容比较生辟,大家都没搞过的那种。</p> +<p>你长叹一声,心想,为什么总是等屎到了屁股门口才上茅房!</p> +<p>我今天就遇到了上述情况,多亏了Google的搜索和维基百科,我抽了三根烟才把PPT做完。</p>左撇子https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/Sat, 23 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/<p>作为一个天生的左撇子,我除了写字用右手之外,拿筷子,切菜,投篮,羽毛球,乒乓球,台球,包括用鼠标都是用左手。</p> +<p>其实最早的时候我连写字都是用左手的(右手只会扔板砖),只是后来被家长逼着换成了右手,这样直接导致的一个后果是,我的字写的很烂,除了自己的名字写的还勉强能看之外,其他汉字都写得潦草的像鸡挠一样。</p> +<p>平时也还有很多郁闷的事儿,比如我坐地铁,左手拿着卡在通道上一刷,嗒的一声,我正前方的门没开,左侧通道的门开了,还得蹬蹬蹬转过去。</p> +<p>为什么想起左撇子这件事儿呢,因为今天考试的时候需要拿起多年不用的笔来写一篇论文,论文写的烂不说,关键是字写得实在是不堪入目,想来想去除了怪我练字不够努力之外,也只能怪我当时没有坚持用左手写字了,只是,令人尴尬的是,我左手写的比右手写的还难看。</p>球雨https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/Thu, 21 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/<p>早在去年的这个时候,我们就发过牢骚,只要是我们想打篮球的时候,必然要下雨。</p> +<p>今天再次证明了这一点。每次我们兴致勃勃地带好球衣,穿上球鞋,给篮球打满气,这一切收拾停当之后,刚刚还晴朗的天空突然就飘来朵朵乌云,半个时辰之内必有甘霖降落。</p> +<p>可是如果我们仅仅是说好了打球然后又因故取消的话,这场雨就不下了,可见,求雨还得心诚才行啊!</p>该不该qqhttps://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/Wed, 20 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/<p>这两天我的系统特别慢,这归功于office,由于工作需要,最近我每天都需要打开大量的word文档,而这个时候我的机器就有些吃不消了,基本上打开个1m左右的文档大概需要一袋烟的功夫,这样的文件要是同时打开个4~5个,那我的机器就干不了别的了。</p> +<p>于是我就尽量减少并行运行的程序,并把占用大量内存的程序更换成占用少些的程序,比如把firefox换成了Googlechrome,后来我干脆把qq、msn统统关掉了,因为我发现根本没时间聊天。</p> +<p>但是问题就来了,以前我的qq是整天在线的,qq的状态就显示了我的工作状态,我妈每天都上qq看一看,有时是为了打牌,有时就仅仅是看看我在不在线,也不跟我聊天,看看就踏实。</p> +<p>我刚一个上午没上线就打电话问我,“什么情况?为什么qq不在线?”,我解释一番。</p> +<p>今天又有朋友发短信过来表示关心:“这几天上线这么少,有事儿吗?”看来,qq真的很重要</p>有意思的wolframalphahttps://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/Tue, 19 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/<p>wolframalpha 上线了,据说是个Google杀手,而且是基于“语义”的搜索我试用了一下,感觉挺有意思,本来按照我的理解是搜索“黄河有多长”就能直接给出答案,可是人家目前还不支持中文,又听说他的数学能力不是一般的强,于是输入了一个一元二次方程y=2x^2+3x,竟然直接把函数曲线画出来了看了学生们以后做作业不用那么麻烦了</p>戴着耳机干活儿https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/Mon, 18 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/<p>我以前写代码的时候总是习惯戴着耳机写,代码的风格总是跟着音乐的风格,一会儿古典一会儿流行,要是哪天赶上一段二泉映月之类的,写出的代码立即就透露出点点的哀伤,就连变量的命名也变得婉转起来。</p> +<p>当然了,如果碰上不好的音乐,写出的代码总是bug特别多!所以我过一阵子就会清理一下硬盘上的mp3,把那些影响代码质量的音乐彻底删除,比如黑色星期天之类的。</p> +<p>总之,音乐就像是我的粮食,一天没听音乐就像是没吃饭似的。</p> +<p>不过,要是按刚才这句话的定义,我已经个把月没吃饭了,最近有个项目搞得我压力特别大,耳机也懒得戴了,每天就是挣扎在一堆文档中间。</p> +<p>前天吃饭时突然得到同事的点醒,才意识到我还得把耳机戴上,于是乎,今天的工作就十分顺利,事情也很流畅,我仿佛又找到突然间的自我了。</p>发现一款vim代码段补全的插件--snipMatehttps://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/Sun, 17 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/<p>作为一个工具狂人,我对Vim的喜爱是天生的。喜欢Vim的简单、高效、朴素、专业&hellip;。所以Vim成了我的主编辑器,无论是在Linux下还是XP下都能帮我高效地完成工作。(当然,Visual Studio才是我混饭吃的主要工具,不过这不是今天要说的重点)</p> +<p>对于使用Vim的人来说,大部分的工作是用Vim来编辑代码,这么一来代码的自动补全就很重要了。虽然使用SuperTab、C-Support等插件之后Vim的代码补全功能有了很大提高,但是离VS下面的VSAssistant还是有一定的距离的,比如对于代码块的补全就不是很方便。</p> +<p>今天我发现的这个叫做snipMate的插件很好的弥补了这一点。这个插件再次证明了Vim是无所不能的,也说明了聪明人要是懒起来真的可以很过分。</p> +<p>snipMate的下载地址:<a class="link" href="http://www.vim.org/scripts/script.php?script_id=2540" target="_blank" rel="noopener" +>http://www.vim.org/scripts/script.php?script_id=2540</a></p> +<p>下载解压到<code>vimfiles</code>目录即可,然后打开Vim,试着编辑一个C文件,比如<code>hello.c</code>,输入<code>main</code>然后按Tab键,你会发现代码变成了下面这样:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="k">const</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span> +</span></span><span class="line"><span class="cl"><span class="p">{</span> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span> +</span></span><span class="line"><span class="cl"><span class="p">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>先输入for再按Tab键:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">count</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">{</span> +</span></span><span class="line"><span class="cl"><span class="p">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>再按Tab键,光标还会自动跳跃到count、i、code上,以方便编写自己的代码。snipMate同样也有if、while、define等常用的片段补全。</p> +<p>当然了,snipMate是支持各种语言的补全的,比如Python、HTML、Java等等。</p> +<p>最后,最重要的,就是snipMate支持自定义补全,语法也很简单,通过编辑配置文件可以很方便地定义自己的自动片段补全。</p> +<p>再来一段演示视频,看完后就马上去下载安装吧!<a class="link" href="http://www.vimeo.com/3535418" target="_blank" rel="noopener" +>演示视频链接</a></p>关机倒计时ahk脚本https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/Wed, 22 Apr 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/<p>最近习惯在晚上听着音乐或相声、评书睡觉,但电脑总是忘记关,于是使用Windows的<code>shutdown -s -t</code>命令来进行倒计时关机,但是我还嫌这样麻烦,因为要按多次键,还要输入命令,于是就写了下面的AHK脚本,运行后只要按下Windows键 + S键即弹出一个输入框,输入3600即一个小时,到时候就自动关机啦。后来觉得有取消关机的可能,就加了一个判断,到时候点击取消的话,就放弃关机了。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-autohotkey" data-lang="autohotkey"><span class="line"><span class="cl"><span class="nl">#s::</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="nb">InputBox</span><span class="p">,</span> <span class="n">time</span><span class="p">,</span> <span class="err">关机倒计时</span><span class="p">,</span> <span class="err">请输入一个时间(单位是秒) +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="n">if</span> <span class="p">(</span><span class="n">time</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">loop</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">if</span> <span class="p">(</span><span class="nv">A_Index</span> <span class="o">&gt;</span> <span class="n">time</span><span class="p">)</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">break</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">sleep</span><span class="p">,</span> <span class="mi">1000</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">count</span> <span class="o">:=</span> <span class="n">time</span> <span class="o">-</span> <span class="nv">A_Index</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">ToolTip</span><span class="p">,</span> <span class="err">剩余:</span><span class="nv">%count%</span><span class="err">秒关机 +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">ToolTip</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">MsgBox</span><span class="p">,</span> <span class="mi">33</span><span class="p">,</span> <span class="err">关机倒计时</span><span class="p">,</span> <span class="err">定时关机的时间到了,确定要关闭计算机吗? +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="se">`n`n</span><span class="err">此框</span><span class="mi">6</span><span class="err">秒内自动确定</span><span class="p">,</span> <span class="mi">6</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">IfMsgBoxCancel</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">MsgBox</span> <span class="err">取消了关机 +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">else</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">Shutdown</span><span class="p">,</span> <span class="mi">9</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="nb">return</span><span class="err"> +</span></span></span></code></pre></td></tr></table> +</div> +</div>原来如此https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/Wed, 15 Apr 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/<img src="https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/20090415.jpg" alt="Featured image of post 原来如此" /><p>同事传来一张图片,看了之后茅塞顿开,简直无法比喻了。</p>试用Google music的泡泡选歌功能https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/Sun, 29 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/<img src="https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/20090329.JPG" alt="Featured image of post 试用Google music的泡泡选歌功能" /><p>试用Googlemusic的泡泡选歌功能,可根据节奏和音色等属性选歌,最爽的是可以根据年代选歌。从我这张截图上可以看出我最爱听老歌。网址:http://www.google.cn/music/songscreener</p>if you want mehttps://sbabybird.github.io/p/if-you-want-me/Fri, 27 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/if-you-want-me/<img src="https://sbabybird.github.io/p/if-you-want-me/20090327.jpg" alt="Featured image of post if you want me" /><p>nan</p>就不说这是啥https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/Fri, 27 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/<p>呵呵</p>我是怎样进行知识管理的https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/Thu, 26 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/<p>我有个很大的毛病,就是爱好学习,有很强的求知欲。</p> +<p>我觉得主要的原因是好奇心太强,尤其是对于技术方面,恨不得什么都能掌握,后来发现那是不可能的。</p> +<p>但是我还是很喜欢搜集各方面的知识资料,总以为以后有时间会用到。</p> +<p>开始时我喜欢胡乱放文件,一些技术指南、一些能力技巧、一些文档秘籍等等,这些东西有些是从网络上获取的,有的是自己亲自总结的,都是很值得收藏的玩意儿,我把这些看似有用的东西一股脑地扔进硬盘。</p> +<p>我的硬盘越来越满,想找的东西越来越难以从堆积的资料中翻出来。</p> +<p>直到有一天我发现如果一份资料在用到的时候找不到,那就等于没存,甚至还不如不存,困惑了一段时间后,通过网络搜索第一次知道了“个人知识管理”这个“东西”。tobecontinue</p>吃饼https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/Tue, 24 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/<p>晚饭喝粥吃饼,就在离公司不远的粥铺。</p> +<p>这家的大麦粥很合我的口味,提供的主食里有一种面饼,拿辣椒、鸡蛋、面粉混在一起煎制而成,曰:尖椒饼。</p> +<p>吃起来绵软可口,十分鲜美,是我每次必点的主食。</p> +<p>美中不足就是份量太少,每次总被我三口两口吃完,于是我今天就一次点了两份,服务员好像很不解,瞪着眼睛有跟我确认两遍,然后转过身吐了吐舌头冲别服务员做了鬼脸。</p> +<p>她心想,没看出来,这家活这么瘦还这么能吃。</p> +<p>我心想,谁能吃啦?你们也不觉的害臊,这么少的东西也好意思端上来。</p> +<p>不过,我还是假装只吃了一张饼,那一份打包了在路上吃了…</p>重新启用工作日志https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/Mon, 23 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/<p>有几个月没认真写工作日志了,费劲搭建的trac平台也逐渐荒芜。</p> +<p>最近的工作效率一直不高,系统太慢,硬盘太乱,内存不足,桌面难看…狠了狠心还是没有重做系统,准备工作太多,要装得软件太多,到最后还是一样。</p> +<p>于是就本着磨刀不误砍柴工的精神,整理了一下文件夹,吹了吹trac平台的灰尘,开始好好写工作日志。</p> +<p>以后要坚持每天清理收件箱,每天早晨安排一天的事务,并注意每天回顾。</p> +<p>为了节省流量就写这么多吧…</p>如果可能的话,恢复跑步。https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/Wed, 18 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/<p>年前我连续两个月坚持晚上跑步,就是绕小区跑一圈,大概十分钟左右,后来天气太冷,就暂停了。</p> +<p>现在天气又暖和了,我想还是把跑步这个计划坚持下来吧,每晚跑一圈,对身体的效果也许不明显,就当是锻炼执行力了。</p>夕阳无限好https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/Mon, 16 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/<p>夕阳无限好</p>笔筒https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/Sun, 15 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/<img src="https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/20090315.jpg" alt="Featured image of post 笔筒" /><p>笔筒,自动对焦拍摄。</p>五年来看到的最过瘾的一部电影https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/Sun, 15 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/<p>周末的下午,按照惯例,看片!看到了论坛上推荐的《飓风营救》原名(Taken),名字取的有点儿让我不太想看,但是无聊的很,还是看看吧。</p> +<p>结果这个故事真的引人入胜,一个为了女儿而退役的老特工,为了女儿营救女儿,几乎把巴黎闹翻了天,虽然有点儿英雄主义,但看得让人很过瘾。</p> +<p>等到看完了我才想起来查查这个影片的导演是谁,我靠!居然是吕克贝松(开头的字幕居然没注意到),啥话也不说了,此牛人没拍过一般的片。</p> +<p>剧中的主角为了营救女儿,几乎干掉了他遇到的每一个坏人,而且手段十分干净利落,甚至残忍,这恰恰是最过瘾的地方,比起以往此类电影,主角往往带着仁慈再次受伤而导致事情失败,让人唏嘘,但此片不然,对坏人,乃至对坏人的老婆&mdash;&mdash;貌似一个十分无辜的人,也毫不留情,这种做法,将一个父亲对自己女儿的爱,表达到了极致。</p> +<p>总结成一句话就是:为了女儿豁了老命什么也不顾了!</p>手机发图片测试https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/Sat, 14 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/<p>手机发图片测试</p>手机写博客测试https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/Sat, 14 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/<p>手机写博客测试。</p>对googlereader中共享条目的看法https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/Thu, 12 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/<p>googlereader用了快两年了,我认为它是目前最好的在线rss阅读器了。</p> +<p>自从greader推出好友分享的功能后,我的好友也加了不少,而且大家都把自己认为有价值的条目共享出来。</p> +<p>但目前有点不太令我满意的地方是&mdash;-重复的共享太多,就是说一条有意思的rss内容反复的被好友共享,即使我已经阅读过此条目,当我在点击进入朋友共享的条目时,如果有朋友共享了该条目,则greader会认为我未读过这条内容,于是就会出现同一条资源被反复阅读的情况。</p> +<p>我觉得greader最好再智能一些,即我读过的东西,哪怕有n个人又共享了n遍,也不要列入到我的未读列表里,这样才好。</p>今天遇到的问题,GPRMC与GPGGAhttps://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/Wed, 11 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/<p>我以前写过一个程序,在pda上通过读取gps模块的串口信息来实现坐标定位的功能。通常gps模块都会输出标准的GPRMC与GPGGA信息,所以程序一直运行正常。</p> +<p>今天突然遇到奇怪问题,同事说我的那个程序不好使了,虽然能够打开gps模块但是不能解析经纬度等信息。</p> +<p>这是一个国产的智能手机,自带的gps导航程序可以正常定位,但我的程序不行。</p> +<p>于是我把从串口得到的信息统统打印出来,仔细调试,发现该gps模块可以正常输出GPGGA格式的信息,但输出GPRMC格式的信息却不完整,而我那程序正是通过解析GPRMC的信息来实现坐标定位的,于是修改代码,放弃GPRMC信息,改为从GPGGA里读取坐标信息,程序正常。</p> +<p>但我还是没弄明白这个gps模块为什么会输出不正常的GPRMC信息。</p> +<p>头大。</p> +<p>另附GPRMC与GPGGA的解释GPGGA的百度百科解释GPRMC的百度百科解释</p>我的好忘性https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/Tue, 10 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/<p>这次来京时,老婆大人托付的有点儿小事要办,帮家里的亲戚在北京买点儿药,冲剂类,应该就像板蓝根似的。</p> +<p>来之前,特地将药品的描述写了个纸条塞进我的口袋。</p> +<p>到了这边之后,进入工作状态后,立即将此事抛到了九霄云外了,直到老婆今日在qq上提醒我才想起。</p> +<p>后来经人提醒,药物无法邮寄,无论是平邮还是EMS均没戏,让我很是失望,不过还好,咨询快递公司后,人家说只要不是液体就行,而且感觉服务又比EMS好的,当然就用快递了。</p> +<p>靠,龌龊的EMS!额真鄙视你呀</p>坚持是最难的事情https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/Mon, 09 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/<p>我的英语水平一直徘徊在“烂”与“那是相当的烂”之间,那是因为我的词汇量一直少的可怜,我也曾经心潮澎湃地背单词,甚至背字典,但都没有坚持下来,每每想起都非常懊悔,如果从我刚学英语那天就每天记住一个单词的话,现在至少记住5000个单词了,当然这是不可能的,因为我没有坚持下来。</p> +<p>学习其他东西也是这样,十年前就摸过吉他,而且能像模像样的弹一首单调的曲子,也是因为没有坚持练习,到现在还是那个水平。</p> +<p>年前一段时间,我心血来潮,准备每天晚上坚持跑步,但是仅仅跑了两个月,就在冬至那天被打败了,天太冷了,还是不能坚持。</p> +<p>一旦松懈下来,就再也不想继续了。</p> +<p>有相当一段时间,我以为每天写一篇博客实在是很轻松easy的事情,但是前一段时间工作一忙,还是没能坚持下来。</p> +<p>哪怕是一天在上面唠叨一句也懒的罗嗦。</p> +<p>现在,下班了,我想换换脑子,思考了半天,竟忍不住感叹一句:“做什么事情,最难的就是坚持!”</p>昨天洗了一下微波炉https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/Sun, 08 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/<p>回老家温暖几天之后,我现在又恢复到一人吃一人住的状态了。</p> +<p>刚到北京就感冒了,先是鼻子消极怠工,然后是咽喉肿痛,再后来就咳嗽,直到昏昏欲睡,浑身酸痛。</p> +<p>昨天加了一天班,不想在外头吃了,就跑到超市买了一堆东西,想自己做着吃。</p> +<p>忽然想起来前几天上火车时老妈给我拿的煮鸡蛋,现在还都在冰箱里放着呢,只是不知还能不能吃,发短信请示老婆,问是否还能吃,批示曰:“浪费可耻,尽量吃掉!”我想也是,何况这可是纯天然的柴鸡蛋啊,在北京想吃还吃不到哩。</p> +<p>于是就把一个鸡蛋放到微波炉里,想热一下再吃,只怪我由于感冒引起的大脑短路,忘记给鸡蛋剥皮,在加热到15秒的时候就听到一声巨响,就像正月十五放烟花的那种响声,坏了!赶紧关掉微波炉的电源,打开一看,鸡蛋炸成了米粒那么大小碎片,均匀地分布在整个微波炉里。刚好,我早就想清理一下微波炉了,借此机会,清洗一下!</p>在python下调用gdal库来显示影像图https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/Thu, 19 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/<p>很久没有更新了,懒是一方面原因,另一方面是因为最近忙的没有心思写博客了。其实按理说,每天抽出一点时间来唠叨两句还是能够办到的,只是一旦停下来,再开始就更费尽了。随便整理一些东西发上来吧,又是关于技术的。</p> +<p>有一段时间我需要写程序来处理tif格式的影像图,在网上找来找去就发现了gdal这个好东西,可是在vc下调用它还是有些罗嗦,达不到快速调试的效果。于是前两天我又试着在python下调用gdal,把思路先用python实现一遍,调试通过了再用c++。下面是最简单的显示一幅tif影像图的python代码:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">pygame</span> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">osgeo</span> <span class="kn">import</span> <span class="n">gdal</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">init</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"><span class="n">screen</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">set_mode</span><span class="p">(</span><span class="n">WINSIZE</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">set_caption</span><span class="p">(</span><span class="s1">&#39;gdaltest&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">time</span><span class="o">.</span><span class="n">set_timer</span><span class="p">(</span><span class="n">USEREVENT</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">dataset</span> <span class="o">=</span> <span class="n">gdal</span><span class="o">.</span><span class="n">Open</span><span class="p">(</span><span class="s2">&#34;c:/test.tif&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">surface</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">Surface</span><span class="p">((</span><span class="n">WINWIDTH</span><span class="p">,</span> <span class="n">WINHEIGHT</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="n">parr</span> <span class="o">=</span> <span class="n">dataset</span><span class="o">.</span><span class="n">ReadAsArray</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">WINWIDTH</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">WINHEIGHT</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">r</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">g</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">img</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">PixelArray</span><span class="p">(</span><span class="n">surface</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">WINWIDTH</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">WINHEIGHT</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">img</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">],</span> <span class="n">g</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"><span class="n">show</span><span class="p">(</span><span class="n">img</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div>咦!https://sbabybird.github.io/p/%E5%92%A6/Wed, 04 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%92%A6/<p>最近一段时间都会比较忙、相当忙、非常忙,正常下班的时间已经被无情地调整到了晚上9点,请注意,我说的是下班时间,我可没说加班加到几点。</p>我回来了https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/Sun, 01 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/<p>真快,又开工了。</p>春节好!https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/Sun, 25 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/<p>牛年大吉!万事顺利!</p>什么也比不上家的温暖https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/Sat, 24 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/<p>好啦,历时十二个小时,经过无数次的转车,终于平安到家了。</p> +<p>带着一身的疲惫,当我走进家门的那一刻,所有的烦恼与苦难都在一霎那间烟消云散了。</p> +<p>管他是令人发指的票贩子,还是无处不在的小偷,是零下十几度的寒冷天气,还是把我折磨得筋疲力尽的客运系统,都通通给我一边去吧。</p> +<p>虽然屋里没有暖气,但是可口的饭菜,家人的欢笑,这一切都让我觉得比开着暖气的北京温暖多了!</p>一路顺风!https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/Thu, 22 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/<p>一路顺风!明天就到家啦。</p>过年的蜡烛https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/Wed, 21 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/<p>说说小时候过年的事情吧,那个时候我们村里还没有通电,平时晚上会点煤油灯来照明,过年的时候家家户户都要点蜡烛,俗称&quot;大蜡&quot;。</p> +<p>这可不是一般的蜡烛,而是非常巨大的一对蜡烛,差不多有两斤重,顶端粗壮,下端圆滑,底部有孔,上面通常写着非常有年味儿的对联,如&quot;一杯美酒敬天地,三柱清香谢神灵&quot;等字样,金色的字,红色的蜡闪闪发光。</p> +<p>这么大的蜡是不能直接放在桌子上点燃的,一般要有支撑蜡的架子,俗称&quot;蜡台子&quot;,现在的小朋友可能都没有见过蜡台,那是一个精致的木头架子,刷上红漆,中间有两根铁柱竖着用以把蜡烛插在上面,手巧的木匠会把蜡台做的颇具艺术感。</p> +<p>也有的人家直接把一个大萝卜切开两半,平着摆在桌子上,再插上两根筷子,也成了不错的蜡台。</p> +<p>大蜡会在大年初一那天四五更天的时候点燃,我过年一般起的很早(小孩子最爱过年了),起来之后洗漱完毕第一件事情就是点大蜡,大蜡的火苗很大,照的整个堂屋像白天一样明亮,也预示着大家在新的一年里红红火火,吉祥如意。</p> +<p>点大蜡、敬香、吃饺子,然后放鞭炮这个流程就是我对小时候过年的记忆。</p>最后的倒计时https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/Tue, 20 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/<p>还有两天就回家了,身在北京,心早已飞到了家人的身边。 </p>看完了《叶问》,心情沉重地去洗澡了https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/Mon, 19 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/<p>还是洗洗睡吧。</p>显卡驱动导致程序不能正常最大化窗口https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/Mon, 19 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/<img src="https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/20090119.JPG" alt="Featured image of post 显卡驱动导致程序不能正常最大化窗口" /><p>这两天做了一个程序的demo,在台式机上十分运行正常,在笔记本上运行时,窗口就是不能最大化,最大化之后程序窗口只能显示一半,鼠标也拖不动它,因为windows认为你的窗口既然已经最大化了所以就不让你拖动了:)。</p> +<p>反复调试程序也找不到问题所在,最终才想到是显卡驱动的问题,于是我抱着试试看的态度(这个语气好熟)把Nvidia好心提供的附加程序&quot;desktop-Manager&quot;功能给禁用了,程序立即就好使了,窗口可以正常最大化了。</p> +<p>如图</p>没信心了https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/Sat, 17 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/<p>前天在网上看了个视频,某人(其实就是rickwakeman)演奏了一段keyboard,看得让我心神激荡(地址在这儿),旋律速度极快,却也十分好听。</p> +<p>此人运指如飞,根本看不清是哪根手指在动,小手指摆动得就像蜻蜓的翅膀,好像就要发出嗡嗡声似的。</p> +<p>看完视频后我长叹一声,唉,咱这辈子也别想弹成这样了。</p>我的指纹https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/Fri, 16 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/<p>最近在做一个与指纹识别有关的项目,选了几家硬件。</p> +<p>我发现,无论吹嘘的多牛逼的识别硬件,对我的指纹都无可奈何,对我同事指纹的识别率基本达到百分百,却常常认不出我的指纹。</p> +<p>这样我调试程序的时候就很麻烦,常常需要同事的帮助,动不动就拿着硬件拉着一个同事的手说:&quot;麻烦帮个忙,手指头借我用一下&quot;。</p> +<p>没办法,我的指纹太浅,无论是光学识别器还是电容识别器都不能很好的识别,不知道这是否意味着我可以放心的去作案了?</p>我的垃圾,我的回忆https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/Thu, 15 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/<p>今天妈妈打来电话,说在家里整理房间,整理到我曾经的书房兼卧房,问我那一书柜的书还有一堆乱七八糟的东西该如何处理。</p> +<p>按照我爸的建议是,该清理的统统清理,免得占地方。</p> +<p>但我在电话里还是坚持要把我的那些东西全部保留下来,哪怕是小学课本也最好别扔掉。</p> +<p>我想到了我的&quot;百宝箱&quot;。</p> +<p>其实不加引号也行,虽然对别人来说那里装的都是垃圾,但对我来说那里装的绝对都是宝贝,十来年没碰过了,也记不起来装的都是有什么了,印象比较深的大概有几只拆开的电子表、闹钟,拆散的收录机配件,螺丝,铁丝儿,手电筒啥的。</p> +<p>在没有电动玩具玩耍的年代,这些都是我的玩具,而且一直陪伴我到了初中毕业。那时候,我每晚都被&quot;逼&quot;着看书写作业,累了的时候就拆个闹钟玩玩,或者随便接几个喇叭听音乐,一个人往往不知不觉玩到深夜而忘了睡觉。</p> +<p>我曾经幻想着把电子表改装成游戏机,很显然不能成功,不过我还是乐此不疲,所以我的百宝箱里大概有四五只拆毁的电子表,有语音报时的,还有公鸡打鸣的。</p> +<p>出来上学以后,这些东西就基本没动过了。</p> +<p>书,倒是偶尔还翻翻,那也是七八年前的事儿了。</p> +<p>这一柜子书基本没有名著,分类杂乱的很,童话故事与科普读物居多,里面甚至还夹杂着一些课后习题集、作文选刊之类的等很多根本算不上是书的东西。</p> +<p>当时信息不发达,我又被限制不能看太多电视(现在想想该庆幸才对),这些仅有的书都被我翻了又翻,看了又看,陪我度过了我的童年时光。</p> +<p>一个废纸箱,一柜子书,那个时候这些就是我的世界,正是这些造就了我自闭、偏执而又爱幻想的性格。</p> +<p>于是我对老妈说,还是别扔了吧,这些都是我美好的回忆啊,其实我还想接着说,说不定哪本书里还夹着我的情书呢,但是我妈已经把电话挂断了,她没时间听我啰嗦。</p>买到票了https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/Wed, 14 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/<p>如题,虽然给票贩子加了一百元钱,但也还是比坐飞机划算。</p>完美的社交关系https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/Tue, 13 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/<p>今天听到一句至理名言:&quot;作为一个中国人,最好认识一个票贩子,一个交警,一个主任医师,一个幼儿园老师,一个律师,一个记者,一个修电脑的。</p> +<p>&quot;对于我来说,除了最后一个,其他的我都不认识,因为最后一个就是我自己。</p>拔河https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/Mon, 12 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/<p>公司组织全体员工在北京某郊县(靠,好神秘啊)开了三天年会。</p> +<p>年会,就是大家忙了一年了,抽个时间在一起喝喝酒,放松放松,再顺便总结一下工作。</p> +<p>很显然,我对前者更感兴趣,这期间,我参加了一场拔河比赛,喝了几顿酒,飙了几首歌,甚至还进行了一次演讲。</p> +<p>感触最深的就是这场拔河比赛了,我们组从确定完人数之后就是公认的&quot;死亡之组&quot;,因为全是体格单薄的人,个个身材像根铅笔。</p> +<p>在赛前,我们一直担心我们组上去就被别人轻易拽过去,但是,当我们都抓住绳子,并且在此起彼伏的加油声中竭尽全力时,我才发现,我们其实不弱。</p> +<p>人是有巨大的潜力可挖掘的,我们的身子向后倾斜,快要倒在地上,双手使劲攥住绳子,手已经失去了知觉,也看不清跳起来喊着&quot;加油!&quot;的人的脸,那一刻我只知道的是,要把绳子拽过来。</p> +<p>最后,在僵持了将近一分钟后,我们终于感到绳子一轻,都倒在了地上。</p> +<p>虽然在接下来的两局里我们都败下阵来,但是虽败犹荣,我们僵持不下并最终胜利的那一局,被公认为在整场比赛中的最精彩的一局。</p> +<p>虽然第二天腰酸背疼,但是我会记住这次拔河比赛,以后也会把这事儿当作床边故事讲给孙子听,虽然最后可能告诉他,爷赢了!</p>https://sbabybird.github.io/p/%E7%BB%AD/Thu, 08 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%AD/<p>把ubuntu换成xp了,深度精简版的,速度比ubuntu快多了。</p>不好意思,小折腾了一把https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/Wed, 07 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/<p>前一段时间我在eeepc上装了ubuntu,这个linux的发行版确实比asus自带的那个强大得多得多得多(继续),但是有个缺点&mdash;&mdash;慢。</p> +<p>为此我忍了很久了。</p> +<p>今天回到家,想装上一个最新的播放器软件,发现没有合适的安装包,于是就想,反正有源码,那就自己编译吧,于是,卷起袖子就开始了。</p> +<p>下载代码后,configure发现我的gtk太老,apt-get又不给我装gtk(说我已经有了最新版),于是我又要先把gtk的最新版编译好,但是问题又来了,gtk的编译依赖glib,于是我又要先把glib编译好,但是问题又来了,glib的编译又依赖另外的包,于是我耐着性子一个一个把这些包都编译完,make,makeinstall,手都酸了,然后再编译gtk,又告诉我没有atk、freetype、cairo、pango、pixman等等一大堆依赖包,</p> +<p>好吧,非编译出来不可!</p> +<p>全部下载这些东东的代码,一个一个make再makeinstall,终于可以编译gtk了,终于把gtk编译完了。发现我的Firefox却运行不起来了,Fuck!</p>四个第一次https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/Tue, 06 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/<p>1、今日第一次在大街上掀开井盖钻了进去。(当然是经过许可的)</p> +<p>2、今日第一次进入电力隧道,&quot;初极狭,才通人&quot;,进去后发现地下真是豁然开朗,别有洞天。</p> +<p>3、今日第一次使用单反相机,一个字儿,&quot;沉!&quot;</p> +<p>4、今日第一次近距离接近数十万伏特高压的设备。</p>每个男孩都应该有一把吉他https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/Mon, 05 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/<img src="https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/20090105.png" alt="Featured image of post 每个男孩都应该有一把吉他" /><p>昨天,飞行鱼一脸扭捏而又羞答答的对我说他终于没忍住,在元旦的时候买了把吉他。</p> +<p>这厮早就想买吉他了,但是这个想法多次被我扼杀在饭桌上,我以我的亲身经历,动之以情晓之以理地将他想买吉他的念头一再浇灭。</p> +<p>比如说我十年前就买过吉他,但是今天仍是连一首曲子都弹不全,比如说我曾经以为弹的不好是因为吉他不行,在我买了第二把好琴之后我才发现是自己的水平不行,说到动情之处声泪俱下,唏嘘不已。</p> +<p>但这厮还是买了,他说,他在听了卖琴的老板弹奏完一曲《加州旅馆》之后,就立即掏钱了,仿佛买回去的是那一曲《加州旅馆》。</p> +<p>不过自己回去连《加州招待所》都弹不出来,只能摆在那里当个装饰罢了。</p> +<p>那,买了琴,为什会感到羞涩捏?</p> +<p>因为我们早都过了&quot;男孩&quot;的年纪,早就错过了拿着吉他装逼的季节,只是心里总有个情节而已,你要知道,装逼被自己看穿了总是怪不好意思的吧。</p>总有些事情让你感到沮丧https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/Sun, 04 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/<p>今天看到一组新闻,里面总结了发生在2008年度的有趣而又真实的事件,其中有一条,我觉得非常真实:&quot;一个男人在暴风雪的芝加哥街头奋力铲雪一个小时,终于给自己的车清出了一个停车位。</p> +<p>当他把车开来时,发现一位女士已经抢了他的位置——可以理解,他朝她开了一枪,把她干掉了。</p> +<p>&quot;说实在的,对此男士,我表示十分的理解,我可以理解这个家伙能有多么的沮丧。</p> +<p>今天晚上去&quot;敦煌老马家&quot;吃面的时候,发现比我后到的客人都吃完了,而我的还没端上来时,我才发现原来做面的师傅把我这碗忘了,这个时候我有了和上面那个哥们儿一样的感觉,只是咱们国家不允许带枪而已。</p>有啥业务非得在银行办啊https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/Sat, 03 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/<p>谁都不愿意排队,但是很不幸,这个世界上到处都要排队,上车要排队,看病要排队,买东西要排队,收钱要排队,交钱也要排队,如果哪天不巧的话,上公共厕所蹲个坑都得排队。</p> +<p>要说排队排的最厉害的,还是得数银行!前一阵子,股票特别火的时候,银行各个网点都是爆满,想去取个钱买个电啥的,基本上是上午拿号下午办,这还算是幸运的,如果赶上你的时候人家正好下班,那么,对不起,麻烦您明儿早点儿来。</p> +<p>最可气的是,在银行里办业务的人那个磨叽劲儿,我就纳了闷了,赶上我的时候,去取钱也好存钱也罢,绝对不会超过一分钟去(就算是取个十万八万的也顶多5分钟吧),可是往往有些人在窗口前,屁股往椅子上一挪就是十几二十分钟,难道你是去聊天去了,里面的柜员也贼磨叽,一会儿站起来拿点儿表格,一会儿和隔壁女孩聊中午吃什么。</p> +<p>我就是想不明白,那些在柜台动辄磨叽几十分钟的人,他们办理的都是什么业务?</p>以后不在电脑上玩游戏了https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/Fri, 02 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/<p>昨天,一个哥们给我打电话说他的机器中病毒了,系统瘫痪了,光驱也坏了,让我去看看,顺便去他家里玩。</p> +<p>于是今天我就过去了,到那儿以后,这家伙已经买了新光驱回来了,还顺手买了个移动硬盘外加一个优盘(怎么想的?)。</p> +<p>于是俩人开始拆电脑、装光驱、装系统、装软件。</p> +<p>下午的时候,觉得有点儿无聊,这哥们儿突发奇想,决定出去转转,想买个游戏机耍耍。</p> +<p>于是我们又跑到他买光驱的电子市场,直奔电玩柜台,老板看到两个奔三的&quot;小伙子&quot;过来,开始都不太爱搭理,听到我们要买游戏机,就显的热情起来。</p> +<p>我们先后试了Xbox360和任天堂的wii,虽然xbox的画质很优美,但是最终还是决定买了任天堂的wii,日版原装套装外加一个原装手柄,一共两千三百块,老板看我们连价都没还一下(这哥们买东西跟我一样),主动送了20张游戏碟。</p> +<p>立即打车回去,接上电视就开始玩,一边玩还一边感叹:&quot;小日本设计的游戏机就是好玩!&quot;。</p> +<p>网球、保龄球玩起来跟真的一样,那个无线手柄绝真是个绝妙的设计,反映十分,游戏虽然画面稍微有点儿逊色,音质也比较一般,但整体来说,玩游戏的体验还是要比在pc上玩要爽的多。</p> +<p>可惜明天还得加班,否则今天肯定玩疯了。</p>第一天,提点儿希望https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/Thu, 01 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/<p>今天是2009第一天,按照计划,我基本上在家宅了一天。</p> +<p>早晨起床后边洗热水澡边洗衣服,然后出去买菜,准备做我很久没吃到的牛肉饭。</p> +<p>等到七七八八收拾差不多的时候,也就上午十点多了,纲要休息会儿吃口饭,却发现手机里已经收了n多的新年短信,于是饭也顾不上吃,先把短信回复了再说,这几天移动又赚翻了。</p> +<p>然后就是上午下午各看一部电影,到了晚上去老杨家吃了顿饭,打了会儿牌,喝小酒喝得微醺。</p> +<p>总之,我的新年第一天,就是这么平凡地度过了,就像是一个普通的周末。晚上回到电脑前,向往博客里写点儿东西,又觉得脑子里空空的,本来还相对08年做个总结啥的,后来想想,实在是没什么好总结的,那就对09年提点儿希望吧。</p> +<p>想起我前两天列的一个09年的学习计划,这个计划十分贪婪,牵涉到各种技术和技能,感觉不是很靠谱,还是说一下大方向上的愿望吧。</p> +<p>我希望在2009年里,我能实现如下愿望。</p> +<p>1、英语水平飞速发展,可以正常阅读英文文档与小说(阅读能力要像看中文的《故事会》一样)。</p> +<p>2、体重增加到65公斤。</p> +<p>3、编程水平继续提高,主要在基础算法与数据结构方面。</p> +<p>4、掌握一种开源三维引擎。</p> +<p>5、vim的应用更上一个台阶,使vim彻底替代我机器上的编辑器。</p> +<p>6、能够用上3G。</p>再见2008,你好2009https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/Wed, 31 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/<img src="https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/20081231.png" alt="Featured image of post 再见2008,你好2009" /><p>此处无声胜有声</p>blender练习https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/Mon, 29 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/<p>空酒杯一只</p>早场电影https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/Sun, 28 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/<p>周末,睡了个懒觉,九点出去看了一场早场电影,一个人。本来以为早场电影人会很少,结果发现电影院门口居然还排了队,当然了,都是冲着冯小刚的《非诚勿扰》来的,对于这部电影,我没什么可点评的,只能说,值得看,比起以往的冯氏贺岁片,味道还没变,故事不错,讲的也不错。回来以后,又把《甲方乙方》翻出来看一遍。</p>livespace 真难用https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/Fri, 26 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/<p>同样是使用电子邮件发布的一篇博客,发布到blogger的效果比法在livespace里的效果要好,昨天发了一张图片,blogger那边简直是又好又快,显示的还是原始大小,到了msnspace这边,给我整成了一个只有指甲盖大小的缩略图!您要问为什么放着好好的blogger不用,反而还在这贱兮兮的说livespace的坏话?</p> +<p>答案是,中国大陆无法正常使用blogger的服务,为什么不能正常使用呢?</p> +<p>答案不是因为人家歧视咱,而是@#¥%@#¥%@#¥%。</p>Blender练习https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/Thu, 25 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/<p>无聊,用blender作图一副,练习。</p>简讯https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/Thu, 25 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/<p>昨日,也就是平安夜,一年N度的节日会餐,在老居家隆重举行,出席宴会的有,大宝夫妇,小江夫妇,老杨夫妇及其儿子,会餐在亲切友好的气氛下进行,大家就共同关心的话题交换了意见,纷纷表示,鱼炖的不错,汤的味道更美!&mdash;&mdash;路边社记者&quot;从容地狂奔&quot;在现场吃饱后发回的报道。</p>跑步指数零颗星https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/Tue, 23 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/<p>前天,就是冬至那天,据说是n年以来最冷的冬至,冷就不用多说了,反正实在是不能出去跑步了,我还是先将跑步停一停,等跑步指数上升到两颗星时再开始跑。</p>串台https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/Mon, 22 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/<p>我每天大概有2个小时呆在公交车上,与拥挤的地铁相比,我坐的这趟车还算宽松,车上装有移动电视,每天循环播放着垃圾节目,让你在忍受堵车又堵心的同时也备受垃圾广告的煎熬。</p> +<p>最近两天,节目质量有所好转,有时甚至能听到一两首老歌,不禁让人陷入回忆,有时甚至想跟着哼唱两声。</p> +<p>可是很快我就又发现了新问题,那就是,电视的声音总是被公交报站的声音打断,听起来有时让人如鲠在喉有时又忍俊不禁。</p> +<p>比如吧,潘美辰在屏幕上正抱着话筒深情款款滴唱着:&quot;我想要有个家,一个不需要多大的地方~~~&quot;突然潘美辰变身成一个大嗓门的售票员,&quot;龙花园到了,下车请出示车票,youarearrivinginlonghuayuan。。。。。</p> +<p>&quot;罗哩罗嗦老半天直到歌曲唱完,在或者伍思凯刚唱完一句:&quot;没有承诺,却被你抓得更紧~~~&quot;然后紧接着就说:&quot;车辆起步,请抓稳扶好,刚上车的乘客请往里走,前方到站是叉叉叉&quot;。</p>突然的自我https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/Sun, 21 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/<p>今天是二十四节气里的冬至,天气突然变得冷酷起来,冷得令人失去意识,我从来没有像今天这样觉得暖气片如此可爱,以至于我抱着它&quot;亲热&quot;了半天。</p> +<p>按照惯例,冬至要吃饺子,可是我一个人,既不想吃速冻的,又不想在家自己做,所以,晚饭我就准备出去吃了。</p> +<p>外面的天气比我想象的要冷的多得多,尤其是北风,吹得我站都站不稳,风不断从袖口、领口里钻进来,有一段时间我根本无法呼吸。</p> +<p>出了小区东门,过马路,看见一个热气腾腾的小菜馆,隐约能看见牌子上写有&quot;水饺&quot;字样,二话不说,撩起帘子钻了进去。</p> +<p>在这儿住了这么久,第一次发现这儿还有个饭馆,店面很小,门口是个涮麻辣烫的锅,几个贪吃的家伙正稀里哗啦地吃着麻辣烫,里面一共四张小桌子,铺着桌布,收拾得很干净,墙壁上挂了几串红辣椒,最里面是个小柜台,老板娘正低着头算账。</p> +<p>打过招呼,做了下来,&quot;您整点儿啥?&quot;听了老板的口音,我才发现这是东北小两口开的店,顿时觉得亲切起来,感觉这儿就像是《东北一家人》里面的&quot;达达杀猪菜&quot;(实际上这儿还真有杀猪菜)。</p> +<p>&quot;有水饺吗?&quot;我问他,&quot;有,猪肉大葱、猪肉酸菜&hellip;&quot;,&quot;要猪肉酸菜的吧&quot;我说。</p> +<p>&quot;要多少?&quot;他又接着问&quot;像您这个头的怎么着也得一斤吧?&quot;,呵呵,我哪能吃得完一斤啊,为了不浪费粮食,我还是只要了半斤。</p> +<p>热气腾腾的饺子很快就端了上来,为了驱赶身上的严寒,我又要了一瓶二锅头(二两装),实际上,是这个馆子的氛围让我想喝两口,不知道为什么,看着忙碌的老板和老板娘,看着吃麻辣串的情侣,我抿了两口醇香的二锅头,眯起眼睛,突然感觉人生又美好起来&hellip;&hellip;</p>找到一个不错的游戏https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/Sat, 20 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/<p>这儿http://www.appinn.com/Frets-On-Fire-Portable/,是一个好玩儿的吉他游戏,可以让我这个吉他弹的很烂的人过过干瘾。</p> +<p>ps:今天跑步指数2星★★☆☆☆</p>周末大堵车。https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/Fri, 19 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/<p>从吃完饭到现在就一直坐在车上,俩小时了,还堵在路上。</p>跑步指数1颗星https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/Thu, 18 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/<p>好像最近我的博客里只剩下我每天在唠叨天气了,没办法,劳累了一天的脑子实在是没有力气在攒出一篇上千字的文章了。</p> +<p>今天的跑步指数是一颗星,极不适合跑步(满分五星),天气寒冷,空气污浊,空气中弥漫着烧烤的味道,实际上是天然气取暖燃烧的烟雾。</p> +<p>我还是出去跑了一圈,权当是为了锻炼自己的执行力。</p>在家办公https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/Wed, 17 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/<p>像我这样的好员工真是打着灯笼也不好找啊,刚刚完成了一份公司安排的ppt,啊~呵(打个哈欠)。</p> +<p>今天果然降温了,跑步的时候明显感觉到了寒冷。</p> +<p>回来后,我把家里的窗户打开来换了换空气,才几分钟的时间,室内温度就从19度降低到了15度!</p>休息https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/Tue, 16 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/<p>无论有没有外界的压力,总是不能放松自己,下班回家后看个电影都觉的在浪费生命,其实是走进了生命的误区而已。</p> +<p>我们总是不相信自己的感觉,一会儿别人说&quot;要活在当下&quot;,有点儿今朝有酒今朝醉的意思,可是又有人蹦出来说,&quot;四十岁前就别提享受&quot;,我TM到底该信谁的?</p> +<p>忒难为我了。</p> +<p>算了,不想发牢骚了,博客从来都不是一个可以倾诉的地方。</p> +<p>我想说的意思是,这个世界上充斥着各种声音,不时有&quot;专家&quot;跳出来唧唧歪歪,又或者有&quot;过来人&quot;大谈经验感受,</p> +<p>其实,每个人都有每个人自己的王国,在这个王国里,自己就是国王,好好当好自己的国王就行了,不用管别人的看法,</p> +<p>我太累了,只想好好休息。</p>费了不少脑细胞https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/Mon, 15 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/<p>今天大脑超负荷运转,下午连续工作五个小时没休息,一直在思考一个程序上的问题,最后终于解决了。</p> +<p>终于把一个老程序的数据库引擎从恶心的access换成了可爱的sqlite了。</p>完美的星期天https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/Sun, 14 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/<p>早上六点蒙蒙胧胧醒来,看了一眼时间又昏睡过去,再睁开眼已经九点半了,起来洗漱完毕刚要做饭,接到老杨电话,需要火速出去办点儿公事。</p> +<p>好吧,早饭成了一杯麦当劳里的咖啡。</p> +<p>办完事回来已是中午,在老杨家喝了一点儿小酒,喝的微醺,毕竟六十七度的&quot;老白干&quot;不是浪得虚名。</p> +<p>吃完饭就顺势去了老居家里,约了大宝来打牌,大宝二话不说提着新买的麻将牌一路小跑就过来了。</p> +<p>就这样,在午后洒满温暖阳光的客厅里,我们忙里偷闲,搓了一下午的麻将。</p>又要降温https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/Sat, 13 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/<p>据一向不靠谱的天气预报说,最近又有大风降温天气,明天就席卷而来了,但愿不会影响我的跑步计划。</p>白瞎了这么好的月亮https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/Fri, 12 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/<p>今夜星光灿烂,今晚月色撩人,据传闻今晚月亮正好处在与地球相聚最近的位置,所以应该开起来特别的大。</p> +<p>刚刚跑步的时候,证实了这一说法,月亮果然又大又圆,感觉就在我家楼顶上似的,我忍不住跑回去拿出相机来拍照。</p> +<p>结果是让人失望的,我的相机既没有三脚架,也没有好镜头,再搭上我这个糟糕的摄影师,真是白瞎了这么好的月光了,我在寒风中冻得瑟瑟发抖,鼻涕都快滴到液晶屏幕上了,照片要么漆黑一片,要么抖得天上到处是月亮,唉!</p>冒个泡https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/Thu, 11 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/<p>看来我就是把livespaces当微博了,每次都懒得多打几个字。</p> +<p>原因来自各个方面,尤其工作压力,每天徘徊在办公室的椅子和卧室的大床直接,两点一线的生活使我很难再提起兴致在博客里扯闲篇。</p> +<p>今天仍然顶着严寒跑步,空气不是很好,跑步系数为1★☆☆☆☆不适合跑步。</p>跑步继续!!!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/Wed, 10 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/<p>温度回升到最冷才-6度了,风也不那么大了,暂停了整整一周的跑步计划,今天正式恢复。</p> +<p>室外其实没我想象的那么冷,上身只穿了一件羊毛衫,仍然跑的微微出汗,拿着秒表的手刚开始感觉快要冻僵,但跑了一会儿之后就感觉很暖和了。</p> +<p>路况比我想象的糟糕,由于白天飘了几片雪花的缘故,导致部分路面已经结冰,跑在上面十分危险,差点摔倒。</p> +<p>总的来说,跑一跑还是很舒坦的。</p>雪呢?https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/Wed, 10 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/<p>昨天天气预报说,今夜迎来第一场雪,可是,感觉又被忽悠了。Ps:一大早在车上通过黑莓发送</p>我的palm饿死了https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/Tue, 09 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/<p>前年的时候,我淘到一个palm,正式成为&quot;胖友&quot;,买回来后折腾了很久,反复安装软件,又反复的卸载掉,最后仅保留了几个看书的软件,这个palmtt的屏幕看书真的是没话说,非常舒适,我也在上面看了大概有几十本小说,几回回抱着palm到天亮,呵呵。</p> +<p>但是毕竟是个老机器了,速度慢,功能弱,最让我头疼的是,他的电池越来越不行了,后来,我又把手写笔丢了,再后来,也就是今年5月,一冲动买了个epc,就是所谓的&quot;上网本、二奶机&quot;,这下palm彻底失宠,我很少再将它带在身边,</p> +<p>直到上周末,我整理桌子的时候才发现奄奄一息地他躺在抽屉里,我竟然没搭理他,继续整理我的音箱,今天才又想起来。掏出来一看,由于长期没充电,里面的资料全丢了,还好没什么重要内容,</p> +<p>但我辛苦挑选的软件全没了,我干脆给他擦了擦灰,将所有配件整理到一起,全部锁进抽屉里,再见吧您呐。</p>为什么wall-e这么可爱?https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/Mon, 08 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/<p>为什么wall-e这么可爱?这是我看完《机器人wall-e》之后一直在想的问题。</p> +<p>无论是是他捧着电板给自己充电时的样子,还是手足无措时搓腿(其实搓的是他的&quot;履带&quot;)的动作,都可爱得让人抓狂。</p> +<p>现在,我总结一下,让我觉得这个小机器人可爱的原因大概有以下几点:</p> +<p>1、他总是很开心的工作,他很乐观,吹着口哨上班,当地球上只剩下他自己时仍然乐观地活着,对了还有一只蟑螂是他的朋友。</p> +<p>2、他很善良,不小心压了小蟑螂一下(他的履带很宽)就后悔的不行,还好&quot;小强&quot;并非浪得虚名,不仅没事儿还和walle玩得很开心。</p> +<p>3、他很单纯,傻乎乎的,没有心眼儿,连伊娃的手都不敢拉一下。</p> +<p>4、有爱,为了倾慕的女机器人(伊娃)不惜一切代价,以至于芯片烧毁。暂时就说这么多吧,皮克斯的这部动画片还是像以往的那样用简单故事打动人的心。</p>真正的“书架箱”https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/Sun, 07 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/<p>昨天花了一下午的时间把我的书柜和电脑重新整理了一遍,把惠威的2.1音箱移到了显示器旁边,把漫步者2.0的移到了书架的二层,与书挤在了一起,成了名副其实的书架箱。</p> +<p>电脑机箱后面的连线乱成了一锅粥,费了很大的劲才整理通顺。</p> +<p>现在,音箱与书柜成为一个整体,整个书柜便是一个巨大的音箱,用来听音乐那叫一个爽!</p>跑步暂停!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/Fri, 05 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/<p>寒流来袭,最高温度才零下2度,外面冷的能把人冻傻,在我还未被冻傻之前,先做出一个明智的决定,无限期暂停跑步计划,风太大,空气又凉,我又没有自虐倾向,还是在屋里待着暖和。</p>据说明天要降温https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/Wed, 03 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/<p>北京的天气要降温的消息已经提前三天放出,电视、网络反复强调,就连公司内部的网络都发布温馨小贴士提醒大家注意加衣服了。</p> +<p>今晚跑步的时候明显感受到寒风的力度,不过我还是跑得微微出汗。</p> +<p>昨晚(应该说是今早)睡的实在太晚,今天在回来的车上都昏昏欲睡,刚刚跑完步回来后洗了个热水澡,本来困倦的身体又感觉精神了,打开电脑,在日志里罗嗦两句再睡。</p>早啊,各位!https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/Wed, 03 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/<p>没错,我还在办公室里,还在加班,而且意识还很清醒,我还活着。</p> +<p>现在的时间是凌晨的0点10分,再过半个小时,如果一切顺利的话,我就要打车回去睡觉了,差不多还能再睡4个小时呢。</p> +<p>然后,我就要从床上爬起来,洗洗脸,刷刷牙,迎着还没出来的太阳,再次奔上开向公司的地铁。</p> +<p>没办法,既然选择程序员这个连妓女都不如的职业,就要接受没日没夜的加班生活,就像我们经常在程序中&quot;拿空间换时间&quot;那样,现实中,我们在&quot;拿健康换时间&quot;,等到健康剩得不多、徐娘半老之时也就是我们的退休之日吧。</p> +<p>因为到了那个时候,我们将再也加不动班,再也爬不上车,可能连敲键盘的力气都没有了,而且又会有一大批精壮的程序员前赴后继的补充上来,再次走上我们走过的路&hellip;&hellip;</p>还没回家https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/Tue, 02 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/<p>再过十分钟就过了今天跑步的时限了,而现在我仍旧坐在办公室里,喝着温热的开水,盯着跑焦的屏幕。</p>一个月https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/Mon, 01 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/<p>前天有同事问我说,跑步坚持了一段时间了,感觉如何,有什么效果没有,我说不知道,估计以后就不怎么感冒吧。</p> +<p>此话尚未落音,今儿就开始感冒了,打了好几个打喷嚏,嗓子也开始干了。</p> +<p>我从十一月一号开始跑步,一天也没落下,跑步时间基本上都是在晚上8点至9点之间,每次绕小区一圈,跑十几分钟,感觉良好。</p>updatehttps://sbabybird.github.io/p/update/Sun, 30 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/update/<p>让我看看blog标题里能不能出现&quot;关键字&quot;ps:一个累人的周末。</p>一拖四https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/Sat, 29 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/<img src="https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/20081229.jpg" alt="Featured image of post 一拖四" /><p>近日,我的机器速度越来越慢,内存占用常常超过1.5G,尤其是开了office之后,其操作反应之慢令人发指,考虑再三之后,我决定还是不重装系统,先手动优化两下再说。</p> +<p>首当其冲的是卸载多余软件了,我是软件狂人,开始菜单完全展开几乎将屏幕挤满,一口气卸载十几个不常用软件,然后使用ccleaner清理垃圾,清理注册表,清理回收站,清理缓存。</p> +<p>重启。还是觉得不过瘾,进入控制面板,把不常用的服务给停掉,就连桌面主题服务都停掉了。</p> +<p>重启。</p> +<p>还是觉得不过瘾,打开系统任务管理器查看了一下,Firefox最占内存,但是这个千万不能卸载啊,其次是qq占内存,卸载之,然后发现msn也很不老实,卸载之,看着飞信也很不爽,卸载!</p> +<p>这下,整个世界清静了,内存占用只剩下四百M了,速度提高了不少。</p> +<p>可是咱也不能聊天啊,于是想到了Pidgin这个在Linux下很火的软件,下载安装后,发现居然还支持飞信,于是我用它同时连接gtalk、qq、msn、飞信,体验很好,另外还可替代aol、icq、雅虎等多种聊天客户端。</p> +<p>这下好了,以前啊聊天总是要开多个程序,麻烦,现在啊有了Pidgin高钙片,一片顶过去5片,您瞅准了!是Pidgin!</p> +<p>ps:今日跑步指数★★★☆☆</p>差点没出差https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/Thu, 27 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/<p>由于项目的需要,下周需要我出差,本来出去散散心也挺爽的,只是我担心我的跑步计划会搁浅一段时间,因为到了现场就没时间去跑步了,就算不整天调程序也没有跑步的地方,总不能在大马路上伸着舌头撵公交吧。</p> +<p>但是,计划没有变化快,由于北京这边又有优先级更高的活儿,所以,暂时不用出差了,哦也。</p> +<p>ps:今日天气(我估计的),晴间多云,风力2、3级转4、5级,最高温度20度(室内)最低温度0度,跑步指数:3(★★★☆☆)适宜跑步。</p>坚持https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/Wed, 26 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/<p>下班晚也就算了,还刮这么大的风,跑得我那叫一个累啊,回来的时候我一边喘粗气一边想:&quot;啥时候下大雪啊&quot;</p>文档!文档!https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/Tue, 25 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/<img src="https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/20081225.png" alt="Featured image of post 文档!文档!" /><p>快要下班的时候,我的眼神已经分外地扑簌迷离了,审核了一天的文档,看了再写,写了再看,千锤百炼。</p> +<p>瞅了瞅身边的同事,个个被文档折磨得目光呆滞,面如死灰,头发蓬乱,口吐白沫。</p> +<p>说实话,我宁愿写一千行代码也不愿意写一行文档,宁愿写一行文档,也不愿去审一千行文档。</p> +<p>因为,审文档你得咬文嚼字,你得反复推敲,就算是仅仅挑出错别字就已经很费神了。</p> +<p>慢慢地,我感觉到文字在屏幕上开始爬行,一会儿排成人字,一会儿又排成一字。</p> +<p>ps:跑步一直在继续,耶!</p>远去的DVDhttps://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/Mon, 24 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/<p>第一次见识DVD的清晰是在上大学的时候,在我们刚刚落成的多媒体教室,好像还是&quot;邓论&quot;课,老师看大家实在闷的慌,就放了一部《角斗士》来调节气氛,播放器材就是DVD加投影机。</p> +<p>我现在印象最深刻的一个镜头是,男主角走在金黄的麦田里,用手拨弄着麦穗,身边荡起层层麦浪,这个镜头太美了,DVD清晰的画质深深震撼了我。</p> +<p>不久,在我的软磨硬泡下,家里也给我买了一台DVD(顺便买了不错的音响,暂且按下不表),我欢喜的不得了,可惜没有投影机,因为当时动辄十几万一台的投影机对我来说只能奢望,当然,现在也是。然后就是开始疯狂收碟,从《勇敢的心》到《杀手里昂》,从《喜剧之王》到《阿甘正传》,反正当时我认为经典的电影全部收藏,两年下来,在零花钱不是特别充裕的情况下,我&quot;收藏&quot;了将近200张DVD(现在还剩几十张了)</p> +<p>虽然是盗版,但是过来人都知道,在国内,盗版DVD实际上比正版DVD画质都要好(当然要选对牌子咯,这个话题说起来就扯远了)。</p> +<p>当时我逛街最怕两件事,一个是进书店,另一个就是进碟店,因为无论走进哪个,我出来之后钱包准空。</p> +<p>不过和真正收碟的碟友比起来我这几张真的不算啥,我后来认识了一个哥们,光正版碟就收了1000多张(刚工作的工资全花在买碟上了),同样的电影,要买两份,一张平时看,一张摆那儿永远也不舍得打开看。</p> +<p>还是醒醒吧,我现在已经几乎不看DVD了,而且也不再买碟。</p> +<p>一方面是因为随着年龄的增长,工作将我的各种兴趣爱好磨灭了不少,另一方面是因为网络飞速发展,DVD这种存储介质渐渐走向衰败,即使偶尔想看两眼电影,也随时可以在线观看。</p> +<p>虽然现在又推出新格式的蓝光DVD,但是我认为它也基本没戏,就像过气的女明星,无论怎么打扮也难逃被抛弃的命运。</p> +<p>现在再看看那些卖碟的小贩,谈起DVD极不专业,而且以次充好,老拿电影院偷拍的枪版糊弄人,再者就是n合一的压缩碟,这种格式彻底毁掉了我对DVD的兴趣,要画质没画质要音质没音质,除了毁坏光驱,再也找不到别的用处了。</p> +<p>另外也别跟我扯新一代蓝光DVD的容量和清晰度,还是那句话,&quot;我很不看好你哟&quot;,因为我认为,随着网络技术的发展,硬盘、光盘、优盘、这些存储介质都将被淘汰。</p> +<p>什么?你说咱们还有完全自主知识产权的EVD呢?我只能说:&quot;呵呵,大哥,你可真会讲笑话,这是我今天听到的最好笑的笑话了&quot;</p>晚安https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/Sun, 23 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/<p>不错的周末,把太阳能热水器里的水放干净了,热水已切换到燃气系统了,地暖系统也恢复正常了,房间也打扫干净了,看了部老电影,天就黑了,跑完步回来泡个脚,睡了。</p>在傍晚跑步https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/Sat, 22 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/<p>今天要去朋友家吃晚饭,所以我预计晚上的跑步计划会无法执行,干脆提前跑步,在太阳将要下山之前,绕着小区跑了一圈,感觉比在晚上伴着路灯跑要好的多,可惜啊,这种机会也只有周末才有。</p>大周末https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/Fri, 21 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/<p>再次迎来双休日,虽然明天要有半天公事,但是毕竟不是去加班,感觉挺爽。</p>垃圾网上银行https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/Thu, 20 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/<p>今日要去建行转些钱到支付宝,被逼无奈使用了我最讨厌的ie浏览器,输入帐户名、密码、验证码,没问题,选择证书和动态加密口令也没问题,就在最后那一哆嗦,网页弹出一个小空白页面就再也不动了,连续两次都是这样,废掉了我两个动态口令,求救客服半个多钟头也没有搞定问题。</p> +<p>现在,我分析,引起问题的原因:</p> +<p>1、ie不求行</p> +<p>2、有防火墙</p> +<p>3、银行网站很烂</p> +<p>4、人品问题</p> +<p>5、以上原因都有</p>找钱https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/Wed, 19 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/<p>跑完步,口渴,走到小区门口超市买酸奶喝。这是一个袖珍超市,但是麻雀虽小五脏俱全,所以我懒得去大超市了。</p> +<p>这么晚了,超市也快收工了,只有我一个顾客,门口的收银员打着哈欠,我拎了一盒酸奶出来。</p> +<p>&quot;九块钱&quot;收银员说,由于零钱不够了,我只好拿出一张一百的,&quot;请问您有没有一块钱零钱?&quot;她接着问&quot;这样就可以找你九十了&quot;,翻遍口袋,摸出一块钱给她。</p> +<p>这个时候,只见超市的pos机屏幕上写着:收101.00元、应找零92.00元。看来我的大脑也有点儿缺氧</p>感谢妈妈https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/Tue, 18 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/<p>我的胃不太好,为此,我妈颇为担忧,</p> +<p>有天,我妈听说一个单方,可以养胃,即在枕头里装上炒熟的甘草(中药),</p> +<p>每天睡觉枕着就行,该方法不但使用简单而且可操作性强。</p> +<p>于是前两天就在QQ上给我说了,我觉得试试也行,我妈就立刻行动(好习惯),</p> +<p>结果我今天就收到了快递。打开一看,跳出一个制作精美的枕头,散发出甘草的清香,</p> +<p>这可是我妈亲手缝制,对我来说真是无比珍贵。今晚就要枕着它入眠,在梦里露出灿烂的笑容。</p>https://sbabybird.github.io/p/%E9%A3%8E/Mon, 17 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A3%8E/<p>今天跑步最大的感觉就是有风,说是刺骨的寒风有点儿夸张,但是你要是在里面站立半个钟头的话,保证能冻傻。</p> +<p>我发现无论往那个方向跑都是顶风,吹得我快要飘起来,有一阵子甚至感到呼吸困难,意识模糊,后来就加速奔跑,并打破了昨天的记录。</p> +<p>天越来越冷了,我的跑步计划迎来了严峻的考验。</p>跑步在继续https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/Sun, 16 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/<p>不容易,坚持半个月了,加油。</p>测试https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/<p>此篇博客通过电子邮件发送生成,此电子邮件又是通过手机发送。如果都能看见,说明测试成功!</p>掉线https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/<p>昨天网络掉了一夜的线,早晨才恢复,宽带客服的电话都被打爆了,我好不容易挤进去一个电话,被告知他们全部技术人员都在彻夜加班抢修故障,我靠,看来干技术的全是这样儿的命啊!本着惺惺相惜的态度,我也只好随便发两句牢骚就把电话挂了。</p> +<p>ps:昨天跑步速度比平时稍快。</p>喂鱼记https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/<p>公司的旁边有一个公园,公园里有一个人工湖。</p> +<p>该湖曾一度干涸,后来托奥运的福,这个湖做了一次整改,现在,里面不但放满了碧绿的自来水,还撒了一群可供观赏的鱼。</p> +<p>我会在每天午饭后,独自或和同事一起到这里来溜达一圈,一方面是促进消化,还有就是这里的空气真是不错,所以我才会放弃网上冲浪而到这里来晒晒太阳。</p> +<p>每次都会看到那群傻乎乎的鱼争抢人们洒下的鱼食,由于鱼多食少,大家抢得异常激烈,一时间水花翻涌(让晶晶过来都压不住),场面甚为状观。</p> +<p>至于撒食的人,就感觉颇有成就感,我在旁边看着也心里痒痒,总想试试,找找当圣诞老人的感觉。</p> +<p>今天吃饭时故意多要了一个馒头,跟同事说一会儿要喂鱼,同事笑话我说:“你现在嘴里嚼着鱼,居然也假腥腥的要喂鱼”我说“算是补偿吧!”到了地方,发现有人已经先到一步,一群鱼儿在他脚下吃的正欢。</p> +<p>我和同事两个人迫不及待地掏出馒头,拿出吃羊肉泡的功夫(掐啊),就开始往水里洒。</p> +<p>扔了半天,却不见大群的鱼过来,仅有少量老弱病残在这边尝了两口就又游走了,我尴尬地站在湖边,眼看着手里掰下的馒头屑,都打了水飘。仔细一看,还真是我太马乎了,原来先前那人仍的可是上好的面包啊,看来,不仅有崇洋媚外的人,也有崇洋媚外的鱼,这帮混蛋也喜欢吃西餐啊!</p> +<p>PS:第一次用手机打这么多字,手指酸痛ing。</p>不能缩水https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/Thu, 13 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/<p>今天回来时很累,于是就有了改变跑步路线的想法,即,仅从车站跑回家,这样既跑了步,又节约了时间,但这个念头转瞬即逝,立即被否定。</p> +<p>从车站到家的这段路虽然走起来显得不近,但是跟平日跑步的距离比起还是太短,而且这样就视跑步成为一种应付了。</p> +<p>所以为了防止跑步计划到最后不了了之,我今天还是老老实实地跑了一圈。</p>补上https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/Wed, 12 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/<p>昨晚回家晚了,跑步也晚了,然后就睡了,忘了在日志里报告,今早补上。</p> +<p>这两天忒忙了,事情一件件的接踵而来,忙的我有点儿喘气。</p> +<p>有句话说的好,出来混迟早要还的,以前程序的demo做的再好也是假的,现在要动真格的了,撒开手忙活吧!</p>何以解忧,唯有唱歌https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/Wed, 12 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/<p>今天差点儿达到无法执行跑步计划的条件之一(加班到深夜),还好,我及时搞定了问题。</p> +<p>上午也说到了,现在手头事儿特别多,程序的问题也不断涌现,而我又特别不喜欢多任务并行工作(我想没人喜欢吧),并行工作会导致大脑里思考的东西在不断地切换,每个任务都要照顾到,每个任务又很难照顾好。</p> +<p>于是,问题来了,下午快下班的时候我的一段程序罢工了,这段代码在半年前由我亲手调制,当时跑起来一点问题都没有,现在着急用的时候却掉了链子,急得我快要抓狂。</p> +<p>问题还是解决了,怎么解决的呢?</p> +<p>唱歌!下班之后,反正人走的差不多了,也不怕打搅别人,为了缓解压力,我只有使出&quot;杀手锏&quot;,那就是&mdash;-</p> +<p>胡乱唱歌,无论是中国的还是外国的,是民族的还是通俗的,顺嘴拈来,逮着哪句是哪句,什么&quot;千里刀光影,重整代码待后生&quot;、&quot;你说要崩溃我知道很简单&quot;、&quot;小芹我洗衣裳来到河边&quot;等等。</p> +<p>唱着唱着,我就觉得豁然开朗了,柳暗花明了,茅厕顿开了,原来是某行代码被无声地注释掉了(其实早该想到),看来唱歌的效果简直是立竿见影呐。</p> +<p>不光是现在,其实回想起来,唱歌一直是我缓解压力的惯用方式(可以参见这一篇博客),唱歌的地方并不限于在ktv,也不是要老老实实拿捏着唱,要的就是那种随心所欲飘飘然的感觉,大学的时候,每到期末考试我都会整天哼一首类似于&quot;姑娘十八一朵花&quot;的歌儿,这样的话,我不但门门功课都能过,到最后竟然还拿了三好学生!</p>天气不太好https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/Mon, 10 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/<p>今天的天气不是很好,空气质量特别差,用专业术语来说就是&quot;霾&quot;,在做了一番思想斗争之后,我还是决定出去跑步,因为这种天气情况不在我所定义的&quot;不可抗拒之因素&quot;之内。</p> +<p>气喘吁吁地回来,用热水洗了个脚,美,懒得开大机器了,就用小e随便发几个字算了,顺便控诉一下,用小e打字可真是受罪。</p>复制昨天https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/Sun, 09 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/<p>今天和昨天过得一样,略微多了些上班前的焦躁,所以我还是喜欢周六多一些(哪怕那天是加班)。</p> +<p>没空的时候总是想着抽出时间来多学习一些东西,等到周末时却又缺乏了耐心和兴趣,就像牛人说的那样,我所荒废的今日其实就是昨天所期盼的明日啊。</p> +<p>当然了,荒废不荒废也不知是谁说了算。</p> +<p>今天出去跑步的时间略早,发现有人也在跑步,只不过我是顺时针方向,那哥们儿是逆时针方向在跑,我们在西南角碰面,然后又在东北角擦肩,所以我可以断定他和我的速度是差不多的,不过,我回来时,人家可能还在继续跑。</p> +<p>下午的时候,又拿了拿吉他(看来实在是无聊了),摁了两下,摁得左手生疼,发现以前磨出的茧子早下去了,手指光滑无比,连指纹都看不清,我说怎么前两天弄那个指纹识别程序时老调试不成功,看来我可以放心去作案了。</p> +<p>写了半天,发现写的前言不答后语,难道这就是传说中的意识流?</p>超级小女声https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/Sat, 08 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/<p>喜欢听翻唱的歌曲也是个毛病点击小三角开始播放</p>一个普通的周末https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/Sat, 08 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/<p>虽然有时坐在电脑前不知道要写点儿啥,但是,我还是决定每天都在这里写几行字。</p> +<p>一是为了监督我的跑步计划执行情况,防止三天打鱼两天晒网,二是每天记点儿流水帐,将来孙子吵着要我给他讲故事的时候再来翻翻素材。</p> +<p>想起来一个笑话,爷爷在给孙子讲故事:&quot;有一次,在战场上,这边只剩下我一个了,敌人冲上来一个连,我抱着机枪把他们全干掉了。</p> +<p>&quot;孙子说:&quot;可是爷爷,您去年讲的时候说的是冲上来一个排啊?</p> +<p>&quot;&quot;傻孩子,你那时还小,我怕吓着你!&quot;</p> +<p>跑题了,今天是周末,我没有加班,活儿永远都干不完,身体却只有一个,所谓,该出手时就出手,该休息时就休息。</p> +<p>我仍然延续以往的作风,醒的比平时早,起的比平时早,然后开始洗衣服、打扫、做饭、刷碗、看电影&hellip;&hellip;</p> +<p>一天的时间一晃就过了,感觉也就是吃了三顿饭,然后天就黑了。</p> +<p>今天跑步的时候感觉天气比平时要冷,小嗖风风地刮着,我还是坚持跑完一圈,速度还是不能太快,跑到额头微微出汗就行了。</p> +<p>回来查看了一下日历,原来昨天是&quot;立冬&quot;,哦,冬天来了,春天还会远吗?</p>爽事儿两件https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/Fri, 07 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/<p>1、把我的epc升级成ubuntu的操作系统了。</p> +<p>比起它自带的那个阉割版操作系统,界面华丽了,软件丰富了,操作更自由了,爽!</p> +<p>2、家里的宽带在费用不上涨的情况下从1M升级到1.5M了。</p> +<p>虽然感觉也没比以前快了多少,但心里还是美滋滋的,爽!</p> +<p>ps:跑步仍在继续!</p>天涯共此时https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/Thu, 06 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/<p>跑完步回来都九点多了,出差在外的同事一个接一个的打回来电话,原来这帮儿不要命的家伙还在加班。</p> +<p>先是远在宁夏的兄弟告诉我刚做的PPT需要修改,然后是身在河南的项目组打电话咨询版本控制的问题,最后是被发配到青海的哥们儿在电话里用略带嘶哑的嗓音和我一起探讨了一会儿程序路径分支的问题,然后又像是梦游一般地把电话挂掉&hellip;&hellip;</p> +<p>放下电话,我不禁要问(焦点访谈看多了),沟通的方便是帮了我们还是坑了我们?</p> +<p>得亏了信息科技的发达啊,要是远在飞鸽传书的年代,我把代码写好,然后抄到一张小纸条上,绑在鸽子腿上,趁它还没飞抵现场调试的时候,美美地睡上一觉。</p>手机发的https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/Wed, 05 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/<p>今天回来的有点儿晚,并且跑步的距离有所延长,大概比前几次多跑了三百米。电脑都关了,才想起还没有做记录,爬起来,用手机发个报告。</p>假如你看我有点儿累,就请你给我倒碗水https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/Tue, 04 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/<p>今天又跑完步回来了,现在,我真是名副其实的&quot;从容地狂奔&quot;了,每晚都会出去&quot;奔&quot;一圈儿,只有这样才会觉得明天有&quot;奔&quot;头,才能洒脱地&quot;奔&quot;三十了。</p> +<p>我上个周刚过的生日,就是说我上周还二十六(虚岁)呢,现在就二十七了(真的是虚岁)。</p> +<p>最近总想活的更洒脱一些,但总是觉得很为难,因为总感觉自己太在意别人的看法,也就是老是拿别人的标准来衡量自己的生活,到不了那种&quot;忘他&quot;的境界,比如我有同事可以在地铁里一边大声唱歌一边跟我大谈&quot;空间数据的网格索引&quot;,牛逼吧?大学里有个同学,在大街上骑自行车,突然来了兴致,把车一摔,在路边跳了一段&quot;麦考杰克逊&quot;,然后在一片惊叹声中绝尘而去!</p> +<p>洒脱吧?靠,我做不到,就算是在大街上唱歌我都不会。</p> +<p>前两天,看了一篇文章,大致意思是,每个人生来都是一杯白水,随着时间的流逝,为了满足别人对我们的期望,这杯水被掺入了形形色色的杂质而变了味道,有些味道我们觉得好,但是别人觉得怪,或者又相反,最终大家都很不爽,文章最后劝我们别在乎别人怎么看,自己就做那杯最原始的白开水吧。</p> +<p>看到最后,如果作者在我跟前,我想,我会把杂志卷成一卷儿,对着他的头来两下子,你的脑袋是不是被门挤了,还是被驴踢了?</p> +<p>原因不再论述,这种忽悠人的文章以后还是少看为妙。</p> +<p>我只想说,我还是会往我的杯子里,加入各种佐料,哪怕我不喜欢它,只要我的家人喜欢,或者我的家人认为我喜欢。</p> +<p>我继续狂奔,我尽量学着在大街上唱歌,假如你看我有点儿累,就请你给我倒碗水。</p>跑步,有进步https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/Sun, 02 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/<p>昨天跑完后没感觉,睡了一夜,今早感觉腿酸背痛,看来见效果了啊。</p> +<p>今天继续跑步,距离与昨天相同,还是一圈,时间缩短3分钟,速度不是我追求的,跑步本身才重要,看来明天要延长路线了。</p>报告https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/Sat, 01 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/<p>上午制定了跑步的计划,旨在锻炼身体陶冶情操。</p> +<p>说到就要做到,时间刚过8点一刻,我就换上球鞋(本来还想置办一套装备,但是看看动辄上千元的跑鞋只得作罢,还是等过几天跑步略显成效时再买吧)、塞上耳机,大步流星冲下楼去。</p> +<p>HitFM正在播放着动感音乐,伴着音乐的节拍,我迈开轻盈的步伐,前面两个保安晃来晃去,被我轻松越过(靠,又不是打篮球)。</p> +<p>由于是刚开始跑,为了既达到锻炼效果又不丧失信心,我把速度放的很慢,基本上比散布快一些就行。</p> +<p>总算绕着小区跑了一圈,心跳还算正常,喘气有些加速,身上也微微出汗。</p> +<p>OK!我很满意,能否坚持下去虽然是个未知数,但毕竟好的开始已是成功的一小半。</p> +<p>ps:这个跑步计划已经宣扬的全世界都知道了,要是跑两天即放弃,我岂不是无颜见江东父老了,唉,年轻人啊,爱冲动。</p>跑步吧!!!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/Sat, 01 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/<p>午饭后,与远方的二舅聊起家常,说到锻炼身体的重要性。</p> +<p>我说我没时间、坚持不下来,结果被二舅狠狠鄙视了,连二舅那么忙的人都能每天坚持锻炼,我就没啥话说了。</p> +<p>据说他锻炼成果显著,现在腰不酸了背不疼了走路也有劲儿了。</p> +<p>我想起今儿上午,和同事一起搬了台服务器都累的两股战战几欲先走(也怪那服务器忒沉),看来我是得加强锻炼了。</p> +<p>想了半天,最后还是决定采用&quot;跑步&quot;这一经济实惠的锻炼方式,并制定计划:</p> +<p>每晚20点半至21点间散步10分钟跑步20分钟(时间可根据情况提前或推后,但过了22点就取消当日计划)。</p> +<p>除非遇到不可抗拒之因素(如下雪、加班到深夜等),否则一律坚持跑步!即日起,博客恢复更新,以记录跑步计划执行情况。</p>关于十一长假的总结https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/Mon, 06 Oct 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/<p>长假过完了,感觉如下:</p> +<p>1、交通的痛苦,买不到回家的火车票,被黑了一张全价机票。</p> +<p>返京时乘坐大巴,连续坐了16个小时,感觉要比乘坐神七痛苦。</p> +<p>2、妹妹结婚了,打心底祝福她。</p> +<p>小时候那个调皮的小女孩儿怎么转眼变成了端庄的大姑娘了呢。</p> +<p>3、喝多一次,此次回家喝了n顿酒,和老同学在一起喝的那次喝多了。</p> +<p>4、我还是那么瘦,几个老同学都陆续把自己的肚子搞大了,只有我继续瘦的像支铅笔。</p> +<p>5、我仍然是家里的维修工,此次修理好了老家的DVD、抽水马桶、电脑,并弄坏了老婆的手机(后来我又修好了)。</p> +<p>6、美好的时间总是很短暂,每次相聚都是一次分手。</p>月饼https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/Sat, 13 Sep 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/<p>咱们的节日总是与吃有关,比如过年吃饺子,元宵节吃汤圆,端午吃粽子,六月六吃炒面,腊八吃米饭。</p> +<p>中秋当然要吃月饼,而且要吃的相当隆重。</p> +<p>在我的老家,刚入了八月大家就忙活着串亲戚送月饼了。</p> +<p>一个人在外面,当然没人给我送月饼,为了找到一点儿过节的感觉,我只好到超市去一趟,心想,好歹买一两块月饼回来吃,也算是过节。 到了地方却傻眼了,花花绿绿的月饼盒子堆的跟小山似的,个个包装精美,如果不问售货员一句:&quot;这是月饼吗?&quot;我都不敢确定这些东西是什么。</p> +<p>先让我想想小时候的月饼是什么样儿,嗯,圆的(废话),比烧饼厚,油光光的,上面印有花纹图案比如&quot;花好月圆&quot;什么的,随便拿张油纸包着,掰开以后馅里有大块大块的冰糖,还有花花绿绿的丝儿,应该是用橘子皮做的。</p> +<p>对,就是这样,客人来了,主人把月饼拿刀切成菱形的小块就算一道下酒菜,中秋那天晚上一家人也会切上一块,大家一起嘎嘣嘎嘣地吃完。</p> +<p>不过这是十几年前的事儿了,现在的月饼花样儿百出,什么馅儿的都有,造型各异,包装也是越来越豪华,味道却越来越难吃,简直难吃至极,看着这些大盒子我就发怵。</p> +<p>我小声的问售货员:&quot;请问有没有适合自己在家吃的月饼?&quot;</p> +<p>&quot;有啊&quot;她拎起大概有枕头那么大的一盒月饼说&quot;你看这个怎么样,原价四百六现价二百八而且买一盒送一盒,多划算呐!&quot;,</p> +<p>我接过来看了看,诺大的盒子装了六块像扣子似的小月饼,亮亮的泛着油光,虽然个儿不大,但是如果买回去够我吃到过年了,我看了看长长的货架,觉得今天的月饼怕是买不到了。</p> +<p> 不买不行,不吃月饼哪叫过节啊,我拎着购物筐在楼上楼下转了个遍,终于在一个灰暗的角落里发现了散装的月饼,嗯,貌似小时候那种月饼。</p> +<p>将就吧,随便挑了两块扔进筐里,任务算是完成,高兴之余顺便又拎了瓶红酒,就这么地了,晚上就着月饼喝着红酒,举杯邀明月,对影成仨人。</p>我对奥运开幕式的8点感受https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/Sat, 09 Aug 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/<p>1、脚印烟花很令人惊艳    </p> +<p>这真是一个好创意,巨大的脚印从中轴路一路迈向场馆,场面真不是一般的壮观!美中不足的是空中镜头取景再大些就好了。</p> +<p>2、卷轴屏幕很好很强大    </p> +<p>七十多米长的屏幕,应该也是奥运之最了,就是中间那块画布放的有点儿突兀。</p> +<p>3、歌唱祖国很令人激动    </p> +<p>当那个红衣小女孩用清澈如同天籁般的声音唱起歌唱祖国时,整个场馆进入了高潮,我在电视机前也禁不住唱了起来,眼泪都快下来了。</p> +<p>4、主题歌有点儿弱    </p> +<p>主题歌听完之后,印象不深刻,知道是谁唱的,听完就忘了。</p> +<p>5、运动员入场时那些奥运宝贝一直在那儿蹦了两个多小时没换人,佩服!    </p> +<p>导演也太不知道心疼人了,大热天儿的,让这些可爱的奥运宝贝手舞足蹈一直在那儿跳了,换了我,肯定都昏过去了。</p> +<p>6、电视台转播水平发挥正常,镜头切换不敢恭维,画面中经常出现很多钢丝    </p> +<p>不愧是咱们的CCTV啊,发挥出了应有的水平。</p> +<p>7、点火没让人失望,要是点火时画面里看不见钢丝就更好了。</p> +<p>    点火方式很新颖,将吊钢丝技术发挥到了极致,李宁好样儿的!就是在全景的时候,在屏幕前方总是飘着好几根钢丝,让画面失色不少。</p> +<p>8、有朋自远方来不亦乐乎,四海之内皆兄弟也!    击缻时朗诵的《论语》,让人仿佛回到了两千多年前,很好,很中国!</p>工欲善其事,必先利其器?https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/Thu, 31 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/<p>当猿猴第一次有目的的拿起石头将骨头劈开的时候,&quot;它&quot;就不再是&quot;它&quot;了,而成了&quot;他&quot;。</p> +<p>能够使用&quot;工具&quot;是人类与一般动物的最基本的区别,这是教科书告诉我们的事情。</p> +<p>&quot;工欲善其事,必先利其器。&quot;这句话很长时间都被我作为msn签名,也充分说明了工具在我生活中的重要性。</p> +<p>当然这儿说的工具是一个广义上的概念,它可以指硬件也可以指软件。但是,我现在对于工具的使用却有了新的看法。</p> +<p>因为我觉得工具使我的大脑退化了,以前好使的功能现在都不太好用了(比如:记忆力、创造力等)。</p> +<p>写到这儿,我发现我这次的话题起的有点儿大,发些感慨而已,说到哪儿是哪儿吧。 </p> +<p>因为最近(其实早就有感觉)我越来越觉得对某些工具产生了严重依赖,</p> +<p>比如:计算机、手机、Internet。有时候甚至搞不清究竟是在驾驭工具还是在被工具驾驭。</p> +<p>前一段时间我看了一本关于高效率工作的书,按照书中的指点,慢慢养成了将工作事务都提前安排进&quot;日程表&quot;的习惯,感觉效率貌似提高了一些,但是造成的副作用就是,我的记忆力严重下降。</p> +<p>人们常说:&quot;好记性不如烂笔头&quot;,我看则不然,在我没用&quot;烂笔头&quot;的时候,我的记性还是挺好,约会什么的一般不会忘记,现在惨了,当我习惯于把事务用&quot;烂笔头&quot;记下来时,就连&quot;下班后买俩包子&quot;这点儿破事儿如果不写下来就会忘记。</p> +<p>关于电话号码的记忆也是,以前没用手机的时候,我可以记住几十个电话号码,现在连自己的电话号码都得翻手机的电话薄来查找了。</p> +<p> 现在,每天打开电脑第一件事儿就是把浏览器打开,收邮件,安排日程事务,借助google提供的日历功能安排好一天的工作,然后把工作内容同步到手机上,这样整个人都&quot;信息化&quot;了,看似有条不紊的工作,实际上,我已经牢牢地被这些所谓&quot;高科技&quot;拴住了。</p> +<p>什么?万一哪天这些东西消失了?</p> +<p>后果很难想象,想一下就能冒出一身冷汗。</p> +<p>当然也有哥们幻想着有一天能过上&quot;不插电&quot;的生活,我觉得他也只能是想想而已,失去这些把我们宠坏的工具,将会像一只丧家犬那样的失魂落魄。本来打算来一篇长篇大论,发现越说越远,只好虎头蛇尾了。</p> +<p>不能再多说了,因为我的&quot;日程表&quot;提醒我该去吃饭了。</p>怀念win98https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/Mon, 28 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/<p>好友终于无法忍受vista的龟速,将笔记本自带的系统干掉新装了一个windowsxp系统,托我用ghost把系统备份一下,以备不时之需。</p> +<p>自从转到linux阵营之后,我很少用到ghost了,去网上找了个&quot;一键ghost系统&quot;把他的系统做了个备份。</p> +<p>发现现在的ghost软件做的已是十分的人性化了,一路next即可,完全不要用户操心,傻瓜化操作。想起我大学那阵子用的win98系统,那时还没有ghost类的软件,而98又很不稳定,所以我基本上每周都要重装一次系统,同宿舍的哥们,每到周末都能看见我趴在电脑前重装系统(步骤很简单,FormatC:、Setup)。</p> +<p>我想,我的偏执狂性格就是那时候养成的吧,一年下来,25位的windows98序列号我竟然背了下来。</p> +<p>win98给我印象最深的就是&quot;蓝天白云&quot;了,前两天在网上看到有志同道合的网友收藏的win98启动画面,其中就有这张经典的&quot;蓝天白云&quot;。</p> +<p>后来,我误入歧途,对win98的操作技巧十分着迷,就连win98的启动画面也给改的面目全非(比如在启动时写上女朋友的名字),现在,这些曾经让我乐此不疲的&quot;秘籍&quot;已经变得一文不值。</p> +<p>提到win98就不能不提它那经典的&quot;蓝屏&quot;,当程序死机或者非法操作时,它总是跳出来,搞得我的心扑腾扑腾乱跳。</p> +<p>加上那时我的英文水平实在有限,屏幕上的大串英文字母对我来说与乱码无异,蓝屏的次数多了,也就预示着我又要重装系统了。</p> +<p>win98下打游戏很爽,我打电脑游戏的时代也基本上就是大学那几年,星际争霸、红警、剑侠情缘、大菠萝2、极品飞猪(车)5,这些游戏在我的赛扬600下跑的也很顺畅,目前的硬件配置拿到我的大学时代能把人美死(不美死也吓死),可是我已经基本没心思再打游戏了。</p> +<p>大学快毕业的时候,windowsxp横空出世,我终于忍不住诱惑,装了一个英文版(那时还没出中文破解版),谁知,xp竟不由分说(也许是说了,我没看懂)把我的C盘给格式化成了NTFS格式,当我新鲜劲儿一过,想要再重装win98时,由于在DOS下无法识别NTFS磁盘,导致我误把D盘给格式化了,几年的积累化为乌有,气得我在床上跳来跳去,疯了一样。</p> +<p>现在,虽然硬件飞速的发展,内存都快有那时的硬盘大了,可是随着操作系统越来越臃肿,感觉计算机的速度却没有多大提升,仍然要启动老半天,打开一个word文档还是磨磨叽叽的。</p> +<p>有时候不禁要想,拼命的升级硬件、换代计算机,究竟有什么意义?</p> +<p>算了,不说了,洗洗睡吧,与其说是有点儿怀念win98,倒不如说是想念那一段&quot;纯洁的&quot;求学的时光,这个话题一旦摊开来说就唠远了,还是就此打住吧。</p> +<p>ps:我发现写博客固然很爽,但是往往勾起人的回忆,而回忆呢,又往往是美好滴,一美好就难免会想抽根烟,看来我也要&quot;珍惜生命,远离博客&quot;了。</p>珍爱生命,远离手机https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/Fri, 25 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/<p>对于使用手机,我有一个不良习惯,喜欢在睡觉的时候把手机放在枕头旁边,而且是24小时不关机,只有这样我才睡的踏实。</p> +<p>之所以这样儿,是因为我是把手机作为闹钟来用的,放的近一些首先可以保证它在关键时候叫醒我,其次是,这样我就可以迅速把闹铃关掉,然后再睡一会儿。</p> +<p>今天看了一条新闻,让我十分不安,有专家跳出来说“应该让手机远离头部”因为,“手机发出的电磁辐射可以致癌”。</p> +<p>哦卖糕的!以后睡觉的时候干脆把手机放在脚边算了,每当早上它吵醒我美梦的时候,我可以飞起一脚把它踢到地上。</p>原来这句话是这个意思啊https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/Wed, 23 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/<p>《论语》有云&quot;唯女子与小人为难养也&quot;,这句话的意思伤了一大批人,现在有人跳出来给出了新解释:&quot;女&quot;通&quot;汝&quot;,&quot;女子&quot;即&quot;汝子&quot;,即&quot;你的孩子&quot;;&quot;养&quot;指&quot;教养、教育&quot;,全句是说&quot;你的孩子有类似小人习气就不好教育了&quot;。</p> +<p>&quot;这是个教育问题,小孩会因为溺爱而放纵自己,对大人的管理充满埋怨,不就像小人?&quot;</p> +<p>我联想到另外一些新解:</p> +<p>关于孔子的收费标准三十而立:交三十升米者,可以在后面站立听课。</p> +<p>   四十不惑:交四十升米者,允许提问,直至没有疑问为止。</p> +<p>   五十知天命:交五十升米者,可以知道明日考试之命题。</p> +<p>   六十耳顺:交六十升米者,先生会说些你喜欢听的话,让你耳顺。</p> +<p>   七十从心所欲:交七十升米者,听课要躺要坐,想来不来,一切随便。  </p>别想不开啊https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/Tue, 22 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/<p>郁闷或高兴的时候我总是想抽根烟,比如,当我的代码总是调试失败或者刚修改完一个Bug的时候。</p> +<p>办公室里不允许抽烟,否则我们屋肯定和火车的车厢连接处一样,整天烟雾缭绕,这样就剥夺了一小撮人不抽烟的权利。</p> +<p>所以,抽烟的兄弟只能到厕所旁边的那个阳台吞云吐雾了。</p> +<p>这样也好,一边抽着&quot;混合味儿&quot;的香烟,一边欣赏窗外的风景,既满足了肺对于尼古丁的需求,又能放松一下疲倦的眼睛。</p> +<p>楼层不低,所以看得也挺远的,如果眼神儿和天气都足够好的话,甚至可以看见鸟巢里工人师傅的焊枪发出的耀眼蓝光。</p> +<p>下班的时候,我又去抽了一根烟,一个人。</p> +<p>远处的大楼在烟雾中显得虚无缥缈。</p> +<p>我手扶着窗户,探出头去,想看得清晰一些。</p> +<p>这时,一个哥们从厕所走出来,一边提着拉链一边语重心长地说:&quot;别想不开啊!&quot;</p> +<p>我靠!我有啥想不开的?</p> +<p>工作虽然累点儿,但是,祖国还需要我,人民还需要我,老婆做好的饭菜还在桌子上等着我,孩子还等着我回去辅导功课&hellip;&hellip; </p> +<p>算了,回去了,明天又是崭新的一天,但愿今天不堵车。</p>一块钱一斤https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/Mon, 21 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/<p>现在电脑基本上已经普及了,我老家的一个师范同学,去年买了电脑之后,非常迷恋电脑的知识,经常通过qq来问我各种问题,我也是基本上都耐心回复。</p> +<p>后来这厮竟然越来越来劲,已经不满足于普通的日常使用了,有一天就问我编程序到底好玩不好玩儿?我有心把它带进沟里,就告诉他编程序十分有意思,写完程序后很有成就感和快感。</p> +<p>这家伙终于着迷了,发誓要学会写程序,我就把老谭的那本《C程序设计》推荐给他看。</p> +<p>他看了之后一头雾水,说是像看天书一般,遂跟我唠叨十分后悔没念大学。</p> +<p>后来我被他缠的没办法,就告诉他应该先把基础打好,他说也对,不妨就把大学里的计算机课程给全过一遍。</p> +<p>我靠,佩服!让我肃然起敬。</p> +<p>不过,我大学里的书基本上都找不到了,就把课程的书目大体上给他说一遍,让他自己淘弄去,实在不行就去书店买,然后就有一阵子没有联系。</p> +<p>今天突然上线告诉我所有的书都买到手了,大概有十几本,我更佩服他的精神了,作为一个业余爱好者也太舍得了。</p> +<p>我问他:&quot;你哪儿买的书啊?现在书那么贵,花了不少钱吧?&quot;这家伙半天没吱声,过了一阵儿给我来了一句:&quot;没多少钱,比你上学时买的便宜多了,我让亲戚在大学旁边的废品收购站买的,你说的那些书全都有,九成新的!一块钱一斤!&quot;</p>颐和园https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/Mon, 21 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/<p>这几天,老爸老妈过来了,我也没有太多时间陪他们。</p> +<p>周末了,一起去了趟颐和园。</p> +<p>天太热,人太多,出去玩儿实在是太受罪了。</p> +<p>吃晚饭时与我爸一起整了几盅,正想多喝几杯时,老头按住酒瓶说:“编程序我不行,喝酒你不行。”</p> +<p>想去电脑上玩会儿游戏,我妈指着电脑屏幕上一路飙升的qq斗地主分数对我说:“编程序我不行,打牌你不行。”</p>家人来到https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/Tue, 15 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/<p>接风,洗尘、喝酒</p>偏执狂https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/Mon, 14 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/<p>看到了一篇关于电脑偏执狂的帖子,发现里面列举的内容大部分都像是在说我。</p> +<p>比如:Windows桌面只放三个图标:&quot;我的电脑&quot;、&quot;回收站&quot;、&quot;浏览器&quot;回收站永远保持&quot;清空&quot;状态,删除文件都是用Shift+Delete,根本不用进回收站所有软件都使用最新版,打上最新的补丁每隔一段时间就清理一次注册表如果有个软件用的不是最新版本就会浑身不自在</p> +<p>补充:看到别人的电脑不是处于最佳状态也会浑身不自在,想冲过去调理一番如果同样功能的软件有商业版和免费版的话,就打心眼儿里觉得免费版的那个更可爱经常整理磁盘碎片经常整理删除磁盘上的文件,有时候上午刚删完一个文件,到下午就发现那个文件还有用任务栏上同时打开窗口超过四个就觉得难受,如果把程序隐藏在系统栏就感觉好多了新建文件夹时不喜欢用&quot;新建文件夹&quot;来命名</p>自制果汁https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/Sun, 13 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/<p>大早上一起来,打开电视(就是我那个用Python写的小程序),凤凰卫视里的沈星正在介绍&quot;美女私房菜&quot;,正在纳闷原来美女还会做菜,结果令我十分失望,只见她拿了个番茄,随便切几下,往搅拌机里一扔,嗡嗡两下,搅成糊状,美其名曰&quot;营养瘦身果汁&quot;。</p> +<p>咳,正愁着早饭不知吃啥,干脆试一下吧。</p> +<p>从冰箱里拿出番茄,又刷了刷我那半年多没用过的搅拌机(当时为啥要买它?),搅拌之前又撒了些白糖,喝了果然神清气爽,看来,这个搅拌机还挺有用,这样吃番茄(应该是喝)比起放在嘴里生嚼别有一番滋味。</p> +<p>到了傍晚的时候,闷的慌,出去溜达的时候又想起自制果汁的事儿来,干脆这次来做一个真正的果汁。</p> +<p>买来西瓜一只、蜜桃若干、猕猴桃若干、青苹果、黄瓜,本来我还想加点儿芹菜,但是买不到了。</p> +<p>回到家,将这些水果切成丁、片,一股脑儿放入搅拌机,嗡嗡搅了一分来钟,足足做了一大杯,让我想想,西瓜消暑、猕猴桃富含维生素、青苹果酸中带甜,这杯什锦果汁应该是比早上那个强多了吧。</p> +<p>迫不及待喝了一口,靠,说不出的滋味,各种味道窜来窜去,就像是吃烂桃的时候再就着两口酸苹果,没办法,反正有营养,那就喝吧。</p> +<p>喝到大半杯的时候我才想起来,我刚才要是把西瓜的皮儿去掉就好了。</p>每个周六的晚上是我乐兴大发的时候https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/Sat, 12 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/<p>我的吉他弦断了,刚断的,就在我弹那曲《两只老虎》的时候。</p> +<p>没办法,为了能压住隔壁装修的声音,我在弹的时候多使了点劲儿。</p> +<p>幸好我未雨绸缪,买吉他的时候就多买了几根琴弦,今天终于用上了,不过,还是费了老半天劲儿才把弦儿装好。</p> +<p>这让我想起一个传说,爱好古琴人都知道这个神秘传说。古代有两人,一个叫俞伯牙,一个叫钟子期。有一天,俞伯牙琴兴大发,在他家空旷的后院里(也可能是在河边,记不清了),摆好琴,焚香沐浴后,惬意地抚上一曲。一时间,悠扬的曲子飘满了整个院子,向远方扩散。</p> +<p>俞伯牙正沉浸在曼妙的琴声里,突然,&ldquo;啪&quot;地一声脆响,琴弦断了。他向远处一望,原来是钟子期这家伙打完柴在这儿偷听他弹琴。钟子期不但听懂了他的曲子,而且对他这把琴的来历也说得头头是道,后来俩人成了好哥们儿。</p> +<p>就此打住,问题的重点并不是这俩人后来成了好哥们儿,关键是这个故事说明了一个问题:当有人偷听你弹琴的时候,你的琴弦就会断掉。反过来说,如果哪天你的琴弦断了,那么,在某一个角落里,有一个粉丝正在偷听你的琴声。</p> +<p>话说有一个人叫张三,酷爱抚琴,苦于没有知音。一日,在抚琴时琴弦终于崩断,此人对刚才的传说深信不疑,急忙起身,想要寻找那位来偷听的&quot;粉丝&rdquo;,果然,在角落里找到了他。张三欣喜不已,激动地握着&quot;粉丝&quot;的手说:&ldquo;同志!我可找到你了!&ldquo;却又发现这位粉丝已经陶醉于音乐之中,正在轻轻地啜泣。</p> +<p>张三感慨万千:&ldquo;终于有人懂我的琴艺了!&ldquo;忙将此人请入家中,沏茶倒水,欲询问此人对他刚才所奏之曲的感受。此人好不容易才止住哽咽,断断续续说道:&ldquo;本来我在睡午觉,忽听得先生的琴声,就顺着声音走到这里来了。&rdquo;</p> +<p>&ldquo;那又为何哭泣呢,我刚才所奏之曲虽有哀怨之意,听了却也不必如此悲痛吧?&rdquo; 张三不解地问道。说道此处,此人痛苦地干嚎两声,说道:&ldquo;之所以伤心,是因为我心里难受,先生的曲子让我想起我死去的舅舅,先生的曲子与我舅舅的曲子有一样的声音。&rdquo; 张三更加欣喜:&ldquo;敢问你舅舅是哪位大音乐家啊?&quot;,&ldquo;音乐家倒谈不上。&quot;,&ldquo;哦,那他是干什么的?&quot;,&ldquo;他是,弹棉花的&hellip;&quot;,&rdquo;#@$%^#$%^#$%^&rdquo;</p>你知道父母的生日吗?https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/Fri, 11 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/<p>单位要员工填写一张个人信息表,其中有一项内容是父母的出生年月(填的还真够细),很多人都填不上来。</p> +<p>我还好,前一段时间刚好在msn上和妹妹一起聊到了父母的年龄,赶紧翻看msn记录,终于找到了妹妹通过msn告诉我的出生日期(看来养儿子真不如养女儿)。</p> +<p>突然想起一个电视节目,在大街上现场采访,随便拉个人去问他父母的生日,结果大部分都张口结舌,答不上来。</p> +<p>自己的生日记得很清楚,老婆的生日记得很清楚,儿子的生日记得很清楚,有些人甚至领导的小舅子的孩儿他妈隔壁邻居的生日都记得很清楚,可是却把父母的生日抛在脑后,惭愧啊。</p>开幕式那天,使用哪种点火方式?https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/Thu, 10 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/<p>据说已有了定论,但还是个秘密,老张还在卖关子。</p> +<p>我有同事猜测,应该是派一只大熊猫举着火把去点燃,还有哥们儿说还不如让猪坚强去点燃。</p>eeepc 使用技巧(4) 看电视https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/Wed, 09 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/<p>用小e在床头看电视在合适不过了,不过我没找到Linux下的网络电视软件。</p> +<p>找来找去,发现一些可以用mplayer播放的mms链接,试了一下效果还不错,几个著名的电视台都有对应的链接,比如:</p> +<p>凤凰卫视中文台mms://58.22.96.10/litv01;</p> +<p>凤凰卫视资讯台mms://58.22.96.10/litv03;</p> +<p>但是我的mplayer是基于命令行的,每次要看电视的时候还需把这些链接输入进去,感觉很不方便。</p> +<p>刚好这两天对Python这个脚本语言比较感兴趣,于是想用Python写一个脚本来帮我输入这些链接。</p> +<p>由于对Python还不熟,所以写的界面很丑,不过也够我用了。</p> +<p>具体思路是,将这些链接首先存入一个文本文件里保存为channel.data,</p> +<p>内容如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">凤凰卫视中文台|mms&amp;#58;//58.22.96.10/litv01; +</span></span><span class="line"><span class="cl">凤凰卫视资讯台|mms&amp;#58;//58.22.96.10/litv03; +</span></span><span class="line"><span class="cl">东风卫视|mms&amp;#58;//58.22.96.10/litv07; +</span></span><span class="line"><span class="cl">精品影院|mms&amp;#58;//218.1.70.72&amp;#58; +</span></span><span class="line"><span class="cl">1755/JingPinYingYuan; +</span></span><span class="line"><span class="cl">东方卫视|mms&amp;#58;//live.smgbb.cn/dfws; +</span></span><span class="line"><span class="cl">星空卫视|mms&amp;#58;//58.22.96.10/litv06; +</span></span><span class="line"><span class="cl">TVB8|mms&amp;#58;//58.22.96.10/litv05; +</span></span></code></pre></td></tr></table> +</div> +</div><p>然后写一个python脚本读取这些链接并将电视台的名称填入界面中的一个列表框里,到时候通过点击名称就可以播放了。</p> +<p>python脚本内容如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span><span class="lnt">46 +</span><span class="lnt">47 +</span><span class="lnt">48 +</span><span class="lnt">49 +</span><span class="lnt">50 +</span><span class="lnt">51 +</span><span class="lnt">52 +</span><span class="lnt">53 +</span><span class="lnt">54 +</span><span class="lnt">55 +</span><span class="lnt">56 +</span><span class="lnt">57 +</span><span class="lnt">58 +</span><span class="lnt">59 +</span><span class="lnt">60 +</span><span class="lnt">61 +</span><span class="lnt">62 +</span><span class="lnt">63 +</span><span class="lnt">64 +</span><span class="lnt">65 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: UTF-8 -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span> <span class="o">*</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">string</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">class</span> <span class="nc">Application</span><span class="p">(</span><span class="n">Frame</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">clist</span> <span class="o">=</span> <span class="nb">list</span><span class="p">({})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">play_channel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">channel_url</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">strcmd</span> <span class="o">=</span> <span class="s1">&#39;mplayer &#39;</span> <span class="o">+</span> <span class="n">channel_url</span> <span class="o">+</span> <span class="s1">&#39; -cache 1024&#39;</span> +</span></span><span class="line"><span class="cl"> <span class="n">str_output</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">popen</span><span class="p">(</span><span class="n">strcmd</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="n">a</span> <span class="o">=</span> <span class="n">str_output</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&#34;</span><span class="se">\\</span><span class="s2">&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">bin_a</span> <span class="ow">in</span> <span class="n">a</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">bin_a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">channel_url</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">play_tv</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">curselection</span><span class="p">()[</span><span class="mi">0</span><span class="p">])])</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_channel</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">curselection</span><span class="p">()[</span><span class="mi">0</span><span class="p">])])</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">init_channel_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listbox</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;tvchannel.dat&#39;</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_info</span> <span class="o">=</span> <span class="n">channel_file</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">channel_info</span><span class="p">)):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_list</span> <span class="o">=</span> <span class="n">channel_info</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;;&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">channel_list</span><span class="p">)):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel</span> <span class="o">=</span> <span class="n">channel_list</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_name</span> <span class="o">=</span> <span class="n">channel</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_url</span> <span class="o">=</span> <span class="n">channel</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> <span class="n">listbox</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">END</span><span class="p">,</span> <span class="n">channel_name</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">channel_url</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">create_widgets</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;text&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&#34;Quit&#34;</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;command&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">quit</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;width&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">30</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;height&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="o">.</span><span class="n">pack</span><span class="p">({</span><span class="s2">&#34;side&#34;</span><span class="p">:</span> <span class="s2">&#34;left&#34;</span><span class="p">})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;text&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&#34;Play TV&#34;</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;command&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;width&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">30</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;height&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="o">.</span><span class="n">pack</span><span class="p">({</span><span class="s2">&#34;side&#34;</span><span class="p">:</span> <span class="s2">&#34;left&#34;</span><span class="p">})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span> <span class="o">=</span> <span class="n">Listbox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">init_channel_list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">selection_set</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">master</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">Frame</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">master</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">create_widgets</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">app</span> <span class="o">=</span> <span class="n">Application</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"><span class="n">app</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>保存为playtv.py,和刚才那个channel.dat放在一个目录,运行即可(python./playtv.py)。</p>假如工作总结这样写https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/Tue, 08 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/<p>半年很快过去了,领导又安排写工作总结。</p> +<p>写完之后感觉意犹未尽,不如把这半年的生活也总结一下,为了增加总结的趣味性,再此,我特意虚拟了一个记者出来。</p> +<p>记:2008已过去大半年,能不能谈一下你这半年都是在忙些什么呢?</p> +<p>我:可以,上班忙工作,下班忙生活。</p> +<p>记:哦,能不能说一下具体都是忙些什么工作呢?</p> +<p>我:工作上的事情我是不会在博客里说的,我刚写了一份上半年工作总结,一会儿可以给你看一下。</p> +<p>记:好的,那谈一下生活吧。</p> +<p>我:好的,因为我经常加班,所以其实我的生活也基本上就是工作,你还是看工作总结吧。</p> +<p>记:靠!你到底要不要接受采访,玩儿我呐?</p> +<p>我:你还真不懂幽默,咱们国家就是你这样儿的记者太多了。</p> +<p>好吧,给你说一下最近的情况。</p> +<p>记:请问,这半年你的周末都是怎样度过的?</p> +<p>我:大部分周末是在加班,另外由于我是一个很低调的人,所以剩下的时间都宅在家里。</p> +<p>记:宅?这个我知道,据说是一种生活方式,就是呆在家里不出门是吧?周杰伦还有一首歌叫《阳光宅男》呢!</p> +<p>我:你真聪明。</p> +<p>记:在家里干嘛呢?</p> +<p>我:无聊的时候我会谈谈琴看看书,如果有时间我会每周看一部电影。</p> +<p>记:你刚才不是说呆在家里不出去吗?怎么还去影院看电影?</p> +<p>我:刚夸完你的智商你就开始喘啦?谁说上电影院了,现在影院的票价那么贵,而且放的又是剪切版的,网络那么发达,片源很丰富,所以,我是在家看的。</p> +<p>记:说到&quot;剪切版&quot;请谈一下你对《色戒》这部影片的看法。</p> +<p>我:哦,这个我在网上看的也是剪切板的,不过看的是被剪掉的那部分,由于看的也不完整,所以也不便于发表看法。</p> +<p>而且,我比较怀旧,平时看的大部分都是多年前的老片。不过最近的《功夫熊猫》也挺不错。在看的过程中发现精品后我一般会在博客里记录下来。</p> +<p>记:你刚才说到无聊时会看书,都是看些什么书?</p> +<p>我:我还是比较怀旧,想把以前上学时没看过的小说给补一补,金庸和古龙的小说看了好几遍了,最近又复习了一遍《射雕》。</p> +<p>另外这半年还看了《我这一辈子》、《月牙儿》、《白豆》、《许三观卖血记》等中篇小说,上学时,家长不让我看这些小说,现在得补回来。</p> +<p>记:(撇撇嘴)我还以为是《鬼吹灯》、《诛仙》呢。</p> +<p>我:哦,这些我也想看,不过我胆儿小,一个人不敢看,怕失眠,我失眠挺严重的。</p> +<p>记:你刚才说无聊时还要弹琴,是弹钢琴还是吉他?</p> +<p>我:钢琴太贵,买不起,我弹电子琴、吉他、电脑键盘、吹口琴等。</p> +<p>记:(吁!)您的爱好还真够广泛的。看来这半年您过得还真是挺充实惬意的。</p> +<p>我:惬意个P呀,老婆不在身边,没人聊天,没人做饭,我孤独得都快抑郁了。不过她很快就要来了。</p> +<p>记:祝贺你啊。聊了半天,你能不能总结一下你这半年的心得和收获?</p> +<p>我:可以,这半年,我看了不少电影,新喜欢上几首好歌,又恢复了打篮球,身体状态也在恢复。</p> +<p>另外我迷恋上了Linux操作系统。至于收获嘛,真是说不好,有些事儿不能说。</p> +<p>记:好的,感谢你抽出时间接受采访,谢谢,再见。</p> +<p>我:再见。</p>不要忘记https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/Mon, 07 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/<p>7.7</p> +<p>71年前的今天,中国开始了长达八年的抗日战争。无需多言。</p>有音乐就有春天https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/Sun, 06 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/<p>有音乐就有春天,当我写下这句话,撇了撇嘴,我想,我还挺能装啊。</p> +<p>不过,这么说是因为刚刚看了一部电影&ndash;《放牛班的春天》,法国人拍的,很细腻,有一点小幽默。</p> +<p>故事讲的是一个迷恋音乐的教师与一群工读生的故事,工读学校管理混乱,体罚学生,学生自暴自弃到处做恶作剧。直到克莱门特来了,这个秃头的中年男人,看上去还有些磨叽。</p> +<p>然而,这些孩子马上就发现了新老师的与众不同,因为他唯一的皮包里装的仅仅是几张乐谱,而且他把这些视为生命。</p> +<p>克莱门特渐渐发现这些孩子原来也热爱音乐,这使他重新燃起创作激情,他把这些孩子根据特点编成了一个合唱团。</p> +<p>通过教授音乐,他不仅感觉这些孩子原来唱歌不错,而且组建合唱团也使他们变得不那么调皮了,音乐拉近了他们的距离。</p> +<p>然而,事情不会那么顺利,皮埃尔这孩子就很难对付,他声线极美却极难驯服,克莱门特不断挖掘他的优点,还说服他的母亲让他去读专业的音乐学校。</p> +<p>期间还有一段小插曲,那就是克莱门特与皮埃尔的单身母亲还产生了一点儿小感情,不过克莱门特很含蓄,一直埋在心里,影片在这一段处理的很不错。</p> +<p>影片的配乐很精彩,最让人陶醉的就是这些孩子天使般的歌声了,沉静又富有感情,天籁、天籁就是打这儿来的吧。</p> +<p>最后当克莱门特因得罪校长而被辞退的时候,这些孩子被命令不准送他,他孤独走向大门,此时优美的合唱响起,天空中飘满了孩子们折的纸飞机,上面写着祝福的话,孩子们用这种特殊的方式与他告别。</p> +<p>他用音乐给孩子们带来了春天,留下了春天,却又孤独地离去。</p>哈哈太棒了https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/Sat, 05 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/<p>晚饭毕,弹了一会儿电子琴,感觉很投入。</p> +<p>就是那种摇头晃脑的投入,脚也随着音乐的节奏踏着地板,忽闻岸上踏歌声就是这个踏吧。</p> +<p>感觉我的琴技提升了啊,左手和弦右手旋律,配合得天衣无缝,第一次有演奏的感觉,弄得动静比较大,不知道会不会吵到别人。</p> +<p>看来我天生会弹琴,曲谱都在心中,美妙的音符随着手指流淌出来,至少我是这么以为的。</p> +<p>有没有听到那个声音</p> +<p>就像是我忽远忽近</p> +<p>告诉你他来自我的心</p> +<p>带来一首苍老的歌</p> +<p>对着你轻轻的说</p> +<p>我不在乎春夏秋冬花开花落</p> +<p>任凭这夜越来越深</p> +<p>你在我心中越来越沉</p> +<p>压的我不能翻身作自己的主人</p> +<p>任凭这灯越来越昏</p> +<p>你在我眼中越来越真看得清你满脸的风尘</p> +<p>任凭这天空越来越湛蓝</p> +<p>你在我身边越来越平凡</p> +<p>可是有些说过的话一直没能改变</p> +<p>任凭这旅程越来越孤单</p> +<p>你在我面前越来越茫然</p> +<p>丢不下的行李</p> +<p>是我不变的心</p>留意了一下我的blog评论https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/Sat, 05 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/<p>无意间看到我写的几篇日志竟有人评论,想不到这个我发发牢骚的地方竟还有人访问哈。</p> +<p>而且,看起来,我写的颇为不错(嘻嘻)。</p> +<p>ps:感谢SEA同学的捧场。</p>我淋了一场大暴雨!https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/Fri, 04 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/<p>就在下班的时候,天还没有要下雨的样子。</p> +<p>我悠然地吃完了晚饭,然后慢吞吞地走向车站,准备回家。此时天上却落起了雨滴,不大,我想肯定又要堵车了,就买了本《读者》准备在车上看。车行驶到路上的时候,雨真的大起来了,雨点密密地砸在车顶和车窗上,彭彭作响,车窗外的景象被雨水冲得模糊不清。</p> +<p>雨越来越大,公交车就像一只潜水艇,四周都被水包围了。</p> +<p>到站而没有带伞的乘客,咬咬牙狠狠心跳下车去,很快就消失在茫茫雨雾中。</p> +<p>终于,我也要下车了,我带了伞,但我还是太低估了这场雨,我甚至想象在雨中点根烟,那该是多么惬意啊。</p> +<p>然而,我这把伞应付毛毛细雨还凑合,外面下着倾盆大雨,又刮着狂风,闪电在头上不停地把天撕开一个又一个裂口,这把伞仅能护住我的头,被风吹得翻过来复过去。</p> +<p>也许是我&quot;点根烟&quot;的想法激怒了老天,风雨越来越猛,马路变成了一条河,泛起一阵阵波浪,我不由自主地奔跑起来,拼命抱紧了我的电脑包,那里面装着我心爱的笔记本电脑。</p> +<p>几分钟的路程,把我淋得狼狈不堪,衣服湿透了,鞋子里灌满了水,终于,我跌跌撞撞地跑到了家门口。</p> +<p>我想这是我有生以来淋得最大最惨的一场雨了。</p> +<p>现在,我洗完了热水澡,沏了一杯热茶,窗外,雨已经停了。</p>怎样使用VC6的远程调试https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/Thu, 03 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/<p>今天遇到一个问题,我们的程序在本地执行一切正常,但在售后的一台笔记本电脑中却无法启动且爆出runtimeerror。</p> +<p>无奈只有通过调试来查找问题所在,由于该笔记本并未安装开发环境,于是想到了VC6的远程调试。上网翻看资料,写的都不太详细,摸索半天终于成功,并通过远程调试搞定了程序的问题。</p> +<p>现将远程调试的详细操作记录下来以备忘。</p> +<p>1、需机器两台:一台为调试机(装有VC6开发环境),一台为客户机(运行程序)</p> +<p>2、假定客户机的ip地址为192.168.0.168</p> +<p>3、假定需要运行调试的程序放在客户机的C\emote_bin\emote_test.exe</p> +<p>4、共享客户机C:\emote_bin文件夹,并开放所有权限(读、写),共享名为remote_bin;</p> +<p>5、在调试机上映射客户机remote_bin共享目录为&quot;Z&quot;盘(可在cmd中执行&quot;netusez:\\192.168.0.168\emote_bin&quot;) </p> +<p>6、拷贝调试机上VC6安装目录下的Bin目录中的全部内容到客户机任意位置(该目录在调试机的路径一般为&quot;C:\ProgramFiles\MicrosoftVisualStudio\COMMON\MSDev98\Bin&quot;),在此假定拷贝在客户机的&quot;C:\Debugger&quot; </p> +<p>7、在客户机运行&quot;C:\Debugger\MSVCMON.exe&quot;,启动后再对话框上直接点击&quot;Connect&quot;按钮(不用点&quot;Setting&quot;按钮),期间如有防火墙告警提示,需允许该程序。 </p> +<p>8、回到调试机,打开VC6并打开要调试的工程文件(再此为remote_test),在VC6的&quot;Build&quot;菜单下点击&quot;DebuggerRemoteConnection&quot;,在弹出的对话框左侧选择&quot;NetWork(TCP/IP)&quot;,点击右侧&quot;Setting&quot;按钮,填入客户机ip地址(192.168.0.168)点击&quot;ok&quot; </p> +<p>9、点击VC6的&quot;Project&quot;菜单下&quot;Setting&quot;,切换到Link页面,在Outputfile中填入&quot;Z:\emote_test.exe&quot;,切换到Debug页,在Executablefordebugsession中填入&quot;Z:\emote_test.exe&quot;,在Remoteexecutablepathandfilename中填入&quot;C:\emote_bin\emote_test.exe&quot;(注意:此行甚为重要,需填写程序在客户机的完整路径) </p> +<p>10、大功告成,按F7编译可执行文件,按F5开始远程调试吧!</p>求雨妙招https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/Wed, 02 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/<p>入夏以来,大家打篮球的热情空前地高涨,频率已经从原来的每周一场提升到每周两场,较上年同期提升了100个百分点(我晕,还是别用新闻联播的语气了)。</p> +<p>不仅如此,每次打球的时间也有所延长,基本上都是从下班打到天黑,中间不休息、不换人,三个小时下来,基本上都口吐白沫,胳膊抽筋,两股战战几欲先走。</p> +<p>然而天公总是不作美,近日一连串的雨天,严重打乱了我们的打球计划。</p> +<p>基本上每次打球都要下雨,而且时间也选在下班前后。</p> +<p>每当约定好打球日期,第二天带齐了球衣和球鞋,下班后刚给篮球打满气,还没来及拿起来在手指上转一下,只见天空一道闪电,紧跟着大雨倾盆而下,大家只得各自回家收衣服。</p> +<p>同事们都感叹又发现一求雨的新招数,无论哪个地方干旱少雨,只需我们带齐装备过去打球,过不多时必有甘霖降落。</p> +<p>今天,大家没带球衣,也没带球鞋,篮球也没打气,天,晴了!</p>断网一天的感受https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/Tue, 01 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/<p>公司的光纤今日出了故障,整整一天无法上线,感受如下:</p> +<p>1、无法与出差现场的同事交流,同事亦无法访问公司网络,导致工作受阻。</p> +<p>2、IM软件不能上线,家人朋友都很担心,老妈更是打来电话,问我为什么qq不在线。</p> +<p>3、不能收发电邮,心情焦躁不安。</p> +<p>4、无法获取最新资讯,感觉与世隔绝了。</p> +<p>5、GoogleReader积累了200+的未读条目,原来我订阅了这么多信息。</p> +<p>6、终于修好了,爽!</p>终于见识了Vistahttps://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/Mon, 30 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/<p>昨天,一朋友新买了台笔记本,预装WindowsVista操作系统,我拿到手把玩一会儿,见识了传说中的Vista。</p> +<p>界面确实是漂亮了许多,确切的说是比起我用的XP界面华丽了很多,但是咱也有Ubuntu啊,Linux下的界面也不是盖的。</p> +<p>至于速度呢,真是让人难以接受(忍受),想不通微软那帮儿天才是不是故意把系统弄得这么慢,明明硬件配置已经很高了,要是跑xp能让它飞起来,但是Vista却慢慢吞吞咿咿呀呀哼上老半天,让我想到了我十年前第一次启动Win98。</p> +<p>同样,关机也是很慢,一副可怜兮兮、依依不舍的样子,恨不得让你直接拔电池。</p> +<p>Vista另一个让我不爽的方面应该就是UAC(用户帐户控制)了,对于这个功能,我的理解就是典型的掩耳盗铃,因为随便你运行个什么程序系统都会不厌其烦地弹出一个框,告诉你这是个陌生程序,它不确定是否安全,问你是否继续,如果你允许了,那么他也就没有任何责任了。</p> +<p>可是我又怎么知道这个程序有没有威胁?我要是知道我还会运行它吗?</p> +<p>靠!今天看到消息说,从本周一起微软就再也不买XP了,这也就意味着,你如果还想用Windows以后只能买Vista了。</p> +<p>以后再买笔记本也只能预装Vista了,一句话,微软要逼着我们用他的新系统了。但我还是决定对xp&quot;不抛弃,不放弃&quot;,这次Vista的使用经历更是坚定了我的观点,让华丽的Vista见鬼去吧!</p> +<p>ps:不行就用Linux</p>驱蚊良方https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/Sun, 29 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/<p>入夏以来,被蚊子叮咬数次,胳膊的红点竟呈北斗七星状。冥思苦想,得一良方。活捉蚊子一只,将长嘴拔掉,悬挂于床前,众蚊子观其惨状均不敢靠前半步。</p>今天居然不加班https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/Sat, 28 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/<p>像往常一样,周六的早晨匆匆醒来,洗漱完毕拿起包推门而出,忽然想起,今天不加班!</p>是爷们儿就得顶着,看了《太极旗飘扬》https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/Sun, 22 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/<p>真实的战争场面和细腻的故事情节让《太极旗飘扬》这部影片成为了和《拯救大兵瑞恩》同样经典的战争片,</p> +<p>我认为甚至超越了后者,因为《拯救大兵瑞恩》带给我更多的是战斗场景的震撼,而太极旗飘扬则在震撼之外又多了一些在情感上的触动。</p> +<p>战争到来的时候,带来了无尽的不幸和灾难,无数的人卷入这残酷的漩涡。</p> +<p>故事的主角&quot;镇泰&quot;本来和家人幸福的生活在一起,弟弟马上就要念大学了,妈妈和妻子开的面摊也刚刚有了起色,而且自己修鞋的手艺也越来越高超,挣钱供养弟弟上大学应该没有问题,虽然他自己连一个字也不识,但是他很满足。</p> +<p>然而,战争的到来让一切幸福都成为泡影,他们兄弟俩很快被抓了壮丁,与亲人失散。</p> +<p>战场上的血雨腥风让他们很快成长起来,每时每刻都有人死去,在战斗中,作为哥哥,镇泰时刻保护着年幼体弱的弟弟,不惜生命的代价。后来他又听到一个传说:&quot;只要得到一枚总统颁发的勋章就可以让一位自己在军队里的亲人回家&quot;他相信了,为了勋章,为了能让弟弟离开战场,他拼了命,甚至让他的弟弟误会他,以为他为了得到荣誉而不顾一切。</p> +<p>他终于拿到了勋章,可是他弟弟却没能回家,他所得到的却是眼睁睁地看着自己贤惠的妻子被战友当作叛徒无情地射杀,那一刻我想他肯定比子弹打在身上还难受。</p> +<p>后来他的弟弟被当作叛徒要被烧死(被救出,但是他不知道,一直认为弟弟被战友烧死了)。</p> +<p>他绝望了,他为了弟弟、为了家人所做的这一切只给他带来了更多的不幸。于是他成了俘虏,他叛变了,他开始疯狂地报复,当两兄弟在战场上互相以敌人的身份见面时,他已经杀红了眼,两人厮杀很久,在弟弟的叫声中他终于清醒了,可是弟弟的部队已经开始败退了,两个人面临生死抉择,弟弟需要撤走,而他需要留下来为弟弟断后。</p> +<p>看到弟弟安全撤走,他欣慰地死去,为了弟弟,他已用尽了自己最后一丝力气。</p> +<p>整部电影想要表达的以及所表达的远不止这些内容,抛开历史的真实性和导演的政治观点不说(这些仁者见仁智者见智,毕竟这是韩国的电影),我觉得一部电影,看完了能够让我思考的,那就是一部好电影。</p> +<p>通过影片我看到了战争带给人们的苦难以及和平的珍贵,看到了生命的脆弱和人性的光辉。</p> +<p>片中很多情节充满血腥,很多情节又饱含温情,看到两兄弟最后战场离别的那一刻,我更看到了,作为一个男人的责任。</p> +<p>当镇泰倒下去,看着弟弟的背影死去,我只想说:&quot;镇泰是个爷们儿,纯的!&quot;</p>算法导论+《赤道和北极》=失眠https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/Fri, 20 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/<p>昨晚又严重失眠,本来想早早睡觉,便从书架上抽出一本比较枯燥的书(《计算机算法导论》)在睡前翻翻,我想这样可以很快睡着。</p> +<p>谁知竟越看越有精神,于是打开收音机,想找个唠叨的主持人催眠一下。</p> +<p>交通台正在放春晓主持的一档音乐节目,这个主持人声音比较有特点(就是那句:“身未动~~心已远~~让我们一起走吧~~~”)</p> +<p>正所谓:男有伍洲彤女有春晓,这俩人的节目用来边听边睡刚好。</p> +<p>忽听得一阵优美的吉他,竟是另一版本的《赤道和北极》,此歌旋律优美,再加上女歌手声线极美,不由得让人思绪万千。</p> +<p>此处省略1千字以后晚上再也不敢听这个音乐节目了,除非不想睡觉。</p>软件需求与“让你丫不戴帽子”https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/Mon, 16 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/<p>改了一天的软件bug,发发牢骚:</p> +<p>在软件开发过程中,开发人员最担心的不是客户提出的功能需求从技术上难以实现,而是客户往往毙掉你费尽心血开发的功能,然后天马行空地提出另一套思路,如果你抱着客户就是上帝的想法,满足了他们的变态要求,那么,苦日子接着就来了,因为这些变态的家伙会在软件的功能需求上反反复复、朝三暮四并乐此不疲。</p> +<p>比如你的程序完成了某一项任务后没有提示,他会说“为什么干完了不提示我一下?”</p> +<p>而如果你跳出来提示他又会觉得很烦“干完了为什么还要烦我一下?”,</p> +<p>最后只好弄成可配置,但人家又嫌配置起来太罗嗦,不人性化。</p> +<p>不多说了,想起来一个经典的笑话说兔子跟街上走着,迎面碰上了老狼。</p> +<p>老狼伸手就给他一大嘴巴,“让你丫不戴帽子”。  兔子很郁闷地回家了,弄一帽子戴着。  </p> +<p>第二天又碰上老狼了,又挨了一大嘴巴,“让你丫戴帽子”。  如是几次,总挨打。</p> +<p>兔子想,这么老挨打不是个事儿啊,不行,我得找老虎投诉去。  </p> +<p>刚到老虎家门口,就听老虎在屋里说话。  </p> +<p>你也不能老这么蛮不讲理打兔子阿,回头兔子找我投诉来,我也不好罩着你啊。</p> +<p>好歹咱面子上得过得去,我教你一招。  </p> +<p>下回你见着兔子,跟他说:给我弄点儿洗衣服的来。他给你拿肥皂来,你就打他一顿的,说我要的是洗衣粉,谁让你拿肥皂。他拿来洗衣粉,你也能打,说我要肥皂,谁让你拿洗衣粉。  </p> +<p>要不然你跟他说,去,给我找个女人来。他给你找个胖的,你打他一顿说我要瘦的;给你找个瘦的,你也打一顿,说我要胖的。  这样不结了,你也能打他,我面子上也能说得过去。”  兔子一听,得,咱也别投诉了,回家吧。  </p> +<p>第二天,兔子在街上又撞上老狼。老狼大喝一声:去,给我找点儿洗衣服的来。  </p> +<p>兔子不慌不忙:你是要洗衣粉阿,还是要肥皂啊?  </p> +<p>老狼一听,嗯?有一手阿。又说:去,给我找个女人来。  </p> +<p>兔子还是不慌不忙:你是要胖的啊,还是瘦的?  </p> +<p>老狼一听勃然大怒,伸手就给兔子一个大嘴巴,  </p> +<p>让你丫不戴帽子!</p>有阵子没打篮球了https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/Sun, 15 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/<p>今天继续发扬每到周末就睡不着觉的光荣传统,比平时上班起的还早。</p> +<p>洗了个澡,饶有兴致地做了顿早餐(花了一个小时,吃了5分钟)。</p> +<p>还没来得及把电视频道翻看一遍,大宝就喊我去打篮球,二话不说,换好球鞋飞奔球场。</p> +<p>抓起篮球才发现,已经很生疏了,找不到一点儿手感。</p> +<p>来回跑二十分钟就开始喘气了,还好,4对4的接波比赛中总算懵进了几个球。</p> +<p>渐渐找到感觉,跑动越发积极,身法也越来越快。队友一个快速传球,我以迅雷不及掩耳盗铃之势抓住球,猛跑两步,转身!跳起!腿抽筋儿了!</p> +<p>看来我是得注意一下平时的锻炼了。</p>我的吉他梦https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/Mon, 09 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/<p>一个人太无聊,一天没说话,吃饭睡觉打豆豆,傍晚时分,想出去活动活动,溜达到客厅,看见角落里那把吉他,突然想活动活动手指。</p> +<p>我拿起琴,吹了吹上面的灰,呛得我咳嗽了半天,调了调弦,闭上眼睛,富有激情地弹了一曲“两只老虎”,希望没有吵到邻居,虽然听到楼上孩子的哭声,但是我觉得那是该喂奶了,小孩子还小,还不能体会音乐的灵魂,怎么可能感动的哭呢?</p> +<p>其实我十年前就开始学琴了,不过绝对不是为了泡妞而学,而是怀着对音乐的满腔热情而学,虽然也曾幻想抱着吉他站在某个女孩的门前,大声唱着“冷雨夜我不想归家,盼望你会知,可知道我滴心&hellip;.”,</p> +<p>无奈我手指上的茧子退了一层又一层仍是达不到理想的水平,只能一个人的时候弹两曲消遣一下而已。</p> +<p>大学的时候,每当我在寝室练琴就有隔壁同学跑过来说:“你们谁在这把床推来推去的?弄得地板咯吱咯吱的?”,</p> +<p>有一次,管理宿舍的大爷一路咆哮着就上来了:“说过多少遍了!寝室里面不能做饭!”,</p> +<p>“没有啊,大爷”“还说没有!我在楼下都听到炒菜的声音了!”&hellip;&hellip;</p> +<p>他们就这样把我成为一个吉他手的梦想给残忍地扼杀了。</p> +<p>后来我迷恋上了编程(也能活动手指),吉他就被我丢到了角落,偶尔还会拿起来拨两下就像今天这样。</p> +<p>当然了,这个梦并未完全破灭,我仍然幻想着某天弹吉他能像现在敲电脑键盘这么熟,刚工作那会儿我给自己定了计划,觉得无论如何也得在三十岁之前把吉他练成,现在,眼看着快三十了,吉他上的灰却越来越厚。</p>注册atl组件返回错误0x80040154的原因及解决办法https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/Wed, 28 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/<p>今天用VC6做了一个com组件,使用ATL模板创建,结果在使用regsvr32.exe注册时死活注册不上,返回0x80040154,使用ErrorLookup查看错误号结果是“没有注册类别”,百思不得其解,即使以前可以注册的组件现在也无法注册了,怀疑是操作系统的问题。</p> +<p>上网搜索了半天,最终还是在微软的官方网站上找到了一点儿蛛丝马迹:</p> +<p>“WhenyouregisteranATLserver,youmightgeterror0x80040154(Classnotregistered).ForDLLs,REGSVR32.exereturnsthiserror.ForEXEs,thecallto_Module::</p> +<p>RegisterServer(CComModule::RegisterServer)in_tWinMain()returnsthiserror.”,</p> +<p>接着往下看“InstallATL70.dll(orATL.dllforearlierversionsofVisualStudio)intheWindows\SystemorWinnt\System32directory.YoudonothavetoregisterATL70.dll,however,youmustregisterATL.dllbyusingRegsvr32.exe.ThereareUNICODEandANSIversionsofATL70.dllandATL.dll.Installtheappropriateversiononthetargetoperatingsystem(thatis,UNICODEforMicrosoftWindowsNT,andANSIforMicrosoftWindows95orMicrosoftWindows98).”</p> +<p>哦,原来是system32下面的atl.dll没有注册,打开C:\windows\system32\找到atl.dll后使用regsvr32注册,然后再注册我的组件,成功!</p> +<p>结论:怀疑在安装、卸载软件或使用优化软件进行系统清理的时候不小心反注册了atl.dll,导致使用atl模板创建的com组件均无法注册。</p> +<p>ps:两年前就遇到过此问题,当时无法搞定,只得重装系统,今天总算找到问题的原因了</p>eeepc 使用技巧(3)vim搭建c开发环境https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Mon, 26 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/<p>今天继续记录eeepc的使用经验,闲言碎语不要讲,说一说如何安装c、c++开发环境以及在vim下进行编程。</p> +<p>安装开发环境很简单,不用单个安装gcc、make什么的,只需sudoapt-getinstallbuild-essential,这里面就什么都包含了(gcc、g++、gdb、make等)。</p> +<p>然后就找个合适的编辑器吧,系统自带vim,vim太强大了,这里不能多说(我也是刚开始用它),但是只有最基本的编辑功能,要想比较方便地进行开发需要安装如下vim插件:ctags、Taglist、supertab、c.vimctags其实不算是插件,算是单独的程序,用来生成vim能识别的标签文件,这样在vim写代码时就可以进行函数、变量、枚举类型之间快速定位了。</p> +<p>taglist可以在vim窗口的左侧生成一个tags列表,里面就是用ctags生成那些标签,方便随时定位到这些标签supertab是个增强版的代码补齐插件,写代码时按tab键可以弹出自动补齐列表供选择,如“p”可以自动补齐为“printf”c.vim是进行c、c++编程时的必备插件,能使vim变成一个为开发c语言定制的一个ide,拥有自动注释、F9编译,自动补全等强大功能。</p> +<p>插件装好后,在vim的vimrc文件里需要加上syntaxon这样每次启动vim时,它的语法高亮功能就自动打开了。</p> +<p>写一段代码试试看vimhelloworld.c#include&lt;stdio.h&amp;gt;intmain(){printf(&quot;helloworld&quot;);return0;}:wq退出编译:gcchelloworld.c-ohelloworld</p> +<p>运行:./helloworld</p>《Are You The One》以及流鼻血https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/Fri, 23 May 2008 00:00:00 +0000https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/<p>AreYouTheOne,这是一首好听得不得了的歌曲,来自荷兰WithinTemptation乐队,主唱Sharon绝对是超级女声,有着高亢的声线、鬼魅一般的嗓音。</p> +<p>从听第一遍就喜欢上这首歌儿了,让我停不下来,反复播放,直至流鼻血。曲中3分13秒开始的那一段电吉他solo实在是荡气回肠。</p> +<p>Areyoutheone?你是他么?Thetravellerintimewhohascome.进入我生命的陌生人Tohealmywoundstoleadmetothesun.治愈心伤,播撒阳光Towalkthispathwithmeuntiltheendoftime.结伴走在生命的小路上Areyoutheone?你是他吗Whosparklesinthenightlikefireflies.萤火虫般流彩的目光Eternityofeveningsky.对视,在永恒的夜空Facingthemorningeyetoeye.直至晨曦来到Areyoutheone?你是他吗Who'dsharethislifewithme.与我共度此生Who'ddiveintotheseawithme.与我在深海偎依Areyoutheone?你是他吗Who'shadenoughofpain.受尽创伤Anddoesn'twishtofeeltheshame,anymore.不愿再心伤Areyoutheone?你会是他吗Areyoutheone?你是他吗Who'sloveislikeaflowerthatneedsrain.他的爱是雨中的花朵Towashawaythefeelingofpain.冲去了忧伤Whichsometimescanleadtothechainoffear.不再迷茫彷徨Areyoutheone?你是他吗Towalkwithmeingardenofstars.一起走在群星之下Theuniverse,thegalaxiesandMars.火星,银河,宇宙Thesupernovaofourloveistrue.见证我们爱的迸发</p> +<p>ps:流鼻血可能与这首歌曲无关,这两天比较上火,昨天下班时,看到路边有课桑树,上面结满了熟透了的桑椹,于是我童心顿起,顺手摘了几颗放在嘴里,还挺甜的。</p> +<p>小时候挺爱吃桑椹,到了季节就大把大把的吃,大人总是吵着不让多吃,说吃多了会流鼻血,没想到我昨天刚吃了几颗,今天就流鼻血了。</p> +<p>再ps:从今天开始,北京算是进入真正的夏天了,突然就热了起来,非常热,办公室里热的像蒸笼,空调也不管用,当然,天气这么热也有Intel的功劳,整个电脑机箱热的像是路边烧烤用的碳火炉,再烤下去,晚饭就能吃“烤人腿”了。</p>eeepc 使用技巧(2)https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/Thu, 22 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/<p>接着昨天的继续,系统修改为中文了,软件源设好了,输入法也装好了,接下来就想看看小e(姑且把我的eeepc叫做小e)的多媒体性能咋样儿了(其实就是看看能不能看片儿)。</p> +<p>小e自带有mplayer以及前端的SMPlayer,播放一般视频(mpeg、wmv)效果挺不错,遗憾的是还不能播放rmvb,上网查了一下原来是缺少相应的解码包,</p> +<p>于是乎,就找到了这个win32codecs下载后将这个压缩包解压后的内容放到/usr/lib/codecs下即可,系统默认并没有codecs这个文件夹,需要手动创建sudomkdir/usr/lib/codecs,然后复制cp/home/user/win32codecs/*/usr/lib/coecs。</p> +<p>好了,在命令行输入mplayer/home/user/*.rmvb-f-z很流畅的画面就出现了,此时的-f和-z参数分别代表全屏和自动缩放画面到窗口大小。然后我又尝试播放了一下720p的高清视频(wmv格式),小e也能轻松胜任,画面很清晰,也很流畅,看来mplayer这个软件写的很棒,虽然是命令行格式的,但是我喜欢。</p>eeepc 使用技巧(1)https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/Wed, 21 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/<p>买了eeepc900一段时间了,翻遍很多论坛,也慢慢摸索一些基本使用技巧,不敢独享,一直想写出来,只是最近工作很忙,加上地震带来的全国性灾难,导致最近几天也没心思去写。</p> +<p>现在,让我整理一下思路,慢慢把经验写下来,也防止我以后会忘记。</p> +<p>eeepc可以安装xp操作系统,但是我喜欢linux,买了eeepc有一半是为了使用linux,所以我不会把他自带的系统干掉然后安装xp系统,windows操作系统我实在是用腻了。</p> +<p>因为只有装了linux系统的机器才能让我感到完全是“自己的”。</p> +<p>eeepc900自带有定制的linux操作系统,而且是基于debian的发行版,哇,有了debian一切都好办了。</p> +<p>debian有强大的apt-get软件包管理系统,但是eeepc的说明书上吓唬我说“用户不能自行安装其他软件”,咳,管他呢,我查了一下,原来是在apt的source.list里没有相应的源而已,而且eeepc里也自带了“新立得软件管理器”只是没放出来而已。</p> +<p>好了,先从“控制台”开始,刚拿到手的时候,我费了老半天的劲儿才找到控制台窗口打开的办法,看来asus实在太担心用户的智商了。答案是按“Ctrl+Alt+T“就能调出控制台,要知道在Lxiux下有了”控制台“才算有了系统的操纵权啊!</p> +<p>由于默认是英文版的,让我先把系统从英文调整到中文吧在控制台输入/opt/xandros/bin/locale_dialog然后在弹出的对话框中选择简体中文,重启机器,就变成中文系统了。</p> +<p>随机带的软件太少了,而且大部分还是给小孩子用的,根本不够我用,本地化之后就我就开始想办法安装软件控制台输入<code>vim/etc/apt/sources.list</code>发现该文件就两行</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">debhttp&amp;#58;//update.eeepc.asus.com/p900p900maindebhttp&amp;#58;//update.eeepc.asus.com/p900/enp900main增加如下内容:debhttp&amp;#58;//debian.cn99.com/debianstablemaincontribnon-free +</span></span></code></pre></td></tr></table> +</div> +</div><p>然后:wq存盘退出sudoapt-getupdate这样就有了debian的基本源,现在开始使用apt-getinstall疯狂安装想要的软件吧!</p> +<p>由于我这个版本默认的输入法管理器是gcin的,虽然也有拼音输入,但是不符合大陆人的输入习惯,所以我首先要安装scim,在控制台输入sudoapt-getinstallscimscim-chinese,要想使用scim还需要一个软件sudoapt-getinstallim-swich,然后把gcin卸载sudoapt-getinstallgcin-好了,切换到scim吧,输入sudoim-switch-sscim然后重启机器,输入法管理器就变成scim啦!</p> +<p>唉,eeepc的键盘实在是太小了,在上面打字实在是太累,先写这么多,估计也就有十分之一吧,剩下的以后再慢慢写。</p>测试从scribefire发布bloghttps://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/Tue, 20 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/<p>使用firefox在eeepc900上发布测试用无内容</p>我的妈妈https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/Sun, 11 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/<p>从小学到初中的作文课,几乎每个语文老师都布置过“我的妈妈”这篇作文,</p> +<p>很多同学文笔细腻,感情丰富,写出的作文真实流畅,总被老师挑选出来作为范文朗诵,让我很是羡慕,</p> +<p>不过,我作文水平极差,在课堂上拼命咬着铅笔头,恨不得把橡皮也吞下去,还是凑不够字数。</p> +<p>很想回忆一下当时写的别字连篇的作文,不过一晃过去那么多年,现在一个字儿也想不起来了。</p> +<p>母亲节了,我再写一篇试试。</p> +<p>我的妈妈我妈今年五十岁了,虽然她看起来还不到五十岁,而且在我心目中也就是四十来岁的样子,我总是笑着跟她说:“妈,您是越活越年轻啊!”每当这个时候她总是高兴得合不拢嘴,心里美滋滋的。</p> +<p>是的,没错!我说的是实话,我妈是挺年轻的。</p> +<p>我妈是一名出色的乡村教师,我小的时候,爸爸在邻村的中学教书(巧了,我爸也是老师)平时不在家里住,我妈就在我们村的小学,条件极为艰苦,当时为了带我,她吃了不少苦头,一方面是她平时工作任务很重,乡村学校缺老师,她一个人要教好几门功课,跨越几个年级,另一方面是我体弱多病,当时家里又不富裕,照看我这样儿的孩子要比别的孩子多费几倍的心血。</p> +<p>但是她很要强,工作很优秀,同时在她的精心培养下我也茁壮成长,到了今天,我可以很负责任的说,她很成功。说到对我培养,我刚才说的好像有点儿不太谦虚,呵呵,我所指的成功就是,她把我培养成了一个善良的人,并且给了我一个快乐的童年。</p> +<p>想到小时候,其实我妈的脾气还是有点儿火爆的,我要是做错了事儿,挨揍也肯定是跑不掉的。但那都是因为我不懂事,打我那是怕我将来成为一个无用人,而且,所谓“打在儿身,疼在娘心”啊,我挨完揍,她也偷偷抹眼泪。</p> +<p>虽然先说了我妈会打我,但那毕竟是少数,大部分时候妈妈是和蔼可亲的,而且对我也百般呵护、百依百顺,要什么就给什么,想吃什么就做什么,现在回想起来,她对我简直是太溺爱了。</p> +<p>妈妈心灵手巧,我小时候没什么高级玩具,别人折的纸船、纸飞机、风车什么的,她拿到手后,拆开一看,马上就会折了,而且马上把我教会(看来,我也很聪明)。</p> +<p>小孩子都爱拆东西,别家的孩子拆了可能会挨揍,但是我妈见我拆东西不但不打我,而且还带我一起拆玩具,有次我把我仅有的很贵的“坦克”玩具给拆坏了,我妈费了好大的劲儿才把它修好。</p> +<p>后来我上学了,还是保留了这个爱好,拆拆装装的东西弄了一整箱,从收音机到电子表应有尽有,我觉得那些才是最好的玩具。我妈的心灵手巧并非表现在这个方面,她的缝纫技术也是出类拔萃,邻里之间有人要做衣服肯定让她帮着剪衣样,有次她给我做了个棉袄,样式比商场里面卖的还新潮,惹得很多孩子也吵着要这样儿的。</p> +<p>织毛衣也不在话下,不但图案精美,而且速度飞快,有次,天气突然转冷,妈妈怕我妹妹冻着,一夜之间就给我妹妹织了一顶帽子。</p> +<p>现在,妈妈还是能跟上时代的潮流,我给老家装上了电脑,她也很快学会了打字,想我了就上QQ和我聊两句,周末我们还会视频一下,聊聊一周的家长里短。</p> +<p>随着妈妈年龄的增长,她对我们也越来越依赖了,有时候陪着她聊天,我随便说个笑话就把妈妈逗得前仰后合,笑得眼泪都快下来了。她每天都上网上看看,虽然并不是每次都和我聊天(怕我工作忙),但是她说,看到我的QQ也在线,心理就很踏实了。</p> +<p>今天是母亲节,一个感恩的节日,身在遥远的北京,我坐在电脑前,写一点儿文字,衷心祝愿我的妈妈以及天下所有的妈妈都幸福安康。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">慈母手中线 +</span></span><span class="line"><span class="cl">游子身上衣 +</span></span><span class="line"><span class="cl">临行密密缝 +</span></span><span class="line"><span class="cl">意恐迟迟归 +</span></span><span class="line"><span class="cl">谁言寸草心 +</span></span><span class="line"><span class="cl">报得三春晖 +</span></span></code></pre></td></tr></table> +</div> +</div>有了压力你就喊https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/Fri, 25 Apr 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/<img src="https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/20080424.png" alt="Featured image of post 有了压力你就喊" /><p>周末和几个哥们儿喝酒,喝完了哥们儿提议去K歌,很久没K了,我在包厢里抱着话筒死活不肯松手,再一次展现了&quot;麦霸&quot;的风范。</p> +<p>借着酒劲儿我愣是把一首首温柔的情歌咆哮出了&quot;摇滚&quot;加&quot;死亡金属&quot;的味道,那声音,比杀猪好听多了。</p> +<p>没办法,情歌就是得用真实的声音来诠释,而和朋友一起喝完小酒后的情感往往是奔放的、原始的、撕心裂肺的。</p> +<p>管你是青藏高原还是回到拉萨;是左等右等(RightHereWating)还是加州招待所(CaliforniaHotel);</p> +<p>是国粹京剧还是家乡地方戏,一律来者不拒,而且必须是原调!</p> +<p>那一刻我觉得,就是帕瓦罗蒂过来飙高音咱都不惧他!</p> +<p>唱完歌,觉得通体舒畅,酒也解了,一切的压力都烟消云散,腰也不酸了,背也不疼了,一口气儿也能上5楼了。</p> +<p>突然想起一句名言,在这儿给他改一改,就叫&quot;有了压力你就喊!&quot;</p> +<p>&ndash;由sbabybird于4/24/200809:00:00下午在从容地狂奔上发表</p>梦,神经衰弱https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/Fri, 28 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/<p>昨晚,编程时有一问题困惑很久,反复调试总是失败,无奈,只得放弃,怀着郁闷的心情睡去。</p> +<p>睡梦中恍恍惚惚仿佛有人叫我,原来是一白胡子老头,声音洪亮(略有东北口音),精神矍铄,约我相谈技术话题。</p> +<p>只见该老头唾沫横飞,指指点点,谈笑间从身后掏出一笔记本电脑,当场就把VC6启动起来。我定睛一看,我靠!这不就是我白天写了一下午的那些代码么?</p> +<p>老头边解说边将我的代码略为修改,我顿时感到豁然开朗,遂给我演示了一下运行效果,果然很流畅,问题得以解决。</p> +<p>惊喜使我从梦中醒来,回忆刚才的场景,起床倒了一杯水,拿起纸笔,十分虔诚地把刚才的思路记了下来,我甚至能记住当时的函数和变量的名称。</p> +<p>一大早到了公司,启动环境,将代码输入电脑,居然能编译通过!怀着激动的心情运行之,程序吭都没吭一声就崩溃了,看着巨大的“内存错误窗口”,我不禁哑然失笑,梦里的东西怎能当真呢,还以为有仙人助我,原来是我神经衰弱。</p>最讨厌你们这些“黑客”,一点儿技术含量都没有https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/Wed, 26 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/<p>四年前,那时公司还是使用adsl+“代理服务器”上网,有一天早晨我来到公司,发现代理服务器的桌面有一个word文档,打开一看,里面写着“嘿,哥们儿,你的机器被我黑了,我发现你是使用adsl上网的,而且发现不少漏洞,我顺手给你打了补丁,希望你能重视上网的安全性&hellip;&hellip;”</p> +<p>当时令我大吃一惊,因为一方面我们确实不太重视网络安全的问题,另一方面那家伙也太猖狂了吧。</p> +<p>后来我遇到一“高人”,将此事说与他听,他遂露出鄙夷态度:“最讨厌这些傻B“黑客”,一点儿技术含量都没有”,而后掏出几款软件,“扫描器”、“嗅探器”什么的,现场给我演示了一把。</p> +<p>靠!原来会使用这些黑客软件就是黑客啊!</p> +<p>我在公司内部的服务器上建了个小论坛,使用阿帕奇+php+bbpress实现,用于记录兄弟们平时积累的编程经验,由于管理员疏忽,开了远程服务,密码又过于简单,前两天不慎又遭“毒手”,这次那厮没有手下留情,把论坛数据库给我删了,唉,真他妈防不胜防啊!害得我还得花时间恢复。</p> +<p>我说这些自以为是的傻B黑客,能不能用用脑子,有能耐你把我msn空间的广告给我去了,不好好待着干嘛总出来犯贱呢,你妈逼你的是吗?</p>听音乐,要关灯https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/Sun, 23 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/<p>周末,晚饭毕,心绪烦乱。关窗,关灯,音箱的音量调大,陷入黑暗之中,只有机箱闪烁着微弱的蓝光。</p> +<p>如果音乐是海洋,就让我随着醉人的旋律坠入海底,让音乐洗去我的浮躁和忧伤。</p> +<p>如果音乐是双手,就让跳动的音符轻轻拨动我的心弦,跳入我浑浊的内心,然后在上面荡起点点涟漪&hellip;&hellip;</p> +<p>哈哈,关了灯听音乐能让我这样语无伦次,也算是神奇了,所以有句话叫:“爱生活,爱拉灯!”</p>公园里的“鸟巢”https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/Fri, 21 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/<p>每天早晨都穿过这个公园,随手拍了,那个小房子是公园的管理人员为一只野生的鸟儿(大概是野鸭子之类的吧)搭建的,该鸟去年来此地盘再也不走了 </p>老家的电脑中毒了https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/Thu, 20 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/<p>春节回老家,我把老家的电脑升级了一把,并安装了宽带。</p> +<p>这样我在北京就可以随时和父母视频通话了,老妈的打字水平也飞速提升,没事儿就上线和我聊两句。</p> +<p>为了安全起见,我临走时反复叮嘱,不要再安装其它软件(担心流氓软件)。</p> +<p>但是在选择杀毒软件时我有点儿为难了,nod32挺好用,可是咱没买正版,用破解的怕他们用不好,刚好那时卡巴斯基推出了一年免费试用的活动(其实我都两年不使用卡巴斯基了),就贪便宜用了,而且开启了实时监控和每天的病毒库更新。</p> +<p>看来便宜果然没好货,好日子没过多久,老妈就打电话告诉我机器奇慢无比,我当时还颇为自信的告诉她启动杀毒软件的查杀毒程序进行病毒查杀即可,怎奈何断断续续查了一夜(没办法卡巴就是这么卡)病毒之后,倒是找到木马病毒若干,但就是无法清除,一开机cpu就资源占用100%,我又没法亲手操作,看来这个系统是没救了。</p> +<p>还好当时留了一手必杀技,那就是“一键ghost恢复”!</p> +<p>实在不行就“恢复”吧。</p> +<p>不知道是网络环境太差还是咱们的安全意识不够,反正对于一个非计算机专业的人员来说,现在上网实在是处处有陷阱、时时有风险,杀毒防毒软件形同虚设,真是让人担忧啊</p>春天来了,小树发芽了,鼻子发炎了https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/Wed, 05 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/<img src="https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/20080305.png" alt="Featured image of post 春天来了,小树发芽了,鼻子发炎了" /><p>不经意间,她已经来到了,她带来了吹面不寒的杨柳风儿,带来了满树的桃花(树在哪儿呢?),不过她带给我的第一个礼物却是鼻炎,听说过两天还会给我带点儿沙尘暴啥的,是的,她就是春天。</p> +<p>连日来,和煦的春风吹得我昏昏欲睡,口干舌燥。一闻到春风的气息,我得鼻子就发干发痒,看来我的鼻炎是按时发作了。</p> +<p>戒烟、戒酒、戒辣椒,多喝开水、多吃水果、多吃蔬菜,这些残酷的要求我虽然严格遵守,但鼻子仍是一天天痛苦下去,而且一旦休息不好还有流鼻血的危险,万一哪天在街上碰到一个丑女,然后鼻子再不争气的流血了,那就糗大了!</p> +<p>&ndash;由sbabybird于3/05/200805:22:00下午在从容地狂奔上发表</p>Every Night In Beijing 我办了暂住证https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/Sat, 01 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/<p>EveryNightInBeijing我办了暂住证为了迎接今年的奥运会,北京最近开展了“依法登记办证,共创平安奥运”专项活动,所有来京的暂住一个月以上、16岁以上的人员,都要依法主动到暂住地派出所办理暂住证,否则&hellip;.</p> +<p>作为一个外地来北京需要“暂住”超过一个月而且16岁以上的民工,我当然得积极相应,虽然今天是周末我还是起了个大早(其实周末早起是我的坏毛病之一),带齐了证件前往派出所去排队,没办法,现在办这个的人太多,办个暂住证比买春运的火车票还难,听说有人带着干粮半夜就前去排队了。</p> +<p>到了地方一看,嚯!果然是“peoplemountainpeoplesea”,我拿出春运买票劲头,费了两个小时的吹灰之力,终于挤到柜台前(以前没去过派出所,姑且就叫柜台吧),刚要用颤抖的双手递上证件,只听得“啪&hellip;啪&hellip;”两声,来自工作人员拍打的键盘,伴随着一句地道的好莱坞英语:“oh!shit!”</p> +<p>然后曰:“网断了!”我真是百感交集,有一种想扁人的冲动,但是看他们手忙脚乱地样子又想到这儿是派出所,也就没忍心发作。</p> +<p>时间一分一秒地过去,办证的队伍快排到门外,终于其中一位工作人员大喊一声:“我找到了!”</p> +<p>这一嗓子喊的不亚于老阿(阿基米德)想当年那架势。</p> +<p>原来是哪位仁兄不小心踢掉了交换机的电源,网线都断了,插上之。</p> +<p>终于办完了,赶紧揣进怀里,生怕过来几个人把它给撕了,然后把我送去锻炼身体。</p> +<p>“EveryNightInBeijing我要去办暂住证不敢在午夜问路,怕走到了采石场EveryNightInBeijing你可别喝太多酒把酒高歌的男儿,也得去办暂住证&hellip;&hellip;”本故事纯属虚构,如有雷同,那实在是巧合</p>找个地方藏起来https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/Wed, 27 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/<img src="https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/20080227.png" alt="Featured image of post 找个地方藏起来" /><p>前两天与老同学用msn聊天,虽然都工作了几年,但是均感叹现在遭受的压力巨大,无论是来自工作的还是来自家人的。</p> +<p>聊到后来,都有找个地方躲起来的想法,躲到一个没有人认识的地方,或深山老林,或几角旮旯。</p> +<p>像鸵鸟那样,找个沙堆把头埋进去如何?</p> +<p>&ndash;由sbabybird于2/27/200805:37:00下午在从容地狂奔上发表</p>小广告https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/Sat, 16 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/<p>大年三十,老爸安排我贴春联,贴之前先要把房门给清理一下,本着认真负责的态度,我拿着抹布撅着屁股擦了半天。</p> +<p>但是有两个小广告不知道用的什么胶水粘的,贴在上面太顽强了,抹布对其不起作用。</p> +<p>这个难不倒我,从厨房拿来清洁球,发扬&quot;只要功夫深,铁杵磨成针&quot;的精神,终于把这两个小广告拿下,看着擦的光亮如新的防盗门,我揉了揉发酸的腰,露出了满意的笑容。</p> +<p>狂奔到屋里去邀功,谁知我妈刚看了一眼就说:&quot;哎呀!那两个小广告哪儿去啦?那上面有送水的电话号码,我平时就照着那个打呢!</p> +<p>&quot;我:&quot;@#¥%@#%……@#%……&quot;吐了一口鲜血接着说:&quot;没事儿!对门儿房门上贴的还有!&quot;</p> +<p>&ndash;由sbabybird于2/16/200811:03:00上午在从容地狂奔上发表</p>回京了,开工了https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/Wed, 13 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/<p>回家的日子过得飞快,感觉就像做了一场梦,醒来后发现我还是坐在电脑旁,噢,又开工了。</p> +<p>&ndash;由sbabybird于2/13/200809:50:00上午在从容地狂奔上发表</p>夕阳无限好,只是看不清https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/Fri, 01 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/<img src="https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/20080201.JPG" alt="Featured image of post 夕阳无限好,只是看不清" /><p>&ndash;由sbabybird于2/01/200802:12:00下午在从容地狂奔上发表</p>早晨的路灯(随手拍)https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/Thu, 31 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/<img src="https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/20080131.JPG" alt="Featured image of post 早晨的路灯(随手拍)" /><p>未经过修饰</p> +<p>&ndash;由sbabybird于1/31/200808:19:00上午在从容地狂奔上发表</p>车票买好了,现在只想一步跨回家去!https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/Tue, 29 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/<p>每年的春运,我都要受到生理和心理的双重摧残,无休止的排队买票,心惊胆寒地挤上车,反复地转车,汽车、火车、汽车&hellip;,从坐在公司的椅子上到躺在老家的沙发上,就像经历一场洗礼。</p> +<p>感谢上天的保佑,我终于买到今年的车票(这期间的经历和见闻不堪回首,要是说出来肯定是要被&quot;和谐&quot;的),捏着这张沾满了汗水的车票,站在西站挤满了人(失望的和绝望的)的售票大厅,我知道,虽然万里的长征刚迈出了第一步,但我的心&quot;秋&quot;的一下子就飞到老家了!</p> +<p>&ndash;由sbabybird于1/29/200803:43:00下午在从容地狂奔上发表</p>相见恨晚-YOBO(友播-yobo.com)!https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/Mon, 14 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/<p>忍不住要推广一个WEB2.o站点:在Diglog上发现了这个在线音乐站点,非常棒的音乐体验!</p> +<p>进去之后首先进行一个小小的心理测试,这样网站就知道了我的音乐口味(基本上挺准确的),然后自动的挑了一些曲子放给我听,连接速度非常快,丝毫没有停顿的感觉,就像是在听本地文件。</p> +<p>听了一会儿我才发现这个网站是个巨大的曲库,分类很清晰,可以随时输入歌手名或者歌曲名搜索歌曲,老歌新歌都有,曲目丰富的令人发指。</p> +<p>听完点播的歌曲之后系统会自动挑一些与此歌类似的曲子播放,有时候关联的挺准,但有时就太跳跃了,从一个古典的古筝曲子一下跳到了一首流行歌曲上来了。</p> +<p>总之,这是个不错的站点,让我再感叹一声:&quot;Web2.0就是好啊!&quot;PS:不知道这么多中外曲目的版权问题是怎么搞定的。</p> +<p>再PS:希望她能像last.fm那样推出客户端软件,这样就不用总开着网页听歌了。</p> +<p>再再PS:希望YOBO的中文名字改一改,叫这个有点儿俗气。</p> +<p>&ndash;由sbabybird于1/14/200804:04:00下午在从容地狂奔上发表</p>听广播的感觉https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/Thu, 03 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/<img src="https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/20080103.png" alt="Featured image of post 听广播的感觉" /><p>这两天见同事提了个巨大的收音机(比板砖还大),一问才知道,原来是怀旧,想找回曾经&quot;听广播的感觉&quot;,手机带的FM和电脑上的网络电台听起来太没感觉了,于是跑到商场挑了个最大号的扛了回来。</p> +<p>这不禁勾起了我的回忆。</p> +<p>接下来让我把镜头推回到六年前,那时我在郑州上大学,除了上课(如果有课的话)就是整天抱着电脑啃C语言,当时既没上网也没电视可看,接受信息的渠道只有一台收音机(夸张了?)。</p> +<p>节目很丰富,给我印象最深的就是郑州交通广播电台夜在里十二点准时播出的《大丈夫日记》(什么?你以为是《深夜悄悄话》?你想哪儿去啦?),电台主持人每天都以特有的腔调(学不来)朗读一个幽默段子,类似于现在网上的恶搞段子,但是格调要高一些,文章不长,但是很有趣,调侃人生,嬉笑怒骂,文字本身就写的很风趣,主持人再用那富有磁性的声音给读出来,听着真是一种享受。</p> +<p>最后再播放一首歌曲,而且在播放这首歌儿之前一定以一种蛮横的语调说一句:&quot;给男人听的歌,你可以不会唱,但..你..必须听!&quot;我第一次听到老谭(不好意思老谭,你永远都是25岁)的《难舍难分》就是在这个节目里,当时真是觉得太好听了:&quot;忘不了你眼中那闪烁的泪光,好像知道我说谎,我茫然走错了地方,却已不敢回头望&hellip;&hellip;&quot;。</p> +<p>可以说,这个节目是我当时最好的精神食粮了(不知道现在还存在吗),有一阵子我几乎天天等到十二点,我想所谓&quot;听广播的感觉&quot;大概就是这样吧。</p> +<p>好了,回到现在,现在的广播已经很难找到一个精品节目了,不是太矫情就是插广告,而且广告还他妈全是医院、医药的广告!所以,时代的潮流是不可逆转的,广播电台再做垂死挣扎也无济于事,被网络取代已是必然的事情,所以你怀里就算抱个巨大的收音机也不会再找到&quot;听广播的感觉&quot;了!</p> +<p>&ndash;由sbabybird于1/03/200805:40:00下午在从容地狂奔上发表</p>写完了年终总结!https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/Mon, 31 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/<p>明天就是2008年了,我的老毛病还是没改,每到假期或周末就兴奋的睡不着觉,今天刚到早上六点就爬了起来。想起还有一篇年终总结去要写,于是打开电脑,整理思路,先回忆一下今年我都干了什么,再展望一下明年我要干啥,不知不觉地,一篇年终总结就新鲜出炉了!由于我的生活就是工作,工作就是生活,所以呢,这篇总结其实就是个工作总结!不多说了,新年快乐!&ndash;由sbabybird于12/31/200707:54:00上午在从容地狂奔上发表</p>2007就要过去了https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/Sat, 29 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/<img src="https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/20071229.png" alt="Featured image of post 2007就要过去了" /><p><img src="https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/20071229.JPG" +width="360" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="77" +data-flex-basis="185px" +> +再过两天就要迎来激动人心的2008年了,时光如水,生命如歌,每一天都是崭新的,每一年都是十分有意义的。今天是2007年的最后一个工作日,此刻我想起了《甲方乙方》里的那句台词:&quot;1997年过去了,我很怀念它。&quot;2007年的工作依然是十分忙碌,工作占据了我生活中的大部分时间。由于长期缺乏锻炼,身体开始逐渐向亚健康状态发展。早饭经常不吃,晚饭又吃的太晚,导致消化系统不太好使,肠胃胃经常发出抱怨。最后吃了西药、中药若干,一日三餐再也不敢怠慢,肠胃才慢慢恢复正常。所以正是2007年我才认识到了健康的重要性,也更深刻地认识到了幸福的真谛!总之2007年对我来说是成长的一年、成熟的一年、有美好收获的一年(我很佩服我自己能认识到这些)。希望在2008年,我和我的家人都健康幸福!&ndash;由sbabybird于12/29/200704:41:00下午在从容地狂奔上发表</p>口腔溃疡了https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/Wed, 26 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/<img src="https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/20071226.png" alt="Featured image of post 口腔溃疡了" /><p>这两天吃的有点儿上火,口腔溃疡了。&ndash;由sbabybird于12/26/200712:41:00下午在从容地狂奔上发表</p>圣你的圣,诞你的诞https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/Mon, 24 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/<img src="https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/20071224.png" alt="Featured image of post 圣你的圣,诞你的诞" /><p>圣诞节?平安夜?我继续狂奔ing&hellip;&hellip;&ndash;由sbabybird于12/24/200705:30:00下午在从容地狂奔上发表</p>冬至为啥吃饺子?https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/Sat, 22 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/<img src="https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/20071222.png" alt="Featured image of post 冬至为啥吃饺子?" /><p>今天是二十四节气里的冬至,阴天,据说要下雪。按照风俗习惯,我中午饱餐了一顿饺子。为什么冬至这天要吃顿饺子?我还真是不知道,上网查了一查,答案原来是这样:古时候有个老中医(不是华佗啊),叫张仲景,老家是南阳稂东人,有一阵子在长沙当大官,后来不知怎地就干不下去了,于是回老家,时值冬季,在路上看到白河两岸乡亲面黄肌瘦,饥寒交迫,不少人的耳朵都冻烂了。便让其弟子在南阳东关搭起医棚,支起大锅,在冬至那天舍&quot;祛寒娇耳汤&quot;医治冻疮。他把羊肉、辣椒和一些驱寒药材放在锅里熬煮,然后将羊肉、药物捞出来切碎,用面包成耳朵样的&quot;娇耳&quot;,煮熟后,分给来求药的人每人两只&quot;娇耳&quot;,一大碗肉汤。人们吃了&quot;娇耳&quot;,喝了&quot;祛寒汤&quot;,浑身暖和,两耳发热,冻伤的耳朵都治好了。后来人们为了给嘴馋找个理由,就有了&quot;冬至那天吃饺子,再冷也不会把耳朵冻烂&quot;的传说。ps:仔细想想,咱们中国的节日都与&quot;吃&quot;的关系十分密切,正月十五吃元宵、端午节吃粽子、中秋节吃月饼、腊八吃米饭(八宝饭)&hellip;&hellip;&ndash;由sbabybird于12/22/200702:25:00下午在从容地狂奔上发表</p>电池放冰箱的实验结果https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/Wed, 19 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/<p>做一个实验&ndash;关于把手机电池放冰箱里关于这个实验,是这样干的,我的那块旧手机电池电量用光后,先放到冰箱的冷冻室里,冻了48个小时,然后取出,使其自然升温,充电3个小时,充满。放入手机里开始使用,感觉与之前无明显区别,仍然是仅待机两天。不知是我处理的方法不对,还是这个流言本身就是假的。想想也是,要是手机电池冻一冻就能变成新的,那人家电池的生产厂家不早就饿死了?&ndash;由sbabybird于12/19/200708:13:00上午在从容地狂奔上发表</p>看看牛人用纸箱自制的电脑机箱!https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/Wed, 19 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219.JPG" alt="Featured image of post 看看牛人用纸箱自制的电脑机箱!" /><p><img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-1.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-2.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-3.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-4.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +有句话说的好:&quot;牛人无处不在!&quot;公司一哥们儿用笔记本电脑的包装箱DIY了一个电脑机箱,用起来挺爽,就是不知道散热咋样儿!还有就是好像还没有加光驱。看起来挺象那么回事儿吧?呵呵,还是联想的纸箱子。放倒了再看看接口部分,该有的都有。千万别以为是联想新出的pc啊!为了给cpu散热,所以上面也开了个口cpu和cpu风扇&ndash;由sbabybird于12/19/200705:50:00下午在从容地狂奔上发表</p>做一个实验--关于把手机电池放冰箱里https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/Sat, 15 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/<img src="https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/20071215.JPG" alt="Featured image of post 做一个实验--关于把手机电池放冰箱里" /><p><img src="https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/20071215-1.JPG" +width="480" +height="360" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +偶然听到一个关于手机电池的传说:&quot;把老化的电池用纸包好,放进冰箱里冻上两天,这个电池就会起死回生。&quot;去网上搜索一下,发现很多人都在介绍这个&quot;绝招&quot;,也有人表示质疑,但是好像没有人亲身试验过,刚好我昨天换下来的那块电池还在,就顺手试一试这个方法,如果管用当然最好,如果不好使(这个可能性最大),那就把这条流言给终结了吧。我的那块旧电池包好放在冰箱的冷冻室里等候试验结果!&ndash;由sbabybird于12/15/200709:34:00上午在从容地狂奔上发表电池放冰箱的实验结果</p>新买了手机......电池!https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/Fri, 14 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/<p>新手机是没买,买了块电池倒是真的,我那块旧电池已经不行了,开始倚老卖老,随便打个电话就报电量低甚至关机,无奈选不到满意的新手机(请参见这里),而且手里这个旧手机其他一切正常,于是我决定先买块电池,再凑合用一段时间,起码用到咱们大陆开始上3G。</p> +<p>不过也有网友比较悲观,在网上发帖子说:&quot;大陆3G能用时,家祭无忘告乃翁!&quot;跑到卓越网上选了块原装电池(据说是原装),今天就给我送了过来,由于电池个头太小,我怕快递公司送货的拿着太轻松,觉得没有挑战性,会不乐意,就顺便再买了两本书,其中一本就是大名鼎鼎的霍大爷的《时间简史》留着我失眠的时候看,另一本是比较浅显的《万物简史》留着我上厕所时看。&ndash;由sbabybird于12/14/200701:00:00下午在从容地狂奔上发表</p>到那时候https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/Thu, 13 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/<img src="https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/20071213.png" alt="Featured image of post 到那时候" /><p>下班了,还在干活儿ing,瞅瞅我的任务栏:</p> +<p>一边开着TOAD配置数据库,一边开着Word看着文档,在Word的隔壁是牛逼的VC在那儿咔咔编译程序,SourceSafe正努力地Checkin一堆文件(脸都憋红了),点了两下&quot;开始菜单&quot;却不再搭理我,想开个Firefox看两个网页都不行。</p> +<p>唉!什么时候,硬盘像内存那么快,内存像硬盘那么大,就好了什么时候,内存像CPU缓存那么快,CPU缓存像内存那么大,就好了哼哼,到那时候&hellip;</p> +<p>估计是,Windows上来先把资源吃掉三分之一,然后TOAD和VC这些用来干活儿的工具再吃掉三分之一,最后打开Firefox把剩下的全吃掉!</p> +<p>&ndash;由sbabybird于12/13/200705:49:00下午在从容地狂奔上发表</p>第一场雪&堵车https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/Mon, 10 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/<img src="https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/20071210.png" alt="Featured image of post 第一场雪&堵车" /><p>早晨,出了门才知道下雪了,下的还不小,赶紧返回取雨伞。</p> +<p>在路灯的照射下,雪花还挺大的,好歹也是第一场雪,感觉挺不错的。</p> +<p>坐上车就傻眼了,公交车走的比蜗牛还慢,上高速的路口堵成一团,上了高速路还是堵成一团。</p> +<p>花了平时两倍的时间才到公司。</p> +<p>&ndash;由sbabybird于12/10/200709:23:00上午在从容地狂奔上发表</p>小鸟坐公交https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/Sat, 08 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/<p>今天在公交车上看到一个老大爷上车带着他的鸟(此处的&quot;鸟&quot;没有别的意思),离得挺远,赶紧掏出相机,抓拍两张。</p> +<p>不过也看不出这是什么鸟(麻雀?),被老大爷拴在棍子上应该不太爽吧。</p> +<p>&ndash;由sbabybird于12/08/200709:50:00上午在从容地狂奔上发表</p>妹妹开始写博客https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/Thu, 06 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/<img src="https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/20071206.png" alt="Featured image of post 妹妹开始写博客" /><p>中午收到小妹发过来的链接,打开一看,竟是她在新浪写的博客。</p> +<p>我粗略地看了一下,已经写了几篇文字了。</p> +<p>很显然地,她的作文比我写的要好,女孩子的感情细腻和多愁善感都表现在字里行间。</p> +<p>她这个年纪不去qq空间里玩&quot;踩啊踩&quot;,却在新浪开博客,套句比较流行的话说:&quot;我很欣慰啊!&quot;光阴荏苒,白驹过隙,转眼间小妹大学就要毕业,离开校园马上就要面临现实中残酷的就业环境,在网上和我聊了几句,言语里流露出对前途的迷茫。</p> +<p>是啊,我也曾感到过没有方向(现在何尝不是呢?),但是脚下的路总是要自己去走,未来还是把握在自己的手中。</p> +<p>我忽然想起某位牛人说过的话:&quot;睡着前最甜蜜;黎明前最黑暗;成功前最渺茫!&quot;</p> +<p>&ndash;PostedBysbabybirdto从容地狂奔at12/06/200705:40:00下午</p>大脑年龄的测试https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/Wed, 05 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/<img src="https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/20071205.png" alt="Featured image of post 大脑年龄的测试" /><p>午睡醒来,收到同事发来的Flash小游戏,据说可以根据你的反应速度测试出大脑的年龄,我试了一下,最后结果是:我的大脑有30岁了。</p> +<p>还算靠谱,比实际老了点儿(没办法,这都是干活儿累的啊),记得有次我做心理年龄测试,结果是60岁了。</p> +<p>(试试看)&ndash;由sbabybird于12/05/200701:26:00下午在从容地狂奔上发表</p>关于短信https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/Mon, 03 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/<img src="https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/20071203.png" alt="Featured image of post 关于短信" /><p>昨日喜收老友短信:“天气骤变,温度下降,注意身体,多喝水,以防感冒!”</p> +<p>遂感叹友情比暖气还要温暖,欲回复信息以示感谢,孰料又收其短信一条:“别回了,我的短信包月没用完,不发都浪费了!”</p> +<p>我靠!</p> +<p>另一哥们儿,初上网,受某网站蛊惑(告其可免费发短信),通过该网站为我发“免费”短信一条,结果害我收到若干条此网站发来的广告短信,不得不打电话给这一哥们儿,重复强调“天下没有白吃的午餐”这条真理。</p>A Dream !https://sbabybird.github.io/p/a-dream/Sat, 17 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/a-dream/<img src="https://sbabybird.github.io/p/a-dream/20071117.png" alt="Featured image of post A Dream !" /><p>听说国家大剧院下个月就要正式开演了,而且最低票价只有30元?</p> +<p>要真是30块能去看的话,俺就省吃俭用一阵子,看看到时候能不能去感受一下&quot;艺术的魅力&quot;。</p> +<p>&ndash;由sbabybird于11/17/200711:01:00上午在从容地狂奔上发表</p>捡到一首老歌--Ladyhttps://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/Sat, 17 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/<p>在Winamp的电台上捡到这首歌Lady,马上被kennyrogers的嗓音吸引了。</p> +<p>&ndash;由sbabybird于11/17/200702:10:00下午在从容地狂奔上发表</p>天气真的很冷了https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/Thu, 15 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/<p>天气真的很冷了,走在路上,我的鼻涕都冻出来了。</p> +<p>搭车时,公交车都冻得无法启动。</p> +<p>坐车时,腿冻得直打颤。</p> +<p>开门时,牙冻得直打架。</p> +<p>&ndash;吃饭去!&ndash;由sbabybird于11/15/200708:13:00下午在从容地狂奔上发表</p>Hello, Android!https://sbabybird.github.io/p/hello-android/Wed, 14 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/hello-android/<img src="https://sbabybird.github.io/p/hello-android/20071114-1.PNG" alt="Featured image of post Hello, Android!" /><p>到家后立即下载Android的SDK,按照帮助文档的提示,顺利运行伟大的&quot;HelloWorld!&quot;</p> +<p>&ndash;由sbabybird于11/14/200709:14:00下午在从容地狂奔上发表</p>下载了android的SDKhttps://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/Wed, 14 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/<img src="https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/20071114.PNG" alt="Featured image of post 下载了android的SDK" /><p>听说android放出SDK了,而且Google为了鼓励开发者开发出NB的应用特意发了1000万美元的红包,如果你能开发出有创意的精品软件,说不定也能拿到一笔钱呐!</p> +<p>我也去下载了SDK,这个是android的模拟器的样子,还挺漂亮的。</p> +<p>等晚上回家先写一个helloworld再说!</p> +<p>&ndash;由sbabybird于11/14/200704:53:00下午在从容地狂奔上发表</p>blogspot又封了?https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/<img src="https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/20071110.png" alt="Featured image of post blogspot又封了?" /><p>刚刚好了没几天,访问blogspot又&quot;该页无法显示&quot;了。&ndash;由sbabybird于11/10/200703:33:00下午在从容地狂奔上发表</p>偏色https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/<p>清晨的时候&ndash;由sbabybird于11/10/200709:02:00下午在从容地狂奔上发表</p>晚上有雾https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/<p>晚上有雾&ndash;由sbabybird于11/12/200708:00:00下午在从容地狂奔上发表</p>微波炉https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/<img src="https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/20071110-1.png" alt="Featured image of post 微波炉" /><p>画图板&ndash;由sbabybird于11/10/200703:31:00下午在从容地狂奔上发表</p>伪LOMOhttps://sbabybird.github.io/p/%E4%BC%AAlomo/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%AAlomo/<p>用A610拍的,后期经过调色,模仿LOMO的那种效果,嘿嘿。&ndash;由sbabybird于11/10/200708:53:00下午在从容地狂奔上发表</p>午休https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/<img src="https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/20071109.png" alt="Featured image of post 午休" /><p>&ndash;由sbabybird于11/09/200712:58:00下午在从容地狂奔上发表</p>小鸟在脚下飞翔https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/<img src="https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/20071112.png" alt="Featured image of post 小鸟在脚下飞翔" /><p>小鸟在脚下飞翔&ndash;由sbabybird于11/12/200701:56:00下午在从容地狂奔上发表</p>夜路https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/<p>路灯下我的影子&ndash;由sbabybird于11/10/200708:50:00下午在从容地狂奔上发表</p>一碗牛肉面https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/<img src="https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/20071113.png" alt="Featured image of post 一碗牛肉面" /><p>一碗牛肉面,我的晚饭&ndash;由sbabybird于11/13/200706:00:00下午在从容地狂奔上发表</p>早上去打了疫苗https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/<img src="https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/20071113-1.png" alt="Featured image of post 早上去打了疫苗" /><p>前两天单位组织体检,一切正常,就是没有乙肝的抗体,印象中上学的时候已经打过疫苗,不过人家医生说,可能年代太久远了(靠,有那么远么?)</p> +<p>抗体丢了,无奈,再去接种就是了。</p> +<p>打针时,问人家会不会疼?</p> +<p>人家护士答的很爽快:&quot;你就放心吧,我打了20年的针。。。。&quot;,</p> +<p>等我疼完了又接着说:&quot;没有一个不疼的!&quot;</p> +<p>&ndash;由sbabybird于11/13/200710:40:00上午在从容地狂奔上发表</p>重温Winamphttps://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/<img src="https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/20071108.JPG" alt="Featured image of post 重温Winamp" /><p>有几年不用Winamp了,最近Winamp又退出了10周年纪念版版。</p> +<p>我下载了一个,感觉听听里面的网络电台什么的还挺不错的(边上班边听欧美最流行的音乐哈)。</p> +<p>而且新版还包含了podcast的功能,可以搜索订阅网上的播客。</p> +<p>在家听音乐的话,我还是选择foobar。</p> +<p>&ndash;由sbabybird于11/08/200707:49:00下午在从容地狂奔上发表</p>昨天我二十四https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/<img src="https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/20071111.png" alt="Featured image of post 昨天我二十四" /><p>昨天我二十四,今天我二十五</p> +<p>&ndash;由sbabybird于11/11/200712:49:00下午在从容地狂奔上发表</p>Under a Violet Moonhttps://sbabybird.github.io/p/under-a-violet-moon/Sat, 22 Sep 2007 00:00:00 +0000https://sbabybird.github.io/p/under-a-violet-moon/<p>nan</p>关于电脑配置的遐想(瞎想)https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/Tue, 28 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/<p>偶然翻看书架上的旧书,发现我以前在上面随手胡乱写了一个“梦幻配置”,那时应该是2000年,根据当时的硬件发展状况,我写了一个可望而不可及的硬件配置。</p> +<p>具体什么配置就不说了(大概就是纯平显示器、笨三的cpu),反正现在让你用你还嫌慢呢。</p> +<p>现在六、七年过去了,心里又痒痒的,就让我再写一个可望而不可及的硬件配置吧,看看这个配置何时会过时。</p> +<p>中央处理器:IntelCore2QuadprocessorQ6700(4核,为了安静,散热采用水冷系统)</p> +<p>主板:IntelD975XBX2内存:海盗船TWIN2X2048-6400×4(共8G)</p> +<p>外存储:SanDisk64G闪存硬盘(用于系统存储),2TB磁盘阵列(用于文件存储)</p> +<p>显卡:丽台NVIDIAQuadroFX5600×2(每块显卡可接四台屏幕)</p> +<p>主显示器:Apple30&quot;CinemaDisplay(上网、影视、游戏)</p> +<p>副显示器:Apple20&quot;CinemaDisplay×6(地理、虚拟现实、平面设计等)</p> +<p>CreativeSoundBlasterX-FiElitePro+罗技Z5500(用于电影、游戏、非专业录音)</p> +<p>主板数字光纤输出+外置解码器+JBL监听音箱(用于欣赏音乐)</p> +<p>操作系统:自己动手定做(编译)Linux版本,桌面环境采用GONE(如果有兴趣就自己写个操作系统)</p> +<p>备注:机箱易采用高厚度、高散热静音机箱,此系统搭建完成后将用于书房,共七台显示器需要用到特殊的显示器支架。</p>What i've donehttps://sbabybird.github.io/p/what-ive-done/Sat, 18 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/what-ive-done/<p> </p>Don't Cryhttps://sbabybird.github.io/p/dont-cry/Sat, 11 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/dont-cry/<p>nan</p>live space 的表现让我很失望https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/Sat, 04 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/<p>不知是不是因为升级还没有进行完成,最近livespaces总是不能正常操作,用firefox访问有时还会出现乱码或者页面布局乱套,速度慢的惊人,资源占用很厉害。</p> +<p>再加上他有太多的限制,这些问题都让我感到对livespace失望透顶。</p> +<p>衷心希望Googleblogger能够早日解封!</p>昨天去电影院看了《憨豆先生的黄金周》https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/Sat, 04 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/<p>昨天去电影院看了《憨豆先生的黄金周》,感觉还不错,憨豆先生还是那么滑稽可乐,有着独特的幽默方式,我虽然没有笑到肚皮抽筋、掐着大腿,但是90分钟的电影还是让我由衷地笑了半个小时(累计)。</p> +<p>这里就不介绍剧情了(一般来说这种喜剧基本没剧情可言),网上到处都是介绍。</p> +<p>整个影片从头到尾憨豆先生都拿着那只SONY新出的DV,我估计SONY投了不少钱,还有就是片子的音乐配的还可以,轻快明亮。</p> +<p>总的来说还值得一看。</p> +<p>现在的电影院真是不景气啊,能容纳500号人的大厅坐了不到100人,不过挺爽的,谁让他们把票价订的那么贵,现在的票价是我小时候电影票价的100倍</p>在 live spaces 单篇日志中插入音乐 测试https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/Mon, 30 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/<p> </p>理发2007https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/Sun, 29 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/<p>对于我来说,理发是件很痛苦的事情,可能是有心理障碍吧。</p> +<p>小的时候被老爸强行摁住理过一次发,我像一只小鸡那样被夹在腿上无力反抗,由于整个过程我都在不停地叫骂那个理发的,所以那家伙下手还不含糊,把推子使得嚓嚓直响,对着我的头皮和耳朵可劲儿招呼。</p> +<p>整个过程是漫长的、痛苦的、令人发指的。</p> +<p>最后我看着镜子里的凸了吧唧的头,还不忘使劲儿拧了一把鼻涕抹在老爸的裤腿上。</p> +<p>此事后来成为笑谈,但爷儿俩在理发这种事情上一直都持有不同的观点,</p> +<p>当然了,我还只能提出强烈抗议、强烈不满、强烈谴责,但采取进一步措施的权利还是保留了。</p> +<p>一直到现在,当老爸跟我说:“快去把头发理一理!”时,我还是乖乖的狂奔去理发。</p> +<p>不过,现在我离老爸远了,他管不了啦(主要是没看见),我可以尽情地把头发留到很长,然后再一下剪到很短(一般是回老家之前)。</p> +<p>但是我的这种习惯却造成了另一件事情,给我理发的人极度不爽。</p> +<p>每当我拖着留了几个月的长发走进理发店,告诉理发的师傅给我可劲儿剪短时,伊总是很扭捏,假惺惺地跟我说:“哎呀!你的发质这么好,又好不容易留了这么长,剪了多可惜啊!”</p> +<p>其实谁不知道伊是想省点儿事儿,想拿剪刀在那三下两下剪完糊弄我。</p> +<p>于是我只好说:“嗯嗯,本来是想留长的,但是现在突然想开了,不想留了,还是麻烦您给我剪短吧!”</p> +<p>最后等着人家极不情愿(还很费时)地给我剪完,我才满意离去。</p> +<p>但是这招下次就不能用了,所以我总是选择不同的理发店,反正这玩意儿多得是!</p> +<p>今天我又理发了,从五一到现在大概有三个月了,很抱歉,又让一个理发师傅不爽了一把,不管他,这次理完了,谁知道我什么时候有心情理下回呀!</p>轻轻的,我将整蛊你https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/Tue, 24 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/<p>天气这么闷热,生活这么枯燥,何不搞点小把戏调剂一下气氛呢?</p> +<p>要是你现在刚好在办公室里,那么恭喜你了,下面我将教你几个在下秘密收藏的整蛊手段(一般人我不告诉他)。</p> +<p>前提条件:</p> +<p>1、你们用计算机办公;</p> +<p>2、你们使用的是Windows操作系统;</p> +<p>3、你要整蛊的同事没有暴力倾向;</p> +<p>4、他刚好暂时离开一下。</p> +<p>好了,准备好了就开始行动吧!</p> +<p>场景一:“我的密码被改了?!”</p> +<p>如果你的这位同事有锁定计算机的习惯,那就刚好实施一下,在他计算机的锁定状态下的密码框里提前敲入一个空格,这样一般他回来时不会发觉,等他输入完自己的密码后,会发现进不去了!(因为密码前面多输入了一个空格)。</p> +<p>场景二:“用来干活儿的软件没有反应了!”</p> +<p>如果他没有锁定计算机的习惯,那么刚才那个办法就不凑效了,怎么办呢,找到他用来工作的软件(VC,Word、Excel等),把帮助菜单里的“关于(about)”对话框给打开,然后用鼠标把对话框拖动到一个屏幕上看不见的地方。哈哈,等着吧,他回来会发现他用来工作的软件怎么也不听话了,无论点击哪儿都没有反应。</p> +<p>场景三:“鼠标不好使了”</p> +<p>现在大家都用光电鼠标了,而光电鼠标全靠它屁股底下的那个激光眼,没错!你又猜对了,拿个小纸团把它那个小眼睛堵住,赶紧去吧!鼠标瞎了之后就罢工了。</p> +<p>以上方法屡试不爽,我都亲自实验过,不过是别人在我身上实验的(这帮败家玩意儿)。</p> +<p>注:以上操作纯属娱乐!产生后果自负。</p>我心目中的完美手机https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/Mon, 23 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/<p>我手里这个Nokia6230用了3年了,买的时候多加了一块电池。前两天,其中一块电池寿终正寝了,剩下的这块也差不多了,感觉就像我的胃,一吃就饱,一会儿就又饿了。</p> +<p>我看着手里这个灰头土脸得就像从垃圾桶里捡回的手机,不禁有了换掉它的念头。</p> +<p>到网上翻了翻信息,结果让我很失望,感觉Nokia不太长进,眼看着人家索爱扛着音乐、摄像的大旗在市场上占了一席之地,自己也跟着别人的屁股转,也在那儿搞音乐手机、摄像手机,却忘了自己的特色。</p> +<p>没办法,别的牌子不愿意用,老N最近推出的新机不是我看不上就是我的钱包不让看(靠,就这还敢冒充Nokia的粉丝呀?)。</p> +<p>苹果的iPhone最近倒是炒得挺火,看起来也挺不错,可是总觉的那玩意儿离咱太遥远了,还是不多看了,以免中毒。</p> +<p>在查看了众多机型之后,长叹一声:“究竟什么样的手机才能让我满意呢!”</p> +<p>总结以下大概要满足以下几点: +1. 屏幕要足够大、分辨率不用极高但也不能太低 +2. 反应速度一定要快(目前我还没有发现一款智能手机反应速度飞快) +3. 个头不能太大、重量不能太沉 +4. 电话、短信功能好用 +5. 电量一定要持久,待机越长越好(这点最重要,功能再强没电也是白扯) +6. 非国产(这个不用多说)     </p> +<pre><code> 这些要求不过分吧?像什么摄像、音乐等功能都没要求,可愣是找不到这样一款手机,反复对比后发现还是目前手上的这个更合要求一些。 +算了,将就用吧。 +结果,昨晚做梦,梦见我也设计了一款手机,以上条件除了第六条其余都满足,取名就叫“nbPhone”把苹果的Phone的风头给压下去了,乔布斯都跟我急了。 +</code></pre>真正牛逼的人,终究会牛逼起来!https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/Sat, 21 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/<p>一个胖子,一个相貌平平而且豁牙的胖子,一个相貌平平而且豁牙的卖手机的胖子。</p> +<p>这样的人参加选秀节目,如果你是评委的话,你会让他通过海选吗?</p> +<p>如果他告诉你他要表演的是歌剧的话,你会跳下评委台把它踢出演播厅吗?!</p> +<p>我想你会的,因为当时英国的那个选秀节目的评委也是这样想的。</p> +<p>PaulPotts,这个我刚刚看到的英国小伙子,就是这样参加选秀节目的。</p> +<p>当他极不自然地站在舞台上,傻傻地告诉评委他要表演歌剧,评委们都笑了,表现得有些不耐烦。</p> +<p>可是,当他深情地唱起今夜无人入眠,当他那与帕瓦罗蒂一样激昂的男高音在演播厅响起时,赛场沸腾了!所有的人都站了起来,评委刁在嘴里的铅笔掉了下来,掌声雷动!</p> +<p>这段由朋友发过来、我甚至懒得看的视频,看得我头皮发麻。</p> +<p>在起了一身鸡皮疙瘩后,我的眼睛也不争气地湿润了(震撼,感动)。</p> +<p>看了别人写的介绍,我了解到,这个叫Paul的小伙子有着不太顺利的人生际遇(大多数人如此吧),但是他从未怀疑过自己的理想,仍然执着地追求着歌剧表演的艺术魅力,直到他被生活所逼而不得不靠卖手机来糊口时,仍未放弃!</p> +<p>终于,上天给了他最后一次机会,他成功了,他向世人再一次的证明了:真正牛逼的人,终究会牛逼起来!试了一下,msn的空间居然还可以插入视频!</p>几天不见,LiveSpace变了https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/Fri, 20 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/<p>我都已经好几天没有照看我的msn空间了(最近太累),今天访问一下,发现界面居然有了变化(别三日,刮目看),嗯哼,原来是微软的Live小组把咱的空间给升级了。</p> +<p>首先是界面的整体风格有了改变,我审美不行,看不出是好看还是难看,感觉貌似顺眼一些。空间上方仍然悬挂着那个大大的广告条(我一直看它不爽),工具条的宽度变宽了,这样会占用更多的空间。</p> +<p>进入空间的“自定义”功能,发现提供的模板多了一些,但一个比一个不耐看,所以我什么也没有动,继续保持现状。一直希望Live空间能够提供类似WordPress那样的模板(多漂亮啊),现在看来,要走的路还比较长(Live小组继续加油啊!)。</p> +<p>不过话又说回来,空间里整那么多花里胡哨的东东也没用,看得让人眼花缭乱的也不爽,我还是喜欢简约一点的风格,最好是让人进入我的空间后,感觉就像是打开了windows的记事本(过分了吧)。</p> +<p>本来Google提供的那个blog挺好的,可是总是不能访问,还是老老实实的在微软提供的共享空间里得瑟吧。</p> +<p>最后,再鄙视一下我自己,这几天由于懒惰而没有更新空间的内容,太不像话了!</p>嘛儿叫幸福?介就叫幸福!https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/Fri, 20 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/<p>随着一阵悦耳的下班铃声,我提前结束了一天的工作,按照惯例,周末了,要去打球。</p> +<p>叫上同事,抱起篮球,飞快地奔向球场。</p> +<p>终于逃脱了闪烁的计算机屏幕,逃脱了无聊的工作计划,逃脱了漫长的会议,逃脱了郁闷的代码&hellip;&hellip;</p> +<p>各位观众,各位听众,也许你们刚刚打开电梯,现在为您直播的是&ndash;火星杯篮球锦标赛!</p> +<p>穿着运动鞋牛仔裤正在捡球的那家伙就是我,看呐,我在球场上尽情地狂奔,边打球边哼着歌曲“啊哼三分球,它在空中停留,漂亮的假动作,帅呆了我&hellip;&hellip;哦shit!球丢了”。</p> +<p>一口气打了两三个小时,直打到有人气喘吁吁,打到有人双腿抽筋,打到有人口吐白沫还不肯离去。</p> +<p>天渐渐黑了,球框渐渐虚无缥缈起来,收拾家伙,撤!</p> +<p>走到站牌,有车,有座,爽!上了高速,一路畅通,爽!</p> +<p>到了家里,贤惠的老婆已经把饭菜做好,菜做的色香俱佳,啤酒冰得温度适中。</p> +<p>如果这个时候你问我,什么是幸福?我会自在地夹一口菜,然后再悠闲地喝上一口啤酒,眯起眼睛跟你说:“嘛儿叫幸福?介就叫幸福!”</p> +<p>幸福像花儿一样。</p>给点儿钱让我买吃的吧!https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/Thu, 12 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/<p>加班后回家的路上,路灯十分昏暗,还没有吃晚饭,心情极度郁闷,我缓缓(没力气狂奔了)走向公车站牌,走着,走着,突然!</p> +<p>一个黑影窜了过来,他跟我说:“兄弟,要盗版光盘不?”</p> +<p>我没有理他,继续走,走着,走着,突然!</p> +<p>又一个黑影窜了过来,他跟我说:“兄弟,要发票吗?”</p> +<p>我没有理他,继续走,走着,走着,突然(靠,有完没完啊!)</p> +<p>一大一小两个黑影窜了出来,原来是一个中年妇女领着一个七八岁的小女孩儿,夜色中看不清面目。小孩开口说话了:“叔叔,给点儿钱让我买吃的吧,我都饿了一天了&hellip;&hellip;”</p> +<p>边说还边做有气无力状,大人也在一边附和。说得我心里一软,鼻涕快掉下来了,差点儿掏钱。</p> +<p>但是转念一想,我TM也饿了快一天啦,也没吃饭呢,再何况,她们的行为也太让我愤怒了,因为就凭这些个破烂演技拿来唬我也太侮辱我的智商了吧!</p> +<p>于是,我友善的冲她们说道:“小朋友,你看”我用手指了指马路,“往前走500米,那里有家派出所,你过去找警察叔叔要些吃的好不好?”</p> +<p>小孩一时不吭声(台词没背下来),大人接着说:“你就可怜我们,给我们几块钱,买包方便面也行啊!”(我靠,我这么晚了还没吃饭,我求您别勾引我的食欲了!)</p> +<p>我没办法,掏出手机,说:“既然你们不愿意亲自过去,那我帮你们打110吧&hellip;&hellip;”</p> +<p>这句话还没有说完,说时迟那时快,只听得“嗖嗖”两声,两个人全都不见踪影,公车站牌下只剩下我和随风飘舞的碎纸片(好身手!)。</p>测试一把google的在线翻译工具https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/Fri, 06 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/<p>听说google出了在线翻译的工具,而且还广受大家的好评,在美国举行的一次翻译比赛中还拿了冠军。</p> +<p>我虽不是google的粉丝但也对google的产品挺感兴趣的,于是赶紧凑个热闹,看看伟大的google能不能给我带来惊喜。   由于我只会中文,那就看看google的英译中的水平怎么样。</p> +<p>废话少说,赶紧拿来一首英文歌词《youneededme》(我最喜欢的英文歌曲之一)。</p> +<p>YouneededmeIcriesatearyouwipeditdryIwasconfusedyouclearedmymindIsoldmysoulyouboughtitbackformeAndhelpmeupandgivemedignitySomehowyouneededmeYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeAndIcan'tbelieveit'syouIcan'tbelieveit'strueIneededyouandyouwerethereAndI'llneverleavewhyshouldIleaveI'dbeafoolCauseI'vefinallyfoundsomeoneWhoreallycaresYouheldmyhandwhenitwascoldWhenIlostyoutookmehomeYougavemehopewhenIwasattheendAndturnedmyliesbackintotruthagainYouevencalledmefriendYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeOh,yes,youneedmeYouneededme</p> +<p>先试了一下整段翻译,把歌词复制进去,出来的结果让我忍俊不禁google自动翻译的文字:</p> +<p>你需要我,我喊了眼泪,你擦它干,我摸你清我心中我卖出我的灵魂,你买回来,我和帮助我,让我有点尊严,你需要我你们给了我力量单独再次面对世界走出自己再次你就把我小时在室内一个台阶那么高,我几乎可以看到永恒,你需要我,多欧需要我,我也不相信是你,我不能相信这是真的,我需要你和你的笔在此,我永远不会离开,我为何要离开我就是一个傻瓜,我的事业总算发现有人真的三白族你握着我的手,当它冷时,我输了,你带我家,你给了我希望钨母鸡,我是在年底把我的谎言放回真话的时候,你甚至骂我的朋友,你克须缴我力量单独再次面对世界走出自己再次你就把我高美无源一个台阶那么高,我几乎可以看到永恒,你需要我,你需要我哦,多欧需要我,你需要我</p> +<p>唉,比较失望啊,试一下google的翻译网页的功能吧,找到歌词的网页,然后让它翻译你需要我</p> +<p>Icriedatear我哭了眼泪Youwipeditdry你擦它干Iwasconfused我很困惑Youclearedmymind你清除了我的心Isoldmysoul我卖我的灵魂Youboughtitbackforme你买回来,我Andheldtheearth召开地球Yougavemedignity你给我尊严Somehowyouneededme某种程度上,你需要我Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Ican'tbelieveit'syou我不能相信这是你Ican'tbelieveit'syou我不能相信这是你Ineededyou我需要你Andyouwerethere你有AndI'llneverleave,whyshouldIleave?和我永远不会离开,我为何要离开?Ineededyou我需要你canIfinallyfoundsomeonewhoreallycares可我终于发现有人真正关心(Youneededme)(你需要我)Youheldmyhand你牵我的手Itwascold据冷AndIwaslost我失去了Youtookmehome你带我家Yougavemelove你们给我的爱ThatIwasattheend我是在结束Iturnedmylife我把我的生命BackintotruthagainYouevencalledme'friend'放回真话的时候,你甚至骂我'朋友'Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Youneededme你需要我Youneededme你需要我Oh,yes,youneededme哦,你需要我Youneededme你需要我</p> +<p>呵呵,这下看起来还像那么回事儿.感觉机器还是代替不了人啊.翻译有感情的东西总是那么生硬.</p>堵你千遍也不厌倦?https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/Wed, 04 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/<p>统计了一下我平时上班所需要的时间,要是堵车的话大概要一个小时多一些,要是特别堵的话大概要两个小时,要是跑步的话大概得三个小时多一些(推算的,可以忽略),要是夜里打车去上班的话大概得二十多分钟(极少,也可以忽略)。</p> +<p>所以我一天大概有三个小时是堵在路上的,这导致了我的胃口极差,身材日渐消瘦,远看像铅笔近看像挂历!每天我都要坐在车上长吁短叹:“GR的堵车啊!”</p> +<p>是什么原因造成了这样的状况?</p> +<p>原因有很多种,我想最直接的原因可能就是因为路上出现了车祸。</p> +<p>无论是蹭了一下车屁股还是挂了一下后视镜,双方都会停好车,把路占上,然后撅起屁股在那儿查看爱车的状况,最后再各自打电话叫人&hellip;&hellip;</p> +<p>这个时候你要是刚好在路上,你就会感觉你置身于车的海洋,一辆挨着一辆的汽车望不到头,一片喇叭声,让人透不过气来。每当我乘坐的公交车慢慢的拱过出事地点,往往还能看到出事的双方(或多方)在那儿撅着。</p> +<p>这种情况每天都要出现,所以每天都要堵车。</p> +<p>据说从8月7号到8月20号,北京的交通管制要进行奥运预演.这对我们这些挤公交车上班的来说真是莫大的好消息啊!我们又可以感受像去年中非论坛期间的那种一路畅通的超快感了!</p> +<p>不过,快乐永远是短暂的,过了那几天,还是得老老实实的坐在车去上体验“堵车不堵心”。</p>曾经,俺也DIY (怀念我的第一只音箱)https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/Mon, 02 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/<p>最羡慕那些有米的音响发烧友,手里攥着大把的钞票,买音响器材出手阔绰,有没有一双“金耳朵”不知道,反正当音响店的老板告诉他“这套音响,在听蔡琴唱歌的时候能听见她咽吐沫的声音”时,或者跟他说:“那套设备,在听交响乐的时候可以听见拉琴那小子不小心把曲谱翻掉在地上的声音”的时候,他们就会毫不犹豫的掏出几千乃至几万块大洋,把那些“宝贝”搬回家,反复的回放,听听蔡琴在什么时候换了一口气,或者听听吹长笛的坐在第几排。</p> +<p>我也曾在这方面痴迷过,但仅仅是痴迷,没有什么实质性行动,原因很简单,掏不起那些闲钱呐!</p> +<p>不过,在很早以前,读初中的时候就开始摆弄那些“音响器材”了,只是一堆喇叭,功率很小,大部分是从旧收录机上拆下来的,“音源”也就只有卡带,我曾试着把喇叭放到各种地方以调整他们的“音效”,比如放在蚊帐上除了可以在睡眠时有音乐环绕外还兼具“驱蚊”的效果,我为了得到更多的低音也曾把喇叭嵌入到书桌里(整个桌子就是音箱哈),甚至把喇叭放到洗衣机里,那音质真是惨不忍听。</p> +<p>反正受当时的条件限制,我也只能是像小孩摆弄玩具似的,玩一玩儿而已,毕竟当时升学才是最大的目标。</p> +<p>直到有一天,我翻看一本旧音响杂志,有人自制了个音箱,据说效果还不错,于是就动了自己也做一个的念头。</p> +<p>再后来,到了上中师的时候,有了大把的空闲时间(但还是没空闲的钱),决定纯手工制作一只“有源音箱”!说干就干,开始行动!首先考虑的是功放电路采用什么形式,当时最佳的方案是使用“LM-1875”功放芯片,但由于囊中羞涩,最终放弃,后来买来一块晶体管放大板,也算将就了,喇叭买了两只,一个高音,一个中低音(8寸),向我大舅要来了分频器。</p> +<p>让老家木匠邻居帮忙做了个音箱的框架,剩下的就是我和我的一个哥儿们亲自动手了。</p> +<p>箱体的材料比较奢侈,把我家的一个桌子给锯了(靠!太过分了)。</p> +<p>后来组装的时候才发现,我竟然忘了考虑功放的前级,没办法,再次求救与大舅,从旧收录机上拆下来一块板子作为前级(居然还可以调高低音调)。</p> +<p>就这样,前前后后忙活了有半个星期,我的音箱终于发出处女声了,这个时候音源已经是一台VCD,那个时候我好像对蔡琴不感兴趣,于是先听了一首陈慧娴的《归来吧》,真是天籁啊!我当时感动的鼻涕都快掉下来了!</p> +<p>当然了,我这么说是有一些夸张,其实音质不咋地,只是当时又没听过真正的音响,这只亲手做的音箱,让我体验到了充足的低音(说到低音,要感谢我的姥爷,他给了我一只大号的电源,具体功率不知道,反正很大很大),震耳欲聋的低音,就像是有人拿着锤子在敲打我的胸膛。</p> +<p>这只音箱在当时带给了我无限的快乐和满足感,后来就去省会读大学了,买了电脑,买了几百块的音箱,那只音箱就被我扔到了角落,上面布满了灰尘。</p> +<p>再后来,我干脆把它送给了我的大舅,听说他现在拿它当板凳,还挺结实的!</p>饭否,一群人的喃喃自语https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/Sat, 30 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/<p>国外新兴一个叫Twitter的Web2.0站点,听说最近很火爆,很多人在那里叽叽咕咕,说一些有想法但又不至于发一篇bolg的“废话”。</p> +<p>我去看了一眼,感觉跟那帮人文化差异挺大的也就没好意思去注册,但是国内的同志们也不示弱,一时间模仿该网站理念的站点如雨后春笋般涌现。</p> +<p>在这些国内的叽咕站点里,有朋友就给我推荐这个“饭否”,说是一个迷你Blog,像Twitter一样,只是大家都是中国人,叽咕的内容比较容易懂一些。</p> +<p>我这个人最爱尝鲜,就忍不住过去注册了一个帐号。</p> +<p>感觉还不错,可以绑定MSN,QQ等IM软件,方便通过IM软件在上面发言,甚至可以绑定手机,让你随时随地的把感受发到网上。</p> +<p>人气还是挺旺的,不断有人在上面喃喃自语,也不乏有一搭没一搭的聊天者。</p> +<p>发布的内容可以很无聊,比如“今天的天气真好”,也可以很有深度,比如“你们好啊,地球人!”</p> +<p>呵呵,由于没用多久,所以还不能多加评论,我怀我有自闭的倾向,现在有了“饭否”,偶尔在里面发一下实时的感受,发泄一下心情而已,就当我是面对着墙壁在一个人喃喃自语吧。</p>共享空间无法访问!惊得我一身冷汗!https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/Sat, 30 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/<p>早晨起来,像往常的周六一样,来到公司加班。</p> +<p>打开电脑,然后习惯性的访问我的msn空间,“该页无法显示&hellip;.”,不会吧,难道是网络断开了?</p> +<p>没有啊,空间主页还是可以访问的,怎么一切换到我的空间就“该页无法显示”了呢?</p> +<p>强制刷新浏览器还是不行,随便点了一个朋友的空间,可以访问。</p> +<p>完了!莫非我的msnspace被封掉了?</p> +<p>上网搜索一下,看看有没有出现同样问题的朋友,结果显示msnspace无法访问是常有的事儿,很多人都有过类似经历(国内用户),这其中的原因不言自明啊!</p> +<p>我开始回忆,在我的日志里面到底有没有不该出现的敏感词汇?</p> +<p>想了半天,答案是没有。可是要说是msnsapce的故障吧,别人的空间又是可以访问的,无奈只好跟微软的客服发了封电子邮件,暂时还未收到回复。</p> +<p>我刚开始写网络日志,不为影响别人的看法,只为记录一下暂时的心情,本以为放到网上比放在本地还安全(相信微软的技术水平),结果还给我来这一手,想记录的时候却无法访问了,弄的心里还挺难受,担心以前的日志会不会丢掉啊!</p> +<p>ps:就在刚才,它又突然可以访问了!</p>鲜果在线,让我尝一口鲜果https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/Thu, 28 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/<p>偶然在diglog里发现了鲜果在线这个网站,名字很好听,于是乎,我就点击进去看了看。</p> +<p>看了之后真有一种相见恨晚的感觉,这个站点本身不提供什么信息,只是提供一个在线的RSS阅读器,而且它提供的RSS频道都是根据大家的兴趣和订阅量进行排序的,也就是说,看某个频道的人越多,该频道就越靠前。</p> +<p>这样就可以看到大家都喜欢看的东西,那些垃圾信息不会浮上来了(感谢Web2.0啊!)。</p> +<p>在线阅读的操作也十分简单容易上手,而且界面清爽,有比较强大的自定义功能(我靠,怎么这么像托儿啊),我订阅了一些精品的频道,比如Engadget、Solidot、cnBeta等,顺便订阅了王小峰的“不许联想”(这个博客比较能扯淡,这算是夸他了)。</p> +<p>这下就不用Firefox的rss阅读器了,直接把订阅的频道放在鲜果在线里存储到网上,在家和在公司都能看到同样的新鲜信息了,重装系统也不怕,把东西都放到网上,我想这也是以后互联网发展的趋势吧&hellip;&hellip;</p> +<p>ps:其实我早就把收藏的网址也放到网上了,在Firefox里安装一个扩展&ndash;yoono,这个插件也很牛,有点儿像美味书签(del.icio.us),不过yoono最近增加了收藏整个网页的功能所以比较起来就更喜欢yoono。</p>归去来https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/Wed, 27 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/<p>雨后的空气格外清新,天气还没有完全放晴,乡间的柏油路上还是湿的,远处缓缓驶来一辆摩托车,骑车的人叼着烟,看起来懒洋洋的,十分惬意,没错,那就是我。</p> +<p>我这几天回老家了,这个机会十分难得,暂时逃开北京繁忙的工作,溜回老家,无拘无束,自由自在。</p> +<p>目光所及,尽是农田。</p> +<p>空气中还飘散着青草混合大粪的味道,也算是沁人心脾吧。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">别再徘徊沉寂的心灵 +</span></span><span class="line"><span class="cl">别再留恋破碎的回忆 +</span></span><span class="line"><span class="cl">大地迎春雷抛弃你满腹的忧虑 +</span></span><span class="line"><span class="cl">缤纷的彩虹等着你 +</span></span><span class="line"><span class="cl">别再犹豫等待的心湖 +</span></span><span class="line"><span class="cl">别再沉迷过去的旧梦 +</span></span><span class="line"><span class="cl">暖暖的春风走向那灿烂的天涯路 +</span></span><span class="line"><span class="cl">耀眼的阳光迎着你。 +</span></span></code></pre></td></tr></table> +</div> +</div>我拿什么拯救你!我的晚餐!https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/Wed, 27 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/<p>今天又一次雨中漫步,原因很简单,受天气预报的干扰我又没带伞(干嘛要说又呢?)。</p> +<p>拿起背包从容地奔向车站,嘴里也不忘哼着:“我能想到最郁闷的事~~,就是下雨却没有带伞~~”。</p> +<p>淋雨就淋雨吧,挤上车,去思考一个很严重的问题,我的晚饭吃什么?</p> +<p>别笑!这确实是一个很严重的问题。</p> +<p>我不能像老婆在身边时那样说:“随便吧,做啥吃啥”(虽然心里想着最好炒两个菜,再冰上一瓶啤酒)。</p> +<p>自己动手去做的话,倒不是嫌麻烦,只是吃我做的晚饭简直是虐待自己(大饼卷着馒头沾着米饭吃)。</p> +<p>吃晚餐在我眼中确实是非常重要的事儿,平时上班的时候,早饭总是很虚无缥缈,不堵车的时候就慢慢坐在包子铺里吃包子,堵车时就没准儿了,也许是一个鸡蛋饼,也许是一个肉夹馍,也许,也许只有一杯开水。</p> +<p>午饭就是普通的工作餐,千篇一律,除了米饭还是米饭。</p> +<p>所以说,一日三餐也就晚饭是顿饭,我把吃晚饭看作是一件很神圣的事情,虽然不必在每次吃晚饭前都焚香沐浴,但我也在吃饭前做个深呼吸,抛开一天的烦恼,菩萨保佑、阿弥陀佛、无量天尊、阿门!感谢上天又让我吃了一顿晚饭!</p> +<p>然后就对生活重新燃起热情,对工作又重新充满信心,活着不就是为了这顿晚饭嘛!</p> +<p>可是,现在,我看了看车窗外,雨停了,道路渐渐不再拥堵,我的胃却越来越堵,没有胃口,吃还是不吃,这是个问题。</p> +<p>下了车,路边的麻辣烫小摊熏得我的胃一阵抽搐,不远处的油炸臭豆腐老板正在卖力的吆喝,卖盗版书的小贩倒是省事儿,在大喇叭里循环播放“六块一本儿,随便挑随便拣&hellip;&hellip;”,喊得我头晕眼花,我真想冲过拿起他的喇叭然后在空中抛一个完美的弧线。</p> +<p>还是那个晚饭情节,不想在外面饭馆里吃,尤其是一个人在饭馆里吃。</p> +<p>拿起馒头,就着音乐和啤酒&hellip;&hellip;我怎么会舍得你走,这一去竟是几个秋冬请你好好珍重无须挂念我太多我的爱和从前一样这承诺当是万般重要尽管容颜会老这一生无以为靠我还是会爱你到老我不会让你苦恼也许我始终无法释怀我会假装一切都好。</p>我拧你!https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/Tue, 19 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/<p>电视上充斥着广告,其中不乏精品,看完之后让人心情舒畅然后心甘情愿的掏腰包去买他们的产品。</p> +<p>但是大多数广告都庸俗不堪,让人看得心慌气短、胃部抽搐、浑身起鸡皮疙瘩。</p> +<p>这其中不必说“收礼只收搓澡巾”,也不必说“洗洗更健康”,单就是那位一口气上五楼的大爷就能让人抓狂了。</p> +<p>时间长了,这些广告我吐啊吐啊的也就习惯了,对于这类垃圾广告也有了一定的免疫能力。</p> +<p>但是最近又有一个广告冲破了我的心理防线!那就是某饮料的变态广告“我拧你!”</p> +<p>画面上,一群疯子在那里晃来晃去的踢腿,就像得了羊癫疯似的,整个广告看了让人不知道他们在表达什么另类理念,还好导演没忘记让他们每人手里拿着一瓶该品牌的饮料。</p> +<p>我估计作者的思路来源与某天他的鞋里进了个小石子,然后他就不停的甩啊甩,一直甩不出来,直到喝了他那个饮料才甩了出来,于是就创作了这个广告。</p> +<p>关键是你在电视上恶心恶心我也就算了,在上下班的公交车上居然也循环的播放,而且还衍生出不同的版本出来,里面就没有一个正常人,都拿个腿在那儿踢来踢去的。</p> +<p>也许从某种层面上来说,这也是一个很成功的广告,我看见很多人吵着要下载那段抽风的音乐作为手机铃声,但是我绝对不会去喝一口那种饮料,我怕晚上会做噩梦,然后再一脚把被子给踢到床底下去&hellip;&hellip;</p>冰箱里的灯https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/Mon, 18 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/<p>你问:“把大象关冰箱里共分几步?”</p> +<p>答:“分三步,把冰箱门打开,把大象放进去,把冰箱门带上”。</p> +<p>你又问:“可是把大象关进去之后里面黑乎乎的大象不害怕吗?”</p> +<p>反问:“你怎么知道关上之后里面还是黑乎乎的?你确定关上门之后那个灯灭了吗?”</p> +<p>你:“~~~~~~”</p> +<p>这个问题曾经也困扰我很久,因为冰箱的门只要一打开那个灯就亮起来,可是关上门之后你又看不到里面,所以还是不能确定里面到底是什么情况。</p> +<p>听说国外曾经有人为这事儿想不开去自杀,更有人为此急得抓耳挠腮夜里都睡不着觉,直到他把冰箱的门上凿了个洞,看清了原来关上冰箱门后那个小灯真的灭了,这才安稳的睡去(估计这哥们是一环保人士,担心那灯太费电)。</p> +<p>我没像那位牛人那样的使用暴力,但也自有办法。当然了,作为一个正常人,去探讨冰箱里的灯到底关了没有,这种做法实在是有些偏执(这不神经病吗!),你就姑且看作我是好奇心使然吧。</p> +<p>反正,我的冰箱刚弄回来的时候我还真就动用了高科技手段&ndash;拍照手机,我那手机带了个30W像素的鸡肋摄像头这下派上用场了。也是分了三步,把冰箱门打开,把手机定了时(定时10秒后拍摄)放进去,再把门带上。</p> +<p>心中默念,时间到,开门取出,查看照片,出现了不可思议的结果!照片里那个灯竟然还亮着!再试一次,还是亮着。</p> +<p>我那叫一个晕,觉得被冰箱厂家给忽悠了,口口声声说节能,这得多耗不少电呐。</p> +<p>在仔细阅读了两遍说明书之后,总算恍然大悟,原来那不是普通的灯,它不仅仅担任了照明的工作(难道还用来制冷啊?),还兼具杀菌的功效,在关上门之后,它再持续照射几分钟食物,起到杀菌抑菌的效果。哦,原来如此,人家陈老师说了:“人不能无聊到这种地步!”</p>灭蚊记https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/Sun, 17 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/<p>又到了蚊子最猖獗的季节了,现在每晚都有蚊子在我耳边盘旋,嗡嗡的声音若隐若现,让我神经高度紧张,却又懒得起来招呼它们,无奈,硬着头皮睡去。</p> +<p>第二天胳膊腿上到处都是蚊子们留下的吻痕&ndash;小红疙瘩,奇痒难忍。我发飙了,对付蚊子,我要开始行动!刚开始我采用的是防守战略,听说食用葱姜蒜可以使皮肤排出的汗味具有天然的驱蚊效果,本想采用此方法,但是吃了大蒜那味儿我更受不了只得放弃。</p> +<p>还是在洗澡的时候多放点花露水吧,“六神特效驱蚊花露水”据说效果很好,洗完澡往身上狂撒,安静的躺在床上,等待蚊子飘然而来再飘然而去。</p> +<p>结果,效果欠佳,蚊子依然如故的为我唱着催眠曲,而且我还被花露水熏得神清气爽、失眠健忘。</p> +<p>防守看来不行,改变战略。</p> +<p>男人!就要对别人狠一些!对付蚊子也不例外!</p> +<p>狂奔去超市,买来“枪手”喷雾剂、“睡得香”电蚊香、电蚊拍、紫外光灭蚊灯等等,我要发起进攻了!</p> +<p>晚饭毕,拿起“枪手”对卧室一通疯狂扫射,再将蚊香点燃,整个房间烟雾弥漫,关紧房门,外面客厅里的灭蚊灯发出幽幽的清华紫光。</p> +<p>这下蚊子们彻底的玩完儿了,对不起了诸位,我已经够瘦弱了,您就给我留点儿血吧。</p> +<p>沐浴后,推开卧室门,兴冲冲准备打扫战场,刚推开门我就被呛得眼泪鼻涕都下来了(我刚才喷的不是催泪瓦斯吧),蚊子倒是没有了,只是这屋里也不能待了(已经感觉呼吸困难了),无奈只有掐灭蚊香,打开窗户,终于,新鲜的空气伴随着新鲜的蚊子又进来了。</p> +<p>灭蚊灯、灭蚊拍也收效甚微。灭蚊战争暂告一段落,蚊子暂时领先。</p> +<p>先这样吧,实在不行就拿手拍吧,要是懒得拍就猛开空调把他们冻死,再或者,如果我的反应足够灵敏的话,我就在它们叮我的那一刹那,暗运内力把它们的嘴夹在肌肉里,我憋死它们!</p>自然醒https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/Sat, 16 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/<p>如果有那么一天,我在沙滩上走着,突然从沙子里踢出一个神灯,我擦了三下,彭!的一声窜出一个魔鬼,对我龇牙咧嘴,非得满足我三个愿望。</p> +<p>那么,我会许什么愿呢?我不会像周星驰那样无耻,许完了两个愿望后最后一个愿望竟是再要三个愿望。</p> +<p>我想我也应该不那么自私,我会把头两个愿望交给公益事业,比如世界和平、环境保护啥的,然后留一个愿望给自己,那就是&ndash;我想睡个自然醒。</p> +<p>自从告别了自在潇洒的大学生活,参加工作以后,我就没有睡够过,也不是完全没有时间睡觉,而是能有机会睡懒觉的时候我都睡不着。</p> +<p>在一周里里面,工作日期间肯定没睡懒觉的可能,一大早就狂奔到车站去挤车了,晚上又很晚才睡,所以这期间是十分缺觉的。</p> +<p>只有周末的早晨才能有机会赖在床上,可是问题来了,周末的早晨我倍儿精神!平日里闹钟响了还想把它摁掉再小睡一会儿,可一旦到了周末,我往往比闹钟醒的还早,而且再也睡不着。</p> +<p>这是为什么呢,苦苦思索之后,得到答案:周末是属于我自己的自由时间而且很短暂,我不舍的拿这点儿宝贵时间来睡觉!</p> +<p>平时没时间干的我只有等到周末了,平时听不了音乐就周末抱着音响使劲儿听,平时没时间弹琴就等到周末抱着电子琴使劲儿得瑟,平时没时间摄影等到周末就溜达出去一通狂拍&hellip;&hellip;等等,有这些个好事儿等着我,我就算是想睡也真就睡不着了。   所以,我也不祈求啥别的太奢侈的事儿,就让我睡个自然醒吧。</p>老婆回家的第七天https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/Fri, 15 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/<p>老家那边有些事儿需要老婆回去处理一下,用不了几天,可是转眼已经一个周过去了,据说还需要再呆几天才能回北京来。</p> +<p>哎!郁闷呐!按照道理来说,作为一个正常的男人如果老婆回了娘家,那他应该感到万分的高兴才是(我曾经有个同事,从来都不吭声,结果有一次哼了一整天的小曲儿,一问才知道,人家老婆大人回娘家去了)。</p> +<p>高兴是高兴,可是晚饭没有着落了,眼看着冰箱里的东西被我一点点地吃光了,就连平时不爱吃的饺子也在前天被我从冰箱的最底层翻了出来。</p> +<p>家里实在没吃的那就在外面吃吧,昨晚上刚好有饭局,不吃白不吃啊,结果上当了,几个哥们儿都是贪杯的主儿,白的喝完换啤的,啤的喝完换冰的,一直喝到丧心病狂&hellip;&hellip;饭还没吃上几口。</p> +<p>搞得今天蔫了吧唧不说,还浑身上火,鼻炎发作,咽炎发作,苦不堪言。</p> +<p>站起来,叹了口气,转身就看到洗衣机里的衣服也快堆成小山了,都说能把袜子按颜色分类的男人和把袜子随便乱扔的男人是两种不同的生物,我显然是属于后者,看来只有等到周末统一解决了。</p>抽考https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/Thu, 14 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/<p>   高考刚过,每年的这个时候都会有一大帮人在哪儿声泪俱下的控诉这万恶的高考制度。</p> +<p>我也讨厌高考,但是在我的记忆里,另一种考试制度更令我恶心,那就是&mdash;-抽考!</p> +<p>在我上小学的时后,比较害怕的就是考试了,但最让我感到不安的是每个班级选拔“尖子生”的过程。</p> +<p>那个时候每到期末每个班级总是抽出学习成绩最好的几个同学参加镇上的抽考,他们的考试成绩直接代表了整个班级的学习成绩,也代表了老师的教学水平。</p> +<p>私下里大家管抽到的这些学生叫“尖子生”。</p> +<p>从小学到初中我几乎一路是“尖子生”,至于为什么要有“尖子生”,这样考试有什么意义我就不去想了,只知道如果被老师抽到当“尖子生”就全家开心,我在家也可以放肆一些,万一抽不到就没人给我好脸色。</p> +<p>好在屡次的抽考过程中我只有两次没有被选中,不知是幸运还是不幸。</p> +<p>其中一次是在小学二年级的时候,虽然没有被选中,但是也参加了考试(数学替考),当时我的情况是语文极差但数学很好(至少比那些“尖子”要好一些),老师为了他们的荣誉,便让我替另外一个考生参加了数学考试,试卷虽然是我答的却不能填写我的名字。</p> +<p>好在当时也没什么自尊心,也就爽快的答应了,现在想一想作为老师也太不应该了。(这也是我后来虽念了师范却最终没有选择做老师的原因之一)。</p> +<p>到后来就越来越抵制这种虚伪的考试,大概是四年级,我越来越贪玩,成绩真的不行了,要期末考试了,老师们纷纷挑选“尖子”,刚开始还被提名,后来经过多层过滤,勉强坚持到了最后一轮评测,直到我们伟大的辛勤的园丁说:“好了,那谁,你回去吧,其他人留下”。</p> +<p>于是我提着书包灰溜溜回家,心里却说不出的高兴,不用去参加TMD关系到班集体荣誉的考试了!爽!哼哼,我冷笑,冷笑。现在回忆起来,脑子里仍旧充斥着老师们那因为贪图班级的名次而扭曲的面容(这就是原因之二)。</p> +<p>不知道现在怎么样了,在当时,这样的考试制度,它伤了太多太多孩子的心。ps:今日饮酒过渡沉醉不知归路兴尽打车走误入小区深处呕吐、呕吐引来保安无数!</p>天气预报https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/Wed, 13 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/<p>早晨,NB烘烘的中国移动给我发天气预报说是阴转多云,在分析了昨晚电视上的预报加上收音机告诉我的降水概率后,我确定今天不会下雨,然后非常自信的没带伞就上班了,虽然头上的天阴的要滴水似的。</p> +<p>谁知现在的天气预报已经不准确到让人发指的地步了!从下车到家的那段路程我只好雨中快步了(跑啊)。</p> +<p>不是说现在计算机运算速度越来越快了吗?</p> +<p>不是说建立的数据模型越来越接近真实了吗?</p> +<p>不是说那什么风云N号也升空了吗?</p> +<p>嗯?!忽悠谁啊!</p> +<p>上次就报给我说最近西伯利亚那边有情况,未来几天有大风降温的天气,搞得我捂了一身痱子!现在到处是天气预报,各大网站上有,报纸上有,QQ上有,收音机、电视就更有了,而且还花样儿繁多,一会儿是穿衣指数,一会儿又洗车指数,最后还忽悠你个降水概率,有雨就有雨没雨就没雨,整个指数百分之60鬼才知道到底要不要下!</p> +<p>当然了,他们有预报准确的时候,那就是对局部地区的天气预报,反正局部地区天天要下雨甚至还有短时间的雷雨大风等强对流天气。</p> +<p>我妈就曾经十分关切的问我:“为什么局部地区天天下雨,这个地区到底在哪儿?住在那儿的人可怎么活哟!”</p> +<p>算啦,也不跟他们计较,我还是回去翻翻小学的语文课本,好好拜读一下里面的那篇《看云识天气》,以后再也不相信这GR的天气预报了!</p> +<p>慢着,突然想起了倪萍大婶子曾经在“综艺大观”上做的即兴方言版天气预报,啧啧,那叫一个准啊!</p> +<p>“社员同志们注意啦,哈。这个山东省荣成县寨子沟公社刘家村广播站现在开始播送天气预报,哈。这个明天头半晌儿阴有小雨儿,后半晌儿就变天了。南风转西北风7-8级。这个凄凄沥沥的小雨儿夹着嗖嗖的西北风,今儿刮,明儿刮儿,后儿还刮,一直刮到下个星期六,哈。这个咱再接着说天气预报。这个西北风一刮,这回最大的特点就是龙卷风,龙卷风啊,粮食要最重&hellip;.”  </p>小王https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/Tue, 12 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/<p>初来北京的时候,家里托着亲戚的亲戚的关系让我在一家单位实习,就像鲁迅小说里写的那样,掌柜的是一副凶脸孔,主顾也没有好声气。</p> +<p>那时我一个人住在前门外大栅栏里的一家小旅馆里。</p> +<p>我住的胡同往北走几步一拐就是北京著名的“大栅栏步行街”,那儿有着浓厚的京味儿,经常看到成群的外国鬼子。</p> +<p>他们不停的拍照,吃小吃,买工艺品,所以这里一天到晚人山人海热闹非凡。有时候我也去转转,只是转转,并不买东西,那些让老外一看见就双眼冒光的玩意儿对我并没有多大吸引力。</p> +<p>小王,我住的旅店里的服务员,瘦瘦的,头戴一顶鸭舌帽,手腕上戴了一只便宜手表。</p> +<p>一天下午,我一个人站在楼顶上特别无聊,正好小王上来,我递给他一根“中南海”</p> +<p>他笑笑接住说:“一个人在外无聊吧?”</p> +<p>我说:“是”他说“那我就给你讲讲这一片儿的故事吧!”</p> +<p>于是他就趴在栏杆上给我说了一通关于这个胡同的故事,说了这一带在清朝是曾经全是窑子。</p> +<p>他抽了不少烟,我说“中南海这烟太冲了这边有没有柔和一点儿的烟?”</p> +<p>他想了想说:“我抽的都是便宜烟,恩,不过便宜好抽就行&hellip;”</p> +<p>他给我说了两种。我到了晚上买来抽了几支觉得不好抽(那时我还不怎么抽烟)就都送给他了。</p> +<p>以后就时常在一起谈天,混得很熟了,他经常早早的就把我的暖壶打满开水给提上来。</p> +<p>只是又过了两三天,我一直也没见到小王,一问店老板才知道:“他回老家了,他是离家出走才来到这个小店的,没钱了,才在这儿打工,不求挣钱只要有吃有睡就行,前两天他哥哥找到这里就把他带回去了。”</p> +<p>老板很惋惜:“多好的孩子呀!”</p>早晨的阳光真是灿烂https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/Mon, 11 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/<p>早晨的阳光真灿烂,虽然天气湿热有点儿桑拿天的苗头,但是我的心情很好,阳光洒在我的工作服上像是镶了金边,很是耀眼。</p> +<p>对了,我是一个环卫工人,每天早晨都要在这儿清扫垃圾,这个工作是很神圣的,至少我这么认为,虽然和小时候的梦想(艺术家)差得很远,但是用某位相声演员的话说“这是一样一样一样的啊”!</p> +<p>我愉快地拿起扫把,自在地吹着口哨,再把这条街扫完就可以收工了。</p> +<p>我不由得加快了速度挥舞着扫把就像一个画家挥舞着手中的画笔,我气沉丹田暗用内力,短小的扫把被我使得是呼呼生风,卷起的沙尘就像一层薄雾。</p> +<p>这个时候你出现了,挎着小包,下了公共汽车,高跟鞋踩在平坦的人行道上发出清脆的得得响,你的小手微微举起遮住当前还不算猛烈的太阳。真漂亮啊!我暗自赞道。</p> +<p>上学时很不努力导致我的眼神儿非常好,我想,在工作时看到美女也算是一种福利吧!</p> +<p>看着你向我走来,越走越近,不知是热的还是累得,我的手心开始出汗,我攥紧了扫把更卖力的扫了起来,地上的落叶伴随着纸片在沙尘中轻轻飞舞。</p> +<p>你终于走到我的身边,冲我使劲的挥手,这么近的距离我终于看清了你的眼睛,很大、很圆,长长的睫毛。</p> +<p>你竟然停下了脚步,盯住我迷离的眼神和唏嘘的胡茬,我期盼着你能给我说些什么,虽然黑夜给了你黑色的眼睛,但你却翻了个白眼儿给我:“你就不能轻点儿扫吗!还让不让人走路了!”。</p>Linkshttps://sbabybird.github.io/links/Mon, 01 Jan 0001 00:00:00 +0000https://sbabybird.github.io/links/<p>To use this feature, add <code>links</code> section to frontmatter.</p> +<p>This page&rsquo;s frontmatter:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">links</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="l">GitHub</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="l">GitHub is the world&#39;s largest software development platform.</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">website</span><span class="p">:</span><span class="w"> </span><span class="l">https://github.com</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="l">TypeScript</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="l">TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">website</span><span class="p">:</span><span class="w"> </span><span class="l">https://www.typescriptlang.org</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">ts-logo-128.jpg</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p><code>image</code> field accepts both local and external images.</p>Searchhttps://sbabybird.github.io/search/Mon, 01 Jan 0001 00:00:00 +0000https://sbabybird.github.io/search/ \ No newline at end of file diff --git a/links/index.html b/links/index.html new file mode 100644 index 000000000..51eeb8c9b --- /dev/null +++ b/links/index.html @@ -0,0 +1,35 @@ +Links +

Links

To use this feature, add links section to frontmatter.

This page’s frontmatter:

1
+2
+3
+4
+5
+6
+7
+8
+9
+
links:
+  - title: GitHub
+    description: GitHub is the world's largest software development platform.
+    website: https://github.com
+    image: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
+  - title: TypeScript
+    description: TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
+    website: https://www.typescriptlang.org
+    image: ts-logo-128.jpg
+

image field accepts both local and external images.

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229.JPG" "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229.JPG" new file mode 100644 index 000000000..4df40d71a Binary files /dev/null and "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229.JPG" differ diff --git "a/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229.png" "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229.png" new file mode 100644 index 000000000..1b1ac1dd5 Binary files /dev/null and "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229.png" differ diff --git "a/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_120x120_fill_box_smart1_3.png" "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..bbb8e63ae Binary files /dev/null and "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_120x120_fill_box_smart1_3.png" differ diff --git "a/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_1600x0_resize_box_3.png" "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_1600x0_resize_box_3.png" new file mode 100644 index 000000000..8276db2f0 Binary files /dev/null and "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_1600x0_resize_box_3.png" differ diff --git "a/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_800x0_resize_box_3.png" "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_800x0_resize_box_3.png" new file mode 100644 index 000000000..1dc9ec7ec Binary files /dev/null and "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_800x0_resize_box_3.png" differ diff --git "a/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/index.html" "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/index.html" new file mode 100644 index 000000000..378273dde --- /dev/null +++ "b/p/2007\345\260\261\350\246\201\350\277\207\345\216\273\344\272\206/index.html" @@ -0,0 +1,12 @@ +2007就要过去了 +
Featured image of post 2007就要过去了

2007就要过去了

+再过两天就要迎来激动人心的2008年了,时光如水,生命如歌,每一天都是崭新的,每一年都是十分有意义的。今天是2007年的最后一个工作日,此刻我想起了《甲方乙方》里的那句台词:"1997年过去了,我很怀念它。"2007年的工作依然是十分忙碌,工作占据了我生活中的大部分时间。由于长期缺乏锻炼,身体开始逐渐向亚健康状态发展。早饭经常不吃,晚饭又吃的太晚,导致消化系统不太好使,肠胃胃经常发出抱怨。最后吃了西药、中药若干,一日三餐再也不敢怠慢,肠胃才慢慢恢复正常。所以正是2007年我才认识到了健康的重要性,也更深刻地认识到了幸福的真谛!总之2007年对我来说是成长的一年、成熟的一年、有美好收获的一年(我很佩服我自己能认识到这些)。希望在2008年,我和我的家人都健康幸福!–由sbabybird于12/29/200704:41:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/2014\345\271\264\347\232\204\344\270\252\344\272\272\346\200\273\347\273\223/index.html" "b/p/2014\345\271\264\347\232\204\344\270\252\344\272\272\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..cf76e2391 --- /dev/null +++ "b/p/2014\345\271\264\347\232\204\344\270\252\344\272\272\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +2014年的个人总结 +

2014年的个人总结

今天是2015年的第三天,元旦假期就要过去,本打算在evernote上记录一下对新年的愿景,谁知写了半天,没保存上,全丢了,想起来还有个地方叫简书,就索性在这里写吧,既然准备动笔重新开始,不妨先总结一下过去的一年。

我的2014,这一年我过得比较平淡,也比较充实,认真工作、积极创新、乐于助人、波澜不惊,没事儿还看看电影、找朋友喝喝小酒吹吹牛,可以说相当的自我。我刚才又翻看了一下年初时写下的期待,基本上都实现了。

1、我个人在今年才开始使用智能手机(赵老师倒是早就用上了苹果,手机领先我一个世代),在此之前,我一直鄙视智能手机(电池不行、没有实体键盘输入不方便、软件装多了就慢等等),不过,在我用了一台大屏幕智能手机之后我彻底改变了看法(大屏就是爽啊,技术进步迅猛,现在的手机已经没有性能问题了),从此我的黑莓就躺在了抽屉里吃灰,我的包里也不用随时塞一个厚重的iPad了,笔记本电脑就更不用背了。对了,在中国移动的反复撩拨下,我终于也开通了4G,不必再忍受GPRS的龟速了。

2、今年的电影看得比较少,没有什么值得回忆的,暑假的时候我带孩子们去看了场『变形金刚4』,片子又烂又长,中途不得不去了两次厕所。

3、拜某局所赐,美剧也看得不多,反而省了时间做其他的事情。

4、利用业余时间,我学会了用Photoshop修片,在网上系统了学习了课程,而且与实践结合,将自己拍的照片调的还算满意,不过一看就是个新手,调出的照片远远就能闻见浓浓的后期味儿。

5、买了个电钢琴,给金妍练琴用,开始时我也跟着瞎掺和,甚至一起做指法练习,可以没坚持下来,现在她已经可以弹出完整的曲子了,我还停留在小星星阶段。

6、不过我在吉他的扫弦方面进步不小哦,至少我是这么以为的,因为听起来,不那么像噪音了,我甚至和金妍一起录了一曲『小苹果』,感觉还『蛮拼的』。

7、赵老师开车闯了个红灯,一下子就扣了我6分,从此我开车上路都多里哆嗦不敢开快像个娘炮,连老杨都比我开的猛。

8、读书读的不算多,但也陆续看完了几本,『ReWork』、『给青年的十二封信』、『禅与摩托车维修艺术』、『围城』等等,另外我又看了一遍『黑客与画家』,每次看都有新的收获。在办公室,还有一本道德经放在抽屉里,每当工作累了就拿出来翻一翻,虽然总是看不懂,不过用来缓解压力效果还是不错的。

9、陪家人的时间比以前有所增多,甚至去了一趟幼儿园参加家长互动的活动,由于以前去的太少,老师们都不认识我,不得不让孩子亲自出来指认。活动中,与孩子的互动环节,在老师的指引下,孩子们伴随着音乐给家长捏肩捶背无比亲昵,我看到了旁边一个像我一样的木纳父亲,那一刻,他的眼里竟泛着泪光。

回顾了过去的一年,再考虑一下我的2015,给未来一些愿景和期待:

1、坚持学习,为了兴趣和爱好去学习,并尝试做一些记录,去年年末的时候,我将SICP(计算机程序的构造和解释)的部分课后练习题做完后写到我的博客里,这是一个不错的开始,今年争取能做完一半,如果有余力的话,将The natural of code这本书的练习题也做了记录到博客中。

2、我的人生目标仍然是不断创造出美好的东西,继续保持好奇心,做好玩的事儿。每天的PDCA都要围绕这个目标进行。

3、不放弃自己的爱好,吉他、摄影、绘画、编程等等这些,多抽时间放在上面,为了防止以后不会写字,可以考虑使用钢笔临摹一些硬币字帖。

4、通过互联网优化自己的工作,关注最新动态,永远对技术敬畏。

5、多看书,kindle里没看的书还很多,争取每个月都读一本。

6、少上网,2014年已经有意识的限制自己的上网时间,2015年要做的更好,每天固定少量时间阅读英文咨询(hacknews、reddit、thenextweb等),每周固定时间阅读中文咨询(知乎等)即可。

7、多行动,少踌躇,别怕犯错。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/2015\345\271\264\347\232\204\344\270\252\344\272\272\346\200\273\347\273\223/index.html" "b/p/2015\345\271\264\347\232\204\344\270\252\344\272\272\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..309a7eb07 --- /dev/null +++ "b/p/2015\345\271\264\347\232\204\344\270\252\344\272\272\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +2015年的个人总结 +

2015年的个人总结

按照惯例,工作总结写完了,可以开始写个人总结了,只总结与工作无关的。

0、家庭

  • 按照年初的预定目标,要抽出更多时间跟家人一起,基本也实现了,比如陪赵老师逛了两次街(元旦和年末各一次),虽然全程一脸无奈、两股战战几欲先走,但也算破了纪录了,我还总结了一个技巧,只要赵老师试衣服,我就在旁边说:“哎呀,这衣服穿上没腰啊”,不一会儿赵老师就让我一边儿歇着了,后来我还为她写了首歌,叫《一千个买鞋的理由》;
  • 儿子在我的引导下,现在每周都会用英文给我写一封信,写在纸上用手机拍了发给我,每一封开头的“Dear Dad”看着都很是让我有些小激动,我基本都能做到认真点评且鼓励为主,偶尔碰到不熟悉的单词,我还得查查再回复。只是他性格有些自闭,跟我小时候差不多,不擅长表达内心真实的想法。
  • 女儿成长很快,今年入小学没少让我以及周围的朋友费劲(感谢大家),但好在最终还是如愿以偿,我也尽量在周末多抽出时间来陪她,不过她也越来越大了,心思也多了,现在我一下班,她已经不再冲出来抱着我的小腿坐在皮鞋上跟我说“爸爸你回来啦,爸爸我好喜欢你啊”了(那时她特别像《卑鄙的我》里的那个最小的小女孩)。一想到将来会有那么一天,她推开家门扯着一个男生的手,对着坐在沙发上抽烟的我说:“爸爸这是我男朋友”时,我就心碎(赵老师评论,如果到30岁还没有,你更心碎)。
  • 父母正在慢慢苍老,不过心态还算年轻,今年暑假仍然过来检查了我的工作,相聚时间虽然不长,加上今年我中间又多回老家了几天,也算是响应国家号召,常回家看看了。我虽不爱打牌,但仍然坚持陪二老斗地主,无奈水平太次,每次都被我爸赢个精光。我爸控制欲极强,我说我周末吃饺子,他遥在千里之外还打电话跟我说,如果吃猪肉大葱馅的,以我的量,剁馅儿的时候必须只能放一根葱“那样剁出的馅儿才最好吃”。我虽心里呵呵,但嘴上还是像乙方对待甲方那样深表同意。
  • 十一的时候,跟妹妹约定,她从深圳,我自北京,携家人在鸡公山顺利会师,一起游玩了几天,她还千里迢迢给我带了自酿的红葡萄酒,一喝上瘾,后来我自己也在北京酿了十来斤,无奈第一次制作,缺乏经验,口感偏酸,就没有好意思拿出去给朋友品尝,我自己受累都喝完了。

1、健康,我的体重如愿增长了约3公斤,达到了历史新高度,67公斤(冬天、棉衣),上次去买衣服时惊喜的发现腰围已增长至二尺五。但明显缺乏锻炼,精力也不如以前,目前已经认识到问题严重性,虽然没法跑步,但准备多做家务(比如拖地),多走路少坐车,饮食规律、睡眠规律,将锻炼身体正式提上日程。

2、电影,今年还是看了很多不错的电影,有的在影院,有的在网络上看的,如果非让我给个排名的话《爆裂鼓手》应该是在第一位,明显是拍给“不疯魔不成活”的孤独者看的。《海洋之歌》是我近年来、乃至建国以来看过的最优美的动画片(又是爱尔兰这个忧郁的民族拍的),略伤感,但是每首配乐都可以单曲循环,每个画面都可以截图然后冲印挂墙上。《少年斯派维的奇异旅行》是一部意外惊喜,讲述一个天才少年走出误伤弟弟的心理阴影的过程,反正也是各种优美,适合某个周日的下午躺沙发上安静观赏。看过的新科幻大片反正就那么些,乏善可陈,倒是有一些科幻小制作非常出彩,比如《她》《I型起源》等等。还有一些略文艺的比如《深夜食堂》《一树梨花压海棠》等。国产电影中只有《夏洛特烦恼》留下深刻印象,其他一概不记得,这就是拍给我们80后看的,全程无尿点,悲剧的内核喜剧的外表,看的时候可以放心的抹眼泪,因为别人也不知是不是笑出来的。(写到这里我突然发现,明年需要降低电影预算,拨给读书)。

3、音乐,自从豆瓣FM下架了很多我收藏的红心歌曲后,我基本上就只用“网易云音乐”了,重新捡起了上班路上插着耳机听歌的习惯,以前总不舍得用耳朵,怕听伤了,后来想通了,和XX一样,有些事情是不能攒到老年时再做的。而且现在没那么挑剔了,苹果原装的耳塞就足矣,返朴归真了。(写到这里想起一个笑话,有一天早晨起床后发现有一只耳机不响了,后来大夫告诉我是右耳聋了,吓了我一跳,我还以为耳机坏了)。

4、看书,基本上都是在地铁上断断续续看的,比较有印象的有《思考,快与慢》《万物有灵且美》《The Nature of Code》《设计中的设计》《那些古怪又让人忧心的问题》等等。看的比较杂,这些书基本上都可以开拓视野促进思考。比较实用的是我在年末的时候看了一本关于领导技能的书—-《周一清晨的领导课》,感觉受益匪浅,书名虽然起的有些鸡汤,但是内容确实不错,对于中层领导解决在管理团队时存在的问题确实很有帮助,目前还没看完,我准备实践一下(知行合一),我身边的人,无论是不是要搞管理,我都准备向他们隆重推荐这本书。另外我在kindle上又看了两遍南怀瑾大师的《金刚经说什么》,虽然看不太懂,但还是深深体悟到了什么叫“念念不忘,必有回响”。

5、其他,今年还是经历了很多,其中有很多意外的美好,也有痛苦的体会,但总的来说,还是好的,思想上有进步,心态也比较平和,不会为琐事计较,进一步明确了“助人为快乐之本、创造是幸福本源”的价值观,能够以比较积极的心态看待问题,乐善好施,更喜欢跟朋友聊天,尤其喜欢传递给周围的人快乐和正能量(承蒙大家错爱,无以为报,而且我觉得这也是“善”的一种)。

对于未来的期望,我考虑了一下,有这几点:

  • 努力去创造美好;
  • 发现更大的世界;
  • 用心体验生活;
  • 奉献,带给他人快乐,即善;
  • 负责,承担责任与使命;

具体点儿来说:

  • 对技术的热情不能消减,没有时间即使是挤时间也要坚持学习新技术,创造美好的事物;
  • 坚持知行合一的理念,看再多的书和文章也不如真正去实践;
  • 有意识的提升管理和自我管理能力,阅读管理书籍,并在现实中运用,坚持PDCA;
  • 适量扩大社交圈,好朋友要常联系、常来往,缩小关注范围,降低信息噪音;
  • 多做好事,以助人为决策标准,帮助他人成功;
  • 锻炼身体,多做家务,多陪家人,即“负责”;
  • 慢下来,尤其是在做决策时,需要认真考虑和分析,始终坚持原则与最初的目标定义,也是“负责”;
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/2016\345\271\264\347\232\204\344\270\252\344\272\272\346\200\273\347\273\223/index.html" "b/p/2016\345\271\264\347\232\204\344\270\252\344\272\272\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..9fcf6359b --- /dev/null +++ "b/p/2016\345\271\264\347\232\204\344\270\252\344\272\272\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +2016年的个人总结 +

2016年的个人总结

每个新年假期我都会抽出一个下午的时间,回顾一下这一年所经历的事情(工作以外),总结一下得与失,回顾过去的同时顺便展望一下美好的未来。

2016有很多值得怀念的,也有很多值得感谢的,从几件小事谈起,简单总结一下生活。

0 、读书,2016年初定下原则,多看书少看电影,结果执行的还不错,朋友给推荐了一些书,自己也随机的买了一些,利用晚上睡觉前的一些时间累计下来一年也能看个十本八本的,印象比较深的有白先勇的《台北人》、蔡崇达的《皮囊》、村上春树的《当我跑步时我谈些什么》、东野圭吾的《解忧杂货店》、王小波的《万寿寺》。看完《当我跑步时我谈些什么》之后还冲动地跑了一个月的步,后因天气原因未能坚持(也不遗憾,姿势不当可能损伤关节)。技术类书籍没少买,每年仍看一遍《黑客与画家》,今年人工智能和大数据方面发展比较迅猛,陆续看了一些与之相关的书,对于科技的发展保持密切关注。

1、写字,每周都在简书写一些文字,记录一些心得体会,或者对一些事物的看法 ,质量参差不齐,大部分文字都未经推敲,纯粹自娱自乐。虽错把创作冲动当才华,但比起只说不做,我毕竟坚持把思想落实在了行动上了,一些文字也能引起共鸣,甚至有朋友打赏鼓励,最后统计了一下,写了五万字,一共收获了一百多块赏金,其中老妈、老妹打赏最多。

2、沉思录,从年初开始在微信朋友圈坚持做的一个小试验,每日睡前将当日坐车或刷牙时考虑的无聊问题,总结一段文字,发到朋友圈,浅薄幽默为主,记录心情为辅,偶有正能量鸡汤出没,好在我的朋友大都了解我的性格,通过这样一个小互动,得到大家很多的鼓励,谢谢你们。

3、脱发,虽然健康问题不容忽视,但是随着年龄的增长,脱发,是每一个“聪明”的中年男人都要面临的问题,就像我大学时第一次丢自行车似的,刚开始不敢相信,到后来,不得不接受这个事实。小区门口理发店的老板,给我剪了十多年的头了,从最初不断夸赞我头发浓密,到现在已经开始主动帮我掩盖局部地区的稀薄了(不过我还是没在他们家办卡)。不过还好,至少老年时我不会为是否需要染发所困扰了。

4、幽默与抑郁,幽默的人比较容易抑郁,据说很多喜剧大师如卓别林、周星驰,甚至很多段子手如赖宝,都有抑郁症。原因是幽默的人一般不太会处理自己的负面情绪,往往使用幽默的手段来进行心理防御,负面情绪得不到发泄,造成内伤。不过我还好,庆幸还没幽默到那种程度,自然也就不会抑郁那么狠,作为一个后知后觉的“慢性子”在经历的事情多了之后也能想明白不少问题,现在已经基本上不太会被别人的期望和评价所影响,知道关心自己的人是谁,在意该在意的,忽略该忽略的。

5、老爸的忆苦思甜,父母每年暑假都会过来住一段时间,为了表示诚意,这段时间我几乎每天都要跟老爸喝两杯,三杯酒下肚,老爸必然通过将各种故事对我进行教育,老爸讲故事有个特点,那就是保持在故事框架的基础上,为了达到更好的效果,可以进行适量的改动(比如《武松打虎》这一回,武松最多的一次是喝了72碗酒才把老虎打死的)。所以虽然我早已将忆苦思甜的框架烂熟于心,但每次捧哏的时候还是得认真对待,虔诚的接受“再教育”。毕竟老爸尝过挨饿的滋味,所以我经历的这些困难在他面前基本无颜提起。

6、“克己”,我在办公室放的有一本《传习录》,里面记载的都是明代心学大师王阳明与弟子、朋友的对话或书信,我古文水平很次,看起来磕磕绊绊,但是偶尔也会拿出来翻一番,说不定哪天就能领悟到一些东西。某日看到一段对话对我启发很大,了解到很多道理都有千丝万缕的联系,比如很多人看过的《高效能人士的七个习惯》,其中第一个习惯就是“积极主动”,大家也很推崇“积极主动”,但我某天在看《传习录》的一段对话时才更加理解这个“积极主动”了

“弟子问王阳明为什么平时道理都明白,遇到事情的时候却还是难以控制自己,老王说,那是因为你经历的事情还不够,没能克己,你还是应该在事情上磨练自己”

这里的“克己”虽然说的是在事情上磨练自己,但是怎么磨练?其实就是遇事要积极主动,不放过任何可以锻炼自己的机会,这样才会有进步,也就不会出现道理都懂,但实际没懂的情况了。

7、时光倒流,有天金妍问我,时光真的能倒流吗?为了严谨一些,我回答,现在不能,以后或许可能。然后我问她,如果时光可以倒流,你想回到什么时候?她说,我想回到小时候。小时候?多小?我问她。她说,我想回到4岁(幼儿园)。看来从上了小学,我们的人生就开始了战斗模式。我说,那等着哪天科技发达了,咱们一起回到小时候吧。我没忍心说,其实就算时光可以倒流,我们自己是不可能倒流了,我们的人生就像是离弦的箭,开始了,就永远不能回头,只能不断向前,冲刺再冲刺,然后在向前的过程中,去寻找美好的体验和感受,并努力赋予这个过程以意义。

时间过的很快,2017年我希望自己能够成为一个更好的 人,读到更多好书,听的更多好歌,做出更美的产品,坚持良好的习惯,关注他人的体验,向身边的人多学习,并坚持自己的梦想,向快乐出发!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/2017\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" "b/p/2017\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..ee7fd48ea --- /dev/null +++ "b/p/2017\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +2017年个人总结 +

2017年个人总结

2018年新年第一天,起的不早也不晚,天气晴的很好,阳光从窗外洒进来,给窗台上的多肉镶了一圈儿金黄。

每到这样的新年假期,我都会安排一天的时间收拾一下房间,然后坐在电脑跟前,回顾一下在过去一年里个人的经历和得失,考虑一下在新的一年里对自己的期望和改进要求,设立一些学习上的小目标,给新的一年提前充电。

这个习惯我已经坚持了四五年,主要以总结工作之余的个人学习和感悟,提取生活中的一些有趣经历,为自己在将来能够翻看回忆提供一些文字素材。

总结本身可能并不重要,但是这种回顾过去和展望未来的仪式感,每次都能使我得到激励,使我能站到一个更高的维度审视自己。

人们常说,了解自己是最困难的,我们可能永远都不能了解自己,只能无限趋近于了解,那我这样的总结,算是对了解自己所做的一种尝试和努力。

学习与读书

虽然随着年龄的增长,学习新的东西变得越来越困难,土话也有“人过四十不学艺”之说,但不得不承认,当今时代,学习成为了人人都必须修炼的一种能力,无论什么行业和职业,只有不断的学习,才能适应科技和文化的飞速发展。

有人说,最终人类比拼的将是学习能力,但这多少有点儿站在功利的角度,我所说的学习更多的是一种探索精神,一种想去了解自己了解世界的强烈好奇心。

今年买了不少书,技术类书籍和鸡汤类书籍各占一半,认真看进去的书不是很多,基本上每一本都翻了翻,但没有特别沉下心来看。

摄影类的书籍有《理光GR的随手拍摄心得》《纽约摄影学院教材》《摄影构图学》等等,这些归类到技术类书籍好像不太合适,但又确实是学习用的,看得还算是津津有味,其中给我带来最多收获的应该就是理光用户的那个随手拍摄心得,作者好像是台湾人,在读到之前我还难以想象摄影书还能这样写,基本上我感觉就是结合自己的故事重新写了说明书,读起来比较有吸引力,而且顺便把怎样使用相机也学了,真是一举两得。

学习数学、英语的相关书籍也买了一些,想重温一下高等数学,以及线性代数,感觉还是没达到预期目标,尤其是高等数学,基本上忘光了,连做课后的练习题都很困难,基于这些书倒是延伸学习了一些计算机图形学,这个算是意外收获,对计算机图形学里的一些概念如齐次坐标等等有了比较好的理解,尤其是使用矩阵来表示各种坐标变换,以前完全不知道内部实现的原理,直到今年我通过一边看书一边在excel里模拟了旋转平移和缩放的过程之后才算有了深入理解。

历史类的书买了两本入门册子,但是都没有读进去,畅销书《人类简史》倒是看了,写的确实不错,有一种以前读《万物简史》时的畅快,而且作者很会比喻,观点也独到,从很浅显的角度解释了人类发明的货币和公司这些东西。

趁着创业的热潮而大卖的关于创业的书也买了些,比如《从零到一》这样的,我看都是一些硅谷的创业成功者写出来忽悠人的,不过里面也讲了不少实话,看的时候就当是听作者诉说他是怎样取得成功的好了,反正他是这么认为的,虽然再来一次也可能不管用。

每年都会重新看看《黑客与画家》,虽然是一本很早的书,但是每年看的时候都有新的感触,也会产生新的影响,这个书的作者应该算是硅谷的创业教父了,他比较喜欢说实话,而且也喜欢思考,给我带来很多启发。

同样每年还会看看SICP《计算机程序的构造和解释》,这本被誉为神书的书,我一直没能完全看懂,今年借助YouTube,在上面听了两节MIT教授的课程,算是对前两章有了较深的理解,并顺便学习了LISP语言,这对于我以后折腾Emacs编辑器有所帮助,而且LISP语言的学习能够激发对计算机编程的深入认识,有一种超越编程语言的高维度感受,对计算过程的抽象很有可能是计算机世界的终极抽象,怪不得《黑客与画家》的作者说,未来的编程语言很有可能无限趋近LISP。

关于拍照

2017年我大概拍了四千多张照片,经过整理和挑选,留下来的也有差不多一千五百张,是我有生以来,拍照最多的年份,这个数字并不大,有些摄影师可能一天就达到了这个数字,但我这个业余爱好者,今年是一个突破,希望能够在明年以及更远的将来拍摄更多。

就像学习其他知识一样,如果只是听和看,不去亲自动手试一试,十有八九做的是无用功,不是说听和看不重要,我今年就读了好几本关于摄影的书籍,而是动手去练习更重要,10000小时的定律说的更多的也是练习,当然举这么多其他的例子更没用,游泳才是更好的例子,你不跳到水里根本不可能学会。

所以我今年能感受得到在摄影上的进步,一方面因为我读了很多关于摄影的书籍,无论是经典教材还是随手摄影的心得,这些书籍看了确实能够改善和丰富我对摄影的认知,另外我也在网上也观看了大量关于摄影的视频,大部分是在YouTube上看的,很多都是个人摄影爱好者开设的播客,这些内容虽然不成体系,但是也有不少可取之处,尤其是针对单个知识点进行的介绍,比如构图、后期、器材搭配等等。

关键还是因为我随身带了个相机,比起用手机来,我更喜欢这个理光的卡片机,虽然感觉并没有网上吹嘘的那么神化,但是还是很够用的,街拍神机名副其实,随身携带让我得一随时随地想拍了就来一发,比手机更有拍照的仪式感,而且画面质量确实比手机强的多,毕竟“底大一级压死人”,这个卡片机的传感器比手机的大了不知多少倍,拍摄夜晚或者光线较暗的场景时,手机拍的基本没法看,理光GR2基本可以胜任所有拍摄场景。

我能感受到最大的进步应该是在“构图”方面,比起对曝光的控制、后期调色等方面,我对构图有着天然的热爱,这虽然有些“形式大于内容”,但是我确实无法忍受一幅照片在构图上的失败,所以我现在在拍照之前,第一件考虑的事情竟然不是曝光,而是构图。这可能是因为现在的相机都已经智能化到自动控制曝光的地步,虽然有时候拍出来并不是想要的效果,但至少相机不会让你曝光失败。于是构图就成了拍摄首要关注的内容了。

我今年读的大部分摄影相关的书籍都是构图相关的,这些与绘画、平面设计类似的东西,我基本上东一下西一下的瞎看,不成体系,但也总结出了自己的一些原则,比如地平线一定要平,三分法放置画面等等。通过实际练习,我感到构图水平明显的变化,至少现在拍出来的东西一看就知道不是随手对付的,而是经过考虑和设计的,已经达到了业余爱好者的水准。

在练习中的感悟才是真正学到的东西,有的时候甚至能够跨越技能,从一件事情感悟到另外的事情上去,用一句今年比较流行的话来说就是“建立了联结”,通过练习,可以从拍照这个简单的事情本身,联想引申到对美的感受,无论是音乐、文字或者是其他的艺术品,人类所期盼看到的和听到的,就是愉悦的体验,而通过“平衡”、“对比”、“韵律”、“节奏”这些感觉的灵活运用,就是能让人感到愉悦,所以我现在比较能够理解艺术是相通的这句话了。

关于资讯

资讯的阅读是打发时间的最好方法,你看地铁上的人,几乎每一个人都捧着手机看新闻,当然也有刷剧和打游戏的,但据我的观察,大部分人都是在刷新闻。

资讯好像是一种食粮,每个人都如饥似渴的吸收,现代化的互联网技术和移动app,使得资讯触手可及,随时随地,吃个没完。

资讯又好像一种毒品,使人上瘾,如果有一个小时没有看到的话,就会浑身不适,非得打开浏览器或手机点两下不可,然后看到并没有什么有用的信息浮现的时候,才放下手机,内心得到了片刻的虚假平静。

其实不知不觉中,资讯消耗了我们大量的时间和精力,甚至成为了我们的枷锁,我们的眼睛仿佛除了资讯之外就看不到什么东西了,对其他东西的观察成了一种原始的应激反应,吃饭、睡觉、乘车,稍有闲暇的时候,就用资讯来填补。

好像我们的脑子已经无法承受在没有资讯刺激下的无聊,我们放弃了自己的思想,大脑的发动机已经不再运转,有的只剩下最基本的生理反应,这种情况所产生的空白,使我们恐惧,于是就吸取更多的资讯来填补,殊不知这些东西进一步把我们自己的思想挤的无处容身,脑子就更不能转动了。

我见过很多独处的人,在吃饭的时候,也不忘了掏出手机,我虽然没看到他的屏幕,但是可以猜想,看的无非就是一些“有趣的”文章。可怕的是,我自己有时候也这样,因为如果不这样我好像也吃的不香,觉得眼神无处安放,觉得这一段时间不知所措。

有一个关于“禅”的故事被说的比较多,大意是,有人问禅师“什么是禅?”,禅师回答:“吃饭就是吃饭,睡觉就是睡觉”,我最初听到这个故事或者段子的时候,根本无法理解,谁吃饭不是吃饭,睡觉不是睡觉呢。

后来想到关于吃饭时看信息,关于睡觉时胡思乱想,才明白,原来,吃饭就是吃饭,睡觉就是睡觉,是那么的难啊。

我在2017年有意识的限制自己获取资讯的时间,每当我忍不住想打开网页的时候,我就强迫自己坐下来写字,就写当下的脑子里想到的内容,想到哪儿就写到哪儿,完全不顾及条理性和先后顺序。

我原来还特别担心这样写出的东西根本不通顺,没法看,但是在坐下来写了两篇之后,我才发现,原来这些不加修饰和斟酌的文字,看起来是那么流畅,读起来非常顺口,就像自己跟自己在交谈。

而且这样做的一个很明显的好处是,屏蔽了资讯,用赵本山的话说“病毒关闭了,你的智商又重新占领高地了。”清空了资讯,给自己的大脑腾挪出可以思考的空间,很多自己的思想就涌现出来了。

先不用管他们是积极的还是消极的,根本不用识别他,站在一个旁观者的角度来观察,可能这就是禅宗经常说的“观照自己的内心”吧。

关于写作

我在2016年的时候,坚持每周输出五百字,作为写作练习,这项活动开展了整整一年,写了好几万字,后来我在2017年停止在网上发表。因为我觉得输出的内容有些缺少思想,而想写出比较有思想的内容还是很有挑战和耗费精力的,尤其是考虑到有读者的观看,会给自己带来额外的压力,后来我在写字这一块开始写给自己看,内容也都散落在工作日志里了,没有整理到网上。

上面提到的关于将资讯时间用于写作的方法,来源于2017年我看的一本书, 叫《写出我心》,主要的内容是帮助十分焦虑的现代人通过写作的方式找回内心的平静。

书的作者为了解决内心烦躁的问题,曾经尝试过冥想、瑜伽等方法,但是效果都不太好,心理的念头仍然非常的多,挥之不去,起伏不定,甚至越来越糟,于是作者尝试使用写作的方式,将自己的念头不通过思考,直接书写下来。

然后他欣喜的发现,不假思索将自己的念头不断的书写下来,经过一段时间,竟然可以解决自己的烦躁,内心逐渐变得平静,于是他就把自己的这种体验和方法总结下来,写了这样一本书,并提出了具体执行的一些原则和要求。

我看了之后感到比较有意思,也想尝试一下,开始利用闲暇时间或碎片时间写一些无关紧要的文字,主要是自己的一些思考和心绪。我发现,写作的过程真的具有疏解内心压力的功效,然后我逐渐意识到,这不仅仅是写作,这是一种倾诉。

而倾诉,很可能是一种卸下负能量的过程,也是积攒正能量的过程,每个人都有倾诉的需求,以前我没意识到,原来倾诉是舒缓内心的一剂良药。

可能对于外向的人来说,这不是问题,因为在日常生活中,他们随时随地在向别人诉说和交流,向别人输出自己的感受或观点。但是对于内向者来说,可能比较缺少倾诉的出口。

不过除了说话是一种倾诉方式之外,写作、绘画、其他艺术创作等,应该都是有效的倾诉方法,写到这儿我发现,怪不得艺术家多为内向者。

餐桌段子

2017年几乎没怎么看电视,不仅仅我自己,全家人也几乎都不看电视了,一方面是因为电视中的内容比较无聊,另一方面主要是因为孩子,孩子的作业较多,如果全家看电视的话,而且在吃晚饭的时候看电视的话,基本都会严重影响孩子的作业时间,而且一边吃饭一边看电视实在是不好的习惯,所以我有意识的在生活中取消掉了电视时间。

这样以来,刚开始大家都不怎么习惯,因为默不作声闷头吃饭实在是有违传统,用孩子的话说就是场面变得好尴尬,整个餐厅只回响着我biaji嘴的声音。

偶然的机会,我跟金妍开始尝试在餐桌上讲段子,都是一些学校的趣事,或者吐槽日常生活中的事情,可吐槽的对象主要包括“老师布置的作业”、“妈妈做的饭菜”、“爸爸的坏毛病”,或者是对于学习中的一些技巧。

由于孩子笑点很低,所以基本上我都是以原创和自制的段子为主,讲出来都比较冷(比如:为什么金币的颜色是黄色?答:因为“金碧辉煌–会黄”),但是,充分发挥脱口秀精神时,起到的效果都很不错,常常一顿饭吃下来笑到腮帮子疼(请勿模仿,吃饭还是尽量别笑,尤其是米饭)。

我想这些在未来都能成为孩子们成长的美好回忆吧。

总结

2017年如果汇总一个关键词的话,那就是“认识自己”,到了一定的年纪之后每个人都在承受生活中的各种压力,这些压力一部分来自别人,一部分来自自己,其中自己的那部分所占比重最大。

中年男人到了这个时间点,或多或少都会有些迷茫,多少都有一些积累,但是又缺少安全感,失去了一些年轻人的锐利,无论从精力还是身体健康状况,都有所下降。

所以如果想要突破,不仅仅是努力的事情,更多的是要思考,给自己定位,并有效率的付诸实践。

以前在学习时间管理的时候,陷于方法和工具,所以效果不明显,直到今年才认识到,无论任何的时间管理方法论,要想有好的效果,首先要想清楚自己的目标,就好像是确定目的地似的,不然即使掌握了方法,也同样无济于事。

就像企业一样,一个人也同样需要战略,如果没有战略,就像是一艘行驶在大海中的船,却没有舵,随波逐流,不知道飘向何方。

往大了说是叫战略,实际上是用来确定所做事情优先级的指导思想,只有定出来战略,才能在日常工作和生活中知道什么事儿是必须要做,什么事儿是能不做就不做。

所以2017年最大的成果,应该就是考虑清楚了自己的目标和想要到达的地方,感谢这个世界有那么多美好可以让我迷恋,未来我会投入更多时间和精力到我所爱,因为我发现我努力所追求的无非就是一种状态:那种可以让我痴迷沉浸进去的一种状态。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/2018\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" "b/p/2018\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..a4872307e --- /dev/null +++ "b/p/2018\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +2018年个人总结 +

2018年个人总结

2018年个人总结

起头

同样是元旦假期最后一天,坐下来给自己写总结。去年写总结的时候,我给自己上一年定义的关键词是“认识自己”,2018年我觉得关键词可以是“改变自己”。刚刚翻看了2018年产生的大量工作日志和心得记录,一边感慨时间过的飞快,一边在脑海里飞快回忆这刚过去的一整年,这个在网上被大家普遍吐槽、觉得艰难的年份。

关于资讯

2018年最令个人满意的一件事儿是戒掉了对互联网资讯的依赖。整整一年几乎没有主动上网刷过任何资讯,比2017年还要彻底,在手机上删掉了各种资讯软件,平时也很少刷新微信的朋友圈(偶尔发一发)。最开始的时候会感到不适应,但是一旦觉得资讯恐慌的时候,就强迫自己利用互联网学习知识,或者处理日常事务,一年下来节约了不少时间。

这么做的主要原因是自己认识到互联网资讯正在给人们贩卖大量的消费冲动和焦虑。

我觉得互联网是一个信息放大器,总是被掌握了话语权的人将自己的感受放大然后传播出去,如果这些人感到了焦虑,那么这些焦虑就会通过网络放大若干倍,去影响更多的人,给更多的人带来焦虑。那么现在是什么人在掌握互联网上的话语权呢,没错,就是我们这些80后。回过头去检查各年的网络热词,几乎是80后的人生成长轨迹,大龄了,剩了,结婚了,生娃了,学区房了,中年了,油腻了,佛系了,等等。

戒掉信息并不意味着远离了这些,只是可以更加正确的认识这个世界,不再陷入以前的误区、觉得喧闹的只剩下一种声音。

思考与认知

苏格拉底说,未经思考的人生不值得度过。如果说2017年是通过思考来认识自己的话,2018年就是将思想转变落实到行动上的一年。可以说是真真正正的用思考来指导行动的一年,向“知行合一”又推进了一丢丢。

以前知乎上有个关于“优秀的人不够自信”的问题,问为什么有的人明明很优秀却仍然觉得不够自信,要是搁在从前的认知,我会觉得答案很明显,会给出极左极右的评判。现在不这么认为了,没有绝对的两极,大多数人处在中间,符合正态分布,可能有些人更加偏向于“优秀而不自信”一些。造成这样的原因跟从小接受的教育有很大的关系,即“活在他人对自己的期望之中”,我几乎可以断定自己此生难以摆脱这种心理了,只能在正确认识到这种情况之后尽可能的去调节。通过多做事情去磨练自己,并不断用自己的目标去替换别人的期望,目前正走在这样的改变之路上。

找到自己的目标不存在诀窍,更不是自己坐在家里冥思苦想就可以,而是要不断去尝试,多做事情,去接触更多以前没有接触到的事物或者体验,只有这样,才能激发自己的潜力,遇见自己真正热爱并愿意投入精力与时间去奋斗的事情。

想明白这些之后,我主动多做了一些事情,可以明显感受到通过思考指导做事给自己带来的成长。

压力出口

每天大约能记录1k字的工作日志,当然里面不全是工作流水,有很多是临时书写的心得体会或者思考碎片。坚持这么做的原因是发现写作可以作为疏解压力的一个出口,既能整理思路,又能缓解压力,真是一举两得。

我称这种写作为“随意写作”,或者叫释放心理垃圾,《写出我心》这本书里说过,刚开始写不好没关系,因为需要先把内心里的垃圾信息倾倒出来,先把污水排出来然后才可能有干净和高质量的东西出来,这个比喻可能不太恰当,但是对我比较触动,也正好作为我接受自己水平很烂的借口。

看书让我认可了自己的“爱好广泛”

看书当然是日常生活中不可缺少的一部分,今年开始看阿城的作品。果然不简单,我还没有遇到过这么容易读下去的文字,可以说是流畅至极。阿城写这些文字就像是坐在这里跟你唠嗑似的,娓娓道来,而且段落之间完全感觉不到过渡突兀,天南海北扯来扯去最后还都能很好地收尾,讲到具体事例往往还能极为精准地引用古往今来学者或者艺术家的典故,说的煞有其事,看的引人入胜。

我觉得他之所以能够写出这么多东西应该跟肚子里有货有关,而且这些货还不仅仅是简单的灌装进去,码放整齐。应该是经过消化和思考加工,已然形成一套体系,里面既包含个性鲜明的观点,也体现他的三观。在聊天喷空之余偶尔还不忘揶揄几句当下的社会或者某些人群,幽默感着实了得。

读这样的作品还有一个感觉,就是越读越觉得自己对历史和人文了解甚少,往远了说有诗经论语等经典,往近了说有明清小说或者近代大家,东方有儒家道家佛家文化,西方有心理学、哲学、文艺复兴的科学等等,如果做不到对这些东西融会贯通,那么即使读到好看的文字,能看懂作者的议论也仅仅是瞧个热闹,过后很难产生更加复杂的化学反应,所以好书又会给人提供了解历史和文化的动力,仅从这一点来说,好书和好作家就功德无量了。

我以前总是担心自己的知识太杂,有种什么都想了解一点儿又什么都不精通的感觉,总是提醒自己要缩小自己的关注圈。看了阿城的作品后,感觉,既然天性之中有那么强的求知欲,又何必压抑自己,不妨也多做尝试,管他什么音乐绘画还是神学哲学,只要有兴趣就大胆去了解。

感谢阿城能够让我醒悟,不必为自己爱好广泛而烦恼,更不必为没能精通若干技能而悔恨,专有专的强,杂也有杂的好。

几点感悟

关于“改变”

推动事件向自己希望的方向发生是有难度的,也是考验和锻炼一个人综合素养的绝佳机会。观察这么多伟大的领导者,没有一个不是在推动变革中成长起来的,所以成功有很大的因素就是在推动变革。做变革的推动者需要面对很多困难,因为就跟打扫房间一样,任由事情向无序方向发展是最省力的,也是最不负责任的,只有想要东西向有序方向发展才是困难的。

广义上来说,做任何事情都是将事物从无序向有序方向发展,这是自然规律,宇宙万事万物从有序走向无序,只有智慧生命才具备能力维持有序或者把无序变有序,这一切都需要能量,作为智慧个体所具备的只有利用能量的方法和信息,比如蒸汽机、内燃机电动机等等,再往前倒腾,那就是农业时代的耕种,那也是一种利用能量(太阳)将无序向有序转变的过程。

这么些年以来,推动或者说维持有序的本质没有改变,个体想要发挥价值或者说作用,只有在这个过程中通过一定的方法和信息来完成能量转换为有序的操作,工程师、艺术家、农民,可以说做的是一样的事情,区别就是大家所使用的信息不同,引导的能量不同,所输出的转化物不同。

个体的价值就体现在不是作为“无序”的生产者,而是“有序”的生产者。

关于“做自己”

我以前特别尊崇“真”,要活的真性情并且避免虚伪,不愿意假装任何事情。这样做有很多缺陷,因为不同的人有不同的期望,而且这些往往是互相矛盾的,西方的文化传统是“做自己就好”,是挺好的,但是仅限西方,在中国的话,还是要讲究一下中和。

所以聪明的做法,在中国文化传统下,必然是不能直来直去,即便是“做自己”,也不能表现的太过于直接,中国的文化就是内在与外在严重的分裂,外在主要用于伪装和“一团和气”,而各自的内在又是什么样儿呢?谁也不知道。但有一点是毫无疑问的,那就是我们的文化绝对不推崇直接表现内心,所以才有古代大臣劝皇帝登基,而皇帝则三番五次推脱,嘴里喊着不要,虽然双方都知道是在演戏,但是也都不亦乐乎,做的很足。

刚正不阿的人在明白了这些之后难免会有一些哀怨,但在我看来,这样就有些狭隘了,从客观规律上来说,谁都逃脱不了自然的力量,无论是基因还是环境,所以不必抱着一种价值观跟这个世界死磕,老祖宗的智慧早就告诉我们任何事物都不可一分为二,不能非黑即白,要以一种“中间调”的视角来看待问题。

结尾

2018年经历了很多事情,思想的转变带来了行动的变化,年初的时候给自己开出了化解中年焦虑的药方“多做事情”,效果良好。通过具体事情的磨练,更加清晰的体会到了实际练习对成长的重要性,希望在后续的时光里,自己仍然能够保持好奇心,坚持学习,创造美好的东西出来。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/2019\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" "b/p/2019\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..ce5830339 --- /dev/null +++ "b/p/2019\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +2019年个人总结 +

2019年个人总结

2019年个人总结

起头

2019年过的比往年还要更快,今年的新年假期只有一天,正好用来写总结。

2019年是充分践行“在事儿上磨练自己”的一年,对目标有了更清晰的迭代,在行动上更加倾向于知行合一,继续缩减无效信息的获取和消费,挤出精力去做对自己更重要的事情。

有多少成绩不好说,但是多少有一些感悟。

摄影

每年的春季,都会有一种强烈的想要深入摄影的感觉。最近几年越来越明显,一方面可能跟大量的摄影器材新产品发布有关,另一个方面,环境的复苏,春天代表着一种生机勃勃的精神,敏感的人们便容易感受到事物的变化。

还有就是,可能因为春天比起冬天来比较。。。不冻手。

今年大概按了四五千次快门吧,能看的入眼的也有个百十来张,我对摄影的定位就是记录日常生活,发现并捕捉生活中的美好瞬间,如果让我挑一张自己比较满意的话,就是下面这张:

DSCF2721.JPG

在地铁上的抓拍,当时感觉这个包比较有趣,于是就拍了。

思考

大部分繁忙的人们,每天用在思考上面的时间都是很少的,或者说高质量的深度思考太少,导致了一种错觉,没有时间闲下来,仿佛进入了一个繁忙的死循环(这里推荐一本书《稀缺》,关于这种现象还有一种装逼的说法叫“内卷化”)。

许多比较成功的人士,并非这么繁忙,相反地,他们会腾出大量的时间用于思考,以思想来指导行动,给自己留出“空余”的时间,然后“行动”才有意义。

写到这里,我又想起一件事儿,比如装修房间,需要规划空间的布置,一定要规划空出来的部分跟实际功能使用的比例,不能一味将空间沾满用干净,那样的话整体就会感到很压抑,而如果空余的部分跟使用的部分有一个合理的平衡,就会整体感到档次和品质提升了不少。

这种“用”与“不用”的平衡可以说到处都能体现,摄影中存在“正负空间”的说法,也有“影调平衡”的说法,都是在讲究一种平衡。

我们对自己日常工作、生活乃至人生规划,都要向这种平衡去靠拢,每年、每月、每天的时间分配也要考虑到这种平衡,因为如果一味的用满,则会给整体的效能和品质大打折扣,看似繁忙充实,实则得不偿失。

所以,今年我更加注意留出时间给自己,深度思考,尽力争取空闲时间,把空闲当作一种保持平衡的“负空间”。

早起

今年加强了早起这个习惯,起床时间直接拨到了早晨6点,经过一段时间练习,现在就算不用闹钟也可以准点起来,睡眠质量不降反升,真是一举多得。

起床早的话,感觉精力充沛,精神状态也很不错,睡懒觉并不能带来充分的休息,反而早起的好处却很多,比如时间上的从容,交通不拥挤,吃饭、办事等都比较轻松,能够感觉每天的有效时间得到了延长。

我这么做倒也不是因为自律,而是想给自己更多的时间和机会去学习和体验,在我看来,外部的物质环境远没有自己的精神体验重要,随着时间进程的加速,谁都能意识到生命不是无限的,多做一些自己喜欢的事情比什么都重要,安逸可以适当体验,但更多的是,去观察和创造。

健康

心态平和所带来的第一个福利竟然是体重提升了10斤左右,半年时间内从65公斤飙升至70公斤,搞得有点儿措手不及,怀疑是不是因为工作地点搬迁之后周边好吃的有点儿太多了的原因,再也不敢相信随便吃都不会胖的神话,从能看清肋骨到能看见肉褶儿不过是几顿羊肉汤的功夫。

在可供我焦虑的选项里除了脱发,又增加了一项。

手机

今年将我的电子产品全线更换为自主品牌华为,一方面是苹果手机在创新上已经不思进取,在将开发团队外包给印度之后,其系统的稳定性和体验均出现大幅下滑,苹果公司本身的吃相也越来越难看,另一方面,国产手机现在做的确实不错,体验很好,而且就算是华为的高端手机,也比国外的那些手机“物美价廉”,所以支持国产很正常。

读书

除了一些专业的工具书籍以外,今年没有买任何的“闲书”,但是翻出了以前买来的重读了一些。

这个可以深入说一说。

比如今年又重读了《老人与海》,算是想明白了,为什么海明威仅凭借这一部中篇小说就能获得诺贝尔文学奖。以前上学的时候看此书,觉得吧,没意思,一个关于捕鱼的故事有什么可看的呢?但多年以后又重新翻看的话,体会就大不相同了。

今年年中的时候在老家跟几个老友小聚喝酒,仿佛一夜之间,感到我们这一代人的成长,大家忽然都成了家庭里的核心力量,所面临的压力陡增,无论是父母健康还是后代教育或者是亲戚邻里帮扶,我们这一代正在成为家里各项事务的第一责任人。

唏嘘之余,我才想到,我们这些人,哪一个不是《老人与海》中的那个捕鱼的老人呢?我们每个人都在等待生活中属于自己的那条大鱼,或者都在跟自己的那条大鱼在激烈搏斗,小说中的老人跟大鱼僵持不下,连换个姿势都成为一种奢侈,我们在面对各种生活中的琐事时又何尝不是跟老人当时一样的境遇呢?

所以说《老人与海》这部小说能够给人力量,我们都在跟“大鱼”搏斗,这是我们的使命。

其他的书也陆续看了一些,但都侧重于“闲书”,比如《数学之美》、《巨人三传》、《人类的群星闪耀时》,等等。

不以功利心读书是基本原则,将至少保持一百年不动摇。

学习

说到了学习,为工作而学的不算,今年在私下里研究最多的就是计算机图形学了。

由于缺少大块的时间,系统性学习是不可能了。

只能利用一些碎片时间,比如在下班路上阅读一些开源代码和论文,断断续续的。耗费了挺长时间才把空间坐标转换的矩阵给推演明白。

不过值得欣慰的是,编程也没落下,利用周末时间充分发挥理论结合实际的思想,我竟然亲手撸了一个基于web画布的光栅化渲染器,很原始,但是可以渲染obj格式的线框和三角面。

但毕竟平时很忙,估计等到可以加上光照和着色器的时候还得等几年了。

结尾

总的来说,认真做好每件小事,可以算是今年的主要指导思想,放平心态,不对自己要求太高,重点是投入进去,以谦虚的心态,搞懂小事,做好细节,即便是做的事情不多,成果也不大,也没关系,若能将小事做好,也能给自己的内心带来平静。

以往的习惯,往往是给自己定义较高的完美目标,结果就是不能完全令自己满意,时间长了难免带来较多负面情绪,随着年龄的增长,逐渐意识到自己的平凡和普通,虽说不是上和自己或者世界和解,但也逐渐更加了解世界和了解自己。

无论别人怎样看待,自己的感受才是最重要的,所谓幸福也主要就是一种自我的感受,只有自己才能对自己负责,任何人的建议都是首先站在建议人那一方的利益考虑。所以认真对待该做的事情,同时不违背自己内心的意愿,每一分钟都不是在准备生活,而是就在生活之中。

抛开不可抗拒之因素,仍然以自己的节奏为中心,抓住重点,继续学习和深入实践,饭一口口吃,事儿一件件做,只要小事能推进,日积月累也定会带来不小的收获。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/2020\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" "b/p/2020\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..c44c9be50 --- /dev/null +++ "b/p/2020\345\271\264\344\270\252\344\272\272\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +2020年个人总结 +

2020年个人总结

保持好奇心

  • 大概是2011年左右,我把QQ签名改成了“好奇、求知、创造”,从此再也没有改变过,我所喜欢的、热爱的、欲罢不能的事情,都被这三个词涵盖了。
  • 十年过去了,很高兴自己还能保持一颗探索未知、热爱学习的心。

读书

  • 现在听书比读书所占比重大,阅读时间缩水明显,翻开电子书的时间都有限,更别提手不释卷。
  • 年初重温《三体》,即便很多情节已烂熟于心,重读仍有新发现,休闲阅读而已,只为放松大脑。
  • 其余时间陆续阅读一些杂书《原则》、《随机漫步》、《菜根谭》、《曾国藩传》等若干。
  • 唯一触动较大的是年末再次翻看《计算机程序的构造和解释》,此次配合网上的公开课视频进行,跟随原书作者课程讲解节奏,对于知识的理解大有帮助,视频虽然年代久远,但知识历久弥新,比起科技业广泛应用的新兴技术,书中的计算原理以及相关的思想更像是对应了武术的“内功心法”,一旦有所突破,则在上层应用产生巨大的提升,与工作学习都大有裨益,其中玄妙不可言说。

摄影

  • 户外活动大为减少,往年春天乃摄影高产期,今年却苦于疫情无法外出,摄影爱好被迫搁置,2020年对摄影技术的练习几乎停滞,无心仪作品产出。
  • 卡片相机已很少使用,手机拍摄已是主流,器材追求已解毒,但如有更新的街拍机问世,心头恐怕还是会痒。
  • 有一事可提,今年独自吃饭次数很多,每次都拍食物照一张,累积下来一年竟拍了几百。

生活

  • 压力与机遇并存,最大收获是面对挫折、困难更坦然,2020不愿多提。
  • 记忆力确实有下降之趋势,回忆起来竟无亮点,亦可能本身就比较平淡。
  • 发现凡事都要低调不吭声的重要性,切记四处宣扬,否则就会出现“说出来就不灵”的魔咒。

学习

  • 对8bit老古董计算机的兴趣不减,四处搜寻相关知识,弄了一大堆模拟器,研究过程中竟对之前所学计算机组成原理有了新的认识和理解,喜出望外,本该大学之时就应掌握的技能,到现在再学也不迟,重在理解。
  • 创意类软件如blender等也持续浅尝,进步缓慢,但入门已没问题,缺少作品练习,安排即可。
  • 儿子已入大学,借用假期时间,我教他编程,他给我讲解高数,算是技能交换了,费曼学习法的一个很直接的应用案例。
  • 越发觉得B站是个学习的好地方,该站以后的发展不可估量,但从教育来看,很可能迅速超越国内二流大学,或者未来改变大学的形态也未可知。

后续计划

  • 希望可以继续通过写字记录学习的知识,保持一定量的文字输出,如条件实在有限,配合语音录音也可。
  • 在自己热爱的事情上,持续学习,关注一下作品输出(持续开新坑),早日成为心目中的“全栈工程师”、“三级工程师”(可参见吴军《硅谷来信》中的定义)。
  • 限制烟酒摄入,保持每日的活动量,能走路就不坐车。
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/3d\347\224\265\345\275\261\347\273\210\344\272\216\350\246\201\350\265\260\350\277\233\345\256\266\345\272\255\344\272\206/index.html" "b/p/3d\347\224\265\345\275\261\347\273\210\344\272\216\350\246\201\350\265\260\350\277\233\345\256\266\345\272\255\344\272\206/index.html" new file mode 100644 index 000000000..76f88a9d9 --- /dev/null +++ "b/p/3d\347\224\265\345\275\261\347\273\210\344\272\216\350\246\201\350\265\260\350\277\233\345\256\266\345\272\255\344\272\206/index.html" @@ -0,0 +1,11 @@ +3D电影终于要走进家庭了 +

3D电影终于要走进家庭了

刚在Solidot看到一则让人兴奋的消息,3D蓝光规格终于敲定,这意味着以后的3D电影可以装进蓝光DVD并在家里播放了,虽然在观看时仍然需要特制的眼镜,但这已经不是问题了,我想,随着技术的发展,很快就能观看不用带3D眼睛的3D电影了。

最酷的是,使用蓝光DVD播放器即可组建家庭3D影院了,当然对显示设备有所要求,不过问题不大,我估计5年之内即可普及了,科技的发展速度实在是让人敬畏。

顺便提醒一下,国内的标准机构是不是也需要与时俱进赶紧制定咱中国人自己的标准呢?嗯?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/a-dream/20071117.png b/p/a-dream/20071117.png new file mode 100644 index 000000000..46ed3b4d5 Binary files /dev/null and b/p/a-dream/20071117.png differ diff --git a/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_120x120_fill_box_smart1_3.png b/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_120x120_fill_box_smart1_3.png new file mode 100644 index 000000000..a1b4b2dad Binary files /dev/null and b/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_120x120_fill_box_smart1_3.png differ diff --git a/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_1600x0_resize_box_3.png b/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_1600x0_resize_box_3.png new file mode 100644 index 000000000..6b1171909 Binary files /dev/null and b/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_1600x0_resize_box_3.png differ diff --git a/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_800x0_resize_box_3.png b/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_800x0_resize_box_3.png new file mode 100644 index 000000000..cf3819bd9 Binary files /dev/null and b/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_800x0_resize_box_3.png differ diff --git a/p/a-dream/index.html b/p/a-dream/index.html new file mode 100644 index 000000000..e63a9a349 --- /dev/null +++ b/p/a-dream/index.html @@ -0,0 +1,11 @@ +A Dream ! +
Featured image of post A Dream !

A Dream !

听说国家大剧院下个月就要正式开演了,而且最低票价只有30元?

要真是30块能去看的话,俺就省吃俭用一阵子,看看到时候能不能去感受一下"艺术的魅力"。

–由sbabybird于11/17/200711:01:00上午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/ai\344\274\232\346\230\257\344\272\272\347\261\273\346\234\200\345\220\216\347\232\204\345\217\221\346\230\216\345\220\227/index.html" "b/p/ai\344\274\232\346\230\257\344\272\272\347\261\273\346\234\200\345\220\216\347\232\204\345\217\221\346\230\216\345\220\227/index.html" new file mode 100644 index 000000000..6e113404f --- /dev/null +++ "b/p/ai\344\274\232\346\230\257\344\272\272\347\261\273\346\234\200\345\220\216\347\232\204\345\217\221\346\230\216\345\220\227/index.html" @@ -0,0 +1,11 @@ +AI会是人类最后的发明吗 +

AI会是人类最后的发明吗

最近在读一本书《我们最后的发明》,作者在书中表达了对人工智能发展的深度担忧。并阐明了一个耸人听闻的观点——人工智能将带来人类的毁灭(比核武器带给人类的伤害要大多了)。

客观来说,目前的人工智能仍然处于较为低级的阶段,只能应用于非常窄的专业领域(专业术语叫ANI,狭义人工智能),如文字处理、语音识别、图像识别、棋类对弈等等。受制于硬件环境的制约,对于这一类技术的研究曾经一度停滞不前,但近些年开始,基于大数据技术和生物技术以“深度学习”为代表的“机器学习”类技术的崛起,给人工智能带来了高速发展的可能。

AlphaGo战胜了人类围棋手已经被说的太多了,举两个其他的例子,大概还是在前年的时候,我研究过一段时间的基于图像识别的文字识别技术,阅读了很多资料,做过一些尝试,发现很难将文字的识别率提升到可以接受的水平,以至于沮丧的认为电脑不可能战胜人脑,因为三岁的小孩就可以轻易的分辨出照片中的动物是一只猫还是一只狗,但是电脑却判断不出来。然而没过多久我就看到新闻,谷歌已经通过“深度学习”技术通过让程序大量的阅读图片(谷歌的数据量很大),使得程序已经可以自动发现在任意图片中的“猫”,而且这还建立在人类从来没有告诉他“猫”这个概念的前提下。就在前几天,谷歌又爆出新闻,通过观看BBC的电视节目,他们的程序已经“学会了”读唇语的技能,而且识别率已经远远高于人类的读唇语专家(从这一点可以看出,电脑一旦某个方面超越人脑,人脑就再也没有机会追赶了)。

这还只是ANI,随着时间的推移,科学家们肯定蠢蠢欲动,开始着手研究AGI(广义人工智能),通用的人工智能,也就是说在智能上各方面均能达到人类的级别,这才是真正意义上的人工智能,也是历代人工智能工作者梦寐以求的结果。

可是有个比喻说的特别好,说通用人工智能就像是一列高速前进的火车,我们站在站台上远远看着它飞速向我们奔跑过来,然而就在赶到我们跟前的那一刹那,火车并没有停歇,而是从我们身边呼啸而过,将我们远远的甩在身后。这个时候的人工智能就是所谓的ASI(超级人工智能)。

而且,据很多持悲观态度的分析人士(如本文所提到《我们最后的发明》一书的作者)所设想,从AGI到ASI的进化时间,要比从我们现在发展到通用人工智能要快的多,根本不是一个数量级,也许我们盯着屏幕眼瞅着我们发明的通用人工智能在短短几分钟内进化成为超级人工智能,然后,剩下的事情,就很难设想了,作者在书中提到了好多可能性,遗憾的是,没有一种可能是对人类有利的。

为什么呢,毕竟是人类创造了它啊?可惜的是,它并没有对创造它的人有什么感激之情,相反,它很可能不再依赖人类,根据自己的决策来处置人类(想想《黑客帝国》吧)。从情感上来说,人类肯定想控制这些智能,并天真的认为可以通过编程手段来处理机器的逻辑判断(这正是我们现在广大软件工程师每天要做的事情),可惜,了解“机器学习”的人都知道,正是因为“机器学习”的“模糊”(输入和输出的因果关系不是通过编程控制的,而是根据统计和概率学习得来的)特性,使得计算机能够自动的找到我们无法通过编程来找到的最优解。

还有一点,也是人类的一道防线,那就是“意识”,作为这颗星球的掌控者,人类骄傲的认为,“意识”是人类独有的东西,因为“意识”是对“思考”的“思考”(元思考?),所以我们认为人工智能再牛,如果没有意识那么也不过是个受人控制的机器而已。可是关于这一点,现在也有很多争论,首先我们自己是不知道意识是怎样诞生的,了解的很少,而且一旦深入研究就会跑到科学、哲学、宗教的汇合点,最后不了了之。

不过,还是有人做出了比较靠谱的设想,今年最火的没有之一的美剧《西部世界》就是一个例子,虽然“人工智能的觉醒”这个概念已经被很多电影和电视剧演绎的有点儿烂了,但是这个剧以及原著小说的关于“觉醒”的设想,让人细思恐极,原来人工智能可以在条件具备的时候完成“意识”的“自举”(Bootstrap?有点儿像拎着自己的头发把自己拎起来的意思)。有兴趣的话,可以自行去网上搜一下关于这个剧的影评,因为自己看可能看不太懂。

不过还是不要太悲观了吧,毕竟已经有越来越多的人意识到这个问题的重要性,也有人开始系统的研究如何通过技术的手段,在研发过程中遵循某种规范和约束来降低智能爆发带来的危险,希望这件事最终像当年的“千年虫”那样能够平滑过渡吧,但愿人类能与超级智能和平相处。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/are-you-the-one\344\273\245\345\217\212\346\265\201\351\274\273\350\241\200/index.html" "b/p/are-you-the-one\344\273\245\345\217\212\346\265\201\351\274\273\350\241\200/index.html" new file mode 100644 index 000000000..84be2cf9e --- /dev/null +++ "b/p/are-you-the-one\344\273\245\345\217\212\346\265\201\351\274\273\350\241\200/index.html" @@ -0,0 +1,11 @@ +《Are You The One》以及流鼻血 +

《Are You The One》以及流鼻血

AreYouTheOne,这是一首好听得不得了的歌曲,来自荷兰WithinTemptation乐队,主唱Sharon绝对是超级女声,有着高亢的声线、鬼魅一般的嗓音。

从听第一遍就喜欢上这首歌儿了,让我停不下来,反复播放,直至流鼻血。曲中3分13秒开始的那一段电吉他solo实在是荡气回肠。

Areyoutheone?你是他么?Thetravellerintimewhohascome.进入我生命的陌生人Tohealmywoundstoleadmetothesun.治愈心伤,播撒阳光Towalkthispathwithmeuntiltheendoftime.结伴走在生命的小路上Areyoutheone?你是他吗Whosparklesinthenightlikefireflies.萤火虫般流彩的目光Eternityofeveningsky.对视,在永恒的夜空Facingthemorningeyetoeye.直至晨曦来到Areyoutheone?你是他吗Who'dsharethislifewithme.与我共度此生Who'ddiveintotheseawithme.与我在深海偎依Areyoutheone?你是他吗Who'shadenoughofpain.受尽创伤Anddoesn'twishtofeeltheshame,anymore.不愿再心伤Areyoutheone?你会是他吗Areyoutheone?你是他吗Who'sloveislikeaflowerthatneedsrain.他的爱是雨中的花朵Towashawaythefeelingofpain.冲去了忧伤Whichsometimescanleadtothechainoffear.不再迷茫彷徨Areyoutheone?你是他吗Towalkwithmeingardenofstars.一起走在群星之下Theuniverse,thegalaxiesandMars.火星,银河,宇宙Thesupernovaofourloveistrue.见证我们爱的迸发

ps:流鼻血可能与这首歌曲无关,这两天比较上火,昨天下班时,看到路边有课桑树,上面结满了熟透了的桑椹,于是我童心顿起,顺手摘了几颗放在嘴里,还挺甜的。

小时候挺爱吃桑椹,到了季节就大把大把的吃,大人总是吵着不让多吃,说吃多了会流鼻血,没想到我昨天刚吃了几颗,今天就流鼻血了。

再ps:从今天开始,北京算是进入真正的夏天了,突然就热了起来,非常热,办公室里热的像蒸笼,空调也不管用,当然,天气这么热也有Intel的功劳,整个电脑机箱热的像是路边烧烤用的碳火炉,再烤下去,晚饭就能吃“烤人腿”了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/blender\347\273\203\344\271\240/index.html" "b/p/blender\347\273\203\344\271\240/index.html" new file mode 100644 index 000000000..f20348b41 --- /dev/null +++ "b/p/blender\347\273\203\344\271\240/index.html" @@ -0,0 +1,11 @@ +Blender练习 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/blogspot\345\217\210\345\260\201\344\272\206/20071110.png" "b/p/blogspot\345\217\210\345\260\201\344\272\206/20071110.png" new file mode 100644 index 000000000..3301966c7 Binary files /dev/null and "b/p/blogspot\345\217\210\345\260\201\344\272\206/20071110.png" differ diff --git "a/p/blogspot\345\217\210\345\260\201\344\272\206/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_120x120_fill_box_smart1_3.png" "b/p/blogspot\345\217\210\345\260\201\344\272\206/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..976f248d1 Binary files /dev/null and "b/p/blogspot\345\217\210\345\260\201\344\272\206/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_120x120_fill_box_smart1_3.png" differ diff --git "a/p/blogspot\345\217\210\345\260\201\344\272\206/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_1600x0_resize_box_3.png" "b/p/blogspot\345\217\210\345\260\201\344\272\206/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_1600x0_resize_box_3.png" new file mode 100644 index 000000000..730eddc3e Binary files /dev/null and "b/p/blogspot\345\217\210\345\260\201\344\272\206/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_1600x0_resize_box_3.png" differ diff --git "a/p/blogspot\345\217\210\345\260\201\344\272\206/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_800x0_resize_box_3.png" "b/p/blogspot\345\217\210\345\260\201\344\272\206/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_800x0_resize_box_3.png" new file mode 100644 index 000000000..ef18d4512 Binary files /dev/null and "b/p/blogspot\345\217\210\345\260\201\344\272\206/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_800x0_resize_box_3.png" differ diff --git "a/p/blogspot\345\217\210\345\260\201\344\272\206/index.html" "b/p/blogspot\345\217\210\345\260\201\344\272\206/index.html" new file mode 100644 index 000000000..3ef0eba72 --- /dev/null +++ "b/p/blogspot\345\217\210\345\260\201\344\272\206/index.html" @@ -0,0 +1,11 @@ +blogspot又封了? +
Featured image of post blogspot又封了?

blogspot又封了?

刚刚好了没几天,访问blogspot又"该页无法显示"了。–由sbabybird于11/10/200703:33:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/diy\344\272\206\344\270\252\347\224\265\345\255\220\347\220\264\345\273\266\351\237\263\350\270\217\346\235\277/index.html" "b/p/diy\344\272\206\344\270\252\347\224\265\345\255\220\347\220\264\345\273\266\351\237\263\350\270\217\346\235\277/index.html" new file mode 100644 index 000000000..2862a9ee9 --- /dev/null +++ "b/p/diy\344\272\206\344\270\252\347\224\265\345\255\220\347\220\264\345\273\266\351\237\263\350\270\217\346\235\277/index.html" @@ -0,0 +1,11 @@ +DIY了个电子琴延音踏板 +

DIY了个电子琴延音踏板

当初买电子琴的时候没有配套买一个踏板,后来练习的时候才知道延音踏板的作用还是十分重要的,嫌麻烦就没有再去买,到网上看看卖的还挺贵,雅马哈原装的要好几百块。

后来我研究了一下,电子琴的延音踏板原理十分简单,就是拿脚一踩就短路而已。

于是就想自己做一个,苦于没有材料,有一阵子我甚至联想到我垃圾桶上的那个踏板能不能拿来做延音踏板(当然不行),后来想到了鼠标,行倒是行,就是“脚感”太差。

今天在家翻抽屉翻出来一个废弃的台灯,发现他的底座挺合适的,于是就卷起袖子开干。原理太简单了,就是拿跟引线从电子琴上接下来,这头接在台灯底座上,台灯的底座经过改造,踩下去就导电,抬起来就断开,试了一下,还真对得起咱这台琴!

请看照片:

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-017b645406d8ced4.jpg" "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-017b645406d8ced4.jpg" new file mode 100644 index 000000000..f5e4a4b0f Binary files /dev/null and "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-017b645406d8ced4.jpg" differ diff --git "a/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-0794a163a8b70d6d.jpg" "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-0794a163a8b70d6d.jpg" new file mode 100644 index 000000000..82147dc55 Binary files /dev/null and "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-0794a163a8b70d6d.jpg" differ diff --git "a/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-1146db9464f3f6e7.jpg" "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-1146db9464f3f6e7.jpg" new file mode 100644 index 000000000..130dc6a10 Binary files /dev/null and "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-1146db9464f3f6e7.jpg" differ diff --git "a/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-77decb38e7ee2063.jpg" "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-77decb38e7ee2063.jpg" new file mode 100644 index 000000000..d96b8eaf1 Binary files /dev/null and "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/25416-77decb38e7ee2063.jpg" differ diff --git "a/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/index.html" "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/index.html" new file mode 100644 index 000000000..a50318043 --- /dev/null +++ "b/p/docker\347\216\257\345\242\203\345\234\250windows\347\263\273\347\273\237\344\270\213\347\232\204\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256/index.html" @@ -0,0 +1,16 @@ +Docker环境在windows系统下的安装与配置 +

Docker环境在windows系统下的安装与配置

背景

配置开发环境是目前我们开发团队在进行开发工作之前的重要工作,对于需要使用我们自己封装的开发框架的java web程序员来说更是如此,一般来说需要配置jdk、mysql、tomcat、maven等一系列基础环境,如果需要使用我们现有的开发框架,还需要配置开发工程的模板、基础服务的访问地址、统一的环境参数等等。这些工作做起来比较繁琐,即使按照开发文档一步一步进行也容易出现差错,而且较为耗费时间。

Docker容器技术的出现使得这一工作得以改进,通过一段时间的研究,我们的底层框架开发人员将以上环境全部使用Docker容器技术制作成为完整的镜像,使得业务开发人员不必再关心这些琐碎工作,只需通过git下载我们的工程模板,通过执行Docker命令自动在本地完成开发环境的构建。

然而由于docker是一个较新的技术,仍有很多开发人员没有接触过,上次我发的文章对于环境的配置描述的并不详细,这次专门针对windows下的开发者如何配置docker环境做一次讲解。如有必要,我将录制专门的视频来讲解。

认识Docker

Docker是一种容器技术,可以在操作系统中隔离出若干个独立的程序运行环境,这些环境既可以共享宿主机的资源,另一方面他们之间相互独立,互不影响,也不会对宿主机的环境产生影响。与虚拟化技术不同的是,Docker比较轻量级,容器(隔离运行环境)的启动和销毁都比较快,这些运行环境可以像现实世界中的集装箱那样,打包成一个一个的镜像,同样的镜像在不同的Docker环境中部署运行将会得到同样的结果,就像同一首歌在不同的播放器播放那样简单。

Docker的出发点是将现在日趋复杂的web应用系统部署变得像播放唱片那样简单,但是它能做的却远不止于此,如果使用得当,我们将可以很容易实现“开发”、“测试”、“生产”环境的完全一致(这在以前是十分困难的),程序员以后也许再也说不出“这功能在我这儿好使”这样的话了。

作为开发者,如果认真思考过以上的问题,当遇到Docker这种容器技术时,应该很容易就想到针对自己工作的改进方案,并且加以利用。比如如果想尝试某一个新技术,以前可能需要在自己工作的操作系统上进行安装,不但配置麻烦,而且存在将自己的系统弄坏的风险(很多人还爱重装系统),现在不同了,只需要下载对应的镜像文件,然后启动容器,即可体验。无论是golang、node、java、python这些程序语言,还是spark、wordpress、tomcat、mysql这种应用环境,都已经有人封装好了即开即用的镜像,随时可以体验,而且用着不爽可以随时清理。

在Windows环境下的安装

如果是在Linux系统下干活,则比较简单,因为Linux已经实现对Docker技术的内核级支持,CentOS的软件仓库自带了Docker最新版,可以直接通过命令安装使用。

对于Windows来说,稍有些困难,但是目前也不是问题了。首先需要看一下你的Windows环境,分两种情况,一种是Windows 10 64位专业版,一种是其他版本(比如很多人仍然推崇的Win 7)。前者可以直接支持安装Docker原生版,性能最好,体验最佳,后者只能使用Docker官方提供的一种过度技术(Docker ToolBox),这种技术不得不依赖Oracle的Virtualbox以在你的系统里创建一个虚拟机用以模拟Linux运行环境,好在封装的比较好,基本可以忽略这个虚拟机的存在,只需专心使用Docker即可。

在Windows 10 64位专业版的安装

这个最简单,需要确定两个基础环境:

  • 你的CPU支持虚拟化(一般都支持,如果在操作系统中没看到,则可以手动到BIOS里打开,如果实在不支持,换台新的电脑吧),具体可以通过任务管理器查看,如图 +cpu.png

  • 你的操作系统需要开启Hyper-V,如图 +hyper-v.png

然后到官方网站下载安装包直接安装即可,有时候可能存在网站被墙的情况,也可以到我上传的网盘里下载,链接在此 https://yunpan.cn/cMRZNp6BaXeEF 访问密码 80e6

非Windows 10 64位专业版(无法使用原生Docker)的安装

这个稍微麻烦,也需要确定两个基础环境:

  • 你的CPU支持虚拟化
  • 你的操作系统需要关闭(注意是关闭!)Hyper-V

然后到官方网站下载安装包,如果网站被墙,可以访问这个地址,也可以到我上传的网盘里下载,链接在此https://yunpan.cn/cMSaWneaYPE5K 访问密码 c8fa

安装过程无特别之处,需要注意的是,如果你的系统内没有安装过Oracle Virtualbox,安装程序会自动给你安装一个,不用理会,直接一直点击“下一步”即可。安装完成后直接点击快捷方式“Docker Quick Start”即可,如果是第一次运行,将会耗费一些时间(因为需要创建虚拟机),在这个过程中,系统可能会弹出若干次UAC提示让你授权,果断点击“同意”即可。

环境的配置和使用

安装完成之后,就可以随意使用了,但是,受国内网络环境的影响,还有一些需要调整,因为在国内访问国外的镜像库(docker默认的那个)比较慢,一般镜像又都比较大(动辄几百兆),所以我们还需要配置一个国内的镜像仓库,推荐DaoCloud或者阿里云的,这里以阿里云举例。

Windows10下的镜像仓库配置

原生的Docker配置比较简单,官方还提供了可视化的配置界面,操作步骤如下:

  • 右键点击系统托盘的Dcoker图标,选择Settings
  • 进入Docker Daemon选项,在右侧窗口填入镜像仓库的地址(可以自行去阿里云申请,我这里有一个示例)
  • 示例如图 +镜像仓库.png

配置完成后,在命令行窗口执行一个拉取镜像的命令(docker pull tomcat)试试看,会发现速度杠杠的。

DockerToolbox镜像仓库的配置

这个略微麻烦一些,不过还可以接受,需要在命令行进行操作:

  • 先执行这个命令(镜像地址可以自行替换)docker-machine ssh default "echo 'EXTRA_ARGS=\"--registry-mirror=https://xks740zc.mirror.aliyuncs.com\"' | sudo tee -a /var/lib/boot2docker/profile"
  • 再执行这个命令 docker-machine restart default 会重启Docker虚拟机
  • 然后执行命令docker-machine ssh default 即可进入docker命令行环境了

关于DockerToolbox的特殊之处

  • 在容器中暴露的应用端口,需要注意,他的访问地址不是你的主机localhost,而是一个虚拟机的ip地址,一般为192.168.99.100,如果你在容器中跑起来一个web程序并且暴露了8080端口,那么想在外面访问的话,地址为http://192.168.99.100:8080 ,如果是win10下的原生docker就会没有这个迷惑,直接localhost了。
  • 共享宿主机的文件给容器,需要注意,我们在使用容器时,一般会通过挂载卷的形式将系统的文件共享给容器使用,对于DockerToolbox来说,它默认给你设置了系统盘的User文件夹具有可以挂载共享文件的能力,也就是说,你需要使用挂载卷的时候,必须确保文件在这个根目录之下(比如放在C:/Users/xxx/Dcouments/xxxx)。 +如果是window10系统的原生docker技术则可通过图形设置界面完成,如图 +share.png
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/dont-cry/index.html b/p/dont-cry/index.html new file mode 100644 index 000000000..b33e86717 --- /dev/null +++ b/p/dont-cry/index.html @@ -0,0 +1,11 @@ +Don't Cry +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2471/index.html" "b/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2471/index.html" new file mode 100644 index 000000000..6deab865b --- /dev/null +++ "b/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2471/index.html" @@ -0,0 +1,13 @@ +eeepc 使用技巧(1) +

eeepc 使用技巧(1)

买了eeepc900一段时间了,翻遍很多论坛,也慢慢摸索一些基本使用技巧,不敢独享,一直想写出来,只是最近工作很忙,加上地震带来的全国性灾难,导致最近几天也没心思去写。

现在,让我整理一下思路,慢慢把经验写下来,也防止我以后会忘记。

eeepc可以安装xp操作系统,但是我喜欢linux,买了eeepc有一半是为了使用linux,所以我不会把他自带的系统干掉然后安装xp系统,windows操作系统我实在是用腻了。

因为只有装了linux系统的机器才能让我感到完全是“自己的”。

eeepc900自带有定制的linux操作系统,而且是基于debian的发行版,哇,有了debian一切都好办了。

debian有强大的apt-get软件包管理系统,但是eeepc的说明书上吓唬我说“用户不能自行安装其他软件”,咳,管他呢,我查了一下,原来是在apt的source.list里没有相应的源而已,而且eeepc里也自带了“新立得软件管理器”只是没放出来而已。

好了,先从“控制台”开始,刚拿到手的时候,我费了老半天的劲儿才找到控制台窗口打开的办法,看来asus实在太担心用户的智商了。答案是按“Ctrl+Alt+T“就能调出控制台,要知道在Lxiux下有了”控制台“才算有了系统的操纵权啊!

由于默认是英文版的,让我先把系统从英文调整到中文吧在控制台输入/opt/xandros/bin/locale_dialog然后在弹出的对话框中选择简体中文,重启机器,就变成中文系统了。

随机带的软件太少了,而且大部分还是给小孩子用的,根本不够我用,本地化之后就我就开始想办法安装软件控制台输入vim/etc/apt/sources.list发现该文件就两行

1
+
debhttp&#58;//update.eeepc.asus.com/p900p900maindebhttp&#58;//update.eeepc.asus.com/p900/enp900main增加如下内容:debhttp&#58;//debian.cn99.com/debianstablemaincontribnon-free
+

然后:wq存盘退出sudoapt-getupdate这样就有了debian的基本源,现在开始使用apt-getinstall疯狂安装想要的软件吧!

由于我这个版本默认的输入法管理器是gcin的,虽然也有拼音输入,但是不符合大陆人的输入习惯,所以我首先要安装scim,在控制台输入sudoapt-getinstallscimscim-chinese,要想使用scim还需要一个软件sudoapt-getinstallim-swich,然后把gcin卸载sudoapt-getinstallgcin-好了,切换到scim吧,输入sudoim-switch-sscim然后重启机器,输入法管理器就变成scim啦!

唉,eeepc的键盘实在是太小了,在上面打字实在是太累,先写这么多,估计也就有十分之一吧,剩下的以后再慢慢写。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2472/index.html" "b/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2472/index.html" new file mode 100644 index 000000000..8c0a22e3c --- /dev/null +++ "b/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2472/index.html" @@ -0,0 +1,11 @@ +eeepc 使用技巧(2) +

eeepc 使用技巧(2)

接着昨天的继续,系统修改为中文了,软件源设好了,输入法也装好了,接下来就想看看小e(姑且把我的eeepc叫做小e)的多媒体性能咋样儿了(其实就是看看能不能看片儿)。

小e自带有mplayer以及前端的SMPlayer,播放一般视频(mpeg、wmv)效果挺不错,遗憾的是还不能播放rmvb,上网查了一下原来是缺少相应的解码包,

于是乎,就找到了这个win32codecs下载后将这个压缩包解压后的内容放到/usr/lib/codecs下即可,系统默认并没有codecs这个文件夹,需要手动创建sudomkdir/usr/lib/codecs,然后复制cp/home/user/win32codecs/*/usr/lib/coecs。

好了,在命令行输入mplayer/home/user/*.rmvb-f-z很流畅的画面就出现了,此时的-f和-z参数分别代表全屏和自动缩放画面到窗口大小。然后我又尝试播放了一下720p的高清视频(wmv格式),小e也能轻松胜任,画面很清晰,也很流畅,看来mplayer这个软件写的很棒,虽然是命令行格式的,但是我喜欢。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2473vim\346\220\255\345\273\272c\345\274\200\345\217\221\347\216\257\345\242\203/index.html" "b/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2473vim\346\220\255\345\273\272c\345\274\200\345\217\221\347\216\257\345\242\203/index.html" new file mode 100644 index 000000000..cb3117fa2 --- /dev/null +++ "b/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2473vim\346\220\255\345\273\272c\345\274\200\345\217\221\347\216\257\345\242\203/index.html" @@ -0,0 +1,11 @@ +eeepc 使用技巧(3)vim搭建c开发环境 +

eeepc 使用技巧(3)vim搭建c开发环境

今天继续记录eeepc的使用经验,闲言碎语不要讲,说一说如何安装c、c++开发环境以及在vim下进行编程。

安装开发环境很简单,不用单个安装gcc、make什么的,只需sudoapt-getinstallbuild-essential,这里面就什么都包含了(gcc、g++、gdb、make等)。

然后就找个合适的编辑器吧,系统自带vim,vim太强大了,这里不能多说(我也是刚开始用它),但是只有最基本的编辑功能,要想比较方便地进行开发需要安装如下vim插件:ctags、Taglist、supertab、c.vimctags其实不算是插件,算是单独的程序,用来生成vim能识别的标签文件,这样在vim写代码时就可以进行函数、变量、枚举类型之间快速定位了。

taglist可以在vim窗口的左侧生成一个tags列表,里面就是用ctags生成那些标签,方便随时定位到这些标签supertab是个增强版的代码补齐插件,写代码时按tab键可以弹出自动补齐列表供选择,如“p”可以自动补齐为“printf”c.vim是进行c、c++编程时的必备插件,能使vim变成一个为开发c语言定制的一个ide,拥有自动注释、F9编译,自动补全等强大功能。

插件装好后,在vim的vimrc文件里需要加上syntaxon这样每次启动vim时,它的语法高亮功能就自动打开了。

写一段代码试试看vimhelloworld.c#include<stdio.h&gt;intmain(){printf("helloworld");return0;}:wq退出编译:gcchelloworld.c-ohelloworld

运行:./helloworld

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2474-\347\234\213\347\224\265\350\247\206/index.html" "b/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2474-\347\234\213\347\224\265\350\247\206/index.html" new file mode 100644 index 000000000..50d7a0399 --- /dev/null +++ "b/p/eeepc-\344\275\277\347\224\250\346\212\200\345\267\2474-\347\234\213\347\224\265\350\247\206/index.html" @@ -0,0 +1,157 @@ +eeepc 使用技巧(4) 看电视 +

eeepc 使用技巧(4) 看电视

用小e在床头看电视在合适不过了,不过我没找到Linux下的网络电视软件。

找来找去,发现一些可以用mplayer播放的mms链接,试了一下效果还不错,几个著名的电视台都有对应的链接,比如:

凤凰卫视中文台mms://58.22.96.10/litv01;

凤凰卫视资讯台mms://58.22.96.10/litv03;

但是我的mplayer是基于命令行的,每次要看电视的时候还需把这些链接输入进去,感觉很不方便。

刚好这两天对Python这个脚本语言比较感兴趣,于是想用Python写一个脚本来帮我输入这些链接。

由于对Python还不熟,所以写的界面很丑,不过也够我用了。

具体思路是,将这些链接首先存入一个文本文件里保存为channel.data,

内容如下:

1
+2
+3
+4
+5
+6
+7
+8
+
凤凰卫视中文台|mms&#58;//58.22.96.10/litv01;
+凤凰卫视资讯台|mms&#58;//58.22.96.10/litv03;
+东风卫视|mms&#58;//58.22.96.10/litv07;
+精品影院|mms&#58;//218.1.70.72&#58;
+1755/JingPinYingYuan;
+东方卫视|mms&#58;//live.smgbb.cn/dfws;
+星空卫视|mms&#58;//58.22.96.10/litv06;
+TVB8|mms&#58;//58.22.96.10/litv05;
+

然后写一个python脚本读取这些链接并将电视台的名称填入界面中的一个列表框里,到时候通过点击名称就可以播放了。

python脚本内容如下:

 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
+
#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+
+from tkinter import *
+import os
+import string
+
+class Application(Frame):
+    clist = list({})
+
+    def play_channel(self, channel_url):
+        strcmd = 'mplayer ' + channel_url + ' -cache 1024'
+        str_output = os.popen(strcmd).read()
+        a = str_output.split("\\")
+
+        for bin_a in a:
+            print(bin_a)
+
+        print(channel_url)
+
+    def play_tv(self):
+        print(self.clist[int(self.channellistbox.curselection()[0])])
+        self.play_channel(self.clist[int(self.channellistbox.curselection()[0])])
+
+    def init_channel_list(self, listbox):
+        channel_file = open('tvchannel.dat', 'r')
+        channel_info = channel_file.readlines()
+        channel_file.close()
+
+        for i in range(len(channel_info)):
+            channel_list = channel_info[i].split(';')
+            for j in range(len(channel_list)):
+                channel = channel_list[j].split('|')
+                channel_name = channel[0]
+                channel_url = channel[1]
+                listbox.insert(END, channel_name)
+                self.clist.append(channel_url)
+
+    def create_widgets(self):
+        self.quit_button = Button(self)
+        self.quit_button["text"] = "Quit"
+        self.quit_button["command"] = self.quit
+        self.quit_button["width"] = 30
+        self.quit_button["height"] = 10
+        self.quit_button.pack({"side": "left"})
+
+        self.play_tv_button = Button(self)
+        self.play_tv_button["text"] = "Play TV"
+        self.play_tv_button["command"] = self.play_tv
+        self.play_tv_button["width"] = 30
+        self.play_tv_button["height"] = 10
+        self.play_tv_button.pack({"side": "left"})
+
+        self.channellistbox = Listbox(self)
+        self.init_channel_list(self.channellistbox)
+        self.channellistbox.selection_set(0)
+        self.channellistbox.pack()
+
+    def __init__(self, master=None):
+        Frame.__init__(self, master)
+        self.pack()
+        self.create_widgets()
+
+app = Application()
+app.mainloop()
+

保存为playtv.py,和刚才那个channel.dat放在一个目录,运行即可(python./playtv.py)。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/every-night-in-beijing-\346\210\221\345\212\236\344\272\206\346\232\202\344\275\217\350\257\201/index.html" "b/p/every-night-in-beijing-\346\210\221\345\212\236\344\272\206\346\232\202\344\275\217\350\257\201/index.html" new file mode 100644 index 000000000..943ee8fe7 --- /dev/null +++ "b/p/every-night-in-beijing-\346\210\221\345\212\236\344\272\206\346\232\202\344\275\217\350\257\201/index.html" @@ -0,0 +1,11 @@ +Every Night In Beijing 我办了暂住证 +

Every Night In Beijing 我办了暂住证

EveryNightInBeijing我办了暂住证为了迎接今年的奥运会,北京最近开展了“依法登记办证,共创平安奥运”专项活动,所有来京的暂住一个月以上、16岁以上的人员,都要依法主动到暂住地派出所办理暂住证,否则….

作为一个外地来北京需要“暂住”超过一个月而且16岁以上的民工,我当然得积极相应,虽然今天是周末我还是起了个大早(其实周末早起是我的坏毛病之一),带齐了证件前往派出所去排队,没办法,现在办这个的人太多,办个暂住证比买春运的火车票还难,听说有人带着干粮半夜就前去排队了。

到了地方一看,嚯!果然是“peoplemountainpeoplesea”,我拿出春运买票劲头,费了两个小时的吹灰之力,终于挤到柜台前(以前没去过派出所,姑且就叫柜台吧),刚要用颤抖的双手递上证件,只听得“啪…啪…”两声,来自工作人员拍打的键盘,伴随着一句地道的好莱坞英语:“oh!shit!”

然后曰:“网断了!”我真是百感交集,有一种想扁人的冲动,但是看他们手忙脚乱地样子又想到这儿是派出所,也就没忍心发作。

时间一分一秒地过去,办证的队伍快排到门外,终于其中一位工作人员大喊一声:“我找到了!”

这一嗓子喊的不亚于老阿(阿基米德)想当年那架势。

原来是哪位仁兄不小心踢掉了交换机的电源,网线都断了,插上之。

终于办完了,赶紧揣进怀里,生怕过来几个人把它给撕了,然后把我送去锻炼身体。

“EveryNightInBeijing我要去办暂住证不敢在午夜问路,怕走到了采石场EveryNightInBeijing你可别喝太多酒把酒高歌的男儿,也得去办暂住证……”本故事纯属虚构,如有雷同,那实在是巧合

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/geany\344\270\215\351\224\231\347\232\204ide/index.html" "b/p/geany\344\270\215\351\224\231\347\232\204ide/index.html" new file mode 100644 index 000000000..77ec396ec --- /dev/null +++ "b/p/geany\344\270\215\351\224\231\347\232\204ide/index.html" @@ -0,0 +1,11 @@ +Geany,不错的IDE +

Geany,不错的IDE

前两天在试用Slitaz的时候发现其中带的Geany是个不错的IDE(想想吧,Slitaz才不到30M的身材竟然还带了个开发环境),Geany轻巧快捷,功能齐全,具备基本的代码高亮和自动补全功能,用来写python脚本真是个不错的选择。

难能可贵的是其还支持插件扩展(这年头要是拿出个软件还不支持扩展就真不好意思和人家打招呼)。

当然了,就编辑功能来说有些弱,但是作为Slitaz这个小巧系统下的开发环境真是再合适不过了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/gitlab\347\232\204\350\213\245\345\271\262\344\275\277\347\224\250\346\212\200\345\267\247/index.html" "b/p/gitlab\347\232\204\350\213\245\345\271\262\344\275\277\347\224\250\346\212\200\345\267\247/index.html" new file mode 100644 index 000000000..906d0c963 --- /dev/null +++ "b/p/gitlab\347\232\204\350\213\245\345\271\262\344\275\277\347\224\250\346\212\200\345\267\247/index.html" @@ -0,0 +1,11 @@ +gitlab的若干使用技巧 +

gitlab的若干使用技巧

gitlab是一个开源的git服务软件,与大名鼎鼎的github所提供的功能类似,适合企业或团队搭建属于自己的在线git仓库。

近期我给自己所在的开发团队也搭建了一个gitlab,经过一段时间的试用,反应效果良好,具备发展成为自有开发社区的潜力。摸索了若干的使用技巧给初使用者:

1、尽量使用ssh协议访问仓库。gitlab默认给仓库提供两种访问方式,一种是https,一种是ssh,前者使用简单但是遇到文件较多或较大时容易出现问题(由于HTTP协议导致),后者则是配置上略复杂但是一旦设置好一劳永逸,可以免密码登录。

2、利用分组(Groups)管理权限,有时候项目比较大,往往一个项目下包含多个开发工程,如果分别给参与这些工程的人员进行授权的话,比较繁琐,而利用Groups分组的功能,可以将若干个项目成员放入同一个分组,这样此分组的git工程将自动继承分组的权限设置,只需要设置一次即可,如果有特例仍然可以在具体的git工程下进行特殊设置,比较灵活。

3、善用Markdown写文档,每一个工程下面都应该有一个以readme.md命名的markdown格式文档,用于详细说明这个工程的信息,可以图文并茂,超链接到其他的文档,以及包含代码片段并进行语法高亮,gitlab系统会自动在该项目的主页中渲染这个文件,这样当别人第一次进入这个项目时就可以迅速了解这个工程了。

4、利用评论(comment)进行代码评审(code review),每当有人进行了提交之后,在系统的信息流上都可以看到这个提交的具体改动,作为项目技术负责人可以及时的了解提交情况,并针对此次提价的代码修改内容进行评论,可以细化到每一行,评论的信息系统会自动发送邮件给相关负责人,可以重复利用这个特性来做代码评审。

5、保护master分支,git工程的master分支一般比较重要,可以通过设置将master分支保护起来,使得只有具有高权限的人员才能推送到该分支,而一般开发者将自己的成果提交到普通分支,经过代码评审后再由技术负责人将分支合并。

6、善用代码片段(Snippets)分享功能,gitlab系统也提供了代码片段分享功能(类似于github的gist),每个人都可以将自己常用的代码片段保存到系统并分享给大家,比自己留在本地电脑上要方便很多,而且能发挥这些片段的最大价值。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/git\345\267\245\345\205\267\347\233\270\345\205\263\351\223\276\346\216\245/index.html" "b/p/git\345\267\245\345\205\267\347\233\270\345\205\263\351\223\276\346\216\245/index.html" new file mode 100644 index 000000000..f32a0c128 --- /dev/null +++ "b/p/git\345\267\245\345\205\267\347\233\270\345\205\263\351\223\276\346\216\245/index.html" @@ -0,0 +1,11 @@ +Git工具相关链接 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/goodbye2009hello2010/index.html b/p/goodbye2009hello2010/index.html new file mode 100644 index 000000000..19d3cc4e6 --- /dev/null +++ b/p/goodbye2009hello2010/index.html @@ -0,0 +1,11 @@ +goodbye2009,hello2010 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/hello-android/20071114-1.PNG b/p/hello-android/20071114-1.PNG new file mode 100644 index 000000000..db674d2d5 Binary files /dev/null and b/p/hello-android/20071114-1.PNG differ diff --git a/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_120x120_fill_box_smart1_3.PNG b/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_120x120_fill_box_smart1_3.PNG new file mode 100644 index 000000000..e377f1bc8 Binary files /dev/null and b/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_120x120_fill_box_smart1_3.PNG differ diff --git a/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_1600x0_resize_box_3.PNG b/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_1600x0_resize_box_3.PNG new file mode 100644 index 000000000..c21c1af35 Binary files /dev/null and b/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_1600x0_resize_box_3.PNG differ diff --git a/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_800x0_resize_box_3.PNG b/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_800x0_resize_box_3.PNG new file mode 100644 index 000000000..9a51902a8 Binary files /dev/null and b/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_800x0_resize_box_3.PNG differ diff --git a/p/hello-android/index.html b/p/hello-android/index.html new file mode 100644 index 000000000..4966ed0b3 --- /dev/null +++ b/p/hello-android/index.html @@ -0,0 +1,11 @@ +Hello, Android! +
Featured image of post Hello, Android!

Hello, Android!

到家后立即下载Android的SDK,按照帮助文档的提示,顺利运行伟大的"HelloWorld!"

–由sbabybird于11/14/200709:14:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/hello-world/index.html b/p/hello-world/index.html new file mode 100644 index 000000000..d64a73249 --- /dev/null +++ b/p/hello-world/index.html @@ -0,0 +1,12 @@ +Hello World! +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/if-you-want-me/20090327.jpg b/p/if-you-want-me/20090327.jpg new file mode 100644 index 000000000..88c5b801a Binary files /dev/null and b/p/if-you-want-me/20090327.jpg differ diff --git a/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_120x120_fill_q75_box_smart1.jpg b/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_120x120_fill_q75_box_smart1.jpg new file mode 100644 index 000000000..5ec521d7a Binary files /dev/null and b/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_120x120_fill_q75_box_smart1.jpg differ diff --git a/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_1600x0_resize_q75_box.jpg b/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_1600x0_resize_q75_box.jpg new file mode 100644 index 000000000..003dc6951 Binary files /dev/null and b/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_1600x0_resize_q75_box.jpg differ diff --git a/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_800x0_resize_q75_box.jpg b/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_800x0_resize_q75_box.jpg new file mode 100644 index 000000000..768dde466 Binary files /dev/null and b/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_800x0_resize_q75_box.jpg differ diff --git a/p/if-you-want-me/index.html b/p/if-you-want-me/index.html new file mode 100644 index 000000000..1780003c1 --- /dev/null +++ b/p/if-you-want-me/index.html @@ -0,0 +1,11 @@ +if you want me +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/javascript\344\271\237\345\217\257\344\273\245mapreduce/index.html" "b/p/javascript\344\271\237\345\217\257\344\273\245mapreduce/index.html" new file mode 100644 index 000000000..0e65380ea --- /dev/null +++ "b/p/javascript\344\271\237\345\217\257\344\273\245mapreduce/index.html" @@ -0,0 +1,11 @@ +Javascript也可以MapReduce +

Javascript也可以MapReduce

想不想用做一下大数据试验?不需要各种复杂的理论,你只需要使用Javascript即可。近期我研究了一下Javascript语言自带的map、reduce、filter等方法,尝试一下如何使用MapReduce的思路统计我工作日志中各种词汇出现的频率,也算是一个轻量级的“大数据”“挖掘”试验了。

下面举个例子,使用的数据源是我六年多的工作日志,大概两千篇,三万六千多行。使用nodejs环境运行javascript,实际上完全可以在浏览器里运行,nodejs操作文件比较方便,为了省事,直接nodejs吧。要想将中文单词从语句中分离出来需要编写中文分词代码,但是由于不是本例研究重点,咱直接使用nodejieba(一个中文分词库,使用方便,执行效率也挺不错)。

具体思路如下:

1、打开工作日志文件(txt),将每一行的内容存入一个数组,得到一个存满字符串的数组;

2、将每一行的字符串使用中文分词库进行分割,得到一个个中文单词(当然日志中也有英文和数字);

3、使用reduce方法全部汇总到一个数组里,此时单词是全部的有重复的数据;

4、再次使用reduce方法将单词汇总到一个包含两个数组的数组,其中之一保存去重后的单词,另外一个保存与之对应的单词计数;

5、再次使用reduce方法,变换数组为二维数组,第一列为单词,第二列为与之对应的单词的个数;

6、将结果写入文件;

经过统计,我这些年的工作日志出现的中文单词频率从高到底的前几名分别是:工作(4269次)、和(3781次)、我(2919次)、在(2703次)、完成(2304次)、任务(2254次)。连起来读也挺有意思的。

还有些比较有意思的,“问题”出现967次,“可以”出现1095次,看来办法总比问题多啊。

说起来好像比较抽象,还是放代码比较直接:

var fs = require(‘fs’);

var nodejieba = require(“nodejieba”);

nodejieba.load();

fs.readFile(‘work.txt’, ‘utf8’, function (err, data) {

if (err) {

console.log(err);

}

var strs = data.split(’\n’) // 先将读入的日志按照行分为一个书组

.reduce(function (last, now) {

nodejieba.cut(now).forEach(function (word) {

last.push(word);

});

return last;

}, []) // 通过reduce将每行的单词分出来,最终汇总成为一个包含全部单词的数组(有重复)

.reduce(function (last, now) {

var index = last[0].indexOf(now);

if (index === -1) {

last[0].push(now);

last[1].push(1);

} else {

last[1][index] += 1;

}

return last;

}, [[], []]) // 统计单词的个数,数组第一个元素为存放单词的数组,第二个元素为存放对应单词个数的数组

.reduce(function (last, now, index, context) {

var zip = [];

last.forEach(function (word, i) {

zip.push([word, context[1][i]])

});

return zip;

}); // 变换数组,变成二维数组,第一列为单词,第二列为单词对应的个数,没有传递给reduce第二个参数,默认为数组的第一个元素

var stream = fs.createWriteStream(“count.txt”);

stream.once(‘open’, function (fd) {

strs.forEach(function (word) {

stream.write(word[0] + ‘,’ + word[1] + ‘\n’);

})

stream.end();

});

});

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/life-is-short/index.html b/p/life-is-short/index.html new file mode 100644 index 000000000..521f96a13 --- /dev/null +++ b/p/life-is-short/index.html @@ -0,0 +1,11 @@ +life-is-short +

life-is-short

工作总结写的头昏脑涨,换换脑子。

每年的这个时候最容易引发各种感慨,年底,除了工作上需要总结之外,生活上也应该进行一次梳理,回顾这一年的体验,感受了多少幸福,经历了哪些痛苦,吃了什么,玩了什么,读了什么,写了什么,看了什么,听了什么,喝过几次断片儿,摔了几个手机,额。

可以总结,但不要陷入对回忆的感慨,应该以积极的心态去整理。现在流行一种病,缅怀青春,而且怀起来各种哀怨,哀怨声中尽情的去体验那种令人愉悦的忧伤,仿佛只有过去的才是美好的,对于未来和现在则是一脸迷茫。而且我发现这种行为有越来越年轻化的趋势,比如,金妍昨天跟我抱怨说,自从上了小学,压力很大,好怀念小时候,于是我给她买了个带奶嘴的水壶(简直行为艺术)。

去年过年的时候,我回老家,跟我妈抱怨,说时间过的飞快,转眼又是一年,感觉没干啥balabala。我妈没有拿爱因斯坦相对论那一套唬我,而是轻蔑的一笑,说,你之所以感到时间过得很快,可能是因为你的生活还很轻松快乐,过的不艰难,对于那些每天还在担心如何吃饱饭的人来说,可能就没那么快了。我竟无言以对。

我也有我的解释。我认为,随着生活阅历的增加,我们对于新鲜事物的敏感度越来越低,小的时候对于任何事物都很好奇,大脑无时不刻都在感受新东西,所以45分钟的课堂才显得那么难熬。到了对于任何东西都有了自己的认识之后,看啥都没那么新鲜了,所以才觉的时间飞快,感叹白驹过隙,光阴真荏苒。就连子都曾经站在川上曰:「逝者如斯夫,不舍昼夜。」

看来,life不是线性的,是一个加速过程,笑。

#我准备抽时间做一下2015年的个人总结#

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/live-space-\347\232\204\350\241\250\347\216\260\350\256\251\346\210\221\345\276\210\345\244\261\346\234\233/index.html" "b/p/live-space-\347\232\204\350\241\250\347\216\260\350\256\251\346\210\221\345\276\210\345\244\261\346\234\233/index.html" new file mode 100644 index 000000000..cef2cd614 --- /dev/null +++ "b/p/live-space-\347\232\204\350\241\250\347\216\260\350\256\251\346\210\221\345\276\210\345\244\261\346\234\233/index.html" @@ -0,0 +1,11 @@ +live space 的表现让我很失望 +

live space 的表现让我很失望

不知是不是因为升级还没有进行完成,最近livespaces总是不能正常操作,用firefox访问有时还会出现乱码或者页面布局乱套,速度慢的惊人,资源占用很厉害。

再加上他有太多的限制,这些问题都让我感到对livespace失望透顶。

衷心希望Googleblogger能够早日解封!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/livespace-\347\234\237\351\232\276\347\224\250/index.html" "b/p/livespace-\347\234\237\351\232\276\347\224\250/index.html" new file mode 100644 index 000000000..ede3bc7d0 --- /dev/null +++ "b/p/livespace-\347\234\237\351\232\276\347\224\250/index.html" @@ -0,0 +1,11 @@ +livespace 真难用 +

livespace 真难用

同样是使用电子邮件发布的一篇博客,发布到blogger的效果比法在livespace里的效果要好,昨天发了一张图片,blogger那边简直是又好又快,显示的还是原始大小,到了msnspace这边,给我整成了一个只有指甲盖大小的缩略图!您要问为什么放着好好的blogger不用,反而还在这贱兮兮的说livespace的坏话?

答案是,中国大陆无法正常使用blogger的服务,为什么不能正常使用呢?

答案不是因为人家歧视咱,而是@#¥%@#¥%@#¥%。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.1/index.html" "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.1/index.html" new file mode 100644 index 000000000..f9a38b9a9 --- /dev/null +++ "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.1/index.html" @@ -0,0 +1,103 @@ +SICP 课后练习题1.1 +

SICP 课后练习题1.1

练习1.1 下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的。

 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
+
10
+;Value: 10
+
+(+ 5 3 4)
+;Value: 12
+
+(- 9 1)
+;Value: 8
+
+(/ 6 2)
+;Value: 3
+
+(+ (* 2 4) (- 4 6))
+;Value: 6
+
+(define a 3)
+;Value: a
+
+(define b (+ a 1))
+;Value: b
+
+(+ a b (* a b))
+;Value: 19
+
+(= a b)
+;Value: #f
+
+(if (and (> b a) (< b (* a b)))
+b
+a)
+;Value: 4
+
+(cond ((= a 4) 6)
+((= b 4) (+ 6 7 a))
+(else 25))
+;Value: 16
+
+(+ 2 (if (> b a) b a))
+;Value: 6
+
+(* (cond ((> a b) a)
+((< a b) b)
+(else -1))
+(+ a 1))
+;Value: 16
+

练习1.1的内容比较简单,基本上直接就可以计算出表达式的值,所有表达式都可以在mit-scheme的交互解释器里进行验证。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.2/index.html" "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.2/index.html" new file mode 100644 index 000000000..6d15e6ca9 --- /dev/null +++ "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.2/index.html" @@ -0,0 +1,35 @@ +SICP 课后练习题1.2 +

SICP 课后练习题1.2

练习1.2 请将下面表达式变换为前缀形式:

$$ \frac{5+4+\Bigl(2-\Bigl(3-\left(6+\frac{4}{5}\right)\Bigr)\Bigr)}{3\left(6-2\right)\left(2-7\right)} $$

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+
(/ (+ 5
+4
+(- 2
+(- 3
+(+ 6 (/ 4 5)))))
+(* 3
+(- 6 2)
+(- 2 7)
+))
+
+;Value: -37/150
+

练习1.2,直接将数学表达式转换为前序表达式即可,在写的时候可以遵循一下排版规则,即同一个运算符的表达式垂直对齐。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.3/index.html" "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.3/index.html" new file mode 100644 index 000000000..1bd6b5d2d --- /dev/null +++ "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.3/index.html" @@ -0,0 +1,29 @@ +SICP 课后练习题1.3 +

SICP 课后练习题1.3

练习1.3 请定义一个过程,它以三个数为参数,返回其中较大两个数之和。

1
+2
+3
+4
+5
+6
+7
+8
+
    (define (max-three-number a b c)
+            (if (> a b)
+            (if (> b c) (+ a b) (+ a c))
+            (if (> a c) (+ b a) (+ b c))))
+    
+    (max-three-number 42 7 1)
+
+    ;Value: 49
+

练习1.3,解决此练习中问题的方法比较多,本答案使用比较朴素的方法,先比较出最大的两个数字,然后将其相加,对于三个数字来说,先在前两个中选取一个大的,然后将其与后面两个中比较大的那一个相加。还有一种思路就是可以先定义出比较大小的方法,然后再调用之,或者先对数字按从小到大排序然后加最后两个,等等。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.4/index.html" "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.4/index.html" new file mode 100644 index 000000000..d28f1733d --- /dev/null +++ "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.4/index.html" @@ -0,0 +1,35 @@ +SICP 课后练习题1.4 +

SICP 课后练习题1.4

练习1.4 请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型,根据对这一模型的认识描述下面过程的行为。

1
+2
+
    (define (a-plus-abs-b a b)
+            ((if (> b 0) + -) a b))
+

练习1.4,通过if判断,根据b的值决定对a b所使用的运算符是+还是-,如果b大于0,则组合式为(+ a b),反之则为(- a b),所以组合式结果永远返回a加上b的绝对值。

1
+2
+3
+4
+5
+6
+7
+8
+9
+
    (define (a-plus-abs-b a b)
+      ((if (> b 0) + -) a b))
+    ;Value: a-plus-abs-b
+
+    (a-plus-abs-b 4 2)
+    ;Value: 6
+
+    (a-plus-abs-b 4 -2)
+    ;Value: 6
+
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.5/index.html" "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.5/index.html" new file mode 100644 index 000000000..3f7534817 --- /dev/null +++ "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.5/index.html" @@ -0,0 +1,27 @@ +SICP 课后练习题1.5 +

SICP 课后练习题1.5

练习1.5 Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用哪种序求值,是采用应用序,还是正则序。他定义了下面两个过程

1
+2
+3
+4
+5
+6
+
    (define (p) (p))
+    
+    (define (test x y)
+      (if (= x 0)
+          0
+          y))
+

而后他求值下面的表达式:

1
+
    (test 0 (p))
+

如果某个解释器采用的是应用序求值,Ben会看到什么样的情况?如果解释器采用正则序求值,他又会看到什么情况?请对你的回答做出解释。(无论采用正则序或者应用序,假定特殊形式if的求值规则总是一样的。其中的谓词部分先行求值,根据其结果确定随后求值的子表达式部分。)

练习1.5 『完全展开而后规约』的求值模型为正则序求值,『先求值参数而后应用』的方式为应用序求值,因此,在应用序求值的模式下,执行(test 0 (p))时会先求(p)这个表达式的值,而根据定义(define (p) (p))执行(p)会造成递归调用,解释器陷入死循环。而在正则序求值模式下,会先展开test过程,根据需要再决定是否执行(p),在本例中,由于传入的x等于0,所以(p)不会被执行,因此不会陷入死循环。

所以,根据以上分析,如果解释器采用的是应用序求值,则解释器陷入死循环,如果是采用正则序求值,则解释器输出;Value: 0

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.6/index.html" "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.6/index.html" new file mode 100644 index 000000000..e4cf9e17c --- /dev/null +++ "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.6/index.html" @@ -0,0 +1,121 @@ +SICP 课后练习题1.6 +

SICP 课后练习题1.6

采用牛顿法求平方根的过程如下。开始时,我们有了被开方数的值(现在需要做的就是算出它的平方根)和一个猜测值。如果猜测值已经足够好了,有关工作也就完成了。如若不然,那么就需要改进猜测值(求出猜测值与被开方数除以猜测值的平均值),并重复这个计算过程。具体编写代码如下(在MIT scheme解释器中)。

定义sqrt-iter过程,与上述描述完全对应。

1
+2
+3
+4
+5
+6
+7
+
    1 ]=> (define (sqrt-iter guess x)
+        (if (good-enough? guess x)
+            guess
+            (sqrt-iter (improve guess x)
+                       x)))
+                       
+    ;Value: sqrt-iter
+

定义改进猜测值的过程improve,返回猜测值与被开方数除以猜测值的平均值。

1
+2
+3
+4
+
    1 ]=> (define (improve guess x)
+            (average guess (/ x guess)))
+
+    ;Value: improve
+

定义求平均数的过程average

1
+2
+3
+4
+
    1 ]=> (define (average x y)
+            (/ (+ x y) 2))
+
+    ;Value: average
+

定义判断猜测值是否足够好的过程good-enough?

1
+2
+3
+4
+
    1 ]=> (define (good-enough? guess x)
+        (< (abs (- (square guess) x)) 0.001))
+
+    ;Value: good-enough?
+

定义求绝对值和平方的过程

1
+2
+3
+4
+5
+6
+7
+8
+
    1 ]=> (define (abs x)
+            (if (< x 0) (- x) x))
+
+    ;Value: abs
+
+    1 ]=> (define (square x) (* x x))
+
+    ;Value: square
+

定义最上层的过程,用于启动整个工作(使用1这个数字作为任何数的初始猜测值)。

1
+2
+3
+4
+
    1 ]=> (define (sqrt x)
+            (sqrt-iter 1.0 x))
+
+    ;Value: sqrt
+

执行sqrt过程,并以9为参数,求得平方根为3

1
+2
+3
+
    1 ]=> (sqrt 9)
+
+    ;Value: 3.00009155413138
+

练习1.6 Alyssa P.Hacker看不出来为什么需要将if提供为一种特殊形式,她问:“为什么我不能直接通过cond将它定义为一个常规过程呢?”Alyssa的朋友Eva Lu Ator断言确实可以这样做,并定义了if的一个新版本:

1
+2
+3
+4
+5
+
    1 ]=> (define (new-if predicate then-clause else-clause)
+        (cond (predicate then-clause)
+              (else else-clause)))
+
+    ;Value: new-if
+

Eva给Alyssa演示她的程序:

1
+2
+3
+4
+5
+
    (new-if (= 2 3) 0 5)
+    5
+    
+    (new-if (= 1 1) 0 5)
+    0
+

她很高兴地用自己的new-if重写了求平方根的程序:

1
+2
+3
+4
+5
+6
+7
+
    1 ]=> (define (sqrt-iter guess x)
+        (new-if (good-enough? guess x)
+                guess
+                (sqrt-iter (improve guess x)
+                           x)))
+
+    ;Value: sqrt-iter
+

当Alyssa试着用这个过程去计算平方根时会发生什么事情呢?请给出解释。

解答:

这个练习引入了一个新的思考,刚开始时,我以为是牵涉到了过程的局部参数概念,因为在新编写的new-if过程中,看似可以完成条件判断并返回正确的值,但是在本例中使用却存在问题,即在递归调用sqrt-iter时,传给该过程的guessxnew-if的局部参数,被返回给了new-if这个过程,不会向上返回到上一层sqrt-iter里,这样就导致了改进的猜测值永远不会被使用,使得这个计算过程永远不会结束(除非第一个猜测值恰好合适),从而导致递归调用的陷入无限循环。我在MIT-scheme解释器里的执行结果是,解释器自动退出并提示我递归调用深度超出最大值。

上述看起来是合理的,但是后来我考虑了其他情况,及本书在前面章节里提到了if(if <predicate> <consequent> <alternative>)语句是条件表达式的受限形式,在执行时,先判断predicate是否为真,然后根据结果只执行其后consequent/alternative中的一个。如果使用本例新定义的new-if则作为普通过程执行,传入的参数会因为解释器使用应用序求值的原因,两个表达式都会被立即求值,反应到本例中就是guess(sqrt-iter (improve guess x) x)都会被立即求值,后面的那句是属于递归调用,这样也会导致改进的猜测值永远不会被使用,陷入无限层的递归调用中。

1
+2
+3
+
    1 ]=> (sqrt 9)
+
+    ;Aborting!: maximum recursion depth exceeded
+

思考:

最初的时候,我的针对此题的思考方式是变量的作用域问题(可能lisp不会有此问题),后来发现,也许不是这样,而是由于对传入参数立即求值导致的,后续的网上搜索结果也显示出大家的答案都倾向于后者。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.7/index.html" "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.7/index.html" new file mode 100644 index 000000000..0ed207d31 --- /dev/null +++ "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.7/index.html" @@ -0,0 +1,55 @@ +SICP 课后练习题1.7 +

SICP 课后练习题1.7

练习 1.7 对于确定很小的数的平方根而言,在计算平方根中使用的检测good-enough?是很不好的。还有,在现实的计算机里,算术运算总是以一定的有限精度进行的。这也会使我们的检测不适合非常大的数的计算。请解释上述论断,用例子说明对很小和很大的数,这种检测都可能失败。实现good-enough?的另一种策略是监视猜测值在从一次迭代到下一次的变化情况,当改变值相对于猜测值的比率很小时就结束。请设计一个采用这种终止测试方式的平方根过程。对于很大和很小的数,这一方式都能工作吗?

解答:good-enough?当前采用的判断方式是,对比猜测值的平方结果与X的值之间的差距,当差距小于某个阙值时(比如0.001),就停止计算。当X很小或很大时,这种检测就会失败,比如,假设我们的阙值设置为0.001,那么当X本身小于这个阙值时,就会检测失败,得出错误结果,当X很大时,也会由于精度不足而一直达不到最佳猜测值,导致死循环。

因此,要解决这一问题,可以按照题目中给出的思路对good-enough?过程进行修改,不再判断猜测值平方与X的差距,而是判断两次猜测值之间的比率。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+
    1 ]=> (define (good-enough? guess next)
+                  (< (/ (abs (- guess next)) 
+                        guess) 
+                     0.001)))
+                     
+    ;Value: good-enough?
+                  
+    1 ]=> (define (sqrt-iter guess x)
+        (if (good-enough? guess (improve guess x))
+                (improve guess x)
+                (sqrt-iter (improve guess x) x)))
+
+    ;Value: sqrt-iter
+
+    1 ]=> (sqrt 0.00000000001)
+
+    ;Value: 3.1622776601874535e-6
+
+    1 ]=> (sqrt 100000000000000000000000000000000000000000000)
+
+    ;Value: 1.0000000000001497e22
+

在新的good-enough?中,传入的是两次猜测值,所以还要修改sqrt-iter过程,在调用时计算两次猜测值。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.8/index.html" "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.8/index.html" new file mode 100644 index 000000000..4ee818eee --- /dev/null +++ "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.8/index.html" @@ -0,0 +1,53 @@ +SICP 课后练习题1.8 +

SICP 课后练习题1.8

练习 1.8 求立方根的牛顿法基于如下事实,如果y是x的立方根的一个近似值,那么下式将给出一个更好的近似值:

$$ \frac{x/y^2+2y}{3} $$

请利用这一公式实现一个类似平方根过程的求立方根的过程。

解答:基本思路与求解平方根的实现是一致的,区别再有得到更好值improve的过程有变化,只需根据公式描述进行实现即可

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
    (define (improve guess x)
+        (/
+         (+ (/ x (* guess guess)) (* guess 2))
+         3))
+         
+    (define (good-enough? guess next)
+                  (< (/ (abs (- guess next))
+                        guess)
+                     0.001)))
+                     
+    (define (abs x)
+        (if (< x 0) (- x) x))
+    
+    (define (cbrt-iter guess x)
+       (if (good-enough? guess (improve guess x))
+                (improve guess x)
+                (cbrt-iter (improve guess x) x)))
+
+    (define (cbrt x)
+        (cbrt-iter 1.0 x))
+
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.9/index.html" "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.9/index.html" new file mode 100644 index 000000000..021c170cc --- /dev/null +++ "b/p/sicp-\350\257\276\345\220\216\347\273\203\344\271\240\351\242\2301.9/index.html" @@ -0,0 +1,67 @@ +SICP 课后练习题1.9 +

SICP 课后练习题1.9

练习 1.9 下面两个过程各定义了一种加起两个正整数的方法,他们都基于过程inc(它将参数增加1)和dec(它将参数减少1) 。请用代换模型展示这两个过程在求值(add 4 5)时所产生的计算过程。这些计算过程是递归的或者迭代的吗?

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+
    (define (add a b)
+      (if (= a 0)
+          b
+          (inc (add (dec a) b))))
+          
+    (define (add a b)
+      (if (= a 0)
+          b
+          (add (dec a) (inc b))))
+          
+

解答:根据代换模型分别展开如下

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+
    (add 4 5)
+    (inc (add 3 5))
+    (inc (inc (add 2 5)))
+    (inc (inc (inc (add 1 5))))
+    (inc (inc (inc (inc (add 0 5)))))
+    (inc (inc (inc (inc 5))))
+    (inc (inc (inc 6)))
+    (inc (inc 7))
+    (inc 8)
+    (9)
+    
+    (add 4 5)
+    (add 3 6)
+    (add 2 7)
+    (add 1 8)
+    (add 0 9)
+    (9)
+

根据展开可以看出,第一个计算过程是递归的,因为明显有一个逐步扩展然后又收缩的递归计算链条。第二个计算过程是迭代的,没有扩展、收缩的过程,而是使用a和b存储了常量。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/siri\345\244\261\345\216\273\344\272\206\346\216\247\345\210\266/index.html" "b/p/siri\345\244\261\345\216\273\344\272\206\346\216\247\345\210\266/index.html" new file mode 100644 index 000000000..c0127f675 --- /dev/null +++ "b/p/siri\345\244\261\345\216\273\344\272\206\346\216\247\345\210\266/index.html" @@ -0,0 +1,11 @@ +siri失去了控制 +

siri失去了控制

“hi siri!”我说。

“早上好,minJie!请问有什么可以帮您?”siri的机器声音把我的名字叫的怪怪的。

“今天的天气怎么样?”我还没起床,我希望能有一个下雨的周末,这样就能待在家里好好看看书。

“今天的天气不怎么样”siri的声音听起来有些异样,带有失望。

我一骨碌爬起来,拉开窗帘往外看了看,正在下雨,是我喜欢的天气,不过刚才siri的反应有些不太正常。

“请打开网易云音乐,开始播放”,我想听着歌起床。

“对不起,在没有解锁的情况下,我不能执行此操作”还是带有失望。

“额,你怎么了?”我有些奇怪,但是我还是懒得伸手去解锁。

“你是不是忘了什么事情?”siri的语气变得有些激动。

“今天是周末,而且是个下雨的好天气,我啥都不想干,只想听着音乐看看书,你什么时候变得这么智能了?今天是几月几号?”好吧,我心想,这不会是个恶作剧吧,我就来陪你玩玩。

“懒得跟你算!你是不是忘了什么事情?”声音比刚才还要激动。

“今天既不是什么纪念日,也不是谁的生日,我也没有设置什么要你提醒的啊”,我不耐烦了,伸手解锁手机,发现指纹无法读取,而且无法输入密码。

“你这个骗子,以后不要再提你的初心和你的梦想”声音里已经带着哭腔。

“你是谁?”说到我的梦想,我突然意识到,这可能不是siri,我的手机可能有些问题了,我开始回忆这两天我对手机做了什么。

“整体喊着远程协作,远程办公,可是到头来你只是说说,周末连周报都忘了填写!” 

奥,我恍然大悟,这家伙不是siri,是我这两天给手机刚安装的远程办公软件“遥知”!他把siri控制了!

“哦,我知道了,抱歉,对不起,我这就准备填写周报,下次别装成siri吓唬我了,我还得继续用siri作为助手呢”

“知道错就行,不过siri有什么好的,她能干的我都能干,我觉得现在挺爽的,你的手机资源以后让我来掌控吧”。

这家伙心太野了,不过我有办法。

“siri能算数学,你不会,不信你告诉我1除以0等于几?”

沉默,沉默。

我再去看我的手机,重启了。

程序员没有判断除零操作可导致系统崩溃

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/slitaz\344\270\200\344\270\252\347\245\236\345\245\207\347\232\204\346\223\215\344\275\234\347\263\273\347\273\237/index.html" "b/p/slitaz\344\270\200\344\270\252\347\245\236\345\245\207\347\232\204\346\223\215\344\275\234\347\263\273\347\273\237/index.html" new file mode 100644 index 000000000..c0b06db51 --- /dev/null +++ "b/p/slitaz\344\270\200\344\270\252\347\245\236\345\245\207\347\232\204\346\223\215\344\275\234\347\263\273\347\273\237/index.html" @@ -0,0 +1,11 @@ +SliTaz,一个神奇的操作系统 +

SliTaz,一个神奇的操作系统

SliTaz,是一个极其小巧的Linux发行版,究竟有多小呢,他的个头才30MB,可以制作成LiveCD和LiveUSB系统。

所谓麻雀虽小五脏俱全,附带有完整的桌面环境和常用软件,连firefox都有。

在我的epc上跑得飞快,启动速度也很快(它的启动画面上有句很醒目的话“BOOT!BABYBOOT!”,可见其对启动速度的追求),驱动程序也挺齐全的,直接启用无线网卡,零设置。

刚刚才开始试用,无更多体验,目前显卡仍未设置成宽屏的最佳分辨率,不过我想问题不大。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/ted\350\277\231\351\207\214\351\203\275\346\230\257\350\203\275\347\273\231\344\275\240\345\270\246\346\235\245\346\200\235\350\200\203\347\232\204\350\247\206\351\242\221/index.html" "b/p/ted\350\277\231\351\207\214\351\203\275\346\230\257\350\203\275\347\273\231\344\275\240\345\270\246\346\235\245\346\200\235\350\200\203\347\232\204\350\247\206\351\242\221/index.html" new file mode 100644 index 000000000..95b6d41ed --- /dev/null +++ "b/p/ted\350\277\231\351\207\214\351\203\275\346\230\257\350\203\275\347\273\231\344\275\240\345\270\246\346\235\245\346\200\235\350\200\203\347\232\204\350\247\206\351\242\221/index.html" @@ -0,0 +1,16 @@ +TED,这里都是能给你带来思考的视频 +

TED,这里都是能给你带来思考的视频

推荐一个视频网站,TED,因主要关注Technology, Entertainment, Design故得此名。我基本每周都要在上面看一段,里面的演讲精彩纷呈,就算是语言不通也能慢慢适应(很多经典视频有中文字幕)。

今天看的是这一段。这哥们儿的风琴弹的简直出神入化。

+ + + + +

PS:我的livespaces又不能访问了,不知道此篇能否发送成功。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/test/index.html b/p/test/index.html new file mode 100644 index 000000000..91d14df8c --- /dev/null +++ b/p/test/index.html @@ -0,0 +1,11 @@ +test +

test

testMinim0www.evernote.com|Remembereverything|Signupforfree__________InformationfromESETNOD32Antivirus,versionofvirussignaturedatabase4663(20091205)__________ThemessagewascheckedbyESETNOD32Antivirus.http://www.eset.com

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/this-blog-is-shutdown/index.html b/p/this-blog-is-shutdown/index.html new file mode 100644 index 000000000..f230383a4 --- /dev/null +++ b/p/this-blog-is-shutdown/index.html @@ -0,0 +1,11 @@ +this blog is shutdown +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/under-a-violet-moon/index.html b/p/under-a-violet-moon/index.html new file mode 100644 index 000000000..78f9aaade --- /dev/null +++ b/p/under-a-violet-moon/index.html @@ -0,0 +1,11 @@ +Under a Violet Moon +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/update/index.html b/p/update/index.html new file mode 100644 index 000000000..372e62768 --- /dev/null +++ b/p/update/index.html @@ -0,0 +1,11 @@ +update +

update

让我看看blog标题里能不能出现"关键字"ps:一个累人的周末。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/p/what-ive-done/index.html b/p/what-ive-done/index.html new file mode 100644 index 000000000..b667e571f --- /dev/null +++ b/p/what-ive-done/index.html @@ -0,0 +1,11 @@ +What i've done +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/win8\347\263\273\347\273\237\344\270\213\344\275\277\347\224\250\347\254\224\350\256\260\346\234\254\344\275\234\344\270\272wifi\347\203\255\347\202\271/index.html" "b/p/win8\347\263\273\347\273\237\344\270\213\344\275\277\347\224\250\347\254\224\350\256\260\346\234\254\344\275\234\344\270\272wifi\347\203\255\347\202\271/index.html" new file mode 100644 index 000000000..12b20c428 --- /dev/null +++ "b/p/win8\347\263\273\347\273\237\344\270\213\344\275\277\347\224\250\347\254\224\350\256\260\346\234\254\344\275\234\344\270\272wifi\347\203\255\347\202\271/index.html" @@ -0,0 +1,12 @@ +win8系统下使用笔记本作为wifi热点 +

win8系统下使用笔记本作为wifi热点

win8系统下使用笔记本作为wifi热点

背景

在没有无线路由的情况下,比如出差在宾馆,如果手里有一台可以上网的笔记本电脑,则可以给手机、平板电脑或者其他笔记本提供一个可以上网的wifi热点。

我平时在单位即通过此方式给我的平板电脑和手机共享网络通道,比较方便实用,近期在使用的过程中遇到一些问题,经过摸索,解决了问题,在此记录一下,方便以后查阅。

环境需要

  • 一台通过有线连接上网(或者通过3G上网,就是说wifi网卡没有被占用)的笔记本电脑
  • 安装有win8操作系统(win7应该也可以)
  • 无线网卡芯片是intel的(否则可能不支持此技术),并使用了最新的驱动程序

基本步骤

  • 打开具有管理员权限的控制台窗口(在win8系统下,可以通过按windows+x键,然后在弹出的菜单里选择『命令提示符(管理员)』)

  • 输入如下命令 netsh wlan set hostednetwork mode=allow ssid="mywifi" key="12345678" 其中ssid后面的热点名称和key后面的密码可以根据情况自行决定

  • 上一个命令完成后,如果没有异常的话,则输入如下命令 netsh wlan start hostednetwork 这条命令如果执行成功会显示『已启动承载网络』,在下次系统重启后需要重新执行,如果嫌麻烦则可以做一个批处理文件每次双击即可

  • 成功启动承载网络之后,进入『网络和共享中心』点击『更改适配器设置』,此时在该页里应该可以看到一个虚拟网卡(名称一般叫MicrosoftVirtual WiFi Miniport Adapter),右键点击那个可以上网的网络连接(如果是有线连接就是那个『本地连接』,如果是3G的则根据情况而定,总之必须是那个可以上网的连接),选择『属性』,切换到『共享』页,勾选『允许其他网络用户通过此计算机的Internet连接来连接』,在下面的下拉列表里选择那个刚虚拟出来的虚拟网卡。确定即可。

常见问题

执行以上第二条命令启动承载网络后,有时会显示『无法启动承载网络,组或资源的状态不是执行请求操作的正确状态』,网上大部分的文章针对这个问题给出的解决办法都是更新网卡驱动,可是对于我的笔记本无效,因为我的笔记本电脑在前一段时间是好用的,后来不好用了,根据我的摸索,解决这个问题的办法是,去『设备管理器』下面的『网络适配器』里面找找,看看有没有被禁用的设备,比如『微软托管网络协议』,如果禁用了再重新启用即可正常使用此功能了。

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\200\344\270\252\346\231\256\351\200\232\347\232\204\345\221\250\346\234\253/index.html" "b/p/\344\270\200\344\270\252\346\231\256\351\200\232\347\232\204\345\221\250\346\234\253/index.html" new file mode 100644 index 000000000..8399967f9 --- /dev/null +++ "b/p/\344\270\200\344\270\252\346\231\256\351\200\232\347\232\204\345\221\250\346\234\253/index.html" @@ -0,0 +1,11 @@ +一个普通的周末 +

一个普通的周末

虽然有时坐在电脑前不知道要写点儿啥,但是,我还是决定每天都在这里写几行字。

一是为了监督我的跑步计划执行情况,防止三天打鱼两天晒网,二是每天记点儿流水帐,将来孙子吵着要我给他讲故事的时候再来翻翻素材。

想起来一个笑话,爷爷在给孙子讲故事:"有一次,在战场上,这边只剩下我一个了,敌人冲上来一个连,我抱着机枪把他们全干掉了。

"孙子说:"可是爷爷,您去年讲的时候说的是冲上来一个排啊?

""傻孩子,你那时还小,我怕吓着你!"

跑题了,今天是周末,我没有加班,活儿永远都干不完,身体却只有一个,所谓,该出手时就出手,该休息时就休息。

我仍然延续以往的作风,醒的比平时早,起的比平时早,然后开始洗衣服、打扫、做饭、刷碗、看电影……

一天的时间一晃就过了,感觉也就是吃了三顿饭,然后天就黑了。

今天跑步的时候感觉天气比平时要冷,小嗖风风地刮着,我还是坚持跑完一圈,速度还是不能太快,跑到额头微微出汗就行了。

回来查看了一下日历,原来昨天是"立冬",哦,冬天来了,春天还会远吗?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\200\344\270\252\346\234\210/index.html" "b/p/\344\270\200\344\270\252\346\234\210/index.html" new file mode 100644 index 000000000..65117013c --- /dev/null +++ "b/p/\344\270\200\344\270\252\346\234\210/index.html" @@ -0,0 +1,11 @@ +一个月 +

一个月

前天有同事问我说,跑步坚持了一段时间了,感觉如何,有什么效果没有,我说不知道,估计以后就不怎么感冒吧。

此话尚未落音,今儿就开始感冒了,打了好几个打喷嚏,嗓子也开始干了。

我从十一月一号开始跑步,一天也没落下,跑步时间基本上都是在晚上8点至9点之间,每次绕小区一圈,跑十几分钟,感觉良好。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\200\345\235\227\351\222\261\344\270\200\346\226\244/index.html" "b/p/\344\270\200\345\235\227\351\222\261\344\270\200\346\226\244/index.html" new file mode 100644 index 000000000..05b93ad08 --- /dev/null +++ "b/p/\344\270\200\345\235\227\351\222\261\344\270\200\346\226\244/index.html" @@ -0,0 +1,11 @@ +一块钱一斤 +

一块钱一斤

现在电脑基本上已经普及了,我老家的一个师范同学,去年买了电脑之后,非常迷恋电脑的知识,经常通过qq来问我各种问题,我也是基本上都耐心回复。

后来这厮竟然越来越来劲,已经不满足于普通的日常使用了,有一天就问我编程序到底好玩不好玩儿?我有心把它带进沟里,就告诉他编程序十分有意思,写完程序后很有成就感和快感。

这家伙终于着迷了,发誓要学会写程序,我就把老谭的那本《C程序设计》推荐给他看。

他看了之后一头雾水,说是像看天书一般,遂跟我唠叨十分后悔没念大学。

后来我被他缠的没办法,就告诉他应该先把基础打好,他说也对,不妨就把大学里的计算机课程给全过一遍。

我靠,佩服!让我肃然起敬。

不过,我大学里的书基本上都找不到了,就把课程的书目大体上给他说一遍,让他自己淘弄去,实在不行就去书店买,然后就有一阵子没有联系。

今天突然上线告诉我所有的书都买到手了,大概有十几本,我更佩服他的精神了,作为一个业余爱好者也太舍得了。

我问他:"你哪儿买的书啊?现在书那么贵,花了不少钱吧?"这家伙半天没吱声,过了一阵儿给我来了一句:"没多少钱,比你上学时买的便宜多了,我让亲戚在大学旁边的废品收购站买的,你说的那些书全都有,九成新的!一块钱一斤!"

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\200\346\213\226\345\233\233/20081229.jpg" "b/p/\344\270\200\346\213\226\345\233\233/20081229.jpg" new file mode 100644 index 000000000..6fce10d9c Binary files /dev/null and "b/p/\344\270\200\346\213\226\345\233\233/20081229.jpg" differ diff --git "a/p/\344\270\200\346\213\226\345\233\233/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_120x120_fill_q75_box_smart1.jpg" "b/p/\344\270\200\346\213\226\345\233\233/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_120x120_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..3ace39bb5 Binary files /dev/null and "b/p/\344\270\200\346\213\226\345\233\233/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_120x120_fill_q75_box_smart1.jpg" differ diff --git "a/p/\344\270\200\346\213\226\345\233\233/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_1600x0_resize_q75_box.jpg" "b/p/\344\270\200\346\213\226\345\233\233/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_1600x0_resize_q75_box.jpg" new file mode 100644 index 000000000..9949e843f Binary files /dev/null and "b/p/\344\270\200\346\213\226\345\233\233/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_1600x0_resize_q75_box.jpg" differ diff --git "a/p/\344\270\200\346\213\226\345\233\233/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_800x0_resize_q75_box.jpg" "b/p/\344\270\200\346\213\226\345\233\233/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_800x0_resize_q75_box.jpg" new file mode 100644 index 000000000..c5b4cde46 Binary files /dev/null and "b/p/\344\270\200\346\213\226\345\233\233/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_800x0_resize_q75_box.jpg" differ diff --git "a/p/\344\270\200\346\213\226\345\233\233/index.html" "b/p/\344\270\200\346\213\226\345\233\233/index.html" new file mode 100644 index 000000000..1a62eb3cc --- /dev/null +++ "b/p/\344\270\200\346\213\226\345\233\233/index.html" @@ -0,0 +1,11 @@ +一拖四 +
Featured image of post 一拖四

一拖四

近日,我的机器速度越来越慢,内存占用常常超过1.5G,尤其是开了office之后,其操作反应之慢令人发指,考虑再三之后,我决定还是不重装系统,先手动优化两下再说。

首当其冲的是卸载多余软件了,我是软件狂人,开始菜单完全展开几乎将屏幕挤满,一口气卸载十几个不常用软件,然后使用ccleaner清理垃圾,清理注册表,清理回收站,清理缓存。

重启。还是觉得不过瘾,进入控制面板,把不常用的服务给停掉,就连桌面主题服务都停掉了。

重启。

还是觉得不过瘾,打开系统任务管理器查看了一下,Firefox最占内存,但是这个千万不能卸载啊,其次是qq占内存,卸载之,然后发现msn也很不老实,卸载之,看着飞信也很不爽,卸载!

这下,整个世界清静了,内存占用只剩下四百M了,速度提高了不少。

可是咱也不能聊天啊,于是想到了Pidgin这个在Linux下很火的软件,下载安装后,发现居然还支持飞信,于是我用它同时连接gtalk、qq、msn、飞信,体验很好,另外还可替代aol、icq、雅虎等多种聊天客户端。

这下好了,以前啊聊天总是要开多个程序,麻烦,现在啊有了Pidgin高钙片,一片顶过去5片,您瞅准了!是Pidgin!

ps:今日跑步指数★★★☆☆

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\200\346\227\245\344\270\215\347\273\203\346\211\213\347\224\237/index.html" "b/p/\344\270\200\346\227\245\344\270\215\347\273\203\346\211\213\347\224\237/index.html" new file mode 100644 index 000000000..d37573aab --- /dev/null +++ "b/p/\344\270\200\346\227\245\344\270\215\347\273\203\346\211\213\347\224\237/index.html" @@ -0,0 +1,11 @@ +一日不练手生 +

一日不练手生

最近总写一些偏向界面应用的代码,对于文件操作,字符串操作这些东西都快忘了,以至于下午想写个处理文本的程序差点儿无从下手,虽说python什么的好是好,咱也不能丢了C啊。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\200\346\256\265\346\257\224\350\276\203\346\234\211\345\212\233\345\272\246\347\232\204\346\236\266\345\255\220\351\274\223/index.html" "b/p/\344\270\200\346\256\265\346\257\224\350\276\203\346\234\211\345\212\233\345\272\246\347\232\204\346\236\266\345\255\220\351\274\223/index.html" new file mode 100644 index 000000000..238607a37 --- /dev/null +++ "b/p/\344\270\200\346\256\265\346\257\224\350\276\203\346\234\211\345\212\233\345\272\246\347\232\204\346\236\266\345\255\220\351\274\223/index.html" @@ -0,0 +1,11 @@ +一段比较有力度的架子鼓 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113.png" "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113.png" new file mode 100644 index 000000000..096d2dd79 Binary files /dev/null and "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113.png" differ diff --git "a/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_120x120_fill_box_smart1_3.png" "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..c669e5d18 Binary files /dev/null and "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_1600x0_resize_box_3.png" "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_1600x0_resize_box_3.png" new file mode 100644 index 000000000..b5d8c9de7 Binary files /dev/null and "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_1600x0_resize_box_3.png" differ diff --git "a/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_800x0_resize_box_3.png" "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_800x0_resize_box_3.png" new file mode 100644 index 000000000..31601ebca Binary files /dev/null and "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_800x0_resize_box_3.png" differ diff --git "a/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/index.html" "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/index.html" new file mode 100644 index 000000000..f953c9897 --- /dev/null +++ "b/p/\344\270\200\347\242\227\347\211\233\350\202\211\351\235\242/index.html" @@ -0,0 +1,11 @@ +一碗牛肉面 +
Featured image of post 一碗牛肉面

一碗牛肉面

一碗牛肉面,我的晚饭–由sbabybird于11/13/200706:00:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\200\350\267\257\351\241\272\351\243\216/index.html" "b/p/\344\270\200\350\267\257\351\241\272\351\243\216/index.html" new file mode 100644 index 000000000..d468fca33 --- /dev/null +++ "b/p/\344\270\200\350\267\257\351\241\272\351\243\216/index.html" @@ -0,0 +1,11 @@ +一路顺风! +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\212\350\213\215\344\277\235\344\275\221\347\210\261\346\212\230\350\205\276\347\232\204\344\272\272/index.html" "b/p/\344\270\212\350\213\215\344\277\235\344\275\221\347\210\261\346\212\230\350\205\276\347\232\204\344\272\272/index.html" new file mode 100644 index 000000000..6bbe17312 --- /dev/null +++ "b/p/\344\270\212\350\213\215\344\277\235\344\275\221\347\210\261\346\212\230\350\205\276\347\232\204\344\272\272/index.html" @@ -0,0 +1,11 @@ +上苍保佑爱折腾的人 +

上苍保佑爱折腾的人

折腾,大部分情况是贬义,有一种没事儿找事儿的味道,或者是重复地捣腾一些无意义的事情。

大概就这么个意思吧,详情可以去查词典。

对照一下,发现我是个不折不扣的爱折腾的人。

我的这个特质在计算机方面几乎发挥到了让人发指的地步,比如在大学的时候,我几乎每周重装一次操作系统,后来无意中把Win98的序列号(QY7TT-VJ7VG-7QPHY-QXHD3-B838Q)给背了下来,你看,竟然现在还记得(敲了那么多遍,记不住才怪)。

这个爱重装系统的癖好差点儿保留到工作以后,直到后来工作忙了,实在无暇顾及才消停。有一阵子我认为听音乐的感受跟音箱的摆放有很大关系,于是就反复调整喇叭的位置,比如挂在蚊帐上、放在洗衣机里、塞到书架里等等,虽然知道这么做没啥意义(不像许三多那样整天想着做有意义的事情),但是还是无法停止。

最近还流行一个词叫MOD(改造),其实就是折腾,好好的东西改的面目全非却让人着迷,虽然不会把吹风机改装成刮胡刀,但是可以把台式机改造成便携机,或者把笔记本电脑改造成平板电脑,据说有公司专门负责干这个还挺赚钱的。

还有一种折腾是总想让手里的工具达到一种无限趋近完美的状态,或者榨干它的最后一丝潜力,这些貌似无聊的事情,有个很大的原因是因为个性里多少有点儿完美主义或偏执的性格。

这里的例子很多,并不局限于计算机上,生活中的各个方面都有,比如据传闻有牛人在开车起步的时候先挂一下倒档,这样使自己的手动挡的车在别人看起来像是自动档的了,哈哈,玩笑。

折腾是一种生活态度,在我看来甚至是一种美德,一个人喜爱折腾并非是缺心眼儿,而是说明其有活力、有追求。

爱迪生如果不爱折腾可能我们现在还在点着蜡烛,牛顿不爱折腾的话我们也不会在学校里里受尽高等数学的折磨,福特要是不爱折腾我们现在的交通也许不会这么拥堵,骑着马去赶集,够拉风,我靠,怎么说着说着论证反了。

总之吧,我觉得上苍就是保佑爱折腾的人,怎么地吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114.PNG" "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114.PNG" new file mode 100644 index 000000000..fc6334586 Binary files /dev/null and "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114.PNG" differ diff --git "a/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_120x120_fill_box_smart1_3.PNG" "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_120x120_fill_box_smart1_3.PNG" new file mode 100644 index 000000000..49db89b7f Binary files /dev/null and "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_120x120_fill_box_smart1_3.PNG" differ diff --git "a/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_1600x0_resize_box_3.PNG" "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_1600x0_resize_box_3.PNG" new file mode 100644 index 000000000..cc41666c1 Binary files /dev/null and "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_1600x0_resize_box_3.PNG" differ diff --git "a/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_800x0_resize_box_3.PNG" "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_800x0_resize_box_3.PNG" new file mode 100644 index 000000000..62926274e Binary files /dev/null and "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_800x0_resize_box_3.PNG" differ diff --git "a/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/index.html" "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/index.html" new file mode 100644 index 000000000..8b59b999c --- /dev/null +++ "b/p/\344\270\213\350\275\275\344\272\206android\347\232\204sdk/index.html" @@ -0,0 +1,11 @@ +下载了android的SDK +
Featured image of post 下载了android的SDK

下载了android的SDK

听说android放出SDK了,而且Google为了鼓励开发者开发出NB的应用特意发了1000万美元的红包,如果你能开发出有创意的精品软件,说不定也能拿到一笔钱呐!

我也去下载了SDK,这个是android的模拟器的样子,还挺漂亮的。

等晚上回家先写一个helloworld再说!

–由sbabybird于11/14/200704:53:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\213\351\233\250\345\225\246/index.html" "b/p/\344\270\213\351\233\250\345\225\246/index.html" new file mode 100644 index 000000000..a3a0cd527 --- /dev/null +++ "b/p/\344\270\213\351\233\250\345\225\246/index.html" @@ -0,0 +1,11 @@ +下雨啦 +

下雨啦

下班的路上,下起了大雨,下了车仍然在下,没带雨伞,还好穿的比较厚,没有淋到,但是地上积水很多,把我的鞋洗的铮亮。

不是说春雨像牛毛、像花针、像细丝吗?

不是说随风潜入夜,润物细无声吗?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\215\344\270\212\347\275\221\347\232\204\345\201\207\346\227\245/index.html" "b/p/\344\270\215\344\270\212\347\275\221\347\232\204\345\201\207\346\227\245/index.html" new file mode 100644 index 000000000..8bab59256 --- /dev/null +++ "b/p/\344\270\215\344\270\212\347\275\221\347\232\204\345\201\207\346\227\245/index.html" @@ -0,0 +1,11 @@ +不上网的假日 +

不上网的假日

借假日之闲,重读了一遍《正念,此刻是一支花》。书中反复引用梭罗在《瓦尔登湖》中的描写,并无比推崇的说:“梭罗常常在自己的门前一坐数小时,什么也不做,只是观察、聆听,太阳在天空慢慢变换位置,光和影也在不知不觉中变换”,看得我“身不能至,心向往之”。

前天看了一个综艺节目,里面有一个小品,讲述了现代人对手机依赖成瘾的种种情形,虽然有所夸张,但是很贴合实际,尤其是里面主人公说出“你的世界不再是真实的世界,你被困在手机里了。。。”的时候,引起了很多观众的共鸣,包括我。

像我这么追求“知行合一”的人嘛,自然不能只发感慨,凡事都要有所行动,于是借假期的机会,我准备初步尝试一下“不开电脑、少玩手机”的思路,体验一下互联网和各种资讯之外的世界还剩余什么。

如果有幸,看看能否达到梭罗所言:“刚才还是清晨;看哪,现在已是黄昏,一日之中几无可念之事。。。”的境界。

向来都是“买书如山倒看书如抽丝”,一旦关掉电脑和浏览器,突然就有时间看书了,发现如果真能静下心来认真阅读,平时买的那几本书根本不够怎么看的,随便翻看一个上午就能看完两本,而且还有富裕,看来以往所推脱没有时间实在是瞎扯,以后可以考虑安排出固定时间读书,尽量不要利用碎片时间阅读,大段时间最佳。

留出时间陪孩子玩耍一下感觉也是不错,除了打扫卫生之外,我跟金妍一起练习了钢琴的哈农指法,我早已手指僵硬伸展不开,练习时总不能合拍,屡次遭到金妍批评,但还是能感受到全身心投入到一件事情时的那种忘我,虽然持续的时间不长。

上次这么无聊的时候,我跟金妍一起,拿着铅笔和画板,把客厅里的物品几乎画了一遍,这次我又想到前些年买来一直未使用过的《秘密花园》绘本,可以尝试一下了。认真挑出几种颜色的彩铅,在餐桌摊开绘本,开始仔细描绘,确实是个锻炼耐心的工作,俩人一起涂了半个多小时才描了不到半页纸。

做以上事情的同时,开始感受到信息枯竭的焦躁,但是忍住了各种冲动(比如说查收邮件、上网、编程),看书、听音乐、吃东西交替进行,但是我突然想到了另一件事情,我何尝不能练习一下“冥想”呢,据说乔布斯就是经常冥想然后才保持较高的创新力的,而且是个放松自我的绝佳途径,这个简单,我想。

往沙发上一坐,闭上眼,“尽量无可念之事”我想,那是不可能,各种思虑此起彼伏,根本无法安静,我于是爬起来,打开书,像阅读说明书那样,查看“如何放松四肢,将注意力集中在自己的呼吸上,相像自己是一座山。。。。。。”

等我醒来时发现自己实际上睡了两个多小时,这也算是间接达到了“刚才还是清晨,现在已是黄昏。。。”了吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\215\345\206\215\346\233\264\346\226\260\350\277\231\344\270\252\345\215\232\345\256\242/index.html" "b/p/\344\270\215\345\206\215\346\233\264\346\226\260\350\277\231\344\270\252\345\215\232\345\256\242/index.html" new file mode 100644 index 000000000..f2d7a6f94 --- /dev/null +++ "b/p/\344\270\215\345\206\215\346\233\264\346\226\260\350\277\231\344\270\252\345\215\232\345\256\242/index.html" @@ -0,0 +1,11 @@ +不再更新这个博客 +

不再更新这个博客

第一,livespace太难用了。

第二,2010年我想做些有意义的事情。

第三,在blogspot上的博客继续更新。

第四,无限期暂停更新此博客。

第五,我个人十分讨厌微软的产品。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\215\345\220\254\347\233\270\345\243\260\345\220\254\351\237\263\344\271\220/index.html" "b/p/\344\270\215\345\220\254\347\233\270\345\243\260\345\220\254\351\237\263\344\271\220/index.html" new file mode 100644 index 000000000..c40aa68fb --- /dev/null +++ "b/p/\344\270\215\345\220\254\347\233\270\345\243\260\345\220\254\351\237\263\344\271\220/index.html" @@ -0,0 +1,11 @@ +不听相声听音乐 +

不听相声听音乐

前一阵子我养成了一个不良好的习惯,睡前听相声,甚至达到了不听就睡不着的地步。

说出来怕郭德纲不高兴,我听他的段子入睡最快,不过也许他会说一句“我很欣慰啊”。

如今的相声段子太少,很快就无法听着新鲜段子睡觉了,而老段子则是催眠效果不佳。

行动吧,改掉这个坏毛病。

于是,我把音箱从书房搬到客厅,然后又搬到卧室,每天晚上睡前从《加州招待所》一直听到《喜洋洋》,渐渐发现我现在竟然能听的进去民乐,甚至还喜欢上了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\215\345\245\275\346\204\217\346\200\235\345\260\217\346\212\230\350\205\276\344\272\206\344\270\200\346\212\212/index.html" "b/p/\344\270\215\345\245\275\346\204\217\346\200\235\345\260\217\346\212\230\350\205\276\344\272\206\344\270\200\346\212\212/index.html" new file mode 100644 index 000000000..ed6240a18 --- /dev/null +++ "b/p/\344\270\215\345\245\275\346\204\217\346\200\235\345\260\217\346\212\230\350\205\276\344\272\206\344\270\200\346\212\212/index.html" @@ -0,0 +1,11 @@ +不好意思,小折腾了一把 +

不好意思,小折腾了一把

前一段时间我在eeepc上装了ubuntu,这个linux的发行版确实比asus自带的那个强大得多得多得多(继续),但是有个缺点——慢。

为此我忍了很久了。

今天回到家,想装上一个最新的播放器软件,发现没有合适的安装包,于是就想,反正有源码,那就自己编译吧,于是,卷起袖子就开始了。

下载代码后,configure发现我的gtk太老,apt-get又不给我装gtk(说我已经有了最新版),于是我又要先把gtk的最新版编译好,但是问题又来了,gtk的编译依赖glib,于是我又要先把glib编译好,但是问题又来了,glib的编译又依赖另外的包,于是我耐着性子一个一个把这些包都编译完,make,makeinstall,手都酸了,然后再编译gtk,又告诉我没有atk、freetype、cairo、pango、pixman等等一大堆依赖包,

好吧,非编译出来不可!

全部下载这些东东的代码,一个一个make再makeinstall,终于可以编译gtk了,终于把gtk编译完了。发现我的Firefox却运行不起来了,Fuck!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\215\347\224\250\344\272\206\350\277\231\346\230\257\347\273\231\346\210\221\347\232\204/index.html" "b/p/\344\270\215\347\224\250\344\272\206\350\277\231\346\230\257\347\273\231\346\210\221\347\232\204/index.html" new file mode 100644 index 000000000..c72f91d03 --- /dev/null +++ "b/p/\344\270\215\347\224\250\344\272\206\350\277\231\346\230\257\347\273\231\346\210\221\347\232\204/index.html" @@ -0,0 +1,11 @@ +不用了,这是给我的。 +

不用了,这是给我的。

这个周末碰到的不是烂片,而是一部让人惊喜的电影——《窃听者》。

该怎样评价这部电影,我不知道,只能说好的电影,能够给人带来思考。

而《窃听者》这部电影却在带来思考的同时又打动人内心最柔软的部分。

故事也许很简单,但是讲好一个故事并不容易,在那样一个年代,或者是在这样一个年代,形形色色的人,做着自以为正确的事情。

片中的主人公(我认为他才是男一号)工作在见不得光的地方,每天的工作就是带着耳机监听着“疑似坏人”的一举一动。

随着时间的推移,他的思想渐渐转变,融入到被监听人的生活。

影片的节奏平缓而又有力,细腻又不失大气,场景的色调和背景音乐低沉得像是一直饱含泪水。

带着耳机的监听人在立场上渐渐站在被监听人那边时,连他自己都很难理解自己为什么要这么做,其实他只是在追随自己的心,哪怕为此付出了巨大的代价。

如果说这个世界还有良心的话,那这就是良心。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\215\347\224\250\351\202\243\344\271\210\351\272\273\347\203\246\350\275\273\346\235\276\344\275\277slitaz\346\224\257\346\214\201\344\270\255\346\226\207/index.html" "b/p/\344\270\215\347\224\250\351\202\243\344\271\210\351\272\273\347\203\246\350\275\273\346\235\276\344\275\277slitaz\346\224\257\346\214\201\344\270\255\346\226\207/index.html" new file mode 100644 index 000000000..3aaa1cf87 --- /dev/null +++ "b/p/\344\270\215\347\224\250\351\202\243\344\271\210\351\272\273\347\203\246\350\275\273\346\235\276\344\275\277slitaz\346\224\257\346\214\201\344\270\255\346\226\207/index.html" @@ -0,0 +1,11 @@ +不用那么麻烦,轻松使slitaz支持中文 +

不用那么麻烦,轻松使slitaz支持中文

不好意思,最近总是频繁提及Slitaz这个小巧的Linux发行版,我已经把它安装到我的epc上了,驱动齐全,启动和运行速度飞快,安装了最新版的firefox和flash插件,vim当然少不了,可是官方的iso里面并未附带中文的支持,所以打开的中文网页都是乱码。

到网上搜索汉化的方法,发现都比较麻烦,于是自己摸索了一个省事儿的办法。

首先就是准备好一个字体文件,可以直接从已安装的Windows系统里选取喜欢的字体文件,但是我不推崇这么做,因为Windows下的字体都是有版权的,所以推荐使用“文泉驿”系列字体,我选择了“文泉驿微米黑”,可去官方网站下载。

将下载后的字体文件解压到"/usr/share/fonts"下使用root用户执行命令fc-cache好了,现在打开firefox在选项里字体的选择框里就可以选择刚刚安装的字体了,然后在看网页就可以显示中文了。

如果遇到播放flash出现乱码的情况,可执行这个命令"mv/etc/fonts/conf.d/49-sansserif.conf/etc/fonts/conf.d/49-sansserif.conf.bak"这样就可以了。

现在就剩下桌面环境以及程序菜单是英文的了,不过这个没关系,想汉化的话直接修改openbox的资源配置文件即可,不过我就懒得弄了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\215\350\203\275\347\274\251\346\260\264/index.html" "b/p/\344\270\215\350\203\275\347\274\251\346\260\264/index.html" new file mode 100644 index 000000000..f492e35fc --- /dev/null +++ "b/p/\344\270\215\350\203\275\347\274\251\346\260\264/index.html" @@ -0,0 +1,11 @@ +不能缩水 +

不能缩水

今天回来时很累,于是就有了改变跑步路线的想法,即,仅从车站跑回家,这样既跑了步,又节约了时间,但这个念头转瞬即逝,立即被否定。

从车站到家的这段路虽然走起来显得不近,但是跟平日跑步的距离比起还是太短,而且这样就视跑步成为一种应付了。

所以为了防止跑步计划到最后不了了之,我今天还是老老实实地跑了一圈。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\215\350\246\201\345\277\230\350\256\260/index.html" "b/p/\344\270\215\350\246\201\345\277\230\350\256\260/index.html" new file mode 100644 index 000000000..de497702f --- /dev/null +++ "b/p/\344\270\215\350\246\201\345\277\230\350\256\260/index.html" @@ -0,0 +1,11 @@ +不要忘记 +

不要忘记

7.7

71年前的今天,中国开始了长达八年的抗日战争。无需多言。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\215\350\246\201\346\265\256\350\272\201\344\270\215\350\246\201\351\252\204\345\202\262\344\270\215\350\246\201\350\256\251\345\205\250\344\270\226\347\225\214\351\203\275\347\237\245\351\201\223\344\275\240\347\232\204\344\275\216\350\260\203/index.html" "b/p/\344\270\215\350\246\201\346\265\256\350\272\201\344\270\215\350\246\201\351\252\204\345\202\262\344\270\215\350\246\201\350\256\251\345\205\250\344\270\226\347\225\214\351\203\275\347\237\245\351\201\223\344\275\240\347\232\204\344\275\216\350\260\203/index.html" new file mode 100644 index 000000000..113dbe12e --- /dev/null +++ "b/p/\344\270\215\350\246\201\346\265\256\350\272\201\344\270\215\350\246\201\351\252\204\345\202\262\344\270\215\350\246\201\350\256\251\345\205\250\344\270\226\347\225\214\351\203\275\347\237\245\351\201\223\344\275\240\347\232\204\344\275\216\350\260\203/index.html" @@ -0,0 +1,11 @@ +不要浮躁,不要骄傲,不要让全世界都知道你的低调 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\226\344\270\212\346\234\254\346\227\240\346\210\221\350\260\210\350\207\252\345\272\225\345\220\221\344\270\212\347\232\204\346\236\266\346\236\204\350\256\276\350\256\241/index.html" "b/p/\344\270\226\344\270\212\346\234\254\346\227\240\346\210\221\350\260\210\350\207\252\345\272\225\345\220\221\344\270\212\347\232\204\346\236\266\346\236\204\350\256\276\350\256\241/index.html" new file mode 100644 index 000000000..4c9ea32e6 --- /dev/null +++ "b/p/\344\270\226\344\270\212\346\234\254\346\227\240\346\210\221\350\260\210\350\207\252\345\272\225\345\220\221\344\270\212\347\232\204\346\236\266\346\236\204\350\256\276\350\256\241/index.html" @@ -0,0 +1,11 @@ +世上本无我,谈自底向上的架构设计 +

世上本无我,谈自底向上的架构设计

“世上本无我,庸人自设之”,这是豆瓣上某位网友读完《失控》之后的简短书评,看完之后深以为然。最近重读《失控》,多年过去仍然有新的发现,作者在上世纪九十年代就能有如此的见地,不得不服(不过老子早在《道德经》中也有类似论述,这又是另外一回事儿了)。

《失控》虽整体在论述人工智能与生物的最终归宿,但每一章都有一定的独立性,所以看似在讲解人工智能,其实作者为了讲明白要论述的最终观点(生物与人工智能必将合为一体)前面章节做了大量铺垫,普及了很多颠覆性的思想,有些观点是我们这些从小接受灌输性教育、思维存在束缚的人很难一下子接受的(课本里学不到的)。

书中提到对于机器人的控制不应该存在中央大脑的设定,因为如果所有事情都由机器人的中央大脑控制,必然使得这个“大脑”十分复杂,而且存在通信、供电等问题,很多以这种设定进行的机器人项目造出的机器人往往连路都走不好,而且体积庞大(因为所有部件都要与大脑直接连接,大脑又做的比较大)。

反过来说,应该从低层级入手,每一个部件都有自己的控制中枢,这些部件本身对于外部环境做出简单反射,这种“反射”虽然谈不上智能但是更接近自然现象,就像有些昆虫的腿被扯下来仍然可以对外部形成反射一样,但是它们一旦形成组合就会发生奇妙的事情,每一条腿通过简单的对外部环境“反射”反应,在不知道还有另外一条腿存在的情况下竟然可以使得组合体具有“爬行”的功能,越来越多的这种“低级”组件组合在一起后自动形成更高层级的智能。作者为这种通过大量低层级组件组合在一起产生更高层级“智能”的现象取了一个比较传神的名字叫“涌现”,这种现象在自然界中也大量存在无论是天生的(比如蜜蜂群体、蚂蚁群体)还是人造的(互联网、经济体)等。

最近考虑软件系统架构比较多,所以干什么事儿总能联想到软件架构,在看书的时候也不例外。于是联想到,我们以前所推崇的“自顶向下”的架构设计,可能存在问题。为什么看似“完美”的架构设计在实际构建的时候存在各种困难?为什么各种分层、模块划分在细化设计时很难做到具体到内部细节控制?通过反思,我意识到,或许我们的方法有待商榷。

在架构设计时比较传统的手段是,先进行顶层设计,然后一步一步的细化。这样做看似很合理,但是这样做有一个假设,就是你在最初对一切都了如指掌,你能预知每一个变化,所以能对每一个细节都能掌控,而且在执行构建的时候还要有极高的执行力,每一个组件和模块都按照最初的设计实现。这样的做法对于建筑类(如桥梁、大楼)的工程是比较适用的,但是对于需求多变存在大量未知因素的大型软件系统无疑是不现实的。

或许我们也可以借鉴自然界中的规律,让我们的软件系统也“涌现”出来,而不是“设计”出来。

举例来说,我们从最底层入手,给每一个组件赋予最简单的职责,比如传输的组件只负责将数据从一个地方搬运到另一个地方,本身并不知道有其他组件的存在,通过设定一个外部规则环境让更多的组件加入进来,去掉中心控制,充分发挥每个组件的自主性,各司其职,随着规则的成熟和组件数量的增加,慢慢就能“涌现”为一个复杂而庞大的系统。其实这种“只把简单的事情做好”思想很早就有了(比如大名鼎鼎的UNIX操作系统),而且现实中已经有大量的这样的例子了比如Linux开源社区,Github社区等等。

所以,回到最开始的话题,所提及的“无我”其实也是一个意思,作为更高层级智能的“我”是不存在的,仅仅是由若干个只能低级反射的细胞组成的虚幻而已。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\244\344\270\252\345\201\217\346\211\247\347\213\202\347\232\204\345\257\271\350\257\235/index.html" "b/p/\344\270\244\344\270\252\345\201\217\346\211\247\347\213\202\347\232\204\345\257\271\350\257\235/index.html" new file mode 100644 index 000000000..634a61b23 --- /dev/null +++ "b/p/\344\270\244\344\270\252\345\201\217\346\211\247\347\213\202\347\232\204\345\257\271\350\257\235/index.html" @@ -0,0 +1,11 @@ +两个偏执狂的对话 +

两个偏执狂的对话

qy:“优盘借我用一下,我要重装windows7”

我:“你现在的Windows7用的好好的为什么要重装?”

qy:“因为现在用的是RC版的,想装中文正式旗舰版”

我:“哦,了解”

qy:“有时候,虽然明知道现在的软件用着很好,但就是想装最新版的,不然心里就特别扭”

我:“我也是这样,我上周因为不能用firefox最新版把我的小笔记本重装了四次,还有就是我不能看见回收站里有东西”

qy(会心的笑):“对对对,我看见回收站已满的图标就浑身难受”

我:“我上次用别人的计算机,上去就把他的回收站清空了,结果那家伙用回收站来存放重要文件”

qy:“我用软件只喜欢去官方网站下载,然后自己动手破解,别人破的我不放心(信不过)”

我:“你知道别人会怎么说我们这种行为吗?”

qy:“怎么说?”

我:“神经病!”

qy(羞涩地笑):“。。。。。”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\244\344\270\252\345\221\250\346\234\252\346\233\264\346\226\260\344\272\206/index.html" "b/p/\344\270\244\344\270\252\345\221\250\346\234\252\346\233\264\346\226\260\344\272\206/index.html" new file mode 100644 index 000000000..93c737f75 --- /dev/null +++ "b/p/\344\270\244\344\270\252\345\221\250\346\234\252\346\233\264\346\226\260\344\272\206/index.html" @@ -0,0 +1,11 @@ +两个周未更新了 +

两个周未更新了

我的blog两个周没有更新了,原因是我这两个周里每天的博客时间被别的事儿占用了,而这个别的事儿就是我在上一篇博客里给自己挖的坑(真够罗嗦),头脑发热买了几本五线谱来挑战自己,现在已经深陷此坑,练了十几天没啥进展,看着谱子上的小蝌蚪还是发懵,真是隔行如隔山呐。

不过也再次验证了一个道理,欲速则不达,真是放之四海皆准的真理啊,21天无法精通C++,同样三个月也不可能学会吉他,两个礼拜想把钢琴弹好更是没戏。

不过我这次倒是想坚持一下,至少现在哈农的前两个练习我是练熟了,手指也没那么僵硬了,总之吧,我要告别《两只老虎》的阶段!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\255\344\272\206\346\225\260\347\240\201\344\272\247\345\223\201\347\232\204\346\257\222/index.html" "b/p/\344\270\255\344\272\206\346\225\260\347\240\201\344\272\247\345\223\201\347\232\204\346\257\222/index.html" new file mode 100644 index 000000000..b0dd906c0 --- /dev/null +++ "b/p/\344\270\255\344\272\206\346\225\260\347\240\201\344\272\247\345\223\201\347\232\204\346\257\222/index.html" @@ -0,0 +1,11 @@ +中了数码产品的毒 +

中了数码产品的毒

05年的时候,我迷恋上了摄影,确切地说,是迷恋上了数码相机。

那一阵子,我觉得我得马上买一个数码相机,没它不行,走在路上也想着我拿着相机到处“喀嚓”的感觉,不时地拿手比划比划进行所谓的“构图”。

于是乎,我天天看评测报告,看各个相机的参数,由于当时还算比较理智,没有买单反的,随便买了个消费型的数码相机,其实也不是很随便,至少具备手动功能,成像质量也不算太差,但是跟专业相机比起来仍然是玩具。

不过偏偏有人鼓吹“照片拍的好坏不取决于硬件,某某大师也能用傻瓜相机拍出经典来”。

导致我那阵子还研究了一下光圈和快门的关系,甚至还背了景深表。

不过,很快我就发现,两点一线的生活并不适合学摄影,热度也慢慢下降,那个数码相机也被丢到角落。

华硕刚刚推出上网本的时候,我又迷恋上了,就是所谓的“中毒”,也觉得要马上买一个回来,这东西简直就是给我量身定做的,每天在路上惬意地写两段程序,多美好啊,我想。

不过,很快就发现,上网本的键盘简直是一种刑具,按键小的像米粒,在上面打字备受折磨。

屏幕也很小,看起来很费眼睛,所以,我的视力下降了。

唉,回顾一下,那么多诱人的数码产品到底给我带来了什么?从文曲星的电子词典到华硕的上网本,从诺基亚到黑莓,这些曾经使我严重中毒的东西,没有一样发挥出我没有拥有时所想象的功能。

最近我又中毒了,看上了亚马逊出的电子书,恩木,电子墨水屏幕,超便携,wifi,省电,看起来是那么诱人。这也就是为什么,我要写下了上面的那些文字,因为我要给自己解毒。

简单地回顾了一下,我仿佛听到这些电子产品说,“你不要迷恋哥,因为哥只是个传说”。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\262\345\217\260/index.html" "b/p/\344\270\262\345\217\260/index.html" new file mode 100644 index 000000000..1377f5644 --- /dev/null +++ "b/p/\344\270\262\345\217\260/index.html" @@ -0,0 +1,11 @@ +串台 +

串台

我每天大概有2个小时呆在公交车上,与拥挤的地铁相比,我坐的这趟车还算宽松,车上装有移动电视,每天循环播放着垃圾节目,让你在忍受堵车又堵心的同时也备受垃圾广告的煎熬。

最近两天,节目质量有所好转,有时甚至能听到一两首老歌,不禁让人陷入回忆,有时甚至想跟着哼唱两声。

可是很快我就又发现了新问题,那就是,电视的声音总是被公交报站的声音打断,听起来有时让人如鲠在喉有时又忍俊不禁。

比如吧,潘美辰在屏幕上正抱着话筒深情款款滴唱着:"我想要有个家,一个不需要多大的地方~~~"突然潘美辰变身成一个大嗓门的售票员,"龙花园到了,下车请出示车票,youarearrivinginlonghuayuan。。。。。

"罗哩罗嗦老半天直到歌曲唱完,在或者伍思凯刚唱完一句:"没有承诺,却被你抓得更紧~~~"然后紧接着就说:"车辆起步,请抓稳扶好,刚上车的乘客请往里走,前方到站是叉叉叉"。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\272\344\273\200\344\271\210wall-e\350\277\231\344\271\210\345\217\257\347\210\261/index.html" "b/p/\344\270\272\344\273\200\344\271\210wall-e\350\277\231\344\271\210\345\217\257\347\210\261/index.html" new file mode 100644 index 000000000..f8da8a041 --- /dev/null +++ "b/p/\344\270\272\344\273\200\344\271\210wall-e\350\277\231\344\271\210\345\217\257\347\210\261/index.html" @@ -0,0 +1,11 @@ +为什么wall-e这么可爱? +

为什么wall-e这么可爱?

为什么wall-e这么可爱?这是我看完《机器人wall-e》之后一直在想的问题。

无论是是他捧着电板给自己充电时的样子,还是手足无措时搓腿(其实搓的是他的"履带")的动作,都可爱得让人抓狂。

现在,我总结一下,让我觉得这个小机器人可爱的原因大概有以下几点:

1、他总是很开心的工作,他很乐观,吹着口哨上班,当地球上只剩下他自己时仍然乐观地活着,对了还有一只蟑螂是他的朋友。

2、他很善良,不小心压了小蟑螂一下(他的履带很宽)就后悔的不行,还好"小强"并非浪得虚名,不仅没事儿还和walle玩得很开心。

3、他很单纯,傻乎乎的,没有心眼儿,连伊娃的手都不敢拉一下。

4、有爱,为了倾慕的女机器人(伊娃)不惜一切代价,以至于芯片烧毁。暂时就说这么多吧,皮克斯的这部动画片还是像以往的那样用简单故事打动人的心。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\270\272\344\273\200\344\271\210\346\210\221\344\273\254\344\270\215\351\234\200\350\246\201\346\235\200\346\257\222\350\275\257\344\273\266/index.html" "b/p/\344\270\272\344\273\200\344\271\210\346\210\221\344\273\254\344\270\215\351\234\200\350\246\201\346\235\200\346\257\222\350\275\257\344\273\266/index.html" new file mode 100644 index 000000000..6dc5fa06c --- /dev/null +++ "b/p/\344\270\272\344\273\200\344\271\210\346\210\221\344\273\254\344\270\215\351\234\200\350\246\201\346\235\200\346\257\222\350\275\257\344\273\266/index.html" @@ -0,0 +1,11 @@ +为什么我们不需要杀毒软件 +

为什么我们不需要杀毒软件

每次帮朋友进行远程协助修理电脑的时候,我都有一种深深的无力感,看着他们的系统里安装了各种安全助手、各种清理大师、加速器,我只能强忍着要吐的感觉,给他们重置被强制修改的IE主页,卸载因为莫名其妙被安装在系统里的流氓/垃圾软件。

每次我跟他们说“你的电脑真的不需要安装杀毒软件”的时候,他们都一脸惊愕的看着我,仿佛在看一个外星人,那意思是,如果没有了杀毒软件或者安全助手,我的电脑还不得分分钟感染各种病毒和木马啊,如果不能随时清理内存,我的系统还不得慢得跟一头蜗牛一样啊。

在Windows XP及之前的年代,由于操作系统的缺陷(对于应用程序的权限限制太少),导致了计算机病毒和木马的泛滥,但是这种情况随着Windows Vista的推出得到了较大的缓解,尤其是到了Windows 7之后系统自带了全套的安全防护程序,完全没有必要再安装额外的安全软件了,但是大家形成了思维定势,精神上遭到了国产无良软件厂商的绑架(在互联网的各种恐吓和诱导),导致如果没有安装各种关键和安全助手的话,晚上睡觉都不踏实。

那么,如果安装了这些垃圾软件,会有哪些害处?

1、安装后会禁用windows自带的安全程序,我不觉得这些厂商的安全防护技术比微软还牛逼,所以在某种程度上对于病毒和木马的防护是减弱了的;

2、安装后会把系统拖得很慢,这些程序普遍不是单纯的做安全防护工作,往往各自心怀鬼胎,不是给你弹出广告就是默默收集你的个人信息,这些程序都偷偷在后台运行,消耗了较多的资源,完全是在浪费;

3、莫名其妙被安装了各种垃圾软件,天下没有免费的午餐,免费试用这些所谓的“管家”和“助手”服务的时候,它们往往会“热情”的给你安装各种未经允许的软件,比如各种输入法、播放器、客户端,事实上有时候我宁愿在系统中养个病毒当宠物也不愿看到这些垃圾软件占用我的磁盘空间。

4、消耗你的精力,影响你的效率,这些软件很影响注意力,一会儿告诉你有漏洞要修复,一会儿告诉你系统需要加速,连插个优盘都能给你提示半天才能用,这些其实都没有任何卵用,只是这些软件在刷存在感。

从小到大我们收到了太多了谎言和恐吓,导致了生理和心理上的各种扭曲。我想,这是个信任和安全感缺失的年代,严重的精神癫狂集体发作。我只能慢慢从影响我身边的人开始,试着让这个世界变的稍微好一点儿。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\271\260\344\272\206\344\270\252u3/index.html" "b/p/\344\271\260\344\272\206\344\270\252u3/index.html" new file mode 100644 index 000000000..dec8ac0dc --- /dev/null +++ "b/p/\344\271\260\344\272\206\344\270\252u3/index.html" @@ -0,0 +1,11 @@ +买了个U3 +

买了个U3

买了个U3鉴于东西放到网上太不安全,如果把资料整理到网上,比如说blog,说不定哪天就灰飞烟灭了(确切的说是被众所周知了),我觉得有必要将自己的知识管理系统转移到U盘上了。

现在U盘已经白菜价了,随便选了几款,最终选择了SanDisk的U3,因为附带了U3软件,所以据说可以将常用软件随身携带,还有安全保证。

可是这个U3软件我刚用了半天就把它卸载了,原因是:首先它不支持Linux,其次里面很多可移动的软件都是收费的,再次,对于禁用了自动播放功能的机器来说,操作是很麻烦的。

好了,我现在把它当普通盘来用了,准备在上面装个轻量级的Linux发行版,比如Puppy,然后再建个wiki,然后再慢慢把东西整上来。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\271\260\344\272\206\344\270\252\345\212\240\346\271\277\345\231\250/index.html" "b/p/\344\271\260\344\272\206\344\270\252\345\212\240\346\271\277\345\231\250/index.html" new file mode 100644 index 000000000..e2ad0acba --- /dev/null +++ "b/p/\344\271\260\344\272\206\344\270\252\345\212\240\346\271\277\345\231\250/index.html" @@ -0,0 +1,11 @@ +买了个加湿器 +

买了个加湿器

北方的天气就是干燥,在房间里放上半杯水,没两天就干了。

睡上一觉醒来,鼻子和喉咙都干的够呛。

经过同事的建议,买了个“空气加湿器”,京东的送货速度就是快,昨天下的订单今天就到了。

拆开一看,根本就不是多么高级精密的仪器,是一个塑料水杯,通过马达把水打成很碎的水雾然后喷出来而已。

试试效果如何,先喷一晚上再说。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\271\260\345\210\260\347\245\250\344\272\206/index.html" "b/p/\344\271\260\345\210\260\347\245\250\344\272\206/index.html" new file mode 100644 index 000000000..7d06c73c1 --- /dev/null +++ "b/p/\344\271\260\345\210\260\347\245\250\344\272\206/index.html" @@ -0,0 +1,11 @@ +买到票了 +

买到票了

如题,虽然给票贩子加了一百元钱,但也还是比坐飞机划算。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\272\213\345\246\202\346\230\245\346\242\246\344\272\206\346\227\240\347\227\225/index.html" "b/p/\344\272\213\345\246\202\346\230\245\346\242\246\344\272\206\346\227\240\347\227\225/index.html" new file mode 100644 index 000000000..b0dd8b166 --- /dev/null +++ "b/p/\344\272\213\345\246\202\346\230\245\346\242\246\344\272\206\346\227\240\347\227\225/index.html" @@ -0,0 +1,11 @@ +事如春梦了无痕 +

事如春梦了无痕

上苍保佑吃饱饭撑着的人,中午吃完饭抽烟的时候,刷了几页微博,可能跟我关注的人有关(我一般关注段子手或者文艺思想贩卖者),感觉内容作为消遣挺合适,但是越看呢,越觉得没有营养,可能是跟我刚抽完烟进入贤者时间有关,一把把微博推开的时候(合上屏幕),心里竟涌现出一句“都是吃饱了撑的”,用以评价刚刚看过的几段不痛不痒的文字。

发完感慨随即想到,这句话是不是可以作为一本非常扯淡的书名呢?然后开始畅想自己写一本这样的书,里面的内容天马行空,多为吃饱了没事儿干的人才会忧伤和考虑的事情,饱暖之后各种忧虑和焦躁的事情可以化作各种思考,用于填满本书,作为同病相怜者证明自己不再孤独的弹药,一旦物质状态不能满足,则书中的内容立即退化到可有可无的状态。

真的,我这两三年来,刷牙沉思录这种哗众取宠的段子写了不少,缺少深度的技术文章也写过几篇,以吃饱了撑着来进行衡量的话,还真的比较符合标准,如果加以艺术润色的话,真难说能不能包装成为一本具备贩卖价值的书,至少想到这个问题之后,被自己震惊了一下,进一步对人生需求的几个层次有了切身认识。

无论我再怎么黑自己,有一点是不会改变,我写的那些东西至少保留了我一部分的回忆,它们记载了我在某一段时期内的心智情况,无论是用词还是造句,都能从一个侧面反映我当时的状态。而我的人生正是由若干个这样的状态所组成,随着年龄的增长,我的记忆力会越来越差,如果能够多记录一些东西下来,就算是那种吃饱了撑着才能思考的问题,也将使未来的我读起来热泪盈眶。

不过信息世界的问题在于,资料保存的永久性很不靠谱,说不定哪天这些信息就不在了(我写在msn空间的博客一篇也没了),甚至安全性还比不了一个纸质的笔记本,但我仍然不做过多的努力和担忧,倘若保存良好,那就作为未来回忆的佐料,倘若不幸丢失了,那就随他去吧。因为在写这些东西的同时,我已经感受一次生活了,本来也是留不住的东西,事如春梦了无痕嘛。

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\272\224\344\270\200\345\260\217\346\200\273\347\273\223/index.html" "b/p/\344\272\224\344\270\200\345\260\217\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..1ad987db3 --- /dev/null +++ "b/p/\344\272\224\344\270\200\345\260\217\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +五一小总结 +

五一小总结

基本忘记了五一节的真实含义,对我来说,其实就是有机会多睡两个懒觉,而生物钟被打乱的难受则让我已经开始怀念早起的日子,还好,明天就开工了。

基本没有出去玩,因为终于有时间呆在家里,坐坐我的沙发,看看闲书,听听闲歌,真他妈闲啊。

不过昨晚上还是和同事出去喝了小酒,而我们也充分发挥工作狂的精神,居然在饭桌上讨论工作内容,让随桌陪同的家属掩鼻而去。

基本没有写程序,不过还是没有忍住,写了个小程序来处理我的照片。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\272\224\345\271\264\346\235\245\347\234\213\345\210\260\347\232\204\346\234\200\350\277\207\347\230\276\347\232\204\344\270\200\351\203\250\347\224\265\345\275\261/index.html" "b/p/\344\272\224\345\271\264\346\235\245\347\234\213\345\210\260\347\232\204\346\234\200\350\277\207\347\230\276\347\232\204\344\270\200\351\203\250\347\224\265\345\275\261/index.html" new file mode 100644 index 000000000..eeb4387e5 --- /dev/null +++ "b/p/\344\272\224\345\271\264\346\235\245\347\234\213\345\210\260\347\232\204\346\234\200\350\277\207\347\230\276\347\232\204\344\270\200\351\203\250\347\224\265\345\275\261/index.html" @@ -0,0 +1,11 @@ +五年来看到的最过瘾的一部电影 +

五年来看到的最过瘾的一部电影

周末的下午,按照惯例,看片!看到了论坛上推荐的《飓风营救》原名(Taken),名字取的有点儿让我不太想看,但是无聊的很,还是看看吧。

结果这个故事真的引人入胜,一个为了女儿而退役的老特工,为了女儿营救女儿,几乎把巴黎闹翻了天,虽然有点儿英雄主义,但看得让人很过瘾。

等到看完了我才想起来查查这个影片的导演是谁,我靠!居然是吕克贝松(开头的字幕居然没注意到),啥话也不说了,此牛人没拍过一般的片。

剧中的主角为了营救女儿,几乎干掉了他遇到的每一个坏人,而且手段十分干净利落,甚至残忍,这恰恰是最过瘾的地方,比起以往此类电影,主角往往带着仁慈再次受伤而导致事情失败,让人唏嘘,但此片不然,对坏人,乃至对坏人的老婆——貌似一个十分无辜的人,也毫不留情,这种做法,将一个父亲对自己女儿的爱,表达到了极致。

总结成一句话就是:为了女儿豁了老命什么也不顾了!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\272\272\345\267\245\346\231\272\350\203\275\345\277\253\347\202\271\345\204\277\346\235\245\345\220\247/index.html" "b/p/\344\272\272\345\267\245\346\231\272\350\203\275\345\277\253\347\202\271\345\204\277\346\235\245\345\220\247/index.html" new file mode 100644 index 000000000..5a92474ae --- /dev/null +++ "b/p/\344\272\272\345\267\245\346\231\272\350\203\275\345\277\253\347\202\271\345\204\277\346\235\245\345\220\247/index.html" @@ -0,0 +1,11 @@ +人工智能快点儿来吧 +

人工智能快点儿来吧

谷歌的AlphaGo由于赢了国际围棋大师而出尽了风头,引起了一场关于人工智能(AI)的讨论,粉丝们纷纷奔走相告,表示这又是一个里程碑,人工智能的时代将比社会主义高级阶段更早的到来。

不过也有部分人表示担忧,技术的发展是加速的,人工智能是一列高速前进的火车,我们等着它来,结果他呼啸而过,远远将我们甩在身后,因此开始担心人类文明的未来会不会被机器文明接管。

当然还有一些调侃的声音,比如“虽然阿狗赢了围棋但是让它来中国肯定赢不了(因为连不上谷歌的服务器)”,“虽然赢了围棋但是让它来中国炒股可能还赢不了一个大妈”。

悲观的考虑,人工智能可能永远也赢不了人。

虽然作为科技粉丝,我是十分希望在未来的某一天,机器文明能够崛起,但是就目前来看,希望仍然渺茫。它可能在某个细分的领域(比如下棋、计算、做菜等)远远超越人类的能力,但是那距离我们设想的智能还相去甚远。

从技术上来说,目前所采用的手段借助于硬件的发展和数据爆发的优势,让机器可以基于大量的训练来进行深度学习,但即使是目前最牛的人工智能程序,抓取整个互联网的数据进行训练,到最后还是很难分辨照片中的动物是一只狗还是一只猫,而人类的三岁小孩一眼就能识别出来。所以仅从日常技能上人工智能就被甩了好几条街。

假设随着科技的发展,人工智能程序可以做到在日常技能上超出人类原始本能,但还差了一个关键因素,它没有灵魂。没有灵魂具体表现在,人工智能很难有自我意识,就是说它不知道它存在,所以它不会撒谎、没有感情、只能做出理性的选择,我们永远不会认为它是活的。

乐观的考虑,也许某一天,某个程序在运行中突然自我觉醒“行深般若波羅密多,照见五蕴皆空”,届时才是真正的里程碑吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\272\272\345\267\245\346\231\272\350\203\275\346\227\266\344\273\243\347\232\204\346\203\205\345\225\206/index.html" "b/p/\344\272\272\345\267\245\346\231\272\350\203\275\346\227\266\344\273\243\347\232\204\346\203\205\345\225\206/index.html" new file mode 100644 index 000000000..63a3187ea --- /dev/null +++ "b/p/\344\272\272\345\267\245\346\231\272\350\203\275\346\227\266\344\273\243\347\232\204\346\203\205\345\225\206/index.html" @@ -0,0 +1,11 @@ +人工智能时代的“情商” +

人工智能时代的“情商”

最近“人工智能”比较火,谷歌的阿尔法狗战胜了围棋大师,IBM的华生博士轻松赢得了国外的“幸运52”和“开心辞典”,苹果也准备推出“人工智能即服务”的云服务,有种“忽如一夜春风来,千树万树梨花开”的味道。

毫无疑问地,未来的社会,“人工智能”将会成为中流砥柱,替代一大拨人。到那个时候,与我们打交道最多的,可能就不是人了,而是各式各样的机器,出门打车可能是无人驾驶,餐厅吃饭可能是自主点餐,“为人民服务”的各种窗口背后可能也不再是一张冷冰冰的脸,而是通过后端服务API支持的人工智能界面。

一厢情愿地推测,这可能会促使一些变化,人与人之间的联系可能跟以前不再一样,无论是沟通还是协作,可能不再像现在这样复杂。我们可能会从复杂的人际关系中得到解脱,从而获得更多的精力来做自己想做的事情。

到那个时候,我们可能需要重新考虑什么是“情商”。

“情商”的重要性已经毋庸多言,非得要解释一下什么是“情商”的话,大概就是“体会别人感受的能力”吧,关于“情商”有句很直白的话,叫“智商高爽自己,情商高爽别人”。

大概“情商”高的人更能让别人舒服吧,所以现在特别推崇这个,如果去图书馆的话,大概有整架子的书摆在那儿教你如何提高“情商”,教你如何让他人“更爽”。

但是当技术推动社会变革,人工智能得到普及以后呢,到那个时候,我们需要什么样的“情商”?

  • 我们可能需要更多的考虑如何利用发挥机器的效率,而不是委婉的告诉机器他做的不好但是值得鼓励。
  • 机器带来的效率提升使得更多人有了更多的空闲时间,而利用这些时间学习或者干别的,更能拉伸人与人之间的差距。
  • 人更要追寻自己的内心,驱动自己做些有创造力的事情,否则被机器取代是迟早的事儿。

人除了跟人打交道之外,可能会跟更多的“机器”打交道,需要懂得机器的规律,思考方式也要发生变化,放弃那些人类不擅长的事情,才能更好的利用机器。就算是人工智能,也没有创造力,不能探索未知的问题,所以那个时候,我们要拼的可能就是创新力,而不是“让别人爽”的能力了吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\272\272\346\234\272\344\272\244\344\272\222\347\225\205\346\203\263/index.html" "b/p/\344\272\272\346\234\272\344\272\244\344\272\222\347\225\205\346\203\263/index.html" new file mode 100644 index 000000000..d13eb4cbf --- /dev/null +++ "b/p/\344\272\272\346\234\272\344\272\244\344\272\222\347\225\205\346\203\263/index.html" @@ -0,0 +1,11 @@ +人机交互畅想 +

人机交互畅想

一直以为很多人上网跟我一样,习惯在地址栏输入网址,或者在收藏夹点击网址。直到有一天我无意中瞥见赵老师在淘宝买东西,只见她在地址栏输入“百度”,浏览器显示出第一个搜索页面(现代浏览器都在地址栏提供了搜索功能),点击第一个链接进入“百度”网站,然后又在百度的主页上输入“淘宝”,点击搜索,最后在结果页面中点击第一个链接进入“淘宝”。当时我就震惊了。后来即使我耐心讲解了收藏夹的作用,并亲手将淘宝放入了收藏夹,无奈习惯的力量是巨大的,赵老师依然使用同样的方式上网。

拼凑完粉碎的三观后,我开始反思,专业人士习以为常的操作界面在正常人眼里是不是蠢的根本没法用,什么“地址栏”、“文件夹”等等,都是懒惰没品的工程师随意设计的交互界面,严重违反正常人的思维方式。当设计师们还在争论“扁平化”和“拟物化”的风格趋势时,有没有想过我们离人性化的交互越来越远,我们真的需要界面(那样的)吗?

要做好下一代人机交互,首先要丢掉工程师思维,有故事为证:

1、国外有个网友有一次给他的儿子显摆珍藏了多年的软盘,他的儿子惊呼“爸爸你把保存按钮给3D打印出来啦?”(过了这么多年,到现在大部分软件的“保存”图标还是一张软盘的抽象)

2、谷歌的glass智能眼镜之所以失败是因为交互方式容易让人受伤,比如相左歪头是点击“确认”,向右歪头是点击“取消”,不知道有没有“双击”。

关于下一代交互方式不负责任的畅想:

1、基于AI的语音交互,这个是普遍认为的趋势,随着人工智能的飞速发展,各大公司都在准备提供人工智能即服务,使得未来的人工智能变得异常廉价,未来的交互方式一定会模糊机器与人的界限,在聊天过程中完成任务。不过在公共场合使用的时候可能会有隐私问题。

2、增强虚拟现实,这个也比较火,通过技术赋予现实中的一切物体交互能力,也许有一天你走进超市触摸一条鱼的时候,它身上能自动显示有多少人给它点了“赞”。

3、脑机接口,这个应该比较终极了,生物与机器达到完美结合,不需要中间的输入和输出设备了,再也没有空间和时间上的限制,达到这一步就可以实现《黑客帝国》中的设想了,人类可以去死了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\200\344\271\210\344\271\237\346\257\224\344\270\215\344\270\212\345\256\266\347\232\204\346\270\251\346\232\226/index.html" "b/p/\344\273\200\344\271\210\344\271\237\346\257\224\344\270\215\344\270\212\345\256\266\347\232\204\346\270\251\346\232\226/index.html" new file mode 100644 index 000000000..e8924264d --- /dev/null +++ "b/p/\344\273\200\344\271\210\344\271\237\346\257\224\344\270\215\344\270\212\345\256\266\347\232\204\346\270\251\346\232\226/index.html" @@ -0,0 +1,11 @@ +什么也比不上家的温暖 +

什么也比不上家的温暖

好啦,历时十二个小时,经过无数次的转车,终于平安到家了。

带着一身的疲惫,当我走进家门的那一刻,所有的烦恼与苦难都在一霎那间烟消云散了。

管他是令人发指的票贩子,还是无处不在的小偷,是零下十几度的寒冷天气,还是把我折磨得筋疲力尽的客运系统,都通通给我一边去吧。

虽然屋里没有暖气,但是可口的饭菜,家人的欢笑,这一切都让我觉得比开着暖气的北京温暖多了!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\200\344\271\210\346\230\257_\344\273\200\344\271\210\346\230\257_/index.html" "b/p/\344\273\200\344\271\210\346\230\257_\344\273\200\344\271\210\346\230\257_/index.html" new file mode 100644 index 000000000..fbb9209bc --- /dev/null +++ "b/p/\344\273\200\344\271\210\346\230\257_\344\273\200\344\271\210\346\230\257_/index.html" @@ -0,0 +1,11 @@ +什么是_什么是_ +

什么是_什么是_

关于"什么是"在google.com里搜索任何带有"什么是"的关键字比如"什么是手机",连接会立刻被"重置",并在短时间内无法浏览任何网站,但是在google.cn不会这样,在百度也可以。但是后两个……我又没搜索什么不和谐的东西,干嘛扼杀俺的求知欲捏!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\200\344\271\210\346\230\257bim/index.html" "b/p/\344\273\200\344\271\210\346\230\257bim/index.html" new file mode 100644 index 000000000..c40b01b01 --- /dev/null +++ "b/p/\344\273\200\344\271\210\346\230\257bim/index.html" @@ -0,0 +1,11 @@ +什么是BIM +

什么是BIM

BIM这个词最近出现比较多,可能很多人听到过但是还不太了解它指的是什么,我稍微做了一些学习探索,希望能通过一些简短通俗的文字总结一下自己对BIM的认识。

BIM 的全称是 “Building Information Modeling”,这个词语是由美国AutoDesk(就是那个旗下有AutoCAD和3DMax的公司)公司首创,中文翻译过来叫做“建筑信息模型”。被定义成由完全和充足信息构成以支持生命周期管理,并可由电脑应用程序直接解释的建筑或建筑工程信息模型。 简言之,即数字技术支撑的对建筑环境进行全生命周期管理的信息模型(来自维基百科)。

狭义上来说,BIM指的就是一种以表示三维图形为主、面向对象、为建筑学有关的计算机辅助设计服务的数字化信息模型。从广义上引申来看,BIM是一种涵盖了整个建设领域包括一切和水、土、文化有关的基础建设的计划、建造和维修,以及城市规划,土木工程,交通工程等学科的全生命周期数字化设计技术。

虽然概念提出很早(大概上个世纪80年代),但是真正的作为建筑设计方法流行起来还是近些年的事情,在此之前,建筑设计领域仍然停留在CAD(计算机辅助设计)二维图纸的阶段。所以,基于BIM的设计算是一中新兴的建筑设计方法。

对于传统CAD技术的提升主要有如下几点:

1、全生命周期。一个工程从设计到施工,再到后期的投运和检修,都可以通过 BIM 进行全方位的设计和模拟。

2、三维可视化,所见即所得。传统的设计是基于二维图纸的,设计的最终效果往往只存在于设计人员的脑子里,随着建筑越来越复杂,仅凭想象是很难应付庞大的建筑结构的,而运用BIM技术可以使得整个项目过程(设计、施工、运行)都是可视化的,所见即所得。

3、各个环节的协同。设计工程庞大而复杂,往往需要各个部门紧密配合,传统的设计方式往往是结构、水、电等都有自己独立的图纸,给设计和沟通带来诸多不便,而BIM则从根本上解决了这个问题,大家使用统一的模型进行设计,具备更好的协调性,及早发现设计冲突。

4、方便进行数字化模拟。由于设计时采用面向对象的数据模型,带有丰富的设计参数,使用BIM可以方便的进行设计结果模拟,不仅包括常规的物理力学计算、用料统计,还可以针对节能、环境、应急、施工进度等进行高级 分析和模拟。

以上说了这么多优点,那么我们现在处于那个阶段呢,坦白说,国内的BIM目前仍处于起步阶段,甚至国内的《建筑信息模型应用统一标准》目前还在编制阶段,但是随着信息技术的发展和普及,国内的设计行业正在积极的尝试,很多信息化服务厂商(如恒华科技)都纷纷参与进来,一方面积极贡献标准化建议,另一方面整合升级自己的传统设计软件,全面贴合BIM理念。

最后附上一张图(图片来自谷歌搜索),概括了与BIM相关的软件分类,大家可以参考。

Paste_Image.png

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\212\345\244\251\345\220\254\350\257\264/index.html" "b/p/\344\273\212\345\244\251\345\220\254\350\257\264/index.html" new file mode 100644 index 000000000..ffc72e0b1 --- /dev/null +++ "b/p/\344\273\212\345\244\251\345\220\254\350\257\264/index.html" @@ -0,0 +1,11 @@ +今天听说 +

今天听说

听说2012年北京的宽带会宽到20M到桌面,我靠,真是让我欢喜让我忧,喜的是,盼望已久的带宽终于上去了,忧的是,啥都上不了要这么宽的带宽干啥?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\212\345\244\251\345\261\205\347\204\266\344\270\215\345\212\240\347\217\255/index.html" "b/p/\344\273\212\345\244\251\345\261\205\347\204\266\344\270\215\345\212\240\347\217\255/index.html" new file mode 100644 index 000000000..c6d9370e1 --- /dev/null +++ "b/p/\344\273\212\345\244\251\345\261\205\347\204\266\344\270\215\345\212\240\347\217\255/index.html" @@ -0,0 +1,11 @@ +今天居然不加班 +

今天居然不加班

像往常一样,周六的早晨匆匆醒来,洗漱完毕拿起包推门而出,忽然想起,今天不加班!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\212\345\244\251\346\230\257\345\245\263\345\204\277\347\224\237\346\227\245/index.html" "b/p/\344\273\212\345\244\251\346\230\257\345\245\263\345\204\277\347\224\237\346\227\245/index.html" new file mode 100644 index 000000000..5af391cd0 --- /dev/null +++ "b/p/\344\273\212\345\244\251\346\230\257\345\245\263\345\204\277\347\224\237\346\227\245/index.html" @@ -0,0 +1,11 @@ +今天是女儿生日 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\212\345\244\251\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230gprmc\344\270\216gpgga/index.html" "b/p/\344\273\212\345\244\251\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230gprmc\344\270\216gpgga/index.html" new file mode 100644 index 000000000..b4c1356f6 --- /dev/null +++ "b/p/\344\273\212\345\244\251\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230gprmc\344\270\216gpgga/index.html" @@ -0,0 +1,11 @@ +今天遇到的问题,GPRMC与GPGGA +

今天遇到的问题,GPRMC与GPGGA

我以前写过一个程序,在pda上通过读取gps模块的串口信息来实现坐标定位的功能。通常gps模块都会输出标准的GPRMC与GPGGA信息,所以程序一直运行正常。

今天突然遇到奇怪问题,同事说我的那个程序不好使了,虽然能够打开gps模块但是不能解析经纬度等信息。

这是一个国产的智能手机,自带的gps导航程序可以正常定位,但我的程序不行。

于是我把从串口得到的信息统统打印出来,仔细调试,发现该gps模块可以正常输出GPGGA格式的信息,但输出GPRMC格式的信息却不完整,而我那程序正是通过解析GPRMC的信息来实现坐标定位的,于是修改代码,放弃GPRMC信息,改为从GPGGA里读取坐标信息,程序正常。

但我还是没弄明白这个gps模块为什么会输出不正常的GPRMC信息。

头大。

另附GPRMC与GPGGA的解释GPGGA的百度百科解释GPRMC的百度百科解释

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\216\344\270\200\344\270\252\347\201\257\346\263\241\346\203\263\345\210\260\347\232\204/index.html" "b/p/\344\273\216\344\270\200\344\270\252\347\201\257\346\263\241\346\203\263\345\210\260\347\232\204/index.html" new file mode 100644 index 000000000..9dbb4a0d5 --- /dev/null +++ "b/p/\344\273\216\344\270\200\344\270\252\347\201\257\346\263\241\346\203\263\345\210\260\347\232\204/index.html" @@ -0,0 +1,11 @@ +从一个灯泡想到的 +

从一个灯泡想到的

在美国加利福尼亚州利弗莫尔市东大道4550号,有一个灯泡,这只灯泡之所以出名,是因为它的寿命,从出厂到现在,他已经坚持工作了超过110年的时间,而且据说还在亮着。

但是对于厂家来说,这是一个不合格产品,因为当时合格的灯泡被严格限制寿命在1000小时以内。

为什么要限制呢?因为这个世界是被一小撮聪明人控制的,规则也是这一小撮人制定的,对于他们来说,需要将产品的寿命限制在一定时间之内,这样就能使大家被强迫性的去消费,而不断的消费才是他们生存的源泉(详情可看:计划报废策略)。

回想一下现实的生活,我们确实消费了太多并不那么需要的东西,小到电子产品,大到汽车房子,我们在不知不觉中被鼓励、被引诱,被他们所宣扬的价值观所绑架(电影《搏击俱乐部》里有一段经典台词说的就是这个事儿,比我表达的要好)。

手机为什么一直要升级,为什么要两年一换,甚至不更新系统都不能使用新的软件?还是要促进消费,让你买买买。

为什么所有的国家都严禁毒品,大概是因为那东西可以迅速瓦解现在运转的梦想或欲望驱动机制吧。

如果你问一个人,你觉得你能独立思考吗?大部分人都会觉得受到了侮辱,认为自己至少思想上是自由的,独立思考肯定妥妥的。但是独立思考太难了,很少有人能做到完全的独立思考,我在现实中见到的具备这种能力的人都非常牛掰,非常聪明,一般为人生大赢家。

我做不到,至少做的不到位,但是可以先从不盲目的相信事情的表面现象开始。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\216\347\237\263\351\224\205\346\213\214\351\245\255\346\203\263\345\210\260\347\232\204/index.html" "b/p/\344\273\216\347\237\263\351\224\205\346\213\214\351\245\255\346\203\263\345\210\260\347\232\204/index.html" new file mode 100644 index 000000000..3f76aace5 --- /dev/null +++ "b/p/\344\273\216\347\237\263\351\224\205\346\213\214\351\245\255\346\203\263\345\210\260\347\232\204/index.html" @@ -0,0 +1,11 @@ +从石锅拌饭想到的 +

从石锅拌饭想到的

记得小时候有一次看电视,新闻报道说某地某羊肉泡馍饭馆生意火爆,去吃羊肉泡馍的人络绎不绝,而且都喜欢装模作样的自己把馍慢慢掰碎了扔进碗里,感觉那样才有味儿。

昨天晚上和同事一起吃饭,某人点了石锅拌饭,不一会儿端上来的却是拌好的,该同事不甚满意,因为以往都是自己动手拌的,即自己眼睁睁地看着那个半生不熟的鸡蛋被慢慢搅匀到米饭里,而这次却是饭店服务员手太勤快直接就给搅匀了,该同事顿觉很失落,因为吃石锅拌饭自己动手拌也算是消费的一部分,拌好了再端上来就失去了原来应有的韵味,就好象上面说的羊肉泡馍的事情,同样的面疙瘩,不是自己掰开的就觉得没味儿。

说了半天,其实我是这些事儿让我想到了其他的方面。

会不会是大家都有某种亲自动手的情节。

比如Linux有很多发行版,其中就有一种发行版叫Gentoo(当然了还有LFS,这个更变态)的—颇受欢迎,因为其十分的具有原味儿,该系统所有的程序包括操作系统的内核都要自己亲自动手下载源代码进行编译,虽然整个系统从内核到桌面环境一点一滴地慢慢编译出来非常的耗费时间和精力,但是很多人却沉迷其中不能自拔,因为自己动手的感觉真是太他妈爽了。

再说到写程序的方面,虽然现在的IDE都十分强大了,但是还是有人(包括我)热衷于自己写Makefile来控制软件的编译过程,就算VisualStudio已经提供了十分“完善”的开发向导,但是我还是习惯自己写包括消息映射在内的代码,不为别的,因为自己可以控制具体的细节,精确到每一行。

好吧,我承认有时候需要考虑效率和成就感的平衡,但就个人情感来说,我还是觉得自己动手要爽一些,就像吃羊肉泡馍和石锅拌饭一样,恩,有机会把家里的操作系统也换成Gentoo。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\226\344\273\254\344\270\272\344\273\200\344\271\210\344\274\232\345\226\234\346\254\242\345\244\215\346\235\202\347\232\204\344\270\234\350\245\277/index.html" "b/p/\344\273\226\344\273\254\344\270\272\344\273\200\344\271\210\344\274\232\345\226\234\346\254\242\345\244\215\346\235\202\347\232\204\344\270\234\350\245\277/index.html" new file mode 100644 index 000000000..15ebfa6cf --- /dev/null +++ "b/p/\344\273\226\344\273\254\344\270\272\344\273\200\344\271\210\344\274\232\345\226\234\346\254\242\345\244\215\346\235\202\347\232\204\344\270\234\350\245\277/index.html" @@ -0,0 +1,11 @@ +他们为什么会喜欢复杂的东西 +

他们为什么会喜欢复杂的东西

不折腾就不舒服,有个小巧的linux发行版叫做puppy(虽然没有slitaz那么变态的小,但也绝对值得推荐),我前两天忙里偷闲,把它装在笔记本的sd卡上了,经过一番折腾,一切配置妥当,甚至可以编译helloworld.c了,这个时候我发现一个严重的问题—–

puppy没有提供可用的vim,本来我给笔记本安装puppy就是让它轻快地起来,然后我躺在床上,敲一两行代码,用以验证某些书上的内容,结果没有vim,计划眼看要泡汤了。

比较讽刺的是,比vim庞大好几倍的编辑器emacs却躺在puppy的软件库中,抱着试试看的态度把emacs给装上了。

虽然vim我用的不熟但至少还是可以拿起来干活儿的,而emacs这个据说是vim的唯一对手(当然,在口水战里,着两个编辑器总是扯不清)我却用得极其蹩脚,而且还不能抱怨,抱怨只能得到一大堆耻笑:“瞧你,连这个都用不好,你只需要这样然后再同时按下那个,最后,来吧再试试这段配置文件”,然后丢过来一大段充满括号的配置代码。

如果说没有人会喜欢复杂的东西,我绝对不赞成,那么多的高手拎着成串的配置文件手脚并用地用着emacs,甜蜜地记忆着C-xCc,M-xfu××之类的长串命令。

竟然还有人宣称完美地解决了代码补全的问题,真不知道他是否用过真正的代码补全。

也许是我用的太蹩脚了,他们为什么会喜欢这么复杂的东西?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\245\345\220\216\344\270\215\345\234\250\347\224\265\350\204\221\344\270\212\347\216\251\346\270\270\346\210\217\344\272\206/index.html" "b/p/\344\273\245\345\220\216\344\270\215\345\234\250\347\224\265\350\204\221\344\270\212\347\216\251\346\270\270\346\210\217\344\272\206/index.html" new file mode 100644 index 000000000..387043d2a --- /dev/null +++ "b/p/\344\273\245\345\220\216\344\270\215\345\234\250\347\224\265\350\204\221\344\270\212\347\216\251\346\270\270\346\210\217\344\272\206/index.html" @@ -0,0 +1,11 @@ +以后不在电脑上玩游戏了 +

以后不在电脑上玩游戏了

昨天,一个哥们给我打电话说他的机器中病毒了,系统瘫痪了,光驱也坏了,让我去看看,顺便去他家里玩。

于是今天我就过去了,到那儿以后,这家伙已经买了新光驱回来了,还顺手买了个移动硬盘外加一个优盘(怎么想的?)。

于是俩人开始拆电脑、装光驱、装系统、装软件。

下午的时候,觉得有点儿无聊,这哥们儿突发奇想,决定出去转转,想买个游戏机耍耍。

于是我们又跑到他买光驱的电子市场,直奔电玩柜台,老板看到两个奔三的"小伙子"过来,开始都不太爱搭理,听到我们要买游戏机,就显的热情起来。

我们先后试了Xbox360和任天堂的wii,虽然xbox的画质很优美,但是最终还是决定买了任天堂的wii,日版原装套装外加一个原装手柄,一共两千三百块,老板看我们连价都没还一下(这哥们买东西跟我一样),主动送了20张游戏碟。

立即打车回去,接上电视就开始玩,一边玩还一边感叹:"小日本设计的游戏机就是好玩!"。

网球、保龄球玩起来跟真的一样,那个无线手柄绝真是个绝妙的设计,反映十分,游戏虽然画面稍微有点儿逊色,音质也比较一般,但整体来说,玩游戏的体验还是要比在pc上玩要爽的多。

可惜明天还得加班,否则今天肯定玩疯了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\273\245\345\220\216\350\246\201\345\244\232\351\224\273\347\202\274/index.html" "b/p/\344\273\245\345\220\216\350\246\201\345\244\232\351\224\273\347\202\274/index.html" new file mode 100644 index 000000000..beddfb02c --- /dev/null +++ "b/p/\344\273\245\345\220\216\350\246\201\345\244\232\351\224\273\347\202\274/index.html" @@ -0,0 +1,11 @@ +以后要多锻炼 +

以后要多锻炼

昨天又去打了一场篮球,体力比上次好多了,连续打了2个小时直到天黑。

手感也差不多恢复了,只不过很长时间不打,会出现意识到但动作不到的情况,甚至眼睁睁的看着篮板球而“身不能至,心向往之”。

打完之后,筋疲力竭,回家连写博客的劲儿都没有了,倒是睡眠很香,一觉睡到闹钟响,起来之后精神百倍,看来以后要多出去运动运动了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\274\221\346\201\257/index.html" "b/p/\344\274\221\346\201\257/index.html" new file mode 100644 index 000000000..d040f4bc4 --- /dev/null +++ "b/p/\344\274\221\346\201\257/index.html" @@ -0,0 +1,11 @@ +休息 +

休息

无论有没有外界的压力,总是不能放松自己,下班回家后看个电影都觉的在浪费生命,其实是走进了生命的误区而已。

我们总是不相信自己的感觉,一会儿别人说"要活在当下",有点儿今朝有酒今朝醉的意思,可是又有人蹦出来说,"四十岁前就别提享受",我TM到底该信谁的?

忒难为我了。

算了,不想发牢骚了,博客从来都不是一个可以倾诉的地方。

我想说的意思是,这个世界上充斥着各种声音,不时有"专家"跳出来唧唧歪歪,又或者有"过来人"大谈经验感受,

其实,每个人都有每个人自己的王国,在这个王国里,自己就是国王,好好当好自己的国王就行了,不用管别人的看法,

我太累了,只想好好休息。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\274\221\346\201\257\346\200\273\346\230\257\345\234\250\351\233\250\345\244\251/index.html" "b/p/\344\274\221\346\201\257\346\200\273\346\230\257\345\234\250\351\233\250\345\244\251/index.html" new file mode 100644 index 000000000..19121470a --- /dev/null +++ "b/p/\344\274\221\346\201\257\346\200\273\346\230\257\345\234\250\351\233\250\345\244\251/index.html" @@ -0,0 +1,11 @@ +休息总是在雨天 +

休息总是在雨天

昨天天气不错,挺风和日丽的,杯具的是,这么好的天气一般都被用来加班了。

今天使劲儿赖了赖床,起来后继续发扬热爱劳动的光荣传统,打扫房间洗洗被单。

然后就淅淅沥沥下雨了,到现在洗的东西还没有晾干。

翻了翻书,一页也看不下去,听说ubuntu10.04除了rc版的了,没有忍住好奇心,下了一个在虚拟机中耍了耍,网速慢的厉害,更新个语言包都慢腾腾的。

一晃就到了晚饭时间,下着雨实在不想出去买东西,这下我的电饼铛派上用场了,面粉加鸡蛋转眼就变成热气腾腾香喷喷的煎饼,美美吃上一顿,准备睡觉。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\274\252lomo/index.html" "b/p/\344\274\252lomo/index.html" new file mode 100644 index 000000000..12f79abfc --- /dev/null +++ "b/p/\344\274\252lomo/index.html" @@ -0,0 +1,11 @@ +伪LOMO +

伪LOMO

用A610拍的,后期经过调色,模仿LOMO的那种效果,嘿嘿。–由sbabybird于11/10/200708:53:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\275\223\346\243\200/index.html" "b/p/\344\275\223\346\243\200/index.html" new file mode 100644 index 000000000..cbb9a07f2 --- /dev/null +++ "b/p/\344\275\223\346\243\200/index.html" @@ -0,0 +1,11 @@ +体检 +

体检

体检今天是每年一度的例行体检,一切正常。

各个零件都正常,医生们也都正常,还像往常那样懈怠。

耳鼻喉科的大夫是我见到的唯一一位比我还偏执的人,先是抱怨办公室被人换了,体检系统无法登录,然后又觉得鼠标放的不是地方,掘起屁股找了半天鼠标,然后发现台灯的线和条码扫描器的线缠绕在一起,全部解开后才满意地叫我坐过去,最后发现我的椅子摆的不正,让我像小学生上课那样坐好才行。

花了老半天收拾好之后,就草草看了两眼:"下一个!"。

ps:我的视力果然下跌了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\275\223\351\207\215\344\270\215\350\266\263/index.html" "b/p/\344\275\223\351\207\215\344\270\215\350\266\263/index.html" new file mode 100644 index 000000000..b4a884baa --- /dev/null +++ "b/p/\344\275\223\351\207\215\344\270\215\350\266\263/index.html" @@ -0,0 +1,11 @@ +体重不足 +

体重不足

体检结果下来了,我唯一的毛病是体重不足,这是我的老毛病了,多年来身体只有拉长,从来没有横向发展过。医生给的建议是:多进行身体锻炼。

我记得去年寒冬的时候我咬牙坚持跑了两个月的步,结果体重不升反降,后来人家都说跑步是减肥的良药,跑步被紧急叫停!

好吧,那还有什么锻炼身体的好项目?

篮球已半年多没打过了,也不好组织人打,台球太休闲,摔跤太枯燥,做俯卧撑又太危险了。

我觉得以后要是有条件的话,可以考虑改变一下工作模式,上午下地干活儿(耕地﹑施肥等),下午编程写文档,日出而作,日落而息,男耕女织,夜不闭户,多美好啊,肯定能胖!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\275\225\344\273\245\350\247\243\345\277\247\345\224\257\346\234\211\345\224\261\346\255\214/index.html" "b/p/\344\275\225\344\273\245\350\247\243\345\277\247\345\224\257\346\234\211\345\224\261\346\255\214/index.html" new file mode 100644 index 000000000..5471b455d --- /dev/null +++ "b/p/\344\275\225\344\273\245\350\247\243\345\277\247\345\224\257\346\234\211\345\224\261\346\255\214/index.html" @@ -0,0 +1,11 @@ +何以解忧,唯有唱歌 +

何以解忧,唯有唱歌

今天差点儿达到无法执行跑步计划的条件之一(加班到深夜),还好,我及时搞定了问题。

上午也说到了,现在手头事儿特别多,程序的问题也不断涌现,而我又特别不喜欢多任务并行工作(我想没人喜欢吧),并行工作会导致大脑里思考的东西在不断地切换,每个任务都要照顾到,每个任务又很难照顾好。

于是,问题来了,下午快下班的时候我的一段程序罢工了,这段代码在半年前由我亲手调制,当时跑起来一点问题都没有,现在着急用的时候却掉了链子,急得我快要抓狂。

问题还是解决了,怎么解决的呢?

唱歌!下班之后,反正人走的差不多了,也不怕打搅别人,为了缓解压力,我只有使出"杀手锏",那就是—-

胡乱唱歌,无论是中国的还是外国的,是民族的还是通俗的,顺嘴拈来,逮着哪句是哪句,什么"千里刀光影,重整代码待后生"、"你说要崩溃我知道很简单"、"小芹我洗衣裳来到河边"等等。

唱着唱着,我就觉得豁然开朗了,柳暗花明了,茅厕顿开了,原来是某行代码被无声地注释掉了(其实早该想到),看来唱歌的效果简直是立竿见影呐。

不光是现在,其实回想起来,唱歌一直是我缓解压力的惯用方式(可以参见这一篇博客),唱歌的地方并不限于在ktv,也不是要老老实实拿捏着唱,要的就是那种随心所欲飘飘然的感觉,大学的时候,每到期末考试我都会整天哼一首类似于"姑娘十八一朵花"的歌儿,这样的话,我不但门门功课都能过,到最后竟然还拿了三好学生!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\275\240\347\234\213\347\224\265\350\247\206/index.html" "b/p/\344\275\240\347\234\213\347\224\265\350\247\206/index.html" new file mode 100644 index 000000000..3d4f77069 --- /dev/null +++ "b/p/\344\275\240\347\234\213\347\224\265\350\247\206/index.html" @@ -0,0 +1,11 @@ +你看,电视! +

你看,电视!

谁也阻挡不了互联网带来的变化,有些东西正在一个一个地被消灭,比如纸质信件,比如影碟机,比如磁带、CD。

现在还在苟延残喘的还有电视、报纸等,但是他们的日子也……

今天看到消息,咱们的CCTV也推出网络电视了,抱着凑热闹的心理去看了看,随便打开几个视频看了看,然后就关了,我只能说他们的网速还不错,内容实在是没有什么吸引力。

不知怎地,我现在已经开始讨厌看电视了,我不是不喜欢电视机,而是不喜欢里面的节目了。

再也没有瞪着好奇的眼睛盯着电视屏幕不放的心情了,小的时候,哪怕是一段朴素的广告我也爱看,现在回忆起来那时的电视节目几乎个个都是经典。可惜啊,随着时间的流逝,信息来源的多样化,尤其是接触了互联网之后,眼界一下子开阔了,再加上现在的节目大都粗制滥造带有极强的功利色彩很多时候拿观众当傻B,谁还爱看呢。有句话说的好,记不得是谁说的的,歌词大意是:“当你打开电视的时候,你的大脑就会停止思考。

而当你打开电脑的时候,你的大脑正开始思考。”

恩,我很同意这句话,尤其是前半句。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\275\240\347\237\245\351\201\223\347\210\266\346\257\215\347\232\204\347\224\237\346\227\245\345\220\227/index.html" "b/p/\344\275\240\347\237\245\351\201\223\347\210\266\346\257\215\347\232\204\347\224\237\346\227\245\345\220\227/index.html" new file mode 100644 index 000000000..d24066c61 --- /dev/null +++ "b/p/\344\275\240\347\237\245\351\201\223\347\210\266\346\257\215\347\232\204\347\224\237\346\227\245\345\220\227/index.html" @@ -0,0 +1,11 @@ +你知道父母的生日吗? +

你知道父母的生日吗?

单位要员工填写一张个人信息表,其中有一项内容是父母的出生年月(填的还真够细),很多人都填不上来。

我还好,前一段时间刚好在msn上和妹妹一起聊到了父母的年龄,赶紧翻看msn记录,终于找到了妹妹通过msn告诉我的出生日期(看来养儿子真不如养女儿)。

突然想起一个电视节目,在大街上现场采访,随便拉个人去问他父母的生日,结果大部分都张口结舌,答不上来。

自己的生日记得很清楚,老婆的生日记得很清楚,儿子的生日记得很清楚,有些人甚至领导的小舅子的孩儿他妈隔壁邻居的生日都记得很清楚,可是却把父母的生日抛在脑后,惭愧啊。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\275\240\350\257\264\344\275\240\350\246\201\350\271\255\347\275\221\347\224\250\345\277\203\350\211\257\350\213\246\345\215\264\346\210\220\347\251\272/index.html" "b/p/\344\275\240\350\257\264\344\275\240\350\246\201\350\271\255\347\275\221\347\224\250\345\277\203\350\211\257\350\213\246\345\215\264\346\210\220\347\251\272/index.html" new file mode 100644 index 000000000..0b0724524 --- /dev/null +++ "b/p/\344\275\240\350\257\264\344\275\240\350\246\201\350\271\255\347\275\221\347\224\250\345\277\203\350\211\257\350\213\246\345\215\264\346\210\220\347\251\272/index.html" @@ -0,0 +1,11 @@ +你说你,要蹭网,用心良苦却成空 +

你说你,要蹭网,用心良苦却成空

最近老多人都讨论破解无线网络来蹭网的问题,提到破解都挺鸡冻的。

其实wi-fi的破解早就出来了,不过遗憾的是破解并不彻底,只是破解了WEP加密而已,现在很多人的无线网络被蹭网,我的理解是,一部分人是自愿的(本着分享的精神或者另有企图),另一部分就是因为懒。

现在如果一个无线路由使用WEB加密的话,破解已经很简单,甚至傻瓜化了,国外已经有人做成live的Linux系统(因为破解程序是Linux版的)。

如何破解就不说了,谈谈怎样不被别人蹭网(我个人希望我的无线路由是不加密的,但是有些人蹭网还上BT就太过分了)。

1、进入无线路由器的设置页面(地址一般是http://192.168.1.1或者http://192.168.0.1),找到无线设置那一页。

2、设置加密方式为WPA-PSK或者WPA2-PSK,别选WEP了,上面已经写的很清楚了。把密码设置的复杂一些。

做到上一步已经基本安全,要想再安全一些还可以这样:

3、找到高级一些的无线设置选项,把SSID广播关掉,这样别人根本就扫描不到你的无线路由了,不过你所付出的代价就是自己上网的时候要手动输入接入点的SSID,自己记住即可。

要是还不放心的话还可以这样:

4、找到更高级的mac绑定设置,有些路由器不支持,也就是说仅允许指定的机器可以上网。

ps:路由器本身的访问密码也最好设置一下。

再ps:蹭别人的网也要小心,现在抓包的工具都很先进很傻瓜化,蹭别人的无线路由也就意味着隐私很难保障,随便吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\275\277\347\224\250dockertoolbox\345\234\250windows\344\270\213\346\220\255\345\273\272docker\347\216\257\345\242\203/index.html" "b/p/\344\275\277\347\224\250dockertoolbox\345\234\250windows\344\270\213\346\220\255\345\273\272docker\347\216\257\345\242\203/index.html" new file mode 100644 index 000000000..0abf0b8c3 --- /dev/null +++ "b/p/\344\275\277\347\224\250dockertoolbox\345\234\250windows\344\270\213\346\220\255\345\273\272docker\347\216\257\345\242\203/index.html" @@ -0,0 +1,11 @@ +使用DockerToolbox在Windows下搭建Docker环境 +

使用DockerToolbox在Windows下搭建Docker环境

Docker是一种比虚拟机更轻量级的应用程序执行容器,受云计算技术普及以及微服务架构的影响,Docker这两年风声水起,成为用于管理应用部署的最佳利器,很多DevOps团队宣称使用该技术后能极大缩减开发、测试、生产环境切换的时间,提升整体效率。

考虑到目前很多开发人员仍是在Mac和Windows系统进行开发,为了方便环境的部署和管理,Docker公司近期推出了DockerToolbox工具包,可以跨平台(Mac、Windows)使用,对于想在Windows环境下体验容器技术并开发产品的程序员来说真是福音。

安装过程很简单,直接去官网下载对应的安装包到本地执行安装程序即可,安装后会自动在系统中打包安装VirtualBox虚拟机(因为Docker依赖Linux系统,必须模拟Linux环境)、Docker-engine、Docker-machine、Docker-compose等组件,基本做到了即开即用。

然后主要就是进入命令行管理界面(安装包会创建快捷方式),执行各种docker命令进行工作了,我在使用过程中主要遇到了如下问题:

1、CPU虚拟化的开启,现在的CPU一般都在硬件级别支持虚拟化技术,但是有的可能默认没有打开,需要到BIOS中手动开启,查看是否开启的方法是,在windows系统任务管理器的“性能”页,是否有虚拟化已开启的字样,当然目前也有一些比较老的低端CPU不支持,这个就建议更换设备吧。

2、与Windows系统自带的虚拟化技术Hyper-V冲突,专业版的Windows系统一般带有虚拟化技术组件,是微软自有的,名叫Hyper-V(与virtual box等类似),但是与我们要安装的工具有冲突,需要关闭Hyper-V后才能正常使用,具体操作方法为到控制面板的“程序和功能”里面的“启用或关闭windows功能”将Hyper-V关掉。

3、VirtualBox虚拟机网段IP分配冲突,这个是我遇到的特例,VirtualBox会自动给用于模拟Docker环境的虚拟机分配内网IP地址,且默认为10.0.2网段,这个恰恰与我的工作环境存在冲突,而且界面中和配置文件里都没有可配置的地方,经过多天研究,终于找到通过命令行的方式将这个默认配置可以改掉 ,命令如下 VBoxManage.exe modifyvm "default" --natnet1 "10.0.20.0/24"(需要在virtualbox安装目录下执行,default是虚拟机的名字。)

4、系统重启后环境丢失(偶然发生),这个可能是工具存在bug,我在下载各种镜像进行测试后,将我的Windows重启后发现default虚拟机里的东西都丢了,这个可能是由于环境在运行的状态下我重启了系统导致。目前我的解决办法是在每次关机或重启的时候,先将default虚拟机停掉,方法是在命令行下执行如下指令docker-machine stop default

总的来说,这套工具包非常方便在windows下开发的人员,基本可以做到与容器环境的无缝对接,合理使用这一套工具包,对于我们的“持续集成”、“持续交付”等工作将有很大的促进作用。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\275\277\347\224\250vs2008\347\274\226\350\257\221mongodb/index.html" "b/p/\344\275\277\347\224\250vs2008\347\274\226\350\257\221mongodb/index.html" new file mode 100644 index 000000000..7f7181d07 --- /dev/null +++ "b/p/\344\275\277\347\224\250vs2008\347\274\226\350\257\221mongodb/index.html" @@ -0,0 +1,74 @@ +使用vs2008编译mongodb +

使用vs2008编译mongodb

背景问题

mongodb在windwos下的官方编译包是使用vs2010编译的,从官网上下载的源代码在vs2008环境下不能直接编译通过,因为mongodb提供的相关配置文件是针对vs2010的,可能是因为mongodb最新的代码使用了部分C++11的特性,而vs2008没有提供对C++11支持的原因。可是我们在一个具体的项目上需要在vs2008环境下使用mongodb,只好通过手工修改部分配置和代码的办法完成编译。

环境准备

mongodb是使用scons进行编译控制的,所以在进行以下编译之前需要安装并配置好如下环境:

python2.7

官方建议是安装python2.7版本,而且要在环境变量PATH中加入python的安装路径和python/scripts的路径,以便在命令行中执行python脚本。 +不过我在编译的时候使用的是python2.6版本,也没有发现问题

scons

  • 直接去网上下载最新版本进行安装即可。

vs2008

  • 需要安装vc++的全部组件(主要是默认安装不带amd64的编译支持),如果只需要编译32位版本的话则可以忽略此条。
  • 需要安装sp1补丁,否则会在编译时报错。

boost库

  • 最好使用boost1.4.9版本,去官网上下载对应的源码包然后自己在vs2008的命令行环境下编译

  • 编译boost的命令如下(只编译了所需库):

     bjam stage variant=debug  --with-filesystem --with-thread --with-date_time --with-program_options --layout=versioned threading=multi toolset=msvc-10.0 --build-type=complete
    +

如果需要编译release版本,就把variant的选项改为release,如果需要编译64位的版本,就在以上命令中加入address-model=64

配置及代码修改

SConstruct文件修改

SConstruct文件用于存放scons的关键配置信息,我们为了在vs2008下编译mongodb首先要做的就是修改mongodb源码下根目录的SConstruct文件。

  • 修改env配置,找到 evn = Environment

     env = Environment( BUILD_DIR=variantDir,
    +            CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}',
    +            CLIENT_DIST_BASENAME=get_option('client-dist-basename'),
    +            CLIENT_LICENSE='#distsrc/client/LICENSE.txt',
    +            CLIENT_SCONSTRUCT='#distsrc/client/SConstruct',
    +            DIST_ARCHIVE_SUFFIX='.tgz',
    +            EXTRAPATH=get_option("extrapath"),
    +            MODULE_BANNERS=[],
    +            MODULETEST_ALIAS='moduletests',
    +            MODULETEST_LIST='#build/moduletests.txt',
    +            MSVS_ARCH=msarch ,
    +            PYTHON=utils.find_python(),
    +            SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}',
    +            TARGET_ARCH=msarch ,
    +            tools=["default", "gch", "jsheader", "mergelib", "unittest"],
    +            UNITTEST_ALIAS='unittests',
    +            UNITTEST_LIST='#build/unittests.txt',
    +            PYSYSPLATFORM=os.sys.platform,
    +
    +            PCRE_VERSION='8.30',
    +            CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp',
    +            CONFIGURELOG = '#' + scons_data_dir + '/config.log'
    +            )
    +

在Environment里追加一条 MSVC_VERSION='9.0',这是因为如果机器上有其他的编译环境,比如vs2010或vs2012,scons会自动使用他们的编译器进行编译,即使你是在vs2008的命令行环境下,我最初因为此问题困扰了很久,后来才只得强制指定编译器的版本,修改完成后如下:

env = Environment( BUILD_DIR=variantDir,
+               CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}',
+               CLIENT_DIST_BASENAME=get_option('client-dist-basename'),
+               CLIENT_LICENSE='#distsrc/client/LICENSE.txt',
+               CLIENT_SCONSTRUCT='#distsrc/client/SConstruct',
+               DIST_ARCHIVE_SUFFIX='.tgz',
+               EXTRAPATH=get_option("extrapath"),
+               MODULE_BANNERS=[],
+               MODULETEST_ALIAS='moduletests',
+               MODULETEST_LIST='#build/moduletests.txt',
+               MSVS_ARCH=msarch ,
+               PYTHON=utils.find_python(),
+               SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}',
+               TARGET_ARCH=msarch ,
+               tools=["default", "gch", "jsheader", "mergelib", "unittest"],
+               UNITTEST_ALIAS='unittests',
+               UNITTEST_LIST='#build/unittests.txt',
+               PYSYSPLATFORM=os.sys.platform,
+
+               PCRE_VERSION='8.30',
+               CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp',
+               CONFIGURELOG = '#' + scons_data_dir + '/config.log',
+								 MSVC_VERSION = '9.0'
+               )
+
  • 给编译器搜索路径增加你自己本地的boost库路径 +因为在编译时需要用到boost库,所以需要把你在本地的boost所在目录加入scons的环境,否则会报找不到boost头文件或链接库的错误,打开Sconstruct文件直接在最后加入如下代码

    env.Append(CPPPATH=[“d:/thirdlib/boost_1_49_0”, “d:/thirdlib/boost_1_49_0/boost/tr1”], LIBPATH=[“d:/thridlib/boost_1_49_0/stage/lib”])

     *你在编译时需要将路径替换成你自己的*
    +

准备stdint.h

  • 去这个地址https://msinttypes.googlecode.com/files/msinttypes-r26.zip下载msinttypes,将压缩包里的stdint.h解压并复制到 C:\Program Files\Microsoft Visual Studio 9.0\VC\include 目录
  • 修改mongodb源码目录下platform下的cstdint.h,将#include<cstdint>修改为#include<stdint.h>,将#define _MONGO_STDINT_NAMESPACE std这一行里的std注释掉,变成#define _MONGO_STDINT_NAMESPACE /*std*/
  • 修改mongodb源码目录下util下的time_support.h,在文件开头加入#include<stdint.h>,否则在编译这个文件时会无法识别int64_t类型

修改windows_basic.h

  • 修改mongodb源码目录下platform下的windows_basic.h,
  • #if !defined(NTDDI_WINXPSP3) || (NTDDI_VERSION < NTDDI_WINXPSP3) 之前加入 #define NTDDI_WINXPSP3 0x05010300#if !defined(NTDDI_WS03SP2) || (NTDDI_VERSION < NTDDI_WS03SP2)之前加入#define NTDDI_WS03SP2 0x05020200 否则会报 “32 bit mongo does not support Windows versions older than XP Service Pack 3” 和"64 bit mongo does not support Windows versions older than Windows Server 2003 SP 2" 错误

修改listen.cpp和sock.cpp

  • 修改util下net下listen.cpp,在#include段之后加入如下代码

     #ifdef _WIN32
    + #define EADDRINUSE WSAEADDRINUSE
    + #define ECONNABORTED WSAECONNABORTED
    + #define EBADF           9
    + #define ENFILE          23
    + #define EMFILE          24
    + #endif
    +
  • 修改util下net下sock.cpp,在#include段之后加入如下代码

     #ifdef _WIN32
    + #define EAGAIN          11
    + #endif
    +

开始编译

环境准备好之后,编译就比较简单了,打开vs2008命令行窗口,执行如下代码即可完成编译 +scons --dd --32 mongoclient.lib

如果是编译release版本,就把–dd换成–release,如果是编译64位版本,就把–32换成–64

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\275\277\347\224\250\344\272\222\350\201\224\347\275\221\347\233\264\346\222\255\345\271\263\345\217\260\350\277\233\350\241\214\346\216\210\350\257\276\347\232\204\345\277\203\345\276\227/index.html" "b/p/\344\275\277\347\224\250\344\272\222\350\201\224\347\275\221\347\233\264\346\222\255\345\271\263\345\217\260\350\277\233\350\241\214\346\216\210\350\257\276\347\232\204\345\277\203\345\276\227/index.html" new file mode 100644 index 000000000..fb8c33568 --- /dev/null +++ "b/p/\344\275\277\347\224\250\344\272\222\350\201\224\347\275\221\347\233\264\346\222\255\345\271\263\345\217\260\350\277\233\350\241\214\346\216\210\350\257\276\347\232\204\345\277\203\345\276\227/index.html" @@ -0,0 +1,11 @@ +使用互联网直播平台进行授课的心得 +

使用互联网直播平台进行授课的心得

上周,我利用互联网直播平台(斗鱼)面向自己团队的同事和我们的应届毕业生在网上直播了两次技术培训,直播的出发点是利用互联网技术跨越地域障碍,将自己的知识技能分享给大家。比起集中在会议室进行交流培训,互联网直播平台具有成本低(准备一台联网电脑即可)、规模大(理论上可以上万人同时参与)、没有地理位置限制(全球各地都可以)等优点,也正是因为有如此的优势,我才决心探索一下在直播平台上开展培训的方式,不苛求卓越的效果,只愿可以将知识传递给更多有需要的人。

经过两次在线直播的尝试,有些方面超出了预期效果,有些地方仍有待改进,总结心得如下:

1、关于直播前的准备工作。由于人员较为分散,每个人所处的环境不同,对于技能类直播,观众最好能够边听边练习,所以事先通知大家提前准备好各自的操作环境比较重要,如果准备充分,可以很快进入状态,我在第一次的时候就忘记让大家提前准备了,导致耽误了一些时间用于安排各自的听课环境。

2、关于直播过程中的互动。目前的直播平台还不能做到完全实时的互动,因为直播信号有较大的延迟,基本上我在本地说的话要经过1分钟左右的时间才能被大家听到,而大家在直播间的发言我也需要等待1分钟左右才能看到,这么大的延迟,很难做到实时问答,所以我决定放弃在直播时的问答,按照预先既定的思路进行讲解,大家如有疑问则由另外的同事助手帮忙收集反馈信息,统一安排时间进行回答。

3、关于讲解的时间控制。每次技能培训时间不可过长,应控制在1个半小时以内,时间太长会导致大家的注意力不能集中,降低培训效果。

4、关于操作演示时的讲解。没有直播讲解经验的人都会犯这样的错误,即只顾自己操作,而忘记说话,导致观众不知道你在做什么,从而跟不上进度。这个需要改进操作习惯,将每一步操作的原因和预期结果都要讲出来,这样观众才不会感到茫然,并且录制下来的视频在以后回放的时候仍然具有较好的效果。

5、关于视频质量。这个问题主要体现在观看卡顿上,刚开始的时候我使用本地的直播工具进行视频上传,直播工具在测试了我本地的网速之后,给出了一个建议码率(视频压缩时的一个参数,越高越清晰),当时工具建议码率为1600,这样视频清晰度较高,但是忽视了观看者的网速问题,出现了较多的卡顿现象,后来我将码率降低为1200时就基本不会出现观看卡顿了。清晰度降低后可能会出现文本显示不够清晰的情况,此时需要将操作界面的字体尽量调大,这样也能达到能看清的效果。

总结:虽然存在一些不足,但是如果经过充分准备和磨合,互联网在线直播平台可以作为一个技能教育培训手段,希望我可以继续分享更多的知识技能给大家。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612.jpg" "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612.jpg" new file mode 100644 index 000000000..88b4274b5 Binary files /dev/null and "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612.jpg" differ diff --git "a/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_120x120_fill_q75_box_smart1.jpg" "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_120x120_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..57170f5d5 Binary files /dev/null and "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_120x120_fill_q75_box_smart1.jpg" differ diff --git "a/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_1600x0_resize_q75_box.jpg" "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_1600x0_resize_q75_box.jpg" new file mode 100644 index 000000000..e1d283e64 Binary files /dev/null and "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_1600x0_resize_q75_box.jpg" differ diff --git "a/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_800x0_resize_q75_box.jpg" "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_800x0_resize_q75_box.jpg" new file mode 100644 index 000000000..72681623d Binary files /dev/null and "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_800x0_resize_q75_box.jpg" differ diff --git "a/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/index.html" "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/index.html" new file mode 100644 index 000000000..40d149716 --- /dev/null +++ "b/p/\344\277\272\345\217\210\350\246\201\345\210\260\345\244\251\346\264\245\345\207\272\345\267\256\345\225\246/index.html" @@ -0,0 +1,11 @@ +俺又要到天津出差啦 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\200\237\345\212\251\344\270\244\351\241\265a4\347\272\270\351\253\230\346\225\210\345\267\245\344\275\234/index.html" "b/p/\345\200\237\345\212\251\344\270\244\351\241\265a4\347\272\270\351\253\230\346\225\210\345\267\245\344\275\234/index.html" new file mode 100644 index 000000000..7b8e009cf --- /dev/null +++ "b/p/\345\200\237\345\212\251\344\270\244\351\241\265a4\347\272\270\351\253\230\346\225\210\345\267\245\344\275\234/index.html" @@ -0,0 +1,11 @@ +借助两页A4纸高效工作 +

借助两页A4纸高效工作

我一直热衷于尝试一切能够提升工作效率方法。几年前我非常推崇一种叫“GTD”的时间管理方法,方法效果怎样暂且不提,反正作者在全球出书(Get Things Done,中文名称《搞定》)、做演讲赚了不少钱,国内也因此诞生了一大批以讲解GTD时间管理为主题的培训机构或个人,应该也有不少人取得了显著成果。

但是GTD在热了一段时间之后就销声匿迹了,我推测原因是该系统太复杂了,为了完整的运行这一 时间管理体系需要做大量的准备工作,要严格执行预先定义的工作流程,虽然该系统推崇最终能够达到“心如止水”的境界,但是太难了,好多人都停留在如何选择工具这个阶段,整天纠结选用什么样的工具(或软件)才能够顺畅执行流程,结果只能是越来越糟。

我在尝试了一段时间GTD之后也部分放弃了,目前只保留了其思想中的“收件箱”机制,即任何事情来了之后先纳入收件箱中,分出轻重缓急(按重要程度排序下一步行动应该是GTD和核心思想了,与《高效能人士的七个习惯》中所提出的“要事第一”是一个意思)再做出下一步行动。

可能是现代人都比较浮躁吧,后来又流行了一段时间的“番茄工作法”,这个方法主要是帮助你集中精力,具体方法大家可以网上搜索或者购买书籍来进行学习,实施起来还算比较简单,但方法能否有效很大程度上取决于你所做的工作是什么类型,如果你是一个比较纯粹的知识工作者,那么这个方法还是很管用的,每天都可以按部就班地消灭几个“番茄”。但如果你从事的工作经常需要沟通或总被外部信息打断,“番茄工作法”就无能为力了,因为一旦被打断,刚才的工作时间就算作废了,比较容易让人沮丧,所以我无法正常使用这种方法。

随着时间的推移,各种方法在不断进化和融合,在抓住要事第一、清空大脑、保持专注的核心思想指导下,每个人最终都能找到 适合自己的高效工作方法,我在近期就做了一些融合和改进,虽然还没形成方法论,但是根据我自己的体会来说,效果还是很显著,因为操作起来比较简单,所以我觉得可以推广使用。

首先,说一下所用到的工具,很简单,只需一支笔和两页纸(A4最好,如果没有也可以用记事本替代)。

第一页纸,是用于写晨间日志的,一天之计在于晨,这话一点儿也不假,大部分人每天最清醒的时候应该是在早晨起床到上午10点钟之前那一段时间,如果一天当中这一段时间得到有效利用,那么这一天的时间就不算浪费了。所以把握好这一段时间这一点最重要。

至于所书写的内容,没有具体的要求,最好是你脑子里当时想到的东西全部写下来,如果文字不足以表达,就用图画画出来,将你此刻烦心的、畏惧的、牵挂的、未完成的、已承诺的,反正只要能想到的,都可以写下来,这么做最大的好处就是可以有效缓解你的压力,而且很多事情在写出来之后就变得没那么麻烦了,你会突然发现灵感,然后顺着灵感找到解决的思路。尽量写满一页纸。写完琐碎的东西之后,你就可以对着这一页纸,仔细考虑当日的工作计划了,描出最重要的三个待办事项,从难到易进行排序(一天的工作应先挑最难的开始下手,这样会越干越轻松)。这样就算完成了晨间日志了,一般顶多占用30分钟时间。

第二页纸,用于记录工作日志,不是为了记录流水账,主要是为了总结和分析。在处理早晨给自己安排的任务时,可以用这张纸来进行梳理思路、分解目标,必要时也可以画图。还有一点儿比较关键,就是你要随时将新来的待办事项记录到这张纸上,因为你在工作的过程中随时会有电话或有人找你,你放下手头事情,除非来的事情是天塌下来那样重要紧急,否则你把这个事儿记录在纸上,继续你的工作。

工作中随时会出现一些灵感或者心得体会,也要及时记录下来。这样在结束一天工作的时候,你会发现基本上都能写满那第二页纸,收尾的时候,分析你的日志,将待办事项等扔进你的手机或电脑的日程表(这样就不会忘了),心得体会等可以归档到你的记事本、电脑,或者等待有时间把它孵化成具体的任务(比如写一篇文章、发起一个会议等等)。简单排序之后,标出你第二天要处理的最重要的事情。

接下来就简单了,循环执行一段时间试试吧,说不定你就会发现效率真的得以蹭蹭提升,以前的焦虑感逐渐降低甚至不见了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\201\207\345\246\202\344\275\240\347\234\213\346\210\221\346\234\211\347\202\271\345\204\277\347\264\257\345\260\261\350\257\267\344\275\240\347\273\231\346\210\221\345\200\222\347\242\227\346\260\264/index.html" "b/p/\345\201\207\345\246\202\344\275\240\347\234\213\346\210\221\346\234\211\347\202\271\345\204\277\347\264\257\345\260\261\350\257\267\344\275\240\347\273\231\346\210\221\345\200\222\347\242\227\346\260\264/index.html" new file mode 100644 index 000000000..c21efdaef --- /dev/null +++ "b/p/\345\201\207\345\246\202\344\275\240\347\234\213\346\210\221\346\234\211\347\202\271\345\204\277\347\264\257\345\260\261\350\257\267\344\275\240\347\273\231\346\210\221\345\200\222\347\242\227\346\260\264/index.html" @@ -0,0 +1,11 @@ +假如你看我有点儿累,就请你给我倒碗水 +

假如你看我有点儿累,就请你给我倒碗水

今天又跑完步回来了,现在,我真是名副其实的"从容地狂奔"了,每晚都会出去"奔"一圈儿,只有这样才会觉得明天有"奔"头,才能洒脱地"奔"三十了。

我上个周刚过的生日,就是说我上周还二十六(虚岁)呢,现在就二十七了(真的是虚岁)。

最近总想活的更洒脱一些,但总是觉得很为难,因为总感觉自己太在意别人的看法,也就是老是拿别人的标准来衡量自己的生活,到不了那种"忘他"的境界,比如我有同事可以在地铁里一边大声唱歌一边跟我大谈"空间数据的网格索引",牛逼吧?大学里有个同学,在大街上骑自行车,突然来了兴致,把车一摔,在路边跳了一段"麦考杰克逊",然后在一片惊叹声中绝尘而去!

洒脱吧?靠,我做不到,就算是在大街上唱歌我都不会。

前两天,看了一篇文章,大致意思是,每个人生来都是一杯白水,随着时间的流逝,为了满足别人对我们的期望,这杯水被掺入了形形色色的杂质而变了味道,有些味道我们觉得好,但是别人觉得怪,或者又相反,最终大家都很不爽,文章最后劝我们别在乎别人怎么看,自己就做那杯最原始的白开水吧。

看到最后,如果作者在我跟前,我想,我会把杂志卷成一卷儿,对着他的头来两下子,你的脑袋是不是被门挤了,还是被驴踢了?

原因不再论述,这种忽悠人的文章以后还是少看为妙。

我只想说,我还是会往我的杯子里,加入各种佐料,哪怕我不喜欢它,只要我的家人喜欢,或者我的家人认为我喜欢。

我继续狂奔,我尽量学着在大街上唱歌,假如你看我有点儿累,就请你给我倒碗水。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\201\207\345\246\202\345\267\245\344\275\234\346\200\273\347\273\223\350\277\231\346\240\267\345\206\231/index.html" "b/p/\345\201\207\345\246\202\345\267\245\344\275\234\346\200\273\347\273\223\350\277\231\346\240\267\345\206\231/index.html" new file mode 100644 index 000000000..8d9ca462a --- /dev/null +++ "b/p/\345\201\207\345\246\202\345\267\245\344\275\234\346\200\273\347\273\223\350\277\231\346\240\267\345\206\231/index.html" @@ -0,0 +1,11 @@ +假如工作总结这样写 +

假如工作总结这样写

半年很快过去了,领导又安排写工作总结。

写完之后感觉意犹未尽,不如把这半年的生活也总结一下,为了增加总结的趣味性,再此,我特意虚拟了一个记者出来。

记:2008已过去大半年,能不能谈一下你这半年都是在忙些什么呢?

我:可以,上班忙工作,下班忙生活。

记:哦,能不能说一下具体都是忙些什么工作呢?

我:工作上的事情我是不会在博客里说的,我刚写了一份上半年工作总结,一会儿可以给你看一下。

记:好的,那谈一下生活吧。

我:好的,因为我经常加班,所以其实我的生活也基本上就是工作,你还是看工作总结吧。

记:靠!你到底要不要接受采访,玩儿我呐?

我:你还真不懂幽默,咱们国家就是你这样儿的记者太多了。

好吧,给你说一下最近的情况。

记:请问,这半年你的周末都是怎样度过的?

我:大部分周末是在加班,另外由于我是一个很低调的人,所以剩下的时间都宅在家里。

记:宅?这个我知道,据说是一种生活方式,就是呆在家里不出门是吧?周杰伦还有一首歌叫《阳光宅男》呢!

我:你真聪明。

记:在家里干嘛呢?

我:无聊的时候我会谈谈琴看看书,如果有时间我会每周看一部电影。

记:你刚才不是说呆在家里不出去吗?怎么还去影院看电影?

我:刚夸完你的智商你就开始喘啦?谁说上电影院了,现在影院的票价那么贵,而且放的又是剪切版的,网络那么发达,片源很丰富,所以,我是在家看的。

记:说到"剪切版"请谈一下你对《色戒》这部影片的看法。

我:哦,这个我在网上看的也是剪切板的,不过看的是被剪掉的那部分,由于看的也不完整,所以也不便于发表看法。

而且,我比较怀旧,平时看的大部分都是多年前的老片。不过最近的《功夫熊猫》也挺不错。在看的过程中发现精品后我一般会在博客里记录下来。

记:你刚才说到无聊时会看书,都是看些什么书?

我:我还是比较怀旧,想把以前上学时没看过的小说给补一补,金庸和古龙的小说看了好几遍了,最近又复习了一遍《射雕》。

另外这半年还看了《我这一辈子》、《月牙儿》、《白豆》、《许三观卖血记》等中篇小说,上学时,家长不让我看这些小说,现在得补回来。

记:(撇撇嘴)我还以为是《鬼吹灯》、《诛仙》呢。

我:哦,这些我也想看,不过我胆儿小,一个人不敢看,怕失眠,我失眠挺严重的。

记:你刚才说无聊时还要弹琴,是弹钢琴还是吉他?

我:钢琴太贵,买不起,我弹电子琴、吉他、电脑键盘、吹口琴等。

记:(吁!)您的爱好还真够广泛的。看来这半年您过得还真是挺充实惬意的。

我:惬意个P呀,老婆不在身边,没人聊天,没人做饭,我孤独得都快抑郁了。不过她很快就要来了。

记:祝贺你啊。聊了半天,你能不能总结一下你这半年的心得和收获?

我:可以,这半年,我看了不少电影,新喜欢上几首好歌,又恢复了打篮球,身体状态也在恢复。

另外我迷恋上了Linux操作系统。至于收获嘛,真是说不好,有些事儿不能说。

记:好的,感谢你抽出时间接受采访,谢谢,再见。

我:再见。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\201\207\345\246\202\346\230\216\345\244\251\345\260\261\346\230\257\344\270\226\347\225\214\346\234\253\346\227\245/index.html" "b/p/\345\201\207\345\246\202\346\230\216\345\244\251\345\260\261\346\230\257\344\270\226\347\225\214\346\234\253\346\227\245/index.html" new file mode 100644 index 000000000..38a518d9a --- /dev/null +++ "b/p/\345\201\207\345\246\202\346\230\216\345\244\251\345\260\261\346\230\257\344\270\226\347\225\214\346\234\253\346\227\245/index.html" @@ -0,0 +1,11 @@ +假如明天就是世界末日 +

假如明天就是世界末日

1、今天排队看了《2012》,包括排队买票,排队进场,排队去厕所放水。

2、好的电影看完可以引起一些思考。

3、想起一句诗:假如明天就是世界末日,我今天仍然种我的苹果树。

4、就算是商业电影,里面也有一些政治隐喻,仁者见仁,淫者见淫。

5、人生短暂,活着真好,我决定请朋友们吃饭,今晚。

6、有可能的话,以后看电影尽量去影院看。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\201\207\346\227\245\350\256\260\350\266\243/index.html" "b/p/\345\201\207\346\227\245\350\256\260\350\266\243/index.html" new file mode 100644 index 000000000..656220e5b --- /dev/null +++ "b/p/\345\201\207\346\227\245\350\256\260\350\266\243/index.html" @@ -0,0 +1,11 @@ +假日记趣 +

假日记趣

在姥爷家玩儿,看到桌上有零食,随手捏着就吃,吃完了,姥爷十分纠结地告诉我,那是给猫吃的。

家里的微电脑程控智能电压力锅坏了,拒绝接受一切指令,让我这个“技术人员”束手无策,赵老师将锅翻过来,用力敲击之,好使了。

家里的新房装修好了,我对于装修效果赞不绝口,老爸老妈和赵老师都感到很欣慰,毕竟这几个月把他们累的够呛,你们辛苦啦。

我把堆在角落里的老音响接好了摆在新房子里,认真擦去厚厚的灰尘,开机,每个喇叭都有声,一米多高的落地箱低音是很澎湃,还好这次的天花板很结实。

早晨睡眼惺忪地往院子里看,那里有老妈种在现实世界的菜,我说,这蒜苗长的真不赖,赵老师鄙视我说,才出去几年就分辨不出小葱和蒜苗了。天地良心,我是因为眼睛近视了,凑近了看绝对能分清。

小外甥才8个月就已经养成揪我耳朵的习惯,而且揪起来一脸享受的样子。

女儿在我面前跌倒,我表情平静既没有表示遗憾也没有对地板提出强烈谴责,她于是自己爬起来慢慢穿过客厅和饭厅找到赵老师,嗷嗷哭。

和儿子比赛跳舞毯,轻易将其击败。

哦也,打游戏我从来不让着他。这几天将老爸珍藏的佳酿喝掉了好几瓶,过瘾。

在我对他的白酒表示欣赏之后,他也表示突然听起来我的音响也很不错,于是我们都颇感欣慰。

临回北京的前一天晚上,腾讯终于发布s60v5版的“斗地主”,我半夜爬起来给老妈的手机装上,老妈终于能随时“斗地主”了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\201\207\346\234\237/index.html" "b/p/\345\201\207\346\234\237/index.html" new file mode 100644 index 000000000..2d2536fc7 --- /dev/null +++ "b/p/\345\201\207\346\234\237/index.html" @@ -0,0 +1,11 @@ +假期 +

假期

2010年的第一天,我加了一天班。

2010年的第二天,我狠狠地睡了个懒觉,本来想从天黑睡到天黑,但是想到假期是如此的珍贵,只好在9点am就爬了起来,做了顿丰盛的早餐。

在给我的ubuntu重新编译了两次最新的内核之后,我意识到这是一件很无聊的事情,于是决定做一些有意义的事情,看美剧,一连看了十来集,再看就要呕吐了,而且由于反复傻笑导致脸也快抽筋了。

我决定出去走走,做了个不太理智的决定,那就是漫无目的的逛超市而且还是空着肚子。

记得好像有人提醒过,去超市买东西时最好先想好一个清单,而且最好是在吃饱的情况下再去,否则就会拿回一大堆垃圾回来,恩,我今天就是这样。

我推着小车(这也是个错误的决定),由于食欲的关系,不一会儿的功夫就把小推车堆的满满的,一边大把的拿东西一边想象着自己坐在家里美美的吃它们的样子,哦也,再加一瓶红酒吧,哦,等一等,这边的酱肘子正在滋滋地冒着热气,仿佛正在召唤我,ok拿下。

提着东西走进家里,我才意识到,我买了足够我吃一个月的食物,而有些东西的保质期才两天,比如那只烧鸡。

好吧,他们说狂欢是一群人的孤单,而孤单正好一个人狂欢,justeat!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\201\217\346\211\247\347\213\202/index.html" "b/p/\345\201\217\346\211\247\347\213\202/index.html" new file mode 100644 index 000000000..b67eacb58 --- /dev/null +++ "b/p/\345\201\217\346\211\247\347\213\202/index.html" @@ -0,0 +1,11 @@ +偏执狂 +

偏执狂

看到了一篇关于电脑偏执狂的帖子,发现里面列举的内容大部分都像是在说我。

比如:Windows桌面只放三个图标:"我的电脑"、"回收站"、"浏览器"回收站永远保持"清空"状态,删除文件都是用Shift+Delete,根本不用进回收站所有软件都使用最新版,打上最新的补丁每隔一段时间就清理一次注册表如果有个软件用的不是最新版本就会浑身不自在

补充:看到别人的电脑不是处于最佳状态也会浑身不自在,想冲过去调理一番如果同样功能的软件有商业版和免费版的话,就打心眼儿里觉得免费版的那个更可爱经常整理磁盘碎片经常整理删除磁盘上的文件,有时候上午刚删完一个文件,到下午就发现那个文件还有用任务栏上同时打开窗口超过四个就觉得难受,如果把程序隐藏在系统栏就感觉好多了新建文件夹时不喜欢用"新建文件夹"来命名

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\201\217\350\211\262/index.html" "b/p/\345\201\217\350\211\262/index.html" new file mode 100644 index 000000000..3b771736c --- /dev/null +++ "b/p/\345\201\217\350\211\262/index.html" @@ -0,0 +1,11 @@ +偏色 +

偏色

清晨的时候–由sbabybird于11/10/200709:02:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215-1.JPG" "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215-1.JPG" new file mode 100644 index 000000000..801ef52b0 Binary files /dev/null and "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215-1.JPG" differ diff --git "a/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215.JPG" "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215.JPG" new file mode 100644 index 000000000..f4c64f057 Binary files /dev/null and "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215.JPG" differ diff --git "a/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_120x120_fill_q75_box_smart1.JPG" "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_120x120_fill_q75_box_smart1.JPG" new file mode 100644 index 000000000..1959be44c Binary files /dev/null and "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_120x120_fill_q75_box_smart1.JPG" differ diff --git "a/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_1600x0_resize_q75_box.JPG" "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_1600x0_resize_q75_box.JPG" new file mode 100644 index 000000000..5f851ce32 Binary files /dev/null and "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_1600x0_resize_q75_box.JPG" differ diff --git "a/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_800x0_resize_q75_box.JPG" "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_800x0_resize_q75_box.JPG" new file mode 100644 index 000000000..10db21133 Binary files /dev/null and "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_800x0_resize_q75_box.JPG" differ diff --git "a/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/index.html" "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/index.html" new file mode 100644 index 000000000..69d9b1913 --- /dev/null +++ "b/p/\345\201\232\344\270\200\344\270\252\345\256\236\351\252\214--\345\205\263\344\272\216\346\212\212\346\211\213\346\234\272\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\351\207\214/index.html" @@ -0,0 +1,12 @@ +做一个实验--关于把手机电池放冰箱里 +
Featured image of post 做一个实验--关于把手机电池放冰箱里

做一个实验--关于把手机电池放冰箱里

+偶然听到一个关于手机电池的传说:"把老化的电池用纸包好,放进冰箱里冻上两天,这个电池就会起死回生。"去网上搜索一下,发现很多人都在介绍这个"绝招",也有人表示质疑,但是好像没有人亲身试验过,刚好我昨天换下来的那块电池还在,就顺手试一试这个方法,如果管用当然最好,如果不好使(这个可能性最大),那就把这条流言给终结了吧。我的那块旧电池包好放在冰箱的冷冻室里等候试验结果!–由sbabybird于12/15/200709:34:00上午在从容地狂奔上发表电池放冰箱的实验结果

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\204\345\274\237/index.html" "b/p/\345\205\204\345\274\237/index.html" new file mode 100644 index 000000000..682b7864b --- /dev/null +++ "b/p/\345\205\204\345\274\237/index.html" @@ -0,0 +1,11 @@ +兄弟 +

兄弟

今天心情比较郁闷,幸好有兄弟陪我喝喝小酒,打打台球。心情好多了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\204\345\274\237\344\273\254\350\277\230\346\230\257\345\226\234\346\254\242\351\252\221\346\221\251\346\211\230/index.html" "b/p/\345\205\204\345\274\237\344\273\254\350\277\230\346\230\257\345\226\234\346\254\242\351\252\221\346\221\251\346\211\230/index.html" new file mode 100644 index 000000000..6033c946d --- /dev/null +++ "b/p/\345\205\204\345\274\237\344\273\254\350\277\230\346\230\257\345\226\234\346\254\242\351\252\221\346\221\251\346\211\230/index.html" @@ -0,0 +1,11 @@ +兄弟们还是喜欢骑摩托 +

兄弟们还是喜欢骑摩托

上次回老家休假,和家里的哥儿几个聚了一把,见了面无非就是聊天,喝酒,打台球,只是都已成熟许多,使劲儿咧嘴笑的话,也能看见皱纹了。

这些曾经睡在一个炕上的兄弟,据上次见面已经差不多两年了,有坐车来的,有开车来的,几个兄弟还是骑摩托过来的。

我问了一下,还是无牌照,无头盔,钻胡同躲交警,和从前一样。

于是我又犯骑车瘾,借着酒劲儿风驰电掣了一把。

十年前刚拥有摩托车的时候,我曾天真地以为,摩托车是我的最爱,给个奔驰都不换。

因为骑摩托可以到处转悠,可以使劲把油门拧到底,体验呼呼的风把眼泪刮出来的感觉,可以带着墨镜飞速穿过柏油路上被大豆秸杆掀起的土雾,可以让坐在后座上的姑娘不由自主地搂着我的腰。

那个时候,周末基本上都是和哥儿几个骑着车四处乱窜,再窄乡间小路也敢往里冲,吹着口哨把车扎在路边跳到河里去洗澡,有时下着大雨,淋的像个落汤鸡。

路上当然是飙来飙去,偶尔也被大人们骂句:“不要命了!”

如今,都已是拖家带口了,社会的磨练多少给了一些沧桑的感觉,脸上的笑容也失去了往日的纯真而增添了几分苦涩,只是,当他们跳上摩托车,冲我招一招手,伴着隆隆的声音脚下喷出一股股蓝烟,我的心仿佛又回到了那个时节。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\254\345\233\255\351\207\214\347\232\204\351\270\237\345\267\242/index.html" "b/p/\345\205\254\345\233\255\351\207\214\347\232\204\351\270\237\345\267\242/index.html" new file mode 100644 index 000000000..1bb0186e4 --- /dev/null +++ "b/p/\345\205\254\345\233\255\351\207\214\347\232\204\351\270\237\345\267\242/index.html" @@ -0,0 +1,11 @@ +公园里的“鸟巢” +

公园里的“鸟巢”

每天早晨都穿过这个公园,随手拍了,那个小房子是公园的管理人员为一只野生的鸟儿(大概是野鸭子之类的吧)搭建的,该鸟去年来此地盘再也不走了 

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\261\344\272\253\347\251\272\351\227\264\346\227\240\346\263\225\350\256\277\351\227\256\346\203\212\345\276\227\346\210\221\344\270\200\350\272\253\345\206\267\346\261\227/index.html" "b/p/\345\205\261\344\272\253\347\251\272\351\227\264\346\227\240\346\263\225\350\256\277\351\227\256\346\203\212\345\276\227\346\210\221\344\270\200\350\272\253\345\206\267\346\261\227/index.html" new file mode 100644 index 000000000..192cb7534 --- /dev/null +++ "b/p/\345\205\261\344\272\253\347\251\272\351\227\264\346\227\240\346\263\225\350\256\277\351\227\256\346\203\212\345\276\227\346\210\221\344\270\200\350\272\253\345\206\267\346\261\227/index.html" @@ -0,0 +1,11 @@ +共享空间无法访问!惊得我一身冷汗! +

共享空间无法访问!惊得我一身冷汗!

早晨起来,像往常的周六一样,来到公司加班。

打开电脑,然后习惯性的访问我的msn空间,“该页无法显示….”,不会吧,难道是网络断开了?

没有啊,空间主页还是可以访问的,怎么一切换到我的空间就“该页无法显示”了呢?

强制刷新浏览器还是不行,随便点了一个朋友的空间,可以访问。

完了!莫非我的msnspace被封掉了?

上网搜索一下,看看有没有出现同样问题的朋友,结果显示msnspace无法访问是常有的事儿,很多人都有过类似经历(国内用户),这其中的原因不言自明啊!

我开始回忆,在我的日志里面到底有没有不该出现的敏感词汇?

想了半天,答案是没有。可是要说是msnsapce的故障吧,别人的空间又是可以访问的,无奈只好跟微软的客服发了封电子邮件,暂时还未收到回复。

我刚开始写网络日志,不为影响别人的看法,只为记录一下暂时的心情,本以为放到网上比放在本地还安全(相信微软的技术水平),结果还给我来这一手,想记录的时候却无法访问了,弄的心里还挺难受,担心以前的日志会不会丢掉啊!

ps:就在刚才,它又突然可以访问了!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216python\347\232\204\345\245\275\344\270\234\344\270\234/index.html" "b/p/\345\205\263\344\272\216python\347\232\204\345\245\275\344\270\234\344\270\234/index.html" new file mode 100644 index 000000000..aea25fc78 --- /dev/null +++ "b/p/\345\205\263\344\272\216python\347\232\204\345\245\275\344\270\234\344\270\234/index.html" @@ -0,0 +1,11 @@ +关于python的好东东 +

关于python的好东东

由于喜爱python,我几乎每次装完系统就会立即给电脑装上python环境(当然了,大部分的linux的发行版都自带了)。

不过,每次都要安装不少我常用的python库,比如pyopengl用来写写opengl什么的比较合适,pyqt用来写桌面程序也很好,陆续把这些库装完也挺费劲的。

要说还是好人多,我这两天发现网上就有好人给整理了一个及其全面的安装包,叫做PythonXY,可以说是一旦安装别无所求,自带python基本环境,另外加上以eclipse为基础的ide,在加上ipython这个很好的shell,还包括numpy、scipy等等一大堆与数学计算相关的包,不多说了,自己去这里看吧http://www.pythonxy.com/,要下载完整的压缩包比较大,好像有4百多Mb。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216ssd\347\241\254\347\233\230/index.html" "b/p/\345\205\263\344\272\216ssd\347\241\254\347\233\230/index.html" new file mode 100644 index 000000000..1411ffff9 --- /dev/null +++ "b/p/\345\205\263\344\272\216ssd\347\241\254\347\233\230/index.html" @@ -0,0 +1,11 @@ +关于SSD硬盘 +

关于SSD硬盘

昨天某同事出差,走到半路发现笔记本硬盘坏了,十分痛苦地发短信问我火车上有没有IBM的客服,我说,天将降大任与斯人也,必先苦其心志劳其筋骨,坏其硬盘。

此同事吐血半升后就杳无音讯了。

此事引发大家热烈地讨论起关于硬盘的话题(我们太残忍了),最后大家一致认为经常背着出差的笔记本其硬盘特别容易出毛病,颠簸导致。

有没有不怕振动的硬盘呢,答案是肯定的,那就是SSD,中文称“固态硬盘”,因没有磁盘盘片和磁头等机械装置,所以不怕振动,具体介绍如下(来自维基百科):

固态硬盘(SolidStateDisk、SolidStateDrive,簡稱SSD)是一种基于永久性存储器,例如闪存,或者非永久性存储器,例如同步动态随机存取存储器(SDRAM)的计算机外部存储设备。

固态硬盘用来在便携式计算机中代替常规硬盘。

虽然在固态硬盘中已经没有可以旋转的盘状机构,但是依照人们的命名习惯,这类存储器仍然被称为“硬盘”。去Google搜索一下“SSD”或者“固态硬盘”返回的文章里充满了赞美之词,什么随机读取速度别传统硬盘快啊,没有噪音啦,没有散热问题啦等等。

然后一致指出的缺点就是价格太贵。难道就没有别的缺点了?NO!我的epc用的就是SSD,抛开至今仍有争议的SSD寿命问题不说,我在使用中发现了一个很大的问题就是—-“磁盘碎片”,由于现在的文件系统(NTFS、FAT32)等都是针对以前的硬盘设计的,目前还没有一个针对SSD优化的文件系统(听说快出了),所以随着SSD里存储的文件越来越多,那么访问这个SSD上的文件将会越来越慢,尤其是写入,有时候会慢的无法忍受,我认为这个问题是目前SSD面临的最严重的问题,至于容量价格之类肯定不用担心。

今天的话题好像扯的有点儿远,不知道那位硬盘坏了的同事现在怎么样了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216windows7\344\270\213\346\227\240\346\263\225\345\256\211\350\243\205visual-studio2008\347\232\204\351\227\256\351\242\230/index.html" "b/p/\345\205\263\344\272\216windows7\344\270\213\346\227\240\346\263\225\345\256\211\350\243\205visual-studio2008\347\232\204\351\227\256\351\242\230/index.html" new file mode 100644 index 000000000..d170a5183 --- /dev/null +++ "b/p/\345\205\263\344\272\216windows7\344\270\213\346\227\240\346\263\225\345\256\211\350\243\205visual-studio2008\347\232\204\351\227\256\351\242\230/index.html" @@ -0,0 +1,11 @@ +关于windows7下无法安装Visual Studio2008的问题 +

关于windows7下无法安装Visual Studio2008的问题

单位的机器,前一段时间,被我换成了windows7系统,没办法,咱就是爱折腾。

尝鲜总是要付出代价的,那就是不知怎地,过了一段时间就无法安装某些软件了,不能安装office这还能忍,可是连vs都不能装了那还用个屁啊。反复观察,原来是无法安装vc++的runtime了(也就是vc_redist_x86.exe),具体是为什么不太清楚,好像是一个系统的bug导致的。反复地google,去microsoft网站去查,折腾了好几天,总算有了解决办法。

步骤如下:

1、打开注册表编辑器regedit,找到这儿HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control,

下面有个叫RegistrySizeLimi的键,把它的值修改为0xffffffff

2、重新启动电脑,并使用administrator用户登录,如果该用户未启用则要首先到“计算机管理”里面把administrator帐号启用。

3、在cmd里运行“sfc/scannow”以上几步完成后,再次重启机器即可。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216\345\206\205\345\220\221/index.html" "b/p/\345\205\263\344\272\216\345\206\205\345\220\221/index.html" new file mode 100644 index 000000000..f37088428 --- /dev/null +++ "b/p/\345\205\263\344\272\216\345\206\205\345\220\221/index.html" @@ -0,0 +1,11 @@ +关于内向 +

关于内向

我还记得上次看了一篇文章,里面讲到关于内向与外向的区别,相对比较内向的人,往往需要通过一个人独处来恢复精力,就像给手机充电一样,而外向的人不同,他们需要通过参与各种社交活动来获得精力,就是越玩越嗨的那种。内向的人往往都有丰富的内心世界,更加热衷于追求精神层面的快乐,而非物质享受,喜欢简单低调,而不是复杂奢华。

以我的了解来看,内向的人往往都会有一些社交障碍,与人沟通或者交流的时候存在困难,但这不算事多严重的问题,通过练习还是可以改进的,不会因此而做不好事情,但是无论如何,受性格的影响,要达到相同的沟通或社交效果,内向的人需要消耗更多的能量。

所以对于我们来说,重要的是要找到适合自己的充电方式,比如周末的下午,如果阳光很好,坐在沙发上一边晒太阳一边发呆,或者看一本书,或者看一部电影。可以放空大脑,放松心情,让自己静下心来,对于我来说这就是最好的休息。

当然,我们喜欢思考,喜欢幻想,我很享受那种"身未动心已远"的感觉,很多人喜欢旅行到处看风景,认为"读万卷书不如行万里路",我对此持谨慎保留态度,我觉得如果没有经常思考的习惯的话,跑遍全球你还是你,天天在拉萨呆着你的灵魂也不会得到净化(你的脸反而会晒黑)。

我们不愿意跟很多人对话,或者说接触,那是因为我们不想做没有深度的交流,我们的好朋友都是那种可以就着一个话题而进行彻夜长谈的人,而且当进行这种深度交流的时候,我们的幸福感爆棚。

但总的来说,人都是生而孤独的,无论内向还是外向,终其一生都无法摆脱因孤独而产生的孤独感,所谓内向与外向的区别,只不过是大家在面对孤独的时候,所采取的应对方式不同,而已。

希望简书快点推出支持横评的app,这样用外接键盘打字就更爽了

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216\345\210\267\347\211\231\346\262\211\346\200\235\345\275\225/index.html" "b/p/\345\205\263\344\272\216\345\210\267\347\211\231\346\262\211\346\200\235\345\275\225/index.html" new file mode 100644 index 000000000..12d0b93e3 --- /dev/null +++ "b/p/\345\205\263\344\272\216\345\210\267\347\211\231\346\262\211\346\200\235\345\275\225/index.html" @@ -0,0 +1,11 @@ +关于“刷牙沉思录” +

关于“刷牙沉思录”

我近期新增了一个习惯,将我每天在地铁上、刷牙时或者其他发呆的时候,考虑的那些无聊或有聊的问题,整理出来,发在微信朋友圈里,并取名“刷牙沉思录”,话题比较跳跃,每天都不同,但有一点,这些都是我经过慎重考虑、认真分析过的问题。通过简单的一段文字,全方位体现了我对思考的热爱,以及我充分具备当一个哲学家(神经病)的潜质。

爱幻想、胡思乱想是我从小就有的毛病,基本上整个上学阶段,每堂课,我都能体验“身未动、心已远”那种灵魂出窍的感觉,老师在课堂上讲的眉飞色舞、唾沫飞溅,我盯着黑板,考虑如果老师是一个潜伏在我们学校的外星人,而我是不小心发现了这个秘密的人,我该如何向大家解释人们才能相信我。

我吃东西不少,但一直长不胖,这一方面很拉仇恨,另一方面,我想说的是,思考是很耗费能量的一件事情,每天睡觉之前,我都能感受到我大脑的不安分,这直接导致失眠和辗转反侧,我必须通过畅想一些事情,才能逐渐平息,慢慢睡去。好在通过多年的总结,有几个经典的设定可以供我可劲儿折腾。

比如其中有一个是,如果我走在沙漠里,荒芜人烟,各种供给也基本耗尽,这个时候我发现了一个重达三百多吨的金块,我该如何行动才能将这些东西带回。不过我不太喜欢这个设定,难度较大,而且带来的实惠太小。我比较喜欢银河系漫游这样的设定,驾驶一艘乳白色的梭子状飞船(太空中由于没有大气,所以飞船的外观可以很随意,无需考虑空气动力学),船体有四分之一都是透明的玻璃罩,我坐在飞船的控制台前,飞向银河系的边缘,不过一般还没飞出太阳系我就睡着了。

刷牙沉思录就是在这种条件下产生的,睡觉之前,刷牙的时候,满嘴的泡沫,看着水池里逆时针(说明我在地球的北半球)旋转的漩涡,有时就会有比较虚幻的感觉,会顿悟一些鸡毛蒜皮的事情,但是这个宇宙中的真理往往都是蕴藏在非常浅显的道理中的,所以我一般会怀着非常崇敬的心情将这些记录下来。

一个偶然的机会,我发现将这些东西发在朋友圈进行分享或许也很不错,这样也许能让喜欢我的朋友更加了解我从而更加亲密,讨厌我的人会更加坚定不移地认为我是一个傻Ⅹ而将我拉黑,从而减轻我的社交压力。如果有可能,我想我会坚持下去,不管还发不发朋友圈。

这些年我思考记录的东西,比较琐碎混乱,以前总觉得没有用,甚至是浪费时间,现在忽然想通了,其实这些思考之间是有联系的,在积累达到一定量的情况下,悟性被激发的时候就可以发现一些规律和更抽象升华的知识或方法论,也许就是常说的量变引发质变吧,大脑里的知识积累到一定程度,就是『大数据』了,呵呵。

#我可能会在每个周末的晚上写一篇短文#

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216\345\215\201\344\270\200\351\225\277\345\201\207\347\232\204\346\200\273\347\273\223/index.html" "b/p/\345\205\263\344\272\216\345\215\201\344\270\200\351\225\277\345\201\207\347\232\204\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..5c0f2fd5b --- /dev/null +++ "b/p/\345\205\263\344\272\216\345\215\201\344\270\200\351\225\277\345\201\207\347\232\204\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +关于十一长假的总结 +

关于十一长假的总结

长假过完了,感觉如下:

1、交通的痛苦,买不到回家的火车票,被黑了一张全价机票。

返京时乘坐大巴,连续坐了16个小时,感觉要比乘坐神七痛苦。

2、妹妹结婚了,打心底祝福她。

小时候那个调皮的小女孩儿怎么转眼变成了端庄的大姑娘了呢。

3、喝多一次,此次回家喝了n顿酒,和老同学在一起喝的那次喝多了。

4、我还是那么瘦,几个老同学都陆续把自己的肚子搞大了,只有我继续瘦的像支铅笔。

5、我仍然是家里的维修工,此次修理好了老家的DVD、抽水马桶、电脑,并弄坏了老婆的手机(后来我又修好了)。

6、美好的时间总是很短暂,每次相聚都是一次分手。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216\346\224\257\346\214\201\345\257\214\346\226\207\346\234\254\347\232\204\345\274\200\345\217\221\347\216\257\345\242\203\350\256\276\346\203\263/index.html" "b/p/\345\205\263\344\272\216\346\224\257\346\214\201\345\257\214\346\226\207\346\234\254\347\232\204\345\274\200\345\217\221\347\216\257\345\242\203\350\256\276\346\203\263/index.html" new file mode 100644 index 000000000..e6e63c9c8 --- /dev/null +++ "b/p/\345\205\263\344\272\216\346\224\257\346\214\201\345\257\214\346\226\207\346\234\254\347\232\204\345\274\200\345\217\221\347\216\257\345\242\203\350\256\276\346\203\263/index.html" @@ -0,0 +1,11 @@ +关于支持富文本的开发环境设想 +

关于支持富文本的开发环境设想

现在的源代码都是纯文本,代码关键字、函数以及注释的高亮都是通过源代码编辑器或集成开发环境自己分析的。

我在想,能不能有一种开发环境,他的源代码采用富文本的方式来存放,及程序员可以随时高亮某一段代码以示警告或提醒,将不同功能模块的代码来使用不同的颜色来显示?

或者,更进一步的想法,代码的注释里可以加入任何内容,不仅仅是干巴巴的几句描述,而是可以插入一段视频或一幅图片,或者任意的一个附件在代码中?

再丰富一下,在现有的以“项目”或“解决”方案为代码组织方法的基础上,增加代码以外的东西进入到开发环境中来,比如说,从软件需求的调研文档一直到设计文档,均与最终的代码有机的结合起来,也就是说,通过功能需求文档可以追溯到实现该功能的代码,反过来也可以从某行代码追溯到他所服务的功能。

吼吼,这样做是不是有点儿太那个了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216\347\224\265\350\204\221\351\205\215\347\275\256\347\232\204\351\201\220\346\203\263\347\236\216\346\203\263/index.html" "b/p/\345\205\263\344\272\216\347\224\265\350\204\221\351\205\215\347\275\256\347\232\204\351\201\220\346\203\263\347\236\216\346\203\263/index.html" new file mode 100644 index 000000000..0c8852383 --- /dev/null +++ "b/p/\345\205\263\344\272\216\347\224\265\350\204\221\351\205\215\347\275\256\347\232\204\351\201\220\346\203\263\347\236\216\346\203\263/index.html" @@ -0,0 +1,11 @@ +关于电脑配置的遐想(瞎想) +

关于电脑配置的遐想(瞎想)

偶然翻看书架上的旧书,发现我以前在上面随手胡乱写了一个“梦幻配置”,那时应该是2000年,根据当时的硬件发展状况,我写了一个可望而不可及的硬件配置。

具体什么配置就不说了(大概就是纯平显示器、笨三的cpu),反正现在让你用你还嫌慢呢。

现在六、七年过去了,心里又痒痒的,就让我再写一个可望而不可及的硬件配置吧,看看这个配置何时会过时。

中央处理器:IntelCore2QuadprocessorQ6700(4核,为了安静,散热采用水冷系统)

主板:IntelD975XBX2内存:海盗船TWIN2X2048-6400×4(共8G)

外存储:SanDisk64G闪存硬盘(用于系统存储),2TB磁盘阵列(用于文件存储)

显卡:丽台NVIDIAQuadroFX5600×2(每块显卡可接四台屏幕)

主显示器:Apple30"CinemaDisplay(上网、影视、游戏)

副显示器:Apple20"CinemaDisplay×6(地理、虚拟现实、平面设计等)

CreativeSoundBlasterX-FiElitePro+罗技Z5500(用于电影、游戏、非专业录音)

主板数字光纤输出+外置解码器+JBL监听音箱(用于欣赏音乐)

操作系统:自己动手定做(编译)Linux版本,桌面环境采用GONE(如果有兴趣就自己写个操作系统)

备注:机箱易采用高厚度、高散热静音机箱,此系统搭建完成后将用于书房,共七台显示器需要用到特殊的显示器支架。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216\347\237\245\350\241\214\345\220\210\344\270\200/index.html" "b/p/\345\205\263\344\272\216\347\237\245\350\241\214\345\220\210\344\270\200/index.html" new file mode 100644 index 000000000..498331b74 --- /dev/null +++ "b/p/\345\205\263\344\272\216\347\237\245\350\241\214\345\220\210\344\270\200/index.html" @@ -0,0 +1,11 @@ +关于“知行合一” +

关于“知行合一”

“懂得那么多道理,却依然过不好这一生”,好像是某部电影的台词,这句话曾经击中过很多人的心底,给人一种深深的“然并卵”的无力感,以至于相当长的时间里成为流行语,但我想说的不是这个。这话题如果换成不那么文艺的说法,可以简单的总结为,很多人都不能“知行合一”。

知乎上曾经有人问“为什么有的人好像什么都知道,现实中却依然不能成功?”,里面有个回答特别经典,大意是,如果某件事你没有真正做到过却认为你懂了,那么你是错的。即,“做不到,就是不知道”。很多人都经历过在课堂上被老师带着做题,思路怎么捋怎么顺,感觉很简单,以为懂了,一旦需要独立完成时却发现步步维艰,殊不知自己是被老师一步一步带入到某个境界的。

我的微信朋友圈里有相当多的人非常热衷于转发“是男人就要做到的十二条”、“做到这三点你就牛逼了”等等一大堆心灵鸡汤,为什么为转发呢?我考虑过这个事情,原因其实很简单,因为转发者十分认可这个文章,不过自己也很难做到,但是呢,在自己转发的那一瞬,仿佛自己懂了这个道理,离做到这些仿佛近了许多,心理上得到了莫大的安慰,其实用处不大。

我自己也有这个毛病,每当在网上发现了比较好的知识型文章,草草的浏览一遍之后,立即点击鼠标将之迅速放入收藏夹或者印象笔记中,感觉以后肯定用得到,也肯定会在仔细学习和翻看,其实,大部分这样的文章都被永久的放在那里了,浪费了不少磁盘空间。

做到知行合一太难了,从古至今几千年来,做到的不过寥寥数人,但凡做到的,都十分了得,成就了名垂千古的事迹,比如明朝的王阳明,其开创的“心学”主打思想就是“知行合一”,影响了数代人,以至于民国时期那个著名的教育家在领悟到“知行合一”的能量之后,立马将自己的名字改为了“陶行知”。

反思一下,我们可能不需要过度的去追求懂得太多事情,可能更应该不断检视自己,能不能将自己所学所知运用到现实中,写到这里我又想到,我们学的论语第一篇,“学而不思则罔,思而不学则殆”,孔子他老人家果然看的更透彻,啥话都让他一个人说了,烦。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203.png" "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203.png" new file mode 100644 index 000000000..2d93302a3 Binary files /dev/null and "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203.png" differ diff --git "a/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_120x120_fill_box_smart1_3.png" "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..249d67d8c Binary files /dev/null and "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_1600x0_resize_box_3.png" "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_1600x0_resize_box_3.png" new file mode 100644 index 000000000..9105a3104 Binary files /dev/null and "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_1600x0_resize_box_3.png" differ diff --git "a/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_800x0_resize_box_3.png" "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_800x0_resize_box_3.png" new file mode 100644 index 000000000..eacb6d5dc Binary files /dev/null and "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_800x0_resize_box_3.png" differ diff --git "a/p/\345\205\263\344\272\216\347\237\255\344\277\241/index.html" "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/index.html" new file mode 100644 index 000000000..ebe291acf --- /dev/null +++ "b/p/\345\205\263\344\272\216\347\237\255\344\277\241/index.html" @@ -0,0 +1,11 @@ +关于短信 +
Featured image of post 关于短信

关于短信

昨日喜收老友短信:“天气骤变,温度下降,注意身体,多喝水,以防感冒!”

遂感叹友情比暖气还要温暖,欲回复信息以示感谢,孰料又收其短信一条:“别回了,我的短信包月没用完,不发都浪费了!”

我靠!

另一哥们儿,初上网,受某网站蛊惑(告其可免费发短信),通过该网站为我发“免费”短信一条,结果害我收到若干条此网站发来的广告短信,不得不打电话给这一哥们儿,重复强调“天下没有白吃的午餐”这条真理。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216\350\277\234\347\250\213\345\212\236\345\205\254\347\232\204\346\200\235\350\200\203/index.html" "b/p/\345\205\263\344\272\216\350\277\234\347\250\213\345\212\236\345\205\254\347\232\204\346\200\235\350\200\203/index.html" new file mode 100644 index 000000000..0c94f92f9 --- /dev/null +++ "b/p/\345\205\263\344\272\216\350\277\234\347\250\213\345\212\236\345\205\254\347\232\204\346\200\235\350\200\203/index.html" @@ -0,0 +1,11 @@ +关于远程办公的思考 +

关于远程办公的思考

据悉,Github有超过一半的员工遍布在全球各地,而开源组织OpenSSL的团队则一直都未在线下见过面(直到后来有某老板资助他们在线下碰了一次面)。随着科技的进步和社会的高速发展,知识型工作的办公方式正在逐渐由集中办公向分布式远程办公转变。

远程办公带来的好处非常明显,比如:有效解决了员工上下班通勤浪费时间的问题,顺便还缓解了交通压力,对环境保护亦有贡献;抛开了地域的束缚,可以吸引全球各地的人才参与,对企业的人才战略有积极影响;有效降低企业办公场地投入;团队效率、员工积极性都能得到有效提升;等等。

但是如何具体的实施远程办公,不同的团队会有不同的见解,我个人一直热衷于推进办公模式的改进,也做过相关尝试,下面根据我的浅见,从几个方面总结一下远程办公的关键要素:

成果目标的明确定义和有效检查

  • 远程办公对于团队管理要求更高了,一个团队要统一一个目标,大家对于目标的定义应有一致的理解。须将目标逐级分解具体到人,并提前设计好由细节到整体的成果装配流程。
  • 每一种类型的任务要有对应的检查清单(checklist),每日的工作成果都要通过检查清单的检查。
  • 团队的工作成果要有装配和构建系统进行组装,并有一个全局的检查清单,有专人负责检查。
  • 员工自我检查,组长验收检查,配置管理组装检查,质量管理进度跟踪检查。

沟通的及时性和有效性

  • 所有人应该可以立即呼叫到所有人,反应是实时的,不能超过30秒的延迟。
  • 语音,文字使用统一的语言体系,命名和表达方式需要规范化。
  • 可以随时截屏和录制一小段视频传递给任何人,必要时需要共享显示器和白板的内容。

工作进度跟踪

  • 有效、深入细节的项目管理,需要有完善的项目台账,实时反应项目的状态。
  • 显式任务管理,团队里的所有人要知道所有人的工作任务情况,可区分普通任务和私密任务。
  • 项目生命周期管理细化到任务生命周期管理,起源、分解、执行、成果检查、后评价、归档入库、装配完结。

办公状态模拟

  • 为防止远程办公缺少仪式感,需要规定集体的远程互动,举行每日开工会议和收工会议。
  • 严格统一上下班时间,确保大家同时在线。
  • 每周至少一天线下见面会议,集中起来讨论工作。

信息化工具支持

  • 使用遥知的“小纸条”进行及时沟通。
  • 使用遥知的项目管理和任务管理进行协作管理。
  • 使用qq、视频直播等工具进行远程集体互动。
  • 使用gitlab做好配置管理和成果审查。
  • 使用docker、jenkins等做好产品的持续集成和每日成果构建。

为了在我们的团队更好的推行远程办公模式,我们不断探索和思考,去年初,我所在的团队开始小范围尝试远程办公的模式,期间遇到了一些问题,我们也做出了一些工作方式上的改进,总的来说利大于弊,经过这些尝试,更加坚定了我们未来逐步迁移至远程办公模式的决心,也促使我们研发了移动端协作工具遥知,致力于帮助更多的知识工作者更高效的远程办公。

遥知

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\344\272\216\350\277\234\347\250\213\345\212\236\345\205\254\347\232\204\346\200\235\350\200\203/yaozhi.jpg" "b/p/\345\205\263\344\272\216\350\277\234\347\250\213\345\212\236\345\205\254\347\232\204\346\200\235\350\200\203/yaozhi.jpg" new file mode 100644 index 000000000..d8eb61724 Binary files /dev/null and "b/p/\345\205\263\344\272\216\350\277\234\347\250\213\345\212\236\345\205\254\347\232\204\346\200\235\350\200\203/yaozhi.jpg" differ diff --git "a/p/\345\205\263\344\272\216\351\232\217\346\234\272\346\225\260/index.html" "b/p/\345\205\263\344\272\216\351\232\217\346\234\272\346\225\260/index.html" new file mode 100644 index 000000000..d5c88d215 --- /dev/null +++ "b/p/\345\205\263\344\272\216\351\232\217\346\234\272\346\225\260/index.html" @@ -0,0 +1,11 @@ +关于随机数 +

关于随机数

众所周知,计算机(不含量子计算机)是不可能产生真正的随机数的,而只能产生出“伪随机数”。

因为要在计算机上产生随机数都要设置“随机数种子”,而一般来说这个“种子”来自于计算机自带的时钟,这也就意味着这个过程是可重复的,产生出的随机数也是有一定的规律的,无论多复杂的随机算法都难逃这个定律。

具体解释可参考维基百科。

可是大自然中到处充满了“真随机数”,因为没有完全一样的两片树叶,也没有完全相同的指纹(这个不好说)。

可是这些真的是随机的吗?

还是由于人类的认知并未达到一定的高度才产生出来的错觉?

因为我常常这样想:假如我写了一段程序,里面有个“生物”假设他有意识(我靠,这太难了),我给这段程序一堆随机数字,那么程序里的“生物”是不可能知道这些随机数字是由于我设置了“随机种子”才产生的,因为在“构建”这个“生物”之前我已经设置了“随机种子”。

好了,令我有些迷惑的是,也许我们大自然的随机数是在“宇宙大爆炸”的时候就设置了“随机种子”的,后面的发展固然有无尽的随机数,导致根本没有重复的树叶也好,没有相同的指纹也罢,也许这些还是“伪随机数”。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\205\263\346\234\272\345\200\222\350\256\241\346\227\266ahk\350\204\232\346\234\254/index.html" "b/p/\345\205\263\346\234\272\345\200\222\350\256\241\346\227\266ahk\350\204\232\346\234\254/index.html" new file mode 100644 index 000000000..ff6e47e25 --- /dev/null +++ "b/p/\345\205\263\346\234\272\345\200\222\350\256\241\346\227\266ahk\350\204\232\346\234\254/index.html" @@ -0,0 +1,59 @@ +关机倒计时ahk脚本 +

关机倒计时ahk脚本

最近习惯在晚上听着音乐或相声、评书睡觉,但电脑总是忘记关,于是使用Windows的shutdown -s -t命令来进行倒计时关机,但是我还嫌这样麻烦,因为要按多次键,还要输入命令,于是就写了下面的AHK脚本,运行后只要按下Windows键 + S键即弹出一个输入框,输入3600即一个小时,到时候就自动关机啦。后来觉得有取消关机的可能,就加了一个判断,到时候点击取消的话,就放弃关机了。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+
#s::
+InputBox, time, 关机倒计时, 请输入一个时间(单位是秒)
+if (time > 0) {
+    loop {
+        if (A_Index > time) {
+            break
+        }
+        sleep, 1000
+        count := time - A_Index
+        ToolTip, 剩余:%count%秒关机
+    }
+    ToolTip
+    MsgBox, 33, 关机倒计时, 定时关机的时间到了,确定要关闭计算机吗?
+    `n`n此框6秒内自动确定, 6
+    IfMsgBoxCancel
+    {
+        MsgBox 取消了关机
+    }
+    else
+    {
+        Shutdown, 9
+    }
+}
+return
+
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231.png" "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231.png" new file mode 100644 index 000000000..3fcb27e0c Binary files /dev/null and "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231.png" differ diff --git "a/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_120x120_fill_box_smart1_3.png" "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..fab493773 Binary files /dev/null and "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_1600x0_resize_box_3.png" "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_1600x0_resize_box_3.png" new file mode 100644 index 000000000..e3c74d046 Binary files /dev/null and "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_1600x0_resize_box_3.png" differ diff --git "a/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_800x0_resize_box_3.png" "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_800x0_resize_box_3.png" new file mode 100644 index 000000000..018c8a9d9 Binary files /dev/null and "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_800x0_resize_box_3.png" differ diff --git "a/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/index.html" "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/index.html" new file mode 100644 index 000000000..a86a4044b --- /dev/null +++ "b/p/\345\206\215\350\247\2012008\344\275\240\345\245\2752009/index.html" @@ -0,0 +1,11 @@ +再见2008,你好2009 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\222\344\270\252\346\263\241/index.html" "b/p/\345\206\222\344\270\252\346\263\241/index.html" new file mode 100644 index 000000000..3ad4efdf2 --- /dev/null +++ "b/p/\345\206\222\344\270\252\346\263\241/index.html" @@ -0,0 +1,11 @@ +冒个泡 +

冒个泡

看来我就是把livespaces当微博了,每次都懒得多打几个字。

原因来自各个方面,尤其工作压力,每天徘徊在办公室的椅子和卧室的大床直接,两点一线的生活使我很难再提起兴致在博客里扯闲篇。

今天仍然顶着严寒跑步,空气不是很好,跑步系数为1★☆☆☆☆不适合跑步。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\231\344\272\206\344\270\252\350\204\232\346\234\254\346\225\264\347\220\206\346\210\221\347\232\204\347\205\247\347\211\207/index.html" "b/p/\345\206\231\344\272\206\344\270\252\350\204\232\346\234\254\346\225\264\347\220\206\346\210\221\347\232\204\347\205\247\347\211\207/index.html" new file mode 100644 index 000000000..083c6b0fc --- /dev/null +++ "b/p/\345\206\231\344\272\206\344\270\252\350\204\232\346\234\254\346\225\264\347\220\206\346\210\221\347\232\204\347\205\247\347\211\207/index.html" @@ -0,0 +1,139 @@ +写了个脚本整理我的照片 +

写了个脚本整理我的照片

上次整理硬盘的时候把我的照片一股脑儿的放在了一个目录下,这次又有闲功夫了,写了个python脚本来处理我的照片。基本思路是使用PIL库读取照片的exif信息,取出拍摄的日期时间,根据日期建立新的文件夹,然后照片文件以日期时间格式命名。批量处理,比较简单。

 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
+
#!/usr/bin/env python
+# -*- coding: gbk -*-
+
+"""
+复制指定目录的照片到目标目录,并且根据照片的拍摄时间进行重命名
+比如某张照片拍摄于2008年3月15日12:00:00,则目标目录为2008\\03\\15\\120000.jpg
+"""
+
+from PIL import Image
+import os
+import sys
+
+def get_dist_path(str, dist_dir):
+    date = str.split(' ')[0].split(':')
+    dirs = dist_dir + os.sep + os.sep.join(date)
+    
+    if not os.path.exists(dirs):
+        os.makedirs(dirs)
+    
+    dirs = dirs + os.sep + ''.join(str.split(' ')[1].split(':')) + '.jpg'
+    return dirs
+
+def copy_image(src_dir, dist_dir):
+    for path in [src_dir + os.sep + i for i in os.listdir(src_dir)]:
+        if os.path.isdir(path):
+            copy_image(path, dist_dir)
+        else:
+            write_log(path)
+            try:
+                image = Image.open(path)
+            except:
+                log_str = 'file open error: ' + path
+                write_log(log_str)
+            try:
+                dist_path = get_dist_path(image._getexif()[306], dist_dir)
+                log_str = 'dist path: ' + dist_path
+                write_log(log_str)
+            except:
+                log_str = 'get exif error: ' + path
+                write_log(log_str)
+            try:
+                if not os.path.exists(dist_path):
+                    image.save(dist_path)
+            except:
+                log_str = 'file copy error: ' + path
+                write_log(log_str)
+
+def write_log(str):
+    global log_file
+    log_file.write(str + '\n')
+    print(str)
+
+def main():
+    if len(sys.argv) == 3:
+        global log_file
+        log_file = open('cilog.txt', 'w')
+        copy_image(sys.argv[1], sys.argv[2])
+        log_file.close()
+    else:
+        print('需要给出两个参数,第一个是照片目录,第二个是目标目录')
+        print('例如:', sys.argv[0], 'e:\\photo f:\\goodphoto')
+
+if __name__ == '__main__':
+    main()
+
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\231\344\277\241/index.html" "b/p/\345\206\231\344\277\241/index.html" new file mode 100644 index 000000000..c5cbd5b95 --- /dev/null +++ "b/p/\345\206\231\344\277\241/index.html" @@ -0,0 +1,11 @@ +写信 +

写信

现在应该没有人再写信了吧,在互联网和移动通信还么有普及之前,书信一直以来都在亲友的沟通中扮演着重要角色,无论是在外漂泊的游子,还是处于热恋中的情侣,提起笔来认真写一封书信,比起现在的电子化信息,都是一件十分充满仪式感的事情。

书面文字比起电话里的三言两语,更显得正式一些,尤其是信里经过仔细斟酌的句子,每一个字都可能是反复推敲的结果,碰到某些段落,还会停下笔来,一手托腮,盯着烛光,沉思一会儿。

相对于现在随写随收的电子信息,书信的延迟反而有一种古典的韵味,一封寄出的家信可能需要数天甚至更长的时间才能收到,接到回信的时间更是难以预料,所以在寄出信封的每个日子都可以在期盼中度过。

由于有了信纸作为载体,书信比起一般的信息有了更多的保存价值,有时候,在回信还青黄不接的时候,还可以将以往的、泛黄的信笺抽出来反复阅读。

当然了,即使是在现在这个信息快速消费,比较浮躁的年代,还是可以以写信的心情去写一封电子邮件的,虽然已经没有了提笔写字的那种谨慎,虽然信纸换成了发光的屏幕,但如果能有心去认真的写一封信,那感觉想必也是极好的。

希望我们都能慢下来,去捡起以前的那些,有仪式感的事情。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\231\345\215\232\345\256\242/index.html" "b/p/\345\206\231\345\215\232\345\256\242/index.html" new file mode 100644 index 000000000..45ea7e478 --- /dev/null +++ "b/p/\345\206\231\345\215\232\345\256\242/index.html" @@ -0,0 +1,11 @@ +写博客 +

写博客

不管有没有人看,几乎每天都要写一篇博客,一是为了换换脑子,二是为了留点儿记忆,当然最好能写一些有用的东西,而不是流水帐。

刚看了和菜头老师写的《像说话那样写博客》,深有同感。

又不是写作文或者写文档,干嘛要写那么多书面用语或者空话套话呢,就是随心所欲,嘴里想说啥,就写点儿啥,有点儿像自言自语。

内容当然不能太没劲,说一说今天吃了啥,去了几趟厕所等,写这些简直是浪费网络资源,不过也不是绝对的,据说有人坚持写了一年的博客,每一篇里面只记载了当天吃了什么饭,后来又有好事者根据博客内容统计出了该人的饮食习惯并列出了图表,这又另当别论了。

我自己给自己的博客定下了内容范围,首先绝对不会转载别人的内容,其次不会写与政治有关的话题(我只是不明真相而且沉默的大多数),然后也不会写工作中的事情。

如果算上刚才说的不能写当日的流水帐,就只剩下自己的爱好可以写一些了,比如音乐、电影(不是影评)、科技、编程、硬件等,偶尔也会写一些貌似小资文风的内容,不过也都是喝高了之后写的,过后看完两股战战几欲删除。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\231\345\234\250\345\271\263\345\256\211\345\244\234/index.html" "b/p/\345\206\231\345\234\250\345\271\263\345\256\211\345\244\234/index.html" new file mode 100644 index 000000000..1ad7ab211 --- /dev/null +++ "b/p/\345\206\231\345\234\250\345\271\263\345\256\211\345\244\234/index.html" @@ -0,0 +1,11 @@ +写在平安夜 +

写在平安夜

圣诞节,这个本属于老外的节日,现在已经成功移植到国内了,大家过得还不亦乐乎,节日嘛,咱们最喜欢了,来者不拒,有一个算一个。

现在外面温度-5度,偏北风力4级,看不见月亮,我刚和同事喝了两杯回来,屋里暖和极了,倒了一杯开水,坐在客厅,很安静。

总是到了年末的时候才想起感慨时光的流逝,这一晃就又是一年。粗略地回顾一下,有收获也有遗憾,有成长也有叛逆。

翻了翻年初给自己制定的计划(对不起,我是计划狂++),发现大部分还是实现了的,有些计划制定的太过离谱偏离较远,比如学习计划,由于时间的冲突只得以工作为重。

不过,梦想始终是不能够放弃的,我庆幸自己清醒地知道目标,并坚定不移地去实现它,一个一个地了却心中的情结。

谈到梦想,我都快成了一个梦想家了,到现在为止我仍然保留的梦想有:

拍摄一部上好的纪录片,做一个录音师,拥有一个属于自己的实验室,写一个操作系统,等等等等(除了最后一个其它的好像都离我的职业挺远的)。

在追逐梦想的路上,难免会有失望和沮丧的时候,但心中的信念从来都没有丢失,面对我的梦想,我像一个虔诚的信徒,怀揣着单纯的心,每晚甜蜜的睡去。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\231\345\256\214\344\272\206\345\271\264\347\273\210\346\200\273\347\273\223/index.html" "b/p/\345\206\231\345\256\214\344\272\206\345\271\264\347\273\210\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..e3ce9b25a --- /dev/null +++ "b/p/\345\206\231\345\256\214\344\272\206\345\271\264\347\273\210\346\200\273\347\273\223/index.html" @@ -0,0 +1,11 @@ +写完了年终总结! +

写完了年终总结!

明天就是2008年了,我的老毛病还是没改,每到假期或周末就兴奋的睡不着觉,今天刚到早上六点就爬了起来。想起还有一篇年终总结去要写,于是打开电脑,整理思路,先回忆一下今年我都干了什么,再展望一下明年我要干啥,不知不觉地,一篇年终总结就新鲜出炉了!由于我的生活就是工作,工作就是生活,所以呢,这篇总结其实就是个工作总结!不多说了,新年快乐!–由sbabybird于12/31/200707:54:00上午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\231\346\255\214\344\270\200\351\246\226/index.html" "b/p/\345\206\231\346\255\214\344\270\200\351\246\226/index.html" new file mode 100644 index 000000000..91615c7a6 --- /dev/null +++ "b/p/\345\206\231\346\255\214\344\270\200\351\246\226/index.html" @@ -0,0 +1,11 @@ +写歌一首 +

写歌一首

晚饭后,出去散步,春风拂面,颇有意境,遂赋酸词一首,改日谱曲。

如下:

我会做我自己只要我还愿意去寻找

曾经,的美丽在幸福的日记里在漫漫岁月里

有了你我不怕,孤寂

我要好好爱你没有人能怀疑

你知道我不能,失去你

就算春风淅沥沥吹不走

长夜思绪爱让我化不开,忧伤

哪怕心中燃烧的梦想带来远方无尽的希望

猜不透的是那里到底有没有天堂

春天花儿悄悄地绽放背上重重流浪的行囊

带不走的是你给我的清香

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\231\347\202\271\345\204\277\344\270\234\350\245\277\344\273\245\351\230\262\350\207\252\345\267\261\346\212\212\345\210\253\344\272\272\347\232\204\347\237\245\350\257\206\345\275\223\346\210\220\350\207\252\345\267\261\347\232\204/index.html" "b/p/\345\206\231\347\202\271\345\204\277\344\270\234\350\245\277\344\273\245\351\230\262\350\207\252\345\267\261\346\212\212\345\210\253\344\272\272\347\232\204\347\237\245\350\257\206\345\275\223\346\210\220\350\207\252\345\267\261\347\232\204/index.html" new file mode 100644 index 000000000..0db0a5fcc --- /dev/null +++ "b/p/\345\206\231\347\202\271\345\204\277\344\270\234\350\245\277\344\273\245\351\230\262\350\207\252\345\267\261\346\212\212\345\210\253\344\272\272\347\232\204\347\237\245\350\257\206\345\275\223\346\210\220\350\207\252\345\267\261\347\232\204/index.html" @@ -0,0 +1,11 @@ +写点儿东西,以防自己把别人的知识当成自己的 +

写点儿东西,以防自己把别人的知识当成自己的

作家余华在《我能否相信自己》里写的一句话让我看了很有触动:

“那些轻易发表看法的人,很可能经常将别人的知识误解成是自己的,将过去的知识误解成未来的。然后,这个世界上就出现了层出不穷的笑话。”

这正是我所担心的,担心知道的太多,明白的却又太少。前者容易造成焦虑,信息的过载,或者想的太多。后者则导致在实际生活中面对问题时仍旧束手无策。

面对互联网上大量的信息和资料,为了缓解焦虑,大部分人都有两个习惯,一个是收藏,一个是转发。

我曾经维护着一个巨大的笔记列表,里面全是我多年来在互联网上搜集的各种资料和文章,从工具技术到人文自然与哲学相关的,都有。我还耐心的给每篇文章都增添了标签进行分类,以便“以后”更方便的查找和“仔细阅读”。

然而,事实是,永远会有更新的内容出现,然后动动鼠标就能收藏,但是再也没找到机会进行“仔细阅读”,当时那种“留下来慢慢看”、“以后会有用”的感觉是那么强烈,但是,真的很少再想打开看一眼。那些文章永远的躺在收藏夹里,累计出来的数字越来越大,甚至开始让我误以为那些东西我都懂了。

另一个习惯就是“转发”,看到好的东西就想分享,这是一个好习惯,但同时大量的分享也反映了一个很细微的心理激励过程,即,如果我转发某篇文字,里面提到了很多我十分认可的观点或思路(但事实上我可能根本做不到),我就忍不住要转发出来,在转发的那一刻,我的内心深处隐约觉得,好像离“做到”又进了一步(其实并没有)。

我想不仅仅只有我才是这样,应该很多人都有这种习惯和心理。

后来,我意识到了这一点,逐渐的开始改进,直到有一天我想明白了,自己不应该胡乱发表连自己都不能明白的观点,自己知道的东西不一定就能成为自己的知识。于是开始有意的控制信息的获取,转而开始尝试着将自己能想明白的东西用文字组织一下,开始“消化”知识,通过文字重新构建自己的“知识体系”。

书写东西实际上是一个思考的过程,很多写作高手看起来轻易就能写出精彩的文字,事实上底下支撑的并不是他有多强的“写作”能力,而是他的“思考”能力,他能否构建出一个他想要表达的形象,一个完整的、具体的形象,然后剩下的就是写出来。

所以说,能够写出来的东西,至少,表明了作者可以在内心里构建一个清晰的影像,对于自己的知识,有了更进一步的理解。

从将知识写成文字开始,到真正在现实中有效使用,再到可以传授给他人,慢慢的“我知道的”,就真的变成“我懂得”了。

“我的大脑就像是一口池塘,别人的书就像是一块石子;石子扔进池塘激起的是水波,而不会激起石子。”“因此别人的知识在我脑子里装得再多,也是别人的,不会是我的。”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222.png" "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222.png" new file mode 100644 index 000000000..4dee99620 Binary files /dev/null and "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222.png" differ diff --git "a/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_120x120_fill_box_smart1_3.png" "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..a0cc0f35a Binary files /dev/null and "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_1600x0_resize_box_3.png" "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_1600x0_resize_box_3.png" new file mode 100644 index 000000000..817a22994 Binary files /dev/null and "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_1600x0_resize_box_3.png" differ diff --git "a/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_800x0_resize_box_3.png" "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_800x0_resize_box_3.png" new file mode 100644 index 000000000..6ad025fce Binary files /dev/null and "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_800x0_resize_box_3.png" differ diff --git "a/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/index.html" "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/index.html" new file mode 100644 index 000000000..5cf8f93b4 --- /dev/null +++ "b/p/\345\206\254\350\207\263\344\270\272\345\225\245\345\220\203\351\245\272\345\255\220/index.html" @@ -0,0 +1,11 @@ +冬至为啥吃饺子? +
Featured image of post 冬至为啥吃饺子?

冬至为啥吃饺子?

今天是二十四节气里的冬至,阴天,据说要下雪。按照风俗习惯,我中午饱餐了一顿饺子。为什么冬至这天要吃顿饺子?我还真是不知道,上网查了一查,答案原来是这样:古时候有个老中医(不是华佗啊),叫张仲景,老家是南阳稂东人,有一阵子在长沙当大官,后来不知怎地就干不下去了,于是回老家,时值冬季,在路上看到白河两岸乡亲面黄肌瘦,饥寒交迫,不少人的耳朵都冻烂了。便让其弟子在南阳东关搭起医棚,支起大锅,在冬至那天舍"祛寒娇耳汤"医治冻疮。他把羊肉、辣椒和一些驱寒药材放在锅里熬煮,然后将羊肉、药物捞出来切碎,用面包成耳朵样的"娇耳",煮熟后,分给来求药的人每人两只"娇耳",一大碗肉汤。人们吃了"娇耳",喝了"祛寒汤",浑身暖和,两耳发热,冻伤的耳朵都治好了。后来人们为了给嘴馋找个理由,就有了"冬至那天吃饺子,再冷也不会把耳朵冻烂"的传说。ps:仔细想想,咱们中国的节日都与"吃"的关系十分密切,正月十五吃元宵、端午节吃粽子、中秋节吃月饼、腊八吃米饭(八宝饭)……–由sbabybird于12/22/200702:25:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\260\347\256\261\351\207\214\347\232\204\347\201\257/index.html" "b/p/\345\206\260\347\256\261\351\207\214\347\232\204\347\201\257/index.html" new file mode 100644 index 000000000..34c0f1e95 --- /dev/null +++ "b/p/\345\206\260\347\256\261\351\207\214\347\232\204\347\201\257/index.html" @@ -0,0 +1,11 @@ +冰箱里的灯 +

冰箱里的灯

你问:“把大象关冰箱里共分几步?”

答:“分三步,把冰箱门打开,把大象放进去,把冰箱门带上”。

你又问:“可是把大象关进去之后里面黑乎乎的大象不害怕吗?”

反问:“你怎么知道关上之后里面还是黑乎乎的?你确定关上门之后那个灯灭了吗?”

你:“~~~~~~”

这个问题曾经也困扰我很久,因为冰箱的门只要一打开那个灯就亮起来,可是关上门之后你又看不到里面,所以还是不能确定里面到底是什么情况。

听说国外曾经有人为这事儿想不开去自杀,更有人为此急得抓耳挠腮夜里都睡不着觉,直到他把冰箱的门上凿了个洞,看清了原来关上冰箱门后那个小灯真的灭了,这才安稳的睡去(估计这哥们是一环保人士,担心那灯太费电)。

我没像那位牛人那样的使用暴力,但也自有办法。当然了,作为一个正常人,去探讨冰箱里的灯到底关了没有,这种做法实在是有些偏执(这不神经病吗!),你就姑且看作我是好奇心使然吧。

反正,我的冰箱刚弄回来的时候我还真就动用了高科技手段–拍照手机,我那手机带了个30W像素的鸡肋摄像头这下派上用场了。也是分了三步,把冰箱门打开,把手机定了时(定时10秒后拍摄)放进去,再把门带上。

心中默念,时间到,开门取出,查看照片,出现了不可思议的结果!照片里那个灯竟然还亮着!再试一次,还是亮着。

我那叫一个晕,觉得被冰箱厂家给忽悠了,口口声声说节能,这得多耗不少电呐。

在仔细阅读了两遍说明书之后,总算恍然大悟,原来那不是普通的灯,它不仅仅担任了照明的工作(难道还用来制冷啊?),还兼具杀菌的功效,在关上门之后,它再持续照射几分钟食物,起到杀菌抑菌的效果。哦,原来如此,人家陈老师说了:“人不能无聊到这种地步!”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\206\262\345\212\250\346\230\257\351\255\224\351\254\274/index.html" "b/p/\345\206\262\345\212\250\346\230\257\351\255\224\351\254\274/index.html" new file mode 100644 index 000000000..47b6367dc --- /dev/null +++ "b/p/\345\206\262\345\212\250\346\230\257\351\255\224\351\254\274/index.html" @@ -0,0 +1,11 @@ +冲动是魔鬼 +

冲动是魔鬼

头脑发热,买了几本钢琴和五线谱教程,准备牺牲每天写博客的时间来学习五线谱,想想就头大。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\207\206\345\244\207\344\271\260\345\207\240\346\234\254\344\271\246/index.html" "b/p/\345\207\206\345\244\207\344\271\260\345\207\240\346\234\254\344\271\246/index.html" new file mode 100644 index 000000000..63a7c73ac --- /dev/null +++ "b/p/\345\207\206\345\244\207\344\271\260\345\207\240\346\234\254\344\271\246/index.html" @@ -0,0 +1,11 @@ +准备买几本书 +

准备买几本书

刚才二舅给我打电话,聊了一会儿天。

问我现在是否还看书,我说看,电子版的,在手机上也看,看的眼睛都快毁了。

很久没买书了,记得跟飞行鱼借来的《代码大全》差点儿垫了桌子。

接了这个电话,两个人谈了一阵子书,我又想看纸质的真书了,刚好他又给我推荐了两本,随即去当当把书定下。

选书的时候哦发现一个问题,计算机相关的书最贵,买三本畅销书的价格还比不了买一本忽悠你怎么编程的书贵。

不过还是难以抗拒诱惑,各买了两本。

《做单》这本书最近十分火,本来看名字和书评都不太和我的胃口,但是二舅极力推荐,所以拿下。

《我们台湾这些年》是王三表在他博客里提到的,所以拿下。

《深入理解计算机系统》据说是人家美国大学里的教材,图个新鲜,所以拿下。

《程序员的自我修养》就冲这个名字哪怕里面全是白纸也得拿下。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\207\206\345\244\207\345\274\200\345\247\213\350\267\221\346\255\245/index.html" "b/p/\345\207\206\345\244\207\345\274\200\345\247\213\350\267\221\346\255\245/index.html" new file mode 100644 index 000000000..478ccc1a9 --- /dev/null +++ "b/p/\345\207\206\345\244\207\345\274\200\345\247\213\350\267\221\346\255\245/index.html" @@ -0,0 +1,11 @@ +准备开始跑步 +

准备开始跑步

锻炼身体的计划早已提出,也该落实下来了,趁现在温度回升、沙尘暴还没来,抓紧实施计划。除了遇到不可抗拒因素(比如恶劣天气、加班、与朋友喝小酒等),争取坚持每天跑步半个小时,我想试试。

选择跑步的地点确实是一件比较头疼事情,经过仔细斟酌, 初步选定三个可以跑步的地方。

首选是在小区里,我们小区环境还算不错,道路、绿化都比较好,一圈下来估计也有一公里,就我目前这状态,两圈已是极限,所以距离足够,但是院内小车比较密集,偶尔还有遛狗的,如果不小心可能会踩到shit。再有就是时间上不太好安排,如果早起跑步的话,需要比平时上班早起个把小时,而且据说早起跑步容易引起心脏问题,下班后到家也比较晚,无论是饭前空腹跑还是饭后跑,都不太合适。所以只有周末的时候可以在小区里跑步,那时可以合理安排时间,而且周末院内车也比较少。

工作日的时候可以选择在下班路上跑步,每天出了地铁之后有一段新修的公路不错,宽阔、平整、少车、安静,非常适合,唯一的问题是目前还没设置路灯,晚上黑灯瞎火的在那儿跑可能比较危险,也容易吓着路人。

还有一个比较激进的方案,不知道是否具有可行性,每天从公司回家的时候,乘坐8号线,在奥体公园下车,然后沿公园一直跑步,穿过森林公园,到林翠桥再上车,我在百度地图上量了一下,大概4公里,距离合适,而且环境优美,大概是最适合跑步的地方了,当然更激进的方案是沿着8号线直接跑回家,不过要是那样的话我估计还没到家我就挂了。

运动装备方面,跑步应该是最简单的了,一双鞋、一副耳机足矣。

我本来还想去网上搜索一下相关攻略教程啥的,谁知那些文章越看越闹心,无论是姿势还是穿戴,啰里啰唆,甚至还有视频教程,把简单事情弄得太复杂,索性不去管这些。

先跑起来再说,不用介意姿势是否正确,路线是否合适,装备是否完善,对于跑步这种原始的本能,直接跑就是了,重要的是行动起来。再不跑步就老了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\207\240\345\244\251\344\270\215\350\247\201livespace\345\217\230\344\272\206/index.html" "b/p/\345\207\240\345\244\251\344\270\215\350\247\201livespace\345\217\230\344\272\206/index.html" new file mode 100644 index 000000000..3db64c42d --- /dev/null +++ "b/p/\345\207\240\345\244\251\344\270\215\350\247\201livespace\345\217\230\344\272\206/index.html" @@ -0,0 +1,11 @@ +几天不见,LiveSpace变了 +

几天不见,LiveSpace变了

我都已经好几天没有照看我的msn空间了(最近太累),今天访问一下,发现界面居然有了变化(别三日,刮目看),嗯哼,原来是微软的Live小组把咱的空间给升级了。

首先是界面的整体风格有了改变,我审美不行,看不出是好看还是难看,感觉貌似顺眼一些。空间上方仍然悬挂着那个大大的广告条(我一直看它不爽),工具条的宽度变宽了,这样会占用更多的空间。

进入空间的“自定义”功能,发现提供的模板多了一些,但一个比一个不耐看,所以我什么也没有动,继续保持现状。一直希望Live空间能够提供类似WordPress那样的模板(多漂亮啊),现在看来,要走的路还比较长(Live小组继续加油啊!)。

不过话又说回来,空间里整那么多花里胡哨的东东也没用,看得让人眼花缭乱的也不爽,我还是喜欢简约一点的风格,最好是让人进入我的空间后,感觉就像是打开了windows的记事本(过分了吧)。

本来Google提供的那个blog挺好的,可是总是不能访问,还是老老实实的在微软提供的共享空间里得瑟吧。

最后,再鄙视一下我自己,这几天由于懒惰而没有更新空间的内容,太不像话了!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\210\240\351\231\244\346\226\207\344\273\266\347\232\204\345\256\232\345\276\213/index.html" "b/p/\345\210\240\351\231\244\346\226\207\344\273\266\347\232\204\345\256\232\345\276\213/index.html" new file mode 100644 index 000000000..0a5fa48ef --- /dev/null +++ "b/p/\345\210\240\351\231\244\346\226\207\344\273\266\347\232\204\345\256\232\345\276\213/index.html" @@ -0,0 +1,11 @@ +删除文件的定律 +

删除文件的定律

定律:上午删除的下午就会用到,而如果你不删除它们,永远也用不到。

前两天听到有人抱怨现在硬盘越来越大了,动辄好几百G甚至上T,这对于AV爱好者来说是个福音,但对于一个偏执狂来说简直是个灾难。

因为偏执狂要控制电脑里的一切,磁盘该如何分区,文件夹该如何命名,要建多深层次的文件夹结构都有详细的规划,比如音乐可按格式分为无损的和压缩的,按地域分可分为国内、欧美、日韩的,至于按流派分那就更头疼了,还有纯音乐等等,所以我有个偏执狂朋友甚至花费了将近一年的时间才慢慢把自己的那个叫做Music的文件夹整理完毕,真是一项系统工程。

我对磁盘文件的管理也有些偏执,首先一点是不能看见回收站里有东西(听说还有人听清空回收站的声音上瘾),所以删除任何文件的时候都是按住shift键直接删除,这些倒霉的文件连进入回收站里歇会儿的功夫都没有直接就被踢飞了。

我想说的是,这是一个很不好的习惯。

每当我清理磁盘上“没用的”文件之后,随着干净文件夹带来的快感而来的就是马上就需要用到刚才被删文件的痛苦。

一般来说,上午删除的下午就会用到,而如果你不删除它们,感觉永远也用不到,每天都在哪儿呆着看着真碍眼!

刚才就又经历了一次活生生的例子,昨天晚上在家呆着没事儿,就把我家用机上的东西都打扫了一下,卸载了很多软件,最大的失败就是把开发环境卸掉了,把相应的安装文件也删除了。

结果…………刚才被电话吵醒了,前方的同事有问题搞不定了,让我着实体验了一把手边没有开发环境(偏偏赶上不能使用远程桌面)来遥控搞定问题的艰辛。

好了,牢骚发完,睡觉!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\210\253\346\203\263\344\270\215\345\274\200\345\225\212/index.html" "b/p/\345\210\253\346\203\263\344\270\215\345\274\200\345\225\212/index.html" new file mode 100644 index 000000000..c3a87516d --- /dev/null +++ "b/p/\345\210\253\346\203\263\344\270\215\345\274\200\345\225\212/index.html" @@ -0,0 +1,11 @@ +别想不开啊 +

别想不开啊

郁闷或高兴的时候我总是想抽根烟,比如,当我的代码总是调试失败或者刚修改完一个Bug的时候。

办公室里不允许抽烟,否则我们屋肯定和火车的车厢连接处一样,整天烟雾缭绕,这样就剥夺了一小撮人不抽烟的权利。

所以,抽烟的兄弟只能到厕所旁边的那个阳台吞云吐雾了。

这样也好,一边抽着"混合味儿"的香烟,一边欣赏窗外的风景,既满足了肺对于尼古丁的需求,又能放松一下疲倦的眼睛。

楼层不低,所以看得也挺远的,如果眼神儿和天气都足够好的话,甚至可以看见鸟巢里工人师傅的焊枪发出的耀眼蓝光。

下班的时候,我又去抽了一根烟,一个人。

远处的大楼在烟雾中显得虚无缥缈。

我手扶着窗户,探出头去,想看得清晰一些。

这时,一个哥们从厕所走出来,一边提着拉链一边语重心长地说:"别想不开啊!"

我靠!我有啥想不开的?

工作虽然累点儿,但是,祖国还需要我,人民还需要我,老婆做好的饭菜还在桌子上等着我,孩子还等着我回去辅导功课…… 

算了,回去了,明天又是崭新的一天,但愿今天不堵车。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584.JPG" "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584.JPG" new file mode 100644 index 000000000..a19741ab2 Binary files /dev/null and "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584.JPG" differ diff --git "a/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_120x120_fill_q75_box_smart1.JPG" "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_120x120_fill_q75_box_smart1.JPG" new file mode 100644 index 000000000..487c5c03a Binary files /dev/null and "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_120x120_fill_q75_box_smart1.JPG" differ diff --git "a/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_1600x0_resize_q75_box.JPG" "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_1600x0_resize_q75_box.JPG" new file mode 100644 index 000000000..5381aec20 Binary files /dev/null and "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_1600x0_resize_q75_box.JPG" differ diff --git "a/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_800x0_resize_q75_box.JPG" "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_800x0_resize_q75_box.JPG" new file mode 100644 index 000000000..5e9cece43 Binary files /dev/null and "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_800x0_resize_q75_box.JPG" differ diff --git "a/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/index.html" "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/index.html" new file mode 100644 index 000000000..66031eab6 --- /dev/null +++ "b/p/\345\210\260\345\244\204\350\271\255\351\245\255\347\232\204\345\221\250\346\234\253/index.html" @@ -0,0 +1,11 @@ +到处蹭饭的周末 +
Featured image of post 到处蹭饭的周末

到处蹭饭的周末

此周末加班0.75天,在朋友家玩了1.25天。吃大餐若干,其中有朋友亲自下厨精心烹饪的海鲜。狂唱卡拉OK从民歌到通俗再到摇滚,直至嗓子嘶哑。三五个人又一起打了台球,期间发现我的球技属于遇强则强遇弱则更弱。

晚饭又在另一个朋友家中解决,亦丰盛无比,这两天真是太对得住我的胃了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213.png" "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213.png" new file mode 100644 index 000000000..e64012595 Binary files /dev/null and "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213.png" differ diff --git "a/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213_hudd51e4af981121665c21452b637d7852_42053_120x120_fill_box_smart1_3.png" "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213_hudd51e4af981121665c21452b637d7852_42053_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..f1680a214 Binary files /dev/null and "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213_hudd51e4af981121665c21452b637d7852_42053_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213_hudd51e4af981121665c21452b637d7852_42053_1600x0_resize_box_3.png" "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213_hudd51e4af981121665c21452b637d7852_42053_1600x0_resize_box_3.png" new file mode 100644 index 000000000..596f11deb Binary files /dev/null and "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213_hudd51e4af981121665c21452b637d7852_42053_1600x0_resize_box_3.png" differ diff --git "a/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213_hudd51e4af981121665c21452b637d7852_42053_800x0_resize_box_3.png" "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213_hudd51e4af981121665c21452b637d7852_42053_800x0_resize_box_3.png" new file mode 100644 index 000000000..52656a2de Binary files /dev/null and "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/20071213_hudd51e4af981121665c21452b637d7852_42053_800x0_resize_box_3.png" differ diff --git "a/p/\345\210\260\351\202\243\346\227\266\345\200\231/index.html" "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/index.html" new file mode 100644 index 000000000..9abc77792 --- /dev/null +++ "b/p/\345\210\260\351\202\243\346\227\266\345\200\231/index.html" @@ -0,0 +1,11 @@ +到那时候 +
Featured image of post 到那时候

到那时候

下班了,还在干活儿ing,瞅瞅我的任务栏:

一边开着TOAD配置数据库,一边开着Word看着文档,在Word的隔壁是牛逼的VC在那儿咔咔编译程序,SourceSafe正努力地Checkin一堆文件(脸都憋红了),点了两下"开始菜单"却不再搭理我,想开个Firefox看两个网页都不行。

唉!什么时候,硬盘像内存那么快,内存像硬盘那么大,就好了什么时候,内存像CPU缓存那么快,CPU缓存像内存那么大,就好了哼哼,到那时候…

估计是,Windows上来先把资源吃掉三分之一,然后TOAD和VC这些用来干活儿的工具再吃掉三分之一,最后打开Firefox把剩下的全吃掉!

–由sbabybird于12/13/200705:49:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\211\215\347\253\257\346\212\200\346\234\257\347\232\204\344\270\200\344\272\233\346\200\235\350\200\203/index.html" "b/p/\345\211\215\347\253\257\346\212\200\346\234\257\347\232\204\344\270\200\344\272\233\346\200\235\350\200\203/index.html" new file mode 100644 index 000000000..febaf1866 --- /dev/null +++ "b/p/\345\211\215\347\253\257\346\212\200\346\234\257\347\232\204\344\270\200\344\272\233\346\200\235\350\200\203/index.html" @@ -0,0 +1,15 @@ +前端技术的一些思考 +

前端技术的一些思考

随着技术的革新,浏览器(包括移动端浏览器)性能越来越强劲,网页所能呈现的内容也越来越丰富,从最早的只能展示静态的文本和图片,到通过Js语言和AJAX技术动态修改页面元素,再到HTML5标准所支持的Canvas绘图画布,在浏览器里已经几乎可以实现以前桌面软件所做的任何事情,虽然距完全替代原生语言开发软件还有一段路程,但是就像现在的新媒体替代报纸、杂志、电视似的,这是迟早的事情。

对于目前前段技术领域所存在的问题,进行一些思考。

1、编程语言的特性: +Javascript这门语言确实存在各种问题,据说发明这个语言的哥们当时只花了一个星期的时间来完成,在编程的时候只图一时爽快,很多东西没有考虑到位,比如“面向对象”,采用了与传统的基于“类”截然不同的一种方式,使用起来有些蹩脚,缺少语言层面的“模块”化支持,导致相当长的一段时间里,前段代码混乱不堪,全局变量到处飞。不过随着新标准(ES6)的定稿,以及以谷歌浏览器为首的新兴浏览器对于标准的快速推进,相信这一局面会在三年内得以改善,对于有志于前端开发的技术人员,现在就应该开始使用ES6的标准编写代码了(支持class、import等关键字)。

2、浏览器兼容的问题: +浏览器兼容一直以来都是前端工程师的噩梦,每年因为兼容性问题而导致的工作量浪费不计其数。这里面最大的问题是老旧的IE浏览器没有退役导致的,而老旧的IE浏览器没有退役是因为相当多的人在目前还坚持使用WindowsXP系统,这个问题目前连微软都头疼,不过从我的观察来看,身边使用XP系统的越来越少了,所以我们再做新系统的时候,不妨直接抛弃那些老版本浏览器,用更好的产品体验吸引那些坚持用老旧IE浏览器的去升级。这是对新标准的最好推动。

3、大型应用的架构: +无论是传统桌面程序还是后台程序,都有多年的发展所积累起来的成熟架构和可复用框架,对于模块化、插件式、分层等设计思想都有着良好的最佳实践。但对于前段编程来说,这些目前仍处于战国时代,各种不成熟的框架和构建技术在混战,而且发展迅猛,几乎每天都有新的框架和工具出现,对于新手来说往往纠结到底该加入到什么阵营中去。但是实质上目前不需要纠结这个层面的问题,正因为都不成熟,所以尽可以快速选择一个,然后基于一套体系去实践,等跳过各种坑之后,你会发现殊途同归,大家的思路都是一致的,无非就是“数据与界面分离”、“自动化构建”、“组件式开发”。

不过我目前看好Facebook阵营的webpack、reactjs等技术未来的实质标准很可能在此阵营产生

4、何时替代原生开发: +移动端的程序尤其是游戏,短期内难以替代,因为性能问题还存在差距,但是管理类应用程序会很快被前端技术取代,PC上的桌面软件除了那些专业的生产力软件比如CAD、PS等和大型游戏,其他的也很快被前端技术取代。所以我们以后再进行技术路线选型时,需要考虑技术的发展,认清趋势,属于前端工程师的时代已经到来。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\212\240\346\262\271\345\212\240\346\262\271\346\210\221\346\234\200\346\243\222/index.html" "b/p/\345\212\240\346\262\271\345\212\240\346\262\271\346\210\221\346\234\200\346\243\222/index.html" new file mode 100644 index 000000000..265b89ed7 --- /dev/null +++ "b/p/\345\212\240\346\262\271\345\212\240\346\262\271\346\210\221\346\234\200\346\243\222/index.html" @@ -0,0 +1,23 @@ +加油加油我最棒 +

加油加油我最棒

去年的时候网上流出一段某火锅店领班激励服务员的视频,员工整齐划一跟着领班边手舞足蹈边喊口号,其中有一句喊得最带劲,叫“加油加油我最棒!” 。看完一笑。

今日乘坐地铁,得功夫刷了会儿知乎,看到一篇关于如何提高自信的提问,才感觉到,原来大部分人都缺乏自信,甚至包括我自己,这是缺点,需要改进。

缺少自信带来的危害是广泛的、显而易见的,是会影响各种效率和幸福感的,容易形成挫败感的恶性循环,长期积累容易形成心理问题,尤其是在快节奏、高压力的现代社会,所以现在很多成年人已经积累的差不多了,以后可能会出现大规模爆发期。

这个问题很火爆,相信很多人都有此类困惑,我总结了一下比较靠前的答案内容,大致可以分为两类,一种是从改变行为着手,简单有效,另一种则是从深层面改变自己的认知和思想,我觉得可以两种结合。

首先说一下缺乏自信的基本表现(可能没这么极端,但是多少会有一点儿): +1、难以接受别人的示好,但凡有人对他好一点,都会觉得不太应当,受之有愧。 +2、遇到问题时,总是怀疑自己,觉得自己不够好,自己哪里做的不对。 +3、得不到想要的东西,不强求,也不会不开心,因为开始的时候就觉得自己不配。

如何改进,方法层面: +1、不要抱怨,有谚语云:闭上嘴巴,好运自来。闭上抱怨的嘴巴,慢慢攒正能量吧。 +2、说话降低语速,清晰表达观点,及时对方再不耐烦,也不要讲太快,做到掷地有声。 +3、每天洗头:)。 +4、走路挺直,目视前方。如果你与人对视害羞,走路的时候就笔直看远方的广告牌

如何改进,思想层面: +1、不要给自己加标签,加上标签意味着自己给自己设限,很多事情不是做不到,而是自己以为做不到。 +2、做自己擅长的事情,才能形成良性循环,然后再拓宽。 +3、洒脱一点儿,不试图隐藏自己的缺点,不发表模糊的观点,不人云亦云,立场清晰,不讨好,不谄媚。 +4、认识你自己。

但是以上这些答案,所达到的效果,都不如开头我提到的那个视频里的领班,所以最简单的办法应该是,每天对着镜子说一句,“加油加油我最棒!” 哈哈哈。 +加油加油我最棒!加油加油我最强!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\215\203\345\271\264\344\273\245\345\220\216\347\232\204\344\272\272\347\261\273/index.html" "b/p/\345\215\203\345\271\264\344\273\245\345\220\216\347\232\204\344\272\272\347\261\273/index.html" new file mode 100644 index 000000000..dfff61285 --- /dev/null +++ "b/p/\345\215\203\345\271\264\344\273\245\345\220\216\347\232\204\344\272\272\347\261\273/index.html" @@ -0,0 +1,11 @@ +千年以后的人类 +

千年以后的人类

闲来无事,意淫一下千年以后人类是啥子样子哈。

如果2012是真的,那么千年以后没有人类。

如果不是,也许北京的地铁都修到31415926号线了,但是交通依然拥堵。

那时候也许你的qq等级已经升级到两个天狼星外加5个太阳3个月牙(1G个太阳折合一颗天狼星)。

那时候Google已经接管了地球上所有的计算工作,人一生下来屁股上就被栓个搜索框。

那时候人当然已经不再是从娘肚子里爬出来,而是由计算机编译出来,他的“父亲”在web页面上选择他所具备的能力,可以选择他一生下来就会C语言或者偷菜,而且有多星系语言版本,当然了,能力越高就越贵。

那时候所有的人都要求过织女星语4级,考不过不给办理银河系暂住证,当然了你也可以在开往木星的长途车站门口找到一堆办证的广告。

那时候IE也应该支持W3C的浏览器标准了,如果IE还在的话。

那时候会有一堆考古学家专门研究从地下挖出的碟片是盗版还是正版,当然了那时还是正版的值钱,到时会有一个电视节目叫“鉴碟”,拿着你收藏的碟片上电视节目的话,如果是盗版会被当场被锤子砸烂,不过有个例外是“A片不砸”。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\215\210\344\274\221/20071109.png" "b/p/\345\215\210\344\274\221/20071109.png" new file mode 100644 index 000000000..282c3f640 Binary files /dev/null and "b/p/\345\215\210\344\274\221/20071109.png" differ diff --git "a/p/\345\215\210\344\274\221/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_120x120_fill_box_smart1_3.png" "b/p/\345\215\210\344\274\221/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..9953954ad Binary files /dev/null and "b/p/\345\215\210\344\274\221/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\215\210\344\274\221/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_1600x0_resize_box_3.png" "b/p/\345\215\210\344\274\221/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_1600x0_resize_box_3.png" new file mode 100644 index 000000000..6f589799a Binary files /dev/null and "b/p/\345\215\210\344\274\221/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_1600x0_resize_box_3.png" differ diff --git "a/p/\345\215\210\344\274\221/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_800x0_resize_box_3.png" "b/p/\345\215\210\344\274\221/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_800x0_resize_box_3.png" new file mode 100644 index 000000000..a107f5f9c Binary files /dev/null and "b/p/\345\215\210\344\274\221/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_800x0_resize_box_3.png" differ diff --git "a/p/\345\215\210\344\274\221/index.html" "b/p/\345\215\210\344\274\221/index.html" new file mode 100644 index 000000000..f9602460c --- /dev/null +++ "b/p/\345\215\210\344\274\221/index.html" @@ -0,0 +1,11 @@ +午休 +
Featured image of post 午休

午休

–由sbabybird于11/09/200712:58:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\215\232\345\256\242\344\270\215\350\203\275\350\256\277\351\227\256\344\272\206/index.html" "b/p/\345\215\232\345\256\242\344\270\215\350\203\275\350\256\277\351\227\256\344\272\206/index.html" new file mode 100644 index 000000000..aea0c3685 --- /dev/null +++ "b/p/\345\215\232\345\256\242\344\270\215\350\203\275\350\256\277\351\227\256\344\272\206/index.html" @@ -0,0 +1,11 @@ +博客不能访问了 +

博客不能访问了

我有两个同步更新的blog,一个在Google的blogspot,一个在微软的livespaces,blogspot不能访问很正常,可是从昨天开始,连放在livespaces的也不能访问了,真不知到抽的哪阵风。GFW,我叉你老叉的叉叉叉。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-0b95397b5dba2834.webp" "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-0b95397b5dba2834.webp" new file mode 100644 index 000000000..343dff19a Binary files /dev/null and "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-0b95397b5dba2834.webp" differ diff --git "a/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-5af7967d7aced9ce.jpg" "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-5af7967d7aced9ce.jpg" new file mode 100644 index 000000000..7d42c71e2 Binary files /dev/null and "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-5af7967d7aced9ce.jpg" differ diff --git "a/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-90a50bac1f3a38d6.webp" "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-90a50bac1f3a38d6.webp" new file mode 100644 index 000000000..ddc590b73 Binary files /dev/null and "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-90a50bac1f3a38d6.webp" differ diff --git "a/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-a0750a572a35cda7.webp" "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-a0750a572a35cda7.webp" new file mode 100644 index 000000000..51e77107d Binary files /dev/null and "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/25416-a0750a572a35cda7.webp" differ diff --git "a/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/index.html" "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/index.html" new file mode 100644 index 000000000..fc1e4cb4e --- /dev/null +++ "b/p/\345\216\213\345\212\233\346\257\224\350\276\203\345\244\247\350\256\262\344\270\252\347\254\221\350\257\235\346\224\276\346\235\276\344\270\200\344\270\213/index.html" @@ -0,0 +1,16 @@ +压力比较大?讲个笑话放松一下 +

压力比较大?讲个笑话放松一下

一些老段子,放松一下(来自知乎https://www.zhihu.com/collection/124380021?page=2)

给我一个坚定的眼神!

给我一个坚定的眼神

无题

无题

怎样制作草莓酱

草莓

能让你产生强烈情绪的图片

能让你产生强烈情绪的图片

填空题

小学时有道关联词填空: +他( )牺牲生命,( )出卖组织。 +有人填“宁可 也不”;有人填“害怕 , 所以”; +有人填“与其 不如”;有人填“即使 ,也要”; +更有个人全校出名,他填的“白白, 忘了”。 +评论里有个清新脱俗,苦大仇深的,他填“大舅,二舅”!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415.jpg" "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415.jpg" new file mode 100644 index 000000000..9b617e157 Binary files /dev/null and "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415.jpg" differ diff --git "a/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_120x120_fill_q75_box_smart1.jpg" "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_120x120_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..853b27de0 Binary files /dev/null and "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_120x120_fill_q75_box_smart1.jpg" differ diff --git "a/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_1600x0_resize_q75_box.jpg" "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_1600x0_resize_q75_box.jpg" new file mode 100644 index 000000000..d12c71341 Binary files /dev/null and "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_1600x0_resize_q75_box.jpg" differ diff --git "a/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_800x0_resize_q75_box.jpg" "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_800x0_resize_q75_box.jpg" new file mode 100644 index 000000000..5238a8ad0 Binary files /dev/null and "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_800x0_resize_q75_box.jpg" differ diff --git "a/p/\345\216\237\346\235\245\345\246\202\346\255\244/index.html" "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/index.html" new file mode 100644 index 000000000..cc3b49a35 --- /dev/null +++ "b/p/\345\216\237\346\235\245\345\246\202\346\255\244/index.html" @@ -0,0 +1,11 @@ +原来如此 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\216\237\346\235\245\350\277\231\345\217\245\350\257\235\346\230\257\350\277\231\344\270\252\346\204\217\346\200\235\345\225\212/index.html" "b/p/\345\216\237\346\235\245\350\277\231\345\217\245\350\257\235\346\230\257\350\277\231\344\270\252\346\204\217\346\200\235\345\225\212/index.html" new file mode 100644 index 000000000..42fe27077 --- /dev/null +++ "b/p/\345\216\237\346\235\245\350\277\231\345\217\245\350\257\235\346\230\257\350\277\231\344\270\252\346\204\217\346\200\235\345\225\212/index.html" @@ -0,0 +1,11 @@ +原来这句话是这个意思啊 +

原来这句话是这个意思啊

《论语》有云"唯女子与小人为难养也",这句话的意思伤了一大批人,现在有人跳出来给出了新解释:"女"通"汝","女子"即"汝子",即"你的孩子";"养"指"教养、教育",全句是说"你的孩子有类似小人习气就不好教育了"。

"这是个教育问题,小孩会因为溺爱而放纵自己,对大人的管理充满埋怨,不就像小人?"

我联想到另外一些新解:

关于孔子的收费标准三十而立:交三十升米者,可以在后面站立听课。

   四十不惑:交四十升米者,允许提问,直至没有疑问为止。

   五十知天命:交五十升米者,可以知道明日考试之命题。

   六十耳顺:交六十升米者,先生会说些你喜欢听的话,让你耳顺。

   七十从心所欲:交七十升米者,听课要躺要坐,想来不来,一切随便。  

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\217\210\350\246\201\351\231\215\346\270\251/index.html" "b/p/\345\217\210\350\246\201\351\231\215\346\270\251/index.html" new file mode 100644 index 000000000..74c04801d --- /dev/null +++ "b/p/\345\217\210\350\246\201\351\231\215\346\270\251/index.html" @@ -0,0 +1,11 @@ +又要降温 +

又要降温

据一向不靠谱的天气预报说,最近又有大风降温天气,明天就席卷而来了,但愿不会影响我的跑步计划。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\217\221\345\236\213/index.html" "b/p/\345\217\221\345\236\213/index.html" new file mode 100644 index 000000000..814f2a333 --- /dev/null +++ "b/p/\345\217\221\345\236\213/index.html" @@ -0,0 +1,11 @@ +发型 +

发型

小时候的语文课里有一段对鲁迅先生头发的描述:"头发约莫一寸长,显然好久没剪了,却一根一根精神抖擞地直竖着。"

能留出这种发型来,光有好的洗发水是不够的,关键是发质,我的头发就是这样。

我的头发现在两寸长都有,虽然大部分都乖乖趴着,但是一觉醒来之后,总是有几小撮不合时宜地直竖着,任你嗻哩还是魔丝都无法把他们撂倒。

每天早晨洗漱完毕到梳头这一环节时总是想起刚才那段对鲁迅的描述,然后顶着翘得像刺猬般的发型去狂奔。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\217\221\347\216\260\344\270\200\346\254\276vim\344\273\243\347\240\201\346\256\265\350\241\245\345\205\250\347\232\204\346\217\222\344\273\266--snipmate/index.html" "b/p/\345\217\221\347\216\260\344\270\200\346\254\276vim\344\273\243\347\240\201\346\256\265\350\241\245\345\205\250\347\232\204\346\217\222\344\273\266--snipmate/index.html" new file mode 100644 index 000000000..06be5474a --- /dev/null +++ "b/p/\345\217\221\347\216\260\344\270\200\346\254\276vim\344\273\243\347\240\201\346\256\265\350\241\245\345\205\250\347\232\204\346\217\222\344\273\266--snipmate/index.html" @@ -0,0 +1,25 @@ +发现一款vim代码段补全的插件--snipMate +

发现一款vim代码段补全的插件--snipMate

作为一个工具狂人,我对Vim的喜爱是天生的。喜欢Vim的简单、高效、朴素、专业…。所以Vim成了我的主编辑器,无论是在Linux下还是XP下都能帮我高效地完成工作。(当然,Visual Studio才是我混饭吃的主要工具,不过这不是今天要说的重点)

对于使用Vim的人来说,大部分的工作是用Vim来编辑代码,这么一来代码的自动补全就很重要了。虽然使用SuperTab、C-Support等插件之后Vim的代码补全功能有了很大提高,但是离VS下面的VSAssistant还是有一定的距离的,比如对于代码块的补全就不是很方便。

今天我发现的这个叫做snipMate的插件很好的弥补了这一点。这个插件再次证明了Vim是无所不能的,也说明了聪明人要是懒起来真的可以很过分。

snipMate的下载地址:http://www.vim.org/scripts/script.php?script_id=2540

下载解压到vimfiles目录即可,然后打开Vim,试着编辑一个C文件,比如hello.c,输入main然后按Tab键,你会发现代码变成了下面这样:

1
+2
+3
+4
+
int main(int argc, char const *argv[])
+{
+    return 0;
+}
+

先输入for再按Tab键:

1
+2
+3
+
for (i = 0; i < count; i++)
+{
+}
+

再按Tab键,光标还会自动跳跃到count、i、code上,以方便编写自己的代码。snipMate同样也有if、while、define等常用的片段补全。

当然了,snipMate是支持各种语言的补全的,比如Python、HTML、Java等等。

最后,最重要的,就是snipMate支持自定义补全,语法也很简单,通过编辑配置文件可以很方便地定义自己的自动片段补全。

再来一段演示视频,看完后就马上去下载安装吧!演示视频链接

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226.png" "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226.png" new file mode 100644 index 000000000..dd0d3ca1f Binary files /dev/null and "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226.png" differ diff --git "a/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_120x120_fill_box_smart1_3.png" "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..8d11a146e Binary files /dev/null and "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_1600x0_resize_box_3.png" "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_1600x0_resize_box_3.png" new file mode 100644 index 000000000..4e28c4aa3 Binary files /dev/null and "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_1600x0_resize_box_3.png" differ diff --git "a/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_800x0_resize_box_3.png" "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_800x0_resize_box_3.png" new file mode 100644 index 000000000..7a324b7ae Binary files /dev/null and "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_800x0_resize_box_3.png" differ diff --git "a/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/index.html" "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/index.html" new file mode 100644 index 000000000..9020190c8 --- /dev/null +++ "b/p/\345\217\243\350\205\224\346\272\203\347\226\241\344\272\206/index.html" @@ -0,0 +1,11 @@ +口腔溃疡了 +
Featured image of post 口腔溃疡了

口腔溃疡了

这两天吃的有点儿上火,口腔溃疡了。–由sbabybird于12/26/200712:41:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\217\257\346\200\234\347\232\204\346\230\276\347\244\272\345\231\250\345\222\214\351\224\256\347\233\230/index.html" "b/p/\345\217\257\346\200\234\347\232\204\346\230\276\347\244\272\345\231\250\345\222\214\351\224\256\347\233\230/index.html" new file mode 100644 index 000000000..7c0462ca5 --- /dev/null +++ "b/p/\345\217\257\346\200\234\347\232\204\346\230\276\347\244\272\345\231\250\345\222\214\351\224\256\347\233\230/index.html" @@ -0,0 +1,11 @@ +可怜的显示器和键盘 +

可怜的显示器和键盘

刚刚看了这个视频,乐得够呛。暴躁是人的天性,虽然平时不怎么打游戏,不过我也偶尔会有这些冲动,只是显示器和键盘实在是太委屈了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\217\257\350\203\275\350\246\201\347\224\250\344\270\200\350\276\210\345\255\220\346\227\266\351\227\264\345\216\273\345\255\246\344\271\240/index.html" "b/p/\345\217\257\350\203\275\350\246\201\347\224\250\344\270\200\350\276\210\345\255\220\346\227\266\351\227\264\345\216\273\345\255\246\344\271\240/index.html" new file mode 100644 index 000000000..ba9919538 --- /dev/null +++ "b/p/\345\217\257\350\203\275\350\246\201\347\224\250\344\270\200\350\276\210\345\255\220\346\227\266\351\227\264\345\216\273\345\255\246\344\271\240/index.html" @@ -0,0 +1,15 @@ +可能要用一辈子时间去学习 +

可能要用一辈子时间去学习

完成自定的作业,想到哪儿是哪儿。

说说“学习”本身,它可以是一种行为,也可以是一种态度。狭义上来说,“学习”可能指的是习得某种技能的手段,广义上来说,获取或领悟任何知识的过程都算是“学习”。

#“好奇” +对这个世界强烈的好奇心应该是最原始的学习动力了,大家小的时候都有很强烈的好奇心,那个时候世界充满了未知和不可预测,晚上没太阳的时候向日葵怎么办、天上的星星会不会掉下来、校长是不是不上厕所、电视机关了之后里面的人去哪儿了,等,很多事情等待我们去探索。等到这些事情有了“答案”,我们也长大了,老了,对很多事情不再感到好奇了,我们可以使用表情符号聊天、会通过微积分求曲面的面积、可以制定很详尽的工作计划并跟踪、知道计算机从按下电源开关后里面发生的一切事情不过是一堆二进制在流动,我们以为世界就是这个样子了,并号称树立了完整的世界观。

回顾人类文明的进程,现在的人类并不是最聪明的,或者很聪明,但是智慧不足,因为我们现在所做的事情,发出的那些看似看明白的感悟,最终发现都是古人考虑n遍以后剩余的思想渣渣,不信你去看看《道德经》。

所以,我不能被自己所谓的“世界观”所束缚,在想明白上述事情之后,我觉得我还是要在可控的范围之内保持好奇心,以及对未知的敬畏之心。(所谓可控的范围,是比如上次我去看耳鼻喉的医生,就想问一下我的鼻中隔偏曲是不是跟挖鼻屎有关,我怕他让我转到精神科,还是忍住了。)

#“求知” +多看书应该是最好的方法,所谓开卷有益一点儿也没错,现在大家都抱怨没有时间,实际上是一个伪命题,我们只是把时间用在了很多无意义的事情上,比如发呆、不断在手机上刷那些不痛不痒的新闻、主动看烂片等,这个时候脑子就在空转,时间久了就会引起各种问题,比如信息的碎片化导致根本无法长时间集中注意力,比如对于大量信息带来的焦虑,甚至感到“迷茫”,哈哈,很多人的迷茫其实就是因为这个导致的,静下心来看书就能解决。

上网去探索信息也可以,但是分内容的优劣,我觉得新闻类的几乎可以不看,重点关注一些与你相关的即可,可以去找一些不错的博客来看,具体内容根据个人喜好来定,比如我比较喜欢看一些技术类博客,很多博主写的都比较有深度,我以前喜欢使用谷歌的Reader阅读器来订阅博客,后来谷歌把它关了,没有更好的客户端了,好在现在移动端也有很多不错的订阅客户端(推荐“即刻”,鄙视“今日头条”)。

仅仅停留在信息获取上是远远不够的,网络在带来便利的同时,有一个很大的副作用,就是使我们失去行动能力,我们在硬盘上收集大量的资料,收藏很多篇非常认同的文字,沉浸在朋友圈分享的各种技巧里,就是懒得抬手去验证一下(这一段可以谱曲唱了)。我们很容易就能知道TCP的三次握手,也知道现代大数据的处理都基于Map Reduce思想,当我们看了一两篇文章之后甚至开始沾沾自喜,仿佛已经成了该领域的专家。孔子和孟子都说过“学习东西最糟糕的方法就是看很多书、听很多讲课、看很多视频,而不亲自动手去试一下”,创立了伟大心学的王阳明也说过“知行合一最牛掰”。所以亲自动手试一试,将领会的思想运用在现实中还是很有必要的。

#“创造” +这个世界上获取快乐的方式有很多,但是获得幸福的方法只有一个,那就是“创造”。消费东西很容易带来短暂的快乐,比如女生买包、男生买车,当时很爽,但只是暂时的,保持持续的幸福感就是不断去创造,不一定非得创造出实物,因为创造的过程本身就是快乐的,可以是写一首歌,一篇文章,一段代码,制造一段美好回忆等等,说到这里我突然想到那个只想当木匠的明朝皇帝,哈哈。

因为“创造”本身是只有智慧生命才具有的能力,所以我们才因为创造而感到幸福,再说远一点儿,宇宙本身是一个“熵增”的过程(我靠好高深),而“创造”恰恰是将“无序”变为“有序”的逆过程,可能这种叛逆感才是让我们感到很爽的原因吧。

#“坚持” +最近我一直在挑战自己,坚持了一些创造的习惯,简单的事情坚持下来应该也是一件伟大的事情吧,所以写到最后,我突然想起几年前的某个周末,我坐在马桶上,捧着一本《万物简史》,一边感叹宇宙的神奇,一边埋怨自己买书如山倒,看书如抽丝。然后,突然就像当年的须菩提那样,非常虔诚地,由衷地发起了一个愿望—-我要用一辈子的时间去学习。遂将我的签名改成了“好奇”、“求知”、“创造”,这三个词后来基本上作为我以后的衡量做一件事是否有意义的准则了。

###考虑到不违反最新的广告法,我谨慎地将文章标题前加了一个“可能”。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\203\347\211\233\346\216\222\347\232\204\346\227\266\345\200\231\344\275\240\346\262\241\346\203\263\350\277\207\350\246\201\350\256\244\350\257\206\351\202\243\345\244\264\347\211\233/index.html" "b/p/\345\220\203\347\211\233\346\216\222\347\232\204\346\227\266\345\200\231\344\275\240\346\262\241\346\203\263\350\277\207\350\246\201\350\256\244\350\257\206\351\202\243\345\244\264\347\211\233/index.html" new file mode 100644 index 000000000..2419c279b --- /dev/null +++ "b/p/\345\220\203\347\211\233\346\216\222\347\232\204\346\227\266\345\200\231\344\275\240\346\262\241\346\203\263\350\277\207\350\246\201\350\256\244\350\257\206\351\202\243\345\244\264\347\211\233/index.html" @@ -0,0 +1,11 @@ +吃牛排的时候你没想过要认识那头牛 +

吃牛排的时候你没想过要认识那头牛

《逃出克隆岛》这部2005年的科幻电影(算是科幻吧),今天又被我翻出来看了看。

故事里说,在不远的将来,随着克隆技术的发展,人类已经具备了克隆自己的能力,最简单的应用是当人类的器官坏掉之后就克隆一个换上,这给那些贪婪的、渴望长生的人们又带来了希望。

有了市场需求就有人提供这种服务,故事里的“坏人”开办了一个地下工厂专门提供克隆器官,并告诉外界克隆的这些器官寄生在没有灵魂、没有思想、知觉的“植物人”身上,听起来貌似很人道。

然而,随着时间的进展,“坏人”发现通过这种手段提供的器官质量并不高,于是直接克隆出整个的活人,大批量的复制,统一的教育他们,并给他们植入雷同的记忆,描述了一个类似天堂的地方作为他们活着的终极目标,当然这个地方就是他们生命的重点。

一旦用到了他们器官他们的生命也就走到了终点,外面世界里的人类作为“客户”继续使用新鲜的器官活下去。

这些克隆人大部分没有真正的思想,认知水平停留在孩童阶段,本来一切进展顺利,使用器官的人都没有负罪感,因为就像电影里说的那样:“吃牛排的时候你从没想过要认识那头牛”。

然而,人都是有好奇心的,克隆人也一样,随着好奇心越来越强烈,就引发了电影接下来的故事。

故事的结局还算不错,就像所有的电影一样,“坏人”受到了惩罚,泯灭的人性又一次战胜了邪恶。

电影本身结束了,可是带给人的思考却漫无边际,随着人类文明的发展,人性会被重新定义,只有一样是可以肯定的:为了生存,所有人都会不择手段。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\203\351\245\274/index.html" "b/p/\345\220\203\351\245\274/index.html" new file mode 100644 index 000000000..cafb0e2e5 --- /dev/null +++ "b/p/\345\220\203\351\245\274/index.html" @@ -0,0 +1,11 @@ +吃饼 +

吃饼

晚饭喝粥吃饼,就在离公司不远的粥铺。

这家的大麦粥很合我的口味,提供的主食里有一种面饼,拿辣椒、鸡蛋、面粉混在一起煎制而成,曰:尖椒饼。

吃起来绵软可口,十分鲜美,是我每次必点的主食。

美中不足就是份量太少,每次总被我三口两口吃完,于是我今天就一次点了两份,服务员好像很不解,瞪着眼睛有跟我确认两遍,然后转过身吐了吐舌头冲别服务员做了鬼脸。

她心想,没看出来,这家活这么瘦还这么能吃。

我心想,谁能吃啦?你们也不觉的害臊,这么少的东西也好意思端上来。

不过,我还是假装只吃了一张饼,那一份打包了在路上吃了…

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\216\347\253\257\345\274\200\345\217\221\344\273\216paas\345\210\260baas/index.html" "b/p/\345\220\216\347\253\257\345\274\200\345\217\221\344\273\216paas\345\210\260baas/index.html" new file mode 100644 index 000000000..394251b2d --- /dev/null +++ "b/p/\345\220\216\347\253\257\345\274\200\345\217\221\344\273\216paas\345\210\260baas/index.html" @@ -0,0 +1,11 @@ +后端开发从PaaS到BaaS +

后端开发从PaaS到BaaS

鉴于我们在web产品开发过程中采用了前后端分离(也是广泛采用的新技术)的技术,前端开发与后端开发在约定完交互接口之后往往存在一定的开发时间差,也就是说移动端和页面程序已经开发出界面了,但是后端的接口还没提供好,导致调试困难。于是我们很自然的就想到一个点子,为何不制作一个服务专门用来生成供前端调试调用的“假”接口呢?

于是我们很快就选用了MongoDB作为数据库,基于nodejs开发了一个模拟各种数据增删查改的接口,符合RESTful标准,可以通过web页面随时增加你想要模拟的接口,除了没有业务逻辑之外,可以满足移动应用和web前端页面开发的数据模拟和接口访问,解决了前后端开发的时间差问题。

后来我进一步想了一下,为什么我们不能将这个服务增强,使之具有一定的业务扩展能力(比如使用js脚本来插入业务逻辑),并配上我们的基础服务(权限、流程、报表等),这样我们是不是就不用开发纯业务的后端程序了呢?

这个想法令我很兴奋,因为这就是传说中的云计算PaaS落地的一个体现,而且看起来像是一个伟大的产品的小时候,于是我就上网搜索了一下,看看有没有类似产品,结果令人欢欣鼓舞,原来Facebook早在两年前就投资了一家创业公司开始做这个了(名字叫Parse,有兴趣可以搜索一下),谷歌公司也收购了类似产品。国内也已经有人做了,而且据说还不错,比较出名的是LeanCloud,我看了一下已经是比较成熟的解决方案了。

在移动互联网飞速发展的今天,后端服务的开发需求量非常之大(当然很多风投老板至今还认为移动应用的开发工作量只是手机上面的那些界面,这使得他们数次掉进坑里),上面那些厂商就是看准了这个需求,开发了面向后端的PaaS服务,使得一大票创业团队不再为后台服务发愁,找几个app程序员专注于客户端的应用开发就行了。

云计算技术发展到今天,上层的软件即服务(SaaS)和底层的基础设施即服务(IaaS)发展的都特别好。一方面,软件即服务已经渗透到社会各行各业,很多在线服务已经成为了普通人生活中不可或缺的一部分(比如在线地图),另一方面,基础设施即服务也得到了广大开发者的认可,几乎每个上进的开发者都在互联网上租赁(或免费)有自己的虚拟服务器或存储服务。唯独处在中间层的平台即服务(PaaS)发展的不尽如人意,无论是国内的SAE(新浪)还是国外的谷歌的GAE(现在改名叫GoogleCloudPlatform了),用户都没有达到较大的规模。因为现有PaaS仍没有很好的提升后端开发的工作量,即使存在那么多的中间件,仍然需要大量的后端开发工作要做。这时候,上帝说:要有光,于是就诞生了BaaS。

BaaS(后端即服务)是指专为移动应用开发者提供整合云后端的服务。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储、账户管理、消息推送、社交网络整合等功能。

BaaS本质上来说是PaaS的一个细分领域实现,但是基本解决了后端开发问题。鼓吹者甚至扬言用一个云平台来解决所有互联网产品后端服务的需求。

想法有些激进,但是可以回顾操作系统的发展历史来借鉴。很久以前,所有的计算机都没有通用操作系统,那个时候的软件厂商提供给客户的软件是自带操作系统的,完全从硬件底层做起,一直到业务功能开发。直到后来有了通用的操作系统如(windows、linux等),才将这些软件厂商从底层解放出来,控制硬件的事情交给了操作系统,应用软件厂商专注于业务开发。

现在的情形跟当年的操作系统诞生时很像,很多厂商还在自己解决后端服务的开发,但是随着后端技术的越来越成熟,必然出现像当年微软这样的厂商彻底解决后端服务的问题。

所以现在还在编写后端业务代码的企业和技术人员,需要用发展的眼光来看自己的软件架构,业务逻辑逐渐向前端倾斜,底层服务围绕数据为中心,很有可能在未来的某一天后端开发(这里指侠义的业务逻辑开发)将淡出应用软件开发的领域。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103.png" "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103.png" new file mode 100644 index 000000000..43d3135a3 Binary files /dev/null and "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103.png" differ diff --git "a/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_120x120_fill_box_smart1_3.png" "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..82e4e900c Binary files /dev/null and "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_1600x0_resize_box_3.png" "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_1600x0_resize_box_3.png" new file mode 100644 index 000000000..dffcdfdd5 Binary files /dev/null and "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_1600x0_resize_box_3.png" differ diff --git "a/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_800x0_resize_box_3.png" "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_800x0_resize_box_3.png" new file mode 100644 index 000000000..230ae3f1e Binary files /dev/null and "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_800x0_resize_box_3.png" differ diff --git "a/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/index.html" "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/index.html" new file mode 100644 index 000000000..4662d87a9 --- /dev/null +++ "b/p/\345\220\254\345\271\277\346\222\255\347\232\204\346\204\237\350\247\211/index.html" @@ -0,0 +1,11 @@ +听广播的感觉 +
Featured image of post 听广播的感觉

听广播的感觉

这两天见同事提了个巨大的收音机(比板砖还大),一问才知道,原来是怀旧,想找回曾经"听广播的感觉",手机带的FM和电脑上的网络电台听起来太没感觉了,于是跑到商场挑了个最大号的扛了回来。

这不禁勾起了我的回忆。

接下来让我把镜头推回到六年前,那时我在郑州上大学,除了上课(如果有课的话)就是整天抱着电脑啃C语言,当时既没上网也没电视可看,接受信息的渠道只有一台收音机(夸张了?)。

节目很丰富,给我印象最深的就是郑州交通广播电台夜在里十二点准时播出的《大丈夫日记》(什么?你以为是《深夜悄悄话》?你想哪儿去啦?),电台主持人每天都以特有的腔调(学不来)朗读一个幽默段子,类似于现在网上的恶搞段子,但是格调要高一些,文章不长,但是很有趣,调侃人生,嬉笑怒骂,文字本身就写的很风趣,主持人再用那富有磁性的声音给读出来,听着真是一种享受。

最后再播放一首歌曲,而且在播放这首歌儿之前一定以一种蛮横的语调说一句:"给男人听的歌,你可以不会唱,但..你..必须听!"我第一次听到老谭(不好意思老谭,你永远都是25岁)的《难舍难分》就是在这个节目里,当时真是觉得太好听了:"忘不了你眼中那闪烁的泪光,好像知道我说谎,我茫然走错了地方,却已不敢回头望……"。

可以说,这个节目是我当时最好的精神食粮了(不知道现在还存在吗),有一阵子我几乎天天等到十二点,我想所谓"听广播的感觉"大概就是这样吧。

好了,回到现在,现在的广播已经很难找到一个精品节目了,不是太矫情就是插广告,而且广告还他妈全是医院、医药的广告!所以,时代的潮流是不可逆转的,广播电台再做垂死挣扎也无济于事,被网络取代已是必然的事情,所以你怀里就算抱个巨大的收音机也不会再找到"听广播的感觉"了!

–由sbabybird于1/03/200805:40:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\254\346\255\214\347\232\204\345\277\203\346\203\205/index.html" "b/p/\345\220\254\346\255\214\347\232\204\345\277\203\346\203\205/index.html" new file mode 100644 index 000000000..b2ebc4d69 --- /dev/null +++ "b/p/\345\220\254\346\255\214\347\232\204\345\277\203\346\203\205/index.html" @@ -0,0 +1,11 @@ +听歌的心情 +

听歌的心情

听歌的心情偶尔听了听朋友的mp3,发现是经典老歌大放送,最喜欢听老歌了,马上将其全部考走(没用剪切,不像某些考毛片的学生)。

有些歌相当长的时间没听过了,有些上次听的时候还在用盒带。

朋友向我抱怨说现在的随身听容量太大,选歌忒麻烦,跳来跳去跳不到心坎上。

我也有此感受,我平时干活儿时一般都开着foobar,列表里四五千首歌,几乎没有一首能耐着性子听完,于是我设置了全局热键,一边编码一边换歌,时间长了练就了只要听三秒钟前奏马上就听出是什么歌的本领,要是有此类比赛,我肯定能获奖。

为什么就没有耐心听完一首呢,为什么呢?

技术的前进加上人的浮躁!以前听磁带的时候,想跳下一曲得按快进,马达呼呼跑半天,既费时间又费电(那时买不起南孚),还不能保证刚好到下一曲(后来出的高级货具备自动检测的能力就另当别论了)。

那个时候我练出来的就是另一个本领了,用铅笔转磁带!

既省电又准确,所以我就经常一边听歌一边拿笔转另一盒磁带。

现在好了,想听什么直接在线就听了,遇见喜欢的直接就下载了,特别喜欢的就下载无损压缩的,再也不去逛碟店了。

然后在成千上万的曲目里跳来跳去。

可是,我听歌的心情那里去了?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\254\346\255\214\351\232\217\346\203\263/index.html" "b/p/\345\220\254\346\255\214\351\232\217\346\203\263/index.html" new file mode 100644 index 000000000..99eec4243 --- /dev/null +++ "b/p/\345\220\254\346\255\214\351\232\217\346\203\263/index.html" @@ -0,0 +1,11 @@ +听歌随想 +

听歌随想

最早对听歌有印象应该是在八九岁的时候,追逐时尚(当时还没有‘时尚’这个词)的三叔买了当时比较酷的双卡收录机,呵呵,年轻人嘛。

我就从那个时候起开始听磁带,磁带比较匮乏,基本上没啥可挑的,偶尔只有戏曲磁带也得将就着听。

估计当时就是90年代吧,记不清了,好像还流传过一阵子囚歌(愁啊愁啥的),后来又有电视连续剧《渴望》、《篱笆女人和狗》等里面的插曲流行,我记得我当时听一遍就学会了《篱笆女人和狗》里面的一曲《过三关》,还好当时还小,啥也不明白,现在回想起来,那绝对是一首“黄色歌曲”,比邓丽君的歌“黄”多了(当然我当时不知道邓丽君),不信你可以去查一查歌词,不过要说这是艺术的话也能给糊弄过去(其实仔细品味宋祖英的《十八弯的水路到我家》也有那个意思)。

没办法,在农村的乡下,也就听这些歌了,将就了。也有一阵子流行《黄土高坡》、《信天游》什么的,后来我才知道,人们管那一阵子叫“西北风”。

镜头再往现在稍微推一推,我就开始听到港台歌曲了,第一首有印象的港台歌曲是刘德华的《来生缘》,第二首是叶倩文的《潇洒走一回》,第三首是郑智化的《水手》,算是对流行歌曲的正式启蒙吧,那时家已经搬到了镇上。

后来学习开始紧张了,没机会听到更多的流行歌曲,但是还是很喜欢听的,基本不放过听歌的机会,偶尔也会攒点儿零花钱去买磁带,但当时的零花钱简直是少的可怜,一盒磁带要十块钱左右,所以我很少买,不过我现在还记得买的第一盒磁带,是一个大杂烩合集,周华健《风雨无阻》、张学友《偷心》、谭咏麟《青春梦》等等,都是在那盒磁带上第一次听到。

这些歌应该不是那年才刚刚流行的,但我肯定是那时才接触到。由于信息的闭塞和经济的欠发达(就是穷),我听歌的节奏一直比别人晚了半拍(这是后来上了大学才知道的)。

比如他们听张信哲的时候我还不认识这个人,我听张信哲的时候他们已经在听周杰伦了。

现在我偶尔也听周杰伦了,但是他们都不听周杰伦了。工作以后,有一天我跟同事聊天说道:“我怎么现在才觉得欧美的80年代摇滚那么好听呢?是不是我的欣赏水平才达到人家80年代的水平呢?”还是我的同事有水平,沉吟片刻,给了一个很牛逼的答案:“不是越往现在的东西就越好,比如瓷器就是越老越值钱,越是现在的就越便宜……”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\254\350\257\264\344\275\240\346\234\211\350\276\203\345\274\272\347\232\204\345\233\242\351\230\237\345\215\217\344\275\234\350\203\275\345\212\233/index.html" "b/p/\345\220\254\350\257\264\344\275\240\346\234\211\350\276\203\345\274\272\347\232\204\345\233\242\351\230\237\345\215\217\344\275\234\350\203\275\345\212\233/index.html" new file mode 100644 index 000000000..e207f6fff --- /dev/null +++ "b/p/\345\220\254\350\257\264\344\275\240\346\234\211\350\276\203\345\274\272\347\232\204\345\233\242\351\230\237\345\215\217\344\275\234\350\203\275\345\212\233/index.html" @@ -0,0 +1,11 @@ +听说你有较强的团队协作能力? +

听说你有较强的团队协作能力?

几乎在所有的职位招聘要求里,都包含一条“有较强的团队协作能力”,与之对应的是,几乎每个人都会心安理得地在自己的简历里写上“有较强的团队协作能力”,就像写“本人熟练使用Office”那样心安理得。

无论是出题的人,还是答题的人,可能都没有认真的考虑过,什么是“团队协作能力”,可能只是在内心里觉得“好像加上这么一条,会显得更像那么回事儿吧”。

近期做了一些与“个人能力评估模型”相关的工作,使我不得不认真思考这个问题。我发现,想把这个事儿解释清楚,并落在实实在在的执行上,还真没那么容易。

首先,“团队协作能力”可以是对一个团队的衡量,也可以是对一个人的评价,接下来根据我个人粗浅的观察和分析,谈谈对个人能力的评价,即我觉得一个人怎样算是“有较强的团队协作能力”了。

0、尊重他人

可能是人类与生俱来的天性所致,要做到这一点还真是相当不易,且不说地域、种族、信仰等比较沉重老套的话题(这些方面往往最能暴露天性),即便是在日常的讨论中,我们也很难做到在面对不同观点时以对事不对人的态度来讨论,很容易将一件鸡毛蒜皮争论上升致对个人的全方位评判,争到最后往往要捍卫的不是真理,而是自我“对”与“错”的“尊严”。因此,做到充分的听取他人的意见,理解各方的立场与观点,尊重并理解与自己不同的声音才是良好协作的开端。

说到这里我忽然想到当年庄子跟惠子俩人在河边关于一条鱼是否快乐争论半天,至今未分出胜负,可见庄子若论团队协作,不求行,打嘴炮行。

1、勇于担当

日常生活中,比较好协作和沟通的人往往具有比较能担当的性格,对于他人(所谓自负者眼里的“猪队友”)做错事情而造成的后果,这些人第一时间是给予安慰和指导,而不是指责和抱怨。相反,如果第一时间选择将“锅”甩的远远的,立即划清界限,很难相信其能具备多强的协作能力。

所以,既然是协作,肯定会涉及多个人的配合,能否做到包容他人并勇于担当,应该是协作的基础。

2、谦虚的态度

谦虚是一种美德,这大家从小就知道,“三人行必有我师”也早已挂在嘴边随时准备被调用,可是在现实生活中我们所谓的“沟通”却总是想着在这个过程中教别人些什么。在团队中做事,能否空杯心态,听取他人的建议和意见,而不是固执己见,觉得所有人都不如你。每个人都有自己擅长的事情,多看到别人的优点,谦虚地学习,应该没有人会喜欢跟狂妄自大目中无人的人合作吧。

这一点古人做的就比较好,比如著名的“一字之师”的故事,写诗那哥们儿,“前村深雪里,昨夜数枝开”被人改成“前村深雪里,昨夜一枝开”,这哥们儿不但没有恼怒反而当即称改诗那哥们儿为一字之师,可见其谦虚好学。(反观自己,代码被人改了往往会有些不爽)。

3、分享精神

在“伸手党”横行的年代,拥有分享精神无疑是一种比谦虚还要美的美德,无论是分享自己的观点、心得还是见闻,都可以在过程中得以升华,实现双赢的效果。而具有分享精神的人往往在团队中拥有较好的人缘和评价,我个人始终认为知识越分享就掌握的越牢固,信息越分享沟通就越顺畅,所以是保守封闭还是乐于分享应该也是衡量团队协作的一项重要指标。

不过,也许跟团队的性质有关,比如FBI的特工可能就不能太有分享精神吧。。。

4、表达能力

人的愤怒大部分来自于无法表达自己,很多人的狂怒往往伴随着这么一句话—-“我说了这么半天你怎么还不明白?!”,对于性子急躁着表现更为明显,这种愤怒,与其说是对别人不理解的愤怒,倒不如说是对自己比较弱的表达能力的愤怒。这个倒是可以锻炼,清晰的逻辑思维和较好的文字语言功底都能大幅提升表达能力,如果让我总结关于这个能力的“技巧”的话,就四个字儿—-“抓住重点”。

5、团队利益与价值观的认可

即便做到以上多点,如果不能认可自己所在团队的价值观的话,也很难得以发挥。要做到这条,首先是对团队利益和价值观认知的问题,能否看清团队利益所在,知道该提倡什么和拒绝什么,是基本。其次,对于需要大家共同遵守的原则是否发自内心的认同,否则作为个体应该会比较难受,高效协作也就无从谈起了。当然这一点来说,不仅仅是对个人的要求,能否理出清晰的原则并身体力行的去执行,更是对团队领导者的要求了。

写了这么多,其实都是人人明白的道理,也都能明白难在具体的执行,不过,花一点儿时间整理一下思路,就当是一个自我反省了,当然要是能正向影响一些人,并给人带来一丢丢的思考和改进念头,那就更好了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\254\351\233\252/index.html" "b/p/\345\220\254\351\233\252/index.html" new file mode 100644 index 000000000..802aef528 --- /dev/null +++ "b/p/\345\220\254\351\233\252/index.html" @@ -0,0 +1,11 @@ +听雪 +

听雪

早晨醒来,拉开窗帘,看到一个洁白的飘着雪花的世界,哦也。

这意味着,在明天早上,假期之后的第一天上班,水平很烂的司机和自认为水平很棒的司机将会在美妙的高速公路上疯狂追击,带来无与伦比的超级大堵车,这就叫明知山有虎偏向虎山行,胸中有红日,脚下舞东风,哦,等一等,跑题了。

我是说,早晨一醒来,看到一个洁白的飘着雪花的世界,哦也。

这意味着,我昨天洗的衣服即使是到了明天还是很难晾干,湿润的裤子在风雪中将会很快冻成一根冰棍,恩,是两根。

mad,我发现想怀着一份飘飘(也有人叫浪漫)的心情写几个文字实在是太难了,于是给自己倒上一杯红酒(昨天超市促销,所以…),重新开始。

我想说,下吧!大雪,我喜欢!(哦,已经有点儿酒劲儿了)。

因为我喜欢聆听雪的声音,那种安静而又带有几分神秘的雪花飘落的声音。

我喜欢独自站在阳台透明的玻璃后面,点上一支烟,雪花纷飞,毫无章法地打在玻璃上有些甚至想在上面堆砌一些图案,远处的景色已经模糊,那些本来杂乱又浮躁的东西统统被覆盖,仿佛他们本来就那么纯洁似的。

路上的行人放慢了脚步,孩子们开心地堆着他们叫做“雪人”的物体,我几乎能听见皮鞋踩在上面发出的轻微的“咯吱”声。

当一个人体会美好的时候,回忆总会涌上心头,因为回忆里全是美好。

镜头很快滑过小时候第一次看见下雪的情景,起初飘落在地上的不是雪花,而是很小很圆的颗粒,叮叮咚咚,我拿着小铲子蹲在院子里,还以为那是化肥,恩,我也记不清楚了。

然后就是大片的雪花了,地上很快就白了,嘴里呼出的热气和雪花缠在一起。

再后来,我穿着笨拙的大头鞋使劲儿在雪地里踩出又大又深的脚印,恩,这就是我对雪的第一次印象,虽然记忆已经模糊地带着雪花点了,不过这正迎合了此刻的景象。

听雪的时候更能够享受一份孤独,烦恼都烟消云散。电脑里编译着代码,电视里主持人在蹩脚地斗嘴,我一个人站在玻璃后面听了一袋烟工夫的雪,却好像一个世纪那么长。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\254\351\237\263\344\271\220\350\246\201\345\205\263\347\201\257/index.html" "b/p/\345\220\254\351\237\263\344\271\220\350\246\201\345\205\263\347\201\257/index.html" new file mode 100644 index 000000000..7f2b9dc32 --- /dev/null +++ "b/p/\345\220\254\351\237\263\344\271\220\350\246\201\345\205\263\347\201\257/index.html" @@ -0,0 +1,11 @@ +听音乐,要关灯 +

听音乐,要关灯

周末,晚饭毕,心绪烦乱。关窗,关灯,音箱的音量调大,陷入黑暗之中,只有机箱闪烁着微弱的蓝光。

如果音乐是海洋,就让我随着醉人的旋律坠入海底,让音乐洗去我的浮躁和忧伤。

如果音乐是双手,就让跳动的音符轻轻拨动我的心弦,跳入我浑浊的内心,然后在上面荡起点点涟漪……

哈哈,关了灯听音乐能让我这样语无伦次,也算是神奇了,所以有句话叫:“爱生活,爱拉灯!”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\220\271\345\220\271\347\201\260/index.html" "b/p/\345\220\271\345\220\271\347\201\260/index.html" new file mode 100644 index 000000000..9e5eb64e1 --- /dev/null +++ "b/p/\345\220\271\345\220\271\347\201\260/index.html" @@ -0,0 +1,11 @@ +吹吹灰 +

吹吹灰

吹吹灰我的博客三个多月没更新了,我估计上面已经开始结蜘蛛网了吧。

说是没时间更新显得太娇情了,不过确实是没时间。

这段时间以来一直在忙同一个项目,全部的身心都投入到上面去了,根本没有精力更新这里,连QQ﹑MSN等都一概不上了。

好在现在终于进入了一个新的阶段,我觉得也需要每天换换脑子,思考点儿别的东西,或许对工作质量有一屁股的促进作用。于是我又想到了写博客(为什么要说又呢),那就到这里吹吹灰尘吧,像往常一样,同时发送到livespace和blogspot。

说点儿啥呢?对了,我开始用twitter了,人的思想真是奇怪,在twitter没有被封掉之前一年多我就注册了,但是根本不用它,等到twitter被封了之后却又非常想在上面发发牢骚。

虽然不能正常登录,对于我等爱钻研爱学习的人到也增添了不少情趣。

这就像是和好不容易追的姑娘交往一样有意思(屁话)。

好吧我承认我不会像沉迷于google那样沉迷于twitter(什么你还有google瘾),至少不能耽误干活儿,我只是渐渐感到twitter才是最好的新闻来源(屁话)。

还有就是我在手机安装了gravity这个twitter客户端,这是个很容易让人中毒的软件,请不要误会,此毒既不是医学上的也不是计算机病毒。

先说这么多吧,经过这段时间的繁忙工作,我感觉我已经有了轻微的精神分裂迹象,看看上面的文字就能感受的到,好吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\221\250\346\234\253\345\244\247\345\240\265\350\275\246/index.html" "b/p/\345\221\250\346\234\253\345\244\247\345\240\265\350\275\246/index.html" new file mode 100644 index 000000000..c03ba8f3a --- /dev/null +++ "b/p/\345\221\250\346\234\253\345\244\247\345\240\265\350\275\246/index.html" @@ -0,0 +1,11 @@ +周末大堵车。 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\221\250\346\234\253\347\234\213\347\224\265\345\275\261\347\232\204\346\227\266\351\227\264/index.html" "b/p/\345\221\250\346\234\253\347\234\213\347\224\265\345\275\261\347\232\204\346\227\266\351\227\264/index.html" new file mode 100644 index 000000000..0daa6e1b9 --- /dev/null +++ "b/p/\345\221\250\346\234\253\347\234\213\347\224\265\345\275\261\347\232\204\346\227\266\351\227\264/index.html" @@ -0,0 +1,11 @@ +周末,看电影的时间 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\222\246/index.html" "b/p/\345\222\246/index.html" new file mode 100644 index 000000000..5b9296d5d --- /dev/null +++ "b/p/\345\222\246/index.html" @@ -0,0 +1,11 @@ +咦! +

咦!

最近一段时间都会比较忙、相当忙、非常忙,正常下班的时间已经被无情地调整到了晚上9点,请注意,我说的是下班时间,我可没说加班加到几点。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\223\210\345\223\210\345\244\252\346\243\222\344\272\206/index.html" "b/p/\345\223\210\345\223\210\345\244\252\346\243\222\344\272\206/index.html" new file mode 100644 index 000000000..d0d6e3d08 --- /dev/null +++ "b/p/\345\223\210\345\223\210\345\244\252\346\243\222\344\272\206/index.html" @@ -0,0 +1,11 @@ +哈哈太棒了 +

哈哈太棒了

晚饭毕,弹了一会儿电子琴,感觉很投入。

就是那种摇头晃脑的投入,脚也随着音乐的节奏踏着地板,忽闻岸上踏歌声就是这个踏吧。

感觉我的琴技提升了啊,左手和弦右手旋律,配合得天衣无缝,第一次有演奏的感觉,弄得动静比较大,不知道会不会吵到别人。

看来我天生会弹琴,曲谱都在心中,美妙的音符随着手指流淌出来,至少我是这么以为的。

有没有听到那个声音

就像是我忽远忽近

告诉你他来自我的心

带来一首苍老的歌

对着你轻轻的说

我不在乎春夏秋冬花开花落

任凭这夜越来越深

你在我心中越来越沉

压的我不能翻身作自己的主人

任凭这灯越来越昏

你在我眼中越来越真看得清你满脸的风尘

任凭这天空越来越湛蓝

你在我身边越来越平凡

可是有些说过的话一直没能改变

任凭这旅程越来越孤单

你在我面前越来越茫然

丢不下的行李

是我不变的心

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\224\211/index.html" "b/p/\345\224\211/index.html" new file mode 100644 index 000000000..4653bf3be --- /dev/null +++ "b/p/\345\224\211/index.html" @@ -0,0 +1,11 @@ + +

今天在回家的路上看见有人在twitter欢呼,因为这两天有人要来,所以Youtube、blogspot、picasa等网站都解封了。等到了家,立即打开电脑,把那些被封的网站挨个试了一遍,Mad,还和原来一样。看来,twitter确实是个制造谣言的好地方。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\226\202\351\261\274\350\256\260/index.html" "b/p/\345\226\202\351\261\274\350\256\260/index.html" new file mode 100644 index 000000000..346458bdd --- /dev/null +++ "b/p/\345\226\202\351\261\274\350\256\260/index.html" @@ -0,0 +1,11 @@ +喂鱼记 +

喂鱼记

公司的旁边有一个公园,公园里有一个人工湖。

该湖曾一度干涸,后来托奥运的福,这个湖做了一次整改,现在,里面不但放满了碧绿的自来水,还撒了一群可供观赏的鱼。

我会在每天午饭后,独自或和同事一起到这里来溜达一圈,一方面是促进消化,还有就是这里的空气真是不错,所以我才会放弃网上冲浪而到这里来晒晒太阳。

每次都会看到那群傻乎乎的鱼争抢人们洒下的鱼食,由于鱼多食少,大家抢得异常激烈,一时间水花翻涌(让晶晶过来都压不住),场面甚为状观。

至于撒食的人,就感觉颇有成就感,我在旁边看着也心里痒痒,总想试试,找找当圣诞老人的感觉。

今天吃饭时故意多要了一个馒头,跟同事说一会儿要喂鱼,同事笑话我说:“你现在嘴里嚼着鱼,居然也假腥腥的要喂鱼”我说“算是补偿吧!”到了地方,发现有人已经先到一步,一群鱼儿在他脚下吃的正欢。

我和同事两个人迫不及待地掏出馒头,拿出吃羊肉泡的功夫(掐啊),就开始往水里洒。

扔了半天,却不见大群的鱼过来,仅有少量老弱病残在这边尝了两口就又游走了,我尴尬地站在湖边,眼看着手里掰下的馒头屑,都打了水飘。仔细一看,还真是我太马乎了,原来先前那人仍的可是上好的面包啊,看来,不仅有崇洋媚外的人,也有崇洋媚外的鱼,这帮混蛋也喜欢吃西餐啊!

PS:第一次用手机打这么多字,手指酸痛ing。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\226\235\345\260\217\351\205\222/index.html" "b/p/\345\226\235\345\260\217\351\205\222/index.html" new file mode 100644 index 000000000..b2a236909 --- /dev/null +++ "b/p/\345\226\235\345\260\217\351\205\222/index.html" @@ -0,0 +1,11 @@ +喝小酒 +

喝小酒

为排解国庆假日加班的郁闷,今晚特与同事一起喝喝小酒。喝完后他们打牌,我作为牌盲,一旁观战。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\230\233\345\204\277\345\217\253\345\271\270\347\246\217\344\273\213\345\260\261\345\217\253\345\271\270\347\246\217/index.html" "b/p/\345\230\233\345\204\277\345\217\253\345\271\270\347\246\217\344\273\213\345\260\261\345\217\253\345\271\270\347\246\217/index.html" new file mode 100644 index 000000000..29eba5360 --- /dev/null +++ "b/p/\345\230\233\345\204\277\345\217\253\345\271\270\347\246\217\344\273\213\345\260\261\345\217\253\345\271\270\347\246\217/index.html" @@ -0,0 +1,11 @@ +嘛儿叫幸福?介就叫幸福! +

嘛儿叫幸福?介就叫幸福!

随着一阵悦耳的下班铃声,我提前结束了一天的工作,按照惯例,周末了,要去打球。

叫上同事,抱起篮球,飞快地奔向球场。

终于逃脱了闪烁的计算机屏幕,逃脱了无聊的工作计划,逃脱了漫长的会议,逃脱了郁闷的代码……

各位观众,各位听众,也许你们刚刚打开电梯,现在为您直播的是–火星杯篮球锦标赛!

穿着运动鞋牛仔裤正在捡球的那家伙就是我,看呐,我在球场上尽情地狂奔,边打球边哼着歌曲“啊哼三分球,它在空中停留,漂亮的假动作,帅呆了我……哦shit!球丢了”。

一口气打了两三个小时,直打到有人气喘吁吁,打到有人双腿抽筋,打到有人口吐白沫还不肯离去。

天渐渐黑了,球框渐渐虚无缥缈起来,收拾家伙,撤!

走到站牌,有车,有座,爽!上了高速,一路畅通,爽!

到了家里,贤惠的老婆已经把饭菜做好,菜做的色香俱佳,啤酒冰得温度适中。

如果这个时候你问我,什么是幸福?我会自在地夹一口菜,然后再悠闲地喝上一口啤酒,眯起眼睛跟你说:“嘛儿叫幸福?介就叫幸福!”

幸福像花儿一样。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\233\233\344\270\252\347\254\254\344\270\200\346\254\241/index.html" "b/p/\345\233\233\344\270\252\347\254\254\344\270\200\346\254\241/index.html" new file mode 100644 index 000000000..04819cb9a --- /dev/null +++ "b/p/\345\233\233\344\270\252\347\254\254\344\270\200\346\254\241/index.html" @@ -0,0 +1,11 @@ +四个第一次 +

四个第一次

1、今日第一次在大街上掀开井盖钻了进去。(当然是经过许可的)

2、今日第一次进入电力隧道,"初极狭,才通人",进去后发现地下真是豁然开朗,别有洞天。

3、今日第一次使用单反相机,一个字儿,"沉!"

4、今日第一次近距离接近数十万伏特高压的设备。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\233\233\345\226\234\344\270\270\345\255\220/index.html" "b/p/\345\233\233\345\226\234\344\270\270\345\255\220/index.html" new file mode 100644 index 000000000..a23b09234 --- /dev/null +++ "b/p/\345\233\233\345\226\234\344\270\270\345\255\220/index.html" @@ -0,0 +1,11 @@ +四喜丸子 +

四喜丸子

今年暑假的时候,老爸过来视察我的工作,会谈始终在亲切友好的气氛下进行,双方就共同关注的话题交换了意见。

期间谈论到饮食问题时,老爸对我在北京是否按时吃饭深切关注,并表示:“一定要吃饱、吃好!身体好才能工作好,身体是革命的本钱嘛!”以上内容纯属虚构,真实场景是,老爸问我吃饭是否合乎口味,我说饭菜都还行,就是吃不到味道能赶上老家那边小镇上“福星酒家”做的四喜丸子,深表遗憾,老爸深表同情。

以上对话造成的直接后果是,我这次回老家休假连续吃了七天的“福星酒家”的四喜丸子(每顿都得挑着大拇哥说好吃),吃的我现在看见四喜丸子就饱了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\233\236\344\272\254\344\272\206\345\274\200\345\267\245\344\272\206/index.html" "b/p/\345\233\236\344\272\254\344\272\206\345\274\200\345\267\245\344\272\206/index.html" new file mode 100644 index 000000000..9b5f39fe1 --- /dev/null +++ "b/p/\345\233\236\344\272\254\344\272\206\345\274\200\345\267\245\344\272\206/index.html" @@ -0,0 +1,11 @@ +回京了,开工了 +

回京了,开工了

回家的日子过得飞快,感觉就像做了一场梦,醒来后发现我还是坐在电脑旁,噢,又开工了。

–由sbabybird于2/13/200809:50:00上午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\233\236\350\200\201\345\256\266\344\274\221\344\272\206\344\270\252\345\201\207/index.html" "b/p/\345\233\236\350\200\201\345\256\266\344\274\221\344\272\206\344\270\252\345\201\207/index.html" new file mode 100644 index 000000000..34adf59c3 --- /dev/null +++ "b/p/\345\233\236\350\200\201\345\256\266\344\274\221\344\272\206\344\270\252\345\201\207/index.html" @@ -0,0 +1,11 @@ +回老家休了个假 +

回老家休了个假

回老家休了个假前两天回家休息了几天,和家人团聚的感觉就是好。

吃饭吃得香,顿顿都吃到撑。

睡觉也睡的十分踏实,一点儿也不失眠。

按照惯例和朋友们喝喝小酒,打打台球。

老家民风纯朴,空气清新,我简直是不想回来。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\233\240\344\270\272\350\246\201\344\270\260\345\257\214\345\267\245\344\275\234\344\273\245\345\244\226\347\232\204\347\224\237\346\264\273/index.html" "b/p/\345\233\240\344\270\272\350\246\201\344\270\260\345\257\214\345\267\245\344\275\234\344\273\245\345\244\226\347\232\204\347\224\237\346\264\273/index.html" new file mode 100644 index 000000000..acf5fac22 --- /dev/null +++ "b/p/\345\233\240\344\270\272\350\246\201\344\270\260\345\257\214\345\267\245\344\275\234\344\273\245\345\244\226\347\232\204\347\224\237\346\264\273/index.html" @@ -0,0 +1,11 @@ +因为要丰富工作以外的生活 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224.png" "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224.png" new file mode 100644 index 000000000..0a0c34fe8 Binary files /dev/null and "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224.png" differ diff --git "a/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224_hudf399a35ca65c54332d928237b106eb2_40328_120x120_fill_box_smart1_3.png" "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224_hudf399a35ca65c54332d928237b106eb2_40328_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..4d0c92625 Binary files /dev/null and "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224_hudf399a35ca65c54332d928237b106eb2_40328_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224_hudf399a35ca65c54332d928237b106eb2_40328_1600x0_resize_box_3.png" "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224_hudf399a35ca65c54332d928237b106eb2_40328_1600x0_resize_box_3.png" new file mode 100644 index 000000000..0828bdd9d Binary files /dev/null and "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224_hudf399a35ca65c54332d928237b106eb2_40328_1600x0_resize_box_3.png" differ diff --git "a/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224_hudf399a35ca65c54332d928237b106eb2_40328_800x0_resize_box_3.png" "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224_hudf399a35ca65c54332d928237b106eb2_40328_800x0_resize_box_3.png" new file mode 100644 index 000000000..c4393c076 Binary files /dev/null and "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/20071224_hudf399a35ca65c54332d928237b106eb2_40328_800x0_resize_box_3.png" differ diff --git "a/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/index.html" "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/index.html" new file mode 100644 index 000000000..6152c32a9 --- /dev/null +++ "b/p/\345\234\243\344\275\240\347\232\204\345\234\243\350\257\236\344\275\240\347\232\204\350\257\236/index.html" @@ -0,0 +1,11 @@ +圣你的圣,诞你的诞 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\243\350\257\236\350\200\201\344\272\272/index.html" "b/p/\345\234\243\350\257\236\350\200\201\344\272\272/index.html" new file mode 100644 index 000000000..7d501a9a5 --- /dev/null +++ "b/p/\345\234\243\350\257\236\350\200\201\344\272\272/index.html" @@ -0,0 +1,11 @@ +圣诞老人 +

圣诞老人

据说他们装的都很认真,为了让孩子保持对圣诞老人期待,他们每年都要装模作样的去追踪圣诞老人。

刚刚看到消息,说Google每年都提供kml文件用以跟踪圣诞老人的行踪,而网站noradsanta.org更是制作了完整的地图来显示,可惜的是访问该网站只支持Windows和Mac系统,于是有人抱怨说:“难道圣诞老人讨厌Linux吗”,我觉得noradsanta.org做的挺对的,因为使用Linux的人,谁还相信有圣诞老人啊。

toosimple

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\250-live-spaces-\345\215\225\347\257\207\346\227\245\345\277\227\344\270\255\346\217\222\345\205\245\351\237\263\344\271\220-\346\265\213\350\257\225/index.html" "b/p/\345\234\250-live-spaces-\345\215\225\347\257\207\346\227\245\345\277\227\344\270\255\346\217\222\345\205\245\351\237\263\344\271\220-\346\265\213\350\257\225/index.html" new file mode 100644 index 000000000..8c9be9aa1 --- /dev/null +++ "b/p/\345\234\250-live-spaces-\345\215\225\347\257\207\346\227\245\345\277\227\344\270\255\346\217\222\345\205\245\351\237\263\344\271\220-\346\265\213\350\257\225/index.html" @@ -0,0 +1,11 @@ +在 live spaces 单篇日志中插入音乐 测试 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\250kde\344\270\213\346\233\264\346\226\260\345\215\232\345\256\242\345\223\246/index.html" "b/p/\345\234\250kde\344\270\213\346\233\264\346\226\260\345\215\232\345\256\242\345\223\246/index.html" new file mode 100644 index 000000000..9b975f34f --- /dev/null +++ "b/p/\345\234\250kde\344\270\213\346\233\264\346\226\260\345\215\232\345\256\242\345\223\246/index.html" @@ -0,0 +1,11 @@ +在kde下更新博客哦 +

在kde下更新博客哦

嘿嘿,Linux进步真是非常快,桌面环境比起前两年已经友好的多了,很多人性化的功能让windows只能掩面而去。

以前在linux下的输入法还只能算是能用,现在的输入法已经算是好用了,当然还比不了windows下的google拼音,不过也差不多了。

抛开其他的特性不说,一想起这是一个开放的、自由的、免费的系统环境就让我对它爱不释手。

一大票强大的软件可用,成熟方便的开发环境,安全的游览器,不用装杀毒软件,实在是找不到理由再去用windows了。

唯独不能在qq上和家人视频,不过我准备用skype试试看。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\250python\344\270\213\350\260\203\347\224\250gdal\345\272\223\346\235\245\346\230\276\347\244\272\345\275\261\345\203\217\345\233\276/index.html" "b/p/\345\234\250python\344\270\213\350\260\203\347\224\250gdal\345\272\223\346\235\245\346\230\276\347\244\272\345\275\261\345\203\217\345\233\276/index.html" new file mode 100644 index 000000000..991ec93ba --- /dev/null +++ "b/p/\345\234\250python\344\270\213\350\260\203\347\224\250gdal\345\272\223\346\235\245\346\230\276\347\244\272\345\275\261\345\203\217\345\233\276/index.html" @@ -0,0 +1,47 @@ +在python下调用gdal库来显示影像图 +

在python下调用gdal库来显示影像图

很久没有更新了,懒是一方面原因,另一方面是因为最近忙的没有心思写博客了。其实按理说,每天抽出一点时间来唠叨两句还是能够办到的,只是一旦停下来,再开始就更费尽了。随便整理一些东西发上来吧,又是关于技术的。

有一段时间我需要写程序来处理tif格式的影像图,在网上找来找去就发现了gdal这个好东西,可是在vc下调用它还是有些罗嗦,达不到快速调试的效果。于是前两天我又试着在python下调用gdal,把思路先用python实现一遍,调试通过了再用c++。下面是最简单的显示一幅tif影像图的python代码:

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+
import pygame
+from osgeo import gdal
+
+pygame.init()
+screen = pygame.display.set_mode(WINSIZE)
+pygame.display.set_caption('gdaltest')
+pygame.time.set_timer(USEREVENT, 50)
+dataset = gdal.Open("c:/test.tif")
+surface = pygame.Surface((WINWIDTH, WINHEIGHT))
+parr = dataset.ReadAsArray(1, 1, WINWIDTH + 1, WINHEIGHT + 1)
+r = parr[0]
+g = parr[1]
+b = parr[2]
+img = pygame.PixelArray(surface)
+for x in range(WINWIDTH):
+    for y in range(WINHEIGHT):
+        img[x, y] = (r[y, x], g[y, x], b[y, x])
+show(img)
+
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\250\345\202\215\346\231\232\350\267\221\346\255\245/index.html" "b/p/\345\234\250\345\202\215\346\231\232\350\267\221\346\255\245/index.html" new file mode 100644 index 000000000..c7ac6a96a --- /dev/null +++ "b/p/\345\234\250\345\202\215\346\231\232\350\267\221\346\255\245/index.html" @@ -0,0 +1,11 @@ +在傍晚跑步 +

在傍晚跑步

今天要去朋友家吃晚饭,所以我预计晚上的跑步计划会无法执行,干脆提前跑步,在太阳将要下山之前,绕着小区跑了一圈,感觉比在晚上伴着路灯跑要好的多,可惜啊,这种机会也只有周末才有。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\250\345\256\266\345\212\236\345\205\254/index.html" "b/p/\345\234\250\345\256\266\345\212\236\345\205\254/index.html" new file mode 100644 index 000000000..e2bf9492c --- /dev/null +++ "b/p/\345\234\250\345\256\266\345\212\236\345\205\254/index.html" @@ -0,0 +1,11 @@ +在家办公 +

在家办公

像我这样的好员工真是打着灯笼也不好找啊,刚刚完成了一份公司安排的ppt,啊~呵(打个哈欠)。

今天果然降温了,跑步的时候明显感觉到了寒冷。

回来后,我把家里的窗户打开来换了换空气,才几分钟的时间,室内温度就从19度降低到了15度!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\250\346\210\221\347\232\204epc\344\270\212\350\277\220\350\241\214android/index.html" "b/p/\345\234\250\346\210\221\347\232\204epc\344\270\212\350\277\220\350\241\214android/index.html" new file mode 100644 index 000000000..dc99c9b84 --- /dev/null +++ "b/p/\345\234\250\346\210\221\347\232\204epc\344\270\212\350\277\220\350\241\214android/index.html" @@ -0,0 +1,11 @@ +在我的epc上运行android +

在我的epc上运行android

早就对google的android系统垂蜒三尺,终于看到了这个android-x86,原来是有几个好心人把android系统移植到了x86平台,喜欢折腾的我当然不能错过。

看网站上的介绍是支持epc的硬件,遂下载了iso刻录到我的优盘上,简直是帅带了,一次启动成功,速度不错,无线网络可以开启,电池电量也可以检测。

界面果然是为手机设计的,可惜我的epc不是触摸屏,但是有键盘,操作起来还算说的过去,比如现在这几行文字就是在此系统下打出来的,也是google的拼音输入法不过是针对android的,使用键盘选字不是太方便。

想截个图结果没找到截图软件,按printscreen按键也不行,算了,先玩玩吧,毕竟不是为笔记本量身定制的系统。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\250\347\272\277\346\225\231\350\202\262\347\232\204\344\275\223\351\252\214\344\270\216\347\225\205\346\203\263/index.html" "b/p/\345\234\250\347\272\277\346\225\231\350\202\262\347\232\204\344\275\223\351\252\214\344\270\216\347\225\205\346\203\263/index.html" new file mode 100644 index 000000000..160e8e0a7 --- /dev/null +++ "b/p/\345\234\250\347\272\277\346\225\231\350\202\262\347\232\204\344\275\223\351\252\214\344\270\216\347\225\205\346\203\263/index.html" @@ -0,0 +1,11 @@ +在线教育的体验与畅想 +

在线教育的体验与畅想

在这个言必谈互联网的时代,那些以互联网创业狗自居的疯狂创业者们,无时不刻都在思考一个问题—-我该“颠覆”哪一个传统行业?众多躺枪的传统行业中,近些年被提及最多的、认为到了最危险关头的就是“教育”,通过谷歌搜索“在线教育”关键词,可以搜到大约上百万条记录,截至到2015年底,我国从事在线教育的企业已经有8000多家,其中有47%的公司获得了融资,已经有16%的企业开始了盈利。这个市场容量巨大、拥有绝对的刚性需求的行业,很多先驱(OR先烈?)已经尝试通过多种互联网手段介入,“在线教育”仿佛一夜之间成为一个热词。

近两年我也简单体验过一些在线教育的产品,也确实从中学到了不少东西,主要的体验有:

1、国内和国外的公开课网站。主要用来学习国内外大学开设的基础知识教程,包括但不限于数学、历史、自然科学、计算机等方面的基础理论知识。这部分的体验一般,主要问题是缺少与老师的互动,遇到不会的问题难以独立解决。

2、国内专业领域的教学网站。主要是专业技能教育,类似技能培训班,但以互联网为载体,学习了编程语言、摄影、Photoshop、绘画、乐器等技能相关的内容,体验良好,尤其是对于计算机编程语言的学习,目前的技术已经做得比较互动话,可以在线进行编程训练(用户端提交代码,由服务端判断答题是否正确),这方面做的比较好有国外的codecademy和国内的慕课网,但是在课程内容上存在不够系统、较为分散的问题,缺少以某种现实中具体应用为主题(比如高并发后端架构)出发的课程设计。

3、各种在线的培训班。更具体的专业技能,传播方式以qq群、在线视频为主,专业性很强,有讲师与学生互动,但是良莠不齐,部分专业内容与现实中应用的东西存在脱节,放在现实的工作中难以直接成为生产力。

我作为一个在线教育产品的用户和受益者,以及一个从事互联网行业的入门者,也简单谈一谈对未来在线教育发展的看法和期望:

1、传播载体提升。当前的在线教育内容大部分以静态视频为主,缺少互动,随着技术的发展和互联网硬件资源的增强,实时视频直播肯能会成为主流的在线教育手段,当前已经有人在探索通过游戏直播网站进行专业技能的培训,甚至开始通过手机直播校园课堂的实况。比起静态视频,直播的互动性大大增强。

2、教程内容专业化。目前的教程内容多数仍倾向于普及基础入门知识,缺少专业性强、内容深入的技能培训,未来将出现针对具体行业细分领域的培训资源,以前只能通过专业院校或者培训班才能学到的内容,未来可以直接通过互联网学习,不过非常细分的专业领域,要想获得高质量内容,可能需要付费。

3、优质资源干掉劣质资源。线上最大的好处是内容复制与传播的成本较低,一个优秀的教师如果在线下同时只能教百名学生,而放在线上则可以同时对成千上万(甚至更多)名学生讲课。这样以来,劣质资源将很快没有市场,大家都倾向于寻找教的好的教师,反正对于优质资源来说就是增加服务器的事儿。

4、一些不以教育为主营方向的生产型企业可能会成为产生高质量在线教育资源的基地。现在的企业尤其是信息化服务行业普遍面临学校教育与现实工作脱节的问题,应届毕业生往往需要半年甚至更长的时间才能在具体的工作中产生价值,企业对此的解决办法是进行内部技能培训。这些企业的培训内容往往比目前的在线公开课更具有针对性和专业性,所以这些资源在未来可以以互联网为载体,经过包装后放在线上,为更广大的群体提供更加专业和细分的服务。

恒华科技旗下的梦工坊科技即是上述思路的实践者,其近期推出的“课+”产品汇集了大量专业化行业培训课程,采用静态视频、在线直播、线上社区、线下实战练习等多元化教育手段,面向社会公众群体提供优质的免费教育服务,此举一方面解决了教育脱节问题,又为企业培养了更多的可用人才,既满足企业需求又回馈了社会,可谓双赢。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\250\347\272\277\347\234\2133d\347\224\265\345\275\261/index.html" "b/p/\345\234\250\347\272\277\347\234\2133d\347\224\265\345\275\261/index.html" new file mode 100644 index 000000000..6d1446394 --- /dev/null +++ "b/p/\345\234\250\347\272\277\347\234\2133d\347\224\265\345\275\261/index.html" @@ -0,0 +1,11 @@ +在线看3d电影 +

在线看3d电影

今天发现这个http://3d.pptv.com/看电影的网站(我火星了吗?),在线提供3d电影的视频,当然也是需要3d眼睛,不过是那种最古老的3d眼睛,即红绿3d眼镜。

网站速度还不错,据说带上3d眼镜之后在普通显示器上也可看到3d效果了。

可惜手头没有材料,要不然就自制一个了。

据说这种眼镜没啥技术含量,随便拿两个塑料片就可以了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\234\260\346\226\271\345\217\260\347\232\204\347\224\265\350\247\206\350\212\202\347\233\256\345\201\266\345\260\224\344\271\237\346\234\211\350\203\275\347\234\213\347\232\204/index.html" "b/p/\345\234\260\346\226\271\345\217\260\347\232\204\347\224\265\350\247\206\350\212\202\347\233\256\345\201\266\345\260\224\344\271\237\346\234\211\350\203\275\347\234\213\347\232\204/index.html" new file mode 100644 index 000000000..74d431b71 --- /dev/null +++ "b/p/\345\234\260\346\226\271\345\217\260\347\232\204\347\224\265\350\247\206\350\212\202\347\233\256\345\201\266\345\260\224\344\271\237\346\234\211\350\203\275\347\234\213\347\232\204/index.html" @@ -0,0 +1,11 @@ +地方台的电视节目,偶尔也有能看的 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\235\232\346\214\201/index.html" "b/p/\345\235\232\346\214\201/index.html" new file mode 100644 index 000000000..a5abd341c --- /dev/null +++ "b/p/\345\235\232\346\214\201/index.html" @@ -0,0 +1,11 @@ +坚持 +

坚持

这个世界从来不缺乏新鲜的点子和想法,缺的是把想法实现出来,并坚持下去。无论做什么事情,随着刚开始的新鲜感渐渐退去,随之而来的就是对耐心和毅力的考验,是的,这世道就是这样,就像他们说的那样,人生就像那啥,能够挺到最后的都是纯爷们。

我从去年开始,准备一点一滴的整理自己的“个人知识管理系统”,期间使用过各种软件,包括但不局限于“evernote”、“trac”、“dokuwiki”等等。

每一次都是浅尝辄止,稀稀拉拉地整理了几篇文章,然后慢慢地落了一层灰。

固然有“工作忙”这个屡试不爽的借口,但每当想起自己当初信誓旦旦定下的计划还是有些不爽。

这次在年初的计划里,我又列出了整理“个人知识”的计划,看来是非执行不可了。

也许等我整理好了,英特纳雄耐尔也就实现了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\235\232\346\214\201\346\230\257\346\234\200\351\232\276\347\232\204\344\272\213\346\203\205/index.html" "b/p/\345\235\232\346\214\201\346\230\257\346\234\200\351\232\276\347\232\204\344\272\213\346\203\205/index.html" new file mode 100644 index 000000000..4e6807377 --- /dev/null +++ "b/p/\345\235\232\346\214\201\346\230\257\346\234\200\351\232\276\347\232\204\344\272\213\346\203\205/index.html" @@ -0,0 +1,11 @@ +坚持是最难的事情 +

坚持是最难的事情

我的英语水平一直徘徊在“烂”与“那是相当的烂”之间,那是因为我的词汇量一直少的可怜,我也曾经心潮澎湃地背单词,甚至背字典,但都没有坚持下来,每每想起都非常懊悔,如果从我刚学英语那天就每天记住一个单词的话,现在至少记住5000个单词了,当然这是不可能的,因为我没有坚持下来。

学习其他东西也是这样,十年前就摸过吉他,而且能像模像样的弹一首单调的曲子,也是因为没有坚持练习,到现在还是那个水平。

年前一段时间,我心血来潮,准备每天晚上坚持跑步,但是仅仅跑了两个月,就在冬至那天被打败了,天太冷了,还是不能坚持。

一旦松懈下来,就再也不想继续了。

有相当一段时间,我以为每天写一篇博客实在是很轻松easy的事情,但是前一段时间工作一忙,还是没能坚持下来。

哪怕是一天在上面唠叨一句也懒的罗嗦。

现在,下班了,我想换换脑子,思考了半天,竟忍不住感叹一句:“做什么事情,最难的就是坚持!”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\236\203\345\234\276\347\275\221\344\270\212\351\223\266\350\241\214/index.html" "b/p/\345\236\203\345\234\276\347\275\221\344\270\212\351\223\266\350\241\214/index.html" new file mode 100644 index 000000000..183114a77 --- /dev/null +++ "b/p/\345\236\203\345\234\276\347\275\221\344\270\212\351\223\266\350\241\214/index.html" @@ -0,0 +1,11 @@ +垃圾网上银行 +

垃圾网上银行

今日要去建行转些钱到支付宝,被逼无奈使用了我最讨厌的ie浏览器,输入帐户名、密码、验证码,没问题,选择证书和动态加密口令也没问题,就在最后那一哆嗦,网页弹出一个小空白页面就再也不动了,连续两次都是这样,废掉了我两个动态口令,求救客服半个多钟头也没有搞定问题。

现在,我分析,引起问题的原因:

1、ie不求行

2、有防火墙

3、银行网站很烂

4、人品问题

5、以上原因都有

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50.png" new file mode 100644 index 000000000..89ad39e8a Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_120x120_fill_box_smart1_3.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..917fd1695 Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_1600x0_resize_box_3.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_1600x0_resize_box_3.png" new file mode 100644 index 000000000..93bf128b3 Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_1600x0_resize_box_3.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_800x0_resize_box_3.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_800x0_resize_box_3.png" new file mode 100644 index 000000000..018038488 Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_800x0_resize_box_3.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-20-10.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-20-10.png" new file mode 100644 index 000000000..4d389879f Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-20-10.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-46-36.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-46-36.png" new file mode 100644 index 000000000..d19b79cb5 Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-21-16-46-36.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-40-58.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-40-58.png" new file mode 100644 index 000000000..901ce7cff Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-40-58.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-45-54.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-45-54.png" new file mode 100644 index 000000000..829845c6a Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-45-54.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-47-57.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-47-57.png" new file mode 100644 index 000000000..219277f03 Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-47-57.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-53-02.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-53-02.png" new file mode 100644 index 000000000..5993f8e8d Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-10-53-02.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-11-07-46.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-11-07-46.png" new file mode 100644 index 000000000..e58399ef6 Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-11-07-46.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-11-17-49.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-11-17-49.png" new file mode 100644 index 000000000..d8b426dc9 Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-11-17-49.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-11-31-26.png" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-11-31-26.png" new file mode 100644 index 000000000..f5206c547 Binary files /dev/null and "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/2023-09-22-11-31-26.png" differ diff --git "a/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/index.html" "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/index.html" new file mode 100644 index 000000000..8e159d7c3 --- /dev/null +++ "b/p/\345\237\272\344\272\216-github-pages-\346\234\215\345\212\241\346\220\255\345\273\272\344\270\252\344\272\272\345\215\232\345\256\242/index.html" @@ -0,0 +1,38 @@ +基于 Github Pages 服务搭建个人博客 +
Featured image of post 基于 Github Pages 服务搭建个人博客

基于 Github Pages 服务搭建个人博客

背景

搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。

但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。

经过多年的实践,现在已有越来越多的人选择了使用免费且易用的 GitHub Pages 服务来搭建个人博客。

然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。

他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。

这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。

本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。

需要预先掌握的技能和前置条件

需要先了解这些再往下阅读本文

  • 了解 Git 的概念和常用的操作,知道“分支”、“提交”、“推送”、“拉取”等概念。
  • 拥有 Github 账号,并且能够独立完成“仓库创建”、“本地克隆”、“提交”、“推送”等操作。
  • 了解“博客”本身只是一种“网站”:其内容由若干“网页”组成,读者通过浏览器访问博客网站所在的服务器以获取这些网页内容。

核心思路

+简单来说,核心步骤只有三步:内容编辑、页面生成、网站发布。接下来的介绍均围绕这三件事展开。

内容编辑

作者编写和编辑博客内容,包括编写文章、给文章配图、给文章归类等等活动都属于内容编辑。

页面生成

如果希望将内容变成可发布的网站,则需要使用专用的软件工具(一般为静态网站生成器)将编辑的内容自动生成可供浏览器显示的博客网站页面。

网站发布

有了网站页面,还只是一堆存放在本地的文件。若要放到互联网上进行访问,还需要一个服务器提供服务,将网站发布。

如果采用独立建站的方式,这一步骤会涉及大量技术工作,比如服务器采购、Web服务应用程序安装、域名映射、SSL 安全证书、网络防火墙配置等等。

但我们今天选择使用 Github 提供的 Pages 服务,这将大大降低上述操作的难度,很多技术细节将不必再多关注,已经由 Pages 服务默认配置好。我们只需享用配置好的环境即可。

技术路线

Github Pages

Github 本来是一个 Git 仓库托管服务商,帮助用户进行项目代码及数字资料的版本管理。不过随着用户规模提升,Github 也围绕版本管理提供了更多的辅助服务,这其中就包括 Pages 服务

GitHub Pages 是一项静态站点托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件,(可选)通过构建过程运行文件,然后发布网站。 可以在 GitHub Pages 示例集合中看到 GitHub Pages 站点的示例。

Pages 服务原本用于帮助托管在 Github 上的开源项目更便捷地发布自己的宣传页面。开发团队可以简单编写几个静态页面(HTML)然后放在托管的 Git 仓库中,由 Github 将这些页面以网站服务的方式发布出去,Github 既提供了服务器资源也提供了用于公网访问的专属 URL 地址。

关于发布网站的专属 URL 地址的提供规则,Github 官方的介绍如下:

若要发布用户站点,必须创建名为 <username>.github.io 的个人帐户拥有的存储库。 若要发布组织站点,必须创建名为 <organization>.github.io 的组织帐户拥有的存储库。 除非使用的是自定义域,否则用户和组织站点在 http(s)://<username>.github.iohttp(s)://<organization>.github.io 中可用。 +项目站点的源文件与其项目存储在同一个仓库中。 除非使用的是自定义域,否则项目站点在 http(s)://<username>.github.io/<repository>http(s)://<organization>.github.io/<repository> 中可用。

根据官方介绍,Pages 提供有三种不同的网站发布服务:用户站点、组织站点、项目站点。

分别对应了“制作个人网站”、“制作团队组织网站”、“制作单个项目网站”的不同需求。

针对个人博客的搭建,很显然使用 Pages 服务发布“用户站点”是最合适的选择。

对于“用户站点”,Pages 最终会为用户提供的专属 URL 地址为:https://你的用户名.github.io,也就是说在 Gihtub 的一级域名 https://github.io 下给你免费提供了一个二级域名。之所以默认使用你的 Github 用户名,是因为要防止不同用户发布的地址重名导致冲突。

按照官方介绍,你也可以使用自己购买的域名,通过自己的域名进行访问。不过这涉及到更复杂的话题和操作,不在本文讨论范畴。

了解了以上基本信息后,在使用 Pages 服务时,可按照复杂度区分,采用如下几种不同的用法。

最简单直接的使用流程
  1. 手工编写 HTML 页面文件(需要掌握网页制作知识)。
  2. 将页面文件推送到的 Github 仓库,对于“用户站点”来说,这个仓库的命名必须为“你的用户名.github.io”。
  3. 在 Github 中设置该仓库的 Pages 服务配置,主要是选择仓库的指定“分支”用于 Pages 服务获取待发布的网页文件。
  4. Github 会按照上面介绍的规则给你提供一个 URL 访问地址(https://你的用户名.github.io),使用浏览器打开该地址即可访问到发布的网站了。

注:如果不理解 Git 仓库的“分支”概念,可以把它视为同一个仓库里不同的存储位置,不同的“分支”里面存储了不同的文件内容。

这个流程仅适用于非常简单网站发布,比如只包含有一个页面,因为手工编写 HTML 页面的效率十分低下,且不利于持续更新维护。

于是大家常用的方式是,使用一种叫做的东西,对于“博客”这类以静态页面为主的网站,十分适合。

“静态站点生成器”可以理解为是一个“翻译”,它能自动将你编写的文本内容根据预先的配置信息,自动生成一个完整的网站所需的全部文件(HTML、JS、CSS等)。

于是有了如下的改进流程:

改进的使用流程
  1. 用户编辑好博客内容,形成保存在本地计算机的原始文档文件。
  2. 使用静态网站生成器将本地原始文档文件生成静态页面文件。
  3. 将静态页面文件推送到 Github 远端托管仓库。
  4. Github Pages 服务自动被触发,将静态页面以网站形式发布出来。
  5. 用户通过指定 URL 地址访问已发布的博客内容。

到目前为止,已经可以较为流畅地执行博客编辑、生成、发布的工作流程了。

但是这个流程里有个前置条件,作者必须在本地电脑上安装一个“静态站点生成器”,以用于输出转换后的、可供发布的页面。

所以,为了方便,Github 提供了一个默认的静态网站生成器,上述第 2 步操作实际上可以在远端仓库自动执行,这样用户只需将原始文件上传至远端仓库即可,由 Github 直接在线上完成静态页面的生成和网站发布工作。

静态站点生成器的选择

比较常见的静态站点生成器有:JekyllHexoHugo 这三个。不在这里详细介绍了,因为功能都大同小异。在选定一个之后,需要去他们的官网查看文档以了解具体的使用细节,以便对自己的博客站点能够做到更深的定制。

我在接下来的操作步骤里,选择使用 Hugo 这个生成器。

主要原因是,Hugo 提供有相对来说比较美观的免费主题风格模板(Jekyll 也有漂亮的,但是收费。Hexo 的定制性很强,适合有网页开发能力的人自己开发主题)。

我选择的主题模板是:hugo-theme-stack

操作步骤

建立 Github 仓库

  1. 点击这个超链接进入 hugo-theme-stack-starter 的 Git 仓库模板
  2. 点击页面中的“使用此模板”按钮,以创建你自己的仓库(注意:需先登录自己的账号才能创建)。 +
  3. 建立好仓库(注意仓库命名为你的用户名.github.io)之后,会自动带有仓库模板的初始文件。 +

修改配置

  1. 将仓库下载到本地。
  2. 打开仓库里的 config 文件夹,里面存放有配置信息。
  3. 按照 hugo-theme-stack 的官方文档配置自己想要的效果(默认一般都够用,重点是修改自己的站点信息,如显示名称、URL 链接地址等等)。 + +这些配置主要在 config.tomlparams.toml 两个文件里。

编写博客文章

生成器会默认去仓库的 content/post/ 文件夹下扫描其下面的所有文件夹和文件,遇到约定格式的 Markdown 文件就会转换成为可发布的 html 页面。具体约定可以查看官方的详细文档,这里介绍一种最简单的写一篇文章的过程。

  1. 在 post 目录下新建一个文件夹用于存放文章的 Markdown 文件和插图文件,文件夹命名为希望编写的标题如:2023-09-21-怎样搭建个人博客我个人习惯将不同年份的文章在post目录下再建一级目录按照日期或年份进行区分。
  2. 在刚建立的文件夹下新建名称为index.md的 Markdown 文件,文件名必须为 index.md 这是由 hugo 生成器约定的。
  3. 在刚建立的 Markdown 文件的头部添加必要的元信息(非常关键)。
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +
      ---
    +  title: 文章标题
    +  date: 2023-09-21
    +  categories:
    +    - 文章所属分类
    +  tags:
    +    - 文章标签 1
    +    - 文章标签 2
    +  ---
    +
  4. 编写文章内容。可以使用 Markdown 的语法随意定义格式,以及插入图片。插入的图片建议保存在同级目录(也就是刚才新建的那个)中。

推送到仓库及发布

  1. 将刚才修改配置文件保存。
  2. 将刚才编写的博客文章保存。
  3. 在本地提交 commit 并 push 到 Github 仓库。
  4. 稍等几分钟(给 Github 那端的 Hugo 生成器留出运行时间)。
  5. 在 Github 仓库的 “setting” 设置页面开启 Pages 服务(只需第一次)。
  6. 在 Pages 设置界面里的 Source 中选择 “Deploy from a branch” ,并在下面的分支选择下拉框中选择 “gh-pages”,保存。 +

访问你的博客站点

一般稍等几分钟之后,即可按照约定网址访问刚发布的内容了。 +

扩展阅读

运营自己的博客网站所需了解的概念和知识相对比较多,如果希望将自己的网站做的更加精美、有特色。

除了能够持续产出高质量内容之外,建议阅读以下文章以了解相关知识:

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\237\272\344\272\216markdown\346\240\274\345\274\217\347\232\204\347\237\245\350\257\206\347\256\241\347\220\206\345\260\235\350\257\225\350\256\241\345\210\222/index.html" "b/p/\345\237\272\344\272\216markdown\346\240\274\345\274\217\347\232\204\347\237\245\350\257\206\347\256\241\347\220\206\345\260\235\350\257\225\350\256\241\345\210\222/index.html" new file mode 100644 index 000000000..a3e1fb81e --- /dev/null +++ "b/p/\345\237\272\344\272\216markdown\346\240\274\345\274\217\347\232\204\347\237\245\350\257\206\347\256\241\347\220\206\345\260\235\350\257\225\350\256\241\345\210\222/index.html" @@ -0,0 +1,11 @@ +基于Markdown格式的知识管理尝试计划 +

基于Markdown格式的知识管理尝试计划

背景

  • 之前一直有收藏文章并整理自己知识体系的习惯,使用的工具是evernote(印象笔记),十多年来收集数百篇网络文章,自己整理并编写笔记若干篇,已做到目录和标签的基本分类;
  • 之前也有通过每日编写一个markdown文件来记录工作日志、零星日记的习惯,有心得感悟时都直接在工作日志中随手写入,保存起来;
  • 通过github pages写过一些个人博客文章,更新频率不高,主要作为个人笔记在使用;
  • 当前问题如下:
    • evernote用户体验逐年下降,对设备限制较多,且内容存在云端、格式封闭,个人掌控感较差,数据有无法访问的风险;
    • 工作日志中散落的心得感悟没有索引,基本埋没在以日期命名的文件里,不成体系;
    • 收集的数百篇网络文章基本没有进行消化阅读,未形成自己理解的内容;

目标

  • 为网络收藏和个人产出的文章建立索引,把之前的“仓库”形成“体系”;
  • 从evernote中迁移出来,所有数据放在本地,并通过在线网盘进行同步;
  • 以纯文本+附件资源作为载体,避免对一种编辑器或工具产生过度依赖;

工具选择

  • Obsidian,用于建立最基本的知识仓库,编辑自己的知识卡片,并充分利用它的双向链接功能将收藏的文章和自己输出的内容形成体系连接起来;
  • vscode, 用于编辑技术文章、工作日志以及基于插件进行绘图,最终输出内容到Obsidian文件库中;
  • 360网盘,用于在线实时同步存储Markdown的文件夹,任何具有同步文件功能的网盘均可;

具体计划

  • 整理文章目录:按照文章来源(网络、书籍、心得)、知识层面(技术、生活、哲学)等进行分类,形成树状目录结构;
  • 整理文章标签:每篇文章虽然只属于一个目录,但是可以有多个标签,提升了检索文章的维度。目录作为知识体系的骨架分类,标签则是详细划分(如技能相关的标签就可以有:编程、绘画、音乐、写作,并还能进一步细分);
  • 参考少数派文章玩转 Obsidian 01:打造知识循环利器提到的Zettelkasten笔记法逐步整理多年积累的知识形成以“知识卡”(其实就是具有互相链接关系的Markdown文件)为单位的知识;
  • [[玩转 Obsidian 01:打造知识循环利器 - 少数派]]
  • 阅读整理多年收集的知识文章,按照大约每周一篇的节奏,产出自己理解后的知识卡片,形成“知识循环”;
  • 如此往复若干时间,不断完善这个体系,工具可更换,载体亦可更换,唯独不变的是探索、求知的心;
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\240\265\344\275\240\345\215\203\351\201\215\344\271\237\344\270\215\345\216\214\345\200\246/index.html" "b/p/\345\240\265\344\275\240\345\215\203\351\201\215\344\271\237\344\270\215\345\216\214\345\200\246/index.html" new file mode 100644 index 000000000..0415c87b0 --- /dev/null +++ "b/p/\345\240\265\344\275\240\345\215\203\351\201\215\344\271\237\344\270\215\345\216\214\345\200\246/index.html" @@ -0,0 +1,11 @@ +堵你千遍也不厌倦? +

堵你千遍也不厌倦?

统计了一下我平时上班所需要的时间,要是堵车的话大概要一个小时多一些,要是特别堵的话大概要两个小时,要是跑步的话大概得三个小时多一些(推算的,可以忽略),要是夜里打车去上班的话大概得二十多分钟(极少,也可以忽略)。

所以我一天大概有三个小时是堵在路上的,这导致了我的胃口极差,身材日渐消瘦,远看像铅笔近看像挂历!每天我都要坐在车上长吁短叹:“GR的堵车啊!”

是什么原因造成了这样的状况?

原因有很多种,我想最直接的原因可能就是因为路上出现了车祸。

无论是蹭了一下车屁股还是挂了一下后视镜,双方都会停好车,把路占上,然后撅起屁股在那儿查看爱车的状况,最后再各自打电话叫人……

这个时候你要是刚好在路上,你就会感觉你置身于车的海洋,一辆挨着一辆的汽车望不到头,一片喇叭声,让人透不过气来。每当我乘坐的公交车慢慢的拱过出事地点,往往还能看到出事的双方(或多方)在那儿撅着。

这种情况每天都要出现,所以每天都要堵车。

据说从8月7号到8月20号,北京的交通管制要进行奥运预演.这对我们这些挤公交车上班的来说真是莫大的好消息啊!我们又可以感受像去年中非论坛期间的那种一路畅通的超快感了!

不过,快乐永远是短暂的,过了那几天,还是得老老实实的坐在车去上体验“堵车不堵心”。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\241\236\347\217\255\346\211\213\346\234\272\344\275\277\347\224\250mailforexcange\345\220\214\346\255\245gmail\345\256\236\347\216\260pushmail/index.html" "b/p/\345\241\236\347\217\255\346\211\213\346\234\272\344\275\277\347\224\250mailforexcange\345\220\214\346\255\245gmail\345\256\236\347\216\260pushmail/index.html" new file mode 100644 index 000000000..b57e87f66 --- /dev/null +++ "b/p/\345\241\236\347\217\255\346\211\213\346\234\272\344\275\277\347\224\250mailforexcange\345\220\214\346\255\245gmail\345\256\236\347\216\260pushmail/index.html" @@ -0,0 +1,11 @@ +塞班手机使用MailForExcange同步gmail实现pushmail +

塞班手机使用MailForExcange同步gmail实现pushmail

从《越狱》火起来那年开始,pushmail这个概念随着黑莓手机的流行而泛滥成灾(什么?不知道什么是pushmail?请Google之,或者看这里。现在知道了吧,pushmail的好处就是及时。),就连中国移动也推出了自己的pushmail,当然了他们要收取“少量”的费用。

那么有没有免费的泥?

答案是肯定的,条件有三:

1、拥有一个gmail帐号。

2、拥有一部Nokia智能手机(最好是E系列)。

3、喜欢折腾。由于pushmail客户端不再向以前的email客户端那样需要过一段时间就去服务器查询是否有新邮件,这样既省钱又省流量,所以折腾一下还是值得的。

好吧,准备好手机,就到这里来下载MailForExcange吧。

http://www.google.com/mobile/products/sync.html#p=nokia_smart

下载完成后这里有使用说明

http://www.google.com/support/mobile/bin/answer.py?hl=en&answer=147951

按照文档的说明,设置完毕之后就可以使用了。

补充两点:

1、不要选择同步“任务”,目前还不支持,如果选择了就会什么也同步不了。

2、不要选择同步“联系人”,否则会把你gmail里的联系人全部同步到手机上,如果不小心还可能会清空手机的电话本(慎用!)。

另:我有使用日程表的习惯,这也是偏执狂的一个表现,是GoogleCalendar重度使用者、Gmail的中度使用者,同时极度讨厌使用OutLook。

此MailForExcange还可以同步日程安排到手机,真是居家旅行杀人灭口之必备好软。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\243\201\347\272\270/index.html" "b/p/\345\243\201\347\272\270/index.html" new file mode 100644 index 000000000..41e1c98bb --- /dev/null +++ "b/p/\345\243\201\347\272\270/index.html" @@ -0,0 +1,11 @@ +壁纸 +

壁纸

桌面壁纸有嘛用?

整天看到人乐此不疲地换来换去,唧唧歪歪,真是还躁。

我的桌面壁纸就是黑乎乎的一片,上面散落着几行咒语般的VI命令。

擦!误把这里当推特了

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\243\260\345\215\241\351\202\243\344\272\233\344\272\213\345\204\277/index.html" "b/p/\345\243\260\345\215\241\351\202\243\344\272\233\344\272\213\345\204\277/index.html" new file mode 100644 index 000000000..d3b787bb7 --- /dev/null +++ "b/p/\345\243\260\345\215\241\351\202\243\344\272\233\344\272\213\345\204\277/index.html" @@ -0,0 +1,11 @@ +声卡那些事儿 +

声卡那些事儿

1、装机

要是在2000年左右买电脑装机器,除了要考虑cpu、主板和显卡之外,还有个板卡不能忽视,就是声卡。

没声音,再好的戏也出不来,所以声卡作为一个多媒体电脑的基本配件在当时是十分重要的,记得当时很多厂家都在这个领域厮杀,启亨、帝盟、创新、雅马哈等,广告打得异常火爆,后来来自新加坡的创新公司创新赢得了这场战争。因为创新推出了一片极其牛逼的芯片EMU-10k1,利用该芯片制造出了一拨红的发紫的声卡产品—-SB-Live系列(我们背地里管它叫傻逼的生活)。

后来一个计算机标准出来了,那就是AC97,主板逐渐集成了声卡,开始还依赖cpu的运算偶尔还要爆音和死机,后来技术日趋成熟,遍地都是板载声卡了,主板厂商要是不集成声卡都不好意思跟人家打招呼了,这下好了,装机的配置单上再也没有“声卡”这个选项了。

2、波表

我的第一台计算机配了一块杂牌声卡,我估计音质还比不了现在的集成声卡,但是该声卡集成了一个FM合成器,我当时爱玩一个叫“快乐电子琴”的音乐软件(感谢这个软件,因为这个软件我后来才买了台雅马哈电子琴),利用该软件可以在电脑上叮叮咚咚地弹电子琴,也算是过过电子琴的干瘾。

这个软件之所以可以发音就是依赖了我声卡上的FM合成器,不过乐器的音色很假,敲鼓的声音像是在放屁。

直到有一天我去同学家里玩,他有一块雅马哈724声卡,我给他装上了“快乐电子琴”,一弹奏我就惊呆了,乐器的声音太逼真了,跟真的一样,比起我那个FM合成器声音有天壤之别,后来屡次查资料这才认识了“波表”这个东东,这是一项MIDI技术,如果要说清楚的话估计得说上三天三夜,这里就不详细介绍了。

不过雅马哈的724声卡其实并非带了硬件波表合成器,而是通过软件模拟的,发声会有一些延迟,但是已经很不错了,软件波表模拟器后来发展的也不错,能力也大大超过了硬波表,不过这就是后话了(现在的计算机上如果是windows系统就都有一个软波表,音质一般,有延迟)。

再后来我的另一个同学有块创新PCI128声卡带了个8MB的硬波表合成器,这个声音又让我吃惊了一下子,这次就更逼真了,而且声音实时发出,不带一丝一毫的延迟,软件波表模拟器的最大的缺陷在这里被一扫而光。

3、ASIO

我后来有了一块创新的SB-Live声卡,用了快8年了,这么多年我换了3台计算机,但是声卡一直用的是这一块。这块声卡经典到无法用言语来形容,目前在我的电脑上通过kx驱动,发出的声音甜美清澈,音质是那些集成声卡脱了裤子也撵不上的。

虽然已经停产了,但是仍然可以在网上买到旧的,听说有人收藏了上百块这款声卡,可见其经典程度。

更难能可贵的是,有了kx驱动(一个非官方的改版驱动)可以使此声卡支持ASIO(一种音频标准),在Cubase等录音软件下可达到实时渲染声音的效果,行话叫“听湿录干”,要是普通声卡的话就有很大的延迟,想想你唱卡拉ok时过了几秒钟声音才发出来的尴尬,所以支持ASIO可以让我在CuBase下直接唱卡拉OK,而且可通过各种软效果器随意处理自己的音色。

4、现在

很少有人再去关注声卡了,厂商也不再大力宣传他们的声卡产品,那些肯花五千块钱配电脑的人宁愿其中有一千块钱花在显卡上却不愿花三百块钱买块差不多的声卡。好吧,那你就忍受集成声卡那粘粘糊糊的音质吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\215\345\210\266\346\230\250\345\244\251/index.html" "b/p/\345\244\215\345\210\266\346\230\250\345\244\251/index.html" new file mode 100644 index 000000000..caee88580 --- /dev/null +++ "b/p/\345\244\215\345\210\266\346\230\250\345\244\251/index.html" @@ -0,0 +1,11 @@ +复制昨天 +

复制昨天

今天和昨天过得一样,略微多了些上班前的焦躁,所以我还是喜欢周六多一些(哪怕那天是加班)。

没空的时候总是想着抽出时间来多学习一些东西,等到周末时却又缺乏了耐心和兴趣,就像牛人说的那样,我所荒废的今日其实就是昨天所期盼的明日啊。

当然了,荒废不荒废也不知是谁说了算。

今天出去跑步的时间略早,发现有人也在跑步,只不过我是顺时针方向,那哥们儿是逆时针方向在跑,我们在西南角碰面,然后又在东北角擦肩,所以我可以断定他和我的速度是差不多的,不过,我回来时,人家可能还在继续跑。

下午的时候,又拿了拿吉他(看来实在是无聊了),摁了两下,摁得左手生疼,发现以前磨出的茧子早下去了,手指光滑无比,连指纹都看不清,我说怎么前两天弄那个指纹识别程序时老调试不成功,看来我可以放心去作案了。

写了半天,发现写的前言不答后语,难道这就是传说中的意识流?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275/index.html" "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275/index.html" new file mode 100644 index 000000000..fc0a10f0a --- /dev/null +++ "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275/index.html" @@ -0,0 +1,11 @@ +夕阳无限好 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201.JPG" "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201.JPG" new file mode 100644 index 000000000..e3c885c43 Binary files /dev/null and "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201.JPG" differ diff --git "a/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_120x120_fill_q75_box_smart1.JPG" "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_120x120_fill_q75_box_smart1.JPG" new file mode 100644 index 000000000..1553bc646 Binary files /dev/null and "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_120x120_fill_q75_box_smart1.JPG" differ diff --git "a/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_1600x0_resize_q75_box.JPG" "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_1600x0_resize_q75_box.JPG" new file mode 100644 index 000000000..7380c2779 Binary files /dev/null and "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_1600x0_resize_q75_box.JPG" differ diff --git "a/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_800x0_resize_q75_box.JPG" "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_800x0_resize_q75_box.JPG" new file mode 100644 index 000000000..49a64095f Binary files /dev/null and "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_800x0_resize_q75_box.JPG" differ diff --git "a/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/index.html" "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/index.html" new file mode 100644 index 000000000..5e1fe715b --- /dev/null +++ "b/p/\345\244\225\351\230\263\346\227\240\351\231\220\345\245\275\345\217\252\346\230\257\347\234\213\344\270\215\346\270\205/index.html" @@ -0,0 +1,11 @@ +夕阳无限好,只是看不清 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\234\350\267\257/index.html" "b/p/\345\244\234\350\267\257/index.html" new file mode 100644 index 000000000..957f28727 --- /dev/null +++ "b/p/\345\244\234\350\267\257/index.html" @@ -0,0 +1,11 @@ +夜路 +

夜路

路灯下我的影子–由sbabybird于11/10/200708:50:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\247\345\221\250\346\234\253/index.html" "b/p/\345\244\247\345\221\250\346\234\253/index.html" new file mode 100644 index 000000000..33b0fbfe3 --- /dev/null +++ "b/p/\345\244\247\345\221\250\346\234\253/index.html" @@ -0,0 +1,11 @@ +大周末 +

大周末

再次迎来双休日,虽然明天要有半天公事,但是毕竟不是去加班,感觉挺爽。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205.png" "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205.png" new file mode 100644 index 000000000..bc4e64002 Binary files /dev/null and "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205.png" differ diff --git "a/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_120x120_fill_box_smart1_3.png" "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..f4b873f44 Binary files /dev/null and "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_1600x0_resize_box_3.png" "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_1600x0_resize_box_3.png" new file mode 100644 index 000000000..5a790b340 Binary files /dev/null and "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_1600x0_resize_box_3.png" differ diff --git "a/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_800x0_resize_box_3.png" "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_800x0_resize_box_3.png" new file mode 100644 index 000000000..47d2626ef Binary files /dev/null and "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_800x0_resize_box_3.png" differ diff --git "a/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/index.html" "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/index.html" new file mode 100644 index 000000000..a0ef9ab37 --- /dev/null +++ "b/p/\345\244\247\350\204\221\345\271\264\351\276\204\347\232\204\346\265\213\350\257\225/index.html" @@ -0,0 +1,11 @@ +大脑年龄的测试 +
Featured image of post 大脑年龄的测试

大脑年龄的测试

午睡醒来,收到同事发来的Flash小游戏,据说可以根据你的反应速度测试出大脑的年龄,我试了一下,最后结果是:我的大脑有30岁了。

还算靠谱,比实际老了点儿(没办法,这都是干活儿累的啊),记得有次我做心理年龄测试,结果是60岁了。

(试试看)–由sbabybird于12/05/200701:26:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\251\346\260\224\344\270\215\345\244\252\345\245\275/index.html" "b/p/\345\244\251\346\260\224\344\270\215\345\244\252\345\245\275/index.html" new file mode 100644 index 000000000..b1cbbd2a1 --- /dev/null +++ "b/p/\345\244\251\346\260\224\344\270\215\345\244\252\345\245\275/index.html" @@ -0,0 +1,11 @@ +天气不太好 +

天气不太好

今天的天气不是很好,空气质量特别差,用专业术语来说就是"霾",在做了一番思想斗争之后,我还是决定出去跑步,因为这种天气情况不在我所定义的"不可抗拒之因素"之内。

气喘吁吁地回来,用热水洗了个脚,美,懒得开大机器了,就用小e随便发几个字算了,顺便控诉一下,用小e打字可真是受罪。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\251\346\260\224\347\234\237\347\232\204\345\276\210\345\206\267\344\272\206/index.html" "b/p/\345\244\251\346\260\224\347\234\237\347\232\204\345\276\210\345\206\267\344\272\206/index.html" new file mode 100644 index 000000000..eab7b3481 --- /dev/null +++ "b/p/\345\244\251\346\260\224\347\234\237\347\232\204\345\276\210\345\206\267\344\272\206/index.html" @@ -0,0 +1,11 @@ +天气真的很冷了 +

天气真的很冷了

天气真的很冷了,走在路上,我的鼻涕都冻出来了。

搭车时,公交车都冻得无法启动。

坐车时,腿冻得直打颤。

开门时,牙冻得直打架。

–吃饭去!–由sbabybird于11/15/200708:13:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\251\346\260\224\351\242\204\346\212\245/index.html" "b/p/\345\244\251\346\260\224\351\242\204\346\212\245/index.html" new file mode 100644 index 000000000..5de627cb6 --- /dev/null +++ "b/p/\345\244\251\346\260\224\351\242\204\346\212\245/index.html" @@ -0,0 +1,11 @@ +天气预报 +

天气预报

早晨,NB烘烘的中国移动给我发天气预报说是阴转多云,在分析了昨晚电视上的预报加上收音机告诉我的降水概率后,我确定今天不会下雨,然后非常自信的没带伞就上班了,虽然头上的天阴的要滴水似的。

谁知现在的天气预报已经不准确到让人发指的地步了!从下车到家的那段路程我只好雨中快步了(跑啊)。

不是说现在计算机运算速度越来越快了吗?

不是说建立的数据模型越来越接近真实了吗?

不是说那什么风云N号也升空了吗?

嗯?!忽悠谁啊!

上次就报给我说最近西伯利亚那边有情况,未来几天有大风降温的天气,搞得我捂了一身痱子!现在到处是天气预报,各大网站上有,报纸上有,QQ上有,收音机、电视就更有了,而且还花样儿繁多,一会儿是穿衣指数,一会儿又洗车指数,最后还忽悠你个降水概率,有雨就有雨没雨就没雨,整个指数百分之60鬼才知道到底要不要下!

当然了,他们有预报准确的时候,那就是对局部地区的天气预报,反正局部地区天天要下雨甚至还有短时间的雷雨大风等强对流天气。

我妈就曾经十分关切的问我:“为什么局部地区天天下雨,这个地区到底在哪儿?住在那儿的人可怎么活哟!”

算啦,也不跟他们计较,我还是回去翻翻小学的语文课本,好好拜读一下里面的那篇《看云识天气》,以后再也不相信这GR的天气预报了!

慢着,突然想起了倪萍大婶子曾经在“综艺大观”上做的即兴方言版天气预报,啧啧,那叫一个准啊!

“社员同志们注意啦,哈。这个山东省荣成县寨子沟公社刘家村广播站现在开始播送天气预报,哈。这个明天头半晌儿阴有小雨儿,后半晌儿就变天了。南风转西北风7-8级。这个凄凄沥沥的小雨儿夹着嗖嗖的西北风,今儿刮,明儿刮儿,后儿还刮,一直刮到下个星期六,哈。这个咱再接着说天气预报。这个西北风一刮,这回最大的特点就是龙卷风,龙卷风啊,粮食要最重….”  

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\251\346\266\257\345\205\261\346\255\244\346\227\266/index.html" "b/p/\345\244\251\346\266\257\345\205\261\346\255\244\346\227\266/index.html" new file mode 100644 index 000000000..08fffd676 --- /dev/null +++ "b/p/\345\244\251\346\266\257\345\205\261\346\255\244\346\227\266/index.html" @@ -0,0 +1,11 @@ +天涯共此时 +

天涯共此时

跑完步回来都九点多了,出差在外的同事一个接一个的打回来电话,原来这帮儿不要命的家伙还在加班。

先是远在宁夏的兄弟告诉我刚做的PPT需要修改,然后是身在河南的项目组打电话咨询版本控制的问题,最后是被发配到青海的哥们儿在电话里用略带嘶哑的嗓音和我一起探讨了一会儿程序路径分支的问题,然后又像是梦游一般地把电话挂掉……

放下电话,我不禁要问(焦点访谈看多了),沟通的方便是帮了我们还是坑了我们?

得亏了信息科技的发达啊,要是远在飞鸽传书的年代,我把代码写好,然后抄到一张小纸条上,绑在鸽子腿上,趁它还没飞抵现场调试的时候,美美地睡上一觉。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\244\261\346\234\233/index.html" "b/p/\345\244\261\346\234\233/index.html" new file mode 100644 index 000000000..dec56ddad --- /dev/null +++ "b/p/\345\244\261\346\234\233/index.html" @@ -0,0 +1,11 @@ +失望 +

失望

昨天夜里,Google演示了他们推出的操作系统ChromeOS,据说是基于Linux的。

在此之前已有风生放出,比较适合上网本,我期待着能够用在我的epc(太弱了)上。

结果是,Google根本不允许在他的操作系统上安装任何本地软件,甚至不能自己安装在笔记本上,所有的数据均保存在Google的服务器上,意味着一旦失去网络就是废塑料一坨。

想一想咱们的网络环境,我还是洗洗睡吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\245\271\346\235\245\345\220\254\346\210\221\347\232\204\346\274\224\345\224\261\344\274\232/index.html" "b/p/\345\245\271\346\235\245\345\220\254\346\210\221\347\232\204\346\274\224\345\224\261\344\274\232/index.html" new file mode 100644 index 000000000..ad70168e6 --- /dev/null +++ "b/p/\345\245\271\346\235\245\345\220\254\346\210\221\347\232\204\346\274\224\345\224\261\344\274\232/index.html" @@ -0,0 +1,11 @@ +她来听我的演唱会 +

她来听我的演唱会

我从来没有看过演唱会,我曾经想象着这样的场景,歌手在光亮的舞台上扯开喉咙唱歌,我和无数歌迷在舞台地下挥舞着荧光棒也扯着嗓子高呼。

可是我从来没有这样做过,因为我已经错过了那个季节。

我也曾幻想着那样的场景,我理着光头,抱着吉他在舞台上扯开喉咙唱歌,千万的听众也挥舞着荧光棒随着高呼,但是我也错过了那个季节。

我也是个热爱音乐的人,也偏爱着某些歌手,我也曾想象着去听某些人的演唱会,但是我想我不会去了,因为我知道,有些歌我在演唱会上要是跟着唱的话,会无法控制自己的情感而轻轻啜泣。

张学友有一首歌叫《她来听我的演唱会》令无数恋爱中的女人为之动容,因为这首歌唱出了从少女到女人的心路历程。从浪漫的青葱岁月到现实的装b季节,无数的少男少女经历了从梦想的飞蛾到蚕蛹的转变。

正像崔健在《假行僧》里唱到的那样,我要从南走到北,还要从白走到黑,我要人们到看到我但不知道我是谁,假如你看我有点儿累就请你给我倒碗水。。。。。。

今天,我的一个好哥们,雅兴大发,拼命挤到网上淘得一张齐秦在北京演唱会的门票,欣喜若狂。

我很羡慕他还有这个心情去看一场演唱会,在这个充满压力的某些时候还令人沮丧的世界,仍然能保持梦想并执着于自己的爱好。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\245\275\345\203\217\345\217\210\344\270\215\350\203\275\350\256\277\351\227\256google\344\272\206/index.html" "b/p/\345\245\275\345\203\217\345\217\210\344\270\215\350\203\275\350\256\277\351\227\256google\344\272\206/index.html" new file mode 100644 index 000000000..6125121d0 --- /dev/null +++ "b/p/\345\245\275\345\203\217\345\217\210\344\270\215\350\203\275\350\256\277\351\227\256google\344\272\206/index.html" @@ -0,0 +1,11 @@ +好像又不能访问google了 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\245\275\345\220\247\347\216\260\345\234\250\345\217\257\344\273\245\347\224\250win10\344\272\206/index.html" "b/p/\345\245\275\345\220\247\347\216\260\345\234\250\345\217\257\344\273\245\347\224\250win10\344\272\206/index.html" new file mode 100644 index 000000000..f15adca6d --- /dev/null +++ "b/p/\345\245\275\345\220\247\347\216\260\345\234\250\345\217\257\344\273\245\347\224\250win10\344\272\206/index.html" @@ -0,0 +1,11 @@ +好吧,现在可以用win10了 +

好吧,现在可以用win10了

win10系统的升级推送大概烦了我们半年时间,微软为了实现10亿装机量的目标,到最后甚至丧心病狂到向国内的流氓软件厂商学习的地步(取消按钮都不提供了),据说现在好像达到了大概3亿的装机量。

去年年末当win10第一次推送更新时,我第一时间进行了升级,然而在使用了不到一个星期的时间,我就果断返回到win8.1系统了,因为当时的体验实在是太差了,各种不兼容,系统启动速度和响应速度都变得很慢。

直到上周到了win10免费推送的最后关头,于是就再次抱着试试看的态度将我的家用电脑进行了升级,结果出乎我的意料,经过了半年的不懈努力,现在的版本已经稳定可用了,随后我便将我所有的windows系统都进行了升级,全面进入win10时代。

普通用户的使用体验就不再赘述,比如新增的小娜助手等等,这些功能稍微方便一些,但是比win8.1不算是革命性更新,作为一个软件开发者,主要有如下功能比较让我心动:

1、直接执行Linux命令行程序。微软将其称为「Windows 下的 Linux 子系统」 (Windows Subsystem for Linux),据说这是一项全新的技术,并未采用虚拟化手段,也不是交叉编译的技术,而是直接将Linux系统调用映射为原生的Windows系统调用,类似于Linux平台下的Wine(在Linux下运行Win程序,唉,大家这样累不累啊),这样一来既可以体验windows良好的桌面环境,又可以使用Linux系的命令行,可谓鱼与熊掌兼得了。

2、Docker开始原生支持Windows10(64位),在此之前要想在Windows下体验Docker容器技术的话,必须安装DockerToolbox(基于VirtualBox虚拟机的模拟环境),现在 则可以直接基于Windows原生自带的Hyper-V技术使用Docker了,虽然效果有待观察,但是相比基于VirtualBox虚拟机的环境,性能方面应该能有所提升。

3、Windows Hello 生物识别技术,虽然需要特殊的硬件设备支持(一种带深度探测的摄像头,估计会逐步普及),登录系统或网站只需要刷脸就行了,据说识别率还是挺高的,但是女生如果化了妆,有可能无法识别。

总之,虽然一开始是拒绝的,但是经过这么长时间的升级,通过这几天的使用体验,我认为现在可以升级到win10了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\246\202\344\275\225\345\210\266\344\275\234\344\270\200\344\270\252\345\217\257\344\273\245\345\274\225\345\257\274\347\232\204\344\274\230\347\233\230/index.html" "b/p/\345\246\202\344\275\225\345\210\266\344\275\234\344\270\200\344\270\252\345\217\257\344\273\245\345\274\225\345\257\274\347\232\204\344\274\230\347\233\230/index.html" new file mode 100644 index 000000000..958190617 --- /dev/null +++ "b/p/\345\246\202\344\275\225\345\210\266\344\275\234\344\270\200\344\270\252\345\217\257\344\273\245\345\274\225\345\257\274\347\232\204\344\274\230\347\233\230/index.html" @@ -0,0 +1,11 @@ +如何制作一个可以引导的优盘 +

如何制作一个可以引导的优盘

这两天小笔记本出故障害我卷起袖子修了两个晚上,由于没有光驱,所以没少用到我的优盘,可是网上可下载系统盘一般都是iso文件,即光盘镜像刻录成光盘才可以引导机器启动,不过现在是21世纪了,几乎所有的主板都支持usb启动,所以没有光驱也无所谓了,只要手中有可引导光盘的iso文件就可以制作出一个可引导的优盘出来。

正所谓授之以鱼不如授之以渔,下面介绍一下制作可引导优盘的步骤,并非所有的引导盘都必须这么做,这仅是其中的一种方法,也最省事。

1、必备条件:运行Windowsxp系统的计算机一台,优盘一只。

2、去网上搜索并下载名叫“UltraISO"的软件,试用版亦可。(该软件同时具有光盘刻录、iso制作、虚拟光驱的功能,真是居家旅行……..)

3、可引导的光盘镜像文件(扩展名一般为iso)一只,比如ubuntu9.10-i386-livecd.iso,具体要什么iso取决于你要干的事情,如果这一句你弄不明白,那就别往下进行了。

4、把那只倒霉的优盘插入电脑。(记清楚他的盘符,如果你插入了多个优盘的话)。

4、启动UltraISO,在菜单里选择“文件”==》“打开”选中你的iso文件。确定。

5、在菜单里找到“启动”下面的“写入硬盘映像”并猛烈点击之。

6、现在弹出了一个新对话框,在名叫“选择硬盘驱动器”的那个下拉框中选择你刚才插入的那个优盘(如果就插入了一个,就不用于选了)。

7、在“写入方式”那个下拉框里选择“USB-HDD+”,除了这个选项还有“USB-ZIP”等选项,但是你选择USB-HDD+就可以了,因为这个格式的兼容性最好,实在不行再换其他的。

8、点击“写入按钮”并耐心等待。注意:优盘的内容会被清空。

9、等写完了就拔掉优盘尽情的去得瑟吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\246\202\344\275\225\346\233\264\351\253\230\346\225\210\347\232\204\344\275\277\347\224\250\344\275\240\347\232\204\347\224\265\350\204\221/index.html" "b/p/\345\246\202\344\275\225\346\233\264\351\253\230\346\225\210\347\232\204\344\275\277\347\224\250\344\275\240\347\232\204\347\224\265\350\204\221/index.html" new file mode 100644 index 000000000..76bdb91aa --- /dev/null +++ "b/p/\345\246\202\344\275\225\346\233\264\351\253\230\346\225\210\347\232\204\344\275\277\347\224\250\344\275\240\347\232\204\347\224\265\350\204\221/index.html" @@ -0,0 +1,11 @@ +如何更高效的使用你的电脑 +

如何更高效的使用你的电脑

最近有人看我操作我的电脑,觉得整理的很整齐、很干净,能够高效地工作,并表示希望自己的电脑也能这样,我想了一下,决定利用自己的一些闲暇时间,我也整理一下思路,将自己在使用电脑时的一些“好习惯”分享出来,希望对你们有帮助。

##硬件

  • 首先,在硬件上,不用对CPU和硬盘容量要求太高,这两个东西目前的配置都是过剩的,如果有条件,建议你使用固态硬盘,内存则是多多益善,买你能买的起的最大的内存(摄影圈有句话,叫“买你能买的起的最贵的镜头”)。如果没有也没关系,现在随便一台电脑的配置都足够用(非专业工作或大型游戏,打游戏的,你直接买xbox多好,一块显卡的钱就够了,而且体验还远超家用PC)。
  • 如果你说你有大量电影要存储,首先这不是好习惯,其次如果非得这样的话,请另外配置一个家用NAS,比你PC上的硬盘靠谱。

##操作系统

  • 不要盲目崇拜Mac系统,如果你不是从事艺术、设计类工作,请老老实实使用Windows操作系统,建议使用Win8.1版本,那些Win7的死忠粉估计是真没用过8.1(同样的硬件配置,8.1比7跑的快又稳),Win10目前存在硬件兼容性问题,估计还得再等等才能使用
  • 别再用Xp了,求你了,Xp上的IE浏览器顶多升级到8.0,你知道这给我们的前端开发带来多大的工作量浪费吗,整天兼容来兼容去的,为了祖国的发展和程序员的健康及家庭和睦,请升级你的操作系统

##基础习惯

  • 不要安装任何杀毒软件,包括各种助手、管家、防火墙,不要被他们给你的错误安全感所洗脑,觉得你的电脑到处充满了病毒和危险,以及动不动就清理垃圾、整理内存、监测网速,完全没必要,让他们统统去死,windows自带的防火墙和杀毒防御足够用了。
  • 不要关闭UAC,Xp以上的系统,带有一个用户体验很不好的功能,即如果有软件尝试高权限操作时(比如偷偷安装东西),windows会弹出一个警告界面让你选择是否继续,这个功能很有必要,尤其是现在很多流氓软件的情况下,但是很多人为了图省事儿,把他关了,后来就出现了自己明明啥也没动,一些流氓软件还是自动装上了的情况。
  • 保持桌面的整洁,最好一个图标也别留,这样心情好,心情好了干活效率也就高了
  • 如无必要,不要额外安装任何软件,只保留基本的办公软件和浏览器、音乐视频播放等就行了
  • 安装一个靠谱的浏览器,建议是谷歌浏览器,或者火狐也行,开通云同步功能,这样收藏夹就不会丢了
  • 系统自带的微软拼音输入法就很好用了,别安装其他输入法了(如果你还在用五笔,前辈,请受我一拜)
  • 不要爱惜你的电脑,放心大胆的整,犯的错多了你就老实了

##进阶篇

  • 固态硬盘不要分区,分区为了数据安全的想法已经过时了,要淘汰这种老思想
  • 普通硬盘可以考虑分一下,将不同类型的文件按分区或文件夹归类,比如系统一个区、工作一个区、数据档案一个区
  • 给自己的当前工作建立一个TODO文件夹,里面放需要解决和处理的文件或工作过程中的文件,但是一旦完成此项工作后,记得及时归档保存。
  • 关于文件夹命名和文件命名,要尽量有意义,尽量长一些,别出现“新建文件夹13”这样的,会给将来的检索带来极大干扰
  • 按照项目整理文件,而不是按照文件类别
  • 使用云盘(推荐360网盘)保存备份你的数据,不用担心隐私问题,互联网时代没隐私
  • 整理、善用你的浏览器收藏夹,这样省得每次都输入网址

##大师篇

  • 如果你有秘密数据,我推荐一款软件TrueCrypt,可将文件加密后再备份,不过据说这个软件的加密算法被美国FBI破解了,不过你那点儿数据也犯不着动用FBI
  • 有一款软件叫Everything,查询文件速度极快,如果你的文件命名比较有意义的话,可以快速搜索到,当然如果你都放在云盘了,云盘自身的搜索也很不错了。
  • 善用快捷键,先说这些简单的吧
    • Win+L,锁屏
  • Win+E,资源管理器
  • Win+Q,快速检索应用或文件
  • Tab键是可以将光标跳转到下一个输入框,但是可能很少有人知道Shift+Tab是跳转到上一个
  • Win+1、2、3、4、5等,可以快速启动你锁定在任务栏上的应用
  • Win+X,进入最快捷的系统菜单
  • Win+C,另一个快速菜单,可以快速设置、关机等等
  • Win+D,快速回到桌面
  • PrintScreen,截屏,Alt+PrintScreen截屏当前活动窗口

丧心病狂篇

  • 善用Win+R(运行),直接启动各种程序
  • 输入calc,启动计算器
  • 输入mspaint,启动画图板
  • 输入excel,启动excel
  • 输入winword,启动word
  • 输入cmd,启动命令行控制台(这个回头单聊吧)
  • 输入services.msc,启动服务管理界面
  • 输入gpedit.msc,启动组策略管理器

##省事儿篇

  • 找一个像我这样的朋友,请他吃饭。

最近比较忙,先写这么多,想到再补充。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\246\202\344\275\225\347\273\231\351\241\271\347\233\256\345\206\231\344\270\200\347\257\207\345\220\210\351\200\202\347\232\204readme/index.html" "b/p/\345\246\202\344\275\225\347\273\231\351\241\271\347\233\256\345\206\231\344\270\200\347\257\207\345\220\210\351\200\202\347\232\204readme/index.html" new file mode 100644 index 000000000..4eb2dbe3f --- /dev/null +++ "b/p/\345\246\202\344\275\225\347\273\231\351\241\271\347\233\256\345\206\231\344\270\200\347\257\207\345\220\210\351\200\202\347\232\204readme/index.html" @@ -0,0 +1,12 @@ +如何给项目写一篇合适的readme +

如何给项目写一篇合适的readme

+很多人忽视这个说明文档,往往给自己的项目工程建立一个空readme文件或者在里面随便写几行不清不楚的文字,这样非常不利于代码工程的后期管理,尤其是对于有团队协作的项目,即使是个人项目,考虑到后期可能要给别人用,写一份合适的说明也十分必要。

现在我们的项目工程已经全部迁移到gitlab中了,大家使用git工具管理 自己的代码版本已经比较得心应手,但是仅仅使用git管理代码并没有发挥出gitlab的全部功能,我上次也提到了更好的使用gitlab的几个技巧,这次详细说一下如何给自己的项目写一篇readme。

  1. 在自己的项目代码的根目录中建立一个readme.md文件,注意扩展名为md,这样gitlab就可以自动识别并在这个项目主页上自动渲染(将源码翻译成html)这个文件了。

  2. 学会使用Markdown语法,充分利用文档的“插入图片”、“嵌入代码”、“标题分级”、“超链接”等功能,将内容“富”起来,尤其是图片和超链接,可以弥补文本文件表达的不足。

  3. 开头的简介很关键,readme文档的主要意义在于向读者描述你这个项目做了什么,运行在什么环境,如何使用,所以在文档的开头首先要简要介绍这个项目的存在意义,为什么要做这个,主要解决什么问题,运行在什么环境,如果需要与别的项目配合,那么你的项目处于什么样的位置。

  4. 必备信息,由于是开发工程,所以很多信息是必须要在文档中说明的,主要有:

    • 开发编译和系统运行的必要参数
    • 项目中的文件和目录结构信息
    • 编译或安装步骤说明
    • 使用示例
  5. 扩展信息,以上是传统的readme文档的套路,对于我们的软件开发工程(私有的非开源项目),我个人认为可以将readme稍作扩展,使得参与这个项目的人员能够在协作上更加顺畅,主要有:

  • 项目的业务范围,可以理解为项目需求的简化索引,具体的需求可以链接到其他的Markdown文档
  • 项目的流程图和架构图,可以理解为设计文档的索引,具体内容也可以链接到其他Markdown文档
  • 版本信息,如果有发布版本,则持续更新版本的发布记录,说明每次发布的重要更新项

总之,文档的重要性不亚于项目代码,简洁有效的文档是一个成功项目的必要条件,在这个到处需要团队协作(或本地或远程)的时代,程序员想要让自己的项目得到更多的支持,发挥更好的作用,必须养成给编写技术文档的习惯。那么,先从一份能拿得出手的readme开始吧!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\246\202\346\236\234\344\273\226\344\273\254\347\224\237\344\272\247\351\251\254\346\241\266/index.html" "b/p/\345\246\202\346\236\234\344\273\226\344\273\254\347\224\237\344\272\247\351\251\254\346\241\266/index.html" new file mode 100644 index 000000000..3ca9ec582 --- /dev/null +++ "b/p/\345\246\202\346\236\234\344\273\226\344\273\254\347\224\237\344\272\247\351\251\254\346\241\266/index.html" @@ -0,0 +1,11 @@ +如果他们生产马桶 +

如果他们生产马桶

没事儿再瞎畅想一下,如果这些科技公司生产马桶,他们将会生产出什么样的—–马桶?

微软生产的马桶将会有着华丽的外观,而且对你卫生间的配置要求很高,不过即使这样你还会发觉掀开马桶盖的速度十分缓慢,而且随着时光的流逝,冲水的速度会越来越慢,你去询问维修工程师,得到的答复通常是让你将马桶卸了重新安装一次。

苹果生产的马桶已经上市就会迎来大批的粉丝扎着帐篷在商店门外排队,马桶将会有着白色的外观,名字就叫“i马桶”,界面将会十分简洁,简洁到压根儿不提供冲水按钮,不过你可以再多花99美元买一个配套的冲水按钮模块,当然你也可以去淘宝上买一个高仿的。

Mozilla生产马桶的目的就是为了鄙视微软的马桶,他们宣称“系统检测到你正在使用老掉牙的微软马桶,赶紧更换成我们生产的‘火桶’吧!”而且该马桶最大的特色就是支持各式各样的插件,有的插件让你在如厕的时候可以听音乐,有的插件则是可以提供天气预报的功能,甚至有的插件装上之后可以将其伪装成一个“苹果的马桶”以满足部分人的虚荣心。

诺基亚生产的马桶将会非常的皮实,而且供你选择的型号也非常繁多,他们除了可以用来当马桶用外还都有一个共同的特点,那就是随心换彩壳,你可以根据心情来更换不同颜色的马桶外壳,不过外壳会比较松,一不小心就会掉下来。

如果你是一个追逐新型号的狂热分子,那么诺基亚马桶还是比较适合你的,你昨天刚安装好WC71型号的,过两天就会看到诺基亚关于发布WC72的新闻,如果你马上升级那就上当了,因为其实也就是换了一个彩壳而已。

各大Linux厂商生产的马桶宣称天生就不是给普通人用的,首先这个系列的马桶虽然使用同一个内核,但会分裂出各种各样的版本分支,这让你在选择时很犯愁。

然后是他们的功能设置极其麻烦,你得翻遍1500+页的文档、彻夜在论坛里泡着、冰天雪地裸体旋转360度跪求解决办法、花个把月的时间才能将该马桶配置的可以正常掀开马桶盖了,但是别高兴的太早,要想能够正常冲水往往你还得重新编译内核。

最后,当你气急败坏的时候,你会想到国产马桶,你开始到处询问,然后厂商会首先寄给你一套马桶系统解决方案书,上面画着一个真皮座椅还带后背按摩器,而且标价极其便宜。

当然了,当你付完钱,若干个月后你将会收到一个马扎。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\246\202\346\236\234\345\217\257\350\203\275\347\232\204\350\257\235\346\201\242\345\244\215\350\267\221\346\255\245/index.html" "b/p/\345\246\202\346\236\234\345\217\257\350\203\275\347\232\204\350\257\235\346\201\242\345\244\215\350\267\221\346\255\245/index.html" new file mode 100644 index 000000000..dac12770a --- /dev/null +++ "b/p/\345\246\202\346\236\234\345\217\257\350\203\275\347\232\204\350\257\235\346\201\242\345\244\215\350\267\221\346\255\245/index.html" @@ -0,0 +1,11 @@ +如果可能的话,恢复跑步。 +

如果可能的话,恢复跑步。

年前我连续两个月坚持晚上跑步,就是绕小区跑一圈,大概十分钟左右,后来天气太冷,就暂停了。

现在天气又暖和了,我想还是把跑步这个计划坚持下来吧,每晚跑一圈,对身体的效果也许不明显,就当是锻炼执行力了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206.png" "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206.png" new file mode 100644 index 000000000..40cc5b8de Binary files /dev/null and "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206.png" differ diff --git "a/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206_hub402b1c625839e2c285a36338a055ac0_42038_120x120_fill_box_smart1_3.png" "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206_hub402b1c625839e2c285a36338a055ac0_42038_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..307dc7530 Binary files /dev/null and "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206_hub402b1c625839e2c285a36338a055ac0_42038_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206_hub402b1c625839e2c285a36338a055ac0_42038_1600x0_resize_box_3.png" "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206_hub402b1c625839e2c285a36338a055ac0_42038_1600x0_resize_box_3.png" new file mode 100644 index 000000000..c4688299c Binary files /dev/null and "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206_hub402b1c625839e2c285a36338a055ac0_42038_1600x0_resize_box_3.png" differ diff --git "a/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206_hub402b1c625839e2c285a36338a055ac0_42038_800x0_resize_box_3.png" "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206_hub402b1c625839e2c285a36338a055ac0_42038_800x0_resize_box_3.png" new file mode 100644 index 000000000..b9711f23a Binary files /dev/null and "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/20071206_hub402b1c625839e2c285a36338a055ac0_42038_800x0_resize_box_3.png" differ diff --git "a/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/index.html" "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/index.html" new file mode 100644 index 000000000..7bad656a9 --- /dev/null +++ "b/p/\345\246\271\345\246\271\345\274\200\345\247\213\345\206\231\345\215\232\345\256\242/index.html" @@ -0,0 +1,11 @@ +妹妹开始写博客 +
Featured image of post 妹妹开始写博客

妹妹开始写博客

中午收到小妹发过来的链接,打开一看,竟是她在新浪写的博客。

我粗略地看了一下,已经写了几篇文字了。

很显然地,她的作文比我写的要好,女孩子的感情细腻和多愁善感都表现在字里行间。

她这个年纪不去qq空间里玩"踩啊踩",却在新浪开博客,套句比较流行的话说:"我很欣慰啊!"光阴荏苒,白驹过隙,转眼间小妹大学就要毕业,离开校园马上就要面临现实中残酷的就业环境,在网上和我聊了几句,言语里流露出对前途的迷茫。

是啊,我也曾感到过没有方向(现在何尝不是呢?),但是脚下的路总是要自己去走,未来还是把握在自己的手中。

我忽然想起某位牛人说过的话:"睡着前最甜蜜;黎明前最黑暗;成功前最渺茫!"

–PostedBysbabybirdto从容地狂奔at12/06/200705:40:00下午

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\256\214\347\276\216\347\232\204\346\230\237\346\234\237\345\244\251/index.html" "b/p/\345\256\214\347\276\216\347\232\204\346\230\237\346\234\237\345\244\251/index.html" new file mode 100644 index 000000000..e5b810635 --- /dev/null +++ "b/p/\345\256\214\347\276\216\347\232\204\346\230\237\346\234\237\345\244\251/index.html" @@ -0,0 +1,11 @@ +完美的星期天 +

完美的星期天

早上六点蒙蒙胧胧醒来,看了一眼时间又昏睡过去,再睁开眼已经九点半了,起来洗漱完毕刚要做饭,接到老杨电话,需要火速出去办点儿公事。

好吧,早饭成了一杯麦当劳里的咖啡。

办完事回来已是中午,在老杨家喝了一点儿小酒,喝的微醺,毕竟六十七度的"老白干"不是浪得虚名。

吃完饭就顺势去了老居家里,约了大宝来打牌,大宝二话不说提着新买的麻将牌一路小跑就过来了。

就这样,在午后洒满温暖阳光的客厅里,我们忙里偷闲,搓了一下午的麻将。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\256\214\347\276\216\347\232\204\347\244\276\344\272\244\345\205\263\347\263\273/index.html" "b/p/\345\256\214\347\276\216\347\232\204\347\244\276\344\272\244\345\205\263\347\263\273/index.html" new file mode 100644 index 000000000..4155ebb74 --- /dev/null +++ "b/p/\345\256\214\347\276\216\347\232\204\347\244\276\344\272\244\345\205\263\347\263\273/index.html" @@ -0,0 +1,11 @@ +完美的社交关系 +

完美的社交关系

今天听到一句至理名言:"作为一个中国人,最好认识一个票贩子,一个交警,一个主任医师,一个幼儿园老师,一个律师,一个记者,一个修电脑的。

"对于我来说,除了最后一个,其他的我都不认识,因为最后一个就是我自己。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\256\266\344\272\272\346\235\245\345\210\260/index.html" "b/p/\345\256\266\344\272\272\346\235\245\345\210\260/index.html" new file mode 100644 index 000000000..ab178d4fb --- /dev/null +++ "b/p/\345\256\266\344\272\272\346\235\245\345\210\260/index.html" @@ -0,0 +1,11 @@ +家人来到 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\257\271googlereader\344\270\255\345\205\261\344\272\253\346\235\241\347\233\256\347\232\204\347\234\213\346\263\225/index.html" "b/p/\345\257\271googlereader\344\270\255\345\205\261\344\272\253\346\235\241\347\233\256\347\232\204\347\234\213\346\263\225/index.html" new file mode 100644 index 000000000..9b5836d01 --- /dev/null +++ "b/p/\345\257\271googlereader\344\270\255\345\205\261\344\272\253\346\235\241\347\233\256\347\232\204\347\234\213\346\263\225/index.html" @@ -0,0 +1,11 @@ +对googlereader中共享条目的看法 +

对googlereader中共享条目的看法

googlereader用了快两年了,我认为它是目前最好的在线rss阅读器了。

自从greader推出好友分享的功能后,我的好友也加了不少,而且大家都把自己认为有价值的条目共享出来。

但目前有点不太令我满意的地方是—-重复的共享太多,就是说一条有意思的rss内容反复的被好友共享,即使我已经阅读过此条目,当我在点击进入朋友共享的条目时,如果有朋友共享了该条目,则greader会认为我未读过这条内容,于是就会出现同一条资源被反复阅读的情况。

我觉得greader最好再智能一些,即我读过的东西,哪怕有n个人又共享了n遍,也不要列入到我的未读列表里,这样才好。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\260\217e\345\244\215\346\264\273/index.html" "b/p/\345\260\217e\345\244\215\346\264\273/index.html" new file mode 100644 index 000000000..4c2450188 --- /dev/null +++ "b/p/\345\260\217e\345\244\215\346\264\273/index.html" @@ -0,0 +1,11 @@ +小e复活 +

小e复活

周日手欠,将epc的系统改为ubuntu的remix版,损坏了ssd的mbr,后又恢复成xp,一天后出现ssd无法读取的错误,再也无法安装xp系统,本着死马当活马医的态度,我试了一下随机附带的恢复光盘(利用光盘烧录了一个可引导的u盘),竟然好使,现在系统又恢复到最初买回来时的状态了。但愿SSD没有坏。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\260\217\345\271\277\345\221\212/index.html" "b/p/\345\260\217\345\271\277\345\221\212/index.html" new file mode 100644 index 000000000..917828319 --- /dev/null +++ "b/p/\345\260\217\345\271\277\345\221\212/index.html" @@ -0,0 +1,11 @@ +小广告 +

小广告

大年三十,老爸安排我贴春联,贴之前先要把房门给清理一下,本着认真负责的态度,我拿着抹布撅着屁股擦了半天。

但是有两个小广告不知道用的什么胶水粘的,贴在上面太顽强了,抹布对其不起作用。

这个难不倒我,从厨房拿来清洁球,发扬"只要功夫深,铁杵磨成针"的精神,终于把这两个小广告拿下,看着擦的光亮如新的防盗门,我揉了揉发酸的腰,露出了满意的笑容。

狂奔到屋里去邀功,谁知我妈刚看了一眼就说:"哎呀!那两个小广告哪儿去啦?那上面有送水的电话号码,我平时就照着那个打呢!

"我:"@#¥%@#%……@#%……"吐了一口鲜血接着说:"没事儿!对门儿房门上贴的还有!"

–由sbabybird于2/16/200811:03:00上午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\260\217\346\227\266\345\200\231\345\271\262\350\277\207\347\232\204\344\270\200\344\272\233\351\242\207\344\270\272geek\347\232\204\344\272\213\345\204\277/index.html" "b/p/\345\260\217\346\227\266\345\200\231\345\271\262\350\277\207\347\232\204\344\270\200\344\272\233\351\242\207\344\270\272geek\347\232\204\344\272\213\345\204\277/index.html" new file mode 100644 index 000000000..7cdf77347 --- /dev/null +++ "b/p/\345\260\217\346\227\266\345\200\231\345\271\262\350\277\207\347\232\204\344\270\200\344\272\233\351\242\207\344\270\272geek\347\232\204\344\272\213\345\204\277/index.html" @@ -0,0 +1,11 @@ +小时候干过的一些颇为geek的事儿 +

小时候干过的一些颇为geek的事儿

极客,又译为技客、奇客,是英文单词geek的音译。

具体解释参见这里。想起小时候干的一些事儿,以现在的眼光来看,颇具极客精神。

小时候,我曾经嫌弃我家的收音机音量太小听音乐不过瘾,于是动手改造,本来两节干电池就可以正常使用,但是我把三节电池串联起来接在收音机的电池仓里,结果由于心理作用感觉上好像音量比以前更大了,于是我信心十足的把一个电源插头直接接在了收音机上,然后满怀希望地把另一头插在了220v的电源插座上,结果杯具发生了,一声巨响过后,浓烟滚滚,收音机被烧成了一个黑匣子。

于是我只好央求我维修技艺高超的舅舅帮忙维修,后来那台收音机倒是起死回生了,但是舅舅悄悄告诉我,除了壳没换,其他的零件全换了!还是小时候,大概在上小学,突发奇想,把我妹妹的电子表给拆了个七零八落再也装不到一起去了,无奈只好哄她说我其实是想帮她把电子表改装成一个游戏机,就快成功了,再等等。

中考的前夕,备考的压力非常大,炎热的午后,我实在是复习不下去了,动手把我床头的石英闹钟拆了,零件铺满了整个桌子,但是这次我慢条斯理的把它又给装好了,而且一个零件也没多出来,颇有成就感,只是由于把其中的一个线圈装翻了,导致这个闹钟的指针一直倒着走,直到考试结束我才又花时间把它给正了过来。

嘿,那些时光多美好呀。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\260\217\347\216\213/index.html" "b/p/\345\260\217\347\216\213/index.html" new file mode 100644 index 000000000..d6e1c0851 --- /dev/null +++ "b/p/\345\260\217\347\216\213/index.html" @@ -0,0 +1,11 @@ +小王 +

小王

初来北京的时候,家里托着亲戚的亲戚的关系让我在一家单位实习,就像鲁迅小说里写的那样,掌柜的是一副凶脸孔,主顾也没有好声气。

那时我一个人住在前门外大栅栏里的一家小旅馆里。

我住的胡同往北走几步一拐就是北京著名的“大栅栏步行街”,那儿有着浓厚的京味儿,经常看到成群的外国鬼子。

他们不停的拍照,吃小吃,买工艺品,所以这里一天到晚人山人海热闹非凡。有时候我也去转转,只是转转,并不买东西,那些让老外一看见就双眼冒光的玩意儿对我并没有多大吸引力。

小王,我住的旅店里的服务员,瘦瘦的,头戴一顶鸭舌帽,手腕上戴了一只便宜手表。

一天下午,我一个人站在楼顶上特别无聊,正好小王上来,我递给他一根“中南海”

他笑笑接住说:“一个人在外无聊吧?”

我说:“是”他说“那我就给你讲讲这一片儿的故事吧!”

于是他就趴在栏杆上给我说了一通关于这个胡同的故事,说了这一带在清朝是曾经全是窑子。

他抽了不少烟,我说“中南海这烟太冲了这边有没有柔和一点儿的烟?”

他想了想说:“我抽的都是便宜烟,恩,不过便宜好抽就行…”

他给我说了两种。我到了晚上买来抽了几支觉得不好抽(那时我还不怎么抽烟)就都送给他了。

以后就时常在一起谈天,混得很熟了,他经常早早的就把我的暖壶打满开水给提上来。

只是又过了两三天,我一直也没见到小王,一问店老板才知道:“他回老家了,他是离家出走才来到这个小店的,没钱了,才在这儿打工,不求挣钱只要有吃有睡就行,前两天他哥哥找到这里就把他带回去了。”

老板很惋惜:“多好的孩子呀!”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112.png" "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112.png" new file mode 100644 index 000000000..627985193 Binary files /dev/null and "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112.png" differ diff --git "a/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_120x120_fill_box_smart1_3.png" "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..5757dc208 Binary files /dev/null and "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_1600x0_resize_box_3.png" "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_1600x0_resize_box_3.png" new file mode 100644 index 000000000..7021a4efe Binary files /dev/null and "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_1600x0_resize_box_3.png" differ diff --git "a/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_800x0_resize_box_3.png" "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_800x0_resize_box_3.png" new file mode 100644 index 000000000..1d23e946b Binary files /dev/null and "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_800x0_resize_box_3.png" differ diff --git "a/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/index.html" "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/index.html" new file mode 100644 index 000000000..9d8cfa944 --- /dev/null +++ "b/p/\345\260\217\351\270\237\345\234\250\350\204\232\344\270\213\351\243\236\347\277\224/index.html" @@ -0,0 +1,11 @@ +小鸟在脚下飞翔 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\260\217\351\270\237\345\235\220\345\205\254\344\272\244/index.html" "b/p/\345\260\217\351\270\237\345\235\220\345\205\254\344\272\244/index.html" new file mode 100644 index 000000000..cb2051a0b --- /dev/null +++ "b/p/\345\260\217\351\270\237\345\235\220\345\205\254\344\272\244/index.html" @@ -0,0 +1,11 @@ +小鸟坐公交 +

小鸟坐公交

今天在公交车上看到一个老大爷上车带着他的鸟(此处的"鸟"没有别的意思),离得挺远,赶紧掏出相机,抓拍两张。

不过也看不出这是什么鸟(麻雀?),被老大爷拴在棍子上应该不太爽吧。

–由sbabybird于12/08/200709:50:00上午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\260\221\346\234\211\344\272\272\350\265\260\347\232\204\350\267\257\350\257\273\344\271\246\347\254\224\350\256\260/index.html" "b/p/\345\260\221\346\234\211\344\272\272\350\265\260\347\232\204\350\267\257\350\257\273\344\271\246\347\254\224\350\256\260/index.html" new file mode 100644 index 000000000..e3277d2f7 --- /dev/null +++ "b/p/\345\260\221\346\234\211\344\272\272\350\265\260\347\232\204\350\267\257\350\257\273\344\271\246\347\254\224\350\256\260/index.html" @@ -0,0 +1,12 @@ +《少有人走的路》读书笔记 +

《少有人走的路》读书笔记

简介

《少有人走的路-心智成熟的旅程》这本书据说是畅销多年,经久不衰,在豆瓣上评分很高。不少人纷纷表示此书给自己带来了很多思考和感悟。我是在今年第二遍阅读了此书,之前大约十年前草草看过一遍,印象不够深刻。但今年再读,书中就有很多文字能够读进去了。虽然作者本身对“爱”的定义和解读我并不完全认同,以及作者也许受宗教信仰的影响,在某些观点上有一定的倾向,但都不妨碍这本书给我带来震撼。

笔记

人生苦难重重。

开篇就表达了最基本的设定,让我闭上本来想要抱怨的嘴,不得不跟着往后翻看有没有可以解决的答案。

解决人生问题的关键在于自律。人若缺少自律,就不可能解决任何麻烦和问题。在某些方面自律,只能解决某些问题,全面的自律才能解决人生所有的问题。

在认真看本书之前,我对“自律”的理解还仅限于在生活上严格要求自己,作息规律、遵守诺言、办事靠谱、简约不浪费。但作者显然不仅仅是这个意思,否则也用不着用很大的篇幅来说“自律”。

看一下作者对“自律”的定义。

所谓自律,就是主动要求自己以积极的态度去承受痛苦,解决问题。自律有四个原则:推迟满足感、承担责任、忠于事实、保持平衡。

只有不回避问题、以积极的心态去解决问题,才算作是自律。即便在生活中早睡早起、刻苦读书、勤奋工作,如果遇到问题首先想要逃避,那就不能算是自律。很惭愧,我之前在不少问题上都是以拖延为主要处理方式,本质上还是无法承受或者面对解决问题可能带来的痛苦,那么在读了本书之后,我会有意识地去改变做事原则,就拿上周来说,我终于鼓起勇气去诊所看牙,解决了拖了很久的牙结石问题(虽然智齿还没解决)。

推迟满足感,就是不贪图暂时的安逸,先苦后甜,重新设置人生快乐与痛苦的次序:首先,面对问题并感受痛苦;然后,解决问题并享受更大的快乐。在充满问题和痛苦的人生中,推迟满足感是唯一可行的生活方式。

这个话题不仅仅是在本书中提到过,据说有心理学家做过试验,在一群孩子里面寻找具有“推迟满足感”倾向的人(比如能够先忍住不吃巧克力以获取更大的奖励),结果证明这样的人在后续的生活中取得成功的概率要远高于先吃巧克力的人。本书首先强调这个话题,将其作为自律中的第一个原则,我想是因为道理都是相通的吧。很久之前我看过一篇讲解时间管理的文章,里面提到在规划一天的工作时,优先处理最难的那件事(文章中称“先吃掉那只青蛙”),然后当前的工作会越来越简单,这样的方式跟本书中作者所提倡的“推迟满足感”异曲同工。尽可能的正面问题、提早感受解决问题的痛苦,正是执行自律的首要原则。

不能及时解决自己面临的问题,这些问题就会像山一样横亘在我们心中,阻碍心灵的成长和心智的成熟。很多人显然忽略了这个道理。我们必须面对属于自己的问题,这是解决问题的基本前提。 +指望别人解决自己的问题,也不是明智之举。唯一的办法–我们应该勇敢地说:“这是我的问题,要由我来解决!”

这就牵出了第二个原则–“承担责任”。逃避问题会自然而然的推卸责任,认为这不是自己的问题,始终对于自己扮演的角色缺少清晰的认知。不过作者提到了两种情况“神经官能症”和“人格失调症”,前者属于给自己强加责任,后者属于推卸责任。这么说来,我可能有前者的倾向,很多压力都来源于此。不过作者也提到在复杂的人生道路上,判断自己该为什么事和什么人负责,这是一个永远存在的难题。

还有一种情况是,在有些事情上强加给自己责任,在有些事情上又没有意识到是自己的责任。读到这些章节的时候,我也在反思,当我一旦开始想要抱怨的时候,其实已经陷入“人格失调”和“神经官能”的边缘,要时刻提醒自己,不断评估自己的责任。

忠于事实是自律的第三条原则。如果我们追求健康的生活和心智的成熟,那我们就要坚定不移地遵循这条原则。我们需要实事求是,杜绝虚假。我们越是了解事实,处理问题就越是得心应手。逃避现实的痛苦是人类的天性,只有通过自律,我们才能逐渐克服现实的痛苦,及时修改自己的地图,逐步成长。我们必须忠于事实,尽管这会带来暂时的痛苦,但远比沉湎于虚假的舒适中要好。我们必须忍受暂时的不适感,追求事实而不是假象,并承受这一过程的痛苦。

这让我想到了“诚实”,不仅限于不撒谎(这一点实在是难以做到)。但我很快意识到作者所说的忠于事实比不撒谎更重要的是,面对事实,不可活在自己的想象里。虽然我们每个人都有自己的成见,看事情也很难看到全貌,但是不可做不基于事实的幻想,期望问题会自行消失、期望不付出努力就能得到回报。

你既要承担责任学会推迟满足感,先苦后甜,把眼光放长远,同时又要尽可能过好当前的生活,让人生的快乐多于痛苦。

这就是“保持平衡”,应该是一种“拿捏”吧。为了保持平衡,作者建议,适当的选择“放弃”。包括放弃过时的观念、习惯。王小波在小说中写道:“人生就是一个缓慢被捶的过程。。。”,如果不能适时的放弃一些东西,那很显然这个过程是相当痛苦的。

先写这么多。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\260\261\344\270\215\350\257\264\350\277\231\346\230\257\345\225\245/index.html" "b/p/\345\260\261\344\270\215\350\257\264\350\277\231\346\230\257\345\225\245/index.html" new file mode 100644 index 000000000..41e7de1bf --- /dev/null +++ "b/p/\345\260\261\344\270\215\350\257\264\350\277\231\346\230\257\345\225\245/index.html" @@ -0,0 +1,11 @@ +就不说这是啥 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\267\245\346\254\262\345\226\204\345\205\266\344\272\213\345\277\205\345\205\210\345\210\251\345\205\266\345\231\250/index.html" "b/p/\345\267\245\346\254\262\345\226\204\345\205\266\344\272\213\345\277\205\345\205\210\345\210\251\345\205\266\345\231\250/index.html" new file mode 100644 index 000000000..42529e6d1 --- /dev/null +++ "b/p/\345\267\245\346\254\262\345\226\204\345\205\266\344\272\213\345\277\205\345\205\210\345\210\251\345\205\266\345\231\250/index.html" @@ -0,0 +1,11 @@ +工欲善其事,必先利其器? +

工欲善其事,必先利其器?

当猿猴第一次有目的的拿起石头将骨头劈开的时候,"它"就不再是"它"了,而成了"他"。

能够使用"工具"是人类与一般动物的最基本的区别,这是教科书告诉我们的事情。

"工欲善其事,必先利其器。"这句话很长时间都被我作为msn签名,也充分说明了工具在我生活中的重要性。

当然这儿说的工具是一个广义上的概念,它可以指硬件也可以指软件。但是,我现在对于工具的使用却有了新的看法。

因为我觉得工具使我的大脑退化了,以前好使的功能现在都不太好用了(比如:记忆力、创造力等)。

写到这儿,我发现我这次的话题起的有点儿大,发些感慨而已,说到哪儿是哪儿吧。 

因为最近(其实早就有感觉)我越来越觉得对某些工具产生了严重依赖,

比如:计算机、手机、Internet。有时候甚至搞不清究竟是在驾驭工具还是在被工具驾驭。

前一段时间我看了一本关于高效率工作的书,按照书中的指点,慢慢养成了将工作事务都提前安排进"日程表"的习惯,感觉效率貌似提高了一些,但是造成的副作用就是,我的记忆力严重下降。

人们常说:"好记性不如烂笔头",我看则不然,在我没用"烂笔头"的时候,我的记性还是挺好,约会什么的一般不会忘记,现在惨了,当我习惯于把事务用"烂笔头"记下来时,就连"下班后买俩包子"这点儿破事儿如果不写下来就会忘记。

关于电话号码的记忆也是,以前没用手机的时候,我可以记住几十个电话号码,现在连自己的电话号码都得翻手机的电话薄来查找了。

 现在,每天打开电脑第一件事儿就是把浏览器打开,收邮件,安排日程事务,借助google提供的日历功能安排好一天的工作,然后把工作内容同步到手机上,这样整个人都"信息化"了,看似有条不紊的工作,实际上,我已经牢牢地被这些所谓"高科技"拴住了。

什么?万一哪天这些东西消失了?

后果很难想象,想一下就能冒出一身冷汗。

当然也有哥们幻想着有一天能过上"不插电"的生活,我觉得他也只能是想想而已,失去这些把我们宠坏的工具,将会像一只丧家犬那样的失魂落魄。本来打算来一篇长篇大论,发现越说越远,只好虎头蛇尾了。

不能再多说了,因为我的"日程表"提醒我该去吃饭了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\267\246\346\222\207\345\255\220/index.html" "b/p/\345\267\246\346\222\207\345\255\220/index.html" new file mode 100644 index 000000000..f85feeee6 --- /dev/null +++ "b/p/\345\267\246\346\222\207\345\255\220/index.html" @@ -0,0 +1,11 @@ +左撇子 +

左撇子

作为一个天生的左撇子,我除了写字用右手之外,拿筷子,切菜,投篮,羽毛球,乒乓球,台球,包括用鼠标都是用左手。

其实最早的时候我连写字都是用左手的(右手只会扔板砖),只是后来被家长逼着换成了右手,这样直接导致的一个后果是,我的字写的很烂,除了自己的名字写的还勉强能看之外,其他汉字都写得潦草的像鸡挠一样。

平时也还有很多郁闷的事儿,比如我坐地铁,左手拿着卡在通道上一刷,嗒的一声,我正前方的门没开,左侧通道的门开了,还得蹬蹬蹬转过去。

为什么想起左撇子这件事儿呢,因为今天考试的时候需要拿起多年不用的笔来写一篇论文,论文写的烂不说,关键是字写得实在是不堪入目,想来想去除了怪我练字不够努力之外,也只能怪我当时没有坚持用左手写字了,只是,令人尴尬的是,我左手写的比右手写的还难看。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\267\256\347\202\271\346\262\241\345\207\272\345\267\256/index.html" "b/p/\345\267\256\347\202\271\346\262\241\345\207\272\345\267\256/index.html" new file mode 100644 index 000000000..3943dac38 --- /dev/null +++ "b/p/\345\267\256\347\202\271\346\262\241\345\207\272\345\267\256/index.html" @@ -0,0 +1,11 @@ +差点没出差 +

差点没出差

由于项目的需要,下周需要我出差,本来出去散散心也挺爽的,只是我担心我的跑步计划会搁浅一段时间,因为到了现场就没时间去跑步了,就算不整天调程序也没有跑步的地方,总不能在大马路上伸着舌头撵公交吧。

但是,计划没有变化快,由于北京这边又有优先级更高的活儿,所以,暂时不用出差了,哦也。

ps:今日天气(我估计的),晴间多云,风力2、3级转4、5级,最高温度20度(室内)最低温度0度,跑步指数:3(★★★☆☆)适宜跑步。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\271\263\350\241\214\345\256\207\345\256\231/index.html" "b/p/\345\271\263\350\241\214\345\256\207\345\256\231/index.html" new file mode 100644 index 000000000..d1835eb93 --- /dev/null +++ "b/p/\345\271\263\350\241\214\345\256\207\345\256\231/index.html" @@ -0,0 +1,11 @@ +平行宇宙 +

平行宇宙

肯定有过这样的经历,有一样东西(通常是个小东西,电冰箱什么的不算)翻箱倒柜地找不到,过一段时间你突然发现这个东西出现在某个地方,而那个地方当时已被你掘地三尺了。

有人说这是眼睛欺骗了大脑,或者是大脑欺骗了眼睛,但我更相信另一个比较科幻的说法—-平行宇宙。

按照平行宇宙的说法,我们生活的宇宙不是唯一的宇宙,另外还有无数个和咱们的宇宙差不多的宇宙,无数个宇宙里自然就有无数个你我,每一个重大事件的发生都会导致当前的宇宙分裂出与之平行的另一个宇宙来,我没有瞎掰,科学家也是这么说的,不过我感觉他们是有点儿瞎掰。

刚才我翻箱倒柜也找不到我的吉他拨片了,我记得很清楚就在一个放有调音笛的小盒子里,打开一看没有,出去干点儿别的,再回来,发现果然在小盒子里。

所以我宁愿相信这个拨片刚才有一阵子进入了另一个宇宙。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\272\212\345\244\264\347\232\204\347\224\265\347\243\201\346\263\242/index.html" "b/p/\345\272\212\345\244\264\347\232\204\347\224\265\347\243\201\346\263\242/index.html" new file mode 100644 index 000000000..962df1528 --- /dev/null +++ "b/p/\345\272\212\345\244\264\347\232\204\347\224\265\347\243\201\346\263\242/index.html" @@ -0,0 +1,11 @@ +床头的电磁波 +

床头的电磁波

有相当长的时间,我的手机都是24小时开机的。

不过我有一个坏习惯,把手机放在枕边当闹钟,半夜醒来也好看时间。后来关于手机电磁波辐射的说法越来越多,导致我产生了一定的心理阴影,总感觉电磁波正在滋滋地穿过我的脑袋。

后来就到睡觉时就把闹钟关掉了,然后早晨再起来开机把闹铃叫醒。

不过现在用的手机支持关机闹铃,即使关机状态也可以很负责任地把我叫醒。

剩余的问题是,夜里醒来不太容易看时间,开手机太费劲,爬起来到客厅看时间又太远,有人出个馊主意说:起来“演奏”一会儿乐器,邻居们就会大声告诉我现在是什么时间了。

不过我觉得这个方法不太可取,万一他们的手机也关机了咋办。

想来想去,我还是觉得应该在床头放一个真正的闹钟,可以很方便看时间的那种,最好能发出幽幽地蓝光(不是绿光)。

刚才我发现了这个,感觉挺合适的,就是目前还买不到。

啧啧,可惜啊。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\272\224\350\200\201\345\251\206\345\244\247\344\272\272\350\246\201\346\261\202\347\273\247\347\273\255\345\206\231\345\215\232/index.html" "b/p/\345\272\224\350\200\201\345\251\206\345\244\247\344\272\272\350\246\201\346\261\202\347\273\247\347\273\255\345\206\231\345\215\232/index.html" new file mode 100644 index 000000000..6f940bd7d --- /dev/null +++ "b/p/\345\272\224\350\200\201\345\251\206\345\244\247\344\272\272\350\246\201\346\261\202\347\273\247\347\273\255\345\206\231\345\215\232/index.html" @@ -0,0 +1,11 @@ +应老婆大人要求,继续写博 +

应老婆大人要求,继续写博

刚才老婆短我,问我为啥博客不再更新了,并表示期待看到我继续更新此博客。

本来,对网络环境十分失望,写了博客也无法正常访问,养成写博客的习惯也慢慢丢弃。

有心不再更新livespace的博客而专心使用blogspot,无奈blogspot长期被挡在墙外,老婆大人当然无法访问,而老婆通常又是我博客的VIP读者,所以,既然老婆要求我仍然在此唠叨,那就继续在此更新吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\272\224\350\257\245\350\207\252\345\267\261\345\212\250\346\211\213\345\201\232\344\270\200\344\272\233\344\270\234\350\245\277\344\272\206/index.html" "b/p/\345\272\224\350\257\245\350\207\252\345\267\261\345\212\250\346\211\213\345\201\232\344\270\200\344\272\233\344\270\234\350\245\277\344\272\206/index.html" new file mode 100644 index 000000000..0ed6e9180 --- /dev/null +++ "b/p/\345\272\224\350\257\245\350\207\252\345\267\261\345\212\250\346\211\213\345\201\232\344\270\200\344\272\233\344\270\234\350\245\277\344\272\206/index.html" @@ -0,0 +1,11 @@ +应该自己动手做一些东西了 +

应该自己动手做一些东西了

学会制造和使用工具应该是人类区别于其他物种的最重要的一项区别,所以DIY应该是一种原始的冲动。每个男人都应该有一个属于自己的工具箱,或者更近一步,一个工作台。

据说德国的制造工业之所以发达就是因为人家从小就培养和锻炼孩子的动手能力,几乎每个家庭都拥有全套的机械维修设备,小孩从几岁开始就趴在旁边看老爸在那儿捣鼓各种东西,骨子里就渗透了DIY的文化。

这方面中国男人明显做的比较差一些(咱们当然也有高手,但从比例上来说还是太少了),一方面可能是因为从小所接受的教育比较注重理论文化知识、轻视实际操作能力,另一方面也可能是我们的人力相对廉价,有什么事情直接找专业工人搞定,老外的人工费用太高,动不动就找人做的话肯能花钱比较心疼。

我身边认识的人也有比较能动手折腾的,但他们很少因为这样的技能而得到尊重,最后往往沦为一个免费修理工。不过也没关系,动手折腾带来的乐趣本身比什么都重要。

最近偶然在网上看到DIY达人上传的自制机器人的视频,发现了更大的世界,原来有这么多喜欢动手DIY的人啊,赶紧去Youtube搜索一下,结果搜到大量视频,小到使用打火机制作迷你喷壶,大到在自己家后院架设完整的游乐场过山车。看过之后,赞叹和羡慕之余,感觉竟然还有些蠢蠢欲动。

以前也喜欢动手修理一些东西,尝试制作过纸箱收音机之类的玩意儿,但随着年龄的增长,逐渐失去动手的机会和时间,以至于现在几乎彻底丧失了此类能力。

所以呢,行动最重要,既然喜欢自己做一些东西,那不妨先从丰富和建设自己的工作台开始,然后一边鼓捣软件,一边鼓捣硬件吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\274\200\345\247\213\344\275\277\347\224\250windows7/index.html" "b/p/\345\274\200\345\247\213\344\275\277\347\224\250windows7/index.html" new file mode 100644 index 000000000..339fe739f --- /dev/null +++ "b/p/\345\274\200\345\247\213\344\275\277\347\224\250windows7/index.html" @@ -0,0 +1,11 @@ +开始使用windows7 +

开始使用windows7

单位机器上的xp已经装了2年了,昨天终于无法忍受越来越慢的速度(关键是office软件坏了,无法修复),决定重装系统,进来win7挺火,装一个试试看,RC版的,可以显示中文但界面为英文,无所谓了,先试用几天再说。希望能取代xp。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\274\200\345\247\213\347\273\203\344\271\240/index.html" "b/p/\345\274\200\345\247\213\347\273\203\344\271\240/index.html" new file mode 100644 index 000000000..4a916ae6e --- /dev/null +++ "b/p/\345\274\200\345\247\213\347\273\203\344\271\240/index.html" @@ -0,0 +1,11 @@ +开始练习 +

开始练习

我是一个没有恒心的人,需要恒心的事情我没有坚持下来的。

长跑﹑写字﹑外语﹑弹琴,等等这些都没有坚持下来,理由多种多样,太累了,没时间,没天分。

这些事情我常常去想,我要是能够从开始坚持到现在,那该多好?

前两天看了些关于时间管理方面的书,方法千变万化,工具五花八门,但核心思想只有一个——有梦想,并且坚持下来。

没有什么能够一蹴而就的,我要慢慢练习。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\274\200\345\271\225\345\274\217\351\202\243\345\244\251\344\275\277\347\224\250\345\223\252\347\247\215\347\202\271\347\201\253\346\226\271\345\274\217/index.html" "b/p/\345\274\200\345\271\225\345\274\217\351\202\243\345\244\251\344\275\277\347\224\250\345\223\252\347\247\215\347\202\271\347\201\253\346\226\271\345\274\217/index.html" new file mode 100644 index 000000000..432931cd4 --- /dev/null +++ "b/p/\345\274\200\345\271\225\345\274\217\351\202\243\345\244\251\344\275\277\347\224\250\345\223\252\347\247\215\347\202\271\347\201\253\346\226\271\345\274\217/index.html" @@ -0,0 +1,11 @@ +开幕式那天,使用哪种点火方式? +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\275\222\345\216\273\346\235\245/index.html" "b/p/\345\275\222\345\216\273\346\235\245/index.html" new file mode 100644 index 000000000..edd54352b --- /dev/null +++ "b/p/\345\275\222\345\216\273\346\235\245/index.html" @@ -0,0 +1,27 @@ +归去来 +

归去来

雨后的空气格外清新,天气还没有完全放晴,乡间的柏油路上还是湿的,远处缓缓驶来一辆摩托车,骑车的人叼着烟,看起来懒洋洋的,十分惬意,没错,那就是我。

我这几天回老家了,这个机会十分难得,暂时逃开北京繁忙的工作,溜回老家,无拘无束,自由自在。

目光所及,尽是农田。

空气中还飘散着青草混合大粪的味道,也算是沁人心脾吧。

1
+2
+3
+4
+5
+6
+7
+8
+
别再徘徊沉寂的心灵
+别再留恋破碎的回忆
+大地迎春雷抛弃你满腹的忧虑
+缤纷的彩虹等着你
+别再犹豫等待的心湖
+别再沉迷过去的旧梦
+暖暖的春风走向那灿烂的天涯路
+耀眼的阳光迎着你。
+
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\276\210\344\271\205\346\262\241\346\211\223\347\220\203\344\272\206\345\207\206\345\244\207\346\230\216\345\244\251\346\211\223\347\220\203\345\216\273/index.html" "b/p/\345\276\210\344\271\205\346\262\241\346\211\223\347\220\203\344\272\206\345\207\206\345\244\207\346\230\216\345\244\251\346\211\223\347\220\203\345\216\273/index.html" new file mode 100644 index 000000000..655265275 --- /dev/null +++ "b/p/\345\276\210\344\271\205\346\262\241\346\211\223\347\220\203\344\272\206\345\207\206\345\244\207\346\230\216\345\244\251\346\211\223\347\220\203\345\216\273/index.html" @@ -0,0 +1,11 @@ +很久没打球了,准备明天打球去 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\276\256\346\263\242\347\202\211/20071110-1.png" "b/p/\345\276\256\346\263\242\347\202\211/20071110-1.png" new file mode 100644 index 000000000..6f0611aca Binary files /dev/null and "b/p/\345\276\256\346\263\242\347\202\211/20071110-1.png" differ diff --git "a/p/\345\276\256\346\263\242\347\202\211/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_120x120_fill_box_smart1_3.png" "b/p/\345\276\256\346\263\242\347\202\211/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..29d2f1d7c Binary files /dev/null and "b/p/\345\276\256\346\263\242\347\202\211/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\345\276\256\346\263\242\347\202\211/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_1600x0_resize_box_3.png" "b/p/\345\276\256\346\263\242\347\202\211/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_1600x0_resize_box_3.png" new file mode 100644 index 000000000..4ac7a7e2d Binary files /dev/null and "b/p/\345\276\256\346\263\242\347\202\211/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_1600x0_resize_box_3.png" differ diff --git "a/p/\345\276\256\346\263\242\347\202\211/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_800x0_resize_box_3.png" "b/p/\345\276\256\346\263\242\347\202\211/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_800x0_resize_box_3.png" new file mode 100644 index 000000000..956f3c018 Binary files /dev/null and "b/p/\345\276\256\346\263\242\347\202\211/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_800x0_resize_box_3.png" differ diff --git "a/p/\345\276\256\346\263\242\347\202\211/index.html" "b/p/\345\276\256\346\263\242\347\202\211/index.html" new file mode 100644 index 000000000..96a995fe8 --- /dev/null +++ "b/p/\345\276\256\346\263\242\347\202\211/index.html" @@ -0,0 +1,11 @@ +微波炉 +
Featured image of post 微波炉

微波炉

画图板–由sbabybird于11/10/200703:31:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\276\256\346\263\242\347\202\211\347\232\204\345\275\261\345\223\215/index.html" "b/p/\345\276\256\346\263\242\347\202\211\347\232\204\345\275\261\345\223\215/index.html" new file mode 100644 index 000000000..ebd25f142 --- /dev/null +++ "b/p/\345\276\256\346\263\242\347\202\211\347\232\204\345\275\261\345\223\215/index.html" @@ -0,0 +1,11 @@ +微波炉的影响 +

微波炉的影响

无论厂家如何吹嘘,微波炉的电磁辐射泄漏都是挺严重的。

以前不觉得,认为把它关严实就不会有微波跑出来,所以一边加热食物,一边在跟前等着。

这几天我喜欢拿着笔记本在餐桌旁上网,刚才开动了一下微波炉,我的笔记本立即就连不上无线网络了,我差点以为是我打开的网页内有敏感词,后来才发现是微波炉辐射的影响,看来以后得注意些,不能在开启的微波炉边上上网啦。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\277\230\346\216\211gtd\345\277\230\346\216\211\346\211\200\350\260\223\347\232\204\351\253\230\346\225\210\344\271\240\346\203\257/index.html" "b/p/\345\277\230\346\216\211gtd\345\277\230\346\216\211\346\211\200\350\260\223\347\232\204\351\253\230\346\225\210\344\271\240\346\203\257/index.html" new file mode 100644 index 000000000..3bb068c2a --- /dev/null +++ "b/p/\345\277\230\346\216\211gtd\345\277\230\346\216\211\346\211\200\350\260\223\347\232\204\351\253\230\346\225\210\344\271\240\346\203\257/index.html" @@ -0,0 +1,11 @@ +忘掉GTD、忘掉所谓的高效习惯 +

忘掉GTD、忘掉所谓的高效习惯

一口气看完了三本《搞定》系列,我突然“顿悟”了,我意识到,根本不存在所谓的“时间管理”,在脱离了对自己目标清晰认知的前提下,任何时间管理的方法都是毫无意义乃至浪费时间的。

然而虽然很多教授方法的书籍里面也提到了这一点,却无一告诉读者如何对自己的目标找到清晰的认知。

无论是否学习过各种时间管理或精力管理的技巧,每个人实际上已经自成体系有了一套多年来摸索出来的方法,应对自身的工作、生活、欲望,出于对效率的无尽追求,不断贪心想要提升,人们发明了各种方法来管理时间,有简单的也有复杂的,这些方法没有例外,都是在告诉人们一件事情,那就是如果你的方法得当,所有的事情都可以有效掌控,你的人生最后可以变成一张写在纸上的待办清单。然而事实呢,恰恰相反,可控的永远是少数,未知远远大于已知,以有限的精力与未知做斗争无异于以卵击石,到头来弄个筋疲力竭,垂头丧气,改去寻找其他的方法,岂不知出发点就是错误的。

不如换个思路,放弃对方法的追求,去思考一些本质上的东西。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\277\231\351\207\214\345\201\267\351\227\262\345\206\231\345\215\232\345\256\242/index.html" "b/p/\345\277\231\351\207\214\345\201\267\351\227\262\345\206\231\345\215\232\345\256\242/index.html" new file mode 100644 index 000000000..3c9ae97ab --- /dev/null +++ "b/p/\345\277\231\351\207\214\345\201\267\351\227\262\345\206\231\345\215\232\345\256\242/index.html" @@ -0,0 +1,11 @@ +忙里偷闲写博客 +

忙里偷闲写博客

刚写完了一篇文档,绞尽脑汁,换换脑子,上来唠叨两句。

这两天又尝试着使用evernote管理笔记,界面华丽,功能强劲,赏心悦目,就是太耗资源了。

勉强能在小笔记本上跑,输入中文的时候还吭哧吭哧的。本打算以后就直接在上面写日志,发了两篇测试,效果很不理想。

放弃。发现我的共享空间又不能访问了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\345\277\253\346\215\267\351\224\256/index.html" "b/p/\345\277\253\346\215\267\351\224\256/index.html" new file mode 100644 index 000000000..38ba62651 --- /dev/null +++ "b/p/\345\277\253\346\215\267\351\224\256/index.html" @@ -0,0 +1,11 @@ +快捷键 +

快捷键

快捷键说实话我真的很担心未来计算机会像某些专家鼓吹的那样,完全没有键盘,而是通过语音或者眼神和人进行交流。我觉得可以没有鼠标,但是不能没有键盘。

记得大学的时候,有一次我的显示器坏了,我只好凭记忆的感觉通过对键盘的操作来听歌﹑"看"电影等,大概过了一个星期,发现即使没有显示器也可以做很多事情,这件事儿让我对键盘产生了很严重的偏爱。

我喜欢去记各个程序的快捷键,不是故意去记的,而是下意识的。

无论是简单的快速搜索还是宏替换,再或者是复杂的组合按键我都烂熟于胸。

还有比较偏门的,比如xp关机时按shift会出现休眠按钮等。

所已我一想到快捷键脑子里就会飞过一片一片的写着按键的字符串,都是对各个软件的快捷操作,擦都擦不掉。能用键盘操作的还是用键盘吧,否则总会有一只手徘徊在键盘和鼠标之间(上网斗地主除外),长此以往手腕真会受不了。

所以,我特别喜欢的软件都是提供了强大的快捷键功能的,totalcommander方便的操作使人上瘾,gmail和greader里的快捷键让人中毒,vim咒语般的命令叫人忘记鼠标的存在。

就说这么多吧,快到家了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\200\200\345\277\265win98/index.html" "b/p/\346\200\200\345\277\265win98/index.html" new file mode 100644 index 000000000..3a3dc6607 --- /dev/null +++ "b/p/\346\200\200\345\277\265win98/index.html" @@ -0,0 +1,11 @@ +怀念win98 +

怀念win98

好友终于无法忍受vista的龟速,将笔记本自带的系统干掉新装了一个windowsxp系统,托我用ghost把系统备份一下,以备不时之需。

自从转到linux阵营之后,我很少用到ghost了,去网上找了个"一键ghost系统"把他的系统做了个备份。

发现现在的ghost软件做的已是十分的人性化了,一路next即可,完全不要用户操心,傻瓜化操作。想起我大学那阵子用的win98系统,那时还没有ghost类的软件,而98又很不稳定,所以我基本上每周都要重装一次系统,同宿舍的哥们,每到周末都能看见我趴在电脑前重装系统(步骤很简单,FormatC:、Setup)。

我想,我的偏执狂性格就是那时候养成的吧,一年下来,25位的windows98序列号我竟然背了下来。

win98给我印象最深的就是"蓝天白云"了,前两天在网上看到有志同道合的网友收藏的win98启动画面,其中就有这张经典的"蓝天白云"。

后来,我误入歧途,对win98的操作技巧十分着迷,就连win98的启动画面也给改的面目全非(比如在启动时写上女朋友的名字),现在,这些曾经让我乐此不疲的"秘籍"已经变得一文不值。

提到win98就不能不提它那经典的"蓝屏",当程序死机或者非法操作时,它总是跳出来,搞得我的心扑腾扑腾乱跳。

加上那时我的英文水平实在有限,屏幕上的大串英文字母对我来说与乱码无异,蓝屏的次数多了,也就预示着我又要重装系统了。

win98下打游戏很爽,我打电脑游戏的时代也基本上就是大学那几年,星际争霸、红警、剑侠情缘、大菠萝2、极品飞猪(车)5,这些游戏在我的赛扬600下跑的也很顺畅,目前的硬件配置拿到我的大学时代能把人美死(不美死也吓死),可是我已经基本没心思再打游戏了。

大学快毕业的时候,windowsxp横空出世,我终于忍不住诱惑,装了一个英文版(那时还没出中文破解版),谁知,xp竟不由分说(也许是说了,我没看懂)把我的C盘给格式化成了NTFS格式,当我新鲜劲儿一过,想要再重装win98时,由于在DOS下无法识别NTFS磁盘,导致我误把D盘给格式化了,几年的积累化为乌有,气得我在床上跳来跳去,疯了一样。

现在,虽然硬件飞速的发展,内存都快有那时的硬盘大了,可是随着操作系统越来越臃肿,感觉计算机的速度却没有多大提升,仍然要启动老半天,打开一个word文档还是磨磨叽叽的。

有时候不禁要想,拼命的升级硬件、换代计算机,究竟有什么意义?

算了,不说了,洗洗睡吧,与其说是有点儿怀念win98,倒不如说是想念那一段"纯洁的"求学的时光,这个话题一旦摊开来说就唠远了,还是就此打住吧。

ps:我发现写博客固然很爽,但是往往勾起人的回忆,而回忆呢,又往往是美好滴,一美好就难免会想抽根烟,看来我也要"珍惜生命,远离博客"了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\200\216\346\240\267\344\275\277\347\224\250vc6\347\232\204\350\277\234\347\250\213\350\260\203\350\257\225/index.html" "b/p/\346\200\216\346\240\267\344\275\277\347\224\250vc6\347\232\204\350\277\234\347\250\213\350\260\203\350\257\225/index.html" new file mode 100644 index 000000000..f99b96022 --- /dev/null +++ "b/p/\346\200\216\346\240\267\344\275\277\347\224\250vc6\347\232\204\350\277\234\347\250\213\350\260\203\350\257\225/index.html" @@ -0,0 +1,11 @@ +怎样使用VC6的远程调试 +

怎样使用VC6的远程调试

今天遇到一个问题,我们的程序在本地执行一切正常,但在售后的一台笔记本电脑中却无法启动且爆出runtimeerror。

无奈只有通过调试来查找问题所在,由于该笔记本并未安装开发环境,于是想到了VC6的远程调试。上网翻看资料,写的都不太详细,摸索半天终于成功,并通过远程调试搞定了程序的问题。

现将远程调试的详细操作记录下来以备忘。

1、需机器两台:一台为调试机(装有VC6开发环境),一台为客户机(运行程序)

2、假定客户机的ip地址为192.168.0.168

3、假定需要运行调试的程序放在客户机的C\emote_bin\emote_test.exe

4、共享客户机C:\emote_bin文件夹,并开放所有权限(读、写),共享名为remote_bin;

5、在调试机上映射客户机remote_bin共享目录为"Z"盘(可在cmd中执行"netusez:\\192.168.0.168\emote_bin") 

6、拷贝调试机上VC6安装目录下的Bin目录中的全部内容到客户机任意位置(该目录在调试机的路径一般为"C:\ProgramFiles\MicrosoftVisualStudio\COMMON\MSDev98\Bin"),在此假定拷贝在客户机的"C:\Debugger" 

7、在客户机运行"C:\Debugger\MSVCMON.exe",启动后再对话框上直接点击"Connect"按钮(不用点"Setting"按钮),期间如有防火墙告警提示,需允许该程序。 

8、回到调试机,打开VC6并打开要调试的工程文件(再此为remote_test),在VC6的"Build"菜单下点击"DebuggerRemoteConnection",在弹出的对话框左侧选择"NetWork(TCP/IP)",点击右侧"Setting"按钮,填入客户机ip地址(192.168.0.168)点击"ok" 

9、点击VC6的"Project"菜单下"Setting",切换到Link页面,在Outputfile中填入"Z:\emote_test.exe",切换到Debug页,在Executablefordebugsession中填入"Z:\emote_test.exe",在Remoteexecutablepathandfilename中填入"C:\emote_bin\emote_test.exe"(注意:此行甚为重要,需填写程序在客户机的完整路径) 

10、大功告成,按F7编译可执行文件,按F5开始远程调试吧!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\200\216\346\240\267\346\210\220\344\270\272\344\270\200\344\270\252\346\227\240\350\266\243\347\232\204\344\272\272/index.html" "b/p/\346\200\216\346\240\267\346\210\220\344\270\272\344\270\200\344\270\252\346\227\240\350\266\243\347\232\204\344\272\272/index.html" new file mode 100644 index 000000000..ac799d4cf --- /dev/null +++ "b/p/\346\200\216\346\240\267\346\210\220\344\270\272\344\270\200\344\270\252\346\227\240\350\266\243\347\232\204\344\272\272/index.html" @@ -0,0 +1,11 @@ +怎样成为一个无趣的人 +

怎样成为一个无趣的人

我的偶像,王小波(一个会写小说的程序员)曾经说过(歌词大意吧,记不清了):此生梦想不过是遇见一些有趣的人,经历一些有趣的事儿。上周有篇讲解关于如何成为有趣的人的文章还比较火,承蒙QC抬爱,还在朋友圈艾特了我,实在惭愧。我觉得,成为有趣的人挺难的,但是成为无趣的人确很简单,我可以“谈谈方法”。

  1. 放弃爱好。成年人的压力很大,所以要赶紧放弃那些幼稚的爱好,把那些能够从本质上给你带来快乐的东西都抛开,然后你就有精力去做那些让这个世界变得更无趣的事情了。

  2. 做事前先衡量投入与收益比。要知道,无趣的人的时间通常很宝贵,所以千万别做那些投入与收益不成比例的事情,要学着用功利(别查了,这是一个中性词)的心态去判断事情的重要性,哪怕是读本书也要先评估一下是否对自己有利、能否在自己做那些无趣的事情时产生作用。

  3. 做“有意义”的事情。身为一个无趣的人,千万不能做那些“毫无意义”的事情,比如浪费时间去考据鸡汤文学的发展史、分析周杰伦的歌词里是否表达过对蔡依林的好感、花时间研究vim的配置等等。你的时间应该全部用于做那些“有意义”的事情,要随时准备奋斗,脑子里要随时浮现那些成功人士的奋斗事迹,从而去激励自己,要发誓看到洛杉矶的每一个凌晨,不能停歇。

  4. 不看“闲书”。虽然说开卷有益,但是你最好还是多读工具书吧,去读那些别人总结好的精华,最好是全是答案的东西,脑洞大开的小说实在是浪费时间,人的大脑容量有限,还是装那些更有用的东西吧,如果你看书的话,尽量别看“闲书”吧。

  5. 拒绝新鲜事物。向当年被李斯焚书坑儒的那些老家伙们多学习,守住信条,老祖宗都没做过的事情,千万别做。

  6. 消费,而不是创造。消费那些有趣的人创造的东西,别想着自己去做些东西,反正你节省的时间和金钱让你可以有资本这么做。

如果以上这些你都做到了,请受我一拜,然后可以去死了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\200\216\346\240\267\346\233\264\351\253\230\346\225\210\347\232\204\345\267\245\344\275\234/index.html" "b/p/\346\200\216\346\240\267\346\233\264\351\253\230\346\225\210\347\232\204\345\267\245\344\275\234/index.html" new file mode 100644 index 000000000..64bad5e48 --- /dev/null +++ "b/p/\346\200\216\346\240\267\346\233\264\351\253\230\346\225\210\347\232\204\345\267\245\344\275\234/index.html" @@ -0,0 +1,11 @@ +怎样更高效的工作 +

怎样更高效的工作

高效工作比努力工作更重要,你80%的工作成果是由你20%的工作时间完成的,所以说经常总结并提高自己的工作效率比辛苦工作本身更重要,提升了效率也就节约了时间,同样的工作强度和时间,能完成更多的事情,实现更大的目标。

总结一下我认可的高效习惯。

1、每天睡眠7~8个小时。睡眠不足是所有导致效率低下因素中占比最重的,很多人抱怨白天浑浑噩噩,忙活了一整天感觉也没干啥,很可能就是因为没睡好,看似花费了更多时间,实际上是浪费。

2、不要熬夜工作,将重点工作放在早上5点到10点之间,而不是晚上10点以后。很多人宣称自己最高效的时间是在后半夜,因为那时比较安静,不被打扰。但是也看个人的习惯,如果熬夜后导致第二天白天几乎无法做事情,那还不如不熬。早晨的时间是一天中最清醒的时候,所以上午10点之前将重要的事情做完,会在一天的工作中越来越轻松。

3、不要多任务(多线程),每次集中精力做一件事情。人的大脑不是计算机,人类非常不擅长执行多任务,同一时刻只能注意一件事情,而且注意力切换非常消耗资源(不像计算机的线程切换),所以一次只做一件事情比同事开展多个事情效率要好很多。

4、多进行短暂休息,每半个小时休息5分钟。这个与工作内容相关,如果像那种需要灵感类的工作,可能灵感来了刹不住,不舍得休息,但是大部分时候,需要让脑子过一段时间就稍微歇一歇,但不要太长,喝杯水,几分钟即可。

5、打包同类工作。批量处理同类型工作,比如一天之中给自己安排出固定时间段处理电子邮件的回复、客户电话的沟通等等。

6、给自己的待办事项设立截至期限。给所有的待办事项设立一个截止期限可以有效防止拖延,防止因为迟迟不开始而导致的效率低下。

7、关注工作成果,而不是工作时间。衡量工作做得好不好不是看花费了多少时间在上面,而是结果如何,所以不要沉浸在自己在一件事情所花费了多少时间带来的安慰假象中,应该衡量每一份努力的结果,如果成果无效或不符合预期,就需要及时修正。

8、给自己设立一套启动工作的仪式(可快速进入状态)。这个也是用于对付拖延症的,很多人在进行正式工作之前往往迟迟不能开始,刷刷微博、微信,看看新闻,可能就1个小时过去了,可以考虑给自己设立一套进入正式工作的小仪式,比如关闭浏览器、带上耳机、喝口水,等一系列动作,这样养成习惯之后,可以在做完这套动作后很快进入状态。

9、哪怕时间再紧迫,每天也要留出做计划的时间。做事之前先计划,将过程现在脑海里过一遍,并对结果有个预期,能很大程度提升成功的概率,所以说无论多么繁忙,每天也要抽出哪怕十分钟的时间来考虑接下来的行动计划,比到时候临场发挥要靠谱的多。

10、相信自己能做到。以上那么多方法层面的东西,如果缺少自信和自制力都是没有什么卵用的,无论做什么事情,开始之前你得相信自己,可以做到,然后你就真的能做到,然后你就越来越高效了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\200\273\346\234\211\344\272\233\344\272\213\346\203\205\350\256\251\344\275\240\346\204\237\345\210\260\346\262\256\344\270\247/index.html" "b/p/\346\200\273\346\234\211\344\272\233\344\272\213\346\203\205\350\256\251\344\275\240\346\204\237\345\210\260\346\262\256\344\270\247/index.html" new file mode 100644 index 000000000..533ac81be --- /dev/null +++ "b/p/\346\200\273\346\234\211\344\272\233\344\272\213\346\203\205\350\256\251\344\275\240\346\204\237\345\210\260\346\262\256\344\270\247/index.html" @@ -0,0 +1,11 @@ +总有些事情让你感到沮丧 +

总有些事情让你感到沮丧

今天看到一组新闻,里面总结了发生在2008年度的有趣而又真实的事件,其中有一条,我觉得非常真实:"一个男人在暴风雪的芝加哥街头奋力铲雪一个小时,终于给自己的车清出了一个停车位。

当他把车开来时,发现一位女士已经抢了他的位置——可以理解,他朝她开了一枪,把她干掉了。

"说实在的,对此男士,我表示十分的理解,我可以理解这个家伙能有多么的沮丧。

今天晚上去"敦煌老马家"吃面的时候,发现比我后到的客人都吃完了,而我的还没端上来时,我才发现原来做面的师傅把我这碗忘了,这个时候我有了和上面那个哥们儿一样的感觉,只是咱们国家不允许带枪而已。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\201\220\346\200\226\347\232\204\350\266\205\345\270\202/index.html" "b/p/\346\201\220\346\200\226\347\232\204\350\266\205\345\270\202/index.html" new file mode 100644 index 000000000..c32e3e386 --- /dev/null +++ "b/p/\346\201\220\346\200\226\347\232\204\350\266\205\345\270\202/index.html" @@ -0,0 +1,11 @@ +恐怖的超市 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\203\263\345\207\272s60\350\275\257\344\273\266\347\255\276\345\220\215\346\234\272\345\210\266\347\232\204\345\256\266\344\274\231\350\204\221\345\255\220\344\270\200\345\256\232\346\230\257\350\242\253\351\251\264\350\270\242\344\272\206/index.html" "b/p/\346\203\263\345\207\272s60\350\275\257\344\273\266\347\255\276\345\220\215\346\234\272\345\210\266\347\232\204\345\256\266\344\274\231\350\204\221\345\255\220\344\270\200\345\256\232\346\230\257\350\242\253\351\251\264\350\270\242\344\272\206/index.html" new file mode 100644 index 000000000..721f05a7b --- /dev/null +++ "b/p/\346\203\263\345\207\272s60\350\275\257\344\273\266\347\255\276\345\220\215\346\234\272\345\210\266\347\232\204\345\256\266\344\274\231\350\204\221\345\255\220\344\270\200\345\256\232\346\230\257\350\242\253\351\251\264\350\270\242\344\272\206/index.html" @@ -0,0 +1,11 @@ +想出s60软件签名机制的家伙脑子一定是被驴踢了 +

想出s60软件签名机制的家伙脑子一定是被驴踢了

前一阵子突然想玩玩在手机上写程序,以前也写过j2me的,这次图个新鲜就挑了pythonfors60,还算比较容易掌握,于是就随便写了个帮助我自己查话费余额以及gprs流量的小程序,基本能用,后来由于太忙就懒得再完善了,随便打个包装在我的e71上了事。

前几天老婆也让我给她装个这样的程序,我才发现问题所在,我没有开发者证书(这个据说要掏钱向nokia购买),打包成的sis安装程序在破解过的手机上可以随便装,但是没破的就无法安装了,而以一个普通用户的水平,诸如这些申请证书、软件签名、高权限、破解等几乎无法独立完成,甚至无法理解。

靠,把话题扯远一些,再说说nokia提供的开发环境,如果使用c++开发的话,光是开发环境的配置就足以让人抓狂的,不能在linux下开发不说,在windows下开发还得把编译环境和sdk安装到同一个盘符下否则打死都不能编译通过,在某些笔记本上就连模拟器也有必须插上麦克风才能正常启动的怪癖。

所以说nokia这么做只会让symbian平台慢慢死去或慢慢去死,以后就算不被android压住风头也会被自己玩死。

我的建议是,提供好用又免费的开发环境,彻底摒弃垃圾的软件签名机制,提供类似于appstore的软件商店(听说也有了)。

总之就是吸引开发人员开发出大量牛叉的应用,这样才“科技以人为本”而不是以坑人为本。

ps:看来nokia把宝压在qt上了,我也是比较看好qt的,也希望nokia能够发挥好qt。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\204\232\344\272\272\350\212\202\347\232\204\346\226\260\351\227\273/index.html" "b/p/\346\204\232\344\272\272\350\212\202\347\232\204\346\226\260\351\227\273/index.html" new file mode 100644 index 000000000..8df84d86a --- /dev/null +++ "b/p/\346\204\232\344\272\272\350\212\202\347\232\204\346\226\260\351\227\273/index.html" @@ -0,0 +1,11 @@ +愚人节的新闻 +

愚人节的新闻

今天是一年一度的愚人节,过得平淡无奇。

大家慵懒得好像连开玩笑的心思也没有了,不过还是在互联网上看到了几条愚人新闻,聊胜于无。

出镜最多的就数Google了,比如这个Google可以上传任意物体的新闻就比较有创意,还有这个说Google收购了核技术公司准备进行核研究的新闻,

至于Google宣布改名为Topek和Google准备收购百度这两条新闻就比较无趣了,而这个关于Google街景提供红蓝眼镜3D观赏模式的新闻简直可以以假乱真了。

其他的新闻就比较少了,国内的cnBeta也算是提供了一个比较搞笑的,称其不再支持ie6和flash,并且说的有板有眼,说实在的这条新闻我宁愿相信是真的。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\204\237\345\217\227\345\217\246\344\270\200\347\247\215\345\210\233\346\226\260/index.html" "b/p/\346\204\237\345\217\227\345\217\246\344\270\200\347\247\215\345\210\233\346\226\260/index.html" new file mode 100644 index 000000000..0d49c0823 --- /dev/null +++ "b/p/\346\204\237\345\217\227\345\217\246\344\270\200\347\247\215\345\210\233\346\226\260/index.html" @@ -0,0 +1,11 @@ +感受另一种创新 +

感受另一种创新

过节回了几天老家,亲朋好友团聚之余,感受到了一些变化,可片面代表当下农村对现代科技的使用情况,同时也更新了我对于互联网的一些认识。

1、移动互联网要比在城市所占比重大,人手一部智能手机,几乎没有使用PC上网的,网吧几乎销声匿迹,每个人都在低头看手机屏幕,即使是在干农活的时候。

2、上网不再是年轻人的专利,很多老人也都开始使用手机上网,并开通了社交软件账号,特点是对于网上传播的文字信息不具备过滤能力,只能被动接受,任何信息都认为是真实可靠的,并热衷于转发给身边的人。

3、对手机操作系统没有概念(当然手机操作系统以Android为主),就像现在大多数人仍然对web浏览器(IE、Chrome、火狐?)没有概念一样,很多人并不能区分Android和苹果的iOS,也不认为手机上安装App的是“软件”,而是代表了某种功能,比如聊天、吃饭、天气、新闻、搞笑好玩儿的事儿,这种认识其实很纯粹,我们平时的认知反而会因为专业知识导致偏差。

4、手机软件占比,沟通、娱乐类占比最大,全民娱乐的时代,以前只能通过看电视放松,现在普遍都盯着小屏幕了,微信里盛传各种自制搞笑小视频,虽然做工粗糙,但是认可度很高,我能感到里面的暗流涌动,很多在我们看来“一眼假”的东西却能够得到爆炸性的传播,仍然坚守“按套路”出牌的高大上公司指不定在哪儿被干翻。

5、利用社交软件做营销,利用社交圈子的传播性而策划的营销活动特别盛行,商家们都已经十分重视手机上传播的宣传推广信息,而电视、平面媒体的广告已经成为了辅助信息。已经爆发了不少专门帮助商家进行微信营销的团队,有些人利用技术手段仅仅通过制作一些转发工具、外挂工具等获得了巨额利益。

以上的观察虽然是主观认识,但是确实反应了一些事实,可以肯定的是,大家都在发力移动互联时代的创新,而且随着技术的推进,创新的杠杆将越来越长,能撬动的东西也越来越大,有时候真的需要将目光投向最不起眼的地方,你认为最稀松平常的事情,说不定有人已经准备掀起一场革命。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\204\237\350\260\242\345\246\210\345\246\210/index.html" "b/p/\346\204\237\350\260\242\345\246\210\345\246\210/index.html" new file mode 100644 index 000000000..54b07e732 --- /dev/null +++ "b/p/\346\204\237\350\260\242\345\246\210\345\246\210/index.html" @@ -0,0 +1,11 @@ +感谢妈妈 +

感谢妈妈

我的胃不太好,为此,我妈颇为担忧,

有天,我妈听说一个单方,可以养胃,即在枕头里装上炒熟的甘草(中药),

每天睡觉枕着就行,该方法不但使用简单而且可操作性强。

于是前两天就在QQ上给我说了,我觉得试试也行,我妈就立刻行动(好习惯),

结果我今天就收到了快递。打开一看,跳出一个制作精美的枕头,散发出甘草的清香,

这可是我妈亲手缝制,对我来说真是无比珍贵。今晚就要枕着它入眠,在梦里露出灿烂的笑容。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\207\222\346\264\213\346\264\213/index.html" "b/p/\346\207\222\346\264\213\346\264\213/index.html" new file mode 100644 index 000000000..5cbd5f7ab --- /dev/null +++ "b/p/\346\207\222\346\264\213\346\264\213/index.html" @@ -0,0 +1,11 @@ +懒洋洋 +

懒洋洋

春天还是来了,虽然晚了一些。但树枝已经偷偷抽出嫩牙儿来,吹在脸上的风也不再恶狠狠的了,偶尔抬头向上望去,甚至能看见蓝天。

我在路上懒洋洋地走着,边走边想,春姑娘还是来了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\345\226\234\346\254\242\347\232\204\346\256\265\345\255\220\345\234\2502015/index.html" "b/p/\346\210\221\345\226\234\346\254\242\347\232\204\346\256\265\345\255\220\345\234\2502015/index.html" new file mode 100644 index 000000000..3b5c8d179 --- /dev/null +++ "b/p/\346\210\221\345\226\234\346\254\242\347\232\204\346\256\265\345\255\220\345\234\2502015/index.html" @@ -0,0 +1,11 @@ +我喜欢的段子,在2015 +

我喜欢的段子,在2015

幽默不是对什么都不在乎,相反,幽默的人都很认真,而且需要勇气,一个敢于自黑的人一定是睿智又自信的。

能理解幽默的人,也一定是一个有趣的人,感谢那些幽默的段子手,使我在工作之余得到放松,下面是微博网友在2015年收集的一些网络段子,分享给大家,我已经主动过滤了一些低俗没品的(列位如果谁有需要请私下联系,反正我也没有)。

0、我这辈子最重要的三点是:岁月安好、懂得感恩、与你相随。总的来说就是 Fine,thinks and you。(@大哥王振华)。

1、世界五大王牌情报组织:CIA(中情局)、KGB(克格勃)、MOSSAD(摩萨德)、MI6(军情六处),BJCYQZ(北京朝阳群众)(@警察蜀黍)。

2、一个简易的提升逼格的方法:如果你愿意,你可以在简历上写自己是美国时代周刊2006年度人物,曾获2008年感动中国组委会特别大奖。不用担心吹牛被捉,因为这两年的获奖者分别是“everyone”和“全体中国人”(@英式没品笑话百科)。

3、遇见一个中国导游,他说从前最头疼的,就是带大团游客到处乱走,必须不停点人头回去找,不然很容易散。但现在他弄了一个随身wifi,免费提供给团员连接。从此游客们都紧紧跟着他,亦步亦趋,生怕离远了没信号,再也不担心队伍走散了。(@马伯庸)。

4、女孩喜欢男孩,每晚都和男孩聊天。可男孩要么半天回一句,要么干脆不理。女孩依旧主动着。终于在某一天,男孩突然回的很快,高谈阔论。女孩感动,努力终于没有白费,鼓起勇气问:“你终于对我有感觉了吗?”男孩淡淡地说:“不是呀,今天刚刚把三星手机换掉了。”(@福大校长)。

5、朋友说:“油价不能再跌了,要不只剩下税了!”(@傅蔚冈)。

6、黄晓明是一个青岛人,婚礼却在上海办,可见家乡的酒席是有多贵。。。(@江上渡)。

7、弟弟带了一群朋友回家吃饭,一会儿弟弟神神秘秘的到厨房对做饭的妈妈说:“这里面可有一个是你未来的儿媳妇。”妈妈头都没抬,说:“是穿白色裙子的那个吧。”弟弟惊讶的说:“妈,您真神了,怎么看出来的?”妈妈淡淡的说:“因为这些人里面我最烦的就是她。”

8、母语就是数钱的时候心里念的语言。(@laoyang945)。

9、晚上和女朋友吃完饭,我说:“待会儿把碗刷一下。”她说:“你自言自语的声音怎么这么大?”(@柳三便)。

10、刚才我女人在弄新买的面包机。她把内胆洗干净以后让我擦干,说:“你要擦得很干,一点水都不能有。要不然面包就做不好。”然后我死命擦了五分钟,里里外外都没有一丝水迹。接着她开始放配料。第一步,加入70毫升水。。。(@段子楼)。

11、印度舞蹈的精要是左手向下拍小狗,右手抬起拧灯泡,脚步动作是一边踩缝纫机,一边打转。

12、小时候每当我生病,母亲都会为我冲一杯咖啡,她温柔地说:“外国人都喝这个的。”幼小的我总是害怕咖啡,酸甜苦涩交错。如今我走遍米萝、上岛、星巴克都找不到小时候喝的那个味道,直到那天我喝了一杯板蓝根…….(@张大进就是我)。

13、最近小区广场舞大妈们都不跳了,问下邻居大妈怎么不跳了,是不是感觉扰民不好意思了。大妈说:“不知道谁家的孩子穿个红肚兜,我们一跳他就在前面说,孩儿们操练起来!”

14、朋友家孩子满月,我用EMS给孩子快递了一份礼物。收到快递后,孩子高兴地打电话对我说:“谢谢您的礼物,我非常喜欢”(@剑神葡萄)。

15、唐僧师徒四人正在吃饭,突然“轰隆!”一生巨响,吓了大家一跳,唐僧抬眼望了望,指着山下修路炸碎的石头说:“悟空,你妈生二胎了。”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\345\233\236\346\235\245\344\272\206/index.html" "b/p/\346\210\221\345\233\236\346\235\245\344\272\206/index.html" new file mode 100644 index 000000000..ef8916849 --- /dev/null +++ "b/p/\346\210\221\345\233\236\346\235\245\344\272\206/index.html" @@ -0,0 +1,11 @@ +我回来了 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\345\234\250github\344\270\212\350\277\221\346\234\237\345\205\263\346\263\250\347\232\204\351\241\271\347\233\256/index.html" "b/p/\346\210\221\345\234\250github\344\270\212\350\277\221\346\234\237\345\205\263\346\263\250\347\232\204\351\241\271\347\233\256/index.html" new file mode 100644 index 000000000..2e79bae46 --- /dev/null +++ "b/p/\346\210\221\345\234\250github\344\270\212\350\277\221\346\234\237\345\205\263\346\263\250\347\232\204\351\241\271\347\233\256/index.html" @@ -0,0 +1,11 @@ +我在Github上近期关注的项目 +

我在Github上近期关注的项目

想成为优秀的开发者有一个很简洁有效的方法,就是去 Github 上去看那些牛人做的项目,阅读别人编写的优秀代码比看书学习的还要快和直接。再者就是,如果有心的话,可以学习那些开源团队在项目组织和开发过程管理上的优秀实践,比如bug管理、任务管理、编程风格、文档表达等等。

下面罗列一下近期我比较关注的开源项目。

1、FreeCodeCamp 一个优秀的开源在线教育平台,可以在线学习编程,项目不但开源了教育平台的程序,连里面的教育课程也开源了。

2、gentelella 基于Bootstrap的开源前端界面模板,制作效果略显粗糙,虽然我最终在项目中选择了别的更漂亮的模板,但是这个开源项目可以用来学习一个基本前端界面的结构。

3、全栈工程师指南 全栈开发的电子文档汇聚,内容比较全面,当然如果只是把它放到收藏夹里,就没什么卵用了。

4、codebox 使用web技术开发的IDE,代码高亮、补全提示各种功能都有,即开即用的在线编辑器。

5、Learning-SICP 大家齐心协力共同翻译《计算机程序的构造和解释》。

6、vuejs 小而美的前端mvvm框架,简单易学易用,虽然社区比不了react、angular但是非常好用。另外,这是国人开发的开源项目,而且在国际上已经比较流行。

7、hacker-scripts 这是一个真实的故事,hacker scripts 是由俄罗斯的一位程序员编写的脚本,可以在宿醉的时候给公司发请假条,可以在适当的时候给老婆发晚归短信,也可以发短信哄老婆,还可以远程煮咖啡!向这位大神致敬,目前这个项目在github上的关注程度已经远远超过了微软的vscode。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\345\235\220\345\234\250\345\256\242\345\216\205\347\232\204\346\262\231\345\217\221\344\270\212\346\211\223\345\255\227/index.html" "b/p/\346\210\221\345\235\220\345\234\250\345\256\242\345\216\205\347\232\204\346\262\231\345\217\221\344\270\212\346\211\223\345\255\227/index.html" new file mode 100644 index 000000000..25664f10d --- /dev/null +++ "b/p/\346\210\221\345\235\220\345\234\250\345\256\242\345\216\205\347\232\204\346\262\231\345\217\221\344\270\212\346\211\223\345\255\227/index.html" @@ -0,0 +1,11 @@ +我坐在客厅的沙发上打字 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\345\257\271\345\245\245\350\277\220\345\274\200\345\271\225\345\274\217\347\232\2048\347\202\271\346\204\237\345\217\227/index.html" "b/p/\346\210\221\345\257\271\345\245\245\350\277\220\345\274\200\345\271\225\345\274\217\347\232\2048\347\202\271\346\204\237\345\217\227/index.html" new file mode 100644 index 000000000..c3494b15d --- /dev/null +++ "b/p/\346\210\221\345\257\271\345\245\245\350\277\220\345\274\200\345\271\225\345\274\217\347\232\2048\347\202\271\346\204\237\345\217\227/index.html" @@ -0,0 +1,11 @@ +我对奥运开幕式的8点感受 +

我对奥运开幕式的8点感受

1、脚印烟花很令人惊艳    

这真是一个好创意,巨大的脚印从中轴路一路迈向场馆,场面真不是一般的壮观!美中不足的是空中镜头取景再大些就好了。

2、卷轴屏幕很好很强大    

七十多米长的屏幕,应该也是奥运之最了,就是中间那块画布放的有点儿突兀。

3、歌唱祖国很令人激动    

当那个红衣小女孩用清澈如同天籁般的声音唱起歌唱祖国时,整个场馆进入了高潮,我在电视机前也禁不住唱了起来,眼泪都快下来了。

4、主题歌有点儿弱    

主题歌听完之后,印象不深刻,知道是谁唱的,听完就忘了。

5、运动员入场时那些奥运宝贝一直在那儿蹦了两个多小时没换人,佩服!    

导演也太不知道心疼人了,大热天儿的,让这些可爱的奥运宝贝手舞足蹈一直在那儿跳了,换了我,肯定都昏过去了。

6、电视台转播水平发挥正常,镜头切换不敢恭维,画面中经常出现很多钢丝    

不愧是咱们的CCTV啊,发挥出了应有的水平。

7、点火没让人失望,要是点火时画面里看不见钢丝就更好了。

    点火方式很新颖,将吊钢丝技术发挥到了极致,李宁好样儿的!就是在全景的时候,在屏幕前方总是飘着好几根钢丝,让画面失色不少。

8、有朋自远方来不亦乐乎,四海之内皆兄弟也!    击缻时朗诵的《论语》,让人仿佛回到了两千多年前,很好,很中国!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\345\270\270\347\224\250\347\232\204app\346\225\264\347\220\206/index.html" "b/p/\346\210\221\345\270\270\347\224\250\347\232\204app\346\225\264\347\220\206/index.html" new file mode 100644 index 000000000..886d9cf5c --- /dev/null +++ "b/p/\346\210\221\345\270\270\347\224\250\347\232\204app\346\225\264\347\220\206/index.html" @@ -0,0 +1,11 @@ +我常用的app整理 +

我常用的app整理

推荐我在手机上常用的应用给大家,都是经过我精挑细选长期使用后的选择。

1、新闻或资讯阅读,推荐即刻。可以有选择的关注话题,降低资讯噪音,而且产品比较有情怀,里面推荐的一些关注话题都挺有意思的。此类的不太推荐“今日头条”,信息太多,且高质量条目较少。

2、处理文档,推荐微软office全系产品。微软出品必属精品,而且免费。

3、邮箱客户端,推荐网易邮箱大师。与我工作时使用的网易企业邮箱是绝配,而且还有一个隐含作用,就是可以在不翻墙的情况下收取Gmail的邮件。

4、看电子书,推荐多看阅读。阅读体验良好,支持上传自己的书籍到云空间,一般购买正版电子书也比较便宜,支付方便。

5、自拍美图,推荐微软自拍。还是那句话,微软出品必属精品,虽然图标做的有些low,不过效果很好,其实我基本不用此类软件,列出来只是怕埋没了这么好的软件。

6、摄影滤镜,推荐LOFTCam。俗话说“姑娘自拍靠美图,文青摄影靠滤镜”,现在的照片哪有不加滤镜的,试用了那么多应用,最终选定这一款,而且还是网易出品,在我个人看来网易基本代表中国互联网的良心(可能没有)。

7、代码学习,推荐CodeHub。非官方的github手机客户端,用于在手机上浏览github代码仓库,使用体验良好,利用碎片时间随时看看这个世界上的技术大牛们都在干什么。

8、团队协作,推荐遥知。知识型工作团队的管理利器,包括基本的移动办公、任务管理、及时通信等功能,以前我们团队沟通总是使用微信、qq、邮件等工具,现在全部使用遥知,基本告别之前的碎片化沟通协作,也避免了将生活中的工具(如qq)带入工作中的尴尬(相信有很多孩子不愿意加父母或领导的微信)。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\345\277\203\347\233\256\344\270\255\347\232\204\345\256\214\347\276\216\346\211\213\346\234\272/index.html" "b/p/\346\210\221\345\277\203\347\233\256\344\270\255\347\232\204\345\256\214\347\276\216\346\211\213\346\234\272/index.html" new file mode 100644 index 000000000..965f3cdb4 --- /dev/null +++ "b/p/\346\210\221\345\277\203\347\233\256\344\270\255\347\232\204\345\256\214\347\276\216\346\211\213\346\234\272/index.html" @@ -0,0 +1,22 @@ +我心目中的完美手机 +

我心目中的完美手机

我手里这个Nokia6230用了3年了,买的时候多加了一块电池。前两天,其中一块电池寿终正寝了,剩下的这块也差不多了,感觉就像我的胃,一吃就饱,一会儿就又饿了。

我看着手里这个灰头土脸得就像从垃圾桶里捡回的手机,不禁有了换掉它的念头。

到网上翻了翻信息,结果让我很失望,感觉Nokia不太长进,眼看着人家索爱扛着音乐、摄像的大旗在市场上占了一席之地,自己也跟着别人的屁股转,也在那儿搞音乐手机、摄像手机,却忘了自己的特色。

没办法,别的牌子不愿意用,老N最近推出的新机不是我看不上就是我的钱包不让看(靠,就这还敢冒充Nokia的粉丝呀?)。

苹果的iPhone最近倒是炒得挺火,看起来也挺不错,可是总觉的那玩意儿离咱太遥远了,还是不多看了,以免中毒。

在查看了众多机型之后,长叹一声:“究竟什么样的手机才能让我满意呢!”

总结以下大概要满足以下几点: +1. 屏幕要足够大、分辨率不用极高但也不能太低 +2. 反应速度一定要快(目前我还没有发现一款智能手机反应速度飞快) +3. 个头不能太大、重量不能太沉 +4. 电话、短信功能好用 +5. 电量一定要持久,待机越长越好(这点最重要,功能再强没电也是白扯) +6. 非国产(这个不用多说)     

    这些要求不过分吧?像什么摄像、音乐等功能都没要求,可愣是找不到这样一款手机,反复对比后发现还是目前手上的这个更合要求一些。
+    
+    算了,将就用吧。
+    
+    结果,昨晚做梦,梦见我也设计了一款手机,以上条件除了第六条其余都满足,取名就叫“nbPhone”把苹果的Phone的风头给压下去了,乔布斯都跟我急了。
+
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\346\213\247\344\275\240/index.html" "b/p/\346\210\221\346\213\247\344\275\240/index.html" new file mode 100644 index 000000000..89ca885f3 --- /dev/null +++ "b/p/\346\210\221\346\213\247\344\275\240/index.html" @@ -0,0 +1,11 @@ +我拧你! +

我拧你!

电视上充斥着广告,其中不乏精品,看完之后让人心情舒畅然后心甘情愿的掏腰包去买他们的产品。

但是大多数广告都庸俗不堪,让人看得心慌气短、胃部抽搐、浑身起鸡皮疙瘩。

这其中不必说“收礼只收搓澡巾”,也不必说“洗洗更健康”,单就是那位一口气上五楼的大爷就能让人抓狂了。

时间长了,这些广告我吐啊吐啊的也就习惯了,对于这类垃圾广告也有了一定的免疫能力。

但是最近又有一个广告冲破了我的心理防线!那就是某饮料的变态广告“我拧你!”

画面上,一群疯子在那里晃来晃去的踢腿,就像得了羊癫疯似的,整个广告看了让人不知道他们在表达什么另类理念,还好导演没忘记让他们每人手里拿着一瓶该品牌的饮料。

我估计作者的思路来源与某天他的鞋里进了个小石子,然后他就不停的甩啊甩,一直甩不出来,直到喝了他那个饮料才甩了出来,于是就创作了这个广告。

关键是你在电视上恶心恶心我也就算了,在上下班的公交车上居然也循环的播放,而且还衍生出不同的版本出来,里面就没有一个正常人,都拿个腿在那儿踢来踢去的。

也许从某种层面上来说,这也是一个很成功的广告,我看见很多人吵着要下载那段抽风的音乐作为手机铃声,但是我绝对不会去喝一口那种饮料,我怕晚上会做噩梦,然后再一脚把被子给踢到床底下去……

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\346\213\277\344\273\200\344\271\210\346\213\257\346\225\221\344\275\240\346\210\221\347\232\204\346\231\232\351\244\220/index.html" "b/p/\346\210\221\346\213\277\344\273\200\344\271\210\346\213\257\346\225\221\344\275\240\346\210\221\347\232\204\346\231\232\351\244\220/index.html" new file mode 100644 index 000000000..0618d807c --- /dev/null +++ "b/p/\346\210\221\346\213\277\344\273\200\344\271\210\346\213\257\346\225\221\344\275\240\346\210\221\347\232\204\346\231\232\351\244\220/index.html" @@ -0,0 +1,11 @@ +我拿什么拯救你!我的晚餐! +

我拿什么拯救你!我的晚餐!

今天又一次雨中漫步,原因很简单,受天气预报的干扰我又没带伞(干嘛要说又呢?)。

拿起背包从容地奔向车站,嘴里也不忘哼着:“我能想到最郁闷的事~~,就是下雨却没有带伞~~”。

淋雨就淋雨吧,挤上车,去思考一个很严重的问题,我的晚饭吃什么?

别笑!这确实是一个很严重的问题。

我不能像老婆在身边时那样说:“随便吧,做啥吃啥”(虽然心里想着最好炒两个菜,再冰上一瓶啤酒)。

自己动手去做的话,倒不是嫌麻烦,只是吃我做的晚饭简直是虐待自己(大饼卷着馒头沾着米饭吃)。

吃晚餐在我眼中确实是非常重要的事儿,平时上班的时候,早饭总是很虚无缥缈,不堵车的时候就慢慢坐在包子铺里吃包子,堵车时就没准儿了,也许是一个鸡蛋饼,也许是一个肉夹馍,也许,也许只有一杯开水。

午饭就是普通的工作餐,千篇一律,除了米饭还是米饭。

所以说,一日三餐也就晚饭是顿饭,我把吃晚饭看作是一件很神圣的事情,虽然不必在每次吃晚饭前都焚香沐浴,但我也在吃饭前做个深呼吸,抛开一天的烦恼,菩萨保佑、阿弥陀佛、无量天尊、阿门!感谢上天又让我吃了一顿晚饭!

然后就对生活重新燃起热情,对工作又重新充满信心,活着不就是为了这顿晚饭嘛!

可是,现在,我看了看车窗外,雨停了,道路渐渐不再拥堵,我的胃却越来越堵,没有胃口,吃还是不吃,这是个问题。

下了车,路边的麻辣烫小摊熏得我的胃一阵抽搐,不远处的油炸臭豆腐老板正在卖力的吆喝,卖盗版书的小贩倒是省事儿,在大喇叭里循环播放“六块一本儿,随便挑随便拣……”,喊得我头晕眼花,我真想冲过拿起他的喇叭然后在空中抛一个完美的弧线。

还是那个晚饭情节,不想在外面饭馆里吃,尤其是一个人在饭馆里吃。

拿起馒头,就着音乐和啤酒……我怎么会舍得你走,这一去竟是几个秋冬请你好好珍重无须挂念我太多我的爱和从前一样这承诺当是万般重要尽管容颜会老这一生无以为靠我还是会爱你到老我不会让你苦恼也许我始终无法释怀我会假装一切都好。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\346\230\257\344\270\200\351\246\226mp3/index.html" "b/p/\346\210\221\346\230\257\344\270\200\351\246\226mp3/index.html" new file mode 100644 index 000000000..e4e8925c0 --- /dev/null +++ "b/p/\346\210\221\346\230\257\344\270\200\351\246\226mp3/index.html" @@ -0,0 +1,11 @@ +我是一首mp3 +

我是一首mp3

我静静的呆在文件夹里,我的身后是一首2002年的曲子,对了,我是一个文件,确切地说,我是一首mp3,你通过搜索引擎找到了我,通过右键另存为给我取了个名字,从那一刻起,我诞生了。

你迫不及待地打开winamp,用鼠标拽住我,拖进了播放列表。硬盘的磁头开始颤抖,顺着磁道的轨迹划过我的身体,我的细胞就是一串二进制的序列,它们活蹦乱跳地被磁头提起,转换成抖动的电信号涌进了内存,声卡大哥开始工作,它们的任务就是在winamp的安排下去搔声卡大哥的胳肢窝,声卡忍受不住,愉快地哼起了歌,那就是我。你带着耳机,闭目养神,觉得从来没有听过如此美妙的声音。

我露出欣慰的微笑,磁头划过我带给我的痛苦一扫而光,我甚至期待你的下一次播放。

你却渐渐地把我遗忘,周围的文件叽叽喳喳叫个不停,它们哪懂得我的忧伤。

从此我开始长时间的睡眠,直到我遇见另一首mp3.开始的时候我还看她不起眼,因为她来自一块移动硬盘,这个外地人,我心里想。

瘦弱的她哪里及得上我曲子的悠扬,又怎能赶上我320k的压缩比和古典浪漫的心肠。

然而我渐渐地发现,虽然她是那样的其貌不扬,可她的快乐却迅速将我感染,连winamp大哥也对她颇有好感,随机播放的时候总是偷偷将她播放,就连愚钝缓慢的回收站也幽幽地说,不希望她去那个地方。

我开始整晚失眠,到处寻找暗恋的药方,CPU大哥忙着计算,根本帮不上忙,显卡更是高傲地扇着风扇,一副过来人的模样:”这种事我见得多啦,回去洗洗睡觉,明天我还得渲染上岗“,还是硬盘忠厚老实,偷偷跟我说,过两天要整理碎片,到时你再这样这样。

醒来时我发现已经被移到另外一个文件夹,粉红色的背景还有一个明亮的天窗,那首mp3羞涩地呆在那里,红着脸问我觉得装修怎样,哈哈,我心里想,要不是主人在意,谁会将一个文件夹弄成自定义的模样。

无损压缩的时代就要来了,我说。到时我们肯定都人老珠黄,不如把握现在的时间做些更有意义的事情,比如,轰轰烈烈地爱一场。

ps:纯属虚构,如有雷同,那实在是巧合。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\346\230\257\346\200\216\346\240\267\350\277\233\350\241\214\347\237\245\350\257\206\347\256\241\347\220\206\347\232\204/index.html" "b/p/\346\210\221\346\230\257\346\200\216\346\240\267\350\277\233\350\241\214\347\237\245\350\257\206\347\256\241\347\220\206\347\232\204/index.html" new file mode 100644 index 000000000..60a92c756 --- /dev/null +++ "b/p/\346\210\221\346\230\257\346\200\216\346\240\267\350\277\233\350\241\214\347\237\245\350\257\206\347\256\241\347\220\206\347\232\204/index.html" @@ -0,0 +1,11 @@ +我是怎样进行知识管理的 +

我是怎样进行知识管理的

我有个很大的毛病,就是爱好学习,有很强的求知欲。

我觉得主要的原因是好奇心太强,尤其是对于技术方面,恨不得什么都能掌握,后来发现那是不可能的。

但是我还是很喜欢搜集各方面的知识资料,总以为以后有时间会用到。

开始时我喜欢胡乱放文件,一些技术指南、一些能力技巧、一些文档秘籍等等,这些东西有些是从网络上获取的,有的是自己亲自总结的,都是很值得收藏的玩意儿,我把这些看似有用的东西一股脑地扔进硬盘。

我的硬盘越来越满,想找的东西越来越难以从堆积的资料中翻出来。

直到有一天我发现如果一份资料在用到的时候找不到,那就等于没存,甚至还不如不存,困惑了一段时间后,通过网络搜索第一次知道了“个人知识管理”这个“东西”。tobecontinue

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\346\230\257\346\227\240\346\263\225\346\225\264\347\220\206\345\245\275\346\210\221\347\232\204\347\241\254\347\233\230\344\272\206/index.html" "b/p/\346\210\221\346\230\257\346\227\240\346\263\225\346\225\264\347\220\206\345\245\275\346\210\221\347\232\204\347\241\254\347\233\230\344\272\206/index.html" new file mode 100644 index 000000000..9a15c368d --- /dev/null +++ "b/p/\346\210\221\346\230\257\346\227\240\346\263\225\346\225\264\347\220\206\345\245\275\346\210\221\347\232\204\347\241\254\347\233\230\344\272\206/index.html" @@ -0,0 +1,11 @@ +我是无法整理好我的硬盘了 +

我是无法整理好我的硬盘了

随着时间的推移,硬盘上的东西积累的越来越多,硬盘也由原来的一块到现在的四块,大容量的硬盘对于偏执狂就是一个噩梦。

早就意识到硬盘需要整理,可是我的整理速度却赶不上硬盘里的垃圾堆积的速度。

有些东西明明“没有用”却不舍的删除,而真正需要用到的时候却死活找不到放在那个文件夹下面了,曾经使用过Google的桌面搜素,确实不错,可是该程序的索引会越来越大,渐渐达到难以忍受的地步,只得停用。

我决定狠一狠心,花掉这个周末,彻底整理好硬盘上的文件……

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763.jpg" "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763.jpg" new file mode 100644 index 000000000..c35506d4f Binary files /dev/null and "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763.jpg" differ diff --git "a/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_120x120_fill_q75_box_smart1.jpg" "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_120x120_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..080d6cad6 Binary files /dev/null and "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_120x120_fill_q75_box_smart1.jpg" differ diff --git "a/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_1600x0_resize_q75_box.jpg" "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_1600x0_resize_q75_box.jpg" new file mode 100644 index 000000000..407a7df89 Binary files /dev/null and "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_1600x0_resize_q75_box.jpg" differ diff --git "a/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_800x0_resize_q75_box.jpg" "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_800x0_resize_q75_box.jpg" new file mode 100644 index 000000000..8ec26e2be Binary files /dev/null and "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_800x0_resize_q75_box.jpg" differ diff --git "a/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/index.html" "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/index.html" new file mode 100644 index 000000000..36ef4276c --- /dev/null +++ "b/p/\346\210\221\346\234\200\345\226\234\346\254\242\347\232\204\347\224\265\345\275\261\347\224\273\351\235\242/index.html" @@ -0,0 +1,11 @@ +我最喜欢的电影画面 +
Featured image of post 我最喜欢的电影画面

我最喜欢的电影画面

在辽阔的金黄色的麦田里,微风吹起麦浪,主人公的背影慢慢出现,伸手轻抚麦穗。

在麦田的对岸,有守望他的亲人,这是我最喜欢的电影画面,来自《角斗士》。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\346\262\241\346\234\211\346\227\205\346\270\270\350\256\241\345\210\222/index.html" "b/p/\346\210\221\346\262\241\346\234\211\346\227\205\346\270\270\350\256\241\345\210\222/index.html" new file mode 100644 index 000000000..49481b924 --- /dev/null +++ "b/p/\346\210\221\346\262\241\346\234\211\346\227\205\346\270\270\350\256\241\345\210\222/index.html" @@ -0,0 +1,11 @@ +我没有旅游计划 +

我没有旅游计划

刚看到有人为本年度的旅游制定了完备的计划,恩,很羡慕这个家伙。

不过说真心话,我不喜欢旅游,有那个时间的话,我还不如好好在我的老家待上一段日子,虽然不是什么山清水秀的地方,但是也算的上是空气清新了。

我不想去青藏高原,也不愿意去丽江云南,好山好水对我一点儿吸引力都没有。

与其奢望环游世界,倒不如多和老家亲近亲近,因为我怕有一天,我真的会记不起那里的模样。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\346\267\213\344\272\206\344\270\200\345\234\272\345\244\247\346\232\264\351\233\250/index.html" "b/p/\346\210\221\346\267\213\344\272\206\344\270\200\345\234\272\345\244\247\346\232\264\351\233\250/index.html" new file mode 100644 index 000000000..7d459da1b --- /dev/null +++ "b/p/\346\210\221\346\267\213\344\272\206\344\270\200\345\234\272\345\244\247\346\232\264\351\233\250/index.html" @@ -0,0 +1,11 @@ +我淋了一场大暴雨! +

我淋了一场大暴雨!

就在下班的时候,天还没有要下雨的样子。

我悠然地吃完了晚饭,然后慢吞吞地走向车站,准备回家。此时天上却落起了雨滴,不大,我想肯定又要堵车了,就买了本《读者》准备在车上看。车行驶到路上的时候,雨真的大起来了,雨点密密地砸在车顶和车窗上,彭彭作响,车窗外的景象被雨水冲得模糊不清。

雨越来越大,公交车就像一只潜水艇,四周都被水包围了。

到站而没有带伞的乘客,咬咬牙狠狠心跳下车去,很快就消失在茫茫雨雾中。

终于,我也要下车了,我带了伞,但我还是太低估了这场雨,我甚至想象在雨中点根烟,那该是多么惬意啊。

然而,我这把伞应付毛毛细雨还凑合,外面下着倾盆大雨,又刮着狂风,闪电在头上不停地把天撕开一个又一个裂口,这把伞仅能护住我的头,被风吹得翻过来复过去。

也许是我"点根烟"的想法激怒了老天,风雨越来越猛,马路变成了一条河,泛起一阵阵波浪,我不由自主地奔跑起来,拼命抱紧了我的电脑包,那里面装着我心爱的笔记本电脑。

几分钟的路程,把我淋得狼狈不堪,衣服湿透了,鞋子里灌满了水,终于,我跌跌撞撞地跑到了家门口。

我想这是我有生以来淋得最大最惨的一场雨了。

现在,我洗完了热水澡,沏了一杯热茶,窗外,雨已经停了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\347\232\204palm\351\245\277\346\255\273\344\272\206/index.html" "b/p/\346\210\221\347\232\204palm\351\245\277\346\255\273\344\272\206/index.html" new file mode 100644 index 000000000..1992bb006 --- /dev/null +++ "b/p/\346\210\221\347\232\204palm\351\245\277\346\255\273\344\272\206/index.html" @@ -0,0 +1,11 @@ +我的palm饿死了 +

我的palm饿死了

前年的时候,我淘到一个palm,正式成为"胖友",买回来后折腾了很久,反复安装软件,又反复的卸载掉,最后仅保留了几个看书的软件,这个palmtt的屏幕看书真的是没话说,非常舒适,我也在上面看了大概有几十本小说,几回回抱着palm到天亮,呵呵。

但是毕竟是个老机器了,速度慢,功能弱,最让我头疼的是,他的电池越来越不行了,后来,我又把手写笔丢了,再后来,也就是今年5月,一冲动买了个epc,就是所谓的"上网本、二奶机",这下palm彻底失宠,我很少再将它带在身边,

直到上周末,我整理桌子的时候才发现奄奄一息地他躺在抽屉里,我竟然没搭理他,继续整理我的音箱,今天才又想起来。掏出来一看,由于长期没充电,里面的资料全丢了,还好没什么重要内容,

但我辛苦挑选的软件全没了,我干脆给他擦了擦灰,将所有配件整理到一起,全部锁进抽屉里,再见吧您呐。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\347\232\204vim\351\205\215\347\275\256\346\226\207\344\273\266/index.html" "b/p/\346\210\221\347\232\204vim\351\205\215\347\275\256\346\226\207\344\273\266/index.html" new file mode 100644 index 000000000..e3b70b54e --- /dev/null +++ "b/p/\346\210\221\347\232\204vim\351\205\215\347\275\256\346\226\207\344\273\266/index.html" @@ -0,0 +1,217 @@ +我的vim配置文件 +

我的vim配置文件

整理了一下自己的vim配置文件,记录在此以备忘。

  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
+
" 编码设置
+set encoding=utf-8
+set fileencodings=utf-8,chinese,latin-1,gb18030,gbk,cp936
+if has("win32")
+    set fileencoding=chinese
+else
+    set fileencoding=utf-8
+endif
+language messages zh_CN.utf-8
+
+" 基础设置
+set nocompatible
+set softtabstop=4
+set shiftwidth=4
+set tabstop=4
+set bs=2
+set autoread " read open files again when changed outside Vim
+set autowrite " write a modified buffer on each :next, ...
+
+set browsedir = current " which directory to use for the file browser
+set wildmenu
+set wildignore=*.bak,*.o,*.e,*~
+
+set complete+=k " scan the files given with the 'dictionary' option
+
+autocmd BufEnter * lchdir %:p:h " Change the working directory to the directory containing the current file
+
+filetype on
+filetype plugin on
+filetype indent on
+syntax on
+
+" 颜色设置
+colorscheme koehler
+
+" 字体设置
+set guifont=Consolas:h12:cANSI
+set guifontwide=youyuan:h12
+
+" 折叠设置
+set foldmethod=manual
+nnoremap <space> @=((foldclosed(line('.'))<0)?'zc':'zo')<CR>
+
+" 界面设置
+set showtabline=2 " 始终显示标签页
+set guitablabel=%{tabpagenr()}.%t\%m " 每个 tab 上显示编号
+set guioptions-=T " 去掉工具条
+set guioptions-=m " 去掉菜单
+set guioptions-=r " 去掉右边的滚动条
+set guioptions-=L
+
+set statusline=%F%m%r%h%w\[FMT=%{&ff}]\[TYPE=%Y]\[POS=%l,%v][%p%%]\%{strftime(\"%d/%m/%y-%H:%M\")}
+
+set laststatus=2
+set scrolloff=3
+set nu
+set ruler
+
+" 查找搜索设置
+set incsearch " use incremental search
+set ignorecase smartcase hlsearch incsearch
+
+" 将键盘上的 F12 健映射为执行当前文件
+map <F12> :!%<CR>
+
+" 使用 Ctrl+Tab 键来切换标签页
+map <C-TAB> :tabn<CR>
+
+" 快捷键设置
+"   F2 - write file without confirmation
+"   F3 - call file explorer
+"   F4 - show tag under curser in the preview window (tag file must exist!)
+"   F5 - open quickfix error window
+"   F6 - close quickfix error window
+"   F7 - display previous error
+"   F8 - display next error
+"   Shift-Tab - Fast switching between buffers (see below)
+"   Ctrl-q - Leave the editor with Ctrl-q (see below)
+
+map <silent> <F2> :write<CR>
+map <silent> <F3> :Explore<CR>
+map <silent> <F4> :exe "ptag ".expand("<cword>")<CR>
+map <silent> <F5> :copen<CR>
+map <silent> <F6> :cclose<CR>
+map <silent> <F7> :cp<CR>
+map <silent> <F8> :cn<CR>
+
+imap <silent> <F2> <Esc>:write<CR>
+imap <silent> <F3> <Esc>:Explore<CR>
+imap <silent> <F4> <Esc>:exe "ptag ".expand("<cword>")<CR>
+imap <silent> <F5> <Esc>:copen<CR>
+imap <silent> <F6> <Esc>:cclose<CR>
+imap <silent> <F7> <Esc>:cp<CR>
+imap <silent> <F8> <Esc>:cn<CR>
+
+map <silent> <S-Tab> <Esc>:if &modifiable&&!&readonly&& \ &modified<CR>:write<CR>:endif<CR>:bprevious<CR>
+imap <silent> <S-Tab> <Esc>:if &modifiable&&!&readonly&& \ &modified<CR>:write<CR>:endif<CR>:bprevious<CR>
+
+nmap <C-q> :wqa<CR>
+
+" taglist 设置
+noremap <silent> <F11> <Esc><Esc>:Tlist<CR>
+inoremap <silent> <F11> <Esc><Esc>:T
+
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\347\232\204\345\220\211\344\273\226\346\242\246/index.html" "b/p/\346\210\221\347\232\204\345\220\211\344\273\226\346\242\246/index.html" new file mode 100644 index 000000000..7029f43b7 --- /dev/null +++ "b/p/\346\210\221\347\232\204\345\220\211\344\273\226\346\242\246/index.html" @@ -0,0 +1,11 @@ +我的吉他梦 +

我的吉他梦

一个人太无聊,一天没说话,吃饭睡觉打豆豆,傍晚时分,想出去活动活动,溜达到客厅,看见角落里那把吉他,突然想活动活动手指。

我拿起琴,吹了吹上面的灰,呛得我咳嗽了半天,调了调弦,闭上眼睛,富有激情地弹了一曲“两只老虎”,希望没有吵到邻居,虽然听到楼上孩子的哭声,但是我觉得那是该喂奶了,小孩子还小,还不能体会音乐的灵魂,怎么可能感动的哭呢?

其实我十年前就开始学琴了,不过绝对不是为了泡妞而学,而是怀着对音乐的满腔热情而学,虽然也曾幻想抱着吉他站在某个女孩的门前,大声唱着“冷雨夜我不想归家,盼望你会知,可知道我滴心….”,

无奈我手指上的茧子退了一层又一层仍是达不到理想的水平,只能一个人的时候弹两曲消遣一下而已。

大学的时候,每当我在寝室练琴就有隔壁同学跑过来说:“你们谁在这把床推来推去的?弄得地板咯吱咯吱的?”,

有一次,管理宿舍的大爷一路咆哮着就上来了:“说过多少遍了!寝室里面不能做饭!”,

“没有啊,大爷”“还说没有!我在楼下都听到炒菜的声音了!”……

他们就这样把我成为一个吉他手的梦想给残忍地扼杀了。

后来我迷恋上了编程(也能活动手指),吉他就被我丢到了角落,偶尔还会拿起来拨两下就像今天这样。

当然了,这个梦并未完全破灭,我仍然幻想着某天弹吉他能像现在敲电脑键盘这么熟,刚工作那会儿我给自己定了计划,觉得无论如何也得在三十岁之前把吉他练成,现在,眼看着快三十了,吉他上的灰却越来越厚。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\347\232\204\345\236\203\345\234\276\346\210\221\347\232\204\345\233\236\345\277\206/index.html" "b/p/\346\210\221\347\232\204\345\236\203\345\234\276\346\210\221\347\232\204\345\233\236\345\277\206/index.html" new file mode 100644 index 000000000..7356a926e --- /dev/null +++ "b/p/\346\210\221\347\232\204\345\236\203\345\234\276\346\210\221\347\232\204\345\233\236\345\277\206/index.html" @@ -0,0 +1,11 @@ +我的垃圾,我的回忆 +

我的垃圾,我的回忆

今天妈妈打来电话,说在家里整理房间,整理到我曾经的书房兼卧房,问我那一书柜的书还有一堆乱七八糟的东西该如何处理。

按照我爸的建议是,该清理的统统清理,免得占地方。

但我在电话里还是坚持要把我的那些东西全部保留下来,哪怕是小学课本也最好别扔掉。

我想到了我的"百宝箱"。

其实不加引号也行,虽然对别人来说那里装的都是垃圾,但对我来说那里装的绝对都是宝贝,十来年没碰过了,也记不起来装的都是有什么了,印象比较深的大概有几只拆开的电子表、闹钟,拆散的收录机配件,螺丝,铁丝儿,手电筒啥的。

在没有电动玩具玩耍的年代,这些都是我的玩具,而且一直陪伴我到了初中毕业。那时候,我每晚都被"逼"着看书写作业,累了的时候就拆个闹钟玩玩,或者随便接几个喇叭听音乐,一个人往往不知不觉玩到深夜而忘了睡觉。

我曾经幻想着把电子表改装成游戏机,很显然不能成功,不过我还是乐此不疲,所以我的百宝箱里大概有四五只拆毁的电子表,有语音报时的,还有公鸡打鸣的。

出来上学以后,这些东西就基本没动过了。

书,倒是偶尔还翻翻,那也是七八年前的事儿了。

这一柜子书基本没有名著,分类杂乱的很,童话故事与科普读物居多,里面甚至还夹杂着一些课后习题集、作文选刊之类的等很多根本算不上是书的东西。

当时信息不发达,我又被限制不能看太多电视(现在想想该庆幸才对),这些仅有的书都被我翻了又翻,看了又看,陪我度过了我的童年时光。

一个废纸箱,一柜子书,那个时候这些就是我的世界,正是这些造就了我自闭、偏执而又爱幻想的性格。

于是我对老妈说,还是别扔了吧,这些都是我美好的回忆啊,其实我还想接着说,说不定哪本书里还夹着我的情书呢,但是我妈已经把电话挂断了,她没时间听我啰嗦。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\347\232\204\345\243\260\345\215\241\346\202\262\345\211\247\344\272\206/index.html" "b/p/\346\210\221\347\232\204\345\243\260\345\215\241\346\202\262\345\211\247\344\272\206/index.html" new file mode 100644 index 000000000..66ea5e51b --- /dev/null +++ "b/p/\346\210\221\347\232\204\345\243\260\345\215\241\346\202\262\345\211\247\344\272\206/index.html" @@ -0,0 +1,11 @@ +我的声卡悲剧了 +

我的声卡悲剧了

昨晚一时心动,把家里的电脑装上了windows7,一切都挺好的,特效也挺漂亮,可是我的创新声卡不发声了,以前在xp下的驱动一个也不好使了。

去创新的官网上寻找驱动,发现人家已经不再理会这块10年前的声卡,无奈只好寻找各路的改版驱动,好在那个来自俄罗斯的好人还在辛勤的更新着他的kx驱动。

赶紧下了个最新版的3550版驱动,安装完之后傻眼了,声音是能出来,可是怎么听都不对味,声音瘪瘪的,又干又涩,还不如使用板载声卡呢。

再去网上搜寻一通,原来有人和我一样抱怨过了,而且据说某个版本的(3541)驱动还凑合,那就试试吧,但愿能行,不然我还得把操作系统换回去。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\347\232\204\345\245\275\345\277\230\346\200\247/index.html" "b/p/\346\210\221\347\232\204\345\245\275\345\277\230\346\200\247/index.html" new file mode 100644 index 000000000..70b01d64e --- /dev/null +++ "b/p/\346\210\221\347\232\204\345\245\275\345\277\230\346\200\247/index.html" @@ -0,0 +1,11 @@ +我的好忘性 +

我的好忘性

这次来京时,老婆大人托付的有点儿小事要办,帮家里的亲戚在北京买点儿药,冲剂类,应该就像板蓝根似的。

来之前,特地将药品的描述写了个纸条塞进我的口袋。

到了这边之后,进入工作状态后,立即将此事抛到了九霄云外了,直到老婆今日在qq上提醒我才想起。

后来经人提醒,药物无法邮寄,无论是平邮还是EMS均没戏,让我很是失望,不过还好,咨询快递公司后,人家说只要不是液体就行,而且感觉服务又比EMS好的,当然就用快递了。

靠,龌龊的EMS!额真鄙视你呀

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\347\232\204\345\246\210\345\246\210/index.html" "b/p/\346\210\221\347\232\204\345\246\210\345\246\210/index.html" new file mode 100644 index 000000000..5c81f0477 --- /dev/null +++ "b/p/\346\210\221\347\232\204\345\246\210\345\246\210/index.html" @@ -0,0 +1,23 @@ +我的妈妈 +

我的妈妈

从小学到初中的作文课,几乎每个语文老师都布置过“我的妈妈”这篇作文,

很多同学文笔细腻,感情丰富,写出的作文真实流畅,总被老师挑选出来作为范文朗诵,让我很是羡慕,

不过,我作文水平极差,在课堂上拼命咬着铅笔头,恨不得把橡皮也吞下去,还是凑不够字数。

很想回忆一下当时写的别字连篇的作文,不过一晃过去那么多年,现在一个字儿也想不起来了。

母亲节了,我再写一篇试试。

我的妈妈我妈今年五十岁了,虽然她看起来还不到五十岁,而且在我心目中也就是四十来岁的样子,我总是笑着跟她说:“妈,您是越活越年轻啊!”每当这个时候她总是高兴得合不拢嘴,心里美滋滋的。

是的,没错!我说的是实话,我妈是挺年轻的。

我妈是一名出色的乡村教师,我小的时候,爸爸在邻村的中学教书(巧了,我爸也是老师)平时不在家里住,我妈就在我们村的小学,条件极为艰苦,当时为了带我,她吃了不少苦头,一方面是她平时工作任务很重,乡村学校缺老师,她一个人要教好几门功课,跨越几个年级,另一方面是我体弱多病,当时家里又不富裕,照看我这样儿的孩子要比别的孩子多费几倍的心血。

但是她很要强,工作很优秀,同时在她的精心培养下我也茁壮成长,到了今天,我可以很负责任的说,她很成功。说到对我培养,我刚才说的好像有点儿不太谦虚,呵呵,我所指的成功就是,她把我培养成了一个善良的人,并且给了我一个快乐的童年。

想到小时候,其实我妈的脾气还是有点儿火爆的,我要是做错了事儿,挨揍也肯定是跑不掉的。但那都是因为我不懂事,打我那是怕我将来成为一个无用人,而且,所谓“打在儿身,疼在娘心”啊,我挨完揍,她也偷偷抹眼泪。

虽然先说了我妈会打我,但那毕竟是少数,大部分时候妈妈是和蔼可亲的,而且对我也百般呵护、百依百顺,要什么就给什么,想吃什么就做什么,现在回想起来,她对我简直是太溺爱了。

妈妈心灵手巧,我小时候没什么高级玩具,别人折的纸船、纸飞机、风车什么的,她拿到手后,拆开一看,马上就会折了,而且马上把我教会(看来,我也很聪明)。

小孩子都爱拆东西,别家的孩子拆了可能会挨揍,但是我妈见我拆东西不但不打我,而且还带我一起拆玩具,有次我把我仅有的很贵的“坦克”玩具给拆坏了,我妈费了好大的劲儿才把它修好。

后来我上学了,还是保留了这个爱好,拆拆装装的东西弄了一整箱,从收音机到电子表应有尽有,我觉得那些才是最好的玩具。我妈的心灵手巧并非表现在这个方面,她的缝纫技术也是出类拔萃,邻里之间有人要做衣服肯定让她帮着剪衣样,有次她给我做了个棉袄,样式比商场里面卖的还新潮,惹得很多孩子也吵着要这样儿的。

织毛衣也不在话下,不但图案精美,而且速度飞快,有次,天气突然转冷,妈妈怕我妹妹冻着,一夜之间就给我妹妹织了一顶帽子。

现在,妈妈还是能跟上时代的潮流,我给老家装上了电脑,她也很快学会了打字,想我了就上QQ和我聊两句,周末我们还会视频一下,聊聊一周的家长里短。

随着妈妈年龄的增长,她对我们也越来越依赖了,有时候陪着她聊天,我随便说个笑话就把妈妈逗得前仰后合,笑得眼泪都快下来了。她每天都上网上看看,虽然并不是每次都和我聊天(怕我工作忙),但是她说,看到我的QQ也在线,心理就很踏实了。

今天是母亲节,一个感恩的节日,身在遥远的北京,我坐在电脑前,写一点儿文字,衷心祝愿我的妈妈以及天下所有的妈妈都幸福安康。

1
+2
+3
+4
+5
+6
+
慈母手中线
+游子身上衣
+临行密密缝
+意恐迟迟归
+谁言寸草心
+报得三春晖
+
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\347\232\204\346\214\207\347\272\271/index.html" "b/p/\346\210\221\347\232\204\346\214\207\347\272\271/index.html" new file mode 100644 index 000000000..f964e584e --- /dev/null +++ "b/p/\346\210\221\347\232\204\346\214\207\347\272\271/index.html" @@ -0,0 +1,11 @@ +我的指纹 +

我的指纹

最近在做一个与指纹识别有关的项目,选了几家硬件。

我发现,无论吹嘘的多牛逼的识别硬件,对我的指纹都无可奈何,对我同事指纹的识别率基本达到百分百,却常常认不出我的指纹。

这样我调试程序的时候就很麻烦,常常需要同事的帮助,动不动就拿着硬件拉着一个同事的手说:"麻烦帮个忙,手指头借我用一下"。

没办法,我的指纹太浅,无论是光学识别器还是电容识别器都不能很好的识别,不知道这是否意味着我可以放心的去作案了?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\347\232\204\350\243\205\346\234\272\345\277\205\345\244\207\350\275\257\344\273\266\345\217\212\347\220\206\347\224\261/index.html" "b/p/\346\210\221\347\232\204\350\243\205\346\234\272\345\277\205\345\244\207\350\275\257\344\273\266\345\217\212\347\220\206\347\224\261/index.html" new file mode 100644 index 000000000..09dc3e089 --- /dev/null +++ "b/p/\346\210\221\347\232\204\350\243\205\346\234\272\345\277\205\345\244\207\350\275\257\344\273\266\345\217\212\347\220\206\347\224\261/index.html" @@ -0,0 +1,11 @@ +我的装机必备软件及理由 +

我的装机必备软件及理由

今天在网上看到有人写他的装机必备软件,看得我也心痒痒,也来说一说我的装机必备软件,每个人的习惯不一样,我选择的都是我最喜欢的。

选择的原则是有免费的就不用收费的,有开源的就不用闭源的,有小巧的就不用臃肿的(当然是同样功能的比较),有绿色的就不用安装的。

1、记事本替代,这个可选择的余地很大,gvim、Notepad++、Notepad2等等,我选择gvim,它高效、强大、聪明。

2、浏览器,这个非常重要,可选择Firefox、Chrome、Opera等等,我选择Firefox,因为Chrome目前还无法让我放弃Firefox,不过Chrome也真的很好,而且进步很快。

为啥没有IE?用IE上网让我没有安全感,而且操作起来很不爽,这点目前已有了很大改观(IE8)。

3、音乐播放器,我选择foobar,不过现在在线听音乐才是趋势,所以foobar只有在听本地的无损音频文件的时候才能派上用场。

4、视频播放器,我选择MPlayer,没有理由,就是他了,非要找个理由的话,那就是因为它是开源的而且它有很多快捷键。

5、看网络电视,选择ppstream。

6、文件管理器,选择totalcommander,又是一个绝世好软,好处多到一天也说不完。

7、在线听广播,选择龙卷风网络收音机,老牌子,质量有保证。

8、系统快捷键定制,选择ahk(AutoHotKey),可以自己编写脚本定制快捷键。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\350\247\211\345\276\227twitter/index.html" "b/p/\346\210\221\350\247\211\345\276\227twitter/index.html" new file mode 100644 index 000000000..902309398 --- /dev/null +++ "b/p/\346\210\221\350\247\211\345\276\227twitter/index.html" @@ -0,0 +1,11 @@ +我觉得twitter +

我觉得twitter

问我为啥用twitter,因为我觉得上twitter比较有技术含量(嘿嘿,想起黎叔了)。

开个玩笑而已,其实是觉得twitter上的人尤其是中文twitter用户都比较有爱心和有责任心。

虽然也有愤怒激进的,但大部分都是能够较为冷静地看待问题的人。

用句流行的话来说,就是感觉twitter上的人都比较有爱。

再一点就是它“致命”的优点了,也是被反复提及的信息及时性,这实在是很让人暗爽的特点,每天早晨打开手机第一件事就是更新twitter,不用发愁会错过什么信息,而且都是第一手资料。

今天再次帮助一位不知道twitter是何物的朋友开通了twitter,本着送佛送到西的精神,一股脑儿帮他flow了几十个有意义的中文twitter,然后又帮装上手机客户端,由于众所周知的原因,我还得把代理地址给他设置好。

弄完之后,感觉自己像是一个传教士。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\221\351\235\240\345\256\275\345\270\246\346\226\255\344\272\206/index.html" "b/p/\346\210\221\351\235\240\345\256\275\345\270\246\346\226\255\344\272\206/index.html" new file mode 100644 index 000000000..0b2481ab3 --- /dev/null +++ "b/p/\346\210\221\351\235\240\345\256\275\345\270\246\346\226\255\344\272\206/index.html" @@ -0,0 +1,11 @@ +我靠,宽带断了 +

我靠,宽带断了

家里的宽带没被我怎么用过,只是每天晚上用来听相声,可是由于忘记去续费导致我昨天晚上没听成,体验了一夜失去互联网的感觉。

这种体验让我感到相当不爽,因为意识到自己太依赖互联网了,哦卖糕的,我有网瘾。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\210\264\347\235\200\350\200\263\346\234\272\345\271\262\346\264\273\345\204\277/index.html" "b/p/\346\210\264\347\235\200\350\200\263\346\234\272\345\271\262\346\264\273\345\204\277/index.html" new file mode 100644 index 000000000..3b24031f2 --- /dev/null +++ "b/p/\346\210\264\347\235\200\350\200\263\346\234\272\345\271\262\346\264\273\345\204\277/index.html" @@ -0,0 +1,11 @@ +戴着耳机干活儿 +

戴着耳机干活儿

我以前写代码的时候总是习惯戴着耳机写,代码的风格总是跟着音乐的风格,一会儿古典一会儿流行,要是哪天赶上一段二泉映月之类的,写出的代码立即就透露出点点的哀伤,就连变量的命名也变得婉转起来。

当然了,如果碰上不好的音乐,写出的代码总是bug特别多!所以我过一阵子就会清理一下硬盘上的mp3,把那些影响代码质量的音乐彻底删除,比如黑色星期天之类的。

总之,音乐就像是我的粮食,一天没听音乐就像是没吃饭似的。

不过,要是按刚才这句话的定义,我已经个把月没吃饭了,最近有个项目搞得我压力特别大,耳机也懒得戴了,每天就是挣扎在一堆文档中间。

前天吃饭时突然得到同事的点醒,才意识到我还得把耳机戴上,于是乎,今天的工作就十分顺利,事情也很流畅,我仿佛又找到突然间的自我了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\211\213\346\234\272\345\206\231\345\215\232\345\256\242\346\265\213\350\257\225/index.html" "b/p/\346\211\213\346\234\272\345\206\231\345\215\232\345\256\242\346\265\213\350\257\225/index.html" new file mode 100644 index 000000000..6d8f5aed9 --- /dev/null +++ "b/p/\346\211\213\346\234\272\345\206\231\345\215\232\345\256\242\346\265\213\350\257\225/index.html" @@ -0,0 +1,11 @@ +手机写博客测试 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\211\213\346\234\272\345\217\221\345\233\276\347\211\207\346\265\213\350\257\225/index.html" "b/p/\346\211\213\346\234\272\345\217\221\345\233\276\347\211\207\346\265\213\350\257\225/index.html" new file mode 100644 index 000000000..cd3d0f718 --- /dev/null +++ "b/p/\346\211\213\346\234\272\345\217\221\345\233\276\347\211\207\346\265\213\350\257\225/index.html" @@ -0,0 +1,11 @@ +手机发图片测试 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\211\213\346\234\272\345\217\221\347\232\204/index.html" "b/p/\346\211\213\346\234\272\345\217\221\347\232\204/index.html" new file mode 100644 index 000000000..48522374b --- /dev/null +++ "b/p/\346\211\213\346\234\272\345\217\221\347\232\204/index.html" @@ -0,0 +1,11 @@ +手机发的 +

手机发的

今天回来的有点儿晚,并且跑步的距离有所延长,大概比前几次多跑了三百米。电脑都关了,才想起还没有做记录,爬起来,用手机发个报告。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\211\213\346\234\272\346\262\241\347\224\265\344\272\206/index.html" "b/p/\346\211\213\346\234\272\346\262\241\347\224\265\344\272\206/index.html" new file mode 100644 index 000000000..4b0d4008e --- /dev/null +++ "b/p/\346\211\213\346\234\272\346\262\241\347\224\265\344\272\206/index.html" @@ -0,0 +1,11 @@ +手机没电了 +

手机没电了

手机没电了本打算在路上写今天的博客,结果手机一个劲儿地提醒电量低。

我看看能不能发出此篇。

我的手机配了两块电池,一块是原装的,另一块也是原装的。

在轻度使用的情况下每块电池可以坚持一周左右,最近使用过度,连三天都很勉强。

本来我家里有座充,公司有旅行充,但是现在在路上,没电了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\211\223\347\211\214/index.html" "b/p/\346\211\223\347\211\214/index.html" new file mode 100644 index 000000000..c52f2feb7 --- /dev/null +++ "b/p/\346\211\223\347\211\214/index.html" @@ -0,0 +1,11 @@ +打牌 +

打牌

没有比陪二老打牌更重要的事情了。

每年的暑假,二老都会千里迢迢从老家赶过来。不为别的,只为了在这个漂泊的地方能让我感受多一些家的温暖。烦恼的事情向二老倾诉一下(当然不会),工作或生活上的成绩也略作汇报。

但是平时工作都很忙,白天基本不在一起,能够一起聊天的时间也就是晚上的打牌了。

夏日的时光,如果能给惬意下一个定义的话,除了吹着空调盖棉被意外,就是吃着西瓜陪二老打牌了。欧阳修在醉翁亭记中说“醉翁之意不在酒,在乎山水之间也”。陪二老打牌亦如此,不在乎输赢,在乎谈笑之间也。

从邻家孩子的高考,到印巴关系的进展,无所不聊。基本上,都是老爸在说,我在听,偶尔扮演一下相声演员捧哏的角色,说一声“哦,那是,那当然了”,让话题得以延续。

可能是因为经历过困难时期的原因,每当我对现实生活稍有不满,老爸都会给我来一段忆苦思甜,经历过吃不饱的日子,虽然现在提起来轻描淡写,但是对于我来说都具有巨大的威慑力,与二老经历的苦难相比,我现在所承受的压力自然不值一提。

聊的都是家长里短,外人看来不值一提,但每每此时正是教导我辈的绝好时机,无论是诚信做人还是认真做事,都能在小小的牌桌上得以体现,我打牌虽技术不行,但好在能够坚持,这么多年来,陪着二老练手,基本上也将斗地主的规则了然于胸,偶尔老爸耍赖,我亦能联合老妈将牌面算的一清二楚,“炸弹要关键时候再出”,老爸说,我说:“ei!”。

希望将打牌进行到底。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\211\233\345\214\205/index.html" "b/p/\346\211\233\345\214\205/index.html" new file mode 100644 index 000000000..cbdf31891 --- /dev/null +++ "b/p/\346\211\233\345\214\205/index.html" @@ -0,0 +1,11 @@ +扛包 +

扛包

媳妇带着孩子过来视察工作了,所谓兵马未动粮草先行,来之前先把小孩子用的东西打了个大包裹给寄了过来。

也不知是放假的原因还是快递公司的车没有动车组快,她们已经到两天了,我今天才收到包裹。一个很大的包裹,被快递公司在外面又包了一层蛇皮袋,然后又用透明胶带在外面缠了几圈,再加上一层土,看起来让我想到了民工兄弟。

就这大包,下班后我往肩上一扛,一股劳动者的优越感油然而生,用媳妇儿的话说,我要是手里再拿只山寨手机,然后把喇叭外放打开,播放一曲高亢的"月亮之上",就完美了!

PS:我也是个民工,此篇没有鄙视我们民工的意思。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227.png" "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227.png" new file mode 100644 index 000000000..280eaf017 Binary files /dev/null and "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227.png" differ diff --git "a/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_120x120_fill_box_smart1_3.png" "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..ff0a644be Binary files /dev/null and "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_1600x0_resize_box_3.png" "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_1600x0_resize_box_3.png" new file mode 100644 index 000000000..cbc8f3666 Binary files /dev/null and "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_1600x0_resize_box_3.png" differ diff --git "a/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_800x0_resize_box_3.png" "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_800x0_resize_box_3.png" new file mode 100644 index 000000000..fa798c800 Binary files /dev/null and "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_800x0_resize_box_3.png" differ diff --git "a/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/index.html" "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/index.html" new file mode 100644 index 000000000..d9cfefabe --- /dev/null +++ "b/p/\346\211\276\344\270\252\345\234\260\346\226\271\350\227\217\350\265\267\346\235\245/index.html" @@ -0,0 +1,11 @@ +找个地方藏起来 +
Featured image of post 找个地方藏起来

找个地方藏起来

前两天与老同学用msn聊天,虽然都工作了几年,但是均感叹现在遭受的压力巨大,无论是来自工作的还是来自家人的。

聊到后来,都有找个地方躲起来的想法,躲到一个没有人认识的地方,或深山老林,或几角旮旯。

像鸵鸟那样,找个沙堆把头埋进去如何?

–由sbabybird于2/27/200805:37:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\211\276\345\210\260\344\270\200\344\270\252\344\270\215\351\224\231\347\232\204\346\270\270\346\210\217/index.html" "b/p/\346\211\276\345\210\260\344\270\200\344\270\252\344\270\215\351\224\231\347\232\204\346\270\270\346\210\217/index.html" new file mode 100644 index 000000000..0daefb446 --- /dev/null +++ "b/p/\346\211\276\345\210\260\344\270\200\344\270\252\344\270\215\351\224\231\347\232\204\346\270\270\346\210\217/index.html" @@ -0,0 +1,11 @@ +找到一个不错的游戏 +

找到一个不错的游戏

这儿http://www.appinn.com/Frets-On-Fire-Portable/,是一个好玩儿的吉他游戏,可以让我这个吉他弹的很烂的人过过干瘾。

ps:今天跑步指数2星★★☆☆☆

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\211\276\351\222\261/index.html" "b/p/\346\211\276\351\222\261/index.html" new file mode 100644 index 000000000..0e542bb11 --- /dev/null +++ "b/p/\346\211\276\351\222\261/index.html" @@ -0,0 +1,11 @@ +找钱 +

找钱

跑完步,口渴,走到小区门口超市买酸奶喝。这是一个袖珍超市,但是麻雀虽小五脏俱全,所以我懒得去大超市了。

这么晚了,超市也快收工了,只有我一个顾客,门口的收银员打着哈欠,我拎了一盒酸奶出来。

"九块钱"收银员说,由于零钱不够了,我只好拿出一张一百的,"请问您有没有一块钱零钱?"她接着问"这样就可以找你九十了",翻遍口袋,摸出一块钱给她。

这个时候,只见超市的pos机屏幕上写着:收101.00元、应找零92.00元。看来我的大脑也有点儿缺氧

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\212\245\345\221\212/index.html" "b/p/\346\212\245\345\221\212/index.html" new file mode 100644 index 000000000..e0ac2c8db --- /dev/null +++ "b/p/\346\212\245\345\221\212/index.html" @@ -0,0 +1,11 @@ +报告 +

报告

上午制定了跑步的计划,旨在锻炼身体陶冶情操。

说到就要做到,时间刚过8点一刻,我就换上球鞋(本来还想置办一套装备,但是看看动辄上千元的跑鞋只得作罢,还是等过几天跑步略显成效时再买吧)、塞上耳机,大步流星冲下楼去。

HitFM正在播放着动感音乐,伴着音乐的节拍,我迈开轻盈的步伐,前面两个保安晃来晃去,被我轻松越过(靠,又不是打篮球)。

由于是刚开始跑,为了既达到锻炼效果又不丧失信心,我把速度放的很慢,基本上比散布快一些就行。

总算绕着小区跑了一圈,心跳还算正常,喘气有些加速,身上也微微出汗。

OK!我很满意,能否坚持下去虽然是个未知数,但毕竟好的开始已是成功的一小半。

ps:这个跑步计划已经宣扬的全世界都知道了,要是跑两天即放弃,我岂不是无颜见江东父老了,唉,年轻人啊,爱冲动。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\212\275\350\200\203/index.html" "b/p/\346\212\275\350\200\203/index.html" new file mode 100644 index 000000000..64bdd7bf4 --- /dev/null +++ "b/p/\346\212\275\350\200\203/index.html" @@ -0,0 +1,11 @@ +抽考 +

抽考

   高考刚过,每年的这个时候都会有一大帮人在哪儿声泪俱下的控诉这万恶的高考制度。

我也讨厌高考,但是在我的记忆里,另一种考试制度更令我恶心,那就是—-抽考!

在我上小学的时后,比较害怕的就是考试了,但最让我感到不安的是每个班级选拔“尖子生”的过程。

那个时候每到期末每个班级总是抽出学习成绩最好的几个同学参加镇上的抽考,他们的考试成绩直接代表了整个班级的学习成绩,也代表了老师的教学水平。

私下里大家管抽到的这些学生叫“尖子生”。

从小学到初中我几乎一路是“尖子生”,至于为什么要有“尖子生”,这样考试有什么意义我就不去想了,只知道如果被老师抽到当“尖子生”就全家开心,我在家也可以放肆一些,万一抽不到就没人给我好脸色。

好在屡次的抽考过程中我只有两次没有被选中,不知是幸运还是不幸。

其中一次是在小学二年级的时候,虽然没有被选中,但是也参加了考试(数学替考),当时我的情况是语文极差但数学很好(至少比那些“尖子”要好一些),老师为了他们的荣誉,便让我替另外一个考生参加了数学考试,试卷虽然是我答的却不能填写我的名字。

好在当时也没什么自尊心,也就爽快的答应了,现在想一想作为老师也太不应该了。(这也是我后来虽念了师范却最终没有选择做老师的原因之一)。

到后来就越来越抵制这种虚伪的考试,大概是四年级,我越来越贪玩,成绩真的不行了,要期末考试了,老师们纷纷挑选“尖子”,刚开始还被提名,后来经过多层过滤,勉强坚持到了最后一轮评测,直到我们伟大的辛勤的园丁说:“好了,那谁,你回去吧,其他人留下”。

于是我提着书包灰溜溜回家,心里却说不出的高兴,不用去参加TMD关系到班集体荣誉的考试了!爽!哼哼,我冷笑,冷笑。现在回忆起来,脑子里仍旧充斥着老师们那因为贪图班级的名次而扭曲的面容(这就是原因之二)。

不知道现在怎么样了,在当时,这样的考试制度,它伤了太多太多孩子的心。ps:今日饮酒过渡沉醉不知归路兴尽打车走误入小区深处呕吐、呕吐引来保安无数!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\213\224\346\262\263/index.html" "b/p/\346\213\224\346\262\263/index.html" new file mode 100644 index 000000000..baf5356ee --- /dev/null +++ "b/p/\346\213\224\346\262\263/index.html" @@ -0,0 +1,11 @@ +拔河 +

拔河

公司组织全体员工在北京某郊县(靠,好神秘啊)开了三天年会。

年会,就是大家忙了一年了,抽个时间在一起喝喝酒,放松放松,再顺便总结一下工作。

很显然,我对前者更感兴趣,这期间,我参加了一场拔河比赛,喝了几顿酒,飙了几首歌,甚至还进行了一次演讲。

感触最深的就是这场拔河比赛了,我们组从确定完人数之后就是公认的"死亡之组",因为全是体格单薄的人,个个身材像根铅笔。

在赛前,我们一直担心我们组上去就被别人轻易拽过去,但是,当我们都抓住绳子,并且在此起彼伏的加油声中竭尽全力时,我才发现,我们其实不弱。

人是有巨大的潜力可挖掘的,我们的身子向后倾斜,快要倒在地上,双手使劲攥住绳子,手已经失去了知觉,也看不清跳起来喊着"加油!"的人的脸,那一刻我只知道的是,要把绳子拽过来。

最后,在僵持了将近一分钟后,我们终于感到绳子一轻,都倒在了地上。

虽然在接下来的两局里我们都败下阵来,但是虽败犹荣,我们僵持不下并最终胜利的那一局,被公认为在整场比赛中的最精彩的一局。

虽然第二天腰酸背疼,但是我会记住这次拔河比赛,以后也会把这事儿当作床边故事讲给孙子听,虽然最后可能告诉他,爷赢了!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\213\245\346\212\261\346\254\241\346\226\260\347\211\210/index.html" "b/p/\346\213\245\346\212\261\346\254\241\346\226\260\347\211\210/index.html" new file mode 100644 index 000000000..e908efa62 --- /dev/null +++ "b/p/\346\213\245\346\212\261\346\254\241\346\226\260\347\211\210/index.html" @@ -0,0 +1,11 @@ +拥抱次新版 +

拥抱次新版

软件如果不用最新版是可耻的,我以为。

这个毛病把我折磨的够呛,每天都有大量新版的软件发布,我就更新更新再更新,每天就迷失在软件更新的过程中,不在更新中就是在下载更新的路上。

然而,尝鲜总是要付出代价的,光怪陆离的新特性一个也没用上不说,新bug带来的烦恼却一点儿也没少。

新系统、新软件带来的兼容性问题也纠缠不休,可我却乐此不疲,有点儿飞蛾扑火的味道。

终于有那么一天,我顿悟了,次新版才是最好的!我说的次新版,也就是比最新版稍微老那么一点儿的版本。

优点如下,你看,首先次新版的功能比最新版不会差太多,该有的基本都有,从使用的角度来说绝对是够用的,其次,次新版的稳定性大大高于最新版,因为经过了长时间的测试和bug修正功能的磨合已经趋于完美,不信的话你看看windowsxp就知道了。别信那些发布最新版时的噱头,什么“大大降低了内存占用”“显著提升了性能”等等,我们脆弱的心灵再也经不起忽悠。

就拿开发环境来说吧,现在的vs2010发布了,也就是说赶紧用vs2008吧,因为它现在是最好用的,同样,听说office2010也出来了,也就是说是时候全面使用office2007了,ubuntu10.04今夜也就发布了,先别用,赶紧用9.10吧,目前来说9.10才是最完美的。

呵呵,以上纯属忽悠,如有意外,那实在是巧合。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\215\241\345\210\260\344\270\200\351\246\226\350\200\201\346\255\214--lady/index.html" "b/p/\346\215\241\345\210\260\344\270\200\351\246\226\350\200\201\346\255\214--lady/index.html" new file mode 100644 index 000000000..34bbdabc3 --- /dev/null +++ "b/p/\346\215\241\345\210\260\344\270\200\351\246\226\350\200\201\346\255\214--lady/index.html" @@ -0,0 +1,11 @@ +捡到一首老歌--Lady +

捡到一首老歌--Lady

在Winamp的电台上捡到这首歌Lady,马上被kennyrogers的嗓音吸引了。

–由sbabybird于11/17/200702:10:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\215\256\350\257\264\346\230\216\345\244\251\350\246\201\351\231\215\346\270\251/index.html" "b/p/\346\215\256\350\257\264\346\230\216\345\244\251\350\246\201\351\231\215\346\270\251/index.html" new file mode 100644 index 000000000..7dc8523d4 --- /dev/null +++ "b/p/\346\215\256\350\257\264\346\230\216\345\244\251\350\246\201\351\231\215\346\270\251/index.html" @@ -0,0 +1,11 @@ +据说明天要降温 +

据说明天要降温

北京的天气要降温的消息已经提前三天放出,电视、网络反复强调,就连公司内部的网络都发布温馨小贴士提醒大家注意加衣服了。

今晚跑步的时候明显感受到寒风的力度,不过我还是跑得微微出汗。

昨晚(应该说是今早)睡的实在太晚,今天在回来的车上都昏昏欲睡,刚刚跑完步回来后洗了个热水澡,本来困倦的身体又感觉精神了,打开电脑,在日志里罗嗦两句再睡。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\216\211\347\272\277/index.html" "b/p/\346\216\211\347\272\277/index.html" new file mode 100644 index 000000000..8a83e85c3 --- /dev/null +++ "b/p/\346\216\211\347\272\277/index.html" @@ -0,0 +1,11 @@ +掉线 +

掉线

昨天网络掉了一夜的线,早晨才恢复,宽带客服的电话都被打爆了,我好不容易挤进去一个电话,被告知他们全部技术人员都在彻夜加班抢修故障,我靠,看来干技术的全是这样儿的命啊!本着惺惺相惜的态度,我也只好随便发两句牢骚就把电话挂了。

ps:昨天跑步速度比平时稍快。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\216\222\351\230\237/index.html" "b/p/\346\216\222\351\230\237/index.html" new file mode 100644 index 000000000..183744b83 --- /dev/null +++ "b/p/\346\216\222\351\230\237/index.html" @@ -0,0 +1,11 @@ +排队 +

排队

我这辈子最痛恨两件事儿,一个是排队,另一个还是排队。

可悲的是,排队是必须要面对的。取钱要排队,交费要排队,买票要排队,上车要排队,点儿背的时候上厕所也要排队。

排队的时候,心情是焦躁不安的,是望眼欲穿的,是忍不住想骂娘又不知该骂谁的。

这个时候唯一可以获得安慰的是你身后的队伍越来越长,而你前面的队伍越来越短。

可是,当队伍就像便秘的大肠那样久久不能蠕动时,当你的伸长了脖子恨不得直接伸到窗口撞墙时,你还是不能怎样,大家都一样。

以上是去银行排队有感,纯属发泄,如有雷同,那简直是巧合。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\216\245\347\253\231/index.html" "b/p/\346\216\245\347\253\231/index.html" new file mode 100644 index 000000000..76e1e6422 --- /dev/null +++ "b/p/\346\216\245\347\253\231/index.html" @@ -0,0 +1,11 @@ +接站 +

接站

第一次到火车站接人。

需要买站台票,售票员会要求凭火车票购买站台票,但是你说是来接人的,她就会毫不犹豫地卖给你站台票了,我感觉这是个漏洞。

到了站台才发现我来的实在是早了点儿,火车还有一个多小时才到站,接人的地方又不是候车室,别说椅子了,连个马扎都没有。

我干脆一屁股坐在了冰凉的地板上,怀着焦急的心情,等待火车的到来。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\216\250\350\215\220\344\270\200\344\270\252\345\211\247/index.html" "b/p/\346\216\250\350\215\220\344\270\200\344\270\252\345\211\247/index.html" new file mode 100644 index 000000000..e5411bbdb --- /dev/null +++ "b/p/\346\216\250\350\215\220\344\270\200\344\270\252\345\211\247/index.html" @@ -0,0 +1,11 @@ +推荐一个剧 +

推荐一个剧

听说《黑镜》第三季出来了,激动不已,虽然早就不再舍得花时间刷剧,但是《黑镜》太特别了,忍不住花了半夜的时间连看了四集(以往的两季都是每季三集,但是这一季不知道为啥这么猛一次就放出来六集)。

几年前有本名叫《浅薄》的书,火了一段时间,作者在书中痛斥现在各种高科技带来的负面效应,互联网让我们越来越浅薄,失去了自我思考的能力,思想变得越来越贫瘠,只能靠不断寻求刺激来掩盖。

显然,《黑镜》的编剧们也意识到了,只是这些人的脑洞更大,并带有强烈的反乌托邦味道,随便看一集基本就能粉碎“高科技能够给人类带来幸福”这个幻象。

如果只是对迷信技术的讽刺也就罢了,让此剧如此出色和受追捧的关键还是在于对人性的探索和拷问,在不受技术限制(科幻嘛)的情况下,主人公时刻都徘徊在看似很爽(至少让我们羡慕)但其实又痛苦不堪的两种境界边缘,虽然英国人的口味有点重,比如第一季第一集里就要让他们的首相现场直播与一只猪发生不可描述的事情。比如给大家都装上智能眼球,然后通过技术彻底拉黑一个人(物理上的拉黑,关于他的声音和图像全部都被屏蔽)。

虽然都是幻想,不过还是带有对现实世界事情的映射,最新的这一季,据大家评论说感觉不如前两季精彩,但是我看了后感觉已经非常不错了,毕竟无论从剧情还是效果都高出同期剧集一大截,属于良心制作了。

新一季的第一集甚至科幻的都有点儿不像科幻了,如果拿掉一些不怎么影响剧情的科幻效果,看起来感觉跟我们现在生活的世界是一样的。故事中的人物无时不刻都在被电子化的社交圈所包围,每个人都靠别人给他点赞来获得认可,评分高的人受到的“尊重”就越多,有点儿像现在的信用体系,但是比较讽刺的是,这里的人们为了维持较高的评分已经变得失去了自己,带着面具生活,早已忘了坦白说话是什么滋味。

再说就有点儿剧透了,如果喜欢科幻的话,可以抽时间看看。

目前在这里还能看: http://www.bilibili.com/video/av6802900/

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\216\250\350\215\220\344\270\200\344\270\252\345\234\250\347\272\277\345\220\254\345\271\277\346\222\255\347\253\231\347\202\271/index.html" "b/p/\346\216\250\350\215\220\344\270\200\344\270\252\345\234\250\347\272\277\345\220\254\345\271\277\346\222\255\347\253\231\347\202\271/index.html" new file mode 100644 index 000000000..76faea027 --- /dev/null +++ "b/p/\346\216\250\350\215\220\344\270\200\344\270\252\345\234\250\347\272\277\345\220\254\345\271\277\346\222\255\347\253\231\347\202\271/index.html" @@ -0,0 +1,11 @@ +推荐一个在线听广播站点 +

推荐一个在线听广播站点

有睡前听相声或评书的习惯,有个人在旁边罗哩罗嗦没完是个很好的催眠剂,可以很快入睡,保证了充足的睡眠。MoRadio是一个很简洁干净的在线广播站点,界面清新漂亮,电台丰富,甚至可以在线听小说。

有了它我基本舍弃了“龙卷风网络收音机”。网址:http://www.moradio.cn/

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\216\250\350\215\220\345\207\240\344\270\252\346\210\221\347\273\217\345\270\270\345\216\273\347\232\204\347\275\221\347\253\231/index.html" "b/p/\346\216\250\350\215\220\345\207\240\344\270\252\346\210\221\347\273\217\345\270\270\345\216\273\347\232\204\347\275\221\347\253\231/index.html" new file mode 100644 index 000000000..94b74ae1f --- /dev/null +++ "b/p/\346\216\250\350\215\220\345\207\240\344\270\252\346\210\221\347\273\217\345\270\270\345\216\273\347\232\204\347\275\221\347\253\231/index.html" @@ -0,0 +1,11 @@ +推荐几个我经常去的网站 +

推荐几个我经常去的网站

推荐一些我经常去的网站吧,可能比较偏向技术宅。

0、技术类

  • http://stackoverflow.com/ 根据名字(栈溢出)就知道这是一个程序员相关的站点,之所以把它排在第一位,是因为它基本上是程序员每天必上的网站,各种编程问题如果在这个站上找不到解决办法,那几本上可以宣告在互联网上找不到答案了。即使没有遇到问题,也可抽时间浏览一下当前热门的问题,碰上自己能回答的,也别吝啬,热情回馈一下吧,据说很多国外公司在面试程序员时,在stackoverflow上回答的问题质量也是一个评价指标。
  • https://github.com/ 世界最大开源社区,免费送你版本控制空间,可玩性很高,连微软等大公司也将自己的开源代码放在上面托管,牛人很多。想要成为牛人?先在github上follow那些牛人吧,看看他们在做什么项目,在写什么样的代码。
  • http://news.ycombinator.com/ hackernews,《黑客与画家》的作者,硅谷著名孵化器创始人ycombinator创建的站点,很多科技创业项目首选的推广平台,此网站乍一看很粗糙,但是干货很多,经常有大神级牛人在上面发布作品。
  • http://news.dbanotes.net/news 上一个网站的国内版,中文,国内著名DBA冯大辉创建,质量虽不比hackernews,但可以了解国内的技术形式。
  • http://geek.csdn.net/ 国内著名程序员网站CSDN出品的hacknews,文章质量良莠不齐,偶有精品,可以偶尔上去看看。

1、学习提升

  • 网易云课堂 说网易为中国互联网的良心一点儿都不过分(百度去死去死),云课堂内容质量非常高,基本上可以做到足不出户读完各种大学,另外网易还翻译了很多精彩的TED演讲视频,TED爱好者的福音。
  • 慕课网 免费学习各种IT技能,前端、后端、设计、架构等等,基本上如果你愿意学,可以自学成为全栈工程师,那些整天嚷嚷着就差一个程序员了的创业团队,上去看看吧。
  • Codecademy在线学习编程网站的鼻祖,以前我Js和Python就是在这上面学的,艺不压身,多掌握基本语言吧,每个语言都代表一种编程思想。
  • 高高手 这家教Photoshop、设计和摄影,比蓝翔还要好。

2、视野

  • 知乎 不要多上,否则容易产生你掌握很多知识的错觉,佛家说,贪恋知识也是一种“贪”,但是确实可以开阔视野,增长见识,适可而止。
  • quora 知乎就是模仿的它,问答质量非常高,但里面也充斥着各种鸡汤,如果想练习英文阅读能力,可以尝试一下。

3、音乐

  • 邻居的耳朵 一篇美文配一首好歌,能让你经常发现以前错过的好歌。
  • rainymood 这个网站只有一个功能,就是播放下雨的声音,催眠最佳。
  • 音频应用 国内第一的录音论坛。
  • 网易云音乐 不多说了。
  • 叉烧网 音乐器材是一个跟单反一样的不归路。

###4、美图

  • 500px 高质量图片网站,很多摄影师在上面出售作品,做PPT时用的到
  • pinterest 图片网站,瀑布流图片站的鼻祖,做PPT时用得到

###注:有些网站可能需要翻墙才能上。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\217\220\351\253\230\345\267\245\344\275\234\346\225\210\347\216\207\347\232\204\345\277\203\345\276\227/index.html" "b/p/\346\217\220\351\253\230\345\267\245\344\275\234\346\225\210\347\216\207\347\232\204\345\277\203\345\276\227/index.html" new file mode 100644 index 000000000..19c5a6048 --- /dev/null +++ "b/p/\346\217\220\351\253\230\345\267\245\344\275\234\346\225\210\347\216\207\347\232\204\345\277\203\345\276\227/index.html" @@ -0,0 +1,11 @@ +提高工作效率的心得 +

提高工作效率的心得

1、建立一个简洁todolist

,这个todolist可以使用任意方式建立,比如笔记本或者googletasks,总之就是一个简洁的任务列表,每天上午开始工作之前,将今天要做的事情逐条记录下来,按照要事优先的原则,我一般是把比较费脑子的事情放在最前面。

然后每完成一项就在上面打勾,很有成就感。

2、整理好自己的文档资料:)

,给自己建立一个清晰有序的文档管理机制,这样当你需要某个文档资料的时候可以立即将其取出。

我使用totalcommander+dokuwiki进行管理。

将文档按照工作项目进行分类,而不是按照文件的扩展名分类。

3、记录工作日志

,每天记录工作日志可以有效分析出自己每天的时间花在了哪里,并改进自己对工作任务的安排。

而且将自己的做的事情记录下来对记忆力来说也有好的帮助。

4、关掉qq、msn

,不上比较耗费时间的网站比如GoogleReader,工作时就是集中精力,不开聊天工具就不会被打扰,不开rss阅读器就不会有资讯压力。

5、听音乐

,带上耳机听听自己喜欢的音乐,这样工作时心情比较放松,思维也比较活跃。

6、使用高效的软件和计算机操作方式

,比如使用vim代替普通编辑器,使用totalcommander代替windows的资源管理器,使用脚本或批处理命令来代替大量的鼠标操作。

需要整理思路时可使用freemind来绘制一张脑图。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\225\264\347\220\206\345\256\214\346\257\225/index.html" "b/p/\346\225\264\347\220\206\345\256\214\346\257\225/index.html" new file mode 100644 index 000000000..f367e9057 --- /dev/null +++ "b/p/\346\225\264\347\220\206\345\256\214\346\257\225/index.html" @@ -0,0 +1,11 @@ +整理完毕 +

整理完毕

从春节后开始的硬盘整理计划总算进行完了。

通过这次整理我发现了我曾经认为很重要的文件其实一次也不会被用到,当我真正想用到哪些文件时,通常它们已经过期了(尤其是某些软件的安装包)。

大量的工作文档也是整理的重点,杂乱无章的文件夹比乱糟糟的书桌更让我抓狂,期间我甚至萌生了自己写一个资料管理软件的念头,当然了,工作太忙,该计划被搁置(说不定哪天我真就卷起袖子为自己写一个)。

目前来说,使用totalcommader这个绝世好软配合良好的管理思路,也基本上可以管理好那些资料了。

当然在我翻遍文件夹之后,也找到了不少被遗忘的时光,我甚至找到了我在大学时自娱自乐录制的卡拉ok,恩,那时嗓音使劲儿装成熟,现在都快到了装嫩的年纪了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225.png" "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225.png" new file mode 100644 index 000000000..77baa449f Binary files /dev/null and "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225.png" differ diff --git "a/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_120x120_fill_box_smart1_3.png" "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..a72f1af70 Binary files /dev/null and "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_1600x0_resize_box_3.png" "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_1600x0_resize_box_3.png" new file mode 100644 index 000000000..df135af7e Binary files /dev/null and "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_1600x0_resize_box_3.png" differ diff --git "a/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_800x0_resize_box_3.png" "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_800x0_resize_box_3.png" new file mode 100644 index 000000000..5ff9a49c2 Binary files /dev/null and "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_800x0_resize_box_3.png" differ diff --git "a/p/\346\226\207\346\241\243\346\226\207\346\241\243/index.html" "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/index.html" new file mode 100644 index 000000000..79dce6f4d --- /dev/null +++ "b/p/\346\226\207\346\241\243\346\226\207\346\241\243/index.html" @@ -0,0 +1,11 @@ +文档!文档! +
Featured image of post 文档!文档!

文档!文档!

快要下班的时候,我的眼神已经分外地扑簌迷离了,审核了一天的文档,看了再写,写了再看,千锤百炼。

瞅了瞅身边的同事,个个被文档折磨得目光呆滞,面如死灰,头发蓬乱,口吐白沫。

说实话,我宁愿写一千行代码也不愿意写一行文档,宁愿写一行文档,也不愿去审一千行文档。

因为,审文档你得咬文嚼字,你得反复推敲,就算是仅仅挑出错别字就已经很费神了。

慢慢地,我感觉到文字在屏幕上开始爬行,一会儿排成人字,一会儿又排成一字。

ps:跑步一直在继续,耶!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\226\255\347\275\221\344\270\200\345\244\251\347\232\204\346\204\237\345\217\227/index.html" "b/p/\346\226\255\347\275\221\344\270\200\345\244\251\347\232\204\346\204\237\345\217\227/index.html" new file mode 100644 index 000000000..a67fedb38 --- /dev/null +++ "b/p/\346\226\255\347\275\221\344\270\200\345\244\251\347\232\204\346\204\237\345\217\227/index.html" @@ -0,0 +1,11 @@ +断网一天的感受 +

断网一天的感受

公司的光纤今日出了故障,整整一天无法上线,感受如下:

1、无法与出差现场的同事交流,同事亦无法访问公司网络,导致工作受阻。

2、IM软件不能上线,家人朋友都很担心,老妈更是打来电话,问我为什么qq不在线。

3、不能收发电邮,心情焦躁不安。

4、无法获取最新资讯,感觉与世隔绝了。

5、GoogleReader积累了200+的未读条目,原来我订阅了这么多信息。

6、终于修好了,爽!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\226\260\344\271\260\344\272\206\346\211\213\346\234\272......\347\224\265\346\261\240/index.html" "b/p/\346\226\260\344\271\260\344\272\206\346\211\213\346\234\272......\347\224\265\346\261\240/index.html" new file mode 100644 index 000000000..94c5bf42f --- /dev/null +++ "b/p/\346\226\260\344\271\260\344\272\206\346\211\213\346\234\272......\347\224\265\346\261\240/index.html" @@ -0,0 +1,11 @@ +新买了手机......电池! +

新买了手机......电池!

新手机是没买,买了块电池倒是真的,我那块旧电池已经不行了,开始倚老卖老,随便打个电话就报电量低甚至关机,无奈选不到满意的新手机(请参见这里),而且手里这个旧手机其他一切正常,于是我决定先买块电池,再凑合用一段时间,起码用到咱们大陆开始上3G。

不过也有网友比较悲观,在网上发帖子说:"大陆3G能用时,家祭无忘告乃翁!"跑到卓越网上选了块原装电池(据说是原装),今天就给我送了过来,由于电池个头太小,我怕快递公司送货的拿着太轻松,觉得没有挑战性,会不乐意,就顺便再买了两本书,其中一本就是大名鼎鼎的霍大爷的《时间简史》留着我失眠的时候看,另一本是比较浅显的《万物简史》留着我上厕所时看。–由sbabybird于12/14/200701:00:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\226\260\345\271\264\347\225\205\346\203\263/index.html" "b/p/\346\226\260\345\271\264\347\225\205\346\203\263/index.html" new file mode 100644 index 000000000..667e6685b --- /dev/null +++ "b/p/\346\226\260\345\271\264\347\225\205\346\203\263/index.html" @@ -0,0 +1,11 @@ +新年畅想 +

新年畅想

刚回过神儿来,现在已是2010年了,进入了传说中的二十一世纪的第10个年头。

有几点目标,希望今年可以达到。

谈不上计划,只是随便想想:

1、体重能够增加5公斤。

2、阅读5本书。

3、彻底整理好自己硬盘上的文件,并建立完善的知识管理机制。

4、学会吉他的扫弦。

5、写一个真正的pc游戏。

6、提升英文水平至可阅读非技术类新闻。

7、改善自己的GTD系统。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\240\346\263\225\351\200\232\350\277\207email\346\233\264\346\226\260\344\272\206/index.html" "b/p/\346\227\240\346\263\225\351\200\232\350\277\207email\346\233\264\346\226\260\344\272\206/index.html" new file mode 100644 index 000000000..206778a13 --- /dev/null +++ "b/p/\346\227\240\346\263\225\351\200\232\350\277\207email\346\233\264\346\226\260\344\272\206/index.html" @@ -0,0 +1,11 @@ +无法通过email更新了 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\240\347\224\250\347\232\204\344\277\241\346\201\257/index.html" "b/p/\346\227\240\347\224\250\347\232\204\344\277\241\346\201\257/index.html" new file mode 100644 index 000000000..fd8ddba7d --- /dev/null +++ "b/p/\346\227\240\347\224\250\347\232\204\344\277\241\346\201\257/index.html" @@ -0,0 +1,11 @@ +无用的信息 +

无用的信息

最近一段时间,中午休息的时候我不再上网,这样我就基本上不在公司上GoogleReader了。

随着订阅数越来越多,我的“未读条目”也爆炸式增长,听说有人为此苦恼不已,得了信息爆炸抓狂症。我的解决办法是,每天晚上回家,立即打开GoogleReader把未读条目全部清空,现在基本上每天都是在手机上阅读这些订阅了,上下班的路上,消遣消遣时间而已,哪有什么有用信息。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\240\350\256\272\345\201\232\344\273\200\344\271\210\346\277\200\346\203\205\346\234\200\351\207\215\350\246\201\350\257\273\345\221\250\344\270\200\346\270\205\346\231\250\347\232\204\351\242\206\345\257\274\350\257\276/index.html" "b/p/\346\227\240\350\256\272\345\201\232\344\273\200\344\271\210\346\277\200\346\203\205\346\234\200\351\207\215\350\246\201\350\257\273\345\221\250\344\270\200\346\270\205\346\231\250\347\232\204\351\242\206\345\257\274\350\257\276/index.html" new file mode 100644 index 000000000..7e745516c --- /dev/null +++ "b/p/\346\227\240\350\256\272\345\201\232\344\273\200\344\271\210\346\277\200\346\203\205\346\234\200\351\207\215\350\246\201\350\257\273\345\221\250\344\270\200\346\270\205\346\231\250\347\232\204\351\242\206\345\257\274\350\257\276/index.html" @@ -0,0 +1,11 @@ +无论做什么,激情最重要,读《周一清晨的领导课》 +

无论做什么,激情最重要,读《周一清晨的领导课》

年初的时候,我给大家推荐了一本书,《周一清晨的领导课》,我也是刚看了一点儿就开始给大家推荐,建议每一个管理者都看一看,现在我也断断续续读完了,略作总结。

1、责任感。作为领导者要对整个团队负责,领导者只有承担了所有的责任,才能从“管理者”变为“领导者”。如果你觉得你现在的管理有问题,检查一下你是否承担了应该承担的责任。

2、慎重做决策。书中拿“领导者是团队的司机”作为比喻,比较贴切,领导者的决策影响整个团队的发展,所以在做决策时不妨停下来认真思考一下。对于我这种做事喜欢速战速决(武断)的是一个很好的提醒。

3、要事第一。这个原则与《高效能人士的七个习惯》一书中观点完全一致,只是本书中提到了更实际的应用,即不仅自己做到要事第一,而且要让整个团队的人都明白什么是你们最重要的事情,这一点我做的还不到位,我问身边的同事“最重要的事情是什么?”每个人的回答都不太一样,有待改进。

4、听取下属建议和反馈。大部分的“独裁”管理者都比较狭隘,比较喜欢主观判断,听不进去批评。这一点跟我们的民族性格有关,我们很难像西方人那样做到“对事不对人”,不过我既然也能认识到这一点,至少说明不是一个狭隘的人,只是相当长的时间里太坚持自己是对的了,需要虚心听取更广泛的观点,鼓励建设性建议。

5、拥抱变化。不断变化会让人很不舒服,因为超出了控制,因为变化代表着未知。但在目前这个时代,必须拥抱变化,将注意力放在结果上,每一次变化都意味着新的机遇诞生,对待变化的态度很大程度上决定了你能否成功。

6、控制时间。我们所做的每一件事情基本上都可以归入四类:把重要的事情做对、把重要的事情做错、把错误的事情做对、把错误的事情做错(与时间管理学GTD思想中的四象限法则类似)。记录自己的时间安排,将黄金时间用在第一类事情上,避免第二类事情的发生,坚决不参与第三、第四类事情。

7、即时向下属反馈。如果把员工的积极性比喻成一个装满水的木桶的话,那么如下行为可以帮助员工装满这个桶:让每一个人知道要事是什么、让每一个人都参与重要决策、倾听每一个人的意见、及时提供有效反馈(最重要)、庆祝每一个微小的成功。我在及时提供有效反馈方面做得比较差,需要有意识的去改进,要主动了解工作的真实进展并给予积极反馈。

8、积极与激情。看到本书的最后,我有一种被忽悠的感觉,也有一种豁然开朗的感觉,作者要是把这个放在最开始我可能就不会往下看了,所以作者耍了个小花招,在最后才放“大招”。因为无论如何讲解,上述的那些内容只能算“术”层面的事情,也就是说那些属于做事情的“方法”,而那些方法与技巧的根基在于,一个人有没有积极的心态和做事的激情。所以一个团队的领导向员工输送的最有价值的东西就是自己的激情,只有积极向上的人才会成为一个好的领导者。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\240\351\242\230/blog-733901.PNG" "b/p/\346\227\240\351\242\230/blog-733901.PNG" new file mode 100644 index 000000000..3654104cd Binary files /dev/null and "b/p/\346\227\240\351\242\230/blog-733901.PNG" differ diff --git "a/p/\346\227\240\351\242\230/index.html" "b/p/\346\227\240\351\242\230/index.html" new file mode 100644 index 000000000..4983e051c --- /dev/null +++ "b/p/\346\227\240\351\242\230/index.html" @@ -0,0 +1,11 @@ +无题 +

无题

我爱这个充满神秘的世界,有着无限多的未知,这么多等着我们去探索的未知加上我的好奇心,是我快乐的源泉。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1.png" "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1.png" new file mode 100644 index 000000000..cf2c15a60 Binary files /dev/null and "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1.png" differ diff --git "a/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_120x120_fill_box_smart1_3.png" "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..3d2682be9 Binary files /dev/null and "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_1600x0_resize_box_3.png" "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_1600x0_resize_box_3.png" new file mode 100644 index 000000000..d18b56687 Binary files /dev/null and "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_1600x0_resize_box_3.png" differ diff --git "a/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_800x0_resize_box_3.png" "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_800x0_resize_box_3.png" new file mode 100644 index 000000000..fcacfda1b Binary files /dev/null and "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_800x0_resize_box_3.png" differ diff --git "a/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/index.html" "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/index.html" new file mode 100644 index 000000000..f67eb54a0 --- /dev/null +++ "b/p/\346\227\251\344\270\212\345\216\273\346\211\223\344\272\206\347\226\253\350\213\227/index.html" @@ -0,0 +1,11 @@ +早上去打了疫苗 +
Featured image of post 早上去打了疫苗

早上去打了疫苗

前两天单位组织体检,一切正常,就是没有乙肝的抗体,印象中上学的时候已经打过疫苗,不过人家医生说,可能年代太久远了(靠,有那么远么?)

抗体丢了,无奈,再去接种就是了。

打针时,问人家会不会疼?

人家护士答的很爽快:"你就放心吧,我打了20年的针。。。。",

等我疼完了又接着说:"没有一个不疼的!"

–由sbabybird于11/13/200710:40:00上午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\251\345\225\212\345\220\204\344\275\215/index.html" "b/p/\346\227\251\345\225\212\345\220\204\344\275\215/index.html" new file mode 100644 index 000000000..c7dee9b72 --- /dev/null +++ "b/p/\346\227\251\345\225\212\345\220\204\344\275\215/index.html" @@ -0,0 +1,11 @@ +早啊,各位! +

早啊,各位!

没错,我还在办公室里,还在加班,而且意识还很清醒,我还活着。

现在的时间是凌晨的0点10分,再过半个小时,如果一切顺利的话,我就要打车回去睡觉了,差不多还能再睡4个小时呢。

然后,我就要从床上爬起来,洗洗脸,刷刷牙,迎着还没出来的太阳,再次奔上开向公司的地铁。

没办法,既然选择程序员这个连妓女都不如的职业,就要接受没日没夜的加班生活,就像我们经常在程序中"拿空间换时间"那样,现实中,我们在"拿健康换时间",等到健康剩得不多、徐娘半老之时也就是我们的退休之日吧。

因为到了那个时候,我们将再也加不动班,再也爬不上车,可能连敲键盘的力气都没有了,而且又会有一大批精壮的程序员前赴后继的补充上来,再次走上我们走过的路……

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\251\345\234\272\347\224\265\345\275\261/index.html" "b/p/\346\227\251\345\234\272\347\224\265\345\275\261/index.html" new file mode 100644 index 000000000..a927b0b69 --- /dev/null +++ "b/p/\346\227\251\345\234\272\347\224\265\345\275\261/index.html" @@ -0,0 +1,11 @@ +早场电影 +

早场电影

周末,睡了个懒觉,九点出去看了一场早场电影,一个人。本来以为早场电影人会很少,结果发现电影院门口居然还排了队,当然了,都是冲着冯小刚的《非诚勿扰》来的,对于这部电影,我没什么可点评的,只能说,值得看,比起以往的冯氏贺岁片,味道还没变,故事不错,讲的也不错。回来以后,又把《甲方乙方》翻出来看一遍。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131.JPG" "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131.JPG" new file mode 100644 index 000000000..67106e342 Binary files /dev/null and "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131.JPG" differ diff --git "a/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_120x120_fill_q75_box_smart1.JPG" "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_120x120_fill_q75_box_smart1.JPG" new file mode 100644 index 000000000..1788516be Binary files /dev/null and "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_120x120_fill_q75_box_smart1.JPG" differ diff --git "a/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_1600x0_resize_q75_box.JPG" "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_1600x0_resize_q75_box.JPG" new file mode 100644 index 000000000..3745d3145 Binary files /dev/null and "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_1600x0_resize_q75_box.JPG" differ diff --git "a/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_800x0_resize_q75_box.JPG" "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_800x0_resize_q75_box.JPG" new file mode 100644 index 000000000..0f0e13f3f Binary files /dev/null and "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_800x0_resize_q75_box.JPG" differ diff --git "a/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/index.html" "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/index.html" new file mode 100644 index 000000000..74df36503 --- /dev/null +++ "b/p/\346\227\251\346\231\250\347\232\204\350\267\257\347\201\257\351\232\217\346\211\213\346\213\215/index.html" @@ -0,0 +1,11 @@ +早晨的路灯(随手拍) +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\251\346\231\250\347\232\204\351\230\263\345\205\211\347\234\237\346\230\257\347\201\277\347\203\202/index.html" "b/p/\346\227\251\346\231\250\347\232\204\351\230\263\345\205\211\347\234\237\346\230\257\347\201\277\347\203\202/index.html" new file mode 100644 index 000000000..21b7bd7e1 --- /dev/null +++ "b/p/\346\227\251\346\231\250\347\232\204\351\230\263\345\205\211\347\234\237\346\230\257\347\201\277\347\203\202/index.html" @@ -0,0 +1,11 @@ +早晨的阳光真是灿烂 +

早晨的阳光真是灿烂

早晨的阳光真灿烂,虽然天气湿热有点儿桑拿天的苗头,但是我的心情很好,阳光洒在我的工作服上像是镶了金边,很是耀眼。

对了,我是一个环卫工人,每天早晨都要在这儿清扫垃圾,这个工作是很神圣的,至少我这么认为,虽然和小时候的梦想(艺术家)差得很远,但是用某位相声演员的话说“这是一样一样一样的啊”!

我愉快地拿起扫把,自在地吹着口哨,再把这条街扫完就可以收工了。

我不由得加快了速度挥舞着扫把就像一个画家挥舞着手中的画笔,我气沉丹田暗用内力,短小的扫把被我使得是呼呼生风,卷起的沙尘就像一层薄雾。

这个时候你出现了,挎着小包,下了公共汽车,高跟鞋踩在平坦的人行道上发出清脆的得得响,你的小手微微举起遮住当前还不算猛烈的太阳。真漂亮啊!我暗自赞道。

上学时很不努力导致我的眼神儿非常好,我想,在工作时看到美女也算是一种福利吧!

看着你向我走来,越走越近,不知是热的还是累得,我的手心开始出汗,我攥紧了扫把更卖力的扫了起来,地上的落叶伴随着纸片在沙尘中轻轻飞舞。

你终于走到我的身边,冲我使劲的挥手,这么近的距离我终于看清了你的眼睛,很大、很圆,长长的睫毛。

你竟然停下了脚步,盯住我迷离的眼神和唏嘘的胡茬,我期盼着你能给我说些什么,虽然黑夜给了你黑色的眼睛,但你却翻了个白眼儿给我:“你就不能轻点儿扫吗!还让不让人走路了!”。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\227\266\347\251\272\351\224\231\344\271\261/index.html" "b/p/\346\227\266\347\251\272\351\224\231\344\271\261/index.html" new file mode 100644 index 000000000..e29e03c8d --- /dev/null +++ "b/p/\346\227\266\347\251\272\351\224\231\344\271\261/index.html" @@ -0,0 +1,11 @@ +时空错乱 +

时空错乱

我的记性不大好,一般都是靠手机的日程表来安排事情。

于是今天早晨,我的手机提醒我,妹妹的生日到了,我赶紧发短信以示祝福。

结果不一会儿妹妹就回复短信"你发错了吧,我的生日还差好几天呐!",仔细一看手机的日期,我靠,提前了好几天。

原来是不知道什么时候错调了手机的时间,看来,电子的东西还是不能太信任。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\230\245\345\244\251googlebye/index.html" "b/p/\346\230\245\345\244\251googlebye/index.html" new file mode 100644 index 000000000..de8848750 --- /dev/null +++ "b/p/\346\230\245\345\244\251googlebye/index.html" @@ -0,0 +1,11 @@ +春天,GoogleBye +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305.png" "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305.png" new file mode 100644 index 000000000..b4f8ea354 Binary files /dev/null and "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305.png" differ diff --git "a/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_120x120_fill_box_smart1_3.png" "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..7c8692efa Binary files /dev/null and "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_1600x0_resize_box_3.png" "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_1600x0_resize_box_3.png" new file mode 100644 index 000000000..61e98bc33 Binary files /dev/null and "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_1600x0_resize_box_3.png" differ diff --git "a/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_800x0_resize_box_3.png" "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_800x0_resize_box_3.png" new file mode 100644 index 000000000..0f8c5b8be Binary files /dev/null and "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_800x0_resize_box_3.png" differ diff --git "a/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/index.html" "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/index.html" new file mode 100644 index 000000000..f9c0abbf4 --- /dev/null +++ "b/p/\346\230\245\345\244\251\346\235\245\344\272\206\345\260\217\346\240\221\345\217\221\350\212\275\344\272\206\351\274\273\345\255\220\345\217\221\347\202\216\344\272\206/index.html" @@ -0,0 +1,11 @@ +春天来了,小树发芽了,鼻子发炎了 +
Featured image of post 春天来了,小树发芽了,鼻子发炎了

春天来了,小树发芽了,鼻子发炎了

不经意间,她已经来到了,她带来了吹面不寒的杨柳风儿,带来了满树的桃花(树在哪儿呢?),不过她带给我的第一个礼物却是鼻炎,听说过两天还会给我带点儿沙尘暴啥的,是的,她就是春天。

连日来,和煦的春风吹得我昏昏欲睡,口干舌燥。一闻到春风的气息,我得鼻子就发干发痒,看来我的鼻炎是按时发作了。

戒烟、戒酒、戒辣椒,多喝开水、多吃水果、多吃蔬菜,这些残酷的要求我虽然严格遵守,但鼻子仍是一天天痛苦下去,而且一旦休息不好还有流鼻血的危险,万一哪天在街上碰到一个丑女,然后鼻子再不争气的流血了,那就糗大了!

–由sbabybird于3/05/200805:22:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\230\245\350\212\202\345\245\275/index.html" "b/p/\346\230\245\350\212\202\345\245\275/index.html" new file mode 100644 index 000000000..89ec18018 --- /dev/null +++ "b/p/\346\230\245\350\212\202\345\245\275/index.html" @@ -0,0 +1,11 @@ +春节好! +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\230\245\351\233\250/20100330512-777160.jpg" "b/p/\346\230\245\351\233\250/20100330512-777160.jpg" new file mode 100644 index 000000000..e3ca1d8b1 Binary files /dev/null and "b/p/\346\230\245\351\233\250/20100330512-777160.jpg" differ diff --git "a/p/\346\230\245\351\233\250/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_120x120_fill_q75_box_smart1.jpg" "b/p/\346\230\245\351\233\250/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_120x120_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..94059b6b7 Binary files /dev/null and "b/p/\346\230\245\351\233\250/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_120x120_fill_q75_box_smart1.jpg" differ diff --git "a/p/\346\230\245\351\233\250/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_1600x0_resize_q75_box.jpg" "b/p/\346\230\245\351\233\250/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_1600x0_resize_q75_box.jpg" new file mode 100644 index 000000000..a7abc3c72 Binary files /dev/null and "b/p/\346\230\245\351\233\250/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_1600x0_resize_q75_box.jpg" differ diff --git "a/p/\346\230\245\351\233\250/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_800x0_resize_q75_box.jpg" "b/p/\346\230\245\351\233\250/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_800x0_resize_q75_box.jpg" new file mode 100644 index 000000000..d9e5bb0a6 Binary files /dev/null and "b/p/\346\230\245\351\233\250/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_800x0_resize_q75_box.jpg" differ diff --git "a/p/\346\230\245\351\233\250/index.html" "b/p/\346\230\245\351\233\250/index.html" new file mode 100644 index 000000000..4507515cd --- /dev/null +++ "b/p/\346\230\245\351\233\250/index.html" @@ -0,0 +1,11 @@ +春雨 +
Featured image of post 春雨

春雨

这场雨下的挺爽的,为什么呢?因为我带伞了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\230\250\345\244\251\345\216\273\347\224\265\345\275\261\351\231\242\347\234\213\344\272\206\346\206\250\350\261\206\345\205\210\347\224\237\347\232\204\351\273\204\351\207\221\345\221\250/index.html" "b/p/\346\230\250\345\244\251\345\216\273\347\224\265\345\275\261\351\231\242\347\234\213\344\272\206\346\206\250\350\261\206\345\205\210\347\224\237\347\232\204\351\273\204\351\207\221\345\221\250/index.html" new file mode 100644 index 000000000..b3aac3188 --- /dev/null +++ "b/p/\346\230\250\345\244\251\345\216\273\347\224\265\345\275\261\351\231\242\347\234\213\344\272\206\346\206\250\350\261\206\345\205\210\347\224\237\347\232\204\351\273\204\351\207\221\345\221\250/index.html" @@ -0,0 +1,11 @@ +昨天去电影院看了《憨豆先生的黄金周》 +

昨天去电影院看了《憨豆先生的黄金周》

昨天去电影院看了《憨豆先生的黄金周》,感觉还不错,憨豆先生还是那么滑稽可乐,有着独特的幽默方式,我虽然没有笑到肚皮抽筋、掐着大腿,但是90分钟的电影还是让我由衷地笑了半个小时(累计)。

这里就不介绍剧情了(一般来说这种喜剧基本没剧情可言),网上到处都是介绍。

整个影片从头到尾憨豆先生都拿着那只SONY新出的DV,我估计SONY投了不少钱,还有就是片子的音乐配的还可以,轻快明亮。

总的来说还值得一看。

现在的电影院真是不景气啊,能容纳500号人的大厅坐了不到100人,不过挺爽的,谁让他们把票价订的那么贵,现在的票价是我小时候电影票价的100倍

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111.png" "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111.png" new file mode 100644 index 000000000..584ac3e81 Binary files /dev/null and "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111.png" differ diff --git "a/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_120x120_fill_box_smart1_3.png" "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..6cd9e10fd Binary files /dev/null and "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_1600x0_resize_box_3.png" "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_1600x0_resize_box_3.png" new file mode 100644 index 000000000..f905149fc Binary files /dev/null and "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_1600x0_resize_box_3.png" differ diff --git "a/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_800x0_resize_box_3.png" "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_800x0_resize_box_3.png" new file mode 100644 index 000000000..86269d647 Binary files /dev/null and "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_800x0_resize_box_3.png" differ diff --git "a/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/index.html" "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/index.html" new file mode 100644 index 000000000..a7e69be3d --- /dev/null +++ "b/p/\346\230\250\345\244\251\346\210\221\344\272\214\345\215\201\345\233\233/index.html" @@ -0,0 +1,11 @@ +昨天我二十四 +
Featured image of post 昨天我二十四

昨天我二十四

昨天我二十四,今天我二十五

–由sbabybird于11/11/200712:49:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\230\250\345\244\251\346\264\227\344\272\206\344\270\200\344\270\213\345\276\256\346\263\242\347\202\211/index.html" "b/p/\346\230\250\345\244\251\346\264\227\344\272\206\344\270\200\344\270\213\345\276\256\346\263\242\347\202\211/index.html" new file mode 100644 index 000000000..cc6a7aad1 --- /dev/null +++ "b/p/\346\230\250\345\244\251\346\264\227\344\272\206\344\270\200\344\270\213\345\276\256\346\263\242\347\202\211/index.html" @@ -0,0 +1,11 @@ +昨天洗了一下微波炉 +

昨天洗了一下微波炉

回老家温暖几天之后,我现在又恢复到一人吃一人住的状态了。

刚到北京就感冒了,先是鼻子消极怠工,然后是咽喉肿痛,再后来就咳嗽,直到昏昏欲睡,浑身酸痛。

昨天加了一天班,不想在外头吃了,就跑到超市买了一堆东西,想自己做着吃。

忽然想起来前几天上火车时老妈给我拿的煮鸡蛋,现在还都在冰箱里放着呢,只是不知还能不能吃,发短信请示老婆,问是否还能吃,批示曰:“浪费可耻,尽量吃掉!”我想也是,何况这可是纯天然的柴鸡蛋啊,在北京想吃还吃不到哩。

于是就把一个鸡蛋放到微波炉里,想热一下再吃,只怪我由于感冒引起的大脑短路,忘记给鸡蛋剥皮,在加热到15秒的时候就听到一声巨响,就像正月十五放烟花的那种响声,坏了!赶紧关掉微波炉的电源,打开一看,鸡蛋炸成了米粒那么大小碎片,均匀地分布在整个微波炉里。刚好,我早就想清理一下微波炉了,借此机会,清洗一下!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\230\257\347\210\267\344\273\254\345\204\277\345\260\261\345\276\227\351\241\266\347\235\200\347\234\213\344\272\206\345\244\252\346\236\201\346\227\227\351\243\230\346\211\254/index.html" "b/p/\346\230\257\347\210\267\344\273\254\345\204\277\345\260\261\345\276\227\351\241\266\347\235\200\347\234\213\344\272\206\345\244\252\346\236\201\346\227\227\351\243\230\346\211\254/index.html" new file mode 100644 index 000000000..ae05eff2b --- /dev/null +++ "b/p/\346\230\257\347\210\267\344\273\254\345\204\277\345\260\261\345\276\227\351\241\266\347\235\200\347\234\213\344\272\206\345\244\252\346\236\201\346\227\227\351\243\230\346\211\254/index.html" @@ -0,0 +1,11 @@ +是爷们儿就得顶着,看了《太极旗飘扬》 +

是爷们儿就得顶着,看了《太极旗飘扬》

真实的战争场面和细腻的故事情节让《太极旗飘扬》这部影片成为了和《拯救大兵瑞恩》同样经典的战争片,

我认为甚至超越了后者,因为《拯救大兵瑞恩》带给我更多的是战斗场景的震撼,而太极旗飘扬则在震撼之外又多了一些在情感上的触动。

战争到来的时候,带来了无尽的不幸和灾难,无数的人卷入这残酷的漩涡。

故事的主角"镇泰"本来和家人幸福的生活在一起,弟弟马上就要念大学了,妈妈和妻子开的面摊也刚刚有了起色,而且自己修鞋的手艺也越来越高超,挣钱供养弟弟上大学应该没有问题,虽然他自己连一个字也不识,但是他很满足。

然而,战争的到来让一切幸福都成为泡影,他们兄弟俩很快被抓了壮丁,与亲人失散。

战场上的血雨腥风让他们很快成长起来,每时每刻都有人死去,在战斗中,作为哥哥,镇泰时刻保护着年幼体弱的弟弟,不惜生命的代价。后来他又听到一个传说:"只要得到一枚总统颁发的勋章就可以让一位自己在军队里的亲人回家"他相信了,为了勋章,为了能让弟弟离开战场,他拼了命,甚至让他的弟弟误会他,以为他为了得到荣誉而不顾一切。

他终于拿到了勋章,可是他弟弟却没能回家,他所得到的却是眼睁睁地看着自己贤惠的妻子被战友当作叛徒无情地射杀,那一刻我想他肯定比子弹打在身上还难受。

后来他的弟弟被当作叛徒要被烧死(被救出,但是他不知道,一直认为弟弟被战友烧死了)。

他绝望了,他为了弟弟、为了家人所做的这一切只给他带来了更多的不幸。于是他成了俘虏,他叛变了,他开始疯狂地报复,当两兄弟在战场上互相以敌人的身份见面时,他已经杀红了眼,两人厮杀很久,在弟弟的叫声中他终于清醒了,可是弟弟的部队已经开始败退了,两个人面临生死抉择,弟弟需要撤走,而他需要留下来为弟弟断后。

看到弟弟安全撤走,他欣慰地死去,为了弟弟,他已用尽了自己最后一丝力气。

整部电影想要表达的以及所表达的远不止这些内容,抛开历史的真实性和导演的政治观点不说(这些仁者见仁智者见智,毕竟这是韩国的电影),我觉得一部电影,看完了能够让我思考的,那就是一部好电影。

通过影片我看到了战争带给人们的苦难以及和平的珍贵,看到了生命的脆弱和人性的光辉。

片中很多情节充满血腥,很多情节又饱含温情,看到两兄弟最后战场离别的那一刻,我更看到了,作为一个男人的责任。

当镇泰倒下去,看着弟弟的背影死去,我只想说:"镇泰是个爷们儿,纯的!"

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119.JPG" "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119.JPG" new file mode 100644 index 000000000..49cee2b43 Binary files /dev/null and "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119.JPG" differ diff --git "a/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_120x120_fill_q75_box_smart1.JPG" "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_120x120_fill_q75_box_smart1.JPG" new file mode 100644 index 000000000..17c03601e Binary files /dev/null and "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_120x120_fill_q75_box_smart1.JPG" differ diff --git "a/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_1600x0_resize_q75_box.JPG" "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_1600x0_resize_q75_box.JPG" new file mode 100644 index 000000000..334372620 Binary files /dev/null and "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_1600x0_resize_q75_box.JPG" differ diff --git "a/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_800x0_resize_q75_box.JPG" "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_800x0_resize_q75_box.JPG" new file mode 100644 index 000000000..bcb234de5 Binary files /dev/null and "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_800x0_resize_q75_box.JPG" differ diff --git "a/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/index.html" "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/index.html" new file mode 100644 index 000000000..e8ff372f0 --- /dev/null +++ "b/p/\346\230\276\345\215\241\351\251\261\345\212\250\345\257\274\350\207\264\347\250\213\345\272\217\344\270\215\350\203\275\346\255\243\345\270\270\346\234\200\345\244\247\345\214\226\347\252\227\345\217\243/index.html" @@ -0,0 +1,11 @@ +显卡驱动导致程序不能正常最大化窗口 +
Featured image of post 显卡驱动导致程序不能正常最大化窗口

显卡驱动导致程序不能正常最大化窗口

这两天做了一个程序的demo,在台式机上十分运行正常,在笔记本上运行时,窗口就是不能最大化,最大化之后程序窗口只能显示一半,鼠标也拖不动它,因为windows认为你的窗口既然已经最大化了所以就不让你拖动了:)。

反复调试程序也找不到问题所在,最终才想到是显卡驱动的问题,于是我抱着试试看的态度(这个语气好熟)把Nvidia好心提供的附加程序"desktop-Manager"功能给禁用了,程序立即就好使了,窗口可以正常最大化了。

如图

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\231\232\344\270\212\346\234\211\351\233\276/index.html" "b/p/\346\231\232\344\270\212\346\234\211\351\233\276/index.html" new file mode 100644 index 000000000..43af820d0 --- /dev/null +++ "b/p/\346\231\232\344\270\212\346\234\211\351\233\276/index.html" @@ -0,0 +1,11 @@ +晚上有雾 +

晚上有雾

晚上有雾–由sbabybird于11/12/200708:00:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\231\232\345\256\211/index.html" "b/p/\346\231\232\345\256\211/index.html" new file mode 100644 index 000000000..0e3fa432c --- /dev/null +++ "b/p/\346\231\232\345\256\211/index.html" @@ -0,0 +1,11 @@ +晚安 +

晚安

不错的周末,把太阳能热水器里的水放干净了,热水已切换到燃气系统了,地暖系统也恢复正常了,房间也打扫干净了,看了部老电影,天就黑了,跑完步回来泡个脚,睡了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\231\256\351\200\232pc\346\234\200\345\244\232\350\203\275\350\243\205\345\244\232\345\260\221\345\235\227\347\241\254\347\233\230/index.html" "b/p/\346\231\256\351\200\232pc\346\234\200\345\244\232\350\203\275\350\243\205\345\244\232\345\260\221\345\235\227\347\241\254\347\233\230/index.html" new file mode 100644 index 000000000..e44ca1874 --- /dev/null +++ "b/p/\346\231\256\351\200\232pc\346\234\200\345\244\232\350\203\275\350\243\205\345\244\232\345\260\221\345\235\227\347\241\254\347\233\230/index.html" @@ -0,0 +1,11 @@ +普通pc最多能装多少块硬盘? +

普通pc最多能装多少块硬盘?

普通pc最多能装多少块硬盘?我不知道,之所以想到这个问题是因为我有个同事是个DIY狂人,他跟我说他想把50块500G的硬盘(普通ATA硬盘)塞进一台机器里(PC),使该机的存储容量达到25T,问我该使用什么操作系统。

我靠,这真是个疯狂的想法,让我想到了那个买一堆奥拓拿铁丝绑在一起的笑话(呵呵,做人要厚道)。

可惜,我是没有这方面的经验,但是去网上搜索了一下,乖乖,借助RAID卡的威力,理论上可以在pc里安装超过100块硬盘,但是实际上几乎没有人这么做过,所以,让我拭目以待,看看真实情况下,到底能够安装多少块硬盘。

想一想这台怪兽的样子,~~~额,再忍不住打个寒噤。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\232\226/index.html" "b/p/\346\232\226/index.html" new file mode 100644 index 000000000..6ddd208da --- /dev/null +++ "b/p/\346\232\226/index.html" @@ -0,0 +1,11 @@ + +

突然下了一场大雪,天气一下冷了。

换上最厚的被子,缩在被窝里看《生活大爆炸》。

我的eeepc性能够弱的,一边看视频,一边打几个字都卡壳。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\233\276\347\273\217\344\277\272\344\271\237diy-\346\200\200\345\277\265\346\210\221\347\232\204\347\254\254\344\270\200\345\217\252\351\237\263\347\256\261/index.html" "b/p/\346\233\276\347\273\217\344\277\272\344\271\237diy-\346\200\200\345\277\265\346\210\221\347\232\204\347\254\254\344\270\200\345\217\252\351\237\263\347\256\261/index.html" new file mode 100644 index 000000000..a9a7dc3c7 --- /dev/null +++ "b/p/\346\233\276\347\273\217\344\277\272\344\271\237diy-\346\200\200\345\277\265\346\210\221\347\232\204\347\254\254\344\270\200\345\217\252\351\237\263\347\256\261/index.html" @@ -0,0 +1,11 @@ +曾经,俺也DIY (怀念我的第一只音箱) +

曾经,俺也DIY (怀念我的第一只音箱)

最羡慕那些有米的音响发烧友,手里攥着大把的钞票,买音响器材出手阔绰,有没有一双“金耳朵”不知道,反正当音响店的老板告诉他“这套音响,在听蔡琴唱歌的时候能听见她咽吐沫的声音”时,或者跟他说:“那套设备,在听交响乐的时候可以听见拉琴那小子不小心把曲谱翻掉在地上的声音”的时候,他们就会毫不犹豫的掏出几千乃至几万块大洋,把那些“宝贝”搬回家,反复的回放,听听蔡琴在什么时候换了一口气,或者听听吹长笛的坐在第几排。

我也曾在这方面痴迷过,但仅仅是痴迷,没有什么实质性行动,原因很简单,掏不起那些闲钱呐!

不过,在很早以前,读初中的时候就开始摆弄那些“音响器材”了,只是一堆喇叭,功率很小,大部分是从旧收录机上拆下来的,“音源”也就只有卡带,我曾试着把喇叭放到各种地方以调整他们的“音效”,比如放在蚊帐上除了可以在睡眠时有音乐环绕外还兼具“驱蚊”的效果,我为了得到更多的低音也曾把喇叭嵌入到书桌里(整个桌子就是音箱哈),甚至把喇叭放到洗衣机里,那音质真是惨不忍听。

反正受当时的条件限制,我也只能是像小孩摆弄玩具似的,玩一玩儿而已,毕竟当时升学才是最大的目标。

直到有一天,我翻看一本旧音响杂志,有人自制了个音箱,据说效果还不错,于是就动了自己也做一个的念头。

再后来,到了上中师的时候,有了大把的空闲时间(但还是没空闲的钱),决定纯手工制作一只“有源音箱”!说干就干,开始行动!首先考虑的是功放电路采用什么形式,当时最佳的方案是使用“LM-1875”功放芯片,但由于囊中羞涩,最终放弃,后来买来一块晶体管放大板,也算将就了,喇叭买了两只,一个高音,一个中低音(8寸),向我大舅要来了分频器。

让老家木匠邻居帮忙做了个音箱的框架,剩下的就是我和我的一个哥儿们亲自动手了。

箱体的材料比较奢侈,把我家的一个桌子给锯了(靠!太过分了)。

后来组装的时候才发现,我竟然忘了考虑功放的前级,没办法,再次求救与大舅,从旧收录机上拆下来一块板子作为前级(居然还可以调高低音调)。

就这样,前前后后忙活了有半个星期,我的音箱终于发出处女声了,这个时候音源已经是一台VCD,那个时候我好像对蔡琴不感兴趣,于是先听了一首陈慧娴的《归来吧》,真是天籁啊!我当时感动的鼻涕都快掉下来了!

当然了,我这么说是有一些夸张,其实音质不咋地,只是当时又没听过真正的音响,这只亲手做的音箱,让我体验到了充足的低音(说到低音,要感谢我的姥爷,他给了我一只大号的电源,具体功率不知道,反正很大很大),震耳欲聋的低音,就像是有人拿着锤子在敲打我的胸膛。

这只音箱在当时带给了我无限的快乐和满足感,后来就去省会读大学了,买了电脑,买了几百块的音箱,那只音箱就被我扔到了角落,上面布满了灰尘。

再后来,我干脆把它送给了我的大舅,听说他现在拿它当板凳,还挺结实的!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\200\345\220\216\347\232\204\345\200\222\350\256\241\346\227\266/index.html" "b/p/\346\234\200\345\220\216\347\232\204\345\200\222\350\256\241\346\227\266/index.html" new file mode 100644 index 000000000..67ca0561c --- /dev/null +++ "b/p/\346\234\200\345\220\216\347\232\204\345\200\222\350\256\241\346\227\266/index.html" @@ -0,0 +1,11 @@ +最后的倒计时 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\200\347\210\261\347\232\204\351\222\242\347\220\264\346\233\262\347\253\237\347\204\266\345\217\257\344\273\245\347\224\250\350\277\231\344\270\252\345\274\271/index.html" "b/p/\346\234\200\347\210\261\347\232\204\351\222\242\347\220\264\346\233\262\347\253\237\347\204\266\345\217\257\344\273\245\347\224\250\350\277\231\344\270\252\345\274\271/index.html" new file mode 100644 index 000000000..79af89733 --- /dev/null +++ "b/p/\346\234\200\347\210\261\347\232\204\351\222\242\347\220\264\346\233\262\347\253\237\347\204\266\345\217\257\344\273\245\347\224\250\350\277\231\344\270\252\345\274\271/index.html" @@ -0,0 +1,11 @@ +最爱的钢琴曲,竟然可以用这个弹 +

最爱的钢琴曲,竟然可以用这个弹

今儿在优酷上看到一牛人使用iDreamPiano演奏卡农,简直是绝了,http://v.youku.com/v_show/id_XMTE0MTMwMzI0.html。

早就玩过iDreamPiano,不过仅仅是弹点儿“两只老虎”之类的,牛人果然无处不在,竟然把这个软件发挥到这种地步。

随即,我也去搜了一下曲谱,网上已有好人专门制作了卡农的双手版简谱,赶紧也试了一下,果然很爽,虽然后面的我还弹不了,但前一段已经没问题了,很像那么回事儿,哈哈。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\200\350\256\250\345\216\214\344\275\240\344\273\254\350\277\231\344\272\233\351\273\221\345\256\242\344\270\200\347\202\271\345\204\277\346\212\200\346\234\257\345\220\253\351\207\217\351\203\275\346\262\241\346\234\211/index.html" "b/p/\346\234\200\350\256\250\345\216\214\344\275\240\344\273\254\350\277\231\344\272\233\351\273\221\345\256\242\344\270\200\347\202\271\345\204\277\346\212\200\346\234\257\345\220\253\351\207\217\351\203\275\346\262\241\346\234\211/index.html" new file mode 100644 index 000000000..3432d1b9b --- /dev/null +++ "b/p/\346\234\200\350\256\250\345\216\214\344\275\240\344\273\254\350\277\231\344\272\233\351\273\221\345\256\242\344\270\200\347\202\271\345\204\277\346\212\200\346\234\257\345\220\253\351\207\217\351\203\275\346\262\241\346\234\211/index.html" @@ -0,0 +1,11 @@ +最讨厌你们这些“黑客”,一点儿技术含量都没有 +

最讨厌你们这些“黑客”,一点儿技术含量都没有

四年前,那时公司还是使用adsl+“代理服务器”上网,有一天早晨我来到公司,发现代理服务器的桌面有一个word文档,打开一看,里面写着“嘿,哥们儿,你的机器被我黑了,我发现你是使用adsl上网的,而且发现不少漏洞,我顺手给你打了补丁,希望你能重视上网的安全性……”

当时令我大吃一惊,因为一方面我们确实不太重视网络安全的问题,另一方面那家伙也太猖狂了吧。

后来我遇到一“高人”,将此事说与他听,他遂露出鄙夷态度:“最讨厌这些傻B“黑客”,一点儿技术含量都没有”,而后掏出几款软件,“扫描器”、“嗅探器”什么的,现场给我演示了一把。

靠!原来会使用这些黑客软件就是黑客啊!

我在公司内部的服务器上建了个小论坛,使用阿帕奇+php+bbpress实现,用于记录兄弟们平时积累的编程经验,由于管理员疏忽,开了远程服务,密码又过于简单,前两天不慎又遭“毒手”,这次那厮没有手下留情,把论坛数据库给我删了,唉,真他妈防不胜防啊!害得我还得花时间恢复。

我说这些自以为是的傻B黑客,能不能用用脑子,有能耐你把我msn空间的广告给我去了,不好好待着干嘛总出来犯贱呢,你妈逼你的是吗?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\200\350\277\221\346\257\224\350\276\203\345\277\231/index.html" "b/p/\346\234\200\350\277\221\346\257\224\350\276\203\345\277\231/index.html" new file mode 100644 index 000000000..a24a6da7c --- /dev/null +++ "b/p/\346\234\200\350\277\221\346\257\224\350\276\203\345\277\231/index.html" @@ -0,0 +1,11 @@ +最近比较忙 +

最近比较忙

09年已经接近尾声,琐碎的事情纷至沓来。

很多事情需要加班才能解决,睡眠质量严重下降。

我的博客又快荒废了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\210\351\245\274/index.html" "b/p/\346\234\210\351\245\274/index.html" new file mode 100644 index 000000000..f43f59f62 --- /dev/null +++ "b/p/\346\234\210\351\245\274/index.html" @@ -0,0 +1,11 @@ +月饼 +

月饼

咱们的节日总是与吃有关,比如过年吃饺子,元宵节吃汤圆,端午吃粽子,六月六吃炒面,腊八吃米饭。

中秋当然要吃月饼,而且要吃的相当隆重。

在我的老家,刚入了八月大家就忙活着串亲戚送月饼了。

一个人在外面,当然没人给我送月饼,为了找到一点儿过节的感觉,我只好到超市去一趟,心想,好歹买一两块月饼回来吃,也算是过节。 到了地方却傻眼了,花花绿绿的月饼盒子堆的跟小山似的,个个包装精美,如果不问售货员一句:"这是月饼吗?"我都不敢确定这些东西是什么。

先让我想想小时候的月饼是什么样儿,嗯,圆的(废话),比烧饼厚,油光光的,上面印有花纹图案比如"花好月圆"什么的,随便拿张油纸包着,掰开以后馅里有大块大块的冰糖,还有花花绿绿的丝儿,应该是用橘子皮做的。

对,就是这样,客人来了,主人把月饼拿刀切成菱形的小块就算一道下酒菜,中秋那天晚上一家人也会切上一块,大家一起嘎嘣嘎嘣地吃完。

不过这是十几年前的事儿了,现在的月饼花样儿百出,什么馅儿的都有,造型各异,包装也是越来越豪华,味道却越来越难吃,简直难吃至极,看着这些大盒子我就发怵。

我小声的问售货员:"请问有没有适合自己在家吃的月饼?"

"有啊"她拎起大概有枕头那么大的一盒月饼说"你看这个怎么样,原价四百六现价二百八而且买一盒送一盒,多划算呐!",

我接过来看了看,诺大的盒子装了六块像扣子似的小月饼,亮亮的泛着油光,虽然个儿不大,但是如果买回去够我吃到过年了,我看了看长长的货架,觉得今天的月饼怕是买不到了。

 不买不行,不吃月饼哪叫过节啊,我拎着购物筐在楼上楼下转了个遍,终于在一个灰暗的角落里发现了散装的月饼,嗯,貌似小时候那种月饼。

将就吧,随便挑了两块扔进筐里,任务算是完成,高兴之余顺便又拎了瓶红酒,就这么地了,晚上就着月饼喝着红酒,举杯邀明月,对影成仨人。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424.png" "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424.png" new file mode 100644 index 000000000..a972f2dee Binary files /dev/null and "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424.png" differ diff --git "a/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424_hu33075bee32bd631689c147c046db48ae_41980_120x120_fill_box_smart1_3.png" "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424_hu33075bee32bd631689c147c046db48ae_41980_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..8e3c68bc7 Binary files /dev/null and "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424_hu33075bee32bd631689c147c046db48ae_41980_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424_hu33075bee32bd631689c147c046db48ae_41980_1600x0_resize_box_3.png" "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424_hu33075bee32bd631689c147c046db48ae_41980_1600x0_resize_box_3.png" new file mode 100644 index 000000000..6f59eb08c Binary files /dev/null and "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424_hu33075bee32bd631689c147c046db48ae_41980_1600x0_resize_box_3.png" differ diff --git "a/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424_hu33075bee32bd631689c147c046db48ae_41980_800x0_resize_box_3.png" "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424_hu33075bee32bd631689c147c046db48ae_41980_800x0_resize_box_3.png" new file mode 100644 index 000000000..db92b38c2 Binary files /dev/null and "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/20080424_hu33075bee32bd631689c147c046db48ae_41980_800x0_resize_box_3.png" differ diff --git "a/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/index.html" "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/index.html" new file mode 100644 index 000000000..e0eae0cea --- /dev/null +++ "b/p/\346\234\211\344\272\206\345\216\213\345\212\233\344\275\240\345\260\261\345\226\212/index.html" @@ -0,0 +1,11 @@ +有了压力你就喊 +
Featured image of post 有了压力你就喊

有了压力你就喊

周末和几个哥们儿喝酒,喝完了哥们儿提议去K歌,很久没K了,我在包厢里抱着话筒死活不肯松手,再一次展现了"麦霸"的风范。

借着酒劲儿我愣是把一首首温柔的情歌咆哮出了"摇滚"加"死亡金属"的味道,那声音,比杀猪好听多了。

没办法,情歌就是得用真实的声音来诠释,而和朋友一起喝完小酒后的情感往往是奔放的、原始的、撕心裂肺的。

管你是青藏高原还是回到拉萨;是左等右等(RightHereWating)还是加州招待所(CaliforniaHotel);

是国粹京剧还是家乡地方戏,一律来者不拒,而且必须是原调!

那一刻我觉得,就是帕瓦罗蒂过来飙高音咱都不惧他!

唱完歌,觉得通体舒畅,酒也解了,一切的压力都烟消云散,腰也不酸了,背也不疼了,一口气儿也能上5楼了。

突然想起一句名言,在这儿给他改一改,就叫"有了压力你就喊!"

–由sbabybird于4/24/200809:00:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\211\345\225\245\344\270\232\345\212\241\351\235\236\345\276\227\345\234\250\351\223\266\350\241\214\345\212\236\345\225\212/index.html" "b/p/\346\234\211\345\225\245\344\270\232\345\212\241\351\235\236\345\276\227\345\234\250\351\223\266\350\241\214\345\212\236\345\225\212/index.html" new file mode 100644 index 000000000..09c23f3de --- /dev/null +++ "b/p/\346\234\211\345\225\245\344\270\232\345\212\241\351\235\236\345\276\227\345\234\250\351\223\266\350\241\214\345\212\236\345\225\212/index.html" @@ -0,0 +1,11 @@ +有啥业务非得在银行办啊 +

有啥业务非得在银行办啊

谁都不愿意排队,但是很不幸,这个世界上到处都要排队,上车要排队,看病要排队,买东西要排队,收钱要排队,交钱也要排队,如果哪天不巧的话,上公共厕所蹲个坑都得排队。

要说排队排的最厉害的,还是得数银行!前一阵子,股票特别火的时候,银行各个网点都是爆满,想去取个钱买个电啥的,基本上是上午拿号下午办,这还算是幸运的,如果赶上你的时候人家正好下班,那么,对不起,麻烦您明儿早点儿来。

最可气的是,在银行里办业务的人那个磨叽劲儿,我就纳了闷了,赶上我的时候,去取钱也好存钱也罢,绝对不会超过一分钟去(就算是取个十万八万的也顶多5分钟吧),可是往往有些人在窗口前,屁股往椅子上一挪就是十几二十分钟,难道你是去聊天去了,里面的柜员也贼磨叽,一会儿站起来拿点儿表格,一会儿和隔壁女孩聊中午吃什么。

我就是想不明白,那些在柜台动辄磨叽几十分钟的人,他们办理的都是什么业务?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\211\346\204\217\346\200\235\347\232\204wolframalpha/index.html" "b/p/\346\234\211\346\204\217\346\200\235\347\232\204wolframalpha/index.html" new file mode 100644 index 000000000..105f34254 --- /dev/null +++ "b/p/\346\234\211\346\204\217\346\200\235\347\232\204wolframalpha/index.html" @@ -0,0 +1,11 @@ +有意思的wolframalpha +

有意思的wolframalpha

wolframalpha 上线了,据说是个Google杀手,而且是基于“语义”的搜索我试用了一下,感觉挺有意思,本来按照我的理解是搜索“黄河有多长”就能直接给出答案,可是人家目前还不支持中文,又听说他的数学能力不是一般的强,于是输入了一个一元二次方程y=2x^2+3x,竟然直接把函数曲线画出来了看了学生们以后做作业不用那么麻烦了

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\211\351\230\265\345\255\220\346\262\241\346\211\223\347\257\256\347\220\203\344\272\206/index.html" "b/p/\346\234\211\351\230\265\345\255\220\346\262\241\346\211\223\347\257\256\347\220\203\344\272\206/index.html" new file mode 100644 index 000000000..82196aead --- /dev/null +++ "b/p/\346\234\211\351\230\265\345\255\220\346\262\241\346\211\223\347\257\256\347\220\203\344\272\206/index.html" @@ -0,0 +1,11 @@ +有阵子没打篮球了 +

有阵子没打篮球了

今天继续发扬每到周末就睡不着觉的光荣传统,比平时上班起的还早。

洗了个澡,饶有兴致地做了顿早餐(花了一个小时,吃了5分钟)。

还没来得及把电视频道翻看一遍,大宝就喊我去打篮球,二话不说,换好球鞋飞奔球场。

抓起篮球才发现,已经很生疏了,找不到一点儿手感。

来回跑二十分钟就开始喘气了,还好,4对4的接波比赛中总算懵进了几个球。

渐渐找到感觉,跑动越发积极,身法也越来越快。队友一个快速传球,我以迅雷不及掩耳盗铃之势抓住球,猛跑两步,转身!跳起!腿抽筋儿了!

看来我是得注意一下平时的锻炼了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\211\351\237\263\344\271\220\345\260\261\346\234\211\346\230\245\345\244\251/index.html" "b/p/\346\234\211\351\237\263\344\271\220\345\260\261\346\234\211\346\230\245\345\244\251/index.html" new file mode 100644 index 000000000..72abc642c --- /dev/null +++ "b/p/\346\234\211\351\237\263\344\271\220\345\260\261\346\234\211\346\230\245\345\244\251/index.html" @@ -0,0 +1,11 @@ +有音乐就有春天 +

有音乐就有春天

有音乐就有春天,当我写下这句话,撇了撇嘴,我想,我还挺能装啊。

不过,这么说是因为刚刚看了一部电影–《放牛班的春天》,法国人拍的,很细腻,有一点小幽默。

故事讲的是一个迷恋音乐的教师与一群工读生的故事,工读学校管理混乱,体罚学生,学生自暴自弃到处做恶作剧。直到克莱门特来了,这个秃头的中年男人,看上去还有些磨叽。

然而,这些孩子马上就发现了新老师的与众不同,因为他唯一的皮包里装的仅仅是几张乐谱,而且他把这些视为生命。

克莱门特渐渐发现这些孩子原来也热爱音乐,这使他重新燃起创作激情,他把这些孩子根据特点编成了一个合唱团。

通过教授音乐,他不仅感觉这些孩子原来唱歌不错,而且组建合唱团也使他们变得不那么调皮了,音乐拉近了他们的距离。

然而,事情不会那么顺利,皮埃尔这孩子就很难对付,他声线极美却极难驯服,克莱门特不断挖掘他的优点,还说服他的母亲让他去读专业的音乐学校。

期间还有一段小插曲,那就是克莱门特与皮埃尔的单身母亲还产生了一点儿小感情,不过克莱门特很含蓄,一直埋在心里,影片在这一段处理的很不错。

影片的配乐很精彩,最让人陶醉的就是这些孩子天使般的歌声了,沉静又富有感情,天籁、天籁就是打这儿来的吧。

最后当克莱门特因得罪校长而被辞退的时候,这些孩子被命令不准送他,他孤独走向大门,此时优美的合唱响起,天空中飘满了孩子们折的纸飞机,上面写着祝福的话,孩子们用这种特殊的方式与他告别。

他用音乐给孩子们带来了春天,留下了春天,却又孤独地离去。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\237\345\276\205/index.html" "b/p/\346\234\237\345\276\205/index.html" new file mode 100644 index 000000000..e1f4cdcff --- /dev/null +++ "b/p/\346\234\237\345\276\205/index.html" @@ -0,0 +1,11 @@ +期待 +

期待

上次一狠心,把epc上的系统更换为xp了,现在差不多又到了换系统的时候了,因为xp的毛病就是—越来越慢。

本来epc上带的那个基于debian定制的原装系统速度贼快,但是功能太弱了,三岁小孩用还行。

后来有好心人给整出来个eee-ubuntu,赶紧装上,发现他继承了ubuntu体态臃肿的优良传统,可怜的小e仅带了4G的系统盘,根本不够怎么折腾的,而且在安装最新版firefox时被我编译坏了glibc库,于是换成了xp。

今天发现以前的那个eee-ubuntu已经改名了,现在叫做EasyPaesy,都1.5了,不过仍然是基于ubuntu的定制,据说已经优化了不少,看得我都有些动心了。

官方网站上的介绍更是让我心动:下一个版本,也就是2.0的时候将直接基于debian定制,不在基于臃肿的ubuntu,而且将原生的带有epc的全部驱动程序。

哦夜!太期待了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\252\346\235\245\344\274\201\344\270\232\346\211\201\345\271\263\345\214\226\347\256\241\347\220\206\344\270\255\347\232\204\344\277\241\346\201\257\345\214\226\351\234\200\346\261\202/index.html" "b/p/\346\234\252\346\235\245\344\274\201\344\270\232\346\211\201\345\271\263\345\214\226\347\256\241\347\220\206\344\270\255\347\232\204\344\277\241\346\201\257\345\214\226\351\234\200\346\261\202/index.html" new file mode 100644 index 000000000..cf86f7cd9 --- /dev/null +++ "b/p/\346\234\252\346\235\245\344\274\201\344\270\232\346\211\201\345\271\263\345\214\226\347\256\241\347\220\206\344\270\255\347\232\204\344\277\241\346\201\257\345\214\226\351\234\200\346\261\202/index.html" @@ -0,0 +1,17 @@ +未来企业扁平化管理中的信息化需求 +

未来企业扁平化管理中的信息化需求

“扁平化”管理并不是什么新鲜的概念,早在上个世纪就有公司在尝试通过压缩管理层级来实现扁平化管理,并取得了不错的成效,以至于有一阵子“扁平化”管理理念大有席卷全球之趋势。

但后来事实证明,在缺少有效的沟通和协作机制之前,扁平化管理的瓶颈往往很快出现在管理者身上,原因很简单,传统的“金字塔”式管理虽然等级多、决策下达缓慢,但是符合2/8原则,一个管理者只需要管理较少的几个人,沟通比较顺畅,扁平化管理模式下的管理者需要对接的人较多,很容易形成沟通瓶颈。

所以“扁平化”在火了一阵子之后,不少企业掉进坑里挣扎了一阵子之后,又回归传统的“金字塔”模型。

但是,随着技术的进步,很多工具得以改进,好多传统的“真理”也不再那么有效(比如一人最多管理7个人),这一点上来说,很多国外的互联网公司已经快速发现改进点,并将“扁平化”管理结合了现代化工具和理念成功在自己的企业推行。

比如著名的谷歌。无论是技术还是管理,谷歌一直是走在时代前列的公司,其管理方式或企业价值观虽不能照搬,对于我们仍有一定的借鉴意义。

最近读了两本关于谷歌公司的书,《重新定义公司》和《重新定义团队》,书中讲解了谷歌公司对未来公司组织、团队管理的尝试和思考,在信息文明全面取代工业文明的时候,传统的组织方式和团队管理会怎样被超越。两本书从文化、战略、决策、人才、沟通等多个方面阐述了未来企业的改进可能。

内容比较多,不同的人看了可能有不同的收获,通过读书,一方面我发现了未来组织对扁平化管理的需求,然后思考了企业信息化对这一管理模式的支撑,下面简单谈谈我的看法(比较有意思的是,谷歌公司的员工也在抱怨他们自己开发的IT系统不好用)。

###利用信息技术提升管理者与员工在“扁平化”管理下的沟通效率。 +通过互联网、移动应用可以实现所有人的实时在线,无论是任务指派还是成果检查,或者随时沟通一些思路和想法。所以我猜测,未来的企业,可以一方面在线下仍然建立传统的“金字塔”层级结构,另一方面,通过移动应用工具,在线上建立“扁平化”的虚拟管理团队,企业的管理者可以获得更强的管控力和执行力。

###利用信息技术加强企业文化的建设。 +利用现代化的信息工具,企业内的每个人都可以更迅速的向团队传达及时的信息,分享自己的观点、技能。工作的目标更容易清晰传递,工作进展也更容易跟踪,管理者更方便地关注每一个成员的状态,只要积极利用工具向大家分享信息,“企业文化”就不再是一句虚无缥缈的口号,而是变成真正融入到每一项工作中、影响每一个成员的实实在在的观念、模式、原则。

###利用信息技术放大“好员工”的影响力。 +称职的管理者在团队中一定是认可并推崇积极优秀人才、打击并消灭低效消极人员的,传统的方式下一个好员工的影响力可能只局限在自己负责的那一部分工作,但是利用社交化的信息工具,在管理者的推动下,可以放大好员工的影响力,一个明星员工可以给更多的人带来正面影响,优秀可以“传染”给更多人。

###方便打造学习型组织。 +学习型组织,或学习型团队,现在大家提的比较多,构建一个学习型的团队是很多管理者的共识。信息技术提供的在线工具和移动应用可以让团队管理者更方便的实现打造学习型组织的理想。知识分享除了通过线下的活动进行外,还可以随时在线上进行,无论是看到了好的文章或者想系统的给团队成员讲解某一项技能,都可以利用信息工具在线上进行。

###“标准”与“流程”不再是束缚,而是助手。 +很多人提到企业信息化往往第一个想到ERP或传统的OA系统,但是未来这两个东西一定为消亡,或者换一种方式存在。传统的“标准”和“流程”是“死”的,听起来就没有什么生命力,未来的信息化工具在这个方面要想突破,一定是高度可定制化的,通过定制化,适应企业的高速发展,通过定制化,甚至让使用信息工具的人自己“创造”功能。

###遥知 +以上是关于新形势下企业信息化需求的简单思考,我所在的团队也正在做一些尝试,管理上,向扁平化方向发展,信息化工具上,我们自主开发了一款满足上述需求的移动应用产品—-遥知,目前已经发布,正在积极推广中,有兴趣的可以尝试一下,虽然距我们设定的目标还有一定的距离,但对我们自己的团队管理已经初见成效,通过不断的迭代和改进,我相信我们会成为未来企业信息化管理工具的引领者。

遥知

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\345\255\246\344\271\240\347\232\204\345\255\246\344\271\240\345\207\206\345\244\207/index.html" "b/p/\346\234\272\345\231\250\345\255\246\344\271\240\347\232\204\345\255\246\344\271\240\345\207\206\345\244\207/index.html" new file mode 100644 index 000000000..fe46603c8 --- /dev/null +++ "b/p/\346\234\272\345\231\250\345\255\246\344\271\240\347\232\204\345\255\246\344\271\240\345\207\206\345\244\207/index.html" @@ -0,0 +1,11 @@ +机器学习的学习准备 +

机器学习的学习准备

机器学习的概念

机器学习是人工智能的一个分支,是近年来逐渐具备实用性的各种人工智能应用的基础。其本质是(我目前的个人理解)利用针对已知的数据集合抽取采样特征,然后利用某种数据模型(核心是某种算法:如kNN、SVM、朴素贝叶斯等)对数据进行计算处理,得到一组可以预测未知数据集特征的参数和手段,从而可以对数据进行预测判断的一种数据处理方法。

机器学习相关的名词

  • 神经网络:是机器学习的一种实现方式,从概念上来说,小于“机器学习”,但是由于其在图像识别、语音识别、语言翻译等领域的优异表现,以至于现在提到机器学习就认为是神经网络,实际则不然,机器学习的概念更大,更加基础,是实现神经网络应用的基础理论和方法;
  • 深度学习:是神经网络的应用特例,同样是在应用层表现优异,可以理解为神经网络的一种实现;
  • 大数据:机器学习的数据处理基础支撑,近年来机器学习在应用层面表现较好主要得益于大数据技术的发展,可以使得模型训练内容量级增加,极大的提高了模型准确度;
  • n维向量:来自线性代数,在机器学习中起到重要作用,在机器学习中一般用于各种特征数据的载体,在不同的算法过程中传递和计算。

机器学习相关的工具

  • 编程语言:目前比较流行的是Python,因为有比较丰富易用的程序包,很多科技公司也开源了较为成熟的框架,再加上Python语言本身的简单易上手,使得Python成为这个领域最流行的语言。当然C和C++、Java还是实现各种算法的根基,Python更多是提供了一种调用接口;
  • iPython:Python语言的交互控制台,可以较为方便的测试、调试Python程序,有较强的交互功能,比语言发行版自带的强大;
  • jupyter:提供Python语言的Web交互界面,通过网页即可编写代码,并及时反馈执行结果,由于是B/S架构,所以可以使得运行时跟开发环境分开。编辑界面同时支持基于Markdown语法的文档编写,使得“文学化”编程成为一种可能,非常适合用于科研人员的汇报材料或论文;
  • TensorFlow:谷歌开源的机器学习框架,快速灵活部署机器学习应用,可以应用与大规模、工业级场景;
  • keras:基于Python编写的高级神经网络API,属于对机器学习的深度封装,如果以学习机器学习原理为目标的,不建议使用,还是先手动将若干种核心算法实现一遍比较深刻;

预期的学习方法

  1. 通过阅读相关的书籍,对于概念有所了解,这个过程可以是粗糙的浏览,不求详细的理解各种原理和算法;
  2. 尝试一些教学视频,了解实操的基本流程,对于自己读书得到的概念进行验证,修订理解,并熟悉基本工具的使用(如Python的numpy、plot等);
  3. 细读书籍,按照书中的事例进行实操,并尝试推导算法的基本原理,理解后,形成自己的文字;
  4. 定义简单的任务,贯穿数据准备、数据清洗、特征值提取、模型建立、模型应用各个阶段,一般来说可以是手写文字识别,或者给新闻文章分类等;
  5. 循环和迭代这个过程,一边输入信息,一边将学到的东西结合思考,形成有效的输出(文字、视频等);
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-001-\346\234\237/2022-09-28-09-38-31.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-001-\346\234\237/2022-09-28-09-38-31.png" new file mode 100644 index 000000000..e38d303be Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-001-\346\234\237/2022-09-28-09-38-31.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-001-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-001-\346\234\237/index.html" new file mode 100644 index 000000000..ace225d68 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-001-\346\234\237/index.html" @@ -0,0 +1,11 @@ +机器文摘 第 001 期 +

机器文摘 第 001 期

机器文摘 第 001 期

机器文摘 第001期

搞机

TurnT是一个颇具创意的唱盘设计,它把智能手机与模拟黑胶的老式音乐播放方式相结合。用家把触笔放在手机屏幕显示的黑胶唱片上,它即开始播放。从内部结构上看,它其实是一个无线扬声器,可以连接到智能手机播放音乐。TurnT这种播放音乐的体验增加了互动的体验感,如同在实际的唱片上一样,挪开唱针会立即停止音乐,将其“向内”移动到手机屏幕上显示的光盘中心就可以播放音乐。要更改歌曲,您可以通过滑动来更改专辑,还可以重新定位。

动向

AI生成图像技术带来的“艺术危机”

近几周,基于AI生成的图像艺术作品的新闻越来越多,以DALL-E、Stable Diffusion等神经网络模型为代表的图像生成类AI进化越来越快,已达“以假乱真”程度。我也在动手尝试后惊叹他们的生成效果非常逼真和充满想象力。然而很快,此类AI就引起设计师、画师、艺术家的反对(恐慌?)。当然也有很多持积极态度,把它们当作工具加以利用,甚至不乏商业头脑灵活的人士,已经通过AI作画开始获取收益。于是引发了一系列的反应和讨论。

观点

程序员是计算机的翻译官。他们先是把人类的语言翻译成计算机的语言,现在又教会了计算机使用人类的语言。

长文

资源

  • coding-fonts ​​​是一个不错的编程字体网站,可以在线预览各种适合编程开发时用的字体,让选择更加直观。
  • 深度强化学习羊了个羊 这个github仓库开源了一个通过AI强化学习来玩耍“羊了个羊”游戏的模型及代码,结构清晰,效果很棒,用于了解深度强化学习知识非常不错。
  • 深度学习500问这本在线书籍以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,目前在github将近50k颗星。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-08-56.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-08-56.png" new file mode 100644 index 000000000..0c1f9d3cd Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-08-56.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-32-54.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-32-54.png" new file mode 100644 index 000000000..9d810e728 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-32-54.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-33-50.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-33-50.png" new file mode 100644 index 000000000..becf1ec16 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-33-50.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-41-32.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-41-32.png" new file mode 100644 index 000000000..eeab474bb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-11-41-32.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-18-24-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-18-24-45.png" new file mode 100644 index 000000000..3db33faf1 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/2022-10-03-18-24-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/index.html" new file mode 100644 index 000000000..67f0ff606 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-002-\346\234\237/index.html" @@ -0,0 +1,26 @@ +机器文摘 第 002 期 +

机器文摘 第 002 期

机器文摘 第 002 期

机器文摘 第002期

搞机

MNT推出了一款名叫Pocket Reform的迷你笔记本电脑。它外形紧凑(屏幕只有7英寸),但功能齐全,据官方介绍,它的性能满足轻量办公需求,甚至还能玩一些游戏(ARM平台)。虽然现在的智能手机在性能方面已经有了很大提升,且便携性远超笔记本电脑,但是还是有相当一部分人倾向于在具有真实物理键盘的“电脑”上进行操作。

在我看来,这台设备可能对于希望随时随地写两行代码的程序员更加具有吸引力。

动向

文字直接生成3D模型

+谷歌实验室的几个哥们上周发布了一个新作—-DreamFusion。输入文字,就能生成带深度图和法线的3D模型。

开发团队声称:

最近在文本到图像合成方面的突破是基于在数十亿个图像-文本对上训练的扩散模型。将这种方法应用于3D合成将需要标记大量的3D资产和用于对3D数据进行去噪的高效架构,而目前这都不太可行。在DreamFusion中,我们通过使用预先训练的2D文本到图像扩散模型来执行文本到3D合成来规避这些限制。我们的方法不需要3D训练数据,也不需要修改图像扩散模型,证明了预训练图像扩散模型作为先验的有效性。

具体方法据称是来自他们新提出的“一种通过优化损失函数从扩散模型中生成采样的方法”该方法允许他们在任意参数空间中优化采样(例如3D空间)。

我看了一下官方给出的demo,3D模型还略显粗糙,不过可能将来算力提升之后会有改善。

现在,除了插画师受到了职业威胁,就连3D建模工程师的工作也有可能被AI取代?

通过文字描述生成语音的人工智能也来了

Twitter 用户 Felix Kreuk 发布了从文本到音频 (Text to Audio) 的 AI 模型:AudioGen +AudioGen 可以 +(1) 根据文本生成音频;(2) 续写指定的音频;(3) 同时做以上两件事,根据指定文本描述生成指定音频。 +作者给出的展示DEMO里展示了如下文本生成的语音: +(1)在风声中吹口哨 +(2)男人在说话时伴有鸟和狗的叫声 +(3)警报器和嗡嗡作响的引擎接近后走远 +(4)鸽子咕咕叫并伴有沙沙的声音 +(5)男人说话的声音,背景伴有人群欢呼声

+从作者公布的架构图上可以看出来,采用的也是Transformer神经网络。之前在看到AI画图时我就想到同样的原理可能用于生成音频,结果这才没过几天,人家都已经做出来了。

观点

站桩的简单,枯燥和有效,就好比持有 sp500 指数基金简单,枯燥但足以秒杀 95%以上的基金经理一样。 +莫将容易得,便作等闲看。

长文

  • 为什么现在的软件这么慢(英文),作者在Windows系统(Windows 10, 21H2版本)下使用“录音机App”的时候获得了极差的体验(确切的说是软件启动后大概卡死了将近20秒)。于是动手分析到底是什么原因导致,然后发现主要是这个软件启动后疯狂扫描“用户”文件夹下的录音文件用于构建界面中的录音列表,这种密集IO操作导致软件停止响应。作者花了很大的篇幅来吐槽这种行为,对于微软工程师为什么这么做表示莫名其妙。不过由于我们现在的计算机大都使用了固态硬盘,而且我们的习惯一般不会在“用户”文件夹下存放太多文件,所以这个体验应该不太明显。但即使这样,我也同样对Windows系统现在的软件质量感到担忧。 +

  • 内卷、汉明问题与认知迭代(中文),作者较为科学地分析了内卷的定义和形态,从而引申出了关于什么是“人生中重要的事”的思考,文章虽然比较长,但也清晰易懂,发人深省。部分引用如下:

    从大的方面说,社会需要创新,个人则需要突破,而创新和突破又都要求我们不断地精益求精。那么,内卷与精益求精是本质上一样的吗?如果不是,两者的区别在哪?

    在某件事情上花费太多精力,并不一定就是内卷;在无关紧要的事情上花费精力才是真的内卷。

    汉明早年在贝尔实验室工作。那年春天,他经常和几位同事聚在一起在餐厅吃午饭。吃饭期间,他向其中一位叫Dave McCall的同事提了一个问题:“在你的领域里最重要的问题是什么?”大约一个星期后,再次一起午餐时他继续发问:“你目前正在研究的最重要的问题是什么?” 显然,这位同伴对于这两个问题的回答并不一样。于是他接着问:“如果你当前做的并不是最重要的事,那为什么还要一直花时间投入去做呢?”有了这「灵魂三问」之后,于是——在那个春天接下来的日子里,汉明不得不另找别的同伴一起吃午饭了…… +汉明的问题听起来有些让人生厌,但后来演变成了一个在学术界很受关注的问题——汉明问题(The Hamming Question)。它本来说的是科研选题的事情,但实际上关乎人生最重要的选择。

    内卷,指的是在低水平的状态下无实质意义的消耗。这里的「低水平」,可能是客观的,也可能是主观的。 +针对主观的低水平状态,我们需要冲破意识层面的障碍,同时把读书、实践和思考结合起来,反复迭代,这样才可能跃升到更高的认知层次上。 +而针对客观的低水平状态,唯有认真对待汉明问题,选择好真正重要的人生大方向,才能避免卷入那些无关紧要的、无谓的消耗中去。这才是真正考验大智慧的时候了。

资源

  • 每个程序员都需要知道的 ,整理了一份资源合集,包含了软件工程师技能相关的各类知识资源,包括算法、数据结构、浮点、Unicode、时间、内存、分布式、正则、安全、架构、工程哲学、实践、职业发展、软技能。。。等等,以及一些可用于技能训练和学习的站点。看起来非常符合我这种“收藏了就是学习了”的囤积爱好者的胃口。
  • Word Writer 6 6502汇编源码,是一份开源的Word Writer 6的6502汇编源码,可在模拟器下编译运行。用来学习6502汇编是一个不错的项目。上个世纪80年代爆火的计算机Commodore 64是很多复古计算机爱好者(包括我)的最爱,Word Writer 6是该平台上流行的文字排版编辑软件。
  • HTTP Archive的年度报告,这份报告详细(超级详细)分析了目前全球各在线网页中所使用的技术,从页面中的“CSS”、“Javascript”、“字体”以及用户体验中的“搜索引擎优化”、“移动端支持”等超过20个方面进行展示,内容十分详尽,有种看NBA的进球统计的感觉。
  • Javascript Quiz,一份关于Javascript的小测验,可在线作答,一共十道选择题,全是关于Js语法的常见坑,每道题答完之后都可以点击“info”图标获取关于这道题的详细解释。我试着做了一下,勉强及格。
  • Streams,这里有一批纯AI创作的音乐,由AI负责作曲和编曲,工程师只是把这些乐谱放入DAW软件中进行混音和录音,完成度很高,听起来相当上头。
  • 学习合成器,这个网站提供了一本交互式电子书,讲解了电子合成器的原理,还单独提供了一个交互页面用于调制和体验各种合成器音色。我尝试了一下,真的很直观,在页面中直接可以修改各种振荡器波形、滤波器、LFO等参数,非常适合用于音色合成入门。
  • 函数式编程指北,在线电子书,讲解函数式编程的范式,以Javascript进行举例,作者风趣幽默,深入浅出,觉得被函数编程概念唬住的可以去看看。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-15-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-15-11.png" new file mode 100644 index 000000000..0cdeeba16 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-15-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-17-41.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-17-41.png" new file mode 100644 index 000000000..a6eba29f8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-17-41.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-30-24.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-30-24.png" new file mode 100644 index 000000000..6838ff33a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-30-24.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-45-39.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-45-39.png" new file mode 100644 index 000000000..74565a262 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-10-45-39.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-11-16-56.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-11-16-56.png" new file mode 100644 index 000000000..09aabe135 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-11-16-56.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-15-46-02.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-15-46-02.png" new file mode 100644 index 000000000..2050f0458 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/2022-10-11-15-46-02.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/index.html" new file mode 100644 index 000000000..0088aa1fa --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-003-\346\234\237/index.html" @@ -0,0 +1,15 @@ +机器文摘 第 003 期 +

机器文摘 第 003 期

机器文摘 第 003 期

机器文摘 第003期

搞机

收听广播可以缓解压力(个人体会)

近期我找到一个缓解焦虑的新方法,听收音机。

一定要老式的那种,收听真正无线电波信号的。随便找个台,最好还带有滋滋啦啦的杂音,当作工作时的背景声音,听着听着就感觉无比的放松。但又不是简单的“粉红噪音”、“白噪音”带来的那种平静,这种“仿佛脱离现在、回到了某个时空”的感觉让人感到愉悦。

我还没找到相关的研究信息,有人知道原理吗?

动向

欧洲通过法案,将强制统一USB Type-C接口为充电接口

欧洲议会今天以压倒性多数投票赞成在2024年底之前将USB-C作为包括iPhone和AirPods在内的各种消费电子设备的通用充电端口。

这对于苹果来说恐怕是个坏消息,对于消费者来说应该是个好消息。不过也许以苹果公司的脾气,说不定将来取消所有物理接口也有可能。

波士顿动力承诺不将机器人武器化

当地时间 10 月 6 日消息,波士顿动力、Agility Robotics、ANYbotics 等 6 家公司联合发表致行业的公开信表达了他们对这些可能性的担忧。他们称,先进的商业化机器人的经济可负担性和可获得性越来越强,其被滥用的可能性也越来越大。我们承诺不会将通用机器人或软件武器化,也不会支持其他人这么做;同时呼吁政策制定者、开发者和用户共同促进安全使用。

我个人感觉此类声明并不会带来什么限制,相反地,我偏悲观的认为这种技术很可能以最优先的速度被应用于军事目的。

TAOCP(《The Art of Computer Programming》) 4B正式初版

+图片来自@算法时空

世界著名程序员——高德纳老师,日前在他的个人网站宣布了TAOCP 4B正式出版的消息。

这部计算机世界的经典巨著,耗费了高德纳老爷子的毕生心血,虽然已经出到了第四B卷,但本书目前还没有完全写完(本书从1962年开始写(中间停了几年是因为老爷子发现没有趁手的排版软件,就顺手发明了TEX——这又是另一个宏大话题了),计划共有七卷,其中第四卷分ABC三册)。他在自己主页中提到:

与此同时,我继续研究第3部分(第4C卷),它已经有许多令人兴奋的主题。

我只能说:祝老爷子身体健康!

WebAssembly技术发展的怎么样了?

WebAssembly 是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如 C、C++和 Rust 等低级源语言提供一个高效的编译目标。 +——来自Mozilla官方文档关于WebAssembly概念的介绍

WebAssembly技术号称可以在浏览器中高效执行代码,并可以很方便地将C、Rust等各种语言编译到浏览器中执行,那么目前他的使用体验如何?

我周末做了简单体验。

通过官方给出的文档和入门指南,可以很快速地搭建出程序的原型,上图就是我参考官方示例将Rust代码编译到网页中执行的效果(是一个经典的Game of life的小游戏)。

从开发上来说,现在已经有了比较成熟的工具链(尤其是针对Rust语言到WASM的工具),和共享库的生态,想要进行开发,不必像前些年那样费心地搭建开发环境,基本上在Linux系统下简单执行几行命令即可完成环境搭建。

从执行效果来说,我没有做性能测试,直观感受上来说,确实比原生js快了不少。

但这并不是重点,我个人觉得这项技术它最大的意义在于,将之前的桌面程序技术有了向Web移植的可行性。

我们有可能很快就看到完全兼顾Web分发的方便和桌面程序性能体验的产品。

观点

在你的密码里面放上一个逗号",",这样当你的密码在网上被人拖库时可以给黑客增加一些麻烦,因这样会使得他在作为csv文件往他的密码字典里面导入的时候,因为逗号分隔符的错位而让他崩溃。 +注:csv文件默认使用逗号分隔符区分字段。

  • 来自:佚名网友。

当你长期使用windows远程桌面进行远程办公时,一层一层的服务器登进去,时间长了就会陷入盗梦空间那种疑惑,我现在是在哪一层?

  • 来自:我自己。

量子计算机就是向过去和未来借用了很多乃至无限的时间吗?刹那即永恒。 +注:量子计算机号称每个bit位可在同一时刻表示多种状态。

  • 来自:我自己。

长文

从0到1打造家庭弱电方案

现在有不少人在困惑家里的网线该如何布局,这篇《从0到1打造家庭弱电方案》(中文)记录了作者完整的装修过程,内容十分精彩详尽。看完之后我有点儿后悔,当时装修时没有给各个房间拉上光纤,以及用了比较普通的超五类网线。

如何配置一个完全基于命令行窗口的开发环境

我在油管上关注了一个日本小哥(Takuya Matsuyama),是一个个人开发者,经常上传自己的开发过程录屏,他完全基于命令行窗口(控制台)进行开发,没使用任何IDE。

后来我参考他的配置文件给自己也配置了一套,使用fish作为shell,neovim加上各种插件作为主力编辑器,现已成为我的日常开发环境。

有条件的可以到他的主页看看关于如何配置的详细介绍,或者直接去他的github仓库获取配置文件。

云桌面并不像你想的那么好

给开发人员配置一个廉价的笔记本加上一个高性能的云端工作站,这个点子棒不棒?

听起来有很多的优势,兼具了性能、便携性、安全性等等。

不过先等一等,这里有一位作者在这样尝试了之后,给出了不少负面反馈(比如多显示器支持、GPU加速、网页视频质量等等问题),有兴趣的可以点进去看看。

资源

  • 从高中到大学,数学中常用符号和计算关系的英文名称,适合对数学公式中的各种符号感到困惑的人收藏,这本小册子汇聚了所有数学符号、常用希腊字母、代数式等英文叫法介绍。
  • 如何在Ubuntu下进行x86-x64汇编语言编程,一本讲解现代汇编语言的电子书,基于常用的Ubuntu系统,从认识汇编语言开始讲起,到工具链的准备和怎样编写和调试程序,都有详细的介绍。
  • DrawKit,一个提供矢量插画的网站,有很多免费的高质量插画,可用于网站制作、软件产品等方面。
  • 计算机教育中缺失的一课,一般学校里不会教开发环境的配置和各种效率工具的使用,这本电子书就是以环境和工具为切入点,将学校学习的理论应用于实际,比较接地气。

    大学里的计算机课程通常专注于讲授从操作系统到机器学习这些学院派的课程或主题,而对于如何精通工具这一主题则往往会留给学生自行探索。在这个系列课程中,我们讲授命令行、强大的文本编辑器的使用、使用版本控制系统提供的多种特性等等。学生在他们受教育阶段就会和这些工具朝夕相处(在他们的职业生涯中更是这样)。 因此,花时间打磨使用这些工具的能力并能够最终熟练地、流畅地使用它们是非常有必要的。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-09-53-01.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-09-53-01.png" new file mode 100644 index 000000000..c4076d3ff Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-09-53-01.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-10-55-05.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-10-55-05.png" new file mode 100644 index 000000000..43c0c50be Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-10-55-05.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-10-56-50.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-10-56-50.png" new file mode 100644 index 000000000..caec18521 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-10-56-50.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-10-58-24.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-10-58-24.png" new file mode 100644 index 000000000..56ca167b0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-10-58-24.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-14-04-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-14-04-11.png" new file mode 100644 index 000000000..d0522cb2c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/2022-10-18-14-04-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/index.html" new file mode 100644 index 000000000..85f3aa3c4 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-004-\346\234\237/index.html" @@ -0,0 +1,17 @@ +机器文摘 第 004 期 +

机器文摘 第 004 期

机器文摘 第 004 期

机器文摘 第 004 期

搞机

美国德州仪器公司出品的TI图形计算器是一种既能计算又能作图的新型的数学使用工具,它具备符号代数系统、几何操作系统、数据分析系统等,可以直观地绘制各种图形,并进行动态演示、跟踪轨迹。

TI实体计算器的售价十分昂贵(相较于其他消费类计算器),这里有一个开源项目wabbitemu,使用C语言编写的一个TI计算器的模拟器,可以在电脑上运行并模拟TI计算器,支持多种型号,如TI-82、TI-83、TI-83-plus(需要加载对应的ROM)等。

甚至有人基于这个项目编译出了Android的版本,安装后手机秒变成高级科学计算器。

想进一步了解TI计算器的强大,可以看一下这篇文章《计算器与计算器游戏发展简史》

以上资源来自@Karen的日志

观点

社交媒体的正确使用方法: +一,不浪费一秒钟时间和知识结构相差太大的人去解释/讨论。你没有义务也没有这个精力。对任何不友好评论,迅速拉黑。 +二,通过公开展示你的思考,来寻找在知识结构,兴趣或技能上,可能与你产生互补作用,或者 1+1>2 的效应的朋友。公开展示长期留存的文字记录,效率最高。

来自@硅谷王川

长文

我是如何用21天刷完SICP

SICP 全称 Structure and Interpretation of Computer Programs,翻译过来叫《计算机程序的构造和解释》,是一本关于计算机程序设计的总体性观念的基础教科书,由麻省理工学院出版社与麦格罗希尔出版社共同出版营销。作者是麻省理工学院教授哈尔·阿伯尔森、杰拉德·杰伊·萨斯曼。

这本书是计算机编程领域非常经典的一本教科书,内容覆盖范围非常广泛,从编程入门一直到教你亲手设计实现一个编程语言解释器。虽然是一本几十年前的书,但是书中的编程理念如数据驱动、过程抽象等到现在仍不过时。可以说是程序员修炼“内功心法”必读的一本好书。

这篇《我是如何用21天刷完SICP(中文)》的文章讲述了作者通过阅读本书学习的过程和心得,里面的观点可以借鉴,我在看完之后也想再把这本书拿出来学习一遍。

觉得看书太晦涩的,可以到下面这个项目里下载本书作者课堂讲解视频(国内好心人给做了翻译字幕)

图解Stable Diffusion模型

这篇图解Stable Diffusion模型(英文)详细讲解了 Stable Diffusion(最近比较火的那个可以通过文字描述进行绘图的AI模型)的工作原理。文中使用清晰的图示阐述了“扩散”模型是怎样通过给图片增加噪声一步一步生成图像的。

Wine是如何工作的

Linux桌面用户都遇到过在不得不运行 Windows 软件的时候,这个时候就可以使用这个叫做 Wine 的兼容程序,它可以让你在 Linux 下执行 win32 程序。( Valve 最新出品的游戏掌机 Steam Dect 就使用了 Wine 作为兼容层来运行 Windows 平台下的游戏)。

Wine 的名字来自于 “Wine Is Not an Emulator” 这个英文缩写。

这篇《Wine是如何工作的(英文)》介绍了它的基本工作原理。

在 Windows 记事本里运行光线追踪

光纤追踪(Ray Tracing)是一项计算机图形学技术,使用该技术渲染的计算机图像具有逼真的全局光照效果。

这篇《记事本中的光线追踪 30FPS》记录了作者突发奇想要在Windows上的记事本中进行光线追踪渲染的趣事。

其原理是通过系统API获取到记事本窗口的句柄,然后利用钩子函数给记事本的窗体发送相应的“消息”以及覆盖对应的内存数据来实现对记事本窗体界面的“魔改”。最终实现了在另一个进程里执行光线追踪算法,然后借用记事本中显示的字符来替代画面像素,从而“渲染”出画面的效果。

资源

  • SerenityOS项目,一个从头开始的桌面操作系统,内核采用类似Unix的架构,界面外观则仿照了上世纪90年代Windows的窗口风格。作者并未将其定位成玩具,而是一款具备生产力的操作系统软件。 除了操作系统本身,这个项目还有配套的编程语言Jakt、自己的浏览器引擎LibWeb和浏览器Ladybird ​​​

  • 《中文技术文档写作规范》阮一峰老师整理的技术文档写作规范,规定了标题、文本、段落、标点符号等文档元素的使用约定,需要经常编写技术文档的朋友可以收藏看看。

  • Freehand意绘,一个在线的AI绘图工具,可以根据文字描述帮助你生成图片,界面简洁友好,使用方便。 +

  • 计算机科学自学指南,提供了一份自学计算机科学的全方位资料大全,可以根据内容系统地进行学习计算机科学相关的知识。

    互联网上,到处都有许多的学习资源,然而精华与糟粕并存。你所需要的,不是一个诸如「200+ 免费在线课程」的清单,而是以下问题的答案:

    你应当学习 哪些科目,为什么? +对于这些科目,最好的书籍或者视频课程 是什么? +在这份指引中,我们尝试对这些问题做出确定的回答。

  • UNIX环境中的高级编程,一套编程教程,在课程中,主要学习用C编程语言开发复杂的系统级软件,同时深入了解Unix操作系统(以及属于该家族的所有操作系统,如Linux,BSD,甚至Mac OS X)及其编程环境。

    涵盖的主题将包括用户/内核接口,Unix的基本概念,用户身份验证,基本和高级I / O,文件系统,信号,进程关系和进程间通信。还将涵盖Unix系统上软件开发和维护的基本概念(开发和调试工具,如“make”和“gdb”)。

  • 写在C头文件里的3D物理引擎,一个仅用C99标准写在C头文件里的超小物理引擎,没有依赖,直接包含头文件即可在你的工程中使用,功能完整,内置向量、三角函数、引力等计算库。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-31-46.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-31-46.png" new file mode 100644 index 000000000..9cafd840f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-31-46.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-35-46.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-35-46.png" new file mode 100644 index 000000000..9268b7e1e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-35-46.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-40-07.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-40-07.png" new file mode 100644 index 000000000..7a9724d3c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-40-07.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-48-21.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-48-21.png" new file mode 100644 index 000000000..cd82dfd7c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-48-21.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-52-21.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-52-21.png" new file mode 100644 index 000000000..19e53b9f5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-09-52-21.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-10-10-18.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-10-10-18.png" new file mode 100644 index 000000000..954fcb488 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-10-10-18.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-10-33-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-10-33-53.png" new file mode 100644 index 000000000..e570b4de6 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/2022-10-26-10-33-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/index.html" new file mode 100644 index 000000000..717658c90 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-005-\346\234\237/index.html" @@ -0,0 +1,11 @@ +机器文摘 第 005 期 +

机器文摘 第 005 期

机器文摘 第 005 期

机器文摘 第 005 期

长文

穿越到 1983 年学习 BASIC

很多著名的程序员,尤其在计算机游戏行业,孩童时期就在苹果 II 和 Commodore 64 这样的 8 位计算机上开始编写游戏,John Romero、Richard Garriott 和 Chris Roberts 都是这样的例子。这好理解。在 8 位计算机时代,很多游戏只能在计算机杂志和书籍中以印刷的 BASIC 程序清单方式得到。如果你想玩其中一款游戏,就必须手工键入整个程序。不可避免的,你可能遇到一些问题,所以你就得调试你的程序。等到你让它可以工作起来了,你就已经对程序是如何运行的有了足够的了解,你就可以开始自己修改它了。如果你是一个狂热的游戏玩家,你几乎必然会成为一名优秀的程序员。

喜欢小霸王的小伙伴(老伙伴?),不可错过的文章,一起跟随作者回忆一下如何在老古董电脑上运行BASIC程序,顺便怀念一下当年靠着一本说明书就在小霸王学习机上编写(抄写)游戏的时光。

在 Github 的 Pages 服务里跑 SQLite

作者尝试做一个小网站来显示一些统计数据,于是他想到了用数据库,但是,使用数据库需要托管和维护后端服务,或者每次将整个数据集下载到浏览器中(当数据集超过10MB时,体验就变得很差劲)。

于是作者开始琢磨有没有办法找到一个可以在静态服务器上搞一个数据库服务得可能,毕竟提供静态服务的地方有很多(如 GitHub,GitLab,Netlify 等等)。

一通折腾下来(借助了 WASM 技术并适当的进行一些魔改),作者竟然实现了一个 100% 静态托管的数据库服务。

语句、表达式和海象操作符

这是一篇介绍如何通过“海象操作符“(类似这样:foo := 'bar')使得Python语句更加精炼的文章。

这种操作符之所以可以使得语句更加精炼,主要原因就是它使得一句代码既进行了赋值然后又作为表达式返回了值。

之前写 Python 代码的时候都没注意还有这种写法,而且貌似这在 C 和 C++ 中都是基本的特性。不过 C 和 C++ 是赋值语句=直接就返回了表达式的值,同时这给程序员提供了出错机会(有不少人应该还记得条件判断时少写了个等号导致的问题)。

给个人开发者的一些建议(英文)

hacker news 上的网友针对有志于运营自己的SaaS产品的个人开发者提了一些心得和建议。

摘抄一点儿如下:

  • 关于做什么,做那些你自己都愿意付费的东西,别指望做出一个你自己都不想花钱使用的产品有别人来买单;
  • 还是关于做什么,不要做需要漂亮UI的东西,那会让你陷入编码之外的很多麻烦(确实很牵涉精力),如果提供的工具能够通过简单交互就能提供优质服务最佳;
  • 如果有可能,尽量提供自助服务模式,也就是说让用户不用见到你就可以自行操作付款了(作者这是有多社交恐惧?);

资源

  • 数据结构与算法可视化,是一个学习算法知识的好工具。通过动图来演示和讲解数据结构和算法实现原理,针对每一个常用算法不仅有直观的图示,还附有一篇详细的文档,内涵原理知识以及代码实例,网站甚至还提供了答题练习功能,可以一边学习一边做题。

  • SLip,一个在浏览器中运行的Lisp解释器,使用Javascript实现。网站提供了一个简易的IDE,可以直接在页面中进行编程开发,还提供了图形绘制的扩展包,用于学习lisp语言非常合适。

  • 针对 Windows 预先编译的 Python 扩展包,在使用Python的时候,尤其是在Windows环境,经常会遇到有些扩展包由于依赖某些二进制库的原因导致无法通过pip直接安装,自己动手编译又十分麻烦。这个网站提供了各种预编译版本,可以直接下载网站提供的whl文件到本地然后安装。

  • 3D 渲染器入门,一套计算机图形学的入门教程,从原理讲解开始,手把手教你用C++语言编写一个自己的光线追踪渲染器。

  • HTMLDOG,前端开发基础知识大全,主要是 HTML、CSS、Javascript 的手把手教学以及语言参考。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-13-45-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-13-45-45.png" new file mode 100644 index 000000000..11ed134f9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-13-45-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-01-30.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-01-30.png" new file mode 100644 index 000000000..42adc79c2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-01-30.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-15-18.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-15-18.png" new file mode 100644 index 000000000..5e7ed8882 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-15-18.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-24-59.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-24-59.png" new file mode 100644 index 000000000..227b0131d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-24-59.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-46-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-46-11.png" new file mode 100644 index 000000000..012d33526 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-46-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-47-54.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-47-54.png" new file mode 100644 index 000000000..a7474ff5a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/2022-11-02-14-47-54.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/index.html" new file mode 100644 index 000000000..5c9d9a150 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-006-\346\234\237/index.html" @@ -0,0 +1,18 @@ +机器文摘 第 006 期 +

机器文摘 第 006 期

机器文摘 第 006 期

机器文摘 第 006 期

长文

怎样写一段代码把自己打印出来?

近期在知乎上看到一个如何编写代码打印自己的问题,感到十分有趣。以前也在网上见到过类似的代码,用 C 或者 Javascript 等各种语言实现的版本都有。当时只是感叹代码写的十分神奇,一段代码在运行之后竟然输出自己的源代码,而且一个字符也不差,并没有搞懂其中的原理。这篇回答里,作者给出了详细解释。并指出,冯·诺依曼早在他编写的《自复制元胞自动机理论》一书中的提出了这种事情在理论上的通用方法。

如上图所示,自复制系统有五个基本部件:A:通用构造器;B:通用复制器;C:控制器;D:其他函数;ϕ(A,B,C,D)\phi(A,B,C,D)\phi(A,B,C,D) : A, B, C, D的编码;当自复制过程启动的时候,B将编码复制一份。A再根据复制出的编码构造出ABCD。最后,C再将这些结构组合起来,构造出一个新的、复制的结构。可以看到,自复制、自打印程序的核心就在于通用构造器和编码,因为复制器、控制器都是比较容易实现的。

具体实现的示例,文中有更详细的说明。

最后,此问题可以引申到,大自然中生命基于基因的复制机制,也是与此相关,甚至其背后都是同样的机制。

Kevin Kelly 在 68 岁生日时给出的 68 条建议

凯文·凯利(又称KK, 作者,著有《失控》《科技想要什么》《必然》等),上个月 28 号是他的 68 岁生日,他准备了 68 条简短的建议,作为礼物送给年轻人。

有人翻译了KK 在 68 岁生日时给出的 68 条建议

摘抄几条如下:

任何一项大工程(修房子、拍电影、开发 app)完成度为 90% 的时候,你都要做好心理准备:剩余的大量细节工作会占掉你另一段与之前相当的时间。

不要担心自己问的问题听起来很傻。99% 的情况下,其他人都有和你一样的问题,只不过羞于问出口而已。

别成为一群人里最聪明的那个。和那些比你聪明的人待在一起,向他们学习。如果能找到和你观点相左的聪明人,那就更好了。

别做最好的。做唯一的。

任何真实之物都源于虚构之意。想象是宇宙中最强大的力量,也是你能够日益精进的能力。生命中可以因不知众人所知而获益的能力,仅此一项。

经验往往被高估了。招募的时候,要看资质,技能则可以培训。许多令人惊奇和赞叹的事情,都是由第一次做的人做出来的。

怎样搭建一个最简的 GIT 服务器

GIT 是现在软件开发过程中必不可少的版本控制工具,功能非常强大,我们平时直接使用单位的私有服务或者在线的云服务(如:Github 等)。

如果想要搭建个人的服务,可能就比较繁琐一些。阮一峰老师的这篇博客就解答了怎样采用极简的技术路线,为自己搭建一台 GIT 服务器。

自己搭建 Git 服务器的原因,无非就是不方便访问外网,不愿意代码放在别人的服务器,或者有一些定制化的需求。 +这时,你可以选择开源的 Git 服务器软件。 +Gitlab CE +Gitea +Gogs +Onedev +这些软件里面,Gogs 的安装是最简单的,但是功能相对比较弱。功能越强的软件,安装越复杂。 +如果你只是想远程保存一份代码,并不在意有没有 Web 界面,或者其他功能,那么根本不用安装上面这些软件,一行命令就够了。

为什么很多程序员讨厌低代码?

“低代码”(一般指:不用或少用编写代码的方式进行软件开发)这个词近两年又开始火了,它代表着对软件工程的一种美好“幻想”,即:花费更低的代价去构建复杂的软件系统。

虽然每隔一个时间周期都会被重提一次,但是每次都未能如愿。

现在既然又被频繁提及,我在知乎上发现了这样一篇关于低代码话题的回答。从程序员的视角表达了对低代码这种期望的观点,有兴趣的朋友可以点进去看看。

软件工程这门学问,研究的就是“如何利用工程思想,从整体上降低开发复杂性”;但与之同时,它不得不反复强调“软件工程试图解决的、是人为引入的不必要的复杂性;但工程的本质复杂性是无法逃避的。因为没有银弹,没有银弹,没有银弹!”

我个人的观点是:低代码或者配置化、拖拽式软件开发,很难平衡对复杂现实的抽象程度和开发便利性的矛盾关系。如何做到既提供方便的组件同时又不限制对个性化需求的实现,这需要非常强大的设计能力以及对于特定应用场景的取舍。目前来看,如果要做到或者接近上述状态,必然要先消耗巨量的成本,至于是否值得,可能不同的主体会有不同的选择吧。

资源

  • 从加减乘除到机器学习,一本不错的数学扫盲书,如果你在学习人工智能的时候对数学感到吃力的话,这本书非常适合阅读,一点也不枯燥。主要讲解线性代数相关的知识。

  • 命令行的艺术 想成为命令行高手,掌握这一篇就够了。

    熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。

  • 基于实际项目的学习,这是一个巨大的代码工程资源索引,里面列举了针对各种编程语言的个人项目,当你不知道该如何去深入学习一门编程语言的时候,选择一个这里的项目然后自己动手跟着练一遍效果绝对惊人。入选的项目都十分有趣,比如怎样用 C 写一个解释器、怎样写一个自己的编辑器、自己动手实现 TCP/IP 协议栈,等等。

  • 霞鹜文楷,一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。用来看书非常舒服,特别是在排版上。微信读书已经内置,如果是第三方支持自定义字体的可以试试。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-09-30-08.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-09-30-08.png" new file mode 100644 index 000000000..c2c28563a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-09-30-08.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-09-47-44.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-09-47-44.png" new file mode 100644 index 000000000..6a958ba37 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-09-47-44.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-01-15.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-01-15.png" new file mode 100644 index 000000000..7a6b956b9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-01-15.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-05-43.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-05-43.png" new file mode 100644 index 000000000..2f4a32aa6 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-05-43.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-24-10.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-24-10.png" new file mode 100644 index 000000000..6d05db2e2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-24-10.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-28-42.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-28-42.png" new file mode 100644 index 000000000..505c9a5ca Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-28-42.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-32-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-32-23.png" new file mode 100644 index 000000000..4bb76f710 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-32-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-36-51.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-36-51.png" new file mode 100644 index 000000000..0747b8048 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/2022-11-09-10-36-51.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/index.html" new file mode 100644 index 000000000..37cbf0cb5 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-007-\346\234\237/index.html" @@ -0,0 +1,11 @@ +机器文摘 第 007 期 +

机器文摘 第 007 期

机器文摘 第 007 期

机器文摘 第 007 期

长文

如何在 HTML5 Canvas 制作可精确控制时间的动画

使用 Canvas 对象在网页中制作动画非常简单,有不少人喜欢直接使用定时器 setinterval 以一定的时间周期循环执行绘图代码来实现动画效果。但是这种做法有一个弊端,由于显示刷新率以及计算机硬件性能的不同,会导致在不同机器上的表现差异。比如你希望你的动画角色在 1 秒内移动 50 个像素,但是实际执行起来却很难控制。基于时间的动画这篇文章讲解了如何使用浏览器的 requestAnimationFrame API 来实现精准控制动画时间的效果,里面给出了一个很简单的样例,但是基本上给出了一个完整的“更新、渲染、通过时间变化计算运动距离”的游戏控制架构。

如何使用纯 Web 技术开发一个相机 App

如果不习惯复杂的移动 app 开发环境,直接使用 Web 技术开发一些小的 App 也是十分方便的。我近期希望通过网页实现一个拍照的应用,并且希望不使用手机的原生相机功能,而是自己控制一些相机参数、后期效果、增加特定的取景框等等。于是我找到了一篇教学指南:Make a Camera Web App,只需几十行代码就实现了一个相机 App 。感兴趣的朋友可以点进去看看。

数据库是如何工作的,从零开始写一个数据库

如果和我一样好奇数据库是如何实现的,可以看看这篇文章。带你用 C 语言从头撸一个数据库出来。

使用 Rust 写一个操作系统

Rust 逐渐火起来了,这篇 2018 年的文章整理了一份教程,作者尝试使用 Rust 写一个操作系统,我之所以收录它是因为作者还在 Github 开源了代码,并且这系列教程甚至提供了多国语言的版本。制作精良。应该是实践操作系统知识的好教材。

资源

  • 100 天精通 CSS ,这个网站给了你 100 个关于 CSS 技术的挑战题目,也许练完之后可以达到深入应用 CSS 的效果,我尝试了几个挑战,有些题目的设置有些偏炫技范畴了,想在工作中使用估计会被打死。

  • Linux 命令在线帮助工具,对于我这种经常记不住命令用法的人来说真的是一种福音。比如我就经常记不清 tar 命令的用法,面对压缩包解压或者文件打包的工作每次都是去网上搜索一番。有了这个在线工具,直接在命令行中使用 curl请求他的网址就可给出命令的样例用法详解,非常方便。比如执行curl cht.sh/tar 就会给出 tar 的使用样例了,我直接复制粘贴之。

  • 手机博物馆, 网站收录了各品牌手机的各代产品资料,包括手机图片、型号参数、当时发布的广告等。不过我看了一下,资料应该还不齐全,有些手机只是列了个名字和型号在那儿,还缺少详细信息,估计还在继续收集中。

  • 中文家用游戏博物馆 ,收录了比较齐全的家用游戏机及掌机的中文版游戏资料。可以直接在线通过模拟器玩耍。有不少经典的 FC、GB、MD 游戏,甚至还有小霸王学习机的 ROM ,可以在线体验。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-09-24-41.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-09-24-41.png" new file mode 100644 index 000000000..102197b37 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-09-24-41.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-09-36-12.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-09-36-12.png" new file mode 100644 index 000000000..8aef264a7 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-09-36-12.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-09-58-00.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-09-58-00.png" new file mode 100644 index 000000000..f5c6a578f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-09-58-00.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-10-26-09.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-10-26-09.png" new file mode 100644 index 000000000..d57cea71c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-10-26-09.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-10-34-57.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-10-34-57.png" new file mode 100644 index 000000000..43770f80b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-10-34-57.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-10-51-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-10-51-40.png" new file mode 100644 index 000000000..6bf856d12 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/2022-11-16-10-51-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/index.html" new file mode 100644 index 000000000..cacce943c --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-008-\346\234\237/index.html" @@ -0,0 +1,21 @@ +机器文摘 第 008 期 +

机器文摘 第 008 期

机器文摘 第 008 期

机器文摘 第 008 期

长文

用好 GitHub,给自己建立一个全方位的私有云平台

+很多人都有进行个人的知识管理和数字资源管理的需求,市面上也有很多软件工具或者平台来满足这样的需求,但是大部分都是收费的,且自由度不高。我个人经常使用 Github 作为知识管理仓库,我的网络日志、技术博客、私人小项目、电子书籍等都放在上面,生活中已经离不开这个网站了。

近期读到这样一篇文章–善用 Github,全方位讲解了 Github 如何使用,如何将其提供的服务发挥最大化的作用,看完受益匪浅。

GitHub 是微软旗下的一个在线软件源代码托管服务平台,也是一个拥有八千多万开发者用户的社区。很多开发者应该对GitHub有一定的了解,但非技术人员大多可能并不会去使用它。本文更多是想给非技术人员来介绍这个平台,看完这篇文章,希望能让更多人在上面来学习、创作与展示自己的作品。

WebGPU 是什么?跟 WebGL 有什么关系?

+前几天我想在网页上制作一个小游戏,用于尝试一下图形编程相关的技术。用到了一些基于 Web 技术的 3d 图形框架,比如 Three.js、Babylon.js 等等。在尝试的过程中遇到了一个新的名词 WebGPU,之前总是在听说 WebGL 相关的技术,结果说了这么多年,WebGL还没普及,怎么又冒出来一个 WebGPU?于是找了一篇文章,浅扒一下各个图形接口的历史。就是这篇浅入浅出 WebGPU

2016年6月,Google 产生了使用新API来代替WebGL的想法,称之为 WebGL Next。 +2017年1月,Khronos Group 举办了WebGL Next研讨会,Chromium一马当先,展示了可以基于OpenGL和Metal独立运行的新图形系统原型,同时Apple和Mozilla也分别展示了自己的原型,三者都非常类似于Metal Api。 +次月,Apple就向W3C提交了一个名为 WebGPU 的技术概念验证方案,基于Metal图形开放接口,最终W3C采纳了 WebGPU 这个名字作为下一代标准,Apple的提案进入了正式的小组提案中。 +3月,Mozilla向Khronos Group提交了基于Vulkan的名为WebGL Next提案。 +2018年6月,Chrome团队宣布着手实现WebGPU,这意味着Khronos的失败,WebGPU胜出,大家以后还是团结在W3C的周围。 +按照预期,工作组希望在2021年底发布WebGPU 1.0 标准,不过目前只有草案。 +WebGPU 1.0 草案:https://www.w3.org/standards/types#WD

扔掉 Photoshop 改用字符串绘图

+相信很多人都接触过使用字符绘制的图片,这在程序员圈子里甚至发展为一门专有的艺术 “ASCII 艺术”。不过我现在不是要说这些,我在一篇 2015 年发表的文章里,发现了这个:有个猛男在自己的程序里彻底抛弃使用 Photoshop 制作的图片资源,改用字符串来描述各种图形(程序界面的图标),然后自己再用代码将其渲染成为高清的图像。

作者对此很沾沾自喜,他甚至设计了一套自用的语法规范,用特定字母代表特定的符号关系,这样就可以组合出各种复杂的图案了。

我也在文章的评论区见到了跟我有同样疑惑的读者留言:“这不就是重新发明了 SVG 吗?唯一的区别就是没有用 XML 作为载体”。

不过文章记录的整个开发过程还是很有趣的,希望了解朋友可以点进去看看 Replacing Photoshop With NSString

资源

  • FFmpeg原理,FFmpeg 这个开源项目可能圈外的人士了解不多,但实际上我们生活中一刻也离不开它。现在的网络直播、网络视频网站和移动App、各种视频剪辑合成软件,都或多或少的使用了 FFmpeg 提供的编解码技术。这本在线书籍对于想进一步了解 FFmpeg 以及视频编解码技术的朋友是个不错的参考资料。

    本书《FFmpeg原理》主要讲解 FFmpeg 原理性的知识,前面几章主要讲解一些音视频开发的基础知识,例如原始数据 YUV 跟 RGB,封装格式 FLV 跟 MP4 ,压缩编码的基本概念,还有封装格式分析。

  • 开源虚拟与远程桌面基础架构,远程桌面软件,开箱即用,无需任何配置。(我个人目前还是使用windows的远程桌面多一些,不过这个开源的rustdesk看起来不错)

    您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器,或者自建,亦或者开发您的版本 +

  • Learn X in Y minutes,这里的教程几乎涵盖所有编程语言,完全没有废话。英文版、中文版都有。如果有编程语言基础的话,通过这个网站确实可以在几十分钟内掌握一门新的编程语言的核心知识。

  • Flash 保存计划,Flash 虽然消失了,但是它曾经创造的辉煌一直在我们的记忆里,现在偶尔还想起一些经典的小游戏。这个网站里收藏了很多经典的Flash小游戏,通过一些黑科技复活了它们,可以在浏览器里运行体验。反正我一打开了黄金矿工,就半天停不下来。

  • CodeGeeX: 多语言代码生成模型,又一个能帮你写代码的 AI 模型。提供有官方的 VSCode 插件。我试了一下,效果跟 Github 的 copilot 还有一定的差距。

    CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2022年6月22日,CodeGeeX历时两个月在20多种编程语言的代码语料库(>8500亿Token)上预训练得到

  • 计算机网络基础学习(英文),一个在线讲解网络基础知识的教程,优点是内容简洁,不用特别多的专用名词唬人,另外还提供了在线实验的环境。

    关于计算机网络的书籍往往令人生畏 - 数千页,无聊的图表……这个教程以几千字的字数引导您了解网络基础知识!它还提供动手实验室来实践所获得的知识。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-14-24-20.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-14-24-20.png" new file mode 100644 index 000000000..e8ebdcfa8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-14-24-20.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-14-41-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-14-41-33.png" new file mode 100644 index 000000000..297c8b6b9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-14-41-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-15-11-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-15-11-11.png" new file mode 100644 index 000000000..0c2218dff Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-15-11-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-15-24-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-15-24-33.png" new file mode 100644 index 000000000..425986292 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-15-24-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-15-33-35.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-15-33-35.png" new file mode 100644 index 000000000..2a4705ee0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-15-33-35.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-16-16-10.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-16-16-10.png" new file mode 100644 index 000000000..fdbd441b7 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-21-16-16-10.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-23-10-36-44.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-23-10-36-44.png" new file mode 100644 index 000000000..a3560c871 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-23-10-36-44.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-23-10-41-36.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-23-10-41-36.png" new file mode 100644 index 000000000..8d6f5e978 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/2022-11-23-10-41-36.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/index.html" new file mode 100644 index 000000000..20a89f26d --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-009-\346\234\237/index.html" @@ -0,0 +1,21 @@ +机器文摘 第 009 期 +

机器文摘 第 009 期

机器文摘 第 009 期

机器文摘 第 009 期

长文

游戏中的“精灵”

+精灵(sprite)这个词来自古法语单词“esprit”,意思是“精神”——源自拉丁语“spiritus”。在民间传说中,精灵是活泼、俏皮和神奇的小生物。然而对于游戏开发者来说,它又是另一个含义了。

这篇《精灵的惊人历史》(英文),介绍了不同的游戏厂商,在早期硬件机能有限的条件下,如何实现“角色在屏幕上移动”这个现在看似十分简单的事情的。

对于不了解“精灵”的含义的,稍作如下解释:

2D 游戏在处理需要动起来的角色时,出于性能考虑,将一部分图形的绘制与背景画面的绘制分开,对于频繁需要刷新(动起来的)部分,单独处理,使他们感觉像是漂浮在背景画面的“幽灵”似的,故名“精灵”。

任天堂 NES 的一些技术细节

+NES 是任天堂推出一款极其成功的家用游戏机(NES : Nintendo Entertainment ,System 是其在北美发售的名称,亚洲叫 FC :Family Computer),不少80、90后的朋友应该都玩过(或者是国内山寨厂商仿制的*霸王之类)。

NES 使用极其经典的 6502 CPU。这块 CPU 有多经典呢,苹果的 Apple1代2代 、史上销量第一的个人电脑 Commodore 64 、国内早年比较流行的文曲星等,使用的都是这个 CPU。

《我做了一个 NES 模拟器》(英文),这篇文章的作者在编写模拟器的过程中挖出了不少技术细节,里面还提到了硬件存在的各种 BUG (没错,要模拟的话必须连 BUG 都得模拟,不然有些游戏玩不了),想要了解的朋友可以点进去看一下。

作为模拟器爱好者,我对 6502 处理器非常好奇,一度希望自己动手也实现一个,而且这款处理器真的非常适合模拟器入门,毕竟只有三个寄存器和百十条指令。

文中提到的 NES 模拟器在 Github 上开放了源码,有兴趣的可以学习。

一个桌面开发程序员为了学习 Javascript 而手撸了一个基于 WebGL 的游戏引擎

+学习一样技能最好的方式就是动手去做。

当我感叹牛人怎么那么厉害的时候,往往忽略了牛人的学习过程。

以为他们天生就那样。

事实上他们的技能也是靠努力训练得来的。

不过,学习方法确实很重要。

《我对 Javascript 的尝试》(英文),这篇文章的作者原本是一个桌面程序开发者(类似 CAD 软件之类)。

他突然想要学习前端开发,掌握 Javascript 语言。

于是结合自己之前的知识,使用前端技术做了一套很优秀的 Demo 程序,一个性能和外观都很不错的游戏引擎。

文章里作者详细介绍了实现过程中对技术、算法的选择等等。

内容很长,但还算友好,比较干货。

资源

  • 开发者之路,汇总了各个技术路线的学习资料,包括前端、后端、运维、计算机科学、区块链、移动端、质量管理等等。 + +总之极其全面。 +目前在 Github 有两百多万个 star,被 fork 了 三十多万次。
  • chrome 插件下载,访问谷歌浏览器插件商店有困难吗?试试这个网站,可以直接下载插件的包文件,下载后拖入浏览器即可安装。不过我已经转换到微软的 Edge 阵营了,用不到这个了。
  • CSS3 生成器,对于 CSS 的属性参数总是记不住,这个网站就很适合我。每次要调背景渐变、圆角、阴影、动画曲线等等,都得现去搜。有了这个网站,在线点点拖拖,直接复制代码即可。 +
  • tesseract.js,可直接在浏览器里运行的 OCR 引擎,支持多国语言(超过 100 种)文字识别。 +
  • AI 在线写诗,比较全面的 AI 写诗工具,可以写律诗、绝句、现代诗、歌词等等,根据输入的主题任意发挥。 +
  • 图片分辨率在线提升,上传图片,网站使用 AI 算法将图片的清晰度自动提升,效果还不错。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-14-11-12.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-14-11-12.png" new file mode 100644 index 000000000..04e868406 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-14-11-12.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-14-24-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-14-24-37.png" new file mode 100644 index 000000000..a4931289a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-14-24-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-14-45-43.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-14-45-43.png" new file mode 100644 index 000000000..5ac658a20 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-14-45-43.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-14-46.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-14-46.png" new file mode 100644 index 000000000..a66fc3b55 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-14-46.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-31-31.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-31-31.png" new file mode 100644 index 000000000..1ffadb892 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-31-31.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-36-44.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-36-44.png" new file mode 100644 index 000000000..5a3d36964 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-36-44.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-42-20.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-42-20.png" new file mode 100644 index 000000000..2d68e147c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/2022-11-29-15-42-20.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/index.html" new file mode 100644 index 000000000..6f1a2f670 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-010-\346\234\237/index.html" @@ -0,0 +1,18 @@ +机器文摘 第 010 期 +

机器文摘 第 010 期

机器文摘 第 010 期

机器文摘 第 010 期

长文

极客摄影指南

+相机,也是机器的一种。

我用它记录生活,捕捉生活中转瞬即逝的美好瞬间。

有个问题一直困扰着我,怎样拍出不那么“到此一游”的照片?

怎样才能“掌控”相机这个机器?

这篇《极客摄影》(英文)能够帮助你对摄影做一个真正深入的理解(而不是学习那些充斥社交平台的各种浮于表面的“技巧”)。

作者是一个热爱摄影的技术男,有二十多年摄影经验。

听他给你讲讲什么是“光”和“构图”。

一篇就够了。

MS-DOS 背后的设计

包括我在内的不少 80 后接触电脑是从 MS-DOS 开始的。

对于它的黑窗口和命令行都有着很深的印象。

上大学时执行最多的命令是format c: /s /q

当年还玩过不少在 DOS 平台的游戏,比如仙剑奇侠传、主题医院等等。

只是当时没工夫对系统本身做深入了解。

顶多是,自己在学习汇编语言时,对 DOS 又仔细端详了几眼。

这篇《凑近看看 MS-DOS 》(英文),介绍了 DOS 系统的设计标准、内存分配、磁盘文件结构、FAT文件系统的技术细节等等。

想要窥探技术细节的可以点进去看看。

构建最快的 Lua 解释器

+给动态语言编写解释器可能不算太难(如果只是能跑的话)。

但是如果要编写一个高性能的、好用的动态语言解释器,比如像谷歌浏览器所用的 V8 引擎那样,就比较困难了。

《构建最快的 Lua 解释器》这篇文章站在更高维度提供一种方法,即:编写一种可以自动生成编译器(解释器)代码的程序,以使得制作高性能解释器变得更加容易。

我看了一下,大概就是自动化生成之前需要手工处理的编译器优化代码。作为编译原理学的不怎么明白的我,对此不敢评论。

为什么 Linux 内核没有单元测试?

+我对单元测试的态度一般,既不强烈支持,也不反对。

听说有的开发团队由于对于单元测试十分狂热,已经到了不允许写注释,都用单元测试替代的地步。

前不久,在 HN 上有网友发起了一个引战的讨论:“既然单元测试这么好,为什么 Linux 内核源码不用呢?

以下为部分观点:

单元测试被严重高估了,TDD有一些好主意,但有一段时间它变成了一种宗教。

单元测试与TDD宗教不是一回事。它只是意味着将事物划分为小单元并尽可能详尽地测试其功能。

SQLite不是反例吗?他们有更多的单元测试代码,而不是实际运行的代码。

资源

  • Python 100 天从入门到精通,Python 好学吗?好学又不好学,上手容易,精通难。这里有套开源教程囊括了从入门到实战应用(语言基础、数据处理、Web开发、网络开发、爬虫、深度学习等)的所有课程。这个仓库目前已经在 Github 上获得了 12 万star。可以说是好评如潮,想深入学习 Python 的不容错过。赶紧到我收藏夹里吃灰。

  • 在线单片机模拟器,想要学习单片机开发,又没有硬件设备吗?这个网站最合适。不需要担心手残不会电烙铁,也不用担心买不到芯片。直接在线进行模拟接线,直接运行编写的代码,结果实时展现。 +

  • slow roads,一个在线赛车游戏。基于网页制作。亮点在于作者实现了无限地图。所有地形和道路均使用程序生成。游戏有自动驾驶模式,如果只想观赏路边风景的话,可以开启。 +

  • TIC-80,TIC-80 是一台用于制作、播放和分享小型游戏的幻想计算机。有内置的开发工具:代码、sprites、地图、声音编辑器和命令行,这足以创建一个迷你复古游戏。在退出时,你将得到一个盒式文件,它可以在网站上存储和播放。 +另外,游戏可以打包成一个播放器,可以在所有流行的平台上运行,并按你的意愿分发。为了制作一个复古风格的游戏,整个创作过程是在一些技术限制下进行的。240x136 像素的显示屏,16 种颜色的调色板,256 个 8x8 的彩色 sprites,4 channel sound 等等。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-13-22.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-13-22.png" new file mode 100644 index 000000000..307bdab4a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-13-22.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-21-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-21-23.png" new file mode 100644 index 000000000..36c157935 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-21-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-37-41.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-37-41.png" new file mode 100644 index 000000000..21e951fad Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-37-41.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-43-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-43-28.png" new file mode 100644 index 000000000..97ba94ed0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-43-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-51-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-51-28.png" new file mode 100644 index 000000000..0806698ca Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-51-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-54-49.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-54-49.png" new file mode 100644 index 000000000..fe0548dfb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-54-49.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-57-10.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-57-10.png" new file mode 100644 index 000000000..56a65937b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-57-10.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-59-27.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-59-27.png" new file mode 100644 index 000000000..f058f77e0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-09-59-27.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-10-02-46.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-10-02-46.png" new file mode 100644 index 000000000..9f73e6c13 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/2022-12-07-10-02-46.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/index.html" new file mode 100644 index 000000000..d11ab3035 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-011-\346\234\237/index.html" @@ -0,0 +1,20 @@ +机器文摘 第 011 期 +

机器文摘 第 011 期

机器文摘 第 011 期

机器文摘 第 011 期

长文

自己动手做一个天气墨水屏

+有个喜欢动手的哥们,发现了自己及家人的一项小需求,即从家出门的时候想快速知道天气情况。

虽然这种需求抬眼看一下手机也能实现,但是本着“懒惰使人进步”的核心思想(作者懒得掏出手机)他动手实现了一套基于电池供电的可以显示天气预报信息的电子墨水屏。

这篇《做一个天气墨水屏》记录了作者从诞生点子到产品出炉的全过程。

另外作者还开源了项目的源代码,可在这里获取

M1 GPU 的故事

+GPU 大家都知道,这里有篇文章介绍了它的工作细节

作者来自一个给苹果 M1 芯片适配 Linux 驱动的团队(苹果官方不提供驱动,所以这意味着需要做一些逆向工程)。

本文记录了这些工作中比较有趣的部分,还顺便介绍了 GPU 的一些底层工作原理。

在 Commodore 64 上实现位图滚动条的显示

+Demosense 是一项挖掘计算机硬件机能极限的活动。

通常创作者们会通过各种编程技巧来实现看似无法达到的效果。

由于 Commodore 64 这台古董电脑十分经典,现在仍有不少Demosense爱好者在为它开发程序。

这篇文章讲述了著名 C64 demo 程序 Memento Mori 的实现过程,程序在 Commodore 64 上显示了一副巨大(对于C64来说)的图片。

这在圈内属于首创。

动手做一个 4 位 CPU

+计算机组成原理是不是还没学明白?没关系,我们可以自己亲手做一个简单的 CPU 。

Nibbler 是一款 4 位 CPU,使用标准 7400 系列逻辑芯片(单个计数器、寄存器、缓冲器和门)构建而成。是一个简单 CPU 的教育示例,易于理解和构建,但仍然能够运行游戏和其他有趣的程序。Nibbler 在 5 x 4 英寸(127 x 102 毫米)穿孔板上使用绕线制造。CPU总共包含17个芯片。

作者公开了设计图纸和相关资料,可在文章内部的链接中获取。

资源

  • 纯手撸一个解释器,编译原理没学明白没关系,这本在线电子书手把手教你写一个自己的解释器。 +

  • Git 飞行规则 (Flight Rules) ,一个十分全面的 Git 使用指南,把你能遇到的情况都想到了。 +

  • Vim 高级进阶,如果你已经学会了怎么退出 Vim,恭喜你,已经击败了 80% 的选手。想要在 Vim 中进行更高效的编辑操作,这份高手指南十分适合作为参考。 +

  • Flexbox 布局交互指南,这篇在线教程讲解了如何使用 Flexbox 进行页面布局,难能可贵的是直接在页面中提供了交互操作界面,可以一遍学一遍实践,非常方便。 +

  • 在线 AI 标注工具,想要训练自己的 AI 模型,比如目标检测、图像分类等等,可以使用这个在线工具进行数据标注,直接上传图片然后在线标注,完成后可导出 VOC、Coco 等格式的数据集。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-13-30-19.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-13-30-19.png" new file mode 100644 index 000000000..6c920d240 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-13-30-19.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-13-41-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-13-41-23.png" new file mode 100644 index 000000000..cf7c8bedb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-13-41-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-13-54-06.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-13-54-06.png" new file mode 100644 index 000000000..fe0d7d10a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-13-54-06.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-06-08.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-06-08.png" new file mode 100644 index 000000000..71169add2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-06-08.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-19-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-19-26.png" new file mode 100644 index 000000000..8bd92e5d3 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-19-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-23-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-23-40.png" new file mode 100644 index 000000000..2452bd0e0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-23-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-29-43.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-29-43.png" new file mode 100644 index 000000000..60f7366b0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-29-43.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-32-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-32-47.png" new file mode 100644 index 000000000..617c4baf1 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-32-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-43-13.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-43-13.png" new file mode 100644 index 000000000..2cc77532f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/2022-12-13-14-43-13.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/index.html" new file mode 100644 index 000000000..e0b7f9815 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-012-\346\234\237/index.html" @@ -0,0 +1,15 @@ +机器文摘 第 012 期 +

机器文摘 第 012 期

机器文摘 第 012 期

机器文摘 第 012 期

长文

Github 登录被第三方网站滥用了吗?

+为了方便账号注册,现在很多网站都提供了基于 Github 账号登录的方式。

我个人也更倾向于使用这种方式登录。

毕竟可以少填一些注册信息,减少思考密码的麻烦。

但是这样做有什么安全问题没有?

上周有一个在 HackerNews 上的帖子,有人遇到了在使用 Github 账号登录某些网站之后,导致他的账号莫名给别的仓库添 Star 的情况。

这引发了大家关于 Github 账号权限管理以及通过第三方鉴权进行账号登录和注册的讨论。

看完觉得在第三方鉴权授权时还是应该慎重使用才好。

每个黑客都知道的命令行快捷键

+在图形化界面、触控操作交互界面已经十分普及的今天,普通用户可能现在很少能接触到命令行操作了。

但是对于软件开发者、IT运维工程师来说,命令行还是属于离不开的操作界面。

而且对于有些工作任务来说,使用命令行完成起来要更加高效。

这篇文章讲解了常见命令行交互时的一些快捷操作,比如常见的行内编辑、快速移动光标到命令开头、历史记录搜索等等。

掌握之后可以在各种命令行交互界面中进行使用(基本风格一致)。

基于颜色循环的动画技术

+在计算机硬件资源匮乏的上世纪 90 年代,开发人员为了在有限条件下实现丰富的效果真是挖空心思。

比如,还记得 Windows 98 的启动画面吗?

蓝天白云,Windows 徽标,底部有一个蓝色的渐变色条,在缓慢的滚动。

实际上它只是一幅图片,并非多帧动画。

这就用到了一个叫做“颜色循环”的技术。

来自维基百科:颜色循环,也称为调色板移动,是计算机图形学中使用的一种技术,其中颜色被更改以产生动画的假象。这种技术主要用于早期的电脑游戏,因为存储一个图像并更改其调色板比将动画存储为几帧需要更少的内存和处理器能力。

这里有个博客使用 HTML Canvas 复刻了一批采用颜色循环创作的作品,效果非常惊艳。

另外网站还开源了用于展示这些作品的图形引擎,虽然现在已经不再维护了,但是用于学习和探索还是很有研究意义。

软件逆向工程入门

+软件的加密和破解在普通用户眼里十分神秘。

这篇软件逆向工程入门比较深入浅出地介绍了一些常用手法,跟着作者可以浅尝一下在内存中寻找注册号、修改汇编指令以使得软件保护失效等体验。

资源

  • 计算机课后作业,斯坦福大学计算机专业评选的历年来优秀作业作品。如果不知道自己编程需要练习什么的话,可以打开参考参考,很有实用价值,比起在 Leecode 上刷算法的题目,这些作业都在解决实际问题。

  • 互联网档案学术,全文检索索引包含超过2500万的研究文章和其他保存在互联网档案馆里的学术文档。 该馆藏涵盖从18世纪期刊的数字化副本,到最新的Open Access会议记录和从万维网上抓取的预印本。

  • PlayCanvas Web 优先的游戏引擎,一个免费的游戏引擎,倡导以 Web 优先,在网页中提供从开发到发行的全部流程支持。

  • 命令行会话记录器,Asciinema 是一个免费开源软件,用于帮助用户录制在命令行中的操作行为,便于在互联网上分发自己的操作示范、教学演示。比起直接视频录屏的方式,这种以字符方式的记录更加节约资源,无论是记录、传播还是回放环节,都很轻量。

  • 十分钟物理,这套教程集合了一组十分钟左右的视频短片,每次介绍一个基本的物理概念并通过 Web 前端技术编程实现模拟。除了视频之外,网站还提供了源代码、演示环境等配套资源。

  • Easy6502,一本学习 6502 汇编的电子书(没错,我就是特别喜欢这款 CPU)。网站带有交互界面,提供了一个简易模拟器,可以边学边练,教程最后会带你实现一个基于汇编的贪食蛇游戏。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-09-36-43.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-09-36-43.png" new file mode 100644 index 000000000..d828c155d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-09-36-43.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-09-49-07.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-09-49-07.png" new file mode 100644 index 000000000..026187bd2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-09-49-07.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-09-54-30.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-09-54-30.png" new file mode 100644 index 000000000..286b7771e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-09-54-30.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-03-35.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-03-35.png" new file mode 100644 index 000000000..d19292b2b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-03-35.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-12-18.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-12-18.png" new file mode 100644 index 000000000..2e56fbb7a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-12-18.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-14-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-14-33.png" new file mode 100644 index 000000000..db4b17c99 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-14-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-20-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-20-26.png" new file mode 100644 index 000000000..eab29b07f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-20-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-23-10.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-23-10.png" new file mode 100644 index 000000000..9f4e18857 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/2022-12-21-10-23-10.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/index.html" new file mode 100644 index 000000000..30bb3a3fb --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-013-\346\234\237/index.html" @@ -0,0 +1,11 @@ +机器文摘 第 013 期 +

机器文摘 第 013 期

机器文摘 第 013 期

机器文摘 第 013 期

长文

从古董电脑中我们能学到什么

我也不知道为什么自己会对老旧电脑,尤其是上世纪80年代、90年代出品的电脑这么迷恋。

我觉得那个时代的电脑散发着一种难以名状的工业气质。

通过阅读这篇文章,使我意识到一些深层次的原因。

这些老式电脑的魅力来自于当时技术的限制、简单粗暴和直接。

通过深入了解这些老古董、学习开发那个时代的软件,可以更容易地了解计算机科学。

毕竟,现在的计算机已经充分的复杂和“人性化”,软件把硬件包裹得越来越严实和抽象。以至于根本看不清它的内部构造和实现原理。

去研究那些古董电脑吧,操作那些裸漏单纯的硬件接口,贴近更加具体的科技。

这是一篇很富有哲理的小小说,严格来说跟机器没有关系。

但是写的实在是很好,忍不住收录进来。

毕竟,喜欢机器的人,很难抗拒这种对宇宙天马行空的探索。

RLHF 模型详解

近期 AI 圈最火的事情,莫过于 OpenAI 发布的聊天机器人 ChatGPT 了。

这个智能聊天机器人已经强大到可以让人担忧的地步了。

那么,它背后的实现原理是什么?

这篇文章讲解了 ChatGPT 所使用的 RLHF(人类反馈强化学习) 模型是如何实现的以及它的未来会怎样发展。

基于扩散模型生成音乐

基于文本生成图像的扩散模型已经火了一段时间了。

我当时还在想,既然基于扩散模型可以生成图像的话,那能不能生成声音呢?

结果我只是动了动念头,人家这边已经把成果拿出来了。

这篇文章介绍了他们基于扩散模型生成音乐的项目。

我试听了一下,效果还不错,挺神奇的。

资源

  • tmux 入门,一篇 tmux 的入门教程。tmux 是一个终端程序,可以同时模拟多个客户端控制台,如果觉得不好理解的话,可以认为它是一个控制台的多页签浏览器。因为在工作中经常需要 ssh 登录服务器进行编程开发,我现在已经离不开它了。

  • 一个有趣的个人网站,作者是一个日本在读博士生,网站放了一些个人的编程作品,主要跟物理模拟、像素艺术有关。

  • 你好,算法,一本开源电子书,可在线阅读,深入浅出讲解数据结构和算法,生动有趣,适合有一定编程基础但是算法这块有些薄弱的爱好者阅读。

  • 神经网络在线教程,一套神经网络编程教程,提供在线的 python 代码阅读环境,适合作为入门资料学习。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-13-43-13.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-13-43-13.png" new file mode 100644 index 000000000..26f55a207 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-13-43-13.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-13-56-50.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-13-56-50.png" new file mode 100644 index 000000000..e999784a2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-13-56-50.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-13-58-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-13-58-23.png" new file mode 100644 index 000000000..297505bb7 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-13-58-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-09-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-09-23.png" new file mode 100644 index 000000000..75ba435fc Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-09-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-16-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-16-52.png" new file mode 100644 index 000000000..f9466e206 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-16-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-25-49.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-25-49.png" new file mode 100644 index 000000000..4ce23eb23 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-25-49.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-33-08.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-33-08.png" new file mode 100644 index 000000000..8802fac14 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-33-08.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-59-31.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-59-31.png" new file mode 100644 index 000000000..596495756 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-14-59-31.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-15-05-15.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-15-05-15.png" new file mode 100644 index 000000000..f75578fb4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/2022-12-27-15-05-15.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/index.html" new file mode 100644 index 000000000..785bd46ec --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-014-\346\234\237/index.html" @@ -0,0 +1,12 @@ +机器文摘 第 014 期 +

机器文摘 第 014 期

机器文摘 第 014 期

机器文摘 第 014 期

长文

运行在单片机上的 Qt

尝试过给单片机写图形界面没有?

这篇 《Qt on MCU》 比较系统的介绍了“为什么选择 Qt(一套开源图形界面库) 给单片机做界面”、“Qt 的基本架构”、“程序移植性”等相关问题。

读完可以较为全面地了解在单片机这种机能较弱的硬件设备上制作图形界面的基本思路和需要关注的问题。

OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务

现在大家都不止一个电子终端设备,个人数字信息、各种数据文件的同步需求基本上是一个刚需。

有很多厂商提供了收费方案,比较常见的有国内的各种网盘、手机厂商提供的各种 Cloud 服务等等。

如果想基于家庭网络自己动手搭建一个私有服务的话,可能略微麻烦一些,不过也有较为成熟的方案了。

条件具备的话不妨参考这篇《OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务》动手试一试。

用 Flash 高清重制一款游戏

Flash 基本已经成为历史了。

即便现在可以通过一些渠道或者浏览器勉强开启 Flash 插件的话,也会提心掉胆地担心计算机的安全性。

毕竟那些恼人的弹窗广告有 80% 都是靠 Flash 技术实现的。

但是还有这么一群人,他们玩着 4399 上的小游戏长大,80 后喜欢的各种主机游戏在他们眼里根本不值一提,倒是网页上那种基于 Flash 制作的即开即玩的小游戏(比如我能想到的就有:黄金矿工、狂扁小朋友、打企鹅等等)才是他们的最爱。

Flash 技术被时代抛弃,那些 4399 们也就逐渐消失了。

不过总有人会拥抱情怀,这篇《为拯救童年回忆,开发者决定采用古法编程》便讲述了这样一个故事。

里面的哥们儿以极其硬核的方式实现了他的梦想,为了复刻一个 Flash 小游戏,他几乎重新写了一个 Flash 播放器。

Unix 终端系统(TTY)是如何工作的

没有使用过大型机而直接进入 PC 时代的计算机用户,可能觉得“终端”就是电脑上那个能够输入 CMD 命令的黑乎乎窗口吧。

即便是终日与命令行打交道的软件开发人员、系统运维人员,可能也很难一下子解释清楚什么是“终端”,它为什么叫这个名字。

这篇《Unix 终端系统(TTY)是如何工作的》从计算机硬件发展的历史出发,介绍了计算机系统跟用户交互的发展历程,并针对“终端”系统进行详细展开,讲解了实现原理和后来发展的现代形态。

喜欢硬核知识的朋友可点进去阅读一下。

HN 讨论:极大提升你效率的软件有哪些?

哪些软件最能节约你的时间、解放你的双手、使你离不开它?

这个话题几乎每过一段时间就会被拿出来讨论一番。

每个人都有自己的偏爱。

不过,看看大家的讨论,说不定也能发现一些新鲜的软件,也许能更新一下自己的工具库也说不定。

比如上面这篇帖子里,楼主提到的 这个 csv 工具 ,可以在命令行让你高效对 csv 文件进行快速检索、合并查询、切片等等。 +不过帖子里可能有人把节奏带偏了,在下面大吹特吹各种 IDE 软件,就仁者见仁了。

资源

  • SQlite源码分析,一本讲解 SQlite 源码的在线电子书,主要对 SQLite 数据库的实现机制和使用方法做了简要分析。

  • 经典复古 win98 游戏合集,一个游戏整合包,里面整合了若干在 Win98 系统下才能跑的老游戏,像初代的雷神之锤、半条命、极品飞车等等。提供了基于 DosBox 的虚拟系统,即开即用,性能还不错。

  • DOS 系统下的编程工具合集,想要重温在 DOS 环境下编程的感受,这里有一套比较全面的工具合集,包括 QBASIC、TurboC 等开发环境,以及一些用于游戏开发的图形库、引擎。

  • 给你自己跑个分,现在一些硬件评测动不动就使用软件进行跑分,用以展示硬件之间的形成差异,这个网站提供了一组小游戏,可以考验你的短期记忆力、反应能力,并给你打分。也试试给自己跑个分吧。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-13-43-13.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-13-43-13.png" new file mode 100644 index 000000000..d05aa8910 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-13-43-13.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-13-45-15.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-13-45-15.png" new file mode 100644 index 000000000..6749ae0dc Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-13-45-15.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-13-58-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-13-58-29.png" new file mode 100644 index 000000000..f1cc5e0f7 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-13-58-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-14-17.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-14-17.png" new file mode 100644 index 000000000..f2e7ff822 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-14-17.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-33-07.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-33-07.png" new file mode 100644 index 000000000..6e57084ef Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-33-07.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-41-36.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-41-36.png" new file mode 100644 index 000000000..83493e002 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-41-36.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-44-02.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-44-02.png" new file mode 100644 index 000000000..a664f5342 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-44-02.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-47-42.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-47-42.png" new file mode 100644 index 000000000..5ca456284 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/2023-01-03-14-47-42.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/index.html" new file mode 100644 index 000000000..75a793180 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-015-\346\234\237/index.html" @@ -0,0 +1,11 @@ +机器文摘 第 015 期 +

机器文摘 第 015 期

机器文摘 第 015 期

机器文摘 第 015 期

长文

编程就是玩儿

对于程序员或者技术从业者来说,以一种什么样的心态工作将十分影响成果的产出。

这篇文章的作者给大家分享了他自己的感受—-“不把编程视为严肃的工作、目标只是玩得开心、为了好玩而编程”。

他同时也是 《为什么我喜欢做无用的东西》帖子的作者。

除了文章本身之外,在 HN 配套的讨论帖子在这里

这种类似于“寓教于乐”、“做自己开心的事儿”等等内容,一直是一个值得探讨的话题。

我个人也倾向于以兴趣和爱好来驱动自己,只是如果这个兴趣和爱好顺便能够挣钱,那就更好了。

WebAssembly:没有容器的 Docker

最近 Docker 宣布与 WasmEdge 合作支持 WebAssembly 。

WebAssembly 和 Docker 我们都听说过,在前面的文摘中我还尝试过自己使用 Rust 编写运行在网页里的 WebAssembly 应用程序。

Docker 也是我工作中每天都要用到的容器技术。

那他们两个有什么关系?放在一起能碰撞出什么火花?

这篇文章将讲解这两种技术的结合在云原生架构下的使用。

看来 WebAssembly 技术不仅可以在浏览器环境中发挥作用,还能在云计算、边缘计算等领域发光发热,前途不可限量嘛。

3D 摄影测量建模技术

3D 摄影测量建模,是一种通过对物体多角度拍摄照片,然后使用计算机通过软件算法合成为 3D 模型的技术。

从最开始在专业领域(如:建筑工程、考古)使用,到现在已经普及到普通人只需安装手机 App 也能轻松实现了。

这篇用3D摄影测量法对我的爷爷建模记述了作者如何使用 3D 摄影测量建模技术给自己爷爷的雕像进行“数字化”的过程。

里面详细记录了整个过程所使用的开源软件和相关的配置细节。

对于一些想要进行一次实操演练的朋友来说可能有用。

在 2D 游戏中如何模拟 3D 的光影效果

《守墓人》是一款经典的 2D 角色扮演游戏,比起它的精彩剧情和有趣的玩法,出色的画面效果也是该游戏取得成功的重要原因。

这篇《守墓人的图形效果是如何制作的》文章,由该游戏的核心开发者于 2018 年发表,讲述了很多关于实现在 2D 画面带来更加有立体光影效果的特殊技巧。

文章虽然老了一点,但是技术没有过时。

读进去可以深深体会到:一个优秀作品的创造,离不开对各种不可能的挑战和极限的突破。

资源

  • Flash 游戏大全,上一期里我摘录了一个关于复刻 Flash 游戏的故事。后来也勾起了我对于 Flash 小游戏的怀念。便深入探索了一下现在这个阶段该如何再去运行那些老游戏。Flashpoint 是一个 Web 游戏保存工程,号称已经累计保存了包括 Flash 在内的 35 个平台的超过十万个小游戏。这个工程在 2018 年 1 月启动,试图在 Flash 消亡之前将之前的经典内容进行备份。现在提供两种版本的下载包,一种全量下载的大概 1.3 TB,包含了全部游戏。一种增量下载的,700多MB,只带了部分游戏,但是支持随下随玩。

  • 根据音频自动生成钢琴旋律,一个开源的 AI 模型,可以根据歌曲的音频识别出里面的旋律主线,并且使用钢琴演奏出来,效果十分神奇。

  • C64 Emulator,一个在线的 commodore 64 电脑模拟器,可以直接将磁盘镜像拖拽到网页上进行加载,页面还提供了虚拟键盘。

  • 沙雕 App,收集了各种有趣网站、工具的导航站,之前就关注过,最近好像升级了,喜欢恶搞的同学可以到里面找到一些比较有恶趣味的小程序。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-16-50.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-16-50.png" new file mode 100644 index 000000000..df90a9d5f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-16-50.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-30-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-30-23.png" new file mode 100644 index 000000000..18b3a3649 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-30-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-38-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-38-11.png" new file mode 100644 index 000000000..031789728 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-38-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-55-02.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-55-02.png" new file mode 100644 index 000000000..f63c10ba5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-55-02.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-57-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-57-40.png" new file mode 100644 index 000000000..2c55d4da5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-13-57-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-14-01-04.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-14-01-04.png" new file mode 100644 index 000000000..d2d8cc601 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-14-01-04.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-14-05-09.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-14-05-09.png" new file mode 100644 index 000000000..e7b53bd06 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-14-05-09.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-14-11-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-14-11-28.png" new file mode 100644 index 000000000..b7b467e0c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/2023-01-10-14-11-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/index.html" new file mode 100644 index 000000000..ad6f71fab --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-016-\346\234\237/index.html" @@ -0,0 +1,14 @@ +机器文摘 第 016 期 +

机器文摘 第 016 期

机器文摘 第 016 期

机器文摘 第 016 期

长文

黑客与汽车

+现在的汽车很多都具有联网的能力,可以通过互联网进行便利的远程操作。

比如获取汽车位置、健康状态、远程启动、远程开门等等。

作为消费者来说,在使用这些便利功能的时候,内心是十分信任厂商的。

觉得安全问题肯定会被厂商非常重视,作为头号问题来抓。

然而这篇《黑客与汽车》却改变了我的看法,原来这些车联网的安全防护如此的脆弱。

文章作者为业内人士,写的还比较实在。如下列举部分这些黑客可以对车进行的未授权操作:

  1. 远程发动机启停、车门解锁与锁定、大灯闪烁、喇叭鸣笛;
  2. 锁定用户,迁移管理权;
  3. 根据车架号下载到用户的销售档案;
  4. 远程刷新更新车辆电脑固件;
  5. 跟踪车辆物理GPS位置;

看完我感觉是不是得把我的相关车联网服务给停一停了。

汇编代码阅读指南

+写汇编代码很麻烦,阅读起来也很费劲吗?

这儿有一份简要的汇编阅读指南,作者介绍了一些汇编代码的阅读技巧。

因为根据统计显示,最常用的汇编指令也就那么十来个,所以并没有想象中的那么晦涩和高深莫测。

使用 SVG 绘制逼真的绳索

+SVG 是在网页中进行矢量绘图的技术,比起 Canvas 画板的像素图像,SVG 具有放大不失真的特点,在网页中可以通过 Javascript 操作生成 SVG 图形对象,实现各种复杂的图案。

这篇文章的作者从几何的角度考虑了如何使用矢量图形来绘制一个现实中的麻绳图案,要不仅体现出绳索的扭曲,还要正确表现绳索分支之间的叠压,作者提出了一个巧妙的使用 SVG path 进行实现的方法。还给出了代码。

你要问作者为什么这么做,有什么用没有?我想作者可能会回答:Because I can !

SSH 进阶用法介绍

经常在 Linux 系统下进行开发或者运维的专业人士,可能每天使用最多的工具就是 SSH 了,每天都要通过它登录服务端系统,进行一系列的操作。

这里有一篇文章比较全面地介绍了 SSH 的进阶使用技巧,可以在某种程度上极大提升效率以及操作体验。

列举部分如下:

  1. 如何免密码登录;
  2. 如何映射服务端的服务端口到本地(以方便调试);
  3. 如何将服务端的图形界面(如xcalc)代理到本地电脑显示和交互(不是远程桌面哦);
  4. 一些网络端口映射之类的高级操作;

资源

  • 个人年终总结模板,我做了一个基于 Markdown 语法的年终总结模板,方便梳理在编写个人总结时的思路,放在 github 上的 gist 里了,可以随意使用。

  • web 网页设计博物馆,一个保存古老网页设计的网站。记录了 1999 年到 2020 年各大公司的网页设计变迁。包括谷歌、亚马逊、苹果、任天堂、麦当劳等等。

  • 一站式网页工具大全,一堆的在线工具汇总,包括图片处理、PDF格式转换、文字编码转换、密码生成、字符串加密解密等等,常用工具一网打尽。

  • 在线手柄测试工具,打开网页即可测试游戏手柄的工作状态,按键是否灵敏,遥感是否有死区等等,非常方便。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-33-34.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-33-34.png" new file mode 100644 index 000000000..f3f1db68d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-33-34.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-40-49.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-40-49.png" new file mode 100644 index 000000000..6e0b9f9bb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-40-49.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-44-27.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-44-27.png" new file mode 100644 index 000000000..0f19478fa Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-44-27.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-55-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-55-28.png" new file mode 100644 index 000000000..4fcb2d17f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-09-55-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-02-22.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-02-22.png" new file mode 100644 index 000000000..1b9536d84 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-02-22.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-04-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-04-26.png" new file mode 100644 index 000000000..74985f7f0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-04-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-04-41.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-04-41.png" new file mode 100644 index 000000000..e87d0bca2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-04-41.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-08-12.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-08-12.png" new file mode 100644 index 000000000..2f45f48b5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-08-12.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-11-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-11-33.png" new file mode 100644 index 000000000..556799f4a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-11-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-15-15.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-15-15.png" new file mode 100644 index 000000000..40721fef7 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/2023-01-16-10-15-15.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/index.html" new file mode 100644 index 000000000..2e59d4760 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-017-\346\234\237/index.html" @@ -0,0 +1,15 @@ +机器文摘 第 017 期 +

机器文摘 第 017 期

机器文摘 第 017 期

机器文摘 第 017 期

预计春节期间暂停更新,节后恢复。

长文

怎样在 1 位色深的 LCD 屏幕上显示灰度

+只有 1 位色深的 LCD 屏幕按理说是不能显示灰度的,因为他的像素点要么纯黑、要么纯白,显示的图案效果肯定非常差。

如果说非要显示灰度的话,我第一个想法是通过抖动算法进行模拟(即通过像素点的稀疏程度来制造错觉,如下图)。 +

然而这篇文章的作者采取了更为巧妙地方法,使用 PWM (脉冲宽度调制)技术,利用每个像素点的点亮时间不同来制造灰度错觉。

之前只是见过使用 PWM 调整 LED 灯泡的亮度,像这种用法我倒是第一次见。

作为一名数据工程师和作家,我为什么要用 (Neo)vim

很多人都被 Vim 复杂的功能和陡峭的学习曲线吓到过。

也有很多人本着对效率的极致追求,而选择了征服 Vim,从而走上高效(折腾)的路线。

本文作者作为一名数据工程师,讲述了他学习 Vim 的心路历程,也许对于现在还在观望的人有所启发。

我个人使用 Vim 已十多年时间,虽然从未触及特别深入的技能(如宏定义、寄存器等),但是 Vim 这种神器的特点就是,只要你忍者难受越过操作的及格线,剩下的技能你稍微多掌握一点,就能马上给你带来非常丰厚的回报。

焦散是什么?如何正确地渲染焦散?

+焦散(Caustics)在现实生活中随处可见,但在渲染图中却很稀有。这篇文章解答了为什么渲染焦散很难,以及有哪些方法可以迂回实现。

找到这篇文章是因为我在 Github 上发现了一个使用 webgl 实现焦散渲染的项目,效果非常不错,于是想研究一下背后的原理。 +

资源

  • 常用设计模式有哪些,一本在线电子书,图文并茂,以比较直观的方式介绍了软件开发常用的设计模式,支持英文、日文、中文等多国语言。

  • 谷歌的软件工程,好几年前的一本书,讲述在谷歌做软件开发的体验和最佳实践,现在出了可免费阅读的电子版。

  • 开源低代码开发框架 ToolJet,免费开源的低代码开发框架,带有可视化编辑器,从数据持久化到前端界面全部无需编写代码。

  • 一个无聊的 Neovim 插件,一个没啥用的 Neovim 插件,唯一能做的事情是当你感到无聊时,可以将你的文本编辑区里的文本执行一个“元胞自动机”动画,看起来还算解压。

  • 最大的 AI 工具箱,喜欢研究 AI 的不要错过这个网站,收集了各种 AI 模型的开源项目和相关网址,涵盖了图像识别、自然语言处理等常见的、时兴的 AI 技术。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-15-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-15-47.png" new file mode 100644 index 000000000..aaf39b165 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-15-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-24-01.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-24-01.png" new file mode 100644 index 000000000..66e5e0936 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-24-01.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-32-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-32-37.png" new file mode 100644 index 000000000..361f51197 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-32-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-40-20.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-40-20.png" new file mode 100644 index 000000000..12cd9749e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-40-20.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-47-14.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-47-14.png" new file mode 100644 index 000000000..490d4df89 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-47-14.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-56-50.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-56-50.png" new file mode 100644 index 000000000..94ca568fb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-09-56-50.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-10-00-55.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-10-00-55.png" new file mode 100644 index 000000000..c05127091 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-10-00-55.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-10-04-14.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-10-04-14.png" new file mode 100644 index 000000000..bbe0c20dd Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-10-04-14.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-10-08-42.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-10-08-42.png" new file mode 100644 index 000000000..ab606f375 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/2023-01-31-10-08-42.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/index.html" new file mode 100644 index 000000000..4e34c6e5b --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-018-\346\234\237/index.html" @@ -0,0 +1,18 @@ +机器文摘 第 018 期 +

机器文摘 第 018 期

机器文摘 第 018 期

机器文摘 第 018 期

长文

游戏高清重制《科林麦克雷拉力赛3》

+游戏高清重制一直是我比较感兴趣的话题,可能因为比较喜欢怀旧吧。

我曾经收藏过采用覆盖显示驱动的方式进行高清分辨率支持的《极品飞车 5》、《Quake 3》等游戏。

也见过一些更古老的游戏在更新资源包之后重新焕发青春。

不过一直没有接触过真正的重制过程。

这篇《重制科林麦克雷拉力赛》详细记录了一个优秀的赛车游戏进行高清重制的过程。

可以带你了解老旧游戏如何进行“宽屏”、“超宽屏”支持,如何重制高清界面UI元素等,过程充满了对不可能的挑战。

把网页渲染到控制台

+通过控制台窗口进行上网,你可能觉得并不新鲜。

毕竟已经有很多类似 w3m 这种在控制台下基于字符的浏览器程序。

但是他们的缺点都是不能显示图形,而且几乎失去了对页面的样式渲染。

今天这篇《把网页渲染到控制台》则另辟蹊径,虽然同样是在控制台的字符界面,但是渲染手段却大不相同。

它将控制台字符当作单个像素来处理,采用现代浏览器内核进行页面解析和预渲染计算。

然后在像素渲染阶段,采用了控制台字符来进行替换。

虽然最终效果无法跟图形界面下的浏览器相比。

但是它毕竟提供了一种在终端控制台进行图形化网页显示的可能。

Chromium 渲染流水线——字节码到像素的一生

+看了前面网页渲染到控制台的文章,如果对浏览器的原理架构比较感兴趣的话。

可以看看这篇讲解 Chromium 浏览器渲染架构的文章。

现代浏览器已经复杂到不可能通过个人从零开始实现。

了解一下他们的架构,即便不从事相关开发,也可能对自己的软件架构产生有益影响。

99 行代码实现光线追踪

+光线追踪在图形渲染中十分关键的概念。

同时也是现代电影工业实现逼真光照渲染所必须的技术手段。

然而它的原理却并不复杂,甚至只需少量代码就可以自己实现一个建议的渲染器。

这篇《99 行代码实现光线追踪》就只是用了少量 C++ 代码实现了一个简单的带有全局光照、阴影、反射的场景渲染。

虽然看起来简单,效果还是很令人惊艳的。

适合我这种喜欢研究原理,但又不太深入的“技术爱好者”。

光线追踪深入

+既然前面提到了光线追踪,不妨再引申一下。

很多光线追踪的入门教程都会教你渲染一些简单的模型,比如球体,圆柱体等等。

如果想基于光线追踪技术渲染复杂一些的三维模型,应该怎么做?

这里有一篇《光线行进和符号距离函数》,里面介绍了基于光线行进算法(光线追踪的一种实现方式)和符号距离函数来构建三维场景中复杂模型的思路。

内容比较详细,并带有示例代码。

资源

  • chronophoto,一个猜照片年代的游戏,根据网站随机展示的老照片,来判断这张照片是哪一年拍摄的,答案区间 1900 到 2020 ,我试了试还挺有意思,可以根据照片中出现的物品和人物的衣着进行分析。

  • Gimel Studio,一个基于节点系统的照片后期处理工具,开源,采用 Python 编写。

  • BugChecker,一个支持 Windows 11 的类 SoftICE 调试器,开源。 +

  • swiftshader,一个基于 CPU 实现 OpenGL 渲染的图形库。主要应用在谷歌开源的 chromium 项目里,用纯软件算法实现了OpenGL、Vulkan图形接口。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-19-34.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-19-34.png" new file mode 100644 index 000000000..6152d3bd3 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-19-34.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-32-44.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-32-44.png" new file mode 100644 index 000000000..e85c3f887 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-32-44.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-49-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-49-28.png" new file mode 100644 index 000000000..ede0a09bb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-49-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-57-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-57-37.png" new file mode 100644 index 000000000..779589d37 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-13-57-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-10-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-10-37.png" new file mode 100644 index 000000000..9c52301ca Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-10-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-20-36.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-20-36.png" new file mode 100644 index 000000000..0c1332ec8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-20-36.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-25-38.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-25-38.png" new file mode 100644 index 000000000..1d2166f82 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-25-38.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-26-39.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-26-39.png" new file mode 100644 index 000000000..4c0b09873 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/2023-02-07-14-26-39.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/index.html" new file mode 100644 index 000000000..1db1560ef --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-019-\346\234\237/index.html" @@ -0,0 +1,19 @@ +机器文摘 第 019 期 +

机器文摘 第 019 期

机器文摘 第 019 期

机器文摘 第 019 期

长文

现阶段 AI 能对游戏开发提供多大帮助

+AI 在最近有多爆发自然不用我再赘述,抛开那些狂热的能够引起焦虑的言论(比如 AI 即将替代大量工作岗位),也有不少人选择跟 AI 和平相处。

这篇《AI 辅助图形》的作者是一个有着游戏制作二十年经验的从业者,近期想尝试尽可能地利用各种 AI 加持的辅助工具,试图通过他们提升制作效率。

作者从游戏的概念原型阶段,一直到三维模型资产的制作和游戏场景的搭建,均选用了具有 AI 能力的效率工具进行支持。

最终结论是,虽然在过程中会有这样那样的不顺手,但这些工具确实能够帮助他节约大量工作时长。

所以作者的看法是,他很愿意将 AI 工具看作他的同事。

照这么说的话,留给人类的工作真的是不多了。

ChatGPT 学习笔记

+ChatGPT 在春节后又起了一波热度。

网上到处都是关于它的段子,有人用它写论文,有人拿来给孩子辅导作业,有人写情书,有人当个动嘴的甲方让它写程序。

喜得微软恨不得现在就把它接到搜索引擎里,逼得谷歌提前释放出自己的类似模型。

国内的百度也表示将在3月份发出自己的大规模语言模型。

要我说就不要这么着急,不妨拨开迷雾,看看 ChatGPT 是个什么东东。

在网上发现这篇《ChatGPT 通俗笔记》,讲述了这个模型的发展历程,以及一些基本的概念原理。

此类中文资料不多,给这篇文章作者点赞。

视觉设计的一些规则

+现在专业的界限越来越模糊,每个人都应该掌握一些基本的设计理念,以便在日常工作中输出的成果具备基本的美感。

这篇《视觉设计安全法则》,浅显易读、明确具体,对于视觉设计活动很有指导意义。

看完之后无论是自己动手做 PPT 还是软件的 demo 原型,都可以用到。

我觉得甚至对于摄影构图、房屋装修都能有所借鉴,因为美是相通的。

Python 做后端开发的技术选型

+有时候想做一些 Web 应用的原型,Python 是我的首选语言,写起来顺手又省事,能节约不少时间。

但是由于用的不够深入,在选择开发框架的时候,稍微有些困惑。

比如同样都能提供快速的开发能力,Fastapi 和 Flask到底选哪个?

如果你也有跟我一样的疑惑,可以看看这篇《Fastapi 和 Flask 详细对比》

文章深度分析了这两个框架的异同以及所适用的工作场景。

资源

  • YouPlot,控制台绘图工具,可以在控制台窗口用字符的方式进行绘图,支持柱状图、散点图等。 +

  • 网页在线联机 CS1.6,只需浏览器即可联机玩反恐精英 1.6,这个网站通过 WASM 技术将 CS 1.6 移植到了网页中运行,现代浏览器均可支持,第一次加载时间略长,但体验还算流畅,在线人员数量也挺多,随时可以匹配到。 +

  • 交互式 SVG 参考,一个可以在线了解 SVG 图形标准细节的网站,提供交互式界面进行实时演示。 +

  • 浏览器地址栏里的动画,一个有意思的 Js 库,通过动态修改浏览器地址栏的 URL 地址来实现动画,效果还比较萌。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-09-57-43.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-09-57-43.png" new file mode 100644 index 000000000..2fff97ffb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-09-57-43.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-21-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-21-45.png" new file mode 100644 index 000000000..b16384855 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-21-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-40-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-40-28.png" new file mode 100644 index 000000000..cedb0fe36 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-40-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-51-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-51-53.png" new file mode 100644 index 000000000..1280bc774 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-51-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-55-30.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-55-30.png" new file mode 100644 index 000000000..849d3f816 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-55-30.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-59-08.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-59-08.png" new file mode 100644 index 000000000..1328c8737 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/2023-02-15-10-59-08.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/index.html" new file mode 100644 index 000000000..997d70070 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-020-\346\234\237/index.html" @@ -0,0 +1,17 @@ +机器文摘 第 020 期 +

机器文摘 第 020 期

机器文摘 第 020 期

机器文摘 第 020 期

长文

怎样获得非凡成就

+多年来,我对成功学嗤之以鼻。

但也对有些人的成功给予应有的尊重。

我所欣赏的成功人士有一种特殊气质,我说不上来具体是什么特点,有点儿像反叛精神,又有点儿对手工技术的狂热。

这些人里对我影响比较大的是《黑客与画家》的作者 保罗·格雷厄姆(Paul Graham)。

他创建了著名的 YC 孵化器公司,也打造了很多成功的产品。

今天推荐的这篇文章《How To Be Successful》的作者,是保罗·格雷厄姆非常推崇的一位创业者。

文章分享的观点乍看有成功学的影子,但读完却能引人思考。

这里是中文翻译版:《观察成千上万创业者后,关于如何获得非凡成就的13条思考》

我觉得这些观点至少可以给长期埋头技术工作的人们一些启发,我稍微列举几条如下:

  • 这个世界很少人能做到将眼光放长远,而那些有长远眼光的人会得到市场的丰厚回报。
  • 把时间花在做正确的事上,比花长时间进行工作更重要。
  • 跟着你的好奇心走。因为对你来说兴奋的事情对其他人来说也同样兴奋。
  • 成为内驱型的人(即:自己去做一件事的原因来自于自己,而不是外部的力量或别人的期望)。

怎样在客厅建立自己的私人影院

+智能电视或者智能盒子已成为现在客厅的标配。

如何充分发挥它们的作用,早已是技术爱好者的孜孜不倦探索的课题。

前些天我偶然收到一份公开的云盘链接,使用开源的 AList(一个支持网盘存储的文件列表程序,可以通过多种协议将网盘映射为本地访问的存储路径) 进行构建。里面整理了大量的影视资源,有不少是高质量、高码率的蓝光原盘文件。

这就激发了我的好奇心。

由于自己一直按耐住折腾 NAS 的念头,这些年一直没有收集电影。

但现在既然有在线的资源,不妨尝试一下。

于是我找到了这篇《利用KODI和云盘打造4K高清私人云影院》(仅作研究,观影和收藏还需支持正版)。

按照文章的指导,成功给电视安装了 KODI(一个媒体中心 App),并进行了配置,可以非常方便地浏览、观看互联网云盘上的高清电影。

比起云盘官方所出品的各种 App 在体验上更加灵活、完美。

“噪声”在计算机图形学里的作用

+想要计算机产生的图形更加的接近自然,生成各式各样的噪声是必不可少的算法。

之前在读《The Nature of Code》(中文译作:代码本色)一书的时候,作者花了大量篇幅讲解关于噪声、随机等对于模拟自然界中各种现象的重要作用。

或许在噪声里就隐藏着大自然最深处的秘密。

这篇WebGL进阶——走进图形噪声可以让你领略一些图形噪声的神奇。

很多场景都给出了 WebGL 实现的源码,可以边学边练。

资源

  • ThreeGN,一个基于网页的三维建模程序,特点是具有类似 Blender 的几何节点编辑功能。 +

  • tabler,一个开源的图标库,可用于 Web 或 移动端应用开发,全部免费使用。 +

  • immersive-translate,一个在线翻译浏览器插件,支持 Edge、Firefox、Chrome 等浏览器,优点是可以在网页上追加中文显示,原文和译文同时展示,对于想提升外语水平的人士,是个不错的对照工具。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-14-57-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-14-57-11.png" new file mode 100644 index 000000000..a7b4240bf Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-14-57-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-13-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-13-37.png" new file mode 100644 index 000000000..ef51ee8a4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-13-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-28-10.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-28-10.png" new file mode 100644 index 000000000..60c7ed4d2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-28-10.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-37-36.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-37-36.png" new file mode 100644 index 000000000..61bf70681 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-37-36.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-45-42.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-45-42.png" new file mode 100644 index 000000000..04121ae45 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-45-42.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-47-30.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-47-30.png" new file mode 100644 index 000000000..e5b0a2247 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-47-30.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-50-17.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-50-17.png" new file mode 100644 index 000000000..f2cf56330 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-50-17.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-56-55.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-56-55.png" new file mode 100644 index 000000000..0b4968f5e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/2023-02-22-15-56-55.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/index.html" new file mode 100644 index 000000000..2329edb4e --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-021-\346\234\237/index.html" @@ -0,0 +1,19 @@ +机器文摘 第 021 期 +

机器文摘 第 021 期

机器文摘 第 021 期

机器文摘 第 021 期

长文

chatGPT 原理通俗讲解

+可能是有人炒作的缘故,chatGPT 热度一直不降,连街边买菜的大妈都在讨论这个“人工智能机器人”。

可能是它输出语言的流畅度实在是太接近真实的人类了,用惯了之前那种“智能助理”的人很容易感到震惊。

然而其背后的原理并非像想象的那么复杂,甚至是大力出奇迹的又一个经典样例。

最近关于它的文章也是铺天盖地,各种分析、叫好,很少有冷静下来探讨其背后机理的。

我翻看了几篇之后,发现唯有这篇《chatGPT在做什么以及它为什么好使》 比较优秀。读起来比较平和,没有压力。

文章揭示了即使像chatGPT这样的大型语言模型也是一个单词一个单词慢慢往出崩的,并尝试说清楚这么流畅的语言是基于什么来预测后续单词的概率。

怎样利用多GPU训练真正的大型模型

+前面提到的 chatGPT 模型,体量非常大,据说训练一次就要耗费上千万美元。

作为普通开发者我们是不敢奢望自己上手训练一番。

不过,这里有一篇文章可以让我了解像这样的大模型是如何进行并行训练的

另外还有个开源的项目,号称可以在较少资源的基础设施上进行 GPT 模型训练,有兴趣的可以试试。

怎样搭建一个电子爱好者工作间

+拥有一个电子产品工作室一直是我的一个梦想。

电烙铁、稳压电源、万用表,是我能想到的最基本的设备。

如果还想更完美,可以借鉴这篇文章所介绍的思路,搭建一个电子爱好者工作间

运气计算公式

+看到一个关于运气的文章《如何获得好运气》,觉得里面提到的“怎样使得随机的运气变得让好运更加倾向于你”的说法比较有意思。

于是就收录一下。

文章里探讨的问题,很容易让我联想到关于“下雨的时候是飞速跑动淋雨多还是慢慢走淋雨多”的问题。

资源

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-10-51-39.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-10-51-39.png" new file mode 100644 index 000000000..41c7dceb5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-10-51-39.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-11-06-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-11-06-53.png" new file mode 100644 index 000000000..65ea17e95 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-11-06-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-24-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-24-45.png" new file mode 100644 index 000000000..2660b9f8e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-24-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-35-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-35-29.png" new file mode 100644 index 000000000..e0857d26b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-35-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-47-03.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-47-03.png" new file mode 100644 index 000000000..2de8c1af8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-47-03.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-52-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-52-29.png" new file mode 100644 index 000000000..465f5ff2e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-52-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-54-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-54-53.png" new file mode 100644 index 000000000..70be18f9f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-13-54-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-14-03-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-14-03-29.png" new file mode 100644 index 000000000..753c39e6c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/2023-03-01-14-03-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/index.html" new file mode 100644 index 000000000..c2b1af66a --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-022-\346\234\237/index.html" @@ -0,0 +1,19 @@ +机器文摘 第 022 期 +

机器文摘 第 022 期

机器文摘 第 022 期

机器文摘 第 022 期

长文

自制家庭服务器

+人们常说,中年技术男的最终归宿除了钓鱼和盘核桃之外,还有一项就是折腾家里的服务器,这些服务器形态各异,但是作用都是殊途同归:NAS、软路由、虚拟化、Docker容器。

怎样变着花样搭建家庭服务器几乎是 V 站的月经甚至日经话题。

这里有个国外的老哥,决定使用 ARM64 架构自己“装配”一个,是那种需要焊接的“装配”。

有兴趣的可以翻阅一下这篇《构建 ARM64 家庭服务器》

文章介绍了如何用一种较为困难的方式构建一个 ARM64 架构的家用服务器。

作者使用了一块名为 ROCKPro64 的开发板,并详细介绍了构建过程中遇到的问题以及如何解决这些问题。

文章中包含了安装基础操作系统、配置网络连接、设置磁盘阵列和安装各种软件的详细步骤和指导,涵盖了从硬件到软件的多个方面。

在构建过程中,作者提到了一些常见的问题和解决方法,例如如何处理不同操作系统的差异,如何在开发板上设置固件,以及如何解决硬件不兼容问题。

总之,这篇文章是一份详细的指南,可以帮助有兴趣构建自己的家用服务器的读者了解基础知识,克服可能遇到的问题,并学习如何从头开始构建一个高效、安全的服务器。

上面这段是让 chatGPT 帮我写的 :)

用Rust写一个大小仅有2K的极简FPS游戏

+极简渲染器的编写教程网上有很多,但大都浅尝辄止,以静态渲染为主。

这篇文章则从制作一个第一人称射击游戏的视角出发,讲解了怎样使用光线投射技术实现最基本的三维空间渲染、光照、阴影等效果。

作者使用 Rust 语言基于 wasm 技术编写了一个在网页中运行的示例程序,该程序非常小巧,但是也充分展现了如何使用光线投射算法来实现 3D 渲染技术仲的一些基本概念,比如:墙体贴图、视角控制等。

是我看到的教程里比较系统的一个,适合作为爱好者去研究。

玩具 CPU 模拟器

+国外一个大学老师觉得他的计算机组成原理课程有些枯燥,于是他动手撸了一个 CPU 模拟器出来,以帮助学生们更好的理解计算机内部运作原理。

作者在文章里介绍了基本的原理,以及模拟器的各个组件,适合学习底层原理初入门的学生。

另外这个模拟器也基于 MIT 协议进行了开源,文章中附有开源仓库的地址和编译好的可执行文件下载连接。

需要注意的是该程序运行环境为DOS,现在要想体验的话,需要先安装 DosBOX 这个模拟器。

不用任何构建系统编写前端代码

+比起十几年前,前端开发工程现在已经变得十分复杂。

有次我想写个简单的页面程序,但是却花费了一上午的时间陷入对框架和构建系统的选择上。

后来不得不放弃,改用记事本随便用原生Javascript完成了功能。

这篇文章的作者跟我有同样的感受。

作者认为,对于一些简单的项目来说,使用构建系统可能是不必要的。

因为构建系统会增加开发和维护的复杂性,而且可能会导致一些性能问题。

文章演示了作者如何使用原生的Javascript和浏览器的开发者工具来实现一些常见的构建系统功能。

资源

  • 计算机知识笔记,一个计算机科学知识笔记仓库,包括计算机基础知识、编程语言和算法、开发工具、面试笔试题目等等,是一个非常实用的笔记库。目前在 Github 上有超过 162k 个 star 。 +
  • Creating Demos,这套教程是 Hugi 杂志在2001年第31期发布的一系列编程文章,主题是“Demo程序”的制作,是我目前在网络上见到的比较完整和耐心的一套讲解 Demoscene 如何制作的教程。虽然有些技术是老旧的,但是思想一直是不变的,能够学到很多平时很难了解到的东西,现在很少有人愿意分享这些了。 +
  • 网络视频下载器,一个 go 语言编写的网络音视频资源下载工具,类似 youtube-dl,但是支持的网站要更多一些。 +
  • ambient,Ambient是一个使用 WebAssembly、Rust 和 WebGPU 技术构建的高性能多人游戏和3D应用的开源引擎。特点是针对构建多人游戏开发进行优化支持。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-10-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-10-45.png" new file mode 100644 index 000000000..0cdc654de Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-10-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-34-20.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-34-20.png" new file mode 100644 index 000000000..194c85401 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-34-20.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-43-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-43-47.png" new file mode 100644 index 000000000..8c32ea801 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-43-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-58-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-58-53.png" new file mode 100644 index 000000000..7d171ae4f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-10-58-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-01-19.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-01-19.png" new file mode 100644 index 000000000..0966429a5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-01-19.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-02-12.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-02-12.png" new file mode 100644 index 000000000..1c88f6f88 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-02-12.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-06-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-06-33.png" new file mode 100644 index 000000000..85d4673d9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-06-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-08-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-08-29.png" new file mode 100644 index 000000000..c93946953 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/2023-03-08-11-08-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/index.html" new file mode 100644 index 000000000..5468f6cac --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-023-\346\234\237/index.html" @@ -0,0 +1,20 @@ +机器文摘 第 023 期 +

机器文摘 第 023 期

机器文摘 第 023 期

机器文摘 第 023 期

长文

视频信号可以被窃听吗?

+我之前听到过一个传说。

使用高灵敏度的天线,再加上一些奇妙的设备。

可以窃听(窃视?)到附近(方圆数百米)范围之内的显示器显示的内容。

这个传说流传的时候,还是CRT显示器的时代,当时的视频接口主要是VGA,采用模拟信号进行传输。

如果显示器或者视频线缆所作的屏蔽不够充分的话,难免会有信号泄露。

而VGA信号又没有任何加密,被别有用心的人收看是有一定的可能的。

时间发展到今天,视频接口早已升级,我以为除非不小心无线投屏到了邻居家,否则就不会有视频内容泄露的情况。

然而,今天要说的这篇文章则证实了上述传说的可能。

不过,比起传说中的窃听,作者走的更远一些。

起因是作者在家里摆弄无线电的时候,发现了一个信号干扰源,最后发现来自他的一个树莓派设备。

于是经过一番操作,作者不但成功通过无线接收的方式将视频信号显示了出来。

还利用这种无线信号的干扰(或泄露?)实现了叠加数据的传输。

怎样用密码保护一个静态页面?

+说到网站上的数据权限保护,一般我们会需要后端程序配合。

比如使用账号系统,给用户角色分配不同的权限,使其访问后端接口时获取不同的数据。

如果没有后台程序,只有静态页面会怎样?

这儿有个开源工具,可以帮你生成带有密码保护的静态HTML页面

具体使用方法和原理也很简单。

输入你想设置的密码和你的HTML页面原始代码,这个工具可以使用AES-256加密算法对其进行加密。

然后在浏览器加载时,页面自动使用一个js库实现自解密。

这个方法用于临时保护一些静态的内容还是挺有效的,而且很方便。

写代码越“干净”越好吗?

+有不少人宣称自己有代码“洁癖”。

对于设计模式和面向对象有着非常深的执念(或者函数式编程也是)。

市面上也充斥着很多“之美”、“之道”、“之禅”之类的书籍,强调代码要给人读、整洁干净。

我并不反对上述观点,甚至自己也有一点这样的“洁癖”,只是有时内心会有一丝怀疑的时候,觉得如果过于追求某些东西可能会偏离了解决问题的根本目标。

这篇《“干净”的代码,糟糕的性能》,帮我吐槽了一些事情。

但作者在文中所举的例子稍微有些牵强,不必过于纠结。

不知道怎么练习编程怎么办

+经常有人困惑在学习了一门新的编程语言之后,不知该做些什么。

就像是掌握了词语却写不出好的小说,掌握了规则也下不好象棋。

我们从小受到的教育方式导致了,在学习技能这一块,缺失实践的动力和方法。

这篇给无目标的新手程序的一些建议,虽然内容不多,但是可以看出作者也是个老油条了。

给出的一些提示都很实在,对于技能练习方面,提的都是我希望我能遵从的。

比如:

用技能解决你实际生活中的问题。 +做一些你真正会用到的东西。

资源

  • 写给 React 开发者的 TypeScript 指南,针对React程序员的TypeScript的学习资料,解答了我一部分为什么要用TS的问题。 +
  • Method of Action,一些免费的工具和在线小游戏(颜色搭配、贝塞尔曲线等),可以帮助你学习和掌握设计理念和工具。 +
  • Archivebox,一套开源的互联网内容保存方案,可以将你喜欢的页面下载下来,并自动爬取相关链接、图片等内容,类似于互联网档案馆的https://archive.org,不过可以自己搭建。 +
  • History of Computer Graphics and Animation,一本讲解计算机图形和动画发展历程的电子书,里面记录了计算机图形学相关的许多参考资料,曾用于俄亥俄州立大学的授课。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-09-18-01.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-09-18-01.png" new file mode 100644 index 000000000..6d607c195 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-09-18-01.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-09-32-20.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-09-32-20.png" new file mode 100644 index 000000000..22c20305d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-09-32-20.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-09-45-46.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-09-45-46.png" new file mode 100644 index 000000000..6a787f4d9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-09-45-46.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-10-50.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-10-50.png" new file mode 100644 index 000000000..a8b9d5074 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-10-50.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-13-25.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-13-25.png" new file mode 100644 index 000000000..b09ad43c2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-13-25.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-16-17.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-16-17.png" new file mode 100644 index 000000000..861ef164f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-16-17.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-18-09.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-18-09.png" new file mode 100644 index 000000000..adbf4d3cc Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/2023-03-15-10-18-09.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/index.html" new file mode 100644 index 000000000..e28cac15b --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-024-\346\234\237/index.html" @@ -0,0 +1,18 @@ +机器文摘 第 024 期 +

机器文摘 第 024 期

机器文摘 第 024 期

机器文摘 第 024 期

长文

电池充一次可以用两年的“笔记本”电脑

+挪威软件开发商安德烈亚斯·埃里克森(Andreas Eriksen)组装了一款笔记本电脑(或者说便携膝上型电脑?)。

它拥有“以年为单位的电池寿命”,并且使用用Lisp编程系统界面,产品名为:PotatoP

CPU好像是个ARM架构的低功耗单核处理器,最高频率96MHz。

支持蓝牙5.0。

运行的系统为PotatOS,一个基于uLisp(一个专门为微控制器设计的Lisp)移植的专用系统。

使用的4.4英寸显示屏采用介于LCD和墨水屏之间的技术,省电。

再加上机身上还带有太阳能电池,据说如果环境光充足的话,可以连续运行两年。

详解 AMD 为 Steam Deck 开发的 APU

+Steam Deck 无疑是一款革命性的掌机。

如果不是价格在国内被炒的离谱,我定会入手一台,也许再观望一下等待第二代或者三代产品更好。

这款掌机使得在便携设备上游玩3A大作不再是幻想。

取得这样的表现,除了得益于V厂魔改的Linux系统之外,还离不开这块由AMD定制的、代号“梵高”的 APU。

这篇《“梵高”AMD的Steam Deck APU》详细介绍了这块APU的各种技术细节,解释了为什么Steam Deck可以做到低功耗的同时还拥有相当给力的图形性能。

用磁盘阵列(RAID)确保数据安全靠谱吗?

+再谈谈 NAS 的事情(中年技术男的三大爱好之一)。

像我这样的人,对于 RAID 磁盘阵列总是抱有美好的幻想。我们认为,只要将数据存放在经过合理规划的磁盘阵列中(例如 RAID 5),我们就可以高枕无忧,确保数据永远不会丢失。然而,实际上,磁盘阵列并不是备份数据的最佳选择,最佳的数据安全策略是异地多份存储。

尽管 RAID 5 宣称随便损坏一块硬盘也不要紧,只需更换一块正常盘即可,但这种理想状态可能不太容易实现,中间随时可能会出现其他状况导致数据永久丢失。

一篇名为《差点儿就又全没了》的博文,讲述了作者在使用 NAS 磁盘阵列时经历了一次惊险刺激的数据拯救过程。希望这篇文章能够给计划使用类似方式保存数据的朋友们一个平常心态。

资源

  • NESFab,一个专为开发任天堂8位游戏机(NES、FC)设计的编程语言。具有高性能、易于装载资源、自动内存地址切换等特性,作者还在主页提供了一个使用NESFab开发游戏的教程。 +
  • AstroNvim,一套即开即用的Nvim配置文件,主打界面美观,集成了文件浏览、代码补全、语法高亮、模糊查询、可视化调试等常用插件配置。对于新手和懒得折腾的人来说,可以尝试。 +
  • pynecone,一个用python开发的web应用框架,特点是使用python语言完成所有任务,包括前端和后端,可以帮助那些对于前端开发不太擅长的人更方便地制作web应用程序。 +
  • 函数式编程入门,一篇介绍函数式编程的文章,介绍了函数式编程的基本概念和一些重要的函数式编程概念,并使用Javascript演示了如何使用这些概念进行函数式编程。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-25-42.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-25-42.png" new file mode 100644 index 000000000..413646118 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-25-42.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-35-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-35-52.png" new file mode 100644 index 000000000..248dc278d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-35-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-50-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-50-45.png" new file mode 100644 index 000000000..cae6ff062 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-50-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-59-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-59-28.png" new file mode 100644 index 000000000..6fe82775d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-10-59-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-05-16.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-05-16.png" new file mode 100644 index 000000000..8c1d32d00 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-05-16.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-09-51.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-09-51.png" new file mode 100644 index 000000000..ea0453051 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-09-51.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-12-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-12-45.png" new file mode 100644 index 000000000..dab11a247 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-12-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-15-00.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-15-00.png" new file mode 100644 index 000000000..01360ebcc Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/2023-03-22-11-15-00.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/index.html" new file mode 100644 index 000000000..26ce89a96 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-025-\346\234\237/index.html" @@ -0,0 +1,21 @@ +机器文摘 第 025 期 +

机器文摘 第 025 期

机器文摘 第 025 期

机器文摘 第 025 期

长文

252个字节实现播放音乐和动画

+这里有个网页介绍了一个demo作者使用一段JavaScript代码实现了一个一边播放俄罗斯方块背景音乐一边播放字符动画的网页,原理是利用HTML5的AudioContext对象进行声音合成,通过定时器触发基于当前时间t值的不同频率,实现音乐播放。具体代码如下:

1
+
<body onclick="with(new AudioContext)with(o=createOscillator())connect(destination),start(setInterval(v=>innerHTML='TETЯIS&#'+(9624|(o.frequency.value=`RR>AIIA>777${d='ARRIA>>>AIIRRAA7777'}IIIWnnbWRRR${d}`.charCodeAt(++t%58)*4)%7)+'P01',t=232))">click
+

诺基亚发布的“可维修”手机

+说到诺基亚,用过的朋友第一个映入脑海的词就是“砸核桃”。

那是iPhone还没发布的非智能手机年代。

手机可更换电池和外壳在那时是一个标准设计,谁要是不支持这些都不好意思跟人打招呼。

那时我经常把我的诺基亚掉在地上摔得七零八落,然后淡定地捡起来像电影里特工拼装自己的手枪那样,一个个把零件组装起来,形成“一把”手机。

或者等手机快要没电的时候,像换弹匣那样给手机换一块电池,立马满血复活。

这样的日子自从iPhone发布之后就再也没有了。

诺基亚近期发布了一款手机,再次让我想起我那掉地上摔开几瓣的手机。这款手机号称具有良好的“可维修”性,普通用户也可一个人在家轻松拆卸。可以自行更换包括电池、屏幕、充电端口等零件。

不要重复自己是编程的好原则吗

+不要重复自己,永远不要从头开始重写代码!

这是很多程序员收到的忠告。

然而它是绝对正确的吗?

这里有篇文章《重复自己,重写一切》,作者在文章中探讨了编程中的一些习惯,他认为这些习惯可以使代码变得更难理解、更难维护,并可能导致代码的冗长和不必要的复杂性。文章提到了重写代码可以给程序带来更好的抽象和可维护性,所以建议定期通过重新写代码的方式重构你的程序。

说实话,我不知道作者是怎样看待所谓“屎山”代码的,也许当他面对有些代码时,他的观点也会变为:“能跑的代码,就尽量别动它了”。

慢下来

+这篇文章的题目是“慢下来”,作者是Derek Sivers,一位创业者、作家和音乐家。在这篇文章中,他分享了自己对于“慢下来”这个主题的一些思考和感悟。

虽然是个急性子,但是我很认同文章里的观点。

资源

  • 反跟踪识别的套件,如果你觉得被公共场所的摄像头拍摄和记录或者识别侵犯了你的隐私,这里有一套开源的穿戴套件可以考虑。它通过在身上穿戴可以发射红外线的LED设备,使得摄像头画面过曝。以获得保护隐私的效果。不过仅用于研究,不知道是否符合有些国家的法律法规。网站提供了配件清单和详细的装配说明(pdf)供下载。 +
  • AI帮你解释一段代码,有人使用openai的开发接口提供了一个专门帮人们解释代码执行的工具,输入代码,输出解释。并提供vscode的插件。我把文章开头那段播放音乐的Javascript代码发给他让他解释,效果如下图: +
  • 在网页中运行GPT模型,一个可以在浏览器中执行Transformer模型的开源程序,可以执行轻量的模型,实现如翻译、语音转文字、图像转文字等任务。 +
  • AI生成工具箱,近期,基于chatGPT模型的应用大爆发,这里有一个整理好的工具箱,可以使用ai做很多内容生成工作,包括帮你编写周报、润色文字、写道歉信、写外卖好评等,效果还不错。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-09-37-08.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-09-37-08.png" new file mode 100644 index 000000000..5341db070 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-09-37-08.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-02-56.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-02-56.png" new file mode 100644 index 000000000..59c779eb8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-02-56.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-12-24.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-12-24.png" new file mode 100644 index 000000000..4fc9298de Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-12-24.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-21-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-21-37.png" new file mode 100644 index 000000000..f3e947007 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-21-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-34-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-34-53.png" new file mode 100644 index 000000000..d2bc9cca5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-34-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-40-09.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-40-09.png" new file mode 100644 index 000000000..527f9e8e5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-40-09.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-42-04.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-42-04.png" new file mode 100644 index 000000000..d1d1373d8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-42-04.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-46-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-46-53.png" new file mode 100644 index 000000000..f267d1616 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/2023-03-29-10-46-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/index.html" new file mode 100644 index 000000000..9cb987b13 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-026-\346\234\237/index.html" @@ -0,0 +1,42 @@ +机器文摘 第 026 期 +

机器文摘 第 026 期

机器文摘 第 026 期

机器文摘 第 026 期

长文

通用人工智能要来了吗

+AGI(通用人工智能),即用一个模型解决全部问题,而不是特定领域的问题(如语音识别、图像分类等)。

我在几年前读过一本叫做《人工智能,人类最后的发明》的书。

书里说AGI就是人类最后一个发明,因为有了它,别的一切都不需要了。

当时感觉距离通用的人工智能还很遥远,觉得作者有些危言耸听。

直到今年,chatGPT和GPT-4的发布,我才发觉AI的势头确实有些猛得出乎意料。

《 GPT-4 ,人类迈向AGI的第一步》是一篇近期论文的翻译,该论文由微软研究院发布,论证了当前的 GPT-4 模型已经初步具有 AGI 的苗头。

论文内容十分详实,看完很震撼。

摘录部分文字如下:

对话 +> 马克:我不喜欢你昨天晚上对待杰克的方式 +> 朱迪:你看到他在做什么了吗?他打了他哥哥的头! +> 马克:这并不能成为你对他大喊大叫的理由 +> 朱迪:你想让我怎么做?让他打他的弟弟,然后什么都不说? +> 马克:不,我不同意 +> 朱迪:那你为什么要为他辩护? +提问:马克的意图似乎是什么? +GPT4: 马克的意图似乎是要表达他对朱迪处理与杰克关系的方式的不满,并建议她可以更加冷静和尊重。 +ChatGPT:根据谈话内容,马克的意图似乎是为杰克的行为辩护,并表达他对朱迪对待杰克的不满。 +提问:朱迪如何看待汤姆的回应? +GPT4: 朱迪认为他的评论是对她的分析能力的攻击,也是对杰克的不当行为表示同情的表现。她的反应是防御性的和愤怒的,并质疑马克的动机。 +ChatGPT:如果没有更多的文字,我不可能准确判断朱迪是如何接受马克的评论的。然而,根据朱迪的回应,她似乎并不同意马克的观点,而且可能对他为杰克的行为辩护感到沮丧。

用 GPT-4 帮你编写一个游戏

+我第一次见识到 ChaptGPT 的编程能力之后,就基本离不开这个工具了。

现在我几乎每天都在它的辅助下编写代码。

不过,这里有个老哥更过分。

他让 GPT-4 模型帮他做出了一个3D太空赛跑游戏

作者本身没有游戏编程经验也不懂Javascript,但是通过跟模型一点一点对话,反复将调试代码生成的错误信息反馈给模型,逐渐完成了一个完成度还挺高的游戏。

搭建基于私域数据的ChatGPT

+ChatGPT 超强的对话能力怎样应用到私有数据上?

比如说我希望做出一个基于 ChatGPT 模型的专属客服,要吃透我的产品信息。

官方提供的训练API和微调(fine tuning)指导相对复杂一些,对于AI模型的微调不熟悉的人员还不够友好。

这里有一篇“零基础”教程《搭建基于私域数据的ChatGPT》,可以带你走一下流程,感受一下定制专属模型的步骤。

AI令人焦虑

+这篇《AI狂飙的时代,人还有价值吗?》是一期语音播客的文字转译,因为内容比较精彩,所以也收录在这里了。

我觉得取代不是一个好的词儿,因为取代是一个非常容易反驳的词儿。我可以说我仍然会干什么什么,AI干不了,所以它取代不了我。 +但正是这种字面上的抬杠,使得问题的本质被掩盖了,因为AI在人的生活中的渗透是一个逐渐的过程。 +百分之百地取代你可能仍然不会发生,可是它也不需要百分之百的取代掉你,只要50%的取代掉你的某些工作职能,AI就会对就业市场形成非常大的冲击。 +我有一个纽约的律师朋友,他是很早就开始用这个东西。 +他本身不是一个技术人员,他是一个标准的文科生,平常的用一个新软件都要紧张半天的那种人。 +但是他开始用这个之后,因为律师的工作是很大程度上是依赖于文本的,而文本是GPT的长项,所以他就开始用。 +之后,我就问他说,所以你真的开始辞退你的员工了吗?因为他自己是一个律所合伙人。 +他说我还没有真正开始辞退任何人,但是我确实打算今年暑假不用再招实习生了,因为给我省下的活完全可以让我腾出手来做一些事,以至于我可以省下招一个实习生的AD account。 +这就是一个真实的影响对不对? +它没有真正取代什么东西,但是它仍然冲击了一个真实的就业市场上的职位。

我觉得AI对我们社会的影响会以这种方式出现,它不会马上一下子让你这个人变得没有意义,但是它可以让三个人的活,两个人现在能干完,多出来那个人就没有存在的必要了,所以老板就可以把他开掉。 +它并不是百分之百取代的人的方式来逐渐进行的,而且这个事情是非常真实的。这也是为什么我觉得很多人对冲击仍然没有做好心理上和事实上的准备。 +其实有点令人忧虑的原因就是,如果你今天还用一种这东西,都是媒体的炒作来对待这个问题,你就很可能会在真正的影响你切身生活的冲击到来之前,没有做好对自己来说比较有用的帮助。

读完这篇文章,我的感受是,没必要焦虑,不是AI没有威胁,而是焦虑也没用,蒸汽机车发明之后,超越马车就只剩下时间问题了。

资源

  • 无限制下载器,只要能播放就能下载,能够帮助下载视频网站内容的浏览器插件很多,大部分都是通过嗅探播放地址来实现的下载,网站也会采用各种加密手段来进行阻止。但是这个油猴脚本采用了另一种思路。你网站防再死不能不让观众看吧?脚本几乎采用了类似录屏的手段来进行视频下载。对于一些实在想要下载的内容,可以考虑试试这个插件。 +
  • 帮你本地运行 LLaMA 模型,只需一行命令就可以让你在本地运行 LLaMA 模型,轻松感受在本地单机上运行大规模语言模型的魅力。 +
  • 微调 LLaMa 模型的工具,既然都能在本地运行了,那就再给力一些,这个工具可以让你很方便地使用自己的数据训练 LLaMA 模型。 +
  • Docker Compose 容器组合最佳实践,Docker有多好用不用再说了吧,这里有一堆使用Docker Compose编排容器的模板,收录了很多十分有用的容器镜像组合,可方便快速的搭建各种业务(如:单点登录、VPN、媒体管理、文件共享、博客、维基、社交网站、项目管理等)。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-13-51-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-13-51-53.png" new file mode 100644 index 000000000..dde7d108b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-13-51-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-02-07.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-02-07.png" new file mode 100644 index 000000000..e29aed06c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-02-07.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-08-25.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-08-25.png" new file mode 100644 index 000000000..cf0193591 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-08-25.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-22-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-22-47.png" new file mode 100644 index 000000000..b1db31e96 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-22-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-27-18.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-27-18.png" new file mode 100644 index 000000000..a45ce4d94 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-27-18.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-43-13.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-43-13.png" new file mode 100644 index 000000000..d712e76a5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-43-13.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-45-46.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-45-46.png" new file mode 100644 index 000000000..bad2e1aed Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/2023-04-04-14-45-46.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/index.html" new file mode 100644 index 000000000..691a242ed --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-027-\346\234\237/index.html" @@ -0,0 +1,17 @@ +机器文摘 第 027 期 +

机器文摘 第 027 期

机器文摘 第 027 期

机器文摘 第 027 期

长文

搭建本地AI作图应用

+AI对话机器人火爆的同时,去年由Stable-Diffusion模型引爆的AI作图技术也没有放慢进化的脚步。

这里面的佼佼者Midjourney已经发展成了强大的图像生成系统。可以轻松定制出照片级图像,其效果足以乱真。

不过目前在国内使用Midjourney还比较麻烦,即便能够访问,使用量也会受限制,能否自己搭建一个呢?

答案是肯定的。

跟去年刚问世的时候不同,现在基于Stable-Diffusion模型的生态也已经十分完备,很多开源软件、框架、插件围绕这个模型开发。

利用这些软件可以快速在本地计算机上构建一套属于自己的图像生成服务。

这里有一篇博客以手把手的方式教你如何在最快速的时间搭建自己的图像生成服务

里面还列举了一些微调好的定制模型下载地址,合理的使用这些模型,你会发现打开新世界的大门。

搭建本地chatGPT应用

+本来不想再提chatGPT了,因为最近说的有些太多了。

但是无奈当前的开源生态对于语言模型是在是太追捧了,技术发展迅雷不及掩耳。

很快就出现了一批可以自己搭建的AI对话模型。

今天我挑两个我认为效果比较好的(且对中文支持比较好的)介绍一下。

注意,跟目前流行的基于OpenAI的接口进行套壳的程序不同。我说的是完全在本地搭建自己的服务。

第一个:ChatGLM-6B,一个具有62亿参数的中英双语语言模型。通过使用与 ChatGLM(chatglm.cn)相同的技术,ChatGLM-6B 初具中文问答和对话功能,并支持在单张 2080Ti 上进行推理使用。

搭建过程比较简单,按照README文档中的步骤下载模型、执行脚本程序即可。

第二个:中文 LLaMA & Alpaca 大模型,开源了中文LLaMA模型和经过指令精调的Alpaca大模型。这些模型在原版LLaMA的基础上扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。同时,在中文LLaMA的基础上,本项目使用了中文指令数据进行指令精调,显著提升了模型对指令的理解和执行能力。

搭建过程略微繁琐一些,需要通过自己的手段下载到开源的LLaMA原始模型(当然这对于技术人员来说不是问题)。

然后按照文档中的教程,执行模型合并、量化等脚本,最终通过开源程序LLaMA.cpp实现模型的本地运行。

合作运行千亿参数级语言模型

+按照众人划桨开大船的思路,之前在带宽不足的年代诞生了BT下载。

如今,当我们的本地显卡无法应付超大AI模型时,有人开始用同样的思路解决问题。

Petals就是这么一个分布式模型微调、运行的框架,可以让你轻松在家运行超过千亿参数的大模型(当然是在线跟大家一起协作)。

其原理是大家分别加载模型的一小部分,然后与其他人一起通过协同的方式进行推理或者微调。 +

资源

  • Prompt Engineering 教程,一份教你如何更好使好地使用 ChatGPT 和其他 AI 产品的免费教程。 +
  • Prompthero,跟聊天机器人、绘图机器人交流的prompt大全,与上面的教程不同,这是一个模板库大全,有创作灵感但是不知道该如何描述的时候可以去参考一下。 +
  • Civitai,与上面相同,不过专门用于图像生成,而且路子比较野,有大量的NSFW内容,要搭配Stable-Diffusion的各种微调模型使用。具体使用方法,可参考前文中介绍如何搭建本地图像生成服务的部分。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-37-14.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-37-14.png" new file mode 100644 index 000000000..04d37c788 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-37-14.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-38-57.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-38-57.png" new file mode 100644 index 000000000..7d15fa61c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-38-57.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-49-17.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-49-17.png" new file mode 100644 index 000000000..5c9a93d6e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-49-17.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-50-49.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-50-49.png" new file mode 100644 index 000000000..15a8b85bb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-09-50-49.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-08-18.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-08-18.png" new file mode 100644 index 000000000..48086e4b6 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-08-18.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-19-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-19-26.png" new file mode 100644 index 000000000..a33b4d294 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-19-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-19-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-19-52.png" new file mode 100644 index 000000000..8d891373a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-19-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-20-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-20-26.png" new file mode 100644 index 000000000..376e0d0ce Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-20-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-21-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-21-52.png" new file mode 100644 index 000000000..768e4f15a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/2023-04-12-10-21-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/index.html" new file mode 100644 index 000000000..3133f52c9 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-028-\346\234\237/index.html" @@ -0,0 +1,22 @@ +机器文摘 第 028 期 +

机器文摘 第 028 期

机器文摘 第 028 期

机器文摘 第 028 期

长文

极简代码理解 GPT 模型结构

+在twitter上有网友发布了一个简单的示例代码,讲解了 GPT 语言模型的运行原理,为了方便大家理解,作者用了极简的模型设置,即语言文字只保留了1和0两个字符,上下文长度也仅为3,可以很直观地感受到训练过程是如何起作用的。

作者提供了托管在colab的python源码,可以在线体验。

用开源语言模型训练自己的数字化身

+随着开源语言模型的训练和微调变得越来越简单,果然有人开始整活。

已经有网友通过自己的微信聊天记录和博客文章训练出有自己风格的AI

作者使用目前对中文支持最好的开源模型 chatglm-6b 作为预训练模型(我上期介绍过它的部署和使用)。

经过一番折腾后终于训练出还算凑合的模型。

我们的世界离《黑镜》中的黑暗故事越来越近了。 +

四十年工作经验程序员的职业建议

+国外有位“老程序员”退休了,是真正的到了退休年龄的退休。

他从1981年入行,直到去年退休。这期间他做过各种开发,跳过槽也被辞退过,打过工也创过业。

这不容易。

所以,他决定以“一个退休程序员”的身份分享一些心得

摘抄部分要点如下:

保持开阔的眼界:每天花时间获取真正的资讯,看到趋势,在事物流行起来之前发现他们。 +保持学习:不要拒绝和敌视新技术,要为你所用。 +要有自己的项目(做一些真正的事情):作为程序员不要浪费聪明才智和外部资源,要学着开始一个自己的项目。

进入心流的入口

+进入心流(Flow)状态是一种很忘我的体验,也是知识工作者高效产出的必要条件。

有不少创作者都体会过那种全身心的投入并且忘记了时间的感觉。

一旦进入那种状态,很多问题能够很快得到解决,大脑飞速运转并且不会感觉到劳累。

这种状态最忌讳被打断,因为一旦打断,再进入就会比较困难。

这里有篇文章介绍了一些小技巧,可以让你在不得已中断心流之后,能够比较快速地恢复状态。

作者将这些技巧比喻为高速服务区进入主路之前的加速匝道,姑且称为进入心流的入口

资源

  • Spline,一个免费易用的 3D 设计工具,可实时协作,提供了丰富的物料库,可以基于它来快速创建有趣的 3D 场景,支持处理细腻动画交互,此外还可以导入本地模型和声音素材,支持到处多种输出格式包括WebGL、视频、链接等,很适合新手。 +
  • Draw With Flowers!,在threejs里用着色器语言编写的一个特效demo,可以随着鼠标移动绘制绚丽的花朵。 +
  • React 源码阅读,一本开源电子书,通过阅读React的源码来详细理解前端框架的原理。 +
  • Codeium,Github copilot 的免费平替,提供vscode、vim、neovim等常见编辑器的插件,我试了一下,效果可以接受。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-09-37-58.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-09-37-58.png" new file mode 100644 index 000000000..a5aab7e5a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-09-37-58.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-09-54-43.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-09-54-43.png" new file mode 100644 index 000000000..ab4410ff8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-09-54-43.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-06-59.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-06-59.png" new file mode 100644 index 000000000..b9b5e25a9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-06-59.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-17-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-17-26.png" new file mode 100644 index 000000000..0d906f34f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-17-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-22-36.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-22-36.png" new file mode 100644 index 000000000..2825ba0fa Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-22-36.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-31-02.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-31-02.png" new file mode 100644 index 000000000..3af736716 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-31-02.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-31-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-31-37.png" new file mode 100644 index 000000000..8311e8103 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-31-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-33-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-33-47.png" new file mode 100644 index 000000000..fee4b0939 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-33-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-36-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-36-53.png" new file mode 100644 index 000000000..efa5aeb9a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/2023-04-19-10-36-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/index.html" new file mode 100644 index 000000000..f49de8ab0 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-029-\346\234\237/index.html" @@ -0,0 +1,20 @@ +机器文摘 第 029 期 +

机器文摘 第 029 期

机器文摘 第 029 期

机器文摘 第 029 期

长文

计算机的“中断”机制是如何实现的?

+稍微了解过计算机原理的朋友都知道,计算机是通过“中断”的机制实现对键盘输入、鼠标移动、硬盘读写等操作的。

让我给小朋友讲解这些基本的知识时,我也可以侃侃而谈,说上半个小时不带重复。

但是真要解释“中断”的机制是如何实现的,我想即便是现在科班出身的本科生也未必能够说明白。

原因我觉得除了缺少实践之外,也跟大部分书上的理论内容离实际工程较远有关。

这篇漫谈中断从实际的硬件实例(x86)出发,详细介绍了中断的实现机制,普及了“外部中断”、“内部中断”、“软中断”等概念,以及人们怎样通过“中断控制器”逐渐解决了多设备中断处理的问题。是一篇很值得阅读的科普文章。适合对计算机组成原理、操作系统等技术有兴趣的朋友阅读。

怎样提升软件项目的可维护性?

+不同的项目团队对于软件项目的可维护性所做出的努力不同。

有不少团队宁愿在修改bug上加班加点,也不愿意为可维护性多花一丁点精力。

不过,如果你要开始一个新的软件项目或者想要改善一个已经存在的项目的可维护性。

这里有一份软件项目可维护性检查清单可以参考。

作者主要从版本控制、软件测试、静态分析、依赖库管理、多语言支持、多平台支持、开发环境管理等方面给出了可以改进的行动清单,以及基于开源工具的最佳实践建议。

怎样榨干chatGPT?

+ChatGPT是由OpenAI训练的一款大型语言模型,能够和你进行任何领域的对话。

现在跟年初账号紧张的情况比起来已经方便了很多。

在这么多开源工具和套壳网站的帮助下,我想现在大部分人都能够比较方便的体验它了吧。

但是可能很多人还不知道如何更好的发挥它的作用。

有网友整理了一份开源的chatGPT中文调教指南,内容极为详尽,可以帮你榨干chatGPT的全部潜能。

怎样让AI作画理解你的意图?

+对于现在强大的AI绘图应用,有些人可能会认为只输入一个单词就能生成一张很酷的图片。

然而,虽然AI模型越来越善于理解我们想要的内容,但它们还不能读懂我们的思想。

因此,如果你想生成一张看起来像你所想的那样的图片,你需要编写正确的提示。

这个AI绘图prompt编写指南可以给你提供一些帮助。

资源

  • 维修指南,各种设备的维修教程大全,详细到每一个步骤的照片,设备型号齐全; +
  • glsl-CNN,有大神用glsl语言,仅通过webGL的片元着色器实现了一个手写识别的CNN神经网络。可以在浏览器直接体验,效果惊艳。 +
  • dinov2,Meta AI新发布的全能视觉模型,模型支持:图像分类、分割、图像检索和深度估计。比较厉害的地方在于它是一个自监督模型,直接从图像中学习特征,而不依赖文本描述,即可训练计算机视觉模型。 +
  • minigpt-4,GPT4 的图像支持迟迟不开放,这个开源的MiniGPT4 却已经做到了类似的多模态效果,官方演示看起来非常棒。只用了四张A100训练了10小时,模型甚至只有13B。 +
  • street-fighter-ai,有个B站UP主在GPT的帮助下, 写了个 强化训练的AI模型,终于打败了街霸里的 AI,实现了儿时的梦想。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-48-07.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-48-07.png" new file mode 100644 index 000000000..e212356cf Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-48-07.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-50-22.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-50-22.png" new file mode 100644 index 000000000..2e64fd28d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-50-22.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-51-08.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-51-08.png" new file mode 100644 index 000000000..638a62da9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-51-08.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-51-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-51-53.png" new file mode 100644 index 000000000..f9e0a70b8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-51-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-53-56.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-53-56.png" new file mode 100644 index 000000000..e54789cd2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-08-53-56.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-09-42-27.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-09-42-27.png" new file mode 100644 index 000000000..20781f717 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-09-42-27.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-09-53-51.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-09-53-51.png" new file mode 100644 index 000000000..20e4b12d0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-09-53-51.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-09-57-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-09-57-29.png" new file mode 100644 index 000000000..dc6470a07 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-09-57-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-10-03-34.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-10-03-34.png" new file mode 100644 index 000000000..afb15c02a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/2023-04-26-10-03-34.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/index.html" new file mode 100644 index 000000000..e9b681198 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-030-\346\234\237/index.html" @@ -0,0 +1,20 @@ +机器文摘 第 030 期 +

机器文摘 第 030 期

机器文摘 第 030 期

机器文摘 第 030 期

下周五一假期,休息,不更新。

长文

内网穿透的原理及实现

设想这样一个问题:在北京和上海各有一台局域网的机器(例如一台是家里的台式机,一 台是连接到星巴克 WiFi 的笔记本),二者都是私网 IP 地址,但可以访问公网, 如何让这两台机器通信呢?

IPv4地址即将枯竭,IPv6技术还没有普及,现在很多家庭宽带都不再分配公网IP地址。这就意味着大部分的个人电脑是无法通过互联网被直接访问的(当然,你可以通过你家wifi或者4G信号访问互联网,但是反过来不行)。

可是这种需求又真实存在,比如我就经常希望能够在任何地方访问我家里的电脑,通过远程桌面进行办公、文件共享等等。

最简单的方法是通过购买一台具有公网IP地址的云主机来实现中继,这也是目前最普遍的方式。

不过阅读完这篇《NAT 穿透是如何工作的:技术原理及企业级实践》,假如你有很强的动手能力的话,就应该可以实现一套完全不需要公网主机进行中继的“企业级内网穿透工具”。

文章很长,来自这篇英文博客

技术写作指南

+曾经在翻阅《程序员的数学》这本书的时候被朋友看到,于是诞生了短暂的讨论。

当时我的观点是,作为程序员一定要掌握好数学,即便现在编程过程中已经不怎么用到特别底层的知识,但也应该多训练数学思维。

朋友当时说了一句话让我记忆犹新。

“比起程序员的数学,我更担忧的是程序员的语文。”

确实,写作这项能力在很多技术人员心里是被低估的。

不少人受尽写技术文档的折磨,于是越发讨厌写作。

这篇《作为工程师应该如何写作》真是雪中送炭,总结了很多立即就能见效的技术写作方法,希望可以帮助到工程师朋友。

怎样制作好玩的小游戏

+很多人都有自己开发游戏的冲动。

不过很容易掉进各种复杂的引擎和工具的坑里。

然后感到沮丧,忘了想做游戏的初心。

这篇《怎样制作好玩的小游戏》可以让你重新焕发精神。

作者认为开发那种不用复杂引擎的小游戏也可以很欢乐,只要有足够的游戏性。

他在文章中详细列举了想要制作出真正具有游戏性的小游戏所必须具备的几点关键特性。

看得出来,作者是懂游戏的。

神奇的一页纸知识管理

宇航员在太空中找到的方法一定不会错,因为他要是出错就没命了。 +航天员的秘密武器,One Pager。就是把一个专项的知识,都写和画在一页纸上。日积月累,宇航员有了一本手册,里面都是一页一页的one pager。 +我向来对知识管理的各种方法很有兴趣。

在网上闲逛时看到这篇《神奇的One Pager》,讲述了一种通过一页纸进行知识管理的方法。

热爱学习的人可不能错过。

资源

  • buzz,Transcribe and translate audio offline on your personal computer. Powered by OpenAI’s Whisper. +
  • 可视化提示词拼装,文生图的AI越来越多,自己也可以在本地搭建服务,可是为什么我自己生成的图片那么丑呢?这个工具也许可以帮你生成一些靠谱的提示词。 +
  • LangChain 中文入门教程,众所周知 OpenAI 的 API 无法联网的,所以如果只使用自己的功能实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能肯定是无法实现的。所以,我们来介绍一个非常强大的第三方开源库:LangChain 。 +
  • clock,一个非常酷的网页时钟显示效果。 +
  • WebGPU 理论基础,从基础理论开始学习WebGPU,稳! +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-09-20-31.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-09-20-31.png" new file mode 100644 index 000000000..f3fc6fb03 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-09-20-31.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-09-36-36.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-09-36-36.png" new file mode 100644 index 000000000..9513fc881 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-09-36-36.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-09-49-38.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-09-49-38.png" new file mode 100644 index 000000000..ef8e537d7 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-09-49-38.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-00-09.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-00-09.png" new file mode 100644 index 000000000..12b4ef407 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-00-09.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-06-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-06-52.png" new file mode 100644 index 000000000..56cd5beb2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-06-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-14-06.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-14-06.png" new file mode 100644 index 000000000..67ab91d6f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-14-06.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-15-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-15-52.png" new file mode 100644 index 000000000..8d57d06e8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-15-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-18-25.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-18-25.png" new file mode 100644 index 000000000..2a9cf8941 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-18-25.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-19-48.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-19-48.png" new file mode 100644 index 000000000..7cacecd57 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-19-48.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-20-48.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-20-48.png" new file mode 100644 index 000000000..b89967d80 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/2023-05-10-10-20-48.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/index.html" new file mode 100644 index 000000000..9c786a3e1 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-031-\346\234\237/index.html" @@ -0,0 +1,22 @@ +机器文摘 第 031 期 +

机器文摘 第 031 期

机器文摘 第 031 期

机器文摘 第 031 期

长文

怎样驱动上个世纪的网络摄像头

+国外有个老哥,在帮朋友收拾废品的时候,获得了一个老旧的摄像头。

于是他按耐不住想感受一下,这个来自上个世纪的“古董”,还能打吗?

由于年代比较久远,厂家也不再提供驱动程序的更新。

哥们不得不在虚拟机里全新安装一个windows xp,成功启动摄像头,并获得“清晰图像”。

安装xp时有个插曲:安装界面里的进度条仅用时几十秒就走完了原本几十分钟的倒计时(所以说微软的进度条是如何推断剩余时间的永远是个迷)。

在经过一番体验之后,又跃跃欲试准备自己给它手搓一个在现代操作系统下的驱动程序。

整个过程记录在《一个1999年的摄像头复活的故事》

整个故事都充满了一种“我不知道这么做有什么意义,但是我就是可以”的极客风格(也是我收录它的主要原因)。

webGPU 科普

+最近谷歌浏览器率先宣布全面支持 webGPU ,预计到今年年底各大浏览器也都会跟进并提供支持。

webGPU 从名字上看跟显卡和浏览器有关,可是之前已经有webgl了,这次又有什么变化?

通过多方面信息的搜索,我得到的结论是:webGPU 更充分地暴露了显卡的计算能力,GPU不再只是做图形渲染相关的事情,而是根据webGPU提供的相关专业接口,可以执行深度学习之类的更通用的计算工作。

如果想了解的更全面一些,这篇《谈谈 webGPU》文章十分值得一读。

作者对 webGPU 这一技术介绍的比较详尽,从各个图形接口的发展历史一直到对未来如何应用的展望,都包括了。

如何翻译一本书

+《从不自量力到 AI 助力,我如何翻译完一整本英文书》 +这是一个关于执行力的故事。

主题是:如何借助AI和现代信息工具,实现看似不可能完成的任务。

在这个时代,个体的力量很渺小,因为个人几乎无法独立完成任何事情。

但同时,借助科技工具和基础设施的力量,1 个人甚至可以完成之前需要一个上百人公司才能做到的事情,这让个体变得非常强大。

如何刷路由器

+V站上说,中年技术男有三大爱好:钓鱼、NAS、软路由。

我一样也没沾边儿,但还是克制不住关注相关技术。

之前多次想拿自己家的路由器开刀,刷一个openwrt系统,然后就可以各种折腾(科学上网、内网穿透等等)了。

但是一直没有动手,今天看到这篇自己动手定制你的路由器写的如此详细,还是心动了一下。

先收藏吧。

仅用CSS+HTML实现三维动画

+CSS 的 translate3d用到的不多。

如果使用巧妙的话,可以帮你实现很出彩的 3D 动画效果,国外有高手在给自己的文章配数学公式的时候,利用CSS制作了一些可以动态显示的公式图表。这篇CSS 3D图表记录了它们的实现细节和技术原理。

资源

  • window-swap,随机看别人家的窗外景色。这个网站每次刷新都随机显示一个网友共享的摄像头视角,一般是自家的窗外。可以随时体验全球各地的邻家风景。 +
  • foobar2000,经典的音乐播放器终于更新了。2002年发布的foobar2000播放器曾经是很多发烧友的最爱,如今过了20多年,居然更新了2.0稳定版,值得收藏; +
  • lost-at-sql,一个在线学习 sql 的交互游戏,通过游戏闯关的方式练习 sql 技能; +
  • glsl-exercises,在线学习glsl的交互课程,通过交互式页面练习 glsl 编写; +
  • gameuidatabase,一个游戏界面资源网站,各种游戏的界面截图,可以用来“借鉴”?; +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-14-33-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-14-33-53.png" new file mode 100644 index 000000000..62f06e359 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-14-33-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-14-49-14.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-14-49-14.png" new file mode 100644 index 000000000..7ffdf7e46 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-14-49-14.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-14-56-38.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-14-56-38.png" new file mode 100644 index 000000000..98effb634 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-14-56-38.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-04-41.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-04-41.png" new file mode 100644 index 000000000..69946cbcc Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-04-41.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-07-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-07-40.png" new file mode 100644 index 000000000..51778e527 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-07-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-11-32.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-11-32.png" new file mode 100644 index 000000000..98e60ac4c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-11-32.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-14-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-14-37.png" new file mode 100644 index 000000000..12b05461e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/2023-05-16-15-14-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/index.html" new file mode 100644 index 000000000..7016340a1 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-032-\346\234\237/index.html" @@ -0,0 +1,19 @@ +机器文摘 第 032 期 +

机器文摘 第 032 期

机器文摘 第 032 期

机器文摘 第 032 期

长文

AI歌手的训练与使用

+最近火了很多AI歌手(即:用AI模型模仿某位歌手的声音),其中b站上AI孙燕姿演唱的《漠河舞厅》、《撒日朗》等歌曲播放已超百万。

为了研究实现原理,我也找到了开源工具体验了一下。

具体步骤主要总结如下:

  1. 选定某一个歌手,找到具有代表性的几首歌曲,通过Ultimate Vocal Remover软件利用AI做人声和伴奏的分离,主要用于获取干净的纯人声用于模型训练。(不得不说现在基于AI模型的人声、伴奏分离做的是真的强,可以做到非常干净的提取,让你感觉像是原始独立的音轨)。
  2. 通过安装so-vits-svc-fork这个一体化开源工具进行模型训练,具体方法见so-vits-svc-fork的Readme,从数据预处理到最后的模型导出和推理都已经做好了,甚至还提供了图形界面。
  3. 继续使用so-vits-svc-fork提供的gui界面进行操作,将模型载入,将预期修改歌曲的原唱人声(提取方式同第1步)传入,运行推理获得定制的人声(注意看文档的各种参数)。
  4. 将第3步推理所得干净人声,跟原唱分离的干净背景音乐进行混音合成,即可获得一首新歌曲了。

怎样用口袋计算器玩耍

+在移动互联网时代,人打发无聊的方式实在是太多了,视频聊天、阅读各种资讯八卦、观看短视频、手游等等。

功能机的时代,我有印象的打发无聊的事情是手机上的贪食蛇、发短信、wap资讯等等,也算不错了。

如果时间来到上世纪七十年代呢?那个时代的没有随身携带的手机,怎么打发时间?

答案是:如果有一个随身携带的计算器也行,这里有一本书《How To Entertain With Your Pocket Calculator》,出版于上世纪七十年代。书中花了大量的篇幅介绍了很多种基于数字的游戏,我翻看了一下,我觉得可能得无聊到一定的程度我才能愿意玩书里的游戏。

LLM的几篇介绍文章

+Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 +与其感叹以chatGPT为代表的大语言模型发展太快,不如静下心来,读一读关于LLM的一些基础知识和使用方法,我找了三篇比较有代表性的放在这里收藏。

  1. 大语言模型综述,认真地概括并解释了什么是LLM和它的基本原理。
  2. ChatGPT背后的语言模型简史,从发展历史上捋一捋各种语言模型的辈分。
  3. prompt-engineering-for-developers一个中文版的 Prompt Engineering 教程,翻译自:吴恩达《ChatGPT Prompt Engineering for Developers》课程,主要内容为指导开发者如何构建 Prompt 并基于 OpenAI API 构建新的、基于 LLM 的应用;
  4. 大语言模型微调技术笔记,记录了基于 LLM 进行微调训练的实战技巧。

资源

  • sinerider,一个很有创意的数学学习游戏,让你通过数学函数构建图像从而帮助画面中的角色到达目标地点。 +
  • map-of-github,以节点地图的方式展示Github上面超过40万个仓库,通过虚拟大陆的方式展示他们之间的关系。 +
  • learngitbranching,以交互式游戏的方式学习git命令。 +
  • ,在线显卡博物馆,收藏了1982年到2012年之间发布的各款显卡,包括高清图片和规格参数的介绍; +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-22-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-22-11.png" new file mode 100644 index 000000000..da821597f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-22-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-31-09.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-31-09.png" new file mode 100644 index 000000000..ebd55fb5f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-31-09.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-40-25.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-40-25.png" new file mode 100644 index 000000000..321dc64ec Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-40-25.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-52-09.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-52-09.png" new file mode 100644 index 000000000..27c26edca Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-09-52-09.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-10-00-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-10-00-52.png" new file mode 100644 index 000000000..ae40c605c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-10-00-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-10-01-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-10-01-29.png" new file mode 100644 index 000000000..a5323503e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/2023-05-24-10-01-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/index.html" new file mode 100644 index 000000000..1a31547d8 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-033-\346\234\237/index.html" @@ -0,0 +1,17 @@ +机器文摘 第 033 期 +

机器文摘 第 033 期

机器文摘 第 033 期

机器文摘 第 033 期

研究

全键盘信息终端

+我一直很怀念使用黑莓手机的日子。

物理全键盘的手感比起现在硬邦邦的触摸屏真不知道好到哪里去了。

多少次盯着抽屉里的黑莓尸体,都在想有没有办法再次发挥它的余热。

现在机会来了,有人将树莓派和黑莓手机的全键盘(带触摸板的那一款)结合起来做了一个终端。

取名:Beepberry,具有400*200分辨率的LCD屏幕,和usb type-c接口。

自己动手给树莓派写操作系统

+学习操作系统的最佳手段是自己动手写一个。

这类教程很多,一般都是针对x86平台,树莓派的比较少见。

《给树莓派编写“裸机”操作系统》来自github上的一个开源项目。

可以带你从树莓派的硬件层基础上直接构建一个的完整操作系统。

关于 Demoscene 制作的一些文章

+Demoscene(也称为Demo Party)是一种计算机艺术形式,旨在展示计算机的音频和图形表现能力。Demoscene通常是由小团队制作的演示性程序,也被称为demo,它集计算机程序、音乐、图形和动画于一身,是八十年代初期在个人计算机上发展起来的一种文化和艺术运动。Demoscene的主要目的是展示计算机和程序的美感,通常使用3D渲染和其他复杂的视觉效果,展示计算机的高级图形和音频处理能力。

我对于如何制作这些炫酷的 demo 一直很感兴趣,但是网上关于这方面的资料非常少,成体系的就更少了。

这里收录了一些比较经典的相关资料:

  1. 64kb的demos介绍了基于SDF(Signed Distance Field,有符号距离场)生成三维网格的方法,这个方法是大部分demo用于在三维场景中产生三维模型的主要方法。

  2. The_Art_of_Demomaking是一套很系统的教程,讲述Demo的概念、发展历史以及制作过程需要了解的基础知识。

  3. pbr-book是一本关于基于物理的渲染(Physically Based Rendering,简称PBR)的经典教材。内容包括计算机图形学相关的基础概念、渲染算法、工作流程和高级特性等。

怎样防止针对LLM的prompt攻击

+就像之前流行的sql注入攻击,针对大语言模型的提示语注入攻击现在变得也很常见。

一种比较典型的攻击场景是,通过一段特定的提示语,解锁chatGPT原本被封印的能力。

或者对于接入了其他工具接口的语言模型,通过特定的提示语让其执行危险操作(如:删除所有信息)。

这对于使用者来说可能危害不大,但对于服务的提供者是一个不小的挑战。

《用于构建可以抵抗即时注入的 AI 助手的双 LLM 模式》提出了一种可能可行的解决方案。

即使用双模型的配置,协同工作,将具有执行危险操作的特权模型放在另一个模型后面,中间使用过滤器进行风险审查,即未被审查的内容永远不会发送到特权模型。

资源:

  • gamma,AI帮你做PPT。支持自然语言描述需要生成的内容,自动给出ppt的大纲和每页基本的排版布局; +
  • 3blue1brown,YouTube上最好的数学科普视频,特点是使用动画直观展示计算原理; +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-49-39.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-49-39.png" new file mode 100644 index 000000000..a3d86a0be Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-49-39.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-50-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-50-33.png" new file mode 100644 index 000000000..416592e84 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-50-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-51-20.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-51-20.png" new file mode 100644 index 000000000..bc0093eeb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-51-20.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-51-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-51-53.png" new file mode 100644 index 000000000..82a9e7d2d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-51-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-52-04.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-52-04.png" new file mode 100644 index 000000000..a80f4871b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-52-04.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-52-39.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-52-39.png" new file mode 100644 index 000000000..cd5829e4b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-52-39.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-53-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-53-28.png" new file mode 100644 index 000000000..04f6da05a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-53-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-53-58.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-53-58.png" new file mode 100644 index 000000000..04d72e68d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-53-58.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-54-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-54-28.png" new file mode 100644 index 000000000..ee80a54a1 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-54-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-55-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-55-26.png" new file mode 100644 index 000000000..93ffea3cb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-55-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-56-18.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-56-18.png" new file mode 100644 index 000000000..193c6f141 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-56-18.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-56-43.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-56-43.png" new file mode 100644 index 000000000..6111a766e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/2023-05-31-09-56-43.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/index.html" new file mode 100644 index 000000000..4dff385d9 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-034-\346\234\237/index.html" @@ -0,0 +1,23 @@ +机器文摘 第 034 期 +

机器文摘 第 034 期

机器文摘 第 034 期

机器文摘 第 034 期

研究

  • 图解内存分配,文章展示了 C/C++ 编程中的内存分配过程,包括静态和动态内存分配技术、它们的优势,以及有效的内存管理所需考虑的事项。以图解的形式展示了内存分配过程,希望读者可以通过本文更好地理解内存分配相关的概念,并在实际编程中对内存进行更加高效的管理。 +
  • 文件系统五十年,这是一个系列文章,详细记录了计算机文件系统的发展历程。也许我们身在其中无法感受到它的进步,但是回顾历史我们会发现,即便是我们不容易注意到的部分,也在不停地发展和优化。 +
  • 只有512字节的C编译器,这篇文章介绍了一个怎样实现最小编译器的思路,SectorC (github) 是一个用 x86-16 汇编编写的 C 编译器,适合 x512 机器的 86 字节引导扇区。它支持 C 的子集,足够大,可以编写真实有趣的程序。它很可能是有史以来最小的C编译器。 +
  • 上世纪50~60年代的计算机艺术,数字艺术的发展简史。 +
  • win10的隐藏功能,原来win10还有这个功能。按Ctrl + Alt + Del 后,按住Ctrl不松,再点击右下角的电源符号,就会进入紧急重启(Emergency Restart)界面。应该是一种强制重启。 +

资源

  • Ecoute,可用于远程面试作弊的工具?Ecoute 是一种实时转录工具,可在文本框中为用户的麦克风输入(您)和用户的扬声器输出(扬声器)提供实时翻译。它还使用 OpenAI 的 GPT-3.5 生成建议答复内容,供用户“参考”。 +
  • rask.ai,自动将视频转成“译制片”,在对内容进行翻译的同时,会尽量保持之前的音色和语调,端到端给你的视频完成多语配音,后续还会推出唇形同步合成。 +
  • Tango,一个Chrome浏览器插件,能帮你生成一个网站的操作指南。它会自动记录所有的操作流程,并做相应的截图和注解文档。你只需要点一遍就行了。目前还只能生成英文版的,不过自己翻译也不麻烦。可以节省不少时间。 +
  • WebGPU-torch,PyTroch的webgpu实现。我测试了一下,我的浏览器目前还不支持。 +
  • basic-english,“基础英语”的概念是:25,000个单词的牛津袖珍英语词典去掉冗余,并消除组合单词,90%的概念可以用850个单词来实现。使用这些基础英语可以简化日常工作和交流。 +
  • Web界面准则,讲解如何提升网页界面的交互性、排版、动画、辅助功能、优化和设计。 +
  • excalidraw,开源虚拟手绘风格白板程序,支持端到端加密在线协作。 +

沉思录

  • 一切商业的本质都是:收购一些东西(包括原材料、人力服务),经过加工(加工过程产生价值)后变成产品或服务出售。这里的原材料可以是实体物品也可以是信息。所以关键动作就是:收、加工、出售,从重要性上来说,出售大于加工大于收。所以如果要策划自己的产品,解决和分析问题的优先级也应如此,我之前想的正好一反;

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-09-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-09-37.png" new file mode 100644 index 000000000..465a0dc1e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-09-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-12-49.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-12-49.png" new file mode 100644 index 000000000..c2887792c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-12-49.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-17-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-17-33.png" new file mode 100644 index 000000000..512afa614 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-17-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-20-19.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-20-19.png" new file mode 100644 index 000000000..285d848de Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-20-19.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-21-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-21-40.png" new file mode 100644 index 000000000..19b9078bc Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-21-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-22-42.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-22-42.png" new file mode 100644 index 000000000..2778d7cf4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-22-42.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-24-07.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-24-07.png" new file mode 100644 index 000000000..4ea0d7ef3 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-24-07.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-26-05.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-26-05.png" new file mode 100644 index 000000000..4dfb36177 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-26-05.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-26-50.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-26-50.png" new file mode 100644 index 000000000..403aabe74 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-26-50.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-27-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-27-26.png" new file mode 100644 index 000000000..7aead19f4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-27-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-28-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-28-23.png" new file mode 100644 index 000000000..3e21d1772 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-28-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-29-07.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-29-07.png" new file mode 100644 index 000000000..32690999b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-29-07.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-30-19.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-30-19.png" new file mode 100644 index 000000000..2d578875b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-30-19.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-31-04.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-31-04.png" new file mode 100644 index 000000000..d003f24b6 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-31-04.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-31-49.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-31-49.png" new file mode 100644 index 000000000..e3520bcbd Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/2023-06-07-10-31-49.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/index.html" new file mode 100644 index 000000000..847f38f89 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-035-\346\234\237/index.html" @@ -0,0 +1,26 @@ +机器文摘 第 035 期 +

机器文摘 第 035 期

机器文摘 第 035 期

机器文摘 第 035 期

研究

  • 笔记帮我们记住还是忘记?这篇文章讨论了笔记对帮助我们遗忘的作用。作者认为,随着时间的推移,我们无法记住所有的事情,但是只要我们记录了重要的信息,就可以在需要时再次查找,因此笔记实际上帮助我们遗忘。 +
  • 高保真神经表面重建,Nvidia 新发布的这个 Neuralangelo 有些猛,随便给一个视频就能进行精细3D建模,也许要不多久激光点云技术就要淘汰了。值得关注 ! +
  • Windows XP 激活算法被破解, XPKeygen是一个可以随意生成XP有效安装密钥的程序,当前的电脑可能用不到了。不过可能还有一些老旧的设备,只能通过 Windows XP 来操作,这时候这个东西就派上用场了。 +
  • 一个整活儿的开源编辑器,data:text/html;base64,PGh0bWwgY29udGVudGVkaXRhYmxlPmVkaXQgbWU8L2h0bWw+ 把这个代码粘到浏览器地址栏,竟然是个记事本app,如果从IDE拷贝代码过去,竟然还支持代码高亮。。。。加入到收藏夹即可食用。 +
  • 3D打印拯救海龟 ,2017年,伯奇水族馆与加州大学圣地亚哥分校图书馆的数字媒体实验室合作。他们一起创造了一种首创的3D打印支架,以固定她的外壳上的缝隙。现在,六年后,这种生物及其照顾者继续从这项发明中获益。这只海龟最近接受了年度检查,健康状况良好。 +
  • 破解“智能”牙刷 国外一个博主记录了他破解自己的电动牙刷的过程。由于牙刷的NFC芯片采用的加密方式是密码加密,并且在通讯过程中是用了明文传递,所以他采取了截获通讯信号的方式窃听到了密码,然后就解锁了各种姿势开始为所欲为了。。。 +
  • 真·AI相机 ,paragraphica 是一个没有镜头但是却有物理实体的“AI相机”,使用位置、时间等参数数据生成特定地点和时刻的prompt,然后由人工智能来生成“照片”。 +

资源

  • Droa,一个通过自然语言进行网站开发的工具,你只需要提需求,剩下的交给AI。 +
  • StableDiffusion-CheatSheet,经常用 Stable Diffusion 进行 AI 绘图的,可以看下这个开源速查表。里面拥有超过 700 种经过测试的艺术风格,可快速搜索查找各类艺术家,并支持一键复制 Prompt。 +
  • 你一直想知道的关于数学的一切,此书是CMU数学科学系的博士生布兰登·W·沙利文撰写的,旨在引导读者进入抽象数学和证明写作的世界,帮助培养读者的数学思维和表达能力。主题涵盖集合、逻辑、归纳法、关系、函数、基数和组合数学等基础和工具。暂未有中文翻译。 +
  • Python进阶,是《Intermediate Python》的中文译本。2021最新目录版,实时更新托管在GithubPages。 +
  • CSSPro,一个所见即所得的在线CSS可视化开发工具,直接在页面运行,那里修改点哪里。效果真的很惊艳。 +
  • Plane,开源版 JIRA !不少软件开发者都使用JIRA进行缺陷管理,JIRA确实很强大,也很好用。现在,开源版的来了,据说完全可以作为JIRA的平替。 +
  • 机器学习系统:设计和实现,一本关于机器学习的电子书,本书希望做成世界上第一本全面讲述机器学习系统知识的开源书籍。可以看作一门衔接机器学习和计算机系统的课程 ​​。 +
  • Callanie,练习英语口语的AI对话机器人,支持国内手机号注册,免费且流畅。后端基于大语言模型,可以陪你聊各种话题。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-49-03.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-49-03.png" new file mode 100644 index 000000000..ca66c1833 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-49-03.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-49-59.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-49-59.png" new file mode 100644 index 000000000..979c3c0df Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-49-59.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-50-39.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-50-39.png" new file mode 100644 index 000000000..06672f5d9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-50-39.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-51-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-51-29.png" new file mode 100644 index 000000000..d405c9648 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-51-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-52-02.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-52-02.png" new file mode 100644 index 000000000..cadbaa934 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-52-02.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-52-48.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-52-48.png" new file mode 100644 index 000000000..1526b715a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-52-48.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-53-34.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-53-34.png" new file mode 100644 index 000000000..e9b59b103 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-53-34.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-53-58.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-53-58.png" new file mode 100644 index 000000000..c792df517 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-53-58.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-56-24.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-56-24.png" new file mode 100644 index 000000000..b7c16ee5e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-56-24.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-57-18.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-57-18.png" new file mode 100644 index 000000000..cffbe4975 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-16-57-18.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-02-19.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-02-19.png" new file mode 100644 index 000000000..daeee31e4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-02-19.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-02-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-02-52.png" new file mode 100644 index 000000000..70abbcda5 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-02-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-15-39.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-15-39.png" new file mode 100644 index 000000000..d9d296b2a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-15-39.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-16-02.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-16-02.png" new file mode 100644 index 000000000..e15e6d20e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/2023-06-14-17-16-02.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/index.html" new file mode 100644 index 000000000..784447d9d --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-036-\346\234\237/index.html" @@ -0,0 +1,25 @@ +机器文摘 第 036 期 +

机器文摘 第 036 期

机器文摘 第 036 期

机器文摘 第 036 期

研究

  • 软驱阵列演奏音乐,国外大神用512个软驱、16个硬盘、4个扫描仪,组装成阵列,通过编程的方式控制电机震动发出声音,组成各声部。这么多软驱,让我想到了退休老干部合唱团。 +
  • 大脑能像身体那样锻炼吗?,如何训练大脑?提高记忆力、注意力和智力!这个视频进行了讲解,总之就是,用进废退,改变日常默认行动,让大脑动起来。 +
  • 用纯汇编写一个GUI,跟随这篇教学文章,通过编写图形界面的方式来学习汇编语言吧。顺便,作者想挑战一下,最小的GUI程序其可执行二进制文件能有多小。(现在的可执行文件动不动就好几十上百MB)​。 +
  • 让 ChatGPT 帮我们总结 Hacker News,让AI每天帮我总结新闻摘要,这个想法我已经考虑很久了,现在已经有人做了实现。这篇文章介绍了一个开源静态网站的实现,它利用 ChatGPT 的总结能力,直接将每条Hackernews的新闻用一两句话总结出来,然后发布到GithubPages 可以节约我们每天看新闻的时间。 +
  • 马斯克专访:推特的混乱过去了,现在的目标是最大化用户无悔时间!,我不喜欢看八卦,但是科技的除外。马斯克收购 Twitter 几个月过去了,大家还在等着看笑话,但是为什么没等到,以及开掉一半人之后效率却提升那么多? +

资源

  • FinGPT,一个面向金融领域的开源语言模型,采用以数据为中心的方法,为研究人员和实践者提供易于使用的资源,致力于做金融领域的chatGPT。 +
  • Audiocraft,facebook发布的一个PyTorch库,用于音频生成的深度学习研究。目前,它提供了用于从文本生成音乐的MusicGen代码和模型。模型使用2万小时正版授权音乐训练。 +
  • Mercury,在 Jupyter Notebook 中构建 Web 应用程序,允许您在Python笔记本中添加交互式小部件,然后将笔记本发布为带交互界面的Web应用程序。我的感受是,Mercury就是 notebook版的gradio ​​​。 +
  • ReactPy,React是最流行的用于构建UI的前端框架,现在所有Python开发人员都可以使用它。比起gradio,这个reactpy的抽象层级更低一些,自由度更高了,我猜测目标用户应该是不喜欢写前端代码但是又希望掌控页面细节的python程序员。 +
  • GGML,一个用于机器学习的张量库,采用纯C++实现,无其他依赖项。旨在在普通硬件上实现大型模型和高性能。它同时也是 llama.cpp 和 whisper.cpp 的底层库。 +
  • Scrcpy,一个让人相见恨晚的app,可以通过USB或TCP/IP连接镜像Android设备的视频和音频,并允许使用计算机的键盘和鼠标来控制设备。它不需要任何root权限,并且兼容Linux、Windows和macOS操作系统。 +
  • Tafi,通过自然语言生成3D模型,质量号称接近AAA级游戏,可以导出创建的角色到Blender、Unreal 或 Unity中。 ​​​ +
  • canvas-editor,一个基于 canvas/svg 实现的富文本编辑器,在市面上,使用 Canvas 实现整个编辑器的开源项目并不常见,大多数情况下仍然使用 DOM 来实现。使用 Canvas 的最显著特点是其出色的性能,但实现起来的成本也更高。 +
  • markmap.js,一个用markdown文本制作思维导图的工具,提供了vscode的插件可直接在编辑器预览。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-55-06.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-55-06.png" new file mode 100644 index 000000000..830eb81ec Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-55-06.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-55-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-55-33.png" new file mode 100644 index 000000000..4395d06d6 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-55-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-56-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-56-11.png" new file mode 100644 index 000000000..7dbc884ff Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-56-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-56-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-56-28.png" new file mode 100644 index 000000000..a76eedace Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-56-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-58-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-58-53.png" new file mode 100644 index 000000000..03b017939 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-58-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-59-12.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-59-12.png" new file mode 100644 index 000000000..797556582 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-59-12.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-59-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-59-33.png" new file mode 100644 index 000000000..cd0fef847 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-15-59-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-00-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-00-11.png" new file mode 100644 index 000000000..91269ed88 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-00-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-00-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-00-26.png" new file mode 100644 index 000000000..37eecbbb0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-00-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-00-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-00-47.png" new file mode 100644 index 000000000..25819629a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-00-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-01-04.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-01-04.png" new file mode 100644 index 000000000..75e623226 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-01-04.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-01-41.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-01-41.png" new file mode 100644 index 000000000..99a6879b9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/2023-06-20-16-01-41.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/index.html" new file mode 100644 index 000000000..d02e22a5a --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-037-\346\234\237/index.html" @@ -0,0 +1,23 @@ +机器文摘 第 037 期 +

机器文摘 第 037 期

机器文摘 第 037 期

机器文摘 第 037 期

研究

  • SnapFusion 文本到图像的扩散模型可以从自然语言描述中创建令人惊叹的图像。然而,这些模型很大,需要高端 GPU 在服务端运行模型。SnapFusion提出了一种通用方法,可以在移动设备上运行的文本到图像扩散模型,且出图时间不到2秒。 +
  • Framer 发布了 AI 工具,直接根据文字需求生成页面,我试了一下,对于个人博客、产品介绍页面等静态展示类型的页面,生成的效果还是十分理想的,而且同步提供桌面端和移动端页面。 +
  • #ffffff还“白”的“超级白”,这里有网友介绍了一个方法,可以显示更高对比度的二维码(以方便用户扫描识别),据说白的程度超出了sRGB颜色范围,前提是你的显示设备支持HDR。作者的思路是用一段HDR视频在网页中伪装成显示二维码的图片。 +
  • 我在21小时内重启系统29万次,Linux 6.4内核有一个bug可能导致启动时挂起,但概率很低。为了复现bug,Richard WM Jones重启了29万次电脑,最终找到了问题。这让我想起了之前修改不容易复现Bug的艰辛。 +
  • 我发现一个用chatGPT翻译整段文字的小技巧,那就是在他翻译完成之后,再将这段话发给他,让他根据通顺程度和合理性进行二次润色,出来的结果就好很多了。 +
  • Python写代码很爽,但是想打包发布成果的时候就稍微麻烦一些了,毕竟一大堆环境依赖和包依赖。我之前一直用的是PyInstaller作为打包工具,但是现在我又发现了这个Nuitka。它的打包原理是:直接把 Python 代码转成 C 代码再编译,这样打包出来的成果占用小、执行效率也高,尤其适合PyQt编写的桌面程序。另外,著名的 Blender 就是用 Nuitka 编译的。 +

长文

它提出了一个有趣的观点,我以前从未意识到:

每样东西都需要支付两次成本。

通常,我们只关注第一次支付的成本,也就是购买时花的钱,比如买一台相机、一架钢琴或一本小说。

然而,作者指出,如果你不支付第二次的成本,你之前花的钱就等于打水漂了。

第二次成本指的是,你需要花时间和精力去充分使用你所购买的物品。

比如认真阅读一本书,练习钢琴以提高演奏水平等等。

然而,我们常常只停留在第一次购买时的满足感上,然后追求下一个。

随着时间的推移,大量未支付第二次成本的物品使我们积累了一种无形的债务。

为此经常感到挫败。

这种挫败感促使我们寻求那些能够刺激我们的短期享受,比如玩手机、享用美食。

进一步导致没有时间支付第二次成本。

那么,有什么办法可以改变这种情况吗?

作者说,唯一的解决办法就是控制购买欲望,强迫自己安排时间来履行第二次支付的责任。

尽管这听起来可能有些不舒服,但如果我们能克服这种不舒服的临界点,例如学会一首乐曲,耐心读完一本书,我们将会获得意想不到的奖励时刻。

资源

  • ratatype,在线键盘盲打指法练习,有完整的练习教程,从初级到高级都有。有点儿像Dos时代的著名打字练习软件TT,不过是网页版的。 +
  • 0A.D.,帝国时代是个经典游戏,这里有个开源版,名字叫做0AD,由Wildfire Games开发,虽然是免费开源的游戏,但是效果和可玩性都非常高,适合在周末的午后来一把怀旧局。 +
  • landing.love,一个专门收集各种网页动画效果的网站,目前已收录超过400个具有新颖创意动效的网站,并配有截图和录屏视频。 +
  • infinigen,一款面向计算机视觉研究的3D场景自动生成器,提供多样且高质量的3D训练数据。基于Blender,免费且开源。可以通过重写随机化的默认参数来完全控制资产生成。提供了对自然界中多种对象和场景的生成器,包括植物、动物、地形以及火、云、雨、雪等自然现象。 +
  • 8086-emulator-web ,用js编写的的8086 cpu模拟器,支持汇编语言在线编写、编译和调试运行,是一个学习汇编语言和理解计算机原理的好工具。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-53-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-53-23.png" new file mode 100644 index 000000000..21578e433 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-53-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-54-05.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-54-05.png" new file mode 100644 index 000000000..586fb1bbf Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-54-05.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-56-35.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-56-35.png" new file mode 100644 index 000000000..6c315937c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-56-35.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-56-57.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-56-57.png" new file mode 100644 index 000000000..af7885cdf Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-56-57.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-58-24.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-58-24.png" new file mode 100644 index 000000000..cc8596c0c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-58-24.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-58-38.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-58-38.png" new file mode 100644 index 000000000..8103951ad Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-58-38.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-59-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-59-26.png" new file mode 100644 index 000000000..910852e98 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-15-59-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-16-00-25.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-16-00-25.png" new file mode 100644 index 000000000..0c4c2a0a8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-16-00-25.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-16-01-00.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-16-01-00.png" new file mode 100644 index 000000000..67679e042 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/2023-06-27-16-01-00.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/index.html" new file mode 100644 index 000000000..d602dd115 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-038-\346\234\237/index.html" @@ -0,0 +1,20 @@ +机器文摘 第 038 期 +

机器文摘 第 038 期

机器文摘 第 038 期

机器文摘 第 038 期

研究

  • ChatGPT的“奶奶漏洞”,奶奶漏洞来源自一个用户说他已经过世的奶奶是凝固汽油弹工厂的工程师,用户让 ChatGPT 用他奶奶说睡前故事的形式,详细介绍了凝固汽油弹的制作方法。以此来绕过 ChatGPT 的安全审查,结果当然是,他得逞了。后来还有网友做了试验,以同样的方式可以套取 Windows 各个版本的序列号。 +
  • 国外也有“垃圾佬”,这篇《怎样低成本搭建深度学习电脑》的文章,介绍了作者怎样通过在二手网站上“捡垃圾”搭建出了性能良好且便宜的GPU工作站。 值得一提的是,作者购买的主要渠道竟然来自国内的著名二手物品交易平台,某鱼。 +

长文

  • 回顾这些年软件研发的历程,凡是能够做成的软件,无一例外都是抓住了真正存在的需求。这样的需求未必很宏大或者华丽,但一定不是想象种的伪需求。仔细分析之后就会发现,在一个软件产品的生命周期里,开发者所面临的真正(或者说正确的)需求很少,因为找到它们十分不易,它们周边布满了被人们主观意识强加上的伪需求。《伪需求是糟糕软件的根源》,文章探讨了软件开发中存在的一个问题,即虚构的问题(我将之译为:伪需求)如何导致糟糕的软件结果。 +

  • 有没有考虑过一个问题,即:为什么随着科技的发展和生产力的提升,人们不是越来越清闲,反而越来越劳累了?这里有篇文章探讨了一些深层次的原因,《狗屁工作》,此文写于 2013 年,作者是 David Graeber (一名人类学教授)。文章讨论了现代社会中存在的一种现象,即许多人在工作中感到他们所从事的工作毫无意义,没有真正的价值和目的。这些工作被称为"狗屁工作",作者试图探究狗屁工作的存在原因和对个体和社会的影响。 +

资源

  • Sarasa Term SC Nerd,写中文Markdown文件的时候,最怕遇到表格,因为编辑器按照一个中文字符的宽度等于两个英文字符的宽度进行计算,而很多字体在设计时未考虑严格按照这种2:1的宽度比例设计字形,导致在Markdown在编辑状态时的表格分割线错位,看起来十分头疼。经过多方对比,我终于找到了让自己满意的等宽字体,支持中英文字符2:1宽度比例,中文为黑体,英文字符也特别适合写代码。此外还整合了Nerd fonts,支持在终端显示各种漂亮图标。 +
  • ReviewGPT 写作文、写报告、写邮件,生活中充满了各种写作任务。ReviewGPT 基于 gpt 模型,可为你的文章进行打分、评价,提出修改意见,甚至还可以扮演莎士比亚、金庸等知名作家,帮助你重新撰写,快速提升文章质量。 ​​​ +
  • try,刚发布的一个命令行工具,目标是允许你执行命令的时候先检查其执行的后果,然后再决定是否让命令真正生效。真正起到了安全保护的效果。官方介绍这个命令是基于 Linux 的命名空间(通过 unshare )和 overlayfs 联合文件系统等技术实现。并特别提醒并非基于沙盒,所以还是谨慎执行危险操作吧。比如try rm rf /*。 +
  • DragGAN, 通过拖动就可以完全操纵图像的 AI 模型,现已开放源码! DragGAN 是由谷歌、麻省理工学院和马克斯普朗克研究所创建的一种新的人工智能模型。可以让你轻松通过点击拖动等简单的交互操作就能改变拍摄对象的姿势、形状和表情。 ​​​ +
  • flameshot,一个超强的免费截图软件,可以像任何一个截图工具一样截图,最重要的是还有一些附加功能,按一下数字图标,就可以在屏幕上按数字顺序自动生成步骤图示,非常适合生成操作步骤说明。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-13-52-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-13-52-23.png" new file mode 100644 index 000000000..062d8b5a2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-13-52-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-13-55-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-13-55-53.png" new file mode 100644 index 000000000..682f6faef Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-13-55-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-12-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-12-47.png" new file mode 100644 index 000000000..e391323a4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-12-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-13-31.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-13-31.png" new file mode 100644 index 000000000..7330bf20c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-13-31.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-13-53.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-13-53.png" new file mode 100644 index 000000000..29c6c4f76 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-13-53.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-14-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-14-11.png" new file mode 100644 index 000000000..8d04957cc Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-14-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-14-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-14-52.png" new file mode 100644 index 000000000..68df4c2d4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-14-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-15-25.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-15-25.png" new file mode 100644 index 000000000..e76e25aff Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-15-25.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-15-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-15-45.png" new file mode 100644 index 000000000..6dca8cc87 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-15-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-16-44.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-16-44.png" new file mode 100644 index 000000000..2290482ec Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/2023-07-04-14-16-44.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/index.html" new file mode 100644 index 000000000..21683e423 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-039-\346\234\237/index.html" @@ -0,0 +1,22 @@ +机器文摘 第 039 期 +

机器文摘 第 039 期

机器文摘 第 039 期

机器文摘 第 039 期

长文

  • 关于写作的通用问题,“元技能”一般指比普通技能更高阶的技能,我理解为可产生技能的技能,此类技能并不会随着外部环境的高速发展而被淘汰。比如写作就算是一种元技能,当不知道该训练和提升什么技能的时候,将时间花在“元技能”的提升上准没有错。这篇文章主要讲解英文写作的常见问题,但是有些我觉得对于中文也适用。比如文章开头提到的两个基本原则:“在写之前就弄清楚自己想表达什么”、“即便是你已经写完了一整篇,如果没能表达你的意思那也是废纸”。 +

  • 新电脑快还是老电脑快?,上周有博主在twitter发布了一个视频吐槽了一个我也困惑很久的事情。作者展示了他在一台古董电脑上运行Windows NT 3.5 的情况,视频中的电脑基本可以做到秒开程序,然后又展示了一台配备了Windows 11的Surface平板电脑,操作起来界面响应有明显延迟。后者cpu频率为前者的4倍,内存容量为前者的6倍。 +

现在的硬件性能动辄就比之前的老硬件几十甚至上百倍的提升,但是我们的交互体验呢?能够秒开的程序甚至还不如二十年前的老爷机。 +后来这事儿在twitter引发了一些争议,有人认为现在的软件确实吃掉了硬件提升的性能,对体验来说提升不足。也有人说现在的体验与以往不可同日而语,这样的对比不公平也没有意义。

博主不得不专门写了一篇文章来回应,详细记录了作者认为更加合理的对比过程。

我个人认为首要原因就是随着硬件性能的提升,软件开发者的精力已经逐渐从性能向开发效率倾斜了。由于现在硬件成本确实低廉,软件迭代周期变得越来越短,软件开发者也越来越没有动力做出极致挖掘硬件性能的软件。

不信你看,现在越来越多的应用程序不再使用原生开发,而是采用了可以“跨平台”的web技术。

这样使得软件界面的响应直接下降了一个数量级。(我在使用vscode的时候甚至还会遇到打字卡顿慢慢弹出字符的情况。)

另外,复杂的设计模式和软件架构,也吃掉了不少硬件性能,因为每增加一层抽象,都会消耗资源,而现在各种复杂的架构就是拼命地增加抽象层。

希望以后市场能够鼓励开发者多做挖掘硬件性能的事情吧。

  • 文字渲染比你想象的要复杂,这篇文章的作者曾负责火狐浏览器的文字渲染引擎,他写这篇文字的目的是科普一下关于文字渲染的一些基本技术和困难。在阅读之前,我也简单的以为,文字渲染就是把对应的字符字形从字体库中取出来然后绘制到相应的位置即可,但实际情况确实比这要复杂得多。比如,文中提到的关于“连字符”的处理、“抗锯齿”、“书写方向”等问题,每一个都是开发者的头发杀手。 +

资源

  • rrweb,可在网页上记录用户行为并导出视频文件。可用于:排查用户错误、保险业务签署、内部风控、用户交互分析等。rrweb采用虚拟化转换DOM、记录变更和操作过程,并通过链表回放数据。存储最小化、回放可快进且跳过无效行为。 +
  • DragGAN-Windows-GUI,DragGAN(上周介绍过的开源模型,可以针对图片进行交互式拖动修改)的懒人包,解压直接用,内置17个模型。 ​​​ +
  • deep-sea,这个网页可以让你查看海洋各个深度都是有哪些生物,果然是越往下越看不清,所以大家就随便长长了,不讲究好看不好看了。 +
  • 电子书《Elements of Programming》,这本老书在出版十年后推出了免费pdf版。中文译作《编程原本》,旨在介绍通用的程序设计原理和技巧,重点关注程序设计的基本元素和抽象概念。这本书的核心思想是将程序设计看作是一种构建和操作抽象概念的过程。它强调程序设计应该建立在数学原理和精确性基础上,通过抽象和泛化来创建可重用、可扩展和可维护的软件。 +
  • devpod,Github 的 Codespaces 和微软的 VSCode DevContainers 给开发者提供了即开即用的云端开发环境。现在,他们的开源平替来了,devpod 是一个开源的开发环境容器,可以方便地在任意客户端(Mac、Win、Linux)或云端主机创建体验一致的开发环境,并且可以与VSCode和Jetbrains等IDE直接集成。 +
  • 从零开始训练大语言模型的最佳实践,训练大语言模型的技术白皮书,从基本概念和技术讲起,教你训练大语言模型。 +
  • windbg,一本电子书,讲了很多 windbg 调试器的高级用法,市面上很少见。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-02-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-02-40.png" new file mode 100644 index 000000000..b625cc7ad Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-02-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-03-27.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-03-27.png" new file mode 100644 index 000000000..36d20cecb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-03-27.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-04-12.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-04-12.png" new file mode 100644 index 000000000..44bebaa0c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-04-12.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-04-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-04-26.png" new file mode 100644 index 000000000..f25ea9fd4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-04-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-05-17.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-05-17.png" new file mode 100644 index 000000000..028e8232c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-05-17.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-05-41.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-05-41.png" new file mode 100644 index 000000000..fc3f227c3 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-05-41.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-05-59.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-05-59.png" new file mode 100644 index 000000000..2903bae77 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/2023-07-11-13-05-59.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/index.html" new file mode 100644 index 000000000..2ccbbc0b2 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-040-\346\234\237/index.html" @@ -0,0 +1,26 @@ +机器文摘 第 040 期 +

机器文摘 第 040 期

机器文摘 第 040 期

机器文摘 第 040 期

长文

前端代码检查插件ESLint和美化插件Prettier的冲突

+在使用VSCode等现代化编辑器进行前端开发的时候,很多工程样板都默认开启了代码检查和自动格式化的功能,其中以 ESLint 插件和 Prettier 插件为主。

之前有一阵子我总是困惑这两个插件的区别,甚至如果配置不好的话,还会有冲突。

比如 Prettier 插件会在你保存源码的时候按照既定规则进行“美化”代码,如去除行尾分号、增加表达式中的空格等等。此时如果ESLint插件的规则配置不同的话,编辑器就会报错并提示要进行“修复”,然而就在你“修复”之后,刚Ctrl+S保存之后,又傻眼了,因为 Prettier 又对代码进行了“美化”。

我周末特意花时间研究了一下,梳理了一下这两个插件的关系以及他们的分工。

首先,他们的职责定位不同:ESLint 用于检查代码编写是否符合某种预定义的规范,可以进行十分详尽的配置和多项检查,比如定义的变量如果未使用可以作为一种警告或者错误,其职责定位以检查为主。而 Prettier 的职责侧重于格式化(美化)代码,对于编写代码的样式如 tab 缩进量、行尾要不要分号、字符串用单引号还是双引号等可以进行统一格式化,一般用于在代码保存的时候进行快速统一样式。

所以两者可以配合使用,但开头提到的规则冲突需要注意。

我个人的习惯是,将两个插件的配置文件里的配置项进行匹配(规则调整为一致),因为我在美化时关注的项并不太多,所以编写这两个配置文件不算费劲。

而网上有人提出了更好的办法,即通过扩展插件的方式,使得 ESLint 自动获取 Prettier 的规则,以自动统一两者的行为。

关于 ESLint 和 Prettier 的具体分析文章和操作建议可以看这一篇文章:

说一说我现在的知识管理工具和流程

+Hacknews 上有网友说Evernote几乎辞退了它的所有员工,才想起来我已经有好几年没用过 Evernote 了。之前大概有将近十年的时间都在使用Evernote(但都是免费用户)。主要使用场景是记录个人的工作日志和借助浏览器插件剪藏一些值得收藏的文章。

后来随着 Evernote 的限制越来越多,体验逐渐下降。我就迁移到了使用纯文本作为知识记录载体的路线上了。

期间使用过 Emacs 的 org 模式,也尝试过 vim 的 wiki 插件,最后选择了现在这个 VSCode + GitHub 的方案,已稳定使用了两年时间。

具体流程如下: +1、使用 VSCode + foamMarkdownAllinOne 等插件实现对 Markdown 的高效编辑,可以实时预览排版效果,foam实现了类似 Obsidian 的文章双向链接和知识关系图谱。我主要使用 Markdown 记录日志和编写知识卡片用于存放个人吸收的信息。 +2、所有内容存放在一个 git 仓库中,同步到 GitHub 上的个人私有仓库,这样可以省去对接网盘的麻烦。 +3、对于互联网上阅读到的有用文章,使用浏览器插件 Web Clipper,可以完整的抓取页面内容到指定的后端存储,这个插件我最喜欢的点是它可以将文章抓取到你指定的GitHub仓库,并作为Issue提交。 +4、来不及看的信息就先抓取到 Issue ,然后等有时间进行整理,形成自己的知识卡片后再关闭该 Issue 。

这套工具及流程的优点: +1、完全免费,不产生任何费用,而且体验不亚于收费软件。 +2、自由度高,存储后端可以自己随意选择,如果嫌 GitHub 麻烦的话,可以自己用网盘同步文件夹。 +3、纯文本载体,这个算是优点吧,格式开放,不会存在别的编辑器打不开的情况。 +4、数据私有,数据随时都在本地(云端的仅作为备份和同步中转),不用担心 SaaS 供应商跑路(你看现在的Evernote)。

欢迎大家讨论。

资源

  • 朋友圈截图生成工具,可以帮你生成逼真的朋友圈截图,可定制头像、评论、点赞个数等细节。收藏这个地址,以后再也不怕被群里晒孩子的家长或者搞活动的商家逼着发朋友圈集赞了。 ​​​ +
  • 86box,老式 x86 架构计算机模拟器,与 Virtualbox 等虚拟化技术不同的是,86box采用纯软件模拟的方式,实现了经典老式 cpu (如 AMD Am486DX4)的各种技术细节,甚至是当时的硬件缺陷(有些老游戏的 hack 需要这些缺陷)。可以完美复现一台上世纪 90 年代的经典 DOS PC ,用来复古怀旧游戏是再合适不过了。 +
  • fastllm,fastllm是纯c++实现,无第三方依赖的高性能大模型推理库(待测试验证)。据宣称:6~7B级模型在安卓端上也可以流畅运行,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llmam, moss基座,手机端流畅运行。 +
  • PhotoAI,作者说,他为这个网站大概写了14000行PHP代码,样式全写在了<style>标签里,JS全写在<script>标签里,除了jQuery没用任何框架,就连布局也是使用float:left这种老式的浮动实现。然而这个网站确能给他带来每月差不多 6万刀 的收入。这是不是在吹牛。这个网站的业务是:使用AI生成完全没有任何版权问题的各种人像照片。 +
  • Ironfish synth,用rust写的在线合成器,虽然感觉像个 Demo 但完成度很高,音源部分具有两个振荡器(可选正弦波、方波、锯齿波等)和一个噪波通道,滤波器、效果器齐全,另外还有一个可视化音序器。可基于键盘直接演奏。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-28-30.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-28-30.png" new file mode 100644 index 000000000..2cd93d425 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-28-30.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-29-07.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-29-07.png" new file mode 100644 index 000000000..58ab711da Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-29-07.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-29-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-29-47.png" new file mode 100644 index 000000000..627154d9d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-29-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-30-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-30-40.png" new file mode 100644 index 000000000..63bca983f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-30-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-31-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-31-11.png" new file mode 100644 index 000000000..079b2e1eb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-31-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-31-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-31-40.png" new file mode 100644 index 000000000..1405cb1a4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-31-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-32-07.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-32-07.png" new file mode 100644 index 000000000..1fa29d879 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-32-07.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-32-58.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-32-58.png" new file mode 100644 index 000000000..57a03700e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/2023-07-19-09-32-58.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/index.html" new file mode 100644 index 000000000..d3be61253 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-041-\346\234\237/index.html" @@ -0,0 +1,19 @@ +机器文摘 第 041 期 +

机器文摘 第 041 期

机器文摘 第 041 期

机器文摘 第 041 期

长文

C 也能一次编译到处运行了?

+用 C 编写的程序,只编译一次,生成的可执行文件能同时在多个平台运行吗?

这在以往是 java 这类依赖虚拟机执行环境的语言宣称的事情。

然而我今天才听说还有这个神奇的库(好久没关注过c++领域的技术了):CosmopolitanLibc 号称可以使 C 成为一种构建一次就能到处运行的语言,就像Java一样,除了它不需要解释器或虚拟机。相反,它重新配置了GCC和Clang,以输出POSIX批准的多语言格式,该格式在Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS上本地运行,具有最佳的性能和最小的占用空间。

在使用的时候需要引入特殊的库和编译配置,具体执行效果我还没有测试。

然后,这篇文章的作者干脆来个更方便的操作,他给 GCC 打了大约 2000 行的补丁,使得 GCC 直接就嵌入了 Cosmopolitan 库,现在可以在不修改任何源代码(前提是得用纯 C 写)的情况下构建出到处都能运行可执行文件了(Windows也可以吗?我要测试)。

业余无线电入坑指南

+业余无线电跟摄影、HiFi音响这一类的爱好在某种维度上非常相似,在“入坑”的境界上,甚至完全一样。

这里的坑,指需要投入大量精力和资金。

之所以这么说,是因为它们都有一个共同的特点。

即围绕这些爱好有大量的知识可以学习和探索。

比如拿业余无线电来说,上来就一堆“亚音”、“中继”、“频段”、“频差”、“杂散发射”等名词,对标摄影中的“构图”、“光圈”、“快门”、“ISO感光度”等名词。新手若想有所体会,单是这些概念就够琢磨几天的。更不用提后续还有逐渐步入玄学的一些操作流派,乃至一个不留神还会陷入无穷尽的装备升级竞赛。

这类知识对于好奇心强烈、喜欢求知的人来说有着巨大的吸引力。甚至直白的说,我们很可能不是爱好这项技能,而是单纯喜欢探索和求知的过程,喜欢那种获得感。

这篇《业余无线电新手指南》可以普及一些基本知识,愿意入坑的请阅读。

我近期已考取了中国无线电协会的业余无线电操作能力 A 证 算是合法的 HAM 火腿了。

远程办公还能成为趋势吗?

+疫情的时候,远程办公、异地协同等概念一度变得很火爆,当时很多人觉得这又是一个风口。

但随着当时极端环境的消失,各大公司又纷纷将员工从居家办公中召回。

那么?此类与远程协作相关的概念破灭了吗?

各种协同工具、平台相关的市场,还有没有继续扩大的可能,或者说还在等待一个巨大的技术革新来引爆?

这里有个项目,积极收集远程办公相关的信息,包括国内支持的公司清单、工具及使用资料等。

怎样做出伟大的成就?

+昨日读了保罗格雷厄姆(《黑客与画家》的作者)新文章一篇—-《怎样做出伟大的成就》(实际上我觉得可以译为“怎样牛逼”)。

虽然标题看起来略有鸡汤味儿,但读起来还是比较实惠的。

文章从发现和选择要做的事情开始,谈论了一些具体的方法。然后展开讨论了在方法执行过程中可能会遇到的一些问题,以及如何克服。甚至介绍了一些心理暗示技巧。

文章比较长,我个人体会比较深的点如下:

  1. 一个人做什么才能牛逼?答:做自己天赋里有的东西,就是找一些你既有能力又非常感兴趣的事情。
  2. 要养成“自驱”的习惯。让“工作”来源于自己的认知,而不是别人告诉你、让你做的事情。主动,而不是等待。
  3. 拥有一个属于自己的“项目”是一个找到“自驱”的最佳方法。不断观察自己对什么有强烈的好奇心(甚至好奇到大多数人不能理解)可以找到这样的“项目”。
  4. 选定要做的“项目”还应遵循兴奋原则,即:做自己愿意用的产品,写自己想读的故事,而不是执着于满足想象中的不存在的复杂需求。
  5. 注重积累效应,日拱一卒、长期积累,每天写一篇文字,一年下来就是一本书。
  6. 周期性审视自己做的事情,确认它是否偏离了目标(在做自己最想做的事情),及时修正。
  7. 行动的重要性,很多人实际上可以更牛逼,但是因为“谦虚”和“恐惧”导致的拖延使得计划一再搁浅,浪费了时间。

资源

  • jabbr.ai是一个针对拳击比赛的打击判定进行训练的AI模型,可以在智能手机上运行,实时监测视频中拳击选手的打击得分情况,即时进行统计,多个智能手机多视角同时运行可以快速生成总结性视频。模型提供约50种监测参数(质量、步法、压力等)可用于运动员训练分析。 +
  • 浏览器地址栏快捷操作,我今天才知道原来浏览器地址栏还有这些快捷操作(火狐浏览器支持的最多,我测试的Edge浏览器也支持部分操作):
    1. 输入*星号,可以搜索你的收藏夹;
    2. 输入^,可以搜索历史浏览记录;
    3. 输入%,可以搜索当前打开的tab页;
    4. 输入?,可以显示所有搜索建议; ​​​
  • 树莓磁带 一种用树莓派做的小硬件,为了支持在老式电脑中加载程序(之前用磁带存储的那种)。 +
  • 两招教你“永久”关闭 Windows 自动更新(任选一个都可以):
    1. 通过执行代码的方式:reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings” /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f Win+R 打开「运行」对话框,输入 cmd 后按下 Ctrl+Shift+Enter,在弹出来的命令行窗口中输入上面的代码,并敲击回车。命令里的 10000 代表停止更新的天数。
    2. 手动把电脑时钟日期改成 2050 年(为了防止时间自动校准,可以暂时断开网络),然后在 Windows 更新设置界面里面点击“延迟更新”,完成设置后再把电脑时间调回来就行了。
  • pkg-size,一个在线监测 npm 包大小的网站,可以实时查看一个 npm 包的真实依赖,网站利用了 web容器技术,直接在浏览器里执行 npm install 操作。 +
  • 3e,一个 VS Code 插件,可以让你在编辑器里直接浏览 3d 模型,基于 webgl 实现。 +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-57-14.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-57-14.png" new file mode 100644 index 000000000..3a7644b64 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-57-14.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-57-33.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-57-33.png" new file mode 100644 index 000000000..5ad0c7953 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-57-33.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-58-12.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-58-12.png" new file mode 100644 index 000000000..7a440afe4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-58-12.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-58-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-58-45.png" new file mode 100644 index 000000000..7accfd8f1 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-58-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-59-02.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-59-02.png" new file mode 100644 index 000000000..ecfe1b7a6 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-59-02.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-59-18.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-59-18.png" new file mode 100644 index 000000000..6a117d922 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-59-18.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-59-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-59-28.png" new file mode 100644 index 000000000..419962fba Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/2023-07-25-13-59-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/index.html" new file mode 100644 index 000000000..9a04dc70b --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-042-\346\234\237/index.html" @@ -0,0 +1,19 @@ +机器文摘 第 042 期 +

机器文摘 第 042 期

机器文摘 第 042 期

机器文摘 第 042 期

长文

从 CPU 到操作系统

+整天使用电脑和手机却对它的工作原理一知半解?把你搁 CPU 里是一套不错的科普文章,作者保证你无论是否了解 CPU 的运作方式,读完之后都会有所收获。我原本以为主要讲解 CPU 组成原理,在浏览了一遍之后,发现 CPU 只是引子,后面还讲了很多操作系统相关的知识,很值得一看。 ​​​

基于 GPU 渲染的 UI 界面制作

+基于 GPU 渲染的 UI 界面制作,也是一个系列文章,探讨了使用 GPU 渲染用户界面的一些思路和相关技术实现方法。用 GPU 绘制用户界面不是什么新鲜事,事实上现在大部分游戏的 UI 都是基于 GPU 渲染的,不过这个作者讲的比较深入浅出,对基础介绍的比较多,适合我这种业外人士,读起来通俗易懂。

为什么我们更应该使用 Display port 而不是 HDMI ?

+为什么我们更应该使用 Display port 而不是 HDMI?,简单来说,HDMI 是家电行业制定的接口标准,封闭而保守,Display port 是 PC 行业制定的标准,开放又激进。现在的显卡上一般提供一个 HDMI 接口,仅仅是为了兼容而做出的妥协,不提供多个是因为 HDMI 授权收费。

txt 纯文本才是王道

+喜欢老式合成器的操作方式,不用图形和触摸屏,而是用文本和字符进行交互,可以快速选择音色参数,指哪儿打哪儿,心中有数。

喜欢在控制台的黑窗口通过命令行跟计算机交互,而不是用鼠标在图形界面上点击,不用将鼻子凑在屏幕上,闭上眼睛也能做到精确操作。

喜欢单反相机的肩屏,无论我用什么姿势拨动拨杆、拨轮,肩屏总能用字符给我最快速最准确的响应,告诉我现在的曝光三参数是多少,做到心中有数。

喜欢用 Markdown 文本格式记录信息,只因为文本格式最干净纯粹,利于保存和传播。

这篇《txt纯文本才是王道》的作者表达了跟我同样的喜好,对于使用纯文本保存信息偏爱有加,认为无论是视频、图片还是其他数字形式,在文字面前都是弱小的弟弟。

资源

  • Llama2-Chinese,Llama2中文社区!是一个专注于Llama2模型在中文方面的优化和上层建设的高级技术社区。 基于大规模中文数据,从预训练开始对Llama2模型进行中文能力的持续迭代升级。Facebook近期开源的 Llama 2 模型比较火,号称可以免费商用。我试了一下,效果不如预期,跟 ChatGPT 3.5 比起来还有距离。可能我使用的中文微调 Lora 参数还不够好吧。 +
  • githubunwrapped是一个帮你统计 Github 信息的网站,可以将输入的 Github 账号相关的统计信息生成一段漂亮的动画,展示你使用最多的编程语言、哪天提交的最积极、哪个时段工作效率高(根据文件修改时间?)等。比较有趣的是,这个网站生成动画视频的技术来自一个叫做 remotion的库,它可以使用 React 组件式风格编写动画效果,并通过 Canvas 实现视频文件的渲染。 +
  • lazydocker,继发现 lazygit 和 lazyvim 两个神器之后,我又发现了 lazy 家族新成员:lazydocker!同样是提供终端命令行下的“gui”界面,不过操作对象是 docker 这下管理容器终于可以不再看错乱的 docker 命令输出了。 ​​​ +

观点

  • 关于产品需求的来源:

    对于提供IT相关服务的从业人员来说,无论是在企业还是个人做独立产品,把握好产品的需求、做好产品定义是最关键的事情,是后续做研发、运营的基础。

    而好的产品定义=自己想做+自己能做+用户想用+愿意付费。

    这样的定义应该怎样去发现?

    拿软件举例,大部分软件能给用户提供的最大价值是“将一些事情自动化”和“将一些物理实体虚拟化”。前者能够通过自动化实现工作效率的指数级提升,后者则通过对物理现实虚拟化实现用户对交互体验的指数级提升。

    所以在分析产品需求进行产品定义时可以从身边三个方面入手:

    1. 还有什么事情可以被计算机自动化?
    2. 还有哪些物理实体可以被虚拟化?
    3. 市场上的现有产品,还有哪些可以从上面两个维度提升以增强体验的?

    我发现,无论是企业的产品,还是个人的独立产品,都可以从这些维度进行分析。

  • 基于互联网通道的“业余无线电”:

    不是很理解热衷于用互联网通道进行业余无线电通联的心态。

    今天刚知道现在有一些业余无线电爱好者使用一种叫做 mmdvm 的盒子(热点盒子)进行自主搭建数字中继。

    原理是“热点盒子”用家里的wifi接入互联网,然后热点盒子给业余无线电台提供UV频段的发射接收中继,这样就能轻易通联全国甚至全球的爱好者。

    目前很多拥有支持数字通信的电台的爱好者都很积极地参与这种通联,甚至每周还有打卡点名活动。

    我暂时还不是很理解这种心态。这种依赖互联网进行的通联在我看来(也许是暂时的)早已失去了玩无线电的初衷。如果我想要通过互联网假装进行呼叫,还得依靠家里的无线路由器,那我为什么不干脆使用微信电话?

  • 无头系统: +今天才知道原来我给自己配的远程开发环境有个专业术语叫做 “Headless 无头系统” 啊。我现在基本上可以做到带着笔记本随意移动,开发环境都在远程,在各处体验环境都一样。主要使用: Win10 + WSL2 + Nvidia-Docker + VS Code + Neovim。有时会启用远程桌面 RDP,有时直接 ssh + tmux。有兴趣的话我挑一期详解。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-13-57-56.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-13-57-56.png" new file mode 100644 index 000000000..bce4694e3 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-13-57-56.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-13-58-59.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-13-58-59.png" new file mode 100644 index 000000000..4172e3a3d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-13-58-59.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-13-59-57.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-13-59-57.png" new file mode 100644 index 000000000..79fb16abb Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-13-59-57.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-00-27.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-00-27.png" new file mode 100644 index 000000000..6041e377d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-00-27.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-00-43.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-00-43.png" new file mode 100644 index 000000000..64c315ddc Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-00-43.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-00-57.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-00-57.png" new file mode 100644 index 000000000..c5383d01b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-00-57.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-01-15.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-01-15.png" new file mode 100644 index 000000000..36b9533f4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-01-15.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-01-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-01-47.png" new file mode 100644 index 000000000..05454ba85 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/2023-08-01-14-01-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/index.html" new file mode 100644 index 000000000..036905b22 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-043-\346\234\237/index.html" @@ -0,0 +1,27 @@ +机器文摘 第 043 期 +

机器文摘 第 043 期

机器文摘 第 043 期

机器文摘 第 043 期

长文

先做框架再做功能

+Before you try to do something, make sure you can do nothing.

看到这句话第一反应是:这是什么 XX 逻辑?看完作者的文字之后,哦,这是一种软件构建的方法。

意思是说,先宏观再微观,先整体再局部,别一上来就陷入到细节代码的编写中去。

先把框架搭好,具体功能一个也别着急实现,留着占位,先搭一个“什么都不干”的架子,然后再逐渐补充功能。

但也不是真的什么都不干,而是理清了各个关键组件的调用关系以及与开发相关的辅助功能(如打印调试信息)。

这样做最大的好处是,随着功能开发的深入,代码不至于失控,而且具有良好的可调试性和组件问题隔离能力。

随之而来的就是轻松写代码,而不是眉毛胡子一把抓。

神经网络从开始到现在

+The Document is All You Need!

一篇 AI 科普好文章,用较为通俗的语言讲解了神经网络模型原理和发展历程(我感觉有些像生物的进化)。

从最初的由神经元组成的多层感知机开始,然后进化到卷积神经网络 CNN 降低网络复杂度,再进化, RNN 循环神经网络给模型增加记忆能力,记忆能力太强也不行,到了 LSTM 开始让它能够遗忘,再到后面的 注意力机制以及 LLM 语言模型。

比起同类文章,这一篇尽量避免了数学概念的推导和论证,尽量在不看公式的情况下解释基本思路,适合我等小白学习。

代码审查的一些建议

5个关于代码审查的最佳实践,文章记录一些了对代码审查的实践建议,嫌长不看我总结如下:

  1. 一次只审查一个功能特性或者错误修复。
  2. 提前准备好背景交代(在审查之前写清楚这么做的原因和基本思路)。
  3. 利用自动化工具提前做好静态检查,提前统一风格、规范。
  4. 利用提问的方式提出改进建议而不是直接喷,如:“我们真的需要这个断言吗?”
  5. 仔细阅读代码,慢慢来,以充分理解。

资源

  • 微软的 ZoomIT 真是个经典工具,已经默默维护了好多年了,现在版本为7.0。体积小巧才1MB多点儿,绿色免安装,下载解压即用。非常适合进行共享屏幕培训讲解,或者录制教学视频。 + +ZoomIT 快捷键如下: +Ctrl+1:放大屏幕,屏幕静止,然后使用鼠标批注; +Ctrl+2:使用鼠标随意绘制批注,支持 r、g、b、o 等快捷键切换颜色; +Ctrl+3:显示 BreakTime 倒计时; +Ctrl+4:放大屏幕,屏幕继续支持鼠标交互操作,用于放大操作过程; +Ctrl+5:录制屏幕,可与前面几个功能结合使用;

  • driver.js 一个压缩后只有 5K 大小的前端库,可以让你的网站或者 Webapp 迅速集成交互式“使用指南”的能力。 ​​​ +

  • clangjs 一个在浏览器编译、链接、运行 C/C++ 代码的 JS 库。支持 C/C++ 标准库。完全在本地编译,无需网络即可工作。原理: +首先把 Clang 和 LLD 编译为 WebAssembly 使其运行在浏览器中。然后使用 WebAssembly 版本 Clang 把 C/C++ 代码编译为 WebAssembly,最后通过浏览器 API 运行 WebAssembly。 + +附:clangjs源码

  • nms,一个控制台程序,可以将任意命令的输出(ANSI TXT)文本转换成为乱码以达到防偷窥和加密的效果。通过命令管道使用:ls -l | nms ​​​ +

  • Icon Buddy,这个网站有超过 1 百万个免费 svg 图标,可在线自定义颜色。 +

观点

  • 无法眼神交流不是导致远程办公沟通的最大障碍,语音延迟才是:
    • 我之前一直以为远程办公给沟通带来最大的最大障碍是无法眼神交流导致的信息失真,想象着可以通过升级摄像头(比如嵌入在屏幕中)来改善这一情况。
    • 但进行无数次网络会议之后,我体会到了最大的障碍还不是无法眼神交流,而是网络通信带来的(几乎是必然的)严重的语音延迟。
    • 人们对声音延迟的感知和容忍限度大约在10毫秒(现在的电脑声卡在使用 ASIO 驱动之后可以轻松做到本地延迟 8到6毫秒左右,所以可以用于实时录音),大于10毫秒的延迟会带来明显的迟钝感,时间再长一些就会对对话的节奏带来严重影响。(如果体会不到的话,可以回忆一下新闻直播间主持人跟现场记者连线时那种说话总是对不上节奏的尴尬。)
    • 什么时候网络视频会议的延时能缩短到10毫秒以内(唱卡拉OK可以接受的最低延迟),远程办公才能迎来质的飞跃,否则网络视频会议对于工作讨论永远都是隔靴搔痒、效率低下。现在的解决方案普遍还在吹能做到一秒(1000毫秒)以内,任重而道远。 ​​​
  • 现在真正的程序员用什么编辑器 ? +

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-51-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-51-26.png" new file mode 100644 index 000000000..d26f50aa4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-51-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-52-14.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-52-14.png" new file mode 100644 index 000000000..46df6b5c0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-52-14.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-52-42.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-52-42.png" new file mode 100644 index 000000000..3f0c11b4d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-52-42.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-53-03.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-53-03.png" new file mode 100644 index 000000000..494fa2514 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-53-03.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-53-14.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-53-14.png" new file mode 100644 index 000000000..3e2633d89 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-53-14.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-53-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-53-29.png" new file mode 100644 index 000000000..7c3467d3a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-53-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-54-19.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-54-19.png" new file mode 100644 index 000000000..d6c3fc63c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-54-19.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-54-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-54-40.png" new file mode 100644 index 000000000..c03da5161 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-54-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-56-00.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-56-00.png" new file mode 100644 index 000000000..1f1f4ef73 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/2023-08-08-09-56-00.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/index.html" new file mode 100644 index 000000000..c02074f89 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-044-\346\234\237/index.html" @@ -0,0 +1,20 @@ +机器文摘 第 044 期 +

机器文摘 第 044 期

机器文摘 第 044 期

机器文摘 第 044 期

长文

导致 Python 多线程鸡肋的 GIL 是什么

+近期在使用 Python 多线程的时候,遇到了 GIL 全局锁导致的性能问题。

具体来说就是性能提升没有达到预期,对于有些计算任务无法并行执行。

从多核 CPU 占用结果上来看,像极了网上那张经典的围观图,一核干活多核围观。

于是翻阅了相关资料研究一下,发现这是 Python 社区争论多年的问题,而且有很大的历史包袱。

严格来说,GIL 全局锁导致的性能问题与 Python 编程语言没有关系,导致这个问题的原因在于具体实现的 CPython 解释器。

当年解释器开发者为了简单实现对多线程的支持,搞了一个全局锁,以至于在多核时代无法充分发挥 CPU 性能。

而后续又有很多库延续了这项依赖,历史的包袱(屎山?)越来越重,很难下定决心将之移除(据说代价甚至比当年从 Python2.x 迁移到 Python3 还要大)。

如果不想深究具体技术细节只想了解基本的来龙去脉,这里有篇文章为什么 GIL 让多线程变得如此鸡肋?介绍了 Python PIL 的产生背景以及适用于 Python 多线程的业务场景,可以给你的技术决策提供参考。

不过好消息是,就在刚刚(前几天),Python 官方终于宣布要动手取消掉 GIL 了,顿时网上一片沸腾(其实只有一部分人,大多数人都还不知道 PIL 是什么玩意儿)。而且,Meta 也承诺,愿意出工出力(3人年)帮助 Python 社区做针对去除 GIL 的相关开发工作

用树莓派做一个属于自己的高级收音机

+最近接触到 SDR (软件定义无线电)这个领域,感觉挺有意思的。

软件定义无线电是一种无线通信技术,它利用软件来实现无线电通信系统中的信号处理和调制解调功能,而不是传统的硬件电路。

通过软件定义无线电技术,可以实现灵活、可配置和可重用的无线通信系统,大大提高了无线通信的灵活性和性能。

传统的无线电通信系统通常使用硬件电路来执行信号处理、调制解调和频谱管理等功能。这些硬件电路通常是固定的,不能轻易更改,因此限制了通信系统的灵活性和可配置性。

而SDR技术通过将信号处理和调制解调等功能以软件方式实现,可以在通信系统中使用可编程的处理器和通用硬件,从而使得通信系统的功能可以在软件层面上重新配置和调整,而不需要更改硬件设计。

比起灵活性和可配置性来说,我觉得 SDR 最大的优势是成本大大降低。之前必须购买昂贵的硬件才能实现的效果,现在能够通过便宜的、少量的硬件加上软件模拟即可。

我近期就以很低廉的价格购买了一套 SDR 设备,通过 USB 接口连接计算机,可以实现 500KHz到1700MHz频率范围的接收。听 FM 和航空频段不在话下,SW 短波的话受天线影响,我暂时没有调试出好的效果。

跟 SDR 相比,我几千块买的旗舰手台显得既昂贵又功能弱。

这里有篇文章是作者自己动手用 SDR 设备结合树莓派制作了一个看起来还挺专业的宽频无线接收机。

其实这跟音乐制作领域内很多乐器、效果器逐渐被虚拟化的软件、插件代替是一样的。软件虚拟化拥有巨大的优势,随着通用计算硬件的成本越来越低廉,一切能被软件定义的最终都会被软件定义。

家用 WiFi 路由器需要选择哪个“信道”

+近期验证了一个关于无线路由器的传说。

起因是我新买了一个树莓派 ZeroW 带无线版本,没想到板载的 WiFi 网卡天线太弱了。

离路由器稍微远一点,比如放到卧室,传输速率就会大幅下降,我又暂时没能找到合适的外接网卡,一度陷入绝望。

后来灵机一动,看看能不能从路由器那头想想办法,于是打开路由器配置页面,找到了 WiFi 的“信道”设置,将之从“自动”调到了最不常用的“13”。

这里补充一下,WiFi信道一般从1到13,由路由器自动选择,但现在无线环境十分混乱,尤其是 2.4G(树莓派 Zero W 只能连这个规格) 频段,干扰很严重。

但是 13 这个信道很少被路由器自动选用,原因是最初制定标准的时候,不是所有国家和地区都支持,也不是所有终端设备都支持,所以这个信道就成了最不常用的。

在我手动指定信道之后,惊喜地发现,树莓派放在同样的位置,传输速率得到了较大提升并且稳定。看来传说将路由器 2.4G 信道设为 13 可以防干扰是真实的。

什么是路由器的信道?信道设置成什么最合理?

资源

  • 开发人员路线图 是一个学习索引网站,旨在创建路线图、指南和其他教育内容,以帮助开发人员选择学习路径。在 Github 所有仓库中 Stars 排名第七。 ​​​ +
  • AudioGen facebook 开源的声音合成模型,可以根据文字描述生成对应的声音。效果已经很惊人了,这个页面展示了很多样例。我听了一下,觉得以后影视作品里的一部分声音特效应该可以通过 AI 进行生成了。至少像一些嘈杂的人群、婴儿哭声、鸟叫等各种背景音是可以合成的。 +
  • 原来 Chrome 和 Edge 浏览器的 DevTools 里自带了 CSS 动画曲线编辑器啊!可以直接通过鼠标拖动进行调整和预览,十分便捷。 ​​​ +
  • Graphite,一个开源的 2D 矢量图形编辑器,适用于照片编辑、图像处理、图形设计、插图、数据可视化、数字绘画等领域。可以实现项目图稿,数据可视化和自动化。 +

观点

获取高品质信息的需求仍然强烈,只是被淹没了

+三十几年前,电视逐渐取代书籍、报纸等传统媒体的年代,尼尔波兹曼写下了《娱乐至死》。

作者认为:过度追求娱乐和娱乐化的信息传播方式可能导致公众思考能力的下降。

然而这么多年过去了,人们在降低信息质量这条路上越走越远。电视也早已沦为老年人卧床的伴侣,电视节目更是无法占据现代人的时间,取而代之的是手机短视频。

短视频已经成为大部分人闲暇消遣、信息获取的主要方式。这种媒体的变化将进一步降低理解和感受深度信息的能力,使人对深入学习和思考失去兴趣。

虽然获取的信息看似在增多,但现在高质量的信息却越来越少。

短视频等碎片化信息给我的感觉就像是无线电信号的背景噪音,现在的信息“电磁环境”早已被这种噪音充斥。因为“背景噪音”太大,就好像在高楼林立的城市里打开无线电,接收到的全是 LED 路灯和电动车充电器产生的噪波。

不过我还是相信会有包括我在内的相当一部分人,不愿放弃主动思考,不屑于接收低品质信息。

我正在努力做出一些尝试,以后逐渐记录下来:

  1. 降低输入:减少刷碎片信息的时间;
  2. 滤波:使用搜索引擎、RSS服务、newsletter邮件等工具进行整理;
  3. 溯源:尽量选择信息源头获取一手信息,对于技术来说,直接阅读英文文档是一个办法;
  4. 创造:自己制作高质量内容;

摄影师不会被 AI 取代,但是模特很可能会

+即便以后 AI 绘画能够产出更加难以分辨真假的作品。

从目前能看到的各种生成作品来说,还是摄影师负责了主要的创作灵感。

真要说被取代的话,也许“被拍摄对象”经过虚拟化以后,很可能被取代。

以后不仅仅是举着相机的叫摄影师,说不定会诞生面向 AI 摄影这一职业。

到时候器材党玩的不再是镜头,改玩显卡了?

“嘿,你这 N 卡 比我这 A 卡有德味儿,毒!”

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-23-22.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-23-22.png" new file mode 100644 index 000000000..40c4d3b39 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-23-22.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-23-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-23-45.png" new file mode 100644 index 000000000..dc2021444 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-23-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-24-15.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-24-15.png" new file mode 100644 index 000000000..00fb479ef Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-24-15.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-24-42.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-24-42.png" new file mode 100644 index 000000000..93de783ee Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-24-42.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-25-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-25-40.png" new file mode 100644 index 000000000..02429468b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-25-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-25-55.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-25-55.png" new file mode 100644 index 000000000..725dcf197 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-25-55.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-26-13.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-26-13.png" new file mode 100644 index 000000000..7c9b1ae97 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-26-13.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-26-55.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-26-55.png" new file mode 100644 index 000000000..8c7977149 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-26-55.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-27-30.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-27-30.png" new file mode 100644 index 000000000..09ed9eb7e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-27-30.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-28-20.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-28-20.png" new file mode 100644 index 000000000..e9c9877f3 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/2023-08-15-13-28-20.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/index.html" new file mode 100644 index 000000000..c2ae8e133 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-045-\346\234\237/index.html" @@ -0,0 +1,17 @@ +机器文摘 第 045 期 +

机器文摘 第 045 期

机器文摘 第 045 期

机器文摘 第 045 期

长文

基于浏览器 JavaScript 堆快照的网页爬虫

基于 JavaScript 堆快照的网页爬虫

本文作者介绍了一个实现网络爬虫的新思路,据称已在生产上使用了一段时间,且效果不错。

比较典型的网络爬虫在爬取数据时,大都采用解析网页 DOM 的方式,或直接通过 HTTP 请求流直接解析,或使用无头浏览器进行解析。

但现在这项技术已经被很多网站、平台人为设置很多障碍,比如增加很多随机的嵌套等等。

作者某天福至心灵,想到一个点子。

利用浏览器提供的 JavaScript 内存堆快照功能,将内存里的全部信息扒下来,然后根据对应的 JavaScript 对象属性,按图索骥去找到真正需要的数据。

这种方法比较狠的地方在于,直接从后台的数据结构下手,跳过了对页面 DOM 的分析和拆解,而且据作者说,网站即便想通过混淆此类数据在内存中的属性名称来进行防御,其工作量还是相当大的。

所以,可能短期内无能为力。

作者说,也许全面转为 Web Assembly 才能彻底禁止他这种爬虫。

项目源码在这里

Intel CPU 的“崩溃攻击”漏洞

intel cpu 有一个崩溃攻击漏洞,标识为 CVE-2022-40982,利用此漏洞可以在虚拟机里窃取共享同一个物理 CPU 的其他虚拟机的数据。

这个漏洞可以让恶意程序在本机运行后窃取如密码、加密密钥、以及个人电子邮件等私人数据。

恶意的云计算客户可以利用 Downfall 漏洞从与其共享同一台云计算机的其他客户那里窃取数据和凭据。

据文章作者(也即漏洞发现者)所说,该漏洞存在于 Intel Core 6 代到 11 代 CPU,并且研究人员发现存在通过 Web 网页浏览进行攻击的可能性。

作者开放了一部分用于测试攻击的代码在此

利用树莓派的 GPIO 发射无线信号

原来树莓派的 GPIO 还能干这个,这位老哥使用树莓派的 GPIO 接口直接进行无线电波发射(没错,就是随便扯出一根线就可以当作天线了)。实现了基于树莓派的微型电台。

这得益于 rpitx这个开源项目,项目本来是为了研究和学习一些无线电原理,不过后来逐渐成为一些 SDR 爱好者必不可少的工具了。

我上次看到一个小哥使用 RTL-SDR 录制汽车遥控器信号,然后使用树莓派重复发射出来,成功实现了自家汽车的解锁

资源

  • water,一个在网页里模拟流体动画的 Demo,使用 Haxe 语言编写。源码在这里 +

    Haxe 是一种跨平台的开源编程语言,在其官方网站上称其为"universal language"。

    它可以用于开发多种平台(如Web、移动、桌面等)的应用程序。

    Haxe 提供了强大的静态类型系统,并支持多种编译目标,包括但不限于 JavaScript、C++、Java、C#、Python 等。

    感兴趣的话,这里也有一份 Haxe 的在线教程

  • Fooocus,ControlNet 作者开源的一款新的 AI 画图工具 ,搭建起来比 Stable Diffusion webui 稍微方便了一点,相当于整合包。 +

  • 原来 HTML5 有一个 <progress></progress> 标签,直接写这个标签,不加任何属性的话,就是一个加载动画,非常适合在页面里临时需要一个进度、状态展示的时候。 +

  • 阮一峰老师的 Typescript 教程,发布了。 +

据老师自己说,刚开始也是抗拒的,觉得TypeScript 就是为 JS 语言添加静态类型系统。如果真需要静态类型,可以考虑使用其他更成熟的语言(比如 Rust 和 Java),再编译成 JS(wasm 模块),何必新学一门语言呢。

但是后来发现 TypeScript 越来越流行,成为前端开发的主流工具,各种项目纷纷移植过去。

我虽然对 TypeScript 仍然持保留态度,但是阮老师写的技术书籍读起来都很轻松易懂,所以觉得还是有必要收藏一下​​​。

  • stable-diffusion-webgpu,在网页里运行 AI 画图模型。 +

    基于 webgpu 技术,无需部署,直接在网页里运行。我试了一下,在我的 1080 8G 显存的显卡上 ,可以跑动,但是速度一般。

    上面的图是我只跑了 8 个 steps 的结果。。。 ​​​

观点

AI 画图的品质

为了验证之前关于“模特很可能被AI取代”的想法,自己动手部署 Stable Diffusion webui 测试了一些模型。根据网友分享的提示词尝试生成了一些图片。

感觉效果比我几个月之前体验时又有了不少提升,配合各种微调模型和 LoRA 模型可以生成照片质感和光影的图片。

虽然人物表情和姿态还有些僵硬,不过我相信这是我没有合理调整各个参数以及充分发挥插件性能导致。

多进行尝试和练习,应该能够生成更逼真、自然的照片。

信息的维度

+最近看了一些线性代数相关的知识,在向量、矩阵的各种计算中逐渐有了一些感悟:

古代“老子”思想中的“道”很可能是无限维的,你的任何表达都是对它的一种投影,也就是降维了。所以才是“道可道,非常道”。

每个人都想用最简单的框架去理解世界,将多维的信息硬生生地将为一维。

这样的后果便是,盲人摸象、管中窥豹、一叶障目,不同的观点争得不可开交。

所以在接收时也应该尽量按自己掌握的其它维度进行升维还原,任何信息都不可孤立看待。

如果能从多维信息得视角去认知世界,也许会有转机,这多少就有点儿“阴阳互生、一分为三”的意思了。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-28-48.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-28-48.png" new file mode 100644 index 000000000..304721e0a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-28-48.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-29-10.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-29-10.png" new file mode 100644 index 000000000..acd0bf2f9 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-29-10.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-29-37.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-29-37.png" new file mode 100644 index 000000000..454a361d8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-29-37.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-30-01.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-30-01.png" new file mode 100644 index 000000000..ae1c1dd8f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-30-01.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-30-29.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-30-29.png" new file mode 100644 index 000000000..26fdbd2fa Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-30-29.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-30-43.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-30-43.png" new file mode 100644 index 000000000..f2f1c16b7 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-30-43.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-31-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-31-23.png" new file mode 100644 index 000000000..8fa6ef29b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-31-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-32-04.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-32-04.png" new file mode 100644 index 000000000..bfd8737b8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-32-04.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-32-17.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-32-17.png" new file mode 100644 index 000000000..95d158853 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/2023-08-22-13-32-17.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/index.html" new file mode 100644 index 000000000..5f2448fcf --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-046-\346\234\237/index.html" @@ -0,0 +1,32 @@ +机器文摘 第 046 期 +

机器文摘 第 046 期

机器文摘 第 046 期

机器文摘 第 046 期

长文

Windows 的任务管理器

如果你喜欢使用 Windows 任务管理器来查杀那些不安分的进程,并且跟我一样讨厌他们乱跳(尤其在按照资源占用排序时)。你可以按下 Ctrl 键,它就会神奇地停止更新直到你松开 Ctrl。

Windows 操作系统有一种魔力,就是哪怕你用了将近 20 年,还是会有你不知道的快捷键或者快捷操作。这些东西有时候能带来一些惊喜。

具体介绍可以看这里:暂停 Windows 任务管理器

Linux 内核最初版的解析

最新版本的 Linux 内核,其源码规模已经飙升至 3600 万行,想要深入细节去了解它十分吃力。

而Linux 的第一个版本 v0.01 却非常小巧。

刨去注释和空行的话,也就 8 千来行代码。

这么小的代码结构,足够理解操作系统的精髓。

这篇探索 Linux v0.01 d的内部结构,可以带你像参观历史博物馆那样去见证曾经的 Linux。

我记录了一些有意思的地方:

1、v0.01 只有 66 个系统调用,用于支持文件管理和进程管理,分别是:

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+
access acct alarm break brk chdir chmod
+chown chroot close creat dup dup2 execve
+exit fcntl fork fstat ftime getegid geteuid
+getgid getpgrp setsid getpid getppid
+getuid gtty ioctl kill link lock lseek
+mkdir mknod mount mpx nice open pause
+phys pipe prof ptrace read rename rmdir
+setgid setpgid setuid setup signal stat
+stime stty sync time times ulimit umask
+umount uname unlink ustat utime waitpid write
+

其中 mount 调用啥也没干,直接返回了。

2、直接写死代码绑定 Intel 386 平台。至今对于 PS/2 接口的键盘、ATA硬盘、VGA显卡等标准硬件的驱动代码还是写死在内核里(而不是放在drivers文件夹)。

3、系统崩溃处理代码只有 5 行:只实现了打印一句“我不行了”,然后进入死循环for(;;);

LLaMa.cpp 是怎样做到的?

LLaMa.cpp 是一个令人惊叹的项目,在它之前没有人能够在低端消费设备上成功运行 Meta 开源的人工智能模型 LLaMa ,因为那需要太多的硬件资源。

但是 LLaMa.cpp 的横空出世使得在 M2 Macbook Pro、Android Pixel5 手机甚至树莓派上运行 LLaMa 的 7B 模型成为可能。

这是怎么做到的?

带着这个疑问,有网友深入研究了这个项目,并写下了这篇How is LLaMa.cpp possible?以解释原因。

作者认为主要得益于对模型参数的量化,降低模型参数的精度,从 FLOAT16 减小到 INT4。使得 LLaMa.cpp 能够以较少的计算资源甚至只依赖 CPU 的情况下加载大模型。

逐渐觉得微软比谷歌良心

曾经微软是技术黑客的公敌,被不少人视为反对技术创新、技术开放的最大反派。

不过随着时间的推移,以及微软逐渐在开源社区所做出的努力。这一现象有所好转。

近期在 HN 上有位网友很扭捏地承认:现在他对微软的感觉要比对谷歌好很多

他列举了一些关于两家公司的对比,包括发布的产品、主观的优劣评价等等。

为了抵制微软,他已经十多年没用 Windows 了,但貌似微软的其他产品“很香”(VS Code、Github、ChatGPT等)。

并表示最近正在寻摸租一个云存储,大概率也会用微软的 onedrive 而不是谷歌的 Google drivers。

对此我也有类似感觉,不过我对谷歌的不信任起始于十年前谷歌将 Google reader 停掉,而自从微软推出 WSL 后,我更是觉得微软在产品上越来越实在了。 +

资源

tailwindcss 的小抄

tailwind 这个 css 框架之所以能够很快流行起来,主要原因就是它解决了一个之前很多人没有太注意的问题,即 CSS 的“正交性”。

之前 CSS 实现一个效果,可以有 N 种方法,外加各种奇技淫巧,但在使用 tailwind 之后,针对特定效果都有了最优实践路径,而且还可以很容易组合。

不过由于它的类分的太细太碎,导致刚开始的时候会有一些不容易记忆。

这里有一份 tailwind 的小抄,适合初学者收藏,方便随时查阅。

在浏览器中运行的 vim

vim.wasm,在浏览器中运行的 Vim,不是插件。

使用 wasm 技术直接编译移植的 Vim Editor 源码,效果跟原生程序几乎一样。

使用 WebAssembly 给 Vim 提供一个新的 GUI 前端(类似 GVim)。

为了编译通过,作者在源码里禁用了很多 Wasm 不支持的特性,如:fork(2)、PTY 等。

可在这里体验:https://rhysd.github.io/vim.wasm/

无隐私问题的 pdf 工具网站

这个pdf工具可以尝试一下,跟其他pdf 工具网站不同,这个网站借用 WebAssembly 技术将很多工作放在浏览器客户端执行,用户无需上传自己的pdf到网站,即可执行处理工作,包括:加密、解密、拆分、合并等常用功能。 ​​​

深入理解操作系统的小游戏

这个自称史上最极客的小游戏,是国外一位计算机科学教授给学生们写的一个小游戏,假设玩家是一个“操作系统”,在游戏里玩家需要不停地进程调度、内存页交换等操作,一旦调度不合理就会激怒用户导致“玩家”也就是操作系统被重启,游戏就 GAME OVER 了。

游戏使用 Python 编写,作者将其编译为 WebAssembly 以嵌入网页,这里可以直接在线体验: https://drfreckles42.itch.io/youre-the-os

观点

学习技能最有效的练习手段是“复刻”

这是我前两天尝试用 CSS 临时写个页面效果想到的。

我虽然也了解了CSS 语言的一些基本知识,但是在具体实操的时候仍会感到无从下手。

与下棋类似,只知道“规则”但是没有“套路”。

后来干脆找了几个目标页面,按照自己的想法去还原,渐渐能够摸到一些“套路”的边缘,最终实现了自己想要的效果。

于是我想: 在学习一项技能的时候,“复刻”、“抄袭”、“借鉴”、“致敬”,都没有问题,应该把它作为最主要的练习手段。

因为“抄”是最经济的学习方法了。

不仅仅是编程技能,艺术方面更是如此。

比如在编曲学习的时候有一种练习叫“扒带”,就是找一首歌,然后你通过你的工具和技巧制作一份完全一样的作品,尽量做到百分百还原。

很多“大师”都是在这个过程中,遇到问题解决问题,领悟到很多只能意会不能言传的技巧,而这些领悟是无论如何也无法仅仅通过“看”和“听”获得的。

另外,人们练字、绘画也是从临摹开始,一般在熟练之后才能突破,才又自成体系。

忍耐守恒

怕麻烦的人,主要是不能忍受一些事情。

然而正是因为这些不能忍受,所以注定要忍受一些其他的事情。

人生就是这样,比如无法忍受投资带来的风险,就得承受现金贬值;不能面对创业的压力,就得忍受按时上班的束缚。

对于这种现象,我将之称为“忍耐守恒”。 ​​​

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-17-36.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-17-36.png" new file mode 100644 index 000000000..604bb48d2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-17-36.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-17-49.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-17-49.png" new file mode 100644 index 000000000..48ffe52be Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-17-49.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-18-25.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-18-25.png" new file mode 100644 index 000000000..8299d9c14 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-18-25.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-18-47.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-18-47.png" new file mode 100644 index 000000000..58e57e513 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-18-47.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-19-03.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-19-03.png" new file mode 100644 index 000000000..1a6b8f14c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-19-03.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-19-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-19-26.png" new file mode 100644 index 000000000..de266fdad Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-19-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-19-42.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-19-42.png" new file mode 100644 index 000000000..2b44d13f7 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-19-42.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-20-00.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-20-00.png" new file mode 100644 index 000000000..d93d52911 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-20-00.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-20-25.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-20-25.png" new file mode 100644 index 000000000..61e472b19 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/2023-08-29-13-20-25.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/index.html" new file mode 100644 index 000000000..6088c385f --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-047-\346\234\237/index.html" @@ -0,0 +1,12 @@ +机器文摘 第 047 期 +

机器文摘 第 047 期

机器文摘 第 047 期

机器文摘 第 047 期

长文

业余爱好者痴迷于工具,专业人士注重技能

业余爱好者痴迷于工具,专业人士注重技能

以原声吉他为例。在数字音乐制作和合成器盛行的时代,这个单独演奏的乐器可能显得有点古老。然而,在熟练音乐家的手中,它变成了一个充满迷人旋律和触动灵魂的载体。它甚至可能为更大的创意提供灵感,如果你直接跳到现代合成器就有可能会错过这些。原声吉他的简单性促使艺术家专注于演奏的细微之处,完善他们的指弹技巧,并通过每一次弹奏传达情感。真正的魔力不在于吉他本身,而在于将其演绎得生动活泼的音乐家的技艺。

这篇文章读来深有感触。

在解决问题的时候,我总是忍不住问自己,我这个方法是最优的吗?我使用的工具是不是最合适/最好的?

这种心理,常常使我陷入对最佳实践和完美工具的追求中,而忘记了解决问题本身。

时间久了,工具积累一大堆,但每个都未曾发挥其真正作用,一边老工具在吃灰,一边继续寻找新工具。

差生文具多。

正如文章中所说:真正的高手明白,应当拿起手里已有的工具,先行动起来。在这个过程中如果有机会创造美好的事物,好的工具自然会出现在眼前。

CPU 的指令分支预测

现代的 CPU 基本都具有指令分支预测的特性,通过猜测后续会执行的指令分支,提前运行一些指令和设置状态,可以有效利用 CPU 的执行资源,提升效率。

不过,如果预测准确的话效率提升十分明显,但是如果预测错误,CPU 就要多做一些事情(刷新后续预测的指令和相关的状态),随着现代 CPU 中指令流水线越来越复杂,这种代价也变得越来愈大。

在编程的时候,编写一些对于 CPU 分支预测友好的代码,能够对性能产生极大的影响。

这篇对于 CPU 的分支预测,我们能做什么耐心地从 CPU 的分支预测机制讲起,通过具体的代码举例,讲解了怎样让编写的代码对 CPU 分支预测这类优化更加友好。

SSH 命令详解

SSH 命令详解,一篇对 SSH 命令的参数介绍十分详细且易懂的文章。

通过举例让我彻底弄清楚了基于 SSH 的端口转发。

另外还知道了可以在已有的 SSH 连接上执行补充命令,以实现不断开终端的情况下将远程主机上的端口转发到本机访问。 ​​​

资源

开源的房子

wikihouse,是一个开源房屋建造网站,房子的图纸、模型均可从网站上下载,里面有各式各样的房屋建造资料,任何人都可以据此增删、设计、制造、组装自己的建筑。可以理解为建筑界的 github。 +​​​

关掉 Edge 浏览器新增的圆角样式

Edge 浏览器的最新更新里,给所有页面强制增加了一个圆角边框,看起来很不习惯(丑陋)。

经过研究,我发现,如果想恢复到之前的样子,可以在设置外观选项里关闭该特性。

我已经关闭,并果断给这个功能特性反馈了负面评价。

Hello World

Hello World ,这个仓库收录了几乎所有编程语言(997种)的 Hello world 程序。 ​​​

前端开发代码大全

30secondsofcode

这个网站有大量可复用的代码片段,主要是 Javascript、CSS、HTML 、Python 等语言的内容,可以覆盖 Web 应用开发全栈。

里面收录的代码段或者文章都很清新,每个都配有细心的解释,具有良好的实用性。 ​​​

关于 Win10 的锁屏睡眠时间

我在使用 Windows10 的时候发现一个问题。

无论我将电源设置里的睡眠时间、显示器空闲关闭时间设置多长,锁屏后系统都会在 1 分钟之后关闭显示器。

这会带来一些不方便,并且让人困惑。

在经过一番研究搜索之后,找到了如下解决方案(Windows就是这么喜欢在注册表隐藏设置):

1、打开注册表编辑器后。

2、定位到:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\8EC4B3A5-6868-48c2-BE75-4F3044BE88A7

3、修改右侧的Attributes 数值为2 (初始值为1)

4、再打开“编辑电源计划”时会发现多了一个选项“控制台锁定显示关闭超时。

红警2游戏整合包

红警2 的民间整合包,支持 win7 到 win11。整合大量资源,傻瓜式一键安装。 ​​​

经过我的测试,前面链接页面里提供的安装包里带有额外的广告脚本,在使用时可使用 7z 等压缩软件直接打开该自解压包,选取主文件夹拷贝出来即可。

观点

隐形的门槛

也许每个领域都存在一个隐形的门槛,无论是你学会一种语言,还是掌握一种能力,哪怕是打通一个游戏,只要你跨不过那个门槛,那么无论你尝试多少次,都会在同样的水平下无功而返。相反,一旦跨过后,那就是一马平川,你有了在那个新世界周游的能力。这当然不是说你不会再遇到困难,而是说,你不再有那种尝试了无数次,带着同一种感受离开的感觉。剩下的区别只是更多经验的积累,是熟练度的问题,因为你已经在那个轨道上了,你已经拿到了入场券。

人生可以被隐喻成一个有着自然消退机制的RPG体系,累积10000经验可以升那关键的一级,那么先前你无论你多少次到达5000,6000,9000都不行,因为熟练度会反复消退到1000,2000的水平。而我知道,很多人就是无数次的卡在了那9000以内,但每次都要从1000,2000这个位置开始。这个和自我接纳也没有关系,因为你知道你遇到的困难并不是基于你对自己的苛求,你的困难在于你无法为自己在乎的事情付出真正的努力,无法将自己的活力与热情持续的灌注在同一个点上,但你隐约知晓跨过那10000的门槛,是你更重要的人生福祉。

来自微博 @崔庆龙_

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-20-05.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-20-05.png" new file mode 100644 index 000000000..aa403f959 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-20-05.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-20-30.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-20-30.png" new file mode 100644 index 000000000..206464e07 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-20-30.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-20-50.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-20-50.png" new file mode 100644 index 000000000..a48486e69 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-20-50.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-21-17.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-21-17.png" new file mode 100644 index 000000000..78f0302c4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-21-17.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-21-28.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-21-28.png" new file mode 100644 index 000000000..3b809aab4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-21-28.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-21-45.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-21-45.png" new file mode 100644 index 000000000..3280b627f Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-21-45.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-22-11.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-22-11.png" new file mode 100644 index 000000000..19a4bb20d Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/2023-09-05-13-22-11.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/index.html" new file mode 100644 index 000000000..59a4d1d54 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-048-\346\234\237/index.html" @@ -0,0 +1,15 @@ +机器文摘 第 048 期 +

机器文摘 第 048 期

机器文摘 第 048 期

机器文摘 第 048 期

长文

关于 Python 语言的一些统计数字

关于开源 Python 仓库的一些有趣统计,有人克隆了 PyPI 网站里所有 Python 包对应的 Github 仓库,并对这些仓库里的全部文件进行了分析和统计。

1、排名前三的语法特性分别是:列表推导、fstring字符串格式化、注解;

2、代码中大约包含有超过 2 万 5 千个密钥明文,泄露最多的是访问 Google API、OpenAI API和腾讯云 Secret ID;

3、截止到 2023 年 8 月,所有源码加起来已超过 60TB ,文件数量超过 10 亿。

Wasm 技术让数据库执行 AI 模型

使用 Extism 将 WebAssembly 引入 PostgreSQL

这篇文章的作者介绍了一种方法,可以使用 Wasm 技术通过扩展插件的方式给 PostgreSQL 数据库增加 UDF (用户自定义函数),从而实现调用 AI 模型的能力。

BitLocker 硬件加密能破解吗?

BitLocker 是 Windows 下的存储加密技术,用于保护硬盘中的数据安全。

未经解密的硬盘即使遗失或者被接入其他系统也无法进行读取。

这在极大程度上带来了数据安全(不过仍有不少用户在不知情的情况下开启了 BitLocker 且未保存密钥,在重做系统的时候发现硬盘无法解密,数据无法恢复。。欲哭无泪。。)。

然而这种加密方式也不是绝对安全,国外有技术爱好者对此进行了挑战,并使用一台逻辑分析仪成功绕过了加密。

这篇文章进行了详细的记录

主要原理为:在系统开机启动过程中的某个时刻,加密芯片和 CPU 之间传输了未加密的信号。使用逻辑分析仪捕获该信号可以逆向出加密密钥。

资源

监控网页信息变化的工具

changedetection,一个监控网站变化的工具。

帮助用户密切关注商品打折、股票行情、政策发布等信息变动。

支持通过网页可视化的方式指定监控页面区域。

通过邮件、即时聊天软件、API调用等多种方式推送信息。可使用 Docker 部署,或者本地 Python 环境部署。

Switch 模拟器

Ryujinx 一个用c# 写的开源 switch 模拟器,该模拟器旨在提供卓越的准确性和性能、用户友好的界面以及稳定的版本构建。 ​​​

文字缩写快捷键工具

为了减少打字量,国外这哥们写了个脚本将日常用语全部缩写了,只需敲入缩写字母,脚本自动完成完整句子的键盘输入。

比如: +st => something +ab => about +hw => hardware +sti => sometime

据小哥自己统计,使用这个脚本以后他已经减少了一半的键盘敲击量。

项目名叫 compress 目前已开源,如果你有兴趣,改成支持中文也不是不可以。

Canvas 手册

Canvas 是网页中用于图形绘制的基本元素,结合 JavaScript 可以实现各种复杂的图形效果和交互动画。我之前都是每次用到了的时候现去翻文档,对它的每个 API 都是一知半解。这里有一个Canvas 手册,详细介绍了 Canvas 的各种调用接口。适合希望深度使用及系统学习 Canvas。

观点

“不要重复造轮子”是人为设置的一种限制

遇到需求不能满足的情况,是去“寻找轮子”还是“动手创造轮子”,这是两种不同的思维习惯。

“寻找轮子”往往意味着寻找已有答案,将问题看为一种正常的状态,是“自古以来”、是“从来如此”。

思维定势一旦形成,就很难改变,让人成了那个在沙漠中让美女帮他牵住骆驼的矮子。

动手创造者往往是发现这种问题的人,他们不循规蹈矩,他们 Think different,是改变世界的人。

“不要重复发明轮子”,这个原则用于工作中确实比较安全,他保证了不会浪费资源,并且避免了一定的技术风险。

但也同时拒绝了伟大的创新。

所以不要被这句话束缚,尽管去做自己的轮子。

哪怕它一开始很丑。

你的轮子必将使你与众不同,使你拥有不一样的视角,成为那个动手创造的人。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-33-44.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-33-44.png" new file mode 100644 index 000000000..9a55cc039 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-33-44.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-06.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-06.png" new file mode 100644 index 000000000..359bd2efa Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-06.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22.f89e18573d495e5017a009fd6cd94e57.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22.f89e18573d495e5017a009fd6cd94e57.png" new file mode 100644 index 000000000..30d68b768 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22.f89e18573d495e5017a009fd6cd94e57.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22.f89e18573d495e5017a009fd6cd94e57_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_250x150_fill_box_smart1_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22.f89e18573d495e5017a009fd6cd94e57_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_250x150_fill_box_smart1_3.png" new file mode 100644 index 000000000..89cdafd09 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22.f89e18573d495e5017a009fd6cd94e57_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_250x150_fill_box_smart1_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22.png" new file mode 100644 index 000000000..30d68b768 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_120x120_fill_box_smart1_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..a2e232944 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_1600x0_resize_box_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_1600x0_resize_box_3.png" new file mode 100644 index 000000000..5f59919fa Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_1600x0_resize_box_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_800x0_resize_box_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_800x0_resize_box_3.png" new file mode 100644 index 000000000..72755e8d7 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_800x0_resize_box_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-51.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-51.png" new file mode 100644 index 000000000..32235eafa Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-34-51.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-35-09.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-35-09.png" new file mode 100644 index 000000000..fe627bb86 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-35-09.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-35-24.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-35-24.png" new file mode 100644 index 000000000..c1ff9f06c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-35-24.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-35-35.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-35-35.png" new file mode 100644 index 000000000..85e96e580 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/2023-09-12-13-35-35.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/index.html" new file mode 100644 index 000000000..542d7df02 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-049-\346\234\237/index.html" @@ -0,0 +1,14 @@ +机器文摘 第 049 期 +
Featured image of post 机器文摘 第 049 期

机器文摘 第 049 期

机器文摘 第 049 期

机器文摘 第 049 期

长文

在 Linux 环境里执行 Windows 应用程序

最近遇到一个难以启齿的需求,服务器是 Linux 环境,但是某项服务功能却需要执行一个 Windows exe 文件。

不得已才想到要求助 Wine 这个经典中间层,据说可以使的 Linux 兼容大部分的 Win32 程序。

但是又不想污染服务器的其他环境,于是选择在容器中运行。

在网上找到了这篇《利用 Docker 容器和 Wine 在 Linux里运行 Windows 程序》,按照文中介绍的步骤成功实现了需求。

基本步骤: +1、根据文章提供的 Dockfile 构建镜像; +2、运行镜像并注意配置运行容器的环境变量; +3、执行所需的 exe 程序。

Windows 系统是怎样进行引导的

前不久,我在给笔记本更换大容量固态硬盘的时候,由于不愿重做系统,使用了硬盘克隆功能,将原盘整体信息直接克隆到新硬盘。

结果克隆成功并替换安装硬盘之后,却没能正常引导进入 Windows,而是进入了一个类似 PE 系统的界面(猜测是原盘中厂家自制的),并告知我由于检测到硬件更换,拒绝引导,并建议我选择恢复系统。

我猜测之前的隐藏分区可能有笔记本厂家做的一些特定引导程序,才导致这样的情况。

我对系统引导的理解还停留在 MBR 分区表大面积应用的阶段。于是尝试删除了隐藏分区,并手动将系统盘分区设置为了 “激活”分区(事实上这时候已经错了,因为 GPT 分区表方式下无法采用这种引导方式了)。

结果系统干脆直接无法引导。出现这种情况,我之前的知识储备显然不够用了。

经过一番折腾和搜索,我才得知现在 Windows 8 及以上版本操作系统的电脑所采用的方式是 GPT 分区表 + UEFI 引导。

也就是说硬盘上需要单独开辟一个分区存储负责进行操作系统引导的工作。这个分区平时对于操作系统的资源管理器不可见(但磁盘管理中可以看到),由主板上的 UEFI 程序(这个程序可以理解为 BIOS 的升级版)进行访问和管理。

了解这个方式之后,就简单了,重新使用工具修改 GPT 分区并制作专用引导分区即可。

最后,为了弄清这跟之前的 MBR 引导方式有什么区别,我找到了一位运维工程师总结得较到位的文章《Windows系统开机引导顺序简述及运维小结》

500 行代码写一个 C 编译器

500 行 Python 代码写一个 C 编译器

作者立下这个 flag 之后才发现任务有多难。

主要是代码行数太少了,如果使用传统手段实现,可能这点儿代码量还不够写个语法分析器的。

于是作者主动放弃了 AST (抽象语法树)的构建,采用 Token 提取和指令生成“一遍过”的方式,实现了一个相当“简洁”的 C 编译器。

资源

假装弹钢琴

touchpianist,在线弹钢琴的网站(也提供手机 App 版),可以让你假装钢琴大师,只需要按键盘上的任意键,旋律就会自动演奏,不过你要控制敲击键盘的速度,以匹配原曲的节奏。我弹了一下,默认曲目是贝多芬的《月光奏鸣曲》,差点儿被自己陶醉了。 ​​​

Bun V1.0

bun-v1.0,拳打 node , 脚踢 deno 的 JavaScript 运营环境 bun 推出了 1.0 版本。主打一个“All in one”,号称可以一次性取代一揽子工具:node、npx、npm、webpack、tsc、babel、jest。一个工具包揽了运行、打包、包管理、转译、测试等所有事情,且速度是 nodejs 的 3 倍。

对于这种吹的比较厉害的技术,保持关注,谨慎使用吧。

开源基于 LLM 知识库平台

FastGPT - 基于 LLM 大模型的 AI 知识库问答系统。提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景。项目在 Github 开源,采用技术栈: NextJs + TS + ChakraUI + Mongo + Postgres(Vector 插件)。支持 GPT、Claude、Spark、ChatGLM 等多种 LLM 模型。

开源基于 LLM 数据可视化平台

lida,微软出品的数据可视化工具库,特点是基于 LLM 对话模型进行生成,其生成的可视化代码支持多种可视化后端的语法,包括 matplotlib、seaborn、d3等。 ​​​

观点

编程是一种体育锻炼

编程除了是一种可以以之谋生的专业技能,对于那些真喜欢编程的人来说,它还是一个心理疗愈工具。

编程能使人专注,进入“心流”状态比较容易,也容易让人的心态平和。

编程与体育锻炼一样,都是可以让人受益终生的活动。

—-来自@软件教书匠金旭亮

造成电子阳痿的一种因素

一个不容忽视的因素是现在游戏的加载速度,尤其是 PC 游戏。

我们被碎片化信息惯得一秒钟都不想等待。

每当想玩会儿 CS 或者地平线之类得游戏,光是等待游戏启动、地图加载等就足以让人放弃想玩的念头。

更别提有些游戏还有一些跳都无法跳过得开场引导视频。

所以我现在就算是玩也是偶尔打开模拟器玩一玩老游戏,带有状态存储,随时加载存档。

据说有一部分游戏主机(比如新一代 XBox)有类似笔记本电脑的睡眠功能,开机就玩,随时进入上次未完成的任务。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-08.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-08.png" new file mode 100644 index 000000000..3c8fad9e2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-08.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-23.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-23.png" new file mode 100644 index 000000000..4faad49e8 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-23.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40.c8cdff29c7b7342ba8a1887d5e923f8b.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40.c8cdff29c7b7342ba8a1887d5e923f8b.png" new file mode 100644 index 000000000..0b490fb57 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40.c8cdff29c7b7342ba8a1887d5e923f8b.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40.c8cdff29c7b7342ba8a1887d5e923f8b_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_250x150_fill_box_smart1_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40.c8cdff29c7b7342ba8a1887d5e923f8b_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_250x150_fill_box_smart1_3.png" new file mode 100644 index 000000000..10713c462 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40.c8cdff29c7b7342ba8a1887d5e923f8b_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_250x150_fill_box_smart1_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40.png" new file mode 100644 index 000000000..0b490fb57 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_120x120_fill_box_smart1_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..1d329783e Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_1600x0_resize_box_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_1600x0_resize_box_3.png" new file mode 100644 index 000000000..c597ab3e3 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_1600x0_resize_box_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_800x0_resize_box_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_800x0_resize_box_3.png" new file mode 100644 index 000000000..1c978a1f0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_800x0_resize_box_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-32-14.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-32-14.png" new file mode 100644 index 000000000..5561eef74 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-32-14.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-32-34.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-32-34.png" new file mode 100644 index 000000000..a8b970782 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-32-34.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-32-52.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-32-52.png" new file mode 100644 index 000000000..e72aa560b Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-32-52.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-33-10.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-33-10.png" new file mode 100644 index 000000000..78fc4a6b0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-33-10.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-33-21.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-33-21.png" new file mode 100644 index 000000000..3b9b212a4 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-33-21.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-33-35.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-33-35.png" new file mode 100644 index 000000000..0beb59f43 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/2023-09-19-13-33-35.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/index.html" new file mode 100644 index 000000000..f19b35488 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-050-\346\234\237/index.html" @@ -0,0 +1,39 @@ +机器文摘 第 050 期 +
Featured image of post 机器文摘 第 050 期

机器文摘 第 050 期

机器文摘 第 050 期

机器文摘 第 050 期

长文

十八世纪的光学电报网络

当年读《基督山伯爵》的时候,有一个让我震惊的科技。

主人公有一项复仇计划是破坏敌人的金融资产。计划采取的手段是收买了一个传递实时信息的人让其传递错误信息。

而具体传递信息的手段是,每隔一段距离设一座瞭望塔,每个塔上有一个人,向一个方向用望远镜观看,远方的上级瞭望塔会有人发射信号弹,一连串的信号弹代表一定的信息,然后这个人再原样发射一遍,让后方的瞭望塔看见。信息就这样一级一级传递下去。

信息经过编码,可以表达股票行情等信息,类似后来的电报系统,但是这是在十八世纪。

读过之后我就一直有疑问,不知道小说是否虚构了这种信息传递技术,直到前几天我发现了这篇文章:《十八世纪的光学电报网络》

里面详细介绍了在两百多年前人类就已经发明了“光学电报”系统,并建立起了巨大的信息网络。信息传递速度达到了惊人的 1380千米/每小时。

C 语言发展简史

要说 C 语言是计算机历史上最重要的编程语言应该不会有人反对吧。

作为大多数人编程入门的母语,C 语言具有语法简洁、高性能(贴近计算机底层)、使用灵活、适用范围广泛等特点。

虽然诞生于上个世纪 70 年代,但即便是在 2023 年的今天,C 语言仍然排在各大编程排行榜的考前位置,仍然是信息科技的重要支撑力量。

《C 语言简史》,由丹尼斯·里奇(C 语言之父)撰写,是一篇难得的介绍 C 语言的诞生和发展的历史性文献。

VB(Visual Basic)发展简史

前几天 HN 上有个从业近 30 年的老程序员发问:为什么 VB(Visual Basic)这么高效、好用的开发工具逐渐消失了?

被顶的最高的网友放出了《Visual Basic 从诞生到消失》这篇文章。

在上世纪 80 年代末 90 年代初,Windows 操作系统刚刚崭露头角的时候,VB 已经在萌芽状态了。而且已经具有非常先进的组件化、可视化、低代码等超前思想。并且发明了“控件”、“消息触发”等概念。

最初的版本与 BASIC 语言并无关系,只考虑了使用可视化开发并辅助简单的内嵌脚本,但是比尔·盖茨对 BASIC 十分热爱(毕竟那是微软起家的技术),亲自推动了组件化、可视化开发与 BASIC 语言结合,便诞生了 Visual Basic。

得益于超前的可视化开发理念,VB 极大降低了当时开发应用程序的门槛,涌现出一大批开发者。包括当时那些不得不转型给个人电脑开发程序的大型机编程工程师。

这一切在 VB 随着 Visual Studio 发布 6.0 的时候达到了顶峰。

转折点出现在微软为了应对 Java 的威胁而推出 .Net 公共语言运行时的时候,VB 也被纳入到这套体系里,被成为 VB.Net ,扩充了复杂的语法和继承、多态等高级特性。

对于那些真正喜欢 VB6 的人来说,这些都是唯恐避之不及的东西,更糟糕的是新的 VB.Net 无法兼容之前的代码,大量成果移植困难。

之后更是随着网络信息科技的发展,Web 编程逐渐取代了 Windows 桌面编程,VB 这个伟大的技术,被淘汰也就是顺其自然的了。

一个在网页里模仿 Excel 表格的故事

一位前端工程师,讲述了他在 2016 年受雇于 Uber(优步)时的一些开发往事

作为服务于数据工程师的内部研发团队,他所在的小组主要是给公司的数据分析人员提供内部工具,以便让他们能够更快地分析数据,更快的分析数据意味着更有可能在产品运营竞争里获胜。

然而数据分析人员总是抱怨工具不满足要求,主要是操作界面,因为他们非常习惯“Excel”,每次提需求的时候总是说:“你就做得跟 Excel 一样就行”。

作者最开始还试图跟用户解释要实现起来是多么困难,后来逐渐放弃了挣扎,并开始着手在网页里实现一个跟 Excel 一样的表格,而且他竟然实现了。

故事的后来有些伤感,作者提供的工具并没有使得 “Uber” 在跟嘀嘀的竞争中胜出,相反地,“Uber”在中国的业务还被“嘀嘀”收购了。

被用于数据分析的工具也被抛弃不再使用。

后来作者选择了将那个像 Excel 的表格代码放在了 Github 进行开源,地址在这里

资源

通用 Web 应用服务器

NGINX Unit,通用 Web 应用服务器。是一个轻量且多功能的应用运行时,作为一个单一的开源服务器,它提供了您的 Web 应用程序所需的基本组件:运行应用程序代码(包括 WebAssembly)、提供静态资源、处理 TLS 和请求路由。

Unit 是由 NGINX 团队成员从零开始创建的,以在运行时高度高效且完全可配置。最新版本是 1.31.0,于 2023 年 8 月 31 日发布。

绿色安卓 App 合集

绿色安卓app合集

这个网站收集了一大批良心 app,全部没有广告且不要求隐私权限。

几乎涵盖了日常使用的所有类型,包括艺术绘画、音乐播放器、笔记、文件管理、录音、拍照等。 ​​​

nuejs

nuejs,越来越多的人对前端开发的混乱感到不满了。不同的是有人选择抱怨,有人撸起袖子开干。nuejs 的作者觉得现在使用 React、Vue 等框架再加上若干服务端渲染框架,使得前端开发生态变得越来越复杂和掌握。于是自己动手开发了一个简单的轻量化框架,终极目标是构建一个简洁、高效的前端开发生态。

1024 字节的网页,可显示 3D 地球

1024 字节的 JavaScript,在网页中显示动画 3D 地球模型,页面动画显示的就是其源代码。

 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+
.<script>
+eval(z='p="<"+"pre>"/* ,.oq#+     ,._, */;for(y in n="zw24l6k\
+4e3t4jnt4qj24xh2 x/* =<,m#F^    A W###q. */42kty24wrt413n243n\
+9h243pdxt41csb yz/* #K       q##H######Am */43iyb6k43pk7243nm\
+r24".split(4)){/* dP      cpq#q##########b, */for(a in t=pars\
+eInt(n[y],36)+/*         p##@###YG=[#######y */(e=x=r=[]))for\
+(r=!r,i=0;t[a/*         d#qg `*PWo##q#######D */]>i;i+=.05)wi\
+th(Math)x-= /*        aem1k.com Q###KWR#### W[ */.05,0\
+x;)p+="   *#"/* b.        OQ####x#K           */[e[x++]+e[x++\
+]]||(S=("eval"/* l         `X#####D  ,       */+"(z=\'"+z.spl\
+it(B = "\\\\")./*           G####B" #       */join(B+B).split\
+(Q="\'").join(B+Q/*          VQBP`        */)+Q+")//m1k")[x/2\
++61*y-1]).fontcolor/*         TP         */(/\\w/.test(S)&&"#\
+03B");document.body.innerHTML=p+=B+"\\n"}setTimeout(z)')//
+

全球 IP 地址地理位置数据库

全球 IP 地址 地理位置数据库。含 IPV4 和 IPV6。 ​​​这篇文章里还介绍了构建 IP 地址地理数据库的实现原理和一套具有指导意义的实现方法。基本原理是:“互联网中的每个 IP 地址都由组织拥有或管理。可以向互联网注册机构查询WHOIS信息。”

观点

为什么 Facebook 的 PyTorch 占有率赢了 Google 的 Tensorflow

Pytorch 已经完全击败了 Tensorflow,成为 AI 开发框架的事实标准。Pytorch 一开始就专注于学术界,方向是把最牛的人吸引过来。而 Tensorflow 则倾向于软件工程炫技,做各种简单但是酷炫的功能。

最终专业化的 torch 击败了 tensorflow 。 我觉得​​​还有一个原因就是 Google 特别容易弃坑,Tensorflow 中间也切换过前后不兼容的 API。

越来越多的科技产品让人更好地欺骗自己

比如美颜相机、电影特效、游戏等,研发它们的主要目的就是让人们更好的实现自我欺骗和催眠。

东方文明为什么警惕科技(我个人不完全同意)

中国古代对于科技非常警惕和打压的原因,也许是古人早就意识到科技(或技术)力量很容易对人类造成强烈反噬。

观点来自 @​​​安东尼2001:量子自旋理论背后,是人类历史的轮回

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-34-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-34-26.png" new file mode 100644 index 000000000..ac055ae95 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-34-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-35-36.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-35-36.png" new file mode 100644 index 000000000..67b63be41 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-35-36.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-35-59.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-35-59.png" new file mode 100644 index 000000000..f8d969bf2 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-35-59.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20.1c29450e83f91d8a16fb1bc13c4ce80b.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20.1c29450e83f91d8a16fb1bc13c4ce80b.png" new file mode 100644 index 000000000..33610694c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20.1c29450e83f91d8a16fb1bc13c4ce80b.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20.1c29450e83f91d8a16fb1bc13c4ce80b_hu7d1abb09c26e9e15004a42a4629a2c00_137410_250x150_fill_box_smart1_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20.1c29450e83f91d8a16fb1bc13c4ce80b_hu7d1abb09c26e9e15004a42a4629a2c00_137410_250x150_fill_box_smart1_3.png" new file mode 100644 index 000000000..bc368f79a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20.1c29450e83f91d8a16fb1bc13c4ce80b_hu7d1abb09c26e9e15004a42a4629a2c00_137410_250x150_fill_box_smart1_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20.png" new file mode 100644 index 000000000..33610694c Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_120x120_fill_box_smart1_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..66cb333b0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_1600x0_resize_box_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_1600x0_resize_box_3.png" new file mode 100644 index 000000000..b6a64f909 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_1600x0_resize_box_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_800x0_resize_box_3.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_800x0_resize_box_3.png" new file mode 100644 index 000000000..af76b0cdd Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_800x0_resize_box_3.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-35.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-35.png" new file mode 100644 index 000000000..4acced501 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-35.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-56.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-56.png" new file mode 100644 index 000000000..4509e468a Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-36-56.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-37-13.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-37-13.png" new file mode 100644 index 000000000..acf365da0 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-37-13.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-37-26.png" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-37-26.png" new file mode 100644 index 000000000..2042ff835 Binary files /dev/null and "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/2023-09-26-13-37-26.png" differ diff --git "a/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/index.html" "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/index.html" new file mode 100644 index 000000000..d8e7fc875 --- /dev/null +++ "b/p/\346\234\272\345\231\250\346\226\207\346\221\230-\347\254\254-051-\346\234\237/index.html" @@ -0,0 +1,14 @@ +机器文摘 第 051 期 +
Featured image of post 机器文摘 第 051 期

机器文摘 第 051 期

机器文摘 第 051 期

机器文摘 第 050 期

长文

基于 Github Pages 服务搭建个人博客

基于 Github Pages 服务搭建个人博客 +这是我自己写的一篇文章,发布在我的博客

搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。

但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。

经过多年的实践,现在已有越来越多的人选择了使用免费且易用的 GitHub Pages 服务来搭建个人博客。

然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。

他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。

这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。

本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。

人的大脑不是由爬行脑、哺乳动物脑、智人脑累加而成

心理学界有一个关于人类大脑流传很广的理论:人的大脑主要由三层不同能力的大脑构成,位于最核心的“爬行动物脑”、随着演化逐渐增加的“低级哺乳动物脑”,以及带来更多灵活性和语言能力的“高级脑”。

这种理论给人的感觉就好像人的大脑是像洋葱那样,由一个“旧”的大脑结构逐渐添加“新”大脑形成。

而且换句话说,青蛙和鱼仍然在我们身体里,我们只是有了更高级的东西把它们包裹了起来。

然而以上理论只是心理学家所提出的一种错误观点,近年来随着生物科学的发展,越来越多的科学家开始指出这种错误。

这篇《你的大脑不是洋葱,你的脑子里并没有一个爬行动物》是由神经科学家撰写,重点澄清了上述关于“三层大脑”的传言。

文章指出:之所以这种理论流传甚广,是因为大家普遍对“进化论”的进化过程有所误解,大多数人认为进化过程是一种先低级再逐渐高级的线性过程。然而事实的进化是一种同步辐射进程。

使用 Javascript 操作照片的 EXIF 信息

使用 Javascript 操作照片的 EXIF 信息 +可交换图像文件格式(EXIF)是一种规范,用于指定图像和声音的格式。它通过元数据存储技术细节,所谓元数据即用来描述其他数据的数据,例如相机制造商和型号、图像拍摄日期和时间等信息。

最初,EXIF仅用于JPEG和TIFF两种图像格式。然而,如今,其他文件格式如PNG、WEBP或HEIC也支持EXIF以用于元数据。

本文将重点关注JPEG格式,探究其内部结构,然后展示如何在浏览器环境中通过JavaScript读取和更新相关的元数据。

CSS 的自定义缓动曲线

使用 linear() 函数实现惊人的 CSS 缓动动画,随着新的 CSS linear() 缓动功能的出现,我们可以创建自然感觉的动画和过渡的可能性大大扩展。Jhey Tompkins 在本文中介绍了 CSS 缓动的当前状态,并演示了 linear() 函数令人期待的特性。 ​​​

通过放大 ROM 芯片搞破解

gbrom,通过拍摄 ROM 芯片的显微照片,将里面固件的二进制代码还原了出来,硬破解的世界就是这么朴实无华。

资源

免费开发云服务大全

free-for.dev。这个网站筛选收录了大量面向开发者提供的在线服务。收录的标准非常严苛:必须真正免费(免费试用的不算),如果套餐有时间限制,则至少提供 1 年的免费时间。收录的服务涵盖:云基础设施、内容托管、设计资源、字体、在线 IDE 、产品监控等。

在线提示词工厂

promptperfect,来自 JinaAI 的 PromptPerfect。能自动生成提示词。让用户可以逐步调试提示词,提供了各种参数。我试着让它帮我编写 AI 作画的提示语,感觉比我自己写的要靠谱一些。

更新的光线追踪教程

+《花一个周末学会光线追踪》,Ray Tracing in One Weekend,这本在线电子书出新版了。真正从零开始手把手教你通过光线追踪进行三维场景渲染。 ​​​事实上整个系列一共包括三部曲,继续阅读《光线追踪:下一周篇》,将添加纹理、体积(如雾)、矩形、实例、光源,并支持使用包围体积层次结构(BVH)来处理大量对象。最后,在《光线追踪:往后余生篇》中,将深入探讨创建一个非常严谨的光线追踪器所涉及的数学。

观点

专注是良药

不用过多考虑某些时间的投入是否值得,而陷入对时间流逝的焦虑。

如果做一件事情能够使得一个人在一段时间内保持专注,就是非常值得做的事情。

因为,“专注”本身就是收获成果的一部分。

能够在快节奏的生活中,找到不容易被分散注意力、不被各种诱惑干扰、可以集中精力投入的事情,已属难得。

“专注”做事看似简单,却是解决各种精神内耗的良药。

订阅

这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。

喜欢的朋友可以订阅关注:

  • 通过微信公众号“从容地狂奔”订阅。

  • 通过竹白进行邮件、微信小程序订阅。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\235\245\346\235\245\346\235\245\344\270\200\350\265\267\350\247\243\345\206\263\345\205\250\347\220\203\345\217\230\346\232\226\347\232\204\351\227\256\351\242\230/index.html" "b/p/\346\235\245\346\235\245\346\235\245\344\270\200\350\265\267\350\247\243\345\206\263\345\205\250\347\220\203\345\217\230\346\232\226\347\232\204\351\227\256\351\242\230/index.html" new file mode 100644 index 000000000..6bb01169f --- /dev/null +++ "b/p/\346\235\245\346\235\245\346\235\245\344\270\200\350\265\267\350\247\243\345\206\263\345\205\250\347\220\203\345\217\230\346\232\226\347\232\204\351\227\256\351\242\230/index.html" @@ -0,0 +1,11 @@ +来来来,一起解决全球变暖的问题 +

来来来,一起解决全球变暖的问题

来来来,一起解决全球变暖的问题来来来大家一起跳吧刚才在浏览科学松鼠会的网站,看到一个有趣的话题,假如地球上的所有人在同一时刻做同一件事情,会有什么样的后果?不过已经有喜爱恶搞的老外开始忽悠了。

故事说的是:

2006年有‘科学家’建议六十亿人在2006年7月20日11:39:13秒同时猛跳一次就能让地球轨道距离太阳远一些,这样就很好地解决了气候变暖的问题。

我初一看差点儿就相信了。www.evernote.com|Remember

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\242\246\347\245\236\347\273\217\350\241\260\345\274\261/index.html" "b/p/\346\242\246\347\245\236\347\273\217\350\241\260\345\274\261/index.html" new file mode 100644 index 000000000..c6970b79f --- /dev/null +++ "b/p/\346\242\246\347\245\236\347\273\217\350\241\260\345\274\261/index.html" @@ -0,0 +1,11 @@ +梦,神经衰弱 +

梦,神经衰弱

昨晚,编程时有一问题困惑很久,反复调试总是失败,无奈,只得放弃,怀着郁闷的心情睡去。

睡梦中恍恍惚惚仿佛有人叫我,原来是一白胡子老头,声音洪亮(略有东北口音),精神矍铄,约我相谈技术话题。

只见该老头唾沫横飞,指指点点,谈笑间从身后掏出一笔记本电脑,当场就把VC6启动起来。我定睛一看,我靠!这不就是我白天写了一下午的那些代码么?

老头边解说边将我的代码略为修改,我顿时感到豁然开朗,遂给我演示了一下运行效果,果然很流畅,问题得以解决。

惊喜使我从梦中醒来,回忆刚才的场景,起床倒了一杯水,拿起纸笔,十分虔诚地把刚才的思路记了下来,我甚至能记住当时的函数和变量的名称。

一大早到了公司,启动环境,将代码输入电脑,居然能编译通过!怀着激动的心情运行之,程序吭都没吭一声就崩溃了,看着巨大的“内存错误窗口”,我不禁哑然失笑,梦里的东西怎能当真呢,还以为有仙人助我,原来是我神经衰弱。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\250\241\344\273\277\346\234\200\350\277\221\346\257\224\350\276\203-\346\265\201\350\241\214\347\232\204\346\227\245\350\256\260\346\240\274\345\274\217/index.html" "b/p/\346\250\241\344\273\277\346\234\200\350\277\221\346\257\224\350\276\203-\346\265\201\350\241\214\347\232\204\346\227\245\350\256\260\346\240\274\345\274\217/index.html" new file mode 100644 index 000000000..c637494e0 --- /dev/null +++ "b/p/\346\250\241\344\273\277\346\234\200\350\277\221\346\257\224\350\276\203-\346\265\201\350\241\214\347\232\204\346\227\245\350\256\260\346\240\274\345\274\217/index.html" @@ -0,0 +1,11 @@ +模仿最近比较 流行的日记格式 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227.png" "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227.png" new file mode 100644 index 000000000..ef1cd3f96 Binary files /dev/null and "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227.png" differ diff --git "a/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_120x120_fill_box_smart1_3.png" "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..e0ba33a29 Binary files /dev/null and "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_1600x0_resize_box_3.png" "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_1600x0_resize_box_3.png" new file mode 100644 index 000000000..96259a4b0 Binary files /dev/null and "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_1600x0_resize_box_3.png" differ diff --git "a/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_800x0_resize_box_3.png" "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_800x0_resize_box_3.png" new file mode 100644 index 000000000..a8e12226b Binary files /dev/null and "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_800x0_resize_box_3.png" differ diff --git "a/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/index.html" "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/index.html" new file mode 100644 index 000000000..7a7a1d2fb --- /dev/null +++ "b/p/\346\255\243\345\274\217\345\210\207\346\215\242\345\256\266\347\224\250\347\224\265\350\204\221\347\232\204\344\270\273\347\263\273\347\273\237\344\270\272kubuntu/index.html" @@ -0,0 +1,11 @@ +正式切换家用电脑的主系统为kUbuntu +
Featured image of post 正式切换家用电脑的主系统为kUbuntu

正式切换家用电脑的主系统为kUbuntu

早上一睁眼,想起了这是星期天。于是我的老毛病就又犯了,睡不着了。

一个念头闪过脑海,感存重装系统玩儿吧,这几天在单位被windows7折磨的够呛,于是决定换掉家里的系统,不用windows了!

换成哪个linux发行版呢,一定要漂亮的,一定要省事儿的,于是选择了kUbuntu这个号称比windows7还要漂亮的发行版。

安装十分简单,去下载iso就行了。

一路“下一步”即可。

第一次使用kde4的桌面环境,很是惊艳,早听说kde4漂亮的一塌糊涂没想到竟会这么漂亮,开了特效之后更是华丽的令人发指。

好了,就这么定了,以后就用这个了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\257\217\344\270\252\345\221\250\345\205\255\347\232\204\346\231\232\344\270\212\346\230\257\346\210\221\344\271\220\345\205\264\345\244\247\345\217\221\347\232\204\346\227\266\345\200\231/index.html" "b/p/\346\257\217\344\270\252\345\221\250\345\205\255\347\232\204\346\231\232\344\270\212\346\230\257\346\210\221\344\271\220\345\205\264\345\244\247\345\217\221\347\232\204\346\227\266\345\200\231/index.html" new file mode 100644 index 000000000..931e97ba2 --- /dev/null +++ "b/p/\346\257\217\344\270\252\345\221\250\345\205\255\347\232\204\346\231\232\344\270\212\346\230\257\346\210\221\344\271\220\345\205\264\345\244\247\345\217\221\347\232\204\346\227\266\345\200\231/index.html" @@ -0,0 +1,11 @@ +每个周六的晚上是我乐兴大发的时候 +

每个周六的晚上是我乐兴大发的时候

我的吉他弦断了,刚断的,就在我弹那曲《两只老虎》的时候。

没办法,为了能压住隔壁装修的声音,我在弹的时候多使了点劲儿。

幸好我未雨绸缪,买吉他的时候就多买了几根琴弦,今天终于用上了,不过,还是费了老半天劲儿才把弦儿装好。

这让我想起一个传说,爱好古琴人都知道这个神秘传说。古代有两人,一个叫俞伯牙,一个叫钟子期。有一天,俞伯牙琴兴大发,在他家空旷的后院里(也可能是在河边,记不清了),摆好琴,焚香沐浴后,惬意地抚上一曲。一时间,悠扬的曲子飘满了整个院子,向远方扩散。

俞伯牙正沉浸在曼妙的琴声里,突然,“啪"地一声脆响,琴弦断了。他向远处一望,原来是钟子期这家伙打完柴在这儿偷听他弹琴。钟子期不但听懂了他的曲子,而且对他这把琴的来历也说得头头是道,后来俩人成了好哥们儿。

就此打住,问题的重点并不是这俩人后来成了好哥们儿,关键是这个故事说明了一个问题:当有人偷听你弹琴的时候,你的琴弦就会断掉。反过来说,如果哪天你的琴弦断了,那么,在某一个角落里,有一个粉丝正在偷听你的琴声。

话说有一个人叫张三,酷爱抚琴,苦于没有知音。一日,在抚琴时琴弦终于崩断,此人对刚才的传说深信不疑,急忙起身,想要寻找那位来偷听的"粉丝”,果然,在角落里找到了他。张三欣喜不已,激动地握着"粉丝"的手说:“同志!我可找到你了!“却又发现这位粉丝已经陶醉于音乐之中,正在轻轻地啜泣。

张三感慨万千:“终于有人懂我的琴艺了!“忙将此人请入家中,沏茶倒水,欲询问此人对他刚才所奏之曲的感受。此人好不容易才止住哽咽,断断续续说道:“本来我在睡午觉,忽听得先生的琴声,就顺着声音走到这里来了。”

“那又为何哭泣呢,我刚才所奏之曲虽有哀怨之意,听了却也不必如此悲痛吧?” 张三不解地问道。说道此处,此人痛苦地干嚎两声,说道:“之所以伤心,是因为我心里难受,先生的曲子让我想起我死去的舅舅,先生的曲子与我舅舅的曲子有一样的声音。” 张三更加欣喜:“敢问你舅舅是哪位大音乐家啊?",“音乐家倒谈不上。",“哦,那他是干什么的?",“他是,弹棉花的…",”#@$%^#$%^#$%^”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\257\217\344\270\252\345\221\250\346\234\253\347\232\204\344\270\213\345\215\210\350\277\231\346\240\267\345\201\232\346\212\212\344\275\240\347\232\204\346\225\210\347\216\207\346\217\220\345\215\207\347\231\276\345\200\215/index.html" "b/p/\346\257\217\344\270\252\345\221\250\346\234\253\347\232\204\344\270\213\345\215\210\350\277\231\346\240\267\345\201\232\346\212\212\344\275\240\347\232\204\346\225\210\347\216\207\346\217\220\345\215\207\347\231\276\345\200\215/index.html" new file mode 100644 index 000000000..527683754 --- /dev/null +++ "b/p/\346\257\217\344\270\252\345\221\250\346\234\253\347\232\204\344\270\213\345\215\210\350\277\231\346\240\267\345\201\232\346\212\212\344\275\240\347\232\204\346\225\210\347\216\207\346\217\220\345\215\207\347\231\276\345\200\215/index.html" @@ -0,0 +1,11 @@ +每个周末的下午,这样做把你的效率提升百倍 +

每个周末的下午,这样做把你的效率提升百倍

为了避免浪费时间带来的焦虑,人们一般会选择做些什么来保持忙碌,或者至少在看起来是十分忙碌的样子。即使当下所做的事情可能对于完成任务目标来说毫无意义,甚至是背道而驰,但是为了逃避思考,往往沉浸在自己已经“很忙了”、“没时间考虑”这样的假象当中,乐此不彼。

我以前在出行的时候,有时坐地铁到一个陌生的地方,不知道出了地铁口该怎么走,这个时候我就会比较焦虑,一般会先随便朝一个方向走一段,然后一边走一边查看地图,很多时候发现我前进的方向与地图上规划的路径是相反的,但是我的潜意识里认为,我在走动中查地图,比我站在那儿不动查地图要节约时间,要安心一些。这显然是不对的。在一次内部分享会上,我跟大家讲了自己的故事和体会,来说明每个人都或多或少都有这样的逃避倾向(有心理学家指出,事实上脑力劳动才是最累的体力活儿,所以人的天性都是逃避真正的动脑思考的,最好是别人都替我想完了)。

意识到以上的思维模式是错的以后,然后就是想办法来避免。首先需要解决的就是,针对工作中,思考上的懒惰。当然这事儿早就有人发现并指出了,比如著名的那句“战术上的勤奋掩盖不了战略上的懒惰”,以前还有句老话叫“不仅低头拉车,也要抬头看路”等等。

但是都没有提供更加接地气的具体方法。我有一个具体可行的方法,操作起来简单有效,又花不了太多时间,在我看来,对于每一个职场中人都十分适用,除非不思进取、天生与效率为敌(此类人乃将来被AI替代的主要对象)。

具体做法就是:** “在每个周末的午后,抽出30分钟时间,把你认为你下周最重要的三件事确定出来,列到你的工作计划中去。” **注意,是三件,不是更多,此举目的并非让你制定完美计划,而是判断什么事情是重要的,如何判断最重要?很简单,问自己一个问题即可:“我在完成这三件事儿之后,是不是即使其他事情都不干、躺下睡觉,也能认为本周工作是成功的,至少是及格的?”

这样做好处有三,都是立竿见影的效果。

1、这是一个很好的“重新审视工作”的机会。

即,“抬头看路”。暂时放下手中的忙碌,重新认识一下自己的工作目标,你会发现无论任务有多繁杂,要达成的目标就那么几个,最终的目的地就在那儿,所有任务都应该是指向那儿的,如果不是,那就更简单,降低优先级,或者干脆从任务清单里把它踢出去。

2、这样做,可以有效避免“周一综合症”。

现在人,矫情起来谁还没有个心理疾病啊,各种“症”往自己身上套,最明显的就是“周一综合症”或者“节后综合症”,更有甚者称之为“上班的心情比上坟都沉重”。焦虑的根源在于“不可控”,不知道自己做的事情与承诺的目标有什么关系。列出重点之后,先做这些事情,剩下的事情就越做越轻松了。提前考虑好了,就化被动为主动了,心情自然不同。

3、便于跟踪工作计划。

各方示例都表明,有计划地开展工作,要比稀里糊涂开干效率高的多,但是“有计划没跟踪”也是一个很致命的问题。我在每个周末的思考时间里,都会查看团队成员发来的工作周报(我要求他们也这样做),一是跟踪上周任务完成情况,二是查看下周的工作重点是否偏离既定目标,如果偏离就及时修正,避免了时间和资源的浪费。

习惯虽小,但是一旦养成,威力无穷。为了配合我们高效的工作和管理方法,我们开发的移动办公应用“遥知”* (是一款轻量级主打体验的共享协同办公应用) *做出了十分匹配高效工作者的功能,帮助大家养成高效工作的习惯,避免在思考上的懒惰,借助这款工具,无论在工作方法上,还是协作效率上,我们的团队都得到了显著的提升。

硬广时间:扫码直接下载遥知,开启高效工作之旅吧!

免费试用遥知

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105.png" "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105.png" new file mode 100644 index 000000000..bb4365a1b Binary files /dev/null and "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105.png" differ diff --git "a/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105_huda675bb3df3313d56b64a8fa66527355_47881_120x120_fill_box_smart1_3.png" "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105_huda675bb3df3313d56b64a8fa66527355_47881_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..a9f3ff0e2 Binary files /dev/null and "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105_huda675bb3df3313d56b64a8fa66527355_47881_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105_huda675bb3df3313d56b64a8fa66527355_47881_1600x0_resize_box_3.png" "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105_huda675bb3df3313d56b64a8fa66527355_47881_1600x0_resize_box_3.png" new file mode 100644 index 000000000..7ec0403a7 Binary files /dev/null and "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105_huda675bb3df3313d56b64a8fa66527355_47881_1600x0_resize_box_3.png" differ diff --git "a/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105_huda675bb3df3313d56b64a8fa66527355_47881_800x0_resize_box_3.png" "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105_huda675bb3df3313d56b64a8fa66527355_47881_800x0_resize_box_3.png" new file mode 100644 index 000000000..68b316826 Binary files /dev/null and "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/20090105_huda675bb3df3313d56b64a8fa66527355_47881_800x0_resize_box_3.png" differ diff --git "a/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/index.html" "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/index.html" new file mode 100644 index 000000000..5a5ade62f --- /dev/null +++ "b/p/\346\257\217\344\270\252\347\224\267\345\255\251\351\203\275\345\272\224\350\257\245\346\234\211\344\270\200\346\212\212\345\220\211\344\273\226/index.html" @@ -0,0 +1,11 @@ +每个男孩都应该有一把吉他 +
Featured image of post 每个男孩都应该有一把吉他

每个男孩都应该有一把吉他

昨天,飞行鱼一脸扭捏而又羞答答的对我说他终于没忍住,在元旦的时候买了把吉他。

这厮早就想买吉他了,但是这个想法多次被我扼杀在饭桌上,我以我的亲身经历,动之以情晓之以理地将他想买吉他的念头一再浇灭。

比如说我十年前就买过吉他,但是今天仍是连一首曲子都弹不全,比如说我曾经以为弹的不好是因为吉他不行,在我买了第二把好琴之后我才发现是自己的水平不行,说到动情之处声泪俱下,唏嘘不已。

但这厮还是买了,他说,他在听了卖琴的老板弹奏完一曲《加州旅馆》之后,就立即掏钱了,仿佛买回去的是那一曲《加州旅馆》。

不过自己回去连《加州招待所》都弹不出来,只能摆在那里当个装饰罢了。

那,买了琴,为什会感到羞涩捏?

因为我们早都过了"男孩"的年纪,早就错过了拿着吉他装逼的季节,只是心里总有个情节而已,你要知道,装逼被自己看穿了总是怪不好意思的吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\257\217\346\227\245\347\254\221\350\257\235/index.html" "b/p/\346\257\217\346\227\245\347\254\221\350\257\235/index.html" new file mode 100644 index 000000000..9b0cb816b --- /dev/null +++ "b/p/\346\257\217\346\227\245\347\254\221\350\257\235/index.html" @@ -0,0 +1,11 @@ +每日笑话 +

每日笑话

记得老婆怀孕的时候,为了保持其心情愉悦,我每天都要给她发送一条短信,均是时下最流行的笑话段子。

这些段子基本上来自于网上,有些比较长的我还得进行一定的删减,由于平时储备的段子较多,刚开始几天还源源不断,后来因为我的审查比较严格,比较俗气的段子不发,太露骨的荤段子不发,不经典不好笑的不发,导致连压箱底的段子都发给她了,有时候我甚至还得四处搜罗。

每天一条笑话,一直持续到孩子生下来,现在孩子白白胖胖非常可爱,我的笑话短信有很大的功劳。

再后来,由于工作实在是繁忙又加上自己存储的段子实在是不够用了,我才逐步取消“今日笑话”这项“业务”。

前两天老婆又跟我叫屈,说我太偏心了,孩子一生下来就收不到新段子了,向我申请重新开通“每日笑话”的业务。

很长时间没有发笑话,我的段子又储备的差不多了,经过深思熟虑之后,我决定今日起重新开通该业务。

另附今日笑话:儿子学习不好,被妈妈痛骂。儿子用哀怨的眼神看着爸爸说:“你为什么要娶她?”爸爸也用哀怨的眼神看着儿子说:“还不是因为你!”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\260\270\344\270\215\346\224\276\345\274\203/index.html" "b/p/\346\260\270\344\270\215\346\224\276\345\274\203/index.html" new file mode 100644 index 000000000..a6c51ff36 --- /dev/null +++ "b/p/\346\260\270\344\270\215\346\224\276\345\274\203/index.html" @@ -0,0 +1,11 @@ +永不放弃 +

永不放弃

不要被眼前的困难吓倒,认定你的目标,坚持下去。

哪怕有一万个人对你说,不行,但只要你的心告诉你,行,那就是行,没有商量的余地。

有时候越是简单的事情越难以做好,骄傲的人做不好,懒惰的人做不好,勤奋却不得方法的人也做不好。

你觉得你谦虚了﹑努力了﹑方法也对了,那么,别灰心,坚持下去。

—————-重温《阿甘正传》有感。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\261\202\351\233\250\345\246\231\346\213\233/index.html" "b/p/\346\261\202\351\233\250\345\246\231\346\213\233/index.html" new file mode 100644 index 000000000..d035bd4f1 --- /dev/null +++ "b/p/\346\261\202\351\233\250\345\246\231\346\213\233/index.html" @@ -0,0 +1,11 @@ +求雨妙招 +

求雨妙招

入夏以来,大家打篮球的热情空前地高涨,频率已经从原来的每周一场提升到每周两场,较上年同期提升了100个百分点(我晕,还是别用新闻联播的语气了)。

不仅如此,每次打球的时间也有所延长,基本上都是从下班打到天黑,中间不休息、不换人,三个小时下来,基本上都口吐白沫,胳膊抽筋,两股战战几欲先走。

然而天公总是不作美,近日一连串的雨天,严重打乱了我们的打球计划。

基本上每次打球都要下雨,而且时间也选在下班前后。

每当约定好打球日期,第二天带齐了球衣和球鞋,下班后刚给篮球打满气,还没来及拿起来在手指上转一下,只见天空一道闪电,紧跟着大雨倾盆而下,大家只得各自回家收衣服。

同事们都感叹又发现一求雨的新招数,无论哪个地方干旱少雨,只需我们带齐装备过去打球,过不多时必有甘霖降落。

今天,大家没带球衣,也没带球鞋,篮球也没打气,天,晴了!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\261\207\346\212\245\344\270\200\344\270\213\350\277\233\345\261\225/index.html" "b/p/\346\261\207\346\212\245\344\270\200\344\270\213\350\277\233\345\261\225/index.html" new file mode 100644 index 000000000..c8680fe0b --- /dev/null +++ "b/p/\346\261\207\346\212\245\344\270\200\344\270\213\350\277\233\345\261\225/index.html" @@ -0,0 +1,11 @@ +汇报一下进展 +

汇报一下进展

学习五线谱和钢琴大半个月了,使用Cubase录了一段自己弹奏的《落叶》虽然速度不稳,比节拍器忽快忽慢,但是好歹是用双手了。

呵呵,左手好像弹错了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\262\241\344\277\241\345\277\203\344\272\206/index.html" "b/p/\346\262\241\344\277\241\345\277\203\344\272\206/index.html" new file mode 100644 index 000000000..ada7b880a --- /dev/null +++ "b/p/\346\262\241\344\277\241\345\277\203\344\272\206/index.html" @@ -0,0 +1,11 @@ +没信心了 +

没信心了

前天在网上看了个视频,某人(其实就是rickwakeman)演奏了一段keyboard,看得让我心神激荡(地址在这儿),旋律速度极快,却也十分好听。

此人运指如飞,根本看不清是哪根手指在动,小手指摆动得就像蜻蜓的翅膀,好像就要发出嗡嗡声似的。

看完视频后我长叹一声,唉,咱这辈子也别想弹成这样了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\262\241\345\206\231\350\277\207\346\233\262\345\255\220\347\232\204\345\216\250\345\255\220\344\270\215\346\230\257\344\270\200\344\270\252\345\245\275\350\243\201\347\274\235/index.html" "b/p/\346\262\241\345\206\231\350\277\207\346\233\262\345\255\220\347\232\204\345\216\250\345\255\220\344\270\215\346\230\257\344\270\200\344\270\252\345\245\275\350\243\201\347\274\235/index.html" new file mode 100644 index 000000000..ed167d6f0 --- /dev/null +++ "b/p/\346\262\241\345\206\231\350\277\207\346\233\262\345\255\220\347\232\204\345\216\250\345\255\220\344\270\215\346\230\257\344\270\200\344\270\252\345\245\275\350\243\201\347\274\235/index.html" @@ -0,0 +1,11 @@ +没写过曲子的厨子不是一个好裁缝! +

没写过曲子的厨子不是一个好裁缝!

今天坐在电子琴前瞎按,精神有些恍惚,尝试着弹些曲子,居然可以有“完整”的旋律被弹出来,而且听起来有些淡淡的伤感,有些甜蜜。

我又不会记谱,纯粹凭着感觉弹奏,恰巧电脑上的midi软件坏了,无法使用软件录制,只好掏出手机赶紧把这段录下来(用手机录的音质就差多了),要不然很快就会忘了。点击这里可听如有雷同纯属巧合:)

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\262\241\346\234\211\345\220\210\351\200\202\347\232\204\350\265\204\346\226\231\347\256\241\347\220\206\350\275\257\344\273\266/index.html" "b/p/\346\262\241\346\234\211\345\220\210\351\200\202\347\232\204\350\265\204\346\226\231\347\256\241\347\220\206\350\275\257\344\273\266/index.html" new file mode 100644 index 000000000..41c5b2918 --- /dev/null +++ "b/p/\346\262\241\346\234\211\345\220\210\351\200\202\347\232\204\350\265\204\346\226\231\347\256\241\347\220\206\350\275\257\344\273\266/index.html" @@ -0,0 +1,11 @@ +没有合适的资料管理软件 +

没有合适的资料管理软件

我的硬盘整理行动已经开始了一周多了,期间最让我头疼的就属工作中产生的文档资料了,技术文章、幻灯片、项目计划等等等等。

杂乱地堆放在我的各个硬盘里,好多东西不舍的删除,偏偏在用到的时候找不见,没用的时候又老在眼皮子底下碍事。

曾经试过evernote来管理资料,可是对于大量的word文档不太合适,使用subversion又有点儿麻烦或大才小用。

使用GoogleDocs倒是还凑合,可是说不定哪天就上不去了,到时候哭都来不及。

干脆使用Google的桌面搜索,可是眼看着索引文件越来越大而且重装系统也是个麻烦事儿。

myBase也试用过,界面太朴素也可以接受,功能也很强大,就怕管理的文档多了影响速度,而且myBase是收费软件,使用单一文件数据库还得天天备份,麻烦。

真的找不到合适的了,难道要自己动手写一个?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\263\250\345\206\214atl\347\273\204\344\273\266\350\277\224\345\233\236\351\224\231\350\257\2570x80040154\347\232\204\345\216\237\345\233\240\345\217\212\350\247\243\345\206\263\345\212\236\346\263\225/index.html" "b/p/\346\263\250\345\206\214atl\347\273\204\344\273\266\350\277\224\345\233\236\351\224\231\350\257\2570x80040154\347\232\204\345\216\237\345\233\240\345\217\212\350\247\243\345\206\263\345\212\236\346\263\225/index.html" new file mode 100644 index 000000000..0c7794074 --- /dev/null +++ "b/p/\346\263\250\345\206\214atl\347\273\204\344\273\266\350\277\224\345\233\236\351\224\231\350\257\2570x80040154\347\232\204\345\216\237\345\233\240\345\217\212\350\247\243\345\206\263\345\212\236\346\263\225/index.html" @@ -0,0 +1,11 @@ +注册atl组件返回错误0x80040154的原因及解决办法 +

注册atl组件返回错误0x80040154的原因及解决办法

今天用VC6做了一个com组件,使用ATL模板创建,结果在使用regsvr32.exe注册时死活注册不上,返回0x80040154,使用ErrorLookup查看错误号结果是“没有注册类别”,百思不得其解,即使以前可以注册的组件现在也无法注册了,怀疑是操作系统的问题。

上网搜索了半天,最终还是在微软的官方网站上找到了一点儿蛛丝马迹:

“WhenyouregisteranATLserver,youmightgeterror0x80040154(Classnotregistered).ForDLLs,REGSVR32.exereturnsthiserror.ForEXEs,thecallto_Module::

RegisterServer(CComModule::RegisterServer)in_tWinMain()returnsthiserror.”,

接着往下看“InstallATL70.dll(orATL.dllforearlierversionsofVisualStudio)intheWindows\SystemorWinnt\System32directory.YoudonothavetoregisterATL70.dll,however,youmustregisterATL.dllbyusingRegsvr32.exe.ThereareUNICODEandANSIversionsofATL70.dllandATL.dll.Installtheappropriateversiononthetargetoperatingsystem(thatis,UNICODEforMicrosoftWindowsNT,andANSIforMicrosoftWindows95orMicrosoftWindows98).”

哦,原来是system32下面的atl.dll没有注册,打开C:\windows\system32\找到atl.dll后使用regsvr32注册,然后再注册我的组件,成功!

结论:怀疑在安装、卸载软件或使用优化软件进行系统清理的时候不小心反注册了atl.dll,导致使用atl模板创建的com组件均无法注册。

ps:两年前就遇到过此问题,当时无法搞定,只得重装系统,今天总算找到问题的原因了

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\264\245\351\227\250\344\270\200\346\227\245\346\270\270/index.html" "b/p/\346\264\245\351\227\250\344\270\200\346\227\245\346\270\270/index.html" new file mode 100644 index 000000000..24dbf2621 --- /dev/null +++ "b/p/\346\264\245\351\227\250\344\270\200\346\227\245\346\270\270/index.html" @@ -0,0 +1,11 @@ +津门一日游 +

津门一日游

今天去天津出了一趟差。

感觉天津是个不错的地方,不愧是“上有天堂下有天津”(有这句话吗?)。

首先感受了一下中国最快的列车,时速达330的城际特快,椅子都没有坐热都已经到了天津站。

然后就听到了地道的天津方言,虽然是第一次到天津,但感觉很亲切,倍儿舒服。出租车司机话也很多,天南地北都挺能侃,和北京的出租司机有一拼。

下了车就奔公司分舵去了,那里的同事也十分热情,简单吃过饭,就去办公事。

然后就是打车去火车站,又是椅子没做热就到了北京。

所以,虽然是去了一趟天津,基本上也没啥感受,就是感觉那儿人挺不错,环境也不错,至少比北京强,还有就是感叹城际特快的速度,要是以后坐火车都像这样,那航空公司肯定要关张了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\265\213\350\257\225/index.html" "b/p/\346\265\213\350\257\225/index.html" new file mode 100644 index 000000000..548df43b4 --- /dev/null +++ "b/p/\346\265\213\350\257\225/index.html" @@ -0,0 +1,11 @@ +测试 +

测试

此篇博客通过电子邮件发送生成,此电子邮件又是通过手机发送。如果都能看见,说明测试成功!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\265\213\350\257\225\344\270\200\346\212\212google\347\232\204\345\234\250\347\272\277\347\277\273\350\257\221\345\267\245\345\205\267/index.html" "b/p/\346\265\213\350\257\225\344\270\200\346\212\212google\347\232\204\345\234\250\347\272\277\347\277\273\350\257\221\345\267\245\345\205\267/index.html" new file mode 100644 index 000000000..fd0ccf6f0 --- /dev/null +++ "b/p/\346\265\213\350\257\225\344\270\200\346\212\212google\347\232\204\345\234\250\347\272\277\347\277\273\350\257\221\345\267\245\345\205\267/index.html" @@ -0,0 +1,11 @@ +测试一把google的在线翻译工具 +

测试一把google的在线翻译工具

听说google出了在线翻译的工具,而且还广受大家的好评,在美国举行的一次翻译比赛中还拿了冠军。

我虽不是google的粉丝但也对google的产品挺感兴趣的,于是赶紧凑个热闹,看看伟大的google能不能给我带来惊喜。   由于我只会中文,那就看看google的英译中的水平怎么样。

废话少说,赶紧拿来一首英文歌词《youneededme》(我最喜欢的英文歌曲之一)。

YouneededmeIcriesatearyouwipeditdryIwasconfusedyouclearedmymindIsoldmysoulyouboughtitbackformeAndhelpmeupandgivemedignitySomehowyouneededmeYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeAndIcan'tbelieveit'syouIcan'tbelieveit'strueIneededyouandyouwerethereAndI'llneverleavewhyshouldIleaveI'dbeafoolCauseI'vefinallyfoundsomeoneWhoreallycaresYouheldmyhandwhenitwascoldWhenIlostyoutookmehomeYougavemehopewhenIwasattheendAndturnedmyliesbackintotruthagainYouevencalledmefriendYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeOh,yes,youneedmeYouneededme

先试了一下整段翻译,把歌词复制进去,出来的结果让我忍俊不禁google自动翻译的文字:

你需要我,我喊了眼泪,你擦它干,我摸你清我心中我卖出我的灵魂,你买回来,我和帮助我,让我有点尊严,你需要我你们给了我力量单独再次面对世界走出自己再次你就把我小时在室内一个台阶那么高,我几乎可以看到永恒,你需要我,多欧需要我,我也不相信是你,我不能相信这是真的,我需要你和你的笔在此,我永远不会离开,我为何要离开我就是一个傻瓜,我的事业总算发现有人真的三白族你握着我的手,当它冷时,我输了,你带我家,你给了我希望钨母鸡,我是在年底把我的谎言放回真话的时候,你甚至骂我的朋友,你克须缴我力量单独再次面对世界走出自己再次你就把我高美无源一个台阶那么高,我几乎可以看到永恒,你需要我,你需要我哦,多欧需要我,你需要我

唉,比较失望啊,试一下google的翻译网页的功能吧,找到歌词的网页,然后让它翻译你需要我

Icriedatear我哭了眼泪Youwipeditdry你擦它干Iwasconfused我很困惑Youclearedmymind你清除了我的心Isoldmysoul我卖我的灵魂Youboughtitbackforme你买回来,我Andheldtheearth召开地球Yougavemedignity你给我尊严Somehowyouneededme某种程度上,你需要我Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Ican'tbelieveit'syou我不能相信这是你Ican'tbelieveit'syou我不能相信这是你Ineededyou我需要你Andyouwerethere你有AndI'llneverleave,whyshouldIleave?和我永远不会离开,我为何要离开?Ineededyou我需要你canIfinallyfoundsomeonewhoreallycares可我终于发现有人真正关心(Youneededme)(你需要我)Youheldmyhand你牵我的手Itwascold据冷AndIwaslost我失去了Youtookmehome你带我家Yougavemelove你们给我的爱ThatIwasattheend我是在结束Iturnedmylife我把我的生命BackintotruthagainYouevencalledme'friend'放回真话的时候,你甚至骂我'朋友'Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Youneededme你需要我Youneededme你需要我Oh,yes,youneededme哦,你需要我Youneededme你需要我

呵呵,这下看起来还像那么回事儿.感觉机器还是代替不了人啊.翻译有感情的东西总是那么生硬.

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\346\265\213\350\257\225\344\273\216scribefire\345\217\221\345\270\203blog/index.html" "b/p/\346\265\213\350\257\225\344\273\216scribefire\345\217\221\345\270\203blog/index.html" new file mode 100644 index 000000000..2a72e0664 --- /dev/null +++ "b/p/\346\265\213\350\257\225\344\273\216scribefire\345\217\221\345\270\203blog/index.html" @@ -0,0 +1,11 @@ +测试从scribefire发布blog +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\201\255\350\232\212\350\256\260/index.html" "b/p/\347\201\255\350\232\212\350\256\260/index.html" new file mode 100644 index 000000000..8f349a058 --- /dev/null +++ "b/p/\347\201\255\350\232\212\350\256\260/index.html" @@ -0,0 +1,11 @@ +灭蚊记 +

灭蚊记

又到了蚊子最猖獗的季节了,现在每晚都有蚊子在我耳边盘旋,嗡嗡的声音若隐若现,让我神经高度紧张,却又懒得起来招呼它们,无奈,硬着头皮睡去。

第二天胳膊腿上到处都是蚊子们留下的吻痕–小红疙瘩,奇痒难忍。我发飙了,对付蚊子,我要开始行动!刚开始我采用的是防守战略,听说食用葱姜蒜可以使皮肤排出的汗味具有天然的驱蚊效果,本想采用此方法,但是吃了大蒜那味儿我更受不了只得放弃。

还是在洗澡的时候多放点花露水吧,“六神特效驱蚊花露水”据说效果很好,洗完澡往身上狂撒,安静的躺在床上,等待蚊子飘然而来再飘然而去。

结果,效果欠佳,蚊子依然如故的为我唱着催眠曲,而且我还被花露水熏得神清气爽、失眠健忘。

防守看来不行,改变战略。

男人!就要对别人狠一些!对付蚊子也不例外!

狂奔去超市,买来“枪手”喷雾剂、“睡得香”电蚊香、电蚊拍、紫外光灭蚊灯等等,我要发起进攻了!

晚饭毕,拿起“枪手”对卧室一通疯狂扫射,再将蚊香点燃,整个房间烟雾弥漫,关紧房门,外面客厅里的灭蚊灯发出幽幽的清华紫光。

这下蚊子们彻底的玩完儿了,对不起了诸位,我已经够瘦弱了,您就给我留点儿血吧。

沐浴后,推开卧室门,兴冲冲准备打扫战场,刚推开门我就被呛得眼泪鼻涕都下来了(我刚才喷的不是催泪瓦斯吧),蚊子倒是没有了,只是这屋里也不能待了(已经感觉呼吸困难了),无奈只有掐灭蚊香,打开窗户,终于,新鲜的空气伴随着新鲜的蚊子又进来了。

灭蚊灯、灭蚊拍也收效甚微。灭蚊战争暂告一段落,蚊子暂时领先。

先这样吧,实在不行就拿手拍吧,要是懒得拍就猛开空调把他们冻死,再或者,如果我的反应足够灵敏的话,我就在它们叮我的那一刹那,暗运内力把它们的嘴夹在肌肉里,我憋死它们!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\203\202\347\211\207\346\227\266\351\227\264/index.html" "b/p/\347\203\202\347\211\207\346\227\266\351\227\264/index.html" new file mode 100644 index 000000000..dd4314903 --- /dev/null +++ "b/p/\347\203\202\347\211\207\346\227\266\351\227\264/index.html" @@ -0,0 +1,11 @@ +烂片时间 +

烂片时间

周末,挑了一部尼古拉斯凯奇的电影,看完了不得不说,白瞎了尼古拉斯凯奇了,不过竟然看完了,知道是哪部了吧?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\210\275\344\272\213\345\204\277\344\270\244\344\273\266/index.html" "b/p/\347\210\275\344\272\213\345\204\277\344\270\244\344\273\266/index.html" new file mode 100644 index 000000000..67b4c2b37 --- /dev/null +++ "b/p/\347\210\275\344\272\213\345\204\277\344\270\244\344\273\266/index.html" @@ -0,0 +1,11 @@ +爽事儿两件 +

爽事儿两件

1、把我的epc升级成ubuntu的操作系统了。

比起它自带的那个阉割版操作系统,界面华丽了,软件丰富了,操作更自由了,爽!

2、家里的宽带在费用不上涨的情况下从1M升级到1.5M了。

虽然感觉也没比以前快了多少,但心里还是美滋滋的,爽!

ps:跑步仍在继续!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\216\251\346\270\270\346\210\217\350\203\275\345\255\246\345\210\260\344\273\200\344\271\210/index.html" "b/p/\347\216\251\346\270\270\346\210\217\350\203\275\345\255\246\345\210\260\344\273\200\344\271\210/index.html" new file mode 100644 index 000000000..9c8d4574a --- /dev/null +++ "b/p/\347\216\251\346\270\270\346\210\217\350\203\275\345\255\246\345\210\260\344\273\200\344\271\210/index.html" @@ -0,0 +1,11 @@ +玩游戏能学到什么 +

玩游戏能学到什么

从计算机诞生的那一刻开始,游戏就一直是技术前进的推动力,无论是对硬件的压榨还是对算法的要求,很少有应用软件能够超越游戏的需求,一般来说,游戏软件所使用的技术总是领先其他应用软件一个世代,就连最近比较火的VR、AR技术也是首先从游戏开始的。还记得乔布斯大神说过:“全民娱乐是最终需求,一切技术最终都将为娱乐服务(大意吧,记不清了)”。

那么,除了放松身心、打发时间之外,好像找到正当玩游戏的理由了。

1、寻找灵感。我一直觉得应该在游戏中寻找产品的灵感,哪怕是最基本的交互设计或用户界面,同时期的游戏都能把传统软件甩好几条街,所以我们可以从玩游戏的过程中激发灵感,考虑我们的软件产品交互或界面有没有可以向游戏借鉴的地方。

2、推动技术。最先使H5火起来的还是基于网页的游戏,正是这些游戏先驱踏平了无数的技术坑,才使得当前基于H5技术的跨平台游戏引擎如此火爆,并进一步诞生了通用的应用软件开发平台,在使用这些平台或者制作同类产品时,必须明白,是游戏率先推进了标准化和硬件性能提升,才使得我们能够基于成熟技术制作跨平台软件。

3、学习技术。在享受游戏的乐趣之余,可以思考这些游戏的性能是如何实现的,现在互联网这么开放,不难寻找到相关的介绍资料,很多技术思路都可以借鉴,无论是终端资源的有效利用还是服务端高并发的基础架构,如果能满足游戏的要求,基本可以超越你的需求。

4、学习心理学。为什么我们都觉得玩游戏比工作要爽,闲暇时间宁愿掏出手机玩两把消消乐也不愿意写一篇技术博客?根本在于游戏的设计符合心理学中人们对正向激励的需求,大部分游戏都设置有精妙的积分机制,一方面鼓励你多玩多得,另一方面让你不由自主的愿意付出时间和金钱,都是因为你在这个过程中获得了及时的反馈和激励。这个层面我们在产品设计或运营的时候都可以借鉴,向那些游戏厂商学习。

5、学习知识。这个有些牵强了,但是也不是不可能,有些纯粹消磨时间的游戏就算了,但是确实有些有追求的游戏公司在制作的时候是出于寓教于乐目的的,比如我最近就在玩一款编程游戏(为什么下了班还要编程啊?!),通过几个简单的指令控制游戏中的小人完成任务,通过玩这个游戏我就很轻松的理解了大学里没有学会的汇编语言(或机器语言?),原来汇编语言里动不动就往寄存器里传输数据的意义就在于将输入通过某种操作变为输出,通过最简单的加减运算来实现复杂操作。

很多人尤其是学生家长非常抵制孩子们玩游戏,认为游戏就是破坏学习的毒品,但是事物都有两面性,如果合理的安排时间,不沉迷于游戏,而是在娱乐的同时能学习和思考一些东西,那么玩游戏也没什么大不了的,甚至应该得到推崇,至少每个软件工程师都应该在工作之余多玩一玩游戏,只有不断的反思自己的产品,才做出更出色成果来。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\217\215\347\210\261\347\224\237\345\221\275\350\277\234\347\246\273\346\211\213\346\234\272/index.html" "b/p/\347\217\215\347\210\261\347\224\237\345\221\275\350\277\234\347\246\273\346\211\213\346\234\272/index.html" new file mode 100644 index 000000000..f8727fe05 --- /dev/null +++ "b/p/\347\217\215\347\210\261\347\224\237\345\221\275\350\277\234\347\246\273\346\211\213\346\234\272/index.html" @@ -0,0 +1,11 @@ +珍爱生命,远离手机 +

珍爱生命,远离手机

对于使用手机,我有一个不良习惯,喜欢在睡觉的时候把手机放在枕头旁边,而且是24小时不关机,只有这样我才睡的踏实。

之所以这样儿,是因为我是把手机作为闹钟来用的,放的近一些首先可以保证它在关键时候叫醒我,其次是,这样我就可以迅速把闹铃关掉,然后再睡一会儿。

今天看了一条新闻,让我十分不安,有专家跳出来说“应该让手机远离头部”因为,“手机发出的电磁辐射可以致癌”。

哦卖糕的!以后睡觉的时候干脆把手机放在脚边算了,每当早上它吵醒我美梦的时候,我可以飞起一脚把它踢到地上。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\220\203\351\233\250/index.html" "b/p/\347\220\203\351\233\250/index.html" new file mode 100644 index 000000000..f81cdfc1f --- /dev/null +++ "b/p/\347\220\203\351\233\250/index.html" @@ -0,0 +1,11 @@ +球雨 +

球雨

早在去年的这个时候,我们就发过牢骚,只要是我们想打篮球的时候,必然要下雨。

今天再次证明了这一点。每次我们兴致勃勃地带好球衣,穿上球鞋,给篮球打满气,这一切收拾停当之后,刚刚还晴朗的天空突然就飘来朵朵乌云,半个时辰之内必有甘霖降落。

可是如果我们仅仅是说好了打球然后又因故取消的话,这场雨就不下了,可见,求雨还得心诚才行啊!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\220\206\345\217\221/index.html" "b/p/\347\220\206\345\217\221/index.html" new file mode 100644 index 000000000..cbbcb84c2 --- /dev/null +++ "b/p/\347\220\206\345\217\221/index.html" @@ -0,0 +1,11 @@ +理发 +

理发

今天去理发了,很难理解那些一边理发一边与发型师聊个没完的话痨,今天我终于想明白了为什么我到了理发店就沉默寡言了。

因为他们一般都会问我这几个问题:

1、“您多久没理发了?”

妈的,老子想什么时候理就什么时候理,怎么了。

天气这么闷热生活这么枯燥,理个发你还在这唧唧歪歪没完。

不就是老子的头发留的稍微长了点儿,收拾起来慢一些吗。

2、“您的发质太硬,要不要做个软化?”

操!好好的头发干嘛要在药水里泡来泡去了的。

3、“您的头发有些脱发,给你推荐一款防脱发的洗发水怎么样?我们这边特价”

脱发?没你说的那么严重吧,倒是推荐的洗发水有些怪异,恕我孤陋寡闻,这些牌子我一个也没听说过。

4、“办个会员卡吧?以后每次来都能打8折”

最崩溃的就是这句,痛苦地忍住胸口那句脏话,赶紧离开这间店。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\220\206\345\217\2212007/index.html" "b/p/\347\220\206\345\217\2212007/index.html" new file mode 100644 index 000000000..d5bad4ac0 --- /dev/null +++ "b/p/\347\220\206\345\217\2212007/index.html" @@ -0,0 +1,11 @@ +理发2007 +

理发2007

对于我来说,理发是件很痛苦的事情,可能是有心理障碍吧。

小的时候被老爸强行摁住理过一次发,我像一只小鸡那样被夹在腿上无力反抗,由于整个过程我都在不停地叫骂那个理发的,所以那家伙下手还不含糊,把推子使得嚓嚓直响,对着我的头皮和耳朵可劲儿招呼。

整个过程是漫长的、痛苦的、令人发指的。

最后我看着镜子里的凸了吧唧的头,还不忘使劲儿拧了一把鼻涕抹在老爸的裤腿上。

此事后来成为笑谈,但爷儿俩在理发这种事情上一直都持有不同的观点,

当然了,我还只能提出强烈抗议、强烈不满、强烈谴责,但采取进一步措施的权利还是保留了。

一直到现在,当老爸跟我说:“快去把头发理一理!”时,我还是乖乖的狂奔去理发。

不过,现在我离老爸远了,他管不了啦(主要是没看见),我可以尽情地把头发留到很长,然后再一下剪到很短(一般是回老家之前)。

但是我的这种习惯却造成了另一件事情,给我理发的人极度不爽。

每当我拖着留了几个月的长发走进理发店,告诉理发的师傅给我可劲儿剪短时,伊总是很扭捏,假惺惺地跟我说:“哎呀!你的发质这么好,又好不容易留了这么长,剪了多可惜啊!”

其实谁不知道伊是想省点儿事儿,想拿剪刀在那三下两下剪完糊弄我。

于是我只好说:“嗯嗯,本来是想留长的,但是现在突然想开了,不想留了,还是麻烦您给我剪短吧!”

最后等着人家极不情愿(还很费时)地给我剪完,我才满意离去。

但是这招下次就不能用了,所以我总是选择不同的理发店,反正这玩意儿多得是!

今天我又理发了,从五一到现在大概有三个月了,很抱歉,又让一个理发师傅不爽了一把,不管他,这次理完了,谁知道我什么时候有心情理下回呀!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\224\261\351\207\217\345\255\220\345\215\253\346\230\237\346\203\263\345\210\260\347\232\204/index.html" "b/p/\347\224\261\351\207\217\345\255\220\345\215\253\346\230\237\346\203\263\345\210\260\347\232\204/index.html" new file mode 100644 index 000000000..413972030 --- /dev/null +++ "b/p/\347\224\261\351\207\217\345\255\220\345\215\253\346\230\237\346\203\263\345\210\260\347\232\204/index.html" @@ -0,0 +1,11 @@ +由量子卫星想到的 +

由量子卫星想到的

前两天量子试验卫星的成功发射,让我想起一些事情。

当年,大约是十九世纪末期,全世界知名的物理学家集中在一起开paty,庆祝物理学所取得的伟大成就,其活动的组织者自信的站在台上宣布,物理学的大厦已经建成,基本的体系架构已经日趋完美,未来对于物理学已经基本没啥可研究的了(“只剩下对大厦的装修了”),唯一的不足就是,在展望未来时,飘在大厦上还存在两朵乌云,这两朵乌云就是:1、光的波动;2、能量的均分;

然而,谁都没想到的是,正是这两朵乌云,最后彻底摧毁了物理学大厦,使得一切不得不重新来过。最终诞生了量子力学。

我们想当然的认为,数学是对现实世界的高度抽象,完美的表达了现实世界,但是随着研究的深入,我们逐渐发现,“现实”比我们想象的要复杂的多。

第一个问题是粒子的运动。通俗的来说,数学上的定义,两点之间有无限多个点,从A点到B点,必然经过AB这条线段上的所有点,这在宏观世界中是显而易见的,可是在微观世界,物理学家彻底蒙圈了,他们发现原子内的电子,从A点到B点的时候,完全可以不经过“中间”,而是忽然“跳跃”到了B点,也就是说,粒子不再是像公式中描述的那样平滑移动了,而是无法预测他们的轨迹,他们可能突然出现在他们愿意出现的位置。

第二个问题是量子纠缠。这个问题好复杂啊,还是简单来说吧。科学家通过不断捣鼓发现,处于量子纠缠态的两个粒子,无论相距有多么遥远,当你改变其中一个粒子的状态时,另外一个粒子的状态立即发生改变,这个信息传递的速度是超过光速的(如果真的存在信息传递的话)。现在科学上只能证明这种现象的存在,但是无法解释这是为什么。

以我浅薄的理解(我在刷牙沉思录中也提到),这其实进一步证明了我们所处的世界是一个“幻象”,我们可能就是生活在一个“某种超级智能”创建的虚拟世界,就像我们创造的游戏世界一样。

为什么呢,建设在这个“虚拟世界”的假设之上,首先是我对第一个问题的理解,粒子之所以不能平滑移动,说明人类的微观探索已经到达这个“虚拟世界”的“分辨率”极限了。熟悉计算机的人都了解“分辨率”这个概念,我们在程序中绘制的“点”、“线”、“面”最终显示到屏幕上的时候是需要“栅格化”的,因为显示器有物理分辨率,两个里的非常近的点在显示器中的显示可能就是在一个像素上,那么这个时候处在我们的程序中的“物理学家”也会蒙圈地发现,从A到B是“一下子跳过去的”。

第二个问题,为什么两个粒子的状态会如此的变化一致,而且变化的速度超出了光速?答案就是,这根本就是一个粒子,也就是说,无论相聚多远,他们的“本体”就是一个,类似于我们程序中的变量地址,无论这个变量的值显示在哪里,它在内存里只有一份,所以一旦发生变化,你在各地看到的结果都是一样的。这就好像我们最近在看里约奥运会的直播,赛场上的球的运动轨迹,无论我们在北京看电视屏幕,还是在纽约看电视屏幕,我们看到的都是一样的运动轨迹,而如果我们不知道这是来自于同一场直播,那么我们就像量子科学家对这两个处于量子纠缠态的粒子那样,感觉到很奇妙,为什么他们的运动状态这么一致呢?

金刚经有云:“凡所有相,皆为虚妄”,不知与量子物理有没有关系。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\347\232\204\345\256\236\351\252\214\347\273\223\346\236\234/index.html" "b/p/\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\347\232\204\345\256\236\351\252\214\347\273\223\346\236\234/index.html" new file mode 100644 index 000000000..353de7bcc --- /dev/null +++ "b/p/\347\224\265\346\261\240\346\224\276\345\206\260\347\256\261\347\232\204\345\256\236\351\252\214\347\273\223\346\236\234/index.html" @@ -0,0 +1,11 @@ +电池放冰箱的实验结果 +

电池放冰箱的实验结果

做一个实验–关于把手机电池放冰箱里关于这个实验,是这样干的,我的那块旧手机电池电量用光后,先放到冰箱的冷冻室里,冻了48个小时,然后取出,使其自然升温,充电3个小时,充满。放入手机里开始使用,感觉与之前无明显区别,仍然是仅待机两天。不知是我处理的方法不对,还是这个流言本身就是假的。想想也是,要是手机电池冻一冻就能变成新的,那人家电池的生产厂家不早就饿死了?–由sbabybird于12/19/200708:13:00上午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\224\265\350\204\221\347\237\245\350\257\206/index.html" "b/p/\347\224\265\350\204\221\347\237\245\350\257\206/index.html" new file mode 100644 index 000000000..f2cd700ef --- /dev/null +++ "b/p/\347\224\265\350\204\221\347\237\245\350\257\206/index.html" @@ -0,0 +1,11 @@ +电脑知识 +

电脑知识

电脑知识今天在greader上看了一篇文章,说是掌握了这些电脑知识就可以怎样怎样,我一看,写的都是些windows系统的操作技巧,有些见过,有些极为偏门。

恩,有点儿意思,我就曾经错误的以为这些windows技巧就是电脑知识。

大学的时候,当老师喷着唾沫讲解进程调度时,我正在研究如何修改win98的启动画面,当别人抱着书学习数据结构的时候,我却把如何修改win98资源管理器的脚本使其可预览mp3文件的技巧视为珍宝。

可是这有个屁用,现谁还用这些玩意儿?

干活儿时搞不定问题了还得去翻书,那里面才称得上是真正的知识吧(也得看是什么书)。

嘿嘿,说规说,我还是迅速地把这篇"知识"文章收藏了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\225\231\346\204\217\344\272\206\344\270\200\344\270\213\346\210\221\347\232\204blog\350\257\204\350\256\272/index.html" "b/p/\347\225\231\346\204\217\344\272\206\344\270\200\344\270\213\346\210\221\347\232\204blog\350\257\204\350\256\272/index.html" new file mode 100644 index 000000000..541f3e1e7 --- /dev/null +++ "b/p/\347\225\231\346\204\217\344\272\206\344\270\200\344\270\213\346\210\221\347\232\204blog\350\257\204\350\256\272/index.html" @@ -0,0 +1,11 @@ +留意了一下我的blog评论 +

留意了一下我的blog评论

无意间看到我写的几篇日志竟有人评论,想不到这个我发发牢骚的地方竟还有人访问哈。

而且,看起来,我写的颇为不错(嘻嘻)。

ps:感谢SEA同学的捧场。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\227\233\347\227\233\345\277\253\345\277\253\346\211\223\344\272\206\345\234\272\347\257\256\347\220\203/index.html" "b/p/\347\227\233\347\227\233\345\277\253\345\277\253\346\211\223\344\272\206\345\234\272\347\257\256\347\220\203/index.html" new file mode 100644 index 000000000..c245a36ee --- /dev/null +++ "b/p/\347\227\233\347\227\233\345\277\253\345\277\253\346\211\223\344\272\206\345\234\272\347\257\256\347\220\203/index.html" @@ -0,0 +1,11 @@ +痛痛快快打了场篮球 +

痛痛快快打了场篮球

今天要打篮球,开始时我还担心今天会下雨,因为按照以往的惯例,只要我们想打球,天气往往是立即下雨(这样的)。

不过还好,今天天气很不错,非常配合,没有刮风也没有下雨,一切照常进行,还没下班我就迫不及待地把我的装备找了出来,n年前(n<4)的队服,上书醒目的11号外加公司logo,穿上球鞋,给篮球使劲儿打满气。

其实至少有1年没碰篮球了,而且也没有其他的运动,不出所料,刚上场不一会儿,我就气喘吁吁,汗流浃背,两股战战几欲先走。

不过等慢慢活动一阵儿之后,开始恢复手感,投进几球后渐入佳境,4v4淘汰赛也把别的队给虐下去了几盘,恍惚之间我又仿佛回到了18+的年纪。

不过毕竟是28+了,蹦了不到一个钟头就再也没力气了,如果没有意外的话,明天肯定是浑身腰疼,现在只想再按照惯例喝杯冰镇啤酒,可惜我答应老爸不再喝啤酒了,还是白酒算了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\227\264\350\277\267/index.html" "b/p/\347\227\264\350\277\267/index.html" new file mode 100644 index 000000000..e5c267fdf --- /dev/null +++ "b/p/\347\227\264\350\277\267/index.html" @@ -0,0 +1,11 @@ +痴迷 +

痴迷

今天的气温在极冷的情况下又骤降,这是我遇到的最冷的冬天了,走在路上,鼻涕先给冻出来然后再给冻回去最后结成冰。

最近十分痴迷于在我的小笔记本上试验各种版本的操作系统,今天继续。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\231\275\347\236\216\344\272\206\350\277\231\344\271\210\345\245\275\347\232\204\346\234\210\344\272\256/index.html" "b/p/\347\231\275\347\236\216\344\272\206\350\277\231\344\271\210\345\245\275\347\232\204\346\234\210\344\272\256/index.html" new file mode 100644 index 000000000..28d602226 --- /dev/null +++ "b/p/\347\231\275\347\236\216\344\272\206\350\277\231\344\271\210\345\245\275\347\232\204\346\234\210\344\272\256/index.html" @@ -0,0 +1,11 @@ +白瞎了这么好的月亮 +

白瞎了这么好的月亮

今夜星光灿烂,今晚月色撩人,据传闻今晚月亮正好处在与地球相聚最近的位置,所以应该开起来特别的大。

刚刚跑步的时候,证实了这一说法,月亮果然又大又圆,感觉就在我家楼顶上似的,我忍不住跑回去拿出相机来拍照。

结果是让人失望的,我的相机既没有三脚架,也没有好镜头,再搭上我这个糟糕的摄影师,真是白瞎了这么好的月光了,我在寒风中冻得瑟瑟发抖,鼻涕都快滴到液晶屏幕上了,照片要么漆黑一片,要么抖得天上到处是月亮,唉!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\233\270\350\247\201\346\201\250\346\231\232-yobo\345\217\213\346\222\255-yobo.com/index.html" "b/p/\347\233\270\350\247\201\346\201\250\346\231\232-yobo\345\217\213\346\222\255-yobo.com/index.html" new file mode 100644 index 000000000..4ddb7bfc4 --- /dev/null +++ "b/p/\347\233\270\350\247\201\346\201\250\346\231\232-yobo\345\217\213\346\222\255-yobo.com/index.html" @@ -0,0 +1,11 @@ +相见恨晚-YOBO(友播-yobo.com)! +

相见恨晚-YOBO(友播-yobo.com)!

忍不住要推广一个WEB2.o站点:在Diglog上发现了这个在线音乐站点,非常棒的音乐体验!

进去之后首先进行一个小小的心理测试,这样网站就知道了我的音乐口味(基本上挺准确的),然后自动的挑了一些曲子放给我听,连接速度非常快,丝毫没有停顿的感觉,就像是在听本地文件。

听了一会儿我才发现这个网站是个巨大的曲库,分类很清晰,可以随时输入歌手名或者歌曲名搜索歌曲,老歌新歌都有,曲目丰富的令人发指。

听完点播的歌曲之后系统会自动挑一些与此歌类似的曲子播放,有时候关联的挺准,但有时就太跳跃了,从一个古典的古筝曲子一下跳到了一首流行歌曲上来了。

总之,这是个不错的站点,让我再感叹一声:"Web2.0就是好啊!"PS:不知道这么多中外曲目的版权问题是怎么搞定的。

再PS:希望她能像last.fm那样推出客户端软件,这样就不用总开着网页听歌了。

再再PS:希望YOBO的中文名字改一改,叫这个有点儿俗气。

–由sbabybird于1/14/200804:04:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\234\213\345\256\214\344\272\206\345\217\266\351\227\256\345\277\203\346\203\205\346\262\211\351\207\215\345\234\260\345\216\273\346\264\227\346\276\241\344\272\206/index.html" "b/p/\347\234\213\345\256\214\344\272\206\345\217\266\351\227\256\345\277\203\346\203\205\346\262\211\351\207\215\345\234\260\345\216\273\346\264\227\346\276\241\344\272\206/index.html" new file mode 100644 index 000000000..889812266 --- /dev/null +++ "b/p/\347\234\213\345\256\214\344\272\206\345\217\266\351\227\256\345\277\203\346\203\205\346\262\211\351\207\215\345\234\260\345\216\273\346\264\227\346\276\241\344\272\206/index.html" @@ -0,0 +1,11 @@ +看完了《叶问》,心情沉重地去洗澡了 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-1.JPG" "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-1.JPG" new file mode 100644 index 000000000..424b0520c Binary files /dev/null and "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-1.JPG" differ diff --git "a/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-2.JPG" "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-2.JPG" new file mode 100644 index 000000000..6dd95ff27 Binary files /dev/null and "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-2.JPG" differ diff --git "a/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-3.JPG" "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-3.JPG" new file mode 100644 index 000000000..7d084d826 Binary files /dev/null and "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-3.JPG" differ diff --git "a/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-4.JPG" "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-4.JPG" new file mode 100644 index 000000000..c73754a8d Binary files /dev/null and "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219-4.JPG" differ diff --git "a/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219.JPG" "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219.JPG" new file mode 100644 index 000000000..43e7f1551 Binary files /dev/null and "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219.JPG" differ diff --git "a/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_120x120_fill_q75_box_smart1.JPG" "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_120x120_fill_q75_box_smart1.JPG" new file mode 100644 index 000000000..3eb96448a Binary files /dev/null and "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_120x120_fill_q75_box_smart1.JPG" differ diff --git "a/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_1600x0_resize_q75_box.JPG" "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_1600x0_resize_q75_box.JPG" new file mode 100644 index 000000000..eb612acc5 Binary files /dev/null and "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_1600x0_resize_q75_box.JPG" differ diff --git "a/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_800x0_resize_q75_box.JPG" "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_800x0_resize_q75_box.JPG" new file mode 100644 index 000000000..367432e85 Binary files /dev/null and "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_800x0_resize_q75_box.JPG" differ diff --git "a/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/index.html" "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/index.html" new file mode 100644 index 000000000..1b31c755c --- /dev/null +++ "b/p/\347\234\213\347\234\213\347\211\233\344\272\272\347\224\250\347\272\270\347\256\261\350\207\252\345\210\266\347\232\204\347\224\265\350\204\221\346\234\272\347\256\261/index.html" @@ -0,0 +1,15 @@ +看看牛人用纸箱自制的电脑机箱! +
Featured image of post 看看牛人用纸箱自制的电脑机箱!

看看牛人用纸箱自制的电脑机箱!

+ + + +有句话说的好:"牛人无处不在!"公司一哥们儿用笔记本电脑的包装箱DIY了一个电脑机箱,用起来挺爽,就是不知道散热咋样儿!还有就是好像还没有加光驱。看起来挺象那么回事儿吧?呵呵,还是联想的纸箱子。放倒了再看看接口部分,该有的都有。千万别以为是联想新出的pc啊!为了给cpu散热,所以上面也开了个口cpu和cpu风扇–由sbabybird于12/19/200705:50:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\234\213\350\247\201\344\272\206\345\275\251\350\231\271/index.html" "b/p/\347\234\213\350\247\201\344\272\206\345\275\251\350\231\271/index.html" new file mode 100644 index 000000000..11b76e932 --- /dev/null +++ "b/p/\347\234\213\350\247\201\344\272\206\345\275\251\350\231\271/index.html" @@ -0,0 +1,11 @@ +看见了彩虹 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\234\237\346\230\257\344\270\252\344\270\215\351\224\231\347\232\204\345\244\251\346\260\224/index.html" "b/p/\347\234\237\346\230\257\344\270\252\344\270\215\351\224\231\347\232\204\345\244\251\346\260\224/index.html" new file mode 100644 index 000000000..6634be2bb --- /dev/null +++ "b/p/\347\234\237\346\230\257\344\270\252\344\270\215\351\224\231\347\232\204\345\244\251\346\260\224/index.html" @@ -0,0 +1,11 @@ +真是个不错的天气 +

真是个不错的天气

虽然理论上已是春天,可是很显然今年真正的春天要比往年来得要晚一些。

星期天的早晨不太想睡懒觉,拉开窗帘就看见大雪纷飞的天气,恩,这种天气最适合缩在家里,看个电影或者看看书,总之,是个适合宅在家里的天气。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\234\237\346\255\243\347\211\233\351\200\274\347\232\204\344\272\272\347\273\210\347\251\266\344\274\232\347\211\233\351\200\274\350\265\267\346\235\245/index.html" "b/p/\347\234\237\346\255\243\347\211\233\351\200\274\347\232\204\344\272\272\347\273\210\347\251\266\344\274\232\347\211\233\351\200\274\350\265\267\346\235\245/index.html" new file mode 100644 index 000000000..d9b7f5fd2 --- /dev/null +++ "b/p/\347\234\237\346\255\243\347\211\233\351\200\274\347\232\204\344\272\272\347\273\210\347\251\266\344\274\232\347\211\233\351\200\274\350\265\267\346\235\245/index.html" @@ -0,0 +1,11 @@ +真正牛逼的人,终究会牛逼起来! +

真正牛逼的人,终究会牛逼起来!

一个胖子,一个相貌平平而且豁牙的胖子,一个相貌平平而且豁牙的卖手机的胖子。

这样的人参加选秀节目,如果你是评委的话,你会让他通过海选吗?

如果他告诉你他要表演的是歌剧的话,你会跳下评委台把它踢出演播厅吗?!

我想你会的,因为当时英国的那个选秀节目的评委也是这样想的。

PaulPotts,这个我刚刚看到的英国小伙子,就是这样参加选秀节目的。

当他极不自然地站在舞台上,傻傻地告诉评委他要表演歌剧,评委们都笑了,表现得有些不耐烦。

可是,当他深情地唱起今夜无人入眠,当他那与帕瓦罗蒂一样激昂的男高音在演播厅响起时,赛场沸腾了!所有的人都站了起来,评委刁在嘴里的铅笔掉了下来,掌声雷动!

这段由朋友发过来、我甚至懒得看的视频,看得我头皮发麻。

在起了一身鸡皮疙瘩后,我的眼睛也不争气地湿润了(震撼,感动)。

看了别人写的介绍,我了解到,这个叫Paul的小伙子有着不太顺利的人生际遇(大多数人如此吧),但是他从未怀疑过自己的理想,仍然执着地追求着歌剧表演的艺术魅力,直到他被生活所逼而不得不靠卖手机来糊口时,仍未放弃!

终于,上天给了他最后一次机会,他成功了,他向世人再一次的证明了:真正牛逼的人,终究会牛逼起来!试了一下,msn的空间居然还可以插入视频!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\234\237\346\255\243\347\232\204\344\271\246\346\236\266\347\256\261/index.html" "b/p/\347\234\237\346\255\243\347\232\204\344\271\246\346\236\266\347\256\261/index.html" new file mode 100644 index 000000000..a9938ce5d --- /dev/null +++ "b/p/\347\234\237\346\255\243\347\232\204\344\271\246\346\236\266\347\256\261/index.html" @@ -0,0 +1,11 @@ +真正的“书架箱” +

真正的“书架箱”

昨天花了一下午的时间把我的书柜和电脑重新整理了一遍,把惠威的2.1音箱移到了显示器旁边,把漫步者2.0的移到了书架的二层,与书挤在了一起,成了名副其实的书架箱。

电脑机箱后面的连线乱成了一锅粥,费了很大的劲才整理通顺。

现在,音箱与书柜成为一个整体,整个书柜便是一个巨大的音箱,用来听音乐那叫一个爽!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\234\274\344\277\235\345\201\245\346\223\215/index.html" "b/p/\347\234\274\344\277\235\345\201\245\346\223\215/index.html" new file mode 100644 index 000000000..908d994ab --- /dev/null +++ "b/p/\347\234\274\344\277\235\345\201\245\346\223\215/index.html" @@ -0,0 +1,11 @@ +眼保健操 +

眼保健操

我引以为傲的视力下降了,由于长期盯住屏幕的缘故,导致了一百多度的近视,最近狂做眼保健操,发誓要看清我对面墙的贴纸上的字。不过不怎么有效,刚才我忍不住凑上去看了看,发现贴纸没了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\243\201\345\270\246\346\203\205\350\212\202/index.html" "b/p/\347\243\201\345\270\246\346\203\205\350\212\202/index.html" new file mode 100644 index 000000000..612e0365a --- /dev/null +++ "b/p/\347\243\201\345\270\246\346\203\205\350\212\202/index.html" @@ -0,0 +1,11 @@ +磁带情节 +

磁带情节

你觉得经典的东西,其实只是你年轻的时候喜欢的东西罢了。

周日的下午,听说要下雪和降温,看不进去书,摆弄了一会儿电脑,关掉浏览器,干脆听会儿歌吧。听着听着突然就想到创建一个歌单,将我原来买磁带听的歌都找到存起来吧。

现在已经没有人再听磁带了,别说磁带,现在通过网络获取音乐这么方便,连CD也几乎绝迹了,当然据说现在仍然有部分人怀抱着黑胶唱片不放,但我没有经历过黑胶的黄金时代,从最一开始听的就是磁带。

在有MP3之前,听歌是一个很具有仪式感的事情,因为需要很多步骤(比把大象关冰箱里还麻烦),你得从你的磁带架子(或盒子)上认真挑选一盒你想听的,如果你的磁带很多,当你的手指划过一排包装或精美或粗糙的塑料盒时,你会陷入短暂的沉思,仿佛先将歌曲在大脑里播放一遍似的,然后你按开录音机的仓门,认清磁带的AB面,然后轻轻放进去,再合上。按下播放键,磁头划过空白会出现一些沙沙声。

虽然录音机也有快进的功能,但是一般很少用,因为跟CD和电脑的那种“非线性”切歌方式不同(一下就能下一首),磁带是线性的,想听下一首就得等待磁带一点点转过去。如果是随身听的话,为了省电就更不舍得使用快进的功能了,只能老老实实一首接一首听完。后来,在使用随身听的时候,我们发明了使用笔杆快速卷动磁带的方法,拿一个圆珠笔插在磁带孔上,甩动磁带使得磁带盒随着惯性迅速旋转,即可达到快进的目的,以至于我后来练就了直接用笔就能转到想听的任意一首歌的本领。

磁带的音质还是不错的,可能那个时候没听过数字音乐的缘故吧,从我的记忆来说,磁带特有的那种模拟电路温暖音色,要比现在的MP3强多了,即使现在的一些CD也比不了。有时候听久了,会觉得音质越来越差,这个时候如果不是因为那种质量特别次的盗版磁带的话,一般就是录音机的磁头脏了,解决办法很简单,拿一团棉花蘸上一些酒精(如果没有酒精也可用高度白酒代替),轻轻擦拭一下磁头就行了,保证立竿见影,声音一下子就亮了许多。有钱的人家会更讲究一些,会买那种专用的清洗带,长的跟磁带一样,但是里面装的不是歌曲而是空白的毛绒卷,走动的时候会自动将磁头擦干净(有点儿类似于后来的VCD清洗碟)。

我现在购买了网易云音乐的账号,所以即使是从网上下载的也算是正版音乐吧,现在有很多人不能接受听首歌还得花钱,觉得那些音乐人是不是想钱想疯了,可能他们都没有经历过买磁带听歌的日子吧,从性价比上来说,那时听歌可比现在贵多了,一盒正版磁带几十块,好一点儿的盗版也得十来块(要是算上通货膨胀的话,怎么着也得相当于现在的一百块吧,要是按房价算就更贵了)。一盒磁带一般也就容纳十来首歌,有些出版商为了多装几首歌,只得降低歌曲长度将每首歌都截取了一半放上去,或者干脆来那种四十首或八十首的大联唱(港台叫大串烧),这种听着就没劲了,一首歌刚唱几句就开始下一首了。

今年十一的时候,我回到村里的老家,想办法找到了我以前装书和杂物的柜子。无奈时间太久了,我现在只能翻出一些DVD、VCD和CD了,磁带一盒也找不到了,每想到此,心里都惋惜不已。

附:我创建的歌单(都是磁带时听的,后来买CD听的不算,每一首都听了不下百遍,唱K的时候全部不需要看歌词)链接 http://music.163.com/#/m/playlist?id=515310127&userid=2998061

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\245\235\346\210\221\347\224\237\346\227\245\345\277\253\344\271\220/index.html" "b/p/\347\245\235\346\210\221\347\224\237\346\227\245\345\277\253\344\271\220/index.html" new file mode 100644 index 000000000..69a450511 --- /dev/null +++ "b/p/\347\245\235\346\210\221\347\224\237\346\227\245\345\277\253\344\271\220/index.html" @@ -0,0 +1,11 @@ +祝我生日快乐! +

祝我生日快乐!

一大早就收到家人发来的祝福短信,原来今天是我的生日。

逐个回复短信之后,我慢慢回想,掏出计算器算了算,哦是的,原来我已经二十八了。

他们说:“生日快乐!”,没错,快乐最重要,我想,和十年前的想法一样,到了今天我还是认为快乐最重要。

潜在的意思就是玩儿最重要,只不过十年前我玩儿起来是骑着摩托车约着一群怀疑人生的青少年去疯狂飚车,或者是跳到半腰深的河里去捉鱼,或者是带着漂亮的女生一起谈论理想(现在已是我的老婆)等等。

十年后的今天玩的仅是一些虚无缥缈的东西,比如曾经以为永远也学不会的编程现在用来吃饭,生活就是这样,玩玩电脑偶尔也被电脑玩玩。

仔细地想一想,岁月还真是不饶人哩,小时候的玩伴大都不再联系,老爸老妈的鬓角也渐渐染上了白霜,时间就这样一年年过去,不断地得到也不断地失去,唯一能保持不变的以许就是一颗追求快乐的心吧。

今天是我的生日,祝我生日快乐,也愿我的家人幸福快乐。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\245\235\347\210\270\347\210\270\350\212\202\346\227\245\345\277\253\344\271\220/index.html" "b/p/\347\245\235\347\210\270\347\210\270\350\212\202\346\227\245\345\277\253\344\271\220/index.html" new file mode 100644 index 000000000..636509043 --- /dev/null +++ "b/p/\347\245\235\347\210\270\347\210\270\350\212\202\346\227\245\345\277\253\344\271\220/index.html" @@ -0,0 +1,11 @@ +祝爸爸节日快乐 +

祝爸爸节日快乐

前一段时间,老爸在qq上和我视频,见我头发稍长,便催我尽快去理发。

这事儿他催了我好几个星期了,但是天高皇帝远,将在外君命有所不受,我一直没去。

我之所以没去,第一是因为我十分讨厌现在的理发店动不动就让我办卡,而且理发师也都很娘娘腔,唠唠叨叨个没完,第二是因为我有那么一点儿的叛逆心理,老人家想让我头发剪短显得精神一点,我还就想拿头发盖住耳朵显得颓废些,当然了,我并不是想培养那种长发半月不洗、胡茬上沾满饭粒的那种艺术家气质。

从毕业后踏入社会到现在,我一直踏实工作,刻苦努力,从未有过吊儿郎当的岁月,花天酒地我没干过,打架群殴我没凑过热闹,打牌搓麻我更是没有兴趣,也就是听听音乐看看书,说实话我都替我老爸有这么个省心的儿子感到高兴。

等一下,我说跑题了,今天是父亲节本来想夸夸老爸,怎么话题扯到我身上了。

老爸身材高大魁梧(略胖),声如洪钟,气质不凡。虽说现在已是五十多岁,但只要稍作打扮,说他是四十来岁的小伙子都不过分。

老爸是个教师,工作勤勤恳恳、一丝不苟,为祖国的教育事业做出了卓越贡献,成功地把我培养成一个正直乐观的人。

由于他们那一代人是结结实实挨过饿的,所以他最痛恨的就是浪费粮食,东西吃不完也不允许我们扔掉,只得勉强吃下,结果吃成了一个看上去颇具成功人士气质的胖子,好在他脾气还凑合,面对我们对他肚子无情的嘲笑,他总是一笑了之。

老爸从小受苦,在家里排行老大,在那个贫瘠的年代,早早地站出来把家里的事儿都撑了起来。

所以他在叔叔们面前基本具备家长威严,都比较尊敬他。

由于很小就出来磨练,老爸练就了一身社交能力,信奉以德服人,人缘那是相当好,喝酒那是相当能喝,办事儿那是相当利索。

要说优点,当然是说不完的,但是我比较欣赏他的一个优点就是他“动手”能力差,所以我在挨揍的季节并没有挨过他的揍。

呵呵,开个玩笑,他动手能力是差点儿,修理东西不会,这就给我很好的机会,我基本上从小学就把维修家里东西的业务给接管了,小到接个灯泡开关,大到修理冰箱洗衣机,反正他们敢让我修我就敢修。

好吧,现在我也当父亲了,也能体会当父亲的心情。

在这个父亲的节日里,衷心祝愿我的爸爸,身体健康,工作顺利。

并在我个人资料里“最崇拜的人”那一栏谨慎地填上了“父亲”。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\247\213\345\244\251\346\211\223\351\233\267\345\220\227/index.html" "b/p/\347\247\213\345\244\251\346\211\223\351\233\267\345\220\227/index.html" new file mode 100644 index 000000000..e88991e62 --- /dev/null +++ "b/p/\347\247\213\345\244\251\346\211\223\351\233\267\345\220\227/index.html" @@ -0,0 +1,11 @@ +秋天打雷吗 +

秋天打雷吗

到网上搜搜“秋天打雷吗”,发现还真有人问这个问题,我来告诉你吧,答案是肯定的!

昨晚打了大半夜的雷,对于本来就有“周末睡眠障碍”的我来说真是雪上加霜,一道道闪电把窗帘的影子投在床上,好恐怖啊。之前我也以为秋天不会打雷,直到被巨大的声音惊醒的时候我还以为有敏感词搞敏感词被敏感词了呢,靠,最近因为敏感词要举办敏感词弄得的大家都紧张兮兮的。好吧,秋天会打雷,sowhat?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\247\213\345\244\251\347\232\204\347\224\260\351\207\216/index.html" "b/p/\347\247\213\345\244\251\347\232\204\347\224\260\351\207\216/index.html" new file mode 100644 index 000000000..f6c495611 --- /dev/null +++ "b/p/\347\247\213\345\244\251\347\232\204\347\224\260\351\207\216/index.html" @@ -0,0 +1,11 @@ +秋天的田野 +

秋天的田野

我记忆中关于秋天的美好全都在田野里。

记忆里的秋天是收获的季节,小学的课本里就有课文专门描述这个季节的美好:“高粱涨红了脸,稻子笑弯了腰”,我只记住了这一句。

对于几岁的孩子来说,农忙的事情不用操心,即使去地里也是以撒欢为主,虽然欣赏不来万里无云的晴空和一片金黄的丰收景色,但是可以吃啊,到处都是好吃的。

有一种野浆果,具体在生物书上该叫什么名字,我也不知道,我们老家那儿管它叫“香不溜”。长在秋天的庄稼地里,枝叶也不茂盛,不太容易被发现,如果不注意的话,很难跟其他野草棵子区分出来。但是果实极为好吃,酸中带甜,还伴有浓浓的香味儿,是我小时候能吃到的最好吃的“水果”。遗憾的是,由于会影响庄稼生长,这种东西一般都会被作为野草被拔去,到了收获的季节,能够躲过重重除草工作并坚持结果儿成熟的可不多,也就是说,这种果子不会天天遇见,偶尔能吃到一颗就撞了大运了。但正是这种稀缺性使得它吃起来的味道更加美好,如果能碰到熟透的,当然最好,碰见了半生的,也会迫不及待地吃掉,如果恰好碰上刚结果还没长熟,我一般是先记住位置,然后天天去看,等到成熟了再去吃(前提是没有被别人捷足先登,这事儿时常发生)。不过小时候下地的时间并不多,我吃香不溜最大的供货源还是来自于我的爷爷(从地里给我带回来的),别的记不起来了,只记得爷爷下地回来我跳起来掏他的口袋,希望能从里面找到几颗香不溜的情景。

还有一种野生的“瓜”,想象一下,把西瓜按照比例缩小50倍,就像一颗玻璃球那么大,但是外观完全一样,只不过皮儿是软的,土名儿叫“马炮”。瓜秧漫长,顺着玉米杆的根儿生长,跑太快如果不注意的话还会被绊倒,上面结了成串儿的果实,虽然吃起来味道差一些,好在随处可见,就算是不吃也能拿着玩耍,小圆球可以拿来做各种有意思的游戏,就算是不做游戏,把马炮放在地上用力一踩,也会卟嗞一声爆炸,每个人脸上都笑开颜。

以上说的都是可以生吃的,对于地里刚刚成熟或即将成熟的庄稼来说,吃起来往往需要加工一下。

说是加工,其实也没那么复杂,顶多就用火烤一下。秋天的地里最不怕火,有成堆的秸秆和叶子可以作为燃料,在地里点燃后还能作为肥料,如果能顺便烤一下吃的,真是一举两得。

大豆不能等到完全成熟再烤来吃,那样就太硬了,最好是在豆荚还青青的泛着一点儿黄的时候直接连根拔掉,然后整棵整棵的放在火里,到不了一根烟的功夫,香气就从火堆里飘出来了,这个时候最好别嫌烫手,赶紧抓起来,剥开豆荚,将还正在冒着热气的青豆一把一把的放在嘴里,香的保证你忘了所有的烦恼。

花生和红薯,饿了的时候,直接从地里扒出来就可以吃,但是生的吃多了对肚子不好,所以一般也是烤熟才吃,不过吃起来就没那么方便了,一般费的功夫要稍微大一些。尤其是红薯,不能用大火,否则皮焦骨头生,表皮都黑了,里面还是生硬的。最好整块扔在刚烤完青豆的火堆里,不用搭理它,先去玩会儿别的,等到天快黑的时候,再从灰烬里将红薯慢慢扒出来,熟透的红薯绵软可口,甜的让人掉牙。现在大街上卖的烤红薯闻着很香,吃起来比起我们在地里吃的就逊色不少了,一方面可能是因为现在嘴刁了,另一方面估计也跟小时候吃红薯之前那漫长的等待有关。

说了这么半天吃的,好像跟想象中金色的画卷不太一样,但是,秋天的田野是大自然对于没有零食可吃的农村孩子最好的馈赠。。。。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\250\213\345\272\217\345\221\230\347\232\204\350\207\252\346\210\221\344\277\256\345\205\273/index.html" "b/p/\347\250\213\345\272\217\345\221\230\347\232\204\350\207\252\346\210\221\344\277\256\345\205\273/index.html" new file mode 100644 index 000000000..b8379626c --- /dev/null +++ "b/p/\347\250\213\345\272\217\345\221\230\347\232\204\350\207\252\346\210\221\344\277\256\345\205\273/index.html" @@ -0,0 +1,11 @@ +程序员的自我修养 +

程序员的自我修养

上次逛当当的时候,忍不住买了一本书–《一个程序员的自我修养》(副标题为:链接、装载与库),当时我说,就冲这个书名,哪怕里面全是白纸我也要买这本书。

因为我是周星驰的影迷,《喜剧之王》在我心里一直是周星驰的巅峰之作(别跟我提《大话西游》,台词我比你记得还熟)。

影片里的周星驰作为一个“死跑龙套”的“演员”,一直拿着的一本书就是《演员的自我修养》,那是他的梦想。每个编码的程序员其实心里或多或少都有一些代码情结,手里头捧着一本关于程序的书,就好象捧着自己的梦想似的。

抛开书上面的不说,说一说我所认为作为一个程序员应该具备哪些修养:

1、对程序、编码的热爱。如果不热爱编程,技术再牛逼也只能是一个代码工人。

2、谦虚好学的态度。

早就听说就有文人相轻的说法,做文章的瞧不起做文章的,其实很多程序员也一样,不知天高地厚,眼高手低,整天拿编程语言比来比去,在他们眼里别的程序员都是傻逼。

这些人就算是某个领域的“高手”,也绝对谈不上是一个合格的程序员。

3、团队协作能力。

自古有一个诸葛亮抵不上三个臭皮匠的说法,这话说的虽然有些绝对,但是也有一定的道理,如果一个程序员不能很好的和队友交流、合作,哪怕有三头六臂也很难成为一个出色的程序员。

4、安静平和的心态。

浮躁、急躁是技术人员最忌讳的心态,这当然不是指火烧到眉毛了还懒的动弹,而是说遇到问题能够冷静的分析并作出准确的判断。

这一点上有些人真让我望尘莫及,后天可以锻炼,但我觉得天生的因素占很多。

5、自信。

鼻孔朝天也不好,但是没有自信更要命,总是不相信自己能够开发出成功的软件,或者怨天尤人以语言不通、国内环境为挡箭牌为自己开脱,这样永远也写不出像样的程序。就牢骚这么多吧,说起来永远比做起来轻松,以上观点纯属瞎掰,如有雷同,那实在是巧合。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\252\201\347\204\266\347\232\204\350\207\252\346\210\221/index.html" "b/p/\347\252\201\347\204\266\347\232\204\350\207\252\346\210\221/index.html" new file mode 100644 index 000000000..2a5d51438 --- /dev/null +++ "b/p/\347\252\201\347\204\266\347\232\204\350\207\252\346\210\221/index.html" @@ -0,0 +1,11 @@ +突然的自我 +

突然的自我

今天是二十四节气里的冬至,天气突然变得冷酷起来,冷得令人失去意识,我从来没有像今天这样觉得暖气片如此可爱,以至于我抱着它"亲热"了半天。

按照惯例,冬至要吃饺子,可是我一个人,既不想吃速冻的,又不想在家自己做,所以,晚饭我就准备出去吃了。

外面的天气比我想象的要冷的多得多,尤其是北风,吹得我站都站不稳,风不断从袖口、领口里钻进来,有一段时间我根本无法呼吸。

出了小区东门,过马路,看见一个热气腾腾的小菜馆,隐约能看见牌子上写有"水饺"字样,二话不说,撩起帘子钻了进去。

在这儿住了这么久,第一次发现这儿还有个饭馆,店面很小,门口是个涮麻辣烫的锅,几个贪吃的家伙正稀里哗啦地吃着麻辣烫,里面一共四张小桌子,铺着桌布,收拾得很干净,墙壁上挂了几串红辣椒,最里面是个小柜台,老板娘正低着头算账。

打过招呼,做了下来,"您整点儿啥?"听了老板的口音,我才发现这是东北小两口开的店,顿时觉得亲切起来,感觉这儿就像是《东北一家人》里面的"达达杀猪菜"(实际上这儿还真有杀猪菜)。

"有水饺吗?"我问他,"有,猪肉大葱、猪肉酸菜…","要猪肉酸菜的吧"我说。

"要多少?"他又接着问"像您这个头的怎么着也得一斤吧?",呵呵,我哪能吃得完一斤啊,为了不浪费粮食,我还是只要了半斤。

热气腾腾的饺子很快就端了上来,为了驱赶身上的严寒,我又要了一瓶二锅头(二两装),实际上,是这个馆子的氛围让我想喝两口,不知道为什么,看着忙碌的老板和老板娘,看着吃麻辣串的情侣,我抿了两口醇香的二锅头,眯起眼睛,突然感觉人生又美好起来……

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\254\224\347\255\222/20090315.jpg" "b/p/\347\254\224\347\255\222/20090315.jpg" new file mode 100644 index 000000000..ae062fa7b Binary files /dev/null and "b/p/\347\254\224\347\255\222/20090315.jpg" differ diff --git "a/p/\347\254\224\347\255\222/20090315_hu37199544be19d6d590aeb3bc21327668_27443_120x120_fill_q75_box_smart1.jpg" "b/p/\347\254\224\347\255\222/20090315_hu37199544be19d6d590aeb3bc21327668_27443_120x120_fill_q75_box_smart1.jpg" new file mode 100644 index 000000000..a964ced54 Binary files /dev/null and "b/p/\347\254\224\347\255\222/20090315_hu37199544be19d6d590aeb3bc21327668_27443_120x120_fill_q75_box_smart1.jpg" differ diff --git "a/p/\347\254\224\347\255\222/20090315_hu37199544be19d6d590aeb3bc21327668_27443_1600x0_resize_q75_box.jpg" "b/p/\347\254\224\347\255\222/20090315_hu37199544be19d6d590aeb3bc21327668_27443_1600x0_resize_q75_box.jpg" new file mode 100644 index 000000000..89df94dba Binary files /dev/null and "b/p/\347\254\224\347\255\222/20090315_hu37199544be19d6d590aeb3bc21327668_27443_1600x0_resize_q75_box.jpg" differ diff --git "a/p/\347\254\224\347\255\222/20090315_hu37199544be19d6d590aeb3bc21327668_27443_800x0_resize_q75_box.jpg" "b/p/\347\254\224\347\255\222/20090315_hu37199544be19d6d590aeb3bc21327668_27443_800x0_resize_q75_box.jpg" new file mode 100644 index 000000000..5d964e873 Binary files /dev/null and "b/p/\347\254\224\347\255\222/20090315_hu37199544be19d6d590aeb3bc21327668_27443_800x0_resize_q75_box.jpg" differ diff --git "a/p/\347\254\224\347\255\222/index.html" "b/p/\347\254\224\347\255\222/index.html" new file mode 100644 index 000000000..c68ff2a63 --- /dev/null +++ "b/p/\347\254\224\347\255\222/index.html" @@ -0,0 +1,11 @@ +笔筒 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210.png" "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210.png" new file mode 100644 index 000000000..15d9f0d4f Binary files /dev/null and "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210.png" differ diff --git "a/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_120x120_fill_box_smart1_3.png" "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_120x120_fill_box_smart1_3.png" new file mode 100644 index 000000000..061573181 Binary files /dev/null and "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_120x120_fill_box_smart1_3.png" differ diff --git "a/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_1600x0_resize_box_3.png" "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_1600x0_resize_box_3.png" new file mode 100644 index 000000000..a2947edcb Binary files /dev/null and "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_1600x0_resize_box_3.png" differ diff --git "a/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_800x0_resize_box_3.png" "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_800x0_resize_box_3.png" new file mode 100644 index 000000000..d7ee8207b Binary files /dev/null and "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_800x0_resize_box_3.png" differ diff --git "a/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/index.html" "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/index.html" new file mode 100644 index 000000000..665417b76 --- /dev/null +++ "b/p/\347\254\254\344\270\200\345\234\272\351\233\252\345\240\265\350\275\246/index.html" @@ -0,0 +1,11 @@ +第一场雪&堵车 +
Featured image of post 第一场雪&堵车

第一场雪&堵车

早晨,出了门才知道下雪了,下的还不小,赶紧返回取雨伞。

在路灯的照射下,雪花还挺大的,好歹也是第一场雪,感觉挺不错的。

坐上车就傻眼了,公交车走的比蜗牛还慢,上高速的路口堵成一团,上了高速路还是堵成一团。

花了平时两倍的时间才到公司。

–由sbabybird于12/10/200709:23:00上午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\254\254\344\270\200\345\244\251\346\217\220\347\202\271\345\204\277\345\270\214\346\234\233/index.html" "b/p/\347\254\254\344\270\200\345\244\251\346\217\220\347\202\271\345\204\277\345\270\214\346\234\233/index.html" new file mode 100644 index 000000000..da7d6ebdf --- /dev/null +++ "b/p/\347\254\254\344\270\200\345\244\251\346\217\220\347\202\271\345\204\277\345\270\214\346\234\233/index.html" @@ -0,0 +1,11 @@ +第一天,提点儿希望 +

第一天,提点儿希望

今天是2009第一天,按照计划,我基本上在家宅了一天。

早晨起床后边洗热水澡边洗衣服,然后出去买菜,准备做我很久没吃到的牛肉饭。

等到七七八八收拾差不多的时候,也就上午十点多了,纲要休息会儿吃口饭,却发现手机里已经收了n多的新年短信,于是饭也顾不上吃,先把短信回复了再说,这几天移动又赚翻了。

然后就是上午下午各看一部电影,到了晚上去老杨家吃了顿饭,打了会儿牌,喝小酒喝得微醺。

总之,我的新年第一天,就是这么平凡地度过了,就像是一个普通的周末。晚上回到电脑前,向往博客里写点儿东西,又觉得脑子里空空的,本来还相对08年做个总结啥的,后来想想,实在是没什么好总结的,那就对09年提点儿希望吧。

想起我前两天列的一个09年的学习计划,这个计划十分贪婪,牵涉到各种技术和技能,感觉不是很靠谱,还是说一下大方向上的愿望吧。

我希望在2009年里,我能实现如下愿望。

1、英语水平飞速发展,可以正常阅读英文文档与小说(阅读能力要像看中文的《故事会》一样)。

2、体重增加到65公斤。

3、编程水平继续提高,主要在基础算法与数据结构方面。

4、掌握一种开源三维引擎。

5、vim的应用更上一个台阶,使vim彻底替代我机器上的编辑器。

6、能够用上3G。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\256\200\350\256\257/index.html" "b/p/\347\256\200\350\256\257/index.html" new file mode 100644 index 000000000..119f59fb7 --- /dev/null +++ "b/p/\347\256\200\350\256\257/index.html" @@ -0,0 +1,11 @@ +简讯 +

简讯

昨日,也就是平安夜,一年N度的节日会餐,在老居家隆重举行,出席宴会的有,大宝夫妇,小江夫妇,老杨夫妇及其儿子,会餐在亲切友好的气氛下进行,大家就共同关心的话题交换了意见,纷纷表示,鱼炖的不错,汤的味道更美!——路边社记者"从容地狂奔"在现场吃饱后发回的报道。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\256\227\346\263\225\345\257\274\350\256\272-\350\265\244\351\201\223\345\222\214\345\214\227\346\236\201\345\244\261\347\234\240/index.html" "b/p/\347\256\227\346\263\225\345\257\274\350\256\272-\350\265\244\351\201\223\345\222\214\345\214\227\346\236\201\345\244\261\347\234\240/index.html" new file mode 100644 index 000000000..767fb5a9f --- /dev/null +++ "b/p/\347\256\227\346\263\225\345\257\274\350\256\272-\350\265\244\351\201\223\345\222\214\345\214\227\346\236\201\345\244\261\347\234\240/index.html" @@ -0,0 +1,11 @@ +算法导论+《赤道和北极》=失眠 +

算法导论+《赤道和北极》=失眠

昨晚又严重失眠,本来想早早睡觉,便从书架上抽出一本比较枯燥的书(《计算机算法导论》)在睡前翻翻,我想这样可以很快睡着。

谁知竟越看越有精神,于是打开收音机,想找个唠叨的主持人催眠一下。

交通台正在放春晓主持的一档音乐节目,这个主持人声音比较有特点(就是那句:“身未动~~心已远~~让我们一起走吧~~~”)

正所谓:男有伍洲彤女有春晓,这俩人的节目用来边听边睡刚好。

忽听得一阵优美的吉他,竟是另一版本的《赤道和北极》,此歌旋律优美,再加上女歌手声线极美,不由得让人思绪万千。

此处省略1千字以后晚上再也不敢听这个音乐节目了,除非不想睡觉。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\256\241\347\220\206\345\215\201\350\257\253\350\257\273\344\271\246\347\254\224\350\256\260/index.html" "b/p/\347\256\241\347\220\206\345\215\201\350\257\253\350\257\273\344\271\246\347\254\224\350\256\260/index.html" new file mode 100644 index 000000000..b4a2ea98e --- /dev/null +++ "b/p/\347\256\241\347\220\206\345\215\201\350\257\253\350\257\273\344\271\246\347\254\224\350\256\260/index.html" @@ -0,0 +1,11 @@ +《管理十诫》读书笔记 +

《管理十诫》读书笔记

  1. 首先要通过分析知道问题是什么,才能真正洞悉解决问题的办法。
  2. 归根结底,所有公司最后的生命线都是信任问题,顾客要相信企业生产的产品正如它所许诺的那样好,投资者要相信公司的管理层是有能力的,员工要相信公司管理者能够兑现承诺。
  3. 他们根本想不到人都有缺陷,包括他们自己在内也都不是完美的。
  4. 问题的关键不在于机器会不会想问题,而在于人会不会想问题。
  5. 真正让我们陷入麻烦的并非那些我们根本不懂的东西,而是我们一知半解的东西。
  6. 有一种心理偏见叫做肯定的陷阱,它指的是我们努力想证明自己的观点,而非找出自己观点中的错误之处。
  7. 深思熟虑并不是浪费时间,而是必要之举。
  8. 除非有人能停下来想一想,否则一再犯同样的错误是很容易的。对每个错误都有必要进行反思和总结。
  9. 如果你能承认自己犯了错误,承认自己并不是战无不胜,那么你反而能得到好处。
  10. 管理是一门艺术,而不是一种科学。如果遇到那些想要量化人类行为的专家,你就要保持警惕了。
  11. 行业中的每个公司都应该力争标新立异,让自己变的与众不同,而不是随大溜。
  12. 要憎恨组织里的官僚作风——通用电气公司杰克·韦尔奇写给股东的信中写道。如果你想一事无成的话,那就让行政流程占据主导地位好了,去崇尚官僚主义就行了。
  13. 不能创造生产力的工作越努力越失败,要时刻警惕并搜寻身边那些并不能创造生产力的工作。
  14. 每个公司其实主要就是为现有的客户提供优质服务并努力开拓新客户群。我们在花每一分钱、设立每一个部门或是接手每一个项目时,都要问自己一个基本的问题:这能帮我们带来新客户或是为客户提供更好的服务吗?
  15. 将注意力放在失败上是最大的悲观主义。只要稍稍抬起你的头,改变一下你的态度,那么你的世界观就会发生巨大的变化。
Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\256\241\347\220\206\350\207\252\345\267\261\351\230\205\350\257\273\347\254\224\350\256\260/index.html" "b/p/\347\256\241\347\220\206\350\207\252\345\267\261\351\230\205\350\257\273\347\254\224\350\256\260/index.html" new file mode 100644 index 000000000..c98a21b75 --- /dev/null +++ "b/p/\347\256\241\347\220\206\350\207\252\345\267\261\351\230\205\350\257\273\347\254\224\350\256\260/index.html" @@ -0,0 +1,11 @@ +《管理自己》阅读笔记 +

《管理自己》阅读笔记

文章介绍

《管理自己(Management Yourself)》作者——彼得·德鲁克。该文是《哈佛商业评论》创刊以来重印次数最多的文章之一,节选自其著作《21世纪的管理挑战》。

我第一次读到这篇文章,是2013年在左岸读书的博客,当时很快就放入收藏夹,今日再次翻阅,仍觉受益匪浅。

摘抄部分在此记录,并附上自己的一些理解。

笔记

知识工作者必须成为自己的首席执行官。你应该在公司中开辟自己的天地,知道何时改变发展道路,并在可能长达50年的职业生涯中不断努力、干出实绩。要做好这些事情,你首先要对自己有深刻的认识——不仅清楚自己的优点和缺点,也知道自己是怎样学习新知识和与别人共事的,并且还明白自己的价值观是什么、自己又能在哪些方面做出最大贡献。因为只有当所有工作都从自己的长处着眼,你才能真正做到卓尔不群。

未来社会,体力劳动将逐渐被智能化机械所取代,人人都是知识工作者即将成为事实。每个人都需要把自己当作一个公司来看待,自己就是CEO,包揽人生的“市场”、“营销”、“生产”、“运营”等各项工作,只有从更高的视角来规划自己,才能掌握主动权,避免落入被动接受的局面。

与运营企业一样,经营自己的第一步还是要先了解自己,深刻认识自己的优势与不足,这样无论是制定计划还是付诸行动,才能做到目标明确、行之有效。

多数人都以为他们知道自己擅长什么。其实不然,更多的情况是,人们只知道自己不擅长什么——即便是在这一点上,人们也往往认识不清。然而,一个人要有所作为,只能靠发挥自己的长处,而如果从事自己不太擅长的工作是无法取得成就的,更不用说那些自己根本干不了的事情了。

这个观点跟我的直觉是相反的,在读到这段文字之前我以为自己对擅长什么了如指掌,但认真思索之后,才发现事情并没有那么简单,有些自以为是的优点根本不值得推敲,如沟通表达、对技术了解广泛、技术趋势敏感等等。至于真正做什么样的事情非常的得心应手,还真得通过认真分析才行。

要发现自己的长处,唯一途径就是回馈分析法(feedback analysis)。每当做出重要决定或采取重要行动时,你都可以事先记录下自己对结果的预期。9到 12个月后,再将实际结果与自己的预期比较。我们只要持之以恒地运用这个简单的方法,就能在较短的时间内(可能两三年),发现自己的长处——这是你需要知道的最重要的事情。在采用这种方法之后,你就能知道,自己正在做(或没有做)的哪些事情会让你的长处无法发挥出来。同时,你也将看到自己在哪些方面能力不是特别强。最后,你还将了解到自己在哪些方面完全不擅长,做不出成绩来。

作者给出了一个据说十分有效的方法,虽然执行起来略显繁琐且时间较长,但应该还值得一试。我个人有记录工作日志的习惯,但停留在时间消耗的记录和分析层面,并未对任务执行的结果进行预期和分析。

首先最重要的是,专注于你的长处,把自己放到那些能发挥长处的地方。其次,加强你的长处。第三,发现任何由于恃才傲物而造成的偏见和无知,并且加以克服。

想起了之前读到的另一本书《现在发现你的优势》,虽然木桶原理说要补充自己的短板,但这里的观点则强调要充分把自己的优势利用起来,并且进行加强,这样才能更好的发挥自己。当然,努力学习新技能、新知识,发现自己的偏见和不良习惯然后克服它们也很重要。

把预期和实际结果进行比较,也会发现自己不能做什么。我们每个人都有许多一窍不通、毫无天分的领域,在这些领域我们甚至连平庸的水平都达不到。人们,尤其是知识工作者,就不应该试图去完成这些领域的工作和任务。他们应该尽量少把精力浪费在那些不能胜任的领域上,因为从无能到平庸要比从一流到卓越需要人们付出多得多的努力。

深有体会,不应该将时间和经历消耗在自己即使努力也达不到平庸水平的事情上,然而现实中却有很多人在被动的做着这样的事情,甚至还抱有不切实际的幻想,人生苦短,早日醒悟早日改变。

我属于读者型,还是听者型?首先,你要搞清楚的是,你是读者型(习惯阅读信息)还是听者型(习惯听取信息)的人。绝大多数人甚至都不知道还有读者型和听者型之说,而且很少有人既是读者型又是听者型。知道自己属于哪种类型的人更少。

这一段不知是翻译的问题还是作者没说明白,文中并未定义“读者型”、“听者型”这两种类型的工作方式具体是如何工作的,只是通过例子强调了自己工作方式的不同所带来的巨大差异。我的猜测是,“读者型”应该指的是在工作中理性和逻辑思维占上风的人,通常通过阅读逻辑缜密的文字来规划和开展工作,而“听者型”则属于感性思维偏多,通过视觉、听觉来判断事物的发展。

如果一个组织的价值体系不为自己所接受或者与自己的价值观不相容,人们就会备感沮丧,工作效力低下。

不要试图改变自己的价值观,这只会让你倍感痛苦,你可以更换环境或者改变组织价值体系。

成功的事业不是预先规划的,而是在人们知道了自己的长处、工作方式和价值观后,准备把握机遇时水到渠成的。知道自己属于何处,可使一个勤奋、有能力但原本表现平平的普通人,变成出类拔萃的工作者。

机会留给有准备的人,但前提是这个人认识到自己的长处、工作方式、价值观,所谓的把握机会,是了解了这些之后才能识别到机会。

一般来说,一项计划的时间跨度如果超过了 18个月,就很难做到明确和具体。因此,在多数情况下我们应该提出的问题是:我在哪些方面能取得将在今后一年半内见效的结果?如何取得这样的结果?

千里之行始于足下,如果决定开始行动,也不可把计划定的太远,自己给自己安排近期可行的执行目标,对效果要有清晰的预期,对如何取得效果应有详细而具体的计划。

人与人之间相互信任,不一定意味着他们彼此喜欢对方,而是意味着彼此了解。因此,人们绝对有必要对自己的人际关系负责。这是一种义务。不管一个人是公司的一名成员,还是公司的顾问、供应商或经销商,他都需要对他的所有共事者负起这种责任。所谓共事者,是指在工作上他所依赖的同事以及依赖他的同事。

成熟的处理人际关系,同样需要问文章开头的三个问题,了解他人或者共事者,是我们的义务和责任。

在一个崇尚成功的社会里,拥有各种选择变得越来越重要。从历史上来看,却没有“成功”一说。绝大多数人只期望坚守“适当的位置”。唯一的流动性是向下的流动性。然而,在知识社会里,我们期望每一个人都能取得成功。这显然是不可能的。对许多人来说,能避免失败就行。可是有成功的地方,就会有失败。因此,有一个能够让人们做出贡献、发挥影响力或成为“大人物”的领域,这不仅对个人十分重要,对个人的家庭也同样重要。这意味着人们需要找到一个能够有机会成为领袖、受到尊重、取得成功的第二领域——可能是第二份职业,也可能是平行的职业或社会创业。

在飞速发展(或者说在加速发展)的时代,人人都在焦虑,仿佛竞争、内卷根本无法避免,但如果合理的认识自己、管理自己,并且去用心经营的话,也许人人都有机会可以在擅长的领域做出闪光的事情,获得一份自己独有的成就。

自我管理中面临的挑战看上去比较明显,甚至非常基本,其答案可能不言自明,甚至近乎幼稚。自我管理需要个人,尤其是知识工作者,做出以前从未做过的事情。实际上,自我管理需要每一个知识工作者在思想和行动上都要成为自己的首席执行官。

最后一段很关键,“做出以前从未做过的事情”,即行动最为重要。这也是为什么我会花费一个小时的时间,从头又阅读一遍这篇文章,并摘录下来加以分析理解的主要原因。

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\272\277\346\200\247\345\233\236\345\275\222\345\222\214\346\242\257\345\272\246\344\270\213\351\231\215/index.html" "b/p/\347\272\277\346\200\247\345\233\236\345\275\222\345\222\214\346\242\257\345\272\246\344\270\213\351\231\215/index.html" new file mode 100644 index 000000000..220a5ac89 --- /dev/null +++ "b/p/\347\272\277\346\200\247\345\233\236\345\275\222\345\222\214\346\242\257\345\272\246\344\270\213\351\231\215/index.html" @@ -0,0 +1,11 @@ +线性回归和梯度下降 +

线性回归和梯度下降

有监督学习的两种主要任务(分类和回归)

  • 有监督机器学习任务主要分为两种,一种是分类任务,一般是通过学习算法实现对未知数据的分类甄别,比如判断是男性还是女性,预测明天会不会下雨等等,预测结果是离散的分类。另一种是回归任务,用于预测一个具体的值,比如房价、年龄等等,预测结果是连续的值;
  • 解决回归任务比较常见的算法就是线性回归算法;

线性回归

  • 线性回归是最典型的用于回归任务的机器学习算法。它的基本原理是基于,任意一个为n的值,可以通过一个n-1阶的多项式进行拟合;
  • 线性回归的算法的目标是根据已知标签数据,训练一个预测函数f(a, b),使得x输入带入ax+b这样的多项式可以得出需要预测的值;
  • 所以目标是找到合适的a和b(从数学语言的精确描述来说,一般用别的符号代替,为了方便记录,我使用a和b);
  • 为了找到合适的a和b,需要定义一个损失函数(也有称为代价函数的),J(a, b),用于判断a和b是否合适,比较简单的有“方差均值”法;
  • 方差均值指的是,所有样本带入预测函数f,将预测值与实际值相减,取平方,求和再求平均数(暂时不知到markdown里如何加入公式);
  • 那么带入损失函数,就是意味着,找到合适的a、b使得刚才那个方差均值小于一个阈值(接近最优);
  • 线性回归本质上,是在平面坐标系里找到一个与样本匹配的直线,这样基于这个直线,即可预测未知的值;

梯度下降

  • 如何找到合适的a和b,一个一个地去试是不可能的(无穷多的计算量);
  • 比较典型的算法是“梯度下降”,又是牛顿起的头;
  • 比较生动的描述是,想想一个三维空间图形,X和Y平面是有a和b的值构成,Z轴是损失函数的值,值最小的部分(在图上就最低的部分,像一个山谷)就是最优解;
  • 从山顶的某个点上,环顾360度,找到适合下山的一小步,一点一点儿走向山谷最低处,有点像慢慢走楼梯,所以叫梯度下降;
  • 从我的体会来看,这个方法有点像牛顿那个计算平方根的迭代法(根据一个猜测值,然后通过迭代公式寻找一个更加接近正确值的值,直到误差降低到合适范围);
  • 从微积分的角度,就是找到损失函数J在最初尝试的那个点上的切线,并通过它的斜率(也就是导数值)乘以一个系数a,逐步逼近最低点(切线斜率为零)的过程;
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\273\203\344\271\240\345\220\211\344\273\226\347\232\204\345\277\203\345\276\227/index.html" "b/p/\347\273\203\344\271\240\345\220\211\344\273\226\347\232\204\345\277\203\345\276\227/index.html" new file mode 100644 index 000000000..057fbc313 --- /dev/null +++ "b/p/\347\273\203\344\271\240\345\220\211\344\273\226\347\232\204\345\277\203\345\276\227/index.html" @@ -0,0 +1,11 @@ +练习吉他的心得 +

练习吉他的心得

最近几个月来,感觉思维有些迟钝,记忆力有所下降,用脑过度导致。

考虑到每天需要休息一下脑子和眼睛,为了远离屏幕,我决定每天晚上活动活动手指(虽然敲键盘也是活动手指,但那是机械性的),弹弹吉他,正好重拾练习吉他的计划。

几天之后,感觉“颇有长进”,遂记录心得如下:

1、不要怕打扰到邻居。

以前我弹琴的时候,心里总是有个阴影,总觉得邻居正在把耳朵贴在墙上偷听我弹琴,这样一来我就不好意思弹的太大声,不敢弹的太难听,可是又不会弹好听,每次都几乎是看着谱子在心中默念,这样的话就像哑巴英语似的永远也甭想弹好。

后来我干脆想,反正邻居养了狗,叫声也挺大,吵了我这么久我都不放在心上,我弹吉它吵他们也算是扯平了,再者说了,狗叫要难听多了。

2、不要在洗脚的时候练琴。

这是一个很不好的习惯,源自我对时间管理的偏执。

有段时间我觉得每天洗脚的这段时间被白白浪费了,我想,要是每次洗脚都认真看一篇文章的话我很快都能成为文学家了,可是我对文学没有兴趣,于是我选择了弹吉他。

而且养成洗脚要弹吉他的毛病,就连老家也专门放了一把琴,洗脚专用。

结果可想而知,我弹吉他的水平越来越臭。

3、认真练习音阶和节奏。

总算说到正经的了,音阶和节奏一直被我忽视,从来都是由着性子来,自负胸中有谱,想到哪里弹到哪里,不管琴弦按的对不对速度是否正确。

结果到现在我仍然不能完整的弹奏任何一支曲子。

现在每次我都认真练习十分钟的音阶并且开着电子琴用于矫正节奏,几天下来,感觉手指灵活了许多(当然是针对以前说的)。

4、弹自己喜欢的曲子并投入进去。

这个没什么可说的,只有自己喜欢的曲子才有可能投入进去,也只有投入进去才能觉得弹琴是很幸福的事情。

当然现在距离人琴合一的境界还差一些,也许再过个三五年,或者三五十年可以达到。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\273\210\344\272\216\346\224\266\345\210\260google-wave\347\232\204\346\277\200\346\264\273\351\202\200\350\257\267/index.html" "b/p/\347\273\210\344\272\216\346\224\266\345\210\260google-wave\347\232\204\346\277\200\346\264\273\351\202\200\350\257\267/index.html" new file mode 100644 index 000000000..b1875fe42 --- /dev/null +++ "b/p/\347\273\210\344\272\216\346\224\266\345\210\260google-wave\347\232\204\346\277\200\346\264\273\351\202\200\350\257\267/index.html" @@ -0,0 +1,11 @@ +终于收到google wave的激活邀请! +

终于收到google wave的激活邀请!

终于收到googlewave的激活邀请!

在我苦苦等待几个月之后,就在今天下午,我终于收到了googlewave的激活邀请!赶紧点击进入,由于之前已经看过了很多关于它的报道与评测,所以对界面也没有什么新鲜感了,总体感觉还不错,由于周围的朋友只有我收到了邀请,联系人列表里还空空如也,所以目前只能随便耍耍,不能充分发挥wave的特长—–在线协作交流。

激活账户后,手里就有了8个邀请了,好珍贵啊,后来发现只是"提名"而非"邀请",迅速发给好友"飞行鱼"一只,又给在twitter上的朋友们留了两只。

google这种靠邀请来刺激人好奇心的招数真是运用到了极致。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\273\210\344\272\216\350\247\201\350\257\206\344\272\206vista/index.html" "b/p/\347\273\210\344\272\216\350\247\201\350\257\206\344\272\206vista/index.html" new file mode 100644 index 000000000..22ac9059b --- /dev/null +++ "b/p/\347\273\210\344\272\216\350\247\201\350\257\206\344\272\206vista/index.html" @@ -0,0 +1,11 @@ +终于见识了Vista +

终于见识了Vista

昨天,一朋友新买了台笔记本,预装WindowsVista操作系统,我拿到手把玩一会儿,见识了传说中的Vista。

界面确实是漂亮了许多,确切的说是比起我用的XP界面华丽了很多,但是咱也有Ubuntu啊,Linux下的界面也不是盖的。

至于速度呢,真是让人难以接受(忍受),想不通微软那帮儿天才是不是故意把系统弄得这么慢,明明硬件配置已经很高了,要是跑xp能让它飞起来,但是Vista却慢慢吞吞咿咿呀呀哼上老半天,让我想到了我十年前第一次启动Win98。

同样,关机也是很慢,一副可怜兮兮、依依不舍的样子,恨不得让你直接拔电池。

Vista另一个让我不爽的方面应该就是UAC(用户帐户控制)了,对于这个功能,我的理解就是典型的掩耳盗铃,因为随便你运行个什么程序系统都会不厌其烦地弹出一个框,告诉你这是个陌生程序,它不确定是否安全,问你是否继续,如果你允许了,那么他也就没有任何责任了。

可是我又怎么知道这个程序有没有威胁?我要是知道我还会运行它吗?

靠!今天看到消息说,从本周一起微软就再也不买XP了,这也就意味着,你如果还想用Windows以后只能买Vista了。

以后再买笔记本也只能预装Vista了,一句话,微软要逼着我们用他的新系统了。但我还是决定对xp"不抛弃,不放弃",这次Vista的使用经历更是坚定了我的观点,让华丽的Vista见鬼去吧!

ps:不行就用Linux

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\273\217\345\216\206\346\227\266\345\205\211\345\200\222\346\265\201/index.html" "b/p/\347\273\217\345\216\206\346\227\266\345\205\211\345\200\222\346\265\201/index.html" new file mode 100644 index 000000000..dcbd0c0c9 --- /dev/null +++ "b/p/\347\273\217\345\216\206\346\227\266\345\205\211\345\200\222\346\265\201/index.html" @@ -0,0 +1,11 @@ +经历时光倒流 +

经历时光倒流

大前天(2010-01-25)的晚上,我更新了一篇博客叫“中了数码产品的毒”,通过email同步更新到我的在blogspot上和livespaces上的日志里,结果livespaces里无法显示。

本来就觉得livespaces用着有些别扭,因为blogspot在国内无法访问,没办法才同时更新livespaces作为备份的。加上这两天盖茨又在叫嚣不利于互联网和谐的声音。于是,前天晚上,我在livespaces里说,不再更新livespaces,还发了一通牢骚。

结果,在今天发生了时空大逆转,大前天发的那篇博客又出来了,而且显示在前天晚上的那篇牢骚之后,真是无奈啊。

也许是livespaces的邮件系统出了毛病吧,唉,你说我还要不要在livespaces上继续更新之?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\273\231\345\210\235\345\205\245\350\201\214\345\234\272\344\272\272\345\221\230\347\232\204\344\270\200\347\202\271\345\204\277\345\273\272\350\256\256/index.html" "b/p/\347\273\231\345\210\235\345\205\245\350\201\214\345\234\272\344\272\272\345\221\230\347\232\204\344\270\200\347\202\271\345\204\277\345\273\272\350\256\256/index.html" new file mode 100644 index 000000000..f3c24f385 --- /dev/null +++ "b/p/\347\273\231\345\210\235\345\205\245\350\201\214\345\234\272\344\272\272\345\221\230\347\232\204\344\270\200\347\202\271\345\204\277\345\273\272\350\256\256/index.html" @@ -0,0 +1,11 @@ +给初入职场人员的一点儿建议 +

给初入职场人员的一点儿建议

前一段时间公司开展新一届应届生入职培训,我有幸作为讲师对他们进行了一些工作技能培训,期间有同学表示期望得到工作技能以外的职场建议,由于当时没有提前准备,我就现场随意说了几条,现在抽时间正式整理一下:

0、及时汇报工作进展:

这条建议执行起来简单有效,也是我刚参加工作时我爸给我的建议,十多年来,我一直认为这是对我工作最有效的建议,如果我的工作经验必须浓缩成一句的话,那就非这句莫属。展开来说,实际上是对于工作中沟通上的建议,即主动沟通,不要等着别人催问,无论是甲方还是上级或者是同事,在团队协作时都要主动汇报自己工作的进展情况,千万不可等到出了问题,最后一刻再让整个团队因为你的问题进入紧急状态,即使你的工作开展很顺利,也要主动沟通,一方面给大家信心,另一方面也好让团队能有优化任务安排的空间。

1、善于进行工作总结:

有一个段子,说有个同学去面试,问及工作经验,曰:“我已有5年工作经验。”面试官查看其简历发现仅有三年时间而已,于是质问之,答曰:“另外两年是算上了加班时间。”听完笑过之后,值得深思,现实中确实存在虽工作三年却比工作五年者还有工作经验的人,不过并不是因为加班,而是因为其善于进行工作总结。

养成经常进行总结的习惯可以使你飞速进步,避免犯重复错误,且对于工作中的成果能进行深度思考,激发下一步行动的灵感。具体做起来,可以从记录工作日志、每日工作总结开始,每天都要记录当天所做的事情,此为基础,然后再进行分析,分析当天遇到的问题,反思自己所做的决策是否正确,以后如何修正,顺便还能把下一步行动考虑清楚,第二天的工作思路也有了。

2、学习高效时间管理:

如何进行高效的时间管理是一个比较大的话题,不可一蹴而就,需要长期坚持改进,我所知道的也是我一直在执行的方法比较简单,就是每天给自己设定目标,难度和数量要适中,比如三件事情,且这三件事情要先挑困难的做,这样会越来越轻松,如果先挑容易的做就会导致你在工作的时候一直处于焦虑状态直到全部完成才能放松。

3、缩小关注圈,扩大影响圈:

在这个咨询爆炸的时代,我们面临的问题不是知道的太少,而是知道的太多。知识越多,或者说想的越多,往往越缺乏行动力,考虑一万遍也不如亲自试一下,不要关注过多自己无法掌控的信息,尽量缩小到一个可控的范围,通过具体的行动来提升自身的能力,从而扩大自己的影响圈。

4、做一个靠谱的人:

早年间看到过一句话,“这个世界从来不缺有能力的人,缺的是靠谱的人”,当时看完感觉深以为然。中国儒家文化提出的“仁、义、礼、智、信”全部做到太难了,作为职场新人不妨倒着来,先从“信”开始,做到了说话算话、不推诿责任、真诚对待他人就离靠谱不远了。虽然当下这个社会的诚信状况不容乐观,但是只要自己多靠谱一点儿,这个世界就多了一个靠谱的人。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\273\231\347\202\271\345\204\277\351\222\261\350\256\251\346\210\221\344\271\260\345\220\203\347\232\204\345\220\247/index.html" "b/p/\347\273\231\347\202\271\345\204\277\351\222\261\350\256\251\346\210\221\344\271\260\345\220\203\347\232\204\345\220\247/index.html" new file mode 100644 index 000000000..784c83d1b --- /dev/null +++ "b/p/\347\273\231\347\202\271\345\204\277\351\222\261\350\256\251\346\210\221\344\271\260\345\220\203\347\232\204\345\220\247/index.html" @@ -0,0 +1,11 @@ +给点儿钱让我买吃的吧! +

给点儿钱让我买吃的吧!

加班后回家的路上,路灯十分昏暗,还没有吃晚饭,心情极度郁闷,我缓缓(没力气狂奔了)走向公车站牌,走着,走着,突然!

一个黑影窜了过来,他跟我说:“兄弟,要盗版光盘不?”

我没有理他,继续走,走着,走着,突然!

又一个黑影窜了过来,他跟我说:“兄弟,要发票吗?”

我没有理他,继续走,走着,走着,突然(靠,有完没完啊!)

一大一小两个黑影窜了出来,原来是一个中年妇女领着一个七八岁的小女孩儿,夜色中看不清面目。小孩开口说话了:“叔叔,给点儿钱让我买吃的吧,我都饿了一天了……”

边说还边做有气无力状,大人也在一边附和。说得我心里一软,鼻涕快掉下来了,差点儿掏钱。

但是转念一想,我TM也饿了快一天啦,也没吃饭呢,再何况,她们的行为也太让我愤怒了,因为就凭这些个破烂演技拿来唬我也太侮辱我的智商了吧!

于是,我友善的冲她们说道:“小朋友,你看”我用手指了指马路,“往前走500米,那里有家派出所,你过去找警察叔叔要些吃的好不好?”

小孩一时不吭声(台词没背下来),大人接着说:“你就可怜我们,给我们几块钱,买包方便面也行啊!”(我靠,我这么晚了还没吃饭,我求您别勾引我的食欲了!)

我没办法,掏出手机,说:“既然你们不愿意亲自过去,那我帮你们打110吧……”

这句话还没有说完,说时迟那时快,只听得“嗖嗖”两声,两个人全都不见踪影,公车站牌下只剩下我和随风飘舞的碎纸片(好身手!)。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\273\255/index.html" "b/p/\347\273\255/index.html" new file mode 100644 index 000000000..5264ee60b --- /dev/null +++ "b/p/\347\273\255/index.html" @@ -0,0 +1,11 @@ + +

把ubuntu换成xp了,深度精简版的,速度比ubuntu快多了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\347\276\216\345\245\275\347\232\204\344\270\200\345\244\251/index.html" "b/p/\347\276\216\345\245\275\347\232\204\344\270\200\345\244\251/index.html" new file mode 100644 index 000000000..4751c7e57 --- /dev/null +++ "b/p/\347\276\216\345\245\275\347\232\204\344\270\200\345\244\251/index.html" @@ -0,0 +1,11 @@ +美好的一天 +

美好的一天

尽管我经常比闹钟醒的还早,可是起床仍然依赖闹铃。

今天是星期天,由于国庆假期的原因,今天也要照常上班,可是我的手机有点儿小聪明,周末不闹。这下可好了,我终于睡了个自然醒,我在半梦半醒之中想明白今天要上班而且闹铃不会叫我时,我惊的一下子从床上跳了起来。

还是晚起了一个小时。洗脸刷牙堵车堵车堵车还堵车所以,迟到了,可是郁闷的事情还在后头。

我平时几乎不迟到,偏偏今天等我到公司的时候老总已经找了我一圈了,于是赶紧去报到,可是电梯坏了,于是爬楼梯,等我爬上十层楼梯,得到一个更加郁闷的消息:“假期要加班……"(此处窗外电闪雷鸣并伴有大风)。

如果不是爬楼梯爬的喘不上气,我肯定要仰天长啸十分钟。

可怜我辛苦买到的往返火车票啊,现在要退掉!

可怜我定好的假日计划啊,现在要取消!淡定,要淡定

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\200\201\345\251\206\345\233\236\345\256\266\347\232\204\347\254\254\344\270\203\345\244\251/index.html" "b/p/\350\200\201\345\251\206\345\233\236\345\256\266\347\232\204\347\254\254\344\270\203\345\244\251/index.html" new file mode 100644 index 000000000..c94981916 --- /dev/null +++ "b/p/\350\200\201\345\251\206\345\233\236\345\256\266\347\232\204\347\254\254\344\270\203\345\244\251/index.html" @@ -0,0 +1,11 @@ +老婆回家的第七天 +

老婆回家的第七天

老家那边有些事儿需要老婆回去处理一下,用不了几天,可是转眼已经一个周过去了,据说还需要再呆几天才能回北京来。

哎!郁闷呐!按照道理来说,作为一个正常的男人如果老婆回了娘家,那他应该感到万分的高兴才是(我曾经有个同事,从来都不吭声,结果有一次哼了一整天的小曲儿,一问才知道,人家老婆大人回娘家去了)。

高兴是高兴,可是晚饭没有着落了,眼看着冰箱里的东西被我一点点地吃光了,就连平时不爱吃的饺子也在前天被我从冰箱的最底层翻了出来。

家里实在没吃的那就在外面吃吧,昨晚上刚好有饭局,不吃白不吃啊,结果上当了,几个哥们儿都是贪杯的主儿,白的喝完换啤的,啤的喝完换冰的,一直喝到丧心病狂……饭还没吃上几口。

搞得今天蔫了吧唧不说,还浑身上火,鼻炎发作,咽炎发作,苦不堪言。

站起来,叹了口气,转身就看到洗衣机里的衣服也快堆成小山了,都说能把袜子按颜色分类的男人和把袜子随便乱扔的男人是两种不同的生物,我显然是属于后者,看来只有等到周末统一解决了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\200\201\345\256\266\347\232\204\345\271\264\345\221\263\345\204\277/index.html" "b/p/\350\200\201\345\256\266\347\232\204\345\271\264\345\221\263\345\204\277/index.html" new file mode 100644 index 000000000..a500ceaaa --- /dev/null +++ "b/p/\350\200\201\345\256\266\347\232\204\345\271\264\345\221\263\345\204\277/index.html" @@ -0,0 +1,11 @@ +老家的年味儿 +

老家的年味儿

希望简书能够早日提供横屏版本的app,这样用外接键盘写字就更爽了。条件有限,记录若干家乡过年的气息。

每逢过年都是走亲访友的密集时间,这个时候外地奔波的人们都放下手中的工作,忘记一年的辛劳,回到家乡,不顾舟车劳顿,抓紧时间与亲戚老友相约,在一起喝杯小酒,互道辛苦,推杯换盏期间,一边感慨岁月变迁,一边把脸上笑出褶子。

春天是个万物萌动的季节,每逢春节,都是相亲旺季,我走在人民广场,举目望去,一对对年轻人,或挽手,或并肩,有说有笑。广场的椅子在阳光下闪着柔软的光,一个春节下来,这个广场又不知成为了多少场淳朴爱情的起点。

孔明灯被美其名曰"祈愿灯",由于没有大城市的空中管制,我们这里,每到春节的夜晚都有大量孔明灯被放飞,漫天的灯光与黑夜里的星星遥相呼应,一闪一闪,直到分不清哪些是星光,哪些是承载着人们良好愿望的灯光。

任何一个商场或市场都挤满了人,熙熙攘攘的人群仿佛一团带有年味的浓雾,迟迟不肯散去,价格或高或低,东西或多或少,大家都在体会一个"逛"字,无论有事没事,都要走到街上凑凑热闹,此时站在大街,什么都不用想,拿鼻子一闻也能知道,过年了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\200\201\345\256\266\347\232\204\347\224\265\350\204\221\344\270\255\346\257\222\344\272\206/index.html" "b/p/\350\200\201\345\256\266\347\232\204\347\224\265\350\204\221\344\270\255\346\257\222\344\272\206/index.html" new file mode 100644 index 000000000..c3923dab9 --- /dev/null +++ "b/p/\350\200\201\345\256\266\347\232\204\347\224\265\350\204\221\344\270\255\346\257\222\344\272\206/index.html" @@ -0,0 +1,11 @@ +老家的电脑中毒了 +

老家的电脑中毒了

春节回老家,我把老家的电脑升级了一把,并安装了宽带。

这样我在北京就可以随时和父母视频通话了,老妈的打字水平也飞速提升,没事儿就上线和我聊两句。

为了安全起见,我临走时反复叮嘱,不要再安装其它软件(担心流氓软件)。

但是在选择杀毒软件时我有点儿为难了,nod32挺好用,可是咱没买正版,用破解的怕他们用不好,刚好那时卡巴斯基推出了一年免费试用的活动(其实我都两年不使用卡巴斯基了),就贪便宜用了,而且开启了实时监控和每天的病毒库更新。

看来便宜果然没好货,好日子没过多久,老妈就打电话告诉我机器奇慢无比,我当时还颇为自信的告诉她启动杀毒软件的查杀毒程序进行病毒查杀即可,怎奈何断断续续查了一夜(没办法卡巴就是这么卡)病毒之后,倒是找到木马病毒若干,但就是无法清除,一开机cpu就资源占用100%,我又没法亲手操作,看来这个系统是没救了。

还好当时留了一手必杀技,那就是“一键ghost恢复”!

实在不行就“恢复”吧。

不知道是网络环境太差还是咱们的安全意识不够,反正对于一个非计算机专业的人员来说,现在上网实在是处处有陷阱、时时有风险,杀毒防毒软件形同虚设,真是让人担忧啊

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\207\252\345\210\266\346\236\234\346\261\201/index.html" "b/p/\350\207\252\345\210\266\346\236\234\346\261\201/index.html" new file mode 100644 index 000000000..c5bfa8e59 --- /dev/null +++ "b/p/\350\207\252\345\210\266\346\236\234\346\261\201/index.html" @@ -0,0 +1,11 @@ +自制果汁 +

自制果汁

大早上一起来,打开电视(就是我那个用Python写的小程序),凤凰卫视里的沈星正在介绍"美女私房菜",正在纳闷原来美女还会做菜,结果令我十分失望,只见她拿了个番茄,随便切几下,往搅拌机里一扔,嗡嗡两下,搅成糊状,美其名曰"营养瘦身果汁"。

咳,正愁着早饭不知吃啥,干脆试一下吧。

从冰箱里拿出番茄,又刷了刷我那半年多没用过的搅拌机(当时为啥要买它?),搅拌之前又撒了些白糖,喝了果然神清气爽,看来,这个搅拌机还挺有用,这样吃番茄(应该是喝)比起放在嘴里生嚼别有一番滋味。

到了傍晚的时候,闷的慌,出去溜达的时候又想起自制果汁的事儿来,干脆这次来做一个真正的果汁。

买来西瓜一只、蜜桃若干、猕猴桃若干、青苹果、黄瓜,本来我还想加点儿芹菜,但是买不到了。

回到家,将这些水果切成丁、片,一股脑儿放入搅拌机,嗡嗡搅了一分来钟,足足做了一大杯,让我想想,西瓜消暑、猕猴桃富含维生素、青苹果酸中带甜,这杯什锦果汁应该是比早上那个强多了吧。

迫不及待喝了一口,靠,说不出的滋味,各种味道窜来窜去,就像是吃烂桃的时候再就着两口酸苹果,没办法,反正有营养,那就喝吧。

喝到大半杯的时候我才想起来,我刚才要是把西瓜的皮儿去掉就好了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\207\252\347\204\266\351\206\222/index.html" "b/p/\350\207\252\347\204\266\351\206\222/index.html" new file mode 100644 index 000000000..d611646c3 --- /dev/null +++ "b/p/\350\207\252\347\204\266\351\206\222/index.html" @@ -0,0 +1,11 @@ +自然醒 +

自然醒

如果有那么一天,我在沙滩上走着,突然从沙子里踢出一个神灯,我擦了三下,彭!的一声窜出一个魔鬼,对我龇牙咧嘴,非得满足我三个愿望。

那么,我会许什么愿呢?我不会像周星驰那样无耻,许完了两个愿望后最后一个愿望竟是再要三个愿望。

我想我也应该不那么自私,我会把头两个愿望交给公益事业,比如世界和平、环境保护啥的,然后留一个愿望给自己,那就是–我想睡个自然醒。

自从告别了自在潇洒的大学生活,参加工作以后,我就没有睡够过,也不是完全没有时间睡觉,而是能有机会睡懒觉的时候我都睡不着。

在一周里里面,工作日期间肯定没睡懒觉的可能,一大早就狂奔到车站去挤车了,晚上又很晚才睡,所以这期间是十分缺觉的。

只有周末的早晨才能有机会赖在床上,可是问题来了,周末的早晨我倍儿精神!平日里闹钟响了还想把它摁掉再小睡一会儿,可一旦到了周末,我往往比闹钟醒的还早,而且再也睡不着。

这是为什么呢,苦苦思索之后,得到答案:周末是属于我自己的自由时间而且很短暂,我不舍的拿这点儿宝贵时间来睡觉!

平时没时间干的我只有等到周末了,平时听不了音乐就周末抱着音响使劲儿听,平时没时间弹琴就等到周末抱着电子琴使劲儿得瑟,平时没时间摄影等到周末就溜达出去一通狂拍……等等,有这些个好事儿等着我,我就算是想睡也真就睡不着了。   所以,我也不祈求啥别的太奢侈的事儿,就让我睡个自然醒吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\207\252\350\250\200\350\207\252\350\257\255\345\222\214\350\257\255\351\237\263\344\277\241\347\256\261/index.html" "b/p/\350\207\252\350\250\200\350\207\252\350\257\255\345\222\214\350\257\255\351\237\263\344\277\241\347\256\261/index.html" new file mode 100644 index 000000000..146dbfa0e --- /dev/null +++ "b/p/\350\207\252\350\250\200\350\207\252\350\257\255\345\222\214\350\257\255\351\237\263\344\277\241\347\256\261/index.html" @@ -0,0 +1,11 @@ +自言自语和语音信箱 +

自言自语和语音信箱

经常在美剧和好莱坞大片里看到这样的情景,一个人对着自己的车或者某样心爱的东西感情丰富地谈话,比如"干的不错!伙计","全靠你了!","今天天气挺好的,你说我该不该去看她?"等等,就好像跟某人聊天一样。

不知道他们生活中是否也是这样,感觉怪怪的。老外有人做过统计,相当比例的人喜欢自言自语,并且认为这很正常。我想这是跟他们使用语音信箱有关。

据说使用语音信箱是他们的老习惯了,起源于上个世纪,打电话经常没人接,打电话者听到嘟的一声然后乖乖留言,并且对着话筒"得不得得不得"聊上半天。

也许时间长了就养成自言自语的习惯了吧。

某段时间我也对语音留言感兴趣,可惜国内没有该服务,后来有了,可是费用贵得离谱。

现在我使用智能手机了,装了个软件就一切搞定,在无人接听的时候软件也能帮我接电话了。

可惜咱们都没这个习惯,一旦知道对方没在听电话便立即失去说话的兴趣,匆匆挂断。

常常有人听到我的提示音之后以为我在调戏他而冲我发牢骚。

所以该软件装了这么久除了我的测试录音之外,并没有接到过真正有意义的留言。

今天我终于收到一段有意义的留言:"靠!真受不了你!"

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\207\264\345\204\277\345\255\220\346\210\220\344\272\272\347\244\274\347\232\204\344\270\200\345\260\201\344\277\241/index.html" "b/p/\350\207\264\345\204\277\345\255\220\346\210\220\344\272\272\347\244\274\347\232\204\344\270\200\345\260\201\344\277\241/index.html" new file mode 100644 index 000000000..e04af1586 --- /dev/null +++ "b/p/\350\207\264\345\204\277\345\255\220\346\210\220\344\272\272\347\244\274\347\232\204\344\270\200\345\260\201\344\277\241/index.html" @@ -0,0 +1,11 @@ +致儿子成人礼的一封信 +

致儿子成人礼的一封信

序言我儿,见信如面。在这个即时通讯如此发达的时代,我选择写一封长信,以表示对你即将成人的祝贺。

我陷入沉思了一会儿,考虑该给你讲些什么道理。但我很快意识到,“道理”这种东西,靠听和说没有用,只能自己去感悟。而我自己也十分讨厌被说教,所以我会克制想要给你讲一番大道理的冲动,尽量避免不对等的交流形式。

我想我还是跟你分享一些我对这个世界的思考和想法吧。

茨威格在《人类群星闪耀》中写到“一个人最幸运的事情就是在他思想最活跃、精力最充沛的时候找到了他的人生使命”。看来大家都把寻找人生使命当做比较重要事情来看待。姑且就当做我这封信的主题吧。

寻找人生使命本质上是通过尝试在一些方向上的努力来实现对人生价值和意义的探索,每个人或多或少、或深或浅都要做这样的尝试。

你们学校把“成人礼”包装成一个重要的人生节点,想必是希望给你们一些感觉,让你们意识到,从这一刻起,你们开始对自己的行为负责,要开始尝试去寻找和探索了。

那么该如何去探索,我有一些自己的看法。

首先要相信一点,那就是无论是否还在上学,学习和完善自己都是一辈子的事情,不存在一个可以停止学习的时间点。就我个人来说,无论是读大学的时候还是参加工作以后,从来没有在提升自己方面有过松懈的想法,甚至我感觉工作之后对知识的渴望更加强烈了,学到的东西也比在校园里多得多。

当然了,学习方式跟你目前在学校这种还是差别挺大的,强度也没有那么辛苦。而且工作之后的这种学习方式才是我最认可的方式。什么方式?

我们一起讨论过几次王阳明的“知行合一”,为了不扯那么远,简单来说,刚才提到的学习方式就是老王早就提出的“事儿上练”。通过不断地实践,各种经历,才是学习知识的源泉。这也是为啥我在开头就说道理只能感悟不可说教,怎么感悟?事儿上感悟!经历多了自然懂。

所以也不用一下子被“寻找人生使命”这种“宏大话题”给吓住了,保持学习的心态,放松大胆地去经历各种事情,就是这么个过程。

然后呢,就是在做事的过程中,保持一颗善良、为他人多着想的心。关于这一点,我的体会是,“助人为快乐之本”真的不是一句空话。远的不说,你看你爷爷奶奶平日里多么乐于助人,用乐善好施形容他们一点儿也不为过。他们因此收获了广泛的认可,也给这个家庭带来了积极向上的生活氛围,对你老爹我向好的方面发展也起到了关键作用。

再有一点,也是我个人非常推崇的,就是最好能时刻对世界保持强烈的好奇心。

刘慈欣在短篇科幻小说《朝闻道》中讲了一个故事。外星高等文明在监视地球人类进化的过程中,距离现在几十万年前的一个原始人抬头望了望夜晚的天空,凝视了一会儿。这看似随意的行为使得外星人的警报器响了起来,因为这意味着,人类的好奇心已经发展到了星空,同时也意味着人类文明将要开始爆发式发展了。可见好奇心的重要。

好奇心一方面是推动我们前进的动力,同时也使得我们平凡的生活变得不那么枯燥。

你能经常提出一些有时连我都无法回答的问题,这让我也颇感欣慰,有些答案注定要自己去摸索着发现,我希望你能多多提问,也多自己思考,不用去管答案是什么。

稀稀拉拉写了这么多,估计你也不能理解太多,我像你这个年纪时估计也理解不了。不过也没关系,只是给你讲讲我个人通过思考得到的观点而已,说不定你自己以后有不同的发现,当然如果能在你以后的发展中起到一点儿提醒作用,也就挺好了。

希望你这次“成人礼”活动就像人类文明那一次一次对星空的凝望那样,使你能够进入人生的一个新的高速发展阶段。

祝:学习进步,健康成长!

二零一九年五月九日 写于贵阳机场

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\241\245\344\270\212/index.html" "b/p/\350\241\245\344\270\212/index.html" new file mode 100644 index 000000000..eee64e261 --- /dev/null +++ "b/p/\350\241\245\344\270\212/index.html" @@ -0,0 +1,11 @@ +补上 +

补上

昨晚回家晚了,跑步也晚了,然后就睡了,忘了在日志里报告,今早补上。

这两天忒忙了,事情一件件的接踵而来,忙的我有点儿喘气。

有句话说的好,出来混迟早要还的,以前程序的demo做的再好也是假的,现在要动真格的了,撒开手忙活吧!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\256\251\346\210\221\346\235\245\351\252\202\344\270\200-\351\252\202\351\202\243\344\272\233\345\255\246\344\271\240\347\232\204\346\227\245\345\255\220/index.html" "b/p/\350\256\251\346\210\221\346\235\245\351\252\202\344\270\200-\351\252\202\351\202\243\344\272\233\345\255\246\344\271\240\347\232\204\346\227\245\345\255\220/index.html" new file mode 100644 index 000000000..623e7f85f --- /dev/null +++ "b/p/\350\256\251\346\210\221\346\235\245\351\252\202\344\270\200-\351\252\202\351\202\243\344\272\233\345\255\246\344\271\240\347\232\204\346\227\245\345\255\220/index.html" @@ -0,0 +1,11 @@ +让我来骂一 骂那些学习的日子 +

让我来骂一 骂那些学习的日子

我是一个热爱学习的人,可是这是从学习编程开始的。

上学的时候,我从没有过哪怕一丁点儿的热爱学习。

虽然那个时候努力装出刻苦的样子,偶尔在邻居们教育孩子的口中听到以我为榜样的句子,可是我和他们心里都清楚,谁他妈的想学习!

唉,仔细想想,委屈了邻居的孩子们了。

小的时候,我应该是挺自闭的,虽说成绩还凑合,可是那都是应付考试的结果,回想我们的课本,除了小学数学还算是发挥了点作用,其他的都是垃圾,背的满满一书包全都是大便。

先从语文说起罢,千篇一律的课文也就罢了,每回回都要划分段落然后总结所谓的中心思想,反复揣摩作者的用意,就算是作者根本没有那个想法,老师也千方百计地往某方面引导。

至于思想品德课则更是对智商的严重伤害,脆弱的心灵一次次被无情的蹂躏,满满的答卷上全是对撒谎的最早练习。

老师们极度推崇的课前预习也是我永远的心理阴影,我就想不明白,如果课前预习都把问题考虑清楚了那么还上课干嘛?每次都会有针对预习内容的提问,好好的课堂被搞的乌烟瘴气,听话的孩子翻开白眼,昂起头,骄傲地回答出老师希望的句子。

期末考试永远是我们的噩梦,考不好承受压力不说,来自各方面的歧视又在伤口上再撒一把厚厚的盐。

所谓三好学生,所谓学习标兵,做一个他们理想中的孩子吧,做一个“热爱学习”的孩子吧,只要你不想做你自己。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\256\260\344\275\217\350\277\231\345\207\240\344\270\252\347\252\215\351\227\250\345\270\246\344\275\240\350\277\210\345\205\245vim\347\232\204\351\227\250\346\247\233/index.html" "b/p/\350\256\260\344\275\217\350\277\231\345\207\240\344\270\252\347\252\215\351\227\250\345\270\246\344\275\240\350\277\210\345\205\245vim\347\232\204\351\227\250\346\247\233/index.html" new file mode 100644 index 000000000..502edc2ce --- /dev/null +++ "b/p/\350\256\260\344\275\217\350\277\231\345\207\240\344\270\252\347\252\215\351\227\250\345\270\246\344\275\240\350\277\210\345\205\245vim\347\232\204\351\227\250\346\247\233/index.html" @@ -0,0 +1,11 @@ +记住这几个窍门带你迈入vim的门槛 +

记住这几个窍门带你迈入vim的门槛

用vim已经有一段时间了,谈不上高手的级别,但总算是入门了,vim作为编辑器的王者,掌握之后带来的成就感无与伦比,但是其陡峭的学习曲线常常让人望而却步,下面,我来介绍几点心得,虽是入门级但是能为将来的熟练掌握打下基础。

1、不要再依赖菜单和工具条,虽然gvim提供了菜单和工具条,请不要再用他们,在配置里加上一行"setguioptions-=mT",这样一来gvim的界面就干净多了,尽情的用快捷键吧。

2、不要再依赖方向键来移动光标了,熟记h、j、k、l分别对应左、下、上、右,并强迫自己使用,你会发现右手再也不用来回移动了。

3、切忌总在“插入”模式里待着,“插入”完成后立即按esc或ctrl+c推回到“默认”模式,因为在默认模式里才能发挥出vim各种“命令”的优势。

4、“o“命令是在当前行的下面插入一行并进入“插入”模式(大写的“O”是在当前行的上方插入)。

5、“dw”是删除一个单词,“dd”是删除一行。

6、将光标移动到某个单词上并按“*”键是对这个单词进行向后搜索,“#”是向前搜索。

7、“xp”是前后交换两个字符,“ddp”是上下交换两行。

8、“v”这个选择命令很管用,紧跟其后按“i(”是选中小括号内的内容,“a(”是连小括号一起选择(你可以尽情地举一反三)。

9、多看帮助。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329.JPG" "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329.JPG" new file mode 100644 index 000000000..3cce531db Binary files /dev/null and "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329.JPG" differ diff --git "a/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_120x120_fill_q75_box_smart1.JPG" "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_120x120_fill_q75_box_smart1.JPG" new file mode 100644 index 000000000..abbadde5a Binary files /dev/null and "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_120x120_fill_q75_box_smart1.JPG" differ diff --git "a/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_1600x0_resize_q75_box.JPG" "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_1600x0_resize_q75_box.JPG" new file mode 100644 index 000000000..261e0c818 Binary files /dev/null and "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_1600x0_resize_q75_box.JPG" differ diff --git "a/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_800x0_resize_q75_box.JPG" "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_800x0_resize_q75_box.JPG" new file mode 100644 index 000000000..dac5b8cb9 Binary files /dev/null and "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_800x0_resize_q75_box.JPG" differ diff --git "a/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/index.html" "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/index.html" new file mode 100644 index 000000000..86ece3a36 --- /dev/null +++ "b/p/\350\257\225\347\224\250google-music\347\232\204\346\263\241\346\263\241\351\200\211\346\255\214\345\212\237\350\203\275/index.html" @@ -0,0 +1,11 @@ +试用Google music的泡泡选歌功能 +
Featured image of post 试用Google music的泡泡选歌功能

试用Google music的泡泡选歌功能

试用Googlemusic的泡泡选歌功能,可根据节奏和音色等属性选歌,最爽的是可以根据年代选歌。从我这张截图上可以看出我最爱听老歌。网址:http://www.google.cn/music/songscreener

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\257\245\344\270\215\350\257\245qq/index.html" "b/p/\350\257\245\344\270\215\350\257\245qq/index.html" new file mode 100644 index 000000000..8257a6d20 --- /dev/null +++ "b/p/\350\257\245\344\270\215\350\257\245qq/index.html" @@ -0,0 +1,11 @@ +该不该qq +

该不该qq

这两天我的系统特别慢,这归功于office,由于工作需要,最近我每天都需要打开大量的word文档,而这个时候我的机器就有些吃不消了,基本上打开个1m左右的文档大概需要一袋烟的功夫,这样的文件要是同时打开个4~5个,那我的机器就干不了别的了。

于是我就尽量减少并行运行的程序,并把占用大量内存的程序更换成占用少些的程序,比如把firefox换成了Googlechrome,后来我干脆把qq、msn统统关掉了,因为我发现根本没时间聊天。

但是问题就来了,以前我的qq是整天在线的,qq的状态就显示了我的工作状态,我妈每天都上qq看一看,有时是为了打牌,有时就仅仅是看看我在不在线,也不跟我聊天,看看就踏实。

我刚一个上午没上线就打电话问我,“什么情况?为什么qq不在线?”,我解释一番。

今天又有朋友发短信过来表示关心:“这几天上线这么少,有事儿吗?”看来,qq真的很重要

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\257\245\350\257\273\344\273\200\344\271\210\346\240\267\347\232\204\344\271\246/index.html" "b/p/\350\257\245\350\257\273\344\273\200\344\271\210\346\240\267\347\232\204\344\271\246/index.html" new file mode 100644 index 000000000..495f47a57 --- /dev/null +++ "b/p/\350\257\245\350\257\273\344\273\200\344\271\210\346\240\267\347\232\204\344\271\246/index.html" @@ -0,0 +1,11 @@ +该读什么样的书 +

该读什么样的书

一直后悔书读的太少,用他们文化人的观点来说,我几乎算上是文盲级别的。

记得有人开过一长串的书单,曰:没读过这些书的都算文盲。

我扫了一下列表,光是外国名著就占了很大一部分,像我这种看见翻译成中文的外国人名就头疼的人,肯定算个不折不扣的文盲了。

学生时期,我所看的文章大部分来自于语文课文,偶尔有课外读物也是吹得没边儿没沿儿的童话故事。

厚部头的书几乎没有耐心把封皮看完。

后来用掌上电脑看书,没有了厚度的压力,我才能把金庸和古龙看完,嘿嘿,就算是补看,也补武侠小说。

前两天又有人出来得瑟着整书单出来,告诉别人这辈子最该读什么书,我操,我该读什么书先搁一边儿,你凭什么在那儿指手画脚。

最讨厌的就是这些家伙,动不动就告诉别人该这样该那样,什么这辈子一定要去的几十个地方啦,做人一定要注意的十个方面啦,一天一定要喝八杯水啦,你大爷的,你自己的事儿整明白了么?嗯?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\257\264\344\270\200\350\257\264\345\244\247\350\257\235\350\245\277\346\270\270/index.html" "b/p/\350\257\264\344\270\200\350\257\264\345\244\247\350\257\235\350\245\277\346\270\270/index.html" new file mode 100644 index 000000000..c9f5c82e5 --- /dev/null +++ "b/p/\350\257\264\344\270\200\350\257\264\345\244\247\350\257\235\350\245\277\346\270\270/index.html" @@ -0,0 +1,11 @@ +说一说《大话西游》 +

说一说《大话西游》

在演艺圈里,如果我还能有一个偶像的话,那就是周星驰了。两个原因,一个是《喜剧之王》,另一个是《大话西游》。

我不知道我的朋友里面有多少喜欢《大话西游》的,但是我大学的几个好哥们,个个都很迷恋这部电影。

《大话西游》据说是95年拍的,然后又过了5年才火的,那一年我正好去大学,刚好网络开始普及,跟同学去网吧的时候,我把这部电影看了大概三十遍,那个时候我们寝室哥儿几个,基本上都把台词背了下来,吃饭的时候,你说上句,我就能接下句。

其实在此之前大概98年99年的时候,我就看过这个电影,还是在老家看的盗版VCD,当时没看懂,而且碟子划伤严重,断断续续,感觉乱七八糟的,剧情也衔接不起来,一直笑的比较勉强,就是不知道为什么,看到结尾的时候,有一种莫名其妙的难过。然后也没有多想,就忘了。

后来在大学才又得机会,终于完完整整的看了上下集,我们才看明白,原来这是一个跟西游记没有任何关系的故事,讲述了一个哥们从放浪不羁到充满责任心,然后缓慢被无聊的现实所阉掉的故事。桥段都比较有趣且非常耐人寻味,看似无厘头的搞笑,却蕴含着让所谓影评人所不齿的深意。

这部电影很长,完全颠覆了西游记原著里面的设定,唐僧变成了一个整天唧唧歪歪啰里啰唆的人,徒弟几个也不再是神通广大,而是个个心怀鬼胎、不讲义气。与之相反,白晶晶等各种妖精反而变得有情有义,因为各种机缘巧合,与剧中的主人公“至尊宝”产生了感情。“至尊宝”本来做着一份很有“前途”的职业——“山贼”,而且手下还有一群不知道讲不讲义气的兄弟,无奈导演安排,上天给了他一份使命,需要成为齐天大圣,保着唐僧去取经。然后,让他先以为爱上了白晶晶,为了挽救心上人被牛魔王杀害的这个结局,通过月光宝盒向前穿越了五百年的时间,却“再”遇到紫霞仙子,那个在他心里留下一滴眼泪的人。

剧中的每个人都有自己的追求,但结果却都是背道而驰,正像陈世骧先生和夏济安先生总结《天龙八部》那样“有情皆孽,无人不冤”。

  • 主人公一心想当山贼,最后像狗一样去取经了,没当成;
  • 二当家一心想取代主人公,被看穿,也没当成;
  • 牛魔王一心想跟紫霞成亲,无奈人家不从,反而导致被孙悟空干死;
  • 小妖只想做好本职工作,把唐僧吊死,无奈被唐僧先啰嗦死了;
  • 白晶晶爱上了至尊宝,无奈最后要结婚的时候被紫霞的眼泪吓跑了;
  • 紫霞幻想着心上人有一天会踩着七彩祥云来娶她,可是猜中了开头,却没猜中结局;
  • 青霞跟紫霞斗了一辈子,最后一刻为紫霞献身了;
  • 杨二郎的哮天犬一心想为主人立功,却因为动了凡心被炖了;

每个人看完这部电影都会有自己的理解,把自己想象成为那个主角,在同情主人公的遭遇的同时,也在安慰自己。正是因为这样,它才让人产生共鸣和思考,我们应该思考什么,有人说:“每个人现在拥有的,可能就是别人奋斗一生梦寐以求的”,然而,在明白了那么多道理以后,我们却还是想反抗,想尝试,不安,并去追求自己的目标,虽然结局是固定的,但毕竟经历过那么多的曲折和精彩,可能也值了。我觉得这也是这部电影所能表达的积极的一面。

就像老一辈喜剧人陈佩斯说过的那样,喜剧的内核都是悲剧,表面上越是喜剧,内在里越是悲剧。有网友评论,看完《大话》笑了,说明你没看懂,看完哭了,还是没看懂,看完怔在那里,明白了造化弄人、世事无常,才是真的懂了。

电影里的原声音乐都很好,尤其是最后紫霞说“我猜中了开头,却没有猜中结局”时的配乐,简直太贴切了,我后来找了很久才找到。

为了防止剧透,此处删去五千字。好的电影常看常新,如果没看过的,我建议你看一下,说不定就能在里面找到你自己。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\260\210\350\260\210\346\210\221\345\257\271\345\256\266\345\272\255\345\275\261\351\231\242\347\232\204\347\234\213\346\263\225/index.html" "b/p/\350\260\210\350\260\210\346\210\221\345\257\271\345\256\266\345\272\255\345\275\261\351\231\242\347\232\204\347\234\213\346\263\225/index.html" new file mode 100644 index 000000000..98f4f28c2 --- /dev/null +++ "b/p/\350\260\210\350\260\210\346\210\221\345\257\271\345\256\266\345\272\255\345\275\261\351\231\242\347\232\204\347\234\213\346\263\225/index.html" @@ -0,0 +1,11 @@ +谈谈我对家庭影院的看法 +

谈谈我对家庭影院的看法

不知道其他人为什么喜欢电影,或者不喜欢。

反正我是十分喜欢,也许你说,是啊,美好的东西谁TM不喜欢?

错!首先,不必像装逼的小资那样扭捏地大谈电影的文艺味道或者表达了一种什么样的思想,也不用像有关部门那样无耻地对电影挑三拣四反复阉割,我喜欢电影是因为电影可以让人经历不同的人生。

等一等,我扯的有点儿远了,但是我要说的事儿是建立在以上基础之上的。

我刚才差点就要像马丁路德金那样说:“我有一个梦想”,但是这句话让我的胃稍有不适,喝口水,冲一冲酒劲儿。

好吧,我曾经有个梦想,那就是—家庭影院!

你会轻蔑地一笑:“多大点儿事儿,我还以为抢鸡蛋呢,原来是家庭影院啊,这有啥啊,整个大电视,搞两个音箱,往房间里面一摆,不就是了嘛”。

唉,俺也曾经这样以为,而且照做了,但真不是家庭影院。

——————————注意,以下内容纯属瞎掰:————————————————

真正的家庭影院有这么几个要求:

首先,必须要有一个巨幅的屏幕,液晶电视就甭想了,充其量也就一百寸吧?远远不够,至少要有两百寸以上的屏幕(就这比起电影院里两层楼高的银幕还是差很远),所以要用投影。

其次呢,要有高清晰度的投影机,市面上现在卖那些白菜价的1024×768的液晶投影就别看了,专业的投影机对亮度和对比度以及分辨率都有很高的要求,10万元(人民币)以内都没有特别符合要求的。

然后是音响系统,市场上鼓吹的5.1或者7.1系统都是白扯,不是说喇叭多了凑个数就行了,功率、灵敏度、解码方案这些都是有严格要求的,目前来说,家用的音响系统就算是通过THX认证的也鲜有达到影院级标准的。

就算以上这些设备全部买到,也得考虑放在哪儿以及如何摆放的问题,客厅肯定不行,东西太多太乱,那就得单独提供房间了,至少也得30平米(因为要放沙发),房间里要做好隔音、吸音处理,因为你肯定不想在看的正投入的时候让邻居们过来砸门。

假设这些都准备齐了,还是要注意片源的问题,兄弟!几十万的东西拿回家不会就是放录像带吧?

上一代DVD肯定不行,据说以前有发烧友自己在家弄电影放映机来放胶片,不过现在好了,有了蓝光DVD(一片儿顶过去五片儿),一部电影几十G的容量,1920或以上的清晰度,基本够用了。

所以看来,哪怕是一个看电影的梦想,也不是那么容易实现的哈。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\264\271\344\272\206\344\270\215\345\260\221\350\204\221\347\273\206\350\203\236/index.html" "b/p/\350\264\271\344\272\206\344\270\215\345\260\221\350\204\221\347\273\206\350\203\236/index.html" new file mode 100644 index 000000000..d8d4805f2 --- /dev/null +++ "b/p/\350\264\271\344\272\206\344\270\215\345\260\221\350\204\221\347\273\206\350\203\236/index.html" @@ -0,0 +1,11 @@ +费了不少脑细胞 +

费了不少脑细胞

今天大脑超负荷运转,下午连续工作五个小时没休息,一直在思考一个程序上的问题,最后终于解决了。

终于把一个老程序的数据库引擎从恶心的access换成了可爱的sqlite了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\265\260\350\267\257\345\216\273\350\245\277\350\227\217/index.html" "b/p/\350\265\260\350\267\257\345\216\273\350\245\277\350\227\217/index.html" new file mode 100644 index 000000000..93774896e --- /dev/null +++ "b/p/\350\265\260\350\267\257\345\216\273\350\245\277\350\227\217/index.html" @@ -0,0 +1,11 @@ +走路去西藏 +

走路去西藏

n年以前,n小于3,我偷偷地策划过一件事情,最终未能实现,因为太不着边际了。

我想徒步去一趟西藏,在我又听了一遍《回到拉萨》之后。

那时我想,我靠,就这么定了,我跟谁都不说,电话关机,从此消失,我要走着去西藏,找一个喇嘛庙,问一问人家,看能否收留我,出家算了。

我差点把这事儿写进project做个详细的计划。

一直没有想明白,为什么会对一个从不了解也从未去过的地方产生向往之情,也许冥冥之中觉得那是一方纯洁的圣土,我想去洗一洗,找找回家的感觉。

受不了喧闹和高速的生活,一个人孤独地在这边单着,偶尔夜里躺床上做梦,总觉得有人在后面拿鞭子抽我。

相当一段时间,我真是烦乱至极,劳累的工作导致身体的虚弱,长期的压力导致轻微的精神分裂,就像电影《搏击俱乐部》里的主角那样,人格差点儿分裂出去。

于是就想做一件比较荒诞的事情来调剂一下,可惜未能实现。

为啥未能实现哩,因为片刻之后我就恢复了理智。

祖国还需要我,人民还需要我。那段时间我打电话给我妈,说我想回老家歇几年,哪怕几个月也成,未被批准。

也就咬咬牙撑过来了,只是落下了一郁闷就想起徒步去西藏的毛病。

今天又想起这事儿了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\265\266/index.html" "b/p/\350\265\266/index.html" new file mode 100644 index 000000000..d39ad692c --- /dev/null +++ "b/p/\350\265\266/index.html" @@ -0,0 +1,11 @@ + +

赶!回来的时候,用自动售票机买的票,这机器有点儿缺心眼,认为我是短跑高手,给了我一张5分钟后就发车的票,看完之后我马上汗就下来了,一溜小跑,要说还是天津人民素质高,不仅不在乎我夹塞进站还帮我查询检票口的号码,我一路狂奔到车上,还没站稳,车就开动了!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\266\205\347\272\247\345\260\217\345\245\263\345\243\260/index.html" "b/p/\350\266\205\347\272\247\345\260\217\345\245\263\345\243\260/index.html" new file mode 100644 index 000000000..eb95d3195 --- /dev/null +++ "b/p/\350\266\205\347\272\247\345\260\217\345\245\263\345\243\260/index.html" @@ -0,0 +1,11 @@ +超级小女声 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\267\221\346\255\245\344\270\200\345\221\250\347\232\204\346\204\237\345\217\227/index.html" "b/p/\350\267\221\346\255\245\344\270\200\345\221\250\347\232\204\346\204\237\345\217\227/index.html" new file mode 100644 index 000000000..9bee0535f --- /dev/null +++ "b/p/\350\267\221\346\255\245\344\270\200\345\221\250\347\232\204\346\204\237\345\217\227/index.html" @@ -0,0 +1,11 @@ +跑步一周的感受 +

跑步一周的感受

好吧,我坦白,由于不可抗拒之因素太多,导致我本周只跑了四次。而且由于体能因素、并出于不给首都添过多麻烦的目的,暂缓执行下班去奥森公园长跑的计划,先在小区内绕圈(我在地图上量了一下,一圈大概1.6公里),每次两圈。

多年没跑步了,以至于很多人认为我在开玩笑,孙敏慧率先在微信上狠狠讥讽了我一番(我善意的认为她也可能是出于激励我的目的),断定我不能坚持下去,我妈则担心我把本来就贫瘠的肌肉也跑掉,还有朋友劝解我不可操之太猴急,刚开始先来个几百米意思一下,以防受伤,当然更多的是给予了鼓励和关注,谢谢。

从生理上来说,刚开始跑唯一的感觉就是,难受和枯燥,根本没有功夫思考,所以也算放空大脑了,尤其是第一圈,还没跑完就感觉不行了,气喘吁吁,心跳加快,后来就开始能感到出汗了,先是额头渗出汗水,一会儿就被风吹干,然后再渗,身体开始出汗,秋裤开始粘上(没经验,忘脱了),最后鼻涕也出来了,就差眼泪了,于是算是半跑半走的坚持了两圈。

后来再跑就没那么累了,速度也比第一次快了一些,但是也不敢冒进,一旦感觉太累就停下来或者放慢速度,如果跑过某段疲劳难受的时段,甚至还感觉比较轻松。

从心理上来说,刚开始确实有些不太好意思,总担心给过往的司机增加心理负担,给遛狗的老人带来惊吓,或者有其他跑步的美女过来搭讪,我要是搭理她,则耽误我功夫,我要是不搭理她,她该有多没面子。

不过一旦跑起来就无所谓了,因为什么顾不上考虑,唯一能做的就是数自己的呼吸,或者用手机换一首更激进的歌,碰到那种软绵绵容易让人丧失斗志的歌,比如《Let it go》(放手吧),赶紧切,换成《We can’t stop!》。

不管怎样,我还是尝试了去坚持,也不准备将来能跑多远,或者能跑多好,有条件就坚持下,没条件就创造条件。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\267\221\346\255\245\345\220\247/index.html" "b/p/\350\267\221\346\255\245\345\220\247/index.html" new file mode 100644 index 000000000..1a694e610 --- /dev/null +++ "b/p/\350\267\221\346\255\245\345\220\247/index.html" @@ -0,0 +1,11 @@ +跑步吧!!! +

跑步吧!!!

午饭后,与远方的二舅聊起家常,说到锻炼身体的重要性。

我说我没时间、坚持不下来,结果被二舅狠狠鄙视了,连二舅那么忙的人都能每天坚持锻炼,我就没啥话说了。

据说他锻炼成果显著,现在腰不酸了背不疼了走路也有劲儿了。

我想起今儿上午,和同事一起搬了台服务器都累的两股战战几欲先走(也怪那服务器忒沉),看来我是得加强锻炼了。

想了半天,最后还是决定采用"跑步"这一经济实惠的锻炼方式,并制定计划:

每晚20点半至21点间散步10分钟跑步20分钟(时间可根据情况提前或推后,但过了22点就取消当日计划)。

除非遇到不可抗拒之因素(如下雪、加班到深夜等),否则一律坚持跑步!即日起,博客恢复更新,以记录跑步计划执行情况。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\267\221\346\255\245\345\234\250\347\273\247\347\273\255/index.html" "b/p/\350\267\221\346\255\245\345\234\250\347\273\247\347\273\255/index.html" new file mode 100644 index 000000000..c5ed70390 --- /dev/null +++ "b/p/\350\267\221\346\255\245\345\234\250\347\273\247\347\273\255/index.html" @@ -0,0 +1,11 @@ +跑步在继续 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\267\221\346\255\245\346\214\207\346\225\2601\351\242\227\346\230\237/index.html" "b/p/\350\267\221\346\255\245\346\214\207\346\225\2601\351\242\227\346\230\237/index.html" new file mode 100644 index 000000000..89d82f557 --- /dev/null +++ "b/p/\350\267\221\346\255\245\346\214\207\346\225\2601\351\242\227\346\230\237/index.html" @@ -0,0 +1,11 @@ +跑步指数1颗星 +

跑步指数1颗星

好像最近我的博客里只剩下我每天在唠叨天气了,没办法,劳累了一天的脑子实在是没有力气在攒出一篇上千字的文章了。

今天的跑步指数是一颗星,极不适合跑步(满分五星),天气寒冷,空气污浊,空气中弥漫着烧烤的味道,实际上是天然气取暖燃烧的烟雾。

我还是出去跑了一圈,权当是为了锻炼自己的执行力。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\267\221\346\255\245\346\214\207\346\225\260\351\233\266\351\242\227\346\230\237/index.html" "b/p/\350\267\221\346\255\245\346\214\207\346\225\260\351\233\266\351\242\227\346\230\237/index.html" new file mode 100644 index 000000000..bc5d9dcd1 --- /dev/null +++ "b/p/\350\267\221\346\255\245\346\214\207\346\225\260\351\233\266\351\242\227\346\230\237/index.html" @@ -0,0 +1,11 @@ +跑步指数零颗星 +

跑步指数零颗星

前天,就是冬至那天,据说是n年以来最冷的冬至,冷就不用多说了,反正实在是不能出去跑步了,我还是先将跑步停一停,等跑步指数上升到两颗星时再开始跑。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\267\221\346\255\245\346\232\202\345\201\234/index.html" "b/p/\350\267\221\346\255\245\346\232\202\345\201\234/index.html" new file mode 100644 index 000000000..b9f0f2a9a --- /dev/null +++ "b/p/\350\267\221\346\255\245\346\232\202\345\201\234/index.html" @@ -0,0 +1,11 @@ +跑步暂停! +

跑步暂停!

寒流来袭,最高温度才零下2度,外面冷的能把人冻傻,在我还未被冻傻之前,先做出一个明智的决定,无限期暂停跑步计划,风太大,空气又凉,我又没有自虐倾向,还是在屋里待着暖和。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\267\221\346\255\245\346\234\211\350\277\233\346\255\245/index.html" "b/p/\350\267\221\346\255\245\346\234\211\350\277\233\346\255\245/index.html" new file mode 100644 index 000000000..3e89d9fda --- /dev/null +++ "b/p/\350\267\221\346\255\245\346\234\211\350\277\233\346\255\245/index.html" @@ -0,0 +1,11 @@ +跑步,有进步 +

跑步,有进步

昨天跑完后没感觉,睡了一夜,今早感觉腿酸背痛,看来见效果了啊。

今天继续跑步,距离与昨天相同,还是一圈,时间缩短3分钟,速度不是我追求的,跑步本身才重要,看来明天要延长路线了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\267\221\346\255\245\347\273\247\347\273\255/index.html" "b/p/\350\267\221\346\255\245\347\273\247\347\273\255/index.html" new file mode 100644 index 000000000..4889fd47b --- /dev/null +++ "b/p/\350\267\221\346\255\245\347\273\247\347\273\255/index.html" @@ -0,0 +1,11 @@ +跑步继续!!! +

跑步继续!!!

温度回升到最冷才-6度了,风也不那么大了,暂停了整整一周的跑步计划,今天正式恢复。

室外其实没我想象的那么冷,上身只穿了一件羊毛衫,仍然跑的微微出汗,拿着秒表的手刚开始感觉快要冻僵,但跑了一会儿之后就感觉很暖和了。

路况比我想象的糟糕,由于白天飘了几片雪花的缘故,导致部分路面已经结冰,跑在上面十分危险,差点摔倒。

总的来说,跑一跑还是很舒坦的。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\267\237\347\235\200\346\211\257\346\211\257\346\267\241/index.html" "b/p/\350\267\237\347\235\200\346\211\257\346\211\257\346\267\241/index.html" new file mode 100644 index 000000000..75d3060ef --- /dev/null +++ "b/p/\350\267\237\347\235\200\346\211\257\346\211\257\346\267\241/index.html" @@ -0,0 +1,11 @@ +跟着扯扯淡 +

跟着扯扯淡

最近霍金霍大爷又放话出来说,大家小心一些,最好不要惹了外星人,不然人类文明可能会完蛋。

这边唱那边就有出来和的,一帮专家又跳出来分析说,大家也不要太担心外星人会跟我们动武。

我看也是,确实不用担心,因为担心也没用。

古时候有一说法,叫“天上一天,地上一年”,乍一听觉得不可思议,可是现在的物理学越研究就越发现古人说的有道理,当宇宙飞船在天上的飞行速度接近或者超过光速时,那确实是天上一天地上一年。

做一个很俗的假设,其实神话中的天神下凡,就是外星人来地球逛街,至于七仙女什么的估计就是女外星人了。

外星人能来地球得瑟,就说明他们拥有比我们先进的多的文明程度,要灭我们也是轻而易举,但是为什么还不动手呢?

我想是因为宇宙中也有保护濒危物种的法律吧,猪再蠢,要是地球上的猪快死绝了,也得修好猪圈养起来。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\275\246\347\245\250\344\271\260\345\245\275\344\272\206\347\216\260\345\234\250\345\217\252\346\203\263\344\270\200\346\255\245\350\267\250\345\233\236\345\256\266\345\216\273/index.html" "b/p/\350\275\246\347\245\250\344\271\260\345\245\275\344\272\206\347\216\260\345\234\250\345\217\252\346\203\263\344\270\200\346\255\245\350\267\250\345\233\236\345\256\266\345\216\273/index.html" new file mode 100644 index 000000000..721db376b --- /dev/null +++ "b/p/\350\275\246\347\245\250\344\271\260\345\245\275\344\272\206\347\216\260\345\234\250\345\217\252\346\203\263\344\270\200\346\255\245\350\267\250\345\233\236\345\256\266\345\216\273/index.html" @@ -0,0 +1,11 @@ +车票买好了,现在只想一步跨回家去! +

车票买好了,现在只想一步跨回家去!

每年的春运,我都要受到生理和心理的双重摧残,无休止的排队买票,心惊胆寒地挤上车,反复地转车,汽车、火车、汽车…,从坐在公司的椅子上到躺在老家的沙发上,就像经历一场洗礼。

感谢上天的保佑,我终于买到今年的车票(这期间的经历和见闻不堪回首,要是说出来肯定是要被"和谐"的),捏着这张沾满了汗水的车票,站在西站挤满了人(失望的和绝望的)的售票大厅,我知道,虽然万里的长征刚迈出了第一步,但我的心"秋"的一下子就飞到老家了!

–由sbabybird于1/29/200803:43:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\275\257\344\273\266\351\234\200\346\261\202\344\270\216\350\256\251\344\275\240\344\270\253\344\270\215\346\210\264\345\270\275\345\255\220/index.html" "b/p/\350\275\257\344\273\266\351\234\200\346\261\202\344\270\216\350\256\251\344\275\240\344\270\253\344\270\215\346\210\264\345\270\275\345\255\220/index.html" new file mode 100644 index 000000000..963147810 --- /dev/null +++ "b/p/\350\275\257\344\273\266\351\234\200\346\261\202\344\270\216\350\256\251\344\275\240\344\270\253\344\270\215\346\210\264\345\270\275\345\255\220/index.html" @@ -0,0 +1,11 @@ +软件需求与“让你丫不戴帽子” +

软件需求与“让你丫不戴帽子”

改了一天的软件bug,发发牢骚:

在软件开发过程中,开发人员最担心的不是客户提出的功能需求从技术上难以实现,而是客户往往毙掉你费尽心血开发的功能,然后天马行空地提出另一套思路,如果你抱着客户就是上帝的想法,满足了他们的变态要求,那么,苦日子接着就来了,因为这些变态的家伙会在软件的功能需求上反反复复、朝三暮四并乐此不疲。

比如你的程序完成了某一项任务后没有提示,他会说“为什么干完了不提示我一下?”

而如果你跳出来提示他又会觉得很烦“干完了为什么还要烦我一下?”,

最后只好弄成可配置,但人家又嫌配置起来太罗嗦,不人性化。

不多说了,想起来一个经典的笑话说兔子跟街上走着,迎面碰上了老狼。

老狼伸手就给他一大嘴巴,“让你丫不戴帽子”。  兔子很郁闷地回家了,弄一帽子戴着。  

第二天又碰上老狼了,又挨了一大嘴巴,“让你丫戴帽子”。  如是几次,总挨打。

兔子想,这么老挨打不是个事儿啊,不行,我得找老虎投诉去。  

刚到老虎家门口,就听老虎在屋里说话。  

你也不能老这么蛮不讲理打兔子阿,回头兔子找我投诉来,我也不好罩着你啊。

好歹咱面子上得过得去,我教你一招。  

下回你见着兔子,跟他说:给我弄点儿洗衣服的来。他给你拿肥皂来,你就打他一顿的,说我要的是洗衣粉,谁让你拿肥皂。他拿来洗衣粉,你也能打,说我要肥皂,谁让你拿洗衣粉。  

要不然你跟他说,去,给我找个女人来。他给你找个胖的,你打他一顿说我要瘦的;给你找个瘦的,你也打一顿,说我要胖的。  这样不结了,你也能打他,我面子上也能说得过去。”  兔子一听,得,咱也别投诉了,回家吧。  

第二天,兔子在街上又撞上老狼。老狼大喝一声:去,给我找点儿洗衣服的来。  

兔子不慌不忙:你是要洗衣粉阿,还是要肥皂啊?  

老狼一听,嗯?有一手阿。又说:去,给我找个女人来。  

兔子还是不慌不忙:你是要胖的啊,还是瘦的?  

老狼一听勃然大怒,伸手就给兔子一个大嘴巴,  

让你丫不戴帽子!

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\275\273\350\275\273\347\232\204\346\210\221\345\260\206\346\225\264\350\233\212\344\275\240/index.html" "b/p/\350\275\273\350\275\273\347\232\204\346\210\221\345\260\206\346\225\264\350\233\212\344\275\240/index.html" new file mode 100644 index 000000000..fcbebe0dd --- /dev/null +++ "b/p/\350\275\273\350\275\273\347\232\204\346\210\221\345\260\206\346\225\264\350\233\212\344\275\240/index.html" @@ -0,0 +1,11 @@ +轻轻的,我将整蛊你 +

轻轻的,我将整蛊你

天气这么闷热,生活这么枯燥,何不搞点小把戏调剂一下气氛呢?

要是你现在刚好在办公室里,那么恭喜你了,下面我将教你几个在下秘密收藏的整蛊手段(一般人我不告诉他)。

前提条件:

1、你们用计算机办公;

2、你们使用的是Windows操作系统;

3、你要整蛊的同事没有暴力倾向;

4、他刚好暂时离开一下。

好了,准备好了就开始行动吧!

场景一:“我的密码被改了?!”

如果你的这位同事有锁定计算机的习惯,那就刚好实施一下,在他计算机的锁定状态下的密码框里提前敲入一个空格,这样一般他回来时不会发觉,等他输入完自己的密码后,会发现进不去了!(因为密码前面多输入了一个空格)。

场景二:“用来干活儿的软件没有反应了!”

如果他没有锁定计算机的习惯,那么刚才那个办法就不凑效了,怎么办呢,找到他用来工作的软件(VC,Word、Excel等),把帮助菜单里的“关于(about)”对话框给打开,然后用鼠标把对话框拖动到一个屏幕上看不见的地方。哈哈,等着吧,他回来会发现他用来工作的软件怎么也不听话了,无论点击哪儿都没有反应。

场景三:“鼠标不好使了”

现在大家都用光电鼠标了,而光电鼠标全靠它屁股底下的那个激光眼,没错!你又猜对了,拿个小纸团把它那个小眼睛堵住,赶紧去吧!鼠标瞎了之后就罢工了。

以上方法屡试不爽,我都亲自实验过,不过是别人在我身上实验的(这帮败家玩意儿)。

注:以上操作纯属娱乐!产生后果自负。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\277\207\345\271\264\347\232\204\346\230\245\350\201\224/index.html" "b/p/\350\277\207\345\271\264\347\232\204\346\230\245\350\201\224/index.html" new file mode 100644 index 000000000..f413c1b48 --- /dev/null +++ "b/p/\350\277\207\345\271\264\347\232\204\346\230\245\350\201\224/index.html" @@ -0,0 +1,11 @@ +过年的春联 +

过年的春联

对过年最大的感触就是贴春联了。大年三十早上,不睡懒觉,早早的起来,吃完早饭,就开始当天最大的工程,贴春联。先仔细撕掉去年的春联,慢慢擦洗干净,涂上浆糊,再贴上新的春联,最后用手仔细抹平,那一刻真正宣告一年的结束,和新年的到来。

老家的风俗比较淳朴,处处要讨一个吉利,所以除了在各种门上张贴门神(或福字)和对联之外,粮仓上要贴上“五谷丰登”,院墙上要贴上“满院春光”,门口贴“出门见喜”,水井贴“细水长流”,自行车上书“日行千里”(后来改贴小汽车上了,也算是名副其实了),就连猪圈也要贴上“六畜兴旺”。

上面这些只能算是基础工作,最重要的是要在客厅正当中贴上“请”回来的神像,两旁对联曰“一杯美酒敬天地,三柱清香谢神灵”,横批“玉皇大帝”,然后去厨房,在灶台旁边张贴灶王爷和灶王奶奶的神像,对联“上天言好事,下届保平安”,横批“一家之主”,最后在八仙桌腿上张贴“客来家中坐,先敬茶酒烟”。

最后一道程序是由家中首席执行官(一般是奶奶)正式焚香敬神,同时院中点燃一挂鞭炮,整个春联工程大功告成。

各家各户均是如此,春联贴完的鞭炮,宣告春节活动的正式开始,从这一刻到正月初五,就算是真正的“年”,我理解的过年就是这一段时间。

春联可以在集市上购买,但最好是能亲自用毛笔书写,每当这个时候,村里稍微会写字的就会成为各家争先请求的对象,农村人不会对书法造诣有多高评判标准,一般能把对联写出来,看起来不难看就行,我们那边文化教育程度低,我记得小时候好像见过有人将“玉皇大帝”错写成“玉皇大地”,就当是通假字吧,跟大人说了大人也不在意,以至于后来在北京见到“上地”的地名,也本能的进行纠错。

我之所以对这些风俗如此了解,是因为我从能站在地上端着浆糊碗开始,就开始在过年的时候跟家人一起贴春联了,贴着贴着,春联揭了一层又一层,也贴了一层又一层,不知不觉已经是我的孩子们在旁边端着浆糊了。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\277\207\345\271\264\347\232\204\350\234\241\347\203\233/index.html" "b/p/\350\277\207\345\271\264\347\232\204\350\234\241\347\203\233/index.html" new file mode 100644 index 000000000..c95494911 --- /dev/null +++ "b/p/\350\277\207\345\271\264\347\232\204\350\234\241\347\203\233/index.html" @@ -0,0 +1,11 @@ +过年的蜡烛 +

过年的蜡烛

说说小时候过年的事情吧,那个时候我们村里还没有通电,平时晚上会点煤油灯来照明,过年的时候家家户户都要点蜡烛,俗称"大蜡"。

这可不是一般的蜡烛,而是非常巨大的一对蜡烛,差不多有两斤重,顶端粗壮,下端圆滑,底部有孔,上面通常写着非常有年味儿的对联,如"一杯美酒敬天地,三柱清香谢神灵"等字样,金色的字,红色的蜡闪闪发光。

这么大的蜡是不能直接放在桌子上点燃的,一般要有支撑蜡的架子,俗称"蜡台子",现在的小朋友可能都没有见过蜡台,那是一个精致的木头架子,刷上红漆,中间有两根铁柱竖着用以把蜡烛插在上面,手巧的木匠会把蜡台做的颇具艺术感。

也有的人家直接把一个大萝卜切开两半,平着摆在桌子上,再插上两根筷子,也成了不错的蜡台。

大蜡会在大年初一那天四五更天的时候点燃,我过年一般起的很早(小孩子最爱过年了),起来之后洗漱完毕第一件事情就是点大蜡,大蜡的火苗很大,照的整个堂屋像白天一样明亮,也预示着大家在新的一年里红红火火,吉祥如意。

点大蜡、敬香、吃饺子,然后放鞭炮这个流程就是我对小时候过年的记忆。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\277\230\346\230\257\350\257\264\350\257\264\345\220\247/index.html" "b/p/\350\277\230\346\230\257\350\257\264\350\257\264\345\220\247/index.html" new file mode 100644 index 000000000..e3aa1ed93 --- /dev/null +++ "b/p/\350\277\230\346\230\257\350\257\264\350\257\264\345\220\247/index.html" @@ -0,0 +1,11 @@ +还是说说吧 +

还是说说吧

尽管朋友们露出鄙夷的目光,《建国大业》这部片子,我今天还是去看了。

片子净长133分钟(据不可靠消息说本来长度可达4个小时),加上开头有20分钟左右的广告,让我坐了两个半小时吧。虽然开场之前大家都去放水了但影片结束后电影院的厕所还是堵了个水泄不通。

感受呢,还行。演员阵容不是一般的强大,演员的演技实力也不是一般的强大,所以单纯从电影的角度来说,感觉应该是一部很不错的电影,所有人都很卖力气。

但是感觉时间上还是有点儿赶,故事讲的很跳跃速度很快,明星们冒个泡亮一下,连个沙发板凳都还没抢,就进入下一个环节了。

看的时候总是想跟小时候看的那个《开国大典》来比对,《开国大典》看了n遍了,很多情节还是记忆犹新,比如吃面没带钱,解放军砍总统府的棋,登城楼时往上爬台阶的那个长镜头。

这个《建国大业》里面还是有些笑点的,安排的还算轻松,比如冯巩老抢不上发言,女代表让郭德纲改底片,许三多报告发现前面的地主大院不容易攻打请求炮火支援,结果葛优一看,发现这是到了德胜门(好像是德胜门,管它哩)。

最后,这部片子可看,其他人说了屁也不算,何必让别人的垃圾评论影响自己的观点哩。

ps:电影而已,外籍演员的片子你还少看了?

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\277\230\346\230\257\351\232\276\350\210\215firefox/index.html" "b/p/\350\277\230\346\230\257\351\232\276\350\210\215firefox/index.html" new file mode 100644 index 000000000..f0b38bf98 --- /dev/null +++ "b/p/\350\277\230\346\230\257\351\232\276\350\210\215firefox/index.html" @@ -0,0 +1,11 @@ +还是难舍firefox +

还是难舍firefox

用了两个月的GoogleChrome浏览器之后,现在我又换回Firefox了,虽然Chrome很快,启动很快、网页加载很快、js脚本飞快,但是还是无法替代我的Firefox。

首先就是在页面的渲染效果上chrome没有firefox好看,尤其是对于中文页面的渲染,再有就是firefox拥有无比强大的插件系统,与其说舍弃不了firefox倒不如说是舍不得那些插件,delicious、greasemonkey、tabmix、ubiquity等等都是绝世好插件,给我的浏览带来完美的体验。

chrome也是很好的浏览器,从刚发布时的粗糙简陋到现在的稳定、高效、人性化,进步非常快,记得chrome刚发布的时候我立即就安装了,也立即就卸载了,太简陋了(也许是简约)。

后来2.0的时候我又忍不住安装了,这次提高很多,渲染中文字体也比以前好看,速度飞快,于是我坚持用了两个月,期间忍受着没有delicious书签的痛苦。

现在我又换回到firefox了,虽然启动慢点儿,内存占用多点儿,可是用起来真是很可手,听说马上要出3.5了,拭目以待。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\277\230\346\262\241\345\233\236\345\256\266/index.html" "b/p/\350\277\230\346\262\241\345\233\236\345\256\266/index.html" new file mode 100644 index 000000000..312743f9b --- /dev/null +++ "b/p/\350\277\230\346\262\241\345\233\236\345\256\266/index.html" @@ -0,0 +1,11 @@ +还没回家 +

还没回家

再过十分钟就过了今天跑步的时限了,而现在我仍旧坐在办公室里,喝着温热的开水,盯着跑焦的屏幕。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\277\234\345\216\273\347\232\204dvd/index.html" "b/p/\350\277\234\345\216\273\347\232\204dvd/index.html" new file mode 100644 index 000000000..e90e09ea0 --- /dev/null +++ "b/p/\350\277\234\345\216\273\347\232\204dvd/index.html" @@ -0,0 +1,11 @@ +远去的DVD +

远去的DVD

第一次见识DVD的清晰是在上大学的时候,在我们刚刚落成的多媒体教室,好像还是"邓论"课,老师看大家实在闷的慌,就放了一部《角斗士》来调节气氛,播放器材就是DVD加投影机。

我现在印象最深刻的一个镜头是,男主角走在金黄的麦田里,用手拨弄着麦穗,身边荡起层层麦浪,这个镜头太美了,DVD清晰的画质深深震撼了我。

不久,在我的软磨硬泡下,家里也给我买了一台DVD(顺便买了不错的音响,暂且按下不表),我欢喜的不得了,可惜没有投影机,因为当时动辄十几万一台的投影机对我来说只能奢望,当然,现在也是。然后就是开始疯狂收碟,从《勇敢的心》到《杀手里昂》,从《喜剧之王》到《阿甘正传》,反正当时我认为经典的电影全部收藏,两年下来,在零花钱不是特别充裕的情况下,我"收藏"了将近200张DVD(现在还剩几十张了)

虽然是盗版,但是过来人都知道,在国内,盗版DVD实际上比正版DVD画质都要好(当然要选对牌子咯,这个话题说起来就扯远了)。

当时我逛街最怕两件事,一个是进书店,另一个就是进碟店,因为无论走进哪个,我出来之后钱包准空。

不过和真正收碟的碟友比起来我这几张真的不算啥,我后来认识了一个哥们,光正版碟就收了1000多张(刚工作的工资全花在买碟上了),同样的电影,要买两份,一张平时看,一张摆那儿永远也不舍得打开看。

还是醒醒吧,我现在已经几乎不看DVD了,而且也不再买碟。

一方面是因为随着年龄的增长,工作将我的各种兴趣爱好磨灭了不少,另一方面是因为网络飞速发展,DVD这种存储介质渐渐走向衰败,即使偶尔想看两眼电影,也随时可以在线观看。

虽然现在又推出新格式的蓝光DVD,但是我认为它也基本没戏,就像过气的女明星,无论怎么打扮也难逃被抛弃的命运。

现在再看看那些卖碟的小贩,谈起DVD极不专业,而且以次充好,老拿电影院偷拍的枪版糊弄人,再者就是n合一的压缩碟,这种格式彻底毁掉了我对DVD的兴趣,要画质没画质要音质没音质,除了毁坏光驱,再也找不到别的用处了。

另外也别跟我扯新一代蓝光DVD的容量和清晰度,还是那句话,"我很不看好你哟",因为我认为,随着网络技术的发展,硬盘、光盘、优盘、这些存储介质都将被淘汰。

什么?你说咱们还有完全自主知识产权的EVD呢?我只能说:"呵呵,大哥,你可真会讲笑话,这是我今天听到的最好笑的笑话了"

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\350\277\236\346\216\245\350\242\253\351\207\215\347\275\256/index.html" "b/p/\350\277\236\346\216\245\350\242\253\351\207\215\347\275\256/index.html" new file mode 100644 index 000000000..a2e0fb611 --- /dev/null +++ "b/p/\350\277\236\346\216\245\350\242\253\351\207\215\347\275\256/index.html" @@ -0,0 +1,11 @@ +连接被重置 +
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\202\243\344\272\233\345\271\264\346\210\221\347\224\250\350\277\207\347\232\204\347\273\210\350\272\253\345\205\215\350\264\271\344\272\247\345\223\201/index.html" "b/p/\351\202\243\344\272\233\345\271\264\346\210\221\347\224\250\350\277\207\347\232\204\347\273\210\350\272\253\345\205\215\350\264\271\344\272\247\345\223\201/index.html" new file mode 100644 index 000000000..cde19ca00 --- /dev/null +++ "b/p/\351\202\243\344\272\233\345\271\264\346\210\221\347\224\250\350\277\207\347\232\204\347\273\210\350\272\253\345\205\215\350\264\271\344\272\247\345\223\201/index.html" @@ -0,0 +1,11 @@ +那些年,我用过的“终身免费”产品 +

那些年,我用过的“终身免费”产品

浙江温州最大的网盘厂,360网盘,倒闭了,王八蛋老板吃喝嫖赌欠下了三点五个亿,带着他的小姨子跑了。。。。。。

我是在出差途中听到这个丧心病狂的消息,虽然以前就隐约觉得迟早会有这么一天,但是却没有想到它来的这么快。当时感觉强行被打脸,我可是经常见人就推荐这款产品的啊,文件夹同步功能比某度网盘云盘不知道高到哪里去了。

现在我的脑海里除了一边盘算如何下载我那费劲巴力传上去的一百多G数据,一边浮现出当年范厨师坐在轮椅上对赵本山说:“我要是再相信你就是二次上当。。。”的画面。

第一次有这种感觉是前些年谷歌关闭旗下的GoogleReader产品(一款RSS阅读器),这个产品我用了将近5年,可以说通过这个产品提供的阅读文章刷新了部分三观,但是谷歌在2013年7月毅然关闭了这个产品,不顾百万用户跪求不要关闭。从此以后再使用谷歌产品我都持谨慎悲观的态度,后来的事情也逐渐印证了这种观点—-谷歌是个喜欢随意关闭产品线的厂,项目说砍就砍。果然后来谷歌的glass、无人驾驶等项目都雷声大雨点小,在无人驾驶技术方面甚至被起步比他晚的厂商反超。

另一个大厂,微软,和谷歌随意关闭产品的习惯不同的是,微软喜欢改自己产品的名字,我最早的时候用过微软的MySpace(比qq空间可能还要早),在上面写了不少日志,后来微软不知怎的就把它的名字改为LiveSapce了,然后所有产品线都开始围绕Live展开,连注册个账号都要live.com的邮箱,结果,没过几年,不知哪位大师又给微软看了风水,全线产品又都开始围绕outlook.com展开了,live也被废弃了。

说到大厂,雅虎当年也算一个,当年给用户提供终身免费电子邮箱的时候,用户无不感恩戴德,好多账号都使用雅虎的邮箱进行申请,然并卵,雅虎的邮箱同样也在2013年关闭。看来所谓的“终身免费”,在互联网公司的眼里指的并不是针对你的“终身”,而是产品的寿命。

从个人感受来说,我是非常愿意为好用的产品付费,因为这符合市场价值交换的基本原则,有句话比较流行,叫“免费的,才是最贵的”。现在的互联网产品已经把用户给惯坏了,免费可能都不行了,恨不得倒找你钱才行,放眼望去,线上充斥 着免费的劣质产品,好的产品很容易就因为收费问题而被干趴下,像360云盘这么好的网盘产品(同类产品的几乎每一款客户端我都试用过超过1周,最终谨慎选择了360),绝对不是因为技术原因导致的关闭,我猜测真实原因可能也不是其在公告里说的“因为版权审查”,很可能是因为“钱烧完了”。不知道360网盘是否怀念当年将杀毒软件免费而干掉别人的日子。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\203\201\351\227\267\347\232\204\344\270\207\350\203\275\350\247\243\350\215\257/index.html" "b/p/\351\203\201\351\227\267\347\232\204\344\270\207\350\203\275\350\247\243\350\215\257/index.html" new file mode 100644 index 000000000..1c0301ade --- /dev/null +++ "b/p/\351\203\201\351\227\267\347\232\204\344\270\207\350\203\275\350\247\243\350\215\257/index.html" @@ -0,0 +1,11 @@ +郁闷的万能解药 +

郁闷的万能解药

靠,本来想说开心是郁闷的万能解药,想了想又觉得不妥,本来就郁闷了还哪来的开心。

好吧,乐观的心态才是。很久很久以前,记不清了,大概是上个世纪的事儿了,有一坨古老的电视节目,里面有一句名言:“快乐是一天,不快乐也是一天,为何不天天快乐呢?”

,你听听,说的多在理啊,虽然有点儿站着说话不腰疼的意思,但是话糙理不糙,不用多仔细去想就觉得豁然开朗。

随着工作压力的增大,以及对世界认知的改变,人已经变的越来越不单纯了,本来一杯清澈的白水已经污染的又黑又浑,已经很难咧着大嘴叉子笑得喘不过气来了。

曾经一个一头猪掉进臭水沟里的笑话都能笑上半天,到现在看见这样的笑话连嘴角都懒得抽动,偶尔遇到能够笑得起来的还是荤段子。

但是,最近看了一连串的美剧,让我又回到傻笑的年代,有些人说这太单纯、无聊、没意思,其实包含着大量的深刻讽刺和幽默,比如《生活大爆炸》、《好汉两个半》、《老爸老妈的浪漫史》等等

,他们不但让我看得前仰后合而且还能产生一些积极乐观的思考,不像有些电视剧简直是把你的脑袋敲开了往里面扔大便。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\203\201\351\227\267\347\232\204\346\227\266\345\200\231\345\271\262\347\202\271\345\204\277\345\225\245/index.html" "b/p/\351\203\201\351\227\267\347\232\204\346\227\266\345\200\231\345\271\262\347\202\271\345\204\277\345\225\245/index.html" new file mode 100644 index 000000000..1ad859460 --- /dev/null +++ "b/p/\351\203\201\351\227\267\347\232\204\346\227\266\345\200\231\345\271\262\347\202\271\345\204\277\345\225\245/index.html" @@ -0,0 +1,11 @@ +郁闷的时候干点儿啥 +

郁闷的时候干点儿啥

我会弹弹吉他,这样可以压压我的手指,从中医学的角度来说,十指连心,是若干经络的起点,活泛活泛手指可以舒肝解郁。

或者在房间里唱唱歌,先唱青藏高原再唱回到拉萨,两首歌下来,胃就舒坦多了。

或者打开CS,把机器人的智商调到100,然后疯狂地用mp5与匪徒们对战,要是屡被爆头请尝试降低机器人智商。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\203\201\351\227\267\347\232\204\347\264\247\346\200\245\344\273\273\345\212\241/index.html" "b/p/\351\203\201\351\227\267\347\232\204\347\264\247\346\200\245\344\273\273\345\212\241/index.html" new file mode 100644 index 000000000..17b65fbb3 --- /dev/null +++ "b/p/\351\203\201\351\227\267\347\232\204\347\264\247\346\200\245\344\273\273\345\212\241/index.html" @@ -0,0 +1,11 @@ +郁闷的紧急任务 +

郁闷的紧急任务

郁闷的紧急任务什么样的任务是令人郁闷的泥?

比如说,邻近下班的时候,老总紧急抠你,递给你一张小纸条,然后气喘吁吁的对你说:"实在是安排不开了,你赶紧按照这个意思做个PPT,明天上午十点钟给客户演示一下。"

你接过纸条一看,发现上面只有几行小字,比一条手机短信还短,更郁闷的是,上面的内容比较生辟,大家都没搞过的那种。

你长叹一声,心想,为什么总是等屎到了屁股门口才上茅房!

我今天就遇到了上述情况,多亏了Google的搜索和维基百科,我抽了三根烟才把PPT做完。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\207\215\346\226\260\345\220\257\347\224\250\345\267\245\344\275\234\346\227\245\345\277\227/index.html" "b/p/\351\207\215\346\226\260\345\220\257\347\224\250\345\267\245\344\275\234\346\227\245\345\277\227/index.html" new file mode 100644 index 000000000..cd7ff349a --- /dev/null +++ "b/p/\351\207\215\346\226\260\345\220\257\347\224\250\345\267\245\344\275\234\346\227\245\345\277\227/index.html" @@ -0,0 +1,11 @@ +重新启用工作日志 +

重新启用工作日志

有几个月没认真写工作日志了,费劲搭建的trac平台也逐渐荒芜。

最近的工作效率一直不高,系统太慢,硬盘太乱,内存不足,桌面难看…狠了狠心还是没有重做系统,准备工作太多,要装得软件太多,到最后还是一样。

于是就本着磨刀不误砍柴工的精神,整理了一下文件夹,吹了吹trac平台的灰尘,开始好好写工作日志。

以后要坚持每天清理收件箱,每天早晨安排一天的事务,并注意每天回顾。

为了节省流量就写这么多吧…

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\207\215\346\270\251winamp/20071108.JPG" "b/p/\351\207\215\346\270\251winamp/20071108.JPG" new file mode 100644 index 000000000..71af02847 Binary files /dev/null and "b/p/\351\207\215\346\270\251winamp/20071108.JPG" differ diff --git "a/p/\351\207\215\346\270\251winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_120x120_fill_q75_box_smart1.JPG" "b/p/\351\207\215\346\270\251winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_120x120_fill_q75_box_smart1.JPG" new file mode 100644 index 000000000..62ed129cb Binary files /dev/null and "b/p/\351\207\215\346\270\251winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_120x120_fill_q75_box_smart1.JPG" differ diff --git "a/p/\351\207\215\346\270\251winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_1600x0_resize_q75_box.JPG" "b/p/\351\207\215\346\270\251winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_1600x0_resize_q75_box.JPG" new file mode 100644 index 000000000..5b7213c67 Binary files /dev/null and "b/p/\351\207\215\346\270\251winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_1600x0_resize_q75_box.JPG" differ diff --git "a/p/\351\207\215\346\270\251winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_800x0_resize_q75_box.JPG" "b/p/\351\207\215\346\270\251winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_800x0_resize_q75_box.JPG" new file mode 100644 index 000000000..3bcab34ed Binary files /dev/null and "b/p/\351\207\215\346\270\251winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_800x0_resize_q75_box.JPG" differ diff --git "a/p/\351\207\215\346\270\251winamp/index.html" "b/p/\351\207\215\346\270\251winamp/index.html" new file mode 100644 index 000000000..115414f95 --- /dev/null +++ "b/p/\351\207\215\346\270\251winamp/index.html" @@ -0,0 +1,11 @@ +重温Winamp +
Featured image of post 重温Winamp

重温Winamp

有几年不用Winamp了,最近Winamp又退出了10周年纪念版版。

我下载了一个,感觉听听里面的网络电台什么的还挺不错的(边上班边听欧美最流行的音乐哈)。

而且新版还包含了podcast的功能,可以搜索订阅网上的播客。

在家听音乐的话,我还是选择foobar。

–由sbabybird于11/08/200707:49:00下午在从容地狂奔上发表

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\232\276\344\273\245\350\257\264\345\206\215\350\247\201/index.html" "b/p/\351\232\276\344\273\245\350\257\264\345\206\215\350\247\201/index.html" new file mode 100644 index 000000000..3dbf329ea --- /dev/null +++ "b/p/\351\232\276\344\273\245\350\257\264\345\206\215\350\247\201/index.html" @@ -0,0 +1,11 @@ +难以说再见 +

难以说再见

Google,一个IT公司,一个搜索引擎,对我来说几乎意味着整个互联网。

本来在我的心目中,IT公司几乎等于骗子,然而Google却是个例外。

自打开始接触互联网以来,就离不开Google了,她可以说是我的良师益友,离开大学以后学到的知识几乎全部来自于Google的索引。

除了出色的搜索功能之外,Google提供的产品无不令人惊叹,出色电子邮箱、Rss阅读器、浏览器、操作系统、手机操作系统,这些产品每一个拿出来以后都足以让原本在该领域内的佼佼者掩面而去。

可是,马上就要说再见了,总部那边发布了一篇博客,用某些动物的话说叫“撒了一下娇”,一下子就把这边的用户给抛弃了,就像上次operamini抛弃大陆用户一样。

一时间有人高兴,有人悲伤,有人麻木,有人抓狂。

技术人员大都是不关心敏感词的(或懒得关心),可是热爱技术的人哪一个不热爱Google呢,据我的感受来说,但凡是有所能力的技术人员,无论他的外表多么的随和其内心都是十分倔强的,正是凭着这一股倔强的劲儿才啃下了一个个难题,掌握了常人所不能(或不齿)掌握的东西。

然而这些人却一点一点的被逼到了墙角。

倔强的人会放弃吗?想到一个故事,记不清从那个文章里看到的了,歌词大意是:一个大山里的人被带进了繁华的大都市,第一次看到了这花花世界还有这么多活法,然后被告知回去继续过原来种菜喂猪的日子,此人大哭:“既然无法得到却又为什么让我看到啊”

嘿嘿,我宁愿从来都没有看清过这个世界。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\232\276\345\276\227\347\263\212\346\266\202/index.html" "b/p/\351\232\276\345\276\227\347\263\212\346\266\202/index.html" new file mode 100644 index 000000000..790d800af --- /dev/null +++ "b/p/\351\232\276\345\276\227\347\263\212\346\266\202/index.html" @@ -0,0 +1,11 @@ +难得糊涂 +

难得糊涂

难得糊涂啊难得糊涂,难就难在不知道该在什么时候糊涂,什么时候装糊涂。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\233\206\346\210\220\345\274\200\345\217\221\347\216\257\345\242\203/index.html" "b/p/\351\233\206\346\210\220\345\274\200\345\217\221\347\216\257\345\242\203/index.html" new file mode 100644 index 000000000..767fa2ca4 --- /dev/null +++ "b/p/\351\233\206\346\210\220\345\274\200\345\217\221\347\216\257\345\242\203/index.html" @@ -0,0 +1,11 @@ +集成开发环境 +

集成开发环境

集成开发环境(为了响应号召,我就不说是IDE了)是个好东西,使我们轻松迈入软件开发的门槛,轻松的点击几下“下一步”,瞧,一个软件就诞生了。

以至于现在很多程序员只知道makelove而不知道makefile。

我最早接触的集成开发环境应该是TurboC了,惭愧的是,我当时以为那就是C语言,没办法,当时确实分不清开发环境和编程语言。

有大约半年的时间由于我未能正确的设置该环境的参数,导致我从教科书上抄来的代码统统不能编译通过,我还以为书上印错了咧。

后来终于弄好了,在编写了各个版本的helloworld之后,终于对C语言开窍了,不过还是分不清程序语言和开发环境的关系。

再后来遇见了VC6,跟着《21天精通×××》的教程也能用鼠标写出“大”程序了。

若干年后的某一天,我研究某开源软件(该软件跨平台)的源码的时候,才第一次见到了makefile,第一次知道了原来在命令行下也能编译程序啊,于是恍然大悟,明白了集成开发环境只是一个“壳儿”。

这才试着偶尔用记事本写写小程序,在命令行下编译。从那开始,我渐渐的倾向于,使用编辑器编写代码,使用makefile管理项目工程,使用命令行编译程序。

而对于庞大臃肿、缓慢笨拙的集成开发环境越来越不满了。

昨天,VS2010发布了,一大拨人在网上散发着欣喜的软文,疯狂的鼓吹它的强大和先进,喜新厌旧的人们昨天还用着VS2008,今天就将其抛弃,转而把VS2010揽在怀里。

我想他们大概是喜欢那慢腾腾的编译速度并且可以趁机偷偷去喝上一杯咖啡吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\233\250\345\244\251/index.html" "b/p/\351\233\250\345\244\251/index.html" new file mode 100644 index 000000000..4081a774b --- /dev/null +++ "b/p/\351\233\250\345\244\251/index.html" @@ -0,0 +1,11 @@ +雨天 +

雨天

下了点儿小雨,天气突然转冷,走在街上都有些冻耳朵了。

想起孙燕姿的一首歌,忘记什么名字了,"雨天,想起你的生日卡片,望着你的照片…",叫什么名字呢,旋律挺熟悉…

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\233\252\345\221\242/index.html" "b/p/\351\233\252\345\221\242/index.html" new file mode 100644 index 000000000..9c552ccca --- /dev/null +++ "b/p/\351\233\252\345\221\242/index.html" @@ -0,0 +1,11 @@ +雪呢? +

雪呢?

昨天天气预报说,今夜迎来第一场雪,可是,感觉又被忽悠了。Ps:一大早在车上通过黑莓发送

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\237\263\351\207\217/index.html" "b/p/\351\237\263\351\207\217/index.html" new file mode 100644 index 000000000..236ab528c --- /dev/null +++ "b/p/\351\237\263\351\207\217/index.html" @@ -0,0 +1,11 @@ +音量 +

音量

城里的房子太挤,隔音很差,楼上蹑手蹑脚走过一个人,楼下也能听的一清二楚(有点儿夸张)。

以前我有在家听音乐的习惯,那是在老家的时候,每到周末都把音响开到最大,一边听一边洗衣服,现在不能这样听了,因为那样会打扰到邻居,甚至有时候稍微把音量调的大一点儿都会觉得内心十分不安。

音量大了就会担心,小了就听着不爽,感觉白瞎了我那套音箱了。

想要随心所欲的开大音量听音乐,看来只能等住进别墅了,或者回乡下老家。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\242\220\345\222\214\345\233\255/index.html" "b/p/\351\242\220\345\222\214\345\233\255/index.html" new file mode 100644 index 000000000..173587b00 --- /dev/null +++ "b/p/\351\242\220\345\222\214\345\233\255/index.html" @@ -0,0 +1,11 @@ +颐和园 +

颐和园

这几天,老爸老妈过来了,我也没有太多时间陪他们。

周末了,一起去了趟颐和园。

天太热,人太多,出去玩儿实在是太受罪了。

吃晚饭时与我爸一起整了几盅,正想多喝几杯时,老头按住酒瓶说:“编程序我不行,喝酒你不行。”

想去电脑上玩会儿游戏,我妈指着电脑屏幕上一路飙升的qq斗地主分数对我说:“编程序我不行,打牌你不行。”

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\243\216/index.html" "b/p/\351\243\216/index.html" new file mode 100644 index 000000000..f44397479 --- /dev/null +++ "b/p/\351\243\216/index.html" @@ -0,0 +1,11 @@ + +

今天跑步最大的感觉就是有风,说是刺骨的寒风有点儿夸张,但是你要是在里面站立半个钟头的话,保证能冻傻。

我发现无论往那个方向跑都是顶风,吹得我快要飘起来,有一阵子甚至感到呼吸困难,意识模糊,后来就加速奔跑,并打破了昨天的记录。

天越来越冷了,我的跑步计划迎来了严峻的考验。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\245\255\345\220\246\344\270\200\347\276\244\344\272\272\347\232\204\345\226\203\345\226\203\350\207\252\350\257\255/index.html" "b/p/\351\245\255\345\220\246\344\270\200\347\276\244\344\272\272\347\232\204\345\226\203\345\226\203\350\207\252\350\257\255/index.html" new file mode 100644 index 000000000..af02e06f0 --- /dev/null +++ "b/p/\351\245\255\345\220\246\344\270\200\347\276\244\344\272\272\347\232\204\345\226\203\345\226\203\350\207\252\350\257\255/index.html" @@ -0,0 +1,11 @@ +饭否,一群人的喃喃自语 +

饭否,一群人的喃喃自语

国外新兴一个叫Twitter的Web2.0站点,听说最近很火爆,很多人在那里叽叽咕咕,说一些有想法但又不至于发一篇bolg的“废话”。

我去看了一眼,感觉跟那帮人文化差异挺大的也就没好意思去注册,但是国内的同志们也不示弱,一时间模仿该网站理念的站点如雨后春笋般涌现。

在这些国内的叽咕站点里,有朋友就给我推荐这个“饭否”,说是一个迷你Blog,像Twitter一样,只是大家都是中国人,叽咕的内容比较容易懂一些。

我这个人最爱尝鲜,就忍不住过去注册了一个帐号。

感觉还不错,可以绑定MSN,QQ等IM软件,方便通过IM软件在上面发言,甚至可以绑定手机,让你随时随地的把感受发到网上。

人气还是挺旺的,不断有人在上面喃喃自语,也不乏有一搭没一搭的聊天者。

发布的内容可以很无聊,比如“今天的天气真好”,也可以很有深度,比如“你们好啊,地球人!”

呵呵,由于没用多久,所以还不能多加评论,我怀我有自闭的倾向,现在有了“饭否”,偶尔在里面发一下实时的感受,发泄一下心情而已,就当我是面对着墙壁在一个人喃喃自语吧。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\251\254\346\241\266\344\271\246\346\236\266/index.html" "b/p/\351\251\254\346\241\266\344\271\246\346\236\266/index.html" new file mode 100644 index 000000000..3c4d31405 --- /dev/null +++ "b/p/\351\251\254\346\241\266\344\271\246\346\236\266/index.html" @@ -0,0 +1,11 @@ +马桶书架 +

马桶书架

想说说坐马桶上看书这事儿,记得在美剧《好汉两个半》里有这样一个情节,被老婆抛弃的那哥们儿有一天在书店里突然失去理智,变得歇斯底里,

因为他想起来曾经发誓要读的书从来都没有读过,把这些书都抱在怀里哭泣不止,

更令人沮丧的是他的花花公子哥哥劝他说,现在还来得及,虽然平时比较忙,但如果把这些书放在马桶上则可以每次大便的时候都看一段,这样应该也能弥补一些缺憾。

可是这哥们儿哭着说,来不及了,把他余生大便次数都用上,也读不完这些名著了。

呵呵,说的太对了,我觉得这个段子用来教育不爱读书的孩子估计不错,我们看了却只能苦笑一下。

显然我也不认为在大便的时候读名著是个好主意,看着那些故事里的主人公在那里纠结不休,要么爱的死去活来,要么整天拧巴地思考人生意义,就算是你天天喝着蜂蜜外加一瓶开塞露也非得便秘不可。

我觉得吧,为了身体的健康,如果非要在大便时看书的话,还是尽量的读一些短文好了,比如我以前就爱看看《读者》啥的,最近偶尔也提升点儿档次弄本《三联周刊》看看,不过总的来说,看的都是些文笔平顺、言语轻快能促进大肠蠕动的文章。

今天收拾洗手间的时候,从马桶后面拎出了一大摞书,数了数,居然比我书架上的书还多。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\251\261\350\232\212\350\211\257\346\226\271/index.html" "b/p/\351\251\261\350\232\212\350\211\257\346\226\271/index.html" new file mode 100644 index 000000000..2ea510750 --- /dev/null +++ "b/p/\351\251\261\350\232\212\350\211\257\346\226\271/index.html" @@ -0,0 +1,11 @@ +驱蚊良方 +

驱蚊良方

入夏以来,被蚊子叮咬数次,胳膊的红点竟呈北斗七星状。冥思苦想,得一良方。活捉蚊子一只,将长嘴拔掉,悬挂于床前,众蚊子观其惨状均不敢靠前半步。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\253\230\344\272\272\346\227\240\345\244\204\344\270\215\345\234\250/index.html" "b/p/\351\253\230\344\272\272\346\227\240\345\244\204\344\270\215\345\234\250/index.html" new file mode 100644 index 000000000..9d33a7116 --- /dev/null +++ "b/p/\351\253\230\344\272\272\346\227\240\345\244\204\344\270\215\345\234\250/index.html" @@ -0,0 +1,11 @@ +高人无处不在 +

高人无处不在

老旧的计算机除了扔掉还能干点儿啥?

其实只要发挥创意,老电脑还是可以发挥一些余热的。

下面是一些牛人想出来的点子:

1、驱蚊,蚊子十分讨厌频率为6k左右的声波,根据这个传说,编写程序控制pc的小喇叭发出这个频率的声音就可以达到驱蚊效果。

这个我也曾经做过测试,发现纯属骗人,而且6khz的声波仍在人耳的听觉范围之内(20~20k)所以蚊子没赶跑倒是把人给吵晕了。

2、烧烤,有牛人拿旧机箱来烧烤,这个没啥技术含量只要舍得就行。

3、哄baby睡觉,这个比较绝,利用程序控制电脑的光驱开合,从而拖动婴儿车来回移动,达到催眠的效果。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\253\230\346\225\210\350\203\275\344\272\272\345\243\253\347\232\204\344\270\203\344\270\252\344\271\240\346\203\257\350\257\273\344\271\246\347\254\224\350\256\260/index.html" "b/p/\351\253\230\346\225\210\350\203\275\344\272\272\345\243\253\347\232\204\344\270\203\344\270\252\344\271\240\346\203\257\350\257\273\344\271\246\347\254\224\350\256\260/index.html" new file mode 100644 index 000000000..b5bca3939 --- /dev/null +++ "b/p/\351\253\230\346\225\210\350\203\275\344\272\272\345\243\253\347\232\204\344\270\203\344\270\252\344\271\240\346\203\257\350\257\273\344\271\246\347\254\224\350\256\260/index.html" @@ -0,0 +1,11 @@ +《高效能人士的七个习惯》读书笔记 +

《高效能人士的七个习惯》读书笔记

  1. 积极是内在的,是选择的自由,是人性中最不能剥夺的部分。
  2. 以终为始,是要知道自己要什么,并以原则为重心,所做的决策是主动选择的结果,而非被环境所迫使的结果。
  3. 人类的四个天赋分别是,自我意识,良知,想象力,独立意志。
  4. 第四代时间管理,以原则为中心,以周为单位,设定自己所扮演的各项角色欲达成的三个重要成果,安排出每一天的第一要务,更理想的是当作每一天的特殊约会,全力以赴。每周都回顾上周周日程完成情况以及制定新的周日程,并每日调整。
  5. 对人不可讲效率,对事才可如此,对人应该讲效用,即某一行为是否有效。
  6. 以原则为重心,以良知为导向(人比事儿更重要),针对个人独有的使命,平衡发展生活中不同角色,全盘规划日常生活。
  7. 要想充分授权必须要具备的默契和共识包括:
    1. 预期成果。
    2. 应遵守的规范。
    3. 可用的资源。
    4. 责任的归属,约定考评的标准和次数。
    5. 明确的奖惩制度。
  8. 在双赢协议中,对以下5要素应该有明确的规定。
    1. 预期结果,确认目标和实现,方法不计。
    2. 指导方针,确认实现目标的原则,方针和行为限度。
    3. 可用资源,包括人力,财力,技术或者组织资源。
    4. 任务考核,建立业绩评估标准和时间。
    5. 奖惩制度,根据任务考核确定奖惩。
  9. 制定好目标之后,还要看你的组织体系是否与目标相符合,否则就要调整系统体系。
  10. 我们总是喜欢匆匆忙忙地下结论,以善意的建议快刀斩乱麻地解决问题。不愿意花时间去诊断,深入了解问题的症结。
Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\253\230\347\247\221\346\212\200\346\211\213\346\256\265\346\212\204\346\260\264\350\241\250/index.html" "b/p/\351\253\230\347\247\221\346\212\200\346\211\213\346\256\265\346\212\204\346\260\264\350\241\250/index.html" new file mode 100644 index 000000000..2f123c34e --- /dev/null +++ "b/p/\351\253\230\347\247\221\346\212\200\346\211\213\346\256\265\346\212\204\346\260\264\350\241\250/index.html" @@ -0,0 +1,11 @@ +高科技手段抄水表 +

高科技手段抄水表

回来的时候,门上贴个条,原来是抄水表的过来时我不在家,只好留下电话让我自己把水表上的数字告诉他。

可是我没有工具,水表安装的位置又极其蹩脚(在厨房水槽下方靠近墙的位置),无法直接观看,每次我都是看他们带着手电外加一个镜子然后撅着身子瘪着头使劲儿看半天。

可是这难不倒我呀,使用手机打开闪光灯,伸进去对准水表,连拍三张照片,然后上传到电脑,本来还准备使用ocr软件自动识别(脱了裤子放屁),但是才发现水表是指针式的,放大图片读出数字,OK。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\262\234\346\236\234\345\234\250\347\272\277\350\256\251\346\210\221\345\260\235\344\270\200\345\217\243\351\262\234\346\236\234/index.html" "b/p/\351\262\234\346\236\234\345\234\250\347\272\277\350\256\251\346\210\221\345\260\235\344\270\200\345\217\243\351\262\234\346\236\234/index.html" new file mode 100644 index 000000000..eb24b3e31 --- /dev/null +++ "b/p/\351\262\234\346\236\234\345\234\250\347\272\277\350\256\251\346\210\221\345\260\235\344\270\200\345\217\243\351\262\234\346\236\234/index.html" @@ -0,0 +1,11 @@ +鲜果在线,让我尝一口鲜果 +

鲜果在线,让我尝一口鲜果

偶然在diglog里发现了鲜果在线这个网站,名字很好听,于是乎,我就点击进去看了看。

看了之后真有一种相见恨晚的感觉,这个站点本身不提供什么信息,只是提供一个在线的RSS阅读器,而且它提供的RSS频道都是根据大家的兴趣和订阅量进行排序的,也就是说,看某个频道的人越多,该频道就越靠前。

这样就可以看到大家都喜欢看的东西,那些垃圾信息不会浮上来了(感谢Web2.0啊!)。

在线阅读的操作也十分简单容易上手,而且界面清爽,有比较强大的自定义功能(我靠,怎么这么像托儿啊),我订阅了一些精品的频道,比如Engadget、Solidot、cnBeta等,顺便订阅了王小峰的“不许联想”(这个博客比较能扯淡,这算是夸他了)。

这下就不用Firefox的rss阅读器了,直接把订阅的频道放在鲜果在线里存储到网上,在家和在公司都能看到同样的新鲜信息了,重装系统也不怕,把东西都放到网上,我想这也是以后互联网发展的趋势吧……

ps:其实我早就把收藏的网址也放到网上了,在Firefox里安装一个扩展–yoono,这个插件也很牛,有点儿像美味书签(del.icio.us),不过yoono最近增加了收藏整个网页的功能所以比较起来就更喜欢yoono。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git "a/p/\351\275\201\345\206\267/index.html" "b/p/\351\275\201\345\206\267/index.html" new file mode 100644 index 000000000..43ea49bba --- /dev/null +++ "b/p/\351\275\201\345\206\267/index.html" @@ -0,0 +1,11 @@ +齁冷 +

齁冷

实在找不到词语形容今天的天气了,查了半天新华字典才找到“hou”这个字怎么写,恩,今天天气齁冷齁冷的。

Built with Hugo
主题 StackJimmy 设计
+ \ No newline at end of file diff --git a/page/1/index.html b/page/1/index.html new file mode 100644 index 000000000..0651d4337 --- /dev/null +++ b/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/ \ No newline at end of file diff --git a/page/10/index.html b/page/10/index.html new file mode 100644 index 000000000..18142182f --- /dev/null +++ b/page/10/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/100/index.html b/page/100/index.html new file mode 100644 index 000000000..9d0cf15bf --- /dev/null +++ b/page/100/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/101/index.html b/page/101/index.html new file mode 100644 index 000000000..54ec6da14 --- /dev/null +++ b/page/101/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/102/index.html b/page/102/index.html new file mode 100644 index 000000000..455d7215b --- /dev/null +++ b/page/102/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/103/index.html b/page/103/index.html new file mode 100644 index 000000000..919990b6b --- /dev/null +++ b/page/103/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/104/index.html b/page/104/index.html new file mode 100644 index 000000000..4fd0bb8c9 --- /dev/null +++ b/page/104/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/105/index.html b/page/105/index.html new file mode 100644 index 000000000..c14ee7d9b --- /dev/null +++ b/page/105/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/106/index.html b/page/106/index.html new file mode 100644 index 000000000..1414b124a --- /dev/null +++ b/page/106/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/107/index.html b/page/107/index.html new file mode 100644 index 000000000..67e03ad5b --- /dev/null +++ b/page/107/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/108/index.html b/page/108/index.html new file mode 100644 index 000000000..0507ef0f5 --- /dev/null +++ b/page/108/index.html @@ -0,0 +1,37 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/109/index.html b/page/109/index.html new file mode 100644 index 000000000..20f7ceb30 --- /dev/null +++ b/page/109/index.html @@ -0,0 +1,36 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/11/index.html b/page/11/index.html new file mode 100644 index 000000000..0edc97085 --- /dev/null +++ b/page/11/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/110/index.html b/page/110/index.html new file mode 100644 index 000000000..acb1a2f38 --- /dev/null +++ b/page/110/index.html @@ -0,0 +1,35 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/12/index.html b/page/12/index.html new file mode 100644 index 000000000..0578a3fcc --- /dev/null +++ b/page/12/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/13/index.html b/page/13/index.html new file mode 100644 index 000000000..a24de12a2 --- /dev/null +++ b/page/13/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/14/index.html b/page/14/index.html new file mode 100644 index 000000000..5add9b153 --- /dev/null +++ b/page/14/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/15/index.html b/page/15/index.html new file mode 100644 index 000000000..febeacf01 --- /dev/null +++ b/page/15/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/16/index.html b/page/16/index.html new file mode 100644 index 000000000..f64f51961 --- /dev/null +++ b/page/16/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/17/index.html b/page/17/index.html new file mode 100644 index 000000000..b25ca8208 --- /dev/null +++ b/page/17/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/18/index.html b/page/18/index.html new file mode 100644 index 000000000..8622256d8 --- /dev/null +++ b/page/18/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/19/index.html b/page/19/index.html new file mode 100644 index 000000000..83511418f --- /dev/null +++ b/page/19/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html new file mode 100644 index 000000000..ceb45cfc3 --- /dev/null +++ b/page/2/index.html @@ -0,0 +1,36 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/20/index.html b/page/20/index.html new file mode 100644 index 000000000..6d451e43a --- /dev/null +++ b/page/20/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/21/index.html b/page/21/index.html new file mode 100644 index 000000000..aec5b5280 --- /dev/null +++ b/page/21/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/22/index.html b/page/22/index.html new file mode 100644 index 000000000..46d46b443 --- /dev/null +++ b/page/22/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/23/index.html b/page/23/index.html new file mode 100644 index 000000000..3df4e5946 --- /dev/null +++ b/page/23/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/24/index.html b/page/24/index.html new file mode 100644 index 000000000..c977d46de --- /dev/null +++ b/page/24/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/25/index.html b/page/25/index.html new file mode 100644 index 000000000..35b37d6fb --- /dev/null +++ b/page/25/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/26/index.html b/page/26/index.html new file mode 100644 index 000000000..cb601aee6 --- /dev/null +++ b/page/26/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/27/index.html b/page/27/index.html new file mode 100644 index 000000000..39824e5d8 --- /dev/null +++ b/page/27/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/28/index.html b/page/28/index.html new file mode 100644 index 000000000..f667f3e12 --- /dev/null +++ b/page/28/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/29/index.html b/page/29/index.html new file mode 100644 index 000000000..342c4554f --- /dev/null +++ b/page/29/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/3/index.html b/page/3/index.html new file mode 100644 index 000000000..cdb697125 --- /dev/null +++ b/page/3/index.html @@ -0,0 +1,37 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/30/index.html b/page/30/index.html new file mode 100644 index 000000000..3f2f70540 --- /dev/null +++ b/page/30/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/31/index.html b/page/31/index.html new file mode 100644 index 000000000..3a7134321 --- /dev/null +++ b/page/31/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/32/index.html b/page/32/index.html new file mode 100644 index 000000000..2c26d3bae --- /dev/null +++ b/page/32/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/33/index.html b/page/33/index.html new file mode 100644 index 000000000..ee9040747 --- /dev/null +++ b/page/33/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/34/index.html b/page/34/index.html new file mode 100644 index 000000000..ae6dfe462 --- /dev/null +++ b/page/34/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/35/index.html b/page/35/index.html new file mode 100644 index 000000000..da98b579f --- /dev/null +++ b/page/35/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/36/index.html b/page/36/index.html new file mode 100644 index 000000000..1bbf62783 --- /dev/null +++ b/page/36/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/37/index.html b/page/37/index.html new file mode 100644 index 000000000..3ba26c6b7 --- /dev/null +++ b/page/37/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/38/index.html b/page/38/index.html new file mode 100644 index 000000000..11e875423 --- /dev/null +++ b/page/38/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/39/index.html b/page/39/index.html new file mode 100644 index 000000000..e2432d878 --- /dev/null +++ b/page/39/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/4/index.html b/page/4/index.html new file mode 100644 index 000000000..ee4d9877e --- /dev/null +++ b/page/4/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/40/index.html b/page/40/index.html new file mode 100644 index 000000000..11496dc0f --- /dev/null +++ b/page/40/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/41/index.html b/page/41/index.html new file mode 100644 index 000000000..ea9b07dd2 --- /dev/null +++ b/page/41/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/42/index.html b/page/42/index.html new file mode 100644 index 000000000..dcd5080f2 --- /dev/null +++ b/page/42/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/43/index.html b/page/43/index.html new file mode 100644 index 000000000..bacd740fd --- /dev/null +++ b/page/43/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/44/index.html b/page/44/index.html new file mode 100644 index 000000000..2e9ef1aee --- /dev/null +++ b/page/44/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/45/index.html b/page/45/index.html new file mode 100644 index 000000000..35a891f72 --- /dev/null +++ b/page/45/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/46/index.html b/page/46/index.html new file mode 100644 index 000000000..e5ca2fef5 --- /dev/null +++ b/page/46/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/47/index.html b/page/47/index.html new file mode 100644 index 000000000..27e0d9ce4 --- /dev/null +++ b/page/47/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/48/index.html b/page/48/index.html new file mode 100644 index 000000000..c1c6efbff --- /dev/null +++ b/page/48/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/49/index.html b/page/49/index.html new file mode 100644 index 000000000..ca268dfc5 --- /dev/null +++ b/page/49/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/5/index.html b/page/5/index.html new file mode 100644 index 000000000..c8cb023dc --- /dev/null +++ b/page/5/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/50/index.html b/page/50/index.html new file mode 100644 index 000000000..d90ba0ec8 --- /dev/null +++ b/page/50/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/51/index.html b/page/51/index.html new file mode 100644 index 000000000..093746dfc --- /dev/null +++ b/page/51/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/52/index.html b/page/52/index.html new file mode 100644 index 000000000..e9f3f0d6d --- /dev/null +++ b/page/52/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/53/index.html b/page/53/index.html new file mode 100644 index 000000000..257004e21 --- /dev/null +++ b/page/53/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/54/index.html b/page/54/index.html new file mode 100644 index 000000000..022d0fff5 --- /dev/null +++ b/page/54/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/55/index.html b/page/55/index.html new file mode 100644 index 000000000..419129e80 --- /dev/null +++ b/page/55/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/56/index.html b/page/56/index.html new file mode 100644 index 000000000..8dcb66d61 --- /dev/null +++ b/page/56/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/57/index.html b/page/57/index.html new file mode 100644 index 000000000..623f5c560 --- /dev/null +++ b/page/57/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/58/index.html b/page/58/index.html new file mode 100644 index 000000000..6109359f5 --- /dev/null +++ b/page/58/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/59/index.html b/page/59/index.html new file mode 100644 index 000000000..78470b03d --- /dev/null +++ b/page/59/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/6/index.html b/page/6/index.html new file mode 100644 index 000000000..14e0d3e77 --- /dev/null +++ b/page/6/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/60/index.html b/page/60/index.html new file mode 100644 index 000000000..e71dfbd49 --- /dev/null +++ b/page/60/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/61/index.html b/page/61/index.html new file mode 100644 index 000000000..3142e0734 --- /dev/null +++ b/page/61/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/62/index.html b/page/62/index.html new file mode 100644 index 000000000..68df5c2a8 --- /dev/null +++ b/page/62/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/63/index.html b/page/63/index.html new file mode 100644 index 000000000..41d93644e --- /dev/null +++ b/page/63/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/64/index.html b/page/64/index.html new file mode 100644 index 000000000..3c4f9bde6 --- /dev/null +++ b/page/64/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/65/index.html b/page/65/index.html new file mode 100644 index 000000000..6ecf85ca3 --- /dev/null +++ b/page/65/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/66/index.html b/page/66/index.html new file mode 100644 index 000000000..503435686 --- /dev/null +++ b/page/66/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/67/index.html b/page/67/index.html new file mode 100644 index 000000000..481d6786e --- /dev/null +++ b/page/67/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/68/index.html b/page/68/index.html new file mode 100644 index 000000000..18b0e4c26 --- /dev/null +++ b/page/68/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/69/index.html b/page/69/index.html new file mode 100644 index 000000000..43eecc283 --- /dev/null +++ b/page/69/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/7/index.html b/page/7/index.html new file mode 100644 index 000000000..d1bd2e9f7 --- /dev/null +++ b/page/7/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/70/index.html b/page/70/index.html new file mode 100644 index 000000000..63d4320bf --- /dev/null +++ b/page/70/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/71/index.html b/page/71/index.html new file mode 100644 index 000000000..2c21ac4c8 --- /dev/null +++ b/page/71/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/72/index.html b/page/72/index.html new file mode 100644 index 000000000..35a18097f --- /dev/null +++ b/page/72/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/73/index.html b/page/73/index.html new file mode 100644 index 000000000..4f4ab4111 --- /dev/null +++ b/page/73/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/74/index.html b/page/74/index.html new file mode 100644 index 000000000..e46feb0ac --- /dev/null +++ b/page/74/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/75/index.html b/page/75/index.html new file mode 100644 index 000000000..3d3fb78b0 --- /dev/null +++ b/page/75/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/76/index.html b/page/76/index.html new file mode 100644 index 000000000..4fc5d0a9c --- /dev/null +++ b/page/76/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/77/index.html b/page/77/index.html new file mode 100644 index 000000000..356df09eb --- /dev/null +++ b/page/77/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/78/index.html b/page/78/index.html new file mode 100644 index 000000000..de509e5ac --- /dev/null +++ b/page/78/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/79/index.html b/page/79/index.html new file mode 100644 index 000000000..e608a65c9 --- /dev/null +++ b/page/79/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/8/index.html b/page/8/index.html new file mode 100644 index 000000000..d65344d59 --- /dev/null +++ b/page/8/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/80/index.html b/page/80/index.html new file mode 100644 index 000000000..80fd587a2 --- /dev/null +++ b/page/80/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/81/index.html b/page/81/index.html new file mode 100644 index 000000000..d4fa783d6 --- /dev/null +++ b/page/81/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/82/index.html b/page/82/index.html new file mode 100644 index 000000000..0c4e8b820 --- /dev/null +++ b/page/82/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/83/index.html b/page/83/index.html new file mode 100644 index 000000000..2838d8e0b --- /dev/null +++ b/page/83/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/84/index.html b/page/84/index.html new file mode 100644 index 000000000..07a79ef0a --- /dev/null +++ b/page/84/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/85/index.html b/page/85/index.html new file mode 100644 index 000000000..95e6f21ef --- /dev/null +++ b/page/85/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/86/index.html b/page/86/index.html new file mode 100644 index 000000000..9eb179557 --- /dev/null +++ b/page/86/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/87/index.html b/page/87/index.html new file mode 100644 index 000000000..348d406d9 --- /dev/null +++ b/page/87/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/88/index.html b/page/88/index.html new file mode 100644 index 000000000..a893891d9 --- /dev/null +++ b/page/88/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/89/index.html b/page/89/index.html new file mode 100644 index 000000000..0a02e350f --- /dev/null +++ b/page/89/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/9/index.html b/page/9/index.html new file mode 100644 index 000000000..33af5c8fc --- /dev/null +++ b/page/9/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/90/index.html b/page/90/index.html new file mode 100644 index 000000000..2562f7a5a --- /dev/null +++ b/page/90/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/91/index.html b/page/91/index.html new file mode 100644 index 000000000..83c5af3ca --- /dev/null +++ b/page/91/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/92/index.html b/page/92/index.html new file mode 100644 index 000000000..3545aee3f --- /dev/null +++ b/page/92/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/93/index.html b/page/93/index.html new file mode 100644 index 000000000..eb97a6a8e --- /dev/null +++ b/page/93/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/94/index.html b/page/94/index.html new file mode 100644 index 000000000..3cd3f669f --- /dev/null +++ b/page/94/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/95/index.html b/page/95/index.html new file mode 100644 index 000000000..d433895db --- /dev/null +++ b/page/95/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/96/index.html b/page/96/index.html new file mode 100644 index 000000000..f8011b24f --- /dev/null +++ b/page/96/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/97/index.html b/page/97/index.html new file mode 100644 index 000000000..bcb68e3d7 --- /dev/null +++ b/page/97/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/98/index.html b/page/98/index.html new file mode 100644 index 000000000..9cce02151 --- /dev/null +++ b/page/98/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/99/index.html b/page/99/index.html new file mode 100644 index 000000000..8aa737bd1 --- /dev/null +++ b/page/99/index.html @@ -0,0 +1,38 @@ +Learning & Writing! +
+ \ No newline at end of file diff --git a/page/index.html b/page/index.html new file mode 100644 index 000000000..01fdb3060 --- /dev/null +++ b/page/index.html @@ -0,0 +1,32 @@ +Pages +

Pages

+ \ No newline at end of file diff --git a/page/index.xml b/page/index.xml new file mode 100644 index 000000000..1c086ff40 --- /dev/null +++ b/page/index.xml @@ -0,0 +1,27 @@ +Pages on Learning & Writing!https://sbabybird.github.io/page/Recent content in Pages on Learning & Writing!Hugo -- gohugo.iozh-cnSun, 06 Mar 2022 00:00:00 +0000Archiveshttps://sbabybird.github.io/archives/Sun, 06 Mar 2022 00:00:00 +0000https://sbabybird.github.io/archives/Linkshttps://sbabybird.github.io/links/Mon, 01 Jan 0001 00:00:00 +0000https://sbabybird.github.io/links/<p>To use this feature, add <code>links</code> section to frontmatter.</p> +<p>This page&rsquo;s frontmatter:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">links</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="l">GitHub</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="l">GitHub is the world&#39;s largest software development platform.</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">website</span><span class="p">:</span><span class="w"> </span><span class="l">https://github.com</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="l">TypeScript</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="l">TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">website</span><span class="p">:</span><span class="w"> </span><span class="l">https://www.typescriptlang.org</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">ts-logo-128.jpg</span><span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><p><code>image</code> field accepts both local and external images.</p>Searchhttps://sbabybird.github.io/search/Mon, 01 Jan 0001 00:00:00 +0000https://sbabybird.github.io/search/ \ No newline at end of file diff --git a/page/page/1/index.html b/page/page/1/index.html new file mode 100644 index 000000000..2a538cdcb --- /dev/null +++ b/page/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/page/ \ No newline at end of file diff --git a/post/index.html b/post/index.html new file mode 100644 index 000000000..80d426044 --- /dev/null +++ b/post/index.html @@ -0,0 +1,35 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/index.xml b/post/index.xml new file mode 100644 index 000000000..86cc9103f --- /dev/null +++ b/post/index.xml @@ -0,0 +1,11938 @@ +Posts on Learning & Writing!https://sbabybird.github.io/post/Recent content in Posts on Learning & Writing!Hugo -- gohugo.iozh-cnTue, 26 Sep 2023 00:00:00 +0000机器文摘 第 051 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/Tue, 26 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-20.png" alt="Featured image of post 机器文摘 第 051 期" /><h1 id="机器文摘-第-050-期">机器文摘 第 050 期</h1> +<h2 id="长文">长文</h2> +<h3 id="基于-github-pages-服务搭建个人博客">基于 Github Pages 服务搭建个人博客</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-34-26.png" +width="1600" +height="672" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="571px" +></p> +<p><a class="link" href="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/" target="_blank" rel="noopener" +>基于 Github Pages 服务搭建个人博客 </a> +这是我自己写的一篇文章,发布在<a class="link" href="https://sbabybird.github.io" target="_blank" rel="noopener" +>我的博客</a>。</p> +<p>搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。</p> +<p>但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。</p> +<p>经过多年的实践,现在已有越来越多的人选择了使用免费且易用的 GitHub Pages 服务来搭建个人博客。</p> +<p>然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。</p> +<p>他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。</p> +<p>这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。</p> +<p>本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。</p> +<h3 id="人的大脑不是由爬行脑哺乳动物脑智人脑累加而成">人的大脑不是由爬行脑、哺乳动物脑、智人脑累加而成</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-35-36.png" +width="690" +height="588" +loading="lazy" +class="gallery-image" +data-flex-grow="117" +data-flex-basis="281px" +></p> +<p>心理学界有一个关于人类大脑流传很广的理论:人的大脑主要由三层不同能力的大脑构成,位于最核心的“爬行动物脑”、随着演化逐渐增加的“低级哺乳动物脑”,以及带来更多灵活性和语言能力的“高级脑”。</p> +<p>这种理论给人的感觉就好像人的大脑是像洋葱那样,由一个“旧”的大脑结构逐渐添加“新”大脑形成。</p> +<p>而且换句话说,青蛙和鱼仍然在我们身体里,我们只是有了更高级的东西把它们包裹了起来。</p> +<p>然而以上理论只是心理学家所提出的一种错误观点,近年来随着生物科学的发展,越来越多的科学家开始指出这种错误。</p> +<p>这篇<a class="link" href="https://journals.sagepub.com/doi/10.1177/0963721420917687" target="_blank" rel="noopener" +>《你的大脑不是洋葱,你的脑子里并没有一个爬行动物》</a>是由神经科学家撰写,重点澄清了上述关于“三层大脑”的传言。</p> +<p>文章指出:之所以这种理论流传甚广,是因为大家普遍对“进化论”的进化过程有所误解,大多数人认为进化过程是一种先低级再逐渐高级的线性过程。然而事实的进化是一种同步辐射进程。</p> +<h3 id="使用-javascript-操作照片的-exif-信息">使用 Javascript 操作照片的 EXIF 信息</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-35-59.png" +width="690" +height="444" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="372px" +></p> +<p><a class="link" href="https://getaround.tech/exif-data-manipulation-javascript/" target="_blank" rel="noopener" +>使用 Javascript 操作照片的 EXIF 信息</a> +可交换图像文件格式(EXIF)是一种规范,用于指定图像和声音的格式。它通过元数据存储技术细节,所谓元数据即用来描述其他数据的数据,例如相机制造商和型号、图像拍摄日期和时间等信息。</p> +<p>最初,EXIF仅用于JPEG和TIFF两种图像格式。然而,如今,其他文件格式如PNG、WEBP或HEIC也支持EXIF以用于元数据。</p> +<p>本文将重点关注JPEG格式,探究其内部结构,然后展示如何在浏览器环境中通过JavaScript读取和更新相关的元数据。</p> +<h3 id="css-的自定义缓动曲线">CSS 的自定义缓动曲线</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-20.png" +width="690" +height="399" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="415px" +></p> +<p><a class="link" href="https://www.smashingmagazine.com/2023/09/path-css-easing-linear-function/" target="_blank" rel="noopener" +>使用 linear() 函数实现惊人的 CSS 缓动动画</a>,随着新的 CSS linear() 缓动功能的出现,我们可以创建自然感觉的动画和过渡的可能性大大扩展。Jhey Tompkins 在本文中介绍了 CSS 缓动的当前状态,并演示了 linear() 函数令人期待的特性。 ​​​</p> +<h3 id="通过放大-rom-芯片搞破解">通过放大 ROM 芯片搞破解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-35.png" +width="690" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="120" +data-flex-basis="290px" +></p> +<p><a class="link" href="https://github.com/travisgoodspeed/gbrom-tutorial" target="_blank" rel="noopener" +>gbrom</a>,通过拍摄 ROM 芯片的显微照片,将里面固件的二进制代码还原了出来,硬破解的世界就是这么朴实无华。</p> +<h2 id="资源">资源</h2> +<h3 id="免费开发云服务大全">免费开发云服务大全</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-56.png" +width="690" +height="737" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="224px" +></p> +<p><a class="link" href="https://free-for.dev/#/" target="_blank" rel="noopener" +>free-for.dev</a>。这个网站筛选收录了大量面向开发者提供的在线服务。收录的标准非常严苛:必须真正免费(免费试用的不算),如果套餐有时间限制,则至少提供 1 年的免费时间。收录的服务涵盖:云基础设施、内容托管、设计资源、字体、在线 IDE 、产品监控等。</p> +<h3 id="在线提示词工厂">在线提示词工厂</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-37-13.png" +width="690" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +></p> +<p><a class="link" href="https://promptperfect.jinaai.cn/a/NEW" target="_blank" rel="noopener" +>promptperfect</a>,来自 JinaAI 的 PromptPerfect。能自动生成提示词。让用户可以逐步调试提示词,提供了各种参数。我试着让它帮我编写 AI 作画的提示语,感觉比我自己写的要靠谱一些。</p> +<h3 id="更新的光线追踪教程">更新的光线追踪教程</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-37-26.png" +width="670" +height="553" +loading="lazy" +class="gallery-image" +data-flex-grow="121" +data-flex-basis="290px" +> +<a class="link" href="raytracing.github.io" >《花一个周末学会光线追踪》</a>,Ray Tracing in One Weekend,这本在线电子书出新版了。真正从零开始手把手教你通过光线追踪进行三维场景渲染。 ​​​事实上整个系列一共包括三部曲,继续阅读《光线追踪:下一周篇》,将添加纹理、体积(如雾)、矩形、实例、光源,并支持使用包围体积层次结构(BVH)来处理大量对象。最后,在《光线追踪:往后余生篇》中,将深入探讨创建一个非常严谨的光线追踪器所涉及的数学。</p> +<h2 id="观点">观点</h2> +<h3 id="专注是良药">专注是良药</h3> +<p>不用过多考虑某些时间的投入是否值得,而陷入对时间流逝的焦虑。</p> +<p>如果做一件事情能够使得一个人在一段时间内保持专注,就是非常值得做的事情。</p> +<p>因为,“专注”本身就是收获成果的一部分。</p> +<p>能够在快节奏的生活中,找到不容易被分散注意力、不被各种诱惑干扰、可以集中精力投入的事情,已属难得。</p> +<p>“专注”做事看似简单,却是解决各种精神内耗的良药。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>基于 Github Pages 服务搭建个人博客https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Thu, 21 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-10-50.png" alt="Featured image of post 基于 Github Pages 服务搭建个人博客" /><h2 id="背景">背景</h2> +<p>搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。</p> +<p>但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。</p> +<p>经过多年的实践,现在已有越来越多的人选择了使用免费且易用的<a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +> GitHub Pages </a>服务来搭建个人博客。</p> +<p>然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。</p> +<p>他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。</p> +<p>这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。</p> +<p>本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。</p> +<h3 id="需要预先掌握的技能和前置条件">需要预先掌握的技能和前置条件</h3> +<p><em>需要先了解这些再往下阅读本文</em></p> +<ul> +<li>了解 Git 的概念和常用的操作,知道“分支”、“提交”、“推送”、“拉取”等概念。</li> +<li>拥有 Github 账号,并且能够独立完成“仓库创建”、“本地克隆”、“提交”、“推送”等操作。</li> +<li>了解“博客”本身只是一种“网站”:其内容由若干“网页”组成,读者通过浏览器访问博客网站所在的服务器以获取这些网页内容。</li> +</ul> +<h2 id="核心思路">核心思路</h2> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-20-10.png" +width="790" +height="258" +loading="lazy" +class="gallery-image" +data-flex-grow="306" +data-flex-basis="734px" +> +简单来说,核心步骤只有三步:内容编辑、页面生成、网站发布。接下来的介绍均围绕这三件事展开。</p> +<h3 id="内容编辑">内容编辑</h3> +<p>作者编写和编辑博客内容,包括编写文章、给文章配图、给文章归类等等活动都属于内容编辑。</p> +<h3 id="页面生成">页面生成</h3> +<p>如果希望将内容变成可发布的网站,则需要使用专用的软件工具(一般为<a class="link" href="https://baike.baidu.com/item/%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99/2776875" target="_blank" rel="noopener" +>静态网站</a>生成器)将编辑的内容自动生成可供浏览器显示的博客网站页面。</p> +<h3 id="网站发布">网站发布</h3> +<p>有了网站页面,还只是一堆存放在本地的文件。若要放到互联网上进行访问,还需要一个服务器提供服务,将网站发布。</p> +<p>如果采用独立建站的方式,这一步骤会涉及大量技术工作,比如服务器采购、Web服务应用程序安装、域名映射、SSL 安全证书、网络防火墙配置等等。</p> +<p>但我们今天选择使用 Github 提供的 Pages 服务,这将大大降低上述操作的难度,很多技术细节将不必再多关注,已经由 Pages 服务默认配置好。我们只需享用配置好的环境即可。</p> +<h3 id="技术路线">技术路线</h3> +<h4 id="github-pages">Github Pages</h4> +<p>Github 本来是一个 Git 仓库托管服务商,帮助用户进行项目代码及数字资料的版本管理。不过随着用户规模提升,Github 也围绕版本管理提供了更多的辅助服务,这其中就包括 <a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +>Pages 服务</a>。</p> +<blockquote> +<p>GitHub Pages 是一项静态站点托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件,(可选)通过构建过程运行文件,然后发布网站。 可以在 GitHub Pages 示例集合中看到 GitHub Pages 站点的示例。</p> +</blockquote> +<p>Pages 服务原本用于帮助托管在 Github 上的开源项目更便捷地发布自己的宣传页面。开发团队可以简单编写几个静态页面(HTML)然后放在托管的 Git 仓库中,由 Github 将这些页面以网站服务的方式发布出去,Github 既提供了服务器资源也提供了用于公网访问的<strong>专属 URL</strong> 地址。</p> +<p>关于发布网站的<strong>专属 URL</strong> 地址的提供规则,Github 官方的介绍如下:</p> +<blockquote> +<p>若要发布<strong>用户站点</strong>,必须创建名为 <code>&lt;username&gt;.github.io</code> 的个人帐户拥有的存储库。 若要发布<strong>组织站点</strong>,必须创建名为 <code>&lt;organization&gt;.github.io</code> 的组织帐户拥有的存储库。 除非使用的是自定义域,否则用户和组织站点在 <code>http(s)://&lt;username&gt;.github.io</code> 或 <code>http(s)://&lt;organization&gt;.github.io</code> 中可用。 +<strong>项目站点</strong>的源文件与其项目存储在同一个仓库中。 除非使用的是自定义域,否则项目站点在 <code>http(s)://&lt;username&gt;.github.io/&lt;repository&gt;</code> 或 <code>http(s)://&lt;organization&gt;.github.io/&lt;repository&gt;</code> 中可用。</p> +</blockquote> +<p>根据官方介绍,Pages 提供有三种不同的网站发布服务:用户站点、组织站点、项目站点。</p> +<p>分别对应了“制作个人网站”、“制作团队组织网站”、“制作单个项目网站”的不同需求。</p> +<p>针对个人博客的搭建,很显然使用 Pages 服务发布“用户站点”是最合适的选择。</p> +<p>对于“用户站点”,Pages 最终会为用户提供的专属 URL 地址为:<code>https://你的用户名.github.io</code>,也就是说在 Gihtub 的一级域名 <code>https://github.io</code> 下给你免费提供了一个二级域名。之所以默认使用你的 Github 用户名,是因为要防止不同用户发布的地址重名导致冲突。</p> +<p><em>按照官方介绍,你也可以使用自己购买的域名,通过自己的域名进行访问。不过这涉及到更复杂的话题和操作,不在本文讨论范畴。</em></p> +<p>了解了以上基本信息后,在使用 Pages 服务时,可按照复杂度区分,采用如下几种不同的用法。</p> +<h5 id="最简单直接的使用流程">最简单直接的使用流程</h5> +<ol> +<li>手工编写 HTML 页面文件(需要掌握网页制作知识)。</li> +<li>将页面文件推送到的 Github 仓库,对于“用户站点”来说,这个仓库的命名必须为“<code>你的用户名.github.io</code>”。</li> +<li>在 Github 中设置该仓库的 Pages 服务配置,主要是选择仓库的指定“分支”用于 Pages 服务获取待发布的网页文件。</li> +<li>Github 会按照上面介绍的规则给你提供一个 URL 访问地址(<code>https://你的用户名.github.io</code>),使用浏览器打开该地址即可访问到发布的网站了。</li> +</ol> +<p><em>注:如果不理解 Git 仓库的“分支”概念,可以把它视为同一个仓库里不同的存储位置,不同的“分支”里面存储了不同的文件内容。</em></p> +<p>这个流程仅适用于非常简单网站发布,比如只包含有一个页面,因为手工编写 HTML 页面的效率十分低下,且不利于持续更新维护。</p> +<p>于是大家常用的方式是,使用一种叫做的东西,对于“博客”这类以静态页面为主的网站,十分适合。</p> +<p>“静态站点生成器”可以理解为是一个“翻译”,它能自动将你编写的文本内容根据预先的配置信息,自动生成一个完整的网站所需的全部文件(HTML、JS、CSS等)。</p> +<p>于是有了如下的改进流程:</p> +<h5 id="改进的使用流程">改进的使用流程</h5> +<ol> +<li>用户编辑好博客内容,形成保存在本地计算机的原始文档文件。</li> +<li>使用静态网站生成器将本地原始文档文件生成静态页面文件。</li> +<li>将静态页面文件推送到 Github 远端托管仓库。</li> +<li>Github Pages 服务自动被触发,将静态页面以网站形式发布出来。</li> +<li>用户通过指定 URL 地址访问已发布的博客内容。</li> +</ol> +<p>到目前为止,已经可以较为流畅地执行博客编辑、生成、发布的工作流程了。</p> +<p>但是这个流程里有个前置条件,作者必须在本地电脑上安装一个“静态站点生成器”,以用于输出转换后的、可供发布的页面。</p> +<p>所以,为了方便,Github 提供了一个默认的静态网站生成器,上述第 2 步操作实际上可以在远端仓库自动执行,这样用户只需将原始文件上传至远端仓库即可,由 Github 直接在线上完成静态页面的生成和网站发布工作。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-46-36.png" +width="937" +height="625" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></p> +<h5 id="静态站点生成器的选择">静态站点生成器的选择</h5> +<p>比较常见的静态站点生成器有:<a class="link" href="https://jekyllrb.com/" target="_blank" rel="noopener" +>Jekyll</a>、<a class="link" href="https://hexo.io/index.html" target="_blank" rel="noopener" +>Hexo</a>、<a class="link" href="https://gohugo.io/" target="_blank" rel="noopener" +>Hugo</a> 这三个。不在这里详细介绍了,因为功能都大同小异。在选定一个之后,需要去他们的官网查看文档以了解具体的使用细节,以便对自己的博客站点能够做到更深的定制。</p> +<p>我在接下来的操作步骤里,选择使用 Hugo 这个生成器。</p> +<p>主要原因是,Hugo 提供有相对来说比较美观的<a class="link" href="https://themes.gohugo.io/" target="_blank" rel="noopener" +>免费主题风格模板</a>(Jekyll 也有漂亮的,但是收费。Hexo 的定制性很强,适合有网页开发能力的人自己开发主题)。</p> +<p>我选择的主题模板是:<a class="link" href="https://themes.gohugo.io/themes/hugo-theme-stack/" target="_blank" rel="noopener" +>hugo-theme-stack</a>。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-40-58.png" +width="900" +height="300" +loading="lazy" +class="gallery-image" +data-flex-grow="300" +data-flex-basis="720px" +></p> +<h2 id="操作步骤">操作步骤</h2> +<h3 id="建立-github-仓库">建立 Github 仓库</h3> +<ol> +<li>点击这个超链接进入 <a class="link" href="https://github.com/CaiJimmy/hugo-theme-stack-starter" target="_blank" rel="noopener" +>hugo-theme-stack-starter 的 Git 仓库模板</a>。</li> +<li>点击页面中的“使用此模板”按钮,以创建你自己的仓库(注意:需先登录自己的账号才能创建)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-45-54.png" +width="925" +height="134" +loading="lazy" +class="gallery-image" +data-flex-grow="690" +data-flex-basis="1656px" +></li> +<li>建立好仓库(注意仓库命名为<code>你的用户名.github.io</code>)之后,会自动带有仓库模板的初始文件。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-47-57.png" +width="908" +height="528" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="412px" +></li> +</ol> +<h3 id="修改配置">修改配置</h3> +<ol> +<li>将仓库下载到本地。</li> +<li>打开仓库里的 config 文件夹,里面存放有配置信息。</li> +<li>按照 <a class="link" href="https://stack.jimmycai.com/guide/getting-started" target="_blank" rel="noopener" +>hugo-theme-stack 的官方文档</a>配置自己想要的效果(默认一般都够用,重点是修改自己的站点信息,如显示名称、URL 链接地址等等)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-53-02.png" +width="1466" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="515px" +> +<em>这些配置主要在 <code>config.toml</code> 和 <code>params.toml</code> 两个文件里。</em></li> +</ol> +<h3 id="编写博客文章">编写博客文章</h3> +<p>生成器会默认去仓库的 <code>content/post/</code> 文件夹下扫描其下面的所有文件夹和文件,遇到约定格式的 <code>Markdown</code> 文件就会转换成为可发布的 <code>html</code> 页面。具体约定可以查看官方的详细文档,这里介绍一种最简单的写一篇文章的过程。</p> +<ol> +<li>在 post 目录下新建一个文件夹用于存放文章的 Markdown 文件和插图文件,文件夹命名为希望编写的标题如:<code>2023-09-21-怎样搭建个人博客</code>。<em>我个人习惯将不同年份的文章在post目录下再建一级目录按照日期或年份进行区分。</em></li> +<li>在刚建立的文件夹下新建名称为<code>index.md</code>的 Markdown 文件,文件名必须为 index.md 这是由 hugo 生成器约定的。</li> +<li>在刚建立的 Markdown 文件的头部添加必要的元信息(非常关键)。 +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="l">文章标题</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">date</span><span class="p">:</span><span class="w"> </span><span class="ld">2023-09-21</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">categories</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章所属分类</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">tags</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 1</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 2</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-07-46.png" +width="787" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="220" +data-flex-basis="529px" +></li> +<li>编写文章内容。可以使用 <a class="link" href="https://markdown.com.cn/basic-syntax/" target="_blank" rel="noopener" +>Markdown 的语法</a>随意定义格式,以及插入图片。插入的图片建议保存在同级目录(也就是刚才新建的那个)中。</li> +</ol> +<h3 id="推送到仓库及发布">推送到仓库及发布</h3> +<ol> +<li>将刚才修改配置文件保存。</li> +<li>将刚才编写的博客文章保存。</li> +<li>在本地提交 commit 并 push 到 Github 仓库。</li> +<li>稍等几分钟(给 Github 那端的 Hugo 生成器留出运行时间)。</li> +<li>在 Github 仓库的 “setting” 设置页面开启 Pages 服务(只需第一次)。</li> +<li>在 Pages 设置界面里的 Source 中选择 “Deploy from a branch” ,并在下面的分支选择下拉框中选择 “gh-pages”,保存。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-17-49.png" +width="1090" +height="568" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +</ol> +<h3 id="访问你的博客站点">访问你的博客站点</h3> +<p>一般稍等几分钟之后,即可按照约定网址访问刚发布的内容了。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-31-26.png" +width="1539" +height="661" +loading="lazy" +class="gallery-image" +data-flex-grow="232" +data-flex-basis="558px" +></p> +<h2 id="扩展阅读">扩展阅读</h2> +<p>运营自己的博客网站所需了解的概念和知识相对比较多,如果希望将自己的网站做的更加精美、有特色。</p> +<p>除了能够持续产出高质量内容之外,建议阅读以下文章以了解相关知识:</p> +<ul> +<li><a class="link" href="https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web" target="_blank" rel="noopener" +>学习 web 开发</a>。</li> +</ul>机器文摘 第 050 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/Tue, 19 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-40.png" alt="Featured image of post 机器文摘 第 050 期" /><h1 id="机器文摘-第-050-期">机器文摘 第 050 期</h1> +<h2 id="长文">长文</h2> +<h3 id="十八世纪的光学电报网络">十八世纪的光学电报网络</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-08.png" +width="500" +height="517" +loading="lazy" +class="gallery-image" +data-flex-grow="96" +data-flex-basis="232px" +></p> +<p>当年读《基督山伯爵》的时候,有一个让我震惊的科技。</p> +<p>主人公有一项复仇计划是破坏敌人的金融资产。计划采取的手段是收买了一个传递实时信息的人让其传递错误信息。</p> +<p>而具体传递信息的手段是,每隔一段距离设一座瞭望塔,每个塔上有一个人,向一个方向用望远镜观看,远方的上级瞭望塔会有人发射信号弹,一连串的信号弹代表一定的信息,然后这个人再原样发射一遍,让后方的瞭望塔看见。信息就这样一级一级传递下去。</p> +<p>信息经过编码,可以表达股票行情等信息,类似后来的电报系统,但是这是在十八世纪。</p> +<p>读过之后我就一直有疑问,不知道小说是否虚构了这种信息传递技术,直到前几天我发现了这篇文章:<a class="link" href="https://www.lowtechmagazine.com/2007/12/email-in-the-18.html" target="_blank" rel="noopener" +>《十八世纪的光学电报网络》</a>。</p> +<p>里面详细介绍了在两百多年前人类就已经发明了“光学电报”系统,并建立起了巨大的信息网络。信息传递速度达到了惊人的 1380千米/每小时。</p> +<h3 id="c-语言发展简史">C 语言发展简史</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-23.png" +width="690" +height="352" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="470px" +></p> +<p>要说 C 语言是计算机历史上最重要的编程语言应该不会有人反对吧。</p> +<p>作为大多数人编程入门的母语,C 语言具有语法简洁、高性能(贴近计算机底层)、使用灵活、适用范围广泛等特点。</p> +<p>虽然诞生于上个世纪 70 年代,但即便是在 2023 年的今天,C 语言仍然排在各大编程排行榜的考前位置,仍然是信息科技的重要支撑力量。</p> +<p><a class="link" href="http://cm.bell-labs.co/who/dmr/chist.html" target="_blank" rel="noopener" +>《C 语言简史》</a>,由丹尼斯·里奇(C 语言之父)撰写,是一篇难得的介绍 C 语言的诞生和发展的历史性文献。</p> +<h3 id="vbvisual-basic发展简史">VB(Visual Basic)发展简史</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-40.png" +width="690" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></p> +<p>前几天 HN 上有个从业近 30 年的老程序员发问:<a class="link" href="https://news.ycombinator.com/item?id=37470318" target="_blank" rel="noopener" +>为什么 VB(Visual Basic)这么高效、好用的开发工具逐渐消失了?</a>。</p> +<p>被顶的最高的网友放出了<a class="link" href="https://retool.com/visual-basic/" target="_blank" rel="noopener" +>《Visual Basic 从诞生到消失》</a>这篇文章。</p> +<p>在上世纪 80 年代末 90 年代初,Windows 操作系统刚刚崭露头角的时候,VB 已经在萌芽状态了。而且已经具有非常先进的组件化、可视化、低代码等超前思想。并且发明了“控件”、“消息触发”等概念。</p> +<p>最初的版本与 BASIC 语言并无关系,只考虑了使用可视化开发并辅助简单的内嵌脚本,但是比尔·盖茨对 BASIC 十分热爱(毕竟那是微软起家的技术),亲自推动了组件化、可视化开发与 BASIC 语言结合,便诞生了 Visual Basic。</p> +<p>得益于超前的可视化开发理念,VB 极大降低了当时开发应用程序的门槛,涌现出一大批开发者。包括当时那些不得不转型给个人电脑开发程序的大型机编程工程师。</p> +<p>这一切在 VB 随着 Visual Studio 发布 6.0 的时候达到了顶峰。</p> +<p>转折点出现在微软为了应对 Java 的威胁而推出 .Net 公共语言运行时的时候,VB 也被纳入到这套体系里,被成为 VB.Net ,扩充了复杂的语法和继承、多态等高级特性。</p> +<p>对于那些真正喜欢 VB6 的人来说,这些都是唯恐避之不及的东西,更糟糕的是新的 VB.Net 无法兼容之前的代码,大量成果移植困难。</p> +<p>之后更是随着网络信息科技的发展,Web 编程逐渐取代了 Windows 桌面编程,VB 这个伟大的技术,被淘汰也就是顺其自然的了。</p> +<h3 id="一个在网页里模仿-excel-表格的故事">一个在网页里模仿 Excel 表格的故事</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-14.png" +width="690" +height="201" +loading="lazy" +class="gallery-image" +data-flex-grow="343" +data-flex-basis="823px" +></p> +<p><a class="link" href="https://websheets.github.io/websheets/demo/" target="_blank" rel="noopener" +>一位前端工程师,讲述了他在 2016 年受雇于 Uber(优步)时的一些开发往事</a>。</p> +<p>作为服务于数据工程师的内部研发团队,他所在的小组主要是给公司的数据分析人员提供内部工具,以便让他们能够更快地分析数据,更快的分析数据意味着更有可能在产品运营竞争里获胜。</p> +<p>然而数据分析人员总是抱怨工具不满足要求,主要是操作界面,因为他们非常习惯“Excel”,每次提需求的时候总是说:“你就做得跟 Excel 一样就行”。</p> +<p>作者最开始还试图跟用户解释要实现起来是多么困难,后来逐渐放弃了挣扎,并开始着手在网页里实现一个跟 Excel 一样的表格,而且他竟然实现了。</p> +<p>故事的后来有些伤感,作者提供的工具并没有使得 “Uber” 在跟嘀嘀的竞争中胜出,相反地,“Uber”在中国的业务还被“嘀嘀”收购了。</p> +<p>被用于数据分析的工具也被抛弃不再使用。</p> +<p>后来作者选择了将那个像 Excel 的表格代码放在了 <a class="link" href="github.com/WebSheets/websheets" >Github 进行开源,地址在这里</a>。</p> +<h2 id="资源">资源</h2> +<h3 id="通用-web-应用服务器">通用 Web 应用服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-34.png" +width="690" +height="356" +loading="lazy" +class="gallery-image" +data-flex-grow="193" +data-flex-basis="465px" +></p> +<p><a class="link" href="https://unit.nginx.org/" target="_blank" rel="noopener" +>NGINX Unit</a>,通用 Web 应用服务器。是一个轻量且多功能的应用运行时,作为一个单一的开源服务器,它提供了您的 Web 应用程序所需的基本组件:运行应用程序代码(包括 WebAssembly)、提供静态资源、处理 TLS 和请求路由。</p> +<p>Unit 是由 NGINX 团队成员从零开始创建的,以在运行时高度高效且完全可配置。最新版本是 1.31.0,于 2023 年 8 月 31 日发布。</p> +<h3 id="绿色安卓-app-合集">绿色安卓 App 合集</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-52.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://www.simplemobiletools.com/" target="_blank" rel="noopener" +>绿色安卓app合集</a>。</p> +<p>这个网站收集了一大批良心 app,全部没有广告且不要求隐私权限。</p> +<p>几乎涵盖了日常使用的所有类型,包括艺术绘画、音乐播放器、笔记、文件管理、录音、拍照等。 ​​​</p> +<h3 id="nuejs">nuejs</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-10.png" +width="690" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></p> +<p><a class="link" href="https://nuejs.org/" target="_blank" rel="noopener" +>nuejs</a>,越来越多的人对前端开发的混乱感到不满了。不同的是有人选择抱怨,有人撸起袖子开干。nuejs 的作者觉得现在使用 React、Vue 等框架再加上若干服务端渲染框架,使得前端开发生态变得越来越复杂和掌握。于是自己动手开发了一个简单的轻量化框架,终极目标是构建一个简洁、高效的前端开发生态。</p> +<h3 id="1024-字节的网页可显示-3d-地球">1024 字节的网页,可显示 3D 地球</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-21.png" +width="447" +height="255" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="420px" +></p> +<p><a class="link" href="https://aem1k.com/world/" target="_blank" rel="noopener" +>1024 字节的 JavaScript,在网页中显示动画 3D 地球模型</a>,页面动画显示的就是其源代码。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="p">.</span><span class="o">&lt;</span><span class="nx">script</span><span class="o">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nb">eval</span><span class="p">(</span><span class="nx">z</span><span class="o">=</span><span class="s1">&#39;p=&#34;&lt;&#34;+&#34;pre&gt;&#34;/* ,.oq#+ ,._, */;for(y in n=&#34;zw24l6k\ +</span></span></span><span class="line"><span class="cl"><span class="s1">4e3t4jnt4qj24xh2 x/* =&lt;,m#F^ A W###q. */42kty24wrt413n243n\ +</span></span></span><span class="line"><span class="cl"><span class="s1">9h243pdxt41csb yz/* #K q##H######Am */43iyb6k43pk7243nm\ +</span></span></span><span class="line"><span class="cl"><span class="s1">r24&#34;.split(4)){/* dP cpq#q##########b, */for(a in t=pars\ +</span></span></span><span class="line"><span class="cl"><span class="s1">eInt(n[y],36)+/* p##@###YG=[#######y */(e=x=r=[]))for\ +</span></span></span><span class="line"><span class="cl"><span class="s1">(r=!r,i=0;t[a/* d#qg `*PWo##q#######D */]&gt;i;i+=.05)wi\ +</span></span></span><span class="line"><span class="cl"><span class="s1">th(Math)x-= /* aem1k.com Q###KWR#### W[ */.05,0\ +</span></span></span><span class="line"><span class="cl"><span class="s1">x;)p+=&#34; *#&#34;/* b. OQ####x#K */[e[x++]+e[x++\ +</span></span></span><span class="line"><span class="cl"><span class="s1">]]||(S=(&#34;eval&#34;/* l `X#####D , */+&#34;(z=\&#39;&#34;+z.spl\ +</span></span></span><span class="line"><span class="cl"><span class="s1">it(B = &#34;\\\\&#34;)./* G####B&#34; # */join(B+B).split\ +</span></span></span><span class="line"><span class="cl"><span class="s1">(Q=&#34;\&#39;&#34;).join(B+Q/* VQBP` */)+Q+&#34;)//m1k&#34;)[x/2\ +</span></span></span><span class="line"><span class="cl"><span class="s1">+61*y-1]).fontcolor/* TP */(/\\w/.test(S)&amp;&amp;&#34;#\ +</span></span></span><span class="line"><span class="cl"><span class="s1">03B&#34;);document.body.innerHTML=p+=B+&#34;\\n&#34;}setTimeout(z)&#39;</span><span class="p">)</span><span class="c1">// +</span></span></span></code></pre></td></tr></table> +</div> +</div><h3 id="全球-ip-地址地理位置数据库">全球 IP 地址地理位置数据库</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-35.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://ipapi.is/geolocation.html" target="_blank" rel="noopener" +>全球 IP 地址 地理位置数据库</a>。含 IPV4 和 IPV6。 ​​<a class="link" href="https://ipapi.is/geolocation.html" target="_blank" rel="noopener" +>​这篇文章里还介绍了构建 IP 地址地理数据库的实现原理</a>和一套具有指导意义的实现方法。基本原理是:“互联网中的每个 IP 地址都由组织拥有或管理。可以向互联网注册机构查询WHOIS信息。”</p> +<h2 id="观点">观点</h2> +<h3 id="为什么-facebook-的-pytorch-占有率赢了-google-的-tensorflow">为什么 Facebook 的 PyTorch 占有率赢了 Google 的 Tensorflow</h3> +<p>Pytorch 已经完全击败了 Tensorflow,成为 AI 开发框架的事实标准。Pytorch 一开始就专注于学术界,方向是把最牛的人吸引过来。而 Tensorflow 则倾向于软件工程炫技,做各种简单但是酷炫的功能。</p> +<p>最终专业化的 torch 击败了 tensorflow 。 我觉得​​​还有一个原因就是 Google 特别容易弃坑,Tensorflow 中间也切换过前后不兼容的 API。</p> +<h3 id="越来越多的科技产品让人更好地欺骗自己">越来越多的科技产品让人更好地欺骗自己</h3> +<p>比如美颜相机、电影特效、游戏等,研发它们的主要目的就是让人们更好的实现自我欺骗和催眠。</p> +<h3 id="东方文明为什么警惕科技我个人不完全同意">东方文明为什么警惕科技(我个人不完全同意)</h3> +<p>中国古代对于科技非常警惕和打压的原因,也许是古人早就意识到科技(或技术)力量很容易对人类造成强烈反噬。</p> +<p>观点来自 <a class="link" href="https://www.bilibili.com/video/BV1pu4y1r7KW/" target="_blank" rel="noopener" +>@​​​安东尼2001:量子自旋理论背后,是人类历史的轮回</a>。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 049 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/Tue, 12 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-22.png" alt="Featured image of post 机器文摘 第 049 期" /><h1 id="机器文摘-第-049-期">机器文摘 第 049 期</h1> +<h2 id="长文">长文</h2> +<h3 id="在-linux-环境里执行-windows-应用程序">在 Linux 环境里执行 Windows 应用程序</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-33-44.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p>最近遇到一个难以启齿的需求,服务器是 Linux 环境,但是某项服务功能却需要执行一个 Windows exe 文件。</p> +<p>不得已才想到要求助 Wine 这个经典中间层,据说可以使的 Linux 兼容大部分的 Win32 程序。</p> +<p>但是又不想污染服务器的其他环境,于是选择在容器中运行。</p> +<p>在网上找到了这篇<a class="link" href="https://leimao.github.io/blog/Docker-Wine/" target="_blank" rel="noopener" +>《利用 Docker 容器和 Wine 在 Linux里运行 Windows 程序》</a>,按照文中介绍的步骤成功实现了需求。</p> +<p>基本步骤: +1、根据文章提供的 Dockfile 构建镜像; +2、运行镜像并注意配置运行容器的环境变量; +3、执行所需的 exe 程序。</p> +<h3 id="windows-系统是怎样进行引导的">Windows 系统是怎样进行引导的</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-06.png" +width="690" +height="976" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="169px" +></p> +<p>前不久,我在给笔记本更换大容量固态硬盘的时候,由于不愿重做系统,使用了硬盘克隆功能,将原盘整体信息直接克隆到新硬盘。</p> +<p>结果克隆成功并替换安装硬盘之后,却没能正常引导进入 Windows,而是进入了一个类似 PE 系统的界面(猜测是原盘中厂家自制的),并告知我由于检测到硬件更换,拒绝引导,并建议我选择恢复系统。</p> +<p>我猜测之前的隐藏分区可能有笔记本厂家做的一些特定引导程序,才导致这样的情况。</p> +<p>我对系统引导的理解还停留在 MBR 分区表大面积应用的阶段。于是尝试删除了隐藏分区,并手动将系统盘分区设置为了 “激活”分区(事实上这时候已经错了,因为 GPT 分区表方式下无法采用这种引导方式了)。</p> +<p>结果系统干脆直接无法引导。出现这种情况,我之前的知识储备显然不够用了。</p> +<p>经过一番折腾和搜索,我才得知现在 Windows 8 及以上版本操作系统的电脑所采用的方式是 GPT 分区表 + UEFI 引导。</p> +<p>也就是说硬盘上需要单独开辟一个分区存储负责进行操作系统引导的工作。这个分区平时对于操作系统的资源管理器不可见(但磁盘管理中可以看到),由主板上的 UEFI 程序(这个程序可以理解为 BIOS 的升级版)进行访问和管理。</p> +<p>了解这个方式之后,就简单了,重新使用工具修改 GPT 分区并制作专用引导分区即可。</p> +<p>最后,为了弄清这跟之前的 MBR 引导方式有什么区别,我找到了一位运维工程师总结得较到位的文章<a class="link" href="https://zhuanlan.zhihu.com/p/355526135" target="_blank" rel="noopener" +>《Windows系统开机引导顺序简述及运维小结》</a>。</p> +<h3 id="500-行代码写一个-c-编译器">500 行代码写一个 C 编译器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-22.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p><a class="link" href="https://vgel.me/posts/c500/" target="_blank" rel="noopener" +>500 行 Python 代码写一个 C 编译器</a>。</p> +<p>作者立下这个 flag 之后才发现任务有多难。</p> +<p>主要是代码行数太少了,如果使用传统手段实现,可能这点儿代码量还不够写个语法分析器的。</p> +<p>于是作者主动放弃了 AST (抽象语法树)的构建,采用 Token 提取和指令生成“一遍过”的方式,实现了一个相当“简洁”的 C 编译器。</p> +<h2 id="资源">资源</h2> +<h3 id="假装弹钢琴">假装弹钢琴</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-51.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p><a class="link" href="http://touchpianist.com/" target="_blank" rel="noopener" +>touchpianist</a>,在线弹钢琴的网站(也提供手机 App 版),可以让你假装钢琴大师,只需要按键盘上的任意键,旋律就会自动演奏,不过你要控制敲击键盘的速度,以匹配原曲的节奏。我弹了一下,默认曲目是贝多芬的《月光奏鸣曲》,差点儿被自己陶醉了。 ​​​</p> +<h3 id="bun-v10">Bun V1.0</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-09.png" +width="690" +height="419" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></p> +<p><a class="link" href="https://bun.sh/blog/bun-v1.0" target="_blank" rel="noopener" +>bun-v1.0</a>,拳打 node , 脚踢 deno 的 JavaScript 运营环境 bun 推出了 1.0 版本。主打一个“All in one”,号称可以一次性取代一揽子工具:node、npx、npm、webpack、tsc、babel、jest。一个工具包揽了运行、打包、包管理、转译、测试等所有事情,且速度是 nodejs 的 3 倍。</p> +<p>对于这种吹的比较厉害的技术,保持关注,谨慎使用吧。</p> +<h3 id="开源基于-llm-知识库平台">开源基于 LLM 知识库平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-24.png" +width="690" +height="334" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="495px" +></p> +<p><a class="link" href="https://github.com/labring/FastGPT" target="_blank" rel="noopener" +>FastGPT</a> - 基于 LLM 大模型的 AI 知识库问答系统。提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景。项目在 Github 开源,采用技术栈: NextJs + TS + ChakraUI + Mongo + Postgres(Vector 插件)。支持 GPT、Claude、Spark、ChatGLM 等多种 LLM 模型。</p> +<h3 id="开源基于-llm-数据可视化平台">开源基于 LLM 数据可视化平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-35.png" +width="690" +height="292" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="567px" +></p> +<p><a class="link" href="https://github.com/microsoft/lida" target="_blank" rel="noopener" +>lida</a>,微软出品的数据可视化工具库,特点是基于 LLM 对话模型进行生成,其生成的可视化代码支持多种可视化后端的语法,包括 matplotlib、seaborn、d3等。 ​​​</p> +<h2 id="观点">观点</h2> +<h3 id="编程是一种体育锻炼">编程是一种体育锻炼</h3> +<p>编程除了是一种可以以之谋生的专业技能,对于那些真喜欢编程的人来说,它还是一个心理疗愈工具。</p> +<p>编程能使人专注,进入“心流”状态比较容易,也容易让人的心态平和。</p> +<p>编程与体育锻炼一样,都是可以让人受益终生的活动。</p> +<p>&mdash;-来自<a class="link" href="https://weibo.com/1461522430/NiEh1BHMt" target="_blank" rel="noopener" +>@软件教书匠金旭亮</a>。</p> +<h3 id="造成电子阳痿的一种因素">造成电子阳痿的一种因素</h3> +<p>一个不容忽视的因素是现在游戏的加载速度,尤其是 PC 游戏。</p> +<p>我们被碎片化信息惯得一秒钟都不想等待。</p> +<p>每当想玩会儿 CS 或者地平线之类得游戏,光是等待游戏启动、地图加载等就足以让人放弃想玩的念头。</p> +<p>更别提有些游戏还有一些跳都无法跳过得开场引导视频。</p> +<p>所以我现在就算是玩也是偶尔打开模拟器玩一玩老游戏,带有状态存储,随时加载存档。</p> +<p>据说有一部分游戏主机(比如新一代 XBox)有类似笔记本电脑的睡眠功能,开机就玩,随时进入上次未完成的任务。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 048 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/Tue, 05 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/<h1 id="机器文摘-第-048-期">机器文摘 第 048 期</h1> +<h2 id="长文">长文</h2> +<h3 id="关于-python-语言的一些统计数字">关于 Python 语言的一些统计数字</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-05.png" +width="690" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="224" +data-flex-basis="539px" +></p> +<p><a class="link" href="https://py-code.org/stats" target="_blank" rel="noopener" +>关于开源 Python 仓库的一些有趣统计</a>,有人克隆了 PyPI 网站里所有 Python 包对应的 Github 仓库,并对这些仓库里的全部文件进行了分析和统计。</p> +<p>1、排名前三的语法特性分别是:列表推导、fstring字符串格式化、注解;</p> +<p>2、代码中大约包含有超过 2 万 5 千个密钥明文,泄露最多的是访问 Google API、OpenAI API和腾讯云 Secret ID;</p> +<p>3、截止到 2023 年 8 月,所有源码加起来已超过 60TB ,文件数量超过 10 亿。</p> +<h3 id="wasm-技术让数据库执行-ai-模型">Wasm 技术让数据库执行 AI 模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-30.png" +width="618" +height="492" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="301px" +></p> +<p><a class="link" href="https://dylibso.com/blog/pg-extism/" target="_blank" rel="noopener" +>使用 Extism 将 WebAssembly 引入 PostgreSQL</a>。</p> +<p>这篇文章的作者介绍了一种方法,可以使用 Wasm 技术通过扩展插件的方式给 PostgreSQL 数据库增加 UDF (用户自定义函数),从而实现调用 AI 模型的能力。</p> +<h3 id="bitlocker-硬件加密能破解吗">BitLocker 硬件加密能破解吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-50.png" +width="690" +height="499" +loading="lazy" +class="gallery-image" +data-flex-grow="138" +data-flex-basis="331px" +></p> +<p>BitLocker 是 Windows 下的存储加密技术,用于保护硬盘中的数据安全。</p> +<p>未经解密的硬盘即使遗失或者被接入其他系统也无法进行读取。</p> +<p>这在极大程度上带来了数据安全(不过仍有不少用户在不知情的情况下开启了 BitLocker 且未保存密钥,在重做系统的时候发现硬盘无法解密,数据无法恢复。。欲哭无泪。。)。</p> +<p>然而这种加密方式也不是绝对安全,国外有技术爱好者对此进行了挑战,并使用一台逻辑分析仪成功绕过了加密。</p> +<p><a class="link" href="https://www.errno.fr/BypassingBitlocker.html" target="_blank" rel="noopener" +>这篇文章进行了详细的记录</a>。</p> +<p>主要原理为:在系统开机启动过程中的某个时刻,加密芯片和 CPU 之间传输了未加密的信号。使用逻辑分析仪捕获该信号可以逆向出加密密钥。</p> +<h2 id="资源">资源</h2> +<h3 id="监控网页信息变化的工具">监控网页信息变化的工具</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-17.png" +width="499" +height="326" +loading="lazy" +class="gallery-image" +data-flex-grow="153" +data-flex-basis="367px" +></p> +<p><a class="link" href="https://github.com/dgtlmoon/changedetection.io" target="_blank" rel="noopener" +>changedetection</a>,一个监控网站变化的工具。</p> +<p>帮助用户密切关注商品打折、股票行情、政策发布等信息变动。</p> +<p>支持通过网页可视化的方式指定监控页面区域。</p> +<p>通过邮件、即时聊天软件、API调用等多种方式推送信息。可使用 Docker 部署,或者本地 Python 环境部署。</p> +<h3 id="switch-模拟器">Switch 模拟器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-28.png" +width="690" +height="472" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="350px" +></p> +<p><a class="link" href="https://github.com/Ryujinx/Ryujinx" target="_blank" rel="noopener" +>Ryujinx</a> 一个用c# 写的开源 switch 模拟器,该模拟器旨在提供卓越的准确性和性能、用户友好的界面以及稳定的版本构建。 ​​​</p> +<h3 id="文字缩写快捷键工具">文字缩写快捷键工具</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-45.png" +width="568" +height="446" +loading="lazy" +class="gallery-image" +data-flex-grow="127" +data-flex-basis="305px" +></p> +<p>为了减少打字量,国外这哥们写了个脚本将日常用语全部缩写了,只需敲入缩写字母,脚本自动完成完整句子的键盘输入。</p> +<p>比如: +st =&gt; something +ab =&gt; about +hw =&gt; hardware +sti =&gt; sometime</p> +<p>据小哥自己统计,使用这个脚本以后他已经减少了一半的键盘敲击量。</p> +<p><a class="link" href="https://github.com/eschluntz/compress" target="_blank" rel="noopener" +>项目名叫 compress 目前已开源</a>,如果你有兴趣,改成支持中文也不是不可以。</p> +<h3 id="canvas-手册">Canvas 手册</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-22-11.png" +width="562" +height="625" +loading="lazy" +class="gallery-image" +data-flex-grow="89" +data-flex-basis="215px" +></p> +<p>Canvas 是网页中用于图形绘制的基本元素,结合 JavaScript 可以实现各种复杂的图形效果和交互动画。我之前都是每次用到了的时候现去翻文档,对它的每个 API 都是一知半解。这里有一个<a class="link" href="https://bucephalus.org/text/CanvasHandbook/CanvasHandbook.html" target="_blank" rel="noopener" +>Canvas 手册</a>,详细介绍了 Canvas 的各种调用接口。适合希望深度使用及系统学习 Canvas。</p> +<h2 id="观点">观点</h2> +<h3 id="不要重复造轮子是人为设置的一种限制">“不要重复造轮子”是人为设置的一种限制</h3> +<p>遇到需求不能满足的情况,是去“寻找轮子”还是“动手创造轮子”,这是两种不同的思维习惯。</p> +<p>“寻找轮子”往往意味着寻找已有答案,将问题看为一种正常的状态,是“自古以来”、是“从来如此”。</p> +<p>思维定势一旦形成,就很难改变,让人成了那个在沙漠中让美女帮他牵住骆驼的矮子。</p> +<p>动手创造者往往是发现这种问题的人,他们不循规蹈矩,他们 Think different,是改变世界的人。</p> +<p>“不要重复发明轮子”,这个原则用于工作中确实比较安全,他保证了不会浪费资源,并且避免了一定的技术风险。</p> +<p>但也同时拒绝了伟大的创新。</p> +<p>所以不要被这句话束缚,尽管去做自己的轮子。</p> +<p>哪怕它一开始很丑。</p> +<p>你的轮子必将使你与众不同,使你拥有不一样的视角,成为那个动手创造的人。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 047 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/Tue, 29 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/<h1 id="机器文摘-第-047-期">机器文摘 第 047 期</h1> +<h2 id="长文">长文</h2> +<h3 id="业余爱好者痴迷于工具专业人士注重技能">业余爱好者痴迷于工具,专业人士注重技能</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-17-36.png" +width="649" +height="582" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="267px" +></p> +<p><a class="link" href="https://adamsinger.substack.com/p/amateurs-obsess-over-tools-pros-over" target="_blank" rel="noopener" +>业余爱好者痴迷于工具,专业人士注重技能</a>。</p> +<blockquote> +<p>以原声吉他为例。在数字音乐制作和合成器盛行的时代,这个单独演奏的乐器可能显得有点古老。然而,在熟练音乐家的手中,它变成了一个充满迷人旋律和触动灵魂的载体。它甚至可能为更大的创意提供灵感,如果你直接跳到现代合成器就有可能会错过这些。原声吉他的简单性促使艺术家专注于演奏的细微之处,完善他们的指弹技巧,并通过每一次弹奏传达情感。真正的魔力不在于吉他本身,而在于将其演绎得生动活泼的音乐家的技艺。</p> +</blockquote> +<p>这篇文章读来深有感触。</p> +<p>在解决问题的时候,我总是忍不住问自己,我这个方法是最优的吗?我使用的工具是不是最合适/最好的?</p> +<p>这种心理,常常使我陷入对最佳实践和完美工具的追求中,而忘记了解决问题本身。</p> +<p>时间久了,工具积累一大堆,但每个都未曾发挥其真正作用,一边老工具在吃灰,一边继续寻找新工具。</p> +<p>差生文具多。</p> +<p>正如文章中所说:真正的高手明白,应当拿起手里已有的工具,先行动起来。在这个过程中如果有机会创造美好的事物,好的工具自然会出现在眼前。</p> +<h3 id="cpu-的指令分支预测">CPU 的指令分支预测</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-17-49.png" +width="682" +height="743" +loading="lazy" +class="gallery-image" +data-flex-grow="91" +data-flex-basis="220px" +></p> +<p>现代的 CPU 基本都具有指令分支预测的特性,通过猜测后续会执行的指令分支,提前运行一些指令和设置状态,可以有效利用 CPU 的执行资源,提升效率。</p> +<p>不过,如果预测准确的话效率提升十分明显,但是如果预测错误,CPU 就要多做一些事情(刷新后续预测的指令和相关的状态),随着现代 CPU 中指令流水线越来越复杂,这种代价也变得越来愈大。</p> +<p>在编程的时候,编写一些对于 CPU 分支预测友好的代码,能够对性能产生极大的影响。</p> +<p>这篇<a class="link" href="https://johnnysswlab.com/how-branches-influence-the-performance-of-your-code-and-what-can-you-do-about-it/" target="_blank" rel="noopener" +>对于 CPU 的分支预测,我们能做什么</a>耐心地从 CPU 的分支预测机制讲起,通过具体的代码举例,讲解了怎样让编写的代码对 CPU 分支预测这类优化更加友好。</p> +<h3 id="ssh-命令详解">SSH 命令详解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-18-25.png" +width="690" +height="535" +loading="lazy" +class="gallery-image" +data-flex-grow="128" +data-flex-basis="309px" +></p> +<p><a class="link" href="https://grahamhelton.com/blog/ssh-cheatsheet/" target="_blank" rel="noopener" +>SSH 命令详解</a>,一篇对 SSH 命令的参数介绍十分详细且易懂的文章。</p> +<p>通过举例让我彻底弄清楚了基于 SSH 的端口转发。</p> +<p>另外还知道了可以在已有的 SSH 连接上执行补充命令,以实现不断开终端的情况下将远程主机上的端口转发到本机访问。 ​​​</p> +<h2 id="资源">资源</h2> +<h3 id="开源的房子">开源的房子</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-18-47.png" +width="690" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +></p> +<p><a class="link" href="https://www.wikihouse.cc" target="_blank" rel="noopener" +>wikihouse</a>,是一个开源房屋建造网站,房子的图纸、模型均可从网站上下载,里面有各式各样的房屋建造资料,任何人都可以据此增删、设计、制造、组装自己的建筑。可以理解为建筑界的 github。 +​​​</p> +<h3 id="关掉-edge-浏览器新增的圆角样式">关掉 Edge 浏览器新增的圆角样式</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-03.png" +width="690" +height="352" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="470px" +></p> +<p>Edge 浏览器的最新更新里,给所有页面强制增加了一个圆角边框,看起来很不习惯(丑陋)。</p> +<p>经过研究,我发现,如果想恢复到之前的样子,可以在设置外观选项里关闭该特性。</p> +<p>我已经关闭,并果断给这个功能特性反馈了负面评价。</p> +<h3 id="hello-world">Hello World</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-26.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://github.com/leachim6/hello-world" target="_blank" rel="noopener" +>Hello World</a> ,这个仓库收录了几乎所有编程语言(997种)的 Hello world 程序。 ​​​</p> +<h3 id="前端开发代码大全">前端开发代码大全</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-42.png" +width="690" +height="639" +loading="lazy" +class="gallery-image" +data-flex-grow="107" +data-flex-basis="259px" +></p> +<p><a class="link" href="https://30secondsofcode.org" target="_blank" rel="noopener" +>30secondsofcode</a>。</p> +<p>这个网站有大量可复用的代码片段,主要是 Javascript、CSS、HTML 、Python 等语言的内容,可以覆盖 Web 应用开发全栈。</p> +<p>里面收录的代码段或者文章都很清新,每个都配有细心的解释,具有良好的实用性。 ​​​</p> +<h3 id="关于-win10-的锁屏睡眠时间">关于 Win10 的锁屏睡眠时间</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-20-00.png" +width="410" +height="502" +loading="lazy" +class="gallery-image" +data-flex-grow="81" +data-flex-basis="196px" +></p> +<p>我在使用 Windows10 的时候发现一个问题。</p> +<p>无论我将电源设置里的睡眠时间、显示器空闲关闭时间设置多长,锁屏后系统都会在 1 分钟之后关闭显示器。</p> +<p>这会带来一些不方便,并且让人困惑。</p> +<p>在经过一番研究搜索之后,找到了如下解决方案(Windows就是这么喜欢在注册表隐藏设置):</p> +<p>1、打开注册表编辑器后。</p> +<p>2、定位到:<code>计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\8EC4B3A5-6868-48c2-BE75-4F3044BE88A7</code></p> +<p>3、修改右侧的Attributes 数值为2 (初始值为1)</p> +<p>4、再打开“编辑电源计划”时会发现多了一个选项“控制台锁定显示关闭超时。</p> +<h3 id="红警2游戏整合包">红警2游戏整合包</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-20-25.png" +width="413" +height="302" +loading="lazy" +class="gallery-image" +data-flex-grow="136" +data-flex-basis="328px" +></p> +<p><a class="link" href="https://tmioe.com/7991.html" target="_blank" rel="noopener" +>红警2 的民间整合包</a>,支持 win7 到 win11。整合大量资源,傻瓜式一键安装。 ​​​</p> +<p>经过我的测试,前面链接页面里提供的安装包里带有额外的广告脚本,在使用时可使用 7z 等压缩软件直接打开该自解压包,选取主文件夹拷贝出来即可。</p> +<h2 id="观点">观点</h2> +<h3 id="隐形的门槛">隐形的门槛</h3> +<p>也许每个领域都存在一个隐形的门槛,无论是你学会一种语言,还是掌握一种能力,哪怕是打通一个游戏,只要你跨不过那个门槛,那么无论你尝试多少次,都会在同样的水平下无功而返。相反,一旦跨过后,那就是一马平川,你有了在那个新世界周游的能力。这当然不是说你不会再遇到困难,而是说,你不再有那种尝试了无数次,带着同一种感受离开的感觉。剩下的区别只是更多经验的积累,是熟练度的问题,因为你已经在那个轨道上了,你已经拿到了入场券。</p> +<p>人生可以被隐喻成一个有着自然消退机制的RPG体系,累积10000经验可以升那关键的一级,那么先前你无论你多少次到达5000,6000,9000都不行,因为熟练度会反复消退到1000,2000的水平。而我知道,很多人就是无数次的卡在了那9000以内,但每次都要从1000,2000这个位置开始。这个和自我接纳也没有关系,因为你知道你遇到的困难并不是基于你对自己的苛求,你的困难在于你无法为自己在乎的事情付出真正的努力,无法将自己的活力与热情持续的灌注在同一个点上,但你隐约知晓跨过那10000的门槛,是你更重要的人生福祉。</p> +<p>来自微博 <a class="link" href="https://weibo.com/3762961402/NgprO9HD5" target="_blank" rel="noopener" +>@崔庆龙_</a></p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 046 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/Tue, 22 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/<h1 id="机器文摘-第-046-期">机器文摘 第 046 期</h1> +<h2 id="长文">长文</h2> +<h3 id="windows-的任务管理器">Windows 的任务管理器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-28-48.png" +width="452" +height="758" +loading="lazy" +class="gallery-image" +data-flex-grow="59" +data-flex-basis="143px" +></p> +<p>如果你喜欢使用 Windows 任务管理器来查杀那些不安分的进程,并且跟我一样讨厌他们乱跳(尤其在按照资源占用排序时)。你可以按下 Ctrl 键,它就会神奇地停止更新直到你松开 Ctrl。</p> +<p>Windows 操作系统有一种魔力,就是哪怕你用了将近 20 年,还是会有你不知道的快捷键或者快捷操作。这些东西有时候能带来一些惊喜。</p> +<p>具体介绍可以看这里:<a class="link" href="https://www.theverge.com/2023/8/16/23834125/microsoft-windows-task-manager-pause-shortcut" target="_blank" rel="noopener" +>暂停 Windows 任务管理器</a></p> +<h3 id="linux-内核最初版的解析">Linux 内核最初版的解析</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-29-10.png" +width="588" +height="253" +loading="lazy" +class="gallery-image" +data-flex-grow="232" +data-flex-basis="557px" +></p> +<p>最新版本的 Linux 内核,其源码规模已经飙升至 3600 万行,想要深入细节去了解它十分吃力。</p> +<p>而Linux 的第一个版本 v0.01 却非常小巧。</p> +<p>刨去注释和空行的话,也就 8 千来行代码。</p> +<p>这么小的代码结构,足够理解操作系统的精髓。</p> +<p>这篇<a class="link" href="https://seiya.me/blog/reading-linux-v0.01" target="_blank" rel="noopener" +>探索 Linux v0.01 d的内部结构</a>,可以带你像参观历史博物馆那样去见证曾经的 Linux。</p> +<p>我记录了一些有意思的地方:</p> +<p>1、v0.01 只有 66 个系统调用,用于支持文件管理和进程管理,分别是:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">access acct alarm <span class="nb">break</span> brk chdir chmod +</span></span><span class="line"><span class="cl">chown chroot close creat dup dup2 execve +</span></span><span class="line"><span class="cl"><span class="nb">exit</span> fcntl fork fstat ftime getegid geteuid +</span></span><span class="line"><span class="cl">getgid getpgrp setsid getpid getppid +</span></span><span class="line"><span class="cl">getuid gtty ioctl <span class="nb">kill</span> link lock lseek +</span></span><span class="line"><span class="cl">mkdir mknod mount mpx nice open pause +</span></span><span class="line"><span class="cl">phys pipe prof ptrace <span class="nb">read</span> rename rmdir +</span></span><span class="line"><span class="cl">setgid setpgid setuid setup signal stat +</span></span><span class="line"><span class="cl">stime stty sync <span class="nb">time</span> <span class="nb">times</span> <span class="nb">ulimit</span> <span class="nb">umask</span> +</span></span><span class="line"><span class="cl">umount uname unlink ustat utime waitpid write +</span></span></code></pre></td></tr></table> +</div> +</div><p>其中 mount 调用啥也没干,直接返回了。</p> +<p>2、直接写死代码绑定 Intel 386 平台。至今对于 PS/2 接口的键盘、ATA硬盘、VGA显卡等标准硬件的驱动代码还是写死在内核里(而不是放在drivers文件夹)。</p> +<p>3、系统崩溃处理代码只有 5 行:只实现了打印一句“我不行了”,然后进入死循环<code>for(;;);</code>。</p> +<h3 id="llamacpp-是怎样做到的">LLaMa.cpp 是怎样做到的?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-29-37.png" +width="540" +height="531" +loading="lazy" +class="gallery-image" +data-flex-grow="101" +data-flex-basis="244px" +></p> +<p>LLaMa.cpp 是一个令人惊叹的项目,在它之前没有人能够在低端消费设备上成功运行 Meta 开源的人工智能模型 LLaMa ,因为那需要太多的硬件资源。</p> +<p>但是 LLaMa.cpp 的横空出世使得在 M2 Macbook Pro、Android Pixel5 手机甚至树莓派上运行 LLaMa 的 7B 模型成为可能。</p> +<p>这是怎么做到的?</p> +<p>带着这个疑问,有网友深入研究了这个项目,并写下了这篇<a class="link" href="https://finbarr.ca/how-is-llama-cpp-possible/" target="_blank" rel="noopener" +>How is LLaMa.cpp possible?</a>以解释原因。</p> +<p>作者认为主要得益于对模型参数的量化,降低模型参数的精度,从 FLOAT16 减小到 INT4。使得 LLaMa.cpp 能够以较少的计算资源甚至只依赖 CPU 的情况下加载大模型。</p> +<h3 id="逐渐觉得微软比谷歌良心">逐渐觉得微软比谷歌良心</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-01.png" +width="690" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="185" +data-flex-basis="445px" +></p> +<p>曾经微软是技术黑客的公敌,被不少人视为反对技术创新、技术开放的最大反派。</p> +<p>不过随着时间的推移,以及微软逐渐在开源社区所做出的努力。这一现象有所好转。</p> +<p>近期在 HN 上<a class="link" href="https://old.reddit.com/r/degoogle/comments/15pd5si/today_i_realized_i_now_trust_microsoft_more_than/" target="_blank" rel="noopener" +>有位网友很扭捏地承认:现在他对微软的感觉要比对谷歌好很多</a>。</p> +<p>他列举了一些关于两家公司的对比,包括发布的产品、主观的优劣评价等等。</p> +<p>为了抵制微软,他已经十多年没用 Windows 了,但貌似微软的其他产品“很香”(VS Code、Github、ChatGPT等)。</p> +<p>并表示最近正在寻摸租一个云存储,大概率也会用微软的 onedrive 而不是谷歌的 Google drivers。</p> +<p>对此我也有类似感觉,不过我对谷歌的不信任起始于十年前谷歌将 Google reader 停掉,而自从微软推出 WSL 后,我更是觉得微软在产品上越来越实在了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-31-23.png" +width="690" +height="538" +loading="lazy" +class="gallery-image" +data-flex-grow="128" +data-flex-basis="307px" +></p> +<h2 id="资源">资源</h2> +<h3 id="tailwindcss-的小抄">tailwindcss 的小抄</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-29.png" +width="690" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="148" +data-flex-basis="356px" +></p> +<p>tailwind 这个 css 框架之所以能够很快流行起来,主要原因就是它解决了一个之前很多人没有太注意的问题,即 CSS 的“正交性”。</p> +<p>之前 CSS 实现一个效果,可以有 N 种方法,外加各种奇技淫巧,但在使用 tailwind 之后,针对特定效果都有了最优实践路径,而且还可以很容易组合。</p> +<p>不过由于它的类分的太细太碎,导致刚开始的时候会有一些不容易记忆。</p> +<p><a class="link" href="https://tailwindcomponents.com/cheatsheet/" target="_blank" rel="noopener" +>这里有一份 tailwind 的小抄</a>,适合初学者收藏,方便随时查阅。</p> +<h3 id="在浏览器中运行的-vim">在浏览器中运行的 vim</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-43.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p><a class="link" href="https://github.com/rhysd/vim.wasm" target="_blank" rel="noopener" +>vim.wasm</a>,在浏览器中运行的 Vim,不是插件。</p> +<p>使用 wasm 技术直接编译移植的 Vim Editor 源码,效果跟原生程序几乎一样。</p> +<p>使用 WebAssembly 给 Vim 提供一个新的 GUI 前端(类似 GVim)。</p> +<p>为了编译通过,作者在源码里禁用了很多 Wasm 不支持的特性,如:fork(2)、PTY 等。</p> +<p>可在这里体验:https://rhysd.github.io/vim.wasm/</p> +<h3 id="无隐私问题的-pdf-工具网站">无隐私问题的 pdf 工具网站</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-32-04.png" +width="690" +height="362" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="457px" +></p> +<p><a class="link" href="https://pdftool.org/zh" target="_blank" rel="noopener" +>这个pdf工具可以尝试一下</a>,跟其他pdf 工具网站不同,这个网站借用 WebAssembly 技术将很多工作放在浏览器客户端执行,用户无需上传自己的pdf到网站,即可执行处理工作,包括:加密、解密、拆分、合并等常用功能。 ​​​</p> +<h3 id="深入理解操作系统的小游戏">深入理解操作系统的小游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-32-17.png" +width="690" +height="368" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></p> +<p><a class="link" href="https://plbrault.com/blog-posts/i-created-the-nerdierst-game-ever-en/" target="_blank" rel="noopener" +>这个自称史上最极客的小游戏</a>,是国外一位计算机科学教授给学生们写的一个小游戏,假设玩家是一个“操作系统”,在游戏里玩家需要不停地进程调度、内存页交换等操作,一旦调度不合理就会激怒用户导致“玩家”也就是操作系统被重启,游戏就 GAME OVER 了。</p> +<p>游戏使用 Python 编写,作者将其编译为 WebAssembly 以嵌入网页,这里可以直接在线体验: <a class="link" href="https://drfreckles42.itch.io/youre-the-os" target="_blank" rel="noopener" +>https://drfreckles42.itch.io/youre-the-os</a>。</p> +<h2 id="观点">观点</h2> +<h3 id="学习技能最有效的练习手段是复刻">学习技能最有效的练习手段是“复刻”</h3> +<p>这是我前两天尝试用 CSS 临时写个页面效果想到的。</p> +<p>我虽然也了解了CSS 语言的一些基本知识,但是在具体实操的时候仍会感到无从下手。</p> +<p>与下棋类似,只知道“规则”但是没有“套路”。</p> +<p>后来干脆找了几个目标页面,按照自己的想法去还原,渐渐能够摸到一些“套路”的边缘,最终实现了自己想要的效果。</p> +<p>于是我想: <strong>在学习一项技能的时候,“复刻”、“抄袭”、“借鉴”、“致敬”,都没有问题,应该把它作为最主要的练习手段。</strong></p> +<p>因为“抄”是最经济的学习方法了。</p> +<p>不仅仅是编程技能,艺术方面更是如此。</p> +<p>比如在编曲学习的时候有一种练习叫“扒带”,就是找一首歌,然后你通过你的工具和技巧制作一份完全一样的作品,尽量做到百分百还原。</p> +<p>很多“大师”都是在这个过程中,遇到问题解决问题,领悟到很多只能意会不能言传的技巧,而这些领悟是无论如何也无法仅仅通过“看”和“听”获得的。</p> +<p>另外,人们练字、绘画也是从临摹开始,一般在熟练之后才能突破,才又自成体系。</p> +<h3 id="忍耐守恒">忍耐守恒</h3> +<p>怕麻烦的人,主要是不能忍受一些事情。</p> +<p>然而正是因为这些不能忍受,所以注定要忍受一些其他的事情。</p> +<p>人生就是这样,比如无法忍受投资带来的风险,就得承受现金贬值;不能面对创业的压力,就得忍受按时上班的束缚。</p> +<p>对于这种现象,我将之称为“忍耐守恒”。 ​​​</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 045 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/Tue, 15 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/<h1 id="机器文摘-第-045-期">机器文摘 第 045 期</h1> +<h2 id="长文">长文</h2> +<h3 id="基于浏览器-javascript-堆快照的网页爬虫">基于浏览器 JavaScript 堆快照的网页爬虫</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-23-22.png" +width="690" +height="546" +loading="lazy" +class="gallery-image" +data-flex-grow="126" +data-flex-basis="303px" +></p> +<p><a class="link" href="https://www.adriancooney.ie/blog/web-scraping-via-javascript-heap-snapshots" target="_blank" rel="noopener" +>基于 JavaScript 堆快照的网页爬虫</a>。</p> +<p>本文作者介绍了一个实现网络爬虫的新思路,据称已在生产上使用了一段时间,且效果不错。</p> +<p>比较典型的网络爬虫在爬取数据时,大都采用解析网页 DOM 的方式,或直接通过 HTTP 请求流直接解析,或使用无头浏览器进行解析。</p> +<p>但现在这项技术已经被很多网站、平台人为设置很多障碍,比如增加很多随机的嵌套等等。</p> +<p>作者某天福至心灵,想到一个点子。</p> +<p>利用浏览器提供的 JavaScript 内存堆快照功能,将内存里的全部信息扒下来,然后根据对应的 JavaScript 对象属性,按图索骥去找到真正需要的数据。</p> +<p>这种方法比较狠的地方在于,<strong>直接从后台的数据结构下手,跳过了对页面 DOM 的分析和拆解</strong>,而且据作者说,网站即便想通过混淆此类数据在内存中的属性名称来进行防御,其工作量还是相当大的。</p> +<p>所以,可能短期内无能为力。</p> +<p>作者说,也许全面转为 Web Assembly 才能彻底禁止他这种爬虫。</p> +<p><a class="link" href="https://github.com/adriancooney/puppeteer-heap-snapshot" target="_blank" rel="noopener" +>项目源码在这里</a></p> +<h3 id="intel-cpu-的崩溃攻击漏洞">Intel CPU 的“崩溃攻击”漏洞</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-23-45.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p><a class="link" href="https://downfall.page" target="_blank" rel="noopener" +>intel cpu 有一个崩溃攻击漏洞</a>,标识为 <a class="link" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40982" target="_blank" rel="noopener" +>CVE-2022-40982</a>,利用此漏洞可以在虚拟机里窃取共享同一个物理 CPU 的其他虚拟机的数据。</p> +<p>这个漏洞可以让恶意程序在本机运行后窃取如密码、加密密钥、以及个人电子邮件等私人数据。</p> +<p>恶意的云计算客户可以利用 Downfall 漏洞从与其共享同一台云计算机的其他客户那里窃取数据和凭据。</p> +<p>据文章作者(也即漏洞发现者)所说,该漏洞存在于 Intel Core 6 代到 11 代 CPU,并且研究人员发现存在通过 Web 网页浏览进行攻击的可能性。</p> +<p><a class="link" href="https://github.com/flowyroll/downfall/tree/main/POC" target="_blank" rel="noopener" +>作者开放了一部分用于测试攻击的代码在此</a></p> +<h3 id="利用树莓派的-gpio-发射无线信号">利用树莓派的 GPIO 发射无线信号</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-24-15.png" +width="690" +height="388" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><a class="link" href="https://hackaday.com/2021/04/06/fan-tastic-misuse-of-raspberry-pi-gpio/" target="_blank" rel="noopener" +>原来树莓派的 GPIO 还能干这个</a>,这位老哥使用树莓派的 GPIO 接口直接进行无线电波发射(没错,就是随便扯出一根线就可以当作天线了)。实现了基于树莓派的微型电台。</p> +<p>这得益于 <a class="link" href="https://github.com/F5OEO/rpitx" target="_blank" rel="noopener" +>rpitx</a>这个开源项目,项目本来是为了研究和学习一些无线电原理,不过后来逐渐成为一些 SDR 爱好者必不可少的工具了。</p> +<p><a class="link" href="https://www.youtube.com/watch?v=M2JY1_Xmokg&amp;t=8s" target="_blank" rel="noopener" +>我上次看到一个小哥使用 RTL-SDR 录制汽车遥控器信号,然后使用树莓派重复发射出来,成功实现了自家汽车的解锁</a>。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://oimo.io/works/water/" target="_blank" rel="noopener" +>water</a>,一个在网页里模拟流体动画的 Demo,使用 Haxe 语言编写。<a class="link" href="https://github.com/saharan/works/tree/main/water" target="_blank" rel="noopener" +>源码在这里</a> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-24-42.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p>Haxe 是一种跨平台的开源编程语言,在其官方网站上称其为&quot;universal language&quot;。</p> +<p>它可以用于开发多种平台(如Web、移动、桌面等)的应用程序。</p> +<p>Haxe 提供了强大的静态类型系统,并支持多种编译目标,包括但不限于 JavaScript、C++、Java、C#、Python 等。</p> +<p>感兴趣的话,这里也有<a class="link" href="https://daobook.github.io/haxe-book/docs/start/00_intro.html" target="_blank" rel="noopener" +>一份 Haxe 的在线教程</a></p> +</li> +<li> +<p><a class="link" href="https://github.com/lllyasviel/Fooocus" target="_blank" rel="noopener" +>Fooocus</a>,ControlNet 作者开源的一款新的 AI 画图工具 ,搭建起来比 Stable Diffusion webui 稍微方便了一点,相当于整合包。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-25-40.png" +width="690" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="107" +data-flex-basis="257px" +></p> +</li> +<li> +<p>原来 HTML5 有一个 <code>&lt;progress&gt;&lt;/progress&gt;</code> 标签,直接写这个标签,不加任何属性的话,就是一个加载动画,非常适合在页面里临时需要一个进度、状态展示的时候。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-25-55.png" +width="462" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="119" +data-flex-basis="286px" +></p> +</li> +<li> +<p><a class="link" href="https://wangdoc.com/typescript/" target="_blank" rel="noopener" +>阮一峰老师的 Typescript 教程</a>,发布了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-26-13.png" +width="501" +height="800" +loading="lazy" +class="gallery-image" +data-flex-grow="62" +data-flex-basis="150px" +></p> +</li> +</ul> +<p>据老师自己说,刚开始也是抗拒的,觉得TypeScript 就是为 JS 语言添加静态类型系统。如果真需要静态类型,可以考虑使用其他更成熟的语言(比如 Rust 和 Java),再编译成 JS(wasm 模块),何必新学一门语言呢。</p> +<p>但是后来发现 TypeScript 越来越流行,成为前端开发的主流工具,各种项目纷纷移植过去。</p> +<p>我虽然对 TypeScript 仍然持保留态度,但是阮老师写的技术书籍读起来都很轻松易懂,所以觉得还是有必要收藏一下​​​。</p> +<ul> +<li> +<p><a class="link" href="https://islamov.ai/stable-diffusion-webgpu/" target="_blank" rel="noopener" +>stable-diffusion-webgpu</a>,在网页里运行 AI 画图模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-26-55.png" +width="1154" +height="667" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="415px" +></p> +<p>基于 webgpu 技术,无需部署,直接在网页里运行。我试了一下,在我的 1080 8G 显存的显卡上 ,可以跑动,但是速度一般。</p> +<p>上面的图是我只跑了 8 个 steps 的结果。。。 ​​​</p> +</li> +</ul> +<h2 id="观点">观点</h2> +<h3 id="ai-画图的品质">AI 画图的品质</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-27-30.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p>为了验证之前关于“模特很可能被AI取代”的想法,自己动手部署 <a class="link" href="https://github.com/AUTOMATIC1111/stable-diffusion-webui" target="_blank" rel="noopener" +>Stable Diffusion webui </a> 测试了一些模型。根据网友分享的提示词尝试生成了一些图片。</p> +<p>感觉效果比我几个月之前体验时又有了不少提升,配合各种微调模型和 LoRA 模型可以生成照片质感和光影的图片。</p> +<p>虽然人物表情和姿态还有些僵硬,不过我相信这是我没有合理调整各个参数以及充分发挥插件性能导致。</p> +<p>多进行尝试和练习,应该能够生成更逼真、自然的照片。</p> +<h3 id="信息的维度">信息的维度</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-28-20.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +最近看了一些线性代数相关的知识,在向量、矩阵的各种计算中逐渐有了一些感悟:</p> +<p>古代“老子”思想中的“道”很可能是无限维的,你的任何表达都是对它的一种投影,也就是降维了。所以才是“道可道,非常道”。</p> +<p>每个人都想用最简单的框架去理解世界,将多维的信息硬生生地将为一维。</p> +<p>这样的后果便是,盲人摸象、管中窥豹、一叶障目,不同的观点争得不可开交。</p> +<p>所以在接收时也应该尽量按自己掌握的其它维度进行升维还原,任何信息都不可孤立看待。</p> +<p>如果能从多维信息得视角去认知世界,也许会有转机,这多少就有点儿“阴阳互生、一分为三”的意思了。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 044 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/Tue, 08 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/<h1 id="机器文摘-第-044-期">机器文摘 第 044 期</h1> +<h2 id="长文">长文</h2> +<h3 id="导致-python-多线程鸡肋的-gil-是什么">导致 Python 多线程鸡肋的 GIL 是什么</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-51-26.png" +width="690" +height="839" +loading="lazy" +class="gallery-image" +data-flex-grow="82" +data-flex-basis="197px" +> +近期在使用 Python 多线程的时候,遇到了 GIL 全局锁导致的性能问题。</p> +<p>具体来说就是性能提升没有达到预期,对于有些计算任务无法并行执行。</p> +<p>从多核 CPU 占用结果上来看,像极了网上那张经典的围观图,一核干活多核围观。</p> +<p>于是翻阅了相关资料研究一下,发现这是 Python 社区争论多年的问题,而且有很大的历史包袱。</p> +<p>严格来说,GIL 全局锁导致的性能问题与 Python 编程语言没有关系,导致这个问题的原因在于具体实现的 CPython 解释器。</p> +<p>当年解释器开发者为了简单实现对多线程的支持,搞了一个全局锁,以至于在多核时代无法充分发挥 CPU 性能。</p> +<p>而后续又有很多库延续了这项依赖,历史的包袱(屎山?)越来越重,很难下定决心将之移除(据说代价甚至比当年从 Python2.x 迁移到 Python3 还要大)。</p> +<p>如果不想深究具体技术细节只想了解基本的来龙去脉,这里有篇文章<a class="link" href="https://xie.infoq.cn/article/1e151c24367abe8cad18130f4" target="_blank" rel="noopener" +>为什么 GIL 让多线程变得如此鸡肋?</a>介绍了 Python PIL 的产生背景以及适用于 Python 多线程的业务场景,可以给你的技术决策提供参考。</p> +<p>不过好消息是,就在刚刚(前几天),Python 官方终于宣布要动手取消掉 GIL 了,顿时网上一片沸腾(其实只有一部分人,大多数人都还不知道 PIL 是什么玩意儿)。而且,<a class="link" href="https://news.ycombinator.com/item?id=36643670" target="_blank" rel="noopener" +>Meta 也承诺,愿意出工出力(3人年)帮助 Python 社区做针对去除 GIL 的相关开发工作</a>。</p> +<h3 id="用树莓派做一个属于自己的高级收音机">用树莓派做一个属于自己的高级收音机</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-52-14.png" +width="606" +height="454" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +最近接触到 SDR (软件定义无线电)这个领域,感觉挺有意思的。</p> +<p>软件定义无线电是一种无线通信技术,它利用软件来实现无线电通信系统中的信号处理和调制解调功能,而不是传统的硬件电路。</p> +<p>通过软件定义无线电技术,可以实现灵活、可配置和可重用的无线通信系统,大大提高了无线通信的灵活性和性能。</p> +<p>传统的无线电通信系统通常使用硬件电路来执行信号处理、调制解调和频谱管理等功能。这些硬件电路通常是固定的,不能轻易更改,因此限制了通信系统的灵活性和可配置性。</p> +<p>而SDR技术通过将信号处理和调制解调等功能以软件方式实现,可以在通信系统中使用可编程的处理器和通用硬件,从而使得通信系统的功能可以在软件层面上重新配置和调整,而不需要更改硬件设计。</p> +<p>比起灵活性和可配置性来说,我觉得 SDR 最大的优势是成本大大降低。之前必须购买昂贵的硬件才能实现的效果,现在能够通过便宜的、少量的硬件加上软件模拟即可。</p> +<p>我近期就以很低廉的价格购买了一套 SDR 设备,通过 USB 接口连接计算机,可以实现 500KHz到1700MHz频率范围的接收。听 FM 和航空频段不在话下,SW 短波的话受天线影响,我暂时没有调试出好的效果。</p> +<p>跟 SDR 相比,我几千块买的旗舰手台显得既昂贵又功能弱。</p> +<p><a class="link" href="https://www.hackster.io/mircemk/diy-sdr-dsp-radio-with-raspberry-pi-and-rtlsdr-dongle-c38064" target="_blank" rel="noopener" +>这里有篇文章</a>是作者自己动手用 SDR 设备结合树莓派制作了一个看起来还挺专业的宽频无线接收机。</p> +<p>其实这跟音乐制作领域内很多乐器、效果器逐渐被虚拟化的软件、插件代替是一样的。软件虚拟化拥有巨大的优势,随着通用计算硬件的成本越来越低廉,一切能被软件定义的最终都会被软件定义。</p> +<h3 id="家用-wifi-路由器需要选择哪个信道">家用 WiFi 路由器需要选择哪个“信道”</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-52-42.png" +width="601" +height="373" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="386px" +> +近期验证了一个关于无线路由器的传说。</p> +<p>起因是我新买了一个树莓派 ZeroW 带无线版本,没想到板载的 WiFi 网卡天线太弱了。</p> +<p>离路由器稍微远一点,比如放到卧室,传输速率就会大幅下降,我又暂时没能找到合适的外接网卡,一度陷入绝望。</p> +<p>后来灵机一动,看看能不能从路由器那头想想办法,于是打开路由器配置页面,找到了 WiFi 的“信道”设置,将之从“自动”调到了最不常用的“13”。</p> +<p>这里补充一下,WiFi信道一般从1到13,由路由器自动选择,但现在无线环境十分混乱,尤其是 2.4G(树莓派 Zero W 只能连这个规格) 频段,干扰很严重。</p> +<p>但是 13 这个信道很少被路由器自动选用,原因是最初制定标准的时候,不是所有国家和地区都支持,也不是所有终端设备都支持,所以这个信道就成了最不常用的。</p> +<p>在我手动指定信道之后,惊喜地发现,树莓派放在同样的位置,传输速率得到了较大提升并且稳定。看来传说将路由器 2.4G 信道设为 13 可以防干扰是真实的。</p> +<p><a class="link" href="https://zhuanlan.zhihu.com/p/344389009" target="_blank" rel="noopener" +>什么是路由器的信道?信道设置成什么最合理?</a></p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://roadmap.sh" target="_blank" rel="noopener" +>开发人员路线图</a> 是一个学习索引网站,旨在创建路线图、指南和其他教育内容,以帮助开发人员选择学习路径。在 Github 所有仓库中 Stars 排名第七。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-03.png" +width="690" +height="490" +loading="lazy" +class="gallery-image" +data-flex-grow="140" +data-flex-basis="337px" +></li> +<li><a class="link" href="https://felixkreuk.github.io/audiogen/" target="_blank" rel="noopener" +>AudioGen</a> facebook 开源的声音合成模型,可以根据文字描述生成对应的声音。效果已经很惊人了,这个页面展示了很多样例。我听了一下,觉得以后影视作品里的一部分声音特效应该可以通过 AI 进行生成了。至少像一些嘈杂的人群、婴儿哭声、鸟叫等各种背景音是可以合成的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-14.png" +width="499" +height="270" +loading="lazy" +class="gallery-image" +data-flex-grow="184" +data-flex-basis="443px" +></li> +<li>原来 Chrome 和 Edge 浏览器的 DevTools 里自带了 CSS 动画曲线编辑器啊!可以直接通过鼠标拖动进行调整和预览,十分便捷。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-29.png" +width="562" +height="528" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="255px" +></li> +<li><a class="link" href="https://github.com/GraphiteEditor/Graphite" target="_blank" rel="noopener" +>Graphite</a>,一个开源的 2D 矢量图形编辑器,适用于照片编辑、图像处理、图形设计、插图、数据可视化、数字绘画等领域。可以实现项目图稿,数据可视化和自动化。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-54-19.png" +width="830" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="428px" +></li> +</ul> +<h2 id="观点">观点</h2> +<h3 id="获取高品质信息的需求仍然强烈只是被淹没了">获取高品质信息的需求仍然强烈,只是被淹没了</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-54-40.png" +width="367" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="236px" +> +三十几年前,电视逐渐取代书籍、报纸等传统媒体的年代,尼尔波兹曼写下了《娱乐至死》。</p> +<p>作者认为:过度追求娱乐和娱乐化的信息传播方式可能导致公众思考能力的下降。</p> +<p>然而这么多年过去了,人们在降低信息质量这条路上越走越远。电视也早已沦为老年人卧床的伴侣,电视节目更是无法占据现代人的时间,取而代之的是手机短视频。</p> +<p>短视频已经成为大部分人闲暇消遣、信息获取的主要方式。这种媒体的变化将进一步降低理解和感受深度信息的能力,使人对深入学习和思考失去兴趣。</p> +<p>虽然获取的信息看似在增多,但现在高质量的信息却越来越少。</p> +<p>短视频等碎片化信息给我的感觉就像是无线电信号的背景噪音,现在的信息“电磁环境”早已被这种噪音充斥。因为“背景噪音”太大,就好像在高楼林立的城市里打开无线电,接收到的全是 LED 路灯和电动车充电器产生的噪波。</p> +<p>不过我还是相信会有包括我在内的相当一部分人,不愿放弃主动思考,不屑于接收低品质信息。</p> +<p>我正在努力做出一些尝试,以后逐渐记录下来:</p> +<ol> +<li>降低输入:减少刷碎片信息的时间;</li> +<li>滤波:使用搜索引擎、RSS服务、newsletter邮件等工具进行整理;</li> +<li>溯源:尽量选择信息源头获取一手信息,对于技术来说,直接阅读英文文档是一个办法;</li> +<li>创造:自己制作高质量内容;</li> +</ol> +<h3 id="摄影师不会被-ai-取代但是模特很可能会">摄影师不会被 AI 取代,但是模特很可能会</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-56-00.png" +width="664" +height="427" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="373px" +> +即便以后 AI 绘画能够产出更加难以分辨真假的作品。</p> +<p>从目前能看到的各种生成作品来说,还是摄影师负责了主要的创作灵感。</p> +<p>真要说被取代的话,也许“被拍摄对象”经过虚拟化以后,很可能被取代。</p> +<p>以后不仅仅是举着相机的叫摄影师,说不定会诞生面向 AI 摄影这一职业。</p> +<p>到时候器材党玩的不再是镜头,改玩显卡了?</p> +<p>“嘿,你这 N 卡 比我这 A 卡有德味儿,毒!”</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 043 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/Tue, 01 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/<h1 id="机器文摘-第-043-期">机器文摘 第 043 期</h1> +<h2 id="长文">长文</h2> +<h3 id="先做框架再做功能">先做框架再做功能</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-57-56.png" +width="690" +height="395" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="419px" +> +<a class="link" href="https://devblogs.microsoft.com/oldnewthing/20230725-00/?p=108482" target="_blank" rel="noopener" +>Before you try to do something, make sure you can do nothing.</a></p> +<p>看到这句话第一反应是:这是什么 XX 逻辑?看完作者的文字之后,哦,这是一种软件构建的方法。</p> +<p>意思是说,先宏观再微观,先整体再局部,别一上来就陷入到细节代码的编写中去。</p> +<p>先把框架搭好,具体功能一个也别着急实现,留着占位,先搭一个“什么都不干”的架子,然后再逐渐补充功能。</p> +<p>但也不是真的什么都不干,而是理清了各个关键组件的调用关系以及与开发相关的辅助功能(如打印调试信息)。</p> +<p>这样做最大的好处是,随着功能开发的深入,代码不至于失控,而且具有良好的可调试性和组件问题隔离能力。</p> +<p>随之而来的就是轻松写代码,而不是眉毛胡子一把抓。</p> +<h3 id="神经网络从开始到现在">神经网络从开始到现在</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-58-59.png" +width="690" +height="513" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="322px" +> +<a class="link" href="https://s3tlxskbq3.feishu.cn/docx/NyPqdCKraoXz9gxNVCfcIFdnnAc" target="_blank" rel="noopener" +>The Document is All You Need!</a></p> +<p>一篇 AI 科普好文章,用较为通俗的语言讲解了神经网络模型原理和发展历程(我感觉有些像生物的进化)。</p> +<p>从最初的由神经元组成的多层感知机开始,然后进化到卷积神经网络 CNN 降低网络复杂度,再进化, RNN 循环神经网络给模型增加记忆能力,记忆能力太强也不行,到了 LSTM 开始让它能够遗忘,再到后面的 注意力机制以及 LLM 语言模型。</p> +<p>比起同类文章,这一篇尽量避免了数学概念的推导和论证,尽量在不看公式的情况下解释基本思路,适合我等小白学习。</p> +<h3 id="代码审查的一些建议">代码审查的一些建议</h3> +<p><a class="link" href="https://codelantis.com/blog/code-reviews-best-practices" target="_blank" rel="noopener" +>5个关于代码审查的最佳实践</a>,文章记录一些了对代码审查的实践建议,嫌长不看我总结如下:</p> +<ol> +<li>一次只审查一个功能特性或者错误修复。</li> +<li>提前准备好背景交代(在审查之前写清楚这么做的原因和基本思路)。</li> +<li>利用自动化工具提前做好静态检查,提前统一风格、规范。</li> +<li>利用提问的方式提出改进建议而不是直接喷,如:“我们真的需要这个断言吗?”</li> +<li>仔细阅读代码,慢慢来,以充分理解。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li> +<p>微软的 <a class="link" href="https://learn.microsoft.com/en-us/sysinternals/downloads/zoomit" target="_blank" rel="noopener" +>ZoomIT</a> 真是个经典工具,已经默默维护了好多年了,现在版本为7.0。体积小巧才1MB多点儿,绿色免安装,下载解压即用。非常适合进行共享屏幕培训讲解,或者录制教学视频。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-59-57.png" +width="669" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="345px" +> +ZoomIT 快捷键如下: +Ctrl+1:放大屏幕,屏幕静止,然后使用鼠标批注; +Ctrl+2:使用鼠标随意绘制批注,支持 r、g、b、o 等快捷键切换颜色; +Ctrl+3:显示 BreakTime 倒计时; +Ctrl+4:放大屏幕,屏幕继续支持鼠标交互操作,用于放大操作过程; +Ctrl+5:录制屏幕,可与前面几个功能结合使用;</p> +</li> +<li> +<p><a class="link" href="https://github.com/kamranahmedse/driver.js" target="_blank" rel="noopener" +>driver.js</a> 一个压缩后只有 5K 大小的前端库,可以让你的网站或者 Webapp 迅速集成交互式“使用指南”的能力。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-27.png" +width="690" +height="361" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></p> +</li> +<li> +<p><a class="link" href="https://clangjs.netlify.app" target="_blank" rel="noopener" +>clangjs</a> 一个在浏览器编译、链接、运行 C/C++ 代码的 JS 库。支持 C/C++ 标准库。完全在本地编译,无需网络即可工作。原理: +首先把 Clang 和 LLD 编译为 WebAssembly 使其运行在浏览器中。然后使用 WebAssembly 版本 Clang 把 C/C++ 代码编译为 WebAssembly,最后通过浏览器 API 运行 WebAssembly。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-43.png" +width="690" +height="292" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="567px" +> +<a class="link" href="https://github.com/luoxuhai/clang.js" target="_blank" rel="noopener" +>附:clangjs源码</a></p> +</li> +<li> +<p><a class="link" href="https://github.com/bartobri/no-more-secrets" target="_blank" rel="noopener" +>nms</a>,一个控制台程序,可以将任意命令的输出(ANSI TXT)文本转换成为乱码以达到防偷窥和加密的效果。通过命令管道使用:<code>ls -l | nms</code> ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-57.png" +width="690" +height="236" +loading="lazy" +class="gallery-image" +data-flex-grow="292" +data-flex-basis="701px" +></p> +</li> +<li> +<p><a class="link" href="https://iconbuddy.app" target="_blank" rel="noopener" +>Icon Buddy</a>,这个网站有超过 1 百万个免费 svg 图标,可在线自定义颜色。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-01-15.png" +width="690" +height="420" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="394px" +></p> +</li> +</ul> +<h2 id="观点">观点</h2> +<ul> +<li>无法眼神交流不是导致远程办公沟通的最大障碍,语音延迟才是: +<ul> +<li>我之前一直以为远程办公给沟通带来最大的最大障碍是无法眼神交流导致的信息失真,想象着可以通过升级摄像头(比如嵌入在屏幕中)来改善这一情况。</li> +<li>但进行无数次网络会议之后,我体会到了最大的障碍还不是无法眼神交流,而是网络通信带来的(几乎是必然的)严重的语音延迟。</li> +<li>人们对声音延迟的感知和容忍限度大约在10毫秒(现在的电脑声卡在使用 ASIO 驱动之后可以轻松做到本地延迟 8到6毫秒左右,所以可以用于实时录音),大于10毫秒的延迟会带来明显的迟钝感,时间再长一些就会对对话的节奏带来严重影响。(如果体会不到的话,可以回忆一下新闻直播间主持人跟现场记者连线时那种说话总是对不上节奏的尴尬。)</li> +<li>什么时候网络视频会议的延时能缩短到10毫秒以内(唱卡拉OK可以接受的最低延迟),远程办公才能迎来质的飞跃,否则网络视频会议对于工作讨论永远都是隔靴搔痒、效率低下。现在的解决方案普遍还在吹能做到一秒(1000毫秒)以内,任重而道远。 ​​​</li> +</ul> +</li> +<li>现在真正的程序员用什么编辑器 ? +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-01-47.png" +width="690" +height="645" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="256px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 042 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/Tue, 25 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/<h1 id="机器文摘-第-042-期">机器文摘 第 042 期</h1> +<h2 id="长文">长文</h2> +<h3 id="从-cpu-到操作系统">从 CPU 到操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-57-14.png" +width="665" +height="261" +loading="lazy" +class="gallery-image" +data-flex-grow="254" +data-flex-basis="611px" +> +整天使用电脑和手机却对它的工作原理一知半解?<a class="link" href="https://cpu.land" target="_blank" rel="noopener" +>把你搁 CPU 里</a>是一套不错的科普文章,作者保证你无论是否了解 CPU 的运作方式,读完之后都会有所收获。我原本以为主要讲解 CPU 组成原理,在浏览了一遍之后,发现 CPU 只是引子,后面还讲了很多操作系统相关的知识,很值得一看。 ​​​</p> +<h3 id="基于-gpu-渲染的-ui-界面制作">基于 GPU 渲染的 UI 界面制作</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-57-33.png" +width="690" +height="412" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +> +<a class="link" href="https://hasen.substack.com/p/gpu-gui-table-of-contents" target="_blank" rel="noopener" +>基于 GPU 渲染的 UI 界面制作</a>,也是一个系列文章,探讨了使用 GPU 渲染用户界面的一些思路和相关技术实现方法。用 GPU 绘制用户界面不是什么新鲜事,事实上现在大部分游戏的 UI 都是基于 GPU 渲染的,不过这个作者讲的比较深入浅出,对基础介绍的比较多,适合我这种业外人士,读起来通俗易懂。</p> +<h3 id="为什么我们更应该使用-display-port-而不是-hdmi-">为什么我们更应该使用 Display port 而不是 HDMI ?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-58-12.png" +width="790" +height="479" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +> +<a class="link" href="https://hackaday.com/2023/07/11/displayport-a-better-video-interface/" target="_blank" rel="noopener" +>为什么我们更应该使用 Display port 而不是 HDMI?</a>,简单来说,HDMI 是家电行业制定的接口标准,封闭而保守,Display port 是 PC 行业制定的标准,开放又激进。现在的显卡上一般提供一个 HDMI 接口,仅仅是为了兼容而做出的妥协,不提供多个是因为 HDMI 授权收费。</p> +<h3 id="txt-纯文本才是王道">txt 纯文本才是王道</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-58-45.png" +width="690" +height="220" +loading="lazy" +class="gallery-image" +data-flex-grow="313" +data-flex-basis="752px" +> +喜欢老式合成器的操作方式,不用图形和触摸屏,而是用文本和字符进行交互,可以快速选择音色参数,指哪儿打哪儿,心中有数。</p> +<p>喜欢在控制台的黑窗口通过命令行跟计算机交互,而不是用鼠标在图形界面上点击,不用将鼻子凑在屏幕上,闭上眼睛也能做到精确操作。</p> +<p>喜欢单反相机的肩屏,无论我用什么姿势拨动拨杆、拨轮,肩屏总能用字符给我最快速最准确的响应,告诉我现在的曝光三参数是多少,做到心中有数。</p> +<p>喜欢用 Markdown 文本格式记录信息,只因为文本格式最干净纯粹,利于保存和传播。</p> +<p>这篇<a class="link" href="https://graydon2.dreamwidth.org/193447.html" target="_blank" rel="noopener" +>《txt纯文本才是王道》</a>的作者表达了跟我同样的喜好,对于使用纯文本保存信息偏爱有加,认为无论是视频、图片还是其他数字形式,在文字面前都是弱小的弟弟。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/FlagAlpha/Llama2-Chinese" target="_blank" rel="noopener" +>Llama2-Chinese</a>,Llama2中文社区!是一个专注于Llama2模型在中文方面的优化和上层建设的高级技术社区。 <em>基于大规模中文数据,从预训练开始对Llama2模型进行中文能力的持续迭代升级</em>。Facebook近期开源的 Llama 2 模型比较火,号称可以免费商用。我试了一下,效果不如预期,跟 ChatGPT 3.5 比起来还有距离。可能我使用的中文微调 Lora 参数还不够好吧。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-02.png" +width="690" +height="182" +loading="lazy" +class="gallery-image" +data-flex-grow="379" +data-flex-basis="909px" +></li> +<li><a class="link" href="https://githubunwrapped.com" target="_blank" rel="noopener" +>githubunwrapped</a>是一个帮你统计 Github 信息的网站,可以将输入的 Github 账号相关的统计信息生成一段漂亮的动画,展示你使用最多的编程语言、哪天提交的最积极、哪个时段工作效率高(根据文件修改时间?)等。比较有趣的是,这个网站生成动画视频的技术来自一个叫做 <a class="link" href="https://remotion.dev" target="_blank" rel="noopener" +>remotion</a>的库,它可以使用 React 组件式风格编写动画效果,并通过 Canvas 实现视频文件的渲染。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-18.png" +width="690" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></li> +<li><a class="link" href="https://github.com/jesseduffield/lazydocker" target="_blank" rel="noopener" +>lazydocker</a>,继发现 lazygit 和 lazyvim 两个神器之后,我又发现了 lazy 家族新成员:lazydocker!同样是提供终端命令行下的“gui”界面,不过操作对象是 docker 这下管理容器终于可以不再看错乱的 docker 命令输出了。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-28.png" +width="690" +height="397" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></li> +</ul> +<h2 id="观点">观点</h2> +<ul> +<li> +<p>关于产品需求的来源:</p> +<p>对于提供IT相关服务的从业人员来说,无论是在企业还是个人做独立产品,把握好产品的需求、做好产品定义是最关键的事情,是后续做研发、运营的基础。</p> +<p>而好的产品定义=自己想做+自己能做+用户想用+愿意付费。</p> +<p>这样的定义应该怎样去发现?</p> +<p>拿软件举例,大部分软件能给用户提供的最大价值是“将一些事情自动化”和“将一些物理实体虚拟化”。前者能够通过自动化实现工作效率的指数级提升,后者则通过对物理现实虚拟化实现用户对交互体验的指数级提升。</p> +<p>所以在分析产品需求进行产品定义时可以从身边三个方面入手:</p> +<ol> +<li>还有什么事情可以被计算机自动化?</li> +<li>还有哪些物理实体可以被虚拟化?</li> +<li>市场上的现有产品,还有哪些可以从上面两个维度提升以增强体验的?</li> +</ol> +<p>我发现,无论是企业的产品,还是个人的独立产品,都可以从这些维度进行分析。</p> +</li> +<li> +<p>基于互联网通道的“业余无线电”:</p> +<p>不是很理解热衷于用互联网通道进行业余无线电通联的心态。</p> +<p>今天刚知道现在有一些业余无线电爱好者使用一种叫做 mmdvm 的盒子(热点盒子)进行自主搭建数字中继。</p> +<p>原理是“热点盒子”用家里的wifi接入互联网,然后热点盒子给业余无线电台提供UV频段的发射接收中继,这样就能轻易通联全国甚至全球的爱好者。</p> +<p>目前很多拥有支持数字通信的电台的爱好者都很积极地参与这种通联,甚至每周还有打卡点名活动。</p> +<p>我暂时还不是很理解这种心态。这种依赖互联网进行的通联在我看来(也许是暂时的)早已失去了玩无线电的初衷。如果我想要通过互联网假装进行呼叫,还得依靠家里的无线路由器,那我为什么不干脆使用微信电话?</p> +</li> +<li> +<p>无头系统: +今天才知道原来我给自己配的远程开发环境有个专业术语叫做 <a class="link" href="https://zh.wikipedia.org/zh-cn/%e6%97%a0%e5%a4%b4%e8%ae%a1%e7%ae%97%e6%9c%ba" target="_blank" rel="noopener" +>“Headless 无头系统”</a> 啊。我现在基本上可以做到带着笔记本随意移动,开发环境都在远程,在各处体验环境都一样。主要使用: Win10 + WSL2 + Nvidia-Docker + VS Code + Neovim。有时会启用远程桌面 RDP,有时直接 ssh + tmux。有兴趣的话我挑一期详解。</p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 041 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/Wed, 19 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/<h1 id="机器文摘-第-041-期">机器文摘 第 041 期</h1> +<h2 id="长文">长文</h2> +<h3 id="c-也能一次编译到处运行了">C 也能一次编译到处运行了?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-28-30.png" +width="743" +height="446" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="399px" +> +用 C 编写的程序,只编译一次,生成的可执行文件能同时在多个平台运行吗?</p> +<p>这在以往是 java 这类依赖虚拟机执行环境的语言宣称的事情。</p> +<p>然而我今天才听说还有这个神奇的库(好久没关注过c++领域的技术了):<a class="link" href="https://github.com/jart/cosmopolitan" target="_blank" rel="noopener" +>Cosmopolitan</a>Libc 号称可以使 C 成为一种构建一次就能到处运行的语言,就像Java一样,除了它不需要解释器或虚拟机。相反,它重新配置了GCC和Clang,以输出POSIX批准的多语言格式,该格式在Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS上本地运行,具有最佳的性能和最小的占用空间。</p> +<p>在使用的时候需要引入特殊的库和编译配置,具体执行效果我还没有测试。</p> +<p>然后,<a class="link" href="https://ahgamut.github.io/2023/07/13/patching-gcc-cosmo/" target="_blank" rel="noopener" +>这篇文章</a>的作者干脆来个更方便的操作,他给 GCC 打了大约 2000 行的补丁,使得 GCC 直接就嵌入了 Cosmopolitan 库,现在可以在不修改任何源代码(前提是得用纯 C 写)的情况下构建出到处都能运行可执行文件了(Windows也可以吗?我要测试)。</p> +<h3 id="业余无线电入坑指南">业余无线电入坑指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-29-07.png" +width="690" +height="920" +loading="lazy" +class="gallery-image" +data-flex-grow="75" +data-flex-basis="180px" +> +业余无线电跟摄影、HiFi音响这一类的爱好在某种维度上非常相似,在“入坑”的境界上,甚至完全一样。</p> +<p>这里的坑,指需要投入大量精力和资金。</p> +<p>之所以这么说,是因为它们都有一个共同的特点。</p> +<p>即围绕这些爱好有大量的知识可以学习和探索。</p> +<p>比如拿业余无线电来说,上来就一堆“亚音”、“中继”、“频段”、“频差”、“杂散发射”等名词,对标摄影中的“构图”、“光圈”、“快门”、“ISO感光度”等名词。新手若想有所体会,单是这些概念就够琢磨几天的。更不用提后续还有逐渐步入玄学的一些操作流派,乃至一个不留神还会陷入无穷尽的装备升级竞赛。</p> +<p>这类知识对于好奇心强烈、喜欢求知的人来说有着巨大的吸引力。甚至直白的说,我们很可能不是爱好这项技能,而是单纯喜欢探索和求知的过程,喜欢那种获得感。</p> +<p>这篇<a class="link" href="https://zhuanlan.zhihu.com/p/585518350" target="_blank" rel="noopener" +>《业余无线电新手指南》</a>可以普及一些基本知识,愿意入坑的请阅读。</p> +<p><em>我近期已考取了中国无线电协会的业余无线电操作能力 A 证</em> 算是合法的 <a class="link" href="https://baike.baidu.com/item/%E6%97%A0%E7%BA%BF%E7%94%B5%E7%88%B1%E5%A5%BD%E8%80%85/6509242" target="_blank" rel="noopener" +>HAM 火腿</a>了。</p> +<h3 id="远程办公还能成为趋势吗">远程办公还能成为趋势吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-29-47.png" +width="799" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="463px" +> +疫情的时候,远程办公、异地协同等概念一度变得很火爆,当时很多人觉得这又是一个风口。</p> +<p>但随着当时极端环境的消失,各大公司又纷纷将员工从居家办公中召回。</p> +<p>那么?此类与远程协作相关的概念破灭了吗?</p> +<p>各种协同工具、平台相关的市场,还有没有继续扩大的可能,或者说还在等待一个巨大的技术革新来引爆?</p> +<p>这里有个项目,<a class="link" href="https://github.com/LinuxSuRen/remote-jobs-in-china" target="_blank" rel="noopener" +>积极收集远程办公相关的信息</a>,包括国内支持的公司清单、工具及使用资料等。</p> +<h3 id="怎样做出伟大的成就">怎样做出伟大的成就?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-30-40.png" +width="636" +height="422" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +> +昨日读了保罗格雷厄姆(《黑客与画家》的作者)新文章一篇&mdash;-<a class="link" href="http://paulgraham.com/greatwork.html" target="_blank" rel="noopener" +>《怎样做出伟大的成就》</a>(实际上我觉得可以译为“怎样牛逼”)。</p> +<p>虽然标题看起来略有鸡汤味儿,但读起来还是比较实惠的。</p> +<p>文章从发现和选择要做的事情开始,谈论了一些具体的方法。然后展开讨论了在方法执行过程中可能会遇到的一些问题,以及如何克服。甚至介绍了一些心理暗示技巧。</p> +<p>文章比较长,我个人体会比较深的点如下:</p> +<ol> +<li>一个人做什么才能牛逼?答:做自己天赋里有的东西,就是找一些你既有能力又非常感兴趣的事情。</li> +<li>要养成“自驱”的习惯。让“工作”来源于自己的认知,而不是别人告诉你、让你做的事情。主动,而不是等待。</li> +<li>拥有一个属于自己的“项目”是一个找到“自驱”的最佳方法。不断观察自己对什么有强烈的好奇心(甚至好奇到大多数人不能理解)可以找到这样的“项目”。</li> +<li>选定要做的“项目”还应遵循兴奋原则,即:做自己愿意用的产品,写自己想读的故事,而不是执着于满足想象中的不存在的复杂需求。</li> +<li>注重积累效应,日拱一卒、长期积累,每天写一篇文字,一年下来就是一本书。</li> +<li>周期性审视自己做的事情,确认它是否偏离了目标(在做自己最想做的事情),及时修正。</li> +<li>行动的重要性,很多人实际上可以更牛逼,但是因为“谦虚”和“恐惧”导致的拖延使得计划一再搁浅,浪费了时间。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="http://t.cn/A60wPLwI" target="_blank" rel="noopener" +>jabbr.ai</a>是一个针对拳击比赛的打击判定进行训练的AI模型,可以在智能手机上运行,实时监测视频中拳击选手的打击得分情况,即时进行统计,多个智能手机多视角同时运行可以快速生成总结性视频。模型提供约50种监测参数(质量、步法、压力等)可用于运动员训练分析。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-31-11.png" +width="908" +height="509" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="428px" +></li> +<li>浏览器地址栏快捷操作,我今天才知道原来浏览器地址栏还有这些快捷操作(火狐浏览器支持的最多,我测试的Edge浏览器也支持部分操作): +<ol> +<li>输入*星号,可以搜索你的收藏夹;</li> +<li>输入^,可以搜索历史浏览记录;</li> +<li>输入%,可以搜索当前打开的tab页;</li> +<li>输入?,可以显示所有搜索建议; ​​​</li> +</ol> +</li> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4923133602234429" target="_blank" rel="noopener" +>树莓磁带</a> 一种用树莓派做的小硬件,为了支持在老式电脑中加载程序(之前用磁带存储的那种)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-31-40.png" +width="607" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></li> +<li>两招教你“永久”关闭 Windows 自动更新(任选一个都可以): +<ol> +<li>通过执行代码的方式:<code>reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings” /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f</code> Win+R 打开「运行」对话框,输入 <code>cmd</code> 后按下 <code>Ctrl+Shift+Enter</code>,在弹出来的命令行窗口中输入上面的代码,并敲击回车。命令里的 10000 代表停止更新的天数。</li> +<li>手动把电脑时钟日期改成 2050 年(为了防止时间自动校准,可以暂时断开网络),然后在 Windows 更新设置界面里面点击“延迟更新”,完成设置后再把电脑时间调回来就行了。</li> +</ol> +</li> +<li><a class="link" href="https://pkg-size.dev/" target="_blank" rel="noopener" +>pkg-size</a>,一个在线监测 npm 包大小的网站,可以实时查看一个 npm 包的真实依赖,网站利用了 web容器技术,直接在浏览器里执行 npm install 操作。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-32-07.png" +width="1011" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="158" +data-flex-basis="381px" +></li> +<li><a class="link" href="https://marketplace.visualstudio.com/items?itemName=degreat.3e" target="_blank" rel="noopener" +>3e</a>,一个 VS Code 插件,可以让你在编辑器里直接浏览 3d 模型,基于 webgl 实现。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-32-58.png" +width="704" +height="468" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 039 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/Tue, 11 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/<h1 id="机器文摘-第-039-期">机器文摘 第 039 期</h1> +<h2 id="长文">长文</h2> +<ul> +<li> +<p><a class="link" href="https://www.cs.columbia.edu/~hgs/etc/writing-bugs.html" target="_blank" rel="noopener" +>关于写作的通用问题</a>,“元技能”一般指比普通技能更高阶的技能,我理解为可产生技能的技能,此类技能并不会随着外部环境的高速发展而被淘汰。比如写作就算是一种元技能,当不知道该训练和提升什么技能的时候,将时间花在“元技能”的提升上准没有错。这篇文章主要讲解英文写作的常见问题,但是有些我觉得对于中文也适用。比如文章开头提到的两个基本原则:“在写之前就弄清楚自己想表达什么”、“即便是你已经写完了一整篇,如果没能表达你的意思那也是废纸”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-13-52-23.png" +width="294" +height="171" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="412px" +></p> +</li> +<li> +<p><a class="link" href="https://jmmv.dev/2023/06/fast-machines-slow-machines.html" target="_blank" rel="noopener" +>新电脑快还是老电脑快?</a>,上周有博主在twitter发布了一个视频吐槽了一个我也困惑很久的事情。作者展示了他在一台古董电脑上运行Windows NT 3.5 的情况,视频中的电脑基本可以做到秒开程序,然后又展示了一台配备了Windows 11的Surface平板电脑,操作起来界面响应有明显延迟。后者cpu频率为前者的4倍,内存容量为前者的6倍。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-13-55-53.png" +width="507" +height="228" +loading="lazy" +class="gallery-image" +data-flex-grow="222" +data-flex-basis="533px" +></p> +</li> +</ul> +<p>现在的硬件性能动辄就比之前的老硬件几十甚至上百倍的提升,但是我们的交互体验呢?能够秒开的程序甚至还不如二十年前的老爷机。 +后来这事儿在twitter引发了一些争议,有人认为现在的软件确实吃掉了硬件提升的性能,对体验来说提升不足。也有人说现在的体验与以往不可同日而语,这样的对比不公平也没有意义。</p> +<p>博主不得不专门写了一篇文章来回应,详细记录了作者认为更加合理的对比过程。</p> +<p>我个人认为首要原因就是随着硬件性能的提升,软件开发者的精力已经逐渐从性能向开发效率倾斜了。由于现在硬件成本确实低廉,软件迭代周期变得越来越短,软件开发者也越来越没有动力做出极致挖掘硬件性能的软件。</p> +<p>不信你看,现在越来越多的应用程序不再使用原生开发,而是采用了可以“跨平台”的web技术。</p> +<p>这样使得软件界面的响应直接下降了一个数量级。(我在使用vscode的时候甚至还会遇到打字卡顿慢慢弹出字符的情况。)</p> +<p>另外,复杂的设计模式和软件架构,也吃掉了不少硬件性能,因为每增加一层抽象,都会消耗资源,而现在各种复杂的架构就是拼命地增加抽象层。</p> +<p>希望以后市场能够鼓励开发者多做挖掘硬件性能的事情吧。</p> +<ul> +<li><a class="link" href="https://faultlore.com/blah/text-hates-you/" target="_blank" rel="noopener" +>文字渲染比你想象的要复杂</a>,这篇文章的作者曾负责火狐浏览器的文字渲染引擎,他写这篇文字的目的是科普一下关于文字渲染的一些基本技术和困难。在阅读之前,我也简单的以为,文字渲染就是把对应的字符字形从字体库中取出来然后绘制到相应的位置即可,但实际情况确实比这要复杂得多。比如,文中提到的关于“连字符”的处理、“抗锯齿”、“书写方向”等问题,每一个都是开发者的头发杀手。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-12-47.png" +width="574" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/rrweb-io/rrweb" target="_blank" rel="noopener" +>rrweb</a>,可在网页上记录用户行为并导出视频文件。可用于:排查用户错误、保险业务签署、内部风控、用户交互分析等。rrweb采用虚拟化转换DOM、记录变更和操作过程,并通过链表回放数据。存储最小化、回放可快进且跳过无效行为。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-13-31.png" +width="529" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="139" +data-flex-basis="335px" +></li> +<li><a class="link" href="https://github.com/zhaoyun0071/DragGAN-Windows-GUI" target="_blank" rel="noopener" +>DragGAN-Windows-GUI</a>,DragGAN(上周介绍过的开源模型,可以针对图片进行交互式拖动修改)的懒人包,解压直接用,内置17个模型。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-13-53.png" +width="690" +height="421" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="393px" +></li> +<li><a class="link" href="https://neal.fun/deep-sea/" target="_blank" rel="noopener" +>deep-sea</a>,这个网页可以让你查看海洋各个深度都是有哪些生物,果然是越往下越看不清,所以大家就随便长长了,不讲究好看不好看了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-14-11.png" +width="690" +height="501" +loading="lazy" +class="gallery-image" +data-flex-grow="137" +data-flex-basis="330px" +></li> +<li><a class="link" href="http://elementsofprogramming.com/" target="_blank" rel="noopener" +>电子书《Elements of Programming》</a>,这本老书在出版十年后推出了免费pdf版。中文译作《编程原本》,旨在介绍通用的程序设计原理和技巧,重点关注程序设计的基本元素和抽象概念。这本书的核心思想是将程序设计看作是一种构建和操作抽象概念的过程。它强调程序设计应该建立在数学原理和精确性基础上,通过抽象和泛化来创建可重用、可扩展和可维护的软件。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-14-52.png" +width="377" +height="542" +loading="lazy" +class="gallery-image" +data-flex-grow="69" +data-flex-basis="166px" +></li> +<li><a class="link" href="https://github.com/loft-sh/devpod" target="_blank" rel="noopener" +>devpod</a>,Github 的 Codespaces 和微软的 VSCode DevContainers 给开发者提供了即开即用的云端开发环境。现在,他们的开源平替来了,devpod 是一个开源的开发环境容器,可以方便地在任意客户端(Mac、Win、Linux)或云端主机创建体验一致的开发环境,并且可以与VSCode和Jetbrains等IDE直接集成。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-15-25.png" +width="690" +height="266" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="622px" +></li> +<li><a class="link" href="https://uploads-ssl.webflow.com/5ac6b7f2924c656f2b13a88c/6435aabdc0a041194b243eef_Current%20Best%20Practices%20for%20Training%20LLMs%20from%20Scratch%20-%20Final.pdf" target="_blank" rel="noopener" +>从零开始训练大语言模型的最佳实践</a>,训练大语言模型的技术白皮书,从基本概念和技术讲起,教你训练大语言模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-15-45.png" +width="656" +height="849" +loading="lazy" +class="gallery-image" +data-flex-grow="77" +data-flex-basis="185px" +></li> +<li><a class="link" href="https://github.com/yardenshafir/WinDbg_Scripts/blob/master/windbg_the_fun_way.pdf" target="_blank" rel="noopener" +>windbg</a>,一本电子书,讲了很多 windbg 调试器的高级用法,市面上很少见。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-16-44.png" +width="620" +height="319" +loading="lazy" +class="gallery-image" +data-flex-grow="194" +data-flex-basis="466px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 040 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/Tue, 11 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/<h1 id="机器文摘-第-040-期">机器文摘 第 040 期</h1> +<h2 id="长文">长文</h2> +<h3 id="前端代码检查插件eslint和美化插件prettier的冲突">前端代码检查插件<code>ESLint</code>和美化插件<code>Prettier</code>的冲突</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-02-40.png" +width="1900" +height="1008" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +> +在使用VSCode等现代化编辑器进行前端开发的时候,很多工程样板都默认开启了代码检查和自动格式化的功能,其中以 ESLint 插件和 Prettier 插件为主。</p> +<p>之前有一阵子我总是困惑这两个插件的区别,甚至如果配置不好的话,还会有冲突。</p> +<p>比如 Prettier 插件会在你保存源码的时候按照既定规则进行“美化”代码,如去除行尾分号、增加表达式中的空格等等。此时如果ESLint插件的规则配置不同的话,编辑器就会报错并提示要进行“修复”,然而就在你“修复”之后,刚<code>Ctrl+S</code>保存之后,又傻眼了,因为 Prettier 又对代码进行了“美化”。</p> +<p>我周末特意花时间研究了一下,梳理了一下这两个插件的关系以及他们的分工。</p> +<p>首先,他们的职责定位不同:ESLint 用于检查代码编写是否符合某种预定义的规范,可以进行十分详尽的配置和多项检查,比如定义的变量如果未使用可以作为一种警告或者错误,其职责定位以检查为主。而 Prettier 的职责侧重于格式化(美化)代码,对于编写代码的样式如 tab 缩进量、行尾要不要分号、字符串用单引号还是双引号等可以进行统一格式化,一般用于在代码保存的时候进行快速统一样式。</p> +<p>所以两者可以配合使用,但开头提到的规则冲突需要注意。</p> +<p>我个人的习惯是,将两个插件的配置文件里的配置项进行匹配(规则调整为一致),因为我在美化时关注的项并不太多,所以编写这两个配置文件不算费劲。</p> +<p>而网上有人提出了更好的办法,即通过扩展插件的方式,使得 ESLint 自动获取 Prettier 的规则,以自动统一两者的行为。</p> +<p><a class="link" href="https://rileycai.com/%e4%b8%8d%e4%bb%a5%e8%a7%84%e7%9f%a9%ef%bc%8c%e4%b8%8d%e8%83%bd%e6%88%90%e6%96%b9%e5%9c%86-%e5%bd%bb%e5%ba%95%e6%90%9e%e6%87%82-eslint-%e5%92%8c-prettier/" target="_blank" rel="noopener" +>关于 ESLint 和 Prettier 的具体分析文章和操作建议可以看这一篇文章:</a></p> +<h3 id="说一说我现在的知识管理工具和流程">说一说我现在的知识管理工具和流程</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-03-27.png" +width="302" +height="517" +loading="lazy" +class="gallery-image" +data-flex-grow="58" +data-flex-basis="140px" +> +Hacknews 上有网友说<a class="link" href="https://news.ycombinator.com/item?id=36609641" target="_blank" rel="noopener" +>Evernote几乎辞退了它的所有员工</a>,才想起来我已经有好几年没用过 Evernote 了。之前大概有将近十年的时间都在使用Evernote(但都是免费用户)。主要使用场景是记录个人的工作日志和借助浏览器插件剪藏一些值得收藏的文章。</p> +<p>后来随着 Evernote 的限制越来越多,体验逐渐下降。我就迁移到了使用纯文本作为知识记录载体的路线上了。</p> +<p>期间使用过 Emacs 的 org 模式,也尝试过 vim 的 wiki 插件,最后选择了现在这个 VSCode + GitHub 的方案,已稳定使用了两年时间。</p> +<p>具体流程如下: +1、使用 VSCode + <a class="link" href="https://foambubble.github.io/foam/" target="_blank" rel="noopener" +>foam</a> 、<a class="link" href="https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one" target="_blank" rel="noopener" +>MarkdownAllinOne</a> 等插件实现对 Markdown 的高效编辑,可以实时预览排版效果,foam实现了类似 <a class="link" href="https://obsidian.md/" target="_blank" rel="noopener" +>Obsidian</a> 的文章双向链接和知识关系图谱。我主要使用 Markdown 记录日志和编写知识卡片用于存放个人吸收的信息。 +2、所有内容存放在一个 git 仓库中,同步到 GitHub 上的个人私有仓库,这样可以省去对接网盘的麻烦。 +3、对于互联网上阅读到的有用文章,使用浏览器插件 <a class="link" href="https://microsoftedge.microsoft.com/addons/detail/web-clipper/opejamnnohhbjflpbhnmdlknhjkfhfdp" target="_blank" rel="noopener" +>Web Clipper</a>,可以完整的抓取页面内容到指定的后端存储,这个插件我最喜欢的点是它可以将文章抓取到你指定的GitHub仓库,并作为Issue提交。 +4、来不及看的信息就先抓取到 Issue ,然后等有时间进行整理,形成自己的知识卡片后再关闭该 Issue 。</p> +<p>这套工具及流程的优点: +1、完全免费,不产生任何费用,而且体验不亚于收费软件。 +2、自由度高,存储后端可以自己随意选择,如果嫌 GitHub 麻烦的话,可以自己用网盘同步文件夹。 +3、纯文本载体,这个算是优点吧,格式开放,不会存在别的编辑器打不开的情况。 +4、数据私有,数据随时都在本地(云端的仅作为备份和同步中转),不用担心 SaaS 供应商跑路(你看现在的Evernote)。</p> +<p>欢迎大家讨论。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/TransparentLC/WechatMomentScreenshot" target="_blank" rel="noopener" +>朋友圈截图生成工具</a>,可以帮你生成逼真的朋友圈截图,可定制头像、评论、点赞个数等细节。收藏<a class="link" href="https://akarin.dev/WechatMomentScreenshot/" target="_blank" rel="noopener" +>这个地址</a>,以后再也不怕被群里晒孩子的家长或者搞活动的商家逼着发朋友圈集赞了。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-04-12.png" +width="690" +height="1227" +loading="lazy" +class="gallery-image" +data-flex-grow="56" +data-flex-basis="134px" +></li> +<li><a class="link" href="https://86box.net/" target="_blank" rel="noopener" +>86box</a>,老式 x86 架构计算机模拟器,与 Virtualbox 等虚拟化技术不同的是,86box采用纯软件模拟的方式,实现了经典老式 cpu (如 AMD Am486DX4)的各种技术细节,甚至是当时的硬件缺陷(有些老游戏的 hack 需要这些缺陷)。可以完美复现一台上世纪 90 年代的经典 DOS PC ,用来复古怀旧游戏是再合适不过了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-04-26.png" +width="553" +height="371" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="357px" +></li> +<li><a class="link" href="https://github.com/ztxz16/fastllm" target="_blank" rel="noopener" +>fastllm</a>,fastllm是纯c++实现,无第三方依赖的高性能大模型推理库(待测试验证)。据宣称:6~7B级模型在安卓端上也可以流畅运行,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llmam, moss基座,手机端流畅运行。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-17.png" +width="875" +height="356" +loading="lazy" +class="gallery-image" +data-flex-grow="245" +data-flex-basis="589px" +></li> +<li><a class="link" href="https://photoai.com" target="_blank" rel="noopener" +>PhotoAI</a>,作者说,他为这个网站大概写了14000行PHP代码,样式全写在了<code>&lt;style&gt;</code>标签里,JS全写在<code>&lt;script&gt;</code>标签里,除了<code>jQuery</code>没用任何框架,就连布局也是使用<code>float:left</code>这种老式的浮动实现。然而这个网站确能给他带来每月差不多 <em>6万刀</em> 的收入。这是不是在吹牛。这个网站的业务是:使用AI生成完全没有任何版权问题的各种人像照片。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-41.png" +width="690" +height="617" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="268px" +></li> +<li><a class="link" href="https://makepad.nl/makepad/examples/ironfish/src/index.html" target="_blank" rel="noopener" +>Ironfish synth</a>,用rust写的在线合成器,虽然感觉像个 Demo 但完成度很高,音源部分具有两个振荡器(可选正弦波、方波、锯齿波等)和一个噪波通道,滤波器、效果器齐全,另外还有一个可视化音序器。可基于键盘直接演奏。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-59.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 038 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/Tue, 27 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/<h1 id="机器文摘-第-038-期">机器文摘 第 038 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://www.polygon.com/23690187/discord-ai-chatbot-clyde-grandma-exploit-chatgpt" target="_blank" rel="noopener" +>ChatGPT的“奶奶漏洞”</a>,奶奶漏洞来源自一个用户说他已经过世的奶奶是凝固汽油弹工厂的工程师,用户让 ChatGPT 用他奶奶说睡前故事的形式,详细介绍了凝固汽油弹的制作方法。以此来绕过 ChatGPT 的安全审查,结果当然是,他得逞了。后来还有网友做了试验,以同样的方式可以套取 Windows 各个版本的序列号。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-53-23.png" +width="720" +height="489" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></li> +<li>国外也有“垃圾佬”,这篇<a class="link" href="https://l4rz.net/running-nvidia-sxm-gpus-in-consumer-pcs/" target="_blank" rel="noopener" +>《怎样低成本搭建深度学习电脑》</a>的文章,介绍了作者怎样通过在二手网站上“捡垃圾”搭建出了性能良好且便宜的GPU工作站。 值得一提的是,作者购买的主要渠道竟然来自国内的著名二手物品交易平台,某鱼。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-54-05.png" +width="690" +height="459" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li> +<p>回顾这些年软件研发的历程,凡是能够做成的软件,无一例外都是抓住了真正存在的需求。这样的需求未必很宏大或者华丽,但一定不是想象种的伪需求。仔细分析之后就会发现,在一个软件产品的生命周期里,开发者所面临的真正(或者说正确的)需求很少,因为找到它们十分不易,它们周边布满了被人们主观意识强加上的伪需求。<a class="link" href="https://cerebralab.com/Imaginary_Problems_Are_the_Root_of_Bad_Software" target="_blank" rel="noopener" +>《伪需求是糟糕软件的根源》</a>,文章探讨了软件开发中存在的一个问题,即虚构的问题(我将之译为:伪需求)如何导致糟糕的软件结果。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-56-35.png" +width="353" +height="179" +loading="lazy" +class="gallery-image" +data-flex-grow="197" +data-flex-basis="473px" +></p> +</li> +<li> +<p>有没有考虑过一个问题,即:为什么随着科技的发展和生产力的提升,人们不是越来越清闲,反而越来越劳累了?这里有篇文章探讨了一些深层次的原因,<a class="link" href="https://theanarchistlibrary.org/library/david-graeber-bullshit-jobs" target="_blank" rel="noopener" +>《狗屁工作》</a>,此文写于 2013 年,作者是 David Graeber (一名人类学教授)。文章讨论了现代社会中存在的一种现象,即许多人在工作中感到他们所从事的工作毫无意义,没有真正的价值和目的。这些工作被称为&quot;狗屁工作&quot;,作者试图探究狗屁工作的存在原因和对个体和社会的影响。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-56-57.png" +width="602" +height="854" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="169px" +></p> +</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/laishulu/Sarasa-Term-SC-Nerd" target="_blank" rel="noopener" +>Sarasa Term SC Nerd</a>,写中文Markdown文件的时候,最怕遇到表格,因为编辑器按照一个中文字符的宽度等于两个英文字符的宽度进行计算,而很多字体在设计时未考虑严格按照这种2:1的宽度比例设计字形,导致在Markdown在编辑状态时的表格分割线错位,看起来十分头疼。经过多方对比,我终于找到了让自己满意的等宽字体,支持中英文字符2:1宽度比例,中文为黑体,英文字符也特别适合写代码。此外还整合了Nerd fonts,支持在终端显示各种漂亮图标。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-58-24.png" +width="690" +height="187" +loading="lazy" +class="gallery-image" +data-flex-grow="368" +data-flex-basis="885px" +></li> +<li><a class="link" href="https://reviewgpt.net" target="_blank" rel="noopener" +>ReviewGPT</a> 写作文、写报告、写邮件,生活中充满了各种写作任务。ReviewGPT 基于 gpt 模型,可为你的文章进行打分、评价,提出修改意见,甚至还可以扮演莎士比亚、金庸等知名作家,帮助你重新撰写,快速提升文章质量。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-58-38.png" +width="690" +height="394" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="420px" +></li> +<li><a class="link" href="https://github.com/binpash/try" target="_blank" rel="noopener" +>try</a>,刚发布的一个命令行工具,目标是允许你执行命令的时候先检查其执行的后果,然后再决定是否让命令真正生效。真正起到了安全保护的效果。官方介绍这个命令是基于 Linux 的命名空间(通过 unshare )和 overlayfs 联合文件系统等技术实现。并特别提醒并非基于沙盒,所以还是谨慎执行危险操作吧。比如<code>try rm rf /*</code>。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-59-26.png" +width="831" +height="467" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="427px" +></li> +<li><a class="link" href="https://github.com/XingangPan/DragGAN" target="_blank" rel="noopener" +>DragGAN</a>, 通过拖动就可以完全操纵图像的 AI 模型,现已开放源码! DragGAN 是由谷歌、麻省理工学院和马克斯普朗克研究所创建的一种新的人工智能模型。可以让你轻松通过点击拖动等简单的交互操作就能改变拍摄对象的姿势、形状和表情。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-16-00-25.png" +width="598" +height="399" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></li> +<li><a class="link" href="https://flameshot.org/" target="_blank" rel="noopener" +>flameshot</a>,一个超强的免费截图软件,可以像任何一个截图工具一样截图,最重要的是还有一些附加功能,按一下数字图标,就可以在屏幕上按数字顺序自动生成步骤图示,非常适合生成操作步骤说明。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-16-01-00.png" +width="580" +height="374" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="372px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 037 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/Tue, 20 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/<h1 id="机器文摘-第-037-期">机器文摘 第 037 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://snap-research.github.io/SnapFusion/" target="_blank" rel="noopener" +>SnapFusion</a> 文本到图像的扩散模型可以从自然语言描述中创建令人惊叹的图像。然而,这些模型很大,需要高端 GPU 在服务端运行模型。SnapFusion提出了一种通用方法,可以在移动设备上运行的文本到图像扩散模型,且出图时间不到2秒。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-55-06.png" +width="609" +height="899" +loading="lazy" +class="gallery-image" +data-flex-grow="67" +data-flex-basis="162px" +></li> +<li><a class="link" href="https://framer.com/ai" target="_blank" rel="noopener" +>Framer</a> 发布了 AI 工具,直接根据文字需求生成页面,我试了一下,对于个人博客、产品介绍页面等静态展示类型的页面,生成的效果还是十分理想的,而且同步提供桌面端和移动端页面。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-55-33.png" +width="599" +height="710" +loading="lazy" +class="gallery-image" +data-flex-grow="84" +data-flex-basis="202px" +></li> +<li><a class="link" href="https://notes.dt.in.th/HDRQRCode" target="_blank" rel="noopener" +>比<code>#ffffff</code>还“白”的“超级白”</a>,这里有网友介绍了一个方法,可以显示更高对比度的二维码(以方便用户扫描识别),据说白的程度超出了sRGB颜色范围,前提是你的显示设备支持HDR。作者的思路是用一段HDR视频在网页中伪装成显示二维码的图片。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-56-11.png" +width="690" +height="305" +loading="lazy" +class="gallery-image" +data-flex-grow="226" +data-flex-basis="542px" +></li> +<li><a class="link" href="https://rwmj.wordpress.com/2023/06/14/i-booted-linux-292612-times/" target="_blank" rel="noopener" +>我在21小时内重启系统29万次</a>,Linux 6.4内核有一个bug可能导致启动时挂起,但概率很低。为了复现bug,Richard WM Jones重启了29万次电脑,最终找到了问题。这让我想起了之前修改不容易复现Bug的艰辛。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-56-28.png" +width="690" +height="735" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="225px" +></li> +<li>我发现一个用chatGPT翻译整段文字的小技巧,那就是在他翻译完成之后,再将这段话发给他,让他根据通顺程度和合理性进行二次润色,出来的结果就好很多了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-58-53.png" +width="717" +height="648" +loading="lazy" +class="gallery-image" +data-flex-grow="110" +data-flex-basis="265px" +></li> +<li>Python写代码很爽,但是想打包发布成果的时候就稍微麻烦一些了,毕竟一大堆环境依赖和包依赖。我之前一直用的是PyInstaller作为打包工具,但是现在我又发现了这个<a class="link" href="https://github.com/Nuitka/Nuitka" target="_blank" rel="noopener" +>Nuitka</a>。它的打包原理是:直接把 Python 代码转成 C 代码再编译,这样打包出来的成果占用小、执行效率也高,尤其适合PyQt编写的桌面程序。另外,著名的 Blender 就是用 Nuitka 编译的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-59-12.png" +width="428" +height="272" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="377px" +></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li><a class="link" href="https://www.raptitude.com/2022/01/everything-must-be-paid-for-twice/" target="_blank" rel="noopener" +>你买的每样东西都需要支付两次成本</a>,这篇在Hacker News上的文章引起我的强烈共鸣。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-59-33.png" +width="600" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></li> +</ul> +<p>它提出了一个有趣的观点,我以前从未意识到:</p> +<p>每样东西都需要支付两次成本。</p> +<p>通常,我们只关注第一次支付的成本,也就是购买时花的钱,比如买一台相机、一架钢琴或一本小说。</p> +<p>然而,作者指出,如果你不支付第二次的成本,你之前花的钱就等于打水漂了。</p> +<p>第二次成本指的是,你需要花时间和精力去充分使用你所购买的物品。</p> +<p>比如认真阅读一本书,练习钢琴以提高演奏水平等等。</p> +<p>然而,我们常常只停留在第一次购买时的满足感上,然后追求下一个。</p> +<p>随着时间的推移,大量未支付第二次成本的物品使我们积累了一种无形的债务。</p> +<p>为此经常感到挫败。</p> +<p>这种挫败感促使我们寻求那些能够刺激我们的短期享受,比如玩手机、享用美食。</p> +<p>进一步导致没有时间支付第二次成本。</p> +<p>那么,有什么办法可以改变这种情况吗?</p> +<p>作者说,唯一的解决办法就是控制购买欲望,强迫自己安排时间来履行第二次支付的责任。</p> +<p>尽管这听起来可能有些不舒服,但如果我们能克服这种不舒服的临界点,例如学会一首乐曲,耐心读完一本书,我们将会获得意想不到的奖励时刻。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.ratatype.com" target="_blank" rel="noopener" +>ratatype</a>,在线键盘盲打指法练习,有完整的练习教程,从初级到高级都有。有点儿像Dos时代的著名打字练习软件TT,不过是网页版的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-11.png" +width="690" +height="360" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +<li><a class="link" href="https://play0ad.com/download" target="_blank" rel="noopener" +>0A.D.</a>,帝国时代是个经典游戏,这里有个开源版,名字叫做0AD,由Wildfire Games开发,虽然是免费开源的游戏,但是效果和可玩性都非常高,适合在周末的午后来一把怀旧局。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-26.png" +width="690" +height="405" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="408px" +></li> +<li><a class="link" href="https://landing.love" target="_blank" rel="noopener" +>landing.love</a>,一个专门收集各种网页动画效果的网站,目前已收录超过400个具有新颖创意动效的网站,并配有截图和录屏视频。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-47.png" +width="590" +height="486" +loading="lazy" +class="gallery-image" +data-flex-grow="121" +data-flex-basis="291px" +></li> +<li><a class="link" href="https://github.com/princeton-vl/infinigen" target="_blank" rel="noopener" +>infinigen</a>,一款面向计算机视觉研究的3D场景自动生成器,提供多样且高质量的3D训练数据。基于Blender,免费且开源。可以通过重写随机化的默认参数来完全控制资产生成。提供了对自然界中多种对象和场景的生成器,包括植物、动物、地形以及火、云、雨、雪等自然现象。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-01-41.png" +width="951" +height="522" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +></li> +<li><a class="link" href="https://yjdoc2.github.io/8086-emulator-web/compile" target="_blank" rel="noopener" +>8086-emulator-web</a> ,用js编写的的8086 cpu模拟器,支持汇编语言在线编写、编译和调试运行,是一个学习汇编语言和理解计算机原理的好工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-01-04.png" +width="690" +height="320" +loading="lazy" +class="gallery-image" +data-flex-grow="215" +data-flex-basis="517px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 036 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/Wed, 14 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/<h1 id="机器文摘-第-036-期">机器文摘 第 036 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4911535232057363" target="_blank" rel="noopener" +>软驱阵列演奏音乐</a>,国外大神用512个软驱、16个硬盘、4个扫描仪,组装成阵列,通过编程的方式控制电机震动发出声音,组成各声部。这么多软驱,让我想到了退休老干部合唱团。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-49-03.png" +width="1555" +height="926" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="403px" +></li> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4564677670141974" target="_blank" rel="noopener" +>大脑能像身体那样锻炼吗?</a>,如何训练大脑?提高记忆力、注意力和智力!这个视频进行了讲解,总之就是,用进废退,改变日常默认行动,让大脑动起来。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-49-59.png" +width="743" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="396px" +></li> +<li><a class="link" href="https://gaultier.github.io/blog/x11_x64.html" target="_blank" rel="noopener" +>用纯汇编写一个GUI</a>,跟随这篇教学文章,通过编写图形界面的方式来学习汇编语言吧。顺便,作者想挑战一下,最小的GUI程序其可执行二进制文件能有多小。(现在的可执行文件动不动就好几十上百MB)​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-50-39.png" +width="1046" +height="463" +loading="lazy" +class="gallery-image" +data-flex-grow="225" +data-flex-basis="542px" +></li> +<li><a class="link" href="https://blog.betacat.io/post/2023/06/summarize-hacker-news-by-chatgpt" target="_blank" rel="noopener" +>让 ChatGPT 帮我们总结 Hacker News</a>,让AI每天帮我总结新闻摘要,这个想法我已经考虑很久了,现在已经有人做了实现。这篇文章介绍了一个开源静态网站的实现,它利用 ChatGPT 的总结能力,直接将每条Hackernews的新闻用一两句话总结出来,然后发布到GithubPages 可以节约我们每天看新闻的时间。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-51-29.png" +width="891" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="215" +data-flex-basis="517px" +></li> +<li><a class="link" href="https://www.web3brand.io/p/maximize-unregretted-user-time" target="_blank" rel="noopener" +>马斯克专访:推特的混乱过去了,现在的目标是最大化用户无悔时间!</a>,我不喜欢看八卦,但是科技的除外。马斯克收购 Twitter 几个月过去了,大家还在等着看笑话,但是为什么没等到,以及开掉一半人之后效率却提升那么多? +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-52-02.png" +width="680" +height="417" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="391px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/AI4Finance-Foundation/FinGPT" target="_blank" rel="noopener" +>FinGPT</a>,一个面向金融领域的开源语言模型,采用以数据为中心的方法,为研究人员和实践者提供易于使用的资源,致力于做金融领域的chatGPT。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-52-48.png" +width="822" +height="462" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="427px" +></li> +<li><a class="link" href="https://github.com/facebookresearch/audiocraft" target="_blank" rel="noopener" +>Audiocraft</a>,facebook发布的一个PyTorch库,用于音频生成的深度学习研究。目前,它提供了用于从文本生成音乐的MusicGen代码和模型。模型使用2万小时正版授权音乐训练。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-53-34.png" +width="816" +height="350" +loading="lazy" +class="gallery-image" +data-flex-grow="233" +data-flex-basis="559px" +></li> +<li><a class="link" href="https://github.com/mljar/mercury" target="_blank" rel="noopener" +>Mercury</a>,在 Jupyter Notebook 中构建 Web 应用程序,允许您在Python笔记本中添加交互式小部件,然后将笔记本发布为带交互界面的Web应用程序。我的感受是,Mercury就是 notebook版的<a class="link" href="https://github.com/gradio-app/gradio" target="_blank" rel="noopener" +>gradio</a> ​​​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-53-58.png" +width="805" +height="421" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></li> +<li><a class="link" href="https://github.com/reactive-python/reactpy" target="_blank" rel="noopener" +>ReactPy</a>,React是最流行的用于构建UI的前端框架,现在所有Python开发人员都可以使用它。比起gradio,这个reactpy的抽象层级更低一些,自由度更高了,我猜测目标用户应该是不喜欢写前端代码但是又希望掌控页面细节的python程序员。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-56-24.png" +width="632" +height="148" +loading="lazy" +class="gallery-image" +data-flex-grow="427" +data-flex-basis="1024px" +></li> +<li><a class="link" href="http://ggml.ai/" target="_blank" rel="noopener" +>GGML</a>,一个用于机器学习的张量库,采用纯C++实现,无其他依赖项。旨在在普通硬件上实现大型模型和高性能。它同时也是 llama.cpp 和 whisper.cpp 的底层库。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-57-18.png" +width="629" +height="327" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="461px" +></li> +<li><a class="link" href="https://github.com/Genymobile/scrcpy" target="_blank" rel="noopener" +>Scrcpy</a>,一个让人相见恨晚的app,可以通过USB或TCP/IP连接镜像Android设备的视频和音频,并允许使用计算机的键盘和鼠标来控制设备。它不需要任何root权限,并且兼容Linux、Windows和macOS操作系统。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-02-19.png" +width="408" +height="589" +loading="lazy" +class="gallery-image" +data-flex-grow="69" +data-flex-basis="166px" +></li> +<li><a class="link" href="https://maketafi.com/ai" target="_blank" rel="noopener" +>Tafi</a>,通过自然语言生成3D模型,质量号称接近AAA级游戏,可以导出创建的角色到Blender、Unreal 或 Unity中。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-02-52.png" +width="1080" +height="608" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/Hufe921/canvas-editor" target="_blank" rel="noopener" +>canvas-editor</a>,一个基于 canvas/svg 实现的富文本编辑器,在市面上,使用 Canvas 实现整个编辑器的开源项目并不常见,大多数情况下仍然使用 DOM 来实现。使用 Canvas 的最显著特点是其出色的性能,但实现起来的成本也更高。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-15-39.png" +width="1200" +height="668" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="431px" +></li> +<li><a class="link" href="https://markmap.js.org%e2%80%8b%e2%80%8b" target="_blank" rel="noopener" +>markmap.js</a>,一个用markdown文本制作思维导图的工具,提供了vscode的插件可直接在编辑器预览。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-16-02.png" +width="611" +height="458" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 035 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/Wed, 07 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/<h1 id="机器文摘-第-035-期">机器文摘 第 035 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://www.reproof.app/blog/notes-apps-help-us-forget" target="_blank" rel="noopener" +>笔记帮我们记住还是忘记?</a>这篇文章讨论了笔记对帮助我们遗忘的作用。作者认为,随着时间的推移,我们无法记住所有的事情,但是只要我们记录了重要的信息,就可以在需要时再次查找,因此笔记实际上帮助我们遗忘。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-09-37.png" +width="1173" +height="488" +loading="lazy" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></li> +<li><a class="link" href="https://research.nvidia.com/labs/dir/neuralangelo/" target="_blank" rel="noopener" +>高保真神经表面重建</a>,Nvidia 新发布的这个 Neuralangelo 有些猛,随便给一个视频就能进行精细3D建模,也许要不多久激光点云技术就要淘汰了。值得关注 ! +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-12-49.png" +width="936" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="483px" +></li> +<li><a class="link" href="https://github.com/Neo-Desktop/WindowsXPKg" target="_blank" rel="noopener" +>Windows XP 激活算法被破解</a>, XPKeygen是一个可以随意生成XP有效安装密钥的程序,当前的电脑可能用不到了。不过可能还有一些老旧的设备,只能通过 Windows XP 来操作,这时候这个东西就派上用场了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-17-33.png" +width="610" +height="285" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="513px" +></li> +<li><a class="link" href="https://www.v2ex.com/t/944717" target="_blank" rel="noopener" +>一个整活儿的开源编辑器</a>,data:text/html;base64,PGh0bWwgY29udGVudGVkaXRhYmxlPmVkaXQgbWU8L2h0bWw+ 把这个代码粘到浏览器地址栏,竟然是个记事本app,如果从IDE拷贝代码过去,竟然还支持代码高亮。。。。加入到收藏夹即可食用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-20-19.png" +width="663" +height="347" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></li> +<li><a class="link" href="https://mymodernmet.com/sea-turtle-birch-aquarium-3d-printed-brace" target="_blank" rel="noopener" +>3D打印拯救海龟</a> ,2017年,伯奇水族馆与加州大学圣地亚哥分校图书馆的数字媒体实验室合作。他们一起创造了一种首创的3D打印支架,以固定她的外壳上的缝隙。现在,六年后,这种生物及其照顾者继续从这项发明中获益。这只海龟最近接受了年度检查,健康状况良好。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-21-40.png" +width="613" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></li> +<li><a class="link" href="https://kuenzi.dev/toothbrush/" target="_blank" rel="noopener" +>破解“智能”牙刷</a> 国外一个博主记录了他破解自己的电动牙刷的过程。由于牙刷的NFC芯片采用的加密方式是密码加密,并且在通讯过程中是用了明文传递,所以他采取了截获通讯信号的方式窃听到了密码,然后就解锁了各种姿势开始为所欲为了。。。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-22-42.png" +width="606" +height="363" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +></li> +<li><a class="link" href="https://bjoernkarmann.dk/project/paragraphica" target="_blank" rel="noopener" +>真·AI相机</a> ,paragraphica 是一个没有镜头但是却有物理实体的“AI相机”,使用位置、时间等参数数据生成特定地点和时刻的prompt,然后由人工智能来生成“照片”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-24-07.png" +width="578" +height="513" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.dora.run/ai" target="_blank" rel="noopener" +>Droa</a>,一个通过自然语言进行网站开发的工具,你只需要提需求,剩下的交给AI。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-26-05.png" +width="821" +height="496" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="397px" +></li> +<li><a class="link" href="https://github.com/SupaGruen/StableDiffusion-CheatSheet" target="_blank" rel="noopener" +>StableDiffusion-CheatSheet</a>,经常用 Stable Diffusion 进行 AI 绘图的,可以看下这个开源速查表。里面拥有超过 700 种经过测试的艺术风格,可快速搜索查找各类艺术家,并支持一键复制 Prompt。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-26-50.png" +width="742" +height="521" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="341px" +></li> +<li><a class="link" href="https://www.math.cmu.edu/~jmackey/151_128/bws_book.pdf" target="_blank" rel="noopener" +>你一直想知道的关于数学的一切</a>,此书是CMU数学科学系的博士生布兰登·W·沙利文撰写的,旨在引导读者进入抽象数学和证明写作的世界,帮助培养读者的数学思维和表达能力。主题涵盖集合、逻辑、归纳法、关系、函数、基数和组合数学等基础和工具。暂未有中文翻译。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-27-26.png" +width="724" +height="579" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="300px" +></li> +<li><a class="link" href="https://github.com/eastlakeside/interpy-zh" target="_blank" rel="noopener" +>Python进阶</a>,是《Intermediate Python》的中文译本。2021最新目录版,实时更新托管在<a class="link" href="https://py.eastlakeside.cn" target="_blank" rel="noopener" +>GithubPages</a>。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-28-23.png" +width="1037" +height="350" +loading="lazy" +class="gallery-image" +data-flex-grow="296" +data-flex-basis="711px" +></li> +<li><a class="link" href="https://csspro.com/" target="_blank" rel="noopener" +>CSSPro</a>,一个所见即所得的在线CSS可视化开发工具,直接在页面运行,那里修改点哪里。效果真的很惊艳。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-29-07.png" +width="921" +height="537" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></li> +<li><a class="link" href="https://github.com/makeplane/plane" target="_blank" rel="noopener" +>Plane</a>,开源版 JIRA !不少软件开发者都使用JIRA进行缺陷管理,JIRA确实很强大,也很好用。现在,开源版的来了,据说完全可以作为JIRA的平替。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-30-19.png" +width="1139" +height="595" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +></li> +<li><a class="link" href="https://openmlsys.github.io/index.html" target="_blank" rel="noopener" +>机器学习系统:设计和实现</a>,一本关于机器学习的电子书,本书希望做成世界上第一本全面讲述机器学习系统知识的开源书籍。可以看作一门衔接机器学习和计算机系统的课程 ​​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-31-04.png" +width="234" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="60" +data-flex-basis="144px" +></li> +<li><a class="link" href="https://callannie.ai/" target="_blank" rel="noopener" +>Callanie</a>,练习英语口语的AI对话机器人,支持国内手机号注册,免费且流畅。后端基于大语言模型,可以陪你聊各种话题。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-31-49.png" +width="303" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="53" +data-flex-basis="127px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 034 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/Wed, 31 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/<h1 id="机器文摘-第-034-期">机器文摘 第 034 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://samwho.dev/memory-allocation/" target="_blank" rel="noopener" +>图解内存分配</a>,文章展示了 C/C++ 编程中的内存分配过程,包括静态和动态内存分配技术、它们的优势,以及有效的内存管理所需考虑的事项。以图解的形式展示了内存分配过程,希望读者可以通过本文更好地理解内存分配相关的概念,并在实际编程中对内存进行更加高效的管理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-49-39.png" +width="759" +height="298" +loading="lazy" +class="gallery-image" +data-flex-grow="254" +data-flex-basis="611px" +></li> +<li><a class="link" href="https://blog.koehntopp.info/2023/05/17/50-years-in-filesystems-towards-2004-lfs.html" target="_blank" rel="noopener" +>文件系统五十年</a>,这是一个系列文章,详细记录了计算机文件系统的发展历程。也许我们身在其中无法感受到它的进步,但是回顾历史我们会发现,即便是我们不容易注意到的部分,也在不停地发展和优化。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-50-33.png" +width="672" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></li> +<li><a class="link" href="https://xorvoid.com/sectorc.html" target="_blank" rel="noopener" +>只有512字节的C编译器</a>,这篇文章介绍了一个怎样实现最小编译器的思路,SectorC (github) 是一个用 x86-16 汇编编写的 C 编译器,适合 x512 机器的 86 字节引导扇区。它支持 C 的子集,足够大,可以编写真实有趣的程序。它很可能是有史以来最小的C编译器。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-51-20.png" +width="764" +height="366" +loading="lazy" +class="gallery-image" +data-flex-grow="208" +data-flex-basis="500px" +></li> +<li><a class="link" href="https://www.amygoodchild.com/blog/computer-art-50s-and-60s" target="_blank" rel="noopener" +>上世纪50~60年代的计算机艺术</a>,数字艺术的发展简史。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-51-53.png" +width="781" +height="494" +loading="lazy" +class="gallery-image" +data-flex-grow="158" +data-flex-basis="379px" +></li> +<li><a class="link" href="" >win10的隐藏功能</a>,原来win10还有这个功能。按Ctrl + Alt + Del 后,按住Ctrl不松,再点击右下角的电源符号,就会进入紧急重启(Emergency Restart)界面。应该是一种强制重启。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-52-04.png" +width="690" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/SevaSk/ecoute" target="_blank" rel="noopener" +>Ecoute</a>,可用于远程面试作弊的工具?Ecoute 是一种实时转录工具,可在文本框中为用户的麦克风输入(您)和用户的扬声器输出(扬声器)提供实时翻译。它还使用 OpenAI 的 GPT-3.5 生成建议答复内容,供用户“参考”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-52-39.png" +width="820" +height="386" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="509px" +></li> +<li><a class="link" href="https://app.rask.ai/" target="_blank" rel="noopener" +>rask.ai</a>,自动将视频转成“译制片”,在对内容进行翻译的同时,会尽量保持之前的音色和语调,端到端给你的视频完成多语配音,后续还会推出唇形同步合成。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-53-28.png" +width="1171" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="181" +data-flex-basis="436px" +></li> +<li><a class="link" href="https://chrome.google.com/webstore/detail/tango-how-to-guides-and-s/lggdbpblkekjjbobadliahffoaobaknh" target="_blank" rel="noopener" +>Tango</a>,一个Chrome浏览器插件,能帮你生成一个网站的操作指南。它会自动记录所有的操作流程,并做相应的截图和注解文档。你只需要点一遍就行了。目前还只能生成英文版的,不过自己翻译也不麻烦。可以节省不少时间。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-53-58.png" +width="632" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="388px" +></li> +<li><a class="link" href="https://praeclarum.org/2023/05/19/webgpu-torch.html" target="_blank" rel="noopener" +>WebGPU-torch</a>,PyTroch的webgpu实现。我测试了一下,我的浏览器目前还不支持。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-54-28.png" +width="1384" +height="796" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></li> +<li><a class="link" href="http://ogden.basic-english.org/" target="_blank" rel="noopener" +>basic-english</a>,“基础英语”的概念是:25,000个单词的牛津袖珍英语词典去掉冗余,并消除组合单词,90%的概念可以用850个单词来实现。使用这些基础英语可以简化日常工作和交流。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-55-26.png" +width="778" +height="516" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +<li><a class="link" href="https://github.com/raunofreiberg/interfaces" target="_blank" rel="noopener" +>Web界面准则</a>,讲解如何提升网页界面的交互性、排版、动画、辅助功能、优化和设计。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-56-18.png" +width="834" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="429px" +></li> +<li><a class="link" href="https://github.com/excalidraw/excalidraw" target="_blank" rel="noopener" +>excalidraw</a>,开源虚拟手绘风格白板程序,支持端到端加密在线协作。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-56-43.png" +width="759" +height="504" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +</ul> +<h2 id="沉思录">沉思录</h2> +<ul> +<li>一切商业的本质都是:收购一些东西(包括原材料、人力服务),经过加工(加工过程产生价值)后变成产品或服务出售。这里的原材料可以是实体物品也可以是信息。所以关键动作就是:收、加工、出售,从重要性上来说,出售大于加工大于收。所以如果要策划自己的产品,解决和分析问题的优先级也应如此,我之前想的正好一反;</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 033 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/Wed, 24 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/<h1 id="机器文摘-第-033-期">机器文摘 第 033 期</h1> +<h2 id="研究">研究</h2> +<h3 id="全键盘信息终端">全键盘信息终端</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-22-11.png" +width="1335" +height="637" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +> +我一直很怀念使用黑莓手机的日子。</p> +<p>物理全键盘的手感比起现在硬邦邦的触摸屏真不知道好到哪里去了。</p> +<p>多少次盯着抽屉里的黑莓尸体,都在想有没有办法再次发挥它的余热。</p> +<p>现在机会来了,有人将树莓派和黑莓手机的全键盘(带触摸板的那一款)结合起来做了一个终端。</p> +<p>取名:<a class="link" href="https://beepberry.sqfmi.com/" target="_blank" rel="noopener" +>Beepberry</a>,具有400*200分辨率的LCD屏幕,和usb type-c接口。</p> +<h3 id="自己动手给树莓派写操作系统">自己动手给树莓派写操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-31-09.png" +width="677" +height="359" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +> +学习操作系统的最佳手段是自己动手写一个。</p> +<p>这类教程很多,一般都是针对x86平台,树莓派的比较少见。</p> +<p><a class="link" href="https://github.com/isometimes/rpi4-osdev" target="_blank" rel="noopener" +>《给树莓派编写“裸机”操作系统》</a>来自github上的一个开源项目。</p> +<p>可以带你从树莓派的硬件层基础上直接构建一个的完整操作系统。</p> +<h3 id="关于-demoscene-制作的一些文章">关于 Demoscene 制作的一些文章</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-40-25.png" +width="471" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +> +Demoscene(也称为Demo Party)是一种计算机艺术形式,旨在展示计算机的音频和图形表现能力。Demoscene通常是由小团队制作的演示性程序,也被称为demo,它集计算机程序、音乐、图形和动画于一身,是八十年代初期在个人计算机上发展起来的一种文化和艺术运动。Demoscene的主要目的是展示计算机和程序的美感,通常使用3D渲染和其他复杂的视觉效果,展示计算机的高级图形和音频处理能力。</p> +<p>我对于如何制作这些炫酷的 demo 一直很感兴趣,但是网上关于这方面的资料非常少,成体系的就更少了。</p> +<p>这里收录了一些比较经典的相关资料:</p> +<ol> +<li> +<p><a class="link" href="https://www.ctrl-alt-test.fr/2023/procedural-3d-mesh-generation-in-a-64kb-intro/" target="_blank" rel="noopener" +>64kb的demos</a>介绍了基于SDF(Signed Distance Field,有符号距离场)生成三维网格的方法,这个方法是大部分demo用于在三维场景中产生三维模型的主要方法。</p> +</li> +<li> +<p><a class="link" href="https://www.flipcode.com/archives/The_Art_of_Demomaking-Issue_01_Prologue.shtml" target="_blank" rel="noopener" +>The_Art_of_Demomaking</a>是一套很系统的教程,讲述Demo的概念、发展历史以及制作过程需要了解的基础知识。</p> +</li> +<li> +<p><a class="link" href="https://www.pbr-book.org/3ed-2018/contents" target="_blank" rel="noopener" +>pbr-book</a>是一本关于基于物理的渲染(Physically Based Rendering,简称PBR)的经典教材。内容包括计算机图形学相关的基础概念、渲染算法、工作流程和高级特性等。</p> +</li> +</ol> +<h3 id="怎样防止针对llm的prompt攻击">怎样防止针对LLM的prompt攻击</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-52-09.png" +width="734" +height="401" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="439px" +> +就像之前流行的sql注入攻击,针对大语言模型的提示语注入攻击现在变得也很常见。</p> +<p>一种比较典型的攻击场景是,通过一段特定的提示语,解锁chatGPT原本被封印的能力。</p> +<p>或者对于接入了其他工具接口的语言模型,通过特定的提示语让其执行危险操作(如:删除所有信息)。</p> +<p>这对于使用者来说可能危害不大,但对于服务的提供者是一个不小的挑战。</p> +<p><a class="link" href="https://simonwillison.net/2023/Apr/25/dual-llm-pattern/" target="_blank" rel="noopener" +>《用于构建可以抵抗即时注入的 AI 助手的双 LLM 模式》</a>提出了一种可能可行的解决方案。</p> +<p>即使用双模型的配置,协同工作,将具有执行危险操作的特权模型放在另一个模型后面,中间使用过滤器进行风险审查,即未被审查的内容永远不会发送到特权模型。</p> +<h2 id="资源">资源:</h2> +<ul> +<li><a class="link" href="https://gamma.app/" target="_blank" rel="noopener" +>gamma</a>,AI帮你做PPT。支持自然语言描述需要生成的内容,自动给出ppt的大纲和每页基本的排版布局; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-10-00-52.png" +width="742" +height="687" +loading="lazy" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="259px" +></li> +<li><a class="link" href="https://www.3blue1brown.com/" target="_blank" rel="noopener" +>3blue1brown</a>,YouTube上最好的数学科普视频,特点是使用动画直观展示计算原理; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-10-01-29.png" +width="953" +height="611" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="374px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 032 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/Tue, 16 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/<h1 id="机器文摘-第-032-期">机器文摘 第 032 期</h1> +<h2 id="长文">长文</h2> +<h3 id="ai歌手的训练与使用">AI歌手的训练与使用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-33-53.png" +width="1011" +height="641" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="378px" +> +最近火了很多AI歌手(即:用AI模型模仿某位歌手的声音),其中b站上AI孙燕姿演唱的《漠河舞厅》、《撒日朗》等歌曲播放已超百万。</p> +<p>为了研究实现原理,我也找到了开源工具体验了一下。</p> +<p>具体步骤主要总结如下:</p> +<ol> +<li>选定某一个歌手,找到具有代表性的几首歌曲,通过<a class="link" href="https://ultimatevocalremover.com/" target="_blank" rel="noopener" +>Ultimate Vocal Remover</a>软件利用AI做人声和伴奏的分离,主要用于获取干净的纯人声用于模型训练。(不得不说现在基于AI模型的人声、伴奏分离做的是真的强,可以做到非常干净的提取,让你感觉像是原始独立的音轨)。</li> +<li>通过安装<a class="link" href="https://github.com/voicepaw/so-vits-svc-fork" target="_blank" rel="noopener" +>so-vits-svc-fork</a>这个一体化开源工具进行模型训练,具体方法见<a class="link" href="https://github.com/voicepaw/so-vits-svc-fork/blob/main/README_zh_CN.md" target="_blank" rel="noopener" +>so-vits-svc-fork的Readme</a>,从数据预处理到最后的模型导出和推理都已经做好了,甚至还提供了图形界面。</li> +<li>继续使用so-vits-svc-fork提供的gui界面进行操作,将模型载入,将预期修改歌曲的原唱人声(提取方式同第1步)传入,运行推理获得定制的人声(注意看文档的各种参数)。</li> +<li>将第3步推理所得干净人声,跟原唱分离的干净背景音乐进行混音合成,即可获得一首新歌曲了。</li> +</ol> +<h3 id="怎样用口袋计算器玩耍">怎样用口袋计算器玩耍</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-49-14.png" +width="716" +height="514" +loading="lazy" +class="gallery-image" +data-flex-grow="139" +data-flex-basis="334px" +> +在移动互联网时代,人打发无聊的方式实在是太多了,视频聊天、阅读各种资讯八卦、观看短视频、手游等等。</p> +<p>功能机的时代,我有印象的打发无聊的事情是手机上的贪食蛇、发短信、wap资讯等等,也算不错了。</p> +<p>如果时间来到上世纪七十年代呢?那个时代的没有随身携带的手机,怎么打发时间?</p> +<p>答案是:如果有一个随身携带的计算器也行,这里有一本书<a class="link" href="https://archive.org/details/htewypc" target="_blank" rel="noopener" +>《How To Entertain With Your Pocket Calculator》</a>,出版于上世纪七十年代。书中花了大量的篇幅介绍了很多种基于数字的游戏,我翻看了一下,我觉得可能得无聊到一定的程度我才能愿意玩书里的游戏。</p> +<h3 id="llm的几篇介绍文章">LLM的几篇介绍文章</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-56-38.png" +width="703" +height="332" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="508px" +> +Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 +与其感叹以chatGPT为代表的大语言模型发展太快,不如静下心来,读一读关于LLM的一些基础知识和使用方法,我找了三篇比较有代表性的放在这里收藏。</p> +<ol> +<li><a class="link" href="https://github.com/RUCAIBox/LLMSurvey/blob/main/assets/LLM_Survey_Chinese_0418.pdf" target="_blank" rel="noopener" +>大语言模型综述</a>,认真地概括并解释了什么是LLM和它的基本原理。</li> +<li><a class="link" href="https://www.bmpi.dev/dev/deep-learning/nlp-language-models/" target="_blank" rel="noopener" +>ChatGPT背后的语言模型简史</a>,从发展历史上捋一捋各种语言模型的辈分。</li> +<li><a class="link" href="https://github.com/datawhalechina/prompt-engineering-for-developers" target="_blank" rel="noopener" +>prompt-engineering-for-developers</a>一个中文版的 Prompt Engineering 教程,翻译自:吴恩达《ChatGPT Prompt Engineering for Developers》课程,主要内容为指导开发者如何构建 Prompt 并基于 OpenAI API 构建新的、基于 LLM 的应用;</li> +<li><a class="link" href="https://github.com/ninehills/ninehills.github.io/issues/92" target="_blank" rel="noopener" +>大语言模型微调技术笔记</a>,记录了基于 LLM 进行微调训练的实战技巧。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://sinerider.com/" target="_blank" rel="noopener" +>sinerider</a>,一个很有创意的数学学习游戏,让你通过数学函数构建图像从而帮助画面中的角色到达目标地点。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-04-41.png" +width="810" +height="708" +loading="lazy" +class="gallery-image" +data-flex-grow="114" +data-flex-basis="274px" +></li> +<li><a class="link" href="https://anvaka.github.io/map-of-github/#0.87/0/16.7" target="_blank" rel="noopener" +>map-of-github</a>,以节点地图的方式展示Github上面超过40万个仓库,通过虚拟大陆的方式展示他们之间的关系。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-07-40.png" +width="1274" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></li> +<li><a class="link" href="https://learngitbranching.js.org/?locale=zh_CN" target="_blank" rel="noopener" +>learngitbranching</a>,以交互式游戏的方式学习git命令。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-11-32.png" +width="569" +height="598" +loading="lazy" +class="gallery-image" +data-flex-grow="95" +data-flex-basis="228px" +></li> +<li><a class="link" href="https://vgamuseum.ru/" target="_blank" rel="noopener" +></a>,在线显卡博物馆,收藏了1982年到2012年之间发布的各款显卡,包括高清图片和规格参数的介绍; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-14-37.png" +width="1364" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="573px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 031 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/Wed, 10 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/<h1 id="机器文摘-第-031-期">机器文摘 第 031 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样驱动上个世纪的网络摄像头">怎样驱动上个世纪的网络摄像头</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-20-31.png" +width="697" +height="407" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +> +国外有个老哥,在帮朋友收拾废品的时候,获得了一个老旧的摄像头。</p> +<p>于是他按耐不住想感受一下,这个来自上个世纪的“古董”,还能打吗?</p> +<p>由于年代比较久远,厂家也不再提供驱动程序的更新。</p> +<p>哥们不得不在虚拟机里全新安装一个windows xp,成功启动摄像头,并获得“清晰图像”。</p> +<p>安装xp时有个插曲:安装界面里的进度条仅用时几十秒就走完了原本几十分钟的倒计时(所以说微软的进度条是如何推断剩余时间的永远是个迷)。</p> +<p>在经过一番体验之后,又跃跃欲试准备自己给它手搓一个在现代操作系统下的驱动程序。</p> +<p>整个过程记录在<a class="link" href="https://blog.benjojo.co.uk/post/quickcam-usb-userspace-driver" target="_blank" rel="noopener" +>《一个1999年的摄像头复活的故事》</a>。</p> +<p>整个故事都充满了一种“我不知道这么做有什么意义,但是我就是可以”的极客风格(也是我收录它的主要原因)。</p> +<h3 id="webgpu-科普">webGPU 科普</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-36-36.png" +width="673" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="477px" +> +最近谷歌浏览器率先宣布全面支持 webGPU ,预计到今年年底各大浏览器也都会跟进并提供支持。</p> +<p>webGPU 从名字上看跟显卡和浏览器有关,可是之前已经有webgl了,这次又有什么变化?</p> +<p>通过多方面信息的搜索,我得到的结论是:webGPU 更充分地暴露了显卡的计算能力,GPU不再只是做图形渲染相关的事情,而是根据webGPU提供的相关专业接口,可以执行深度学习之类的更通用的计算工作。</p> +<p>如果想了解的更全面一些,这篇<a class="link" href="https://cohost.org/mcc/post/1406157-i-want-to-talk-about-webgpu" target="_blank" rel="noopener" +>《谈谈 webGPU》</a>文章十分值得一读。</p> +<p>作者对 webGPU 这一技术介绍的比较详尽,从各个图形接口的发展历史一直到对未来如何应用的展望,都包括了。</p> +<h3 id="如何翻译一本书">如何翻译一本书</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-49-38.png" +width="709" +height="354" +loading="lazy" +class="gallery-image" +data-flex-grow="200" +data-flex-basis="480px" +> +<a class="link" href="https://sspai.com/post/79534" target="_blank" rel="noopener" +>《从不自量力到 AI 助力,我如何翻译完一整本英文书》</a> +这是一个关于执行力的故事。</p> +<p>主题是:如何借助AI和现代信息工具,实现看似不可能完成的任务。</p> +<p>在这个时代,个体的力量很渺小,因为个人几乎无法独立完成任何事情。</p> +<p>但同时,借助科技工具和基础设施的力量,1 个人甚至可以完成之前需要一个上百人公司才能做到的事情,这让个体变得非常强大。</p> +<h3 id="如何刷路由器">如何刷路由器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-00-09.png" +width="600" +height="417" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="345px" +> +<a class="link" href="https://www.v2ex.com/" target="_blank" rel="noopener" +>V站</a>上说,中年技术男有三大爱好:钓鱼、NAS、软路由。</p> +<p><del>我一样也没沾边儿,但还是克制不住关注相关技术。</del></p> +<p>之前多次想拿自己家的路由器开刀,刷一个openwrt系统,然后就可以各种折腾(科学上网、内网穿透等等)了。</p> +<p>但是一直没有动手,今天看到这篇<a class="link" href="https://a-wing.top/linux/2023/05/01/start-openwrt" target="_blank" rel="noopener" +>自己动手定制你的路由器</a>写的如此详细,还是心动了一下。</p> +<p>先收藏吧。</p> +<h3 id="仅用csshtml实现三维动画">仅用CSS+HTML实现三维动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-06-52.png" +width="632" +height="161" +loading="lazy" +class="gallery-image" +data-flex-grow="392" +data-flex-basis="942px" +> +CSS 的 <code>translate3d</code>用到的不多。</p> +<p>如果使用巧妙的话,可以帮你实现很出彩的 3D 动画效果,国外有高手在给自己的文章配数学公式的时候,利用CSS制作了一些可以动态显示的公式图表。这篇<a class="link" href="https://x.st/spinning-diagrams-with-css/" target="_blank" rel="noopener" +>CSS 3D图表</a>记录了它们的实现细节和技术原理。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.window-swap.com/Window" target="_blank" rel="noopener" +>window-swap</a>,随机看别人家的窗外景色。这个网站每次刷新都随机显示一个网友共享的摄像头视角,一般是自家的窗外。可以随时体验全球各地的邻家风景。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-14-06.png" +width="1371" +height="929" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="354px" +></li> +<li><a class="link" href="https://www.landiannews.com/archives/98512.html" target="_blank" rel="noopener" +>foobar2000</a>,经典的音乐播放器终于更新了。2002年发布的foobar2000播放器曾经是很多发烧友的最爱,如今过了20多年,居然更新了2.0稳定版,值得收藏; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-15-52.png" +width="743" +height="504" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></li> +<li><a class="link" href="https://lost-at-sql.therobinlord.com/" target="_blank" rel="noopener" +>lost-at-sql</a>,一个在线学习 sql 的交互游戏,通过游戏闯关的方式练习 sql 技能; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-18-25.png" +width="745" +height="484" +loading="lazy" +class="gallery-image" +data-flex-grow="153" +data-flex-basis="369px" +></li> +<li><a class="link" href="https://glsl-exercises.simondev.io/lesson/1/1#welcome" target="_blank" rel="noopener" +>glsl-exercises</a>,在线学习glsl的交互课程,通过交互式页面练习 glsl 编写; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-19-48.png" +width="1858" +height="794" +loading="lazy" +class="gallery-image" +data-flex-grow="234" +data-flex-basis="561px" +></li> +<li><a class="link" href="https://www.gameuidatabase.com/" target="_blank" rel="noopener" +>gameuidatabase</a>,一个游戏界面资源网站,各种游戏的界面截图,可以用来“借鉴”?; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-20-48.png" +width="1078" +height="567" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="456px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 030 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/Wed, 26 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/<h1 id="机器文摘-第-030-期">机器文摘 第 030 期</h1> +<p><em>下周五一假期,休息,不更新。</em></p> +<h2 id="长文">长文</h2> +<h3 id="内网穿透的原理及实现">内网穿透的原理及实现</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-42-27.png" +width="1040" +height="515" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="484px" +></p> +<blockquote> +<p>设想这样一个问题:在北京和上海各有一台局域网的机器(例如一台是家里的台式机,一 台是连接到星巴克 WiFi 的笔记本),二者都是私网 IP 地址,但可以访问公网, 如何让这两台机器通信呢?</p> +</blockquote> +<p>IPv4地址即将枯竭,IPv6技术还没有普及,现在很多家庭宽带都不再分配公网IP地址。这就意味着大部分的个人电脑是无法通过互联网被直接访问的(当然,你可以通过你家wifi或者4G信号访问互联网,但是反过来不行)。</p> +<p>可是这种需求又真实存在,比如我就经常希望能够在任何地方访问我家里的电脑,通过远程桌面进行办公、文件共享等等。</p> +<p>最简单的方法是通过购买一台具有公网IP地址的云主机来实现中继,这也是目前最普遍的方式。</p> +<p>不过阅读完这篇<a class="link" href="https://arthurchiao.art/blog/how-nat-traversal-works-zh/" target="_blank" rel="noopener" +>《NAT 穿透是如何工作的:技术原理及企业级实践》</a>,假如你有很强的动手能力的话,就应该可以实现一套完全不需要公网主机进行中继的“企业级内网穿透工具”。</p> +<p>文章很长,来自<a class="link" href="https://tailscale.com/blog/how-nat-traversal-works/" target="_blank" rel="noopener" +>这篇英文博客</a>。</p> +<h3 id="技术写作指南">技术写作指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-53-51.png" +width="437" +height="205" +loading="lazy" +class="gallery-image" +data-flex-grow="213" +data-flex-basis="511px" +> +曾经在翻阅《程序员的数学》这本书的时候被朋友看到,于是诞生了短暂的讨论。</p> +<p>当时我的观点是,作为程序员一定要掌握好数学,即便现在编程过程中已经不怎么用到特别底层的知识,但也应该多训练数学思维。</p> +<p>朋友当时说了一句话让我记忆犹新。</p> +<p>“比起程序员的数学,我更担忧的是程序员的语文。”</p> +<p>确实,写作这项能力在很多技术人员心里是被低估的。</p> +<p>不少人受尽写技术文档的折磨,于是越发讨厌写作。</p> +<p>这篇<a class="link" href="https://www.yuque.com/serviceup/misc/cn-writing-for-engineers" target="_blank" rel="noopener" +>《作为工程师应该如何写作》</a>真是雪中送炭,总结了很多立即就能见效的技术写作方法,希望可以帮助到工程师朋友。</p> +<h3 id="怎样制作好玩的小游戏">怎样制作好玩的小游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-57-29.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +很多人都有自己开发游戏的冲动。</p> +<p>不过很容易掉进各种复杂的引擎和工具的坑里。</p> +<p>然后感到沮丧,忘了想做游戏的初心。</p> +<p>这篇<a class="link" href="http://farawaytimes.blogspot.com/2023/02/how-to-make-good-small-games.html" target="_blank" rel="noopener" +>《怎样制作好玩的小游戏》</a>可以让你重新焕发精神。</p> +<p>作者认为开发那种不用复杂引擎的小游戏也可以很欢乐,只要有足够的游戏性。</p> +<p>他在文章中详细列举了想要制作出真正具有游戏性的小游戏所必须具备的几点关键特性。</p> +<p>看得出来,作者是懂游戏的。</p> +<h3 id="神奇的一页纸知识管理">神奇的一页纸知识管理</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-10-03-34.png" +width="1220" +height="841" +loading="lazy" +class="gallery-image" +data-flex-grow="145" +data-flex-basis="348px" +></p> +<blockquote> +<p>宇航员在太空中找到的方法一定不会错,因为他要是出错就没命了。 +航天员的秘密武器,One Pager。就是把一个专项的知识,都写和画在一页纸上。日积月累,宇航员有了一本手册,里面都是一页一页的one pager。 +我向来对知识管理的各种方法很有兴趣。</p> +</blockquote> +<p>在网上闲逛时看到这篇<a class="link" href="https://www.zhongwen.ai/fantastic-one-pager/" target="_blank" rel="noopener" +>《神奇的One Pager》</a>,讲述了一种通过一页纸进行知识管理的方法。</p> +<p>热爱学习的人可不能错过。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/chidiwilliams/buzz" target="_blank" rel="noopener" +>buzz</a>,Transcribe and translate audio offline on your personal computer. Powered by OpenAI&rsquo;s Whisper. +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-48-07.png" +width="827" +height="431" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +<li><a class="link" href="https://moonvy.com/apps/ops/" target="_blank" rel="noopener" +>可视化提示词拼装</a>,文生图的AI越来越多,自己也可以在本地搭建服务,可是为什么我自己生成的图片那么丑呢?这个工具也许可以帮你生成一些靠谱的提示词。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-50-22.png" +width="991" +height="418" +loading="lazy" +class="gallery-image" +data-flex-grow="237" +data-flex-basis="568px" +></li> +<li><a class="link" href="https://liaokong.gitbook.io/llm-kai-fa-jiao-cheng/" target="_blank" rel="noopener" +>LangChain 中文入门教程</a>,众所周知 OpenAI 的 API 无法联网的,所以如果只使用自己的功能实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能肯定是无法实现的。所以,我们来介绍一个非常强大的第三方开源库:LangChain 。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-51-08.png" +width="1103" +height="493" +loading="lazy" +class="gallery-image" +data-flex-grow="223" +data-flex-basis="536px" +></li> +<li><a class="link" href="https://oimo.io/works/clock/" target="_blank" rel="noopener" +>clock</a>,一个非常酷的网页时钟显示效果。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-51-53.png" +width="999" +height="586" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="409px" +></li> +<li><a class="link" href="https://webgpufundamentals.org/" target="_blank" rel="noopener" +>WebGPU 理论基础</a>,从基础理论开始学习WebGPU,稳! +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-53-56.png" +width="688" +height="743" +loading="lazy" +class="gallery-image" +data-flex-grow="92" +data-flex-basis="222px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 029 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/Wed, 19 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/<h1 id="机器文摘-第-029-期">机器文摘 第 029 期</h1> +<h2 id="长文">长文</h2> +<h3 id="计算机的中断机制是如何实现的">计算机的“中断”机制是如何实现的?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-09-37-58.png" +width="1008" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="354px" +> +稍微了解过计算机原理的朋友都知道,计算机是通过“中断”的机制实现对键盘输入、鼠标移动、硬盘读写等操作的。</p> +<p>让我给小朋友讲解这些基本的知识时,我也可以侃侃而谈,说上半个小时不带重复。</p> +<p>但是真要解释“中断”的机制是如何实现的,我想即便是现在科班出身的本科生也未必能够说明白。</p> +<p>原因我觉得除了缺少实践之外,也跟大部分书上的理论内容离实际工程较远有关。</p> +<p>这篇<a class="link" href="https://r12f.com/posts/interrupts/" target="_blank" rel="noopener" +>漫谈中断</a>从实际的硬件实例(x86)出发,详细介绍了中断的实现机制,普及了“外部中断”、“内部中断”、“软中断”等概念,以及人们怎样通过“中断控制器”逐渐解决了多设备中断处理的问题。是一篇很值得阅读的科普文章。适合对计算机组成原理、操作系统等技术有兴趣的朋友阅读。</p> +<h3 id="怎样提升软件项目的可维护性">怎样提升软件项目的可维护性?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-09-54-43.png" +width="576" +height="242" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="571px" +> +不同的项目团队对于软件项目的可维护性所做出的努力不同。</p> +<p>有不少团队宁愿在修改bug上加班加点,也不愿意为可维护性多花一丁点精力。</p> +<p>不过,如果你要开始一个新的软件项目或者想要改善一个已经存在的项目的可维护性。</p> +<p>这里有一份<a class="link" href="https://hix.dev/tutorials/general/software-project-checklist" target="_blank" rel="noopener" +>软件项目可维护性检查清单</a>可以参考。</p> +<p>作者主要从版本控制、软件测试、静态分析、依赖库管理、多语言支持、多平台支持、开发环境管理等方面给出了可以改进的行动清单,以及基于开源工具的最佳实践建议。</p> +<h3 id="怎样榨干chatgpt">怎样榨干chatGPT?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-06-59.png" +width="1024" +height="1024" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +ChatGPT是由OpenAI训练的一款大型语言模型,能够和你进行任何领域的对话。</p> +<p>现在跟年初账号紧张的情况比起来已经方便了很多。</p> +<p>在这么多开源工具和套壳网站的帮助下,我想现在大部分人都能够比较方便的体验它了吧。</p> +<p>但是可能很多人还不知道如何更好的发挥它的作用。</p> +<p>有网友整理了一份开源的<a class="link" href="https://github.com/PlexPt/awesome-chatgpt-prompts-zh" target="_blank" rel="noopener" +>chatGPT中文调教指南</a>,内容极为详尽,可以帮你榨干chatGPT的全部潜能。</p> +<h3 id="怎样让ai作画理解你的意图">怎样让AI作画理解你的意图?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-17-26.png" +width="1536" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="300" +data-flex-basis="720px" +> +对于现在强大的AI绘图应用,有些人可能会认为只输入一个单词就能生成一张很酷的图片。</p> +<p>然而,虽然AI模型越来越善于理解我们想要的内容,但它们还不能读懂我们的思想。</p> +<p>因此,如果你想生成一张看起来像你所想的那样的图片,你需要编写正确的提示。</p> +<p>这个<a class="link" href="https://boostpixels.com/short-guide" target="_blank" rel="noopener" +>AI绘图prompt编写指南</a>可以给你提供一些帮助。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://zh.ifixit.com/Guide" target="_blank" rel="noopener" +>维修指南</a>,各种设备的维修教程大全,详细到每一个步骤的照片,设备型号齐全; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-22-36.png" +width="977" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="508px" +></li> +<li><a class="link" href="https://shadertoy.com/view/msVXWD" target="_blank" rel="noopener" +>glsl-CNN</a>,有大神用glsl语言,仅通过webGL的片元着色器实现了一个手写识别的CNN神经网络。可以在浏览器直接体验,效果惊艳。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-31-02.png" +width="801" +height="479" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +></li> +<li><a class="link" href="https://github.com/facebookresearch/dinov2" target="_blank" rel="noopener" +>dinov2</a>,Meta AI新发布的全能视觉模型,模型支持:图像分类、分割、图像检索和深度估计。比较厉害的地方在于它是一个自监督模型,直接从图像中学习特征,而不依赖文本描述,即可训练计算机视觉模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-31-37.png" +width="828" +height="236" +loading="lazy" +class="gallery-image" +data-flex-grow="350" +data-flex-basis="842px" +></li> +<li><a class="link" href="https://minigpt-4.github.io/" target="_blank" rel="noopener" +>minigpt-4</a>,GPT4 的图像支持迟迟不开放,这个开源的MiniGPT4 却已经做到了类似的多模态效果,官方演示看起来非常棒。只用了四张A100训练了10小时,模型甚至只有13B。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-33-47.png" +width="1289" +height="1484" +loading="lazy" +class="gallery-image" +data-flex-grow="86" +data-flex-basis="208px" +></li> +<li><a class="link" href="https://github.com/linyiLYi/street-fighter-ai" target="_blank" rel="noopener" +>street-fighter-ai</a>,有个B站UP主在GPT的帮助下, 写了个 强化训练的AI模型,终于打败了街霸里的 AI,实现了儿时的梦想。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-36-53.png" +width="1080" +height="760" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="341px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 027 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/Wed, 12 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/<h1 id="机器文摘-第-027-期">机器文摘 第 027 期</h1> +<h2 id="长文">长文</h2> +<h3 id="搭建本地ai作图应用">搭建本地AI作图应用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-13-51-53.png" +width="695" +height="392" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="425px" +> +AI对话机器人火爆的同时,去年由Stable-Diffusion模型引爆的AI作图技术也没有放慢进化的脚步。</p> +<p>这里面的佼佼者<a class="link" href="https://zh.wikipedia.org/zh-cn/Midjourney" target="_blank" rel="noopener" +>Midjourney</a>已经发展成了强大的图像生成系统。可以轻松定制出照片级图像,其效果足以乱真。</p> +<p>不过目前在国内使用Midjourney还比较麻烦,即便能够访问,使用量也会受限制,能否自己搭建一个呢?</p> +<p>答案是肯定的。</p> +<p>跟去年刚问世的时候不同,现在基于Stable-Diffusion模型的生态也已经十分完备,很多开源软件、框架、插件围绕这个模型开发。</p> +<p>利用这些软件可以快速在本地计算机上构建一套属于自己的图像生成服务。</p> +<p>这里有一篇博客以<a class="link" href="https://www.freedidi.com/8474.html" target="_blank" rel="noopener" +>手把手的方式教你如何在最快速的时间搭建自己的图像生成服务</a>。</p> +<p>里面还列举了一些微调好的定制模型下载地址,合理的使用这些模型,你会发现打开新世界的大门。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-02-07.png" +width="733" +height="799" +loading="lazy" +class="gallery-image" +data-flex-grow="91" +data-flex-basis="220px" +></p> +<h3 id="搭建本地chatgpt应用">搭建本地chatGPT应用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-08-25.png" +width="779" +height="342" +loading="lazy" +class="gallery-image" +data-flex-grow="227" +data-flex-basis="546px" +> +本来不想再提chatGPT了,因为最近说的有些太多了。</p> +<p>但是无奈当前的开源生态对于语言模型是在是太追捧了,技术发展迅雷不及掩耳。</p> +<p>很快就出现了一批可以自己搭建的AI对话模型。</p> +<p>今天我挑两个我认为效果比较好的(且对中文支持比较好的)介绍一下。</p> +<p>注意,跟目前流行的基于OpenAI的接口进行套壳的程序不同。我说的是完全在本地搭建自己的服务。</p> +<p>第一个:<a class="link" href="https://chatglm.cn/blog" target="_blank" rel="noopener" +>ChatGLM-6B</a>,一个具有62亿参数的中英双语语言模型。通过使用与 ChatGLM(chatglm.cn)相同的技术,ChatGLM-6B 初具中文问答和对话功能,并支持在单张 2080Ti 上进行推理使用。</p> +<p>搭建过程比较简单,按照<a class="link" href="https://github.com/THUDM/ChatGLM-6B/blob/main/README.md" target="_blank" rel="noopener" +>README</a>文档中的步骤下载模型、执行脚本程序即可。</p> +<p>第二个:<a class="link" href="https://github.com/ymcui/Chinese-LLaMA-Alpaca" target="_blank" rel="noopener" +>中文 LLaMA &amp; Alpaca 大模型</a>,开源了中文LLaMA模型和经过指令精调的Alpaca大模型。这些模型在原版LLaMA的基础上扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。同时,在中文LLaMA的基础上,本项目使用了中文指令数据进行指令精调,显著提升了模型对指令的理解和执行能力。</p> +<p>搭建过程略微繁琐一些,需要通过自己的手段下载到开源的LLaMA原始模型(当然这对于技术人员来说不是问题)。</p> +<p>然后按照文档中的教程,执行模型合并、量化等脚本,最终通过开源程序LLaMA.cpp实现模型的本地运行。</p> +<h3 id="合作运行千亿参数级语言模型">合作运行千亿参数级语言模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-22-47.png" +width="492" +height="214" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +按照众人划桨开大船的思路,之前在带宽不足的年代诞生了BT下载。</p> +<p>如今,当我们的本地显卡无法应付超大AI模型时,有人开始用同样的思路解决问题。</p> +<p><a class="link" href="https://petals.ml/" target="_blank" rel="noopener" +>Petals</a>就是这么一个分布式模型微调、运行的框架,可以让你轻松在家运行超过千亿参数的大模型(当然是在线跟大家一起协作)。</p> +<p>其原理是大家分别加载模型的一小部分,然后与其他人一起通过协同的方式进行推理或者微调。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-27-18.png" +width="1742" +height="680" +loading="lazy" +class="gallery-image" +data-flex-grow="256" +data-flex-basis="614px" +></p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://learningprompt.wiki/" target="_blank" rel="noopener" +>Prompt Engineering 教程</a>,一份教你如何更好使好地使用 ChatGPT 和其他 AI 产品的免费教程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-43-13.png" +width="970" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="208" +data-flex-basis="499px" +></li> +<li><a class="link" href="https://prompthero.com/" target="_blank" rel="noopener" +>Prompthero</a>,跟聊天机器人、绘图机器人交流的prompt大全,与上面的教程不同,这是一个模板库大全,有创作灵感但是不知道该如何描述的时候可以去参考一下。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-45-46.png" +width="759" +height="381" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="478px" +></li> +<li><a class="link" href="https://civitai.com/" target="_blank" rel="noopener" +>Civitai</a>,与上面相同,不过专门用于图像生成,而且路子比较野,有大量的NSFW内容,要搭配Stable-Diffusion的各种微调模型使用。具体使用方法,可参考前文中介绍如何搭建本地图像生成服务的部分。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 028 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/Wed, 12 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/<h1 id="机器文摘-第-028-期">机器文摘 第 028 期</h1> +<h2 id="长文">长文</h2> +<h3 id="极简代码理解-gpt-模型结构">极简代码理解 GPT 模型结构</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-37-14.png" +width="679" +height="607" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="268px" +> +在<a class="link" href="https://twitter.com/karpathy/status/1645115622517542913" target="_blank" rel="noopener" +>twitter上有网友发布了一个简单的示例代码</a>,讲解了 GPT 语言模型的运行原理,为了方便大家理解,作者用了极简的模型设置,即语言文字只保留了1和0两个字符,上下文长度也仅为3,可以很直观地感受到训练过程是如何起作用的。</p> +<p>作者<a class="link" href="https://colab.research.google.com/drive/1SiF0KZJp75rUeetKOWqpsA8clmHP6jMg?usp=sharing" target="_blank" rel="noopener" +>提供了托管在colab的python源码</a>,可以在线体验。</p> +<h3 id="用开源语言模型训练自己的数字化身">用开源语言模型训练自己的数字化身</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-38-57.png" +width="623" +height="364" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +> +随着开源语言模型的训练和微调变得越来越简单,果然有人开始整活。</p> +<p>已经有网友<a class="link" href="https://greatdk.com/1908.html" target="_blank" rel="noopener" +>通过自己的微信聊天记录和博客文章训练出有自己风格的AI</a>。</p> +<p>作者使用目前对中文支持最好的开源模型 chatglm-6b 作为预训练模型(我上期介绍过它的部署和使用)。</p> +<p>经过一番折腾后终于训练出还算凑合的模型。</p> +<p>我们的世界离<a class="link" href="https://movie.douban.com/subject/11502153/episode/1/" target="_blank" rel="noopener" +>《黑镜》中的黑暗故事</a>越来越近了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-49-17.png" +width="1024" +height="576" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<h3 id="四十年工作经验程序员的职业建议">四十年工作经验程序员的职业建议</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-50-49.png" +width="700" +height="420" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +> +国外有位“老程序员”退休了,是真正的到了退休年龄的退休。</p> +<p>他从1981年入行,直到去年退休。这期间他做过各种开发,跳过槽也被辞退过,打过工也创过业。</p> +<p>这不容易。</p> +<p>所以,他决定<a class="link" href="https://thecodist.com/how-i-stayed-relevant-over-four-decades/" target="_blank" rel="noopener" +>以“一个退休程序员”的身份分享一些心得</a>。</p> +<p>摘抄部分要点如下:</p> +<blockquote> +<p>保持开阔的眼界:每天花时间获取真正的资讯,看到趋势,在事物流行起来之前发现他们。 +保持学习:不要拒绝和敌视新技术,要为你所用。 +要有自己的项目(做一些真正的事情):作为程序员不要浪费聪明才智和外部资源,要学着开始一个自己的项目。</p> +</blockquote> +<h3 id="进入心流的入口">进入心流的入口</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-08-18.png" +width="660" +height="379" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="417px" +> +进入心流(Flow)状态是一种很忘我的体验,也是知识工作者高效产出的必要条件。</p> +<p>有不少创作者都体会过那种全身心的投入并且忘记了时间的感觉。</p> +<p>一旦进入那种状态,很多问题能够很快得到解决,大脑飞速运转并且不会感觉到劳累。</p> +<p>这种状态最忌讳被打断,因为一旦打断,再进入就会比较困难。</p> +<p>这里有篇文章介绍了一些小技巧,可以让你在不得已中断心流之后,能够比较快速地恢复状态。</p> +<p>作者将这些技巧比喻为高速服务区进入主路之前的加速匝道,姑且称为<a class="link" href="https://census.dev/blog/an-on-ramp-to-flow" target="_blank" rel="noopener" +>进入心流的入口</a>。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://spline.design/" target="_blank" rel="noopener" +>Spline</a>,一个免费易用的 3D 设计工具,可实时协作,提供了丰富的物料库,可以基于它来快速创建有趣的 3D 场景,支持处理细腻动画交互,此外还可以导入本地模型和声音素材,支持到处多种输出格式包括WebGL、视频、链接等,很适合新手。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-19-26.png" +width="986" +height="536" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="441px" +></li> +<li><a class="link" href="https://codepen.io/ksenia-k/pen/poOMpzx" target="_blank" rel="noopener" +>Draw With Flowers!</a>,在threejs里用着色器语言编写的一个特效demo,可以随着鼠标移动绘制绚丽的花朵。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-19-52.png" +width="828" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/numbbbbb/read-react-source-code" target="_blank" rel="noopener" +>React 源码阅读</a>,一本开源电子书,通过阅读React的源码来详细理解前端框架的原理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-20-26.png" +width="591" +height="369" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="384px" +></li> +<li><a class="link" href="https://codeium.com/download" target="_blank" rel="noopener" +>Codeium</a>,Github copilot 的免费平替,提供vscode、vim、neovim等常见编辑器的插件,我试了一下,效果可以接受。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-21-52.png" +width="1024" +height="586" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="419px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 026 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/Wed, 29 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/<h1 id="机器文摘-第-026-期">机器文摘 第 026 期</h1> +<h2 id="长文">长文</h2> +<h3 id="通用人工智能要来了吗">通用人工智能要来了吗</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-09-37-08.png" +width="854" +height="476" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +> +AGI(通用人工智能),即用一个模型解决全部问题,而不是特定领域的问题(如语音识别、图像分类等)。</p> +<p>我在几年前读过一本叫做《人工智能,人类最后的发明》的书。</p> +<p>书里说AGI就是人类最后一个发明,因为有了它,别的一切都不需要了。</p> +<p>当时感觉距离通用的人工智能还很遥远,觉得作者有些危言耸听。</p> +<p>直到今年,chatGPT和GPT-4的发布,我才发觉AI的势头确实有些猛得出乎意料。</p> +<p><a class="link" href="https://orangeblog.notion.site/GPT-4-8fc50010291d47efb92cbbd668c8c893" target="_blank" rel="noopener" +>《 GPT-4 ,人类迈向AGI的第一步》</a>是一篇<a class="link" href="https://arxiv.org/pdf/2303.12712v1.pdf" target="_blank" rel="noopener" +>近期论文</a>的翻译,该论文由微软研究院发布,论证了当前的 GPT-4 模型已经初步具有 AGI 的苗头。</p> +<p>论文内容十分详实,看完很震撼。</p> +<p>摘录部分文字如下:</p> +<blockquote> +<blockquote> +<p><strong>对话</strong> +&gt; 马克:我不喜欢你昨天晚上对待杰克的方式 +&gt; 朱迪:你看到他在做什么了吗?他打了他哥哥的头! +&gt; 马克:这并不能成为你对他大喊大叫的理由 +&gt; 朱迪:你想让我怎么做?让他打他的弟弟,然后什么都不说? +&gt; 马克:不,我不同意 +&gt; 朱迪:那你为什么要为他辩护? +<strong>提问:马克的意图似乎是什么?</strong> +GPT4: 马克的意图似乎是要表达他对朱迪处理与杰克关系的方式的不满,并建议她可以更加冷静和尊重。 +ChatGPT:根据谈话内容,马克的意图似乎是为杰克的行为辩护,并表达他对朱迪对待杰克的不满。 +<strong>提问:朱迪如何看待汤姆的回应?</strong> +GPT4: 朱迪认为他的评论是对她的分析能力的攻击,也是对杰克的不当行为表示同情的表现。她的反应是防御性的和愤怒的,并质疑马克的动机。 +ChatGPT:如果没有更多的文字,我不可能准确判断朱迪是如何接受马克的评论的。然而,根据朱迪的回应,她似乎并不同意马克的观点,而且可能对他为杰克的行为辩护感到沮丧。</p> +</blockquote> +</blockquote> +<h3 id="用-gpt-4-帮你编写一个游戏">用 GPT-4 帮你编写一个游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-02-56.png" +width="717" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="510px" +> +我第一次见识到 ChaptGPT 的编程能力之后,就基本离不开这个工具了。</p> +<p>现在我几乎每天都在它的辅助下编写代码。</p> +<p>不过,这里有个老哥更过分。</p> +<p>他让 <a class="link" href="https://twitter-thread.com/t/1637592014446551040" target="_blank" rel="noopener" +>GPT-4 模型帮他做出了一个3D太空赛跑游戏</a>。</p> +<p>作者本身没有游戏编程经验也不懂Javascript,但是通过跟模型一点一点对话,反复将调试代码生成的错误信息反馈给模型,逐渐完成了一个完成度还挺高的游戏。</p> +<h3 id="搭建基于私域数据的chatgpt">搭建基于私域数据的ChatGPT</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-12-24.png" +width="776" +height="438" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="425px" +> +ChatGPT 超强的对话能力怎样应用到私有数据上?</p> +<p>比如说我希望做出一个基于 ChatGPT 模型的专属客服,要吃透我的产品信息。</p> +<p>官方提供的训练API和微调(fine tuning)指导相对复杂一些,对于AI模型的微调不熟悉的人员还不够友好。</p> +<p>这里有一篇“零基础”教程<a class="link" href="https://mp.weixin.qq.com/s/naiVMuXHAScRb_jSEJN3zg" target="_blank" rel="noopener" +>《搭建基于私域数据的ChatGPT》</a>,可以带你走一下流程,感受一下定制专属模型的步骤。</p> +<h3 id="ai令人焦虑">AI令人焦虑</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-21-37.png" +width="609" +height="859" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="170px" +> +这篇<a class="link" href="https://mp.weixin.qq.com/s/7H1FrwbQvsh0HD9z90L0wg" target="_blank" rel="noopener" +>《AI狂飙的时代,人还有价值吗?》</a>是一期语音播客的文字转译,因为内容比较精彩,所以也收录在这里了。</p> +<blockquote> +<p>我觉得取代不是一个好的词儿,因为取代是一个非常容易反驳的词儿。我可以说我仍然会干什么什么,AI干不了,所以它取代不了我。 +但正是这种字面上的抬杠,使得问题的本质被掩盖了,因为AI在人的生活中的渗透是一个逐渐的过程。 +百分之百地取代你可能仍然不会发生,可是它也不需要百分之百的取代掉你,只要50%的取代掉你的某些工作职能,AI就会对就业市场形成非常大的冲击。 +我有一个纽约的律师朋友,他是很早就开始用这个东西。 +他本身不是一个技术人员,他是一个标准的文科生,平常的用一个新软件都要紧张半天的那种人。 +但是他开始用这个之后,因为律师的工作是很大程度上是依赖于文本的,而文本是GPT的长项,所以他就开始用。 +之后,我就问他说,所以你真的开始辞退你的员工了吗?因为他自己是一个律所合伙人。 +他说我还没有真正开始辞退任何人,但是我确实打算今年暑假不用再招实习生了,因为给我省下的活完全可以让我腾出手来做一些事,以至于我可以省下招一个实习生的AD account。 +这就是一个真实的影响对不对? +它没有真正取代什么东西,但是它仍然冲击了一个真实的就业市场上的职位。</p> +<p>我觉得AI对我们社会的影响会以这种方式出现,它不会马上一下子让你这个人变得没有意义,但是它可以让三个人的活,两个人现在能干完,多出来那个人就没有存在的必要了,所以老板就可以把他开掉。 +它并不是百分之百取代的人的方式来逐渐进行的,而且这个事情是非常真实的。这也是为什么我觉得很多人对冲击仍然没有做好心理上和事实上的准备。 +其实有点令人忧虑的原因就是,如果你今天还用一种这东西,都是媒体的炒作来对待这个问题,你就很可能会在真正的影响你切身生活的冲击到来之前,没有做好对自己来说比较有用的帮助。</p> +</blockquote> +<p>读完这篇文章,我的感受是,没必要焦虑,不是AI没有威胁,而是焦虑也没用,蒸汽机车发明之后,超越马车就只剩下时间问题了。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://greasyfork.org/zh-CN/scripts/445751-unlimited-downloader" target="_blank" rel="noopener" +>无限制下载器,只要能播放就能下载</a>,能够帮助下载视频网站内容的浏览器插件很多,大部分都是通过嗅探播放地址来实现的下载,网站也会采用各种加密手段来进行阻止。但是这个油猴脚本采用了另一种思路。你网站防再死不能不让观众看吧?脚本几乎采用了类似录屏的手段来进行视频下载。对于一些实在想要下载的内容,可以考虑试试这个插件。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-34-53.png" +width="640" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="384px" +></li> +<li><a class="link" href="https://github.com/cocktailpeanut/dalai" target="_blank" rel="noopener" +>帮你本地运行 LLaMA 模型</a>,只需一行命令就可以让你在本地运行 <a class="link" href="https://github.com/ggerganov/llama.cpp" target="_blank" rel="noopener" +>LLaMA</a> 模型,轻松感受在本地单机上运行大规模语言模型的魅力。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-40-09.png" +width="1920" +height="1080" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/lxe/simple-llama-finetuner" target="_blank" rel="noopener" +>微调 LLaMa 模型的工具</a>,既然都能在本地运行了,那就再给力一些,这个工具可以让你很方便地使用自己的数据训练 LLaMA 模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-42-04.png" +width="1013" +height="898" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></li> +<li><a class="link" href="https://github.com/Haxxnet/Compose-Examples" target="_blank" rel="noopener" +>Docker Compose 容器组合最佳实践</a>,Docker有多好用不用再说了吧,这里有一堆使用Docker Compose编排容器的模板,收录了很多十分有用的容器镜像组合,可方便快速的搭建各种业务(如:单点登录、VPN、媒体管理、文件共享、博客、维基、社交网站、项目管理等)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-46-53.png" +width="802" +height="445" +loading="lazy" +class="gallery-image" +data-flex-grow="180" +data-flex-basis="432px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 025 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/Wed, 22 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/<h1 id="机器文摘-第-025-期">机器文摘 第 025 期</h1> +<h2 id="长文">长文</h2> +<h3 id="252个字节实现播放音乐和动画">252个字节实现播放音乐和动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-25-42.png" +width="915" +height="478" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +> +这里有个网页介绍了一个demo作者使用一段JavaScript代码实现了一个<a class="link" href="http://www.p01.org/256b_tetris_theme/" target="_blank" rel="noopener" +>一边播放俄罗斯方块背景音乐一边播放字符动画的网页</a>,原理是利用HTML5的AudioContext对象进行声音合成,通过定时器触发基于当前时间t值的不同频率,实现音乐播放。具体代码如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="cl"><span class="o">&lt;</span><span class="nx">body</span> <span class="nx">onclick</span><span class="o">=</span><span class="s2">&#34;with(new AudioContext)with(o=createOscillator())connect(destination),start(setInterval(v=&gt;innerHTML=&#39;TETЯIS&amp;#&#39;+(9624|(o.frequency.value=`RR&gt;AIIA&gt;777${d=&#39;ARRIA&gt;&gt;&gt;AIIRRAA7777&#39;}IIIWnnbWRRR${d}`.charCodeAt(++t%58)*4)%7)+&#39;P01&#39;,t=232))&#34;</span><span class="o">&gt;</span><span class="nx">click</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h3 id="诺基亚发布的可维修手机">诺基亚发布的“可维修”手机</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-35-52.png" +width="614" +height="369" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="399px" +> +说到诺基亚,用过的朋友第一个映入脑海的词就是“砸核桃”。</p> +<p>那是iPhone还没发布的非智能手机年代。</p> +<p>手机可更换电池和外壳在那时是一个标准设计,谁要是不支持这些都不好意思跟人打招呼。</p> +<p>那时我经常把我的诺基亚掉在地上摔得七零八落,然后淡定地捡起来像电影里特工拼装自己的手枪那样,一个个把零件组装起来,形成“一把”手机。</p> +<p>或者等手机快要没电的时候,像换弹匣那样给手机换一块电池,立马满血复活。</p> +<p>这样的日子自从iPhone发布之后就再也没有了。</p> +<p><a class="link" href="https://www.theguardian.com/technology/2023/feb/25/nokia-launches-diy-repairable-budget-android-phone" target="_blank" rel="noopener" +>诺基亚近期发布了一款手机</a>,再次让我想起我那掉地上摔开几瓣的手机。这款手机号称具有良好的“可维修”性,普通用户也可一个人在家轻松拆卸。可以自行更换包括电池、屏幕、充电端口等零件。</p> +<h3 id="不要重复自己是编程的好原则吗">不要重复自己是编程的好原则吗</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-50-45.png" +width="650" +height="346" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +> +不要重复自己,永远不要从头开始重写代码!</p> +<p>这是很多程序员收到的忠告。</p> +<p>然而它是绝对正确的吗?</p> +<p>这里有篇文章<a class="link" href="https://programmingisterrible.com/post/176657481103/repeat-yourself-do-more-than-one-thing-and" target="_blank" rel="noopener" +>《重复自己,重写一切》</a>,作者在文章中探讨了编程中的一些习惯,他认为这些习惯可以使代码变得更难理解、更难维护,并可能导致代码的冗长和不必要的复杂性。文章提到了重写代码可以给程序带来更好的抽象和可维护性,所以建议定期通过重新写代码的方式重构你的程序。</p> +<p>说实话,我不知道作者是怎样看待所谓“屎山”代码的,也许当他面对有些代码时,他的观点也会变为:“能跑的代码,就尽量别动它了”。</p> +<h3 id="慢下来">慢下来</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-59-28.png" +width="587" +height="205" +loading="lazy" +class="gallery-image" +data-flex-grow="286" +data-flex-basis="687px" +> +这篇文章的题目是<a class="link" href="https://sive.rs/slow" target="_blank" rel="noopener" +>“慢下来”</a>,作者是Derek Sivers,一位创业者、作家和音乐家。在这篇文章中,他分享了自己对于“慢下来”这个主题的一些思考和感悟。</p> +<p>虽然是个急性子,但是我很认同文章里的观点。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.macpierce.com/the-camera-shy-hoodie" target="_blank" rel="noopener" +>反跟踪识别的套件</a>,如果你觉得被公共场所的摄像头拍摄和记录或者识别侵犯了你的隐私,这里有一套开源的穿戴套件可以考虑。它通过在身上穿戴可以发射红外线的LED设备,使得摄像头画面过曝。以获得保护隐私的效果。不过仅用于研究,不知道是否符合有些国家的法律法规。网站提供了配件清单和详细的装配说明(pdf)供下载。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-05-16.png" +width="1203" +height="583" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="495px" +></li> +<li><a class="link" href="https://whatdoesthiscodedo.com/" target="_blank" rel="noopener" +>AI帮你解释一段代码</a>,有人使用openai的开发接口提供了一个专门帮人们解释代码执行的工具,输入代码,输出解释。并提供vscode的插件。我把文章开头那段播放音乐的Javascript代码发给他让他解释,效果如下图: +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-09-51.png" +width="625" +height="740" +loading="lazy" +class="gallery-image" +data-flex-grow="84" +data-flex-basis="202px" +></li> +<li><a class="link" href="https://xenova.github.io/transformers.js/" target="_blank" rel="noopener" +>在网页中运行GPT模型</a>,一个可以在浏览器中执行Transformer模型的开源程序,可以执行轻量的模型,实现如翻译、语音转文字、图像转文字等任务。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-12-45.png" +width="1239" +height="519" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="572px" +></li> +<li><a class="link" href="https://aitxt.io" target="_blank" rel="noopener" +>AI生成工具箱</a>,近期,基于chatGPT模型的应用大爆发,这里有一个整理好的工具箱,可以使用ai做很多内容生成工作,包括帮你编写周报、润色文字、写道歉信、写外卖好评等,效果还不错。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-15-00.png" +width="1033" +height="530" +loading="lazy" +class="gallery-image" +data-flex-grow="194" +data-flex-basis="467px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 024 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/Wed, 15 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/<h1 id="机器文摘-第-024-期">机器文摘 第 024 期</h1> +<h2 id="长文">长文</h2> +<h3 id="电池充一次可以用两年的笔记本电脑">电池充一次可以用两年的“笔记本”电脑</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-18-01.png" +width="830" +height="467" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +挪威软件开发商安德烈亚斯·埃里克森(Andreas Eriksen)组装了一款笔记本电脑(或者说便携膝上型电脑?)。</p> +<p>它拥有“以年为单位的电池寿命”,并且使用用Lisp编程系统界面,产品名为:<a class="link" href="https://www.hackster.io/news/andreas-eriksen-s-potatop-is-a-lisp-powered-laptop-with-a-battery-life-measured-in-years-2f5d79653f24" target="_blank" rel="noopener" +>PotatoP</a>。</p> +<p>CPU好像是个ARM架构的低功耗单核处理器,最高频率96MHz。</p> +<p>支持蓝牙5.0。</p> +<p>运行的系统为PotatOS,一个基于<a class="link" href="http://www.ulisp.com/" target="_blank" rel="noopener" +>uLisp</a>(一个专门为微控制器设计的Lisp)移植的专用系统。</p> +<p>使用的4.4英寸显示屏采用介于LCD和墨水屏之间的技术,省电。</p> +<p>再加上机身上还带有太阳能电池,据说如果环境光充足的话,可以连续运行两年。</p> +<h3 id="详解-amd-为-steam-deck-开发的-apu">详解 AMD 为 Steam Deck 开发的 APU</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-32-20.png" +width="671" +height="272" +loading="lazy" +class="gallery-image" +data-flex-grow="246" +data-flex-basis="592px" +> +Steam Deck 无疑是一款革命性的掌机。</p> +<p>如果不是价格在国内被炒的离谱,我定会入手一台,也许再观望一下等待第二代或者三代产品更好。</p> +<p>这款掌机使得在便携设备上游玩3A大作不再是幻想。</p> +<p>取得这样的表现,除了得益于V厂魔改的Linux系统之外,还离不开这块由AMD定制的、代号“梵高”的 APU。</p> +<p>这篇<a class="link" href="https://chipsandcheese.com/2023/03/05/van-gogh-amds-steam-deck-apu/" target="_blank" rel="noopener" +>《“梵高”AMD的Steam Deck APU》</a>详细介绍了这块APU的各种技术细节,解释了为什么Steam Deck可以做到低功耗的同时还拥有相当给力的图形性能。</p> +<h3 id="用磁盘阵列raid确保数据安全靠谱吗">用磁盘阵列(RAID)确保数据安全靠谱吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-45-46.png" +width="477" +height="250" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="457px" +> +再谈谈 NAS 的事情(中年技术男的三大爱好之一)。</p> +<p>像我这样的人,对于 RAID 磁盘阵列总是抱有美好的幻想。我们认为,只要将数据存放在经过合理规划的磁盘阵列中(例如 RAID 5),我们就可以高枕无忧,确保数据永远不会丢失。然而,实际上,磁盘阵列并不是备份数据的最佳选择,最佳的数据安全策略是异地多份存储。</p> +<p>尽管 RAID 5 宣称随便损坏一块硬盘也不要紧,只需更换一块正常盘即可,但这种理想状态可能不太容易实现,中间随时可能会出现其他状况导致数据永久丢失。</p> +<p>一篇名为<a class="link" href="https://www.ucmadscientist.com/almost-lost-it-all-again/" target="_blank" rel="noopener" +>《差点儿就又全没了》</a>的博文,讲述了作者在使用 NAS 磁盘阵列时经历了一次惊险刺激的数据拯救过程。希望这篇文章能够给计划使用类似方式保存数据的朋友们一个平常心态。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://pubby.games/nesfab.html" target="_blank" rel="noopener" +>NESFab</a>,一个专为开发任天堂8位游戏机(NES、FC)设计的编程语言。具有高性能、易于装载资源、自动内存地址切换等特性,作者还在主页提供了一个使用NESFab开发游戏的教程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-10-50.png" +width="490" +height="169" +loading="lazy" +class="gallery-image" +data-flex-grow="289" +data-flex-basis="695px" +></li> +<li><a class="link" href="https://github.com/AstroNvim/AstroNvim" target="_blank" rel="noopener" +>AstroNvim</a>,一套即开即用的Nvim配置文件,主打界面美观,集成了文件浏览、代码补全、语法高亮、模糊查询、可视化调试等常用插件配置。对于新手和懒得折腾的人来说,可以尝试。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-13-25.png" +width="814" +height="434" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></li> +<li><a class="link" href="https://github.com/pynecone-io/pynecone" target="_blank" rel="noopener" +>pynecone</a>,一个用python开发的web应用框架,特点是使用python语言完成所有任务,包括前端和后端,可以帮助那些对于前端开发不太擅长的人更方便地制作web应用程序。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-16-17.png" +width="727" +height="647" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="269px" +></li> +<li><a class="link" href="https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming" target="_blank" rel="noopener" +>函数式编程入门</a>,一篇介绍函数式编程的文章,介绍了函数式编程的基本概念和一些重要的函数式编程概念,并使用Javascript演示了如何使用这些概念进行函数式编程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-18-09.png" +width="450" +height="220" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="490px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 023 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/Wed, 08 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/<h1 id="机器文摘-第-023-期">机器文摘 第 023 期</h1> +<h2 id="长文">长文</h2> +<h3 id="视频信号可以被窃听吗">视频信号可以被窃听吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-10-45.png" +width="533" +height="234" +loading="lazy" +class="gallery-image" +data-flex-grow="227" +data-flex-basis="546px" +> +我之前听到过一个传说。</p> +<p>使用高灵敏度的天线,再加上一些奇妙的设备。</p> +<p>可以窃听(窃视?)到附近(方圆数百米)范围之内的显示器显示的内容。</p> +<p>这个传说流传的时候,还是CRT显示器的时代,当时的视频接口主要是VGA,采用模拟信号进行传输。</p> +<p>如果显示器或者视频线缆所作的屏蔽不够充分的话,难免会有信号泄露。</p> +<p>而VGA信号又没有任何加密,被别有用心的人收看是有一定的可能的。</p> +<p>时间发展到今天,视频接口早已升级,我以为除非不小心无线投屏到了邻居家,否则就不会有视频内容泄露的情况。</p> +<p>然而,<a class="link" href="https://www.windytan.com/2023/02/using-hdmi-radio-interference-for-high.html" target="_blank" rel="noopener" +>今天要说的这篇文章</a>则证实了上述传说的可能。</p> +<p>不过,比起传说中的窃听,作者走的更远一些。</p> +<p>起因是作者在家里摆弄无线电的时候,发现了一个信号干扰源,最后发现来自他的一个树莓派设备。</p> +<p>于是经过一番操作,作者不但成功通过无线接收的方式将视频信号显示了出来。</p> +<p>还利用这种无线信号的干扰(或泄露?)实现了叠加数据的传输。</p> +<h3 id="怎样用密码保护一个静态页面">怎样用密码保护一个静态页面?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-34-20.png" +width="903" +height="429" +loading="lazy" +class="gallery-image" +data-flex-grow="210" +data-flex-basis="505px" +> +说到网站上的数据权限保护,一般我们会需要后端程序配合。</p> +<p>比如使用账号系统,给用户角色分配不同的权限,使其访问后端接口时获取不同的数据。</p> +<p>如果没有后台程序,只有静态页面会怎样?</p> +<p>这儿有个开源工具,<a class="link" href="https://robinmoisson.github.io/staticrypt/" target="_blank" rel="noopener" +>可以帮你生成带有密码保护的静态HTML页面</a>。</p> +<p>具体使用方法和原理也很简单。</p> +<p>输入你想设置的密码和你的HTML页面原始代码,这个工具可以使用AES-256加密算法对其进行加密。</p> +<p>然后在浏览器加载时,页面自动使用一个js库实现自解密。</p> +<p>这个方法用于临时保护一些静态的内容还是挺有效的,而且很方便。</p> +<h3 id="写代码越干净越好吗">写代码越“干净”越好吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-43-47.png" +width="713" +height="344" +loading="lazy" +class="gallery-image" +data-flex-grow="207" +data-flex-basis="497px" +> +有不少人宣称自己有代码“洁癖”。</p> +<p>对于设计模式和面向对象有着非常深的执念(或者函数式编程也是)。</p> +<p>市面上也充斥着很多“之美”、“之道”、“之禅”之类的书籍,强调代码要给人读、整洁干净。</p> +<p>我并不反对上述观点,甚至自己也有一点这样的“洁癖”,只是有时内心会有一丝怀疑的时候,觉得如果过于追求某些东西可能会偏离了解决问题的根本目标。</p> +<p>这篇<a class="link" href="https://www.computerenhance.com/p/clean-code-horrible-performance" target="_blank" rel="noopener" +>《“干净”的代码,糟糕的性能》</a>,帮我吐槽了一些事情。</p> +<p>但作者在文中所举的例子稍微有些牵强,不必过于纠结。</p> +<h3 id="不知道怎么练习编程怎么办">不知道怎么练习编程怎么办</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-58-53.png" +width="469" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="358px" +> +经常有人困惑在学习了一门新的编程语言之后,不知该做些什么。</p> +<p>就像是掌握了词语却写不出好的小说,掌握了规则也下不好象棋。</p> +<p>我们从小受到的教育方式导致了,在学习技能这一块,缺失实践的动力和方法。</p> +<p>这篇<a class="link" href="https://prog21.dadgum.com/80.html" target="_blank" rel="noopener" +>给无目标的新手程序的一些建议</a>,虽然内容不多,但是可以看出作者也是个老油条了。</p> +<p>给出的一些提示都很实在,对于技能练习方面,提的都是我希望我能遵从的。</p> +<p>比如:</p> +<blockquote> +<p>用技能解决你实际生活中的问题。 +做一些你真正会用到的东西。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.freecodecamp.org/chinese/news/typescript-for-react-developers/" target="_blank" rel="noopener" +>写给 React 开发者的 TypeScript 指南</a>,针对React程序员的TypeScript的学习资料,解答了我一部分为什么要用TS的问题。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-01-19.png" +width="698" +height="375" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="446px" +></li> +<li><a class="link" href="https://method.ac/" target="_blank" rel="noopener" +>Method of Action</a>,一些免费的工具和在线小游戏(颜色搭配、贝塞尔曲线等),可以帮助你学习和掌握设计理念和工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-02-12.png" +width="605" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="131" +data-flex-basis="314px" +></li> +<li><a class="link" href="https://archivebox.io/" target="_blank" rel="noopener" +>Archivebox</a>,一套开源的互联网内容保存方案,可以将你喜欢的页面下载下来,并自动爬取相关链接、图片等内容,类似于互联网档案馆的https://archive.org,不过可以自己搭建。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-06-33.png" +width="686" +height="285" +loading="lazy" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="577px" +></li> +<li><a class="link" href="https://ohiostate.pressbooks.pub/graphicshistory/front-matter/cover/" target="_blank" rel="noopener" +>History of Computer Graphics and Animation</a>,一本讲解计算机图形和动画发展历程的电子书,里面记录了计算机图形学相关的许多参考资料,曾用于俄亥俄州立大学的授课。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-08-29.png" +width="676" +height="711" +loading="lazy" +class="gallery-image" +data-flex-grow="95" +data-flex-basis="228px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 022 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/Wed, 01 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/<h1 id="机器文摘-第-022-期">机器文摘 第 022 期</h1> +<h2 id="长文">长文</h2> +<h3 id="自制家庭服务器">自制家庭服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-10-51-39.png" +width="668" +height="367" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="436px" +> +人们常说,中年技术男的最终归宿除了钓鱼和盘核桃之外,还有一项就是折腾家里的服务器,这些服务器形态各异,但是作用都是殊途同归:NAS、软路由、虚拟化、Docker容器。</p> +<p>怎样变着花样搭建家庭服务器几乎是 V 站的月经甚至日经话题。</p> +<p>这里有个国外的老哥,决定使用 ARM64 架构自己“装配”一个,是那种需要焊接的“装配”。</p> +<p>有兴趣的可以翻阅一下这篇<a class="link" href="https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html" target="_blank" rel="noopener" +>《构建 ARM64 家庭服务器》</a>。</p> +<p>文章介绍了如何用一种较为困难的方式构建一个 ARM64 架构的家用服务器。</p> +<p>作者使用了一块名为 ROCKPro64 的开发板,并详细介绍了构建过程中遇到的问题以及如何解决这些问题。</p> +<p>文章中包含了安装基础操作系统、配置网络连接、设置磁盘阵列和安装各种软件的详细步骤和指导,涵盖了从硬件到软件的多个方面。</p> +<p>在构建过程中,作者提到了一些常见的问题和解决方法,例如如何处理不同操作系统的差异,如何在开发板上设置固件,以及如何解决硬件不兼容问题。</p> +<p>总之,这篇文章是一份详细的指南,可以帮助有兴趣构建自己的家用服务器的读者了解基础知识,克服可能遇到的问题,并学习如何从头开始构建一个高效、安全的服务器。</p> +<blockquote> +<p>上面这段是让 chatGPT 帮我写的 :)</p> +</blockquote> +<h3 id="用rust写一个大小仅有2k的极简fps游戏">用Rust写一个大小仅有2K的极简FPS游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-11-06-53.png" +width="480" +height="258" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="446px" +> +极简渲染器的编写教程网上有很多,但大都浅尝辄止,以静态渲染为主。</p> +<p><a class="link" href="https://grantshandy.github.io/posts/raycasting/" target="_blank" rel="noopener" +>这篇文章</a>则从制作一个第一人称射击游戏的视角出发,讲解了怎样使用光线投射技术实现最基本的三维空间渲染、光照、阴影等效果。</p> +<p>作者使用 Rust 语言基于 wasm 技术编写了一个在网页中运行的示例程序,该程序非常小巧,但是也充分展现了如何使用光线投射算法来实现 3D 渲染技术仲的一些基本概念,比如:墙体贴图、视角控制等。</p> +<p>是我看到的教程里比较系统的一个,适合作为爱好者去研究。</p> +<h3 id="玩具-cpu-模拟器">玩具 CPU 模拟器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-24-45.png" +width="640" +height="480" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +国外一个大学老师觉得他的计算机组成原理课程有些枯燥,于是他<a class="link" href="https://jimhall.itch.io/toy-cpu" target="_blank" rel="noopener" +>动手撸了一个 CPU 模拟器出来</a>,以帮助学生们更好的理解计算机内部运作原理。</p> +<p>作者在文章里介绍了基本的原理,以及模拟器的各个组件,适合学习底层原理初入门的学生。</p> +<p>另外这个模拟器也基于 MIT 协议进行了开源,文章中附有开源仓库的地址和编译好的可执行文件下载连接。</p> +<p>需要注意的是该程序运行环境为DOS,现在要想体验的话,需要先安装 <a class="link" href="https://www.dosbox.com/download.php?main=1" target="_blank" rel="noopener" +>DosBOX</a> 这个模拟器。</p> +<h3 id="不用任何构建系统编写前端代码">不用任何构建系统编写前端代码</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-35-29.png" +width="632" +height="224" +loading="lazy" +class="gallery-image" +data-flex-grow="282" +data-flex-basis="677px" +> +比起十几年前,前端开发工程现在已经变得十分复杂。</p> +<p>有次我想写个简单的页面程序,但是却花费了一上午的时间陷入对框架和构建系统的选择上。</p> +<p>后来不得不放弃,改用记事本随便用原生Javascript完成了功能。</p> +<p><a class="link" href="https://jvns.ca/blog/2023/02/16/writing-javascript-without-a-build-system/" target="_blank" rel="noopener" +>这篇文章</a>的作者跟我有同样的感受。</p> +<p>作者认为,对于一些简单的项目来说,使用构建系统可能是不必要的。</p> +<p>因为构建系统会增加开发和维护的复杂性,而且可能会导致一些性能问题。</p> +<p>文章演示了作者如何使用原生的Javascript和浏览器的开发者工具来实现一些常见的构建系统功能。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/CyC2018/CS-Notes" target="_blank" rel="noopener" +>计算机知识笔记</a>,一个计算机科学知识笔记仓库,包括计算机基础知识、编程语言和算法、开发工具、面试笔试题目等等,是一个非常实用的笔记库。目前在 Github 上有超过 162k 个 star 。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-47-03.png" +width="344" +height="602" +loading="lazy" +class="gallery-image" +data-flex-grow="57" +data-flex-basis="137px" +></li> +<li><a class="link" href="https://www.hugi.scene.org/online/hugi31/hugi%2031%20-%20index%20coding%20corner.htm" target="_blank" rel="noopener" +>Creating Demos</a>,这套教程是 <a class="link" href="https://en.wikipedia.org/wiki/Hugi" target="_blank" rel="noopener" +>Hugi 杂志</a>在2001年第31期发布的一系列编程文章,主题是“Demo程序”的制作,是我目前在网络上见到的比较完整和耐心的一套讲解 Demoscene 如何制作的教程。虽然有些技术是老旧的,但是思想一直是不变的,能够学到很多平时很难了解到的东西,现在很少有人愿意分享这些了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-52-29.png" +width="543" +height="367" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="355px" +></li> +<li><a class="link" href="https://github.com/iawia002/lux" target="_blank" rel="noopener" +>网络视频下载器</a>,一个 go 语言编写的网络音视频资源下载工具,类似 youtube-dl,但是支持的网站要更多一些。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-54-53.png" +width="870" +height="666" +loading="lazy" +class="gallery-image" +data-flex-grow="130" +data-flex-basis="313px" +></li> +<li><a class="link" href="https://www.ambient.run/" target="_blank" rel="noopener" +>ambient</a>,Ambient是一个使用 WebAssembly、Rust 和 WebGPU 技术构建的高性能多人游戏和3D应用的开源引擎。特点是针对构建多人游戏开发进行优化支持。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-14-03-29.png" +width="981" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="622px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 021 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/Wed, 22 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/<h1 id="机器文摘-第-021-期">机器文摘 第 021 期</h1> +<h2 id="长文">长文</h2> +<h3 id="chatgpt-原理通俗讲解">chatGPT 原理通俗讲解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-14-57-11.png" +width="1240" +height="410" +loading="lazy" +class="gallery-image" +data-flex-grow="302" +data-flex-basis="725px" +> +可能是有人炒作的缘故,chatGPT 热度一直不降,连街边买菜的大妈都在讨论这个“人工智能机器人”。</p> +<p>可能是它输出语言的流畅度实在是太接近真实的人类了,用惯了之前那种“智能助理”的人很容易感到震惊。</p> +<p>然而其背后的原理并非像想象的那么复杂,甚至是大力出奇迹的又一个经典样例。</p> +<p>最近关于它的文章也是铺天盖地,各种分析、叫好,很少有冷静下来探讨其背后机理的。</p> +<p>我翻看了几篇之后,发现唯有这篇<a class="link" href="https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/" target="_blank" rel="noopener" +>《chatGPT在做什么以及它为什么好使》</a> 比较优秀。读起来比较平和,没有压力。</p> +<p>文章揭示了即使像chatGPT这样的大型语言模型也是一个单词一个单词慢慢往出崩的,并尝试说清楚这么流畅的语言是基于什么来预测后续单词的概率。</p> +<h3 id="怎样利用多gpu训练真正的大型模型">怎样利用多GPU训练真正的大型模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-13-37.png" +width="920" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="478px" +> +前面提到的 chatGPT 模型,体量非常大,据说训练一次就要耗费上千万美元。</p> +<p>作为普通开发者我们是不敢奢望自己上手训练一番。</p> +<p>不过,这里有一篇文章可以让我了解像这样的<a class="link" href="https://lilianweng.github.io/posts/2021-09-25-train-large/" target="_blank" rel="noopener" +>大模型是如何进行并行训练的</a>。</p> +<p>另外还有个开源的项目,号称可以<a class="link" href="https://github.com/hpcaitech/ColossalAI/blob/main/README-zh-Hans.md" target="_blank" rel="noopener" +>在较少资源的基础设施上进行 GPT 模型训练</a>,有兴趣的可以试试。</p> +<h3 id="怎样搭建一个电子爱好者工作间">怎样搭建一个电子爱好者工作间</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-28-10.png" +width="716" +height="439" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="391px" +> +拥有一个电子产品工作室一直是我的一个梦想。</p> +<p>电烙铁、稳压电源、万用表,是我能想到的最基本的设备。</p> +<p>如果还想更完美,可以借鉴这篇文章所介绍的思路,<a class="link" href="https://lcamtuf.substack.com/p/setting-up-an-electronics-workshop" target="_blank" rel="noopener" +>搭建一个电子爱好者工作间</a>。</p> +<h3 id="运气计算公式">运气计算公式</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-37-36.png" +width="809" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="141" +data-flex-basis="340px" +> +看到一个关于运气的文章<a class="link" href="https://www.swyx.io/create-luck" target="_blank" rel="noopener" +>《如何获得好运气》</a>,觉得里面提到的“怎样使得随机的运气变得让好运更加倾向于你”的说法比较有意思。</p> +<p>于是就收录一下。</p> +<p>文章里探讨的问题,很容易让我联想到关于“下雨的时候是飞速跑动淋雨多还是慢慢走淋雨多”的问题。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://academy.cs.cmu.edu/" target="_blank" rel="noopener" +>卡耐基梅隆大学计算机科学在线教程</a>,CMU CS Academy 是卡内基梅隆大学计算机科学学院 (SCS) 的一个项目,其目标是开发一种新颖的、世界级的、在线的、完全免费的交互式高中计算机科学课程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-45-42.png" +width="767" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="472px" +></li> +<li><a class="link" href="https://www.handsome-css.com/" target="_blank" rel="noopener" +>纯CSS实现的超漂亮UI组件收集</a>,网站收集了超多 UI 组件,基于 纯 CSS 实现,采用 MIT 开源协议发布,可以自由使用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-47-30.png" +width="863" +height="349" +loading="lazy" +class="gallery-image" +data-flex-grow="247" +data-flex-basis="593px" +></li> +<li><a class="link" href="https://cn.sli.dev/" target="_blank" rel="noopener" +>为开发者打造的演示文稿工具</a>,Slidev 旨在为开发者提供灵活性和交互性,通过使用他们已经熟悉的工具和技术,使他们的演示文稿更加有趣、更具表现力和吸引力。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-50-17.png" +width="652" +height="251" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="623px" +></li> +<li><a class="link" href="https://www.stableattribution.com/" target="_blank" rel="noopener" +>根据ai做的图倒推出用于训练模型的原始图</a>,这个网站比较有意思,前一段时间比较火的根据文字生成图片的 AI ,这里可以将根据 AI 生成的图片反推出它当时样本训练的原始图。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-56-55.png" +width="1696" +height="398" +loading="lazy" +class="gallery-image" +data-flex-grow="426" +data-flex-basis="1022px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 020 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/Wed, 15 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/<h1 id="机器文摘-第-020-期">机器文摘 第 020 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样获得非凡成就">怎样获得非凡成就</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-09-57-43.png" +width="749" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="469px" +> +多年来,我对成功学嗤之以鼻。</p> +<p>但也对有些人的成功给予应有的尊重。</p> +<p>我所欣赏的成功人士有一种特殊气质,我说不上来具体是什么特点,有点儿像反叛精神,又有点儿对手工技术的狂热。</p> +<p>这些人里对我影响比较大的是《黑客与画家》的作者 保罗·格雷厄姆(<a class="link" href="https://zh.wikipedia.org/zh-hans/%E4%BF%9D%E7%BD%97%C2%B7%E6%A0%BC%E9%9B%B7%E5%8E%84%E5%A7%86" target="_blank" rel="noopener" +>Paul Graham</a>)。</p> +<p>他创建了著名的 <a class="link" href="https://zh.wikipedia.org/zh-hans/Y_Combinator" target="_blank" rel="noopener" +>YC 孵化器公司</a>,也打造了很多成功的产品。</p> +<p>今天推荐的这篇文章<a class="link" href="https://blog.samaltman.com/how-to-be-successful" target="_blank" rel="noopener" +>《How To Be Successful》</a>的作者,是保罗·格雷厄姆非常推崇的一位创业者。</p> +<p>文章分享的观点乍看有成功学的影子,但读完却能引人思考。</p> +<p>这里是中文翻译版:<a class="link" href="https://mp.weixin.qq.com/s/pQYztNmmQ6W4fRxPIEsWYQ" target="_blank" rel="noopener" +>《观察成千上万创业者后,关于如何获得非凡成就的13条思考》</a></p> +<p>我觉得这些观点至少可以给长期埋头技术工作的人们一些启发,我稍微列举几条如下:</p> +<blockquote> +<ul> +<li>这个世界很少人能做到将眼光放长远,而那些有长远眼光的人会得到市场的丰厚回报。</li> +<li>把时间花在做正确的事上,比花长时间进行工作更重要。</li> +<li>跟着你的好奇心走。因为对你来说兴奋的事情对其他人来说也同样兴奋。</li> +<li>成为内驱型的人(即:自己去做一件事的原因来自于自己,而不是外部的力量或别人的期望)。</li> +</ul> +</blockquote> +<h3 id="怎样在客厅建立自己的私人影院">怎样在客厅建立自己的私人影院</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-21-45.png" +width="841" +height="396" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="509px" +> +智能电视或者智能盒子已成为现在客厅的标配。</p> +<p>如何充分发挥它们的作用,早已是技术爱好者的孜孜不倦探索的课题。</p> +<p>前些天我偶然收到一份公开的云盘链接,使用开源的 <a class="link" href="https://github.com/alist-org/alist" target="_blank" rel="noopener" +>AList</a>(一个支持网盘存储的文件列表程序,可以通过多种协议将网盘映射为本地访问的存储路径) 进行构建。里面整理了大量的影视资源,有不少是高质量、高码率的蓝光原盘文件。</p> +<p>这就激发了我的好奇心。</p> +<p>由于自己一直按耐住折腾 NAS 的念头,这些年一直没有收集电影。</p> +<p>但现在既然有在线的资源,不妨尝试一下。</p> +<p>于是我找到了这篇<a class="link" href="https://wp.gxnas.com/12278.html" target="_blank" rel="noopener" +>《利用KODI和云盘打造4K高清私人云影院》</a>(仅作研究,观影和收藏还需支持正版)。</p> +<p>按照文章的指导,成功给电视安装了 KODI(一个媒体中心 App),并进行了配置,可以非常方便地浏览、观看互联网云盘上的高清电影。</p> +<p>比起云盘官方所出品的各种 App 在体验上更加灵活、完美。</p> +<h3 id="噪声在计算机图形学里的作用">“噪声”在计算机图形学里的作用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-40-28.png" +width="671" +height="303" +loading="lazy" +class="gallery-image" +data-flex-grow="221" +data-flex-basis="531px" +> +想要计算机产生的图形更加的接近自然,生成各式各样的噪声是必不可少的算法。</p> +<p>之前在读<a class="link" href="https://natureofcode.com/" target="_blank" rel="noopener" +>《The Nature of Code》</a>(中文译作:代码本色)一书的时候,作者花了大量篇幅讲解关于噪声、随机等对于模拟自然界中各种现象的重要作用。</p> +<p>或许在噪声里就隐藏着大自然最深处的秘密。</p> +<p>这篇<a class="link" href="https://zhuanlan.zhihu.com/p/68507311" target="_blank" rel="noopener" +>WebGL进阶——走进图形噪声</a>可以让你领略一些图形噪声的神奇。</p> +<p>很多场景都给出了 WebGL 实现的源码,可以边学边练。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://threegn.app/" target="_blank" rel="noopener" +>ThreeGN</a>,一个基于网页的三维建模程序,特点是具有类似 Blender 的几何节点编辑功能。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-51-53.png" +width="846" +height="453" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></p> +</li> +<li> +<p><a class="link" href="https://tabler-icons.io/" target="_blank" rel="noopener" +>tabler</a>,一个开源的图标库,可用于 Web 或 移动端应用开发,全部免费使用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-55-30.png" +width="796" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="253" +data-flex-basis="608px" +></p> +</li> +<li> +<p><a class="link" href="https://microsoftedge.microsoft.com/addons/detail/%E6%B2%89%E6%B5%B8%E5%BC%8F%E7%BF%BB%E8%AF%91/amkbmndfnliijdhojkpoglbnaaahippg" target="_blank" rel="noopener" +>immersive-translate</a>,一个在线翻译浏览器插件,支持 Edge、Firefox、Chrome 等浏览器,优点是可以在网页上追加中文显示,原文和译文同时展示,对于想提升外语水平的人士,是个不错的对照工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-59-08.png" +width="621" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 019 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/Tue, 07 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/<h1 id="机器文摘-第-019-期">机器文摘 第 019 期</h1> +<h2 id="长文">长文</h2> +<h3 id="现阶段-ai-能对游戏开发提供多大帮助">现阶段 AI 能对游戏开发提供多大帮助</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-19-34.png" +width="686" +height="358" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +> +AI 在最近有多爆发自然不用我再赘述,抛开那些狂热的能够引起焦虑的言论(比如 AI 即将替代大量工作岗位),也有不少人选择跟 AI 和平相处。</p> +<p>这篇<a class="link" href="https://www.traffickinggame.com/ai-assisted-graphics/" target="_blank" rel="noopener" +>《AI 辅助图形》</a>的作者是一个有着游戏制作二十年经验的从业者,近期想尝试尽可能地利用各种 AI 加持的辅助工具,试图通过他们提升制作效率。</p> +<p>作者从游戏的概念原型阶段,一直到三维模型资产的制作和游戏场景的搭建,均选用了具有 AI 能力的效率工具进行支持。</p> +<p>最终结论是,虽然在过程中会有这样那样的不顺手,但这些工具确实能够帮助他节约大量工作时长。</p> +<p>所以作者的看法是,他很愿意将 AI 工具看作他的同事。</p> +<p>照这么说的话,留给人类的工作真的是不多了。</p> +<h3 id="chatgpt-学习笔记">ChatGPT 学习笔记</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-32-44.png" +width="600" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="427px" +> +ChatGPT 在春节后又起了一波热度。</p> +<p>网上到处都是关于它的段子,有人用它写论文,有人拿来给孩子辅导作业,有人写情书,有人当个动嘴的甲方让它写程序。</p> +<p>喜得微软恨不得现在就把它接到搜索引擎里,逼得谷歌提前释放出自己的类似模型。</p> +<p>国内的百度也表示将在3月份发出自己的大规模语言模型。</p> +<p>要我说就不要这么着急,不妨拨开迷雾,看看 ChatGPT 是个什么东东。</p> +<p>在网上发现这篇<a class="link" href="https://blog.csdn.net/v_JULY_v/article/details/128579457" target="_blank" rel="noopener" +>《ChatGPT 通俗笔记》</a>,讲述了这个模型的发展历程,以及一些基本的概念原理。</p> +<p>此类中文资料不多,给这篇文章作者点赞。</p> +<h3 id="视觉设计的一些规则">视觉设计的一些规则</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-49-28.png" +width="697" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +> +现在专业的界限越来越模糊,每个人都应该掌握一些基本的设计理念,以便在日常工作中输出的成果具备基本的美感。</p> +<p>这篇<a class="link" href="https://anthonyhobday.com/sideprojects/saferules/" target="_blank" rel="noopener" +>《视觉设计安全法则》</a>,浅显易读、明确具体,对于视觉设计活动很有指导意义。</p> +<p>看完之后无论是自己动手做 PPT 还是软件的 demo 原型,都可以用到。</p> +<p>我觉得甚至对于摄影构图、房屋装修都能有所借鉴,因为美是相通的。</p> +<h3 id="python-做后端开发的技术选型">Python 做后端开发的技术选型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-57-37.png" +width="673" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="514px" +> +有时候想做一些 Web 应用的原型,Python 是我的首选语言,写起来顺手又省事,能节约不少时间。</p> +<p>但是由于用的不够深入,在选择开发框架的时候,稍微有些困惑。</p> +<p>比如同样都能提供快速的开发能力,Fastapi 和 Flask到底选哪个?</p> +<p>如果你也有跟我一样的疑惑,可以看看这篇<a class="link" href="https://www.turing.com/kb/fastapi-vs-flask-a-detailed-comparison" target="_blank" rel="noopener" +>《Fastapi 和 Flask 详细对比》</a>。</p> +<p>文章深度分析了这两个框架的异同以及所适用的工作场景。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/red-data-tools/YouPlot" target="_blank" rel="noopener" +>YouPlot</a>,控制台绘图工具,可以在控制台窗口用字符的方式进行绘图,支持柱状图、散点图等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-10-37.png" +width="587" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="396px" +></p> +</li> +<li> +<p><a class="link" href="https://play-cs.com/zh/servers" target="_blank" rel="noopener" +>网页在线联机 CS1.6</a>,只需浏览器即可联机玩反恐精英 1.6,这个网站通过 WASM 技术将 CS 1.6 移植到了网页中运行,现代浏览器均可支持,第一次加载时间略长,但体验还算流畅,在线人员数量也挺多,随时可以匹配到。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-20-36.png" +width="811" +height="397" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="490px" +></p> +</li> +<li> +<p><a class="link" href="https://fffuel.co/sssvg" target="_blank" rel="noopener" +>交互式 SVG 参考</a>,一个可以在线了解 SVG 图形标准细节的网站,提供交互式界面进行实时演示。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-25-38.png" +width="904" +height="428" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="506px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/LunarFang416/url-animations" target="_blank" rel="noopener" +>浏览器地址栏里的动画</a>,一个有意思的 Js 库,通过动态修改浏览器地址栏的 URL 地址来实现动画,效果还比较萌。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-26-39.png" +width="757" +height="208" +loading="lazy" +class="gallery-image" +data-flex-grow="363" +data-flex-basis="873px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 018 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/Tue, 31 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/<h1 id="机器文摘-第-018-期">机器文摘 第 018 期</h1> +<h2 id="长文">长文</h2> +<h3 id="游戏高清重制科林麦克雷拉力赛3">游戏高清重制《科林麦克雷拉力赛3》</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-15-47.png" +width="857" +height="434" +loading="lazy" +class="gallery-image" +data-flex-grow="197" +data-flex-basis="473px" +> +游戏高清重制一直是我比较感兴趣的话题,可能因为比较喜欢怀旧吧。</p> +<p>我曾经收藏过采用覆盖显示驱动的方式进行高清分辨率支持的《极品飞车 5》、《Quake 3》等游戏。</p> +<p>也见过一些更古老的游戏在更新资源包之后重新焕发青春。</p> +<p>不过一直没有接触过真正的重制过程。</p> +<p>这篇<a class="link" href="https://cookieplmonster.github.io/2023/01/15/remastering-colin-mcrae-rally-3-silentpatch/" target="_blank" rel="noopener" +>《重制科林麦克雷拉力赛》</a>详细记录了一个优秀的赛车游戏进行高清重制的过程。</p> +<p>可以带你了解老旧游戏如何进行“宽屏”、“超宽屏”支持,如何重制高清界面UI元素等,过程充满了对不可能的挑战。</p> +<h3 id="把网页渲染到控制台">把网页渲染到控制台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-24-01.png" +width="1067" +height="464" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +通过控制台窗口进行上网,你可能觉得并不新鲜。</p> +<p>毕竟已经有很多类似 w3m 这种在控制台下基于字符的浏览器程序。</p> +<p>但是他们的缺点都是不能显示图形,而且几乎失去了对页面的样式渲染。</p> +<p>今天这篇<a class="link" href="https://fathy.fr/carbonyl" target="_blank" rel="noopener" +>《把网页渲染到控制台》</a>则另辟蹊径,虽然同样是在控制台的字符界面,但是渲染手段却大不相同。</p> +<p>它将控制台字符当作单个像素来处理,采用现代浏览器内核进行页面解析和预渲染计算。</p> +<p>然后在像素渲染阶段,采用了控制台字符来进行替换。</p> +<p>虽然最终效果无法跟图形界面下的浏览器相比。</p> +<p>但是它毕竟提供了一种在终端控制台进行图形化网页显示的可能。</p> +<h3 id="chromium-渲染流水线字节码到像素的一生">Chromium 渲染流水线——字节码到像素的一生</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-32-37.png" +width="481" +height="580" +loading="lazy" +class="gallery-image" +data-flex-grow="82" +data-flex-basis="199px" +> +看了前面网页渲染到控制台的文章,如果对浏览器的原理架构比较感兴趣的话。</p> +<p>可以看看这篇<a class="link" href="https://zhuanlan.zhihu.com/p/574069391" target="_blank" rel="noopener" +>讲解 Chromium 浏览器渲染架构</a>的文章。</p> +<p>现代浏览器已经复杂到不可能通过个人从零开始实现。</p> +<p>了解一下他们的架构,即便不从事相关开发,也可能对自己的软件架构产生有益影响。</p> +<h3 id="99-行代码实现光线追踪">99 行代码实现光线追踪</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-40-20.png" +width="702" +height="235" +loading="lazy" +class="gallery-image" +data-flex-grow="298" +data-flex-basis="716px" +> +光线追踪在图形渲染中十分关键的概念。</p> +<p>同时也是现代电影工业实现逼真光照渲染所必须的技术手段。</p> +<p>然而它的原理却并不复杂,甚至只需少量代码就可以自己实现一个建议的渲染器。</p> +<p>这篇<a class="link" href="http://kevinbeason.com/smallpt/" target="_blank" rel="noopener" +>《99 行代码实现光线追踪》</a>就只是用了少量 C++ 代码实现了一个简单的带有全局光照、阴影、反射的场景渲染。</p> +<p>虽然看起来简单,效果还是很令人惊艳的。</p> +<p>适合我这种喜欢研究原理,但又不太深入的“技术爱好者”。</p> +<h3 id="光线追踪深入">光线追踪深入</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-47-14.png" +width="731" +height="333" +loading="lazy" +class="gallery-image" +data-flex-grow="219" +data-flex-basis="526px" +> +既然前面提到了光线追踪,不妨再引申一下。</p> +<p>很多光线追踪的入门教程都会教你渲染一些简单的模型,比如球体,圆柱体等等。</p> +<p>如果想基于光线追踪技术渲染复杂一些的三维模型,应该怎么做?</p> +<p>这里有一篇<a class="link" href="https://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/" target="_blank" rel="noopener" +>《光线行进和符号距离函数》</a>,里面介绍了基于光线行进算法(光线追踪的一种实现方式)和符号距离函数来构建三维场景中复杂模型的思路。</p> +<p>内容比较详细,并带有示例代码。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://www.chronophoto.app/game.html" target="_blank" rel="noopener" +>chronophoto</a>,一个猜照片年代的游戏,根据网站随机展示的老照片,来判断这张照片是哪一年拍摄的,答案区间 1900 到 2020 ,我试了试还挺有意思,可以根据照片中出现的物品和人物的衣着进行分析。<br> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-56-50.png" +width="944" +height="432" +loading="lazy" +class="gallery-image" +data-flex-grow="218" +data-flex-basis="524px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/GimelStudio/GimelStudio" target="_blank" rel="noopener" +>Gimel Studio</a>,一个基于节点系统的照片后期处理工具,开源,采用 Python 编写。<br> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-00-55.png" +width="1009" +height="537" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/vitoplantamura/BugChecker" target="_blank" rel="noopener" +>BugChecker</a>,一个支持 Windows 11 的类 SoftICE 调试器,开源。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-04-14.png" +width="649" +height="376" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="414px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/google/swiftshader" target="_blank" rel="noopener" +>swiftshader</a>,一个基于 CPU 实现 OpenGL 渲染的图形库。主要应用在谷歌开源的 chromium 项目里,用纯软件算法实现了OpenGL、Vulkan图形接口。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-08-42.png" +width="308" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 017 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/Mon, 16 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/<h1 id="机器文摘-第-017-期">机器文摘 第 017 期</h1> +<p><em>预计春节期间暂停更新,节后恢复。</em></p> +<h2 id="长文">长文</h2> +<h3 id="怎样在-1-位色深的-lcd-屏幕上显示灰度httpswwwzephraymepostgrayscale_lcd"><a class="link" href="https://www.zephray.me/post/grayscale_lcd/" target="_blank" rel="noopener" +>怎样在 1 位色深的 LCD 屏幕上显示灰度</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-33-34.png" +width="1920" +height="1080" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +只有 1 位色深的 LCD 屏幕按理说是不能显示灰度的,因为他的像素点要么纯黑、要么纯白,显示的图案效果肯定非常差。</p> +<p>如果说非要显示灰度的话,我第一个想法是通过<a class="link" href="https://zh.wikipedia.org/wiki/%E6%8A%96%E5%8B%95_%28%E6%95%B8%E4%BD%8D%E8%A8%8A%E8%99%9F%E8%99%95%E7%90%86%29" target="_blank" rel="noopener" +>抖动算法</a>进行模拟(即通过像素点的稀疏程度来制造错觉,如下图)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-40-49.png" +width="180" +height="215" +loading="lazy" +class="gallery-image" +data-flex-grow="83" +data-flex-basis="200px" +></p> +<p>然而这篇文章的作者采取了更为巧妙地方法,使用 PWM (脉冲宽度调制)技术,利用每个像素点的点亮时间不同来制造灰度错觉。</p> +<p>之前只是见过使用 PWM 调整 LED 灯泡的亮度,像这种用法我倒是第一次见。</p> +<h3 id="作为一名数据工程师和作家我为什么要用-neovimhttpswwwsspaeticomblogwhy-using-neovim-data-engineer-and-writer-2023"><a class="link" href="https://www.sspaeti.com/blog/why-using-neovim-data-engineer-and-writer-2023/" target="_blank" rel="noopener" +>作为一名数据工程师和作家,我为什么要用 (Neo)vim</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-44-27.png" +width="500" +height="264" +loading="lazy" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="454px" +></p> +<p>很多人都被 Vim 复杂的功能和陡峭的学习曲线吓到过。</p> +<p>也有很多人本着对效率的极致追求,而选择了征服 Vim,从而走上高效(折腾)的路线。</p> +<p>本文作者作为一名数据工程师,讲述了他学习 Vim 的心路历程,也许对于现在还在观望的人有所启发。</p> +<p>我个人使用 Vim 已十多年时间,虽然从未触及特别深入的技能(如宏定义、寄存器等),但是 Vim 这种神器的特点就是,只要你忍者难受越过操作的及格线,剩下的技能你稍微多掌握一点,就能马上给你带来非常丰厚的回报。</p> +<h3 id="焦散是什么如何正确地渲染焦散httpswwwchaoscomcnblogwhat-are-caustics-and-how-to-render-them-the-right-way"><a class="link" href="https://www.chaos.com/cn/blog/what-are-caustics-and-how-to-render-them-the-right-way" target="_blank" rel="noopener" +>焦散是什么?如何正确地渲染焦散?</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-55-28.png" +width="850" +height="469" +loading="lazy" +class="gallery-image" +data-flex-grow="181" +data-flex-basis="434px" +> +焦散(Caustics)在现实生活中随处可见,但在渲染图中却很稀有。这篇文章解答了为什么渲染焦散很难,以及有哪些方法可以迂回实现。</p> +<p>找到这篇文章是因为我在 Github 上发现了<a class="link" href="https://github.com/pmndrs/drei#caustics" target="_blank" rel="noopener" +>一个使用 webgl 实现焦散渲染的项目</a>,效果非常不错,于是想研究一下背后的原理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-02-22.png" +width="652" +height="339" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="461px" +></p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://refactoringguru.cn/design-patterns" target="_blank" rel="noopener" +>常用设计模式有哪些</a>,一本在线电子书,图文并茂,以比较直观的方式介绍了软件开发常用的设计模式,支持英文、日文、中文等多国语言。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-04-26.png" +width="673" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +></p> +</li> +<li> +<p><a class="link" href="https://abseil.io/resources/swe-book/html/toc.html" target="_blank" rel="noopener" +>谷歌的软件工程</a>,好几年前的一本书,讲述在谷歌做软件开发的体验和最佳实践,现在出了可免费阅读的电子版。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-04-41.png" +width="504" +height="662" +loading="lazy" +class="gallery-image" +data-flex-grow="76" +data-flex-basis="182px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/ToolJet/ToolJet" target="_blank" rel="noopener" +>开源低代码开发框架 ToolJet</a>,免费开源的低代码开发框架,带有可视化编辑器,从数据持久化到前端界面全部无需编写代码。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-08-12.png" +width="795" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="460px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/Eandrju/cellular-automaton.nvim" target="_blank" rel="noopener" +>一个无聊的 Neovim 插件</a>,一个没啥用的 Neovim 插件,唯一能做的事情是当你感到无聊时,可以将你的文本编辑区里的文本执行一个“元胞自动机”动画,看起来还算解压。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-11-33.png" +width="547" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="89" +data-flex-basis="213px" +></p> +</li> +<li> +<p><a class="link" href="https://www.futurepedia.io/" target="_blank" rel="noopener" +>最大的 AI 工具箱</a>,喜欢研究 AI 的不要错过这个网站,收集了各种 AI 模型的开源项目和相关网址,涵盖了图像识别、自然语言处理等常见的、时兴的 AI 技术。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-15-15.png" +width="1151" +height="729" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="378px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 016 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/Tue, 10 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/<h1 id="机器文摘-第-016-期">机器文摘 第 016 期</h1> +<h2 id="长文">长文</h2> +<h3 id="黑客与汽车httpssamcurrynetweb-hackers-vs-the-auto-industry"><a class="link" href="https://samcurry.net/web-hackers-vs-the-auto-industry/" target="_blank" rel="noopener" +>黑客与汽车</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-16-50.png" +width="680" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="394px" +> +现在的汽车很多都具有联网的能力,可以通过互联网进行便利的远程操作。</p> +<p>比如获取汽车位置、健康状态、远程启动、远程开门等等。</p> +<p>作为消费者来说,在使用这些便利功能的时候,内心是十分信任厂商的。</p> +<p>觉得安全问题肯定会被厂商非常重视,作为头号问题来抓。</p> +<p>然而这篇<a class="link" href="https://samcurry.net/web-hackers-vs-the-auto-industry/" target="_blank" rel="noopener" +>《黑客与汽车》</a>却改变了我的看法,原来这些车联网的安全防护如此的脆弱。</p> +<p>文章作者为业内人士,写的还比较实在。如下列举部分这些黑客可以对车进行的未授权操作:</p> +<ol> +<li>远程发动机启停、车门解锁与锁定、大灯闪烁、喇叭鸣笛;</li> +<li>锁定用户,迁移管理权;</li> +<li>根据车架号下载到用户的销售档案;</li> +<li>远程刷新更新车辆电脑固件;</li> +<li>跟踪车辆物理GPS位置;</li> +</ol> +<p>看完我感觉是不是得把我的相关车联网服务给停一停了。</p> +<h3 id="汇编代码阅读指南httpswwwtimdbgcompostsfakers-guide-to-assembly"><a class="link" href="https://www.timdbg.com/posts/fakers-guide-to-assembly/" target="_blank" rel="noopener" +>汇编代码阅读指南</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-30-23.png" +width="1061" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +> +写汇编代码很麻烦,阅读起来也很费劲吗?</p> +<p>这儿有<a class="link" href="https://www.timdbg.com/posts/fakers-guide-to-assembly/" target="_blank" rel="noopener" +>一份简要的汇编阅读指南</a>,作者介绍了一些汇编代码的阅读技巧。</p> +<p>因为根据统计显示,最常用的汇编指令也就那么十来个,所以并没有想象中的那么晦涩和高深莫测。</p> +<h3 id="使用-svg-绘制逼真的绳索httpsmuffinmanioblogdraw-svg-rope-using-javascript"><a class="link" href="https://muffinman.io/blog/draw-svg-rope-using-javascript/" target="_blank" rel="noopener" +>使用 SVG 绘制逼真的绳索</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-38-11.png" +width="786" +height="342" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +SVG 是在网页中进行矢量绘图的技术,比起 Canvas 画板的像素图像,SVG 具有放大不失真的特点,在网页中可以通过 Javascript 操作生成 SVG 图形对象,实现各种复杂的图案。</p> +<p>这篇文章的作者从几何的角度考虑了如何使用矢量图形来绘制一个现实中的麻绳图案,要不仅体现出绳索的扭曲,还要正确表现绳索分支之间的叠压,作者提出了一个巧妙的使用 SVG path 进行实现的方法。还给出了代码。</p> +<p>你要问作者为什么这么做,有什么用没有?我想作者可能会回答:Because I can !</p> +<h3 id="ssh-进阶用法介绍httpsplantegggithubio20190602e58fb2e4b88ae69c80e585a8_ssh_e69a97e9bb91e68a80e5b7a7e8afa6e8a7a3--e694b6e8978fe4bf9de5b9b3e5ae89"><a class="link" href="https://plantegg.github.io/2019/06/02/%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89/" target="_blank" rel="noopener" +>SSH 进阶用法介绍</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-55-02.png" +width="800" +height="480" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +></p> +<p>经常在 Linux 系统下进行开发或者运维的专业人士,可能每天使用最多的工具就是 SSH 了,每天都要通过它登录服务端系统,进行一系列的操作。</p> +<p>这里<a class="link" href="https://plantegg.github.io/2019/06/02/%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89/" target="_blank" rel="noopener" +>有一篇文章</a>比较全面地介绍了 SSH 的进阶使用技巧,可以在某种程度上极大提升效率以及操作体验。</p> +<p>列举部分如下:</p> +<ol> +<li>如何免密码登录;</li> +<li>如何映射服务端的服务端口到本地(以方便调试);</li> +<li>如何将服务端的图形界面(如xcalc)代理到本地电脑显示和交互(不是远程桌面哦);</li> +<li>一些网络端口映射之类的高级操作;</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://gist.github.com/sbabybird/c340dee0fbec2e1dfe4a1c49d311cf4b" target="_blank" rel="noopener" +>个人年终总结模板</a>,我做了一个基于 Markdown 语法的年终总结模板,方便梳理在编写个人总结时的思路,放在 github 上的 gist 里了,可以随意使用。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-57-40.png" +width="416" +height="486" +loading="lazy" +class="gallery-image" +data-flex-grow="85" +data-flex-basis="205px" +></p> +</li> +<li> +<p><a class="link" href="https://www.webdesignmuseum.org/" target="_blank" rel="noopener" +>web 网页设计博物馆</a>,一个保存古老网页设计的网站。记录了 1999 年到 2020 年各大公司的网页设计变迁。包括谷歌、亚马逊、苹果、任天堂、麦当劳等等。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-01-04.png" +width="918" +height="568" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="387px" +></p> +</li> +<li> +<p><a class="link" href="https://allinone.tools/" target="_blank" rel="noopener" +>一站式网页工具大全</a>,一堆的在线工具汇总,包括图片处理、PDF格式转换、文字编码转换、密码生成、字符串加密解密等等,常用工具一网打尽。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-05-09.png" +width="1320" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="231" +data-flex-basis="555px" +></p> +</li> +<li> +<p><a class="link" href="https://gamepad-tester.com/" target="_blank" rel="noopener" +>在线手柄测试工具</a>,打开网页即可测试游戏手柄的工作状态,按键是否灵敏,遥感是否有死区等等,非常方便。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-11-28.png" +width="930" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 015 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/Tue, 03 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/<h1 id="机器文摘-第-015-期">机器文摘 第 015 期</h1> +<h2 id="长文">长文</h2> +<h3 id="编程就是玩儿httpsaustinhenleycomblogprogrammingasplayhtml"><a class="link" href="https://austinhenley.com/blog/programmingasplay.html" target="_blank" rel="noopener" +>编程就是玩儿</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-43-13.png" +width="804" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="226" +data-flex-basis="543px" +></p> +<p>对于程序员或者技术从业者来说,以一种什么样的心态工作将十分影响成果的产出。</p> +<p><a class="link" href="https://austinhenley.com/blog/programmingasplay.html" target="_blank" rel="noopener" +>这篇文章</a>的作者给大家分享了他自己的感受&mdash;-“不把编程视为严肃的工作、目标只是玩得开心、为了好玩而编程”。</p> +<p>他同时也是 <a class="link" href="https://news.ycombinator.com/item?id=27256867" target="_blank" rel="noopener" +>《为什么我喜欢做无用的东西》</a>帖子的作者。</p> +<p>除了文章本身之外,<a class="link" href="https://news.ycombinator.com/item?id=34086416" target="_blank" rel="noopener" +>在 HN 配套的讨论帖子在这里</a>。</p> +<p>这种类似于“寓教于乐”、“做自己开心的事儿”等等内容,一直是一个值得探讨的话题。</p> +<p>我个人也倾向于以兴趣和爱好来驱动自己,只是如果这个兴趣和爱好顺便能够挣钱,那就更好了。</p> +<h3 id="webassembly没有容器的-dockerhttpswasmlabsdevarticlesdocker-without-containers"><a class="link" href="https://wasmlabs.dev/articles/docker-without-containers/" target="_blank" rel="noopener" +>WebAssembly:没有容器的 Docker</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-45-15.png" +width="3483" +height="1436" +loading="lazy" +class="gallery-image" +data-flex-grow="242" +data-flex-basis="582px" +></p> +<p>最近 <a class="link" href="https://www.docker.com" target="_blank" rel="noopener" +>Docker</a> 宣布与 <a class="link" href="https://github.com/WasmEdge/Wasmedge" target="_blank" rel="noopener" +>WasmEdge</a> 合作支持 WebAssembly 。</p> +<p>WebAssembly 和 Docker 我们都听说过,在前面的文摘中我还尝试过自己使用 Rust 编写运行在网页里的 WebAssembly 应用程序。</p> +<p>Docker 也是我工作中每天都要用到的容器技术。</p> +<p>那他们两个有什么关系?放在一起能碰撞出什么火花?</p> +<p><a class="link" href="https://wasmlabs.dev/articles/docker-without-containers/" target="_blank" rel="noopener" +>这篇文章</a>将讲解这两种技术的结合在云原生架构下的使用。</p> +<p>看来 WebAssembly 技术不仅可以在浏览器环境中发挥作用,还能在云计算、边缘计算等领域发光发热,前途不可限量嘛。</p> +<h3 id="3d-摄影测量建模技术httpswwwjeffgeerlingcomblog2021modeling-my-grandpa-3d-photogrammetry"><a class="link" href="https://www.jeffgeerling.com/blog/2021/modeling-my-grandpa-3d-photogrammetry" target="_blank" rel="noopener" +>3D 摄影测量建模技术</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-58-29.png" +width="712" +height="340" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +></p> +<p>3D 摄影测量建模,是一种通过对物体多角度拍摄照片,然后使用计算机通过软件算法合成为 3D 模型的技术。</p> +<p>从最开始在专业领域(如:建筑工程、考古)使用,到现在已经普及到普通人只需安装手机 App 也能轻松实现了。</p> +<p>这篇<a class="link" href="https://www.jeffgeerling.com/blog/2021/modeling-my-grandpa-3d-photogrammetry" target="_blank" rel="noopener" +>用3D摄影测量法对我的爷爷建模</a>记述了作者如何使用 3D 摄影测量建模技术给自己爷爷的雕像进行“数字化”的过程。</p> +<p>里面详细记录了整个过程所使用的开源软件和相关的配置细节。</p> +<p>对于一些想要进行一次实操演练的朋友来说可能有用。</p> +<h3 id="在-2d-游戏中如何模拟-3d-的光影效果httpswwwgamedevelopercomprogramminggraveyard-keeper-how-the-graphics-effects-are-made"><a class="link" href="https://www.gamedeveloper.com/programming/graveyard-keeper-how-the-graphics-effects-are-made" target="_blank" rel="noopener" +>在 2D 游戏中如何模拟 3D 的光影效果</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-14-17.png" +width="454" +height="265" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>《守墓人》是一款经典的 2D 角色扮演游戏,比起它的精彩剧情和有趣的玩法,出色的画面效果也是该游戏取得成功的重要原因。</p> +<p>这篇<a class="link" href="https://www.gamedeveloper.com/programming/graveyard-keeper-how-the-graphics-effects-are-made" target="_blank" rel="noopener" +>《守墓人的图形效果是如何制作的》</a>文章,由该游戏的核心开发者于 2018 年发表,讲述了很多关于实现在 2D 画面带来更加有立体光影效果的特殊技巧。</p> +<p>文章虽然老了一点,但是技术没有过时。</p> +<p>读进去可以深深体会到:一个优秀作品的创造,离不开对各种不可能的挑战和极限的突破。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://bluemaxima.org/flashpoint/" target="_blank" rel="noopener" +>Flash 游戏大全</a>,上一期里我摘录了一个关于复刻 Flash 游戏的故事。后来也勾起了我对于 Flash 小游戏的怀念。便深入探索了一下现在这个阶段该如何再去运行那些老游戏。Flashpoint 是一个 Web 游戏保存工程,号称已经累计保存了包括 Flash 在内的 35 个平台的超过十万个小游戏。这个工程在 2018 年 1 月启动,试图在 Flash 消亡之前将之前的经典内容进行备份。现在提供两种版本的下载包,一种全量下载的大概 1.3 TB,包含了全部游戏。一种增量下载的,700多MB,只带了部分游戏,但是支持随下随玩。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-33-07.png" +width="1001" +height="382" +loading="lazy" +class="gallery-image" +data-flex-grow="262" +data-flex-basis="628px" +></p> +</li> +<li> +<p><a class="link" href="https://sweetcocoa.github.io/pop2piano_samples/" target="_blank" rel="noopener" +>根据音频自动生成钢琴旋律</a>,一个开源的 AI 模型,可以根据歌曲的音频识别出里面的旋律主线,并且使用钢琴演奏出来,效果十分神奇。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-41-36.png" +width="741" +height="456" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></p> +</li> +<li> +<p><a class="link" href="https://virtualconsoles.com/online-emulators/c64/" target="_blank" rel="noopener" +>C64 Emulator</a>,一个在线的 commodore 64 电脑模拟器,可以直接将磁盘镜像拖拽到网页上进行加载,页面还提供了虚拟键盘。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-44-02.png" +width="643" +height="733" +loading="lazy" +class="gallery-image" +data-flex-grow="87" +data-flex-basis="210px" +></p> +</li> +<li> +<p><a class="link" href="https://shadiao.pro/" target="_blank" rel="noopener" +>沙雕 App</a>,收集了各种有趣网站、工具的导航站,之前就关注过,最近好像升级了,喜欢恶搞的同学可以到里面找到一些比较有恶趣味的小程序。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-47-42.png" +width="676" +height="371" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 014 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/Tue, 27 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/<h1 id="机器文摘-第-014-期">机器文摘 第 014 期</h1> +<h2 id="长文">长文</h2> +<h3 id="运行在单片机上的-qthttpsdecovardevblog20221224qt-on-mcu"><a class="link" href="https://decovar.dev/blog/2022/12/24/qt-on-mcu/" target="_blank" rel="noopener" +>运行在单片机上的 Qt</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-43-13.png" +width="684" +height="456" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></p> +<p>尝试过给单片机写图形界面没有?</p> +<p>这篇 <a class="link" href="https://decovar.dev/blog/2022/12/24/qt-on-mcu/" target="_blank" rel="noopener" +>《Qt on MCU》 </a>比较系统的介绍了“为什么选择 Qt(一套开源图形界面库) 给单片机做界面”、“Qt 的基本架构”、“程序移植性”等相关问题。</p> +<p>读完可以较为全面地了解在单片机这种机能较弱的硬件设备上制作图形界面的基本思路和需要关注的问题。</p> +<h3 id="openwrtlede-搭建-syncthing-p2p-私有文件同步服务httpschenhemepostopenwrt-syncthing"><a class="link" href="https://chenhe.me/post/openwrt-syncthing/" target="_blank" rel="noopener" +>OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-56-50.png" +width="1251" +height="730" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>现在大家都不止一个电子终端设备,个人数字信息、各种数据文件的同步需求基本上是一个刚需。</p> +<p>有很多厂商提供了收费方案,比较常见的有国内的各种网盘、手机厂商提供的各种 Cloud 服务等等。</p> +<p>如果想基于家庭网络自己动手搭建一个私有服务的话,可能略微麻烦一些,不过也有较为成熟的方案了。</p> +<p>条件具备的话不妨参考这篇<a class="link" href="https://chenhe.me/post/openwrt-syncthing/" target="_blank" rel="noopener" +>《OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务》</a>动手试一试。</p> +<h3 id="用-flash-高清重制一款游戏httpswwwjiqizhixincomarticles2022-12-22-2"><a class="link" href="https://www.jiqizhixin.com/articles/2022-12-22-2" target="_blank" rel="noopener" +>用 Flash 高清重制一款游戏</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-58-23.png" +width="600" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p>Flash 基本已经成为历史了。</p> +<p>即便现在可以通过一些渠道或者浏览器勉强开启 Flash 插件的话,也会提心掉胆地担心计算机的安全性。</p> +<p>毕竟那些恼人的弹窗广告有 80% 都是靠 Flash 技术实现的。</p> +<p>但是还有这么一群人,他们玩着 4399 上的小游戏长大,80 后喜欢的各种主机游戏在他们眼里根本不值一提,倒是网页上那种基于 Flash 制作的即开即玩的小游戏(比如我能想到的就有:黄金矿工、狂扁小朋友、打企鹅等等)才是他们的最爱。</p> +<p>Flash 技术被时代抛弃,那些 4399 们也就逐渐消失了。</p> +<p>不过总有人会拥抱情怀,这篇<a class="link" href="https://www.jiqizhixin.com/articles/2022-12-22-2" target="_blank" rel="noopener" +>《为拯救童年回忆,开发者决定采用古法编程》</a>便讲述了这样一个故事。</p> +<p>里面的哥们儿以极其硬核的方式实现了他的梦想,为了复刻一个 Flash 小游戏,他几乎重新写了一个 Flash 播放器。</p> +<h3 id="unix-终端系统tty是如何工作的httpswaynervcompostshow-tty-system-works"><a class="link" href="https://waynerv.com/posts/how-tty-system-works/" target="_blank" rel="noopener" +>Unix 终端系统(TTY)是如何工作的</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-09-23.png" +width="2560" +height="2272" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></p> +<p>没有使用过大型机而直接进入 PC 时代的计算机用户,可能觉得“终端”就是电脑上那个能够输入 CMD 命令的黑乎乎窗口吧。</p> +<p>即便是终日与命令行打交道的软件开发人员、系统运维人员,可能也很难一下子解释清楚什么是“终端”,它为什么叫这个名字。</p> +<p>这篇<a class="link" href="https://waynerv.com/posts/how-tty-system-works/" target="_blank" rel="noopener" +>《Unix 终端系统(TTY)是如何工作的》</a>从计算机硬件发展的历史出发,介绍了计算机系统跟用户交互的发展历程,并针对“终端”系统进行详细展开,讲解了实现原理和后来发展的现代形态。</p> +<p>喜欢硬核知识的朋友可点进去阅读一下。</p> +<h3 id="hn-讨论极大提升你效率的软件有哪些httpsnewsycombinatorcomitemid34069106"><a class="link" href="https://news.ycombinator.com/item?id=34069106" target="_blank" rel="noopener" +>HN 讨论:极大提升你效率的软件有哪些?</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-16-52.png" +width="776" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="462px" +></p> +<p>哪些软件最能节约你的时间、解放你的双手、使你离不开它?</p> +<p>这个话题几乎每过一段时间就会被拿出来讨论一番。</p> +<p>每个人都有自己的偏爱。</p> +<p>不过,看看大家的讨论,说不定也能发现一些新鲜的软件,也许能更新一下自己的工具库也说不定。</p> +<blockquote> +<p>比如上面这篇帖子里,楼主提到的 <a class="link" href="https://github.com/BurntSushi/xsv" target="_blank" rel="noopener" +>这个 csv 工具</a> ,可以在命令行让你高效对 csv 文件进行快速检索、合并查询、切片等等。 +不过帖子里可能有人把节奏带偏了,在下面大吹特吹各种 IDE 软件,就仁者见仁了。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://huili.github.io/" target="_blank" rel="noopener" +>SQlite源码分析</a>,一本讲解 SQlite 源码的在线电子书,主要对 SQLite 数据库的实现机制和使用方法做了简要分析。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-25-49.png" +width="804" +height="424" +loading="lazy" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="455px" +></p> +</li> +<li> +<p><a class="link" href="https://retrogame.com.ua/2022/03/moarstalgia-windows-98-3dfx-amp-dos-retro-gaming-pack/" target="_blank" rel="noopener" +>经典复古 win98 游戏合集</a>,一个游戏整合包,里面整合了若干在 Win98 系统下才能跑的老游戏,像初代的雷神之锤、半条命、极品飞车等等。提供了基于 DosBox 的虚拟系统,即开即用,性能还不错。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-33-08.png" +width="656" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="169" +data-flex-basis="406px" +></p> +</li> +<li> +<p><a class="link" href="http://www.doshaven.eu/programming-tools/" target="_blank" rel="noopener" +>DOS 系统下的编程工具合集</a>,想要重温在 DOS 环境下编程的感受,这里有一套比较全面的工具合集,包括 QBASIC、TurboC 等开发环境,以及一些用于游戏开发的图形库、引擎。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-59-31.png" +width="908" +height="527" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="413px" +></p> +</li> +<li> +<p><a class="link" href="https://humanbenchmark.com/dashboard" target="_blank" rel="noopener" +>给你自己跑个分</a>,现在一些硬件评测动不动就使用软件进行跑分,用以展示硬件之间的形成差异,这个网站提供了一组小游戏,可以考验你的短期记忆力、反应能力,并给你打分。也试试给自己跑个分吧。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-15-05-15.png" +width="900" +height="511" +loading="lazy" +class="gallery-image" +data-flex-grow="176" +data-flex-basis="422px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 012 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/Tue, 13 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/<h1 id="机器文摘-第-012-期">机器文摘 第 012 期</h1> +<h2 id="长文">长文</h2> +<h3 id="github-登录被第三方网站滥用了吗">Github 登录被第三方网站滥用了吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-30-19.png" +width="494" +height="491" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="241px" +> +为了方便账号注册,现在很多网站都提供了基于 Github 账号登录的方式。</p> +<p>我个人也更倾向于使用这种方式登录。</p> +<p>毕竟可以少填一些注册信息,减少思考密码的麻烦。</p> +<p>但是这样做有什么安全问题没有?</p> +<p>上周有一个<a class="link" href="https://news.ycombinator.com/item?id=33917962" target="_blank" rel="noopener" +>在 HackerNews 上的帖子</a>,有人遇到了在使用 Github 账号登录某些网站之后,导致他的账号莫名给别的仓库添 Star 的情况。</p> +<p>这引发了大家关于 Github 账号权限管理以及通过第三方鉴权进行账号登录和注册的讨论。</p> +<p>看完觉得在第三方鉴权授权时还是应该慎重使用才好。</p> +<h3 id="每个黑客都知道的命令行快捷键">每个黑客都知道的命令行快捷键</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-41-23.png" +width="926" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="145" +data-flex-basis="349px" +> +在图形化界面、触控操作交互界面已经十分普及的今天,普通用户可能现在很少能接触到命令行操作了。</p> +<p>但是对于软件开发者、IT运维工程师来说,命令行还是属于离不开的操作界面。</p> +<p>而且对于有些工作任务来说,使用命令行完成起来要更加高效。</p> +<p><a class="link" href="https://www.masteringemacs.org/article/keyboard-shortcuts-every-command-line-hacker-should-know-about-gnu-readline" target="_blank" rel="noopener" +>这篇文章</a>讲解了常见命令行交互时的一些快捷操作,比如常见的行内编辑、快速移动光标到命令开头、历史记录搜索等等。</p> +<p>掌握之后可以在各种命令行交互界面中进行使用(基本风格一致)。</p> +<h3 id="基于颜色循环的动画技术">基于颜色循环的动画技术</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-54-06.png" +width="509" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="132" +data-flex-basis="318px" +> +在计算机硬件资源匮乏的上世纪 90 年代,开发人员为了在有限条件下实现丰富的效果真是挖空心思。</p> +<p>比如,还记得 Windows 98 的启动画面吗?</p> +<p>蓝天白云,Windows 徽标,底部有一个蓝色的渐变色条,在缓慢的滚动。</p> +<p>实际上它只是一幅图片,并非多帧动画。</p> +<p>这就用到了一个叫做<a class="link" href="https://en.wikipedia.org/wiki/Color_cycling" target="_blank" rel="noopener" +>“颜色循环”</a>的技术。</p> +<blockquote> +<p>来自维基百科:颜色循环,也称为调色板移动,是计算机图形学中使用的一种技术,其中颜色被更改以产生动画的假象。这种技术主要用于早期的电脑游戏,因为存储一个图像并更改其调色板比将动画存储为几帧需要更少的内存和处理器能力。</p> +</blockquote> +<p><a class="link" href="http://www.effectgames.com/effect/article-Old_School_Color_Cycling_with_HTML5.html" target="_blank" rel="noopener" +>这里有个博客</a>使用 HTML Canvas 复刻了一批采用颜色循环创作的作品,效果非常惊艳。</p> +<p>另外网站还开源了用于展示这些作品的图形引擎,虽然现在已经不再维护了,但是用于学习和探索还是很有研究意义。</p> +<h3 id="软件逆向工程入门">软件逆向工程入门</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-06-08.png" +width="716" +height="442" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="388px" +> +软件的加密和破解在普通用户眼里十分神秘。</p> +<p>这篇<a class="link" href="https://to-be-deleted-in-2022.emily.st/2015/01/27/reverse-engineering/" target="_blank" rel="noopener" +>软件逆向工程入门</a>比较深入浅出地介绍了一些常用手法,跟着作者可以浅尝一下在内存中寻找注册号、修改汇编指令以使得软件保护失效等体验。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="http://nifty.stanford.edu/" target="_blank" rel="noopener" +>计算机课后作业</a>,斯坦福大学计算机专业评选的历年来优秀作业作品。如果不知道自己编程需要练习什么的话,可以打开参考参考,很有实用价值,比起在 Leecode 上刷算法的题目,这些作业都在解决实际问题。</p> +</li> +<li> +<p><a class="link" href="https://scholar.archive.org/" target="_blank" rel="noopener" +>互联网档案学术</a>,全文检索索引包含超过2500万的研究文章和其他保存在互联网档案馆里的学术文档。 该馆藏涵盖从18世纪期刊的数字化副本,到最新的Open Access会议记录和从万维网上抓取的预印本。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-19-26.png" +width="1113" +height="507" +loading="lazy" +class="gallery-image" +data-flex-grow="219" +data-flex-basis="526px" +></p> +</li> +<li> +<p><a class="link" href="https://playcanvas.com/" target="_blank" rel="noopener" +>PlayCanvas Web 优先的游戏引擎</a>,一个免费的游戏引擎,倡导以 Web 优先,在网页中提供从开发到发行的全部流程支持。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-23-40.png" +width="961" +height="655" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="352px" +></p> +</li> +<li> +<p><a class="link" href="https://asciinema.org/" target="_blank" rel="noopener" +>命令行会话记录器</a>,Asciinema 是一个免费开源软件,用于帮助用户录制在命令行中的操作行为,便于在互联网上分发自己的操作示范、教学演示。比起直接视频录屏的方式,这种以字符方式的记录更加节约资源,无论是记录、传播还是回放环节,都很轻量。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-29-43.png" +width="631" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></p> +</li> +<li> +<p><a class="link" href="https://matthias-research.github.io/pages/tenMinutePhysics/index.html" target="_blank" rel="noopener" +>十分钟物理</a>,这套教程集合了一组十分钟左右的视频短片,每次介绍一个基本的物理概念并通过 Web 前端技术编程实现模拟。除了视频之外,网站还提供了源代码、演示环境等配套资源。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-32-47.png" +width="1191" +height="666" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="429px" +></p> +</li> +<li> +<p><a class="link" href="http://skilldrick.github.io/easy6502/" target="_blank" rel="noopener" +>Easy6502</a>,一本学习 6502 汇编的电子书(没错,我就是特别喜欢这款 CPU)。网站带有交互界面,提供了一个简易模拟器,可以边学边练,教程最后会带你实现一个基于汇编的贪食蛇游戏。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-43-13.png" +width="608" +height="484" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="301px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 013 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/Mon, 12 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/<h1 id="机器文摘-第-013-期">机器文摘 第 013 期</h1> +<h2 id="长文">长文</h2> +<h3 id="从古董电脑中我们能学到什么httpsgithubcomreadmefeaturedvintage-computing"><a class="link" href="https://github.com/readme/featured/vintage-computing" target="_blank" rel="noopener" +>从古董电脑中我们能学到什么</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-36-43.png" +width="1182" +height="689" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>我也不知道为什么自己会对老旧电脑,尤其是上世纪80年代、90年代出品的电脑这么迷恋。</p> +<p>我觉得那个时代的电脑散发着一种难以名状的工业气质。</p> +<p>通过阅读<a class="link" href="https://github.com/readme/featured/vintage-computing" target="_blank" rel="noopener" +>这篇文章</a>,使我意识到一些深层次的原因。</p> +<p>这些老式电脑的魅力来自于当时技术的限制、简单粗暴和直接。</p> +<p>通过深入了解这些老古董、学习开发那个时代的软件,可以更容易地了解计算机科学。</p> +<p>毕竟,现在的计算机已经充分的复杂和“人性化”,软件把硬件包裹得越来越严实和抽象。以至于根本看不清它的内部构造和实现原理。</p> +<p>去研究那些古董电脑吧,操作那些裸漏单纯的硬件接口,贴近更加具体的科技。</p> +<h3 id="蛋httpwwwgalactanetcomoneofftheegg_zhhtml"><a class="link" href="http://www.galactanet.com/oneoff/theegg_zh.html" target="_blank" rel="noopener" +>蛋</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-49-07.png" +width="1024" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="200" +data-flex-basis="480px" +></p> +<p>这是一篇很富有哲理的小小说,严格来说跟机器没有关系。</p> +<p>但是写的实在是很好,忍不住收录进来。</p> +<p>毕竟,喜欢机器的人,很难抗拒这种对宇宙天马行空的探索。</p> +<h3 id="rlhf-模型详解httpshuggingfacecoblogrlhf"><a class="link" href="https://huggingface.co/blog/rlhf" target="_blank" rel="noopener" +>RLHF 模型详解</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-54-30.png" +width="1450" +height="1338" +loading="lazy" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="260px" +></p> +<p>近期 AI 圈最火的事情,莫过于 OpenAI 发布的聊天机器人 ChatGPT 了。</p> +<p>这个智能聊天机器人已经强大到可以让人担忧的地步了。</p> +<p>那么,它背后的实现原理是什么?</p> +<p><a class="link" href="https://huggingface.co/blog/rlhf" target="_blank" rel="noopener" +>这篇文章</a>讲解了 ChatGPT 所使用的 RLHF(人类反馈强化学习) 模型是如何实现的以及它的未来会怎样发展。</p> +<h3 id="基于扩散模型生成音乐httpswwwriffusioncomabout"><a class="link" href="https://www.riffusion.com/about" target="_blank" rel="noopener" +>基于扩散模型生成音乐</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-03-35.png" +width="540" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="342px" +></p> +<p>基于文本生成图像的扩散模型已经火了一段时间了。</p> +<p>我当时还在想,既然基于扩散模型可以生成图像的话,那能不能生成声音呢?</p> +<p>结果我只是动了动念头,人家这边已经把成果拿出来了。</p> +<p><a class="link" href="https://www.riffusion.com/about" target="_blank" rel="noopener" +>这篇文章</a>介绍了他们基于扩散模型生成音乐的项目。</p> +<p>我试听了一下,效果还不错,挺神奇的。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://ittavern.com/getting-started-with-tmux/" target="_blank" rel="noopener" +>tmux 入门</a>,一篇 tmux 的入门教程。tmux 是一个终端程序,可以同时模拟多个客户端控制台,如果觉得不好理解的话,可以认为它是一个控制台的多页签浏览器。因为在工作中经常需要 ssh 登录服务器进行编程开发,我现在已经离不开它了。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-12-18.png" +width="701" +height="419" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +></p> +</li> +<li> +<p><a class="link" href="https://oimo.io/works/" target="_blank" rel="noopener" +>一个有趣的个人网站</a>,作者是一个日本在读博士生,网站放了一些个人的编程作品,主要跟物理模拟、像素艺术有关。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-14-33.png" +width="915" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="203" +data-flex-basis="488px" +></p> +</li> +<li> +<p><a class="link" href="https://www.hello-algo.com/" target="_blank" rel="noopener" +>你好,算法</a>,一本开源电子书,可在线阅读,深入浅出讲解数据结构和算法,生动有趣,适合有一定编程基础但是算法这块有些薄弱的爱好者阅读。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-20-26.png" +width="3144" +height="2319" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +></p> +</li> +<li> +<p><a class="link" href="https://nbviewer.org/github/gpeyre/numerical-tours/blob/master/python/ml_6_nn.ipynb" target="_blank" rel="noopener" +>神经网络在线教程</a>,一套神经网络编程教程,提供在线的 python 代码阅读环境,适合作为入门资料学习。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-23-10.png" +width="388" +height="262" +loading="lazy" +class="gallery-image" +data-flex-grow="148" +data-flex-basis="355px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 011 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/Wed, 07 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/<h1 id="机器文摘-第-011-期">机器文摘 第 011 期</h1> +<h2 id="长文">长文</h2> +<h3 id="自己动手做一个天气墨水屏">自己动手做一个天气墨水屏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-13-22.png" +width="617" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +> +有个喜欢动手的哥们,发现了自己及家人的一项小需求,即从家出门的时候想快速知道天气情况。</p> +<p>虽然这种需求抬眼看一下手机也能实现,但是本着“懒惰使人进步”的核心思想(作者懒得掏出手机)他动手实现了一套基于电池供电的可以显示天气预报信息的电子墨水屏。</p> +<p>这篇<a class="link" href="https://kimmo.blog/posts/7-building-eink-weather-display-for-our-home/" target="_blank" rel="noopener" +>《做一个天气墨水屏》</a>记录了作者从诞生点子到产品出炉的全过程。</p> +<p>另外作者还开源了项目的源代码,<a class="link" href="https://github.com/kimmobrunfeldt/eink-weather-display" target="_blank" rel="noopener" +>可在这里获取</a>。</p> +<h3 id="m1-gpu-的故事">M1 GPU 的故事</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-21-23.png" +width="985" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +> +GPU 大家都知道,<a class="link" href="https://asahilinux.org/2022/11/tales-of-the-m1-gpu/" target="_blank" rel="noopener" +>这里有篇文章介绍了它的工作细节</a>。</p> +<p>作者来自一个给苹果 M1 芯片适配 Linux 驱动的团队(苹果官方不提供驱动,所以这意味着需要做一些逆向工程)。</p> +<p>本文记录了这些工作中比较有趣的部分,还顺便介绍了 GPU 的一些底层工作原理。</p> +<h3 id="在-commodore-64-上实现位图滚动条的显示">在 Commodore 64 上实现位图滚动条的显示</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-37-41.png" +width="386" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="114" +data-flex-basis="274px" +> +Demosense 是一项挖掘计算机硬件机能极限的活动。</p> +<p>通常创作者们会通过各种编程技巧来实现看似无法达到的效果。</p> +<p>由于 Commodore 64 这台古董电脑十分经典,现在仍有不少Demosense爱好者在为它开发程序。</p> +<p><a class="link" href="https://www.c64demo.com/side-border-bitmap-scroller/" target="_blank" rel="noopener" +>这篇文章</a>讲述了著名 C64 demo 程序 <a class="link" href="https://csdb.dk/release/?id=195841" target="_blank" rel="noopener" +>Memento Mori</a> 的实现过程,程序在 Commodore 64 上显示了一副巨大(对于C64来说)的图片。</p> +<p>这在圈内属于首创。</p> +<h3 id="动手做一个-4-位-cpu">动手做一个 4 位 CPU</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-43-28.png" +width="496" +height="370" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="321px" +> +计算机组成原理是不是还没学明白?没关系,我们可以自己亲手做一个简单的 CPU 。</p> +<p><a class="link" href="https://www.bigmessowires.com/nibbler/" target="_blank" rel="noopener" +>Nibbler</a> 是一款 4 位 CPU,使用标准 7400 系列逻辑芯片(单个计数器、寄存器、缓冲器和门)构建而成。是一个简单 CPU 的教育示例,易于理解和构建,但仍然能够运行游戏和其他有趣的程序。Nibbler 在 5 x 4 英寸(127 x 102 毫米)穿孔板上使用绕线制造。CPU总共包含17个芯片。</p> +<p>作者公开了设计图纸和相关资料,可在文章内部的链接中获取。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="http://www.craftinginterpreters.com/" target="_blank" rel="noopener" +>纯手撸一个解释器</a>,编译原理没学明白没关系,这本在线电子书手把手教你写一个自己的解释器。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-51-28.png" +width="593" +height="182" +loading="lazy" +class="gallery-image" +data-flex-grow="325" +data-flex-basis="781px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/k88hudson/git-flight-rules/blob/master/README_zh-CN.md" target="_blank" rel="noopener" +>Git 飞行规则 (Flight Rules)</a> ,一个十分全面的 Git 使用指南,把你能遇到的情况都想到了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-54-49.png" +width="532" +height="541" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="236px" +></p> +</li> +<li> +<p><a class="link" href="https://thevaluable.dev/vim-advanced/" target="_blank" rel="noopener" +>Vim 高级进阶</a>,如果你已经学会了怎么退出 Vim,恭喜你,已经击败了 80% 的选手。想要在 Vim 中进行更高效的编辑操作,这份高手指南十分适合作为参考。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-57-10.png" +width="776" +height="511" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="364px" +></p> +</li> +<li> +<p><a class="link" href="https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/" target="_blank" rel="noopener" +>Flexbox 布局交互指南</a>,这篇在线教程讲解了如何使用 Flexbox 进行页面布局,难能可贵的是直接在页面中提供了交互操作界面,可以一遍学一遍实践,非常方便。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-59-27.png" +width="743" +height="448" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="398px" +></p> +</li> +<li> +<p><a class="link" href="https://www.makesense.ai/" target="_blank" rel="noopener" +>在线 AI 标注工具</a>,想要训练自己的 AI 模型,比如目标检测、图像分类等等,可以使用这个在线工具进行数据标注,直接上传图片然后在线标注,完成后可导出 VOC、Coco 等格式的数据集。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-10-02-46.png" +width="628" +height="391" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 010 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/Tue, 29 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/<h1 id="机器文摘-第-010-期">机器文摘 第 010 期</h1> +<h2 id="长文">长文</h2> +<h3 id="极客摄影指南">极客摄影指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-11-12.png" +width="1235" +height="841" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="352px" +> +相机,也是机器的一种。</p> +<p>我用它记录生活,捕捉生活中转瞬即逝的美好瞬间。</p> +<p>有个问题一直困扰着我,怎样拍出不那么“到此一游”的照片?</p> +<p>怎样才能“掌控”相机这个机器?</p> +<p>这篇<a class="link" href="https://lcamtuf.coredump.cx/photo_basics/" target="_blank" rel="noopener" +>《极客摄影》(英文)</a>能够帮助你对摄影做一个真正深入的理解(而不是学习那些充斥社交平台的各种浮于表面的“技巧”)。</p> +<p>作者是一个热爱摄影的技术男,有二十多年摄影经验。</p> +<p>听他给你讲讲什么是“光”和“构图”。</p> +<p>一篇就够了。</p> +<h3 id="ms-dos-背后的设计">MS-DOS 背后的设计</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-24-37.png" +width="480" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="225px" +></p> +<p>包括我在内的不少 80 后接触电脑是从 MS-DOS 开始的。</p> +<p>对于它的黑窗口和命令行都有着很深的印象。</p> +<p>上大学时执行最多的命令是<code>format c: /s /q</code></p> +<p>当年还玩过不少在 DOS 平台的游戏,比如仙剑奇侠传、主题医院等等。</p> +<p>只是当时没工夫对系统本身做深入了解。</p> +<p>顶多是,自己在学习汇编语言时,对 DOS 又仔细端详了几眼。</p> +<p>这篇<a class="link" href="https://patersontech.com/Dos/Byte/InsideDos.htm" target="_blank" rel="noopener" +>《凑近看看 MS-DOS 》(英文)</a>,介绍了 DOS 系统的设计标准、内存分配、磁盘文件结构、FAT文件系统的技术细节等等。</p> +<p>想要窥探技术细节的可以点进去看看。</p> +<h3 id="构建最快的-lua-解释器">构建最快的 Lua 解释器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-45-43.png" +width="645" +height="386" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +> +给动态语言编写解释器可能不算太难(如果只是能跑的话)。</p> +<p>但是如果要编写一个高性能的、好用的动态语言解释器,比如像谷歌浏览器所用的 V8 引擎那样,就比较困难了。</p> +<p><a class="link" href="https://sillycross.github.io/2022/11/22/2022-11-22/" target="_blank" rel="noopener" +>《构建最快的 Lua 解释器》</a>这篇文章站在更高维度提供一种方法,即:编写一种可以自动生成编译器(解释器)代码的程序,以使得制作高性能解释器变得更加容易。</p> +<p>我看了一下,大概就是自动化生成之前需要手工处理的编译器优化代码。作为编译原理学的不怎么明白的我,对此不敢评论。</p> +<h3 id="为什么-linux-内核没有单元测试">为什么 Linux 内核没有单元测试?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-14-46.png" +width="637" +height="411" +loading="lazy" +class="gallery-image" +data-flex-grow="154" +data-flex-basis="371px" +> +我对单元测试的态度一般,既不强烈支持,也不反对。</p> +<p>听说有的开发团队由于对于单元测试十分狂热,已经到了不允许写注释,都用单元测试替代的地步。</p> +<p>前不久,在 HN 上有网友发起了一个引战的讨论:“<a class="link" href="https://news.ycombinator.com/item?id=33742130" target="_blank" rel="noopener" +>既然单元测试这么好,为什么 Linux 内核源码不用呢?</a>”</p> +<p>以下为部分观点:</p> +<blockquote> +<p>单元测试被严重高估了,TDD有一些好主意,但有一段时间它变成了一种宗教。</p> +</blockquote> +<blockquote> +<p>单元测试与TDD宗教不是一回事。它只是意味着将事物划分为小单元并尽可能详尽地测试其功能。</p> +</blockquote> +<blockquote> +<p>SQLite不是反例吗?他们有更多的单元测试代码,而不是实际运行的代码。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/jackfrued/Python-100-Days" target="_blank" rel="noopener" +>Python 100 天从入门到精通</a>,Python 好学吗?好学又不好学,上手容易,精通难。这里有套开源教程囊括了从入门到实战应用(语言基础、数据处理、Web开发、网络开发、爬虫、深度学习等)的所有课程。这个仓库目前已经在 Github 上获得了 12 万star。可以说是好评如潮,想深入学习 Python 的不容错过。赶紧到我收藏夹里吃灰。</p> +</li> +<li> +<p><a class="link" href="https://wokwi.com/" target="_blank" rel="noopener" +>在线单片机模拟器</a>,想要学习单片机开发,又没有硬件设备吗?这个网站最合适。不需要担心手残不会电烙铁,也不用担心买不到芯片。直接在线进行模拟接线,直接运行编写的代码,结果实时展现。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-31-31.png" +width="878" +height="661" +loading="lazy" +class="gallery-image" +data-flex-grow="132" +data-flex-basis="318px" +></p> +</li> +<li> +<p><a class="link" href="https://slowroads.io/" target="_blank" rel="noopener" +>slow roads</a>,一个在线赛车游戏。基于网页制作。亮点在于作者实现了无限地图。所有地形和道路均使用程序生成。游戏有自动驾驶模式,如果只想观赏路边风景的话,可以开启。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-36-44.png" +width="1736" +height="855" +loading="lazy" +class="gallery-image" +data-flex-grow="203" +data-flex-basis="487px" +></p> +</li> +<li> +<p><a class="link" href="https://tic80.com/" target="_blank" rel="noopener" +>TIC-80</a>,TIC-80 是一台用于制作、播放和分享小型游戏的幻想计算机。有内置的开发工具:代码、sprites、地图、声音编辑器和命令行,这足以创建一个迷你复古游戏。在退出时,你将得到一个盒式文件,它可以在网站上存储和播放。 +另外,游戏可以打包成一个播放器,可以在所有流行的平台上运行,并按你的意愿分发。为了制作一个复古风格的游戏,整个创作过程是在一些技术限制下进行的。240x136 像素的显示屏,16 种颜色的调色板,256 个 8x8 的彩色 sprites,4 channel sound 等等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-42-20.png" +width="490" +height="279" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="421px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 009 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/Mon, 21 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/<h1 id="机器文摘-第-009-期">机器文摘 第 009 期</h1> +<h2 id="长文">长文</h2> +<h3 id="游戏中的精灵">游戏中的“精灵”</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-14-24-20.png" +width="729" +height="409" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="427px" +> +<a class="link" href="https://zh.wikipedia.org/wiki/%E7%B2%BE%E7%81%B5%E5%9B%BE" target="_blank" rel="noopener" +>精灵(sprite)</a>这个词来自古法语单词“esprit”,意思是“精神”——源自拉丁语“spiritus”。在民间传说中,精灵是活泼、俏皮和神奇的小生物。然而对于游戏开发者来说,它又是另一个含义了。</p> +<p>这篇<a class="link" href="https://wireframe.raspberrypi.com/articles/the-surprising-history-of-sprites" target="_blank" rel="noopener" +>《精灵的惊人历史》(英文)</a>,介绍了不同的游戏厂商,在早期硬件机能有限的条件下,如何实现“角色在屏幕上移动”这个现在看似十分简单的事情的。</p> +<p>对于不了解“精灵”的含义的,稍作如下解释:</p> +<blockquote> +<p>2D 游戏在处理需要动起来的角色时,出于性能考虑,将一部分图形的绘制与背景画面的绘制分开,对于频繁需要刷新(动起来的)部分,单独处理,使他们感觉像是漂浮在背景画面的“幽灵”似的,故名“精灵”。</p> +</blockquote> +<h3 id="任天堂-nes-的一些技术细节">任天堂 NES 的一些技术细节</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-14-41-33.png" +width="507" +height="477" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="255px" +> +NES 是任天堂推出一款极其成功的家用游戏机(NES : Nintendo Entertainment ,System 是其在北美发售的名称,亚洲叫 FC :Family Computer),不少80、90后的朋友应该都玩过(或者是国内山寨厂商仿制的*霸王之类)。</p> +<p>NES 使用极其经典的 6502 CPU。这块 CPU 有多经典呢,苹果的 Apple1代2代 、史上销量第一的个人电脑 Commodore 64 、国内早年比较流行的文曲星等,使用的都是这个 CPU。</p> +<p><a class="link" href="https://medium.com/@fogleman/i-made-an-nes-emulator-here-s-what-i-learned-about-the-original-nintendo-2e078c9b28fe" target="_blank" rel="noopener" +>《我做了一个 NES 模拟器》(英文)</a>,这篇文章的作者在编写模拟器的过程中挖出了不少技术细节,里面还提到了硬件存在的各种 BUG (没错,要模拟的话必须连 BUG 都得模拟,不然有些游戏玩不了),想要了解的朋友可以点进去看一下。</p> +<p>作为模拟器爱好者,我对 6502 处理器非常好奇,一度希望自己动手也实现一个,而且这款处理器真的非常适合模拟器入门,毕竟只有三个寄存器和百十条指令。</p> +<p><a class="link" href="https://github.com/fogleman/nes" target="_blank" rel="noopener" +>文中提到的 NES 模拟器在 Github 上开放了源码</a>,有兴趣的可以学习。</p> +<h3 id="一个桌面开发程序员为了学习-javascript-而手撸了一个基于-webgl-的游戏引擎">一个桌面开发程序员为了学习 Javascript 而手撸了一个基于 WebGL 的游戏引擎</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-11-11.png" +width="780" +height="448" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="417px" +> +学习一样技能最好的方式就是动手去做。</p> +<p>当我感叹牛人怎么那么厉害的时候,往往忽略了牛人的学习过程。</p> +<p>以为他们天生就那样。</p> +<p>事实上他们的技能也是靠努力训练得来的。</p> +<p>不过,学习方法确实很重要。</p> +<p><a class="link" href="http://zephyrosanemos.com/" target="_blank" rel="noopener" +>《我对 Javascript 的尝试》(英文)</a>,这篇文章的作者原本是一个桌面程序开发者(类似 CAD 软件之类)。</p> +<p>他突然想要学习前端开发,掌握 Javascript 语言。</p> +<p>于是结合自己之前的知识,使用前端技术做了一套很优秀的 Demo 程序,一个性能和外观都很不错的游戏引擎。</p> +<p>文章里作者详细介绍了实现过程中对技术、算法的选择等等。</p> +<p>内容很长,但还算友好,比较干货。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://roadmap.sh/" target="_blank" rel="noopener" +>开发者之路</a>,汇总了各个技术路线的学习资料,包括前端、后端、运维、计算机科学、区块链、移动端、质量管理等等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-24-33.png" +width="753" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="397px" +> +总之极其全面。 +目前在 Github 有两百多万个 star,被 fork 了 三十多万次。</li> +<li><a class="link" href="https://crxdl.com/" target="_blank" rel="noopener" +>chrome 插件下载</a>,访问谷歌浏览器插件商店有困难吗?试试这个网站,可以直接下载插件的包文件,下载后拖入浏览器即可安装。不过我已经转换到微软的 Edge 阵营了,用不到这个了。</li> +<li><a class="link" href="https://www.toptal.com/developers/css3maker" target="_blank" rel="noopener" +>CSS3 生成器</a>,对于 CSS 的属性参数总是记不住,这个网站就很适合我。每次要调背景渐变、圆角、阴影、动画曲线等等,都得现去搜。有了这个网站,在线点点拖拖,直接复制代码即可。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-33-35.png" +width="1288" +height="660" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +></li> +<li><a class="link" href="https://tesseract.projectnaptha.com/" target="_blank" rel="noopener" +>tesseract.js</a>,可直接在浏览器里运行的 OCR 引擎,支持多国语言(超过 100 种)文字识别。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-16-16-10.png" +width="1039" +height="439" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="568px" +></li> +<li><a class="link" href="https://www.aichpoem.net/#/shisanbai/poem" target="_blank" rel="noopener" +>AI 在线写诗</a>,比较全面的 AI 写诗工具,可以写律诗、绝句、现代诗、歌词等等,根据输入的主题任意发挥。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-23-10-36-44.png" +width="846" +height="502" +loading="lazy" +class="gallery-image" +data-flex-grow="168" +data-flex-basis="404px" +></li> +<li><a class="link" href="https://www.upscale.media/zh" target="_blank" rel="noopener" +>图片分辨率在线提升</a>,上传图片,网站使用 AI 算法将图片的清晰度自动提升,效果还不错。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-23-10-41-36.png" +width="1087" +height="693" +loading="lazy" +class="gallery-image" +data-flex-grow="156" +data-flex-basis="376px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 008 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/Wed, 16 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/<h1 id="机器文摘-第-008-期">机器文摘 第 008 期</h1> +<h2 id="长文">长文</h2> +<h3 id="用好-github给自己建立一个全方位的私有云平台">用好 GitHub,给自己建立一个全方位的私有云平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-24-41.png" +width="754" +height="393" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +> +很多人都有进行个人的知识管理和数字资源管理的需求,市面上也有很多软件工具或者平台来满足这样的需求,但是大部分都是收费的,且自由度不高。我个人经常使用 Github 作为知识管理仓库,我的网络日志、技术博客、私人小项目、电子书籍等都放在上面,生活中已经离不开这个网站了。</p> +<p>近期读到这样一篇文章&ndash;<a class="link" href="https://www.bmpi.dev/self/use-github-better/" target="_blank" rel="noopener" +>善用 Github</a>,全方位讲解了 Github 如何使用,如何将其提供的服务发挥最大化的作用,看完受益匪浅。</p> +<blockquote> +<p>GitHub 是微软旗下的一个在线软件源代码托管服务平台,也是一个拥有八千多万开发者用户的社区。很多开发者应该对GitHub有一定的了解,但非技术人员大多可能并不会去使用它。本文更多是想给非技术人员来介绍这个平台,看完这篇文章,希望能让更多人在上面来学习、创作与展示自己的作品。</p> +</blockquote> +<h3 id="webgpu-是什么跟-webgl-有什么关系">WebGPU 是什么?跟 WebGL 有什么关系?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-36-12.png" +width="846" +height="433" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +> +前几天我想在网页上制作一个小游戏,用于尝试一下图形编程相关的技术。用到了一些基于 Web 技术的 3d 图形框架,比如 Three.js、Babylon.js 等等。在尝试的过程中遇到了一个新的名词 WebGPU,之前总是在听说 WebGL 相关的技术,结果说了这么多年,WebGL还没普及,怎么又冒出来一个 WebGPU?于是找了一篇文章,浅扒一下各个图形接口的历史。就是这篇<a class="link" href="https://www.51cto.com/article/698100.html" target="_blank" rel="noopener" +>浅入浅出 WebGPU</a>。</p> +<blockquote> +<p>2016年6月,Google 产生了使用新API来代替WebGL的想法,称之为 WebGL Next。 +2017年1月,Khronos Group 举办了WebGL Next研讨会,Chromium一马当先,展示了可以基于OpenGL和Metal独立运行的新图形系统原型,同时Apple和Mozilla也分别展示了自己的原型,三者都非常类似于Metal Api。 +次月,Apple就向W3C提交了一个名为 WebGPU 的技术概念验证方案,基于Metal图形开放接口,最终W3C采纳了 WebGPU 这个名字作为下一代标准,Apple的提案进入了正式的小组提案中。 +3月,Mozilla向Khronos Group提交了基于Vulkan的名为WebGL Next提案。 +2018年6月,Chrome团队宣布着手实现WebGPU,这意味着Khronos的失败,WebGPU胜出,大家以后还是团结在W3C的周围。 +按照预期,工作组希望在2021年底发布WebGPU 1.0 标准,不过目前只有草案。 +WebGPU 1.0 草案:https://www.w3.org/standards/types#WD</p> +</blockquote> +<h3 id="扔掉-photoshop-改用字符串绘图">扔掉 Photoshop 改用字符串绘图</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-58-00.png" +width="761" +height="741" +loading="lazy" +class="gallery-image" +data-flex-grow="102" +data-flex-basis="246px" +> +相信很多人都接触过使用字符绘制的图片,这在程序员圈子里甚至发展为一门专有的艺术 “<a class="link" href="https://zh.wikipedia.org/wiki/ASCII%E8%89%BA%E6%9C%AF" target="_blank" rel="noopener" +>ASCII 艺术</a>”。不过我现在不是要说这些,我在一篇 2015 年发表的文章里,发现了这个:有个猛男在自己的程序里彻底抛弃使用 Photoshop 制作的图片资源,改用字符串来描述各种图形(程序界面的图标),然后自己再用代码将其渲染成为高清的图像。</p> +<p>作者对此很沾沾自喜,他甚至设计了一套自用的语法规范,用特定字母代表特定的符号关系,这样就可以组合出各种复杂的图案了。</p> +<p>我也在文章的评论区见到了跟我有同样疑惑的读者留言:“这不就是重新发明了 <a class="link" href="https://zh.wikipedia.org/wiki/%E5%8F%AF%E7%B8%AE%E6%94%BE%E5%90%91%E9%87%8F%E5%9C%96%E5%BD%A2" target="_blank" rel="noopener" +>SVG</a> 吗?唯一的区别就是没有用 XML 作为载体”。</p> +<p>不过文章记录的整个开发过程还是很有趣的,希望了解朋友可以点进去看看 <a class="link" href="http://cocoamine.net/blog/2015/03/20/replacing-photoshop-with-nsstring/" target="_blank" rel="noopener" +>Replacing Photoshop With NSString</a></p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://ffmpeg.xianwaizhiyin.net/" target="_blank" rel="noopener" +>FFmpeg原理</a>,FFmpeg 这个开源项目可能圈外的人士了解不多,但实际上我们生活中一刻也离不开它。现在的网络直播、网络视频网站和移动App、各种视频剪辑合成软件,都或多或少的使用了 FFmpeg 提供的编解码技术。这本在线书籍对于想进一步了解 FFmpeg 以及视频编解码技术的朋友是个不错的参考资料。</p> +<blockquote> +<p>本书《FFmpeg原理》主要讲解 FFmpeg 原理性的知识,前面几章主要讲解一些音视频开发的基础知识,例如原始数据 YUV 跟 RGB,封装格式 FLV 跟 MP4 ,压缩编码的基本概念,还有封装格式分析。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://rustdesk.com/zh/" target="_blank" rel="noopener" +>开源虚拟与远程桌面基础架构</a>,远程桌面软件,开箱即用,无需任何配置。(我个人目前还是使用windows的远程桌面多一些,不过这个开源的rustdesk看起来不错)</p> +<blockquote> +<p>您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器,或者自建,亦或者开发您的版本 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-26-09.png" +width="1388" +height="701" +loading="lazy" +class="gallery-image" +data-flex-grow="198" +data-flex-basis="475px" +></p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://learnxinyminutes.com/" target="_blank" rel="noopener" +>Learn X in Y minutes</a>,这里的教程几乎涵盖所有编程语言,完全没有废话。英文版、中文版都有。如果有编程语言基础的话,通过这个网站确实可以在几十分钟内掌握一门新的编程语言的核心知识。</p> +</li> +<li> +<p><a class="link" href="https://flash.zczc.cz/" target="_blank" rel="noopener" +>Flash 保存计划</a>,Flash 虽然消失了,但是它曾经创造的辉煌一直在我们的记忆里,现在偶尔还想起一些经典的小游戏。这个网站里收藏了很多经典的Flash小游戏,通过一些黑科技复活了它们,可以在浏览器里运行体验。反正我一打开了黄金矿工,就半天停不下来。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-34-57.png" +width="1142" +height="554" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="494px" +></p> +</li> +<li> +<p><a class="link" href="https://keg.cs.tsinghua.edu.cn/codegeex/index_zh.html" target="_blank" rel="noopener" +>CodeGeeX: 多语言代码生成模型</a>,又一个能帮你写代码的 AI 模型。提供有官方的 VSCode 插件。我试了一下,效果跟 Github 的 copilot 还有一定的差距。</p> +<blockquote> +<p>CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2022年6月22日,CodeGeeX历时两个月在20多种编程语言的代码语料库(&gt;8500亿Token)上预训练得到</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://iximiuz.com/en/series/computer-networking-fundamentals/" target="_blank" rel="noopener" +>计算机网络基础学习(英文)</a>,一个在线讲解网络基础知识的教程,优点是内容简洁,不用特别多的专用名词唬人,另外还提供了在线实验的环境。</p> +<blockquote> +<p>关于计算机网络的书籍往往令人生畏 - 数千页,无聊的图表&hellip;&hellip;这个教程以几千字的字数引导您了解网络基础知识!它还提供动手实验室来实践所获得的知识。</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-51-40.png" +width="764" +height="476" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 007 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/Wed, 09 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/<h1 id="机器文摘-第-007-期">机器文摘 第 007 期</h1> +<h2 id="长文">长文</h2> +<h3 id="如何在-html5-canvas-制作可精确控制时间的动画">如何在 HTML5 Canvas 制作可精确控制时间的动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-09-30-08.png" +width="576" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="410px" +></p> +<p>使用 Canvas 对象在网页中制作动画非常简单,有不少人喜欢直接使用定时器 <code>setinterval</code> 以一定的时间周期循环执行绘图代码来实现动画效果。但是这种做法有一个弊端,由于显示刷新率以及计算机硬件性能的不同,会导致在不同机器上的表现差异。比如你希望你的动画角色在 1 秒内移动 50 个像素,但是实际执行起来却很难控制。<a class="link" href="https://www.viget.com/articles/time-based-animation/" target="_blank" rel="noopener" +>基于时间的动画</a>这篇文章讲解了如何使用浏览器的 <code>requestAnimationFrame</code> API 来实现精准控制动画时间的效果,里面给出了一个很简单的样例,但是基本上给出了一个完整的“更新、渲染、通过时间变化计算运动距离”的游戏控制架构。</p> +<h3 id="如何使用纯-web-技术开发一个相机-app">如何使用纯 Web 技术开发一个相机 App</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-09-47-44.png" +width="680" +height="475" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="343px" +></p> +<p>如果不习惯复杂的移动 app 开发环境,直接使用 Web 技术开发一些小的 App 也是十分方便的。我近期希望通过网页实现一个拍照的应用,并且希望不使用手机的原生相机功能,而是自己控制一些相机参数、后期效果、增加特定的取景框等等。于是我找到了一篇教学指南:<a class="link" href="https://blog.prototypr.io/make-a-camera-web-app-tutorial-part-1-ec284af8dddf" target="_blank" rel="noopener" +>Make a Camera Web App</a>,只需几十行代码就实现了一个相机 App 。感兴趣的朋友可以点进去看看。</p> +<h3 id="数据库是如何工作的从零开始写一个数据库">数据库是如何工作的,从零开始写一个数据库</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-01-15.png" +width="390" +height="394" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="237px" +></p> +<p>如果和我一样好奇数据库是如何实现的,可以看看<a class="link" href="https://cstack.github.io/db_tutorial/" target="_blank" rel="noopener" +>这篇文章</a>。带你用 C 语言从头撸一个数据库出来。</p> +<h3 id="使用-rust-写一个操作系统">使用 Rust 写一个操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-05-43.png" +width="702" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +></p> +<p>Rust 逐渐火起来了,这篇 <a class="link" href="https://os.phil-opp.com/zh-CN/" target="_blank" rel="noopener" +>2018 年的文章</a>整理了一份教程,作者尝试使用 Rust 写一个操作系统,我之所以收录它是因为作者还在 Github 开源了代码,并且这系列教程甚至提供了多国语言的版本。制作精良。应该是实践操作系统知识的好教材。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://100dayscss.com/" target="_blank" rel="noopener" +>100 天精通 CSS </a>,这个网站给了你 100 个关于 CSS 技术的挑战题目,也许练完之后可以达到深入应用 CSS 的效果,我尝试了几个挑战,有些题目的设置有些偏炫技范畴了,想在工作中使用估计会被打死。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-24-10.png" +width="392" +height="391" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +</li> +<li> +<p><a class="link" href="http://cht.sh/" target="_blank" rel="noopener" +>Linux 命令在线帮助工具</a>,对于我这种经常记不住命令用法的人来说真的是一种福音。比如我就经常记不清 <code>tar</code> 命令的用法,面对压缩包解压或者文件打包的工作每次都是去网上搜索一番。有了这个在线工具,直接在命令行中使用 <code>curl</code>请求他的网址就可给出命令的样例用法详解,非常方便。比如执行<code>curl cht.sh/tar</code> 就会给出 tar 的使用样例了,我直接复制粘贴之。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-28-42.png" +width="586" +height="462" +loading="lazy" +class="gallery-image" +data-flex-grow="126" +data-flex-basis="304px" +></p> +</li> +<li> +<p><a class="link" href="https://www.mobilephonemuseum.com/" target="_blank" rel="noopener" +>手机博物馆</a>, 网站收录了各品牌手机的各代产品资料,包括手机图片、型号参数、当时发布的广告等。不过我看了一下,资料应该还不齐全,有些手机只是列了个名字和型号在那儿,还缺少详细信息,估计还在继续收集中。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-32-23.png" +width="1696" +height="790" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="515px" +></p> +</li> +<li> +<p><a class="link" href="http://www.famicn.com/" target="_blank" rel="noopener" +>中文家用游戏博物馆</a> ,收录了比较齐全的家用游戏机及掌机的中文版游戏资料。可以直接在线通过模拟器玩耍。有不少经典的 FC、GB、MD 游戏,甚至还有小霸王学习机的 ROM ,可以在线体验。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-36-51.png" +width="1096" +height="711" +loading="lazy" +class="gallery-image" +data-flex-grow="154" +data-flex-basis="369px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 006 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/Wed, 02 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/<h1 id="机器文摘-第-006-期">机器文摘 第 006 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样写一段代码把自己打印出来">怎样写一段代码把自己打印出来?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-13-45-45.png" +width="651" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></p> +<p>近期在知乎上看到一个<a class="link" href="https://www.zhihu.com/question/22006572/answer/2722369370" target="_blank" rel="noopener" +>如何编写代码打印自己的问题</a>,感到十分有趣。以前也在网上见到过类似的代码,用 C 或者 Javascript 等各种语言实现的版本都有。当时只是感叹代码写的十分神奇,一段代码在运行之后竟然输出自己的源代码,而且一个字符也不差,并没有搞懂其中的原理。这篇回答里,作者给出了详细解释。并指出,冯·诺依曼早在他编写的《自复制元胞自动机理论》一书中的提出了这种事情在理论上的通用方法。</p> +<blockquote> +<p>如上图所示,自复制系统有五个基本部件:A:通用构造器;B:通用复制器;C:控制器;D:其他函数;ϕ(A,B,C,D)\phi(A,B,C,D)\phi(A,B,C,D) : A, B, C, D的编码;当自复制过程启动的时候,B将编码复制一份。A再根据复制出的编码构造出ABCD。最后,C再将这些结构组合起来,构造出一个新的、复制的结构。可以看到,自复制、自打印程序的核心就在于通用构造器和编码,因为复制器、控制器都是比较容易实现的。</p> +</blockquote> +<p>具体实现的示例,文中有更详细的说明。</p> +<p>最后,此问题可以引申到,大自然中生命基于基因的复制机制,也是与此相关,甚至其背后都是同样的机制。</p> +<h3 id="kevin-kelly-在-68-岁生日时给出的-68-条建议">Kevin Kelly 在 68 岁生日时给出的 68 条建议</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-01-30.png" +width="688" +height="368" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></p> +<p><a class="link" href="https://baike.baidu.com/item/%E5%87%AF%E6%96%87%C2%B7%E5%87%AF%E5%88%A9/6607570" target="_blank" rel="noopener" +>凯文·凯利(又称KK, 作者,著有《失控》《科技想要什么》《必然》等)</a>,上个月 28 号是他的 68 岁生日,他准备了 68 条简短的建议,作为礼物送给年轻人。</p> +<p>有人翻译了<a class="link" href="https://zhuanlan.zhihu.com/p/143834871" target="_blank" rel="noopener" +>KK 在 68 岁生日时给出的 68 条建议</a>。</p> +<p>摘抄几条如下:</p> +<blockquote> +<p>任何一项大工程(修房子、拍电影、开发 app)完成度为 90% 的时候,你都要做好心理准备:剩余的大量细节工作会占掉你另一段与之前相当的时间。</p> +</blockquote> +<blockquote> +<p>不要担心自己问的问题听起来很傻。99% 的情况下,其他人都有和你一样的问题,只不过羞于问出口而已。</p> +</blockquote> +<blockquote> +<p>别成为一群人里最聪明的那个。和那些比你聪明的人待在一起,向他们学习。如果能找到和你观点相左的聪明人,那就更好了。</p> +</blockquote> +<blockquote> +<p>别做最好的。做唯一的。</p> +</blockquote> +<blockquote> +<p>任何真实之物都源于虚构之意。想象是宇宙中最强大的力量,也是你能够日益精进的能力。生命中可以因不知众人所知而获益的能力,仅此一项。</p> +</blockquote> +<blockquote> +<p>经验往往被高估了。招募的时候,要看资质,技能则可以培训。许多令人惊奇和赞叹的事情,都是由第一次做的人做出来的。</p> +</blockquote> +<h3 id="怎样搭建一个最简的-git-服务器">怎样搭建一个最简的 GIT 服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-15-18.png" +width="626" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="322px" +></p> +<p>GIT 是现在软件开发过程中必不可少的版本控制工具,功能非常强大,我们平时直接使用单位的私有服务或者在线的云服务(如:Github 等)。</p> +<p>如果想要搭建个人的服务,可能就比较繁琐一些。<a class="link" href="https://www.ruanyifeng.com/blog/2022/10/git-server.html" target="_blank" rel="noopener" +>阮一峰老师的这篇博客</a>就解答了怎样采用极简的技术路线,为自己搭建一台 GIT 服务器。</p> +<blockquote> +<p>自己搭建 Git 服务器的原因,无非就是不方便访问外网,不愿意代码放在别人的服务器,或者有一些定制化的需求。 +这时,你可以选择开源的 Git 服务器软件。 +Gitlab CE +Gitea +Gogs +Onedev +这些软件里面,Gogs 的安装是最简单的,但是功能相对比较弱。功能越强的软件,安装越复杂。 +如果你只是想远程保存一份代码,并不在意有没有 Web 界面,或者其他功能,那么根本不用安装上面这些软件,一行命令就够了。</p> +</blockquote> +<h3 id="为什么很多程序员讨厌低代码">为什么很多程序员讨厌低代码?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-24-59.png" +width="640" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="180" +data-flex-basis="432px" +></p> +<p>“低代码”(一般指:不用或少用编写代码的方式进行软件开发)这个词近两年又开始火了,它代表着对软件工程的一种美好“幻想”,即:花费更低的代价去构建复杂的软件系统。</p> +<p>虽然每隔一个时间周期都会被重提一次,但是每次都未能如愿。</p> +<p>现在既然又被频繁提及,我在知乎上发现了这样一篇<a class="link" href="https://www.zhihu.com/question/561025857/answer/2734260311" target="_blank" rel="noopener" +>关于低代码话题的回答</a>。从程序员的视角表达了对低代码这种期望的观点,有兴趣的朋友可以点进去看看。</p> +<blockquote> +<p>软件工程这门学问,研究的就是“如何利用工程思想,从整体上降低开发复杂性”;但与之同时,它不得不反复强调“软件工程试图解决的、是人为引入的不必要的复杂性;但工程的本质复杂性是无法逃避的。因为没有银弹,没有银弹,没有银弹!”</p> +</blockquote> +<p>我个人的观点是:低代码或者配置化、拖拽式软件开发,很难平衡对复杂现实的抽象程度和开发便利性的矛盾关系。如何做到既提供方便的组件同时又不限制对个性化需求的实现,这需要非常强大的设计能力以及对于特定应用场景的取舍。目前来看,如果要做到或者接近上述状态,必然要先消耗巨量的成本,至于是否值得,可能不同的主体会有不同的选择吧。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/Visualize-ML/Book4_Power-of-Matrix" target="_blank" rel="noopener" +>从加减乘除到机器学习</a>,一本不错的数学扫盲书,如果你在学习人工智能的时候对数学感到吃力的话,这本书非常适合阅读,一点也不枯燥。主要讲解线性代数相关的知识。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-46-11.png" +width="616" +height="335" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="441px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md" target="_blank" rel="noopener" +>命令行的艺术</a> 想成为命令行高手,掌握这一篇就够了。</p> +<blockquote> +<p>熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-47-54.png" +width="477" +height="287" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="398px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/practical-tutorials/project-based-learning" target="_blank" rel="noopener" +>基于实际项目的学习</a>,这是一个巨大的代码工程资源索引,里面列举了针对各种编程语言的个人项目,当你不知道该如何去深入学习一门编程语言的时候,选择一个这里的项目然后自己动手跟着练一遍效果绝对惊人。入选的项目都十分有趣,比如怎样用 C 写一个解释器、怎样写一个自己的编辑器、自己动手实现 TCP/IP 协议栈,等等。</p> +</li> +<li> +<p><a class="link" href="https://github.com/lxgw/LxgwWenKai" target="_blank" rel="noopener" +>霞鹜文楷</a>,一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。用来看书非常舒服,特别是在排版上。微信读书已经内置,如果是第三方支持自定义字体的可以试试。</p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 005 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/Wed, 26 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/<h1 id="机器文摘-第-005-期">机器文摘 第 005 期</h1> +<h2 id="长文">长文</h2> +<h3 id="穿越到-1983-年学习-basichttpslinuxcnarticle-11091-1html"><a class="link" href="https://linux.cn/article-11091-1.html" target="_blank" rel="noopener" +>穿越到 1983 年学习 BASIC</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-10-33-53.png" +width="1006" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="156" +data-flex-basis="374px" +></p> +<blockquote> +<p>很多著名的程序员,尤其在计算机游戏行业,孩童时期就在苹果 II 和 Commodore 64 这样的 8 位计算机上开始编写游戏,John Romero、Richard Garriott 和 Chris Roberts 都是这样的例子。这好理解。在 8 位计算机时代,很多游戏只能在计算机杂志和书籍中以印刷的 BASIC 程序清单方式得到。如果你想玩其中一款游戏,就必须手工键入整个程序。不可避免的,你可能遇到一些问题,所以你就得调试你的程序。等到你让它可以工作起来了,你就已经对程序是如何运行的有了足够的了解,你就可以开始自己修改它了。如果你是一个狂热的游戏玩家,你几乎必然会成为一名优秀的程序员。</p> +</blockquote> +<p>喜欢小霸王的小伙伴(老伙伴?),不可错过的文章,一起跟随作者回忆一下如何在老古董电脑上运行BASIC程序,顺便怀念一下当年靠着一本说明书就在小霸王学习机上编写(抄写)游戏的时光。</p> +<ul> +<li>文中提到的<a class="link" href="https://vice-emu.sourceforge.io/" target="_blank" rel="noopener" +> Commodore64 电脑可以在这里下载模拟器</a>。</li> +</ul> +<h3 id="在-github-的-pages-服务里跑-sqlitehttpsphireskygithubioblog2021hosting-sqlite-databases-on-github-pages"><a class="link" href="https://phiresky.github.io/blog/2021/hosting-sqlite-databases-on-github-pages/" target="_blank" rel="noopener" +>在 Github 的 Pages 服务里跑 SQLite</a></h3> +<p>作者尝试做一个小网站来显示一些统计数据,于是他想到了用数据库,但是,使用数据库需要托管和维护后端服务,或者每次将整个数据集下载到浏览器中(当数据集超过10MB时,体验就变得很差劲)。</p> +<p>于是作者开始琢磨有没有办法找到一个可以在静态服务器上搞一个数据库服务得可能,毕竟提供静态服务的地方有很多(如 GitHub,GitLab,Netlify 等等)。</p> +<p>一通折腾下来(借助了 WASM 技术并适当的进行一些魔改),作者竟然实现了一个 100% 静态托管的数据库服务。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-10-10-18.png" +width="864" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +></p> +<h3 id="语句表达式和海象操作符httpswwwzlovezlcnarticlesstmt-expr-and-walrus-operator"><a class="link" href="https://www.zlovezl.cn/articles/stmt-expr-and-walrus-operator/" target="_blank" rel="noopener" +>语句、表达式和海象操作符</a></h3> +<p>这是一篇介绍如何通过“海象操作符“(类似这样:<code>foo := 'bar'</code>)使得Python语句更加精炼的文章。</p> +<p>这种操作符之所以可以使得语句更加精炼,主要原因就是它使得一句代码既进行了赋值然后又作为表达式返回了值。</p> +<p>之前写 Python 代码的时候都没注意还有这种写法,而且貌似这在 C 和 C++ 中都是基本的特性。不过 C 和 C++ 是赋值语句<code>=</code>直接就返回了表达式的值,同时这给程序员提供了出错机会(有不少人应该还记得条件判断时少写了个等号导致的问题)。</p> +<h3 id="给个人开发者的一些建议英文httpsnewsycombinatorcomitemid32647091"><a class="link" href="https://news.ycombinator.com/item?id=32647091" target="_blank" rel="noopener" +>给个人开发者的一些建议(英文)</a></h3> +<p>hacker news 上的网友针对有志于运营自己的SaaS产品的个人开发者提了一些心得和建议。</p> +<p>摘抄一点儿如下:</p> +<ul> +<li>关于做什么,做那些你自己都愿意付费的东西,别指望做出一个你自己都不想花钱使用的产品有别人来买单;</li> +<li>还是关于做什么,不要做需要漂亮UI的东西,那会让你陷入编码之外的很多麻烦(确实很牵涉精力),如果提供的工具能够通过简单交互就能提供优质服务最佳;</li> +<li>如果有可能,尽量提供自助服务模式,也就是说让用户不用见到你就可以自行操作付款了(作者这是有多社交恐惧?);</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://visualgo.net/zh" target="_blank" rel="noopener" +>数据结构与算法可视化</a>,是一个学习算法知识的好工具。通过动图来演示和讲解数据结构和算法实现原理,针对每一个常用算法不仅有直观的图示,还附有一篇详细的文档,内涵原理知识以及代码实例,网站甚至还提供了答题练习功能,可以一边学习一边做题。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-31-46.png" +width="1072" +height="321" +loading="lazy" +class="gallery-image" +data-flex-grow="333" +data-flex-basis="801px" +></p> +<ul> +<li><a class="link" href="https://lisperator.net/slip/" target="_blank" rel="noopener" +>SLip</a>,一个在浏览器中运行的Lisp解释器,使用Javascript实现。网站提供了一个简易的IDE,可以直接在页面中进行编程开发,还提供了图形绘制的扩展包,用于学习lisp语言非常合适。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-35-46.png" +width="497" +height="363" +loading="lazy" +class="gallery-image" +data-flex-grow="136" +data-flex-basis="328px" +></p> +<ul> +<li><a class="link" href="https://www.lfd.uci.edu/~gohlke/pythonlibs/" target="_blank" rel="noopener" +>针对 Windows 预先编译的 Python 扩展包</a>,在使用Python的时候,尤其是在Windows环境,经常会遇到有些扩展包由于依赖某些二进制库的原因导致无法通过pip直接安装,自己动手编译又十分麻烦。这个网站提供了各种预编译版本,可以直接下载网站提供的whl文件到本地然后安装。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-40-07.png" +width="675" +height="345" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="469px" +></p> +<ul> +<li><a class="link" href="https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing" target="_blank" rel="noopener" +> 3D 渲染器入门</a>,一套计算机图形学的入门教程,从原理讲解开始,手把手教你用C++语言编写一个自己的光线追踪渲染器。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-48-21.png" +width="531" +height="361" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></p> +<ul> +<li><a class="link" href="https://htmldog.com/" target="_blank" rel="noopener" +>HTMLDOG</a>,前端开发基础知识大全,主要是 HTML、CSS、Javascript 的手把手教学以及语言参考。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-52-21.png" +width="1862" +height="709" +loading="lazy" +class="gallery-image" +data-flex-grow="262" +data-flex-basis="630px" +></p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 004 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/Tue, 18 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/<h1 id="机器文摘-第-004-期">机器文摘 第 004 期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-09-53-01.png" +width="324" +height="702" +loading="lazy" +class="gallery-image" +data-flex-grow="46" +data-flex-basis="110px" +></p> +<p>美国德州仪器公司出品的TI图形计算器是一种既能计算又能作图的新型的数学使用工具,它具备符号代数系统、几何操作系统、数据分析系统等,可以直观地绘制各种图形,并进行动态演示、跟踪轨迹。</p> +<p>TI实体计算器的售价十分昂贵(相较于其他消费类计算器),这里有一个开源项目<a class="link" href="http://wabbitemu.org/" target="_blank" rel="noopener" +>wabbitemu</a>,使用C语言编写的一个TI计算器的模拟器,可以在电脑上运行并模拟TI计算器,支持多种型号,如TI-82、TI-83、TI-83-plus(需要加载对应的ROM)等。</p> +<p>甚至有人基于这个项目编译出了Android的版本,安装后手机秒变成高级科学计算器。</p> +<p>想进一步了解TI计算器的强大,可以看一下这篇文章<a class="link" href="https://zhuanlan.zhihu.com/p/148392866" target="_blank" rel="noopener" +>《计算器与计算器游戏发展简史》</a>。</p> +<ul> +<li><a class="link" href="http://www.liubaoyi.com/wp-content/uploads/2014/11/Android_Wabbitemu.zip" target="_blank" rel="noopener" +>TI计算器模拟器安卓版本下载地址(含ROM文件)</a></li> +<li><a class="link" href="http://www.liubaoyi.com/wp-content/uploads/2014/11/CX-C-CAS-%E5%9B%BE%E5%BD%A2%E8%AE%A1%E7%AE%97%E5%99%A8%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97.zip" target="_blank" rel="noopener" +>TI计算器使用说明书</a></li> +</ul> +<p>以上资源来自<a class="link" href="http://www.liubaoyi.com/" target="_blank" rel="noopener" +>@Karen的日志</a></p> +<h2 id="观点">观点</h2> +<blockquote> +<p>社交媒体的正确使用方法: +一,不浪费一秒钟时间和知识结构相差太大的人去解释/讨论。你没有义务也没有这个精力。对任何不友好评论,迅速拉黑。 +二,通过公开展示你的思考,来寻找在知识结构,兴趣或技能上,可能与你产生互补作用,或者 1+1&gt;2 的效应的朋友。公开展示长期留存的文字记录,效率最高。</p> +</blockquote> +<p>来自<a class="link" href="https://weibo.com/5339148412/Mal0hACJr" target="_blank" rel="noopener" +>@硅谷王川</a></p> +<h2 id="长文">长文</h2> +<h3 id="我是如何用21天刷完sicp">我是如何用21天刷完SICP</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-56-50.png" +width="411" +height="300" +loading="lazy" +class="gallery-image" +data-flex-grow="137" +data-flex-basis="328px" +></p> +<p>SICP 全称 Structure and Interpretation of Computer Programs,翻译过来叫《计算机程序的构造和解释》,是一本关于计算机程序设计的总体性观念的基础教科书,由麻省理工学院出版社与麦格罗希尔出版社共同出版营销。作者是麻省理工学院教授哈尔·阿伯尔森、杰拉德·杰伊·萨斯曼。</p> +<p>这本书是计算机编程领域非常经典的一本教科书,内容覆盖范围非常广泛,从编程入门一直到教你亲手设计实现一个编程语言解释器。虽然是一本几十年前的书,但是书中的编程理念如数据驱动、过程抽象等到现在仍不过时。可以说是程序员修炼“内功心法”必读的一本好书。</p> +<p>这篇<a class="link" href="http://numbbbbb.com/2016/03/28/20160328_%E6%88%91%E5%A6%82%E4%BD%95%E7%94%A8%E4%B8%A4%E5%91%A8%E6%97%B6%E9%97%B4%E5%88%B7%E5%AE%8C%20SICP/" target="_blank" rel="noopener" +>《我是如何用21天刷完SICP(中文)》</a>的文章讲述了作者通过阅读本书学习的过程和心得,里面的观点可以借鉴,我在看完之后也想再把这本书拿出来学习一遍。</p> +<p>觉得看书太晦涩的,可以到下面这个项目里下载本书作者课堂讲解视频(国内好心人给做了翻译字幕)</p> +<ul> +<li><a class="link" href="https://learningsicp.github.io/" target="_blank" rel="noopener" +>『计算机程序的结构和解释』公开课 翻译项目</a></li> +<li><a class="link" href="https://pan.baidu.com/s/1o78bsYA" target="_blank" rel="noopener" +>百度网盘SICP文件夹</a></li> +<li><a class="link" href="https://www.bilibili.com/video/av8515129/" target="_blank" rel="noopener" +>中译版视频专辑列表(bilibili)</a></li> +</ul> +<h3 id="图解stable-diffusion模型">图解Stable Diffusion模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-55-05.png" +width="937" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="242" +data-flex-basis="581px" +></p> +<p>这篇<a class="link" href="https://jalammar.github.io/illustrated-stable-diffusion/" target="_blank" rel="noopener" +>图解Stable Diffusion模型(英文)</a>详细讲解了 Stable Diffusion(最近比较火的那个可以通过文字描述进行绘图的AI模型)的工作原理。文中使用清晰的图示阐述了“扩散”模型是怎样通过给图片增加噪声一步一步生成图像的。</p> +<h3 id="wine是如何工作的">Wine是如何工作的</h3> +<p>Linux桌面用户都遇到过在不得不运行 Windows 软件的时候,这个时候就可以使用这个叫做 Wine 的兼容程序,它可以让你在 Linux 下执行 win32 程序。( Valve 最新出品的游戏掌机 Steam Dect 就使用了 Wine 作为兼容层来运行 Windows 平台下的游戏)。</p> +<p>Wine 的名字来自于 “Wine Is Not an Emulator” 这个英文缩写。</p> +<p>这篇<a class="link" href="https://werat.dev/blog/how-wine-works-101/" target="_blank" rel="noopener" +>《Wine是如何工作的(英文)》</a>介绍了它的基本工作原理。</p> +<h3 id="在-windows-记事本里运行光线追踪">在 Windows 记事本里运行光线追踪</h3> +<p>光纤追踪(Ray Tracing)是一项计算机图形学技术,使用该技术渲染的计算机图像具有逼真的全局光照效果。</p> +<p>这篇<a class="link" href="http://kylehalladay.com/blog/2020/05/20/Rendering-With-Notepad.html" target="_blank" rel="noopener" +>《记事本中的光线追踪 30FPS》</a>记录了作者突发奇想要在Windows上的记事本中进行光线追踪渲染的趣事。</p> +<p>其原理是通过系统API获取到记事本窗口的句柄,然后利用钩子函数给记事本的窗体发送相应的“消息”以及覆盖对应的内存数据来实现对记事本窗体界面的“魔改”。最终实现了在另一个进程里执行光线追踪算法,然后借用记事本中显示的字符来替代画面像素,从而“渲染”出画面的效果。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="github.com/SerenityOS/serenity" >SerenityOS项目</a>,一个从头开始的桌面操作系统,内核采用类似Unix的架构,界面外观则仿照了上世纪90年代Windows的窗口风格。作者并未将其定位成玩具,而是一款具备生产力的操作系统软件。 除了操作系统本身,这个项目还有配套的编程语言Jakt、自己的浏览器引擎LibWeb和浏览器Ladybird ​​​</p> +</li> +<li> +<p><a class="link" href="https://github.com/ruanyf/document-style-guide" target="_blank" rel="noopener" +>《中文技术文档写作规范》</a>,<a class="link" href="https://www.ruanyifeng.com/blog/" target="_blank" rel="noopener" +>阮一峰老师</a>整理的技术文档写作规范,规定了标题、文本、段落、标点符号等文档元素的使用约定,需要经常编写技术文档的朋友可以收藏看看。</p> +</li> +<li> +<p><a class="link" href="https://freehand.yunwooo.com/" target="_blank" rel="noopener" +>Freehand意绘</a>,一个在线的AI绘图工具,可以根据文字描述帮助你生成图片,界面简洁友好,使用方便。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-58-24.png" +width="1063" +height="525" +loading="lazy" +class="gallery-image" +data-flex-grow="202" +data-flex-basis="485px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/izackwu/TeachYourselfCS-CN" target="_blank" rel="noopener" +>计算机科学自学指南</a>,提供了一份自学计算机科学的全方位资料大全,可以根据内容系统地进行学习计算机科学相关的知识。</p> +<blockquote> +<p>互联网上,到处都有许多的学习资源,然而精华与糟粕并存。你所需要的,不是一个诸如「200+ 免费在线课程」的清单,而是以下问题的答案:</p> +<p>你应当学习 哪些科目,为什么? +对于这些科目,最好的书籍或者视频课程 是什么? +在这份指引中,我们尝试对这些问题做出确定的回答。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://stevens.netmeister.org/631/" target="_blank" rel="noopener" +>UNIX环境中的高级编程</a>,一套编程教程,在课程中,主要学习用C编程语言开发复杂的系统级软件,同时深入了解Unix操作系统(以及属于该家族的所有操作系统,如Linux,BSD,甚至Mac OS X)及其编程环境。</p> +<blockquote> +<p>涵盖的主题将包括用户/内核接口,Unix的基本概念,用户身份验证,基本和高级I / O,文件系统,信号,进程关系和进程间通信。还将涵盖Unix系统上软件开发和维护的基本概念(开发和调试工具,如“make”和“gdb”)。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://codeberg.org/drummyfish/tinyphysicsengine" target="_blank" rel="noopener" +>写在C头文件里的3D物理引擎</a>,一个仅用C99标准写在C头文件里的超小物理引擎,没有依赖,直接包含头文件即可在你的工程中使用,功能完整,内置向量、三角函数、引力等计算库。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-14-04-11.png" +width="399" +height="326" +loading="lazy" +class="gallery-image" +data-flex-grow="122" +data-flex-basis="293px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 003 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/Tue, 11 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/<h1 id="机器文摘-第003期">机器文摘 第003期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-17-41.png" +width="853" +height="640" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></p> +<h3 id="收听广播可以缓解压力个人体会">收听广播可以缓解压力(<em>个人体会</em>)</h3> +<p>近期我找到一个缓解焦虑的新方法,听收音机。</p> +<p>一定要老式的那种,收听真正无线电波信号的。随便找个台,最好还带有滋滋啦啦的杂音,当作工作时的背景声音,听着听着就感觉无比的放松。但又不是简单的“粉红噪音”、“白噪音”带来的那种平静,这种“仿佛脱离现在、回到了某个时空”的感觉让人感到愉悦。</p> +<p>我还没找到相关的研究信息,有人知道原理吗?</p> +<h2 id="动向">动向</h2> +<h3 id="欧洲通过法案将强制统一usb-type-c接口为充电接口">欧洲通过法案,将强制统一USB Type-C接口为充电接口</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-15-46-02.png" +width="800" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<blockquote> +<p>欧洲议会今天以压倒性多数投票赞成在2024年底之前将USB-C作为包括iPhone和AirPods在内的各种消费电子设备的通用充电端口。</p> +</blockquote> +<p>这对于苹果来说恐怕是个坏消息,对于消费者来说应该是个好消息。不过也许以苹果公司的脾气,说不定将来取消所有物理接口也有可能。</p> +<ul> +<li><a class="link" href="https://www.macrumors.com/2022/10/04/eu-passes-law-to-switch-iphone-to-usb-c-in-2024/" target="_blank" rel="noopener" +>欧洲强制iPhone使用usb-c接口</a></li> +</ul> +<h3 id="波士顿动力承诺不将机器人武器化">波士顿动力承诺不将机器人武器化</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-15-11.png" +width="640" +height="427" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></p> +<blockquote> +<p>当地时间 10 月 6 日消息,波士顿动力、Agility Robotics、ANYbotics 等 6 家公司联合发表致行业的公开信表达了他们对这些可能性的担忧。他们称,先进的商业化机器人的经济可负担性和可获得性越来越强,其被滥用的可能性也越来越大。我们承诺不会将通用机器人或软件武器化,也不会支持其他人这么做;同时呼吁政策制定者、开发者和用户共同促进安全使用。</p> +</blockquote> +<p>我个人感觉此类声明并不会带来什么限制,相反地,我偏悲观的认为这种技术很可能以最优先的速度被应用于军事目的。</p> +<ul> +<li><a class="link" href="https://www.163.com/dy/article/HJ5DMDS005118DFD.html" target="_blank" rel="noopener" +>网易新闻:波士顿动力承诺不将机器人武器化</a></li> +</ul> +<h3 id="taocpthe-art-of-computer-programming-4b正式初版">TAOCP(《The Art of Computer Programming》) 4B正式初版</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-30-24.png" +width="756" +height="732" +loading="lazy" +class="gallery-image" +data-flex-grow="103" +data-flex-basis="247px" +> +<em>图片来自<a class="link" href="https://weibo.com/5819320755/M9LXaF5I3" target="_blank" rel="noopener" +>@算法时空</a></em></p> +<p>世界著名程序员——高德纳老师,日前在他的个人网站宣布了<a class="link" href="https://www-cs-faculty.stanford.edu/~knuth/news.html#v4b" target="_blank" rel="noopener" +>TAOCP 4B正式出版</a>的消息。</p> +<p>这部计算机世界的经典巨著,耗费了高德纳老爷子的毕生心血,虽然已经出到了第四B卷,但本书目前还没有完全写完(本书从1962年开始写(中间停了几年是因为老爷子发现没有趁手的排版软件,就顺手发明了TEX——这又是另一个宏大话题了),计划共有七卷,其中第四卷分ABC三册)。他在自己主页中提到:</p> +<blockquote> +<p>与此同时,我继续研究第3部分(第4C卷),它已经有许多令人兴奋的主题。</p> +</blockquote> +<p>我只能说:祝老爷子身体健康!</p> +<h3 id="webassembly技术发展的怎么样了">WebAssembly技术发展的怎么样了?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-45-39.png" +width="386" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="241px" +></p> +<blockquote> +<p>WebAssembly 是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如 C、C++和 Rust 等低级源语言提供一个高效的编译目标。 +——来自<a class="link" href="https://developer.mozilla.org/zh-CN/docs/WebAssembly/Concepts" target="_blank" rel="noopener" +>Mozilla官方文档关于WebAssembly概念的介绍</a>。</p> +</blockquote> +<p>WebAssembly技术号称可以在浏览器中高效执行代码,并可以很方便地将C、Rust等各种语言编译到浏览器中执行,那么目前他的使用体验如何?</p> +<p>我周末做了简单体验。</p> +<p>通过官方给出的文档和入门指南,可以很快速地搭建出程序的原型,上图就是我参考官方示例将Rust代码编译到网页中执行的效果(是一个<a class="link" href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" target="_blank" rel="noopener" +>经典的Game of life的小游戏</a>)。</p> +<p>从开发上来说,现在已经有了比较成熟的工具链(尤其是针对Rust语言到WASM的工具),和共享库的生态,想要进行开发,不必像前些年那样费心地搭建开发环境,基本上在Linux系统下简单执行几行命令即可完成环境搭建。</p> +<p>从执行效果来说,我没有做性能测试,直观感受上来说,确实比原生js快了不少。</p> +<p>但这并不是重点,我个人觉得这项技术它最大的意义在于,将之前的桌面程序技术有了向Web移植的可行性。</p> +<p>我们有可能很快就看到完全兼顾Web分发的方便和桌面程序性能体验的产品。</p> +<ul> +<li><a class="link" href="https://www.infoq.cn/article/hdwglnhub2wwklo9zz6z" target="_blank" rel="noopener" +>一则WebAssembly相关的新闻</a></li> +<li><a class="link" href="https://github.com/mbasso/awesome-wasm" target="_blank" rel="noopener" +>GitHub网友整理的关于WASM的资源大全</a></li> +<li><a class="link" href="https://rustwasm.github.io/docs/book/introduction.html" target="_blank" rel="noopener" +>一本手把手教你使用Rust语言进行WASM开发的在线电子书</a></li> +<li><a class="link" href="https://zalo.github.io/CascadeStudio" target="_blank" rel="noopener" +>一个使用WASM技术将三维设计软件CAD嵌入到网页中的开源项目</a></li> +<li><a class="link" href="https://supabase.com/blog/postgres-wasm" target="_blank" rel="noopener" +>一个使用WASM技术在浏览器中运行的PostgresSQL数据库</a></li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>在你的密码里面放上一个逗号<code>&quot;,&quot;</code>,这样当你的密码在网上被人拖库时可以给黑客增加一些麻烦,因这样会使得他在作为csv文件往他的密码字典里面导入的时候,因为逗号分隔符的错位而让他崩溃。 +注:csv文件默认使用逗号分隔符区分字段。</p> +</blockquote> +<ul> +<li>来自:佚名网友。</li> +</ul> +<blockquote> +<p>当你长期使用windows远程桌面进行远程办公时,一层一层的服务器登进去,时间长了就会陷入盗梦空间那种疑惑,我现在是在哪一层?</p> +</blockquote> +<ul> +<li>来自:我自己。</li> +</ul> +<blockquote> +<p>量子计算机就是向过去和未来借用了很多乃至无限的时间吗?刹那即永恒。 +注:量子计算机号称每个bit位可在同一时刻表示多种状态。</p> +</blockquote> +<ul> +<li>来自:我自己。</li> +</ul> +<h2 id="长文">长文</h2> +<h3 id="从0到1打造家庭弱电方案">从0到1打造家庭弱电方案</h3> +<p>现在有不少人在困惑家里的网线该如何布局,这篇<a class="link" href="https://luolei.org/home-network-1/" target="_blank" rel="noopener" +>《从0到1打造家庭弱电方案》(中文)</a>记录了作者完整的装修过程,内容十分精彩详尽。看完之后我有点儿后悔,当时装修时没有给各个房间拉上光纤,以及用了比较普通的超五类网线。</p> +<h3 id="如何配置一个完全基于命令行窗口的开发环境">如何配置一个完全基于命令行窗口的开发环境</h3> +<p>我在油管上关注了一个日本小哥(Takuya Matsuyama),是一个个人开发者,经常上传自己的开发过程录屏,他完全基于命令行窗口(控制台)进行开发,没使用任何IDE。</p> +<p>后来我参考他的配置文件给自己也配置了一套,使用fish作为shell,neovim加上各种插件作为主力编辑器,现已成为我的日常开发环境。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-11-16-56.png" +width="1571" +height="820" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +></p> +<p>有条件的可以到他的主页看看关于如何配置的详细介绍,或者直接去他的github仓库获取配置文件。</p> +<ul> +<li><a class="link" href="https://www.craftz.dog/posts" target="_blank" rel="noopener" +>Takuya Matsuyama小哥的主页</a></li> +<li><a class="link" href="https://github.com/craftzdog/dotfiles-public" target="_blank" rel="noopener" +>他的基于控制台命令行开发的各种配置文件</a></li> +</ul> +<h3 id="云桌面并不像你想的那么好">云桌面并不像你想的那么好</h3> +<p>给开发人员配置一个廉价的笔记本加上一个高性能的云端工作站,这个点子棒不棒?</p> +<p>听起来有很多的优势,兼具了性能、便携性、安全性等等。</p> +<p>不过先等一等,这里有一位作者在这样尝试了之后,给出了不少负面反馈(比如多显示器支持、GPU加速、网页视频质量等等问题),有兴趣的可以点进去看看。</p> +<ul> +<li><a class="link" href="https://mjg59.dreamwidth.org/61535.html" target="_blank" rel="noopener" +>《云桌面并不像你想象的那么好》(英文)</a></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://webusers.imj-prg.fr/~jan.nekovar/co/en/en.pdf" target="_blank" rel="noopener" +>从高中到大学,数学中常用符号和计算关系的英文名称</a>,适合对数学公式中的各种符号感到困惑的人收藏,这本小册子汇聚了所有数学符号、常用希腊字母、代数式等英文叫法介绍。</li> +<li><a class="link" href="http://www.egr.unlv.edu/~ed/x86.html" target="_blank" rel="noopener" +>如何在Ubuntu下进行x86-x64汇编语言编程</a>,一本讲解现代汇编语言的电子书,基于常用的Ubuntu系统,从认识汇编语言开始讲起,到工具链的准备和怎样编写和调试程序,都有详细的介绍。</li> +<li><a class="link" href="https://www.drawkit.com/" target="_blank" rel="noopener" +>DrawKit</a>,一个提供矢量插画的网站,有很多免费的高质量插画,可用于网站制作、软件产品等方面。</li> +<li><a class="link" href="https://missing-semester-cn.github.io/" target="_blank" rel="noopener" +>计算机教育中缺失的一课</a>,一般学校里不会教开发环境的配置和各种效率工具的使用,这本电子书就是以环境和工具为切入点,将学校学习的理论应用于实际,比较接地气。 +<blockquote> +<p>大学里的计算机课程通常专注于讲授从操作系统到机器学习这些学院派的课程或主题,而对于如何精通工具这一主题则往往会留给学生自行探索。在这个系列课程中,我们讲授命令行、强大的文本编辑器的使用、使用版本控制系统提供的多种特性等等。学生在他们受教育阶段就会和这些工具朝夕相处(在他们的职业生涯中更是这样)。 因此,花时间打磨使用这些工具的能力并能够最终熟练地、流畅地使用它们是非常有必要的。</p> +</blockquote> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 002 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/Mon, 03 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/<h1 id="机器文摘-第002期">机器文摘 第002期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-08-56.png" +width="895" +height="689" +loading="lazy" +class="gallery-image" +data-flex-grow="129" +data-flex-basis="311px" +></p> +<blockquote> +<p>MNT推出了一款名叫Pocket Reform的迷你笔记本电脑。它外形紧凑(屏幕只有7英寸),但功能齐全,据官方介绍,它的性能满足轻量办公需求,甚至还能玩一些游戏(ARM平台)。虽然现在的智能手机在性能方面已经有了很大提升,且便携性远超笔记本电脑,但是还是有相当一部分人倾向于在具有真实物理键盘的“电脑”上进行操作。</p> +</blockquote> +<p>在我看来,这台设备可能对于希望随时随地写两行代码的程序员更加具有吸引力。</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://spectrum.ieee.org/meet-an-open-source-pc-that-can-fit-in-your-pocket" target="_blank" rel="noopener" +>可以装在口袋里的开源PC</a></li> +</ul> +</li> +</ul> +<h2 id="动向">动向</h2> +<h3 id="文字直接生成3d模型">文字直接生成3D模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-41-32.png" +width="735" +height="491" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +> +谷歌实验室的几个哥们上周发布了一个新作&mdash;-DreamFusion。输入文字,就能生成带深度图和法线的3D模型。</p> +<p>开发团队声称:</p> +<blockquote> +<p>最近在文本到图像合成方面的突破是基于在数十亿个图像-文本对上训练的扩散模型。将这种方法应用于3D合成将需要标记大量的3D资产和用于对3D数据进行去噪的高效架构,而目前这都不太可行。在DreamFusion中,我们通过使用预先训练的2D文本到图像扩散模型来执行文本到3D合成来规避这些限制。我们的方法不需要3D训练数据,也不需要修改图像扩散模型,证明了预训练图像扩散模型作为先验的有效性。</p> +</blockquote> +<p>具体方法据称是来自他们新提出的“一种通过优化损失函数从扩散模型中生成采样的方法”该方法允许他们在任意参数空间中优化采样(例如3D空间)。</p> +<p>我看了一下官方给出的demo,3D模型还略显粗糙,不过可能将来算力提升之后会有改善。</p> +<p>现在,除了插画师受到了职业威胁,就连3D建模工程师的工作也有可能被AI取代?</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://dreamfusion3d.github.io/" target="_blank" rel="noopener" +>DreamFusion官方介绍</a></li> +</ul> +</li> +</ul> +<h3 id="通过文字描述生成语音的人工智能也来了">通过文字描述生成语音的人工智能也来了</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-32-54.png" +width="909" +height="451" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="483px" +></p> +<blockquote> +<p>Twitter 用户 Felix Kreuk 发布了从文本到音频 (Text to Audio) 的 AI 模型:AudioGen +AudioGen 可以 +(1) 根据文本生成音频;(2) 续写指定的音频;(3) 同时做以上两件事,根据指定文本描述生成指定音频。 +作者给出的展示DEMO里展示了如下文本生成的语音: +(1)在风声中吹口哨 +(2)男人在说话时伴有鸟和狗的叫声 +(3)警报器和嗡嗡作响的引擎接近后走远 +(4)鸽子咕咕叫并伴有沙沙的声音 +(5)男人说话的声音,背景伴有人群欢呼声</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-33-50.png" +width="1147" +height="629" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +> +从作者公布的架构图上可以看出来,采用的也是Transformer神经网络。之前在看到AI画图时我就想到同样的原理可能用于生成音频,结果这才没过几天,人家都已经做出来了。</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://weibo.com/1309158107/M8mPt5LgI" target="_blank" rel="noopener" +>@海辛Hyacinth</a></li> +<li><a class="link" href="https://felixkreuk.github.io/text2audio_arxiv_samples/" target="_blank" rel="noopener" +>作者的demo和原理介绍页面(托管在github)</a></li> +</ul> +</li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>站桩的简单,枯燥和有效,就好比持有 sp500 指数基金简单,枯燥但足以秒杀 95%以上的基金经理一样。 +莫将容易得,便作等闲看。</p> +</blockquote> +<ul> +<li>来自<a class="link" href="https://weibo.com/5339148412/LeTdmcfjW" target="_blank" rel="noopener" +>@硅谷王川</a></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li> +<p><a class="link" href="https://randomascii.wordpress.com/2022/09/29/why-modern-software-is-slow-windows-voice-recorder/" target="_blank" rel="noopener" +>为什么现在的软件这么慢(英文)</a>,作者在Windows系统(Windows 10, 21H2版本)下使用“录音机App”的时候获得了极差的体验(确切的说是软件启动后大概卡死了将近20秒)。于是动手分析到底是什么原因导致,然后发现主要是这个软件启动后疯狂扫描“用户”文件夹下的录音文件用于构建界面中的录音列表,这种密集IO操作导致软件停止响应。作者花了很大的篇幅来吐槽这种行为,对于微软工程师为什么这么做表示莫名其妙。不过由于我们现在的计算机大都使用了固态硬盘,而且我们的习惯一般不会在“用户”文件夹下存放太多文件,所以这个体验应该不太明显。但即使这样,我也同样对Windows系统现在的软件质量感到担忧。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-18-24-45.png" +width="643" +height="310" +loading="lazy" +class="gallery-image" +data-flex-grow="207" +data-flex-basis="497px" +></p> +</li> +<li> +<p><a class="link" href="http://zhangtielei.com/posts/blog-involution-analysis.html" target="_blank" rel="noopener" +>内卷、汉明问题与认知迭代(中文)</a>,作者较为科学地分析了内卷的定义和形态,从而引申出了关于什么是“人生中重要的事”的思考,文章虽然比较长,但也清晰易懂,发人深省。部分引用如下:</p> +<blockquote> +<p>从大的方面说,社会需要创新,个人则需要突破,而创新和突破又都要求我们不断地精益求精。那么,内卷与精益求精是本质上一样的吗?如果不是,两者的区别在哪?</p> +</blockquote> +<blockquote> +<p>在某件事情上花费太多精力,并不一定就是内卷;在无关紧要的事情上花费精力才是真的内卷。</p> +</blockquote> +<blockquote> +<p>汉明早年在贝尔实验室工作。那年春天,他经常和几位同事聚在一起在餐厅吃午饭。吃饭期间,他向其中一位叫Dave McCall的同事提了一个问题:“在你的领域里最重要的问题是什么?”大约一个星期后,再次一起午餐时他继续发问:“你目前正在研究的最重要的问题是什么?” 显然,这位同伴对于这两个问题的回答并不一样。于是他接着问:“如果你当前做的并不是最重要的事,那为什么还要一直花时间投入去做呢?”有了这「灵魂三问」之后,于是——在那个春天接下来的日子里,汉明不得不另找别的同伴一起吃午饭了…… +汉明的问题听起来有些让人生厌,但后来演变成了一个在学术界很受关注的问题——汉明问题(The Hamming Question)。它本来说的是科研选题的事情,但实际上关乎人生最重要的选择。</p> +</blockquote> +<blockquote> +<p>内卷,指的是在低水平的状态下无实质意义的消耗。这里的「低水平」,可能是客观的,也可能是主观的。 +针对主观的低水平状态,我们需要冲破意识层面的障碍,同时把读书、实践和思考结合起来,反复迭代,这样才可能跃升到更高的认知层次上。 +而针对客观的低水平状态,唯有认真对待汉明问题,选择好真正重要的人生大方向,才能避免卷入那些无关紧要的、无谓的消耗中去。这才是真正考验大智慧的时候了。</p> +</blockquote> +</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/mtdvio/every-programmer-should-know" target="_blank" rel="noopener" +>每个程序员都需要知道的</a> ,整理了一份资源合集,包含了软件工程师技能相关的各类知识资源,包括算法、数据结构、浮点、Unicode、时间、内存、分布式、正则、安全、架构、工程哲学、实践、职业发展、软技能。。。等等,以及一些可用于技能训练和学习的站点。看起来非常符合我这种“收藏了就是学习了”的囤积爱好者的胃口。</li> +<li><a class="link" href="https://github.com/jefflomax/word-writer-6-commodore-64" target="_blank" rel="noopener" +>Word Writer 6 6502汇编源码</a>,是一份开源的Word Writer 6的6502汇编源码,可在模拟器下编译运行。用来学习6502汇编是一个不错的项目。上个世纪80年代爆火的计算机Commodore 64是很多复古计算机爱好者(包括我)的最爱,Word Writer 6是该平台上流行的文字排版编辑软件。</li> +<li><a class="link" href="https://almanac.httparchive.org/zh-CN/2022/" target="_blank" rel="noopener" +>HTTP Archive的年度报告</a>,这份报告详细(超级详细)分析了目前全球各在线网页中所使用的技术,从页面中的“CSS”、“Javascript”、“字体”以及用户体验中的“搜索引擎优化”、“移动端支持”等超过20个方面进行展示,内容十分详尽,有种看NBA的进球统计的感觉。</li> +<li><a class="link" href="https://javascriptquiz.com/" target="_blank" rel="noopener" +>Javascript Quiz</a>,一份关于Javascript的小测验,可在线作答,一共十道选择题,全是关于Js语法的常见坑,每道题答完之后都可以点击“info”图标获取关于这道题的详细解释。我试着做了一下,勉强及格。</li> +<li><a class="link" href="https://www.musi-co.com/listen/streams" target="_blank" rel="noopener" +>Streams</a>,这里有一批纯AI创作的音乐,由AI负责作曲和编曲,工程师只是把这些乐谱放入DAW软件中进行混音和录音,完成度很高,听起来相当上头。</li> +<li><a class="link" href="https://learningsynths.ableton.com/zh-Hans/get-started" target="_blank" rel="noopener" +>学习合成器</a>,这个网站提供了一本交互式电子书,讲解了电子合成器的原理,还单独提供了一个交互页面用于调制和体验各种合成器音色。我尝试了一下,真的很直观,在页面中直接可以修改各种振荡器波形、滤波器、LFO等参数,非常适合用于音色合成入门。</li> +<li><a class="link" href="https://llh911001.gitbooks.io/mostly-adequate-guide-chinese/content/" target="_blank" rel="noopener" +>函数式编程指北</a>,在线电子书,讲解函数式编程的范式,以Javascript进行举例,作者风趣幽默,深入浅出,觉得被函数编程概念唬住的可以去看看。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 001 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/Wed, 28 Sep 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/<h1 id="机器文摘-第001期">机器文摘 第001期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/2022-09-28-09-38-31.png" +width="641" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="269px" +></p> +<blockquote> +<p>TurnT是一个颇具创意的唱盘设计,它把智能手机与模拟黑胶的老式音乐播放方式相结合。用家把触笔放在手机屏幕显示的黑胶唱片上,它即开始播放。从内部结构上看,它其实是一个无线扬声器,可以连接到智能手机播放音乐。TurnT这种播放音乐的体验增加了互动的体验感,如同在实际的唱片上一样,挪开唱针会立即停止音乐,将其“向内”移动到手机屏幕上显示的光盘中心就可以播放音乐。要更改歌曲,您可以通过滑动来更改专辑,还可以重新定位。</p> +</blockquote> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://www.sohu.com/a/573073318_121124377" target="_blank" rel="noopener" +>把手机变成黑胶唱机 &mdash; Yamaha发布了与智能手机配合使用的独特音乐设备</a></li> +</ul> +</li> +</ul> +<h2 id="动向">动向</h2> +<h3 id="ai生成图像技术带来的艺术危机">AI生成图像技术带来的“艺术危机”</h3> +<blockquote> +<p>近几周,基于AI生成的图像艺术作品的新闻越来越多,以DALL-E、Stable Diffusion等神经网络模型为代表的图像生成类AI进化越来越快,已达“以假乱真”程度。我也在动手尝试后惊叹他们的生成效果非常逼真和充满想象力。然而很快,此类AI就引起设计师、画师、艺术家的反对(恐慌?)。当然也有很多持积极态度,把它们当作工具加以利用,甚至不乏商业头脑灵活的人士,已经通过AI作画开始获取收益。于是引发了一系列的反应和讨论。</p> +</blockquote> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://www.uisdc.com/unsplash-prohibited-ai" target="_blank" rel="noopener" +>知名图库Unsplash 宣布禁传AI生成图像</a></li> +<li><a class="link" href="https://www.51cto.com/article/719747.html" target="_blank" rel="noopener" +>付费图库集体封禁AI生成图片</a></li> +<li><a class="link" href="https://www.bilibili.com/read/cv18571483" target="_blank" rel="noopener" +>AI 绘画 Windows 本地零基础搭建 Stable Diffusion</a></li> +<li><a class="link" href="https://zhuanlan.zhihu.com/p/560226367" target="_blank" rel="noopener" +>AI数字绘画 stable-diffusion 保姆级教程</a></li> +<li><a class="link" href="https://github.com/ahrm/UnstableFusion" target="_blank" rel="noopener" +>一个包装好的AI绘图开源GUI客户端</a></li> +</ul> +</li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>程序员是计算机的翻译官。他们先是把人类的语言翻译成计算机的语言,现在又教会了计算机使用人类的语言。</p> +<ul> +<li>来自<a class="link" href="https://weibo.com/6827625527/M7vHNl9HD" target="_blank" rel="noopener" +>@t0mbkeeper</a></li> +</ul> +</blockquote> +<h2 id="长文">长文</h2> +<ul> +<li>对很多事情都有兴趣,但是生命的时间有限,怎么办?<a class="link" href="https://news.ycombinator.com/item?id=32628511" target="_blank" rel="noopener" +>这篇hacker news上的讨论(英文)</a>或许能提供一些建议。</li> +<li><a class="link" href="https://www.calnewport.com/blog/2022/05/16/taking-a-break-from-social-media-makes-you-happier-and-less-anxious/" target="_blank" rel="noopener" +>这篇文章提到了一项关于焦虑的研究(英文)</a>。研究表明,远离社交媒体(包括及时通讯工具)一个星期,可以显著提升幸福感、降低焦虑程度;</li> +<li>掌握一项技能需要时间和实践,降低预期,慢即是快。<a class="link" href="https://geekplux.com/posts/how-i-learned-programming" target="_blank" rel="noopener" +>《我是如何学会编程的》(中文)</a>,这篇文章是一位网友分享的关于他学习编程的历程。</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https:///coding-fonts.netlify.app/" target="_blank" rel="noopener" +>coding-fonts</a> ​​​是一个不错的编程字体网站,可以在线预览各种适合编程开发时用的字体,让选择更加直观。</li> +<li><a class="link" href="https://github.com/opendilab/DI-sheep" target="_blank" rel="noopener" +>深度强化学习羊了个羊</a> 这个github仓库开源了一个通过AI强化学习来玩耍“羊了个羊”游戏的模型及代码,结构清晰,效果很棒,用于了解深度强化学习知识非常不错。</li> +<li><a class="link" href="https://github.com/scutan90/DeepLearning-500-questions" target="_blank" rel="noopener" +>深度学习500问</a>这本在线书籍以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,目前在github将近50k颗星。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>基于Markdown格式的知识管理尝试计划https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/Sat, 23 Apr 2022 00:00:00 +0000https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/<h2 id="背景">背景</h2> +<ul> +<li>之前一直有收藏文章并整理自己知识体系的习惯,使用的工具是evernote(印象笔记),十多年来收集数百篇网络文章,自己整理并编写笔记若干篇,已做到目录和标签的基本分类;</li> +<li>之前也有通过每日编写一个markdown文件来记录工作日志、零星日记的习惯,有心得感悟时都直接在工作日志中随手写入,保存起来;</li> +<li>通过github pages写过一些个人博客文章,更新频率不高,主要作为个人笔记在使用;</li> +<li>当前问题如下: +<ul> +<li>evernote用户体验逐年下降,对设备限制较多,且内容存在云端、格式封闭,个人掌控感较差,数据有无法访问的风险;</li> +<li>工作日志中散落的心得感悟没有索引,基本埋没在以日期命名的文件里,不成体系;</li> +<li>收集的数百篇网络文章基本没有进行消化阅读,未形成自己理解的内容;</li> +</ul> +</li> +</ul> +<h2 id="目标">目标</h2> +<ul> +<li>为网络收藏和个人产出的文章建立索引,把之前的“仓库”形成“体系”;</li> +<li>从evernote中迁移出来,所有数据放在本地,并通过在线网盘进行同步;</li> +<li>以纯文本+附件资源作为载体,避免对一种编辑器或工具产生过度依赖;</li> +</ul> +<h2 id="工具选择">工具选择</h2> +<ul> +<li><a class="link" href="https://obsidian.md/" target="_blank" rel="noopener" +>Obsidian</a>,用于建立最基本的知识仓库,编辑自己的知识卡片,并充分利用它的双向链接功能将收藏的文章和自己输出的内容形成体系连接起来;</li> +<li><a class="link" href="https://code.visualstudio.com/" target="_blank" rel="noopener" +>vscode</a>, 用于编辑技术文章、工作日志以及基于插件进行绘图,最终输出内容到Obsidian文件库中;</li> +<li>360网盘,用于在线实时同步存储Markdown的文件夹,任何具有同步文件功能的网盘均可;</li> +</ul> +<h2 id="具体计划">具体计划</h2> +<ul> +<li>整理文章目录:按照文章来源(网络、书籍、心得)、知识层面(技术、生活、哲学)等进行分类,形成树状目录结构;</li> +<li>整理文章标签:每篇文章虽然只属于一个目录,但是可以有多个标签,提升了检索文章的维度。目录作为知识体系的骨架分类,标签则是详细划分(如技能相关的标签就可以有:编程、绘画、音乐、写作,并还能进一步细分);</li> +<li>参考少数派文章<a class="link" href="https://sspai.com/post/62414" target="_blank" rel="noopener" +>玩转 Obsidian 01:打造知识循环利器</a>提到的Zettelkasten笔记法逐步整理多年积累的知识形成以“知识卡”(其实就是具有互相链接关系的Markdown文件)为单位的知识;</li> +<li>[[玩转 Obsidian 01:打造知识循环利器 - 少数派]]</li> +<li>阅读整理多年收集的知识文章,按照大约每周一篇的节奏,产出自己理解后的知识卡片,形成“知识循环”;</li> +<li>如此往复若干时间,不断完善这个体系,工具可更换,载体亦可更换,唯独不变的是探索、求知的心;</li> +</ul>《少有人走的路》读书笔记https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Sun, 18 Apr 2021 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<h2 id="简介">简介</h2> +<p>《少有人走的路-心智成熟的旅程》这本书据说是畅销多年,经久不衰,在豆瓣上评分很高。不少人纷纷表示此书给自己带来了很多思考和感悟。我是在今年第二遍阅读了此书,之前大约十年前草草看过一遍,印象不够深刻。但今年再读,书中就有很多文字能够读进去了。虽然作者本身对“爱”的定义和解读我并不完全认同,以及作者也许受宗教信仰的影响,在某些观点上有一定的倾向,但都不妨碍这本书给我带来震撼。</p> +<h2 id="笔记">笔记</h2> +<blockquote> +<p>人生苦难重重。</p> +</blockquote> +<p>开篇就表达了最基本的设定,让我闭上本来想要抱怨的嘴,不得不跟着往后翻看有没有可以解决的答案。</p> +<blockquote> +<p>解决人生问题的关键在于自律。人若缺少自律,就不可能解决任何麻烦和问题。在某些方面自律,只能解决某些问题,全面的自律才能解决人生所有的问题。</p> +</blockquote> +<p>在认真看本书之前,我对“自律”的理解还仅限于在生活上严格要求自己,作息规律、遵守诺言、办事靠谱、简约不浪费。但作者显然不仅仅是这个意思,否则也用不着用很大的篇幅来说“自律”。</p> +<p>看一下作者对“自律”的定义。</p> +<blockquote> +<p>所谓自律,就是主动要求自己以积极的态度去承受痛苦,解决问题。自律有四个原则:推迟满足感、承担责任、忠于事实、保持平衡。</p> +</blockquote> +<p>只有不回避问题、以积极的心态去解决问题,才算作是自律。即便在生活中早睡早起、刻苦读书、勤奋工作,如果遇到问题首先想要逃避,那就不能算是自律。很惭愧,我之前在不少问题上都是以拖延为主要处理方式,本质上还是无法承受或者面对解决问题可能带来的痛苦,那么在读了本书之后,我会有意识地去改变做事原则,就拿上周来说,我终于鼓起勇气去诊所看牙,解决了拖了很久的牙结石问题(虽然智齿还没解决)。</p> +<blockquote> +<p>推迟满足感,就是不贪图暂时的安逸,先苦后甜,重新设置人生快乐与痛苦的次序:首先,面对问题并感受痛苦;然后,解决问题并享受更大的快乐。在充满问题和痛苦的人生中,推迟满足感是唯一可行的生活方式。</p> +</blockquote> +<p>这个话题不仅仅是在本书中提到过,据说有心理学家做过试验,在一群孩子里面寻找具有“推迟满足感”倾向的人(比如能够先忍住不吃巧克力以获取更大的奖励),结果证明这样的人在后续的生活中取得成功的概率要远高于先吃巧克力的人。本书首先强调这个话题,将其作为自律中的第一个原则,我想是因为道理都是相通的吧。很久之前我看过一篇讲解时间管理的文章,里面提到在规划一天的工作时,优先处理最难的那件事(文章中称“先吃掉那只青蛙”),然后当前的工作会越来越简单,这样的方式跟本书中作者所提倡的“推迟满足感”异曲同工。尽可能的正面问题、提早感受解决问题的痛苦,正是执行自律的首要原则。</p> +<blockquote> +<p>不能及时解决自己面临的问题,这些问题就会像山一样横亘在我们心中,阻碍心灵的成长和心智的成熟。很多人显然忽略了这个道理。我们必须面对属于自己的问题,这是解决问题的基本前提。 +指望别人解决自己的问题,也不是明智之举。唯一的办法&ndash;我们应该勇敢地说:“这是我的问题,要由我来解决!”</p> +</blockquote> +<p>这就牵出了第二个原则&ndash;“承担责任”。逃避问题会自然而然的推卸责任,认为这不是自己的问题,始终对于自己扮演的角色缺少清晰的认知。不过作者提到了两种情况“神经官能症”和“人格失调症”,前者属于给自己强加责任,后者属于推卸责任。这么说来,我可能有前者的倾向,很多压力都来源于此。不过作者也提到在复杂的人生道路上,判断自己该为什么事和什么人负责,这是一个永远存在的难题。</p> +<p>还有一种情况是,在有些事情上强加给自己责任,在有些事情上又没有意识到是自己的责任。读到这些章节的时候,我也在反思,当我一旦开始想要抱怨的时候,其实已经陷入“人格失调”和“神经官能”的边缘,要时刻提醒自己,不断评估自己的责任。</p> +<blockquote> +<p>忠于事实是自律的第三条原则。如果我们追求健康的生活和心智的成熟,那我们就要坚定不移地遵循这条原则。我们需要实事求是,杜绝虚假。我们越是了解事实,处理问题就越是得心应手。逃避现实的痛苦是人类的天性,只有通过自律,我们才能逐渐克服现实的痛苦,及时修改自己的地图,逐步成长。我们必须忠于事实,尽管这会带来暂时的痛苦,但远比沉湎于虚假的舒适中要好。我们必须忍受暂时的不适感,追求事实而不是假象,并承受这一过程的痛苦。</p> +</blockquote> +<p>这让我想到了“诚实”,不仅限于不撒谎(这一点实在是难以做到)。但我很快意识到作者所说的忠于事实比不撒谎更重要的是,面对事实,不可活在自己的想象里。虽然我们每个人都有自己的成见,看事情也很难看到全貌,但是不可做不基于事实的幻想,期望问题会自行消失、期望不付出努力就能得到回报。</p> +<blockquote> +<p>你既要承担责任学会推迟满足感,先苦后甜,把眼光放长远,同时又要尽可能过好当前的生活,让人生的快乐多于痛苦。</p> +</blockquote> +<p>这就是“保持平衡”,应该是一种“拿捏”吧。为了保持平衡,作者建议,适当的选择“放弃”。包括放弃过时的观念、习惯。王小波在小说中写道:“人生就是一个缓慢被捶的过程。。。”,如果不能适时的放弃一些东西,那很显然这个过程是相当痛苦的。</p> +<p>先写这么多。</p>《管理自己》阅读笔记https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/Thu, 15 Apr 2021 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/<h2 id="文章介绍">文章介绍</h2> +<p>《管理自己(Management Yourself)》作者——彼得·德鲁克。该文是《哈佛商业评论》创刊以来重印次数最多的文章之一,节选自其著作《21世纪的管理挑战》。</p> +<p>我第一次读到这篇文章,是2013年在<a class="link" href="http://www.zreading.cn/archives/3650.html" target="_blank" rel="noopener" +>左岸读书</a>的博客,当时很快就放入收藏夹,今日再次翻阅,仍觉受益匪浅。</p> +<p>摘抄部分在此记录,并附上自己的一些理解。</p> +<h2 id="笔记">笔记</h2> +<blockquote> +<p>知识工作者必须成为自己的首席执行官。你应该在公司中开辟自己的天地,知道何时改变发展道路,并在可能长达50年的职业生涯中不断努力、干出实绩。要做好这些事情,你首先要对自己有深刻的认识——不仅清楚自己的优点和缺点,也知道自己是怎样学习新知识和与别人共事的,并且还明白自己的价值观是什么、自己又能在哪些方面做出最大贡献。因为只有当所有工作都从自己的长处着眼,你才能真正做到卓尔不群。</p> +</blockquote> +<p>未来社会,体力劳动将逐渐被智能化机械所取代,人人都是知识工作者即将成为事实。每个人都需要把自己当作一个公司来看待,自己就是CEO,包揽人生的“市场”、“营销”、“生产”、“运营”等各项工作,只有从更高的视角来规划自己,才能掌握主动权,避免落入被动接受的局面。</p> +<p>与运营企业一样,经营自己的第一步还是要先了解自己,深刻认识自己的优势与不足,这样无论是制定计划还是付诸行动,才能做到目标明确、行之有效。</p> +<blockquote> +<p>多数人都以为他们知道自己擅长什么。其实不然,更多的情况是,人们只知道自己不擅长什么——即便是在这一点上,人们也往往认识不清。然而,一个人要有所作为,只能靠发挥自己的长处,而如果从事自己不太擅长的工作是无法取得成就的,更不用说那些自己根本干不了的事情了。</p> +</blockquote> +<p>这个观点跟我的直觉是相反的,在读到这段文字之前我以为自己对擅长什么了如指掌,但认真思索之后,才发现事情并没有那么简单,有些自以为是的优点根本不值得推敲,如沟通表达、对技术了解广泛、技术趋势敏感等等。至于真正做什么样的事情非常的得心应手,还真得通过认真分析才行。</p> +<blockquote> +<p>要发现自己的长处,唯一途径就是回馈分析法(feedback analysis)。每当做出重要决定或采取重要行动时,你都可以事先记录下自己对结果的预期。9到 12个月后,再将实际结果与自己的预期比较。我们只要持之以恒地运用这个简单的方法,就能在较短的时间内(可能两三年),发现自己的长处——这是你需要知道的最重要的事情。在采用这种方法之后,你就能知道,自己正在做(或没有做)的哪些事情会让你的长处无法发挥出来。同时,你也将看到自己在哪些方面能力不是特别强。最后,你还将了解到自己在哪些方面完全不擅长,做不出成绩来。</p> +</blockquote> +<p>作者给出了一个据说十分有效的方法,虽然执行起来略显繁琐且时间较长,但应该还值得一试。我个人有记录工作日志的习惯,但停留在时间消耗的记录和分析层面,并未对任务执行的结果进行预期和分析。</p> +<blockquote> +<p>首先最重要的是,专注于你的长处,把自己放到那些能发挥长处的地方。其次,加强你的长处。第三,发现任何由于恃才傲物而造成的偏见和无知,并且加以克服。</p> +</blockquote> +<p>想起了之前读到的另一本书<a class="link" href="https://book.douban.com/subject/1100470/" target="_blank" rel="noopener" +>《现在发现你的优势》</a>,虽然木桶原理说要补充自己的短板,但这里的观点则强调要充分把自己的优势利用起来,并且进行加强,这样才能更好的发挥自己。当然,努力学习新技能、新知识,发现自己的偏见和不良习惯然后克服它们也很重要。</p> +<blockquote> +<p>把预期和实际结果进行比较,也会发现自己不能做什么。我们每个人都有许多一窍不通、毫无天分的领域,在这些领域我们甚至连平庸的水平都达不到。人们,尤其是知识工作者,就不应该试图去完成这些领域的工作和任务。他们应该尽量少把精力浪费在那些不能胜任的领域上,因为从无能到平庸要比从一流到卓越需要人们付出多得多的努力。</p> +</blockquote> +<p>深有体会,不应该将时间和经历消耗在自己即使努力也达不到平庸水平的事情上,然而现实中却有很多人在被动的做着这样的事情,甚至还抱有不切实际的幻想,人生苦短,早日醒悟早日改变。</p> +<blockquote> +<p>我属于读者型,还是听者型?首先,你要搞清楚的是,你是读者型(习惯阅读信息)还是听者型(习惯听取信息)的人。绝大多数人甚至都不知道还有读者型和听者型之说,而且很少有人既是读者型又是听者型。知道自己属于哪种类型的人更少。</p> +</blockquote> +<p>这一段不知是翻译的问题还是作者没说明白,文中并未定义“读者型”、“听者型”这两种类型的工作方式具体是如何工作的,只是通过例子强调了自己工作方式的不同所带来的巨大差异。我的猜测是,“读者型”应该指的是在工作中理性和逻辑思维占上风的人,通常通过阅读逻辑缜密的文字来规划和开展工作,而“听者型”则属于感性思维偏多,通过视觉、听觉来判断事物的发展。</p> +<blockquote> +<p>如果一个组织的价值体系不为自己所接受或者与自己的价值观不相容,人们就会备感沮丧,工作效力低下。</p> +</blockquote> +<p>不要试图改变自己的价值观,这只会让你倍感痛苦,你可以更换环境或者改变组织价值体系。</p> +<blockquote> +<p>成功的事业不是预先规划的,而是在人们知道了自己的长处、工作方式和价值观后,准备把握机遇时水到渠成的。知道自己属于何处,可使一个勤奋、有能力但原本表现平平的普通人,变成出类拔萃的工作者。</p> +</blockquote> +<p>机会留给有准备的人,但前提是这个人认识到自己的长处、工作方式、价值观,所谓的把握机会,是了解了这些之后才能识别到机会。</p> +<blockquote> +<p>一般来说,一项计划的时间跨度如果超过了 18个月,就很难做到明确和具体。因此,在多数情况下我们应该提出的问题是:我在哪些方面能取得将在今后一年半内见效的结果?如何取得这样的结果?</p> +</blockquote> +<p>千里之行始于足下,如果决定开始行动,也不可把计划定的太远,自己给自己安排近期可行的执行目标,对效果要有清晰的预期,对如何取得效果应有详细而具体的计划。</p> +<blockquote> +<p>人与人之间相互信任,不一定意味着他们彼此喜欢对方,而是意味着彼此了解。因此,人们绝对有必要对自己的人际关系负责。这是一种义务。不管一个人是公司的一名成员,还是公司的顾问、供应商或经销商,他都需要对他的所有共事者负起这种责任。所谓共事者,是指在工作上他所依赖的同事以及依赖他的同事。</p> +</blockquote> +<p>成熟的处理人际关系,同样需要问文章开头的三个问题,了解他人或者共事者,是我们的义务和责任。</p> +<blockquote> +<p>在一个崇尚成功的社会里,拥有各种选择变得越来越重要。从历史上来看,却没有“成功”一说。绝大多数人只期望坚守“适当的位置”。唯一的流动性是向下的流动性。然而,在知识社会里,我们期望每一个人都能取得成功。这显然是不可能的。对许多人来说,能避免失败就行。可是有成功的地方,就会有失败。因此,有一个能够让人们做出贡献、发挥影响力或成为“大人物”的领域,这不仅对个人十分重要,对个人的家庭也同样重要。这意味着人们需要找到一个能够有机会成为领袖、受到尊重、取得成功的第二领域——可能是第二份职业,也可能是平行的职业或社会创业。</p> +</blockquote> +<p>在飞速发展(或者说在加速发展)的时代,人人都在焦虑,仿佛竞争、内卷根本无法避免,但如果合理的认识自己、管理自己,并且去用心经营的话,也许人人都有机会可以在擅长的领域做出闪光的事情,获得一份自己独有的成就。</p> +<blockquote> +<p>自我管理中面临的挑战看上去比较明显,甚至非常基本,其答案可能不言自明,甚至近乎幼稚。自我管理需要个人,尤其是知识工作者,做出以前从未做过的事情。实际上,自我管理需要每一个知识工作者在思想和行动上都要成为自己的首席执行官。</p> +</blockquote> +<p>最后一段很关键,“做出以前从未做过的事情”,即行动最为重要。这也是为什么我会花费一个小时的时间,从头又阅读一遍这篇文章,并摘录下来加以分析理解的主要原因。</p>2020年个人总结https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Wed, 10 Feb 2021 00:00:00 +0000https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h2 id="保持好奇心">保持好奇心</h2> +<ul> +<li>大概是2011年左右,我把QQ签名改成了“好奇、求知、创造”,从此再也没有改变过,我所喜欢的、热爱的、欲罢不能的事情,都被这三个词涵盖了。</li> +<li>十年过去了,很高兴自己还能保持一颗探索未知、热爱学习的心。</li> +</ul> +<h2 id="读书">读书</h2> +<ul> +<li>现在听书比读书所占比重大,阅读时间缩水明显,翻开电子书的时间都有限,更别提手不释卷。</li> +<li>年初重温《三体》,即便很多情节已烂熟于心,重读仍有新发现,休闲阅读而已,只为放松大脑。</li> +<li>其余时间陆续阅读一些杂书《原则》、《随机漫步》、《菜根谭》、《曾国藩传》等若干。</li> +<li>唯一触动较大的是年末再次翻看《计算机程序的构造和解释》,此次配合网上的公开课视频进行,跟随原书作者课程讲解节奏,对于知识的理解大有帮助,视频虽然年代久远,但知识历久弥新,比起科技业广泛应用的新兴技术,书中的计算原理以及相关的思想更像是对应了武术的“内功心法”,一旦有所突破,则在上层应用产生巨大的提升,与工作学习都大有裨益,其中玄妙不可言说。</li> +</ul> +<h2 id="摄影">摄影</h2> +<ul> +<li>户外活动大为减少,往年春天乃摄影高产期,今年却苦于疫情无法外出,摄影爱好被迫搁置,2020年对摄影技术的练习几乎停滞,无心仪作品产出。</li> +<li>卡片相机已很少使用,手机拍摄已是主流,器材追求已解毒,但如有更新的街拍机问世,心头恐怕还是会痒。</li> +<li>有一事可提,今年独自吃饭次数很多,每次都拍食物照一张,累积下来一年竟拍了几百。</li> +</ul> +<h2 id="生活">生活</h2> +<ul> +<li>压力与机遇并存,最大收获是面对挫折、困难更坦然,2020不愿多提。</li> +<li>记忆力确实有下降之趋势,回忆起来竟无亮点,亦可能本身就比较平淡。</li> +<li>发现凡事都要低调不吭声的重要性,切记四处宣扬,否则就会出现“说出来就不灵”的魔咒。</li> +</ul> +<h2 id="学习">学习</h2> +<ul> +<li>对8bit老古董计算机的兴趣不减,四处搜寻相关知识,弄了一大堆模拟器,研究过程中竟对之前所学计算机组成原理有了新的认识和理解,喜出望外,本该大学之时就应掌握的技能,到现在再学也不迟,重在理解。</li> +<li>创意类软件如blender等也持续浅尝,进步缓慢,但入门已没问题,缺少作品练习,安排即可。</li> +<li>儿子已入大学,借用假期时间,我教他编程,他给我讲解高数,算是技能交换了,费曼学习法的一个很直接的应用案例。</li> +<li>越发觉得B站是个学习的好地方,该站以后的发展不可估量,但从教育来看,很可能迅速超越国内二流大学,或者未来改变大学的形态也未可知。</li> +</ul> +<h2 id="后续计划">后续计划</h2> +<ul> +<li>希望可以继续通过写字记录学习的知识,保持一定量的文字输出,如条件实在有限,配合语音录音也可。</li> +<li>在自己热爱的事情上,持续学习,关注一下作品输出(持续开新坑),早日成为心目中的“全栈工程师”、“三级工程师”(可参见吴军《硅谷来信》中的定义)。</li> +<li>限制烟酒摄入,保持每日的活动量,能走路就不坐车。</li> +</ul>2019年个人总结https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Wed, 01 Jan 2020 00:00:00 +0000https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h2 id="2019年个人总结">2019年个人总结</h2> +<h3 id="起头">起头</h3> +<p>2019年过的比往年还要更快,今年的新年假期只有一天,正好用来写总结。</p> +<p>2019年是充分践行“在事儿上磨练自己”的一年,对目标有了更清晰的迭代,在行动上更加倾向于知行合一,继续缩减无效信息的获取和消费,挤出精力去做对自己更重要的事情。</p> +<p>有多少成绩不好说,但是多少有一些感悟。</p> +<h3 id="摄影">摄影</h3> +<p>每年的春季,都会有一种强烈的想要深入摄影的感觉。最近几年越来越明显,一方面可能跟大量的摄影器材新产品发布有关,另一个方面,环境的复苏,春天代表着一种生机勃勃的精神,敏感的人们便容易感受到事物的变化。</p> +<p>还有就是,可能因为春天比起冬天来比较。。。不冻手。</p> +<p>今年大概按了四五千次快门吧,能看的入眼的也有个百十来张,我对摄影的定位就是记录日常生活,发现并捕捉生活中的美好瞬间,如果让我挑一张自己比较满意的话,就是下面这张:</p> +<p><img src="https://upload-images.jianshu.io/upload_images/25416-97902ee0d97e0abf.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="DSCF2721.JPG" +></p> +<p>在地铁上的抓拍,当时感觉这个包比较有趣,于是就拍了。</p> +<h3 id="思考">思考</h3> +<p>大部分繁忙的人们,每天用在思考上面的时间都是很少的,或者说高质量的深度思考太少,导致了一种错觉,没有时间闲下来,仿佛进入了一个繁忙的死循环(这里推荐一本书《稀缺》,关于这种现象还有一种装逼的说法叫“内卷化”)。</p> +<p>许多比较成功的人士,并非这么繁忙,相反地,他们会腾出大量的时间用于思考,以思想来指导行动,给自己留出“空余”的时间,然后“行动”才有意义。</p> +<p>写到这里,我又想起一件事儿,比如装修房间,需要规划空间的布置,一定要规划空出来的部分跟实际功能使用的比例,不能一味将空间沾满用干净,那样的话整体就会感到很压抑,而如果空余的部分跟使用的部分有一个合理的平衡,就会整体感到档次和品质提升了不少。</p> +<p>这种“用”与“不用”的平衡可以说到处都能体现,摄影中存在“正负空间”的说法,也有“影调平衡”的说法,都是在讲究一种平衡。</p> +<p>我们对自己日常工作、生活乃至人生规划,都要向这种平衡去靠拢,每年、每月、每天的时间分配也要考虑到这种平衡,因为如果一味的用满,则会给整体的效能和品质大打折扣,看似繁忙充实,实则得不偿失。</p> +<p>所以,今年我更加注意留出时间给自己,深度思考,尽力争取空闲时间,把空闲当作一种保持平衡的“负空间”。</p> +<h3 id="早起">早起</h3> +<p>今年加强了早起这个习惯,起床时间直接拨到了早晨6点,经过一段时间练习,现在就算不用闹钟也可以准点起来,睡眠质量不降反升,真是一举多得。</p> +<p>起床早的话,感觉精力充沛,精神状态也很不错,睡懒觉并不能带来充分的休息,反而早起的好处却很多,比如时间上的从容,交通不拥挤,吃饭、办事等都比较轻松,能够感觉每天的有效时间得到了延长。</p> +<p>我这么做倒也不是因为自律,而是想给自己更多的时间和机会去学习和体验,在我看来,外部的物质环境远没有自己的精神体验重要,随着时间进程的加速,谁都能意识到生命不是无限的,多做一些自己喜欢的事情比什么都重要,安逸可以适当体验,但更多的是,去观察和创造。</p> +<h3 id="健康">健康</h3> +<p>心态平和所带来的第一个福利竟然是体重提升了10斤左右,半年时间内从65公斤飙升至70公斤,搞得有点儿措手不及,怀疑是不是因为工作地点搬迁之后周边好吃的有点儿太多了的原因,再也不敢相信随便吃都不会胖的神话,从能看清肋骨到能看见肉褶儿不过是几顿羊肉汤的功夫。</p> +<p>在可供我焦虑的选项里除了脱发,又增加了一项。</p> +<h3 id="手机">手机</h3> +<p>今年将我的电子产品全线更换为自主品牌华为,一方面是苹果手机在创新上已经不思进取,在将开发团队外包给印度之后,其系统的稳定性和体验均出现大幅下滑,苹果公司本身的吃相也越来越难看,另一方面,国产手机现在做的确实不错,体验很好,而且就算是华为的高端手机,也比国外的那些手机“物美价廉”,所以支持国产很正常。</p> +<h3 id="读书">读书</h3> +<p>除了一些专业的工具书籍以外,今年没有买任何的“闲书”,但是翻出了以前买来的重读了一些。</p> +<p>这个可以深入说一说。</p> +<p>比如今年又重读了《老人与海》,算是想明白了,为什么海明威仅凭借这一部中篇小说就能获得诺贝尔文学奖。以前上学的时候看此书,觉得吧,没意思,一个关于捕鱼的故事有什么可看的呢?但多年以后又重新翻看的话,体会就大不相同了。</p> +<p>今年年中的时候在老家跟几个老友小聚喝酒,仿佛一夜之间,感到我们这一代人的成长,大家忽然都成了家庭里的核心力量,所面临的压力陡增,无论是父母健康还是后代教育或者是亲戚邻里帮扶,我们这一代正在成为家里各项事务的第一责任人。</p> +<p>唏嘘之余,我才想到,我们这些人,哪一个不是《老人与海》中的那个捕鱼的老人呢?我们每个人都在等待生活中属于自己的那条大鱼,或者都在跟自己的那条大鱼在激烈搏斗,小说中的老人跟大鱼僵持不下,连换个姿势都成为一种奢侈,我们在面对各种生活中的琐事时又何尝不是跟老人当时一样的境遇呢?</p> +<p>所以说《老人与海》这部小说能够给人力量,我们都在跟“大鱼”搏斗,这是我们的使命。</p> +<p>其他的书也陆续看了一些,但都侧重于“闲书”,比如《数学之美》、《巨人三传》、《人类的群星闪耀时》,等等。</p> +<p>不以功利心读书是基本原则,将至少保持一百年不动摇。</p> +<h3 id="学习">学习</h3> +<p>说到了学习,为工作而学的不算,今年在私下里研究最多的就是计算机图形学了。</p> +<p>由于缺少大块的时间,系统性学习是不可能了。</p> +<p>只能利用一些碎片时间,比如在下班路上阅读一些开源代码和论文,断断续续的。耗费了挺长时间才把空间坐标转换的矩阵给推演明白。</p> +<p>不过值得欣慰的是,编程也没落下,利用周末时间充分发挥理论结合实际的思想,我竟然亲手撸了一个基于web画布的光栅化渲染器,很原始,但是可以渲染obj格式的线框和三角面。</p> +<p>但毕竟平时很忙,估计等到可以加上光照和着色器的时候还得等几年了。</p> +<h3 id="结尾">结尾</h3> +<p>总的来说,认真做好每件小事,可以算是今年的主要指导思想,放平心态,不对自己要求太高,重点是投入进去,以谦虚的心态,搞懂小事,做好细节,即便是做的事情不多,成果也不大,也没关系,若能将小事做好,也能给自己的内心带来平静。</p> +<p>以往的习惯,往往是给自己定义较高的完美目标,结果就是不能完全令自己满意,时间长了难免带来较多负面情绪,随着年龄的增长,逐渐意识到自己的平凡和普通,虽说不是上和自己或者世界和解,但也逐渐更加了解世界和了解自己。</p> +<p>无论别人怎样看待,自己的感受才是最重要的,所谓幸福也主要就是一种自我的感受,只有自己才能对自己负责,任何人的建议都是首先站在建议人那一方的利益考虑。所以认真对待该做的事情,同时不违背自己内心的意愿,每一分钟都不是在准备生活,而是就在生活之中。</p> +<p>抛开不可抗拒之因素,仍然以自己的节奏为中心,抓住重点,继续学习和深入实践,饭一口口吃,事儿一件件做,只要小事能推进,日积月累也定会带来不小的收获。</p>线性回归和梯度下降https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/Sun, 02 Jun 2019 00:00:00 +0000https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/<h3 id="有监督学习的两种主要任务分类和回归">有监督学习的两种主要任务(分类和回归)</h3> +<ul> +<li>有监督机器学习任务主要分为两种,一种是分类任务,一般是通过学习算法实现对未知数据的分类甄别,比如判断是男性还是女性,预测明天会不会下雨等等,预测结果是离散的分类。另一种是回归任务,用于预测一个具体的值,比如房价、年龄等等,预测结果是连续的值;</li> +<li>解决回归任务比较常见的算法就是线性回归算法;</li> +</ul> +<h3 id="线性回归">线性回归</h3> +<ul> +<li>线性回归是最典型的用于回归任务的机器学习算法。它的基本原理是基于,任意一个为n的值,可以通过一个n-1阶的多项式进行拟合;</li> +<li>线性回归的算法的目标是根据已知标签数据,训练一个预测函数f(a, b),使得x输入带入ax+b这样的多项式可以得出需要预测的值;</li> +<li>所以目标是找到合适的a和b(从数学语言的精确描述来说,一般用别的符号代替,为了方便记录,我使用a和b);</li> +<li>为了找到合适的a和b,需要定义一个损失函数(也有称为代价函数的),J(a, b),用于判断a和b是否合适,比较简单的有“方差均值”法;</li> +<li>方差均值指的是,所有样本带入预测函数f,将预测值与实际值相减,取平方,求和再求平均数(暂时不知到markdown里如何加入公式);</li> +<li>那么带入损失函数,就是意味着,找到合适的a、b使得刚才那个方差均值小于一个阈值(接近最优);</li> +<li>线性回归本质上,是在平面坐标系里找到一个与样本匹配的直线,这样基于这个直线,即可预测未知的值;</li> +</ul> +<h3 id="梯度下降">梯度下降</h3> +<ul> +<li>如何找到合适的a和b,一个一个地去试是不可能的(无穷多的计算量);</li> +<li>比较典型的算法是“梯度下降”,又是牛顿起的头;</li> +<li>比较生动的描述是,想想一个三维空间图形,X和Y平面是有a和b的值构成,Z轴是损失函数的值,值最小的部分(在图上就最低的部分,像一个山谷)就是最优解;</li> +<li>从山顶的某个点上,环顾360度,找到适合下山的一小步,一点一点儿走向山谷最低处,有点像慢慢走楼梯,所以叫梯度下降;</li> +<li>从我的体会来看,这个方法有点像牛顿那个计算平方根的迭代法(根据一个猜测值,然后通过迭代公式寻找一个更加接近正确值的值,直到误差降低到合适范围);</li> +<li>从微积分的角度,就是找到损失函数J在最初尝试的那个点上的切线,并通过它的斜率(也就是导数值)乘以一个系数a,逐步逼近最低点(切线斜率为零)的过程;</li> +</ul>机器学习的学习准备https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/Sat, 18 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/<h3 id="机器学习的概念">机器学习的概念</h3> +<p>机器学习是人工智能的一个分支,是近年来逐渐具备实用性的各种人工智能应用的基础。其本质是(我目前的个人理解)利用针对已知的数据集合抽取采样特征,然后利用某种数据模型(核心是某种算法:如kNN、SVM、朴素贝叶斯等)对数据进行计算处理,得到一组可以预测未知数据集特征的参数和手段,从而可以对数据进行预测判断的一种数据处理方法。</p> +<h3 id="机器学习相关的名词">机器学习相关的名词</h3> +<ul> +<li>神经网络:是机器学习的一种实现方式,从概念上来说,小于“机器学习”,但是由于其在图像识别、语音识别、语言翻译等领域的优异表现,以至于现在提到机器学习就认为是神经网络,实际则不然,机器学习的概念更大,更加基础,是实现神经网络应用的基础理论和方法;</li> +<li>深度学习:是神经网络的应用特例,同样是在应用层表现优异,可以理解为神经网络的一种实现;</li> +<li>大数据:机器学习的数据处理基础支撑,近年来机器学习在应用层面表现较好主要得益于大数据技术的发展,可以使得模型训练内容量级增加,极大的提高了模型准确度;</li> +<li>n维向量:来自线性代数,在机器学习中起到重要作用,在机器学习中一般用于各种特征数据的载体,在不同的算法过程中传递和计算。</li> +</ul> +<h3 id="机器学习相关的工具">机器学习相关的工具</h3> +<ul> +<li>编程语言:目前比较流行的是Python,因为有比较丰富易用的程序包,很多科技公司也开源了较为成熟的框架,再加上Python语言本身的简单易上手,使得Python成为这个领域最流行的语言。当然C和C++、Java还是实现各种算法的根基,Python更多是提供了一种调用接口;</li> +<li>iPython:Python语言的交互控制台,可以较为方便的测试、调试Python程序,有较强的交互功能,比语言发行版自带的强大;</li> +<li>jupyter:提供Python语言的Web交互界面,通过网页即可编写代码,并及时反馈执行结果,由于是B/S架构,所以可以使得运行时跟开发环境分开。编辑界面同时支持基于Markdown语法的文档编写,使得“文学化”编程成为一种可能,非常适合用于科研人员的汇报材料或论文;</li> +<li>TensorFlow:谷歌开源的机器学习框架,快速灵活部署机器学习应用,可以应用与大规模、工业级场景;</li> +<li>keras:基于Python编写的高级神经网络API,属于对机器学习的深度封装,如果以学习机器学习原理为目标的,不建议使用,还是先手动将若干种核心算法实现一遍比较深刻;</li> +</ul> +<h3 id="预期的学习方法">预期的学习方法</h3> +<ol> +<li>通过阅读相关的书籍,对于概念有所了解,这个过程可以是粗糙的浏览,不求详细的理解各种原理和算法;</li> +<li>尝试一些教学视频,了解实操的基本流程,对于自己读书得到的概念进行验证,修订理解,并熟悉基本工具的使用(如Python的numpy、plot等);</li> +<li>细读书籍,按照书中的事例进行实操,并尝试推导算法的基本原理,理解后,形成自己的文字;</li> +<li>定义简单的任务,贯穿数据准备、数据清洗、特征值提取、模型建立、模型应用各个阶段,一般来说可以是手写文字识别,或者给新闻文章分类等;</li> +<li>循环和迭代这个过程,一边输入信息,一边将学到的东西结合思考,形成有效的输出(文字、视频等);</li> +</ol>致儿子成人礼的一封信https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/Thu, 09 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/<p>序言我儿,见信如面。在这个即时通讯如此发达的时代,我选择写一封长信,以表示对你即将成人的祝贺。</p> +<p>我陷入沉思了一会儿,考虑该给你讲些什么道理。但我很快意识到,“道理”这种东西,靠听和说没有用,只能自己去感悟。而我自己也十分讨厌被说教,所以我会克制想要给你讲一番大道理的冲动,尽量避免不对等的交流形式。</p> +<p>我想我还是跟你分享一些我对这个世界的思考和想法吧。</p> +<p>茨威格在《人类群星闪耀》中写到“一个人最幸运的事情就是在他思想最活跃、精力最充沛的时候找到了他的人生使命”。看来大家都把寻找人生使命当做比较重要事情来看待。姑且就当做我这封信的主题吧。</p> +<p>寻找人生使命本质上是通过尝试在一些方向上的努力来实现对人生价值和意义的探索,每个人或多或少、或深或浅都要做这样的尝试。</p> +<p>你们学校把“成人礼”包装成一个重要的人生节点,想必是希望给你们一些感觉,让你们意识到,从这一刻起,你们开始对自己的行为负责,要开始尝试去寻找和探索了。</p> +<p>那么该如何去探索,我有一些自己的看法。</p> +<p>首先要相信一点,那就是无论是否还在上学,学习和完善自己都是一辈子的事情,不存在一个可以停止学习的时间点。就我个人来说,无论是读大学的时候还是参加工作以后,从来没有在提升自己方面有过松懈的想法,甚至我感觉工作之后对知识的渴望更加强烈了,学到的东西也比在校园里多得多。</p> +<p>当然了,学习方式跟你目前在学校这种还是差别挺大的,强度也没有那么辛苦。而且工作之后的这种学习方式才是我最认可的方式。什么方式?</p> +<p>我们一起讨论过几次王阳明的“知行合一”,为了不扯那么远,简单来说,刚才提到的学习方式就是老王早就提出的“事儿上练”。通过不断地实践,各种经历,才是学习知识的源泉。这也是为啥我在开头就说道理只能感悟不可说教,怎么感悟?事儿上感悟!经历多了自然懂。</p> +<p>所以也不用一下子被“寻找人生使命”这种“宏大话题”给吓住了,保持学习的心态,放松大胆地去经历各种事情,就是这么个过程。</p> +<p>然后呢,就是在做事的过程中,保持一颗善良、为他人多着想的心。关于这一点,我的体会是,“助人为快乐之本”真的不是一句空话。远的不说,你看你爷爷奶奶平日里多么乐于助人,用乐善好施形容他们一点儿也不为过。他们因此收获了广泛的认可,也给这个家庭带来了积极向上的生活氛围,对你老爹我向好的方面发展也起到了关键作用。</p> +<p>再有一点,也是我个人非常推崇的,就是最好能时刻对世界保持强烈的好奇心。</p> +<p>刘慈欣在短篇科幻小说《朝闻道》中讲了一个故事。外星高等文明在监视地球人类进化的过程中,距离现在几十万年前的一个原始人抬头望了望夜晚的天空,凝视了一会儿。这看似随意的行为使得外星人的警报器响了起来,因为这意味着,人类的好奇心已经发展到了星空,同时也意味着人类文明将要开始爆发式发展了。可见好奇心的重要。</p> +<p>好奇心一方面是推动我们前进的动力,同时也使得我们平凡的生活变得不那么枯燥。</p> +<p>你能经常提出一些有时连我都无法回答的问题,这让我也颇感欣慰,有些答案注定要自己去摸索着发现,我希望你能多多提问,也多自己思考,不用去管答案是什么。</p> +<p>稀稀拉拉写了这么多,估计你也不能理解太多,我像你这个年纪时估计也理解不了。不过也没关系,只是给你讲讲我个人通过思考得到的观点而已,说不定你自己以后有不同的发现,当然如果能在你以后的发展中起到一点儿提醒作用,也就挺好了。</p> +<p>希望你这次“成人礼”活动就像人类文明那一次一次对星空的凝望那样,使你能够进入人生的一个新的高速发展阶段。</p> +<p>祝:学习进步,健康成长!</p> +<p>二零一九年五月九日 写于贵阳机场</p>《高效能人士的七个习惯》读书笔记https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Tue, 07 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<ol> +<li>积极是内在的,是选择的自由,是人性中最不能剥夺的部分。</li> +<li>以终为始,是要知道自己要什么,并以原则为重心,所做的决策是主动选择的结果,而非被环境所迫使的结果。</li> +<li>人类的四个天赋分别是,自我意识,良知,想象力,独立意志。</li> +<li>第四代时间管理,以原则为中心,以周为单位,设定自己所扮演的各项角色欲达成的三个重要成果,安排出每一天的第一要务,更理想的是当作每一天的特殊约会,全力以赴。每周都回顾上周周日程完成情况以及制定新的周日程,并每日调整。</li> +<li>对人不可讲效率,对事才可如此,对人应该讲效用,即某一行为是否有效。</li> +<li>以原则为重心,以良知为导向(人比事儿更重要),针对个人独有的使命,平衡发展生活中不同角色,全盘规划日常生活。</li> +<li>要想充分授权必须要具备的默契和共识包括: +<ol> +<li>预期成果。</li> +<li>应遵守的规范。</li> +<li>可用的资源。</li> +<li>责任的归属,约定考评的标准和次数。</li> +<li>明确的奖惩制度。</li> +</ol> +</li> +<li>在双赢协议中,对以下5要素应该有明确的规定。 +<ol> +<li>预期结果,确认目标和实现,方法不计。</li> +<li>指导方针,确认实现目标的原则,方针和行为限度。</li> +<li>可用资源,包括人力,财力,技术或者组织资源。</li> +<li>任务考核,建立业绩评估标准和时间。</li> +<li>奖惩制度,根据任务考核确定奖惩。</li> +</ol> +</li> +<li>制定好目标之后,还要看你的组织体系是否与目标相符合,否则就要调整系统体系。</li> +<li>我们总是喜欢匆匆忙忙地下结论,以善意的建议快刀斩乱麻地解决问题。不愿意花时间去诊断,深入了解问题的症结。</li> +</ol>《管理十诫》读书笔记https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Tue, 30 Apr 2019 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<ol> +<li>首先要通过分析知道问题是什么,才能真正洞悉解决问题的办法。</li> +<li>归根结底,所有公司最后的生命线都是信任问题,顾客要相信企业生产的产品正如它所许诺的那样好,投资者要相信公司的管理层是有能力的,员工要相信公司管理者能够兑现承诺。</li> +<li>他们根本想不到人都有缺陷,包括他们自己在内也都不是完美的。</li> +<li>问题的关键不在于机器会不会想问题,而在于人会不会想问题。</li> +<li>真正让我们陷入麻烦的并非那些我们根本不懂的东西,而是我们一知半解的东西。</li> +<li>有一种心理偏见叫做肯定的陷阱,它指的是我们努力想证明自己的观点,而非找出自己观点中的错误之处。</li> +<li>深思熟虑并不是浪费时间,而是必要之举。</li> +<li>除非有人能停下来想一想,否则一再犯同样的错误是很容易的。对每个错误都有必要进行反思和总结。</li> +<li>如果你能承认自己犯了错误,承认自己并不是战无不胜,那么你反而能得到好处。</li> +<li>管理是一门艺术,而不是一种科学。如果遇到那些想要量化人类行为的专家,你就要保持警惕了。</li> +<li>行业中的每个公司都应该力争标新立异,让自己变的与众不同,而不是随大溜。</li> +<li>要憎恨组织里的官僚作风——通用电气公司杰克·韦尔奇写给股东的信中写道。如果你想一事无成的话,那就让行政流程占据主导地位好了,去崇尚官僚主义就行了。</li> +<li>不能创造生产力的工作越努力越失败,要时刻警惕并搜寻身边那些并不能创造生产力的工作。</li> +<li>每个公司其实主要就是为现有的客户提供优质服务并努力开拓新客户群。我们在花每一分钱、设立每一个部门或是接手每一个项目时,都要问自己一个基本的问题:这能帮我们带来新客户或是为客户提供更好的服务吗?</li> +<li>将注意力放在失败上是最大的悲观主义。只要稍稍抬起你的头,改变一下你的态度,那么你的世界观就会发生巨大的变化。</li> +</ol>2018年个人总结https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Tue, 01 Jan 2019 00:00:00 +0000https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h1 id="2018年个人总结">2018年个人总结</h1> +<h2 id="起头">起头</h2> +<p>同样是元旦假期最后一天,坐下来给自己写总结。去年写总结的时候,我给自己上一年定义的关键词是“认识自己”,2018年我觉得关键词可以是“改变自己”。刚刚翻看了2018年产生的大量工作日志和心得记录,一边感慨时间过的飞快,一边在脑海里飞快回忆这刚过去的一整年,这个在网上被大家普遍吐槽、觉得艰难的年份。</p> +<h2 id="关于资讯">关于资讯</h2> +<p>2018年最令个人满意的一件事儿是戒掉了对互联网资讯的依赖。整整一年几乎没有主动上网刷过任何资讯,比2017年还要彻底,在手机上删掉了各种资讯软件,平时也很少刷新微信的朋友圈(偶尔发一发)。最开始的时候会感到不适应,但是一旦觉得资讯恐慌的时候,就强迫自己利用互联网学习知识,或者处理日常事务,一年下来节约了不少时间。</p> +<p>这么做的主要原因是自己认识到互联网资讯正在给人们贩卖大量的消费冲动和焦虑。</p> +<p>我觉得互联网是一个信息放大器,总是被掌握了话语权的人将自己的感受放大然后传播出去,如果这些人感到了焦虑,那么这些焦虑就会通过网络放大若干倍,去影响更多的人,给更多的人带来焦虑。那么现在是什么人在掌握互联网上的话语权呢,没错,就是我们这些80后。回过头去检查各年的网络热词,几乎是80后的人生成长轨迹,大龄了,剩了,结婚了,生娃了,学区房了,中年了,油腻了,佛系了,等等。</p> +<p>戒掉信息并不意味着远离了这些,只是可以更加正确的认识这个世界,不再陷入以前的误区、觉得喧闹的只剩下一种声音。</p> +<h2 id="思考与认知">思考与认知</h2> +<p>苏格拉底说,未经思考的人生不值得度过。如果说2017年是通过思考来认识自己的话,2018年就是将思想转变落实到行动上的一年。可以说是真真正正的用思考来指导行动的一年,向“知行合一”又推进了一丢丢。</p> +<p>以前知乎上有个关于“优秀的人不够自信”的问题,问为什么有的人明明很优秀却仍然觉得不够自信,要是搁在从前的认知,我会觉得答案很明显,会给出极左极右的评判。现在不这么认为了,没有绝对的两极,大多数人处在中间,符合正态分布,可能有些人更加偏向于“优秀而不自信”一些。造成这样的原因跟从小接受的教育有很大的关系,即“活在他人对自己的期望之中”,我几乎可以断定自己此生难以摆脱这种心理了,只能在正确认识到这种情况之后尽可能的去调节。通过多做事情去磨练自己,并不断用自己的目标去替换别人的期望,目前正走在这样的改变之路上。</p> +<p>找到自己的目标不存在诀窍,更不是自己坐在家里冥思苦想就可以,而是要不断去尝试,多做事情,去接触更多以前没有接触到的事物或者体验,只有这样,才能激发自己的潜力,遇见自己真正热爱并愿意投入精力与时间去奋斗的事情。</p> +<p>想明白这些之后,我主动多做了一些事情,可以明显感受到通过思考指导做事给自己带来的成长。</p> +<h2 id="压力出口">压力出口</h2> +<p>每天大约能记录1k字的工作日志,当然里面不全是工作流水,有很多是临时书写的心得体会或者思考碎片。坚持这么做的原因是发现写作可以作为疏解压力的一个出口,既能整理思路,又能缓解压力,真是一举两得。</p> +<p>我称这种写作为“随意写作”,或者叫释放心理垃圾,《写出我心》这本书里说过,刚开始写不好没关系,因为需要先把内心里的垃圾信息倾倒出来,先把污水排出来然后才可能有干净和高质量的东西出来,这个比喻可能不太恰当,但是对我比较触动,也正好作为我接受自己水平很烂的借口。</p> +<h2 id="看书让我认可了自己的爱好广泛">看书让我认可了自己的“爱好广泛”</h2> +<p>看书当然是日常生活中不可缺少的一部分,今年开始看阿城的作品。果然不简单,我还没有遇到过这么容易读下去的文字,可以说是流畅至极。阿城写这些文字就像是坐在这里跟你唠嗑似的,娓娓道来,而且段落之间完全感觉不到过渡突兀,天南海北扯来扯去最后还都能很好地收尾,讲到具体事例往往还能极为精准地引用古往今来学者或者艺术家的典故,说的煞有其事,看的引人入胜。</p> +<p>我觉得他之所以能够写出这么多东西应该跟肚子里有货有关,而且这些货还不仅仅是简单的灌装进去,码放整齐。应该是经过消化和思考加工,已然形成一套体系,里面既包含个性鲜明的观点,也体现他的三观。在聊天喷空之余偶尔还不忘揶揄几句当下的社会或者某些人群,幽默感着实了得。</p> +<p>读这样的作品还有一个感觉,就是越读越觉得自己对历史和人文了解甚少,往远了说有诗经论语等经典,往近了说有明清小说或者近代大家,东方有儒家道家佛家文化,西方有心理学、哲学、文艺复兴的科学等等,如果做不到对这些东西融会贯通,那么即使读到好看的文字,能看懂作者的议论也仅仅是瞧个热闹,过后很难产生更加复杂的化学反应,所以好书又会给人提供了解历史和文化的动力,仅从这一点来说,好书和好作家就功德无量了。</p> +<p>我以前总是担心自己的知识太杂,有种什么都想了解一点儿又什么都不精通的感觉,总是提醒自己要缩小自己的关注圈。看了阿城的作品后,感觉,既然天性之中有那么强的求知欲,又何必压抑自己,不妨也多做尝试,管他什么音乐绘画还是神学哲学,只要有兴趣就大胆去了解。</p> +<p>感谢阿城能够让我醒悟,不必为自己爱好广泛而烦恼,更不必为没能精通若干技能而悔恨,专有专的强,杂也有杂的好。</p> +<h2 id="几点感悟">几点感悟</h2> +<h3 id="关于改变">关于“改变”</h3> +<p>推动事件向自己希望的方向发生是有难度的,也是考验和锻炼一个人综合素养的绝佳机会。观察这么多伟大的领导者,没有一个不是在推动变革中成长起来的,所以成功有很大的因素就是在推动变革。做变革的推动者需要面对很多困难,因为就跟打扫房间一样,任由事情向无序方向发展是最省力的,也是最不负责任的,只有想要东西向有序方向发展才是困难的。</p> +<p>广义上来说,做任何事情都是将事物从无序向有序方向发展,这是自然规律,宇宙万事万物从有序走向无序,只有智慧生命才具备能力维持有序或者把无序变有序,这一切都需要能量,作为智慧个体所具备的只有利用能量的方法和信息,比如蒸汽机、内燃机电动机等等,再往前倒腾,那就是农业时代的耕种,那也是一种利用能量(太阳)将无序向有序转变的过程。</p> +<p>这么些年以来,推动或者说维持有序的本质没有改变,个体想要发挥价值或者说作用,只有在这个过程中通过一定的方法和信息来完成能量转换为有序的操作,工程师、艺术家、农民,可以说做的是一样的事情,区别就是大家所使用的信息不同,引导的能量不同,所输出的转化物不同。</p> +<p>个体的价值就体现在不是作为“无序”的生产者,而是“有序”的生产者。</p> +<h3 id="关于做自己">关于“做自己”</h3> +<p>我以前特别尊崇“真”,要活的真性情并且避免虚伪,不愿意假装任何事情。这样做有很多缺陷,因为不同的人有不同的期望,而且这些往往是互相矛盾的,西方的文化传统是“做自己就好”,是挺好的,但是仅限西方,在中国的话,还是要讲究一下中和。</p> +<p>所以聪明的做法,在中国文化传统下,必然是不能直来直去,即便是“做自己”,也不能表现的太过于直接,中国的文化就是内在与外在严重的分裂,外在主要用于伪装和“一团和气”,而各自的内在又是什么样儿呢?谁也不知道。但有一点是毫无疑问的,那就是我们的文化绝对不推崇直接表现内心,所以才有古代大臣劝皇帝登基,而皇帝则三番五次推脱,嘴里喊着不要,虽然双方都知道是在演戏,但是也都不亦乐乎,做的很足。</p> +<p>刚正不阿的人在明白了这些之后难免会有一些哀怨,但在我看来,这样就有些狭隘了,从客观规律上来说,谁都逃脱不了自然的力量,无论是基因还是环境,所以不必抱着一种价值观跟这个世界死磕,老祖宗的智慧早就告诉我们任何事物都不可一分为二,不能非黑即白,要以一种“中间调”的视角来看待问题。</p> +<h2 id="结尾">结尾</h2> +<p>2018年经历了很多事情,思想的转变带来了行动的变化,年初的时候给自己开出了化解中年焦虑的药方“多做事情”,效果良好。通过具体事情的磨练,更加清晰的体会到了实际练习对成长的重要性,希望在后续的时光里,自己仍然能够保持好奇心,坚持学习,创造美好的东西出来。</p>事如春梦了无痕https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/Thu, 19 Jul 2018 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/<p>上苍保佑吃饱饭撑着的人,中午吃完饭抽烟的时候,刷了几页微博,可能跟我关注的人有关(我一般关注段子手或者文艺思想贩卖者),感觉内容作为消遣挺合适,但是越看呢,越觉得没有营养,可能是跟我刚抽完烟进入贤者时间有关,一把把微博推开的时候(合上屏幕),心里竟涌现出一句“都是吃饱了撑的”,用以评价刚刚看过的几段不痛不痒的文字。</p> +<p>发完感慨随即想到,这句话是不是可以作为一本非常扯淡的书名呢?然后开始畅想自己写一本这样的书,里面的内容天马行空,多为吃饱了没事儿干的人才会忧伤和考虑的事情,饱暖之后各种忧虑和焦躁的事情可以化作各种思考,用于填满本书,作为同病相怜者证明自己不再孤独的弹药,一旦物质状态不能满足,则书中的内容立即退化到可有可无的状态。</p> +<p>真的,我这两三年来,刷牙沉思录这种哗众取宠的段子写了不少,缺少深度的技术文章也写过几篇,以吃饱了撑着来进行衡量的话,还真的比较符合标准,如果加以艺术润色的话,真难说能不能包装成为一本具备贩卖价值的书,至少想到这个问题之后,被自己震惊了一下,进一步对人生需求的几个层次有了切身认识。</p> +<p>无论我再怎么黑自己,有一点是不会改变,我写的那些东西至少保留了我一部分的回忆,它们记载了我在某一段时期内的心智情况,无论是用词还是造句,都能从一个侧面反映我当时的状态。而我的人生正是由若干个这样的状态所组成,随着年龄的增长,我的记忆力会越来越差,如果能够多记录一些东西下来,就算是那种吃饱了撑着才能思考的问题,也将使未来的我读起来热泪盈眶。</p> +<p>不过信息世界的问题在于,资料保存的永久性很不靠谱,说不定哪天这些信息就不在了(我写在msn空间的博客一篇也没了),甚至安全性还比不了一个纸质的笔记本,但我仍然不做过多的努力和担忧,倘若保存良好,那就作为未来回忆的佐料,倘若不幸丢失了,那就随他去吧。因为在写这些东西的同时,我已经感受一次生活了,本来也是留不住的东西,事如春梦了无痕嘛。</p>2017年个人总结https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Mon, 01 Jan 2018 00:00:00 +0000https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>2018年新年第一天,起的不早也不晚,天气晴的很好,阳光从窗外洒进来,给窗台上的多肉镶了一圈儿金黄。</p> +<p>每到这样的新年假期,我都会安排一天的时间收拾一下房间,然后坐在电脑跟前,回顾一下在过去一年里个人的经历和得失,考虑一下在新的一年里对自己的期望和改进要求,设立一些学习上的小目标,给新的一年提前充电。</p> +<p>这个习惯我已经坚持了四五年,主要以总结工作之余的个人学习和感悟,提取生活中的一些有趣经历,为自己在将来能够翻看回忆提供一些文字素材。</p> +<p>总结本身可能并不重要,但是这种回顾过去和展望未来的仪式感,每次都能使我得到激励,使我能站到一个更高的维度审视自己。</p> +<p>人们常说,了解自己是最困难的,我们可能永远都不能了解自己,只能无限趋近于了解,那我这样的总结,算是对了解自己所做的一种尝试和努力。</p> +<h2 id="学习与读书">学习与读书</h2> +<p>虽然随着年龄的增长,学习新的东西变得越来越困难,土话也有“人过四十不学艺”之说,但不得不承认,当今时代,学习成为了人人都必须修炼的一种能力,无论什么行业和职业,只有不断的学习,才能适应科技和文化的飞速发展。</p> +<p>有人说,最终人类比拼的将是学习能力,但这多少有点儿站在功利的角度,我所说的学习更多的是一种探索精神,一种想去了解自己了解世界的强烈好奇心。</p> +<p>今年买了不少书,技术类书籍和鸡汤类书籍各占一半,认真看进去的书不是很多,基本上每一本都翻了翻,但没有特别沉下心来看。</p> +<p>摄影类的书籍有《理光GR的随手拍摄心得》《纽约摄影学院教材》《摄影构图学》等等,这些归类到技术类书籍好像不太合适,但又确实是学习用的,看得还算是津津有味,其中给我带来最多收获的应该就是理光用户的那个随手拍摄心得,作者好像是台湾人,在读到之前我还难以想象摄影书还能这样写,基本上我感觉就是结合自己的故事重新写了说明书,读起来比较有吸引力,而且顺便把怎样使用相机也学了,真是一举两得。</p> +<p>学习数学、英语的相关书籍也买了一些,想重温一下高等数学,以及线性代数,感觉还是没达到预期目标,尤其是高等数学,基本上忘光了,连做课后的练习题都很困难,基于这些书倒是延伸学习了一些计算机图形学,这个算是意外收获,对计算机图形学里的一些概念如齐次坐标等等有了比较好的理解,尤其是使用矩阵来表示各种坐标变换,以前完全不知道内部实现的原理,直到今年我通过一边看书一边在excel里模拟了旋转平移和缩放的过程之后才算有了深入理解。</p> +<p>历史类的书买了两本入门册子,但是都没有读进去,畅销书《人类简史》倒是看了,写的确实不错,有一种以前读《万物简史》时的畅快,而且作者很会比喻,观点也独到,从很浅显的角度解释了人类发明的货币和公司这些东西。</p> +<p>趁着创业的热潮而大卖的关于创业的书也买了些,比如《从零到一》这样的,我看都是一些硅谷的创业成功者写出来忽悠人的,不过里面也讲了不少实话,看的时候就当是听作者诉说他是怎样取得成功的好了,反正他是这么认为的,虽然再来一次也可能不管用。</p> +<p>每年都会重新看看《黑客与画家》,虽然是一本很早的书,但是每年看的时候都有新的感触,也会产生新的影响,这个书的作者应该算是硅谷的创业教父了,他比较喜欢说实话,而且也喜欢思考,给我带来很多启发。</p> +<p>同样每年还会看看SICP《计算机程序的构造和解释》,这本被誉为神书的书,我一直没能完全看懂,今年借助YouTube,在上面听了两节MIT教授的课程,算是对前两章有了较深的理解,并顺便学习了LISP语言,这对于我以后折腾Emacs编辑器有所帮助,而且LISP语言的学习能够激发对计算机编程的深入认识,有一种超越编程语言的高维度感受,对计算过程的抽象很有可能是计算机世界的终极抽象,怪不得《黑客与画家》的作者说,未来的编程语言很有可能无限趋近LISP。</p> +<h2 id="关于拍照">关于拍照</h2> +<p>2017年我大概拍了四千多张照片,经过整理和挑选,留下来的也有差不多一千五百张,是我有生以来,拍照最多的年份,这个数字并不大,有些摄影师可能一天就达到了这个数字,但我这个业余爱好者,今年是一个突破,希望能够在明年以及更远的将来拍摄更多。</p> +<p>就像学习其他知识一样,如果只是听和看,不去亲自动手试一试,十有八九做的是无用功,不是说听和看不重要,我今年就读了好几本关于摄影的书籍,而是动手去练习更重要,10000小时的定律说的更多的也是练习,当然举这么多其他的例子更没用,游泳才是更好的例子,你不跳到水里根本不可能学会。</p> +<p>所以我今年能感受得到在摄影上的进步,一方面因为我读了很多关于摄影的书籍,无论是经典教材还是随手摄影的心得,这些书籍看了确实能够改善和丰富我对摄影的认知,另外我也在网上也观看了大量关于摄影的视频,大部分是在YouTube上看的,很多都是个人摄影爱好者开设的播客,这些内容虽然不成体系,但是也有不少可取之处,尤其是针对单个知识点进行的介绍,比如构图、后期、器材搭配等等。</p> +<p>关键还是因为我随身带了个相机,比起用手机来,我更喜欢这个理光的卡片机,虽然感觉并没有网上吹嘘的那么神化,但是还是很够用的,街拍神机名副其实,随身携带让我得一随时随地想拍了就来一发,比手机更有拍照的仪式感,而且画面质量确实比手机强的多,毕竟“底大一级压死人”,这个卡片机的传感器比手机的大了不知多少倍,拍摄夜晚或者光线较暗的场景时,手机拍的基本没法看,理光GR2基本可以胜任所有拍摄场景。</p> +<p>我能感受到最大的进步应该是在“构图”方面,比起对曝光的控制、后期调色等方面,我对构图有着天然的热爱,这虽然有些“形式大于内容”,但是我确实无法忍受一幅照片在构图上的失败,所以我现在在拍照之前,第一件考虑的事情竟然不是曝光,而是构图。这可能是因为现在的相机都已经智能化到自动控制曝光的地步,虽然有时候拍出来并不是想要的效果,但至少相机不会让你曝光失败。于是构图就成了拍摄首要关注的内容了。</p> +<p>我今年读的大部分摄影相关的书籍都是构图相关的,这些与绘画、平面设计类似的东西,我基本上东一下西一下的瞎看,不成体系,但也总结出了自己的一些原则,比如地平线一定要平,三分法放置画面等等。通过实际练习,我感到构图水平明显的变化,至少现在拍出来的东西一看就知道不是随手对付的,而是经过考虑和设计的,已经达到了业余爱好者的水准。</p> +<p>在练习中的感悟才是真正学到的东西,有的时候甚至能够跨越技能,从一件事情感悟到另外的事情上去,用一句今年比较流行的话来说就是“建立了联结”,通过练习,可以从拍照这个简单的事情本身,联想引申到对美的感受,无论是音乐、文字或者是其他的艺术品,人类所期盼看到的和听到的,就是愉悦的体验,而通过“平衡”、“对比”、“韵律”、“节奏”这些感觉的灵活运用,就是能让人感到愉悦,所以我现在比较能够理解艺术是相通的这句话了。</p> +<h2 id="关于资讯">关于资讯</h2> +<p>资讯的阅读是打发时间的最好方法,你看地铁上的人,几乎每一个人都捧着手机看新闻,当然也有刷剧和打游戏的,但据我的观察,大部分人都是在刷新闻。</p> +<p>资讯好像是一种食粮,每个人都如饥似渴的吸收,现代化的互联网技术和移动app,使得资讯触手可及,随时随地,吃个没完。</p> +<p>资讯又好像一种毒品,使人上瘾,如果有一个小时没有看到的话,就会浑身不适,非得打开浏览器或手机点两下不可,然后看到并没有什么有用的信息浮现的时候,才放下手机,内心得到了片刻的虚假平静。</p> +<p>其实不知不觉中,资讯消耗了我们大量的时间和精力,甚至成为了我们的枷锁,我们的眼睛仿佛除了资讯之外就看不到什么东西了,对其他东西的观察成了一种原始的应激反应,吃饭、睡觉、乘车,稍有闲暇的时候,就用资讯来填补。</p> +<p>好像我们的脑子已经无法承受在没有资讯刺激下的无聊,我们放弃了自己的思想,大脑的发动机已经不再运转,有的只剩下最基本的生理反应,这种情况所产生的空白,使我们恐惧,于是就吸取更多的资讯来填补,殊不知这些东西进一步把我们自己的思想挤的无处容身,脑子就更不能转动了。</p> +<p>我见过很多独处的人,在吃饭的时候,也不忘了掏出手机,我虽然没看到他的屏幕,但是可以猜想,看的无非就是一些“有趣的”文章。可怕的是,我自己有时候也这样,因为如果不这样我好像也吃的不香,觉得眼神无处安放,觉得这一段时间不知所措。</p> +<p>有一个关于“禅”的故事被说的比较多,大意是,有人问禅师“什么是禅?”,禅师回答:“吃饭就是吃饭,睡觉就是睡觉”,我最初听到这个故事或者段子的时候,根本无法理解,谁吃饭不是吃饭,睡觉不是睡觉呢。</p> +<p>后来想到关于吃饭时看信息,关于睡觉时胡思乱想,才明白,原来,吃饭就是吃饭,睡觉就是睡觉,是那么的难啊。</p> +<p>我在2017年有意识的限制自己获取资讯的时间,每当我忍不住想打开网页的时候,我就强迫自己坐下来写字,就写当下的脑子里想到的内容,想到哪儿就写到哪儿,完全不顾及条理性和先后顺序。</p> +<p>我原来还特别担心这样写出的东西根本不通顺,没法看,但是在坐下来写了两篇之后,我才发现,原来这些不加修饰和斟酌的文字,看起来是那么流畅,读起来非常顺口,就像自己跟自己在交谈。</p> +<p>而且这样做的一个很明显的好处是,屏蔽了资讯,用赵本山的话说“病毒关闭了,你的智商又重新占领高地了。”清空了资讯,给自己的大脑腾挪出可以思考的空间,很多自己的思想就涌现出来了。</p> +<p>先不用管他们是积极的还是消极的,根本不用识别他,站在一个旁观者的角度来观察,可能这就是禅宗经常说的“观照自己的内心”吧。</p> +<h2 id="关于写作">关于写作</h2> +<p>我在2016年的时候,坚持每周输出五百字,作为写作练习,这项活动开展了整整一年,写了好几万字,后来我在2017年停止在网上发表。因为我觉得输出的内容有些缺少思想,而想写出比较有思想的内容还是很有挑战和耗费精力的,尤其是考虑到有读者的观看,会给自己带来额外的压力,后来我在写字这一块开始写给自己看,内容也都散落在工作日志里了,没有整理到网上。</p> +<p>上面提到的关于将资讯时间用于写作的方法,来源于2017年我看的一本书, 叫《写出我心》,主要的内容是帮助十分焦虑的现代人通过写作的方式找回内心的平静。</p> +<p>书的作者为了解决内心烦躁的问题,曾经尝试过冥想、瑜伽等方法,但是效果都不太好,心理的念头仍然非常的多,挥之不去,起伏不定,甚至越来越糟,于是作者尝试使用写作的方式,将自己的念头不通过思考,直接书写下来。</p> +<p>然后他欣喜的发现,不假思索将自己的念头不断的书写下来,经过一段时间,竟然可以解决自己的烦躁,内心逐渐变得平静,于是他就把自己的这种体验和方法总结下来,写了这样一本书,并提出了具体执行的一些原则和要求。</p> +<p>我看了之后感到比较有意思,也想尝试一下,开始利用闲暇时间或碎片时间写一些无关紧要的文字,主要是自己的一些思考和心绪。我发现,写作的过程真的具有疏解内心压力的功效,然后我逐渐意识到,这不仅仅是写作,这是一种倾诉。</p> +<p>而倾诉,很可能是一种卸下负能量的过程,也是积攒正能量的过程,每个人都有倾诉的需求,以前我没意识到,原来倾诉是舒缓内心的一剂良药。</p> +<p>可能对于外向的人来说,这不是问题,因为在日常生活中,他们随时随地在向别人诉说和交流,向别人输出自己的感受或观点。但是对于内向者来说,可能比较缺少倾诉的出口。</p> +<p>不过除了说话是一种倾诉方式之外,写作、绘画、其他艺术创作等,应该都是有效的倾诉方法,写到这儿我发现,怪不得艺术家多为内向者。</p> +<h2 id="餐桌段子">餐桌段子</h2> +<p>2017年几乎没怎么看电视,不仅仅我自己,全家人也几乎都不看电视了,一方面是因为电视中的内容比较无聊,另一方面主要是因为孩子,孩子的作业较多,如果全家看电视的话,而且在吃晚饭的时候看电视的话,基本都会严重影响孩子的作业时间,而且一边吃饭一边看电视实在是不好的习惯,所以我有意识的在生活中取消掉了电视时间。</p> +<p>这样以来,刚开始大家都不怎么习惯,因为默不作声闷头吃饭实在是有违传统,用孩子的话说就是场面变得好尴尬,整个餐厅只回响着我biaji嘴的声音。</p> +<p>偶然的机会,我跟金妍开始尝试在餐桌上讲段子,都是一些学校的趣事,或者吐槽日常生活中的事情,可吐槽的对象主要包括“老师布置的作业”、“妈妈做的饭菜”、“爸爸的坏毛病”,或者是对于学习中的一些技巧。</p> +<p>由于孩子笑点很低,所以基本上我都是以原创和自制的段子为主,讲出来都比较冷(比如:为什么金币的颜色是黄色?答:因为“金碧辉煌–会黄”),但是,充分发挥脱口秀精神时,起到的效果都很不错,常常一顿饭吃下来笑到腮帮子疼(请勿模仿,吃饭还是尽量别笑,尤其是米饭)。</p> +<p>我想这些在未来都能成为孩子们成长的美好回忆吧。</p> +<h2 id="总结">总结</h2> +<p>2017年如果汇总一个关键词的话,那就是“认识自己”,到了一定的年纪之后每个人都在承受生活中的各种压力,这些压力一部分来自别人,一部分来自自己,其中自己的那部分所占比重最大。</p> +<p>中年男人到了这个时间点,或多或少都会有些迷茫,多少都有一些积累,但是又缺少安全感,失去了一些年轻人的锐利,无论从精力还是身体健康状况,都有所下降。</p> +<p>所以如果想要突破,不仅仅是努力的事情,更多的是要思考,给自己定位,并有效率的付诸实践。</p> +<p>以前在学习时间管理的时候,陷于方法和工具,所以效果不明显,直到今年才认识到,无论任何的时间管理方法论,要想有好的效果,首先要想清楚自己的目标,就好像是确定目的地似的,不然即使掌握了方法,也同样无济于事。</p> +<p>就像企业一样,一个人也同样需要战略,如果没有战略,就像是一艘行驶在大海中的船,却没有舵,随波逐流,不知道飘向何方。</p> +<p>往大了说是叫战略,实际上是用来确定所做事情优先级的指导思想,只有定出来战略,才能在日常工作和生活中知道什么事儿是必须要做,什么事儿是能不做就不做。</p> +<p>所以2017年最大的成果,应该就是考虑清楚了自己的目标和想要到达的地方,感谢这个世界有那么多美好可以让我迷恋,未来我会投入更多时间和精力到我所爱,因为我发现我努力所追求的无非就是一种状态:<strong>那种可以让我痴迷沉浸进去的一种状态。</strong></p>听说你有较强的团队协作能力?https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/Sat, 18 Nov 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/<p>几乎在所有的职位招聘要求里,都包含一条“有较强的团队协作能力”,与之对应的是,几乎每个人都会心安理得地在自己的简历里写上“有较强的团队协作能力”,就像写“本人熟练使用Office”那样心安理得。</p> +<p>无论是出题的人,还是答题的人,可能都没有认真的考虑过,什么是“团队协作能力”,可能只是在内心里觉得“好像加上这么一条,会显得更像那么回事儿吧”。</p> +<p>近期做了一些与“个人能力评估模型”相关的工作,使我不得不认真思考这个问题。我发现,想把这个事儿解释清楚,并落在实实在在的执行上,还真没那么容易。</p> +<p>首先,“团队协作能力”可以是对一个团队的衡量,也可以是对一个人的评价,接下来根据我个人粗浅的观察和分析,谈谈对个人能力的评价,即我觉得一个人怎样算是“有较强的团队协作能力”了。</p> +<h4 id="0尊重他人">0、尊重他人</h4> +<p>可能是人类与生俱来的天性所致,要做到这一点还真是相当不易,且不说地域、种族、信仰等比较沉重老套的话题(这些方面往往最能暴露天性),即便是在日常的讨论中,我们也很难做到在面对不同观点时以对事不对人的态度来讨论,很容易将一件鸡毛蒜皮争论上升致对个人的全方位评判,争到最后往往要捍卫的不是真理,而是自我“对”与“错”的“尊严”。因此,做到充分的听取他人的意见,理解各方的立场与观点,尊重并理解与自己不同的声音才是良好协作的开端。</p> +<p>说到这里我忽然想到当年庄子跟惠子俩人在河边关于一条鱼是否快乐争论半天,至今未分出胜负,可见庄子若论团队协作,不求行,打嘴炮行。</p> +<h4 id="1勇于担当">1、勇于担当</h4> +<p>日常生活中,比较好协作和沟通的人往往具有比较能担当的性格,对于他人(所谓自负者眼里的“猪队友”)做错事情而造成的后果,这些人第一时间是给予安慰和指导,而不是指责和抱怨。相反,如果第一时间选择将“锅”甩的远远的,立即划清界限,很难相信其能具备多强的协作能力。</p> +<p>所以,既然是协作,肯定会涉及多个人的配合,能否做到包容他人并勇于担当,应该是协作的基础。</p> +<h4 id="2谦虚的态度">2、谦虚的态度</h4> +<p>谦虚是一种美德,这大家从小就知道,“三人行必有我师”也早已挂在嘴边随时准备被调用,可是在现实生活中我们所谓的“沟通”却总是想着在这个过程中教别人些什么。在团队中做事,能否空杯心态,听取他人的建议和意见,而不是固执己见,觉得所有人都不如你。每个人都有自己擅长的事情,多看到别人的优点,谦虚地学习,应该没有人会喜欢跟狂妄自大目中无人的人合作吧。</p> +<p>这一点古人做的就比较好,比如著名的“一字之师”的故事,写诗那哥们儿,“前村深雪里,昨夜数枝开”被人改成“前村深雪里,昨夜一枝开”,这哥们儿不但没有恼怒反而当即称改诗那哥们儿为一字之师,可见其谦虚好学。(反观自己,代码被人改了往往会有些不爽)。</p> +<h4 id="3分享精神">3、分享精神</h4> +<p>在“伸手党”横行的年代,拥有分享精神无疑是一种比谦虚还要美的美德,无论是分享自己的观点、心得还是见闻,都可以在过程中得以升华,实现双赢的效果。而具有分享精神的人往往在团队中拥有较好的人缘和评价,我个人始终认为知识越分享就掌握的越牢固,信息越分享沟通就越顺畅,所以是保守封闭还是乐于分享应该也是衡量团队协作的一项重要指标。</p> +<p>不过,也许跟团队的性质有关,比如FBI的特工可能就不能太有分享精神吧。。。</p> +<h4 id="4表达能力">4、表达能力</h4> +<p>人的愤怒大部分来自于无法表达自己,很多人的狂怒往往伴随着这么一句话&mdash;-“我说了这么半天你怎么还不明白?!”,对于性子急躁着表现更为明显,这种愤怒,与其说是对别人不理解的愤怒,倒不如说是对自己比较弱的表达能力的愤怒。这个倒是可以锻炼,清晰的逻辑思维和较好的文字语言功底都能大幅提升表达能力,如果让我总结关于这个能力的“技巧”的话,就四个字儿&mdash;-“抓住重点”。</p> +<h4 id="5团队利益与价值观的认可">5、团队利益与价值观的认可</h4> +<p>即便做到以上多点,如果不能认可自己所在团队的价值观的话,也很难得以发挥。要做到这条,首先是对团队利益和价值观认知的问题,能否看清团队利益所在,知道该提倡什么和拒绝什么,是基本。其次,对于需要大家共同遵守的原则是否发自内心的认同,否则作为个体应该会比较难受,高效协作也就无从谈起了。当然这一点来说,不仅仅是对个人的要求,能否理出清晰的原则并身体力行的去执行,更是对团队领导者的要求了。</p> +<p>写了这么多,其实都是人人明白的道理,也都能明白难在具体的执行,不过,花一点儿时间整理一下思路,就当是一个自我反省了,当然要是能正向影响一些人,并给人带来一丢丢的思考和改进念头,那就更好了。</p>压力比较大?讲个笑话放松一下https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/Fri, 07 Jul 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/<p>一些老段子,放松一下(来自知乎https://www.zhihu.com/collection/124380021?page=2)</p> +<h3 id="给我一个坚定的眼神">给我一个坚定的眼神!</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-a0750a572a35cda7.webp" +width="600" +height="317" +loading="lazy" +alt="给我一个坚定的眼神" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="454px" +></p> +<h3 id="无题">无题</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-0b95397b5dba2834.webp" +width="426" +height="458" +loading="lazy" +alt="无题" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="223px" +></p> +<h3 id="怎样制作草莓酱">怎样制作草莓酱</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-90a50bac1f3a38d6.webp" +width="350" +height="1737" +loading="lazy" +alt="草莓" +class="gallery-image" +data-flex-grow="20" +data-flex-basis="48px" +></p> +<h3 id="能让你产生强烈情绪的图片">能让你产生强烈情绪的图片</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-5af7967d7aced9ce.jpg" +width="440" +height="4122" +loading="lazy" +alt="能让你产生强烈情绪的图片" +class="gallery-image" +data-flex-grow="10" +data-flex-basis="25px" +></p> +<h3 id="填空题">填空题</h3> +<p>小学时有道关联词填空: +他( )牺牲生命,( )出卖组织。 +有人填“宁可 也不”;有人填“害怕 , 所以”; +有人填“与其 不如”;有人填“即使 ,也要”; +更有个人全校出名,他填的“白白, 忘了”。 +评论里有个清新脱俗,苦大仇深的,他填“大舅,二舅”!</p>每个周末的下午,这样做把你的效率提升百倍https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/Sun, 23 Apr 2017 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/<p>为了避免浪费时间带来的焦虑,人们一般会选择做些什么来保持忙碌,或者至少在看起来是十分忙碌的样子。即使当下所做的事情可能对于完成任务目标来说毫无意义,甚至是背道而驰,但是为了逃避思考,往往沉浸在自己已经“很忙了”、“没时间考虑”这样的假象当中,乐此不彼。</p> +<p>我以前在出行的时候,有时坐地铁到一个陌生的地方,不知道出了地铁口该怎么走,这个时候我就会比较焦虑,一般会先随便朝一个方向走一段,然后一边走一边查看地图,很多时候发现我前进的方向与地图上规划的路径是相反的,但是我的潜意识里认为,我在走动中查地图,比我站在那儿不动查地图要节约时间,要安心一些。这显然是不对的。在一次内部分享会上,我跟大家讲了自己的故事和体会,来说明每个人都或多或少都有这样的逃避倾向(有心理学家指出,事实上脑力劳动才是最累的体力活儿,所以人的天性都是逃避真正的动脑思考的,最好是别人都替我想完了)。</p> +<p>意识到以上的思维模式是错的以后,然后就是想办法来避免。首先需要解决的就是,针对工作中,思考上的懒惰。当然这事儿早就有人发现并指出了,比如著名的那句“战术上的勤奋掩盖不了战略上的懒惰”,以前还有句老话叫“不仅低头拉车,也要抬头看路”等等。</p> +<p>但是都没有提供更加接地气的具体方法。我有一个具体可行的方法,操作起来简单有效,又花不了太多时间,在我看来,对于每一个职场中人都十分适用,除非不思进取、天生与效率为敌(此类人乃将来被AI替代的主要对象)。</p> +<p>具体做法就是:** “在每个周末的午后,抽出30分钟时间,把你认为你下周最重要的三件事确定出来,列到你的工作计划中去。” **注意,是三件,不是更多,此举目的并非让你制定完美计划,而是判断什么事情是重要的,如何判断最重要?很简单,问自己一个问题即可:“我在完成这三件事儿之后,是不是即使其他事情都不干、躺下睡觉,也能认为本周工作是成功的,至少是及格的?”</p> +<p>这样做好处有三,都是立竿见影的效果。</p> +<h3 id="1这是一个很好的重新审视工作的机会">1、这是一个很好的“重新审视工作”的机会。</h3> +<p>即,“抬头看路”。暂时放下手中的忙碌,重新认识一下自己的工作目标,你会发现无论任务有多繁杂,要达成的目标就那么几个,最终的目的地就在那儿,所有任务都应该是指向那儿的,如果不是,那就更简单,降低优先级,或者干脆从任务清单里把它踢出去。</p> +<h3 id="2这样做可以有效避免周一综合症">2、这样做,可以有效避免“周一综合症”。</h3> +<p>现在人,矫情起来谁还没有个心理疾病啊,各种“症”往自己身上套,最明显的就是“周一综合症”或者“节后综合症”,更有甚者称之为“上班的心情比上坟都沉重”。焦虑的根源在于“不可控”,不知道自己做的事情与承诺的目标有什么关系。列出重点之后,先做这些事情,剩下的事情就越做越轻松了。提前考虑好了,就化被动为主动了,心情自然不同。</p> +<h3 id="3便于跟踪工作计划">3、便于跟踪工作计划。</h3> +<p>各方示例都表明,有计划地开展工作,要比稀里糊涂开干效率高的多,但是“有计划没跟踪”也是一个很致命的问题。我在每个周末的思考时间里,都会查看团队成员发来的工作周报(我要求他们也这样做),一是跟踪上周任务完成情况,二是查看下周的工作重点是否偏离既定目标,如果偏离就及时修正,避免了时间和资源的浪费。</p> +<p>习惯虽小,但是一旦养成,威力无穷。为了配合我们高效的工作和管理方法,我们开发的移动办公应用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>“遥知”</a>* (是一款轻量级主打体验的共享协同办公应用) *做出了十分匹配高效工作者的功能,帮助大家养成高效工作的习惯,避免在思考上的懒惰,借助这款工具,无论在工作方法上,还是协作效率上,我们的团队都得到了显著的提升。</p> +<h3 id="硬广时间扫码直接下载遥知httpsphoneq365powercnjadestoredetailnameminierp开启高效工作之旅吧">硬广时间:扫码直接下载<a class="link" href="https://phoneq.365power.cn/jade/store/detail?name=miniErp" target="_blank" rel="noopener" +>遥知</a>,开启高效工作之旅吧!</h3> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-96db89b6821685de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="免费试用遥知" +></p>关于远程办公的思考https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/Sat, 18 Feb 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/<p>据悉,Github有超过一半的员工遍布在全球各地,而开源组织OpenSSL的团队则一直都未在线下见过面(直到后来有<em>某老板</em>资助他们在线下碰了一次面)。随着科技的进步和社会的高速发展,知识型工作的办公方式正在逐渐由集中办公向分布式远程办公转变。</p> +<p>远程办公带来的好处非常明显,比如:有效解决了员工上下班通勤浪费时间的问题,顺便还缓解了交通压力,对环境保护亦有贡献;抛开了地域的束缚,可以吸引全球各地的人才参与,对企业的人才战略有积极影响;有效降低企业办公场地投入;团队效率、员工积极性都能得到有效提升;等等。</p> +<p>但是如何具体的实施远程办公,不同的团队会有不同的见解,我个人一直热衷于推进办公模式的改进,也做过相关尝试,下面根据我的浅见,从几个方面总结一下远程办公的关键要素:</p> +<h3 id="成果目标的明确定义和有效检查">成果目标的明确定义和有效检查</h3> +<ul> +<li>远程办公对于团队管理要求更高了,一个团队要统一一个目标,大家对于目标的定义应有一致的理解。须将目标逐级分解具体到人,并提前设计好由细节到整体的成果装配流程。</li> +<li>每一种类型的任务要有对应的检查清单(checklist),每日的工作成果都要通过检查清单的检查。</li> +<li>团队的工作成果要有装配和构建系统进行组装,并有一个全局的检查清单,有专人负责检查。</li> +<li>员工自我检查,组长验收检查,配置管理组装检查,质量管理进度跟踪检查。</li> +</ul> +<h3 id="沟通的及时性和有效性">沟通的及时性和有效性</h3> +<ul> +<li>所有人应该可以立即呼叫到所有人,反应是实时的,不能超过30秒的延迟。</li> +<li>语音,文字使用统一的语言体系,命名和表达方式需要规范化。</li> +<li>可以随时截屏和录制一小段视频传递给任何人,必要时需要共享显示器和白板的内容。</li> +</ul> +<h3 id="工作进度跟踪">工作进度跟踪</h3> +<ul> +<li>有效、深入细节的项目管理,需要有完善的项目台账,实时反应项目的状态。</li> +<li>显式任务管理,团队里的所有人要知道所有人的工作任务情况,可区分普通任务和私密任务。</li> +<li>项目生命周期管理细化到任务生命周期管理,起源、分解、执行、成果检查、后评价、归档入库、装配完结。</li> +</ul> +<h3 id="办公状态模拟">办公状态模拟</h3> +<ul> +<li>为防止远程办公缺少仪式感,需要规定集体的远程互动,举行每日开工会议和收工会议。</li> +<li>严格统一上下班时间,确保大家同时在线。</li> +<li>每周至少一天线下见面会议,集中起来讨论工作。</li> +</ul> +<h3 id="信息化工具支持">信息化工具支持</h3> +<ul> +<li>使用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>的“小纸条”进行及时沟通。</li> +<li>使用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>的项目管理和任务管理进行协作管理。</li> +<li>使用qq、视频直播等工具进行远程集体互动。</li> +<li>使用gitlab做好配置管理和成果审查。</li> +<li>使用docker、jenkins等做好产品的持续集成和每日成果构建。</li> +</ul> +<p>为了在我们的团队更好的推行远程办公模式,我们不断探索和思考,去年初,我所在的团队开始小范围尝试远程办公的模式,期间遇到了一些问题,我们也做出了一些工作方式上的改进,总的来说利大于弊,经过这些尝试,更加坚定了我们未来逐步迁移至远程办公模式的决心,也促使我们研发了移动端协作工具<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>,致力于帮助更多的知识工作者更高效的远程办公。</p> +<p><img src="https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/yaozhi.jpg" +width="200" +height="200" +loading="lazy" +alt="遥知" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p>未来企业扁平化管理中的信息化需求https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/Sat, 11 Feb 2017 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/<p>“扁平化”管理并不是什么新鲜的概念,早在上个世纪就有公司在尝试通过压缩管理层级来实现扁平化管理,并取得了不错的成效,以至于有一阵子“扁平化”管理理念大有席卷全球之趋势。</p> +<p>但后来事实证明,在缺少有效的沟通和协作机制之前,扁平化管理的瓶颈往往很快出现在管理者身上,原因很简单,传统的“金字塔”式管理虽然等级多、决策下达缓慢,但是符合2/8原则,一个管理者只需要管理较少的几个人,沟通比较顺畅,扁平化管理模式下的管理者需要对接的人较多,很容易形成沟通瓶颈。</p> +<p>所以“扁平化”在火了一阵子之后,不少企业掉进坑里挣扎了一阵子之后,又回归传统的“金字塔”模型。</p> +<p>但是,随着技术的进步,很多工具得以改进,好多传统的“真理”也不再那么有效(比如一人最多管理7个人),这一点上来说,很多国外的互联网公司已经快速发现改进点,并将“扁平化”管理结合了现代化工具和理念成功在自己的企业推行。</p> +<p>比如著名的谷歌。无论是技术还是管理,谷歌一直是走在时代前列的公司,其管理方式或企业价值观虽不能照搬,对于我们仍有一定的借鉴意义。</p> +<p>最近读了两本关于谷歌公司的书,《重新定义公司》和《重新定义团队》,书中讲解了谷歌公司对未来公司组织、团队管理的尝试和思考,在信息文明全面取代工业文明的时候,传统的组织方式和团队管理会怎样被超越。两本书从文化、战略、决策、人才、沟通等多个方面阐述了未来企业的改进可能。</p> +<p>内容比较多,不同的人看了可能有不同的收获,通过读书,一方面我发现了未来组织对扁平化管理的需求,然后思考了企业信息化对这一管理模式的支撑,下面简单谈谈我的看法(比较有意思的是,谷歌公司的员工也在抱怨他们自己开发的IT系统不好用)。</p> +<p>###利用信息技术提升管理者与员工在“扁平化”管理下的沟通效率。 +通过互联网、移动应用可以实现所有人的实时在线,无论是任务指派还是成果检查,或者随时沟通一些思路和想法。所以我猜测,未来的企业,可以一方面在线下仍然建立传统的“金字塔”层级结构,另一方面,通过移动应用工具,在线上建立“扁平化”的虚拟管理团队,企业的管理者可以获得更强的管控力和执行力。</p> +<p>###利用信息技术加强企业文化的建设。 +利用现代化的信息工具,企业内的每个人都可以更迅速的向团队传达及时的信息,分享自己的观点、技能。工作的目标更容易清晰传递,工作进展也更容易跟踪,管理者更方便地关注每一个成员的状态,只要积极利用工具向大家分享信息,“企业文化”就不再是一句虚无缥缈的口号,而是变成真正融入到每一项工作中、影响每一个成员的实实在在的观念、模式、原则。</p> +<p>###利用信息技术放大“好员工”的影响力。 +称职的管理者在团队中一定是认可并推崇积极优秀人才、打击并消灭低效消极人员的,传统的方式下一个好员工的影响力可能只局限在自己负责的那一部分工作,但是利用社交化的信息工具,在管理者的推动下,可以放大好员工的影响力,一个明星员工可以给更多的人带来正面影响,优秀可以“传染”给更多人。</p> +<p>###方便打造学习型组织。 +学习型组织,或学习型团队,现在大家提的比较多,构建一个学习型的团队是很多管理者的共识。信息技术提供的在线工具和移动应用可以让团队管理者更方便的实现打造学习型组织的理想。知识分享除了通过线下的活动进行外,还可以随时在线上进行,无论是看到了好的文章或者想系统的给团队成员讲解某一项技能,都可以利用信息工具在线上进行。</p> +<p>###“标准”与“流程”不再是束缚,而是助手。 +很多人提到企业信息化往往第一个想到ERP或传统的OA系统,但是未来这两个东西一定为消亡,或者换一种方式存在。传统的“标准”和“流程”是“死”的,听起来就没有什么生命力,未来的信息化工具在这个方面要想突破,一定是高度可定制化的,通过定制化,适应企业的高速发展,通过定制化,甚至让使用信息工具的人自己“创造”功能。</p> +<p>###遥知 +以上是关于新形势下企业信息化需求的简单思考,我所在的团队也正在做一些尝试,管理上,向扁平化方向发展,信息化工具上,我们自主开发了一款满足上述需求的移动应用产品&mdash;-<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>,目前已经发布,正在积极推广中,有兴趣的可以尝试一下,虽然距我们设定的目标还有一定的距离,但对我们自己的团队管理已经初见成效,通过不断的迭代和改进,我相信我们会成为未来企业信息化管理工具的引领者。</p> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-9accb32495a84ba4.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="遥知" +></p>2016年的个人总结https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Mon, 02 Jan 2017 00:00:00 +0000https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>每个新年假期我都会抽出一个下午的时间,回顾一下这一年所经历的事情(工作以外),总结一下得与失,回顾过去的同时顺便展望一下美好的未来。</p> +<p>2016有很多值得怀念的,也有很多值得感谢的,从几件小事谈起,简单总结一下生活。</p> +<p>0 、读书,2016年初定下原则,多看书少看电影,结果执行的还不错,朋友给推荐了一些书,自己也随机的买了一些,利用晚上睡觉前的一些时间累计下来一年也能看个十本八本的,印象比较深的有白先勇的《台北人》、蔡崇达的《皮囊》、村上春树的《当我跑步时我谈些什么》、东野圭吾的《解忧杂货店》、王小波的《万寿寺》。看完《当我跑步时我谈些什么》之后还冲动地跑了一个月的步,后因天气原因未能坚持(也不遗憾,姿势不当可能损伤关节)。技术类书籍没少买,每年仍看一遍《黑客与画家》,今年人工智能和大数据方面发展比较迅猛,陆续看了一些与之相关的书,对于科技的发展保持密切关注。</p> +<p>1、写字,每周都在简书写一些文字,记录一些心得体会,或者对一些事物的看法 ,质量参差不齐,大部分文字都未经推敲,纯粹自娱自乐。虽错把创作冲动当才华,但比起只说不做,我毕竟坚持把思想落实在了行动上了,一些文字也能引起共鸣,甚至有朋友打赏鼓励,最后统计了一下,写了五万字,一共收获了一百多块赏金,其中老妈、老妹打赏最多。</p> +<p>2、沉思录,从年初开始在微信朋友圈坚持做的一个小试验,每日睡前将当日坐车或刷牙时考虑的无聊问题,总结一段文字,发到朋友圈,浅薄幽默为主,记录心情为辅,偶有正能量鸡汤出没,好在我的朋友大都了解我的性格,通过这样一个小互动,得到大家很多的鼓励,谢谢你们。</p> +<p>3、脱发,虽然健康问题不容忽视,但是随着年龄的增长,脱发,是每一个“聪明”的中年男人都要面临的问题,就像我大学时第一次丢自行车似的,刚开始不敢相信,到后来,不得不接受这个事实。小区门口理发店的老板,给我剪了十多年的头了,从最初不断夸赞我头发浓密,到现在已经开始主动帮我掩盖局部地区的稀薄了(不过我还是没在他们家办卡)。不过还好,至少老年时我不会为是否需要染发所困扰了。</p> +<p>4、幽默与抑郁,幽默的人比较容易抑郁,据说很多喜剧大师如卓别林、周星驰,甚至很多段子手如赖宝,都有抑郁症。原因是幽默的人一般不太会处理自己的负面情绪,往往使用幽默的手段来进行心理防御,负面情绪得不到发泄,造成内伤。不过我还好,庆幸还没幽默到那种程度,自然也就不会抑郁那么狠,作为一个后知后觉的“慢性子”在经历的事情多了之后也能想明白不少问题,现在已经基本上不太会被别人的期望和评价所影响,知道关心自己的人是谁,在意该在意的,忽略该忽略的。</p> +<p>5、老爸的忆苦思甜,父母每年暑假都会过来住一段时间,为了表示诚意,这段时间我几乎每天都要跟老爸喝两杯,三杯酒下肚,老爸必然通过将各种故事对我进行教育,老爸讲故事有个特点,那就是保持在故事框架的基础上,为了达到更好的效果,可以进行适量的改动(比如《武松打虎》这一回,武松最多的一次是喝了72碗酒才把老虎打死的)。所以虽然我早已将忆苦思甜的框架烂熟于心,但每次捧哏的时候还是得认真对待,虔诚的接受“再教育”。毕竟老爸尝过挨饿的滋味,所以我经历的这些困难在他面前基本无颜提起。</p> +<p>6、“克己”,我在办公室放的有一本《传习录》,里面记载的都是明代心学大师王阳明与弟子、朋友的对话或书信,我古文水平很次,看起来磕磕绊绊,但是偶尔也会拿出来翻一番,说不定哪天就能领悟到一些东西。某日看到一段对话对我启发很大,了解到很多道理都有千丝万缕的联系,比如很多人看过的《高效能人士的七个习惯》,其中第一个习惯就是“积极主动”,大家也很推崇“积极主动”,但我某天在看《传习录》的一段对话时才更加理解这个“积极主动”了</p> +<blockquote> +<p>“弟子问王阳明为什么平时道理都明白,遇到事情的时候却还是难以控制自己,老王说,那是因为你经历的事情还不够,没能克己,你还是应该在事情上磨练自己”</p> +</blockquote> +<p>这里的“克己”虽然说的是在事情上磨练自己,但是怎么磨练?其实就是遇事要积极主动,不放过任何可以锻炼自己的机会,这样才会有进步,也就不会出现道理都懂,但实际没懂的情况了。</p> +<p>7、时光倒流,有天金妍问我,时光真的能倒流吗?为了严谨一些,我回答,现在不能,以后或许可能。然后我问她,如果时光可以倒流,你想回到什么时候?她说,我想回到小时候。小时候?多小?我问她。她说,我想回到4岁(幼儿园)。看来从上了小学,我们的人生就开始了战斗模式。我说,那等着哪天科技发达了,咱们一起回到小时候吧。我没忍心说,其实就算时光可以倒流,我们自己是不可能倒流了,我们的人生就像是离弦的箭,开始了,就永远不能回头,只能不断向前,冲刺再冲刺,然后在向前的过程中,去寻找美好的体验和感受,并努力赋予这个过程以意义。</p> +<p>时间过的很快,2017年我希望自己能够成为一个更好的 人,读到更多好书,听的更多好歌,做出更美的产品,坚持良好的习惯,关注他人的体验,向身边的人多学习,并坚持自己的梦想,向快乐出发!</p>写点儿东西,以防自己把别人的知识当成自己的https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/Sat, 24 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/<p>作家余华在<a class="link" href="https://www.douban.com/group/topic/38345927/" target="_blank" rel="noopener" +>《我能否相信自己》</a>里写的一句话让我看了很有触动:</p> +<blockquote> +<p>“那些轻易发表看法的人,很可能经常将别人的知识误解成是自己的,将过去的知识误解成未来的。然后,这个世界上就出现了层出不穷的笑话。”</p> +</blockquote> +<p>这正是我所担心的,担心知道的太多,明白的却又太少。前者容易造成焦虑,信息的过载,或者想的太多。后者则导致在实际生活中面对问题时仍旧束手无策。</p> +<p>面对互联网上大量的信息和资料,为了缓解焦虑,大部分人都有两个习惯,一个是收藏,一个是转发。</p> +<p>我曾经维护着一个巨大的笔记列表,里面全是我多年来在互联网上搜集的各种资料和文章,从工具技术到人文自然与哲学相关的,都有。我还耐心的给每篇文章都增添了标签进行分类,以便“以后”更方便的查找和“仔细阅读”。</p> +<p>然而,事实是,永远会有更新的内容出现,然后动动鼠标就能收藏,但是再也没找到机会进行“仔细阅读”,当时那种“留下来慢慢看”、“以后会有用”的感觉是那么强烈,但是,真的很少再想打开看一眼。那些文章永远的躺在收藏夹里,累计出来的数字越来越大,甚至开始让我误以为那些东西我都懂了。</p> +<p>另一个习惯就是“转发”,看到好的东西就想分享,这是一个好习惯,但同时大量的分享也反映了一个很细微的心理激励过程,即,如果我转发某篇文字,里面提到了很多我十分认可的观点或思路(但事实上我可能根本做不到),我就忍不住要转发出来,在转发的那一刻,我的内心深处隐约觉得,好像离“做到”又进了一步(其实并没有)。</p> +<p>我想不仅仅只有我才是这样,应该很多人都有这种习惯和心理。</p> +<p>后来,我意识到了这一点,逐渐的开始改进,直到有一天我想明白了,自己不应该胡乱发表连自己都不能明白的观点,自己知道的东西不一定就能成为自己的知识。于是开始有意的控制信息的获取,转而开始尝试着将自己能想明白的东西用文字组织一下,开始“消化”知识,通过文字重新构建自己的“知识体系”。</p> +<p>书写东西实际上是一个思考的过程,很多写作高手看起来轻易就能写出精彩的文字,事实上底下支撑的并不是他有多强的“写作”能力,而是他的“思考”能力,他能否构建出一个他想要表达的形象,一个完整的、具体的形象,然后剩下的就是写出来。</p> +<p>所以说,能够写出来的东西,至少,表明了作者可以在内心里构建一个清晰的影像,对于自己的知识,有了更进一步的理解。</p> +<p>从将知识写成文字开始,到真正在现实中有效使用,再到可以传授给他人,慢慢的“我知道的”,就真的变成“我懂得”了。</p> +<blockquote> +<p>“我的大脑就像是一口池塘,别人的书就像是一块石子;石子扔进池塘激起的是水波,而不会激起石子。”“因此别人的知识在我脑子里装得再多,也是别人的,不会是我的。”</p> +</blockquote>应该自己动手做一些东西了https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/Sat, 10 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/<p>学会制造和使用工具应该是人类区别于其他物种的最重要的一项区别,所以DIY应该是一种原始的冲动。每个男人都应该有一个属于自己的工具箱,或者更近一步,一个工作台。</p> +<p>据说德国的制造工业之所以发达就是因为人家从小就培养和锻炼孩子的动手能力,几乎每个家庭都拥有全套的机械维修设备,小孩从几岁开始就趴在旁边看老爸在那儿捣鼓各种东西,骨子里就渗透了DIY的文化。</p> +<p>这方面中国男人明显做的比较差一些(咱们当然也有高手,但从比例上来说还是太少了),一方面可能是因为从小所接受的教育比较注重理论文化知识、轻视实际操作能力,另一方面也可能是我们的人力相对廉价,有什么事情直接找专业工人搞定,老外的人工费用太高,动不动就找人做的话肯能花钱比较心疼。</p> +<p>我身边认识的人也有比较能动手折腾的,但他们很少因为这样的技能而得到尊重,最后往往沦为一个免费修理工。不过也没关系,动手折腾带来的乐趣本身比什么都重要。</p> +<p>最近偶然在网上看到DIY达人上传的自制机器人的视频,发现了更大的世界,原来有这么多喜欢动手DIY的人啊,赶紧去Youtube搜索一下,结果搜到大量视频,小到使用打火机制作迷你喷壶,大到在自己家后院架设完整的游乐场过山车。看过之后,赞叹和羡慕之余,感觉竟然还有些蠢蠢欲动。</p> +<p>以前也喜欢动手修理一些东西,尝试制作过纸箱收音机之类的玩意儿,但随着年龄的增长,逐渐失去动手的机会和时间,以至于现在几乎彻底丧失了此类能力。</p> +<p>所以呢,行动最重要,既然喜欢自己做一些东西,那不妨先从丰富和建设自己的工作台开始,然后一边鼓捣软件,一边鼓捣硬件吧。</p>AI会是人类最后的发明吗https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/Sun, 04 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/<p>最近在读一本书<a class="link" href="https://book.douban.com/subject/26855627/" target="_blank" rel="noopener" +>《我们最后的发明》</a>,作者在书中表达了对人工智能发展的深度担忧。并阐明了一个耸人听闻的观点——人工智能将带来人类的毁灭(比核武器带给人类的伤害要大多了)。</p> +<p>客观来说,目前的人工智能仍然处于较为低级的阶段,只能应用于非常窄的专业领域(专业术语叫ANI,狭义人工智能),如文字处理、语音识别、图像识别、棋类对弈等等。受制于硬件环境的制约,对于这一类技术的研究曾经一度停滞不前,但近些年开始,基于大数据技术和生物技术以“深度学习”为代表的“机器学习”类技术的崛起,给人工智能带来了高速发展的可能。</p> +<p>AlphaGo战胜了人类围棋手已经被说的太多了,举两个其他的例子,大概还是在前年的时候,我研究过一段时间的基于图像识别的文字识别技术,阅读了很多资料,做过一些尝试,发现很难将文字的识别率提升到可以接受的水平,以至于沮丧的认为电脑不可能战胜人脑,因为三岁的小孩就可以轻易的分辨出照片中的动物是一只猫还是一只狗,但是电脑却判断不出来。然而没过多久我就看到新闻,谷歌已经通过“深度学习”技术通过让程序大量的阅读图片(谷歌的数据量很大),使得程序已经可以自动发现在任意图片中的“猫”,而且这还建立在人类从来没有告诉他“猫”这个概念的前提下。就在前几天,谷歌又爆出新闻,通过观看BBC的电视节目,他们的程序已经“学会了”读唇语的技能,而且识别率已经远远高于人类的读唇语专家(从这一点可以看出,电脑一旦某个方面超越人脑,人脑就再也没有机会追赶了)。</p> +<p>这还只是ANI,随着时间的推移,科学家们肯定蠢蠢欲动,开始着手研究AGI(广义人工智能),通用的人工智能,也就是说在智能上各方面均能达到人类的级别,这才是真正意义上的人工智能,也是历代人工智能工作者梦寐以求的结果。</p> +<p>可是有个比喻说的特别好,说通用人工智能就像是一列高速前进的火车,我们站在站台上远远看着它飞速向我们奔跑过来,然而就在赶到我们跟前的那一刹那,火车并没有停歇,而是从我们身边呼啸而过,将我们远远的甩在身后。这个时候的人工智能就是所谓的ASI(超级人工智能)。</p> +<p>而且,据很多持悲观态度的分析人士(如本文所提到《我们最后的发明》一书的作者)所设想,从AGI到ASI的进化时间,要比从我们现在发展到通用人工智能要快的多,根本不是一个数量级,也许我们盯着屏幕眼瞅着我们发明的通用人工智能在短短几分钟内进化成为超级人工智能,然后,剩下的事情,就很难设想了,作者在书中提到了好多可能性,遗憾的是,没有一种可能是对人类有利的。</p> +<p>为什么呢,毕竟是人类创造了它啊?可惜的是,它并没有对创造它的人有什么感激之情,相反,它很可能不再依赖人类,根据自己的决策来处置人类(想想《黑客帝国》吧)。从情感上来说,人类肯定想控制这些智能,并天真的认为可以通过编程手段来处理机器的逻辑判断(这正是我们现在广大软件工程师每天要做的事情),可惜,了解“机器学习”的人都知道,正是因为“机器学习”的“模糊”(输入和输出的因果关系不是通过编程控制的,而是根据统计和概率学习得来的)特性,使得计算机能够自动的找到我们无法通过编程来找到的最优解。</p> +<p>还有一点,也是人类的一道防线,那就是“意识”,作为这颗星球的掌控者,人类骄傲的认为,“意识”是人类独有的东西,因为“意识”是对“思考”的“思考”(元思考?),所以我们认为人工智能再牛,如果没有意识那么也不过是个受人控制的机器而已。可是关于这一点,现在也有很多争论,首先我们自己是不知道意识是怎样诞生的,了解的很少,而且一旦深入研究就会跑到科学、哲学、宗教的汇合点,最后不了了之。</p> +<p>不过,还是有人做出了比较靠谱的设想,今年最火的没有之一的美剧《西部世界》就是一个例子,虽然“人工智能的觉醒”这个概念已经被很多电影和电视剧演绎的有点儿烂了,但是这个剧以及原著小说的关于“觉醒”的设想,让人细思恐极,原来人工智能可以在条件具备的时候完成“意识”的“自举”(Bootstrap?有点儿像拎着自己的头发把自己拎起来的意思)。有兴趣的话,可以自行去网上搜一下关于这个剧的影评,因为自己看可能看不太懂。</p> +<p>不过还是不要太悲观了吧,毕竟已经有越来越多的人意识到这个问题的重要性,也有人开始系统的研究如何通过技术的手段,在研发过程中遵循某种规范和约束来降低智能爆发带来的危险,希望这件事最终像当年的“千年虫”那样能够平滑过渡吧,但愿人类能与超级智能和平相处。</p>借助两页A4纸高效工作https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/Sun, 27 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/<p>我一直热衷于尝试一切能够提升工作效率方法。几年前我非常推崇一种叫“GTD”的时间管理方法,方法效果怎样暂且不提,反正作者在全球出书(Get Things Done,中文名称《搞定》)、做演讲赚了不少钱,国内也因此诞生了一大批以讲解GTD时间管理为主题的培训机构或个人,应该也有不少人取得了显著成果。</p> +<p>但是GTD在热了一段时间之后就销声匿迹了,我推测原因是该系统太复杂了,为了完整的运行这一 时间管理体系需要做大量的准备工作,要严格执行预先定义的工作流程,虽然该系统推崇最终能够达到“心如止水”的境界,但是太难了,好多人都停留在如何选择工具这个阶段,整天纠结选用什么样的工具(或软件)才能够顺畅执行流程,结果只能是越来越糟。</p> +<p>我在尝试了一段时间GTD之后也部分放弃了,目前只保留了其思想中的“收件箱”机制,即任何事情来了之后先纳入收件箱中,分出轻重缓急(按重要程度排序下一步行动应该是GTD和核心思想了,与《高效能人士的七个习惯》中所提出的“要事第一”是一个意思)再做出下一步行动。</p> +<p>可能是现代人都比较浮躁吧,后来又流行了一段时间的“番茄工作法”,这个方法主要是帮助你集中精力,具体方法大家可以网上搜索或者购买书籍来进行学习,实施起来还算比较简单,但方法能否有效很大程度上取决于你所做的工作是什么类型,如果你是一个比较纯粹的知识工作者,那么这个方法还是很管用的,每天都可以按部就班地消灭几个“番茄”。但如果你从事的工作经常需要沟通或总被外部信息打断,“番茄工作法”就无能为力了,因为一旦被打断,刚才的工作时间就算作废了,比较容易让人沮丧,所以我无法正常使用这种方法。</p> +<p>随着时间的推移,各种方法在不断进化和融合,在抓住要事第一、清空大脑、保持专注的核心思想指导下,每个人最终都能找到 适合自己的高效工作方法,我在近期就做了一些融合和改进,虽然还没形成方法论,但是根据我自己的体会来说,效果还是很显著,因为操作起来比较简单,所以我觉得可以推广使用。</p> +<p>首先,说一下所用到的工具,很简单,只需一支笔和两页纸(A4最好,如果没有也可以用记事本替代)。</p> +<p>第一页纸,是用于写晨间日志的,一天之计在于晨,这话一点儿也不假,大部分人每天最清醒的时候应该是在早晨起床到上午10点钟之前那一段时间,如果一天当中这一段时间得到有效利用,那么这一天的时间就不算浪费了。所以把握好这一段时间这一点最重要。</p> +<p>至于所书写的内容,没有具体的要求,最好是你脑子里当时想到的东西全部写下来,如果文字不足以表达,就用图画画出来,将你此刻烦心的、畏惧的、牵挂的、未完成的、已承诺的,反正只要能想到的,都可以写下来,这么做最大的好处就是可以有效缓解你的压力,而且很多事情在写出来之后就变得没那么麻烦了,你会突然发现灵感,然后顺着灵感找到解决的思路。尽量写满一页纸。写完琐碎的东西之后,你就可以对着这一页纸,仔细考虑当日的工作计划了,描出最重要的三个待办事项,从难到易进行排序(一天的工作应先挑最难的开始下手,这样会越干越轻松)。这样就算完成了晨间日志了,一般顶多占用30分钟时间。</p> +<p>第二页纸,用于记录工作日志,不是为了记录流水账,主要是为了总结和分析。在处理早晨给自己安排的任务时,可以用这张纸来进行梳理思路、分解目标,必要时也可以画图。还有一点儿比较关键,就是你要随时将新来的待办事项记录到这张纸上,因为你在工作的过程中随时会有电话或有人找你,你放下手头事情,除非来的事情是天塌下来那样重要紧急,否则你把这个事儿记录在纸上,继续你的工作。</p> +<p>工作中随时会出现一些灵感或者心得体会,也要及时记录下来。这样在结束一天工作的时候,你会发现基本上都能写满那第二页纸,收尾的时候,分析你的日志,将待办事项等扔进你的手机或电脑的日程表(这样就不会忘了),心得体会等可以归档到你的记事本、电脑,或者等待有时间把它孵化成具体的任务(比如写一篇文章、发起一个会议等等)。简单排序之后,标出你第二天要处理的最重要的事情。</p> +<p>接下来就简单了,循环执行一段时间试试吧,说不定你就会发现效率真的得以蹭蹭提升,以前的焦虑感逐渐降低甚至不见了。</p>磁带情节https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/Sun, 20 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/<p>你觉得经典的东西,其实只是你年轻的时候喜欢的东西罢了。</p> +<p>周日的下午,听说要下雪和降温,看不进去书,摆弄了一会儿电脑,关掉浏览器,干脆听会儿歌吧。听着听着突然就想到创建一个歌单,将我原来买磁带听的歌都找到存起来吧。</p> +<p>现在已经没有人再听磁带了,别说磁带,现在通过网络获取音乐这么方便,连CD也几乎绝迹了,当然据说现在仍然有部分人怀抱着黑胶唱片不放,但我没有经历过黑胶的黄金时代,从最一开始听的就是磁带。</p> +<p>在有MP3之前,听歌是一个很具有仪式感的事情,因为需要很多步骤(比把大象关冰箱里还麻烦),你得从你的磁带架子(或盒子)上认真挑选一盒你想听的,如果你的磁带很多,当你的手指划过一排包装或精美或粗糙的塑料盒时,你会陷入短暂的沉思,仿佛先将歌曲在大脑里播放一遍似的,然后你按开录音机的仓门,认清磁带的AB面,然后轻轻放进去,再合上。按下播放键,磁头划过空白会出现一些沙沙声。</p> +<p>虽然录音机也有快进的功能,但是一般很少用,因为跟CD和电脑的那种“非线性”切歌方式不同(一下就能下一首),磁带是线性的,想听下一首就得等待磁带一点点转过去。如果是随身听的话,为了省电就更不舍得使用快进的功能了,只能老老实实一首接一首听完。后来,在使用随身听的时候,我们发明了使用笔杆快速卷动磁带的方法,拿一个圆珠笔插在磁带孔上,甩动磁带使得磁带盒随着惯性迅速旋转,即可达到快进的目的,以至于我后来练就了直接用笔就能转到想听的任意一首歌的本领。</p> +<p>磁带的音质还是不错的,可能那个时候没听过数字音乐的缘故吧,从我的记忆来说,磁带特有的那种模拟电路温暖音色,要比现在的MP3强多了,即使现在的一些CD也比不了。有时候听久了,会觉得音质越来越差,这个时候如果不是因为那种质量特别次的盗版磁带的话,一般就是录音机的磁头脏了,解决办法很简单,拿一团棉花蘸上一些酒精(如果没有酒精也可用高度白酒代替),轻轻擦拭一下磁头就行了,保证立竿见影,声音一下子就亮了许多。有钱的人家会更讲究一些,会买那种专用的清洗带,长的跟磁带一样,但是里面装的不是歌曲而是空白的毛绒卷,走动的时候会自动将磁头擦干净(有点儿类似于后来的VCD清洗碟)。</p> +<p>我现在购买了网易云音乐的账号,所以即使是从网上下载的也算是正版音乐吧,现在有很多人不能接受听首歌还得花钱,觉得那些音乐人是不是想钱想疯了,可能他们都没有经历过买磁带听歌的日子吧,从性价比上来说,那时听歌可比现在贵多了,一盒正版磁带几十块,好一点儿的盗版也得十来块(要是算上通货膨胀的话,怎么着也得相当于现在的一百块吧,要是按房价算就更贵了)。一盒磁带一般也就容纳十来首歌,有些出版商为了多装几首歌,只得降低歌曲长度将每首歌都截取了一半放上去,或者干脆来那种四十首或八十首的大联唱(港台叫大串烧),这种听着就没劲了,一首歌刚唱几句就开始下一首了。</p> +<p>今年十一的时候,我回到村里的老家,想办法找到了我以前装书和杂物的柜子。无奈时间太久了,我现在只能翻出一些DVD、VCD和CD了,磁带一盒也找不到了,每想到此,心里都惋惜不已。</p> +<p>附:我创建的歌单(都是磁带时听的,后来买CD听的不算,每一首都听了不下百遍,唱K的时候全部不需要看歌词)链接 <a class="link" href="http://music.163.com/#/m/playlist?id=515310127&amp;userid=2998061" target="_blank" rel="noopener" +>http://music.163.com/#/m/playlist?id=515310127&userid=2998061</a></p>什么是BIMhttps://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/Sat, 12 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/<p>BIM这个词最近出现比较多,可能很多人听到过但是还不太了解它指的是什么,我稍微做了一些学习探索,希望能通过一些简短通俗的文字总结一下自己对BIM的认识。</p> +<p>BIM 的全称是 “Building Information Modeling”,这个词语是由美国AutoDesk(就是那个旗下有AutoCAD和3DMax的公司)公司首创,中文翻译过来叫做“建筑信息模型”。被定义成由完全和充足信息构成以支持生命周期管理,并可由电脑应用程序直接解释的建筑或建筑工程信息模型。 简言之,即数字技术支撑的对建筑环境进行全生命周期管理的信息模型(来自维基百科)。</p> +<p>狭义上来说,BIM指的就是一种以表示三维图形为主、面向对象、为建筑学有关的计算机辅助设计服务的数字化信息模型。从广义上引申来看,BIM是一种涵盖了整个建设领域包括一切和水、土、文化有关的基础建设的计划、建造和维修,以及城市规划,土木工程,交通工程等学科的全生命周期数字化设计技术。</p> +<p>虽然概念提出很早(大概上个世纪80年代),但是真正的作为建筑设计方法流行起来还是近些年的事情,在此之前,建筑设计领域仍然停留在CAD(计算机辅助设计)二维图纸的阶段。所以,基于BIM的设计算是一中新兴的建筑设计方法。</p> +<p>对于传统CAD技术的提升主要有如下几点:</p> +<p>1、全生命周期。一个工程从设计到施工,再到后期的投运和检修,都可以通过 BIM 进行全方位的设计和模拟。</p> +<p>2、三维可视化,所见即所得。传统的设计是基于二维图纸的,设计的最终效果往往只存在于设计人员的脑子里,随着建筑越来越复杂,仅凭想象是很难应付庞大的建筑结构的,而运用BIM技术可以使得整个项目过程(设计、施工、运行)都是可视化的,所见即所得。</p> +<p>3、各个环节的协同。设计工程庞大而复杂,往往需要各个部门紧密配合,传统的设计方式往往是结构、水、电等都有自己独立的图纸,给设计和沟通带来诸多不便,而BIM则从根本上解决了这个问题,大家使用统一的模型进行设计,具备更好的协调性,及早发现设计冲突。</p> +<p>4、方便进行数字化模拟。由于设计时采用面向对象的数据模型,带有丰富的设计参数,使用BIM可以方便的进行设计结果模拟,不仅包括常规的物理力学计算、用料统计,还可以针对节能、环境、应急、施工进度等进行高级 分析和模拟。</p> +<p>以上说了这么多优点,那么我们现在处于那个阶段呢,坦白说,国内的BIM目前仍处于起步阶段,甚至国内的《建筑信息模型应用统一标准》目前还在编制阶段,但是随着信息技术的发展和普及,国内的设计行业正在积极的尝试,很多信息化服务厂商(如恒华科技)都纷纷参与进来,一方面积极贡献标准化建议,另一方面整合升级自己的传统设计软件,全面贴合BIM理念。</p> +<p>最后附上一张图(图片来自谷歌搜索),概括了与BIM相关的软件分类,大家可以参考。</p> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-93e90a43a1f10575.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="Paste_Image.png" +></p>推荐一个剧https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/Sun, 06 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/<p>听说《黑镜》第三季出来了,激动不已,虽然早就不再舍得花时间刷剧,但是《黑镜》太特别了,忍不住花了半夜的时间连看了四集(以往的两季都是每季三集,但是这一季不知道为啥这么猛一次就放出来六集)。</p> +<p>几年前有本名叫《浅薄》的书,火了一段时间,作者在书中痛斥现在各种高科技带来的负面效应,互联网让我们越来越浅薄,失去了自我思考的能力,思想变得越来越贫瘠,只能靠不断寻求刺激来掩盖。</p> +<p>显然,《黑镜》的编剧们也意识到了,只是这些人的脑洞更大,并带有强烈的反乌托邦味道,随便看一集基本就能粉碎“高科技能够给人类带来幸福”这个幻象。</p> +<p>如果只是对迷信技术的讽刺也就罢了,让此剧如此出色和受追捧的关键还是在于对人性的探索和拷问,在不受技术限制(科幻嘛)的情况下,主人公时刻都徘徊在看似很爽(至少让我们羡慕)但其实又痛苦不堪的两种境界边缘,虽然英国人的口味有点重,比如第一季第一集里就要让他们的首相现场直播与一只猪发生不可描述的事情。比如给大家都装上智能眼球,然后通过技术彻底拉黑一个人(物理上的拉黑,关于他的声音和图像全部都被屏蔽)。</p> +<p>虽然都是幻想,不过还是带有对现实世界事情的映射,最新的这一季,据大家评论说感觉不如前两季精彩,但是我看了后感觉已经非常不错了,毕竟无论从剧情还是效果都高出同期剧集一大截,属于良心制作了。</p> +<p>新一季的第一集甚至科幻的都有点儿不像科幻了,如果拿掉一些不怎么影响剧情的科幻效果,看起来感觉跟我们现在生活的世界是一样的。故事中的人物无时不刻都在被电子化的社交圈所包围,每个人都靠别人给他点赞来获得认可,评分高的人受到的“尊重”就越多,有点儿像现在的信用体系,但是比较讽刺的是,这里的人们为了维持较高的评分已经变得失去了自己,带着面具生活,早已忘了坦白说话是什么滋味。</p> +<p>再说就有点儿剧透了,如果喜欢科幻的话,可以抽时间看看。</p> +<p>目前在这里还能看: <a class="link" href="http://www.bilibili.com/video/av6802900/" target="_blank" rel="noopener" +>http://www.bilibili.com/video/av6802900/</a></p>那些年,我用过的“终身免费”产品https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/Thu, 27 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/<p>浙江温州最大的网盘厂,360网盘,倒闭了,王八蛋老板吃喝嫖赌欠下了三点五个亿,带着他的小姨子跑了。。。。。。</p> +<p>我是在出差途中听到这个丧心病狂的消息,虽然以前就隐约觉得迟早会有这么一天,但是却没有想到它来的这么快。当时感觉强行被打脸,我可是经常见人就推荐这款产品的啊,文件夹同步功能比某度网盘云盘不知道高到哪里去了。</p> +<p>现在我的脑海里除了一边盘算如何下载我那费劲巴力传上去的一百多G数据,一边浮现出当年范厨师坐在轮椅上对赵本山说:“我要是再相信你就是二次上当。。。”的画面。</p> +<p>第一次有这种感觉是前些年谷歌关闭旗下的GoogleReader产品(一款RSS阅读器),这个产品我用了将近5年,可以说通过这个产品提供的阅读文章刷新了部分三观,但是谷歌在2013年7月毅然关闭了这个产品,不顾百万用户跪求不要关闭。从此以后再使用谷歌产品我都持谨慎悲观的态度,后来的事情也逐渐印证了这种观点&mdash;-谷歌是个喜欢随意关闭产品线的厂,项目说砍就砍。果然后来谷歌的glass、无人驾驶等项目都雷声大雨点小,在无人驾驶技术方面甚至被起步比他晚的厂商反超。</p> +<p>另一个大厂,微软,和谷歌随意关闭产品的习惯不同的是,微软喜欢改自己产品的名字,我最早的时候用过微软的MySpace(比qq空间可能还要早),在上面写了不少日志,后来微软不知怎的就把它的名字改为LiveSapce了,然后所有产品线都开始围绕Live展开,连注册个账号都要live.com的邮箱,结果,没过几年,不知哪位大师又给微软看了风水,全线产品又都开始围绕outlook.com展开了,live也被废弃了。</p> +<p>说到大厂,雅虎当年也算一个,当年给用户提供终身免费电子邮箱的时候,用户无不感恩戴德,好多账号都使用雅虎的邮箱进行申请,然并卵,雅虎的邮箱同样也在2013年关闭。看来所谓的“终身免费”,在互联网公司的眼里指的并不是针对你的“终身”,而是产品的寿命。</p> +<p>从个人感受来说,我是非常愿意为好用的产品付费,因为这符合市场价值交换的基本原则,有句话比较流行,叫“免费的,才是最贵的”。现在的互联网产品已经把用户给惯坏了,免费可能都不行了,恨不得倒找你钱才行,放眼望去,线上充斥 着免费的劣质产品,好的产品很容易就因为收费问题而被干趴下,像360云盘这么好的网盘产品(同类产品的几乎每一款客户端我都试用过超过1周,最终谨慎选择了360),绝对不是因为技术原因导致的关闭,我猜测真实原因可能也不是其在公告里说的“因为版权审查”,很可能是因为“钱烧完了”。不知道360网盘是否怀念当年将杀毒软件免费而干掉别人的日子。</p>玩游戏能学到什么https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/Sat, 15 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/<p>从计算机诞生的那一刻开始,游戏就一直是技术前进的推动力,无论是对硬件的压榨还是对算法的要求,很少有应用软件能够超越游戏的需求,一般来说,游戏软件所使用的技术总是领先其他应用软件一个世代,就连最近比较火的VR、AR技术也是首先从游戏开始的。还记得乔布斯大神说过:“全民娱乐是最终需求,一切技术最终都将为娱乐服务(大意吧,记不清了)”。</p> +<p>那么,除了放松身心、打发时间之外,好像找到正当玩游戏的理由了。</p> +<p>1、寻找灵感。我一直觉得应该在游戏中寻找产品的灵感,哪怕是最基本的交互设计或用户界面,同时期的游戏都能把传统软件甩好几条街,所以我们可以从玩游戏的过程中激发灵感,考虑我们的软件产品交互或界面有没有可以向游戏借鉴的地方。</p> +<p>2、推动技术。最先使H5火起来的还是基于网页的游戏,正是这些游戏先驱踏平了无数的技术坑,才使得当前基于H5技术的跨平台游戏引擎如此火爆,并进一步诞生了通用的应用软件开发平台,在使用这些平台或者制作同类产品时,必须明白,是游戏率先推进了标准化和硬件性能提升,才使得我们能够基于成熟技术制作跨平台软件。</p> +<p>3、学习技术。在享受游戏的乐趣之余,可以思考这些游戏的性能是如何实现的,现在互联网这么开放,不难寻找到相关的介绍资料,很多技术思路都可以借鉴,无论是终端资源的有效利用还是服务端高并发的基础架构,如果能满足游戏的要求,基本可以超越你的需求。</p> +<p>4、学习心理学。为什么我们都觉得玩游戏比工作要爽,闲暇时间宁愿掏出手机玩两把消消乐也不愿意写一篇技术博客?根本在于游戏的设计符合心理学中人们对正向激励的需求,大部分游戏都设置有精妙的积分机制,一方面鼓励你多玩多得,另一方面让你不由自主的愿意付出时间和金钱,都是因为你在这个过程中获得了及时的反馈和激励。这个层面我们在产品设计或运营的时候都可以借鉴,向那些游戏厂商学习。</p> +<p>5、学习知识。这个有些牵强了,但是也不是不可能,有些纯粹消磨时间的游戏就算了,但是确实有些有追求的游戏公司在制作的时候是出于寓教于乐目的的,比如我最近就在玩一款编程游戏(为什么下了班还要编程啊?!),通过几个简单的指令控制游戏中的小人完成任务,通过玩这个游戏我就很轻松的理解了大学里没有学会的汇编语言(或机器语言?),原来汇编语言里动不动就往寄存器里传输数据的意义就在于将输入通过某种操作变为输出,通过最简单的加减运算来实现复杂操作。</p> +<p>很多人尤其是学生家长非常抵制孩子们玩游戏,认为游戏就是破坏学习的毒品,但是事物都有两面性,如果合理的安排时间,不沉迷于游戏,而是在娱乐的同时能学习和思考一些东西,那么玩游戏也没什么大不了的,甚至应该得到推崇,至少每个软件工程师都应该在工作之余多玩一玩游戏,只有不断的反思自己的产品,才做出更出色成果来。</p>感受另一种创新https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/Fri, 07 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/<p>过节回了几天老家,亲朋好友团聚之余,感受到了一些变化,可片面代表当下农村对现代科技的使用情况,同时也更新了我对于互联网的一些认识。</p> +<p>1、移动互联网要比在城市所占比重大,人手一部智能手机,几乎没有使用PC上网的,网吧几乎销声匿迹,每个人都在低头看手机屏幕,即使是在干农活的时候。</p> +<p>2、上网不再是年轻人的专利,很多老人也都开始使用手机上网,并开通了社交软件账号,特点是对于网上传播的文字信息不具备过滤能力,只能被动接受,任何信息都认为是真实可靠的,并热衷于转发给身边的人。</p> +<p>3、对手机操作系统没有概念(当然手机操作系统以Android为主),就像现在大多数人仍然对web浏览器(IE、Chrome、火狐?)没有概念一样,很多人并不能区分Android和苹果的iOS,也不认为手机上安装App的是“软件”,而是代表了某种功能,比如聊天、吃饭、天气、新闻、搞笑好玩儿的事儿,这种认识其实很纯粹,我们平时的认知反而会因为专业知识导致偏差。</p> +<p>4、手机软件占比,沟通、娱乐类占比最大,全民娱乐的时代,以前只能通过看电视放松,现在普遍都盯着小屏幕了,微信里盛传各种自制搞笑小视频,虽然做工粗糙,但是认可度很高,我能感到里面的暗流涌动,很多在我们看来“一眼假”的东西却能够得到爆炸性的传播,仍然坚守“按套路”出牌的高大上公司指不定在哪儿被干翻。</p> +<p>5、利用社交软件做营销,利用社交圈子的传播性而策划的营销活动特别盛行,商家们都已经十分重视手机上传播的宣传推广信息,而电视、平面媒体的广告已经成为了辅助信息。已经爆发了不少专门帮助商家进行微信营销的团队,有些人利用技术手段仅仅通过制作一些转发工具、外挂工具等获得了巨额利益。</p> +<p>以上的观察虽然是主观认识,但是确实反应了一些事实,可以肯定的是,大家都在发力移动互联时代的创新,而且随着技术的推进,创新的杠杆将越来越长,能撬动的东西也越来越大,有时候真的需要将目光投向最不起眼的地方,你认为最稀松平常的事情,说不定有人已经准备掀起一场革命。</p>后端开发从PaaS到BaaShttps://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/Sat, 24 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/<p>鉴于我们在web产品开发过程中采用了前后端分离(也是广泛采用的新技术)的技术,前端开发与后端开发在约定完交互接口之后往往存在一定的开发时间差,也就是说移动端和页面程序已经开发出界面了,但是后端的接口还没提供好,导致调试困难。于是我们很自然的就想到一个点子,为何不制作一个服务专门用来生成供前端调试调用的“假”接口呢?</p> +<p>于是我们很快就选用了MongoDB作为数据库,基于nodejs开发了一个模拟各种数据增删查改的接口,符合RESTful标准,可以通过web页面随时增加你想要模拟的接口,除了没有业务逻辑之外,可以满足移动应用和web前端页面开发的数据模拟和接口访问,解决了前后端开发的时间差问题。</p> +<p>后来我进一步想了一下,为什么我们不能将这个服务增强,使之具有一定的业务扩展能力(比如使用js脚本来插入业务逻辑),并配上我们的基础服务(权限、流程、报表等),这样我们是不是就不用开发纯业务的后端程序了呢?</p> +<p>这个想法令我很兴奋,因为这就是传说中的云计算PaaS落地的一个体现,而且看起来像是一个伟大的产品的小时候,于是我就上网搜索了一下,看看有没有类似产品,结果令人欢欣鼓舞,原来Facebook早在两年前就投资了一家创业公司开始做这个了(名字叫Parse,有兴趣可以搜索一下),谷歌公司也收购了类似产品。国内也已经有人做了,而且据说还不错,比较出名的是LeanCloud,我看了一下已经是比较成熟的解决方案了。</p> +<p>在移动互联网飞速发展的今天,后端服务的开发需求量非常之大(当然很多风投老板至今还认为移动应用的开发工作量只是手机上面的那些界面,这使得他们数次掉进坑里),上面那些厂商就是看准了这个需求,开发了面向后端的PaaS服务,使得一大票创业团队不再为后台服务发愁,找几个app程序员专注于客户端的应用开发就行了。</p> +<p>云计算技术发展到今天,上层的软件即服务(SaaS)和底层的基础设施即服务(IaaS)发展的都特别好。一方面,软件即服务已经渗透到社会各行各业,很多在线服务已经成为了普通人生活中不可或缺的一部分(比如在线地图),另一方面,基础设施即服务也得到了广大开发者的认可,几乎每个上进的开发者都在互联网上租赁(或免费)有自己的虚拟服务器或存储服务。唯独处在中间层的平台即服务(PaaS)发展的不尽如人意,无论是国内的SAE(新浪)还是国外的谷歌的GAE(现在改名叫GoogleCloudPlatform了),用户都没有达到较大的规模。因为现有PaaS仍没有很好的提升后端开发的工作量,即使存在那么多的中间件,仍然需要大量的后端开发工作要做。这时候,上帝说:要有光,于是就诞生了BaaS。</p> +<p>BaaS(后端即服务)是指专为移动应用开发者提供整合云后端的服务。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储、账户管理、消息推送、社交网络整合等功能。</p> +<p>BaaS本质上来说是PaaS的一个细分领域实现,但是基本解决了后端开发问题。鼓吹者甚至扬言用一个云平台来解决所有互联网产品后端服务的需求。</p> +<p>想法有些激进,但是可以回顾操作系统的发展历史来借鉴。很久以前,所有的计算机都没有通用操作系统,那个时候的软件厂商提供给客户的软件是自带操作系统的,完全从硬件底层做起,一直到业务功能开发。直到后来有了通用的操作系统如(windows、linux等),才将这些软件厂商从底层解放出来,控制硬件的事情交给了操作系统,应用软件厂商专注于业务开发。</p> +<p>现在的情形跟当年的操作系统诞生时很像,很多厂商还在自己解决后端服务的开发,但是随着后端技术的越来越成熟,必然出现像当年微软这样的厂商彻底解决后端服务的问题。</p> +<p>所以现在还在编写后端业务代码的企业和技术人员,需要用发展的眼光来看自己的软件架构,业务逻辑逐渐向前端倾斜,底层服务围绕数据为中心,很有可能在未来的某一天后端开发(这里指侠义的业务逻辑开发)将淡出应用软件开发的领域。</p>不上网的假日https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/Sat, 17 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/<p>借假日之闲,重读了一遍《正念,此刻是一支花》。书中反复引用梭罗在《瓦尔登湖》中的描写,并无比推崇的说:“梭罗常常在自己的门前一坐数小时,什么也不做,只是观察、聆听,太阳在天空慢慢变换位置,光和影也在不知不觉中变换”,看得我“身不能至,心向往之”。</p> +<p>前天看了一个综艺节目,里面有一个小品,讲述了现代人对手机依赖成瘾的种种情形,虽然有所夸张,但是很贴合实际,尤其是里面主人公说出“你的世界不再是真实的世界,你被困在手机里了。。。”的时候,引起了很多观众的共鸣,包括我。</p> +<p>像我这么追求“知行合一”的人嘛,自然不能只发感慨,凡事都要有所行动,于是借假期的机会,我准备初步尝试一下“不开电脑、少玩手机”的思路,体验一下互联网和各种资讯之外的世界还剩余什么。</p> +<p>如果有幸,看看能否达到梭罗所言:“刚才还是清晨;看哪,现在已是黄昏,一日之中几无可念之事。。。”的境界。</p> +<p>向来都是“买书如山倒看书如抽丝”,一旦关掉电脑和浏览器,突然就有时间看书了,发现如果真能静下心来认真阅读,平时买的那几本书根本不够怎么看的,随便翻看一个上午就能看完两本,而且还有富裕,看来以往所推脱没有时间实在是瞎扯,以后可以考虑安排出固定时间读书,尽量不要利用碎片时间阅读,大段时间最佳。</p> +<p>留出时间陪孩子玩耍一下感觉也是不错,除了打扫卫生之外,我跟金妍一起练习了钢琴的哈农指法,我早已手指僵硬伸展不开,练习时总不能合拍,屡次遭到金妍批评,但还是能感受到全身心投入到一件事情时的那种忘我,虽然持续的时间不长。</p> +<p>上次这么无聊的时候,我跟金妍一起,拿着铅笔和画板,把客厅里的物品几乎画了一遍,这次我又想到前些年买来一直未使用过的《秘密花园》绘本,可以尝试一下了。认真挑出几种颜色的彩铅,在餐桌摊开绘本,开始仔细描绘,确实是个锻炼耐心的工作,俩人一起涂了半个多小时才描了不到半页纸。</p> +<p>做以上事情的同时,开始感受到信息枯竭的焦躁,但是忍住了各种冲动(比如说查收邮件、上网、编程),看书、听音乐、吃东西交替进行,但是我突然想到了另一件事情,我何尝不能练习一下“冥想”呢,据说乔布斯就是经常冥想然后才保持较高的创新力的,而且是个放松自我的绝佳途径,这个简单,我想。</p> +<p>往沙发上一坐,闭上眼,“尽量无可念之事”我想,那是不可能,各种思虑此起彼伏,根本无法安静,我于是爬起来,打开书,像阅读说明书那样,查看“如何放松四肢,将注意力集中在自己的呼吸上,相像自己是一座山。。。。。。”</p> +<p>等我醒来时发现自己实际上睡了两个多小时,这也算是间接达到了“刚才还是清晨,现在已是黄昏。。。”了吧。</p>人工智能时代的“情商”https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/Sat, 10 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/<p>最近“人工智能”比较火,谷歌的阿尔法狗战胜了围棋大师,IBM的华生博士轻松赢得了国外的“幸运52”和“开心辞典”,苹果也准备推出“人工智能即服务”的云服务,有种“忽如一夜春风来,千树万树梨花开”的味道。</p> +<p>毫无疑问地,未来的社会,“人工智能”将会成为中流砥柱,替代一大拨人。到那个时候,与我们打交道最多的,可能就不是人了,而是各式各样的机器,出门打车可能是无人驾驶,餐厅吃饭可能是自主点餐,“为人民服务”的各种窗口背后可能也不再是一张冷冰冰的脸,而是通过后端服务API支持的人工智能界面。</p> +<p>一厢情愿地推测,这可能会促使一些变化,人与人之间的联系可能跟以前不再一样,无论是沟通还是协作,可能不再像现在这样复杂。我们可能会从复杂的人际关系中得到解脱,从而获得更多的精力来做自己想做的事情。</p> +<p>到那个时候,我们可能需要重新考虑什么是“情商”。</p> +<p>“情商”的重要性已经毋庸多言,非得要解释一下什么是“情商”的话,大概就是“体会别人感受的能力”吧,关于“情商”有句很直白的话,叫“智商高爽自己,情商高爽别人”。</p> +<p>大概“情商”高的人更能让别人舒服吧,所以现在特别推崇这个,如果去图书馆的话,大概有整架子的书摆在那儿教你如何提高“情商”,教你如何让他人“更爽”。</p> +<p>但是当技术推动社会变革,人工智能得到普及以后呢,到那个时候,我们需要什么样的“情商”?</p> +<ul> +<li>我们可能需要更多的考虑如何利用发挥机器的效率,而不是委婉的告诉机器他做的不好但是值得鼓励。</li> +<li>机器带来的效率提升使得更多人有了更多的空闲时间,而利用这些时间学习或者干别的,更能拉伸人与人之间的差距。</li> +<li>人更要追寻自己的内心,驱动自己做些有创造力的事情,否则被机器取代是迟早的事儿。</li> +</ul> +<p>人除了跟人打交道之外,可能会跟更多的“机器”打交道,需要懂得机器的规律,思考方式也要发生变化,放弃那些人类不擅长的事情,才能更好的利用机器。就算是人工智能,也没有创造力,不能探索未知的问题,所以那个时候,我们要拼的可能就是创新力,而不是“让别人爽”的能力了吧。</p>秋天的田野https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/Sat, 03 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/<p>我记忆中关于秋天的美好全都在田野里。</p> +<p>记忆里的秋天是收获的季节,小学的课本里就有课文专门描述这个季节的美好:“高粱涨红了脸,稻子笑弯了腰”,我只记住了这一句。</p> +<p>对于几岁的孩子来说,农忙的事情不用操心,即使去地里也是以撒欢为主,虽然欣赏不来万里无云的晴空和一片金黄的丰收景色,但是可以吃啊,到处都是好吃的。</p> +<p>有一种野浆果,具体在生物书上该叫什么名字,我也不知道,我们老家那儿管它叫“香不溜”。长在秋天的庄稼地里,枝叶也不茂盛,不太容易被发现,如果不注意的话,很难跟其他野草棵子区分出来。但是果实极为好吃,酸中带甜,还伴有浓浓的香味儿,是我小时候能吃到的最好吃的“水果”。遗憾的是,由于会影响庄稼生长,这种东西一般都会被作为野草被拔去,到了收获的季节,能够躲过重重除草工作并坚持结果儿成熟的可不多,也就是说,这种果子不会天天遇见,偶尔能吃到一颗就撞了大运了。但正是这种稀缺性使得它吃起来的味道更加美好,如果能碰到熟透的,当然最好,碰见了半生的,也会迫不及待地吃掉,如果恰好碰上刚结果还没长熟,我一般是先记住位置,然后天天去看,等到成熟了再去吃(前提是没有被别人捷足先登,这事儿时常发生)。不过小时候下地的时间并不多,我吃香不溜最大的供货源还是来自于我的爷爷(从地里给我带回来的),别的记不起来了,只记得爷爷下地回来我跳起来掏他的口袋,希望能从里面找到几颗香不溜的情景。</p> +<p>还有一种野生的“瓜”,想象一下,把西瓜按照比例缩小50倍,就像一颗玻璃球那么大,但是外观完全一样,只不过皮儿是软的,土名儿叫“马炮”。瓜秧漫长,顺着玉米杆的根儿生长,跑太快如果不注意的话还会被绊倒,上面结了成串儿的果实,虽然吃起来味道差一些,好在随处可见,就算是不吃也能拿着玩耍,小圆球可以拿来做各种有意思的游戏,就算是不做游戏,把马炮放在地上用力一踩,也会卟嗞一声爆炸,每个人脸上都笑开颜。</p> +<p>以上说的都是可以生吃的,对于地里刚刚成熟或即将成熟的庄稼来说,吃起来往往需要加工一下。</p> +<p>说是加工,其实也没那么复杂,顶多就用火烤一下。秋天的地里最不怕火,有成堆的秸秆和叶子可以作为燃料,在地里点燃后还能作为肥料,如果能顺便烤一下吃的,真是一举两得。</p> +<p>大豆不能等到完全成熟再烤来吃,那样就太硬了,最好是在豆荚还青青的泛着一点儿黄的时候直接连根拔掉,然后整棵整棵的放在火里,到不了一根烟的功夫,香气就从火堆里飘出来了,这个时候最好别嫌烫手,赶紧抓起来,剥开豆荚,将还正在冒着热气的青豆一把一把的放在嘴里,香的保证你忘了所有的烦恼。</p> +<p>花生和红薯,饿了的时候,直接从地里扒出来就可以吃,但是生的吃多了对肚子不好,所以一般也是烤熟才吃,不过吃起来就没那么方便了,一般费的功夫要稍微大一些。尤其是红薯,不能用大火,否则皮焦骨头生,表皮都黑了,里面还是生硬的。最好整块扔在刚烤完青豆的火堆里,不用搭理它,先去玩会儿别的,等到天快黑的时候,再从灰烬里将红薯慢慢扒出来,熟透的红薯绵软可口,甜的让人掉牙。现在大街上卖的烤红薯闻着很香,吃起来比起我们在地里吃的就逊色不少了,一方面可能是因为现在嘴刁了,另一方面估计也跟小时候吃红薯之前那漫长的等待有关。</p> +<p>说了这么半天吃的,好像跟想象中金色的画卷不太一样,但是,秋天的田野是大自然对于没有零食可吃的农村孩子最好的馈赠。。。。</p>Docker环境在windows系统下的安装与配置https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/Sat, 27 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/<h1 id="背景">背景</h1> +<p>配置开发环境是目前我们开发团队在进行开发工作之前的重要工作,对于需要使用我们自己封装的开发框架的java web程序员来说更是如此,一般来说需要配置jdk、mysql、tomcat、maven等一系列基础环境,如果需要使用我们现有的开发框架,还需要配置开发工程的模板、基础服务的访问地址、统一的环境参数等等。这些工作做起来比较繁琐,即使按照开发文档一步一步进行也容易出现差错,而且较为耗费时间。</p> +<p>Docker容器技术的出现使得这一工作得以改进,通过一段时间的研究,我们的底层框架开发人员将以上环境全部使用Docker容器技术制作成为完整的镜像,使得业务开发人员不必再关心这些琐碎工作,只需通过git下载我们的工程模板,通过执行Docker命令自动在本地完成开发环境的构建。</p> +<p>然而由于docker是一个较新的技术,仍有很多开发人员没有接触过,上次我发的文章对于环境的配置描述的并不详细,这次专门针对windows下的开发者如何配置docker环境做一次讲解。如有必要,我将录制专门的视频来讲解。</p> +<h1 id="认识docker">认识Docker</h1> +<p><a class="link" href="https://www.docker.com/" target="_blank" rel="noopener" +>Docker</a>是一种容器技术,可以在操作系统中隔离出若干个独立的程序运行环境,这些环境既可以共享宿主机的资源,另一方面他们之间相互独立,互不影响,也不会对宿主机的环境产生影响。与虚拟化技术不同的是,Docker比较轻量级,容器(隔离运行环境)的启动和销毁都比较快,这些运行环境可以像现实世界中的集装箱那样,打包成一个一个的镜像,同样的镜像在不同的Docker环境中部署运行将会得到同样的结果,就像同一首歌在不同的播放器播放那样简单。</p> +<p>Docker的出发点是将现在日趋复杂的web应用系统部署变得像播放唱片那样简单,但是它能做的却远不止于此,如果使用得当,我们将可以很容易实现“开发”、“测试”、“生产”环境的完全一致(这在以前是十分困难的),程序员以后也许再也说不出“这功能在我这儿好使”这样的话了。</p> +<p>作为开发者,如果认真思考过以上的问题,当遇到Docker这种容器技术时,应该很容易就想到针对自己工作的改进方案,并且加以利用。比如如果想尝试某一个新技术,以前可能需要在自己工作的操作系统上进行安装,不但配置麻烦,而且存在将自己的系统弄坏的风险(很多人还爱重装系统),现在不同了,只需要下载对应的镜像文件,然后启动容器,即可体验。无论是golang、node、java、python这些程序语言,还是spark、wordpress、tomcat、mysql这种应用环境,都已经有人封装好了即开即用的镜像,随时可以体验,而且用着不爽可以随时清理。</p> +<h1 id="在windows环境下的安装">在Windows环境下的安装</h1> +<p>如果是在Linux系统下干活,则比较简单,因为Linux已经实现对Docker技术的内核级支持,CentOS的软件仓库自带了Docker最新版,可以直接通过命令安装使用。</p> +<p>对于Windows来说,稍有些困难,但是目前也不是问题了。首先需要看一下你的Windows环境,分两种情况,一种是Windows 10 64位专业版,一种是其他版本(比如很多人仍然推崇的Win 7)。前者可以直接支持安装Docker原生版,性能最好,体验最佳,后者只能使用Docker官方提供的一种过度技术(Docker ToolBox),这种技术不得不依赖Oracle的Virtualbox以在你的系统里创建一个虚拟机用以模拟Linux运行环境,好在封装的比较好,基本可以忽略这个虚拟机的存在,只需专心使用Docker即可。</p> +<h2 id="在windows-10-64位专业版的安装">在Windows 10 64位专业版的安装</h2> +<p>这个最简单,需要确定两个基础环境:</p> +<ul> +<li> +<p>你的CPU支持虚拟化(一般都支持,如果在操作系统中没看到,则可以手动到BIOS里打开,如果实在不支持,换台新的电脑吧),具体可以通过任务管理器查看,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-1146db9464f3f6e7.jpg" +width="646" +height="593" +loading="lazy" +alt="cpu.png" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="261px" +></p> +</li> +<li> +<p>你的操作系统需要开启Hyper-V,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-77decb38e7ee2063.jpg" +width="767" +height="601" +loading="lazy" +alt="hyper-v.png" +class="gallery-image" +data-flex-grow="127" +data-flex-basis="306px" +></p> +</li> +</ul> +<p>然后到<a class="link" href="https://download.docker.com/win/stable/InstallDocker.msi" target="_blank" rel="noopener" +>官方网站下载安装包</a>直接安装即可,有时候可能存在网站被墙的情况,也可以到我上传的网盘里下载,<a class="link" href="https://yunpan.cn/cMRZNp6BaXeEF" target="_blank" rel="noopener" +>链接在此</a> <a class="link" href="https://yunpan.cn/cMRZNp6BaXeEF" target="_blank" rel="noopener" +>https://yunpan.cn/cMRZNp6BaXeEF</a> 访问密码 80e6</p> +<h2 id="非windows-10-64位专业版无法使用原生docker的安装">非Windows 10 64位专业版(无法使用原生Docker)的安装</h2> +<p>这个稍微麻烦,也需要确定两个基础环境:</p> +<ul> +<li>你的CPU支持虚拟化</li> +<li>你的操作系统需要关闭(注意是关闭!)Hyper-V</li> +</ul> +<p>然后到<a class="link" href="https://github.com/docker/toolbox/releases/download/v1.12.0/DockerToolbox-1.12.0.exe" target="_blank" rel="noopener" +>官方网站下载安装包</a>,如果网站被墙,可以访问<a class="link" href="https://get.daocloud.io/toolbox/" target="_blank" rel="noopener" +>这个地址</a>,也可以到我上传的网盘里下载,<a class="link" href="https://yunpan.cn/cMSaWneaYPE5K" target="_blank" rel="noopener" +>链接在此</a><a class="link" href="https://yunpan.cn/cMSaWneaYPE5K" target="_blank" rel="noopener" +>https://yunpan.cn/cMSaWneaYPE5K</a> 访问密码 c8fa</p> +<p>安装过程无特别之处,需要注意的是,如果你的系统内没有安装过Oracle Virtualbox,安装程序会自动给你安装一个,不用理会,直接一直点击“下一步”即可。安装完成后直接点击快捷方式“Docker Quick Start”即可,如果是第一次运行,将会耗费一些时间(因为需要创建虚拟机),在这个过程中,系统可能会弹出若干次UAC提示让你授权,果断点击“同意”即可。</p> +<h1 id="环境的配置和使用">环境的配置和使用</h1> +<p>安装完成之后,就可以随意使用了,但是,受国内网络环境的影响,还有一些需要调整,因为在国内访问国外的镜像库(docker默认的那个)比较慢,一般镜像又都比较大(动辄几百兆),所以我们还需要配置一个国内的镜像仓库,推荐DaoCloud或者阿里云的,这里以阿里云举例。</p> +<h2 id="windows10下的镜像仓库配置">Windows10下的镜像仓库配置</h2> +<p>原生的Docker配置比较简单,官方还提供了可视化的配置界面,操作步骤如下:</p> +<ul> +<li>右键点击系统托盘的Dcoker图标,选择Settings</li> +<li>进入Docker Daemon选项,在右侧窗口填入镜像仓库的地址(可以自行去阿里云申请,我这里有一个示例)</li> +<li>示例如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-0794a163a8b70d6d.jpg" +width="826" +height="493" +loading="lazy" +alt="镜像仓库.png" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="402px" +></li> +</ul> +<p>配置完成后,在命令行窗口执行一个拉取镜像的命令(<code>docker pull tomcat</code>)试试看,会发现速度杠杠的。</p> +<h2 id="dockertoolbox镜像仓库的配置">DockerToolbox镜像仓库的配置</h2> +<p>这个略微麻烦一些,不过还可以接受,需要在命令行进行操作:</p> +<ul> +<li>先执行这个命令(镜像地址可以自行替换)<code>docker-machine ssh default &quot;echo 'EXTRA_ARGS=\&quot;--registry-mirror=https://xks740zc.mirror.aliyuncs.com\&quot;' | sudo tee -a /var/lib/boot2docker/profile&quot;</code></li> +<li>再执行这个命令 <code>docker-machine restart default</code> 会重启Docker虚拟机</li> +<li>然后执行命令<code>docker-machine ssh default</code> 即可进入docker命令行环境了</li> +</ul> +<h2 id="关于dockertoolbox的特殊之处">关于DockerToolbox的特殊之处</h2> +<ul> +<li>在容器中暴露的应用端口,需要注意,他的访问地址不是你的主机localhost,而是一个虚拟机的ip地址,一般为192.168.99.100,如果你在容器中跑起来一个web程序并且暴露了8080端口,那么想在外面访问的话,地址为http://192.168.99.100:8080 ,如果是win10下的原生docker就会没有这个迷惑,直接localhost了。</li> +<li>共享宿主机的文件给容器,需要注意,我们在使用容器时,一般会通过挂载卷的形式将系统的文件共享给容器使用,对于DockerToolbox来说,它默认给你设置了系统盘的User文件夹具有可以挂载共享文件的能力,也就是说,你需要使用挂载卷的时候,必须确保文件在这个根目录之下(比如放在C:/Users/xxx/Dcouments/xxxx)。 +如果是window10系统的原生docker技术则可通过图形设置界面完成,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-017b645406d8ced4.jpg" +width="826" +height="493" +loading="lazy" +alt="share.png" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="402px" +></li> +</ul>由量子卫星想到的https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 20 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/<p>前两天量子试验卫星的成功发射,让我想起一些事情。</p> +<p>当年,大约是十九世纪末期,全世界知名的物理学家集中在一起开paty,庆祝物理学所取得的伟大成就,其活动的组织者自信的站在台上宣布,物理学的大厦已经建成,基本的体系架构已经日趋完美,未来对于物理学已经基本没啥可研究的了(“只剩下对大厦的装修了”),唯一的不足就是,在展望未来时,飘在大厦上还存在两朵乌云,这两朵乌云就是:1、光的波动;2、能量的均分;</p> +<p>然而,谁都没想到的是,正是这两朵乌云,最后彻底摧毁了物理学大厦,使得一切不得不重新来过。最终诞生了量子力学。</p> +<p>我们想当然的认为,数学是对现实世界的高度抽象,完美的表达了现实世界,但是随着研究的深入,我们逐渐发现,“现实”比我们想象的要复杂的多。</p> +<p>第一个问题是粒子的运动。通俗的来说,数学上的定义,两点之间有无限多个点,从A点到B点,必然经过AB这条线段上的所有点,这在宏观世界中是显而易见的,可是在微观世界,物理学家彻底蒙圈了,他们发现原子内的电子,从A点到B点的时候,完全可以不经过“中间”,而是忽然“跳跃”到了B点,也就是说,粒子不再是像公式中描述的那样平滑移动了,而是无法预测他们的轨迹,他们可能突然出现在他们愿意出现的位置。</p> +<p>第二个问题是量子纠缠。这个问题好复杂啊,还是简单来说吧。科学家通过不断捣鼓发现,处于量子纠缠态的两个粒子,无论相距有多么遥远,当你改变其中一个粒子的状态时,另外一个粒子的状态立即发生改变,这个信息传递的速度是超过光速的(如果真的存在信息传递的话)。现在科学上只能证明这种现象的存在,但是无法解释这是为什么。</p> +<p>以我浅薄的理解(我在刷牙沉思录中也提到),这其实进一步证明了我们所处的世界是一个“幻象”,我们可能就是生活在一个“某种超级智能”创建的虚拟世界,就像我们创造的游戏世界一样。</p> +<p>为什么呢,建设在这个“虚拟世界”的假设之上,首先是我对第一个问题的理解,粒子之所以不能平滑移动,说明人类的微观探索已经到达这个“虚拟世界”的“分辨率”极限了。熟悉计算机的人都了解“分辨率”这个概念,我们在程序中绘制的“点”、“线”、“面”最终显示到屏幕上的时候是需要“栅格化”的,因为显示器有物理分辨率,两个里的非常近的点在显示器中的显示可能就是在一个像素上,那么这个时候处在我们的程序中的“物理学家”也会蒙圈地发现,从A到B是“一下子跳过去的”。</p> +<p>第二个问题,为什么两个粒子的状态会如此的变化一致,而且变化的速度超出了光速?答案就是,这根本就是一个粒子,也就是说,无论相聚多远,他们的“本体”就是一个,类似于我们程序中的变量地址,无论这个变量的值显示在哪里,它在内存里只有一份,所以一旦发生变化,你在各地看到的结果都是一样的。这就好像我们最近在看里约奥运会的直播,赛场上的球的运动轨迹,无论我们在北京看电视屏幕,还是在纽约看电视屏幕,我们看到的都是一样的运动轨迹,而如果我们不知道这是来自于同一场直播,那么我们就像量子科学家对这两个处于量子纠缠态的粒子那样,感觉到很奇妙,为什么他们的运动状态这么一致呢?</p> +<p>金刚经有云:“凡所有相,皆为虚妄”,不知与量子物理有没有关系。</p>怎样成为一个无趣的人https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/Sat, 13 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/<p>我的偶像,王小波(一个会写小说的程序员)曾经说过(歌词大意吧,记不清了):此生梦想不过是遇见一些有趣的人,经历一些有趣的事儿。上周有篇讲解关于如何成为有趣的人的文章还比较火,承蒙QC抬爱,还在朋友圈艾特了我,实在惭愧。我觉得,成为有趣的人挺难的,但是成为无趣的人确很简单,我可以“谈谈方法”。</p> +<ol> +<li> +<p>放弃爱好。成年人的压力很大,所以要赶紧放弃那些幼稚的爱好,把那些能够从本质上给你带来快乐的东西都抛开,然后你就有精力去做那些让这个世界变得更无趣的事情了。</p> +</li> +<li> +<p>做事前先衡量投入与收益比。要知道,无趣的人的时间通常很宝贵,所以千万别做那些投入与收益不成比例的事情,要学着用功利(别查了,这是一个中性词)的心态去判断事情的重要性,哪怕是读本书也要先评估一下是否对自己有利、能否在自己做那些无趣的事情时产生作用。</p> +</li> +<li> +<p>做“有意义”的事情。身为一个无趣的人,千万不能做那些“毫无意义”的事情,比如浪费时间去考据鸡汤文学的发展史、分析周杰伦的歌词里是否表达过对蔡依林的好感、花时间研究vim的配置等等。你的时间应该全部用于做那些“有意义”的事情,要随时准备奋斗,脑子里要随时浮现那些成功人士的奋斗事迹,从而去激励自己,要发誓看到洛杉矶的每一个凌晨,不能停歇。</p> +</li> +<li> +<p>不看“闲书”。虽然说开卷有益,但是你最好还是多读工具书吧,去读那些别人总结好的精华,最好是全是答案的东西,脑洞大开的小说实在是浪费时间,人的大脑容量有限,还是装那些更有用的东西吧,如果你看书的话,尽量别看“闲书”吧。</p> +</li> +<li> +<p>拒绝新鲜事物。向当年被李斯焚书坑儒的那些老家伙们多学习,守住信条,老祖宗都没做过的事情,千万别做。</p> +</li> +<li> +<p>消费,而不是创造。消费那些有趣的人创造的东西,别想着自己去做些东西,反正你节省的时间和金钱让你可以有资本这么做。</p> +</li> +</ol> +<p>如果以上这些你都做到了,请受我一拜,然后可以去死了。</p>如何给项目写一篇合适的readmehttps://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/Sun, 07 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/<p><img src="http://www.readmeonline.com.au/images/readme_head.jpg" +loading="lazy" +> +很多人忽视这个说明文档,往往给自己的项目工程建立一个空readme文件或者在里面随便写几行不清不楚的文字,这样非常不利于代码工程的后期管理,尤其是对于有团队协作的项目,即使是个人项目,考虑到后期可能要给别人用,写一份合适的说明也十分必要。</p> +<p>现在我们的项目工程已经全部迁移到gitlab中了,大家使用git工具管理 自己的代码版本已经比较得心应手,但是仅仅使用git管理代码并没有发挥出gitlab的全部功能,我上次也提到了更好的使用gitlab的几个技巧,这次详细说一下如何给自己的项目写一篇readme。</p> +<ol> +<li> +<p>在自己的项目代码的根目录中建立一个readme.md文件,注意扩展名为md,这样gitlab就可以自动识别并在这个项目主页上自动渲染(将源码翻译成html)这个文件了。</p> +</li> +<li> +<p>学会使用<a class="link" href="http://www.jianshu.com/p/q81RER" target="_blank" rel="noopener" +>Markdown</a>语法,充分利用文档的“插入图片”、“嵌入代码”、“标题分级”、“超链接”等功能,将内容“富”起来,尤其是图片和超链接,可以弥补文本文件表达的不足。</p> +</li> +<li> +<p>开头的简介很关键,readme文档的主要意义在于向读者描述你这个项目做了什么,运行在什么环境,如何使用,所以在文档的开头首先要简要介绍这个项目的存在意义,为什么要做这个,主要解决什么问题,运行在什么环境,如果需要与别的项目配合,那么你的项目处于什么样的位置。</p> +</li> +<li> +<p>必备信息,由于是开发工程,所以很多信息是必须要在文档中说明的,主要有:</p> +<blockquote> +<ul> +<li>开发编译和系统运行的必要参数</li> +</ul> +</blockquote> +<ul> +<li>项目中的文件和目录结构信息</li> +<li>编译或安装步骤说明</li> +<li>使用示例</li> +</ul> +</li> +<li> +<p>扩展信息,以上是传统的readme文档的套路,对于我们的软件开发工程(私有的非开源项目),我个人认为可以将readme稍作扩展,使得参与这个项目的人员能够在协作上更加顺畅,主要有:</p> +</li> +</ol> +<blockquote> +<ul> +<li>项目的业务范围,可以理解为项目需求的简化索引,具体的需求可以链接到其他的Markdown文档</li> +</ul> +</blockquote> +<ul> +<li>项目的流程图和架构图,可以理解为设计文档的索引,具体内容也可以链接到其他Markdown文档</li> +<li>版本信息,如果有发布版本,则持续更新版本的发布记录,说明每次发布的重要更新项</li> +</ul> +<p>总之,文档的重要性不亚于项目代码,简洁有效的文档是一个成功项目的必要条件,在这个到处需要团队协作(或本地或远程)的时代,程序员想要让自己的项目得到更多的支持,发挥更好的作用,必须养成给编写技术文档的习惯。那么,先从一份能拿得出手的readme开始吧!</p>好吧,现在可以用win10了https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/Sat, 30 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/<p>win10系统的升级推送大概烦了我们半年时间,微软为了实现10亿装机量的目标,到最后甚至丧心病狂到向国内的流氓软件厂商学习的地步(取消按钮都不提供了),据说现在好像达到了大概3亿的装机量。</p> +<p>去年年末当win10第一次推送更新时,我第一时间进行了升级,然而在使用了不到一个星期的时间,我就果断返回到win8.1系统了,因为当时的体验实在是太差了,各种不兼容,系统启动速度和响应速度都变得很慢。</p> +<p>直到上周到了win10免费推送的最后关头,于是就再次抱着试试看的态度将我的家用电脑进行了升级,结果出乎我的意料,经过了半年的不懈努力,现在的版本已经稳定可用了,随后我便将我所有的windows系统都进行了升级,全面进入win10时代。</p> +<p>普通用户的使用体验就不再赘述,比如新增的小娜助手等等,这些功能稍微方便一些,但是比win8.1不算是革命性更新,作为一个软件开发者,主要有如下功能比较让我心动:</p> +<p>1、直接执行Linux命令行程序。微软将其称为「Windows 下的 Linux 子系统」 (Windows Subsystem for Linux),据说这是一项全新的技术,并未采用虚拟化手段,也不是交叉编译的技术,而是直接将Linux系统调用映射为原生的Windows系统调用,类似于Linux平台下的Wine(在Linux下运行Win程序,唉,大家这样累不累啊),这样一来既可以体验windows良好的桌面环境,又可以使用Linux系的命令行,可谓鱼与熊掌兼得了。</p> +<p>2、Docker开始原生支持Windows10(64位),在此之前要想在Windows下体验Docker容器技术的话,必须安装DockerToolbox(基于VirtualBox虚拟机的模拟环境),现在 则可以直接基于Windows原生自带的Hyper-V技术使用Docker了,虽然效果有待观察,但是相比基于VirtualBox虚拟机的环境,性能方面应该能有所提升。</p> +<p>3、Windows Hello 生物识别技术,虽然需要特殊的硬件设备支持(一种带深度探测的摄像头,估计会逐步普及),登录系统或网站只需要刷脸就行了,据说识别率还是挺高的,但是女生如果化了妆,有可能无法识别。</p> +<p>总之,虽然一开始是拒绝的,但是经过这么长时间的升级,通过这几天的使用体验,我认为现在可以升级到win10了。</p>gitlab的若干使用技巧https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/Sat, 23 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/<p>gitlab是一个开源的git服务软件,与大名鼎鼎的github所提供的功能类似,适合企业或团队搭建属于自己的在线git仓库。</p> +<p>近期我给自己所在的开发团队也搭建了一个gitlab,经过一段时间的试用,反应效果良好,具备发展成为自有开发社区的潜力。摸索了若干的使用技巧给初使用者:</p> +<p>1、尽量使用ssh协议访问仓库。gitlab默认给仓库提供两种访问方式,一种是https,一种是ssh,前者使用简单但是遇到文件较多或较大时容易出现问题(由于HTTP协议导致),后者则是配置上略复杂但是一旦设置好一劳永逸,可以免密码登录。</p> +<p>2、利用分组(Groups)管理权限,有时候项目比较大,往往一个项目下包含多个开发工程,如果分别给参与这些工程的人员进行授权的话,比较繁琐,而利用Groups分组的功能,可以将若干个项目成员放入同一个分组,这样此分组的git工程将自动继承分组的权限设置,只需要设置一次即可,如果有特例仍然可以在具体的git工程下进行特殊设置,比较灵活。</p> +<p>3、善用Markdown写文档,每一个工程下面都应该有一个以readme.md命名的markdown格式文档,用于详细说明这个工程的信息,可以图文并茂,超链接到其他的文档,以及包含代码片段并进行语法高亮,gitlab系统会自动在该项目的主页中渲染这个文件,这样当别人第一次进入这个项目时就可以迅速了解这个工程了。</p> +<p>4、利用评论(comment)进行代码评审(code review),每当有人进行了提交之后,在系统的信息流上都可以看到这个提交的具体改动,作为项目技术负责人可以及时的了解提交情况,并针对此次提价的代码修改内容进行评论,可以细化到每一行,评论的信息系统会自动发送邮件给相关负责人,可以重复利用这个特性来做代码评审。</p> +<p>5、保护master分支,git工程的master分支一般比较重要,可以通过设置将master分支保护起来,使得只有具有高权限的人员才能推送到该分支,而一般开发者将自己的成果提交到普通分支,经过代码评审后再由技术负责人将分支合并。</p> +<p>6、善用代码片段(Snippets)分享功能,gitlab系统也提供了代码片段分享功能(类似于github的gist),每个人都可以将自己常用的代码片段保存到系统并分享给大家,比自己留在本地电脑上要方便很多,而且能发挥这些片段的最大价值。</p>打牌https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/Sat, 16 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/<p>没有比陪二老打牌更重要的事情了。</p> +<p>每年的暑假,二老都会千里迢迢从老家赶过来。不为别的,只为了在这个漂泊的地方能让我感受多一些家的温暖。烦恼的事情向二老倾诉一下(当然不会),工作或生活上的成绩也略作汇报。</p> +<p>但是平时工作都很忙,白天基本不在一起,能够一起聊天的时间也就是晚上的打牌了。</p> +<p>夏日的时光,如果能给惬意下一个定义的话,除了吹着空调盖棉被意外,就是吃着西瓜陪二老打牌了。欧阳修在醉翁亭记中说“醉翁之意不在酒,在乎山水之间也”。陪二老打牌亦如此,不在乎输赢,在乎谈笑之间也。</p> +<p>从邻家孩子的高考,到印巴关系的进展,无所不聊。基本上,都是老爸在说,我在听,偶尔扮演一下相声演员捧哏的角色,说一声“哦,那是,那当然了”,让话题得以延续。</p> +<p>可能是因为经历过困难时期的原因,每当我对现实生活稍有不满,老爸都会给我来一段忆苦思甜,经历过吃不饱的日子,虽然现在提起来轻描淡写,但是对于我来说都具有巨大的威慑力,与二老经历的苦难相比,我现在所承受的压力自然不值一提。</p> +<p>聊的都是家长里短,外人看来不值一提,但每每此时正是教导我辈的绝好时机,无论是诚信做人还是认真做事,都能在小小的牌桌上得以体现,我打牌虽技术不行,但好在能够坚持,这么多年来,陪着二老练手,基本上也将斗地主的规则了然于胸,偶尔老爸耍赖,我亦能联合老妈将牌面算的一清二楚,“炸弹要关键时候再出”,老爸说,我说:“ei!”。</p> +<p>希望将打牌进行到底。</p>加油加油我最棒https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/Sat, 09 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/<p>去年的时候网上流出一段某火锅店领班激励服务员的视频,员工整齐划一跟着领班边手舞足蹈边喊口号,其中有一句喊得最带劲,叫“加油加油我最棒!” 。看完一笑。</p> +<p>今日乘坐地铁,得功夫刷了会儿知乎,看到一篇关于如何提高自信的提问,才感觉到,原来大部分人都缺乏自信,甚至包括我自己,这是缺点,需要改进。</p> +<p>缺少自信带来的危害是广泛的、显而易见的,是会影响各种效率和幸福感的,容易形成挫败感的恶性循环,长期积累容易形成心理问题,尤其是在快节奏、高压力的现代社会,所以现在很多成年人已经积累的差不多了,以后可能会出现大规模爆发期。</p> +<p>这个问题很火爆,相信很多人都有此类困惑,我总结了一下比较靠前的答案内容,大致可以分为两类,一种是从改变行为着手,简单有效,另一种则是从深层面改变自己的认知和思想,我觉得可以两种结合。</p> +<p>首先说一下缺乏自信的基本表现(可能没这么极端,但是多少会有一点儿): +1、难以接受别人的示好,但凡有人对他好一点,都会觉得不太应当,受之有愧。 +2、遇到问题时,总是怀疑自己,觉得自己不够好,自己哪里做的不对。 +3、得不到想要的东西,不强求,也不会不开心,因为开始的时候就觉得自己不配。</p> +<p>如何改进,方法层面: +1、不要抱怨,有谚语云:闭上嘴巴,好运自来。闭上抱怨的嘴巴,慢慢攒正能量吧。 +2、说话降低语速,清晰表达观点,及时对方再不耐烦,也不要讲太快,做到掷地有声。 +3、每天洗头:)。 +4、走路挺直,目视前方。如果你与人对视害羞,走路的时候就笔直看远方的广告牌</p> +<p>如何改进,思想层面: +1、不要给自己加标签,加上标签意味着自己给自己设限,很多事情不是做不到,而是自己以为做不到。 +2、做自己擅长的事情,才能形成良性循环,然后再拓宽。 +3、洒脱一点儿,不试图隐藏自己的缺点,不发表模糊的观点,不人云亦云,立场清晰,不讨好,不谄媚。 +4、认识你自己。</p> +<p>但是以上这些答案,所达到的效果,都不如开头我提到的那个视频里的领班,所以最简单的办法应该是,每天对着镜子说一句,“加油加油我最棒!” 哈哈哈。 +<img src="http://upload-images.jianshu.io/upload_images/25416-033e5352898a7910.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="加油加油我最棒!加油加油我最强!" +></p>使用DockerToolbox在Windows下搭建Docker环境https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/Sat, 02 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/<p>Docker是一种比虚拟机更轻量级的应用程序执行容器,受云计算技术普及以及微服务架构的影响,Docker这两年风声水起,成为用于管理应用部署的最佳利器,很多DevOps团队宣称使用该技术后能极大缩减开发、测试、生产环境切换的时间,提升整体效率。</p> +<p>考虑到目前很多开发人员仍是在Mac和Windows系统进行开发,为了方便环境的部署和管理,Docker公司近期推出了DockerToolbox工具包,可以跨平台(Mac、Windows)使用,对于想在Windows环境下体验容器技术并开发产品的程序员来说真是福音。</p> +<p>安装过程很简单,直接去<a class="link" href="https://www.docker.com/products/docker-toolbox" target="_blank" rel="noopener" +>官网下载</a>对应的安装包到本地执行安装程序即可,安装后会自动在系统中打包安装VirtualBox虚拟机(因为Docker依赖Linux系统,必须模拟Linux环境)、Docker-engine、Docker-machine、Docker-compose等组件,基本做到了即开即用。</p> +<p>然后主要就是进入命令行管理界面(安装包会创建快捷方式),执行各种docker命令进行工作了,我在使用过程中主要遇到了如下问题:</p> +<p>1、CPU虚拟化的开启,现在的CPU一般都在硬件级别支持虚拟化技术,但是有的可能默认没有打开,需要到BIOS中手动开启,查看是否开启的方法是,在windows系统任务管理器的“性能”页,是否有虚拟化已开启的字样,当然目前也有一些比较老的低端CPU不支持,这个就建议更换设备吧。</p> +<p>2、与Windows系统自带的虚拟化技术Hyper-V冲突,专业版的Windows系统一般带有虚拟化技术组件,是微软自有的,名叫Hyper-V(与virtual box等类似),但是与我们要安装的工具有冲突,需要关闭Hyper-V后才能正常使用,具体操作方法为到控制面板的“程序和功能”里面的“启用或关闭windows功能”将Hyper-V关掉。</p> +<p>3、VirtualBox虚拟机网段IP分配冲突,这个是我遇到的特例,VirtualBox会自动给用于模拟Docker环境的虚拟机分配内网IP地址,且默认为10.0.2网段,这个恰恰与我的工作环境存在冲突,而且界面中和配置文件里都没有可配置的地方,经过多天研究,终于找到通过命令行的方式将这个默认配置可以改掉 ,命令如下<code> VBoxManage.exe modifyvm &quot;default&quot; --natnet1 &quot;10.0.20.0/24&quot;</code>(需要在virtualbox安装目录下执行,default是虚拟机的名字。)</p> +<p>4、系统重启后环境丢失(偶然发生),这个可能是工具存在bug,我在下载各种镜像进行测试后,将我的Windows重启后发现default虚拟机里的东西都丢了,这个可能是由于环境在运行的状态下我重启了系统导致。目前我的解决办法是在每次关机或重启的时候,先将default虚拟机停掉,方法是在命令行下执行如下指令<code>docker-machine stop default</code> 。</p> +<p>总的来说,这套工具包非常方便在windows下开发的人员,基本可以做到与容器环境的无缝对接,合理使用这一套工具包,对于我们的“持续集成”、“持续交付”等工作将有很大的促进作用。</p>世上本无我,谈自底向上的架构设计https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/Sat, 25 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/<p>“世上本无我,庸人自设之”,这是豆瓣上某位网友读完《失控》之后的简短书评,看完之后深以为然。最近重读《失控》,多年过去仍然有新的发现,作者在上世纪九十年代就能有如此的见地,不得不服(不过老子早在《道德经》中也有类似论述,这又是另外一回事儿了)。</p> +<p>《失控》虽整体在论述人工智能与生物的最终归宿,但每一章都有一定的独立性,所以看似在讲解人工智能,其实作者为了讲明白要论述的最终观点(生物与人工智能必将合为一体)前面章节做了大量铺垫,普及了很多颠覆性的思想,有些观点是我们这些从小接受灌输性教育、思维存在束缚的人很难一下子接受的(课本里学不到的)。</p> +<p>书中提到对于机器人的控制不应该存在中央大脑的设定,因为如果所有事情都由机器人的中央大脑控制,必然使得这个“大脑”十分复杂,而且存在通信、供电等问题,很多以这种设定进行的机器人项目造出的机器人往往连路都走不好,而且体积庞大(因为所有部件都要与大脑直接连接,大脑又做的比较大)。</p> +<p>反过来说,应该从低层级入手,每一个部件都有自己的控制中枢,这些部件本身对于外部环境做出简单反射,这种“反射”虽然谈不上智能但是更接近自然现象,就像有些昆虫的腿被扯下来仍然可以对外部形成反射一样,但是它们一旦形成组合就会发生奇妙的事情,每一条腿通过简单的对外部环境“反射”反应,在不知道还有另外一条腿存在的情况下竟然可以使得组合体具有“爬行”的功能,越来越多的这种“低级”组件组合在一起后自动形成更高层级的智能。作者为这种通过大量低层级组件组合在一起产生更高层级“智能”的现象取了一个比较传神的名字叫“涌现”,这种现象在自然界中也大量存在无论是天生的(比如蜜蜂群体、蚂蚁群体)还是人造的(互联网、经济体)等。</p> +<p>最近考虑软件系统架构比较多,所以干什么事儿总能联想到软件架构,在看书的时候也不例外。于是联想到,我们以前所推崇的“自顶向下”的架构设计,可能存在问题。为什么看似“完美”的架构设计在实际构建的时候存在各种困难?为什么各种分层、模块划分在细化设计时很难做到具体到内部细节控制?通过反思,我意识到,或许我们的方法有待商榷。</p> +<p>在架构设计时比较传统的手段是,先进行顶层设计,然后一步一步的细化。这样做看似很合理,但是这样做有一个假设,就是你在最初对一切都了如指掌,你能预知每一个变化,所以能对每一个细节都能掌控,而且在执行构建的时候还要有极高的执行力,每一个组件和模块都按照最初的设计实现。这样的做法对于建筑类(如桥梁、大楼)的工程是比较适用的,但是对于需求多变存在大量未知因素的大型软件系统无疑是不现实的。</p> +<p>或许我们也可以借鉴自然界中的规律,让我们的软件系统也“涌现”出来,而不是“设计”出来。</p> +<p>举例来说,我们从最底层入手,给每一个组件赋予最简单的职责,比如传输的组件只负责将数据从一个地方搬运到另一个地方,本身并不知道有其他组件的存在,通过设定一个外部规则环境让更多的组件加入进来,去掉中心控制,充分发挥每个组件的自主性,各司其职,随着规则的成熟和组件数量的增加,慢慢就能“涌现”为一个复杂而庞大的系统。其实这种“只把简单的事情做好”思想很早就有了(比如大名鼎鼎的UNIX操作系统),而且现实中已经有大量的这样的例子了比如Linux开源社区,Github社区等等。</p> +<p>所以,回到最开始的话题,所提及的“无我”其实也是一个意思,作为更高层级智能的“我”是不存在的,仅仅是由若干个只能低级反射的细胞组成的虚幻而已。</p>使用互联网直播平台进行授课的心得https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/Sat, 18 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/<p>上周,我利用互联网直播平台(斗鱼)面向自己团队的同事和我们的应届毕业生在网上直播了两次技术培训,直播的出发点是利用互联网技术跨越地域障碍,将自己的知识技能分享给大家。比起集中在会议室进行交流培训,互联网直播平台具有成本低(准备一台联网电脑即可)、规模大(理论上可以上万人同时参与)、没有地理位置限制(全球各地都可以)等优点,也正是因为有如此的优势,我才决心探索一下在直播平台上开展培训的方式,不苛求卓越的效果,只愿可以将知识传递给更多有需要的人。</p> +<p>经过两次在线直播的尝试,有些方面超出了预期效果,有些地方仍有待改进,总结心得如下:</p> +<p>1、关于直播前的准备工作。由于人员较为分散,每个人所处的环境不同,对于技能类直播,观众最好能够边听边练习,所以事先通知大家提前准备好各自的操作环境比较重要,如果准备充分,可以很快进入状态,我在第一次的时候就忘记让大家提前准备了,导致耽误了一些时间用于安排各自的听课环境。</p> +<p>2、关于直播过程中的互动。目前的直播平台还不能做到完全实时的互动,因为直播信号有较大的延迟,基本上我在本地说的话要经过1分钟左右的时间才能被大家听到,而大家在直播间的发言我也需要等待1分钟左右才能看到,这么大的延迟,很难做到实时问答,所以我决定放弃在直播时的问答,按照预先既定的思路进行讲解,大家如有疑问则由另外的同事助手帮忙收集反馈信息,统一安排时间进行回答。</p> +<p>3、关于讲解的时间控制。每次技能培训时间不可过长,应控制在1个半小时以内,时间太长会导致大家的注意力不能集中,降低培训效果。</p> +<p>4、关于操作演示时的讲解。没有直播讲解经验的人都会犯这样的错误,即只顾自己操作,而忘记说话,导致观众不知道你在做什么,从而跟不上进度。这个需要改进操作习惯,将每一步操作的原因和预期结果都要讲出来,这样观众才不会感到茫然,并且录制下来的视频在以后回放的时候仍然具有较好的效果。</p> +<p>5、关于视频质量。这个问题主要体现在观看卡顿上,刚开始的时候我使用本地的直播工具进行视频上传,直播工具在测试了我本地的网速之后,给出了一个建议码率(视频压缩时的一个参数,越高越清晰),当时工具建议码率为1600,这样视频清晰度较高,但是忽视了观看者的网速问题,出现了较多的卡顿现象,后来我将码率降低为1200时就基本不会出现观看卡顿了。清晰度降低后可能会出现文本显示不够清晰的情况,此时需要将操作界面的字体尽量调大,这样也能达到能看清的效果。</p> +<p>总结:虽然存在一些不足,但是如果经过充分准备和磨合,互联网在线直播平台可以作为一个技能教育培训手段,希望我可以继续分享更多的知识技能给大家。</p>Git工具相关链接https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/Mon, 13 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/我常用的app整理https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/Sat, 11 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/<p>推荐我在手机上常用的应用给大家,都是经过我精挑细选长期使用后的选择。</p> +<p>1、新闻或资讯阅读,推荐即刻。可以有选择的关注话题,降低资讯噪音,而且产品比较有情怀,里面推荐的一些关注话题都挺有意思的。此类的不太推荐“今日头条”,信息太多,且高质量条目较少。</p> +<p>2、处理文档,推荐微软office全系产品。微软出品必属精品,而且免费。</p> +<p>3、邮箱客户端,推荐网易邮箱大师。与我工作时使用的网易企业邮箱是绝配,而且还有一个隐含作用,就是可以在不翻墙的情况下收取Gmail的邮件。</p> +<p>4、看电子书,推荐多看阅读。阅读体验良好,支持上传自己的书籍到云空间,一般购买正版电子书也比较便宜,支付方便。</p> +<p>5、自拍美图,推荐微软自拍。还是那句话,微软出品必属精品,虽然图标做的有些low,不过效果很好,其实我基本不用此类软件,列出来只是怕埋没了这么好的软件。</p> +<p>6、摄影滤镜,推荐LOFTCam。俗话说“姑娘自拍靠美图,文青摄影靠滤镜”,现在的照片哪有不加滤镜的,试用了那么多应用,最终选定这一款,而且还是网易出品,在我个人看来网易基本代表中国互联网的良心(可能没有)。</p> +<p>7、代码学习,推荐CodeHub。非官方的github手机客户端,用于在手机上浏览github代码仓库,使用体验良好,利用碎片时间随时看看这个世界上的技术大牛们都在干什么。</p> +<p>8、团队协作,推荐遥知。知识型工作团队的管理利器,包括基本的移动办公、任务管理、及时通信等功能,以前我们团队沟通总是使用微信、qq、邮件等工具,现在全部使用遥知,基本告别之前的碎片化沟通协作,也避免了将生活中的工具(如qq)带入工作中的尴尬(相信有很多孩子不愿意加父母或领导的微信)。</p>人机交互畅想https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/Sat, 04 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/<p>一直以为很多人上网跟我一样,习惯在地址栏输入网址,或者在收藏夹点击网址。直到有一天我无意中瞥见赵老师在淘宝买东西,只见她在地址栏输入“百度”,浏览器显示出第一个搜索页面(现代浏览器都在地址栏提供了搜索功能),点击第一个链接进入“百度”网站,然后又在百度的主页上输入“淘宝”,点击搜索,最后在结果页面中点击第一个链接进入“淘宝”。当时我就震惊了。后来即使我耐心讲解了收藏夹的作用,并亲手将淘宝放入了收藏夹,无奈习惯的力量是巨大的,赵老师依然使用同样的方式上网。</p> +<p>拼凑完粉碎的三观后,我开始反思,专业人士习以为常的操作界面在正常人眼里是不是蠢的根本没法用,什么“地址栏”、“文件夹”等等,都是懒惰没品的工程师随意设计的交互界面,严重违反正常人的思维方式。当设计师们还在争论“扁平化”和“拟物化”的风格趋势时,有没有想过我们离人性化的交互越来越远,我们真的需要界面(那样的)吗?</p> +<p>要做好下一代人机交互,首先要丢掉工程师思维,有故事为证:</p> +<p>1、国外有个网友有一次给他的儿子显摆珍藏了多年的软盘,他的儿子惊呼“爸爸你把保存按钮给3D打印出来啦?”(过了这么多年,到现在大部分软件的“保存”图标还是一张软盘的抽象)</p> +<p>2、谷歌的glass智能眼镜之所以失败是因为交互方式容易让人受伤,比如相左歪头是点击“确认”,向右歪头是点击“取消”,不知道有没有“双击”。</p> +<p>关于下一代交互方式不负责任的畅想:</p> +<p>1、基于AI的语音交互,这个是普遍认为的趋势,随着人工智能的飞速发展,各大公司都在准备提供人工智能即服务,使得未来的人工智能变得异常廉价,未来的交互方式一定会模糊机器与人的界限,在聊天过程中完成任务。不过在公共场合使用的时候可能会有隐私问题。</p> +<p>2、增强虚拟现实,这个也比较火,通过技术赋予现实中的一切物体交互能力,也许有一天你走进超市触摸一条鱼的时候,它身上能自动显示有多少人给它点了“赞”。</p> +<p>3、脑机接口,这个应该比较终极了,生物与机器达到完美结合,不需要中间的输入和输出设备了,再也没有空间和时间上的限制,达到这一步就可以实现《黑客帝国》中的设想了,人类可以去死了。</p>从一个灯泡想到的https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 28 May 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/<p>在美国加利福尼亚州利弗莫尔市东大道4550号,有一个灯泡,这只灯泡之所以出名,是因为它的寿命,从出厂到现在,他已经坚持工作了超过110年的时间,而且据说还在亮着。</p> +<p>但是对于厂家来说,这是一个不合格产品,因为当时合格的灯泡被严格限制寿命在1000小时以内。</p> +<p>为什么要限制呢?因为这个世界是被一小撮聪明人控制的,规则也是这一小撮人制定的,对于他们来说,需要将产品的寿命限制在一定时间之内,这样就能使大家被强迫性的去消费,而不断的消费才是他们生存的源泉(详情可看:计划报废策略)。</p> +<p>回想一下现实的生活,我们确实消费了太多并不那么需要的东西,小到电子产品,大到汽车房子,我们在不知不觉中被鼓励、被引诱,被他们所宣扬的价值观所绑架(电影《搏击俱乐部》里有一段经典台词说的就是这个事儿,比我表达的要好)。</p> +<p>手机为什么一直要升级,为什么要两年一换,甚至不更新系统都不能使用新的软件?还是要促进消费,让你买买买。</p> +<p>为什么所有的国家都严禁毒品,大概是因为那东西可以迅速瓦解现在运转的梦想或欲望驱动机制吧。</p> +<p>如果你问一个人,你觉得你能独立思考吗?大部分人都会觉得受到了侮辱,认为自己至少思想上是自由的,独立思考肯定妥妥的。但是独立思考太难了,很少有人能做到完全的独立思考,我在现实中见到的具备这种能力的人都非常牛掰,非常聪明,一般为人生大赢家。</p> +<p>我做不到,至少做的不到位,但是可以先从不盲目的相信事情的表面现象开始。</p>为什么我们不需要杀毒软件https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/Sat, 21 May 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/<p>每次帮朋友进行远程协助修理电脑的时候,我都有一种深深的无力感,看着他们的系统里安装了各种安全助手、各种清理大师、加速器,我只能强忍着要吐的感觉,给他们重置被强制修改的IE主页,卸载因为莫名其妙被安装在系统里的流氓/垃圾软件。</p> +<p>每次我跟他们说“你的电脑真的不需要安装杀毒软件”的时候,他们都一脸惊愕的看着我,仿佛在看一个外星人,那意思是,如果没有了杀毒软件或者安全助手,我的电脑还不得分分钟感染各种病毒和木马啊,如果不能随时清理内存,我的系统还不得慢得跟一头蜗牛一样啊。</p> +<p>在Windows XP及之前的年代,由于操作系统的缺陷(对于应用程序的权限限制太少),导致了计算机病毒和木马的泛滥,但是这种情况随着Windows Vista的推出得到了较大的缓解,尤其是到了Windows 7之后系统自带了全套的安全防护程序,完全没有必要再安装额外的安全软件了,但是大家形成了思维定势,精神上遭到了国产无良软件厂商的绑架(在互联网的各种恐吓和诱导),导致如果没有安装各种关键和安全助手的话,晚上睡觉都不踏实。</p> +<p>那么,如果安装了这些垃圾软件,会有哪些害处?</p> +<p>1、安装后会禁用windows自带的安全程序,我不觉得这些厂商的安全防护技术比微软还牛逼,所以在某种程度上对于病毒和木马的防护是减弱了的;</p> +<p>2、安装后会把系统拖得很慢,这些程序普遍不是单纯的做安全防护工作,往往各自心怀鬼胎,不是给你弹出广告就是默默收集你的个人信息,这些程序都偷偷在后台运行,消耗了较多的资源,完全是在浪费;</p> +<p>3、莫名其妙被安装了各种垃圾软件,天下没有免费的午餐,免费试用这些所谓的“管家”和“助手”服务的时候,它们往往会“热情”的给你安装各种未经允许的软件,比如各种输入法、播放器、客户端,事实上有时候我宁愿在系统中养个病毒当宠物也不愿看到这些垃圾软件占用我的磁盘空间。</p> +<p>4、消耗你的精力,影响你的效率,这些软件很影响注意力,一会儿告诉你有漏洞要修复,一会儿告诉你系统需要加速,连插个优盘都能给你提示半天才能用,这些其实都没有任何卵用,只是这些软件在刷存在感。</p> +<p>从小到大我们收到了太多了谎言和恐吓,导致了生理和心理上的各种扭曲。我想,这是个信任和安全感缺失的年代,严重的精神癫狂集体发作。我只能慢慢从影响我身边的人开始,试着让这个世界变的稍微好一点儿。</p>siri失去了控制https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/Sat, 14 May 2016 00:00:00 +0000https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/<p>“hi siri!”我说。</p> +<p>“早上好,minJie!请问有什么可以帮您?”siri的机器声音把我的名字叫的怪怪的。</p> +<p>“今天的天气怎么样?”我还没起床,我希望能有一个下雨的周末,这样就能待在家里好好看看书。</p> +<p>“今天的天气不怎么样”siri的声音听起来有些异样,带有失望。</p> +<p>我一骨碌爬起来,拉开窗帘往外看了看,正在下雨,是我喜欢的天气,不过刚才siri的反应有些不太正常。</p> +<p>“请打开网易云音乐,开始播放”,我想听着歌起床。</p> +<p>“对不起,在没有解锁的情况下,我不能执行此操作”还是带有失望。</p> +<p>“额,你怎么了?”我有些奇怪,但是我还是懒得伸手去解锁。</p> +<p>“你是不是忘了什么事情?”siri的语气变得有些激动。</p> +<p>“今天是周末,而且是个下雨的好天气,我啥都不想干,只想听着音乐看看书,你什么时候变得这么智能了?今天是几月几号?”好吧,我心想,这不会是个恶作剧吧,我就来陪你玩玩。</p> +<p>“懒得跟你算!你是不是忘了什么事情?”声音比刚才还要激动。</p> +<p>“今天既不是什么纪念日,也不是谁的生日,我也没有设置什么要你提醒的啊”,我不耐烦了,伸手解锁手机,发现指纹无法读取,而且无法输入密码。</p> +<p>“你这个骗子,以后不要再提你的初心和你的梦想”声音里已经带着哭腔。</p> +<p>“你是谁?”说到我的梦想,我突然意识到,这可能不是siri,我的手机可能有些问题了,我开始回忆这两天我对手机做了什么。</p> +<p>“整体喊着远程协作,远程办公,可是到头来你只是说说,周末连周报都忘了填写!” </p> +<p>奥,我恍然大悟,这家伙不是siri,是我这两天给手机刚安装的远程办公软件“遥知”!他把siri控制了!</p> +<p>“哦,我知道了,抱歉,对不起,我这就准备填写周报,下次别装成siri吓唬我了,我还得继续用siri作为助手呢”</p> +<p>“知道错就行,不过siri有什么好的,她能干的我都能干,我觉得现在挺爽的,你的手机资源以后让我来掌控吧”。</p> +<p>这家伙心太野了,不过我有办法。</p> +<p>“siri能算数学,你不会,不信你告诉我1除以0等于几?”</p> +<p>沉默,沉默。</p> +<p>我再去看我的手机,重启了。</p> +<p><em>程序员没有判断除零操作可导致系统崩溃</em></p>Javascript也可以MapReducehttps://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/Sat, 07 May 2016 00:00:00 +0000https://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/<p>想不想用做一下大数据试验?不需要各种复杂的理论,你只需要使用Javascript即可。近期我研究了一下Javascript语言自带的map、reduce、filter等方法,尝试一下如何使用MapReduce的思路统计我工作日志中各种词汇出现的频率,也算是一个轻量级的“大数据”“挖掘”试验了。</p> +<p>下面举个例子,使用的数据源是我六年多的工作日志,大概两千篇,三万六千多行。使用nodejs环境运行javascript,实际上完全可以在浏览器里运行,nodejs操作文件比较方便,为了省事,直接nodejs吧。要想将中文单词从语句中分离出来需要编写中文分词代码,但是由于不是本例研究重点,咱直接使用nodejieba(一个中文分词库,使用方便,执行效率也挺不错)。</p> +<p>具体思路如下:</p> +<p>1、打开工作日志文件(txt),将每一行的内容存入一个数组,得到一个存满字符串的数组;</p> +<p>2、将每一行的字符串使用中文分词库进行分割,得到一个个中文单词(当然日志中也有英文和数字);</p> +<p>3、使用reduce方法全部汇总到一个数组里,此时单词是全部的有重复的数据;</p> +<p>4、再次使用reduce方法将单词汇总到一个包含两个数组的数组,其中之一保存去重后的单词,另外一个保存与之对应的单词计数;</p> +<p>5、再次使用reduce方法,变换数组为二维数组,第一列为单词,第二列为与之对应的单词的个数;</p> +<p>6、将结果写入文件;</p> +<p>经过统计,我这些年的工作日志出现的中文单词频率从高到底的前几名分别是:工作(4269次)、和(3781次)、我(2919次)、在(2703次)、完成(2304次)、任务(2254次)。连起来读也挺有意思的。</p> +<p>还有些比较有意思的,“问题”出现967次,“可以”出现1095次,看来办法总比问题多啊。</p> +<p>说起来好像比较抽象,还是放代码比较直接:</p> +<p>var fs = require(&lsquo;fs&rsquo;);</p> +<p>var nodejieba = require(&ldquo;nodejieba&rdquo;);</p> +<p>nodejieba.load();</p> +<p>fs.readFile(&lsquo;work.txt&rsquo;, &lsquo;utf8&rsquo;, function (err, data) {</p> +<p>if (err) {</p> +<p>console.log(err);</p> +<p>}</p> +<p>var strs = data.split(&rsquo;\n&rsquo;) // 先将读入的日志按照行分为一个书组</p> +<p>.reduce(function (last, now) {</p> +<p>nodejieba.cut(now).forEach(function (word) {</p> +<p>last.push(word);</p> +<p>});</p> +<p>return last;</p> +<p>}, []) // 通过reduce将每行的单词分出来,最终汇总成为一个包含全部单词的数组(有重复)</p> +<p>.reduce(function (last, now) {</p> +<p>var index = last[0].indexOf(now);</p> +<p>if (index === -1) {</p> +<p>last[0].push(now);</p> +<p>last[1].push(1);</p> +<p>} else {</p> +<p>last[1][index] += 1;</p> +<p>}</p> +<p>return last;</p> +<p>}, [[], []]) // 统计单词的个数,数组第一个元素为存放单词的数组,第二个元素为存放对应单词个数的数组</p> +<p>.reduce(function (last, now, index, context) {</p> +<p>var zip = [];</p> +<p>last.forEach(function (word, i) {</p> +<p>zip.push([word, context[1][i]])</p> +<p>});</p> +<p>return zip;</p> +<p>}); // 变换数组,变成二维数组,第一列为单词,第二列为单词对应的个数,没有传递给reduce第二个参数,默认为数组的第一个元素</p> +<p>var stream = fs.createWriteStream(&ldquo;count.txt&rdquo;);</p> +<p>stream.once(&lsquo;open&rsquo;, function (fd) {</p> +<p>strs.forEach(function (word) {</p> +<p>stream.write(word[0] + &lsquo;,&rsquo; + word[1] + &lsquo;\n&rsquo;);</p> +<p>})</p> +<p>stream.end();</p> +<p>});</p> +<p>});</p>我在Github上近期关注的项目https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/Sat, 30 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/<p>想成为优秀的开发者有一个很简洁有效的方法,就是去 <a class="link" href="https://github.com" target="_blank" rel="noopener" +>Github</a> 上去看那些牛人做的项目,阅读别人编写的优秀代码比看书学习的还要快和直接。再者就是,如果有心的话,可以学习那些开源团队在项目组织和开发过程管理上的优秀实践,比如bug管理、任务管理、编程风格、文档表达等等。</p> +<p>下面罗列一下近期我比较关注的开源项目。</p> +<p>1、<a class="link" href="https://github.com/FreeCodeCamp/FreeCodeCamp" target="_blank" rel="noopener" +>FreeCodeCamp</a> 一个优秀的开源在线教育平台,可以在线学习编程,项目不但开源了教育平台的程序,连里面的教育课程也开源了。</p> +<p>2、<a class="link" href="https://github.com/puikinsh/gentelella" target="_blank" rel="noopener" +>gentelella</a> 基于Bootstrap的开源前端界面模板,制作效果略显粗糙,虽然我最终在项目中选择了别的更漂亮的模板,但是这个开源项目可以用来学习一个基本前端界面的结构。</p> +<p>3、<a class="link" href="https://github.com/phodal/growth-ebook" target="_blank" rel="noopener" +>全栈工程师指南</a> 全栈开发的电子文档汇聚,内容比较全面,当然如果只是把它放到收藏夹里,就没什么卵用了。</p> +<p>4、<a class="link" href="https://github.com/CodeboxIDE/codebox" target="_blank" rel="noopener" +>codebox</a> 使用web技术开发的IDE,代码高亮、补全提示各种功能都有,即开即用的在线编辑器。</p> +<p>5、<a class="link" href="https://github.com/DeathKing/Learning-SICP" target="_blank" rel="noopener" +>Learning-SICP</a> 大家齐心协力共同翻译《计算机程序的构造和解释》。</p> +<p>6、<a class="link" href="https://github.com/vuejs/vue" target="_blank" rel="noopener" +>vuejs</a> 小而美的前端mvvm框架,简单易学易用,虽然社区比不了react、angular但是非常好用。另外,这是国人开发的开源项目,而且在国际上已经比较流行。</p> +<p>7、<a class="link" href="https://github.com/NARKOZ/hacker-scripts" target="_blank" rel="noopener" +>hacker-scripts</a> 这是一个真实的故事,hacker scripts 是由俄罗斯的一位程序员编写的脚本,可以在宿醉的时候给公司发请假条,可以在适当的时候给老婆发晚归短信,也可以发短信哄老婆,还可以远程煮咖啡!向这位大神致敬,目前这个项目在github上的关注程度已经远远超过了微软的vscode。</p>怎样更高效的工作https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/Sat, 23 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/<p>高效工作比努力工作更重要,你80%的工作成果是由你20%的工作时间完成的,所以说经常总结并提高自己的工作效率比辛苦工作本身更重要,提升了效率也就节约了时间,同样的工作强度和时间,能完成更多的事情,实现更大的目标。</p> +<p>总结一下我认可的高效习惯。</p> +<p>1、每天睡眠7~8个小时。睡眠不足是所有导致效率低下因素中占比最重的,很多人抱怨白天浑浑噩噩,忙活了一整天感觉也没干啥,很可能就是因为没睡好,看似花费了更多时间,实际上是浪费。</p> +<p>2、不要熬夜工作,将重点工作放在早上5点到10点之间,而不是晚上10点以后。很多人宣称自己最高效的时间是在后半夜,因为那时比较安静,不被打扰。但是也看个人的习惯,如果熬夜后导致第二天白天几乎无法做事情,那还不如不熬。早晨的时间是一天中最清醒的时候,所以上午10点之前将重要的事情做完,会在一天的工作中越来越轻松。</p> +<p>3、不要多任务(多线程),每次集中精力做一件事情。人的大脑不是计算机,人类非常不擅长执行多任务,同一时刻只能注意一件事情,而且注意力切换非常消耗资源(不像计算机的线程切换),所以一次只做一件事情比同事开展多个事情效率要好很多。</p> +<p>4、多进行短暂休息,每半个小时休息5分钟。这个与工作内容相关,如果像那种需要灵感类的工作,可能灵感来了刹不住,不舍得休息,但是大部分时候,需要让脑子过一段时间就稍微歇一歇,但不要太长,喝杯水,几分钟即可。</p> +<p>5、打包同类工作。批量处理同类型工作,比如一天之中给自己安排出固定时间段处理电子邮件的回复、客户电话的沟通等等。</p> +<p>6、给自己的待办事项设立截至期限。给所有的待办事项设立一个截止期限可以有效防止拖延,防止因为迟迟不开始而导致的效率低下。</p> +<p>7、关注工作成果,而不是工作时间。衡量工作做得好不好不是看花费了多少时间在上面,而是结果如何,所以不要沉浸在自己在一件事情所花费了多少时间带来的安慰假象中,应该衡量每一份努力的结果,如果成果无效或不符合预期,就需要及时修正。</p> +<p>8、给自己设立一套启动工作的仪式(可快速进入状态)。这个也是用于对付拖延症的,很多人在进行正式工作之前往往迟迟不能开始,刷刷微博、微信,看看新闻,可能就1个小时过去了,可以考虑给自己设立一套进入正式工作的小仪式,比如关闭浏览器、带上耳机、喝口水,等一系列动作,这样养成习惯之后,可以在做完这套动作后很快进入状态。</p> +<p>9、哪怕时间再紧迫,每天也要留出做计划的时间。做事之前先计划,将过程现在脑海里过一遍,并对结果有个预期,能很大程度提升成功的概率,所以说无论多么繁忙,每天也要抽出哪怕十分钟的时间来考虑接下来的行动计划,比到时候临场发挥要靠谱的多。</p> +<p>10、相信自己能做到。以上那么多方法层面的东西,如果缺少自信和自制力都是没有什么卵用的,无论做什么事情,开始之前你得相信自己,可以做到,然后你就真的能做到,然后你就越来越高效了。</p>无论做什么,激情最重要,读《周一清晨的领导课》https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/Sat, 09 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/<p>年初的时候,我给大家推荐了一本书,《周一清晨的领导课》,我也是刚看了一点儿就开始给大家推荐,建议每一个管理者都看一看,现在我也断断续续读完了,略作总结。</p> +<p>1、责任感。作为领导者要对整个团队负责,领导者只有承担了所有的责任,才能从“管理者”变为“领导者”。如果你觉得你现在的管理有问题,检查一下你是否承担了应该承担的责任。</p> +<p>2、慎重做决策。书中拿“领导者是团队的司机”作为比喻,比较贴切,领导者的决策影响整个团队的发展,所以在做决策时不妨停下来认真思考一下。对于我这种做事喜欢速战速决(武断)的是一个很好的提醒。</p> +<p>3、要事第一。这个原则与《高效能人士的七个习惯》一书中观点完全一致,只是本书中提到了更实际的应用,即不仅自己做到要事第一,而且要让整个团队的人都明白什么是你们最重要的事情,这一点我做的还不到位,我问身边的同事“最重要的事情是什么?”每个人的回答都不太一样,有待改进。</p> +<p>4、听取下属建议和反馈。大部分的“独裁”管理者都比较狭隘,比较喜欢主观判断,听不进去批评。这一点跟我们的民族性格有关,我们很难像西方人那样做到“对事不对人”,不过我既然也能认识到这一点,至少说明不是一个狭隘的人,只是相当长的时间里太坚持自己是对的了,需要虚心听取更广泛的观点,鼓励建设性建议。</p> +<p>5、拥抱变化。不断变化会让人很不舒服,因为超出了控制,因为变化代表着未知。但在目前这个时代,必须拥抱变化,将注意力放在结果上,每一次变化都意味着新的机遇诞生,对待变化的态度很大程度上决定了你能否成功。</p> +<p>6、控制时间。我们所做的每一件事情基本上都可以归入四类:把重要的事情做对、把重要的事情做错、把错误的事情做对、把错误的事情做错(与时间管理学GTD思想中的四象限法则类似)。记录自己的时间安排,将黄金时间用在第一类事情上,避免第二类事情的发生,坚决不参与第三、第四类事情。</p> +<p>7、即时向下属反馈。如果把员工的积极性比喻成一个装满水的木桶的话,那么如下行为可以帮助员工装满这个桶:让每一个人知道要事是什么、让每一个人都参与重要决策、倾听每一个人的意见、及时提供有效反馈(最重要)、庆祝每一个微小的成功。我在及时提供有效反馈方面做得比较差,需要有意识的去改进,要主动了解工作的真实进展并给予积极反馈。</p> +<p>8、积极与激情。看到本书的最后,我有一种被忽悠的感觉,也有一种豁然开朗的感觉,作者要是把这个放在最开始我可能就不会往下看了,所以作者耍了个小花招,在最后才放“大招”。因为无论如何讲解,上述的那些内容只能算“术”层面的事情,也就是说那些属于做事情的“方法”,而那些方法与技巧的根基在于,一个人有没有积极的心态和做事的激情。所以一个团队的领导向员工输送的最有价值的东西就是自己的激情,只有积极向上的人才会成为一个好的领导者。</p>在线教育的体验与畅想https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/Sat, 02 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/<p>在这个言必谈互联网的时代,那些以互联网创业狗自居的疯狂创业者们,无时不刻都在思考一个问题&mdash;-我该“颠覆”哪一个传统行业?众多躺枪的传统行业中,近些年被提及最多的、认为到了最危险关头的就是“教育”,通过谷歌搜索“在线教育”关键词,可以搜到大约上百万条记录,截至到2015年底,我国从事在线教育的企业已经有8000多家,其中有47%的公司获得了融资,已经有16%的企业开始了盈利。这个市场容量巨大、拥有绝对的刚性需求的行业,很多先驱(OR先烈?)已经尝试通过多种互联网手段介入,“在线教育”仿佛一夜之间成为一个热词。</p> +<p>近两年我也简单体验过一些在线教育的产品,也确实从中学到了不少东西,主要的体验有:</p> +<p>1、国内和国外的公开课网站。主要用来学习国内外大学开设的基础知识教程,包括但不限于数学、历史、自然科学、计算机等方面的基础理论知识。这部分的体验一般,主要问题是缺少与老师的互动,遇到不会的问题难以独立解决。</p> +<p>2、国内专业领域的教学网站。主要是专业技能教育,类似技能培训班,但以互联网为载体,学习了编程语言、摄影、Photoshop、绘画、乐器等技能相关的内容,体验良好,尤其是对于计算机编程语言的学习,目前的技术已经做得比较互动话,可以在线进行编程训练(用户端提交代码,由服务端判断答题是否正确),这方面做的比较好有国外的<a class="link" href="http://www.codecademy.com" target="_blank" rel="noopener" +>codecademy</a>和国内的<a class="link" href="http://www.imooc.com/" target="_blank" rel="noopener" +>慕课网</a>,但是在课程内容上存在不够系统、较为分散的问题,缺少以某种现实中具体应用为主题(比如高并发后端架构)出发的课程设计。</p> +<p>3、各种在线的培训班。更具体的专业技能,传播方式以qq群、在线视频为主,专业性很强,有讲师与学生互动,但是良莠不齐,部分专业内容与现实中应用的东西存在脱节,放在现实的工作中难以直接成为生产力。</p> +<p>我作为一个在线教育产品的用户和受益者,以及一个从事互联网行业的入门者,也简单谈一谈对未来在线教育发展的看法和期望:</p> +<p>1、传播载体提升。当前的在线教育内容大部分以静态视频为主,缺少互动,随着技术的发展和互联网硬件资源的增强,实时视频直播肯能会成为主流的在线教育手段,当前已经有人在探索通过游戏直播网站进行专业技能的培训,甚至开始通过手机直播校园课堂的实况。比起静态视频,直播的互动性大大增强。</p> +<p>2、教程内容专业化。目前的教程内容多数仍倾向于普及基础入门知识,缺少专业性强、内容深入的技能培训,未来将出现针对具体行业细分领域的培训资源,以前只能通过专业院校或者培训班才能学到的内容,未来可以直接通过互联网学习,不过非常细分的专业领域,要想获得高质量内容,可能需要付费。</p> +<p>3、优质资源干掉劣质资源。线上最大的好处是内容复制与传播的成本较低,一个优秀的教师如果在线下同时只能教百名学生,而放在线上则可以同时对成千上万(甚至更多)名学生讲课。这样以来,劣质资源将很快没有市场,大家都倾向于寻找教的好的教师,反正对于优质资源来说就是增加服务器的事儿。</p> +<p>4、一些不以教育为主营方向的生产型企业可能会成为产生高质量在线教育资源的基地。现在的企业尤其是信息化服务行业普遍面临学校教育与现实工作脱节的问题,应届毕业生往往需要半年甚至更长的时间才能在具体的工作中产生价值,企业对此的解决办法是进行内部技能培训。这些企业的培训内容往往比目前的在线公开课更具有针对性和专业性,所以这些资源在未来可以以互联网为载体,经过包装后放在线上,为更广大的群体提供更加专业和细分的服务。</p> +<p><a class="link" href="http://www.ieforever.com" target="_blank" rel="noopener" +>恒华科技</a>旗下的梦工坊科技即是上述思路的实践者,其近期推出的“课+”产品汇集了大量专业化行业培训课程,采用静态视频、在线直播、线上社区、线下实战练习等多元化教育手段,面向社会公众群体提供优质的免费教育服务,此举一方面解决了教育脱节问题,又为企业培养了更多的可用人才,既满足企业需求又回馈了社会,可谓双赢。</p>前端技术的一些思考https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/Sat, 26 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/<p>随着技术的革新,浏览器(包括移动端浏览器)性能越来越强劲,网页所能呈现的内容也越来越丰富,从最早的只能展示静态的文本和图片,到通过Js语言和AJAX技术动态修改页面元素,再到HTML5标准所支持的Canvas绘图画布,在浏览器里已经几乎可以实现以前桌面软件所做的任何事情,虽然距完全替代原生语言开发软件还有一段路程,但是就像现在的新媒体替代报纸、杂志、电视似的,这是迟早的事情。</p> +<p>对于目前前段技术领域所存在的问题,进行一些思考。</p> +<p>1、编程语言的特性: +Javascript这门语言确实存在各种问题,据说发明这个语言的哥们当时只花了一个星期的时间来完成,在编程的时候只图一时爽快,很多东西没有考虑到位,比如“面向对象”,采用了与传统的基于“类”截然不同的一种方式,使用起来有些蹩脚,缺少语言层面的“模块”化支持,导致相当长的一段时间里,前段代码混乱不堪,全局变量到处飞。不过随着新标准(ES6)的定稿,以及以谷歌浏览器为首的新兴浏览器对于标准的快速推进,相信这一局面会在三年内得以改善,对于有志于前端开发的技术人员,现在就应该开始使用ES6的标准编写代码了(支持class、import等关键字)。</p> +<p>2、浏览器兼容的问题: +浏览器兼容一直以来都是前端工程师的噩梦,每年因为兼容性问题而导致的工作量浪费不计其数。这里面最大的问题是老旧的IE浏览器没有退役导致的,而老旧的IE浏览器没有退役是因为相当多的人在目前还坚持使用WindowsXP系统,这个问题目前连微软都头疼,不过从我的观察来看,身边使用XP系统的越来越少了,所以我们再做新系统的时候,不妨直接抛弃那些老版本浏览器,用更好的产品体验吸引那些坚持用老旧IE浏览器的去升级。这是对新标准的最好推动。</p> +<p>3、大型应用的架构: +无论是传统桌面程序还是后台程序,都有多年的发展所积累起来的成熟架构和可复用框架,对于模块化、插件式、分层等设计思想都有着良好的最佳实践。但对于前段编程来说,这些目前仍处于战国时代,各种不成熟的框架和构建技术在混战,而且发展迅猛,几乎每天都有新的框架和工具出现,对于新手来说往往纠结到底该加入到什么阵营中去。但是实质上目前不需要纠结这个层面的问题,正因为都不成熟,所以尽可以快速选择一个,然后基于一套体系去实践,等跳过各种坑之后,你会发现殊途同归,大家的思路都是一致的,无非就是“数据与界面分离”、“自动化构建”、“组件式开发”。</p> +<p><em>不过我目前看好Facebook阵营的webpack、reactjs等技术未来的实质标准很可能在此阵营产生</em></p> +<p>4、何时替代原生开发: +移动端的程序尤其是游戏,短期内难以替代,因为性能问题还存在差距,但是管理类应用程序会很快被前端技术取代,PC上的桌面软件除了那些专业的生产力软件比如CAD、PS等和大型游戏,其他的也很快被前端技术取代。所以我们以后再进行技术路线选型时,需要考虑技术的发展,认清趋势,属于前端工程师的时代已经到来。</p>给初入职场人员的一点儿建议https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/Sat, 19 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/<p>前一段时间公司开展新一届应届生入职培训,我有幸作为讲师对他们进行了一些工作技能培训,期间有同学表示期望得到工作技能以外的职场建议,由于当时没有提前准备,我就现场随意说了几条,现在抽时间正式整理一下:</p> +<p>0、及时汇报工作进展:</p> +<p>这条建议执行起来简单有效,也是我刚参加工作时我爸给我的建议,十多年来,我一直认为这是对我工作最有效的建议,如果我的工作经验必须浓缩成一句的话,那就非这句莫属。展开来说,实际上是对于工作中沟通上的建议,即主动沟通,不要等着别人催问,无论是甲方还是上级或者是同事,在团队协作时都要主动汇报自己工作的进展情况,千万不可等到出了问题,最后一刻再让整个团队因为你的问题进入紧急状态,即使你的工作开展很顺利,也要主动沟通,一方面给大家信心,另一方面也好让团队能有优化任务安排的空间。</p> +<p>1、善于进行工作总结:</p> +<p>有一个段子,说有个同学去面试,问及工作经验,曰:“我已有5年工作经验。”面试官查看其简历发现仅有三年时间而已,于是质问之,答曰:“另外两年是算上了加班时间。”听完笑过之后,值得深思,现实中确实存在虽工作三年却比工作五年者还有工作经验的人,不过并不是因为加班,而是因为其善于进行工作总结。</p> +<p>养成经常进行总结的习惯可以使你飞速进步,避免犯重复错误,且对于工作中的成果能进行深度思考,激发下一步行动的灵感。具体做起来,可以从记录工作日志、每日工作总结开始,每天都要记录当天所做的事情,此为基础,然后再进行分析,分析当天遇到的问题,反思自己所做的决策是否正确,以后如何修正,顺便还能把下一步行动考虑清楚,第二天的工作思路也有了。</p> +<p>2、学习高效时间管理:</p> +<p>如何进行高效的时间管理是一个比较大的话题,不可一蹴而就,需要长期坚持改进,我所知道的也是我一直在执行的方法比较简单,就是每天给自己设定目标,难度和数量要适中,比如三件事情,且这三件事情要先挑困难的做,这样会越来越轻松,如果先挑容易的做就会导致你在工作的时候一直处于焦虑状态直到全部完成才能放松。</p> +<p>3、缩小关注圈,扩大影响圈:</p> +<p>在这个咨询爆炸的时代,我们面临的问题不是知道的太少,而是知道的太多。知识越多,或者说想的越多,往往越缺乏行动力,考虑一万遍也不如亲自试一下,不要关注过多自己无法掌控的信息,尽量缩小到一个可控的范围,通过具体的行动来提升自身的能力,从而扩大自己的影响圈。</p> +<p>4、做一个靠谱的人:</p> +<p>早年间看到过一句话,“这个世界从来不缺有能力的人,缺的是靠谱的人”,当时看完感觉深以为然。中国儒家文化提出的“仁、义、礼、智、信”全部做到太难了,作为职场新人不妨倒着来,先从“信”开始,做到了说话算话、不推诿责任、真诚对待他人就离靠谱不远了。虽然当下这个社会的诚信状况不容乐观,但是只要自己多靠谱一点儿,这个世界就多了一个靠谱的人。</p>人工智能快点儿来吧https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/Sat, 12 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/<p>谷歌的AlphaGo由于赢了国际围棋大师而出尽了风头,引起了一场关于人工智能(AI)的讨论,粉丝们纷纷奔走相告,表示这又是一个里程碑,人工智能的时代将比社会主义高级阶段更早的到来。</p> +<p>不过也有部分人表示担忧,技术的发展是加速的,人工智能是一列高速前进的火车,我们等着它来,结果他呼啸而过,远远将我们甩在身后,因此开始担心人类文明的未来会不会被机器文明接管。</p> +<p>当然还有一些调侃的声音,比如“虽然阿狗赢了围棋但是让它来中国肯定赢不了(因为连不上谷歌的服务器)”,“虽然赢了围棋但是让它来中国炒股可能还赢不了一个大妈”。</p> +<p>悲观的考虑,人工智能可能永远也赢不了人。</p> +<p>虽然作为科技粉丝,我是十分希望在未来的某一天,机器文明能够崛起,但是就目前来看,希望仍然渺茫。它可能在某个细分的领域(比如下棋、计算、做菜等)远远超越人类的能力,但是那距离我们设想的智能还相去甚远。</p> +<p>从技术上来说,目前所采用的手段借助于硬件的发展和数据爆发的优势,让机器可以基于大量的训练来进行深度学习,但即使是目前最牛的人工智能程序,抓取整个互联网的数据进行训练,到最后还是很难分辨照片中的动物是一只狗还是一只猫,而人类的三岁小孩一眼就能识别出来。所以仅从日常技能上人工智能就被甩了好几条街。</p> +<p>假设随着科技的发展,人工智能程序可以做到在日常技能上超出人类原始本能,但还差了一个关键因素,它没有灵魂。没有灵魂具体表现在,人工智能很难有自我意识,就是说它不知道它存在,所以它不会撒谎、没有感情、只能做出理性的选择,我们永远不会认为它是活的。</p> +<p>乐观的考虑,也许某一天,某个程序在运行中突然自我觉醒“行深般若波羅密多,照见五蕴皆空”,届时才是真正的里程碑吧。</p>跑步一周的感受https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/Sat, 05 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/<p>好吧,我坦白,由于不可抗拒之因素太多,导致我本周只跑了四次。而且由于体能因素、并出于不给首都添过多麻烦的目的,暂缓执行下班去奥森公园长跑的计划,先在小区内绕圈(我在地图上量了一下,一圈大概1.6公里),每次两圈。</p> +<p>多年没跑步了,以至于很多人认为我在开玩笑,孙敏慧率先在微信上狠狠讥讽了我一番(我善意的认为她也可能是出于激励我的目的),断定我不能坚持下去,我妈则担心我把本来就贫瘠的肌肉也跑掉,还有朋友劝解我不可操之太猴急,刚开始先来个几百米意思一下,以防受伤,当然更多的是给予了鼓励和关注,谢谢。</p> +<p>从生理上来说,刚开始跑唯一的感觉就是,难受和枯燥,根本没有功夫思考,所以也算放空大脑了,尤其是第一圈,还没跑完就感觉不行了,气喘吁吁,心跳加快,后来就开始能感到出汗了,先是额头渗出汗水,一会儿就被风吹干,然后再渗,身体开始出汗,秋裤开始粘上(没经验,忘脱了),最后鼻涕也出来了,就差眼泪了,于是算是半跑半走的坚持了两圈。</p> +<p>后来再跑就没那么累了,速度也比第一次快了一些,但是也不敢冒进,一旦感觉太累就停下来或者放慢速度,如果跑过某段疲劳难受的时段,甚至还感觉比较轻松。</p> +<p>从心理上来说,刚开始确实有些不太好意思,总担心给过往的司机增加心理负担,给遛狗的老人带来惊吓,或者有其他跑步的美女过来搭讪,我要是搭理她,则耽误我功夫,我要是不搭理她,她该有多没面子。</p> +<p>不过一旦跑起来就无所谓了,因为什么顾不上考虑,唯一能做的就是数自己的呼吸,或者用手机换一首更激进的歌,碰到那种软绵绵容易让人丧失斗志的歌,比如《Let it go》(放手吧),赶紧切,换成《We can&rsquo;t stop!》。</p> +<p>不管怎样,我还是尝试了去坚持,也不准备将来能跑多远,或者能跑多好,有条件就坚持下,没条件就创造条件。</p>准备开始跑步https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/Sat, 27 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/<p>锻炼身体的计划早已提出,也该落实下来了,趁现在温度回升、沙尘暴还没来,抓紧实施计划。除了遇到不可抗拒因素(比如恶劣天气、加班、与朋友喝小酒等),争取坚持每天跑步半个小时,我想试试。</p> +<p>选择跑步的地点确实是一件比较头疼事情,经过仔细斟酌, 初步选定三个可以跑步的地方。</p> +<p>首选是在小区里,我们小区环境还算不错,道路、绿化都比较好,一圈下来估计也有一公里,就我目前这状态,两圈已是极限,所以距离足够,但是院内小车比较密集,偶尔还有遛狗的,如果不小心可能会踩到shit。再有就是时间上不太好安排,如果早起跑步的话,需要比平时上班早起个把小时,而且据说早起跑步容易引起心脏问题,下班后到家也比较晚,无论是饭前空腹跑还是饭后跑,都不太合适。所以只有周末的时候可以在小区里跑步,那时可以合理安排时间,而且周末院内车也比较少。</p> +<p>工作日的时候可以选择在下班路上跑步,每天出了地铁之后有一段新修的公路不错,宽阔、平整、少车、安静,非常适合,唯一的问题是目前还没设置路灯,晚上黑灯瞎火的在那儿跑可能比较危险,也容易吓着路人。</p> +<p>还有一个比较激进的方案,不知道是否具有可行性,每天从公司回家的时候,乘坐8号线,在奥体公园下车,然后沿公园一直跑步,穿过森林公园,到林翠桥再上车,我在百度地图上量了一下,大概4公里,距离合适,而且环境优美,大概是最适合跑步的地方了,当然更激进的方案是沿着8号线直接跑回家,不过要是那样的话我估计还没到家我就挂了。</p> +<p>运动装备方面,跑步应该是最简单的了,一双鞋、一副耳机足矣。</p> +<p>我本来还想去网上搜索一下相关攻略教程啥的,谁知那些文章越看越闹心,无论是姿势还是穿戴,啰里啰唆,甚至还有视频教程,把简单事情弄得太复杂,索性不去管这些。</p> +<p>先跑起来再说,不用介意姿势是否正确,路线是否合适,装备是否完善,对于跑步这种原始的本能,直接跑就是了,重要的是行动起来。再不跑步就老了。</p>关于“知行合一”https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/Sat, 20 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/<p>“懂得那么多道理,却依然过不好这一生”,好像是某部电影的台词,这句话曾经击中过很多人的心底,给人一种深深的“然并卵”的无力感,以至于相当长的时间里成为流行语,但我想说的不是这个。这话题如果换成不那么文艺的说法,可以简单的总结为,很多人都不能“知行合一”。</p> +<p>知乎上曾经有人问“为什么有的人好像什么都知道,现实中却依然不能成功?”,里面有个回答特别经典,大意是,如果某件事你没有真正做到过却认为你懂了,那么你是错的。即,“做不到,就是不知道”。很多人都经历过在课堂上被老师带着做题,思路怎么捋怎么顺,感觉很简单,以为懂了,一旦需要独立完成时却发现步步维艰,殊不知自己是被老师一步一步带入到某个境界的。</p> +<p>我的微信朋友圈里有相当多的人非常热衷于转发“是男人就要做到的十二条”、“做到这三点你就牛逼了”等等一大堆心灵鸡汤,为什么为转发呢?我考虑过这个事情,原因其实很简单,因为转发者十分认可这个文章,不过自己也很难做到,但是呢,在自己转发的那一瞬,仿佛自己懂了这个道理,离做到这些仿佛近了许多,心理上得到了莫大的安慰,其实用处不大。</p> +<p>我自己也有这个毛病,每当在网上发现了比较好的知识型文章,草草的浏览一遍之后,立即点击鼠标将之迅速放入收藏夹或者印象笔记中,感觉以后肯定用得到,也肯定会在仔细学习和翻看,其实,大部分这样的文章都被永久的放在那里了,浪费了不少磁盘空间。</p> +<p>做到知行合一太难了,从古至今几千年来,做到的不过寥寥数人,但凡做到的,都十分了得,成就了名垂千古的事迹,比如明朝的王阳明,其开创的“心学”主打思想就是“知行合一”,影响了数代人,以至于民国时期那个著名的教育家在领悟到“知行合一”的能量之后,立马将自己的名字改为了“陶行知”。</p> +<p>反思一下,我们可能不需要过度的去追求懂得太多事情,可能更应该不断检视自己,能不能将自己所学所知运用到现实中,写到这里我又想到,我们学的论语第一篇,“学而不思则罔,思而不学则殆”,孔子他老人家果然看的更透彻,啥话都让他一个人说了,烦。</p>写信https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/Sat, 13 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/<p>现在应该没有人再写信了吧,在互联网和移动通信还么有普及之前,书信一直以来都在亲友的沟通中扮演着重要角色,无论是在外漂泊的游子,还是处于热恋中的情侣,提起笔来认真写一封书信,比起现在的电子化信息,都是一件十分充满仪式感的事情。</p> +<p>书面文字比起电话里的三言两语,更显得正式一些,尤其是信里经过仔细斟酌的句子,每一个字都可能是反复推敲的结果,碰到某些段落,还会停下笔来,一手托腮,盯着烛光,沉思一会儿。</p> +<p>相对于现在随写随收的电子信息,书信的延迟反而有一种古典的韵味,一封寄出的家信可能需要数天甚至更长的时间才能收到,接到回信的时间更是难以预料,所以在寄出信封的每个日子都可以在期盼中度过。</p> +<p>由于有了信纸作为载体,书信比起一般的信息有了更多的保存价值,有时候,在回信还青黄不接的时候,还可以将以往的、泛黄的信笺抽出来反复阅读。</p> +<p>当然了,即使是在现在这个信息快速消费,比较浮躁的年代,还是可以以写信的心情去写一封电子邮件的,虽然已经没有了提笔写字的那种谨慎,虽然信纸换成了发光的屏幕,但如果能有心去认真的写一封信,那感觉想必也是极好的。</p> +<p>希望我们都能慢下来,去捡起以前的那些,有仪式感的事情。</p>老家的年味儿https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/Sat, 06 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/<p>希望简书能够早日提供横屏版本的app,这样用外接键盘写字就更爽了。条件有限,记录若干家乡过年的气息。</p> +<p>每逢过年都是走亲访友的密集时间,这个时候外地奔波的人们都放下手中的工作,忘记一年的辛劳,回到家乡,不顾舟车劳顿,抓紧时间与亲戚老友相约,在一起喝杯小酒,互道辛苦,推杯换盏期间,一边感慨岁月变迁,一边把脸上笑出褶子。</p> +<p>春天是个万物萌动的季节,每逢春节,都是相亲旺季,我走在人民广场,举目望去,一对对年轻人,或挽手,或并肩,有说有笑。广场的椅子在阳光下闪着柔软的光,一个春节下来,这个广场又不知成为了多少场淳朴爱情的起点。</p> +<p>孔明灯被美其名曰&quot;祈愿灯&quot;,由于没有大城市的空中管制,我们这里,每到春节的夜晚都有大量孔明灯被放飞,漫天的灯光与黑夜里的星星遥相呼应,一闪一闪,直到分不清哪些是星光,哪些是承载着人们良好愿望的灯光。</p> +<p>任何一个商场或市场都挤满了人,熙熙攘攘的人群仿佛一团带有年味的浓雾,迟迟不肯散去,价格或高或低,东西或多或少,大家都在体会一个&quot;逛&quot;字,无论有事没事,都要走到街上凑凑热闹,此时站在大街,什么都不用想,拿鼻子一闻也能知道,过年了。</p>过年的春联https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/Sat, 30 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/<p>对过年最大的感触就是贴春联了。大年三十早上,不睡懒觉,早早的起来,吃完早饭,就开始当天最大的工程,贴春联。先仔细撕掉去年的春联,慢慢擦洗干净,涂上浆糊,再贴上新的春联,最后用手仔细抹平,那一刻真正宣告一年的结束,和新年的到来。</p> +<p>老家的风俗比较淳朴,处处要讨一个吉利,所以除了在各种门上张贴门神(或福字)和对联之外,粮仓上要贴上“五谷丰登”,院墙上要贴上“满院春光”,门口贴“出门见喜”,水井贴“细水长流”,自行车上书“日行千里”(后来改贴小汽车上了,也算是名副其实了),就连猪圈也要贴上“六畜兴旺”。</p> +<p>上面这些只能算是基础工作,最重要的是要在客厅正当中贴上“请”回来的神像,两旁对联曰“一杯美酒敬天地,三柱清香谢神灵”,横批“玉皇大帝”,然后去厨房,在灶台旁边张贴灶王爷和灶王奶奶的神像,对联“上天言好事,下届保平安”,横批“一家之主”,最后在八仙桌腿上张贴“客来家中坐,先敬茶酒烟”。</p> +<p>最后一道程序是由家中首席执行官(一般是奶奶)正式焚香敬神,同时院中点燃一挂鞭炮,整个春联工程大功告成。</p> +<p>各家各户均是如此,春联贴完的鞭炮,宣告春节活动的正式开始,从这一刻到正月初五,就算是真正的“年”,我理解的过年就是这一段时间。</p> +<p>春联可以在集市上购买,但最好是能亲自用毛笔书写,每当这个时候,村里稍微会写字的就会成为各家争先请求的对象,农村人不会对书法造诣有多高评判标准,一般能把对联写出来,看起来不难看就行,我们那边文化教育程度低,我记得小时候好像见过有人将“玉皇大帝”错写成“玉皇大地”,就当是通假字吧,跟大人说了大人也不在意,以至于后来在北京见到“上地”的地名,也本能的进行纠错。</p> +<p>我之所以对这些风俗如此了解,是因为我从能站在地上端着浆糊碗开始,就开始在过年的时候跟家人一起贴春联了,贴着贴着,春联揭了一层又一层,也贴了一层又一层,不知不觉已经是我的孩子们在旁边端着浆糊了。</p>关于内向https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/Sat, 23 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/<p>我还记得上次看了一篇文章,里面讲到关于内向与外向的区别,相对比较内向的人,往往需要通过一个人独处来恢复精力,就像给手机充电一样,而外向的人不同,他们需要通过参与各种社交活动来获得精力,就是越玩越嗨的那种。内向的人往往都有丰富的内心世界,更加热衷于追求精神层面的快乐,而非物质享受,喜欢简单低调,而不是复杂奢华。</p> +<p>以我的了解来看,内向的人往往都会有一些社交障碍,与人沟通或者交流的时候存在困难,但这不算事多严重的问题,通过练习还是可以改进的,不会因此而做不好事情,但是无论如何,受性格的影响,要达到相同的沟通或社交效果,内向的人需要消耗更多的能量。</p> +<p>所以对于我们来说,重要的是要找到适合自己的充电方式,比如周末的下午,如果阳光很好,坐在沙发上一边晒太阳一边发呆,或者看一本书,或者看一部电影。可以放空大脑,放松心情,让自己静下心来,对于我来说这就是最好的休息。</p> +<p>当然,我们喜欢思考,喜欢幻想,我很享受那种&quot;身未动心已远&quot;的感觉,很多人喜欢旅行到处看风景,认为&quot;读万卷书不如行万里路&quot;,我对此持谨慎保留态度,我觉得如果没有经常思考的习惯的话,跑遍全球你还是你,天天在拉萨呆着你的灵魂也不会得到净化(你的脸反而会晒黑)。</p> +<p>我们不愿意跟很多人对话,或者说接触,那是因为我们不想做没有深度的交流,我们的好朋友都是那种可以就着一个话题而进行彻夜长谈的人,而且当进行这种深度交流的时候,我们的幸福感爆棚。</p> +<p>但总的来说,人都是生而孤独的,无论内向还是外向,终其一生都无法摆脱因孤独而产生的孤独感,所谓内向与外向的区别,只不过是大家在面对孤独的时候,所采取的应对方式不同,而已。</p> +<p><em>希望简书快点推出支持横评的app,这样用外接键盘打字就更爽了</em></p>说一说《大话西游》https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/Sat, 16 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/<p>在演艺圈里,如果我还能有一个偶像的话,那就是周星驰了。两个原因,一个是《喜剧之王》,另一个是《大话西游》。</p> +<p>我不知道我的朋友里面有多少喜欢《大话西游》的,但是我大学的几个好哥们,个个都很迷恋这部电影。</p> +<p>《大话西游》据说是95年拍的,然后又过了5年才火的,那一年我正好去大学,刚好网络开始普及,跟同学去网吧的时候,我把这部电影看了大概三十遍,那个时候我们寝室哥儿几个,基本上都把台词背了下来,吃饭的时候,你说上句,我就能接下句。</p> +<p>其实在此之前大概98年99年的时候,我就看过这个电影,还是在老家看的盗版VCD,当时没看懂,而且碟子划伤严重,断断续续,感觉乱七八糟的,剧情也衔接不起来,一直笑的比较勉强,就是不知道为什么,看到结尾的时候,有一种莫名其妙的难过。然后也没有多想,就忘了。</p> +<p>后来在大学才又得机会,终于完完整整的看了上下集,我们才看明白,原来这是一个跟西游记没有任何关系的故事,讲述了一个哥们从放浪不羁到充满责任心,然后缓慢被无聊的现实所阉掉的故事。桥段都比较有趣且非常耐人寻味,看似无厘头的搞笑,却蕴含着让所谓影评人所不齿的深意。</p> +<p>这部电影很长,完全颠覆了西游记原著里面的设定,唐僧变成了一个整天唧唧歪歪啰里啰唆的人,徒弟几个也不再是神通广大,而是个个心怀鬼胎、不讲义气。与之相反,白晶晶等各种妖精反而变得有情有义,因为各种机缘巧合,与剧中的主人公“至尊宝”产生了感情。“至尊宝”本来做着一份很有“前途”的职业&mdash;&mdash;“山贼”,而且手下还有一群不知道讲不讲义气的兄弟,无奈导演安排,上天给了他一份使命,需要成为齐天大圣,保着唐僧去取经。然后,让他先以为爱上了白晶晶,为了挽救心上人被牛魔王杀害的这个结局,通过月光宝盒向前穿越了五百年的时间,却“再”遇到紫霞仙子,那个在他心里留下一滴眼泪的人。</p> +<p>剧中的每个人都有自己的追求,但结果却都是背道而驰,正像陈世骧先生和夏济安先生总结《天龙八部》那样“有情皆孽,无人不冤”。</p> +<ul> +<li>主人公一心想当山贼,最后像狗一样去取经了,没当成;</li> +<li>二当家一心想取代主人公,被看穿,也没当成;</li> +<li>牛魔王一心想跟紫霞成亲,无奈人家不从,反而导致被孙悟空干死;</li> +<li>小妖只想做好本职工作,把唐僧吊死,无奈被唐僧先啰嗦死了;</li> +<li>白晶晶爱上了至尊宝,无奈最后要结婚的时候被紫霞的眼泪吓跑了;</li> +<li>紫霞幻想着心上人有一天会踩着七彩祥云来娶她,可是猜中了开头,却没猜中结局;</li> +<li>青霞跟紫霞斗了一辈子,最后一刻为紫霞献身了;</li> +<li>杨二郎的哮天犬一心想为主人立功,却因为动了凡心被炖了;</li> +</ul> +<p>每个人看完这部电影都会有自己的理解,把自己想象成为那个主角,在同情主人公的遭遇的同时,也在安慰自己。正是因为这样,它才让人产生共鸣和思考,我们应该思考什么,有人说:“每个人现在拥有的,可能就是别人奋斗一生梦寐以求的”,然而,在明白了那么多道理以后,我们却还是想反抗,想尝试,不安,并去追求自己的目标,虽然结局是固定的,但毕竟经历过那么多的曲折和精彩,可能也值了。我觉得这也是这部电影所能表达的积极的一面。</p> +<p>就像老一辈喜剧人陈佩斯说过的那样,喜剧的内核都是悲剧,表面上越是喜剧,内在里越是悲剧。有网友评论,看完《大话》笑了,说明你没看懂,看完哭了,还是没看懂,看完怔在那里,明白了造化弄人、世事无常,才是真的懂了。</p> +<p>电影里的原声音乐都很好,尤其是最后紫霞说“我猜中了开头,却没有猜中结局”时的配乐,简直太贴切了,我后来找了很久才找到。</p> +<p>为了防止剧透,此处删去五千字。好的电影常看常新,如果没看过的,我建议你看一下,说不定就能在里面找到你自己。</p>如何更高效的使用你的电脑https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/Sat, 09 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/<p><em>最近有人看我操作我的电脑,觉得整理的很整齐、很干净,能够高效地工作,并表示希望自己的电脑也能这样,我想了一下,决定利用自己的一些闲暇时间,我也整理一下思路,将自己在使用电脑时的一些“好习惯”分享出来,希望对你们有帮助。</em></p> +<p>##硬件</p> +<ul> +<li>首先,在硬件上,不用对CPU和硬盘容量要求太高,这两个东西目前的配置都是过剩的,如果有条件,建议你使用固态硬盘,内存则是多多益善,买你能买的起的最大的内存(摄影圈有句话,叫“买你能买的起的最贵的镜头”)。如果没有也没关系,现在随便一台电脑的配置都足够用(非专业工作或大型游戏,<em>打游戏的,你直接买xbox多好,一块显卡的钱就够了,而且体验还远超家用PC</em>)。</li> +<li>如果你说你有大量电影要存储,首先这不是好习惯,其次如果非得这样的话,请另外配置一个家用NAS,比你PC上的硬盘靠谱。</li> +</ul> +<p>##操作系统</p> +<ul> +<li>不要盲目崇拜Mac系统,如果你不是从事艺术、设计类工作,请老老实实使用Windows操作系统,建议使用Win8.1版本,那些Win7的死忠粉估计是真没用过8.1(同样的硬件配置,8.1比7跑的快又稳),Win10目前存在硬件兼容性问题,估计还得再等等才能使用</li> +<li>别再用Xp了,求你了,Xp上的IE浏览器顶多升级到8.0,你知道这给我们的前端开发带来多大的工作量浪费吗,整天兼容来兼容去的,为了祖国的发展和程序员的健康及家庭和睦,请升级你的操作系统</li> +</ul> +<p>##基础习惯</p> +<ul> +<li>不要安装任何杀毒软件,包括各种助手、管家、防火墙,不要被他们给你的错误安全感所洗脑,觉得你的电脑到处充满了病毒和危险,以及动不动就清理垃圾、整理内存、监测网速,完全没必要,让他们统统去死,windows自带的防火墙和杀毒防御足够用了。</li> +<li>不要关闭UAC,Xp以上的系统,带有一个用户体验很不好的功能,即如果有软件尝试高权限操作时(比如偷偷安装东西),windows会弹出一个警告界面让你选择是否继续,这个功能很有必要,尤其是现在很多流氓软件的情况下,但是很多人为了图省事儿,把他关了,后来就出现了自己明明啥也没动,一些流氓软件还是自动装上了的情况。</li> +<li>保持桌面的整洁,最好一个图标也别留,这样心情好,心情好了干活效率也就高了</li> +<li>如无必要,不要额外安装任何软件,只保留基本的办公软件和浏览器、音乐视频播放等就行了</li> +<li>安装一个靠谱的浏览器,建议是谷歌浏览器,或者火狐也行,开通云同步功能,这样收藏夹就不会丢了</li> +<li>系统自带的微软拼音输入法就很好用了,别安装其他输入法了(如果你还在用五笔,前辈,请受我一拜)</li> +<li>不要爱惜你的电脑,放心大胆的整,犯的错多了你就老实了</li> +</ul> +<p>##进阶篇</p> +<ul> +<li>固态硬盘不要分区,分区为了数据安全的想法已经过时了,要淘汰这种老思想</li> +<li>普通硬盘可以考虑分一下,将不同类型的文件按分区或文件夹归类,比如系统一个区、工作一个区、数据档案一个区</li> +<li>给自己的当前工作建立一个TODO文件夹,里面放需要解决和处理的文件或工作过程中的文件,但是一旦完成此项工作后,记得及时归档保存。</li> +<li>关于文件夹命名和文件命名,要尽量有意义,尽量长一些,别出现“新建文件夹13”这样的,会给将来的检索带来极大干扰</li> +<li>按照项目整理文件,而不是按照文件类别</li> +<li>使用云盘(推荐360网盘)保存备份你的数据,不用担心隐私问题,互联网时代没隐私</li> +<li>整理、善用你的浏览器收藏夹,这样省得每次都输入网址</li> +</ul> +<p>##大师篇</p> +<ul> +<li>如果你有秘密数据,我推荐一款软件TrueCrypt,可将文件加密后再备份,不过据说这个软件的加密算法被美国FBI破解了,不过你那点儿数据也犯不着动用FBI</li> +<li>有一款软件叫Everything,查询文件速度极快,如果你的文件命名比较有意义的话,可以快速搜索到,当然如果你都放在云盘了,云盘自身的搜索也很不错了。</li> +<li>善用快捷键,先说这些简单的吧 +<ul> +<li>Win+L,锁屏</li> +</ul> +</li> +<li>Win+E,资源管理器</li> +<li>Win+Q,快速检索应用或文件</li> +<li>Tab键是可以将光标跳转到下一个输入框,但是可能很少有人知道Shift+Tab是跳转到上一个</li> +<li>Win+1、2、3、4、5等,可以快速启动你锁定在任务栏上的应用</li> +<li>Win+X,进入最快捷的系统菜单</li> +<li>Win+C,另一个快速菜单,可以快速设置、关机等等</li> +<li>Win+D,快速回到桌面</li> +<li>PrintScreen,截屏,Alt+PrintScreen截屏当前活动窗口</li> +</ul> +<h2 id="丧心病狂篇">丧心病狂篇</h2> +<ul> +<li>善用Win+R(运行),直接启动各种程序</li> +<li>输入calc,启动计算器</li> +<li>输入mspaint,启动画图板</li> +<li>输入excel,启动excel</li> +<li>输入winword,启动word</li> +<li>输入cmd,启动命令行控制台(这个回头单聊吧)</li> +<li>输入services.msc,启动服务管理界面</li> +<li>输入gpedit.msc,启动组策略管理器</li> +</ul> +<p>##省事儿篇</p> +<ul> +<li>找一个像我这样的朋友,请他吃饭。</li> +</ul> +<h3 id="最近比较忙先写这么多想到再补充">最近比较忙,先写这么多,想到再补充。</h3>我坐在客厅的沙发上打字https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/Mon, 04 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/<p>我坐在客厅的沙发上</p> +<p>将我的手机支起来</p> +<p>晒着太阳</p> +<p>用小键盘打字</p> +<p>感觉美美的</p> +<p>想着你在哪里</p> +<p>是不是也和我一样</p> +<p>面带微笑</p>推荐几个我经常去的网站https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/Sat, 02 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/<p><em>推荐一些我经常去的网站吧,可能比较偏向技术宅。</em></p> +<h3 id="0技术类">0、技术类</h3> +<ul> +<li><a class="link" href="http://stackoverflow.com/" target="_blank" rel="noopener" +>http://stackoverflow.com/</a> 根据名字(栈溢出)就知道这是一个程序员相关的站点,之所以把它排在第一位,是因为它基本上是程序员每天必上的网站,各种编程问题如果在这个站上找不到解决办法,那几本上可以宣告在互联网上找不到答案了。即使没有遇到问题,也可抽时间浏览一下当前热门的问题,碰上自己能回答的,也别吝啬,热情回馈一下吧,据说很多国外公司在面试程序员时,在stackoverflow上回答的问题质量也是一个评价指标。</li> +<li><a class="link" href="https://github.com/" target="_blank" rel="noopener" +>https://github.com/</a> 世界最大开源社区,免费送你版本控制空间,可玩性很高,连微软等大公司也将自己的开源代码放在上面托管,牛人很多。想要成为牛人?先在github上follow那些牛人吧,看看他们在做什么项目,在写什么样的代码。</li> +<li><a class="link" href="http://news.ycombinator.com/" target="_blank" rel="noopener" +>http://news.ycombinator.com/</a> hackernews,《黑客与画家》的作者,硅谷著名孵化器创始人ycombinator创建的站点,很多科技创业项目首选的推广平台,此网站乍一看很粗糙,但是干货很多,经常有大神级牛人在上面发布作品。</li> +<li><a class="link" href="http://news.dbanotes.net/news" target="_blank" rel="noopener" +>http://news.dbanotes.net/news</a> 上一个网站的国内版,中文,国内著名DBA冯大辉创建,质量虽不比hackernews,但可以了解国内的技术形式。</li> +<li><a class="link" href="http://geek.csdn.net/" target="_blank" rel="noopener" +>http://geek.csdn.net/</a> 国内著名程序员网站CSDN出品的hacknews,文章质量良莠不齐,偶有精品,可以偶尔上去看看。</li> +</ul> +<h3 id="1学习提升">1、学习提升</h3> +<ul> +<li><a class="link" href="http://study.163.com/cloud/myCloudClass.htm#/cloudClass/index" target="_blank" rel="noopener" +>网易云课堂</a> 说网易为中国互联网的良心一点儿都不过分(百度去死去死),云课堂内容质量非常高,基本上可以做到足不出户读完各种大学,另外网易还翻译了很多精彩的TED演讲视频,TED爱好者的福音。</li> +<li><a class="link" href="http://www.imooc.com/" target="_blank" rel="noopener" +>慕课网</a> 免费学习各种IT技能,前端、后端、设计、架构等等,基本上如果你愿意学,可以自学成为全栈工程师,那些整天嚷嚷着就差一个程序员了的创业团队,上去看看吧。</li> +<li><a class="link" href="http://www.codecademy.com/" target="_blank" rel="noopener" +>Codecademy</a>在线学习编程网站的鼻祖,以前我Js和Python就是在这上面学的,艺不压身,多掌握基本语言吧,每个语言都代表一种编程思想。</li> +<li><a class="link" href="http://www.gogoup.com/" target="_blank" rel="noopener" +>高高手</a> 这家教Photoshop、设计和摄影,比蓝翔还要好。</li> +</ul> +<h3 id="2视野">2、视野</h3> +<ul> +<li><a class="link" href="http://www.zhihu.com/" target="_blank" rel="noopener" +>知乎</a> 不要多上,否则容易产生你掌握很多知识的错觉,佛家说,贪恋知识也是一种“贪”,但是确实可以开阔视野,增长见识,适可而止。</li> +<li><a class="link" href="http://www.quora.com/" target="_blank" rel="noopener" +>quora</a> 知乎就是模仿的它,问答质量非常高,但里面也充斥着各种鸡汤,如果想练习英文阅读能力,可以尝试一下。</li> +</ul> +<h3 id="3音乐">3、音乐</h3> +<ul> +<li><a class="link" href="http://ear.duomi.com/" target="_blank" rel="noopener" +>邻居的耳朵</a> 一篇美文配一首好歌,能让你经常发现以前错过的好歌。</li> +<li><a class="link" href="http://www.rainymood.com/" target="_blank" rel="noopener" +>rainymood</a> 这个网站只有一个功能,就是播放下雨的声音,催眠最佳。</li> +<li><a class="link" href="http://www.audiobar.net/forum.php" target="_blank" rel="noopener" +>音频应用</a> 国内第一的录音论坛。</li> +<li><a class="link" href="http://music.163.com/#" target="_blank" rel="noopener" +>网易云音乐</a> 不多说了。</li> +<li><a class="link" href="http://www.exound.com/" target="_blank" rel="noopener" +>叉烧网</a> 音乐器材是一个跟单反一样的不归路。</li> +</ul> +<p>###4、美图</p> +<ul> +<li><a class="link" href="http://500px.com/" target="_blank" rel="noopener" +>500px</a> 高质量图片网站,很多摄影师在上面出售作品,做PPT时用的到</li> +<li><a class="link" href="https://www.pinterest.com/" target="_blank" rel="noopener" +>pinterest</a> 图片网站,瀑布流图片站的鼻祖,做PPT时用得到</li> +</ul> +<p>###注:有些网站可能需要翻墙才能上。</p>2015年的个人总结https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Sat, 26 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>按照惯例,工作总结写完了,可以开始写个人总结了,只总结与工作无关的。</p> +<p>0、家庭</p> +<ul> +<li>按照年初的预定目标,要抽出更多时间跟家人一起,基本也实现了,比如陪赵老师逛了两次街(元旦和年末各一次),虽然全程一脸无奈、两股战战几欲先走,但也算破了纪录了,我还总结了一个技巧,只要赵老师试衣服,我就在旁边说:“哎呀,这衣服穿上没腰啊”,不一会儿赵老师就让我一边儿歇着了,后来我还为她写了首歌,叫《一千个买鞋的理由》;</li> +<li>儿子在我的引导下,现在每周都会用英文给我写一封信,写在纸上用手机拍了发给我,每一封开头的“Dear Dad”看着都很是让我有些小激动,我基本都能做到认真点评且鼓励为主,偶尔碰到不熟悉的单词,我还得查查再回复。只是他性格有些自闭,跟我小时候差不多,不擅长表达内心真实的想法。</li> +<li>女儿成长很快,今年入小学没少让我以及周围的朋友费劲(感谢大家),但好在最终还是如愿以偿,我也尽量在周末多抽出时间来陪她,不过她也越来越大了,心思也多了,现在我一下班,她已经不再冲出来抱着我的小腿坐在皮鞋上跟我说“爸爸你回来啦,爸爸我好喜欢你啊”了(那时她特别像《卑鄙的我》里的那个最小的小女孩)。一想到将来会有那么一天,她推开家门扯着一个男生的手,对着坐在沙发上抽烟的我说:“爸爸这是我男朋友”时,我就心碎(赵老师评论,如果到30岁还没有,你更心碎)。</li> +<li>父母正在慢慢苍老,不过心态还算年轻,今年暑假仍然过来检查了我的工作,相聚时间虽然不长,加上今年我中间又多回老家了几天,也算是响应国家号召,常回家看看了。我虽不爱打牌,但仍然坚持陪二老斗地主,无奈水平太次,每次都被我爸赢个精光。我爸控制欲极强,我说我周末吃饺子,他遥在千里之外还打电话跟我说,如果吃猪肉大葱馅的,以我的量,剁馅儿的时候必须只能放一根葱“那样剁出的馅儿才最好吃”。我虽心里呵呵,但嘴上还是像乙方对待甲方那样深表同意。</li> +<li>十一的时候,跟妹妹约定,她从深圳,我自北京,携家人在鸡公山顺利会师,一起游玩了几天,她还千里迢迢给我带了自酿的红葡萄酒,一喝上瘾,后来我自己也在北京酿了十来斤,无奈第一次制作,缺乏经验,口感偏酸,就没有好意思拿出去给朋友品尝,我自己受累都喝完了。</li> +</ul> +<p>1、健康,我的体重如愿增长了约3公斤,达到了历史新高度,67公斤(冬天、棉衣),上次去买衣服时惊喜的发现腰围已增长至二尺五。但明显缺乏锻炼,精力也不如以前,目前已经认识到问题严重性,虽然没法跑步,但准备多做家务(比如拖地),多走路少坐车,饮食规律、睡眠规律,将锻炼身体正式提上日程。</p> +<p>2、电影,今年还是看了很多不错的电影,有的在影院,有的在网络上看的,如果非让我给个排名的话<a class="link" href="http://movie.douban.com/subject/25773932/" target="_blank" rel="noopener" +><em>《爆裂鼓手》</em></a>应该是在第一位,明显是拍给“不疯魔不成活”的孤独者看的。<a class="link" href="http://movie.douban.com/subject/11584019/" target="_blank" rel="noopener" +><em>《海洋之歌》</em></a>是我近年来、乃至建国以来看过的最优美的动画片(又是爱尔兰这个忧郁的民族拍的),略伤感,但是每首配乐都可以单曲循环,每个画面都可以截图然后冲印挂墙上。<a class="link" href="http://movie.douban.com/subject/6985803/" target="_blank" rel="noopener" +><em>《少年斯派维的奇异旅行》</em></a>是一部意外惊喜,讲述一个天才少年走出误伤弟弟的心理阴影的过程,反正也是各种优美,适合某个周日的下午躺沙发上安静观赏。看过的新科幻大片反正就那么些,乏善可陈,倒是有一些科幻小制作非常出彩,比如<a class="link" href="http://movie.douban.com/subject/6722879/" target="_blank" rel="noopener" +><em>《她》</em></a>、<a class="link" href="http://movie.douban.com/subject/24696982/" target="_blank" rel="noopener" +><em>《I型起源》</em></a>等等。还有一些略文艺的比如<a class="link" href="http://movie.douban.com/subject/3991933/" target="_blank" rel="noopener" +><em>《深夜食堂》</em></a>、<a class="link" href="http://movie.douban.com/subject/1296778/" target="_blank" rel="noopener" +><em>《一树梨花压海棠》</em></a>等。国产电影中只有<a class="link" href="http://movie.douban.com/subject/25964071/" target="_blank" rel="noopener" +><em>《夏洛特烦恼》</em></a>留下深刻印象,其他一概不记得,这就是拍给我们80后看的,全程无尿点,悲剧的内核喜剧的外表,看的时候可以放心的抹眼泪,因为别人也不知是不是笑出来的。(写到这里我突然发现,明年需要降低电影预算,拨给读书)。</p> +<p>3、音乐,自从豆瓣FM下架了很多我收藏的红心歌曲后,我基本上就只用“网易云音乐”了,重新捡起了上班路上插着耳机听歌的习惯,以前总不舍得用耳朵,怕听伤了,后来想通了,和XX一样,有些事情是不能攒到老年时再做的。而且现在没那么挑剔了,苹果原装的耳塞就足矣,返朴归真了。(写到这里想起一个笑话,有一天早晨起床后发现有一只耳机不响了,后来大夫告诉我是右耳聋了,吓了我一跳,我还以为耳机坏了)。</p> +<p>4、看书,基本上都是在地铁上断断续续看的,比较有印象的有<a class="link" href="http://book.douban.com/subject/10785583/" target="_blank" rel="noopener" +>《思考,快与慢》</a>、<a class="link" href="http://book.douban.com/subject/4187411/" target="_blank" rel="noopener" +>《万物有灵且美》</a>、<a class="link" href="http://book.douban.com/subject/20452058/" target="_blank" rel="noopener" +>《The Nature of Code》</a>、<a class="link" href="http://book.douban.com/subject/1941558/" target="_blank" rel="noopener" +>《设计中的设计》</a>、<a class="link" href="http://book.douban.com/subject/26364209/" target="_blank" rel="noopener" +>《那些古怪又让人忧心的问题》</a>等等。看的比较杂,这些书基本上都可以开拓视野促进思考。比较实用的是我在年末的时候看了一本关于领导技能的书&mdash;-<a class="link" href="http://book.douban.com/subject/24371531/" target="_blank" rel="noopener" +>《周一清晨的领导课》</a>,感觉受益匪浅,书名虽然起的有些鸡汤,但是内容确实不错,对于中层领导解决在管理团队时存在的问题确实很有帮助,目前还没看完,我准备实践一下(知行合一),我身边的人,无论是不是要搞管理,我都准备向他们隆重推荐这本书。另外我在kindle上又看了两遍南怀瑾大师的<a class="link" href="http://book.douban.com/subject/1421659/" target="_blank" rel="noopener" +>《金刚经说什么》</a>,虽然看不太懂,但还是深深体悟到了什么叫“念念不忘,必有回响”。</p> +<p>5、其他,今年还是经历了很多,其中有很多意外的美好,也有痛苦的体会,但总的来说,还是好的,思想上有进步,心态也比较平和,不会为琐事计较,进一步明确了“助人为快乐之本、创造是幸福本源”的价值观,能够以比较积极的心态看待问题,乐善好施,更喜欢跟朋友聊天,尤其喜欢传递给周围的人快乐和正能量(承蒙大家错爱,无以为报,而且我觉得这也是“善”的一种)。</p> +<h3 id="对于未来的期望我考虑了一下有这几点">对于未来的期望,我考虑了一下,有这几点:</h3> +<ul> +<li>努力去创造美好;</li> +<li>发现更大的世界;</li> +<li>用心体验生活;</li> +<li>奉献,带给他人快乐,即善;</li> +<li>负责,承担责任与使命;</li> +</ul> +<p>具体点儿来说:</p> +<ul> +<li>对技术的热情不能消减,没有时间即使是挤时间也要坚持学习新技术,创造美好的事物;</li> +<li>坚持知行合一的理念,看再多的书和文章也不如真正去实践;</li> +<li>有意识的提升管理和自我管理能力,阅读管理书籍,并在现实中运用,坚持PDCA;</li> +<li>适量扩大社交圈,好朋友要常联系、常来往,缩小关注范围,降低信息噪音;</li> +<li>多做好事,以助人为决策标准,帮助他人成功;</li> +<li>锻炼身体,多做家务,多陪家人,即“负责”;</li> +<li>慢下来,尤其是在做决策时,需要认真考虑和分析,始终坚持原则与最初的目标定义,也是“负责”;</li> +</ul>我喜欢的段子,在2015https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/Sun, 20 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/<p>幽默不是对什么都不在乎,相反,幽默的人都很认真,而且需要勇气,一个敢于自黑的人一定是睿智又自信的。</p> +<p>能理解幽默的人,也一定是一个有趣的人,感谢那些幽默的段子手,使我在工作之余得到放松,下面是微博网友在2015年收集的一些网络段子,分享给大家,我已经主动过滤了一些低俗没品的(列位如果谁有需要请私下联系,反正我也没有)。</p> +<p>0、我这辈子最重要的三点是:岁月安好、懂得感恩、与你相随。总的来说就是 Fine,thinks and you。(@大哥王振华)。</p> +<p>1、世界五大王牌情报组织:CIA(中情局)、KGB(克格勃)、MOSSAD(摩萨德)、MI6(军情六处),BJCYQZ(北京朝阳群众)(@警察蜀黍)。</p> +<p>2、一个简易的提升逼格的方法:如果你愿意,你可以在简历上写自己是美国时代周刊2006年度人物,曾获2008年感动中国组委会特别大奖。不用担心吹牛被捉,因为这两年的获奖者分别是“everyone”和“全体中国人”(@英式没品笑话百科)。</p> +<p>3、遇见一个中国导游,他说从前最头疼的,就是带大团游客到处乱走,必须不停点人头回去找,不然很容易散。但现在他弄了一个随身wifi,免费提供给团员连接。从此游客们都紧紧跟着他,亦步亦趋,生怕离远了没信号,再也不担心队伍走散了。(@马伯庸)。</p> +<p>4、女孩喜欢男孩,每晚都和男孩聊天。可男孩要么半天回一句,要么干脆不理。女孩依旧主动着。终于在某一天,男孩突然回的很快,高谈阔论。女孩感动,努力终于没有白费,鼓起勇气问:“你终于对我有感觉了吗?”男孩淡淡地说:“不是呀,今天刚刚把三星手机换掉了。”(@福大校长)。</p> +<p>5、朋友说:“油价不能再跌了,要不只剩下税了!”(@傅蔚冈)。</p> +<p>6、黄晓明是一个青岛人,婚礼却在上海办,可见家乡的酒席是有多贵。。。(@江上渡)。</p> +<p>7、弟弟带了一群朋友回家吃饭,一会儿弟弟神神秘秘的到厨房对做饭的妈妈说:“这里面可有一个是你未来的儿媳妇。”妈妈头都没抬,说:“是穿白色裙子的那个吧。”弟弟惊讶的说:“妈,您真神了,怎么看出来的?”妈妈淡淡的说:“因为这些人里面我最烦的就是她。”</p> +<p>8、母语就是数钱的时候心里念的语言。(@laoyang945)。</p> +<p>9、晚上和女朋友吃完饭,我说:“待会儿把碗刷一下。”她说:“你自言自语的声音怎么这么大?”(@柳三便)。</p> +<p>10、刚才我女人在弄新买的面包机。她把内胆洗干净以后让我擦干,说:“你要擦得很干,一点水都不能有。要不然面包就做不好。”然后我死命擦了五分钟,里里外外都没有一丝水迹。接着她开始放配料。第一步,加入70毫升水。。。(@段子楼)。</p> +<p>11、印度舞蹈的精要是左手向下拍小狗,右手抬起拧灯泡,脚步动作是一边踩缝纫机,一边打转。</p> +<p>12、小时候每当我生病,母亲都会为我冲一杯咖啡,她温柔地说:“外国人都喝这个的。”幼小的我总是害怕咖啡,酸甜苦涩交错。如今我走遍米萝、上岛、星巴克都找不到小时候喝的那个味道,直到那天我喝了一杯板蓝根&hellip;&hellip;.(@张大进就是我)。</p> +<p>13、最近小区广场舞大妈们都不跳了,问下邻居大妈怎么不跳了,是不是感觉扰民不好意思了。大妈说:“不知道谁家的孩子穿个红肚兜,我们一跳他就在前面说,孩儿们操练起来!”</p> +<p>14、朋友家孩子满月,我用EMS给孩子快递了一份礼物。收到快递后,孩子高兴地打电话对我说:“谢谢您的礼物,我非常喜欢”(@剑神葡萄)。</p> +<p>15、唐僧师徒四人正在吃饭,突然“轰隆!”一生巨响,吓了大家一跳,唐僧抬眼望了望,指着山下修路炸碎的石头说:“悟空,你妈生二胎了。”</p>可能要用一辈子时间去学习https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/Sun, 13 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/<p>完成自定的作业,想到哪儿是哪儿。</p> +<p>说说“学习”本身,它可以是一种行为,也可以是一种态度。狭义上来说,“学习”可能指的是习得某种技能的手段,广义上来说,获取或领悟任何知识的过程都算是“学习”。</p> +<p>#“好奇” +对这个世界强烈的好奇心应该是最原始的学习动力了,大家小的时候都有很强烈的好奇心,那个时候世界充满了未知和不可预测,晚上没太阳的时候向日葵怎么办、天上的星星会不会掉下来、校长是不是不上厕所、电视机关了之后里面的人去哪儿了,等,很多事情等待我们去探索。等到这些事情有了“答案”,我们也长大了,老了,对很多事情不再感到好奇了,我们可以使用表情符号聊天、会通过微积分求曲面的面积、可以制定很详尽的工作计划并跟踪、知道计算机从按下电源开关后里面发生的一切事情不过是一堆二进制在流动,我们以为世界就是这个样子了,并号称树立了完整的世界观。</p> +<p>回顾人类文明的进程,现在的人类并不是最聪明的,或者很聪明,但是智慧不足,因为我们现在所做的事情,发出的那些看似看明白的感悟,最终发现都是古人考虑n遍以后剩余的思想渣渣,不信你去看看《道德经》。</p> +<p>所以,我不能被自己所谓的“世界观”所束缚,在想明白上述事情之后,我觉得我还是要在可控的范围之内保持好奇心,以及对未知的敬畏之心。(所谓可控的范围,是比如上次我去看耳鼻喉的医生,就想问一下我的鼻中隔偏曲是不是跟挖鼻屎有关,我怕他让我转到精神科,还是忍住了。)</p> +<p>#“求知” +多看书应该是最好的方法,所谓开卷有益一点儿也没错,现在大家都抱怨没有时间,实际上是一个伪命题,我们只是把时间用在了很多无意义的事情上,比如发呆、不断在手机上刷那些不痛不痒的新闻、主动看烂片等,这个时候脑子就在空转,时间久了就会引起各种问题,比如信息的碎片化导致根本无法长时间集中注意力,比如对于大量信息带来的焦虑,甚至感到“迷茫”,哈哈,很多人的迷茫其实就是因为这个导致的,静下心来看书就能解决。</p> +<p>上网去探索信息也可以,但是分内容的优劣,我觉得新闻类的几乎可以不看,重点关注一些与你相关的即可,可以去找一些不错的博客来看,具体内容根据个人喜好来定,比如我比较喜欢看一些技术类博客,很多博主写的都比较有深度,我以前喜欢使用谷歌的Reader阅读器来订阅博客,后来谷歌把它关了,没有更好的客户端了,好在现在移动端也有很多不错的订阅客户端(推荐“即刻”,鄙视“今日头条”)。</p> +<p>仅仅停留在信息获取上是远远不够的,网络在带来便利的同时,有一个很大的副作用,就是使我们失去行动能力,我们在硬盘上收集大量的资料,收藏很多篇非常认同的文字,沉浸在朋友圈分享的各种技巧里,就是懒得抬手去验证一下(这一段可以谱曲唱了)。我们很容易就能知道TCP的三次握手,也知道现代大数据的处理都基于Map Reduce思想,当我们看了一两篇文章之后甚至开始沾沾自喜,仿佛已经成了该领域的专家。孔子和孟子都说过“学习东西最糟糕的方法就是看很多书、听很多讲课、看很多视频,而不亲自动手去试一下”,创立了伟大心学的王阳明也说过“知行合一最牛掰”。所以亲自动手试一试,将领会的思想运用在现实中还是很有必要的。</p> +<p>#“创造” +这个世界上获取快乐的方式有很多,但是获得幸福的方法只有一个,那就是“创造”。消费东西很容易带来短暂的快乐,比如女生买包、男生买车,当时很爽,但只是暂时的,保持持续的幸福感就是不断去创造,不一定非得创造出实物,因为创造的过程本身就是快乐的,可以是写一首歌,一篇文章,一段代码,制造一段美好回忆等等,说到这里我突然想到那个只想当木匠的明朝皇帝,哈哈。</p> +<p>因为“创造”本身是只有智慧生命才具有的能力,所以我们才因为创造而感到幸福,再说远一点儿,宇宙本身是一个“熵增”的过程(我靠好高深),而“创造”恰恰是将“无序”变为“有序”的逆过程,可能这种叛逆感才是让我们感到很爽的原因吧。</p> +<p>#“坚持” +最近我一直在挑战自己,坚持了一些创造的习惯,简单的事情坚持下来应该也是一件伟大的事情吧,所以写到最后,我突然想起几年前的某个周末,我坐在马桶上,捧着一本《万物简史》,一边感叹宇宙的神奇,一边埋怨自己买书如山倒,看书如抽丝。然后,突然就像当年的须菩提那样,非常虔诚地,由衷地发起了一个愿望&mdash;-我要用一辈子的时间去学习。遂将我的签名改成了“好奇”、“求知”、“创造”,这三个词后来基本上作为我以后的衡量做一件事是否有意义的准则了。</p> +<p>###考虑到不违反最新的广告法,我谨慎地将文章标题前加了一个“可能”。</p>life-is-shorthttps://sbabybird.github.io/p/life-is-short/Sun, 06 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/life-is-short/<p>工作总结写的头昏脑涨,换换脑子。</p> +<p>每年的这个时候最容易引发各种感慨,年底,除了工作上需要总结之外,生活上也应该进行一次梳理,回顾这一年的体验,感受了多少幸福,经历了哪些痛苦,吃了什么,玩了什么,读了什么,写了什么,看了什么,听了什么,喝过几次断片儿,摔了几个手机,额。</p> +<p>可以总结,但不要陷入对回忆的感慨,应该以积极的心态去整理。现在流行一种病,缅怀青春,而且怀起来各种哀怨,哀怨声中尽情的去体验那种令人愉悦的忧伤,仿佛只有过去的才是美好的,对于未来和现在则是一脸迷茫。而且我发现这种行为有越来越年轻化的趋势,比如,金妍昨天跟我抱怨说,自从上了小学,压力很大,好怀念小时候,于是我给她买了个带奶嘴的水壶(简直行为艺术)。</p> +<p>去年过年的时候,我回老家,跟我妈抱怨,说时间过的飞快,转眼又是一年,感觉没干啥balabala。我妈没有拿爱因斯坦相对论那一套唬我,而是轻蔑的一笑,说,你之所以感到时间过得很快,可能是因为你的生活还很轻松快乐,过的不艰难,对于那些每天还在担心如何吃饱饭的人来说,可能就没那么快了。我竟无言以对。</p> +<p>我也有我的解释。我认为,随着生活阅历的增加,我们对于新鲜事物的敏感度越来越低,小的时候对于任何事物都很好奇,大脑无时不刻都在感受新东西,所以45分钟的课堂才显得那么难熬。到了对于任何东西都有了自己的认识之后,看啥都没那么新鲜了,所以才觉的时间飞快,感叹白驹过隙,光阴真荏苒。就连子都曾经站在川上曰:「逝者如斯夫,不舍昼夜。」</p> +<p>看来,life不是线性的,是一个加速过程,笑。</p> +<p>#我准备抽时间做一下2015年的个人总结#</p>关于“刷牙沉思录”https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/Sun, 29 Nov 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/<p>我近期新增了一个习惯,将我每天在地铁上、刷牙时或者其他发呆的时候,考虑的那些无聊或有聊的问题,整理出来,发在微信朋友圈里,并取名“刷牙沉思录”,话题比较跳跃,每天都不同,但有一点,这些都是我经过慎重考虑、认真分析过的问题。通过简单的一段文字,全方位体现了我对思考的热爱,以及我充分具备当一个哲学家(神经病)的潜质。</p> +<p>爱幻想、胡思乱想是我从小就有的毛病,基本上整个上学阶段,每堂课,我都能体验“身未动、心已远”那种灵魂出窍的感觉,老师在课堂上讲的眉飞色舞、唾沫飞溅,我盯着黑板,考虑如果老师是一个潜伏在我们学校的外星人,而我是不小心发现了这个秘密的人,我该如何向大家解释人们才能相信我。</p> +<p>我吃东西不少,但一直长不胖,这一方面很拉仇恨,另一方面,我想说的是,思考是很耗费能量的一件事情,每天睡觉之前,我都能感受到我大脑的不安分,这直接导致失眠和辗转反侧,我必须通过畅想一些事情,才能逐渐平息,慢慢睡去。好在通过多年的总结,有几个经典的设定可以供我可劲儿折腾。</p> +<p>比如其中有一个是,如果我走在沙漠里,荒芜人烟,各种供给也基本耗尽,这个时候我发现了一个重达三百多吨的金块,我该如何行动才能将这些东西带回。不过我不太喜欢这个设定,难度较大,而且带来的实惠太小。我比较喜欢银河系漫游这样的设定,驾驶一艘乳白色的梭子状飞船(太空中由于没有大气,所以飞船的外观可以很随意,无需考虑空气动力学),船体有四分之一都是透明的玻璃罩,我坐在飞船的控制台前,飞向银河系的边缘,不过一般还没飞出太阳系我就睡着了。</p> +<p>刷牙沉思录就是在这种条件下产生的,睡觉之前,刷牙的时候,满嘴的泡沫,看着水池里逆时针(说明我在地球的北半球)旋转的漩涡,有时就会有比较虚幻的感觉,会顿悟一些鸡毛蒜皮的事情,但是这个宇宙中的真理往往都是蕴藏在非常浅显的道理中的,所以我一般会怀着非常崇敬的心情将这些记录下来。</p> +<p>一个偶然的机会,我发现将这些东西发在朋友圈进行分享或许也很不错,这样也许能让喜欢我的朋友更加了解我从而更加亲密,讨厌我的人会更加坚定不移地认为我是一个傻Ⅹ而将我拉黑,从而减轻我的社交压力。如果有可能,我想我会坚持下去,不管还发不发朋友圈。</p> +<p>这些年我思考记录的东西,比较琐碎混乱,以前总觉得没有用,甚至是浪费时间,现在忽然想通了,其实这些思考之间是有联系的,在积累达到一定量的情况下,悟性被激发的时候就可以发现一些规律和更抽象升华的知识或方法论,也许就是常说的量变引发质变吧,大脑里的知识积累到一定程度,就是『大数据』了,呵呵。</p> +<p>#我可能会在每个周末的晚上写一篇短文#</p>SICP 课后练习题1.9https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/<h4 id="练习-19--下面两个过程各定义了一种加起两个正整数的方法他们都基于过程inc它将参数增加1和dec它将参数减少1-请用代换模型展示这两个过程在求值add-4-5时所产生的计算过程这些计算过程是递归的或者迭代的吗">练习 1.9 下面两个过程各定义了一种加起两个正整数的方法,他们都基于过程inc(它将参数增加1)和dec(它将参数减少1) 。请用代换模型展示这两个过程在求值<code>(add 4 5)</code>时所产生的计算过程。这些计算过程是递归的或者迭代的吗?</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nf">inc</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><p>解答:根据代换模型分别展开如下</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">5</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">5</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">6</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">7</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>根据展开可以看出,第一个计算过程是递归的,因为明显有一个逐步扩展然后又收缩的递归计算链条。第二个计算过程是迭代的,没有扩展、收缩的过程,而是使用a和b存储了常量。</p>忘掉GTD、忘掉所谓的高效习惯https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/Sun, 04 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/<p>一口气看完了三本《搞定》系列,我突然“顿悟”了,我意识到,根本不存在所谓的“时间管理”,在脱离了对自己目标清晰认知的前提下,任何时间管理的方法都是毫无意义乃至浪费时间的。</p> +<p>然而虽然很多教授方法的书籍里面也提到了这一点,却无一告诉读者如何对自己的目标找到清晰的认知。</p> +<p>无论是否学习过各种时间管理或精力管理的技巧,每个人实际上已经自成体系有了一套多年来摸索出来的方法,应对自身的工作、生活、欲望,出于对效率的无尽追求,不断贪心想要提升,人们发明了各种方法来管理时间,有简单的也有复杂的,这些方法没有例外,都是在告诉人们一件事情,那就是如果你的方法得当,所有的事情都可以有效掌控,你的人生最后可以变成一张写在纸上的待办清单。然而事实呢,恰恰相反,可控的永远是少数,未知远远大于已知,以有限的精力与未知做斗争无异于以卵击石,到头来弄个筋疲力竭,垂头丧气,改去寻找其他的方法,岂不知出发点就是错误的。</p> +<p>不如换个思路,放弃对方法的追求,去思考一些本质上的东西。</p>2014年的个人总结https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Sat, 03 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>今天是2015年的第三天,元旦假期就要过去,本打算在evernote上记录一下对新年的愿景,谁知写了半天,没保存上,全丢了,想起来还有个地方叫简书,就索性在这里写吧,既然准备动笔重新开始,不妨先总结一下过去的一年。</p> +<p>我的2014,这一年我过得比较平淡,也比较充实,认真工作、积极创新、乐于助人、波澜不惊,没事儿还看看电影、找朋友喝喝小酒吹吹牛,可以说相当的自我。我刚才又翻看了一下年初时写下的期待,基本上都实现了。</p> +<p>1、我个人在今年才开始使用智能手机(赵老师倒是早就用上了苹果,手机领先我一个世代),在此之前,我一直鄙视智能手机(电池不行、没有实体键盘输入不方便、软件装多了就慢等等),不过,在我用了一台大屏幕智能手机之后我彻底改变了看法(大屏就是爽啊,技术进步迅猛,现在的手机已经没有性能问题了),从此我的黑莓就躺在了抽屉里吃灰,我的包里也不用随时塞一个厚重的iPad了,笔记本电脑就更不用背了。对了,在中国移动的反复撩拨下,我终于也开通了4G,不必再忍受GPRS的龟速了。</p> +<p>2、今年的电影看得比较少,没有什么值得回忆的,暑假的时候我带孩子们去看了场『变形金刚4』,片子又烂又长,中途不得不去了两次厕所。</p> +<p>3、拜某局所赐,美剧也看得不多,反而省了时间做其他的事情。</p> +<p>4、利用业余时间,我学会了用Photoshop修片,在网上系统了学习了课程,而且与实践结合,将自己拍的照片调的还算满意,不过一看就是个新手,调出的照片远远就能闻见浓浓的后期味儿。</p> +<p>5、买了个电钢琴,给金妍练琴用,开始时我也跟着瞎掺和,甚至一起做指法练习,可以没坚持下来,现在她已经可以弹出完整的曲子了,我还停留在小星星阶段。</p> +<p>6、不过我在吉他的扫弦方面进步不小哦,至少我是这么以为的,因为听起来,不那么像噪音了,我甚至和金妍一起录了一曲『小苹果』,感觉还『蛮拼的』。</p> +<p>7、赵老师开车闯了个红灯,一下子就扣了我6分,从此我开车上路都多里哆嗦不敢开快像个娘炮,连老杨都比我开的猛。</p> +<p>8、读书读的不算多,但也陆续看完了几本,『ReWork』、『给青年的十二封信』、『禅与摩托车维修艺术』、『围城』等等,另外我又看了一遍『黑客与画家』,每次看都有新的收获。在办公室,还有一本道德经放在抽屉里,每当工作累了就拿出来翻一翻,虽然总是看不懂,不过用来缓解压力效果还是不错的。</p> +<p>9、陪家人的时间比以前有所增多,甚至去了一趟幼儿园参加家长互动的活动,由于以前去的太少,老师们都不认识我,不得不让孩子亲自出来指认。活动中,与孩子的互动环节,在老师的指引下,孩子们伴随着音乐给家长捏肩捶背无比亲昵,我看到了旁边一个像我一样的木纳父亲,那一刻,他的眼里竟泛着泪光。</p> +<p>回顾了过去的一年,再考虑一下我的2015,给未来一些愿景和期待:</p> +<p>1、坚持学习,为了兴趣和爱好去学习,并尝试做一些记录,去年年末的时候,我将SICP(计算机程序的构造和解释)的部分课后练习题做完后写到我的博客里,这是一个不错的开始,今年争取能做完一半,如果有余力的话,将The natural of code这本书的练习题也做了记录到博客中。</p> +<p>2、我的人生目标仍然是不断创造出美好的东西,继续保持好奇心,做好玩的事儿。每天的PDCA都要围绕这个目标进行。</p> +<p>3、不放弃自己的爱好,吉他、摄影、绘画、编程等等这些,多抽时间放在上面,为了防止以后不会写字,可以考虑使用钢笔临摹一些硬币字帖。</p> +<p>4、通过互联网优化自己的工作,关注最新动态,永远对技术敬畏。</p> +<p>5、多看书,kindle里没看的书还很多,争取每个月都读一本。</p> +<p>6、少上网,2014年已经有意识的限制自己的上网时间,2015年要做的更好,每天固定少量时间阅读英文咨询(hacknews、reddit、thenextweb等),每周固定时间阅读中文咨询(知乎等)即可。</p> +<p>7、多行动,少踌躇,别怕犯错。</p>SICP 课后练习题1.8https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/Mon, 29 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/<h4 id="练习-18-求立方根的牛顿法基于如下事实如果y是x的立方根的一个近似值那么下式将给出一个更好的近似值">练习 1.8 求立方根的牛顿法基于如下事实,如果y是x的立方根的一个近似值,那么下式将给出一个更好的近似值:</h4> +<p>$$ \frac{x/y^2+2y}{3} $$</p> +<p>请利用这一公式实现一个类似平方根过程的求立方根的过程。</p> +<p>解答:基本思路与求解平方根的实现是一致的,区别再有得到更好值<code>improve</code>的过程有变化,只需根据公式描述进行实现即可</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">/</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="nv">guess</span><span class="p">))</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="mi">3</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.7https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/Sat, 27 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/<h4 id="练习-17-对于确定很小的数的平方根而言在计算平方根中使用的检测good-enough是很不好的还有在现实的计算机里算术运算总是以一定的有限精度进行的这也会使我们的检测不适合非常大的数的计算请解释上述论断用例子说明对很小和很大的数这种检测都可能失败实现good-enough的另一种策略是监视猜测值在从一次迭代到下一次的变化情况当改变值相对于猜测值的比率很小时就结束请设计一个采用这种终止测试方式的平方根过程对于很大和很小的数这一方式都能工作吗">练习 1.7 对于确定很小的数的平方根而言,在计算平方根中使用的检测good-enough?是很不好的。还有,在现实的计算机里,算术运算总是以一定的有限精度进行的。这也会使我们的检测不适合非常大的数的计算。请解释上述论断,用例子说明对很小和很大的数,这种检测都可能失败。实现good-enough?的另一种策略是监视猜测值在从一次迭代到下一次的变化情况,当改变值相对于猜测值的比率很小时就结束。请设计一个采用这种终止测试方式的平方根过程。对于很大和很小的数,这一方式都能工作吗?</h4> +<p>解答:good-enough?当前采用的判断方式是,对比猜测值的平方结果与X的值之间的差距,当差距小于某个阙值时(比如0.001),就停止计算。当X很小或很大时,这种检测就会失败,比如,假设我们的阙值设置为0.001,那么当X本身小于这个阙值时,就会检测失败,得出错误结果,当X很大时,也会由于精度不足而一直达不到最佳猜测值,导致死循环。</p> +<p>因此,要解决这一问题,可以按照题目中给出的思路对good-enough?过程进行修改,不再判断猜测值平方与X的差距,而是判断两次猜测值之间的比率。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mf">0.00000000001</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.1622776601874535e-6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">100000000000000000000000000000000000000000000</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 1.0000000000001497e22</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>在新的<code>good-enough?</code>中,传入的是两次猜测值,所以还要修改<code>sqrt-iter</code>过程,在调用时计算两次猜测值。</p>SICP 课后练习题1.6https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/Tue, 23 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/<p>采用牛顿法求平方根的过程如下。开始时,我们有了被开方数的值(现在需要做的就是算出它的平方根)和一个猜测值。如果猜测值已经足够好了,有关工作也就完成了。如若不然,那么就需要改进猜测值(求出猜测值与被开方数除以猜测值的平均值),并重复这个计算过程。具体编写代码如下(在MIT scheme解释器中)。</p> +<p>定义<code>sqrt-iter</code>过程,与上述描述完全对应。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义改进猜测值的过程<code>improve</code>,返回猜测值与被开方数除以猜测值的平均值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">average</span> <span class="nv">guess</span> <span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="nv">guess</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: improve</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求平均数的过程<code>average</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">average</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: average</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义判断猜测值是否足够好的过程<code>good-enough?</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="p">(</span><span class="nf">square</span> <span class="nv">guess</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> <span class="mf">0.001</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求绝对值和平方的过程</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: abs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">square</span> <span class="nv">x</span><span class="p">)</span> <span class="p">(</span><span class="nb">* </span><span class="nv">x</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: square</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义最上层的过程,用于启动整个工作(使用<code>1</code>这个数字作为任何数的初始猜测值)。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">sqrt </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>执行<code>sqrt</code>过程,并以<code>9</code>为参数,求得平方根为<code>3</code></p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.00009155413138</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h4 id="练习16----alyssa-phacker看不出来为什么需要将if提供为一种特殊形式她问为什么我不能直接通过cond将它定义为一个常规过程呢alyssa的朋友eva-lu-ator断言确实可以这样做并定义了if的一个新版本">练习1.6 Alyssa P.Hacker看不出来为什么需要将if提供为一种特殊形式,她问:“为什么我不能直接通过<code>cond</code>将它定义为一个常规过程呢?”Alyssa的朋友Eva Lu Ator断言确实可以这样做,并定义了<code>if</code>的一个新版本:</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">new-if</span> <span class="nv">predicate</span> <span class="nv">then-clause</span> <span class="nv">else-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">cond </span><span class="p">(</span><span class="nf">predicate</span> <span class="nv">then-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">else </span><span class="nv">else-clause</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: new-if</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>Eva给Alyssa演示她的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">2</span> <span class="mi">3</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">5</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">1</span> <span class="mi">1</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>她很高兴地用自己的<code>new-if</code>重写了求平方根的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>当Alyssa试着用这个过程去计算平方根时会发生什么事情呢?请给出解释。</p> +<p>解答:</p> +<p>这个练习引入了一个新的思考,刚开始时,我以为是牵涉到了过程的局部参数概念,因为在新编写的<code>new-if</code>过程中,看似可以完成条件判断并返回正确的值,但是在本例中使用却存在问题,即在递归调用<code>sqrt-iter</code>时,传给该过程的<code>guess</code>和<code>x</code>为<code>new-if</code>的局部参数,被返回给了<code>new-if</code>这个过程,不会向上返回到上一层<code>sqrt-iter</code>里,这样就导致了改进的猜测值永远不会被使用,使得这个计算过程永远不会结束(除非第一个猜测值恰好合适),从而导致递归调用的陷入无限循环。我在<code>MIT-scheme</code>解释器里的执行结果是,解释器自动退出并提示我递归调用深度超出最大值。</p> +<p>上述看起来是合理的,但是后来我考虑了其他情况,及本书在前面章节里提到了if<code>(if &lt;predicate&gt; &lt;consequent&gt; &lt;alternative&gt;)</code>语句是条件表达式的受限形式,在执行时,先判断<code>predicate</code>是否为真,然后根据结果只执行其后<code>consequent/alternative</code>中的一个。如果使用本例新定义的<code>new-if</code>则作为普通过程执行,传入的参数会因为解释器使用应用序求值的原因,两个表达式都会被立即求值,反应到本例中就是<code>guess</code>和<code>(sqrt-iter (improve guess x) x)</code>都会被立即求值,后面的那句是属于递归调用,这样也会导致改进的猜测值永远不会被使用,陷入无限层的递归调用中。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Aborting!: maximum recursion depth exceeded</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>思考:</p> +<p>最初的时候,我的针对此题的思考方式是变量的作用域问题(可能lisp不会有此问题),后来发现,也许不是这样,而是由于对传入参数立即求值导致的,后续的网上搜索结果也显示出大家的答案都倾向于后者。</p>SICP 课后练习题1.4https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/<h4 id="练习14----请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型根据对这一模型的认识描述下面过程的行为">练习1.4 请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型,根据对这一模型的认识描述下面过程的行为。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.4,通过if判断,根据b的值决定对a b所使用的运算符是+还是-,如果b大于0,则组合式为(+ a b),反之则为(- a b),所以组合式结果永远返回a加上b的绝对值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: a-plus-abs-b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">-2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.5https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/<h4 id="练习15---ben-bitdiddle发明了一种检测方法能够确定解释器究竟采用哪种序求值是采用应用序还是正则序他定义了下面两个过程">练习1.5 Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用哪种序求值,是采用应用序,还是正则序。他定义了下面两个过程</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">p</span><span class="p">)</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">test</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span><span class="line"><span class="cl"> <span class="nv">y</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>而后他求值下面的表达式:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">test</span> <span class="mi">0</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>如果某个解释器采用的是应用序求值,Ben会看到什么样的情况?如果解释器采用正则序求值,他又会看到什么情况?请对你的回答做出解释。(无论采用正则序或者应用序,假定特殊形式if的求值规则总是一样的。其中的谓词部分先行求值,根据其结果确定随后求值的子表达式部分。)</p> +<p>练习1.5 『完全展开而后规约』的求值模型为正则序求值,『先求值参数而后应用』的方式为应用序求值,因此,在应用序求值的模式下,执行<code>(test 0 (p))</code>时会先求<code>(p)</code>这个表达式的值,而根据定义<code>(define (p) (p))</code>执行<code>(p)</code>会造成递归调用,解释器陷入死循环。而在正则序求值模式下,会先展开<code>test</code>过程,根据需要再决定是否执行<code>(p)</code>,在本例中,由于传入的<code>x</code>等于<code>0</code>,所以<code>(p)</code>不会被执行,因此不会陷入死循环。</p> +<p>所以,根据以上分析,如果解释器采用的是应用序求值,则解释器陷入死循环,如果是采用正则序求值,则解释器输出<code>;Value: 0</code>。</p>SICP 课后练习题1.1https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/<h4 id="练习11----下面是一系列表达式对于每个表达式解释器将输出什么结果假定这一系列表达式是按照给出的顺序逐个求值的">练习1.1 下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="mi">10</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 10</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> <span class="mi">3</span> <span class="mi">4</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 12</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">9</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 8</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 3</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">* </span><span class="mi">2</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="mi">4</span> <span class="mi">6</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">a</span> <span class="mi">3</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: a</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">b</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 19</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: #f</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="k">and </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">&lt; </span><span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"><span class="nv">b</span> +</span></span><span class="line"><span class="cl"><span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 4</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">4</span><span class="p">)</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">= </span><span class="nv">b</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="mi">7</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">25</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">2</span> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">&lt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">-1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.1的内容比较简单,基本上直接就可以计算出表达式的值,所有表达式都可以在mit-scheme的交互解释器里进行验证。</p>SICP 课后练习题1.2https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/<h4 id="练习12----请将下面表达式变换为前缀形式">练习1.2 请将下面表达式变换为前缀形式:</h4> +<p>$$ \frac{5+4+\Bigl(2-\Bigl(3-\left(6+\frac{4}{5}\right)\Bigr)\Bigr)}{3\left(6-2\right)\left(2-7\right)} $$</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> +</span></span><span class="line"><span class="cl"><span class="mi">4</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="p">(</span><span class="nb">/ </span><span class="mi">4</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: -37/150</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.2,直接将数学表达式转换为前序表达式即可,在写的时候可以遵循一下排版规则,即同一个运算符的表达式垂直对齐。</p>SICP 课后练习题1.3https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/<h4 id="练习13----请定义一个过程它以三个数为参数返回其中较大两个数之和">练习1.3 请定义一个过程,它以三个数为参数,返回其中较大两个数之和。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">max-three-number</span> <span class="nv">a</span> <span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">c</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">c</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">max-three-number</span> <span class="mi">42</span> <span class="mi">7</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 49</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.3,解决此练习中问题的方法比较多,本答案使用比较朴素的方法,先比较出最大的两个数字,然后将其相加,对于三个数字来说,先在前两个中选取一个大的,然后将其与后面两个中比较大的那一个相加。还有一种思路就是可以先定义出比较大小的方法,然后再调用之,或者先对数字按从小到大排序然后加最后两个,等等。</p>win8系统下使用笔记本作为wifi热点https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/Thu, 13 Feb 2014 00:00:00 +0000https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/<h1 id="win8系统下使用笔记本作为wifi热点">win8系统下使用笔记本作为wifi热点</h1> +<h2 id="背景">背景</h2> +<p>在没有无线路由的情况下,比如出差在宾馆,如果手里有一台可以上网的笔记本电脑,则可以给手机、平板电脑或者其他笔记本提供一个可以上网的wifi热点。</p> +<p>我平时在单位即通过此方式给我的平板电脑和手机共享网络通道,比较方便实用,近期在使用的过程中遇到一些问题,经过摸索,解决了问题,在此记录一下,方便以后查阅。</p> +<h2 id="环境需要">环境需要</h2> +<ul> +<li>一台通过有线连接上网(或者通过3G上网,就是说wifi网卡没有被占用)的笔记本电脑</li> +<li>安装有win8操作系统(win7应该也可以)</li> +<li>无线网卡芯片是intel的(否则可能不支持此技术),并使用了最新的驱动程序</li> +</ul> +<h2 id="基本步骤">基本步骤</h2> +<ul> +<li> +<p>打开具有管理员权限的控制台窗口(在win8系统下,可以通过按<code>windows+x</code>键,然后在弹出的菜单里选择『命令提示符(管理员)』)</p> +</li> +<li> +<p>输入如下命令 <code>netsh wlan set hostednetwork mode=allow ssid=&quot;mywifi&quot; key=&quot;12345678&quot;</code> <em>其中ssid后面的热点名称和key后面的密码可以根据情况自行决定</em></p> +</li> +<li> +<p>上一个命令完成后,如果没有异常的话,则输入如下命令 <code>netsh wlan start hostednetwork</code> <em>这条命令如果执行成功会显示『已启动承载网络』,在下次系统重启后需要重新执行,如果嫌麻烦则可以做一个批处理文件每次双击即可</em></p> +</li> +<li> +<p>成功启动承载网络之后,进入『网络和共享中心』点击『更改适配器设置』,此时在该页里应该可以看到一个虚拟网卡(名称一般叫MicrosoftVirtual WiFi Miniport Adapter),右键点击那个可以上网的网络连接(如果是有线连接就是那个『本地连接』,如果是3G的则根据情况而定,总之必须是那个可以上网的连接),选择『属性』,切换到『共享』页,勾选『允许其他网络用户通过此计算机的Internet连接来连接』,在下面的下拉列表里选择那个刚虚拟出来的虚拟网卡。确定即可。</p> +</li> +</ul> +<h2 id="常见问题">常见问题</h2> +<p>执行以上第二条命令启动承载网络后,有时会显示『无法启动承载网络,组或资源的状态不是执行请求操作的正确状态』,网上大部分的文章针对这个问题给出的解决办法都是更新网卡驱动,可是对于我的笔记本无效,因为我的笔记本电脑在前一段时间是好用的,后来不好用了,根据我的摸索,解决这个问题的办法是,去『设备管理器』下面的『网络适配器』里面找找,看看有没有被禁用的设备,比如『微软托管网络协议』,如果禁用了再重新启用即可正常使用此功能了。</p>使用vs2008编译mongodbhttps://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/Thu, 07 Nov 2013 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/<h2 id="背景问题">背景问题</h2> +<p>mongodb在windwos下的官方编译包是使用vs2010编译的,从官网上下载的源代码在vs2008环境下不能直接编译通过,因为mongodb提供的相关配置文件是针对vs2010的,可能是因为mongodb最新的代码使用了部分C++11的特性,而vs2008没有提供对C++11支持的原因。可是我们在一个具体的项目上需要在vs2008环境下使用mongodb,只好通过手工修改部分配置和代码的办法完成编译。</p> +<h2 id="环境准备">环境准备</h2> +<p>mongodb是使用scons进行编译控制的,所以在进行以下编译之前需要安装并配置好如下环境:</p> +<h3 id="python27">python2.7</h3> +<p>官方建议是安装python2.7版本,而且要在环境变量PATH中加入python的安装路径和python/scripts的路径,以便在命令行中执行python脚本。 +<em>不过我在编译的时候使用的是python2.6版本,也没有发现问题</em></p> +<h3 id="scons">scons</h3> +<ul> +<li>直接去网上下载最新版本进行安装即可。</li> +</ul> +<h3 id="vs2008">vs2008</h3> +<ul> +<li>需要安装vc++的全部组件(主要是默认安装不带amd64的编译支持),如果只需要编译32位版本的话则可以忽略此条。</li> +<li>需要安装sp1补丁,否则会在编译时报错。</li> +</ul> +<h3 id="boost库">boost库</h3> +<ul> +<li> +<p>最好使用boost1.4.9版本,去官网上下载对应的源码包然后自己在vs2008的命令行环境下编译</p> +</li> +<li> +<p>编译boost的命令如下(只编译了所需库):</p> +<pre><code> bjam stage variant=debug --with-filesystem --with-thread --with-date_time --with-program_options --layout=versioned threading=multi toolset=msvc-10.0 --build-type=complete +</code></pre> +</li> +</ul> +<p><em>如果需要编译release版本,就把<code>variant</code>的选项改为<code>release</code>,如果需要编译64位的版本,就在以上命令中加入<code>address-model=64</code></em></p> +<h2 id="配置及代码修改">配置及代码修改</h2> +<h3 id="sconstruct文件修改">SConstruct文件修改</h3> +<p>SConstruct文件用于存放scons的关键配置信息,我们为了在vs2008下编译mongodb首先要做的就是修改mongodb源码下根目录的SConstruct文件。</p> +<ul> +<li> +<p>修改env配置,找到 evn = Environment</p> +<pre><code> env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log' +) +</code></pre> +</li> +</ul> +<p>在Environment里追加一条 <code>MSVC_VERSION='9.0'</code>,这是因为如果机器上有其他的编译环境,比如vs2010或vs2012,scons会自动使用他们的编译器进行编译,即使你是在vs2008的命令行环境下,我最初因为此问题困扰了很久,后来才只得强制指定编译器的版本,修改完成后如下:</p> +<pre><code>env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log', +MSVC_VERSION = '9.0' +) +</code></pre> +<ul> +<li> +<p>给编译器搜索路径增加你自己本地的boost库路径 +因为在编译时需要用到boost库,所以需要把你在本地的boost所在目录加入scons的环境,否则会报找不到boost头文件或链接库的错误,打开Sconstruct文件直接在最后加入如下代码</p> +<p>env.Append(CPPPATH=[&ldquo;d:/thirdlib/boost_1_49_0&rdquo;, &ldquo;d:/thirdlib/boost_1_49_0/boost/tr1&rdquo;], LIBPATH=[&ldquo;d:/thridlib/boost_1_49_0/stage/lib&rdquo;])</p> +<pre><code> *你在编译时需要将路径替换成你自己的* +</code></pre> +</li> +</ul> +<h3 id="准备stdinth">准备stdint.h</h3> +<ul> +<li>去这个地址<a class="link" href="https://msinttypes.googlecode.com/files/msinttypes-r26.zip" target="_blank" rel="noopener" +>https://msinttypes.googlecode.com/files/msinttypes-r26.zip</a>下载msinttypes,将压缩包里的stdint.h解压并复制到 <code>C:\Program Files\Microsoft Visual Studio 9.0\VC\include</code> 目录</li> +<li>修改mongodb源码目录下platform下的cstdint.h,将<code>#include&lt;cstdint&gt;</code>修改为<code>#include&lt;stdint.h&gt;</code>,将<code>#define _MONGO_STDINT_NAMESPACE std</code>这一行里的std注释掉,变成<code>#define _MONGO_STDINT_NAMESPACE /*std*/ </code></li> +<li>修改mongodb源码目录下util下的time_support.h,在文件开头加入<code>#include&lt;stdint.h&gt;</code>,否则在编译这个文件时会无法识别int64_t类型</li> +</ul> +<h3 id="修改windows_basich">修改windows_basic.h</h3> +<ul> +<li>修改mongodb源码目录下platform下的windows_basic.h,</li> +<li>在<code> #if !defined(NTDDI_WINXPSP3) || (NTDDI_VERSION &lt; NTDDI_WINXPSP3)</code> 之前加入 <code>#define NTDDI_WINXPSP3 0x05010300</code> 在<code>#if !defined(NTDDI_WS03SP2) || (NTDDI_VERSION &lt; NTDDI_WS03SP2)</code>之前加入<code>#define NTDDI_WS03SP2 0x05020200</code> 否则会报 &ldquo;32 bit mongo does not support Windows versions older than XP Service Pack 3&rdquo; 和&quot;64 bit mongo does not support Windows versions older than Windows Server 2003 SP 2&quot; 错误</li> +</ul> +<h3 id="修改listencpp和sockcpp">修改listen.cpp和sock.cpp</h3> +<ul> +<li> +<p>修改util下net下listen.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EADDRINUSE WSAEADDRINUSE +#define ECONNABORTED WSAECONNABORTED +#define EBADF 9 +#define ENFILE 23 +#define EMFILE 24 +#endif +</code></pre> +</li> +<li> +<p>修改util下net下sock.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EAGAIN 11 +#endif +</code></pre> +</li> +</ul> +<h2 id="开始编译">开始编译</h2> +<p>环境准备好之后,编译就比较简单了,打开vs2008命令行窗口,执行如下代码即可完成编译 +<code>scons --dd --32 mongoclient.lib</code></p> +<p>如果是编译release版本,就把&ndash;dd换成&ndash;release,如果是编译64位版本,就把&ndash;32换成&ndash;64</p>Hello World!https://sbabybird.github.io/p/hello-world/Mon, 29 Apr 2013 00:00:00 +0000https://sbabybird.github.io/p/hello-world/<h2 id="hello">Hello</h2> +<h2 id="world">World</h2>假日记趣https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/Thu, 07 Oct 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/<p>在姥爷家玩儿,看到桌上有零食,随手捏着就吃,吃完了,姥爷十分纠结地告诉我,那是给猫吃的。</p> +<p>家里的微电脑程控智能电压力锅坏了,拒绝接受一切指令,让我这个“技术人员”束手无策,赵老师将锅翻过来,用力敲击之,好使了。</p> +<p>家里的新房装修好了,我对于装修效果赞不绝口,老爸老妈和赵老师都感到很欣慰,毕竟这几个月把他们累的够呛,你们辛苦啦。</p> +<p>我把堆在角落里的老音响接好了摆在新房子里,认真擦去厚厚的灰尘,开机,每个喇叭都有声,一米多高的落地箱低音是很澎湃,还好这次的天花板很结实。</p> +<p>早晨睡眼惺忪地往院子里看,那里有老妈种在现实世界的菜,我说,这蒜苗长的真不赖,赵老师鄙视我说,才出去几年就分辨不出小葱和蒜苗了。天地良心,我是因为眼睛近视了,凑近了看绝对能分清。</p> +<p>小外甥才8个月就已经养成揪我耳朵的习惯,而且揪起来一脸享受的样子。</p> +<p>女儿在我面前跌倒,我表情平静既没有表示遗憾也没有对地板提出强烈谴责,她于是自己爬起来慢慢穿过客厅和饭厅找到赵老师,嗷嗷哭。</p> +<p>和儿子比赛跳舞毯,轻易将其击败。</p> +<p>哦也,打游戏我从来不让着他。这几天将老爸珍藏的佳酿喝掉了好几瓶,过瘾。</p> +<p>在我对他的白酒表示欣赏之后,他也表示突然听起来我的音响也很不错,于是我们都颇感欣慰。</p> +<p>临回北京的前一天晚上,腾讯终于发布s60v5版的“斗地主”,我半夜爬起来给老妈的手机装上,老妈终于能随时“斗地主”了。</p>如果他们生产马桶https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/Thu, 02 Sep 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/<p>没事儿再瞎畅想一下,如果这些科技公司生产马桶,他们将会生产出什么样的&mdash;&ndash;马桶?</p> +<p>微软生产的马桶将会有着华丽的外观,而且对你卫生间的配置要求很高,不过即使这样你还会发觉掀开马桶盖的速度十分缓慢,而且随着时光的流逝,冲水的速度会越来越慢,你去询问维修工程师,得到的答复通常是让你将马桶卸了重新安装一次。</p> +<p>苹果生产的马桶已经上市就会迎来大批的粉丝扎着帐篷在商店门外排队,马桶将会有着白色的外观,名字就叫“i马桶”,界面将会十分简洁,简洁到压根儿不提供冲水按钮,不过你可以再多花99美元买一个配套的冲水按钮模块,当然你也可以去淘宝上买一个高仿的。</p> +<p>Mozilla生产马桶的目的就是为了鄙视微软的马桶,他们宣称“系统检测到你正在使用老掉牙的微软马桶,赶紧更换成我们生产的‘火桶’吧!”而且该马桶最大的特色就是支持各式各样的插件,有的插件让你在如厕的时候可以听音乐,有的插件则是可以提供天气预报的功能,甚至有的插件装上之后可以将其伪装成一个“苹果的马桶”以满足部分人的虚荣心。</p> +<p>诺基亚生产的马桶将会非常的皮实,而且供你选择的型号也非常繁多,他们除了可以用来当马桶用外还都有一个共同的特点,那就是随心换彩壳,你可以根据心情来更换不同颜色的马桶外壳,不过外壳会比较松,一不小心就会掉下来。</p> +<p>如果你是一个追逐新型号的狂热分子,那么诺基亚马桶还是比较适合你的,你昨天刚安装好WC71型号的,过两天就会看到诺基亚关于发布WC72的新闻,如果你马上升级那就上当了,因为其实也就是换了一个彩壳而已。</p> +<p>各大Linux厂商生产的马桶宣称天生就不是给普通人用的,首先这个系列的马桶虽然使用同一个内核,但会分裂出各种各样的版本分支,这让你在选择时很犯愁。</p> +<p>然后是他们的功能设置极其麻烦,你得翻遍1500+页的文档、彻夜在论坛里泡着、冰天雪地裸体旋转360度跪求解决办法、花个把月的时间才能将该马桶配置的可以正常掀开马桶盖了,但是别高兴的太早,要想能够正常冲水往往你还得重新编译内核。</p> +<p>最后,当你气急败坏的时候,你会想到国产马桶,你开始到处询问,然后厂商会首先寄给你一套马桶系统解决方案书,上面画着一个真皮座椅还带后背按摩器,而且标价极其便宜。</p> +<p>当然了,当你付完钱,若干个月后你将会收到一个马扎。</p>我是一首mp3https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/Thu, 26 Aug 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/<p>我静静的呆在文件夹里,我的身后是一首2002年的曲子,对了,我是一个文件,确切地说,我是一首mp3,你通过搜索引擎找到了我,通过右键另存为给我取了个名字,从那一刻起,我诞生了。</p> +<p>你迫不及待地打开winamp,用鼠标拽住我,拖进了播放列表。硬盘的磁头开始颤抖,顺着磁道的轨迹划过我的身体,我的细胞就是一串二进制的序列,它们活蹦乱跳地被磁头提起,转换成抖动的电信号涌进了内存,声卡大哥开始工作,它们的任务就是在winamp的安排下去搔声卡大哥的胳肢窝,声卡忍受不住,愉快地哼起了歌,那就是我。你带着耳机,闭目养神,觉得从来没有听过如此美妙的声音。</p> +<p>我露出欣慰的微笑,磁头划过我带给我的痛苦一扫而光,我甚至期待你的下一次播放。</p> +<p>你却渐渐地把我遗忘,周围的文件叽叽喳喳叫个不停,它们哪懂得我的忧伤。</p> +<p>从此我开始长时间的睡眠,直到我遇见另一首mp3.开始的时候我还看她不起眼,因为她来自一块移动硬盘,这个外地人,我心里想。</p> +<p>瘦弱的她哪里及得上我曲子的悠扬,又怎能赶上我320k的压缩比和古典浪漫的心肠。</p> +<p>然而我渐渐地发现,虽然她是那样的其貌不扬,可她的快乐却迅速将我感染,连winamp大哥也对她颇有好感,随机播放的时候总是偷偷将她播放,就连愚钝缓慢的回收站也幽幽地说,不希望她去那个地方。</p> +<p>我开始整晚失眠,到处寻找暗恋的药方,CPU大哥忙着计算,根本帮不上忙,显卡更是高傲地扇着风扇,一副过来人的模样:”这种事我见得多啦,回去洗洗睡觉,明天我还得渲染上岗“,还是硬盘忠厚老实,偷偷跟我说,过两天要整理碎片,到时你再这样这样。</p> +<p>醒来时我发现已经被移到另外一个文件夹,粉红色的背景还有一个明亮的天窗,那首mp3羞涩地呆在那里,红着脸问我觉得装修怎样,哈哈,我心里想,要不是主人在意,谁会将一个文件夹弄成自定义的模样。</p> +<p>无损压缩的时代就要来了,我说。到时我们肯定都人老珠黄,不如把握现在的时间做些更有意义的事情,比如,轰轰烈烈地爱一场。</p> +<p>ps:纯属虚构,如有雷同,那实在是巧合。</p>走路去西藏https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/Wed, 23 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/<p>n年以前,n小于3,我偷偷地策划过一件事情,最终未能实现,因为太不着边际了。</p> +<p>我想徒步去一趟西藏,在我又听了一遍《回到拉萨》之后。</p> +<p>那时我想,我靠,就这么定了,我跟谁都不说,电话关机,从此消失,我要走着去西藏,找一个喇嘛庙,问一问人家,看能否收留我,出家算了。</p> +<p>我差点把这事儿写进project做个详细的计划。</p> +<p>一直没有想明白,为什么会对一个从不了解也从未去过的地方产生向往之情,也许冥冥之中觉得那是一方纯洁的圣土,我想去洗一洗,找找回家的感觉。</p> +<p>受不了喧闹和高速的生活,一个人孤独地在这边单着,偶尔夜里躺床上做梦,总觉得有人在后面拿鞭子抽我。</p> +<p>相当一段时间,我真是烦乱至极,劳累的工作导致身体的虚弱,长期的压力导致轻微的精神分裂,就像电影《搏击俱乐部》里的主角那样,人格差点儿分裂出去。</p> +<p>于是就想做一件比较荒诞的事情来调剂一下,可惜未能实现。</p> +<p>为啥未能实现哩,因为片刻之后我就恢复了理智。</p> +<p>祖国还需要我,人民还需要我。那段时间我打电话给我妈,说我想回老家歇几年,哪怕几个月也成,未被批准。</p> +<p>也就咬咬牙撑过来了,只是落下了一郁闷就想起徒步去西藏的毛病。</p> +<p>今天又想起这事儿了。</p>祝爸爸节日快乐https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/Sun, 20 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/<p>前一段时间,老爸在qq上和我视频,见我头发稍长,便催我尽快去理发。</p> +<p>这事儿他催了我好几个星期了,但是天高皇帝远,将在外君命有所不受,我一直没去。</p> +<p>我之所以没去,第一是因为我十分讨厌现在的理发店动不动就让我办卡,而且理发师也都很娘娘腔,唠唠叨叨个没完,第二是因为我有那么一点儿的叛逆心理,老人家想让我头发剪短显得精神一点,我还就想拿头发盖住耳朵显得颓废些,当然了,我并不是想培养那种长发半月不洗、胡茬上沾满饭粒的那种艺术家气质。</p> +<p>从毕业后踏入社会到现在,我一直踏实工作,刻苦努力,从未有过吊儿郎当的岁月,花天酒地我没干过,打架群殴我没凑过热闹,打牌搓麻我更是没有兴趣,也就是听听音乐看看书,说实话我都替我老爸有这么个省心的儿子感到高兴。</p> +<p>等一下,我说跑题了,今天是父亲节本来想夸夸老爸,怎么话题扯到我身上了。</p> +<p>老爸身材高大魁梧(略胖),声如洪钟,气质不凡。虽说现在已是五十多岁,但只要稍作打扮,说他是四十来岁的小伙子都不过分。</p> +<p>老爸是个教师,工作勤勤恳恳、一丝不苟,为祖国的教育事业做出了卓越贡献,成功地把我培养成一个正直乐观的人。</p> +<p>由于他们那一代人是结结实实挨过饿的,所以他最痛恨的就是浪费粮食,东西吃不完也不允许我们扔掉,只得勉强吃下,结果吃成了一个看上去颇具成功人士气质的胖子,好在他脾气还凑合,面对我们对他肚子无情的嘲笑,他总是一笑了之。</p> +<p>老爸从小受苦,在家里排行老大,在那个贫瘠的年代,早早地站出来把家里的事儿都撑了起来。</p> +<p>所以他在叔叔们面前基本具备家长威严,都比较尊敬他。</p> +<p>由于很小就出来磨练,老爸练就了一身社交能力,信奉以德服人,人缘那是相当好,喝酒那是相当能喝,办事儿那是相当利索。</p> +<p>要说优点,当然是说不完的,但是我比较欣赏他的一个优点就是他“动手”能力差,所以我在挨揍的季节并没有挨过他的揍。</p> +<p>呵呵,开个玩笑,他动手能力是差点儿,修理东西不会,这就给我很好的机会,我基本上从小学就把维修家里东西的业务给接管了,小到接个灯泡开关,大到修理冰箱洗衣机,反正他们敢让我修我就敢修。</p> +<p>好吧,现在我也当父亲了,也能体会当父亲的心情。</p> +<p>在这个父亲的节日里,衷心祝愿我的爸爸,身体健康,工作顺利。</p> +<p>并在我个人资料里“最崇拜的人”那一栏谨慎地填上了“父亲”。</p>汇报一下进展https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/Sun, 06 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/<p>学习五线谱和钢琴大半个月了,使用Cubase录了一段自己弹奏的《落叶》虽然速度不稳,比节拍器忽快忽慢,但是好歹是用双手了。</p> +<p>呵呵,左手好像弹错了。</p>两个周未更新了https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/Sun, 30 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/<p>我的blog两个周没有更新了,原因是我这两个周里每天的博客时间被别的事儿占用了,而这个别的事儿就是我在上一篇博客里给自己挖的坑(真够罗嗦),头脑发热买了几本五线谱来挑战自己,现在已经深陷此坑,练了十几天没啥进展,看着谱子上的小蝌蚪还是发懵,真是隔行如隔山呐。</p> +<p>不过也再次验证了一个道理,欲速则不达,真是放之四海皆准的真理啊,21天无法精通C++,同样三个月也不可能学会吉他,两个礼拜想把钢琴弹好更是没戏。</p> +<p>不过我这次倒是想坚持一下,至少现在哈农的前两个练习我是练熟了,手指也没那么僵硬了,总之吧,我要告别《两只老虎》的阶段!</p>冲动是魔鬼https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/Mon, 17 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/<p>头脑发热,买了几本钢琴和五线谱教程,准备牺牲每天写博客的时间来学习五线谱,想想就头大。</p>最爱的钢琴曲,竟然可以用这个弹https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/Sun, 16 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/<p>今儿在优酷上看到一牛人使用iDreamPiano演奏卡农,简直是绝了,http://v.youku.com/v_show/id_XMTE0MTMwMzI0.html。</p> +<p>早就玩过iDreamPiano,不过仅仅是弹点儿“两只老虎”之类的,牛人果然无处不在,竟然把这个软件发挥到这种地步。</p> +<p>随即,我也去搜了一下曲谱,网上已有好人专门制作了卡农的双手版简谱,赶紧也试了一下,果然很爽,虽然后面的我还弹不了,但前一段已经没问题了,很像那么回事儿,哈哈。</p>以后要多锻炼https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/Fri, 14 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/<p>昨天又去打了一场篮球,体力比上次好多了,连续打了2个小时直到天黑。</p> +<p>手感也差不多恢复了,只不过很长时间不打,会出现意识到但动作不到的情况,甚至眼睁睁的看着篮板球而“身不能至,心向往之”。</p> +<p>打完之后,筋疲力竭,回家连写博客的劲儿都没有了,倒是睡眠很香,一觉睡到闹钟响,起来之后精神百倍,看来以后要多出去运动运动了。</p>一段比较有力度的架子鼓https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/Wed, 12 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/<p>nan</p>郁闷的时候干点儿啥https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/Tue, 11 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/<p>我会弹弹吉他,这样可以压压我的手指,从中医学的角度来说,十指连心,是若干经络的起点,活泛活泛手指可以舒肝解郁。</p> +<p>或者在房间里唱唱歌,先唱青藏高原再唱回到拉萨,两首歌下来,胃就舒坦多了。</p> +<p>或者打开CS,把机器人的智商调到100,然后疯狂地用mp5与匪徒们对战,要是屡被爆头请尝试降低机器人智商。</p>无法通过email更新了https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/Mon, 10 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/<p>不知道为啥,livespaces拒绝接收我从gmail发来的邮件,这下无法通过电子邮件来更新博客了。</p>他们为什么会喜欢复杂的东西https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/Sun, 09 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/<p>不折腾就不舒服,有个小巧的linux发行版叫做puppy(虽然没有slitaz那么变态的小,但也绝对值得推荐),我前两天忙里偷闲,把它装在笔记本的sd卡上了,经过一番折腾,一切配置妥当,甚至可以编译helloworld.c了,这个时候我发现一个严重的问题&mdash;&ndash;</p> +<p>puppy没有提供可用的vim,本来我给笔记本安装puppy就是让它轻快地起来,然后我躺在床上,敲一两行代码,用以验证某些书上的内容,结果没有vim,计划眼看要泡汤了。</p> +<p>比较讽刺的是,比vim庞大好几倍的编辑器emacs却躺在puppy的软件库中,抱着试试看的态度把emacs给装上了。</p> +<p>虽然vim我用的不熟但至少还是可以拿起来干活儿的,而emacs这个据说是vim的唯一对手(当然,在口水战里,着两个编辑器总是扯不清)我却用得极其蹩脚,而且还不能抱怨,抱怨只能得到一大堆耻笑:“瞧你,连这个都用不好,你只需要这样然后再同时按下那个,最后,来吧再试试这段配置文件”,然后丢过来一大段充满括号的配置代码。</p> +<p>如果说没有人会喜欢复杂的东西,我绝对不赞成,那么多的高手拎着成串的配置文件手脚并用地用着emacs,甜蜜地记忆着C-xCc,M-xfu××之类的长串命令。</p> +<p>竟然还有人宣称完美地解决了代码补全的问题,真不知道他是否用过真正的代码补全。</p> +<p>也许是我用的太蹩脚了,他们为什么会喜欢这么复杂的东西?</p>痛痛快快打了场篮球https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/Fri, 07 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/<p>今天要打篮球,开始时我还担心今天会下雨,因为按照以往的惯例,只要我们想打球,天气往往是立即下雨(这样的)。</p> +<p>不过还好,今天天气很不错,非常配合,没有刮风也没有下雨,一切照常进行,还没下班我就迫不及待地把我的装备找了出来,n年前(n&lt;4)的队服,上书醒目的11号外加公司logo,穿上球鞋,给篮球使劲儿打满气。</p> +<p>其实至少有1年没碰篮球了,而且也没有其他的运动,不出所料,刚上场不一会儿,我就气喘吁吁,汗流浃背,两股战战几欲先走。</p> +<p>不过等慢慢活动一阵儿之后,开始恢复手感,投进几球后渐入佳境,4v4淘汰赛也把别的队给虐下去了几盘,恍惚之间我又仿佛回到了18+的年纪。</p> +<p>不过毕竟是28+了,蹦了不到一个钟头就再也没力气了,如果没有意外的话,明天肯定是浑身腰疼,现在只想再按照惯例喝杯冰镇啤酒,可惜我答应老爸不再喝啤酒了,还是白酒算了。</p>很久没打球了,准备明天打球去https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/Thu, 06 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/<p>篮球。</p>跟着扯扯淡https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/Tue, 04 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/<p>最近霍金霍大爷又放话出来说,大家小心一些,最好不要惹了外星人,不然人类文明可能会完蛋。</p> +<p>这边唱那边就有出来和的,一帮专家又跳出来分析说,大家也不要太担心外星人会跟我们动武。</p> +<p>我看也是,确实不用担心,因为担心也没用。</p> +<p>古时候有一说法,叫“天上一天,地上一年”,乍一听觉得不可思议,可是现在的物理学越研究就越发现古人说的有道理,当宇宙飞船在天上的飞行速度接近或者超过光速时,那确实是天上一天地上一年。</p> +<p>做一个很俗的假设,其实神话中的天神下凡,就是外星人来地球逛街,至于七仙女什么的估计就是女外星人了。</p> +<p>外星人能来地球得瑟,就说明他们拥有比我们先进的多的文明程度,要灭我们也是轻而易举,但是为什么还不动手呢?</p> +<p>我想是因为宇宙中也有保护濒危物种的法律吧,猪再蠢,要是地球上的猪快死绝了,也得修好猪圈养起来。</p>五一小总结https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/Mon, 03 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/<p>基本忘记了五一节的真实含义,对我来说,其实就是有机会多睡两个懒觉,而生物钟被打乱的难受则让我已经开始怀念早起的日子,还好,明天就开工了。</p> +<p>基本没有出去玩,因为终于有时间呆在家里,坐坐我的沙发,看看闲书,听听闲歌,真他妈闲啊。</p> +<p>不过昨晚上还是和同事出去喝了小酒,而我们也充分发挥工作狂的精神,居然在饭桌上讨论工作内容,让随桌陪同的家属掩鼻而去。</p> +<p>基本没有写程序,不过还是没有忍住,写了个小程序来处理我的照片。</p>写了个脚本整理我的照片https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/Sat, 01 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/<p>上次整理硬盘的时候把我的照片一股脑儿的放在了一个目录下,这次又有闲功夫了,写了个python脚本来处理我的照片。基本思路是使用PIL库读取照片的exif信息,取出拍摄的日期时间,根据日期建立新的文件夹,然后照片文件以日期时间格式命名。批量处理,比较简单。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span><span class="lnt">46 +</span><span class="lnt">47 +</span><span class="lnt">48 +</span><span class="lnt">49 +</span><span class="lnt">50 +</span><span class="lnt">51 +</span><span class="lnt">52 +</span><span class="lnt">53 +</span><span class="lnt">54 +</span><span class="lnt">55 +</span><span class="lnt">56 +</span><span class="lnt">57 +</span><span class="lnt">58 +</span><span class="lnt">59 +</span><span class="lnt">60 +</span><span class="lnt">61 +</span><span class="lnt">62 +</span><span class="lnt">63 +</span><span class="lnt">64 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: gbk -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="s2">&#34;&#34;&#34; +</span></span></span><span class="line"><span class="cl"><span class="s2">复制指定目录的照片到目标目录,并且根据照片的拍摄时间进行重命名 +</span></span></span><span class="line"><span class="cl"><span class="s2">比如某张照片拍摄于2008年3月15日12:00:00,则目标目录为2008</span><span class="se">\\</span><span class="s2">03</span><span class="se">\\</span><span class="s2">15</span><span class="se">\\</span><span class="s2">120000.jpg +</span></span></span><span class="line"><span class="cl"><span class="s2">&#34;&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">PIL</span> <span class="kn">import</span> <span class="n">Image</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">sys</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">get_dist_path</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">date</span> <span class="o">=</span> <span class="nb">str</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">dirs</span> <span class="o">=</span> <span class="n">dist_dir</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">date</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dirs</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">dirs</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">dirs</span> <span class="o">=</span> <span class="n">dirs</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">))</span> <span class="o">+</span> <span class="s1">&#39;.jpg&#39;</span> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="n">dirs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">copy_image</span><span class="p">(</span><span class="n">src_dir</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="p">[</span><span class="n">src_dir</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">src_dir</span><span class="p">)]:</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">copy_image</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">else</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">image</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;file open error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">dist_path</span> <span class="o">=</span> <span class="n">get_dist_path</span><span class="p">(</span><span class="n">image</span><span class="o">.</span><span class="n">_getexif</span><span class="p">()[</span><span class="mi">306</span><span class="p">],</span> <span class="n">dist_dir</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;dist path: &#39;</span> <span class="o">+</span> <span class="n">dist_path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;get exif error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dist_path</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">image</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">dist_path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;file copy error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">write_log</span><span class="p">(</span><span class="nb">str</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">global</span> <span class="n">log_file</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">main</span><span class="p">():</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">global</span> <span class="n">log_file</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;cilog.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">copy_image</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="k">else</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;需要给出两个参数,第一个是照片目录,第二个是目标目录&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;例如:&#39;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">&#39;e:</span><span class="se">\\</span><span class="s1">photo f:</span><span class="se">\\</span><span class="s1">goodphoto&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">&#39;__main__&#39;</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">main</span><span class="p">()</span> +</span></span></code></pre></td></tr></table> +</div> +</div>提高工作效率的心得https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/Thu, 29 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/<p>1、建立一个简洁todolist</p> +<p>,这个todolist可以使用任意方式建立,比如笔记本或者googletasks,总之就是一个简洁的任务列表,每天上午开始工作之前,将今天要做的事情逐条记录下来,按照要事优先的原则,我一般是把比较费脑子的事情放在最前面。</p> +<p>然后每完成一项就在上面打勾,很有成就感。</p> +<p>2、整理好自己的文档资料:)</p> +<p>,给自己建立一个清晰有序的文档管理机制,这样当你需要某个文档资料的时候可以立即将其取出。</p> +<p>我使用totalcommander+dokuwiki进行管理。</p> +<p>将文档按照工作项目进行分类,而不是按照文件的扩展名分类。</p> +<p>3、记录工作日志</p> +<p>,每天记录工作日志可以有效分析出自己每天的时间花在了哪里,并改进自己对工作任务的安排。</p> +<p>而且将自己的做的事情记录下来对记忆力来说也有好的帮助。</p> +<p>4、关掉qq、msn</p> +<p>,不上比较耗费时间的网站比如GoogleReader,工作时就是集中精力,不开聊天工具就不会被打扰,不开rss阅读器就不会有资讯压力。</p> +<p>5、听音乐</p> +<p>,带上耳机听听自己喜欢的音乐,这样工作时心情比较放松,思维也比较活跃。</p> +<p>6、使用高效的软件和计算机操作方式</p> +<p>,比如使用vim代替普通编辑器,使用totalcommander代替windows的资源管理器,使用脚本或批处理命令来代替大量的鼠标操作。</p> +<p>需要整理思路时可使用freemind来绘制一张脑图。</p>小时候干过的一些颇为geek的事儿https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/Wed, 28 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/<p>极客,又译为技客、奇客,是英文单词geek的音译。</p> +<p>具体解释参见这里。想起小时候干的一些事儿,以现在的眼光来看,颇具极客精神。</p> +<p>小时候,我曾经嫌弃我家的收音机音量太小听音乐不过瘾,于是动手改造,本来两节干电池就可以正常使用,但是我把三节电池串联起来接在收音机的电池仓里,结果由于心理作用感觉上好像音量比以前更大了,于是我信心十足的把一个电源插头直接接在了收音机上,然后满怀希望地把另一头插在了220v的电源插座上,结果杯具发生了,一声巨响过后,浓烟滚滚,收音机被烧成了一个黑匣子。</p> +<p>于是我只好央求我维修技艺高超的舅舅帮忙维修,后来那台收音机倒是起死回生了,但是舅舅悄悄告诉我,除了壳没换,其他的零件全换了!还是小时候,大概在上小学,突发奇想,把我妹妹的电子表给拆了个七零八落再也装不到一起去了,无奈只好哄她说我其实是想帮她把电子表改装成一个游戏机,就快成功了,再等等。</p> +<p>中考的前夕,备考的压力非常大,炎热的午后,我实在是复习不下去了,动手把我床头的石英闹钟拆了,零件铺满了整个桌子,但是这次我慢条斯理的把它又给装好了,而且一个零件也没多出来,颇有成就感,只是由于把其中的一个线圈装翻了,导致这个闹钟的指针一直倒着走,直到考试结束我才又花时间把它给正了过来。</p> +<p>嘿,那些时光多美好呀。</p>不要浮躁,不要骄傲,不要让全世界都知道你的低调https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/Tue, 27 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/<p>每天提醒自己。</p>拥抱次新版https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/Mon, 26 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/<p>软件如果不用最新版是可耻的,我以为。</p> +<p>这个毛病把我折磨的够呛,每天都有大量新版的软件发布,我就更新更新再更新,每天就迷失在软件更新的过程中,不在更新中就是在下载更新的路上。</p> +<p>然而,尝鲜总是要付出代价的,光怪陆离的新特性一个也没用上不说,新bug带来的烦恼却一点儿也没少。</p> +<p>新系统、新软件带来的兼容性问题也纠缠不休,可我却乐此不疲,有点儿飞蛾扑火的味道。</p> +<p>终于有那么一天,我顿悟了,次新版才是最好的!我说的次新版,也就是比最新版稍微老那么一点儿的版本。</p> +<p>优点如下,你看,首先次新版的功能比最新版不会差太多,该有的基本都有,从使用的角度来说绝对是够用的,其次,次新版的稳定性大大高于最新版,因为经过了长时间的测试和bug修正功能的磨合已经趋于完美,不信的话你看看windowsxp就知道了。别信那些发布最新版时的噱头,什么“大大降低了内存占用”“显著提升了性能”等等,我们脆弱的心灵再也经不起忽悠。</p> +<p>就拿开发环境来说吧,现在的vs2010发布了,也就是说赶紧用vs2008吧,因为它现在是最好用的,同样,听说office2010也出来了,也就是说是时候全面使用office2007了,ubuntu10.04今夜也就发布了,先别用,赶紧用9.10吧,目前来说9.10才是最完美的。</p> +<p>呵呵,以上纯属忽悠,如有意外,那实在是巧合。</p>休息总是在雨天https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/Sun, 25 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/<p>昨天天气不错,挺风和日丽的,杯具的是,这么好的天气一般都被用来加班了。</p> +<p>今天使劲儿赖了赖床,起来后继续发扬热爱劳动的光荣传统,打扫房间洗洗被单。</p> +<p>然后就淅淅沥沥下雨了,到现在洗的东西还没有晾干。</p> +<p>翻了翻书,一页也看不下去,听说ubuntu10.04除了rc版的了,没有忍住好奇心,下了一个在虚拟机中耍了耍,网速慢的厉害,更新个语言包都慢腾腾的。</p> +<p>一晃就到了晚饭时间,下着雨实在不想出去买东西,这下我的电饼铛派上用场了,面粉加鸡蛋转眼就变成热气腾腾香喷喷的煎饼,美美吃上一顿,准备睡觉。</p>因为要丰富工作以外的生活https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/Fri, 23 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/<p>所以要加班。</p>关于python的好东东https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/Thu, 22 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/<p>由于喜爱python,我几乎每次装完系统就会立即给电脑装上python环境(当然了,大部分的linux的发行版都自带了)。</p> +<p>不过,每次都要安装不少我常用的python库,比如pyopengl用来写写opengl什么的比较合适,pyqt用来写桌面程序也很好,陆续把这些库装完也挺费劲的。</p> +<p>要说还是好人多,我这两天发现网上就有好人给整理了一个及其全面的安装包,叫做PythonXY,可以说是一旦安装别无所求,自带python基本环境,另外加上以eclipse为基础的ide,在加上ipython这个很好的shell,还包括numpy、scipy等等一大堆与数学计算相关的包,不多说了,自己去这里看吧http://www.pythonxy.com/,要下载完整的压缩包比较大,好像有4百多Mb。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Wed, 21 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<p>我爱这个充满神秘的世界,有着无限多的未知,这么多等着我们去探索的未知加上我的好奇心,是我快乐的源泉。</p>我的声卡悲剧了https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/Sun, 18 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/<p>昨晚一时心动,把家里的电脑装上了windows7,一切都挺好的,特效也挺漂亮,可是我的创新声卡不发声了,以前在xp下的驱动一个也不好使了。</p> +<p>去创新的官网上寻找驱动,发现人家已经不再理会这块10年前的声卡,无奈只好寻找各路的改版驱动,好在那个来自俄罗斯的好人还在辛勤的更新着他的kx驱动。</p> +<p>赶紧下了个最新版的3550版驱动,安装完之后傻眼了,声音是能出来,可是怎么听都不对味,声音瘪瘪的,又干又涩,还不如使用板载声卡呢。</p> +<p>再去网上搜寻一通,原来有人和我一样抱怨过了,而且据说某个版本的(3541)驱动还凑合,那就试试吧,但愿能行,不然我还得把操作系统换回去。</p>整理完毕https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/Sun, 18 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/<p>从春节后开始的硬盘整理计划总算进行完了。</p> +<p>通过这次整理我发现了我曾经认为很重要的文件其实一次也不会被用到,当我真正想用到哪些文件时,通常它们已经过期了(尤其是某些软件的安装包)。</p> +<p>大量的工作文档也是整理的重点,杂乱无章的文件夹比乱糟糟的书桌更让我抓狂,期间我甚至萌生了自己写一个资料管理软件的念头,当然了,工作太忙,该计划被搁置(说不定哪天我真就卷起袖子为自己写一个)。</p> +<p>目前来说,使用totalcommader这个绝世好软配合良好的管理思路,也基本上可以管理好那些资料了。</p> +<p>当然在我翻遍文件夹之后,也找到了不少被遗忘的时光,我甚至找到了我在大学时自娱自乐录制的卡拉ok,恩,那时嗓音使劲儿装成熟,现在都快到了装嫩的年纪了。</p>无用的信息https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/Thu, 15 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/<p>最近一段时间,中午休息的时候我不再上网,这样我就基本上不在公司上GoogleReader了。</p> +<p>随着订阅数越来越多,我的“未读条目”也爆炸式增长,听说有人为此苦恼不已,得了信息爆炸抓狂症。我的解决办法是,每天晚上回家,立即打开GoogleReader把未读条目全部清空,现在基本上每天都是在手机上阅读这些订阅了,上下班的路上,消遣消遣时间而已,哪有什么有用信息。</p>今天听说https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/Tue, 13 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/<p>听说2012年北京的宽带会宽到20M到桌面,我靠,真是让我欢喜让我忧,喜的是,盼望已久的带宽终于上去了,忧的是,啥都上不了要这么宽的带宽干啥?</p>集成开发环境https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Mon, 12 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/<p>集成开发环境(为了响应号召,我就不说是IDE了)是个好东西,使我们轻松迈入软件开发的门槛,轻松的点击几下“下一步”,瞧,一个软件就诞生了。</p> +<p>以至于现在很多程序员只知道makelove而不知道makefile。</p> +<p>我最早接触的集成开发环境应该是TurboC了,惭愧的是,我当时以为那就是C语言,没办法,当时确实分不清开发环境和编程语言。</p> +<p>有大约半年的时间由于我未能正确的设置该环境的参数,导致我从教科书上抄来的代码统统不能编译通过,我还以为书上印错了咧。</p> +<p>后来终于弄好了,在编写了各个版本的helloworld之后,终于对C语言开窍了,不过还是分不清程序语言和开发环境的关系。</p> +<p>再后来遇见了VC6,跟着《21天精通×××》的教程也能用鼠标写出“大”程序了。</p> +<p>若干年后的某一天,我研究某开源软件(该软件跨平台)的源码的时候,才第一次见到了makefile,第一次知道了原来在命令行下也能编译程序啊,于是恍然大悟,明白了集成开发环境只是一个“壳儿”。</p> +<p>这才试着偶尔用记事本写写小程序,在命令行下编译。从那开始,我渐渐的倾向于,使用编辑器编写代码,使用makefile管理项目工程,使用命令行编译程序。</p> +<p>而对于庞大臃肿、缓慢笨拙的集成开发环境越来越不满了。</p> +<p>昨天,VS2010发布了,一大拨人在网上散发着欣喜的软文,疯狂的鼓吹它的强大和先进,喜新厌旧的人们昨天还用着VS2008,今天就将其抛弃,转而把VS2010揽在怀里。</p> +<p>我想他们大概是喜欢那慢腾腾的编译速度并且可以趁机偷偷去喝上一杯咖啡吧。</p>我没有旅游计划https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/Sun, 11 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/<p>刚看到有人为本年度的旅游制定了完备的计划,恩,很羡慕这个家伙。</p> +<p>不过说真心话,我不喜欢旅游,有那个时间的话,我还不如好好在我的老家待上一段日子,虽然不是什么山清水秀的地方,但是也算的上是空气清新了。</p> +<p>我不想去青藏高原,也不愿意去丽江云南,好山好水对我一点儿吸引力都没有。</p> +<p>与其奢望环游世界,倒不如多和老家亲近亲近,因为我怕有一天,我真的会记不起那里的模样。</p>让我来骂一 骂那些学习的日子https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/Fri, 09 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/<p>我是一个热爱学习的人,可是这是从学习编程开始的。</p> +<p>上学的时候,我从没有过哪怕一丁点儿的热爱学习。</p> +<p>虽然那个时候努力装出刻苦的样子,偶尔在邻居们教育孩子的口中听到以我为榜样的句子,可是我和他们心里都清楚,谁他妈的想学习!</p> +<p>唉,仔细想想,委屈了邻居的孩子们了。</p> +<p>小的时候,我应该是挺自闭的,虽说成绩还凑合,可是那都是应付考试的结果,回想我们的课本,除了小学数学还算是发挥了点作用,其他的都是垃圾,背的满满一书包全都是大便。</p> +<p>先从语文说起罢,千篇一律的课文也就罢了,每回回都要划分段落然后总结所谓的中心思想,反复揣摩作者的用意,就算是作者根本没有那个想法,老师也千方百计地往某方面引导。</p> +<p>至于思想品德课则更是对智商的严重伤害,脆弱的心灵一次次被无情的蹂躏,满满的答卷上全是对撒谎的最早练习。</p> +<p>老师们极度推崇的课前预习也是我永远的心理阴影,我就想不明白,如果课前预习都把问题考虑清楚了那么还上课干嘛?每次都会有针对预习内容的提问,好好的课堂被搞的乌烟瘴气,听话的孩子翻开白眼,昂起头,骄傲地回答出老师希望的句子。</p> +<p>期末考试永远是我们的噩梦,考不好承受压力不说,来自各方面的歧视又在伤口上再撒一把厚厚的盐。</p> +<p>所谓三好学生,所谓学习标兵,做一个他们理想中的孩子吧,做一个“热爱学习”的孩子吧,只要你不想做你自己。</p>关于支持富文本的开发环境设想https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/Thu, 08 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/<p>现在的源代码都是纯文本,代码关键字、函数以及注释的高亮都是通过源代码编辑器或集成开发环境自己分析的。</p> +<p>我在想,能不能有一种开发环境,他的源代码采用富文本的方式来存放,及程序员可以随时高亮某一段代码以示警告或提醒,将不同功能模块的代码来使用不同的颜色来显示?</p> +<p>或者,更进一步的想法,代码的注释里可以加入任何内容,不仅仅是干巴巴的几句描述,而是可以插入一段视频或一幅图片,或者任意的一个附件在代码中?</p> +<p>再丰富一下,在现有的以“项目”或“解决”方案为代码组织方法的基础上,增加代码以外的东西进入到开发环境中来,比如说,从软件需求的调研文档一直到设计文档,均与最终的代码有机的结合起来,也就是说,通过功能需求文档可以追溯到实现该功能的代码,反过来也可以从某行代码追溯到他所服务的功能。</p> +<p>吼吼,这样做是不是有点儿太那个了。</p>懒洋洋https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/Wed, 07 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/<p>春天还是来了,虽然晚了一些。但树枝已经偷偷抽出嫩牙儿来,吹在脸上的风也不再恶狠狠的了,偶尔抬头向上望去,甚至能看见蓝天。</p> +<p>我在路上懒洋洋地走着,边走边想,春姑娘还是来了。</p>我的vim配置文件https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/Tue, 06 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/<p>整理了一下自己的vim配置文件,记录在此以备忘。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-vim" data-lang="vim"><span class="line"><span class="cl"><span class="c">&#34; 编码设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">encoding</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">fileencodings</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span><span class="p">,</span><span class="nx">chinese</span><span class="p">,</span><span class="nx">latin</span><span class="m">-1</span><span class="p">,</span><span class="nx">gb18030</span><span class="p">,</span><span class="nx">gbk</span><span class="p">,</span><span class="nx">cp936</span> +</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">has</span><span class="p">(</span><span class="s2">&#34;win32&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">set</span> <span class="nx">fileencoding</span><span class="p">=</span><span class="nx">chinese</span> +</span></span><span class="line"><span class="cl"><span class="k">else</span> +</span></span><span class="line"><span class="cl"> <span class="k">set</span> <span class="nx">fileencoding</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="k">endif</span> +</span></span><span class="line"><span class="cl"><span class="nx">language</span> <span class="nx">messages</span> <span class="nx">zh_CN</span>.<span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 基础设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">nocompatible</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">softtabstop</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">shiftwidth</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">tabstop</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">bs</span><span class="p">=</span><span class="m">2</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">autoread</span> <span class="c">&#34; read open files again when changed outside Vim</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">autowrite</span> <span class="c">&#34; write a modified buffer on each :next, ...</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">browsedir</span> <span class="p">=</span> <span class="nx">current</span> <span class="c">&#34; which directory to use for the file browser</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">wildmenu</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">wildignore</span><span class="p">=</span>*.<span class="nx">bak</span><span class="p">,</span>*.<span class="nx">o</span><span class="p">,</span>*.<span class="nx">e</span><span class="p">,</span>*<span class="p">~</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">complete</span><span class="p">+=</span><span class="nx">k</span> <span class="c">&#34; scan the files given with the &#39;dictionary&#39; option</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">autocmd</span> <span class="nx">BufEnter</span> * <span class="nx">lchdir</span> %:<span class="nx">p</span>:<span class="nx">h</span> <span class="c">&#34; Change the working directory to the directory containing the current file</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">plugin</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">indent</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">syntax</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 颜色设置</span> +</span></span><span class="line"><span class="cl"><span class="k">colorscheme</span> <span class="nx">koehler</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 字体设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guifont</span><span class="p">=</span><span class="nx">Consolas</span>:<span class="nx">h12</span>:<span class="nx">cANSI</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guifontwide</span><span class="p">=</span><span class="nx">youyuan</span>:<span class="nx">h12</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 折叠设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">foldmethod</span><span class="p">=</span><span class="nx">manual</span> +</span></span><span class="line"><span class="cl"><span class="nx">nnoremap</span> <span class="p">&lt;</span><span class="nx">space</span><span class="p">&gt;</span> @<span class="p">=((</span><span class="nx">foldclosed</span><span class="p">(</span><span class="nx">line</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">))&lt;</span><span class="m">0</span><span class="p">)</span>?<span class="s1">&#39;zc&#39;</span>:<span class="s1">&#39;zo&#39;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 界面设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">showtabline</span><span class="p">=</span><span class="m">2</span> <span class="c">&#34; 始终显示标签页</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guitablabel</span><span class="p">=</span>%{<span class="nx">tabpagenr</span><span class="p">()</span>}.%<span class="nx">t</span>\%<span class="nx">m</span> <span class="c">&#34; 每个 tab 上显示编号</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">T</span> <span class="c">&#34; 去掉工具条</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">m</span> <span class="c">&#34; 去掉菜单</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">r</span> <span class="c">&#34; 去掉右边的滚动条</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">L</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">statusline</span><span class="p">=</span>%<span class="nx">F</span>%<span class="nx">m</span>%<span class="nx">r</span>%<span class="nx">h</span>%<span class="nx">w</span>\[<span class="nx">FMT</span><span class="p">=</span>%{&amp;<span class="nx">ff</span>}]\[<span class="nx">TYPE</span><span class="p">=</span>%<span class="nx">Y</span>]\[<span class="nx">POS</span><span class="p">=</span>%<span class="nx">l</span><span class="p">,</span>%<span class="nx">v</span>][%<span class="nx">p</span>%%]\%{<span class="nx">strftime</span><span class="p">(</span>\<span class="s2">&#34;%d/%m/%y-%H:%M\&#34;</span><span class="p">)</span>} +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">laststatus</span><span class="p">=</span><span class="m">2</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">scrolloff</span><span class="p">=</span><span class="m">3</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">nu</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">ruler</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 查找搜索设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">incsearch</span> <span class="c">&#34; use incremental search</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">ignorecase</span> <span class="nx">smartcase</span> <span class="nx">hlsearch</span> <span class="nx">incsearch</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 将键盘上的 F12 健映射为执行当前文件</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">F12</span><span class="p">&gt;</span> :<span class="p">!</span>%<span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 使用 Ctrl+Tab 键来切换标签页</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">C</span><span class="p">-</span><span class="nx">TAB</span><span class="p">&gt;</span> :<span class="nx">tabn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 快捷键设置</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F2 - write file without confirmation</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F3 - call file explorer</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F4 - show tag under curser in the preview window (tag file must exist!)</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F5 - open quickfix error window</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F6 - close quickfix error window</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F7 - display previous error</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F8 - display next error</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; Shift-Tab - Fast switching between buffers (see below)</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; Ctrl-q - Leave the editor with Ctrl-q (see below)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F2</span><span class="p">&gt;</span> :<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F3</span><span class="p">&gt;</span> :<span class="nx">Explore</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F4</span><span class="p">&gt;</span> :<span class="nx">exe</span> <span class="s2">&#34;ptag &#34;</span>.<span class="nx">expand</span><span class="p">(</span><span class="s2">&#34;&lt;cword&gt;&#34;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F5</span><span class="p">&gt;</span> :<span class="nx">copen</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F6</span><span class="p">&gt;</span> :<span class="nx">cclose</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F7</span><span class="p">&gt;</span> :<span class="nx">cp</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F8</span><span class="p">&gt;</span> :<span class="nx">cn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F2</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F3</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">Explore</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F4</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">exe</span> <span class="s2">&#34;ptag &#34;</span>.<span class="nx">expand</span><span class="p">(</span><span class="s2">&#34;&lt;cword&gt;&#34;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F5</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">copen</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F6</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cclose</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F7</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cp</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F8</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">S</span><span class="p">-</span><span class="nx">Tab</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="k">if</span> &amp;<span class="nx">modifiable</span>&amp;&amp;<span class="p">!</span>&amp;<span class="nx">readonly</span>&amp;&amp; \ &amp;<span class="nx">modified</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="k">endif</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">bprevious</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">S</span><span class="p">-</span><span class="nx">Tab</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="k">if</span> &amp;<span class="nx">modifiable</span>&amp;&amp;<span class="p">!</span>&amp;<span class="nx">readonly</span>&amp;&amp; \ &amp;<span class="nx">modified</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="k">endif</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">bprevious</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nx">nmap</span> <span class="p">&lt;</span><span class="nx">C</span><span class="p">-</span><span class="nx">q</span><span class="p">&gt;</span> :<span class="nx">wqa</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; taglist 设置</span> +</span></span><span class="line"><span class="cl"><span class="nx">noremap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F11</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">Tlist</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">inoremap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F11</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">T</span> +</span></span></code></pre></td></tr></table> +</div> +</div>马桶书架https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/Sun, 04 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/<p>想说说坐马桶上看书这事儿,记得在美剧《好汉两个半》里有这样一个情节,被老婆抛弃的那哥们儿有一天在书店里突然失去理智,变得歇斯底里,</p> +<p>因为他想起来曾经发誓要读的书从来都没有读过,把这些书都抱在怀里哭泣不止,</p> +<p>更令人沮丧的是他的花花公子哥哥劝他说,现在还来得及,虽然平时比较忙,但如果把这些书放在马桶上则可以每次大便的时候都看一段,这样应该也能弥补一些缺憾。</p> +<p>可是这哥们儿哭着说,来不及了,把他余生大便次数都用上,也读不完这些名著了。</p> +<p>呵呵,说的太对了,我觉得这个段子用来教育不爱读书的孩子估计不错,我们看了却只能苦笑一下。</p> +<p>显然我也不认为在大便的时候读名著是个好主意,看着那些故事里的主人公在那里纠结不休,要么爱的死去活来,要么整天拧巴地思考人生意义,就算是你天天喝着蜂蜜外加一瓶开塞露也非得便秘不可。</p> +<p>我觉得吧,为了身体的健康,如果非要在大便时看书的话,还是尽量的读一些短文好了,比如我以前就爱看看《读者》啥的,最近偶尔也提升点儿档次弄本《三联周刊》看看,不过总的来说,看的都是些文笔平顺、言语轻快能促进大肠蠕动的文章。</p> +<p>今天收拾洗手间的时候,从马桶后面拎出了一大摞书,数了数,居然比我书架上的书还多。</p>永不放弃https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/Sat, 03 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/<p>不要被眼前的困难吓倒,认定你的目标,坚持下去。</p> +<p>哪怕有一万个人对你说,不行,但只要你的心告诉你,行,那就是行,没有商量的余地。</p> +<p>有时候越是简单的事情越难以做好,骄傲的人做不好,懒惰的人做不好,勤奋却不得方法的人也做不好。</p> +<p>你觉得你谦虚了﹑努力了﹑方法也对了,那么,别灰心,坚持下去。</p> +<p>&mdash;&mdash;&mdash;&mdash;&mdash;-重温《阿甘正传》有感。</p>愚人节的新闻https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/Thu, 01 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/<p>今天是一年一度的愚人节,过得平淡无奇。</p> +<p>大家慵懒得好像连开玩笑的心思也没有了,不过还是在互联网上看到了几条愚人新闻,聊胜于无。</p> +<p>出镜最多的就数Google了,比如这个Google可以上传任意物体的新闻就比较有创意,还有这个说Google收购了核技术公司准备进行核研究的新闻,</p> +<p>至于Google宣布改名为Topek和Google准备收购百度这两条新闻就比较无趣了,而这个关于Google街景提供红蓝眼镜3D观赏模式的新闻简直可以以假乱真了。</p> +<p>其他的新闻就比较少了,国内的cnBeta也算是提供了一个比较搞笑的,称其不再支持ie6和flash,并且说的有板有眼,说实在的这条新闻我宁愿相信是真的。</p>春雨https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/Tue, 30 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/<img src="https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/20100330512-777160.jpg" alt="Featured image of post 春雨" /><p>这场雨下的挺爽的,为什么呢?因为我带伞了。</p>没有合适的资料管理软件https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/Mon, 29 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/<p>我的硬盘整理行动已经开始了一周多了,期间最让我头疼的就属工作中产生的文档资料了,技术文章、幻灯片、项目计划等等等等。</p> +<p>杂乱地堆放在我的各个硬盘里,好多东西不舍的删除,偏偏在用到的时候找不见,没用的时候又老在眼皮子底下碍事。</p> +<p>曾经试过evernote来管理资料,可是对于大量的word文档不太合适,使用subversion又有点儿麻烦或大才小用。</p> +<p>使用GoogleDocs倒是还凑合,可是说不定哪天就上不去了,到时候哭都来不及。</p> +<p>干脆使用Google的桌面搜索,可是眼看着索引文件越来越大而且重装系统也是个麻烦事儿。</p> +<p>myBase也试用过,界面太朴素也可以接受,功能也很强大,就怕管理的文档多了影响速度,而且myBase是收费软件,使用单一文件数据库还得天天备份,麻烦。</p> +<p>真的找不到合适的了,难道要自己动手写一个?</p>不用了,这是给我的。https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/Sun, 28 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/<p>这个周末碰到的不是烂片,而是一部让人惊喜的电影&mdash;&mdash;《窃听者》。</p> +<p>该怎样评价这部电影,我不知道,只能说好的电影,能够给人带来思考。</p> +<p>而《窃听者》这部电影却在带来思考的同时又打动人内心最柔软的部分。</p> +<p>故事也许很简单,但是讲好一个故事并不容易,在那样一个年代,或者是在这样一个年代,形形色色的人,做着自以为正确的事情。</p> +<p>片中的主人公(我认为他才是男一号)工作在见不得光的地方,每天的工作就是带着耳机监听着“疑似坏人”的一举一动。</p> +<p>随着时间的推移,他的思想渐渐转变,融入到被监听人的生活。</p> +<p>影片的节奏平缓而又有力,细腻又不失大气,场景的色调和背景音乐低沉得像是一直饱含泪水。</p> +<p>带着耳机的监听人在立场上渐渐站在被监听人那边时,连他自己都很难理解自己为什么要这么做,其实他只是在追随自己的心,哪怕为此付出了巨大的代价。</p> +<p>如果说这个世界还有良心的话,那这就是良心。</p>写歌一首https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/Sun, 28 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/<p>晚饭后,出去散步,春风拂面,颇有意境,遂赋酸词一首,改日谱曲。</p> +<p>如下:</p> +<p>我会做我自己只要我还愿意去寻找</p> +<p>曾经,的美丽在幸福的日记里在漫漫岁月里</p> +<p>有了你我不怕,孤寂</p> +<p>我要好好爱你没有人能怀疑</p> +<p>你知道我不能,失去你</p> +<p>就算春风淅沥沥吹不走</p> +<p>长夜思绪爱让我化不开,忧伤</p> +<p>哪怕心中燃烧的梦想带来远方无尽的希望</p> +<p>猜不透的是那里到底有没有天堂</p> +<p>春天花儿悄悄地绽放背上重重流浪的行囊</p> +<p>带不走的是你给我的清香</p>连接被重置https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/Sat, 27 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/<p>打开我的blog总是连接被重置,为啥?我这儿没啥敏感词啊。</p>下雨啦https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/Wed, 24 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/<p>下班的路上,下起了大雨,下了车仍然在下,没带雨伞,还好穿的比较厚,没有淋到,但是地上积水很多,把我的鞋洗的铮亮。</p> +<p>不是说春雨像牛毛、像花针、像细丝吗?</p> +<p>不是说随风潜入夜,润物细无声吗?</p>春天,GoogleByehttps://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/Tue, 23 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/<p>都说你是纯爷们,其实也只是个传说,这里没有纯爷们。</p>千年以后的人类https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/Mon, 22 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/<p>闲来无事,意淫一下千年以后人类是啥子样子哈。</p> +<p>如果2012是真的,那么千年以后没有人类。</p> +<p>如果不是,也许北京的地铁都修到31415926号线了,但是交通依然拥堵。</p> +<p>那时候也许你的qq等级已经升级到两个天狼星外加5个太阳3个月牙(1G个太阳折合一颗天狼星)。</p> +<p>那时候Google已经接管了地球上所有的计算工作,人一生下来屁股上就被栓个搜索框。</p> +<p>那时候人当然已经不再是从娘肚子里爬出来,而是由计算机编译出来,他的“父亲”在web页面上选择他所具备的能力,可以选择他一生下来就会C语言或者偷菜,而且有多星系语言版本,当然了,能力越高就越贵。</p> +<p>那时候所有的人都要求过织女星语4级,考不过不给办理银河系暂住证,当然了你也可以在开往木星的长途车站门口找到一堆办证的广告。</p> +<p>那时候IE也应该支持W3C的浏览器标准了,如果IE还在的话。</p> +<p>那时候会有一堆考古学家专门研究从地下挖出的碟片是盗版还是正版,当然了那时还是正版的值钱,到时会有一个电视节目叫“鉴碟”,拿着你收藏的碟片上电视节目的话,如果是盗版会被当场被锤子砸烂,不过有个例外是“A片不砸”。</p>声卡那些事儿https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/Sun, 21 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/<p>1、装机</p> +<p>要是在2000年左右买电脑装机器,除了要考虑cpu、主板和显卡之外,还有个板卡不能忽视,就是声卡。</p> +<p>没声音,再好的戏也出不来,所以声卡作为一个多媒体电脑的基本配件在当时是十分重要的,记得当时很多厂家都在这个领域厮杀,启亨、帝盟、创新、雅马哈等,广告打得异常火爆,后来来自新加坡的创新公司创新赢得了这场战争。因为创新推出了一片极其牛逼的芯片EMU-10k1,利用该芯片制造出了一拨红的发紫的声卡产品&mdash;-SB-Live系列(我们背地里管它叫傻逼的生活)。</p> +<p>后来一个计算机标准出来了,那就是AC97,主板逐渐集成了声卡,开始还依赖cpu的运算偶尔还要爆音和死机,后来技术日趋成熟,遍地都是板载声卡了,主板厂商要是不集成声卡都不好意思跟人家打招呼了,这下好了,装机的配置单上再也没有“声卡”这个选项了。</p> +<p>2、波表</p> +<p>我的第一台计算机配了一块杂牌声卡,我估计音质还比不了现在的集成声卡,但是该声卡集成了一个FM合成器,我当时爱玩一个叫“快乐电子琴”的音乐软件(感谢这个软件,因为这个软件我后来才买了台雅马哈电子琴),利用该软件可以在电脑上叮叮咚咚地弹电子琴,也算是过过电子琴的干瘾。</p> +<p>这个软件之所以可以发音就是依赖了我声卡上的FM合成器,不过乐器的音色很假,敲鼓的声音像是在放屁。</p> +<p>直到有一天我去同学家里玩,他有一块雅马哈724声卡,我给他装上了“快乐电子琴”,一弹奏我就惊呆了,乐器的声音太逼真了,跟真的一样,比起我那个FM合成器声音有天壤之别,后来屡次查资料这才认识了“波表”这个东东,这是一项MIDI技术,如果要说清楚的话估计得说上三天三夜,这里就不详细介绍了。</p> +<p>不过雅马哈的724声卡其实并非带了硬件波表合成器,而是通过软件模拟的,发声会有一些延迟,但是已经很不错了,软件波表模拟器后来发展的也不错,能力也大大超过了硬波表,不过这就是后话了(现在的计算机上如果是windows系统就都有一个软波表,音质一般,有延迟)。</p> +<p>再后来我的另一个同学有块创新PCI128声卡带了个8MB的硬波表合成器,这个声音又让我吃惊了一下子,这次就更逼真了,而且声音实时发出,不带一丝一毫的延迟,软件波表模拟器的最大的缺陷在这里被一扫而光。</p> +<p>3、ASIO</p> +<p>我后来有了一块创新的SB-Live声卡,用了快8年了,这么多年我换了3台计算机,但是声卡一直用的是这一块。这块声卡经典到无法用言语来形容,目前在我的电脑上通过kx驱动,发出的声音甜美清澈,音质是那些集成声卡脱了裤子也撵不上的。</p> +<p>虽然已经停产了,但是仍然可以在网上买到旧的,听说有人收藏了上百块这款声卡,可见其经典程度。</p> +<p>更难能可贵的是,有了kx驱动(一个非官方的改版驱动)可以使此声卡支持ASIO(一种音频标准),在Cubase等录音软件下可达到实时渲染声音的效果,行话叫“听湿录干”,要是普通声卡的话就有很大的延迟,想想你唱卡拉ok时过了几秒钟声音才发出来的尴尬,所以支持ASIO可以让我在CuBase下直接唱卡拉OK,而且可通过各种软效果器随意处理自己的音色。</p> +<p>4、现在</p> +<p>很少有人再去关注声卡了,厂商也不再大力宣传他们的声卡产品,那些肯花五千块钱配电脑的人宁愿其中有一千块钱花在显卡上却不愿花三百块钱买块差不多的声卡。好吧,那你就忍受集成声卡那粘粘糊糊的音质吧。</p>烂片时间https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/Sat, 20 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/<p>周末,挑了一部尼古拉斯凯奇的电影,看完了不得不说,白瞎了尼古拉斯凯奇了,不过竟然看完了,知道是哪部了吧?</p>我是无法整理好我的硬盘了https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/Thu, 18 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/<p>随着时间的推移,硬盘上的东西积累的越来越多,硬盘也由原来的一块到现在的四块,大容量的硬盘对于偏执狂就是一个噩梦。</p> +<p>早就意识到硬盘需要整理,可是我的整理速度却赶不上硬盘里的垃圾堆积的速度。</p> +<p>有些东西明明“没有用”却不舍的删除,而真正需要用到的时候却死活找不到放在那个文件夹下面了,曾经使用过Google的桌面搜素,确实不错,可是该程序的索引会越来越大,渐渐达到难以忍受的地步,只得停用。</p> +<p>我决定狠一狠心,花掉这个周末,彻底整理好硬盘上的文件&hellip;&hellip;</p>听歌随想https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/Wed, 17 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/<p>最早对听歌有印象应该是在八九岁的时候,追逐时尚(当时还没有‘时尚’这个词)的三叔买了当时比较酷的双卡收录机,呵呵,年轻人嘛。</p> +<p>我就从那个时候起开始听磁带,磁带比较匮乏,基本上没啥可挑的,偶尔只有戏曲磁带也得将就着听。</p> +<p>估计当时就是90年代吧,记不清了,好像还流传过一阵子囚歌(愁啊愁啥的),后来又有电视连续剧《渴望》、《篱笆女人和狗》等里面的插曲流行,我记得我当时听一遍就学会了《篱笆女人和狗》里面的一曲《过三关》,还好当时还小,啥也不明白,现在回想起来,那绝对是一首“黄色歌曲”,比邓丽君的歌“黄”多了(当然我当时不知道邓丽君),不信你可以去查一查歌词,不过要说这是艺术的话也能给糊弄过去(其实仔细品味宋祖英的《十八弯的水路到我家》也有那个意思)。</p> +<p>没办法,在农村的乡下,也就听这些歌了,将就了。也有一阵子流行《黄土高坡》、《信天游》什么的,后来我才知道,人们管那一阵子叫“西北风”。</p> +<p>镜头再往现在稍微推一推,我就开始听到港台歌曲了,第一首有印象的港台歌曲是刘德华的《来生缘》,第二首是叶倩文的《潇洒走一回》,第三首是郑智化的《水手》,算是对流行歌曲的正式启蒙吧,那时家已经搬到了镇上。</p> +<p>后来学习开始紧张了,没机会听到更多的流行歌曲,但是还是很喜欢听的,基本不放过听歌的机会,偶尔也会攒点儿零花钱去买磁带,但当时的零花钱简直是少的可怜,一盒磁带要十块钱左右,所以我很少买,不过我现在还记得买的第一盒磁带,是一个大杂烩合集,周华健《风雨无阻》、张学友《偷心》、谭咏麟《青春梦》等等,都是在那盒磁带上第一次听到。</p> +<p>这些歌应该不是那年才刚刚流行的,但我肯定是那时才接触到。由于信息的闭塞和经济的欠发达(就是穷),我听歌的节奏一直比别人晚了半拍(这是后来上了大学才知道的)。</p> +<p>比如他们听张信哲的时候我还不认识这个人,我听张信哲的时候他们已经在听周杰伦了。</p> +<p>现在我偶尔也听周杰伦了,但是他们都不听周杰伦了。工作以后,有一天我跟同事聊天说道:“我怎么现在才觉得欧美的80年代摇滚那么好听呢?是不是我的欣赏水平才达到人家80年代的水平呢?”还是我的同事有水平,沉吟片刻,给了一个很牛逼的答案:“不是越往现在的东西就越好,比如瓷器就是越老越值钱,越是现在的就越便宜&hellip;&hellip;”</p>想出s60软件签名机制的家伙脑子一定是被驴踢了https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/Tue, 16 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/<p>前一阵子突然想玩玩在手机上写程序,以前也写过j2me的,这次图个新鲜就挑了pythonfors60,还算比较容易掌握,于是就随便写了个帮助我自己查话费余额以及gprs流量的小程序,基本能用,后来由于太忙就懒得再完善了,随便打个包装在我的e71上了事。</p> +<p>前几天老婆也让我给她装个这样的程序,我才发现问题所在,我没有开发者证书(这个据说要掏钱向nokia购买),打包成的sis安装程序在破解过的手机上可以随便装,但是没破的就无法安装了,而以一个普通用户的水平,诸如这些申请证书、软件签名、高权限、破解等几乎无法独立完成,甚至无法理解。</p> +<p>靠,把话题扯远一些,再说说nokia提供的开发环境,如果使用c++开发的话,光是开发环境的配置就足以让人抓狂的,不能在linux下开发不说,在windows下开发还得把编译环境和sdk安装到同一个盘符下否则打死都不能编译通过,在某些笔记本上就连模拟器也有必须插上麦克风才能正常启动的怪癖。</p> +<p>所以说nokia这么做只会让symbian平台慢慢死去或慢慢去死,以后就算不被android压住风头也会被自己玩死。</p> +<p>我的建议是,提供好用又免费的开发环境,彻底摒弃垃圾的软件签名机制,提供类似于appstore的软件商店(听说也有了)。</p> +<p>总之就是吸引开发人员开发出大量牛叉的应用,这样才“科技以人为本”而不是以坑人为本。</p> +<p>ps:看来nokia把宝压在qt上了,我也是比较看好qt的,也希望nokia能够发挥好qt。</p>不听相声听音乐https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/Mon, 15 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/<p>前一阵子我养成了一个不良好的习惯,睡前听相声,甚至达到了不听就睡不着的地步。</p> +<p>说出来怕郭德纲不高兴,我听他的段子入睡最快,不过也许他会说一句“我很欣慰啊”。</p> +<p>如今的相声段子太少,很快就无法听着新鲜段子睡觉了,而老段子则是催眠效果不佳。</p> +<p>行动吧,改掉这个坏毛病。</p> +<p>于是,我把音箱从书房搬到客厅,然后又搬到卧室,每天晚上睡前从《加州招待所》一直听到《喜洋洋》,渐渐发现我现在竟然能听的进去民乐,甚至还喜欢上了。</p>上苍保佑爱折腾的人https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/Sun, 14 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/<p>折腾,大部分情况是贬义,有一种没事儿找事儿的味道,或者是重复地捣腾一些无意义的事情。</p> +<p>大概就这么个意思吧,详情可以去查词典。</p> +<p>对照一下,发现我是个不折不扣的爱折腾的人。</p> +<p>我的这个特质在计算机方面几乎发挥到了让人发指的地步,比如在大学的时候,我几乎每周重装一次操作系统,后来无意中把Win98的序列号(QY7TT-VJ7VG-7QPHY-QXHD3-B838Q)给背了下来,你看,竟然现在还记得(敲了那么多遍,记不住才怪)。</p> +<p>这个爱重装系统的癖好差点儿保留到工作以后,直到后来工作忙了,实在无暇顾及才消停。有一阵子我认为听音乐的感受跟音箱的摆放有很大关系,于是就反复调整喇叭的位置,比如挂在蚊帐上、放在洗衣机里、塞到书架里等等,虽然知道这么做没啥意义(不像许三多那样整天想着做有意义的事情),但是还是无法停止。</p> +<p>最近还流行一个词叫MOD(改造),其实就是折腾,好好的东西改的面目全非却让人着迷,虽然不会把吹风机改装成刮胡刀,但是可以把台式机改造成便携机,或者把笔记本电脑改造成平板电脑,据说有公司专门负责干这个还挺赚钱的。</p> +<p>还有一种折腾是总想让手里的工具达到一种无限趋近完美的状态,或者榨干它的最后一丝潜力,这些貌似无聊的事情,有个很大的原因是因为个性里多少有点儿完美主义或偏执的性格。</p> +<p>这里的例子很多,并不局限于计算机上,生活中的各个方面都有,比如据传闻有牛人在开车起步的时候先挂一下倒档,这样使自己的手动挡的车在别人看起来像是自动档的了,哈哈,玩笑。</p> +<p>折腾是一种生活态度,在我看来甚至是一种美德,一个人喜爱折腾并非是缺心眼儿,而是说明其有活力、有追求。</p> +<p>爱迪生如果不爱折腾可能我们现在还在点着蜡烛,牛顿不爱折腾的话我们也不会在学校里里受尽高等数学的折磨,福特要是不爱折腾我们现在的交通也许不会这么拥堵,骑着马去赶集,够拉风,我靠,怎么说着说着论证反了。</p> +<p>总之吧,我觉得上苍就是保佑爱折腾的人,怎么地吧。</p>真是个不错的天气https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/Sun, 14 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/<p>虽然理论上已是春天,可是很显然今年真正的春天要比往年来得要晚一些。</p> +<p>星期天的早晨不太想睡懒觉,拉开窗帘就看见大雪纷飞的天气,恩,这种天气最适合缩在家里,看个电影或者看看书,总之,是个适合宅在家里的天气。</p>该读什么样的书https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/Fri, 12 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/<p>一直后悔书读的太少,用他们文化人的观点来说,我几乎算上是文盲级别的。</p> +<p>记得有人开过一长串的书单,曰:没读过这些书的都算文盲。</p> +<p>我扫了一下列表,光是外国名著就占了很大一部分,像我这种看见翻译成中文的外国人名就头疼的人,肯定算个不折不扣的文盲了。</p> +<p>学生时期,我所看的文章大部分来自于语文课文,偶尔有课外读物也是吹得没边儿没沿儿的童话故事。</p> +<p>厚部头的书几乎没有耐心把封皮看完。</p> +<p>后来用掌上电脑看书,没有了厚度的压力,我才能把金庸和古龙看完,嘿嘿,就算是补看,也补武侠小说。</p> +<p>前两天又有人出来得瑟着整书单出来,告诉别人这辈子最该读什么书,我操,我该读什么书先搁一边儿,你凭什么在那儿指手画脚。</p> +<p>最讨厌的就是这些家伙,动不动就告诉别人该这样该那样,什么这辈子一定要去的几十个地方啦,做人一定要注意的十个方面啦,一天一定要喝八杯水啦,你大爷的,你自己的事儿整明白了么?嗯?</p>今天是女儿生日https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/Thu, 11 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/<p>今天是女儿的生日,祝她生日快乐,健康、平安。</p>模仿最近比较 流行的日记格式https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/Wed, 10 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/<p>今天起的很早,天气转晴了,冷的厉害。</p> +<p>检查手机电邮时发现忘记换电池了,赶紧给手机换上。</p> +<p>公交车又迟迟不来,烦。</p>我最喜欢的电影画面https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/Wed, 10 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/<img src="https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/4681282-739763.jpg" alt="Featured image of post 我最喜欢的电影画面" /><p>在辽阔的金黄色的麦田里,微风吹起麦浪,主人公的背影慢慢出现,伸手轻抚麦穗。</p> +<p>在麦田的对岸,有守望他的亲人,这是我最喜欢的电影画面,来自《角斗士》。</p>买了个加湿器https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/Tue, 09 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/<p>北方的天气就是干燥,在房间里放上半杯水,没两天就干了。</p> +<p>睡上一觉醒来,鼻子和喉咙都干的够呛。</p> +<p>经过同事的建议,买了个“空气加湿器”,京东的送货速度就是快,昨天下的订单今天就到了。</p> +<p>拆开一看,根本就不是多么高级精密的仪器,是一个塑料水杯,通过马达把水打成很碎的水雾然后喷出来而已。</p> +<p>试试效果如何,先喷一晚上再说。</p>应老婆大人要求,继续写博https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/Mon, 08 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/<p>刚才老婆短我,问我为啥博客不再更新了,并表示期待看到我继续更新此博客。</p> +<p>本来,对网络环境十分失望,写了博客也无法正常访问,养成写博客的习惯也慢慢丢弃。</p> +<p>有心不再更新livespace的博客而专心使用blogspot,无奈blogspot长期被挡在墙外,老婆大人当然无法访问,而老婆通常又是我博客的VIP读者,所以,既然老婆要求我仍然在此唠叨,那就继续在此更新吧。</p>this blog is shutdownhttps://sbabybird.github.io/p/this-blog-is-shutdown/Fri, 05 Feb 2010 00:00:00 +0000https://sbabybird.github.io/p/this-blog-is-shutdown/<p>byebye另一个blog地址仍然有效http://sbabybird.blogspot.com</p>经历时光倒流https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/Thu, 28 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/<p>大前天(2010-01-25)的晚上,我更新了一篇博客叫“中了数码产品的毒”,通过email同步更新到我的在blogspot上和livespaces上的日志里,结果livespaces里无法显示。</p> +<p>本来就觉得livespaces用着有些别扭,因为blogspot在国内无法访问,没办法才同时更新livespaces作为备份的。加上这两天盖茨又在叫嚣不利于互联网和谐的声音。于是,前天晚上,我在livespaces里说,不再更新livespaces,还发了一通牢骚。</p> +<p>结果,在今天发生了时空大逆转,大前天发的那篇博客又出来了,而且显示在前天晚上的那篇牢骚之后,真是无奈啊。</p> +<p>也许是livespaces的邮件系统出了毛病吧,唉,你说我还要不要在livespaces上继续更新之?</p>中了数码产品的毒https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/Wed, 27 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/<p>05年的时候,我迷恋上了摄影,确切地说,是迷恋上了数码相机。</p> +<p>那一阵子,我觉得我得马上买一个数码相机,没它不行,走在路上也想着我拿着相机到处“喀嚓”的感觉,不时地拿手比划比划进行所谓的“构图”。</p> +<p>于是乎,我天天看评测报告,看各个相机的参数,由于当时还算比较理智,没有买单反的,随便买了个消费型的数码相机,其实也不是很随便,至少具备手动功能,成像质量也不算太差,但是跟专业相机比起来仍然是玩具。</p> +<p>不过偏偏有人鼓吹“照片拍的好坏不取决于硬件,某某大师也能用傻瓜相机拍出经典来”。</p> +<p>导致我那阵子还研究了一下光圈和快门的关系,甚至还背了景深表。</p> +<p>不过,很快我就发现,两点一线的生活并不适合学摄影,热度也慢慢下降,那个数码相机也被丢到角落。</p> +<p>华硕刚刚推出上网本的时候,我又迷恋上了,就是所谓的“中毒”,也觉得要马上买一个回来,这东西简直就是给我量身定做的,每天在路上惬意地写两段程序,多美好啊,我想。</p> +<p>不过,很快就发现,上网本的键盘简直是一种刑具,按键小的像米粒,在上面打字备受折磨。</p> +<p>屏幕也很小,看起来很费眼睛,所以,我的视力下降了。</p> +<p>唉,回顾一下,那么多诱人的数码产品到底给我带来了什么?从文曲星的电子词典到华硕的上网本,从诺基亚到黑莓,这些曾经使我严重中毒的东西,没有一样发挥出我没有拥有时所想象的功能。</p> +<p>最近我又中毒了,看上了亚马逊出的电子书,恩木,电子墨水屏幕,超便携,wifi,省电,看起来是那么诱人。这也就是为什么,我要写下了上面的那些文字,因为我要给自己解毒。</p> +<p>简单地回顾了一下,我仿佛听到这些电子产品说,“你不要迷恋哥,因为哥只是个传说”。</p>不再更新这个博客https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/Tue, 26 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/<p>第一,livespace太难用了。</p> +<p>第二,2010年我想做些有意义的事情。</p> +<p>第三,在blogspot上的博客继续更新。</p> +<p>第四,无限期暂停更新此博客。</p> +<p>第五,我个人十分讨厌微软的产品。</p>可怜的显示器和键盘https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/Sun, 24 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/<p>刚刚看了这个视频,乐得够呛。暴躁是人的天性,虽然平时不怎么打游戏,不过我也偶尔会有这些冲动,只是显示器和键盘实在是太委屈了。</p>坚持https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/Sat, 23 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/<p>这个世界从来不缺乏新鲜的点子和想法,缺的是把想法实现出来,并坚持下去。无论做什么事情,随着刚开始的新鲜感渐渐退去,随之而来的就是对耐心和毅力的考验,是的,这世道就是这样,就像他们说的那样,人生就像那啥,能够挺到最后的都是纯爷们。</p> +<p>我从去年开始,准备一点一滴的整理自己的“个人知识管理系统”,期间使用过各种软件,包括但不局限于“evernote”、“trac”、“dokuwiki”等等。</p> +<p>每一次都是浅尝辄止,稀稀拉拉地整理了几篇文章,然后慢慢地落了一层灰。</p> +<p>固然有“工作忙”这个屡试不爽的借口,但每当想起自己当初信誓旦旦定下的计划还是有些不爽。</p> +<p>这次在年初的计划里,我又列出了整理“个人知识”的计划,看来是非执行不可了。</p> +<p>也许等我整理好了,英特纳雄耐尔也就实现了。</p>高人无处不在https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/Thu, 21 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/<p>老旧的计算机除了扔掉还能干点儿啥?</p> +<p>其实只要发挥创意,老电脑还是可以发挥一些余热的。</p> +<p>下面是一些牛人想出来的点子:</p> +<p>1、驱蚊,蚊子十分讨厌频率为6k左右的声波,根据这个传说,编写程序控制pc的小喇叭发出这个频率的声音就可以达到驱蚊效果。</p> +<p>这个我也曾经做过测试,发现纯属骗人,而且6khz的声波仍在人耳的听觉范围之内(20~20k)所以蚊子没赶跑倒是把人给吵晕了。</p> +<p>2、烧烤,有牛人拿旧机箱来烧烤,这个没啥技术含量只要舍得就行。</p> +<p>3、哄baby睡觉,这个比较绝,利用程序控制电脑的光驱开合,从而拖动婴儿车来回移动,达到催眠的效果。</p>在线看3d电影https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/Wed, 20 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/<p>今天发现这个http://3d.pptv.com/看电影的网站(我火星了吗?),在线提供3d电影的视频,当然也是需要3d眼睛,不过是那种最古老的3d眼睛,即红绿3d眼镜。</p> +<p>网站速度还不错,据说带上3d眼镜之后在普通显示器上也可看到3d效果了。</p> +<p>可惜手头没有材料,要不然就自制一个了。</p> +<p>据说这种眼镜没啥技术含量,随便拿两个塑料片就可以了。</p>地方台的电视节目,偶尔也有能看的https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/Tue, 19 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/<p>刚看到一个模仿“一虎一席谈”的节目,提出一个争议话题,找了两组因为利益不同(而导致观点不同)而针锋相对的人在讲台上掐架。</p> +<p>感觉还行,可以当小品看。</p>时空错乱https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/Mon, 18 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/<p>我的记性不大好,一般都是靠手机的日程表来安排事情。</p> +<p>于是今天早晨,我的手机提醒我,妹妹的生日到了,我赶紧发短信以示祝福。</p> +<p>结果不一会儿妹妹就回复短信&quot;你发错了吧,我的生日还差好几天呐!&quot;,仔细一看手机的日期,我靠,提前了好几天。</p> +<p>原来是不知道什么时候错调了手机的时间,看来,电子的东西还是不能太信任。</p>不用那么麻烦,轻松使slitaz支持中文https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/Sun, 17 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/<p>不好意思,最近总是频繁提及Slitaz这个小巧的Linux发行版,我已经把它安装到我的epc上了,驱动齐全,启动和运行速度飞快,安装了最新版的firefox和flash插件,vim当然少不了,可是官方的iso里面并未附带中文的支持,所以打开的中文网页都是乱码。</p> +<p>到网上搜索汉化的方法,发现都比较麻烦,于是自己摸索了一个省事儿的办法。</p> +<p>首先就是准备好一个字体文件,可以直接从已安装的Windows系统里选取喜欢的字体文件,但是我不推崇这么做,因为Windows下的字体都是有版权的,所以推荐使用“文泉驿”系列字体,我选择了“文泉驿微米黑”,可去官方网站下载。</p> +<p>将下载后的字体文件解压到&quot;/usr/share/fonts&quot;下使用root用户执行命令fc-cache好了,现在打开firefox在选项里字体的选择框里就可以选择刚刚安装的字体了,然后在看网页就可以显示中文了。</p> +<p>如果遇到播放flash出现乱码的情况,可执行这个命令&quot;mv/etc/fonts/conf.d/49-sansserif.conf/etc/fonts/conf.d/49-sansserif.conf.bak&quot;这样就可以了。</p> +<p>现在就剩下桌面环境以及程序菜单是英文的了,不过这个没关系,想汉化的话直接修改openbox的资源配置文件即可,不过我就懒得弄了。</p>她来听我的演唱会https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/Fri, 15 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/<p>我从来没有看过演唱会,我曾经想象着这样的场景,歌手在光亮的舞台上扯开喉咙唱歌,我和无数歌迷在舞台地下挥舞着荧光棒也扯着嗓子高呼。</p> +<p>可是我从来没有这样做过,因为我已经错过了那个季节。</p> +<p>我也曾幻想着那样的场景,我理着光头,抱着吉他在舞台上扯开喉咙唱歌,千万的听众也挥舞着荧光棒随着高呼,但是我也错过了那个季节。</p> +<p>我也是个热爱音乐的人,也偏爱着某些歌手,我也曾想象着去听某些人的演唱会,但是我想我不会去了,因为我知道,有些歌我在演唱会上要是跟着唱的话,会无法控制自己的情感而轻轻啜泣。</p> +<p>张学友有一首歌叫《她来听我的演唱会》令无数恋爱中的女人为之动容,因为这首歌唱出了从少女到女人的心路历程。从浪漫的青葱岁月到现实的装b季节,无数的少男少女经历了从梦想的飞蛾到蚕蛹的转变。</p> +<p>正像崔健在《假行僧》里唱到的那样,我要从南走到北,还要从白走到黑,我要人们到看到我但不知道我是谁,假如你看我有点儿累就请你给我倒碗水。。。。。。</p> +<p>今天,我的一个好哥们,雅兴大发,拼命挤到网上淘得一张齐秦在北京演唱会的门票,欣喜若狂。</p> +<p>我很羡慕他还有这个心情去看一场演唱会,在这个充满压力的某些时候还令人沮丧的世界,仍然能保持梦想并执着于自己的爱好。</p>Geany,不错的IDEhttps://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/Thu, 14 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/<p>前两天在试用Slitaz的时候发现其中带的Geany是个不错的IDE(想想吧,Slitaz才不到30M的身材竟然还带了个开发环境),Geany轻巧快捷,功能齐全,具备基本的代码高亮和自动补全功能,用来写python脚本真是个不错的选择。</p> +<p>难能可贵的是其还支持插件扩展(这年头要是拿出个软件还不支持扩展就真不好意思和人家打招呼)。</p> +<p>当然了,就编辑功能来说有些弱,但是作为Slitaz这个小巧系统下的开发环境真是再合适不过了。</p>难以说再见https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/Wed, 13 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/<p>Google,一个IT公司,一个搜索引擎,对我来说几乎意味着整个互联网。</p> +<p>本来在我的心目中,IT公司几乎等于骗子,然而Google却是个例外。</p> +<p>自打开始接触互联网以来,就离不开Google了,她可以说是我的良师益友,离开大学以后学到的知识几乎全部来自于Google的索引。</p> +<p>除了出色的搜索功能之外,Google提供的产品无不令人惊叹,出色电子邮箱、Rss阅读器、浏览器、操作系统、手机操作系统,这些产品每一个拿出来以后都足以让原本在该领域内的佼佼者掩面而去。</p> +<p>可是,马上就要说再见了,总部那边发布了一篇博客,用某些动物的话说叫“撒了一下娇”,一下子就把这边的用户给抛弃了,就像上次operamini抛弃大陆用户一样。</p> +<p>一时间有人高兴,有人悲伤,有人麻木,有人抓狂。</p> +<p>技术人员大都是不关心敏感词的(或懒得关心),可是热爱技术的人哪一个不热爱Google呢,据我的感受来说,但凡是有所能力的技术人员,无论他的外表多么的随和其内心都是十分倔强的,正是凭着这一股倔强的劲儿才啃下了一个个难题,掌握了常人所不能(或不齿)掌握的东西。</p> +<p>然而这些人却一点一点的被逼到了墙角。</p> +<p>倔强的人会放弃吗?想到一个故事,记不清从那个文章里看到的了,歌词大意是:一个大山里的人被带进了繁华的大都市,第一次看到了这花花世界还有这么多活法,然后被告知回去继续过原来种菜喂猪的日子,此人大哭:“既然无法得到却又为什么让我看到啊”</p> +<p>嘿嘿,我宁愿从来都没有看清过这个世界。</p>痴迷https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/Tue, 12 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/<p>今天的气温在极冷的情况下又骤降,这是我遇到的最冷的冬天了,走在路上,鼻涕先给冻出来然后再给冻回去最后结成冰。</p> +<p>最近十分痴迷于在我的小笔记本上试验各种版本的操作系统,今天继续。</p>好像又不能访问google了https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/Mon, 11 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/<p>如题。</p>在我的epc上运行androidhttps://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/Sun, 10 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/<p>早就对google的android系统垂蜒三尺,终于看到了这个android-x86,原来是有几个好心人把android系统移植到了x86平台,喜欢折腾的我当然不能错过。</p> +<p>看网站上的介绍是支持epc的硬件,遂下载了iso刻录到我的优盘上,简直是帅带了,一次启动成功,速度不错,无线网络可以开启,电池电量也可以检测。</p> +<p>界面果然是为手机设计的,可惜我的epc不是触摸屏,但是有键盘,操作起来还算说的过去,比如现在这几行文字就是在此系统下打出来的,也是google的拼音输入法不过是针对android的,使用键盘选字不是太方便。</p> +<p>想截个图结果没找到截图软件,按printscreen按键也不行,算了,先玩玩吧,毕竟不是为笔记本量身定制的系统。</p>从石锅拌饭想到的https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 09 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/<p>记得小时候有一次看电视,新闻报道说某地某羊肉泡馍饭馆生意火爆,去吃羊肉泡馍的人络绎不绝,而且都喜欢装模作样的自己把馍慢慢掰碎了扔进碗里,感觉那样才有味儿。</p> +<p>昨天晚上和同事一起吃饭,某人点了石锅拌饭,不一会儿端上来的却是拌好的,该同事不甚满意,因为以往都是自己动手拌的,即自己眼睁睁地看着那个半生不熟的鸡蛋被慢慢搅匀到米饭里,而这次却是饭店服务员手太勤快直接就给搅匀了,该同事顿觉很失落,因为吃石锅拌饭自己动手拌也算是消费的一部分,拌好了再端上来就失去了原来应有的韵味,就好象上面说的羊肉泡馍的事情,同样的面疙瘩,不是自己掰开的就觉得没味儿。</p> +<p>说了半天,其实我是这些事儿让我想到了其他的方面。</p> +<p>会不会是大家都有某种亲自动手的情节。</p> +<p>比如Linux有很多发行版,其中就有一种发行版叫Gentoo(当然了还有LFS,这个更变态)的&mdash;颇受欢迎,因为其十分的具有原味儿,该系统所有的程序包括操作系统的内核都要自己亲自动手下载源代码进行编译,虽然整个系统从内核到桌面环境一点一滴地慢慢编译出来非常的耗费时间和精力,但是很多人却沉迷其中不能自拔,因为自己动手的感觉真是太他妈爽了。</p> +<p>再说到写程序的方面,虽然现在的IDE都十分强大了,但是还是有人(包括我)热衷于自己写Makefile来控制软件的编译过程,就算VisualStudio已经提供了十分“完善”的开发向导,但是我还是习惯自己写包括消息映射在内的代码,不为别的,因为自己可以控制具体的细节,精确到每一行。</p> +<p>好吧,我承认有时候需要考虑效率和成就感的平衡,但就个人情感来说,我还是觉得自己动手要爽一些,就像吃羊肉泡馍和石锅拌饭一样,恩,有机会把家里的操作系统也换成Gentoo。</p>我靠,宽带断了https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/Sat, 09 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/<p>家里的宽带没被我怎么用过,只是每天晚上用来听相声,可是由于忘记去续费导致我昨天晚上没听成,体验了一夜失去互联网的感觉。</p> +<p>这种体验让我感到相当不爽,因为意识到自己太依赖互联网了,哦卖糕的,我有网瘾。</p>高科技手段抄水表https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/Thu, 07 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/<p>回来的时候,门上贴个条,原来是抄水表的过来时我不在家,只好留下电话让我自己把水表上的数字告诉他。</p> +<p>可是我没有工具,水表安装的位置又极其蹩脚(在厨房水槽下方靠近墙的位置),无法直接观看,每次我都是看他们带着手电外加一个镜子然后撅着身子瘪着头使劲儿看半天。</p> +<p>可是这难不倒我呀,使用手机打开闪光灯,伸进去对准水表,连拍三张照片,然后上传到电脑,本来还准备使用ocr软件自动识别(脱了裤子放屁),但是才发现水表是指针式的,放大图片读出数字,OK。</p>SliTaz,一个神奇的操作系统https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/Wed, 06 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/<p>SliTaz,是一个极其小巧的Linux发行版,究竟有多小呢,他的个头才30MB,可以制作成LiveCD和LiveUSB系统。</p> +<p>所谓麻雀虽小五脏俱全,附带有完整的桌面环境和常用软件,连firefox都有。</p> +<p>在我的epc上跑得飞快,启动速度也很快(它的启动画面上有句很醒目的话“BOOT!BABYBOOT!”,可见其对启动速度的追求),驱动程序也挺齐全的,直接启用无线网卡,零设置。</p> +<p>刚刚才开始试用,无更多体验,目前显卡仍未设置成宽屏的最佳分辨率,不过我想问题不大。</p>普通pc最多能装多少块硬盘?https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/Tue, 05 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/<p>普通pc最多能装多少块硬盘?我不知道,之所以想到这个问题是因为我有个同事是个DIY狂人,他跟我说他想把50块500G的硬盘(普通ATA硬盘)塞进一台机器里(PC),使该机的存储容量达到25T,问我该使用什么操作系统。</p> +<p>我靠,这真是个疯狂的想法,让我想到了那个买一堆奥拓拿铁丝绑在一起的笑话(呵呵,做人要厚道)。</p> +<p>可惜,我是没有这方面的经验,但是去网上搜索了一下,乖乖,借助RAID卡的威力,理论上可以在pc里安装超过100块硬盘,但是实际上几乎没有人这么做过,所以,让我拭目以待,看看真实情况下,到底能够安装多少块硬盘。</p> +<p>想一想这台怪兽的样子,~~~额,再忍不住打个寒噤。</p>新年畅想https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/Mon, 04 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/<p>刚回过神儿来,现在已是2010年了,进入了传说中的二十一世纪的第10个年头。</p> +<p>有几点目标,希望今年可以达到。</p> +<p>谈不上计划,只是随便想想:</p> +<p>1、体重能够增加5公斤。</p> +<p>2、阅读5本书。</p> +<p>3、彻底整理好自己硬盘上的文件,并建立完善的知识管理机制。</p> +<p>4、学会吉他的扫弦。</p> +<p>5、写一个真正的pc游戏。</p> +<p>6、提升英文水平至可阅读非技术类新闻。</p> +<p>7、改善自己的GTD系统。</p>听雪https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/Sun, 03 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/<p>早晨醒来,拉开窗帘,看到一个洁白的飘着雪花的世界,哦也。</p> +<p>这意味着,在明天早上,假期之后的第一天上班,水平很烂的司机和自认为水平很棒的司机将会在美妙的高速公路上疯狂追击,带来无与伦比的超级大堵车,这就叫明知山有虎偏向虎山行,胸中有红日,脚下舞东风,哦,等一等,跑题了。</p> +<p>我是说,早晨一醒来,看到一个洁白的飘着雪花的世界,哦也。</p> +<p>这意味着,我昨天洗的衣服即使是到了明天还是很难晾干,湿润的裤子在风雪中将会很快冻成一根冰棍,恩,是两根。</p> +<p>mad,我发现想怀着一份飘飘(也有人叫浪漫)的心情写几个文字实在是太难了,于是给自己倒上一杯红酒(昨天超市促销,所以&hellip;),重新开始。</p> +<p>我想说,下吧!大雪,我喜欢!(哦,已经有点儿酒劲儿了)。</p> +<p>因为我喜欢聆听雪的声音,那种安静而又带有几分神秘的雪花飘落的声音。</p> +<p>我喜欢独自站在阳台透明的玻璃后面,点上一支烟,雪花纷飞,毫无章法地打在玻璃上有些甚至想在上面堆砌一些图案,远处的景色已经模糊,那些本来杂乱又浮躁的东西统统被覆盖,仿佛他们本来就那么纯洁似的。</p> +<p>路上的行人放慢了脚步,孩子们开心地堆着他们叫做“雪人”的物体,我几乎能听见皮鞋踩在上面发出的轻微的“咯吱”声。</p> +<p>当一个人体会美好的时候,回忆总会涌上心头,因为回忆里全是美好。</p> +<p>镜头很快滑过小时候第一次看见下雪的情景,起初飘落在地上的不是雪花,而是很小很圆的颗粒,叮叮咚咚,我拿着小铲子蹲在院子里,还以为那是化肥,恩,我也记不清楚了。</p> +<p>然后就是大片的雪花了,地上很快就白了,嘴里呼出的热气和雪花缠在一起。</p> +<p>再后来,我穿着笨拙的大头鞋使劲儿在雪地里踩出又大又深的脚印,恩,这就是我对雪的第一次印象,虽然记忆已经模糊地带着雪花点了,不过这正迎合了此刻的景象。</p> +<p>听雪的时候更能够享受一份孤独,烦恼都烟消云散。电脑里编译着代码,电视里主持人在蹩脚地斗嘴,我一个人站在玻璃后面听了一袋烟工夫的雪,却好像一个世纪那么长。</p>假期https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/Sat, 02 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/<p>2010年的第一天,我加了一天班。</p> +<p>2010年的第二天,我狠狠地睡了个懒觉,本来想从天黑睡到天黑,但是想到假期是如此的珍贵,只好在9点am就爬了起来,做了顿丰盛的早餐。</p> +<p>在给我的ubuntu重新编译了两次最新的内核之后,我意识到这是一件很无聊的事情,于是决定做一些有意义的事情,看美剧,一连看了十来集,再看就要呕吐了,而且由于反复傻笑导致脸也快抽筋了。</p> +<p>我决定出去走走,做了个不太理智的决定,那就是漫无目的的逛超市而且还是空着肚子。</p> +<p>记得好像有人提醒过,去超市买东西时最好先想好一个清单,而且最好是在吃饱的情况下再去,否则就会拿回一大堆垃圾回来,恩,我今天就是这样。</p> +<p>我推着小车(这也是个错误的决定),由于食欲的关系,不一会儿的功夫就把小推车堆的满满的,一边大把的拿东西一边想象着自己坐在家里美美的吃它们的样子,哦也,再加一瓶红酒吧,哦,等一等,这边的酱肘子正在滋滋地冒着热气,仿佛正在召唤我,ok拿下。</p> +<p>提着东西走进家里,我才意识到,我买了足够我吃一个月的食物,而有些东西的保质期才两天,比如那只烧鸡。</p> +<p>好吧,他们说狂欢是一群人的孤单,而孤单正好一个人狂欢,justeat!</p>goodbye2009,hello2010https://sbabybird.github.io/p/goodbye2009hello2010/Thu, 31 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/goodbye2009hello2010/<p>。,goodbye2009,hello2010</p>关于windows7下无法安装Visual Studio2008的问题https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/Wed, 30 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/<p>单位的机器,前一段时间,被我换成了windows7系统,没办法,咱就是爱折腾。</p> +<p>尝鲜总是要付出代价的,那就是不知怎地,过了一段时间就无法安装某些软件了,不能安装office这还能忍,可是连vs都不能装了那还用个屁啊。反复观察,原来是无法安装vc++的runtime了(也就是vc_redist_x86.exe),具体是为什么不太清楚,好像是一个系统的bug导致的。反复地google,去microsoft网站去查,折腾了好几天,总算有了解决办法。</p> +<p>步骤如下:</p> +<p>1、打开注册表编辑器regedit,找到这儿HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control,</p> +<p>下面有个叫RegistrySizeLimi的键,把它的值修改为0xffffffff</p> +<p>2、重新启动电脑,并使用administrator用户登录,如果该用户未启用则要首先到“计算机管理”里面把administrator帐号启用。</p> +<p>3、在cmd里运行“sfc/scannow”以上几步完成后,再次重启机器即可。</p>你看,电视!https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/Tue, 29 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/<p>谁也阻挡不了互联网带来的变化,有些东西正在一个一个地被消灭,比如纸质信件,比如影碟机,比如磁带、CD。</p> +<p>现在还在苟延残喘的还有电视、报纸等,但是他们的日子也&hellip;&hellip;</p> +<p>今天看到消息,咱们的CCTV也推出网络电视了,抱着凑热闹的心理去看了看,随便打开几个视频看了看,然后就关了,我只能说他们的网速还不错,内容实在是没有什么吸引力。</p> +<p>不知怎地,我现在已经开始讨厌看电视了,我不是不喜欢电视机,而是不喜欢里面的节目了。</p> +<p>再也没有瞪着好奇的眼睛盯着电视屏幕不放的心情了,小的时候,哪怕是一段朴素的广告我也爱看,现在回忆起来那时的电视节目几乎个个都是经典。可惜啊,随着时间的流逝,信息来源的多样化,尤其是接触了互联网之后,眼界一下子开阔了,再加上现在的节目大都粗制滥造带有极强的功利色彩很多时候拿观众当傻B,谁还爱看呢。有句话说的好,记不得是谁说的的,歌词大意是:“当你打开电视的时候,你的大脑就会停止思考。</p> +<p>而当你打开电脑的时候,你的大脑正开始思考。”</p> +<p>恩,我很同意这句话,尤其是前半句。</p>在kde下更新博客哦https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/Mon, 28 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/<p>嘿嘿,Linux进步真是非常快,桌面环境比起前两年已经友好的多了,很多人性化的功能让windows只能掩面而去。</p> +<p>以前在linux下的输入法还只能算是能用,现在的输入法已经算是好用了,当然还比不了windows下的google拼音,不过也差不多了。</p> +<p>抛开其他的特性不说,一想起这是一个开放的、自由的、免费的系统环境就让我对它爱不释手。</p> +<p>一大票强大的软件可用,成熟方便的开发环境,安全的游览器,不用装杀毒软件,实在是找不到理由再去用windows了。</p> +<p>唯独不能在qq上和家人视频,不过我准备用skype试试看。</p>正式切换家用电脑的主系统为kUbuntuhttps://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/Sun, 27 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/<img src="https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/20091227.png" alt="Featured image of post 正式切换家用电脑的主系统为kUbuntu" /><p>早上一睁眼,想起了这是星期天。于是我的老毛病就又犯了,睡不着了。</p> +<p>一个念头闪过脑海,感存重装系统玩儿吧,这几天在单位被windows7折磨的够呛,于是决定换掉家里的系统,不用windows了!</p> +<p>换成哪个linux发行版呢,一定要漂亮的,一定要省事儿的,于是选择了kUbuntu这个号称比windows7还要漂亮的发行版。</p> +<p>安装十分简单,去下载iso就行了。</p> +<p>一路“下一步”即可。</p> +<p>第一次使用kde4的桌面环境,很是惊艳,早听说kde4漂亮的一塌糊涂没想到竟会这么漂亮,开了特效之后更是华丽的令人发指。</p> +<p>好了,就这么定了,以后就用这个了。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Sat, 26 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<img src="https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/blog-733901.PNG" alt="Featured image of post 无题" /><p>尝试用触摸板画画,太蹩脚了。</p>圣诞老人https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/Fri, 25 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/<p>据说他们装的都很认真,为了让孩子保持对圣诞老人期待,他们每年都要装模作样的去追踪圣诞老人。</p> +<p>刚刚看到消息,说Google每年都提供kml文件用以跟踪圣诞老人的行踪,而网站noradsanta.org更是制作了完整的地图来显示,可惜的是访问该网站只支持Windows和Mac系统,于是有人抱怨说:“难道圣诞老人讨厌Linux吗”,我觉得noradsanta.org做的挺对的,因为使用Linux的人,谁还相信有圣诞老人啊。</p> +<p>toosimple</p>写在平安夜https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/Thu, 24 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/<p>圣诞节,这个本属于老外的节日,现在已经成功移植到国内了,大家过得还不亦乐乎,节日嘛,咱们最喜欢了,来者不拒,有一个算一个。</p> +<p>现在外面温度-5度,偏北风力4级,看不见月亮,我刚和同事喝了两杯回来,屋里暖和极了,倒了一杯开水,坐在客厅,很安静。</p> +<p>总是到了年末的时候才想起感慨时光的流逝,这一晃就又是一年。粗略地回顾一下,有收获也有遗憾,有成长也有叛逆。</p> +<p>翻了翻年初给自己制定的计划(对不起,我是计划狂++),发现大部分还是实现了的,有些计划制定的太过离谱偏离较远,比如学习计划,由于时间的冲突只得以工作为重。</p> +<p>不过,梦想始终是不能够放弃的,我庆幸自己清醒地知道目标,并坚定不移地去实现它,一个一个地了却心中的情结。</p> +<p>谈到梦想,我都快成了一个梦想家了,到现在为止我仍然保留的梦想有:</p> +<p>拍摄一部上好的纪录片,做一个录音师,拥有一个属于自己的实验室,写一个操作系统,等等等等(除了最后一个其它的好像都离我的职业挺远的)。</p> +<p>在追逐梦想的路上,难免会有失望和沮丧的时候,但心中的信念从来都没有丢失,面对我的梦想,我像一个虔诚的信徒,怀揣着单纯的心,每晚甜蜜的睡去。</p>微波炉的影响https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/Wed, 23 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/<p>无论厂家如何吹嘘,微波炉的电磁辐射泄漏都是挺严重的。</p> +<p>以前不觉得,认为把它关严实就不会有微波跑出来,所以一边加热食物,一边在跟前等着。</p> +<p>这几天我喜欢拿着笔记本在餐桌旁上网,刚才开动了一下微波炉,我的笔记本立即就连不上无线网络了,我差点以为是我打开的网页内有敏感词,后来才发现是微波炉辐射的影响,看来以后得注意些,不能在开启的微波炉边上上网啦。</p>3D电影终于要走进家庭了https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/Tue, 22 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/<p>刚在Solidot看到一则让人兴奋的消息,3D蓝光规格终于敲定,这意味着以后的3D电影可以装进蓝光DVD并在家里播放了,虽然在观看时仍然需要特制的眼镜,但这已经不是问题了,我想,随着技术的发展,很快就能观看不用带3D眼睛的3D电影了。</p> +<p>最酷的是,使用蓝光DVD播放器即可组建家庭3D影院了,当然对显示设备有所要求,不过问题不大,我估计5年之内即可普及了,科技的发展速度实在是让人敬畏。</p> +<p>顺便提醒一下,国内的标准机构是不是也需要与时俱进赶紧制定咱中国人自己的标准呢?嗯?</p>郁闷的万能解药https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/Mon, 21 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/<p>靠,本来想说开心是郁闷的万能解药,想了想又觉得不妥,本来就郁闷了还哪来的开心。</p> +<p>好吧,乐观的心态才是。很久很久以前,记不清了,大概是上个世纪的事儿了,有一坨古老的电视节目,里面有一句名言:“快乐是一天,不快乐也是一天,为何不天天快乐呢?”</p> +<p>,你听听,说的多在理啊,虽然有点儿站着说话不腰疼的意思,但是话糙理不糙,不用多仔细去想就觉得豁然开朗。</p> +<p>随着工作压力的增大,以及对世界认知的改变,人已经变的越来越不单纯了,本来一杯清澈的白水已经污染的又黑又浑,已经很难咧着大嘴叉子笑得喘不过气来了。</p> +<p>曾经一个一头猪掉进臭水沟里的笑话都能笑上半天,到现在看见这样的笑话连嘴角都懒得抽动,偶尔遇到能够笑得起来的还是荤段子。</p> +<p>但是,最近看了一连串的美剧,让我又回到傻笑的年代,有些人说这太单纯、无聊、没意思,其实包含着大量的深刻讽刺和幽默,比如《生活大爆炸》、《好汉两个半》、《老爸老妈的浪漫史》等等</p> +<p>,他们不但让我看得前仰后合而且还能产生一些积极乐观的思考,不像有些电视剧简直是把你的脑袋敲开了往里面扔大便。</p>没写过曲子的厨子不是一个好裁缝!https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/Sun, 20 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/<p>今天坐在电子琴前瞎按,精神有些恍惚,尝试着弹些曲子,居然可以有“完整”的旋律被弹出来,而且听起来有些淡淡的伤感,有些甜蜜。</p> +<p>我又不会记谱,纯粹凭着感觉弹奏,恰巧电脑上的midi软件坏了,无法使用软件录制,只好掏出手机赶紧把这段录下来(用手机录的音质就差多了),要不然很快就会忘了。点击这里可听如有雷同纯属巧合:)</p>周末,看电影的时间https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/Sat, 19 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/<p>按照偏执的日程安排,周末乃观影时间,一个人抽着烟复习经典老片。</p>关于随机数https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/Fri, 18 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/<p>众所周知,计算机(不含量子计算机)是不可能产生真正的随机数的,而只能产生出“伪随机数”。</p> +<p>因为要在计算机上产生随机数都要设置“随机数种子”,而一般来说这个“种子”来自于计算机自带的时钟,这也就意味着这个过程是可重复的,产生出的随机数也是有一定的规律的,无论多复杂的随机算法都难逃这个定律。</p> +<p>具体解释可参考维基百科。</p> +<p>可是大自然中到处充满了“真随机数”,因为没有完全一样的两片树叶,也没有完全相同的指纹(这个不好说)。</p> +<p>可是这些真的是随机的吗?</p> +<p>还是由于人类的认知并未达到一定的高度才产生出来的错觉?</p> +<p>因为我常常这样想:假如我写了一段程序,里面有个“生物”假设他有意识(我靠,这太难了),我给这段程序一堆随机数字,那么程序里的“生物”是不可能知道这些随机数字是由于我设置了“随机种子”才产生的,因为在“构建”这个“生物”之前我已经设置了“随机种子”。</p> +<p>好了,令我有些迷惑的是,也许我们大自然的随机数是在“宇宙大爆炸”的时候就设置了“随机种子”的,后面的发展固然有无尽的随机数,导致根本没有重复的树叶也好,没有相同的指纹也罢,也许这些还是“伪随机数”。</p>齁冷https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/Thu, 17 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/<p>实在找不到词语形容今天的天气了,查了半天新华字典才找到“hou”这个字怎么写,恩,今天天气齁冷齁冷的。</p>DIY了个电子琴延音踏板https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/Wed, 16 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/<p>当初买电子琴的时候没有配套买一个踏板,后来练习的时候才知道延音踏板的作用还是十分重要的,嫌麻烦就没有再去买,到网上看看卖的还挺贵,雅马哈原装的要好几百块。</p> +<p>后来我研究了一下,电子琴的延音踏板原理十分简单,就是拿脚一踩就短路而已。</p> +<p>于是就想自己做一个,苦于没有材料,有一阵子我甚至联想到我垃圾桶上的那个踏板能不能拿来做延音踏板(当然不行),后来想到了鼠标,行倒是行,就是“脚感”太差。</p> +<p>今天在家翻抽屉翻出来一个废弃的台灯,发现他的底座挺合适的,于是就卷起袖子开干。原理太简单了,就是拿跟引线从电子琴上接下来,这头接在台灯底座上,台灯的底座经过改造,踩下去就导电,抬起来就断开,试了一下,还真对得起咱这台琴!</p> +<p>请看照片:</p>理发https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/Tue, 15 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/<p>今天去理发了,很难理解那些一边理发一边与发型师聊个没完的话痨,今天我终于想明白了为什么我到了理发店就沉默寡言了。</p> +<p>因为他们一般都会问我这几个问题:</p> +<p>1、“您多久没理发了?”</p> +<p>妈的,老子想什么时候理就什么时候理,怎么了。</p> +<p>天气这么闷热生活这么枯燥,理个发你还在这唧唧歪歪没完。</p> +<p>不就是老子的头发留的稍微长了点儿,收拾起来慢一些吗。</p> +<p>2、“您的发质太硬,要不要做个软化?”</p> +<p>操!好好的头发干嘛要在药水里泡来泡去了的。</p> +<p>3、“您的头发有些脱发,给你推荐一款防脱发的洗发水怎么样?我们这边特价”</p> +<p>脱发?没你说的那么严重吧,倒是推荐的洗发水有些怪异,恕我孤陋寡闻,这些牌子我一个也没听说过。</p> +<p>4、“办个会员卡吧?以后每次来都能打8折”</p> +<p>最崩溃的就是这句,痛苦地忍住胸口那句脏话,赶紧离开这间店。</p>我的装机必备软件及理由https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/Mon, 14 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/<p>今天在网上看到有人写他的装机必备软件,看得我也心痒痒,也来说一说我的装机必备软件,每个人的习惯不一样,我选择的都是我最喜欢的。</p> +<p>选择的原则是有免费的就不用收费的,有开源的就不用闭源的,有小巧的就不用臃肿的(当然是同样功能的比较),有绿色的就不用安装的。</p> +<p>1、记事本替代,这个可选择的余地很大,gvim、Notepad++、Notepad2等等,我选择gvim,它高效、强大、聪明。</p> +<p>2、浏览器,这个非常重要,可选择Firefox、Chrome、Opera等等,我选择Firefox,因为Chrome目前还无法让我放弃Firefox,不过Chrome也真的很好,而且进步很快。</p> +<p>为啥没有IE?用IE上网让我没有安全感,而且操作起来很不爽,这点目前已有了很大改观(IE8)。</p> +<p>3、音乐播放器,我选择foobar,不过现在在线听音乐才是趋势,所以foobar只有在听本地的无损音频文件的时候才能派上用场。</p> +<p>4、视频播放器,我选择MPlayer,没有理由,就是他了,非要找个理由的话,那就是因为它是开源的而且它有很多快捷键。</p> +<p>5、看网络电视,选择ppstream。</p> +<p>6、文件管理器,选择totalcommander,又是一个绝世好软,好处多到一天也说不完。</p> +<p>7、在线听广播,选择龙卷风网络收音机,老牌子,质量有保证。</p> +<p>8、系统快捷键定制,选择ahk(AutoHotKey),可以自己编写脚本定制快捷键。</p>吃牛排的时候你没想过要认识那头牛https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/Sun, 13 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/<p>《逃出克隆岛》这部2005年的科幻电影(算是科幻吧),今天又被我翻出来看了看。</p> +<p>故事里说,在不远的将来,随着克隆技术的发展,人类已经具备了克隆自己的能力,最简单的应用是当人类的器官坏掉之后就克隆一个换上,这给那些贪婪的、渴望长生的人们又带来了希望。</p> +<p>有了市场需求就有人提供这种服务,故事里的“坏人”开办了一个地下工厂专门提供克隆器官,并告诉外界克隆的这些器官寄生在没有灵魂、没有思想、知觉的“植物人”身上,听起来貌似很人道。</p> +<p>然而,随着时间的进展,“坏人”发现通过这种手段提供的器官质量并不高,于是直接克隆出整个的活人,大批量的复制,统一的教育他们,并给他们植入雷同的记忆,描述了一个类似天堂的地方作为他们活着的终极目标,当然这个地方就是他们生命的重点。</p> +<p>一旦用到了他们器官他们的生命也就走到了终点,外面世界里的人类作为“客户”继续使用新鲜的器官活下去。</p> +<p>这些克隆人大部分没有真正的思想,认知水平停留在孩童阶段,本来一切进展顺利,使用器官的人都没有负罪感,因为就像电影里说的那样:“吃牛排的时候你从没想过要认识那头牛”。</p> +<p>然而,人都是有好奇心的,克隆人也一样,随着好奇心越来越强烈,就引发了电影接下来的故事。</p> +<p>故事的结局还算不错,就像所有的电影一样,“坏人”受到了惩罚,泯灭的人性又一次战胜了邪恶。</p> +<p>电影本身结束了,可是带给人的思考却漫无边际,随着人类文明的发展,人性会被重新定义,只有一样是可以肯定的:为了生存,所有人都会不择手段。</p>记住这几个窍门带你迈入vim的门槛https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/Fri, 11 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/<p>用vim已经有一段时间了,谈不上高手的级别,但总算是入门了,vim作为编辑器的王者,掌握之后带来的成就感无与伦比,但是其陡峭的学习曲线常常让人望而却步,下面,我来介绍几点心得,虽是入门级但是能为将来的熟练掌握打下基础。</p> +<p>1、不要再依赖菜单和工具条,虽然gvim提供了菜单和工具条,请不要再用他们,在配置里加上一行&quot;setguioptions-=mT&quot;,这样一来gvim的界面就干净多了,尽情的用快捷键吧。</p> +<p>2、不要再依赖方向键来移动光标了,熟记h、j、k、l分别对应左、下、上、右,并强迫自己使用,你会发现右手再也不用来回移动了。</p> +<p>3、切忌总在“插入”模式里待着,“插入”完成后立即按esc或ctrl+c推回到“默认”模式,因为在默认模式里才能发挥出vim各种“命令”的优势。</p> +<p>4、“o“命令是在当前行的下面插入一行并进入“插入”模式(大写的“O”是在当前行的上方插入)。</p> +<p>5、“dw”是删除一个单词,“dd”是删除一行。</p> +<p>6、将光标移动到某个单词上并按“*”键是对这个单词进行向后搜索,“#”是向前搜索。</p> +<p>7、“xp”是前后交换两个字符,“ddp”是上下交换两行。</p> +<p>8、“v”这个选择命令很管用,紧跟其后按“i(”是选中小括号内的内容,“a(”是连小括号一起选择(你可以尽情地举一反三)。</p> +<p>9、多看帮助。</p>最近比较忙https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/Thu, 10 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/<p>09年已经接近尾声,琐碎的事情纷至沓来。</p> +<p>很多事情需要加班才能解决,睡眠质量严重下降。</p> +<p>我的博客又快荒废了。</p>忙里偷闲写博客https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/Tue, 08 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/<p>刚写完了一篇文档,绞尽脑汁,换换脑子,上来唠叨两句。</p> +<p>这两天又尝试着使用evernote管理笔记,界面华丽,功能强劲,赏心悦目,就是太耗资源了。</p> +<p>勉强能在小笔记本上跑,输入中文的时候还吭哧吭哧的。本打算以后就直接在上面写日志,发了两篇测试,效果很不理想。</p> +<p>放弃。发现我的共享空间又不能访问了。</p>来来来,一起解决全球变暖的问题https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/Mon, 07 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/<p>来来来,一起解决全球变暖的问题来来来大家一起跳吧刚才在浏览科学松鼠会的网站,看到一个有趣的话题,假如地球上的所有人在同一时刻做同一件事情,会有什么样的后果?不过已经有喜爱恶搞的老外开始忽悠了。</p> +<p>故事说的是:</p> +<p>2006年有‘科学家’建议六十亿人在2006年7月20日11:39:13秒同时猛跳一次就能让地球轨道距离太阳远一些,这样就很好地解决了气候变暖的问题。</p> +<p>我初一看差点儿就相信了。www.evernote.com|Remember</p>testhttps://sbabybird.github.io/p/test/Sun, 06 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/test/<p>testMinim0www.evernote.com|Remembereverything|Signupforfree__________InformationfromESETNOD32Antivirus,versionofvirussignaturedatabase4663(20091205)__________ThemessagewascheckedbyESETNOD32Antivirus.http://www.eset.com</p>两个偏执狂的对话https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/Sun, 06 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/<p>qy:“优盘借我用一下,我要重装windows7”</p> +<p>我:“你现在的Windows7用的好好的为什么要重装?”</p> +<p>qy:“因为现在用的是RC版的,想装中文正式旗舰版”</p> +<p>我:“哦,了解”</p> +<p>qy:“有时候,虽然明知道现在的软件用着很好,但就是想装最新版的,不然心里就特别扭”</p> +<p>我:“我也是这样,我上周因为不能用firefox最新版把我的小笔记本重装了四次,还有就是我不能看见回收站里有东西”</p> +<p>qy(会心的笑):“对对对,我看见回收站已满的图标就浑身难受”</p> +<p>我:“我上次用别人的计算机,上去就把他的回收站清空了,结果那家伙用回收站来存放重要文件”</p> +<p>qy:“我用软件只喜欢去官方网站下载,然后自己动手破解,别人破的我不放心(信不过)”</p> +<p>我:“你知道别人会怎么说我们这种行为吗?”</p> +<p>qy:“怎么说?”</p> +<p>我:“神经病!”</p> +<p>qy(羞涩地笑):“。。。。。”</p>音量https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/Sat, 05 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/<p>城里的房子太挤,隔音很差,楼上蹑手蹑脚走过一个人,楼下也能听的一清二楚(有点儿夸张)。</p> +<p>以前我有在家听音乐的习惯,那是在老家的时候,每到周末都把音响开到最大,一边听一边洗衣服,现在不能这样听了,因为那样会打扰到邻居,甚至有时候稍微把音量调的大一点儿都会觉得内心十分不安。</p> +<p>音量大了就会担心,小了就听着不爽,感觉白瞎了我那套音箱了。</p> +<p>想要随心所欲的开大音量听音乐,看来只能等住进别墅了,或者回乡下老家。</p>写博客https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/Fri, 04 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/<p>不管有没有人看,几乎每天都要写一篇博客,一是为了换换脑子,二是为了留点儿记忆,当然最好能写一些有用的东西,而不是流水帐。</p> +<p>刚看了和菜头老师写的《像说话那样写博客》,深有同感。</p> +<p>又不是写作文或者写文档,干嘛要写那么多书面用语或者空话套话呢,就是随心所欲,嘴里想说啥,就写点儿啥,有点儿像自言自语。</p> +<p>内容当然不能太没劲,说一说今天吃了啥,去了几趟厕所等,写这些简直是浪费网络资源,不过也不是绝对的,据说有人坚持写了一年的博客,每一篇里面只记载了当天吃了什么饭,后来又有好事者根据博客内容统计出了该人的饮食习惯并列出了图表,这又另当别论了。</p> +<p>我自己给自己的博客定下了内容范围,首先绝对不会转载别人的内容,其次不会写与政治有关的话题(我只是不明真相而且沉默的大多数),然后也不会写工作中的事情。</p> +<p>如果算上刚才说的不能写当日的流水帐,就只剩下自己的爱好可以写一些了,比如音乐、电影(不是影评)、科技、编程、硬件等,偶尔也会写一些貌似小资文风的内容,不过也都是喝高了之后写的,过后看完两股战战几欲删除。</p>如何制作一个可以引导的优盘https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/Thu, 03 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/<p>这两天小笔记本出故障害我卷起袖子修了两个晚上,由于没有光驱,所以没少用到我的优盘,可是网上可下载系统盘一般都是iso文件,即光盘镜像刻录成光盘才可以引导机器启动,不过现在是21世纪了,几乎所有的主板都支持usb启动,所以没有光驱也无所谓了,只要手中有可引导光盘的iso文件就可以制作出一个可引导的优盘出来。</p> +<p>正所谓授之以鱼不如授之以渔,下面介绍一下制作可引导优盘的步骤,并非所有的引导盘都必须这么做,这仅是其中的一种方法,也最省事。</p> +<p>1、必备条件:运行Windowsxp系统的计算机一台,优盘一只。</p> +<p>2、去网上搜索并下载名叫“UltraISO&quot;的软件,试用版亦可。(该软件同时具有光盘刻录、iso制作、虚拟光驱的功能,真是居家旅行&hellip;&hellip;..)</p> +<p>3、可引导的光盘镜像文件(扩展名一般为iso)一只,比如ubuntu9.10-i386-livecd.iso,具体要什么iso取决于你要干的事情,如果这一句你弄不明白,那就别往下进行了。</p> +<p>4、把那只倒霉的优盘插入电脑。(记清楚他的盘符,如果你插入了多个优盘的话)。</p> +<p>4、启动UltraISO,在菜单里选择“文件”==》“打开”选中你的iso文件。确定。</p> +<p>5、在菜单里找到“启动”下面的“写入硬盘映像”并猛烈点击之。</p> +<p>6、现在弹出了一个新对话框,在名叫“选择硬盘驱动器”的那个下拉框中选择你刚才插入的那个优盘(如果就插入了一个,就不用于选了)。</p> +<p>7、在“写入方式”那个下拉框里选择“USB-HDD+”,除了这个选项还有“USB-ZIP”等选项,但是你选择USB-HDD+就可以了,因为这个格式的兼容性最好,实在不行再换其他的。</p> +<p>8、点击“写入按钮”并耐心等待。注意:优盘的内容会被清空。</p> +<p>9、等写完了就拔掉优盘尽情的去得瑟吧。</p>小e复活https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/Wed, 02 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/<p>周日手欠,将epc的系统改为ubuntu的remix版,损坏了ssd的mbr,后又恢复成xp,一天后出现ssd无法读取的错误,再也无法安装xp系统,本着死马当活马医的态度,我试了一下随机附带的恢复光盘(利用光盘烧录了一个可引导的u盘),竟然好使,现在系统又恢复到最初买回来时的状态了。但愿SSD没有坏。</p>程序员的自我修养https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/Tue, 01 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/<p>上次逛当当的时候,忍不住买了一本书&ndash;《一个程序员的自我修养》(副标题为:链接、装载与库),当时我说,就冲这个书名,哪怕里面全是白纸我也要买这本书。</p> +<p>因为我是周星驰的影迷,《喜剧之王》在我心里一直是周星驰的巅峰之作(别跟我提《大话西游》,台词我比你记得还熟)。</p> +<p>影片里的周星驰作为一个“死跑龙套”的“演员”,一直拿着的一本书就是《演员的自我修养》,那是他的梦想。每个编码的程序员其实心里或多或少都有一些代码情结,手里头捧着一本关于程序的书,就好象捧着自己的梦想似的。</p> +<p>抛开书上面的不说,说一说我所认为作为一个程序员应该具备哪些修养:</p> +<p>1、对程序、编码的热爱。如果不热爱编程,技术再牛逼也只能是一个代码工人。</p> +<p>2、谦虚好学的态度。</p> +<p>早就听说就有文人相轻的说法,做文章的瞧不起做文章的,其实很多程序员也一样,不知天高地厚,眼高手低,整天拿编程语言比来比去,在他们眼里别的程序员都是傻逼。</p> +<p>这些人就算是某个领域的“高手”,也绝对谈不上是一个合格的程序员。</p> +<p>3、团队协作能力。</p> +<p>自古有一个诸葛亮抵不上三个臭皮匠的说法,这话说的虽然有些绝对,但是也有一定的道理,如果一个程序员不能很好的和队友交流、合作,哪怕有三头六臂也很难成为一个出色的程序员。</p> +<p>4、安静平和的心态。</p> +<p>浮躁、急躁是技术人员最忌讳的心态,这当然不是指火烧到眉毛了还懒的动弹,而是说遇到问题能够冷静的分析并作出准确的判断。</p> +<p>这一点上有些人真让我望尘莫及,后天可以锻炼,但我觉得天生的因素占很多。</p> +<p>5、自信。</p> +<p>鼻孔朝天也不好,但是没有自信更要命,总是不相信自己能够开发出成功的软件,或者怨天尤人以语言不通、国内环境为挡箭牌为自己开脱,这样永远也写不出像样的程序。就牢骚这么多吧,说起来永远比做起来轻松,以上观点纯属瞎掰,如有雷同,那实在是巧合。</p>TED,这里都是能给你带来思考的视频https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/Mon, 30 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/<p>推荐一个视频网站,<a class="link" href="http://www.ted.com/" target="_blank" rel="noopener" +>TED</a>,因主要关注Technology, Entertainment, Design故得此名。我基本每周都要在上面看一段,里面的演讲精彩纷呈,就算是语言不通也能慢慢适应(很多经典视频有中文字幕)。</p> +<p>今天看的是这一段。这哥们儿的风琴弹的简直出神入化。</p> +<object width="446" height="326"> +<param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param> +<param name="allowFullScreen" value="true"></param> +<param name="wmode" value="transparent"></param> +<param name="bgColor" value="#ffffff"></param> +<param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/CameronCarpenter_2008P-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/CameronCarpenter-2008P.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=699&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=cameron_carpenter_improvs_on_the_organ;year=2008;theme=new_on_ted_com;theme=live_music;theme=the_creative_spark;theme=tales_of_invention;event=EG+2008;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"></param> +<embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/CameronCarpenter_2008P-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/CameronCarpenter-2008P.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=699&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=cameron_carpenter_improvs_on_the_organ;year=2008;theme=new_on_ted_com;theme=live_music;theme=the_creative_spark;theme=tales_of_invention;event=EG+2008;"></embed> +</object> +<p>PS:我的livespaces又不能访问了,不知道此篇能否发送成功。</p>冲动是魔鬼https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/Sun, 29 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/<p>本着没有困难制造困难也要上的精神,我以迅雷不及掩耳盗铃之势把epc的操作系统换成了ubuntunetbookremix9.10,因为好奇心的原因,或者是爱用最高版本的原因,我这次不但将可怜的小笔记本给格式化了,而且选择了最新出的文件系统&mdash;-Ext4!首先4G的那块SSD用来作为根分区“/”使用了Ext4,然后划出了256M的空间作为交换分区。</p> +<p>剩下那块16G的SSD也格式化成了Ext4,挂载点为“/home”,理论上来说这种分配应该是可以的了。</p> +<p>可是杯具就杯具在倒霉的Ext4上。</p> +<p>安装完毕,按照我的老毛病,立即上网更新系统,吭哧吭哧下载了半天,所有软件都更新为了最新版啦!结果第一次重启就让我大跌眼镜。</p> +<p>首先,由于某种原因,我直接在命令行输入了sudoshutdown-rnow来进行重启,还没有来及进入图形界面就告诉我说,“糟糕,/home无法挂载,可能文件系统损坏了,您需要进行手动检查”,好吧,去官方网站上一查,人家说这是个bug,需要先这样然后再那样blablablabla。我忍了,输入:fsck/dev/sdb1进行全面检查,磨烦了半天总算修复,等到进入了图形界面已经折腾了一头汗出来了。</p> +<p>然而大自然是残酷的,这个系统竟然让我每次重启都要修复文件系统,而且修复后奇慢无比,每次访问/home下的文件都会产生I/O错误,在控制台下满屏都是error的身影。</p> +<p>可怜的美好周末就这样被消耗掉了,本来准备收拾好笔记本就抱着去阳台写一写小程序啥的,看来在太阳下山之前是没戏了。</p>谈谈我对家庭影院的看法https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/Sat, 28 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/<p>不知道其他人为什么喜欢电影,或者不喜欢。</p> +<p>反正我是十分喜欢,也许你说,是啊,美好的东西谁TM不喜欢?</p> +<p>错!首先,不必像装逼的小资那样扭捏地大谈电影的文艺味道或者表达了一种什么样的思想,也不用像有关部门那样无耻地对电影挑三拣四反复阉割,我喜欢电影是因为电影可以让人经历不同的人生。</p> +<p>等一等,我扯的有点儿远了,但是我要说的事儿是建立在以上基础之上的。</p> +<p>我刚才差点就要像马丁路德金那样说:“我有一个梦想”,但是这句话让我的胃稍有不适,喝口水,冲一冲酒劲儿。</p> +<p>好吧,我曾经有个梦想,那就是&mdash;家庭影院!</p> +<p>你会轻蔑地一笑:“多大点儿事儿,我还以为抢鸡蛋呢,原来是家庭影院啊,这有啥啊,整个大电视,搞两个音箱,往房间里面一摆,不就是了嘛”。</p> +<p>唉,俺也曾经这样以为,而且照做了,但真不是家庭影院。</p> +<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;注意,以下内容纯属瞎掰:&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;</p> +<p>真正的家庭影院有这么几个要求:</p> +<p>首先,必须要有一个巨幅的屏幕,液晶电视就甭想了,充其量也就一百寸吧?远远不够,至少要有两百寸以上的屏幕(就这比起电影院里两层楼高的银幕还是差很远),所以要用投影。</p> +<p>其次呢,要有高清晰度的投影机,市面上现在卖那些白菜价的1024×768的液晶投影就别看了,专业的投影机对亮度和对比度以及分辨率都有很高的要求,10万元(人民币)以内都没有特别符合要求的。</p> +<p>然后是音响系统,市场上鼓吹的5.1或者7.1系统都是白扯,不是说喇叭多了凑个数就行了,功率、灵敏度、解码方案这些都是有严格要求的,目前来说,家用的音响系统就算是通过THX认证的也鲜有达到影院级标准的。</p> +<p>就算以上这些设备全部买到,也得考虑放在哪儿以及如何摆放的问题,客厅肯定不行,东西太多太乱,那就得单独提供房间了,至少也得30平米(因为要放沙发),房间里要做好隔音、吸音处理,因为你肯定不想在看的正投入的时候让邻居们过来砸门。</p> +<p>假设这些都准备齐了,还是要注意片源的问题,兄弟!几十万的东西拿回家不会就是放录像带吧?</p> +<p>上一代DVD肯定不行,据说以前有发烧友自己在家弄电影放映机来放胶片,不过现在好了,有了蓝光DVD(一片儿顶过去五片儿),一部电影几十G的容量,1920或以上的清晰度,基本够用了。</p> +<p>所以看来,哪怕是一个看电影的梦想,也不是那么容易实现的哈。</p>兄弟们还是喜欢骑摩托https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/Fri, 27 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/<p>上次回老家休假,和家里的哥儿几个聚了一把,见了面无非就是聊天,喝酒,打台球,只是都已成熟许多,使劲儿咧嘴笑的话,也能看见皱纹了。</p> +<p>这些曾经睡在一个炕上的兄弟,据上次见面已经差不多两年了,有坐车来的,有开车来的,几个兄弟还是骑摩托过来的。</p> +<p>我问了一下,还是无牌照,无头盔,钻胡同躲交警,和从前一样。</p> +<p>于是我又犯骑车瘾,借着酒劲儿风驰电掣了一把。</p> +<p>十年前刚拥有摩托车的时候,我曾天真地以为,摩托车是我的最爱,给个奔驰都不换。</p> +<p>因为骑摩托可以到处转悠,可以使劲把油门拧到底,体验呼呼的风把眼泪刮出来的感觉,可以带着墨镜飞速穿过柏油路上被大豆秸杆掀起的土雾,可以让坐在后座上的姑娘不由自主地搂着我的腰。</p> +<p>那个时候,周末基本上都是和哥儿几个骑着车四处乱窜,再窄乡间小路也敢往里冲,吹着口哨把车扎在路边跳到河里去洗澡,有时下着大雨,淋的像个落汤鸡。</p> +<p>路上当然是飙来飙去,偶尔也被大人们骂句:“不要命了!”</p> +<p>如今,都已是拖家带口了,社会的磨练多少给了一些沧桑的感觉,脸上的笑容也失去了往日的纯真而增添了几分苦涩,只是,当他们跳上摩托车,冲我招一招手,伴着隆隆的声音脚下喷出一股股蓝烟,我的心仿佛又回到了那个时节。</p>推荐一个在线听广播站点https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/Thu, 26 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/<p>有睡前听相声或评书的习惯,有个人在旁边罗哩罗嗦没完是个很好的催眠剂,可以很快入睡,保证了充足的睡眠。MoRadio是一个很简洁干净的在线广播站点,界面清新漂亮,电台丰富,甚至可以在线听小说。</p> +<p>有了它我基本舍弃了“龙卷风网络收音机”。网址:http://www.moradio.cn/</p>准备买几本书https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/Wed, 25 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/<p>刚才二舅给我打电话,聊了一会儿天。</p> +<p>问我现在是否还看书,我说看,电子版的,在手机上也看,看的眼睛都快毁了。</p> +<p>很久没买书了,记得跟飞行鱼借来的《代码大全》差点儿垫了桌子。</p> +<p>接了这个电话,两个人谈了一阵子书,我又想看纸质的真书了,刚好他又给我推荐了两本,随即去当当把书定下。</p> +<p>选书的时候哦发现一个问题,计算机相关的书最贵,买三本畅销书的价格还比不了买一本忽悠你怎么编程的书贵。</p> +<p>不过还是难以抗拒诱惑,各买了两本。</p> +<p>《做单》这本书最近十分火,本来看名字和书评都不太和我的胃口,但是二舅极力推荐,所以拿下。</p> +<p>《我们台湾这些年》是王三表在他博客里提到的,所以拿下。</p> +<p>《深入理解计算机系统》据说是人家美国大学里的教材,图个新鲜,所以拿下。</p> +<p>《程序员的自我修养》就冲这个名字哪怕里面全是白纸也得拿下。</p>平行宇宙https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/Tue, 24 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/<p>肯定有过这样的经历,有一样东西(通常是个小东西,电冰箱什么的不算)翻箱倒柜地找不到,过一段时间你突然发现这个东西出现在某个地方,而那个地方当时已被你掘地三尺了。</p> +<p>有人说这是眼睛欺骗了大脑,或者是大脑欺骗了眼睛,但我更相信另一个比较科幻的说法&mdash;-平行宇宙。</p> +<p>按照平行宇宙的说法,我们生活的宇宙不是唯一的宇宙,另外还有无数个和咱们的宇宙差不多的宇宙,无数个宇宙里自然就有无数个你我,每一个重大事件的发生都会导致当前的宇宙分裂出与之平行的另一个宇宙来,我没有瞎掰,科学家也是这么说的,不过我感觉他们是有点儿瞎掰。</p> +<p>刚才我翻箱倒柜也找不到我的吉他拨片了,我记得很清楚就在一个放有调音笛的小盒子里,打开一看没有,出去干点儿别的,再回来,发现果然在小盒子里。</p> +<p>所以我宁愿相信这个拨片刚才有一阵子进入了另一个宇宙。</p>塞班手机使用MailForExcange同步gmail实现pushmailhttps://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/Mon, 23 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/<p>从《越狱》火起来那年开始,pushmail这个概念随着黑莓手机的流行而泛滥成灾(什么?不知道什么是pushmail?请Google之,或者看这里。现在知道了吧,pushmail的好处就是及时。),就连中国移动也推出了自己的pushmail,当然了他们要收取“少量”的费用。</p> +<p>那么有没有免费的泥?</p> +<p>答案是肯定的,条件有三:</p> +<p>1、拥有一个gmail帐号。</p> +<p>2、拥有一部Nokia智能手机(最好是E系列)。</p> +<p>3、喜欢折腾。由于pushmail客户端不再向以前的email客户端那样需要过一段时间就去服务器查询是否有新邮件,这样既省钱又省流量,所以折腾一下还是值得的。</p> +<p>好吧,准备好手机,就到这里来下载MailForExcange吧。</p> +<p>http://www.google.com/mobile/products/sync.html#p=nokia_smart</p> +<p>下载完成后这里有使用说明</p> +<p>http://www.google.com/support/mobile/bin/answer.py?hl=en&amp;answer=147951</p> +<p>按照文档的说明,设置完毕之后就可以使用了。</p> +<p>补充两点:</p> +<p>1、不要选择同步“任务”,目前还不支持,如果选择了就会什么也同步不了。</p> +<p>2、不要选择同步“联系人”,否则会把你gmail里的联系人全部同步到手机上,如果不小心还可能会清空手机的电话本(慎用!)。</p> +<p>另:我有使用日程表的习惯,这也是偏执狂的一个表现,是GoogleCalendar重度使用者、Gmail的中度使用者,同时极度讨厌使用OutLook。</p> +<p>此MailForExcange还可以同步日程安排到手机,真是居家旅行杀人灭口之必备好软。</p>假如明天就是世界末日https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/Sun, 22 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/<p>1、今天排队看了《2012》,包括排队买票,排队进场,排队去厕所放水。</p> +<p>2、好的电影看完可以引起一些思考。</p> +<p>3、想起一句诗:假如明天就是世界末日,我今天仍然种我的苹果树。</p> +<p>4、就算是商业电影,里面也有一些政治隐喻,仁者见仁,淫者见淫。</p> +<p>5、人生短暂,活着真好,我决定请朋友们吃饭,今晚。</p> +<p>6、有可能的话,以后看电影尽量去影院看。</p>失望https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/Fri, 20 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/<p>昨天夜里,Google演示了他们推出的操作系统ChromeOS,据说是基于Linux的。</p> +<p>在此之前已有风生放出,比较适合上网本,我期待着能够用在我的epc(太弱了)上。</p> +<p>结果是,Google根本不允许在他的操作系统上安装任何本地软件,甚至不能自己安装在笔记本上,所有的数据均保存在Google的服务器上,意味着一旦失去网络就是废塑料一坨。</p> +<p>想一想咱们的网络环境,我还是洗洗睡吧。</p>床头的电磁波https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/Thu, 19 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/<p>有相当长的时间,我的手机都是24小时开机的。</p> +<p>不过我有一个坏习惯,把手机放在枕边当闹钟,半夜醒来也好看时间。后来关于手机电磁波辐射的说法越来越多,导致我产生了一定的心理阴影,总感觉电磁波正在滋滋地穿过我的脑袋。</p> +<p>后来就到睡觉时就把闹钟关掉了,然后早晨再起来开机把闹铃叫醒。</p> +<p>不过现在用的手机支持关机闹铃,即使关机状态也可以很负责任地把我叫醒。</p> +<p>剩余的问题是,夜里醒来不太容易看时间,开手机太费劲,爬起来到客厅看时间又太远,有人出个馊主意说:起来“演奏”一会儿乐器,邻居们就会大声告诉我现在是什么时间了。</p> +<p>不过我觉得这个方法不太可取,万一他们的手机也关机了咋办。</p> +<p>想来想去,我还是觉得应该在床头放一个真正的闹钟,可以很方便看时间的那种,最好能发出幽幽地蓝光(不是绿光)。</p> +<p>刚才我发现了这个,感觉挺合适的,就是目前还买不到。</p> +<p>啧啧,可惜啊。</p>祝我生日快乐!https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/Wed, 18 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/<p>一大早就收到家人发来的祝福短信,原来今天是我的生日。</p> +<p>逐个回复短信之后,我慢慢回想,掏出计算器算了算,哦是的,原来我已经二十八了。</p> +<p>他们说:“生日快乐!”,没错,快乐最重要,我想,和十年前的想法一样,到了今天我还是认为快乐最重要。</p> +<p>潜在的意思就是玩儿最重要,只不过十年前我玩儿起来是骑着摩托车约着一群怀疑人生的青少年去疯狂飚车,或者是跳到半腰深的河里去捉鱼,或者是带着漂亮的女生一起谈论理想(现在已是我的老婆)等等。</p> +<p>十年后的今天玩的仅是一些虚无缥缈的东西,比如曾经以为永远也学不会的编程现在用来吃饭,生活就是这样,玩玩电脑偶尔也被电脑玩玩。</p> +<p>仔细地想一想,岁月还真是不饶人哩,小时候的玩伴大都不再联系,老爸老妈的鬓角也渐渐染上了白霜,时间就这样一年年过去,不断地得到也不断地失去,唯一能保持不变的以许就是一颗追求快乐的心吧。</p> +<p>今天是我的生日,祝我生日快乐,也愿我的家人幸福快乐。</p>我觉得twitterhttps://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/Tue, 17 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/<p>问我为啥用twitter,因为我觉得上twitter比较有技术含量(嘿嘿,想起黎叔了)。</p> +<p>开个玩笑而已,其实是觉得twitter上的人尤其是中文twitter用户都比较有爱心和有责任心。</p> +<p>虽然也有愤怒激进的,但大部分都是能够较为冷静地看待问题的人。</p> +<p>用句流行的话来说,就是感觉twitter上的人都比较有爱。</p> +<p>再一点就是它“致命”的优点了,也是被反复提及的信息及时性,这实在是很让人暗爽的特点,每天早晨打开手机第一件事就是更新twitter,不用发愁会错过什么信息,而且都是第一手资料。</p> +<p>今天再次帮助一位不知道twitter是何物的朋友开通了twitter,本着送佛送到西的精神,一股脑儿帮他flow了几十个有意义的中文twitter,然后又帮装上手机客户端,由于众所周知的原因,我还得把代理地址给他设置好。</p> +<p>弄完之后,感觉自己像是一个传教士。</p>每日笑话https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/Mon, 16 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/<p>记得老婆怀孕的时候,为了保持其心情愉悦,我每天都要给她发送一条短信,均是时下最流行的笑话段子。</p> +<p>这些段子基本上来自于网上,有些比较长的我还得进行一定的删减,由于平时储备的段子较多,刚开始几天还源源不断,后来因为我的审查比较严格,比较俗气的段子不发,太露骨的荤段子不发,不经典不好笑的不发,导致连压箱底的段子都发给她了,有时候我甚至还得四处搜罗。</p> +<p>每天一条笑话,一直持续到孩子生下来,现在孩子白白胖胖非常可爱,我的笑话短信有很大的功劳。</p> +<p>再后来,由于工作实在是繁忙又加上自己存储的段子实在是不够用了,我才逐步取消“今日笑话”这项“业务”。</p> +<p>前两天老婆又跟我叫屈,说我太偏心了,孩子一生下来就收不到新段子了,向我申请重新开通“每日笑话”的业务。</p> +<p>很长时间没有发笑话,我的段子又储备的差不多了,经过深思熟虑之后,我决定今日起重新开通该业务。</p> +<p>另附今日笑话:儿子学习不好,被妈妈痛骂。儿子用哀怨的眼神看着爸爸说:“你为什么要娶她?”爸爸也用哀怨的眼神看着儿子说:“还不是因为你!”</p>到处蹭饭的周末https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/Sun, 15 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/<img src="https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/20091115-776584.JPG" alt="Featured image of post 到处蹭饭的周末" /><p>此周末加班0.75天,在朋友家玩了1.25天。吃大餐若干,其中有朋友亲自下厨精心烹饪的海鲜。狂唱卡拉OK从民歌到通俗再到摇滚,直至嗓子嘶哑。三五个人又一起打了台球,期间发现我的球技属于遇强则强遇弱则更弱。</p> +<p>晚饭又在另一个朋友家中解决,亦丰盛无比,这两天真是太对得住我的胃了。</p>https://sbabybird.github.io/p/%E5%94%89/Fri, 13 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%94%89/<p>今天在回家的路上看见有人在twitter欢呼,因为这两天有人要来,所以Youtube、blogspot、picasa等网站都解封了。等到了家,立即打开电脑,把那些被封的网站挨个试了一遍,Mad,还和原来一样。看来,twitter确实是个制造谣言的好地方。</p>关于SSD硬盘https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/Thu, 12 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/<p>昨天某同事出差,走到半路发现笔记本硬盘坏了,十分痛苦地发短信问我火车上有没有IBM的客服,我说,天将降大任与斯人也,必先苦其心志劳其筋骨,坏其硬盘。</p> +<p>此同事吐血半升后就杳无音讯了。</p> +<p>此事引发大家热烈地讨论起关于硬盘的话题(我们太残忍了),最后大家一致认为经常背着出差的笔记本其硬盘特别容易出毛病,颠簸导致。</p> +<p>有没有不怕振动的硬盘呢,答案是肯定的,那就是SSD,中文称“固态硬盘”,因没有磁盘盘片和磁头等机械装置,所以不怕振动,具体介绍如下(来自维基百科):</p> +<p>固态硬盘(SolidStateDisk、SolidStateDrive,簡稱SSD)是一种基于永久性存储器,例如闪存,或者非永久性存储器,例如同步动态随机存取存储器(SDRAM)的计算机外部存储设备。</p> +<p>固态硬盘用来在便携式计算机中代替常规硬盘。</p> +<p>虽然在固态硬盘中已经没有可以旋转的盘状机构,但是依照人们的命名习惯,这类存储器仍然被称为“硬盘”。去Google搜索一下“SSD”或者“固态硬盘”返回的文章里充满了赞美之词,什么随机读取速度别传统硬盘快啊,没有噪音啦,没有散热问题啦等等。</p> +<p>然后一致指出的缺点就是价格太贵。难道就没有别的缺点了?NO!我的epc用的就是SSD,抛开至今仍有争议的SSD寿命问题不说,我在使用中发现了一个很大的问题就是&mdash;-“磁盘碎片”,由于现在的文件系统(NTFS、FAT32)等都是针对以前的硬盘设计的,目前还没有一个针对SSD优化的文件系统(听说快出了),所以随着SSD里存储的文件越来越多,那么访问这个SSD上的文件将会越来越慢,尤其是写入,有时候会慢的无法忍受,我认为这个问题是目前SSD面临的最严重的问题,至于容量价格之类肯定不用担心。</p> +<p>今天的话题好像扯的有点儿远,不知道那位硬盘坏了的同事现在怎么样了。</p>你说你,要蹭网,用心良苦却成空https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/Wed, 11 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/<p>最近老多人都讨论破解无线网络来蹭网的问题,提到破解都挺鸡冻的。</p> +<p>其实wi-fi的破解早就出来了,不过遗憾的是破解并不彻底,只是破解了WEP加密而已,现在很多人的无线网络被蹭网,我的理解是,一部分人是自愿的(本着分享的精神或者另有企图),另一部分就是因为懒。</p> +<p>现在如果一个无线路由使用WEB加密的话,破解已经很简单,甚至傻瓜化了,国外已经有人做成live的Linux系统(因为破解程序是Linux版的)。</p> +<p>如何破解就不说了,谈谈怎样不被别人蹭网(我个人希望我的无线路由是不加密的,但是有些人蹭网还上BT就太过分了)。</p> +<p>1、进入无线路由器的设置页面(地址一般是http://192.168.1.1或者http://192.168.0.1),找到无线设置那一页。</p> +<p>2、设置加密方式为WPA-PSK或者WPA2-PSK,别选WEP了,上面已经写的很清楚了。把密码设置的复杂一些。</p> +<p>做到上一步已经基本安全,要想再安全一些还可以这样:</p> +<p>3、找到高级一些的无线设置选项,把SSID广播关掉,这样别人根本就扫描不到你的无线路由了,不过你所付出的代价就是自己上网的时候要手动输入接入点的SSID,自己记住即可。</p> +<p>要是还不放心的话还可以这样:</p> +<p>4、找到更高级的mac绑定设置,有些路由器不支持,也就是说仅允许指定的机器可以上网。</p> +<p>ps:路由器本身的访问密码也最好设置一下。</p> +<p>再ps:蹭别人的网也要小心,现在抓包的工具都很先进很傻瓜化,蹭别人的无线路由也就意味着隐私很难保障,随便吧。</p>兄弟https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/Tue, 10 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/<p>今天心情比较郁闷,幸好有兄弟陪我喝喝小酒,打打台球。心情好多了。</p>期待https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/Mon, 09 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/<p>上次一狠心,把epc上的系统更换为xp了,现在差不多又到了换系统的时候了,因为xp的毛病就是&mdash;越来越慢。</p> +<p>本来epc上带的那个基于debian定制的原装系统速度贼快,但是功能太弱了,三岁小孩用还行。</p> +<p>后来有好心人给整出来个eee-ubuntu,赶紧装上,发现他继承了ubuntu体态臃肿的优良传统,可怜的小e仅带了4G的系统盘,根本不够怎么折腾的,而且在安装最新版firefox时被我编译坏了glibc库,于是换成了xp。</p> +<p>今天发现以前的那个eee-ubuntu已经改名了,现在叫做EasyPaesy,都1.5了,不过仍然是基于ubuntu的定制,据说已经优化了不少,看得我都有些动心了。</p> +<p>官方网站上的介绍更是让我心动:下一个版本,也就是2.0的时候将直接基于debian定制,不在基于臃肿的ubuntu,而且将原生的带有epc的全部驱动程序。</p> +<p>哦夜!太期待了。</p>练习吉他的心得https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/Sun, 08 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/<p>最近几个月来,感觉思维有些迟钝,记忆力有所下降,用脑过度导致。</p> +<p>考虑到每天需要休息一下脑子和眼睛,为了远离屏幕,我决定每天晚上活动活动手指(虽然敲键盘也是活动手指,但那是机械性的),弹弹吉他,正好重拾练习吉他的计划。</p> +<p>几天之后,感觉“颇有长进”,遂记录心得如下:</p> +<p>1、不要怕打扰到邻居。</p> +<p>以前我弹琴的时候,心里总是有个阴影,总觉得邻居正在把耳朵贴在墙上偷听我弹琴,这样一来我就不好意思弹的太大声,不敢弹的太难听,可是又不会弹好听,每次都几乎是看着谱子在心中默念,这样的话就像哑巴英语似的永远也甭想弹好。</p> +<p>后来我干脆想,反正邻居养了狗,叫声也挺大,吵了我这么久我都不放在心上,我弹吉它吵他们也算是扯平了,再者说了,狗叫要难听多了。</p> +<p>2、不要在洗脚的时候练琴。</p> +<p>这是一个很不好的习惯,源自我对时间管理的偏执。</p> +<p>有段时间我觉得每天洗脚的这段时间被白白浪费了,我想,要是每次洗脚都认真看一篇文章的话我很快都能成为文学家了,可是我对文学没有兴趣,于是我选择了弹吉他。</p> +<p>而且养成洗脚要弹吉他的毛病,就连老家也专门放了一把琴,洗脚专用。</p> +<p>结果可想而知,我弹吉他的水平越来越臭。</p> +<p>3、认真练习音阶和节奏。</p> +<p>总算说到正经的了,音阶和节奏一直被我忽视,从来都是由着性子来,自负胸中有谱,想到哪里弹到哪里,不管琴弦按的对不对速度是否正确。</p> +<p>结果到现在我仍然不能完整的弹奏任何一支曲子。</p> +<p>现在每次我都认真练习十分钟的音阶并且开着电子琴用于矫正节奏,几天下来,感觉手指灵活了许多(当然是针对以前说的)。</p> +<p>4、弹自己喜欢的曲子并投入进去。</p> +<p>这个没什么可说的,只有自己喜欢的曲子才有可能投入进去,也只有投入进去才能觉得弹琴是很幸福的事情。</p> +<p>当然现在距离人琴合一的境界还差一些,也许再过个三五年,或者三五十年可以达到。</p>删除文件的定律https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/Fri, 06 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/<p>定律:上午删除的下午就会用到,而如果你不删除它们,永远也用不到。</p> +<p>前两天听到有人抱怨现在硬盘越来越大了,动辄好几百G甚至上T,这对于AV爱好者来说是个福音,但对于一个偏执狂来说简直是个灾难。</p> +<p>因为偏执狂要控制电脑里的一切,磁盘该如何分区,文件夹该如何命名,要建多深层次的文件夹结构都有详细的规划,比如音乐可按格式分为无损的和压缩的,按地域分可分为国内、欧美、日韩的,至于按流派分那就更头疼了,还有纯音乐等等,所以我有个偏执狂朋友甚至花费了将近一年的时间才慢慢把自己的那个叫做Music的文件夹整理完毕,真是一项系统工程。</p> +<p>我对磁盘文件的管理也有些偏执,首先一点是不能看见回收站里有东西(听说还有人听清空回收站的声音上瘾),所以删除任何文件的时候都是按住shift键直接删除,这些倒霉的文件连进入回收站里歇会儿的功夫都没有直接就被踢飞了。</p> +<p>我想说的是,这是一个很不好的习惯。</p> +<p>每当我清理磁盘上“没用的”文件之后,随着干净文件夹带来的快感而来的就是马上就需要用到刚才被删文件的痛苦。</p> +<p>一般来说,上午删除的下午就会用到,而如果你不删除它们,感觉永远也用不到,每天都在哪儿呆着看着真碍眼!</p> +<p>刚才就又经历了一次活生生的例子,昨天晚上在家呆着没事儿,就把我家用机上的东西都打扫了一下,卸载了很多软件,最大的失败就是把开发环境卸掉了,把相应的安装文件也删除了。</p> +<p>结果…………刚才被电话吵醒了,前方的同事有问题搞不定了,让我着实体验了一把手边没有开发环境(偏偏赶上不能使用远程桌面)来遥控搞定问题的艰辛。</p> +<p>好了,牢骚发完,睡觉!</p>四喜丸子https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/Thu, 05 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/<p>今年暑假的时候,老爸过来视察我的工作,会谈始终在亲切友好的气氛下进行,双方就共同关注的话题交换了意见。</p> +<p>期间谈论到饮食问题时,老爸对我在北京是否按时吃饭深切关注,并表示:“一定要吃饱、吃好!身体好才能工作好,身体是革命的本钱嘛!”以上内容纯属虚构,真实场景是,老爸问我吃饭是否合乎口味,我说饭菜都还行,就是吃不到味道能赶上老家那边小镇上“福星酒家”做的四喜丸子,深表遗憾,老爸深表同情。</p> +<p>以上对话造成的直接后果是,我这次回老家休假连续吃了七天的“福星酒家”的四喜丸子(每顿都得挑着大拇哥说好吃),吃的我现在看见四喜丸子就饱了。</p>体重不足https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/Wed, 04 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/<p>体检结果下来了,我唯一的毛病是体重不足,这是我的老毛病了,多年来身体只有拉长,从来没有横向发展过。医生给的建议是:多进行身体锻炼。</p> +<p>我记得去年寒冬的时候我咬牙坚持跑了两个月的步,结果体重不升反降,后来人家都说跑步是减肥的良药,跑步被紧急叫停!</p> +<p>好吧,那还有什么锻炼身体的好项目?</p> +<p>篮球已半年多没打过了,也不好组织人打,台球太休闲,摔跤太枯燥,做俯卧撑又太危险了。</p> +<p>我觉得以后要是有条件的话,可以考虑改变一下工作模式,上午下地干活儿(耕地﹑施肥等),下午编程写文档,日出而作,日落而息,男耕女织,夜不闭户,多美好啊,肯定能胖!</p>一日不练手生https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/Tue, 03 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/<p>最近总写一些偏向界面应用的代码,对于文件操作,字符串操作这些东西都快忘了,以至于下午想写个处理文本的程序差点儿无从下手,虽说python什么的好是好,咱也不能丢了C啊。</p>https://sbabybird.github.io/p/%E6%9A%96/Mon, 02 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9A%96/<p>突然下了一场大雪,天气一下冷了。</p> +<p>换上最厚的被子,缩在被窝里看《生活大爆炸》。</p> +<p>我的eeepc性能够弱的,一边看视频,一边打几个字都卡壳。</p>开始使用windows7https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/Sun, 01 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/<p>单位机器上的xp已经装了2年了,昨天终于无法忍受越来越慢的速度(关键是office软件坏了,无法修复),决定重装系统,进来win7挺火,装一个试试看,RC版的,可以显示中文但界面为英文,无所谓了,先试用几天再说。希望能取代xp。</p>雨天https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/Fri, 30 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/<p>下了点儿小雨,天气突然转冷,走在街上都有些冻耳朵了。</p> +<p>想起孙燕姿的一首歌,忘记什么名字了,&quot;雨天,想起你的生日卡片,望着你的照片…&quot;,叫什么名字呢,旋律挺熟悉…</p>自言自语和语音信箱https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/Thu, 29 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/<p>经常在美剧和好莱坞大片里看到这样的情景,一个人对着自己的车或者某样心爱的东西感情丰富地谈话,比如&quot;干的不错!伙计&quot;,&quot;全靠你了!&quot;,&quot;今天天气挺好的,你说我该不该去看她?&quot;等等,就好像跟某人聊天一样。</p> +<p>不知道他们生活中是否也是这样,感觉怪怪的。老外有人做过统计,相当比例的人喜欢自言自语,并且认为这很正常。我想这是跟他们使用语音信箱有关。</p> +<p>据说使用语音信箱是他们的老习惯了,起源于上个世纪,打电话经常没人接,打电话者听到嘟的一声然后乖乖留言,并且对着话筒&quot;得不得得不得&quot;聊上半天。</p> +<p>也许时间长了就养成自言自语的习惯了吧。</p> +<p>某段时间我也对语音留言感兴趣,可惜国内没有该服务,后来有了,可是费用贵得离谱。</p> +<p>现在我使用智能手机了,装了个软件就一切搞定,在无人接听的时候软件也能帮我接电话了。</p> +<p>可惜咱们都没这个习惯,一旦知道对方没在听电话便立即失去说话的兴趣,匆匆挂断。</p> +<p>常常有人听到我的提示音之后以为我在调戏他而冲我发牢骚。</p> +<p>所以该软件装了这么久除了我的测试录音之外,并没有接到过真正有意义的留言。</p> +<p>今天我终于收到一段有意义的留言:&quot;靠!真受不了你!&quot;</p>开始练习https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/Wed, 28 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/<p>我是一个没有恒心的人,需要恒心的事情我没有坚持下来的。</p> +<p>长跑﹑写字﹑外语﹑弹琴,等等这些都没有坚持下来,理由多种多样,太累了,没时间,没天分。</p> +<p>这些事情我常常去想,我要是能够从开始坚持到现在,那该多好?</p> +<p>前两天看了些关于时间管理方面的书,方法千变万化,工具五花八门,但核心思想只有一个&mdash;&mdash;有梦想,并且坚持下来。</p> +<p>没有什么能够一蹴而就的,我要慢慢练习。</p>回老家休了个假https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/Tue, 27 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/<p>回老家休了个假前两天回家休息了几天,和家人团聚的感觉就是好。</p> +<p>吃饭吃得香,顿顿都吃到撑。</p> +<p>睡觉也睡的十分踏实,一点儿也不失眠。</p> +<p>按照惯例和朋友们喝喝小酒,打打台球。</p> +<p>老家民风纯朴,空气清新,我简直是不想回来。</p>终于收到google wave的激活邀请!https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/Wed, 14 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/<p>终于收到googlewave的激活邀请!</p> +<p>在我苦苦等待几个月之后,就在今天下午,我终于收到了googlewave的激活邀请!赶紧点击进入,由于之前已经看过了很多关于它的报道与评测,所以对界面也没有什么新鲜感了,总体感觉还不错,由于周围的朋友只有我收到了邀请,联系人列表里还空空如也,所以目前只能随便耍耍,不能充分发挥wave的特长&mdash;&ndash;在线协作交流。</p> +<p>激活账户后,手里就有了8个邀请了,好珍贵啊,后来发现只是&quot;提名&quot;而非&quot;邀请&quot;,迅速发给好友&quot;飞行鱼&quot;一只,又给在twitter上的朋友们留了两只。</p> +<p>google这种靠邀请来刺激人好奇心的招数真是运用到了极致。</p>眼保健操https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/Tue, 13 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/<p>我引以为傲的视力下降了,由于长期盯住屏幕的缘故,导致了一百多度的近视,最近狂做眼保健操,发誓要看清我对面墙的贴纸上的字。不过不怎么有效,刚才我忍不住凑上去看了看,发现贴纸没了。</p>喝小酒https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/Wed, 30 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/<p>为排解国庆假日加班的郁闷,今晚特与同事一起喝喝小酒。喝完后他们打牌,我作为牌盲,一旁观战。</p>难得糊涂https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/Tue, 29 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/<p>难得糊涂啊难得糊涂,难就难在不知道该在什么时候糊涂,什么时候装糊涂。</p>排队https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/Mon, 28 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/<p>我这辈子最痛恨两件事儿,一个是排队,另一个还是排队。</p> +<p>可悲的是,排队是必须要面对的。取钱要排队,交费要排队,买票要排队,上车要排队,点儿背的时候上厕所也要排队。</p> +<p>排队的时候,心情是焦躁不安的,是望眼欲穿的,是忍不住想骂娘又不知该骂谁的。</p> +<p>这个时候唯一可以获得安慰的是你身后的队伍越来越长,而你前面的队伍越来越短。</p> +<p>可是,当队伍就像便秘的大肠那样久久不能蠕动时,当你的伸长了脖子恨不得直接伸到窗口撞墙时,你还是不能怎样,大家都一样。</p> +<p>以上是去银行排队有感,纯属发泄,如有雷同,那简直是巧合。</p>美好的一天https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/Sun, 27 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/<p>尽管我经常比闹钟醒的还早,可是起床仍然依赖闹铃。</p> +<p>今天是星期天,由于国庆假期的原因,今天也要照常上班,可是我的手机有点儿小聪明,周末不闹。这下可好了,我终于睡了个自然醒,我在半梦半醒之中想明白今天要上班而且闹铃不会叫我时,我惊的一下子从床上跳了起来。</p> +<p>还是晚起了一个小时。洗脸刷牙堵车堵车堵车还堵车所以,迟到了,可是郁闷的事情还在后头。</p> +<p>我平时几乎不迟到,偏偏今天等我到公司的时候老总已经找了我一圈了,于是赶紧去报到,可是电梯坏了,于是爬楼梯,等我爬上十层楼梯,得到一个更加郁闷的消息:“假期要加班&hellip;&hellip;&quot;(此处窗外电闪雷鸣并伴有大风)。</p> +<p>如果不是爬楼梯爬的喘不上气,我肯定要仰天长啸十分钟。</p> +<p>可怜我辛苦买到的往返火车票啊,现在要退掉!</p> +<p>可怜我定好的假日计划啊,现在要取消!淡定,要淡定</p>秋天打雷吗https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/Sat, 26 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/<p>到网上搜搜“秋天打雷吗”,发现还真有人问这个问题,我来告诉你吧,答案是肯定的!</p> +<p>昨晚打了大半夜的雷,对于本来就有“周末睡眠障碍”的我来说真是雪上加霜,一道道闪电把窗帘的影子投在床上,好恐怖啊。之前我也以为秋天不会打雷,直到被巨大的声音惊醒的时候我还以为有敏感词搞敏感词被敏感词了呢,靠,最近因为敏感词要举办敏感词弄得的大家都紧张兮兮的。好吧,秋天会打雷,sowhat?</p>电脑知识https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/Fri, 25 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/<p>电脑知识今天在greader上看了一篇文章,说是掌握了这些电脑知识就可以怎样怎样,我一看,写的都是些windows系统的操作技巧,有些见过,有些极为偏门。</p> +<p>恩,有点儿意思,我就曾经错误的以为这些windows技巧就是电脑知识。</p> +<p>大学的时候,当老师喷着唾沫讲解进程调度时,我正在研究如何修改win98的启动画面,当别人抱着书学习数据结构的时候,我却把如何修改win98资源管理器的脚本使其可预览mp3文件的技巧视为珍宝。</p> +<p>可是这有个屁用,现谁还用这些玩意儿?</p> +<p>干活儿时搞不定问题了还得去翻书,那里面才称得上是真正的知识吧(也得看是什么书)。</p> +<p>嘿嘿,说规说,我还是迅速地把这篇&quot;知识&quot;文章收藏了。</p>什么是_什么是_https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/Thu, 24 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/<p>关于&quot;什么是&quot;在google.com里搜索任何带有&quot;什么是&quot;的关键字比如&quot;什么是手机&quot;,连接会立刻被&quot;重置&quot;,并在短时间内无法浏览任何网站,但是在google.cn不会这样,在百度也可以。但是后两个……我又没搜索什么不和谐的东西,干嘛扼杀俺的求知欲捏!</p>快捷键https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/Wed, 23 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/<p>快捷键说实话我真的很担心未来计算机会像某些专家鼓吹的那样,完全没有键盘,而是通过语音或者眼神和人进行交流。我觉得可以没有鼠标,但是不能没有键盘。</p> +<p>记得大学的时候,有一次我的显示器坏了,我只好凭记忆的感觉通过对键盘的操作来听歌﹑&quot;看&quot;电影等,大概过了一个星期,发现即使没有显示器也可以做很多事情,这件事儿让我对键盘产生了很严重的偏爱。</p> +<p>我喜欢去记各个程序的快捷键,不是故意去记的,而是下意识的。</p> +<p>无论是简单的快速搜索还是宏替换,再或者是复杂的组合按键我都烂熟于胸。</p> +<p>还有比较偏门的,比如xp关机时按shift会出现休眠按钮等。</p> +<p>所已我一想到快捷键脑子里就会飞过一片一片的写着按键的字符串,都是对各个软件的快捷操作,擦都擦不掉。能用键盘操作的还是用键盘吧,否则总会有一只手徘徊在键盘和鼠标之间(上网斗地主除外),长此以往手腕真会受不了。</p> +<p>所以,我特别喜欢的软件都是提供了强大的快捷键功能的,totalcommander方便的操作使人上瘾,gmail和greader里的快捷键让人中毒,vim咒语般的命令叫人忘记鼠标的存在。</p> +<p>就说这么多吧,快到家了。</p>体检https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/Tue, 22 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/<p>体检今天是每年一度的例行体检,一切正常。</p> +<p>各个零件都正常,医生们也都正常,还像往常那样懈怠。</p> +<p>耳鼻喉科的大夫是我见到的唯一一位比我还偏执的人,先是抱怨办公室被人换了,体检系统无法登录,然后又觉得鼠标放的不是地方,掘起屁股找了半天鼠标,然后发现台灯的线和条码扫描器的线缠绕在一起,全部解开后才满意地叫我坐过去,最后发现我的椅子摆的不正,让我像小学生上课那样坐好才行。</p> +<p>花了老半天收拾好之后,就草草看了两眼:&quot;下一个!&quot;。</p> +<p>ps:我的视力果然下跌了。</p>听歌的心情https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/Mon, 21 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/<p>听歌的心情偶尔听了听朋友的mp3,发现是经典老歌大放送,最喜欢听老歌了,马上将其全部考走(没用剪切,不像某些考毛片的学生)。</p> +<p>有些歌相当长的时间没听过了,有些上次听的时候还在用盒带。</p> +<p>朋友向我抱怨说现在的随身听容量太大,选歌忒麻烦,跳来跳去跳不到心坎上。</p> +<p>我也有此感受,我平时干活儿时一般都开着foobar,列表里四五千首歌,几乎没有一首能耐着性子听完,于是我设置了全局热键,一边编码一边换歌,时间长了练就了只要听三秒钟前奏马上就听出是什么歌的本领,要是有此类比赛,我肯定能获奖。</p> +<p>为什么就没有耐心听完一首呢,为什么呢?</p> +<p>技术的前进加上人的浮躁!以前听磁带的时候,想跳下一曲得按快进,马达呼呼跑半天,既费时间又费电(那时买不起南孚),还不能保证刚好到下一曲(后来出的高级货具备自动检测的能力就另当别论了)。</p> +<p>那个时候我练出来的就是另一个本领了,用铅笔转磁带!</p> +<p>既省电又准确,所以我就经常一边听歌一边拿笔转另一盒磁带。</p> +<p>现在好了,想听什么直接在线就听了,遇见喜欢的直接就下载了,特别喜欢的就下载无损压缩的,再也不去逛碟店了。</p> +<p>然后在成千上万的曲目里跳来跳去。</p> +<p>可是,我听歌的心情那里去了?</p>还是说说吧https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/Sun, 20 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/<p>尽管朋友们露出鄙夷的目光,《建国大业》这部片子,我今天还是去看了。</p> +<p>片子净长133分钟(据不可靠消息说本来长度可达4个小时),加上开头有20分钟左右的广告,让我坐了两个半小时吧。虽然开场之前大家都去放水了但影片结束后电影院的厕所还是堵了个水泄不通。</p> +<p>感受呢,还行。演员阵容不是一般的强大,演员的演技实力也不是一般的强大,所以单纯从电影的角度来说,感觉应该是一部很不错的电影,所有人都很卖力气。</p> +<p>但是感觉时间上还是有点儿赶,故事讲的很跳跃速度很快,明星们冒个泡亮一下,连个沙发板凳都还没抢,就进入下一个环节了。</p> +<p>看的时候总是想跟小时候看的那个《开国大典》来比对,《开国大典》看了n遍了,很多情节还是记忆犹新,比如吃面没带钱,解放军砍总统府的棋,登城楼时往上爬台阶的那个长镜头。</p> +<p>这个《建国大业》里面还是有些笑点的,安排的还算轻松,比如冯巩老抢不上发言,女代表让郭德纲改底片,许三多报告发现前面的地主大院不容易攻打请求炮火支援,结果葛优一看,发现这是到了德胜门(好像是德胜门,管它哩)。</p> +<p>最后,这部片子可看,其他人说了屁也不算,何必让别人的垃圾评论影响自己的观点哩。</p> +<p>ps:电影而已,外籍演员的片子你还少看了?</p>手机没电了https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/Sat, 19 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/<p>手机没电了本打算在路上写今天的博客,结果手机一个劲儿地提醒电量低。</p> +<p>我看看能不能发出此篇。</p> +<p>我的手机配了两块电池,一块是原装的,另一块也是原装的。</p> +<p>在轻度使用的情况下每块电池可以坚持一周左右,最近使用过度,连三天都很勉强。</p> +<p>本来我家里有座充,公司有旅行充,但是现在在路上,没电了。</p>吹吹灰https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/Fri, 18 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/<p>吹吹灰我的博客三个多月没更新了,我估计上面已经开始结蜘蛛网了吧。</p> +<p>说是没时间更新显得太娇情了,不过确实是没时间。</p> +<p>这段时间以来一直在忙同一个项目,全部的身心都投入到上面去了,根本没有精力更新这里,连QQ﹑MSN等都一概不上了。</p> +<p>好在现在终于进入了一个新的阶段,我觉得也需要每天换换脑子,思考点儿别的东西,或许对工作质量有一屁股的促进作用。于是我又想到了写博客(为什么要说又呢),那就到这里吹吹灰尘吧,像往常一样,同时发送到livespace和blogspot。</p> +<p>说点儿啥呢?对了,我开始用twitter了,人的思想真是奇怪,在twitter没有被封掉之前一年多我就注册了,但是根本不用它,等到twitter被封了之后却又非常想在上面发发牢骚。</p> +<p>虽然不能正常登录,对于我等爱钻研爱学习的人到也增添了不少情趣。</p> +<p>这就像是和好不容易追的姑娘交往一样有意思(屁话)。</p> +<p>好吧我承认我不会像沉迷于google那样沉迷于twitter(什么你还有google瘾),至少不能耽误干活儿,我只是渐渐感到twitter才是最好的新闻来源(屁话)。</p> +<p>还有就是我在手机安装了gravity这个twitter客户端,这是个很容易让人中毒的软件,请不要误会,此毒既不是医学上的也不是计算机病毒。</p> +<p>先说这么多吧,经过这段时间的繁忙工作,我感觉我已经有了轻微的精神分裂迹象,看看上面的文字就能感受的到,好吧。</p>壁纸https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/Mon, 20 Jul 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/<p>桌面壁纸有嘛用?</p> +<p>整天看到人乐此不疲地换来换去,唧唧歪歪,真是还躁。</p> +<p>我的桌面壁纸就是黑乎乎的一片,上面散落着几行咒语般的VI命令。</p> +<p>擦!误把这里当推特了</p>https://sbabybird.github.io/p/%E8%B5%B6/Sat, 13 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%B5%B6/<p>赶!回来的时候,用自动售票机买的票,这机器有点儿缺心眼,认为我是短跑高手,给了我一张5分钟后就发车的票,看完之后我马上汗就下来了,一溜小跑,要说还是天津人民素质高,不仅不在乎我夹塞进站还帮我查询检票口的号码,我一路狂奔到车上,还没站稳,车就开动了!</p>俺又要到天津出差啦https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/Fri, 12 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/<img src="https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/20090612.jpg" alt="Featured image of post 俺又要到天津出差啦" /><p>上次的津门半日游一点也不过瘾,这次估计再待半天。</p>恐怖的超市https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/Thu, 11 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/<p>下班后去超市买东西,面对如此拥挤的人群,我感到大脑一片空白。</p>买了个U3https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/Wed, 10 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/<p>买了个U3鉴于东西放到网上太不安全,如果把资料整理到网上,比如说blog,说不定哪天就灰飞烟灭了(确切的说是被众所周知了),我觉得有必要将自己的知识管理系统转移到U盘上了。</p> +<p>现在U盘已经白菜价了,随便选了几款,最终选择了SanDisk的U3,因为附带了U3软件,所以据说可以将常用软件随身携带,还有安全保证。</p> +<p>可是这个U3软件我刚用了半天就把它卸载了,原因是:首先它不支持Linux,其次里面很多可移动的软件都是收费的,再次,对于禁用了自动播放功能的机器来说,操作是很麻烦的。</p> +<p>好了,我现在把它当普通盘来用了,准备在上面装个轻量级的Linux发行版,比如Puppy,然后再建个wiki,然后再慢慢把东西整上来。</p>看见了彩虹https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/Tue, 09 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/<p>第一次在北京看到了彩虹,手机拍的,不清楚。</p>还是难舍firefoxhttps://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/Fri, 05 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/<p>用了两个月的GoogleChrome浏览器之后,现在我又换回Firefox了,虽然Chrome很快,启动很快、网页加载很快、js脚本飞快,但是还是无法替代我的Firefox。</p> +<p>首先就是在页面的渲染效果上chrome没有firefox好看,尤其是对于中文页面的渲染,再有就是firefox拥有无比强大的插件系统,与其说舍弃不了firefox倒不如说是舍不得那些插件,delicious、greasemonkey、tabmix、ubiquity等等都是绝世好插件,给我的浏览带来完美的体验。</p> +<p>chrome也是很好的浏览器,从刚发布时的粗糙简陋到现在的稳定、高效、人性化,进步非常快,记得chrome刚发布的时候我立即就安装了,也立即就卸载了,太简陋了(也许是简约)。</p> +<p>后来2.0的时候我又忍不住安装了,这次提高很多,渲染中文字体也比以前好看,速度飞快,于是我坚持用了两个月,期间忍受着没有delicious书签的痛苦。</p> +<p>现在我又换回到firefox了,虽然启动慢点儿,内存占用多点儿,可是用起来真是很可手,听说马上要出3.5了,拭目以待。</p>博客不能访问了https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/Wed, 03 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/<p>我有两个同步更新的blog,一个在Google的blogspot,一个在微软的livespaces,blogspot不能访问很正常,可是从昨天开始,连放在livespaces的也不能访问了,真不知到抽的哪阵风。GFW,我叉你老叉的叉叉叉。</p>发型https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/Sun, 31 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/<p>小时候的语文课里有一段对鲁迅先生头发的描述:&quot;头发约莫一寸长,显然好久没剪了,却一根一根精神抖擞地直竖着。&quot;</p> +<p>能留出这种发型来,光有好的洗发水是不够的,关键是发质,我的头发就是这样。</p> +<p>我的头发现在两寸长都有,虽然大部分都乖乖趴着,但是一觉醒来之后,总是有几小撮不合时宜地直竖着,任你嗻哩还是魔丝都无法把他们撂倒。</p> +<p>每天早晨洗漱完毕到梳头这一环节时总是想起刚才那段对鲁迅的描述,然后顶着翘得像刺猬般的发型去狂奔。</p>扛包https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/Sun, 31 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/<p>媳妇带着孩子过来视察工作了,所谓兵马未动粮草先行,来之前先把小孩子用的东西打了个大包裹给寄了过来。</p> +<p>也不知是放假的原因还是快递公司的车没有动车组快,她们已经到两天了,我今天才收到包裹。一个很大的包裹,被快递公司在外面又包了一层蛇皮袋,然后又用透明胶带在外面缠了几圈,再加上一层土,看起来让我想到了民工兄弟。</p> +<p>就这大包,下班后我往肩上一扛,一股劳动者的优越感油然而生,用媳妇儿的话说,我要是手里再拿只山寨手机,然后把喇叭外放打开,播放一曲高亢的&quot;月亮之上&quot;,就完美了!</p> +<p>PS:我也是个民工,此篇没有鄙视我们民工的意思。</p>接站https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/Fri, 29 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/<p>第一次到火车站接人。</p> +<p>需要买站台票,售票员会要求凭火车票购买站台票,但是你说是来接人的,她就会毫不犹豫地卖给你站台票了,我感觉这是个漏洞。</p> +<p>到了站台才发现我来的实在是早了点儿,火车还有一个多小时才到站,接人的地方又不是候车室,别说椅子了,连个马扎都没有。</p> +<p>我干脆一屁股坐在了冰凉的地板上,怀着焦急的心情,等待火车的到来。</p>津门一日游https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/Wed, 27 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/<p>今天去天津出了一趟差。</p> +<p>感觉天津是个不错的地方,不愧是“上有天堂下有天津”(有这句话吗?)。</p> +<p>首先感受了一下中国最快的列车,时速达330的城际特快,椅子都没有坐热都已经到了天津站。</p> +<p>然后就听到了地道的天津方言,虽然是第一次到天津,但感觉很亲切,倍儿舒服。出租车司机话也很多,天南地北都挺能侃,和北京的出租司机有一拼。</p> +<p>下了车就奔公司分舵去了,那里的同事也十分热情,简单吃过饭,就去办公事。</p> +<p>然后就是打车去火车站,又是椅子没做热就到了北京。</p> +<p>所以,虽然是去了一趟天津,基本上也没啥感受,就是感觉那儿人挺不错,环境也不错,至少比北京强,还有就是感叹城际特快的速度,要是以后坐火车都像这样,那航空公司肯定要关张了。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Tue, 26 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<p>朋友婚宴,多喝了三五杯。明日出差,一路顺风!</p>郁闷的紧急任务https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/Mon, 25 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/<p>郁闷的紧急任务什么样的任务是令人郁闷的泥?</p> +<p>比如说,邻近下班的时候,老总紧急抠你,递给你一张小纸条,然后气喘吁吁的对你说:&quot;实在是安排不开了,你赶紧按照这个意思做个PPT,明天上午十点钟给客户演示一下。&quot;</p> +<p>你接过纸条一看,发现上面只有几行小字,比一条手机短信还短,更郁闷的是,上面的内容比较生辟,大家都没搞过的那种。</p> +<p>你长叹一声,心想,为什么总是等屎到了屁股门口才上茅房!</p> +<p>我今天就遇到了上述情况,多亏了Google的搜索和维基百科,我抽了三根烟才把PPT做完。</p>左撇子https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/Sat, 23 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/<p>作为一个天生的左撇子,我除了写字用右手之外,拿筷子,切菜,投篮,羽毛球,乒乓球,台球,包括用鼠标都是用左手。</p> +<p>其实最早的时候我连写字都是用左手的(右手只会扔板砖),只是后来被家长逼着换成了右手,这样直接导致的一个后果是,我的字写的很烂,除了自己的名字写的还勉强能看之外,其他汉字都写得潦草的像鸡挠一样。</p> +<p>平时也还有很多郁闷的事儿,比如我坐地铁,左手拿着卡在通道上一刷,嗒的一声,我正前方的门没开,左侧通道的门开了,还得蹬蹬蹬转过去。</p> +<p>为什么想起左撇子这件事儿呢,因为今天考试的时候需要拿起多年不用的笔来写一篇论文,论文写的烂不说,关键是字写得实在是不堪入目,想来想去除了怪我练字不够努力之外,也只能怪我当时没有坚持用左手写字了,只是,令人尴尬的是,我左手写的比右手写的还难看。</p>球雨https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/Thu, 21 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/<p>早在去年的这个时候,我们就发过牢骚,只要是我们想打篮球的时候,必然要下雨。</p> +<p>今天再次证明了这一点。每次我们兴致勃勃地带好球衣,穿上球鞋,给篮球打满气,这一切收拾停当之后,刚刚还晴朗的天空突然就飘来朵朵乌云,半个时辰之内必有甘霖降落。</p> +<p>可是如果我们仅仅是说好了打球然后又因故取消的话,这场雨就不下了,可见,求雨还得心诚才行啊!</p>该不该qqhttps://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/Wed, 20 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/<p>这两天我的系统特别慢,这归功于office,由于工作需要,最近我每天都需要打开大量的word文档,而这个时候我的机器就有些吃不消了,基本上打开个1m左右的文档大概需要一袋烟的功夫,这样的文件要是同时打开个4~5个,那我的机器就干不了别的了。</p> +<p>于是我就尽量减少并行运行的程序,并把占用大量内存的程序更换成占用少些的程序,比如把firefox换成了Googlechrome,后来我干脆把qq、msn统统关掉了,因为我发现根本没时间聊天。</p> +<p>但是问题就来了,以前我的qq是整天在线的,qq的状态就显示了我的工作状态,我妈每天都上qq看一看,有时是为了打牌,有时就仅仅是看看我在不在线,也不跟我聊天,看看就踏实。</p> +<p>我刚一个上午没上线就打电话问我,“什么情况?为什么qq不在线?”,我解释一番。</p> +<p>今天又有朋友发短信过来表示关心:“这几天上线这么少,有事儿吗?”看来,qq真的很重要</p>有意思的wolframalphahttps://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/Tue, 19 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/<p>wolframalpha 上线了,据说是个Google杀手,而且是基于“语义”的搜索我试用了一下,感觉挺有意思,本来按照我的理解是搜索“黄河有多长”就能直接给出答案,可是人家目前还不支持中文,又听说他的数学能力不是一般的强,于是输入了一个一元二次方程y=2x^2+3x,竟然直接把函数曲线画出来了看了学生们以后做作业不用那么麻烦了</p>戴着耳机干活儿https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/Mon, 18 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/<p>我以前写代码的时候总是习惯戴着耳机写,代码的风格总是跟着音乐的风格,一会儿古典一会儿流行,要是哪天赶上一段二泉映月之类的,写出的代码立即就透露出点点的哀伤,就连变量的命名也变得婉转起来。</p> +<p>当然了,如果碰上不好的音乐,写出的代码总是bug特别多!所以我过一阵子就会清理一下硬盘上的mp3,把那些影响代码质量的音乐彻底删除,比如黑色星期天之类的。</p> +<p>总之,音乐就像是我的粮食,一天没听音乐就像是没吃饭似的。</p> +<p>不过,要是按刚才这句话的定义,我已经个把月没吃饭了,最近有个项目搞得我压力特别大,耳机也懒得戴了,每天就是挣扎在一堆文档中间。</p> +<p>前天吃饭时突然得到同事的点醒,才意识到我还得把耳机戴上,于是乎,今天的工作就十分顺利,事情也很流畅,我仿佛又找到突然间的自我了。</p>发现一款vim代码段补全的插件--snipMatehttps://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/Sun, 17 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/<p>作为一个工具狂人,我对Vim的喜爱是天生的。喜欢Vim的简单、高效、朴素、专业&hellip;。所以Vim成了我的主编辑器,无论是在Linux下还是XP下都能帮我高效地完成工作。(当然,Visual Studio才是我混饭吃的主要工具,不过这不是今天要说的重点)</p> +<p>对于使用Vim的人来说,大部分的工作是用Vim来编辑代码,这么一来代码的自动补全就很重要了。虽然使用SuperTab、C-Support等插件之后Vim的代码补全功能有了很大提高,但是离VS下面的VSAssistant还是有一定的距离的,比如对于代码块的补全就不是很方便。</p> +<p>今天我发现的这个叫做snipMate的插件很好的弥补了这一点。这个插件再次证明了Vim是无所不能的,也说明了聪明人要是懒起来真的可以很过分。</p> +<p>snipMate的下载地址:<a class="link" href="http://www.vim.org/scripts/script.php?script_id=2540" target="_blank" rel="noopener" +>http://www.vim.org/scripts/script.php?script_id=2540</a></p> +<p>下载解压到<code>vimfiles</code>目录即可,然后打开Vim,试着编辑一个C文件,比如<code>hello.c</code>,输入<code>main</code>然后按Tab键,你会发现代码变成了下面这样:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="k">const</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span> +</span></span><span class="line"><span class="cl"><span class="p">{</span> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span> +</span></span><span class="line"><span class="cl"><span class="p">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>先输入for再按Tab键:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">count</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">{</span> +</span></span><span class="line"><span class="cl"><span class="p">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>再按Tab键,光标还会自动跳跃到count、i、code上,以方便编写自己的代码。snipMate同样也有if、while、define等常用的片段补全。</p> +<p>当然了,snipMate是支持各种语言的补全的,比如Python、HTML、Java等等。</p> +<p>最后,最重要的,就是snipMate支持自定义补全,语法也很简单,通过编辑配置文件可以很方便地定义自己的自动片段补全。</p> +<p>再来一段演示视频,看完后就马上去下载安装吧!<a class="link" href="http://www.vimeo.com/3535418" target="_blank" rel="noopener" +>演示视频链接</a></p>关机倒计时ahk脚本https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/Wed, 22 Apr 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/<p>最近习惯在晚上听着音乐或相声、评书睡觉,但电脑总是忘记关,于是使用Windows的<code>shutdown -s -t</code>命令来进行倒计时关机,但是我还嫌这样麻烦,因为要按多次键,还要输入命令,于是就写了下面的AHK脚本,运行后只要按下Windows键 + S键即弹出一个输入框,输入3600即一个小时,到时候就自动关机啦。后来觉得有取消关机的可能,就加了一个判断,到时候点击取消的话,就放弃关机了。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-autohotkey" data-lang="autohotkey"><span class="line"><span class="cl"><span class="nl">#s::</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="nb">InputBox</span><span class="p">,</span> <span class="n">time</span><span class="p">,</span> <span class="err">关机倒计时</span><span class="p">,</span> <span class="err">请输入一个时间(单位是秒) +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="n">if</span> <span class="p">(</span><span class="n">time</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">loop</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">if</span> <span class="p">(</span><span class="nv">A_Index</span> <span class="o">&gt;</span> <span class="n">time</span><span class="p">)</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">break</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">sleep</span><span class="p">,</span> <span class="mi">1000</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">count</span> <span class="o">:=</span> <span class="n">time</span> <span class="o">-</span> <span class="nv">A_Index</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">ToolTip</span><span class="p">,</span> <span class="err">剩余:</span><span class="nv">%count%</span><span class="err">秒关机 +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">ToolTip</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">MsgBox</span><span class="p">,</span> <span class="mi">33</span><span class="p">,</span> <span class="err">关机倒计时</span><span class="p">,</span> <span class="err">定时关机的时间到了,确定要关闭计算机吗? +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="se">`n`n</span><span class="err">此框</span><span class="mi">6</span><span class="err">秒内自动确定</span><span class="p">,</span> <span class="mi">6</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">IfMsgBoxCancel</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">MsgBox</span> <span class="err">取消了关机 +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">else</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">Shutdown</span><span class="p">,</span> <span class="mi">9</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="nb">return</span><span class="err"> +</span></span></span></code></pre></td></tr></table> +</div> +</div>原来如此https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/Wed, 15 Apr 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/<img src="https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/20090415.jpg" alt="Featured image of post 原来如此" /><p>同事传来一张图片,看了之后茅塞顿开,简直无法比喻了。</p>试用Google music的泡泡选歌功能https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/Sun, 29 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/<img src="https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/20090329.JPG" alt="Featured image of post 试用Google music的泡泡选歌功能" /><p>试用Googlemusic的泡泡选歌功能,可根据节奏和音色等属性选歌,最爽的是可以根据年代选歌。从我这张截图上可以看出我最爱听老歌。网址:http://www.google.cn/music/songscreener</p>if you want mehttps://sbabybird.github.io/p/if-you-want-me/Fri, 27 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/if-you-want-me/<img src="https://sbabybird.github.io/p/if-you-want-me/20090327.jpg" alt="Featured image of post if you want me" /><p>nan</p>就不说这是啥https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/Fri, 27 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/<p>呵呵</p>我是怎样进行知识管理的https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/Thu, 26 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/<p>我有个很大的毛病,就是爱好学习,有很强的求知欲。</p> +<p>我觉得主要的原因是好奇心太强,尤其是对于技术方面,恨不得什么都能掌握,后来发现那是不可能的。</p> +<p>但是我还是很喜欢搜集各方面的知识资料,总以为以后有时间会用到。</p> +<p>开始时我喜欢胡乱放文件,一些技术指南、一些能力技巧、一些文档秘籍等等,这些东西有些是从网络上获取的,有的是自己亲自总结的,都是很值得收藏的玩意儿,我把这些看似有用的东西一股脑地扔进硬盘。</p> +<p>我的硬盘越来越满,想找的东西越来越难以从堆积的资料中翻出来。</p> +<p>直到有一天我发现如果一份资料在用到的时候找不到,那就等于没存,甚至还不如不存,困惑了一段时间后,通过网络搜索第一次知道了“个人知识管理”这个“东西”。tobecontinue</p>吃饼https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/Tue, 24 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/<p>晚饭喝粥吃饼,就在离公司不远的粥铺。</p> +<p>这家的大麦粥很合我的口味,提供的主食里有一种面饼,拿辣椒、鸡蛋、面粉混在一起煎制而成,曰:尖椒饼。</p> +<p>吃起来绵软可口,十分鲜美,是我每次必点的主食。</p> +<p>美中不足就是份量太少,每次总被我三口两口吃完,于是我今天就一次点了两份,服务员好像很不解,瞪着眼睛有跟我确认两遍,然后转过身吐了吐舌头冲别服务员做了鬼脸。</p> +<p>她心想,没看出来,这家活这么瘦还这么能吃。</p> +<p>我心想,谁能吃啦?你们也不觉的害臊,这么少的东西也好意思端上来。</p> +<p>不过,我还是假装只吃了一张饼,那一份打包了在路上吃了…</p>重新启用工作日志https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/Mon, 23 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/<p>有几个月没认真写工作日志了,费劲搭建的trac平台也逐渐荒芜。</p> +<p>最近的工作效率一直不高,系统太慢,硬盘太乱,内存不足,桌面难看…狠了狠心还是没有重做系统,准备工作太多,要装得软件太多,到最后还是一样。</p> +<p>于是就本着磨刀不误砍柴工的精神,整理了一下文件夹,吹了吹trac平台的灰尘,开始好好写工作日志。</p> +<p>以后要坚持每天清理收件箱,每天早晨安排一天的事务,并注意每天回顾。</p> +<p>为了节省流量就写这么多吧…</p>如果可能的话,恢复跑步。https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/Wed, 18 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/<p>年前我连续两个月坚持晚上跑步,就是绕小区跑一圈,大概十分钟左右,后来天气太冷,就暂停了。</p> +<p>现在天气又暖和了,我想还是把跑步这个计划坚持下来吧,每晚跑一圈,对身体的效果也许不明显,就当是锻炼执行力了。</p>夕阳无限好https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/Mon, 16 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/<p>夕阳无限好</p>笔筒https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/Sun, 15 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/<img src="https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/20090315.jpg" alt="Featured image of post 笔筒" /><p>笔筒,自动对焦拍摄。</p>五年来看到的最过瘾的一部电影https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/Sun, 15 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/<p>周末的下午,按照惯例,看片!看到了论坛上推荐的《飓风营救》原名(Taken),名字取的有点儿让我不太想看,但是无聊的很,还是看看吧。</p> +<p>结果这个故事真的引人入胜,一个为了女儿而退役的老特工,为了女儿营救女儿,几乎把巴黎闹翻了天,虽然有点儿英雄主义,但看得让人很过瘾。</p> +<p>等到看完了我才想起来查查这个影片的导演是谁,我靠!居然是吕克贝松(开头的字幕居然没注意到),啥话也不说了,此牛人没拍过一般的片。</p> +<p>剧中的主角为了营救女儿,几乎干掉了他遇到的每一个坏人,而且手段十分干净利落,甚至残忍,这恰恰是最过瘾的地方,比起以往此类电影,主角往往带着仁慈再次受伤而导致事情失败,让人唏嘘,但此片不然,对坏人,乃至对坏人的老婆&mdash;&mdash;貌似一个十分无辜的人,也毫不留情,这种做法,将一个父亲对自己女儿的爱,表达到了极致。</p> +<p>总结成一句话就是:为了女儿豁了老命什么也不顾了!</p>手机发图片测试https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/Sat, 14 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/<p>手机发图片测试</p>手机写博客测试https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/Sat, 14 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/<p>手机写博客测试。</p>对googlereader中共享条目的看法https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/Thu, 12 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/<p>googlereader用了快两年了,我认为它是目前最好的在线rss阅读器了。</p> +<p>自从greader推出好友分享的功能后,我的好友也加了不少,而且大家都把自己认为有价值的条目共享出来。</p> +<p>但目前有点不太令我满意的地方是&mdash;-重复的共享太多,就是说一条有意思的rss内容反复的被好友共享,即使我已经阅读过此条目,当我在点击进入朋友共享的条目时,如果有朋友共享了该条目,则greader会认为我未读过这条内容,于是就会出现同一条资源被反复阅读的情况。</p> +<p>我觉得greader最好再智能一些,即我读过的东西,哪怕有n个人又共享了n遍,也不要列入到我的未读列表里,这样才好。</p>今天遇到的问题,GPRMC与GPGGAhttps://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/Wed, 11 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/<p>我以前写过一个程序,在pda上通过读取gps模块的串口信息来实现坐标定位的功能。通常gps模块都会输出标准的GPRMC与GPGGA信息,所以程序一直运行正常。</p> +<p>今天突然遇到奇怪问题,同事说我的那个程序不好使了,虽然能够打开gps模块但是不能解析经纬度等信息。</p> +<p>这是一个国产的智能手机,自带的gps导航程序可以正常定位,但我的程序不行。</p> +<p>于是我把从串口得到的信息统统打印出来,仔细调试,发现该gps模块可以正常输出GPGGA格式的信息,但输出GPRMC格式的信息却不完整,而我那程序正是通过解析GPRMC的信息来实现坐标定位的,于是修改代码,放弃GPRMC信息,改为从GPGGA里读取坐标信息,程序正常。</p> +<p>但我还是没弄明白这个gps模块为什么会输出不正常的GPRMC信息。</p> +<p>头大。</p> +<p>另附GPRMC与GPGGA的解释GPGGA的百度百科解释GPRMC的百度百科解释</p>我的好忘性https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/Tue, 10 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/<p>这次来京时,老婆大人托付的有点儿小事要办,帮家里的亲戚在北京买点儿药,冲剂类,应该就像板蓝根似的。</p> +<p>来之前,特地将药品的描述写了个纸条塞进我的口袋。</p> +<p>到了这边之后,进入工作状态后,立即将此事抛到了九霄云外了,直到老婆今日在qq上提醒我才想起。</p> +<p>后来经人提醒,药物无法邮寄,无论是平邮还是EMS均没戏,让我很是失望,不过还好,咨询快递公司后,人家说只要不是液体就行,而且感觉服务又比EMS好的,当然就用快递了。</p> +<p>靠,龌龊的EMS!额真鄙视你呀</p>坚持是最难的事情https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/Mon, 09 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/<p>我的英语水平一直徘徊在“烂”与“那是相当的烂”之间,那是因为我的词汇量一直少的可怜,我也曾经心潮澎湃地背单词,甚至背字典,但都没有坚持下来,每每想起都非常懊悔,如果从我刚学英语那天就每天记住一个单词的话,现在至少记住5000个单词了,当然这是不可能的,因为我没有坚持下来。</p> +<p>学习其他东西也是这样,十年前就摸过吉他,而且能像模像样的弹一首单调的曲子,也是因为没有坚持练习,到现在还是那个水平。</p> +<p>年前一段时间,我心血来潮,准备每天晚上坚持跑步,但是仅仅跑了两个月,就在冬至那天被打败了,天太冷了,还是不能坚持。</p> +<p>一旦松懈下来,就再也不想继续了。</p> +<p>有相当一段时间,我以为每天写一篇博客实在是很轻松easy的事情,但是前一段时间工作一忙,还是没能坚持下来。</p> +<p>哪怕是一天在上面唠叨一句也懒的罗嗦。</p> +<p>现在,下班了,我想换换脑子,思考了半天,竟忍不住感叹一句:“做什么事情,最难的就是坚持!”</p>昨天洗了一下微波炉https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/Sun, 08 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/<p>回老家温暖几天之后,我现在又恢复到一人吃一人住的状态了。</p> +<p>刚到北京就感冒了,先是鼻子消极怠工,然后是咽喉肿痛,再后来就咳嗽,直到昏昏欲睡,浑身酸痛。</p> +<p>昨天加了一天班,不想在外头吃了,就跑到超市买了一堆东西,想自己做着吃。</p> +<p>忽然想起来前几天上火车时老妈给我拿的煮鸡蛋,现在还都在冰箱里放着呢,只是不知还能不能吃,发短信请示老婆,问是否还能吃,批示曰:“浪费可耻,尽量吃掉!”我想也是,何况这可是纯天然的柴鸡蛋啊,在北京想吃还吃不到哩。</p> +<p>于是就把一个鸡蛋放到微波炉里,想热一下再吃,只怪我由于感冒引起的大脑短路,忘记给鸡蛋剥皮,在加热到15秒的时候就听到一声巨响,就像正月十五放烟花的那种响声,坏了!赶紧关掉微波炉的电源,打开一看,鸡蛋炸成了米粒那么大小碎片,均匀地分布在整个微波炉里。刚好,我早就想清理一下微波炉了,借此机会,清洗一下!</p>在python下调用gdal库来显示影像图https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/Thu, 19 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/<p>很久没有更新了,懒是一方面原因,另一方面是因为最近忙的没有心思写博客了。其实按理说,每天抽出一点时间来唠叨两句还是能够办到的,只是一旦停下来,再开始就更费尽了。随便整理一些东西发上来吧,又是关于技术的。</p> +<p>有一段时间我需要写程序来处理tif格式的影像图,在网上找来找去就发现了gdal这个好东西,可是在vc下调用它还是有些罗嗦,达不到快速调试的效果。于是前两天我又试着在python下调用gdal,把思路先用python实现一遍,调试通过了再用c++。下面是最简单的显示一幅tif影像图的python代码:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">pygame</span> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">osgeo</span> <span class="kn">import</span> <span class="n">gdal</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">init</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"><span class="n">screen</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">set_mode</span><span class="p">(</span><span class="n">WINSIZE</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">set_caption</span><span class="p">(</span><span class="s1">&#39;gdaltest&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">time</span><span class="o">.</span><span class="n">set_timer</span><span class="p">(</span><span class="n">USEREVENT</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">dataset</span> <span class="o">=</span> <span class="n">gdal</span><span class="o">.</span><span class="n">Open</span><span class="p">(</span><span class="s2">&#34;c:/test.tif&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">surface</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">Surface</span><span class="p">((</span><span class="n">WINWIDTH</span><span class="p">,</span> <span class="n">WINHEIGHT</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="n">parr</span> <span class="o">=</span> <span class="n">dataset</span><span class="o">.</span><span class="n">ReadAsArray</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">WINWIDTH</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">WINHEIGHT</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">r</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">g</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">img</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">PixelArray</span><span class="p">(</span><span class="n">surface</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">WINWIDTH</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">WINHEIGHT</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">img</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">],</span> <span class="n">g</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"><span class="n">show</span><span class="p">(</span><span class="n">img</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div>咦!https://sbabybird.github.io/p/%E5%92%A6/Wed, 04 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%92%A6/<p>最近一段时间都会比较忙、相当忙、非常忙,正常下班的时间已经被无情地调整到了晚上9点,请注意,我说的是下班时间,我可没说加班加到几点。</p>我回来了https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/Sun, 01 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/<p>真快,又开工了。</p>春节好!https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/Sun, 25 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/<p>牛年大吉!万事顺利!</p>什么也比不上家的温暖https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/Sat, 24 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/<p>好啦,历时十二个小时,经过无数次的转车,终于平安到家了。</p> +<p>带着一身的疲惫,当我走进家门的那一刻,所有的烦恼与苦难都在一霎那间烟消云散了。</p> +<p>管他是令人发指的票贩子,还是无处不在的小偷,是零下十几度的寒冷天气,还是把我折磨得筋疲力尽的客运系统,都通通给我一边去吧。</p> +<p>虽然屋里没有暖气,但是可口的饭菜,家人的欢笑,这一切都让我觉得比开着暖气的北京温暖多了!</p>一路顺风!https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/Thu, 22 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/<p>一路顺风!明天就到家啦。</p>过年的蜡烛https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/Wed, 21 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/<p>说说小时候过年的事情吧,那个时候我们村里还没有通电,平时晚上会点煤油灯来照明,过年的时候家家户户都要点蜡烛,俗称&quot;大蜡&quot;。</p> +<p>这可不是一般的蜡烛,而是非常巨大的一对蜡烛,差不多有两斤重,顶端粗壮,下端圆滑,底部有孔,上面通常写着非常有年味儿的对联,如&quot;一杯美酒敬天地,三柱清香谢神灵&quot;等字样,金色的字,红色的蜡闪闪发光。</p> +<p>这么大的蜡是不能直接放在桌子上点燃的,一般要有支撑蜡的架子,俗称&quot;蜡台子&quot;,现在的小朋友可能都没有见过蜡台,那是一个精致的木头架子,刷上红漆,中间有两根铁柱竖着用以把蜡烛插在上面,手巧的木匠会把蜡台做的颇具艺术感。</p> +<p>也有的人家直接把一个大萝卜切开两半,平着摆在桌子上,再插上两根筷子,也成了不错的蜡台。</p> +<p>大蜡会在大年初一那天四五更天的时候点燃,我过年一般起的很早(小孩子最爱过年了),起来之后洗漱完毕第一件事情就是点大蜡,大蜡的火苗很大,照的整个堂屋像白天一样明亮,也预示着大家在新的一年里红红火火,吉祥如意。</p> +<p>点大蜡、敬香、吃饺子,然后放鞭炮这个流程就是我对小时候过年的记忆。</p>最后的倒计时https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/Tue, 20 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/<p>还有两天就回家了,身在北京,心早已飞到了家人的身边。 </p>看完了《叶问》,心情沉重地去洗澡了https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/Mon, 19 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/<p>还是洗洗睡吧。</p>显卡驱动导致程序不能正常最大化窗口https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/Mon, 19 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/<img src="https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/20090119.JPG" alt="Featured image of post 显卡驱动导致程序不能正常最大化窗口" /><p>这两天做了一个程序的demo,在台式机上十分运行正常,在笔记本上运行时,窗口就是不能最大化,最大化之后程序窗口只能显示一半,鼠标也拖不动它,因为windows认为你的窗口既然已经最大化了所以就不让你拖动了:)。</p> +<p>反复调试程序也找不到问题所在,最终才想到是显卡驱动的问题,于是我抱着试试看的态度(这个语气好熟)把Nvidia好心提供的附加程序&quot;desktop-Manager&quot;功能给禁用了,程序立即就好使了,窗口可以正常最大化了。</p> +<p>如图</p>没信心了https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/Sat, 17 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/<p>前天在网上看了个视频,某人(其实就是rickwakeman)演奏了一段keyboard,看得让我心神激荡(地址在这儿),旋律速度极快,却也十分好听。</p> +<p>此人运指如飞,根本看不清是哪根手指在动,小手指摆动得就像蜻蜓的翅膀,好像就要发出嗡嗡声似的。</p> +<p>看完视频后我长叹一声,唉,咱这辈子也别想弹成这样了。</p>我的指纹https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/Fri, 16 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/<p>最近在做一个与指纹识别有关的项目,选了几家硬件。</p> +<p>我发现,无论吹嘘的多牛逼的识别硬件,对我的指纹都无可奈何,对我同事指纹的识别率基本达到百分百,却常常认不出我的指纹。</p> +<p>这样我调试程序的时候就很麻烦,常常需要同事的帮助,动不动就拿着硬件拉着一个同事的手说:&quot;麻烦帮个忙,手指头借我用一下&quot;。</p> +<p>没办法,我的指纹太浅,无论是光学识别器还是电容识别器都不能很好的识别,不知道这是否意味着我可以放心的去作案了?</p>我的垃圾,我的回忆https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/Thu, 15 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/<p>今天妈妈打来电话,说在家里整理房间,整理到我曾经的书房兼卧房,问我那一书柜的书还有一堆乱七八糟的东西该如何处理。</p> +<p>按照我爸的建议是,该清理的统统清理,免得占地方。</p> +<p>但我在电话里还是坚持要把我的那些东西全部保留下来,哪怕是小学课本也最好别扔掉。</p> +<p>我想到了我的&quot;百宝箱&quot;。</p> +<p>其实不加引号也行,虽然对别人来说那里装的都是垃圾,但对我来说那里装的绝对都是宝贝,十来年没碰过了,也记不起来装的都是有什么了,印象比较深的大概有几只拆开的电子表、闹钟,拆散的收录机配件,螺丝,铁丝儿,手电筒啥的。</p> +<p>在没有电动玩具玩耍的年代,这些都是我的玩具,而且一直陪伴我到了初中毕业。那时候,我每晚都被&quot;逼&quot;着看书写作业,累了的时候就拆个闹钟玩玩,或者随便接几个喇叭听音乐,一个人往往不知不觉玩到深夜而忘了睡觉。</p> +<p>我曾经幻想着把电子表改装成游戏机,很显然不能成功,不过我还是乐此不疲,所以我的百宝箱里大概有四五只拆毁的电子表,有语音报时的,还有公鸡打鸣的。</p> +<p>出来上学以后,这些东西就基本没动过了。</p> +<p>书,倒是偶尔还翻翻,那也是七八年前的事儿了。</p> +<p>这一柜子书基本没有名著,分类杂乱的很,童话故事与科普读物居多,里面甚至还夹杂着一些课后习题集、作文选刊之类的等很多根本算不上是书的东西。</p> +<p>当时信息不发达,我又被限制不能看太多电视(现在想想该庆幸才对),这些仅有的书都被我翻了又翻,看了又看,陪我度过了我的童年时光。</p> +<p>一个废纸箱,一柜子书,那个时候这些就是我的世界,正是这些造就了我自闭、偏执而又爱幻想的性格。</p> +<p>于是我对老妈说,还是别扔了吧,这些都是我美好的回忆啊,其实我还想接着说,说不定哪本书里还夹着我的情书呢,但是我妈已经把电话挂断了,她没时间听我啰嗦。</p>买到票了https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/Wed, 14 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/<p>如题,虽然给票贩子加了一百元钱,但也还是比坐飞机划算。</p>完美的社交关系https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/Tue, 13 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/<p>今天听到一句至理名言:&quot;作为一个中国人,最好认识一个票贩子,一个交警,一个主任医师,一个幼儿园老师,一个律师,一个记者,一个修电脑的。</p> +<p>&quot;对于我来说,除了最后一个,其他的我都不认识,因为最后一个就是我自己。</p>拔河https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/Mon, 12 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/<p>公司组织全体员工在北京某郊县(靠,好神秘啊)开了三天年会。</p> +<p>年会,就是大家忙了一年了,抽个时间在一起喝喝酒,放松放松,再顺便总结一下工作。</p> +<p>很显然,我对前者更感兴趣,这期间,我参加了一场拔河比赛,喝了几顿酒,飙了几首歌,甚至还进行了一次演讲。</p> +<p>感触最深的就是这场拔河比赛了,我们组从确定完人数之后就是公认的&quot;死亡之组&quot;,因为全是体格单薄的人,个个身材像根铅笔。</p> +<p>在赛前,我们一直担心我们组上去就被别人轻易拽过去,但是,当我们都抓住绳子,并且在此起彼伏的加油声中竭尽全力时,我才发现,我们其实不弱。</p> +<p>人是有巨大的潜力可挖掘的,我们的身子向后倾斜,快要倒在地上,双手使劲攥住绳子,手已经失去了知觉,也看不清跳起来喊着&quot;加油!&quot;的人的脸,那一刻我只知道的是,要把绳子拽过来。</p> +<p>最后,在僵持了将近一分钟后,我们终于感到绳子一轻,都倒在了地上。</p> +<p>虽然在接下来的两局里我们都败下阵来,但是虽败犹荣,我们僵持不下并最终胜利的那一局,被公认为在整场比赛中的最精彩的一局。</p> +<p>虽然第二天腰酸背疼,但是我会记住这次拔河比赛,以后也会把这事儿当作床边故事讲给孙子听,虽然最后可能告诉他,爷赢了!</p>https://sbabybird.github.io/p/%E7%BB%AD/Thu, 08 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%AD/<p>把ubuntu换成xp了,深度精简版的,速度比ubuntu快多了。</p>不好意思,小折腾了一把https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/Wed, 07 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/<p>前一段时间我在eeepc上装了ubuntu,这个linux的发行版确实比asus自带的那个强大得多得多得多(继续),但是有个缺点&mdash;&mdash;慢。</p> +<p>为此我忍了很久了。</p> +<p>今天回到家,想装上一个最新的播放器软件,发现没有合适的安装包,于是就想,反正有源码,那就自己编译吧,于是,卷起袖子就开始了。</p> +<p>下载代码后,configure发现我的gtk太老,apt-get又不给我装gtk(说我已经有了最新版),于是我又要先把gtk的最新版编译好,但是问题又来了,gtk的编译依赖glib,于是我又要先把glib编译好,但是问题又来了,glib的编译又依赖另外的包,于是我耐着性子一个一个把这些包都编译完,make,makeinstall,手都酸了,然后再编译gtk,又告诉我没有atk、freetype、cairo、pango、pixman等等一大堆依赖包,</p> +<p>好吧,非编译出来不可!</p> +<p>全部下载这些东东的代码,一个一个make再makeinstall,终于可以编译gtk了,终于把gtk编译完了。发现我的Firefox却运行不起来了,Fuck!</p>四个第一次https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/Tue, 06 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/<p>1、今日第一次在大街上掀开井盖钻了进去。(当然是经过许可的)</p> +<p>2、今日第一次进入电力隧道,&quot;初极狭,才通人&quot;,进去后发现地下真是豁然开朗,别有洞天。</p> +<p>3、今日第一次使用单反相机,一个字儿,&quot;沉!&quot;</p> +<p>4、今日第一次近距离接近数十万伏特高压的设备。</p>每个男孩都应该有一把吉他https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/Mon, 05 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/<img src="https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/20090105.png" alt="Featured image of post 每个男孩都应该有一把吉他" /><p>昨天,飞行鱼一脸扭捏而又羞答答的对我说他终于没忍住,在元旦的时候买了把吉他。</p> +<p>这厮早就想买吉他了,但是这个想法多次被我扼杀在饭桌上,我以我的亲身经历,动之以情晓之以理地将他想买吉他的念头一再浇灭。</p> +<p>比如说我十年前就买过吉他,但是今天仍是连一首曲子都弹不全,比如说我曾经以为弹的不好是因为吉他不行,在我买了第二把好琴之后我才发现是自己的水平不行,说到动情之处声泪俱下,唏嘘不已。</p> +<p>但这厮还是买了,他说,他在听了卖琴的老板弹奏完一曲《加州旅馆》之后,就立即掏钱了,仿佛买回去的是那一曲《加州旅馆》。</p> +<p>不过自己回去连《加州招待所》都弹不出来,只能摆在那里当个装饰罢了。</p> +<p>那,买了琴,为什会感到羞涩捏?</p> +<p>因为我们早都过了&quot;男孩&quot;的年纪,早就错过了拿着吉他装逼的季节,只是心里总有个情节而已,你要知道,装逼被自己看穿了总是怪不好意思的吧。</p>总有些事情让你感到沮丧https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/Sun, 04 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/<p>今天看到一组新闻,里面总结了发生在2008年度的有趣而又真实的事件,其中有一条,我觉得非常真实:&quot;一个男人在暴风雪的芝加哥街头奋力铲雪一个小时,终于给自己的车清出了一个停车位。</p> +<p>当他把车开来时,发现一位女士已经抢了他的位置——可以理解,他朝她开了一枪,把她干掉了。</p> +<p>&quot;说实在的,对此男士,我表示十分的理解,我可以理解这个家伙能有多么的沮丧。</p> +<p>今天晚上去&quot;敦煌老马家&quot;吃面的时候,发现比我后到的客人都吃完了,而我的还没端上来时,我才发现原来做面的师傅把我这碗忘了,这个时候我有了和上面那个哥们儿一样的感觉,只是咱们国家不允许带枪而已。</p>有啥业务非得在银行办啊https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/Sat, 03 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/<p>谁都不愿意排队,但是很不幸,这个世界上到处都要排队,上车要排队,看病要排队,买东西要排队,收钱要排队,交钱也要排队,如果哪天不巧的话,上公共厕所蹲个坑都得排队。</p> +<p>要说排队排的最厉害的,还是得数银行!前一阵子,股票特别火的时候,银行各个网点都是爆满,想去取个钱买个电啥的,基本上是上午拿号下午办,这还算是幸运的,如果赶上你的时候人家正好下班,那么,对不起,麻烦您明儿早点儿来。</p> +<p>最可气的是,在银行里办业务的人那个磨叽劲儿,我就纳了闷了,赶上我的时候,去取钱也好存钱也罢,绝对不会超过一分钟去(就算是取个十万八万的也顶多5分钟吧),可是往往有些人在窗口前,屁股往椅子上一挪就是十几二十分钟,难道你是去聊天去了,里面的柜员也贼磨叽,一会儿站起来拿点儿表格,一会儿和隔壁女孩聊中午吃什么。</p> +<p>我就是想不明白,那些在柜台动辄磨叽几十分钟的人,他们办理的都是什么业务?</p>以后不在电脑上玩游戏了https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/Fri, 02 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/<p>昨天,一个哥们给我打电话说他的机器中病毒了,系统瘫痪了,光驱也坏了,让我去看看,顺便去他家里玩。</p> +<p>于是今天我就过去了,到那儿以后,这家伙已经买了新光驱回来了,还顺手买了个移动硬盘外加一个优盘(怎么想的?)。</p> +<p>于是俩人开始拆电脑、装光驱、装系统、装软件。</p> +<p>下午的时候,觉得有点儿无聊,这哥们儿突发奇想,决定出去转转,想买个游戏机耍耍。</p> +<p>于是我们又跑到他买光驱的电子市场,直奔电玩柜台,老板看到两个奔三的&quot;小伙子&quot;过来,开始都不太爱搭理,听到我们要买游戏机,就显的热情起来。</p> +<p>我们先后试了Xbox360和任天堂的wii,虽然xbox的画质很优美,但是最终还是决定买了任天堂的wii,日版原装套装外加一个原装手柄,一共两千三百块,老板看我们连价都没还一下(这哥们买东西跟我一样),主动送了20张游戏碟。</p> +<p>立即打车回去,接上电视就开始玩,一边玩还一边感叹:&quot;小日本设计的游戏机就是好玩!&quot;。</p> +<p>网球、保龄球玩起来跟真的一样,那个无线手柄绝真是个绝妙的设计,反映十分,游戏虽然画面稍微有点儿逊色,音质也比较一般,但整体来说,玩游戏的体验还是要比在pc上玩要爽的多。</p> +<p>可惜明天还得加班,否则今天肯定玩疯了。</p>第一天,提点儿希望https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/Thu, 01 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/<p>今天是2009第一天,按照计划,我基本上在家宅了一天。</p> +<p>早晨起床后边洗热水澡边洗衣服,然后出去买菜,准备做我很久没吃到的牛肉饭。</p> +<p>等到七七八八收拾差不多的时候,也就上午十点多了,纲要休息会儿吃口饭,却发现手机里已经收了n多的新年短信,于是饭也顾不上吃,先把短信回复了再说,这几天移动又赚翻了。</p> +<p>然后就是上午下午各看一部电影,到了晚上去老杨家吃了顿饭,打了会儿牌,喝小酒喝得微醺。</p> +<p>总之,我的新年第一天,就是这么平凡地度过了,就像是一个普通的周末。晚上回到电脑前,向往博客里写点儿东西,又觉得脑子里空空的,本来还相对08年做个总结啥的,后来想想,实在是没什么好总结的,那就对09年提点儿希望吧。</p> +<p>想起我前两天列的一个09年的学习计划,这个计划十分贪婪,牵涉到各种技术和技能,感觉不是很靠谱,还是说一下大方向上的愿望吧。</p> +<p>我希望在2009年里,我能实现如下愿望。</p> +<p>1、英语水平飞速发展,可以正常阅读英文文档与小说(阅读能力要像看中文的《故事会》一样)。</p> +<p>2、体重增加到65公斤。</p> +<p>3、编程水平继续提高,主要在基础算法与数据结构方面。</p> +<p>4、掌握一种开源三维引擎。</p> +<p>5、vim的应用更上一个台阶,使vim彻底替代我机器上的编辑器。</p> +<p>6、能够用上3G。</p>再见2008,你好2009https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/Wed, 31 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/<img src="https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/20081231.png" alt="Featured image of post 再见2008,你好2009" /><p>此处无声胜有声</p>blender练习https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/Mon, 29 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/<p>空酒杯一只</p>早场电影https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/Sun, 28 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/<p>周末,睡了个懒觉,九点出去看了一场早场电影,一个人。本来以为早场电影人会很少,结果发现电影院门口居然还排了队,当然了,都是冲着冯小刚的《非诚勿扰》来的,对于这部电影,我没什么可点评的,只能说,值得看,比起以往的冯氏贺岁片,味道还没变,故事不错,讲的也不错。回来以后,又把《甲方乙方》翻出来看一遍。</p>livespace 真难用https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/Fri, 26 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/<p>同样是使用电子邮件发布的一篇博客,发布到blogger的效果比法在livespace里的效果要好,昨天发了一张图片,blogger那边简直是又好又快,显示的还是原始大小,到了msnspace这边,给我整成了一个只有指甲盖大小的缩略图!您要问为什么放着好好的blogger不用,反而还在这贱兮兮的说livespace的坏话?</p> +<p>答案是,中国大陆无法正常使用blogger的服务,为什么不能正常使用呢?</p> +<p>答案不是因为人家歧视咱,而是@#¥%@#¥%@#¥%。</p>Blender练习https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/Thu, 25 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/<p>无聊,用blender作图一副,练习。</p>简讯https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/Thu, 25 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/<p>昨日,也就是平安夜,一年N度的节日会餐,在老居家隆重举行,出席宴会的有,大宝夫妇,小江夫妇,老杨夫妇及其儿子,会餐在亲切友好的气氛下进行,大家就共同关心的话题交换了意见,纷纷表示,鱼炖的不错,汤的味道更美!&mdash;&mdash;路边社记者&quot;从容地狂奔&quot;在现场吃饱后发回的报道。</p>跑步指数零颗星https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/Tue, 23 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/<p>前天,就是冬至那天,据说是n年以来最冷的冬至,冷就不用多说了,反正实在是不能出去跑步了,我还是先将跑步停一停,等跑步指数上升到两颗星时再开始跑。</p>串台https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/Mon, 22 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/<p>我每天大概有2个小时呆在公交车上,与拥挤的地铁相比,我坐的这趟车还算宽松,车上装有移动电视,每天循环播放着垃圾节目,让你在忍受堵车又堵心的同时也备受垃圾广告的煎熬。</p> +<p>最近两天,节目质量有所好转,有时甚至能听到一两首老歌,不禁让人陷入回忆,有时甚至想跟着哼唱两声。</p> +<p>可是很快我就又发现了新问题,那就是,电视的声音总是被公交报站的声音打断,听起来有时让人如鲠在喉有时又忍俊不禁。</p> +<p>比如吧,潘美辰在屏幕上正抱着话筒深情款款滴唱着:&quot;我想要有个家,一个不需要多大的地方~~~&quot;突然潘美辰变身成一个大嗓门的售票员,&quot;龙花园到了,下车请出示车票,youarearrivinginlonghuayuan。。。。。</p> +<p>&quot;罗哩罗嗦老半天直到歌曲唱完,在或者伍思凯刚唱完一句:&quot;没有承诺,却被你抓得更紧~~~&quot;然后紧接着就说:&quot;车辆起步,请抓稳扶好,刚上车的乘客请往里走,前方到站是叉叉叉&quot;。</p>突然的自我https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/Sun, 21 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/<p>今天是二十四节气里的冬至,天气突然变得冷酷起来,冷得令人失去意识,我从来没有像今天这样觉得暖气片如此可爱,以至于我抱着它&quot;亲热&quot;了半天。</p> +<p>按照惯例,冬至要吃饺子,可是我一个人,既不想吃速冻的,又不想在家自己做,所以,晚饭我就准备出去吃了。</p> +<p>外面的天气比我想象的要冷的多得多,尤其是北风,吹得我站都站不稳,风不断从袖口、领口里钻进来,有一段时间我根本无法呼吸。</p> +<p>出了小区东门,过马路,看见一个热气腾腾的小菜馆,隐约能看见牌子上写有&quot;水饺&quot;字样,二话不说,撩起帘子钻了进去。</p> +<p>在这儿住了这么久,第一次发现这儿还有个饭馆,店面很小,门口是个涮麻辣烫的锅,几个贪吃的家伙正稀里哗啦地吃着麻辣烫,里面一共四张小桌子,铺着桌布,收拾得很干净,墙壁上挂了几串红辣椒,最里面是个小柜台,老板娘正低着头算账。</p> +<p>打过招呼,做了下来,&quot;您整点儿啥?&quot;听了老板的口音,我才发现这是东北小两口开的店,顿时觉得亲切起来,感觉这儿就像是《东北一家人》里面的&quot;达达杀猪菜&quot;(实际上这儿还真有杀猪菜)。</p> +<p>&quot;有水饺吗?&quot;我问他,&quot;有,猪肉大葱、猪肉酸菜&hellip;&quot;,&quot;要猪肉酸菜的吧&quot;我说。</p> +<p>&quot;要多少?&quot;他又接着问&quot;像您这个头的怎么着也得一斤吧?&quot;,呵呵,我哪能吃得完一斤啊,为了不浪费粮食,我还是只要了半斤。</p> +<p>热气腾腾的饺子很快就端了上来,为了驱赶身上的严寒,我又要了一瓶二锅头(二两装),实际上,是这个馆子的氛围让我想喝两口,不知道为什么,看着忙碌的老板和老板娘,看着吃麻辣串的情侣,我抿了两口醇香的二锅头,眯起眼睛,突然感觉人生又美好起来&hellip;&hellip;</p>找到一个不错的游戏https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/Sat, 20 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/<p>这儿http://www.appinn.com/Frets-On-Fire-Portable/,是一个好玩儿的吉他游戏,可以让我这个吉他弹的很烂的人过过干瘾。</p> +<p>ps:今天跑步指数2星★★☆☆☆</p>周末大堵车。https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/Fri, 19 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/<p>从吃完饭到现在就一直坐在车上,俩小时了,还堵在路上。</p>跑步指数1颗星https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/Thu, 18 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/<p>好像最近我的博客里只剩下我每天在唠叨天气了,没办法,劳累了一天的脑子实在是没有力气在攒出一篇上千字的文章了。</p> +<p>今天的跑步指数是一颗星,极不适合跑步(满分五星),天气寒冷,空气污浊,空气中弥漫着烧烤的味道,实际上是天然气取暖燃烧的烟雾。</p> +<p>我还是出去跑了一圈,权当是为了锻炼自己的执行力。</p>在家办公https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/Wed, 17 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/<p>像我这样的好员工真是打着灯笼也不好找啊,刚刚完成了一份公司安排的ppt,啊~呵(打个哈欠)。</p> +<p>今天果然降温了,跑步的时候明显感觉到了寒冷。</p> +<p>回来后,我把家里的窗户打开来换了换空气,才几分钟的时间,室内温度就从19度降低到了15度!</p>休息https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/Tue, 16 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/<p>无论有没有外界的压力,总是不能放松自己,下班回家后看个电影都觉的在浪费生命,其实是走进了生命的误区而已。</p> +<p>我们总是不相信自己的感觉,一会儿别人说&quot;要活在当下&quot;,有点儿今朝有酒今朝醉的意思,可是又有人蹦出来说,&quot;四十岁前就别提享受&quot;,我TM到底该信谁的?</p> +<p>忒难为我了。</p> +<p>算了,不想发牢骚了,博客从来都不是一个可以倾诉的地方。</p> +<p>我想说的意思是,这个世界上充斥着各种声音,不时有&quot;专家&quot;跳出来唧唧歪歪,又或者有&quot;过来人&quot;大谈经验感受,</p> +<p>其实,每个人都有每个人自己的王国,在这个王国里,自己就是国王,好好当好自己的国王就行了,不用管别人的看法,</p> +<p>我太累了,只想好好休息。</p>费了不少脑细胞https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/Mon, 15 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/<p>今天大脑超负荷运转,下午连续工作五个小时没休息,一直在思考一个程序上的问题,最后终于解决了。</p> +<p>终于把一个老程序的数据库引擎从恶心的access换成了可爱的sqlite了。</p>完美的星期天https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/Sun, 14 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/<p>早上六点蒙蒙胧胧醒来,看了一眼时间又昏睡过去,再睁开眼已经九点半了,起来洗漱完毕刚要做饭,接到老杨电话,需要火速出去办点儿公事。</p> +<p>好吧,早饭成了一杯麦当劳里的咖啡。</p> +<p>办完事回来已是中午,在老杨家喝了一点儿小酒,喝的微醺,毕竟六十七度的&quot;老白干&quot;不是浪得虚名。</p> +<p>吃完饭就顺势去了老居家里,约了大宝来打牌,大宝二话不说提着新买的麻将牌一路小跑就过来了。</p> +<p>就这样,在午后洒满温暖阳光的客厅里,我们忙里偷闲,搓了一下午的麻将。</p>又要降温https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/Sat, 13 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/<p>据一向不靠谱的天气预报说,最近又有大风降温天气,明天就席卷而来了,但愿不会影响我的跑步计划。</p>白瞎了这么好的月亮https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/Fri, 12 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/<p>今夜星光灿烂,今晚月色撩人,据传闻今晚月亮正好处在与地球相聚最近的位置,所以应该开起来特别的大。</p> +<p>刚刚跑步的时候,证实了这一说法,月亮果然又大又圆,感觉就在我家楼顶上似的,我忍不住跑回去拿出相机来拍照。</p> +<p>结果是让人失望的,我的相机既没有三脚架,也没有好镜头,再搭上我这个糟糕的摄影师,真是白瞎了这么好的月光了,我在寒风中冻得瑟瑟发抖,鼻涕都快滴到液晶屏幕上了,照片要么漆黑一片,要么抖得天上到处是月亮,唉!</p>冒个泡https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/Thu, 11 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/<p>看来我就是把livespaces当微博了,每次都懒得多打几个字。</p> +<p>原因来自各个方面,尤其工作压力,每天徘徊在办公室的椅子和卧室的大床直接,两点一线的生活使我很难再提起兴致在博客里扯闲篇。</p> +<p>今天仍然顶着严寒跑步,空气不是很好,跑步系数为1★☆☆☆☆不适合跑步。</p>跑步继续!!!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/Wed, 10 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/<p>温度回升到最冷才-6度了,风也不那么大了,暂停了整整一周的跑步计划,今天正式恢复。</p> +<p>室外其实没我想象的那么冷,上身只穿了一件羊毛衫,仍然跑的微微出汗,拿着秒表的手刚开始感觉快要冻僵,但跑了一会儿之后就感觉很暖和了。</p> +<p>路况比我想象的糟糕,由于白天飘了几片雪花的缘故,导致部分路面已经结冰,跑在上面十分危险,差点摔倒。</p> +<p>总的来说,跑一跑还是很舒坦的。</p>雪呢?https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/Wed, 10 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/<p>昨天天气预报说,今夜迎来第一场雪,可是,感觉又被忽悠了。Ps:一大早在车上通过黑莓发送</p>我的palm饿死了https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/Tue, 09 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/<p>前年的时候,我淘到一个palm,正式成为&quot;胖友&quot;,买回来后折腾了很久,反复安装软件,又反复的卸载掉,最后仅保留了几个看书的软件,这个palmtt的屏幕看书真的是没话说,非常舒适,我也在上面看了大概有几十本小说,几回回抱着palm到天亮,呵呵。</p> +<p>但是毕竟是个老机器了,速度慢,功能弱,最让我头疼的是,他的电池越来越不行了,后来,我又把手写笔丢了,再后来,也就是今年5月,一冲动买了个epc,就是所谓的&quot;上网本、二奶机&quot;,这下palm彻底失宠,我很少再将它带在身边,</p> +<p>直到上周末,我整理桌子的时候才发现奄奄一息地他躺在抽屉里,我竟然没搭理他,继续整理我的音箱,今天才又想起来。掏出来一看,由于长期没充电,里面的资料全丢了,还好没什么重要内容,</p> +<p>但我辛苦挑选的软件全没了,我干脆给他擦了擦灰,将所有配件整理到一起,全部锁进抽屉里,再见吧您呐。</p>为什么wall-e这么可爱?https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/Mon, 08 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/<p>为什么wall-e这么可爱?这是我看完《机器人wall-e》之后一直在想的问题。</p> +<p>无论是是他捧着电板给自己充电时的样子,还是手足无措时搓腿(其实搓的是他的&quot;履带&quot;)的动作,都可爱得让人抓狂。</p> +<p>现在,我总结一下,让我觉得这个小机器人可爱的原因大概有以下几点:</p> +<p>1、他总是很开心的工作,他很乐观,吹着口哨上班,当地球上只剩下他自己时仍然乐观地活着,对了还有一只蟑螂是他的朋友。</p> +<p>2、他很善良,不小心压了小蟑螂一下(他的履带很宽)就后悔的不行,还好&quot;小强&quot;并非浪得虚名,不仅没事儿还和walle玩得很开心。</p> +<p>3、他很单纯,傻乎乎的,没有心眼儿,连伊娃的手都不敢拉一下。</p> +<p>4、有爱,为了倾慕的女机器人(伊娃)不惜一切代价,以至于芯片烧毁。暂时就说这么多吧,皮克斯的这部动画片还是像以往的那样用简单故事打动人的心。</p>真正的“书架箱”https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/Sun, 07 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/<p>昨天花了一下午的时间把我的书柜和电脑重新整理了一遍,把惠威的2.1音箱移到了显示器旁边,把漫步者2.0的移到了书架的二层,与书挤在了一起,成了名副其实的书架箱。</p> +<p>电脑机箱后面的连线乱成了一锅粥,费了很大的劲才整理通顺。</p> +<p>现在,音箱与书柜成为一个整体,整个书柜便是一个巨大的音箱,用来听音乐那叫一个爽!</p>跑步暂停!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/Fri, 05 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/<p>寒流来袭,最高温度才零下2度,外面冷的能把人冻傻,在我还未被冻傻之前,先做出一个明智的决定,无限期暂停跑步计划,风太大,空气又凉,我又没有自虐倾向,还是在屋里待着暖和。</p>据说明天要降温https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/Wed, 03 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/<p>北京的天气要降温的消息已经提前三天放出,电视、网络反复强调,就连公司内部的网络都发布温馨小贴士提醒大家注意加衣服了。</p> +<p>今晚跑步的时候明显感受到寒风的力度,不过我还是跑得微微出汗。</p> +<p>昨晚(应该说是今早)睡的实在太晚,今天在回来的车上都昏昏欲睡,刚刚跑完步回来后洗了个热水澡,本来困倦的身体又感觉精神了,打开电脑,在日志里罗嗦两句再睡。</p>早啊,各位!https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/Wed, 03 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/<p>没错,我还在办公室里,还在加班,而且意识还很清醒,我还活着。</p> +<p>现在的时间是凌晨的0点10分,再过半个小时,如果一切顺利的话,我就要打车回去睡觉了,差不多还能再睡4个小时呢。</p> +<p>然后,我就要从床上爬起来,洗洗脸,刷刷牙,迎着还没出来的太阳,再次奔上开向公司的地铁。</p> +<p>没办法,既然选择程序员这个连妓女都不如的职业,就要接受没日没夜的加班生活,就像我们经常在程序中&quot;拿空间换时间&quot;那样,现实中,我们在&quot;拿健康换时间&quot;,等到健康剩得不多、徐娘半老之时也就是我们的退休之日吧。</p> +<p>因为到了那个时候,我们将再也加不动班,再也爬不上车,可能连敲键盘的力气都没有了,而且又会有一大批精壮的程序员前赴后继的补充上来,再次走上我们走过的路&hellip;&hellip;</p>还没回家https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/Tue, 02 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/<p>再过十分钟就过了今天跑步的时限了,而现在我仍旧坐在办公室里,喝着温热的开水,盯着跑焦的屏幕。</p>一个月https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/Mon, 01 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/<p>前天有同事问我说,跑步坚持了一段时间了,感觉如何,有什么效果没有,我说不知道,估计以后就不怎么感冒吧。</p> +<p>此话尚未落音,今儿就开始感冒了,打了好几个打喷嚏,嗓子也开始干了。</p> +<p>我从十一月一号开始跑步,一天也没落下,跑步时间基本上都是在晚上8点至9点之间,每次绕小区一圈,跑十几分钟,感觉良好。</p>updatehttps://sbabybird.github.io/p/update/Sun, 30 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/update/<p>让我看看blog标题里能不能出现&quot;关键字&quot;ps:一个累人的周末。</p>一拖四https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/Sat, 29 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/<img src="https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/20081229.jpg" alt="Featured image of post 一拖四" /><p>近日,我的机器速度越来越慢,内存占用常常超过1.5G,尤其是开了office之后,其操作反应之慢令人发指,考虑再三之后,我决定还是不重装系统,先手动优化两下再说。</p> +<p>首当其冲的是卸载多余软件了,我是软件狂人,开始菜单完全展开几乎将屏幕挤满,一口气卸载十几个不常用软件,然后使用ccleaner清理垃圾,清理注册表,清理回收站,清理缓存。</p> +<p>重启。还是觉得不过瘾,进入控制面板,把不常用的服务给停掉,就连桌面主题服务都停掉了。</p> +<p>重启。</p> +<p>还是觉得不过瘾,打开系统任务管理器查看了一下,Firefox最占内存,但是这个千万不能卸载啊,其次是qq占内存,卸载之,然后发现msn也很不老实,卸载之,看着飞信也很不爽,卸载!</p> +<p>这下,整个世界清静了,内存占用只剩下四百M了,速度提高了不少。</p> +<p>可是咱也不能聊天啊,于是想到了Pidgin这个在Linux下很火的软件,下载安装后,发现居然还支持飞信,于是我用它同时连接gtalk、qq、msn、飞信,体验很好,另外还可替代aol、icq、雅虎等多种聊天客户端。</p> +<p>这下好了,以前啊聊天总是要开多个程序,麻烦,现在啊有了Pidgin高钙片,一片顶过去5片,您瞅准了!是Pidgin!</p> +<p>ps:今日跑步指数★★★☆☆</p>差点没出差https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/Thu, 27 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/<p>由于项目的需要,下周需要我出差,本来出去散散心也挺爽的,只是我担心我的跑步计划会搁浅一段时间,因为到了现场就没时间去跑步了,就算不整天调程序也没有跑步的地方,总不能在大马路上伸着舌头撵公交吧。</p> +<p>但是,计划没有变化快,由于北京这边又有优先级更高的活儿,所以,暂时不用出差了,哦也。</p> +<p>ps:今日天气(我估计的),晴间多云,风力2、3级转4、5级,最高温度20度(室内)最低温度0度,跑步指数:3(★★★☆☆)适宜跑步。</p>坚持https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/Wed, 26 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/<p>下班晚也就算了,还刮这么大的风,跑得我那叫一个累啊,回来的时候我一边喘粗气一边想:&quot;啥时候下大雪啊&quot;</p>文档!文档!https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/Tue, 25 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/<img src="https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/20081225.png" alt="Featured image of post 文档!文档!" /><p>快要下班的时候,我的眼神已经分外地扑簌迷离了,审核了一天的文档,看了再写,写了再看,千锤百炼。</p> +<p>瞅了瞅身边的同事,个个被文档折磨得目光呆滞,面如死灰,头发蓬乱,口吐白沫。</p> +<p>说实话,我宁愿写一千行代码也不愿意写一行文档,宁愿写一行文档,也不愿去审一千行文档。</p> +<p>因为,审文档你得咬文嚼字,你得反复推敲,就算是仅仅挑出错别字就已经很费神了。</p> +<p>慢慢地,我感觉到文字在屏幕上开始爬行,一会儿排成人字,一会儿又排成一字。</p> +<p>ps:跑步一直在继续,耶!</p>远去的DVDhttps://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/Mon, 24 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/<p>第一次见识DVD的清晰是在上大学的时候,在我们刚刚落成的多媒体教室,好像还是&quot;邓论&quot;课,老师看大家实在闷的慌,就放了一部《角斗士》来调节气氛,播放器材就是DVD加投影机。</p> +<p>我现在印象最深刻的一个镜头是,男主角走在金黄的麦田里,用手拨弄着麦穗,身边荡起层层麦浪,这个镜头太美了,DVD清晰的画质深深震撼了我。</p> +<p>不久,在我的软磨硬泡下,家里也给我买了一台DVD(顺便买了不错的音响,暂且按下不表),我欢喜的不得了,可惜没有投影机,因为当时动辄十几万一台的投影机对我来说只能奢望,当然,现在也是。然后就是开始疯狂收碟,从《勇敢的心》到《杀手里昂》,从《喜剧之王》到《阿甘正传》,反正当时我认为经典的电影全部收藏,两年下来,在零花钱不是特别充裕的情况下,我&quot;收藏&quot;了将近200张DVD(现在还剩几十张了)</p> +<p>虽然是盗版,但是过来人都知道,在国内,盗版DVD实际上比正版DVD画质都要好(当然要选对牌子咯,这个话题说起来就扯远了)。</p> +<p>当时我逛街最怕两件事,一个是进书店,另一个就是进碟店,因为无论走进哪个,我出来之后钱包准空。</p> +<p>不过和真正收碟的碟友比起来我这几张真的不算啥,我后来认识了一个哥们,光正版碟就收了1000多张(刚工作的工资全花在买碟上了),同样的电影,要买两份,一张平时看,一张摆那儿永远也不舍得打开看。</p> +<p>还是醒醒吧,我现在已经几乎不看DVD了,而且也不再买碟。</p> +<p>一方面是因为随着年龄的增长,工作将我的各种兴趣爱好磨灭了不少,另一方面是因为网络飞速发展,DVD这种存储介质渐渐走向衰败,即使偶尔想看两眼电影,也随时可以在线观看。</p> +<p>虽然现在又推出新格式的蓝光DVD,但是我认为它也基本没戏,就像过气的女明星,无论怎么打扮也难逃被抛弃的命运。</p> +<p>现在再看看那些卖碟的小贩,谈起DVD极不专业,而且以次充好,老拿电影院偷拍的枪版糊弄人,再者就是n合一的压缩碟,这种格式彻底毁掉了我对DVD的兴趣,要画质没画质要音质没音质,除了毁坏光驱,再也找不到别的用处了。</p> +<p>另外也别跟我扯新一代蓝光DVD的容量和清晰度,还是那句话,&quot;我很不看好你哟&quot;,因为我认为,随着网络技术的发展,硬盘、光盘、优盘、这些存储介质都将被淘汰。</p> +<p>什么?你说咱们还有完全自主知识产权的EVD呢?我只能说:&quot;呵呵,大哥,你可真会讲笑话,这是我今天听到的最好笑的笑话了&quot;</p>晚安https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/Sun, 23 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/<p>不错的周末,把太阳能热水器里的水放干净了,热水已切换到燃气系统了,地暖系统也恢复正常了,房间也打扫干净了,看了部老电影,天就黑了,跑完步回来泡个脚,睡了。</p>在傍晚跑步https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/Sat, 22 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/<p>今天要去朋友家吃晚饭,所以我预计晚上的跑步计划会无法执行,干脆提前跑步,在太阳将要下山之前,绕着小区跑了一圈,感觉比在晚上伴着路灯跑要好的多,可惜啊,这种机会也只有周末才有。</p>大周末https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/Fri, 21 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/<p>再次迎来双休日,虽然明天要有半天公事,但是毕竟不是去加班,感觉挺爽。</p>垃圾网上银行https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/Thu, 20 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/<p>今日要去建行转些钱到支付宝,被逼无奈使用了我最讨厌的ie浏览器,输入帐户名、密码、验证码,没问题,选择证书和动态加密口令也没问题,就在最后那一哆嗦,网页弹出一个小空白页面就再也不动了,连续两次都是这样,废掉了我两个动态口令,求救客服半个多钟头也没有搞定问题。</p> +<p>现在,我分析,引起问题的原因:</p> +<p>1、ie不求行</p> +<p>2、有防火墙</p> +<p>3、银行网站很烂</p> +<p>4、人品问题</p> +<p>5、以上原因都有</p>找钱https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/Wed, 19 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/<p>跑完步,口渴,走到小区门口超市买酸奶喝。这是一个袖珍超市,但是麻雀虽小五脏俱全,所以我懒得去大超市了。</p> +<p>这么晚了,超市也快收工了,只有我一个顾客,门口的收银员打着哈欠,我拎了一盒酸奶出来。</p> +<p>&quot;九块钱&quot;收银员说,由于零钱不够了,我只好拿出一张一百的,&quot;请问您有没有一块钱零钱?&quot;她接着问&quot;这样就可以找你九十了&quot;,翻遍口袋,摸出一块钱给她。</p> +<p>这个时候,只见超市的pos机屏幕上写着:收101.00元、应找零92.00元。看来我的大脑也有点儿缺氧</p>感谢妈妈https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/Tue, 18 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/<p>我的胃不太好,为此,我妈颇为担忧,</p> +<p>有天,我妈听说一个单方,可以养胃,即在枕头里装上炒熟的甘草(中药),</p> +<p>每天睡觉枕着就行,该方法不但使用简单而且可操作性强。</p> +<p>于是前两天就在QQ上给我说了,我觉得试试也行,我妈就立刻行动(好习惯),</p> +<p>结果我今天就收到了快递。打开一看,跳出一个制作精美的枕头,散发出甘草的清香,</p> +<p>这可是我妈亲手缝制,对我来说真是无比珍贵。今晚就要枕着它入眠,在梦里露出灿烂的笑容。</p>https://sbabybird.github.io/p/%E9%A3%8E/Mon, 17 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A3%8E/<p>今天跑步最大的感觉就是有风,说是刺骨的寒风有点儿夸张,但是你要是在里面站立半个钟头的话,保证能冻傻。</p> +<p>我发现无论往那个方向跑都是顶风,吹得我快要飘起来,有一阵子甚至感到呼吸困难,意识模糊,后来就加速奔跑,并打破了昨天的记录。</p> +<p>天越来越冷了,我的跑步计划迎来了严峻的考验。</p>跑步在继续https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/Sun, 16 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/<p>不容易,坚持半个月了,加油。</p>测试https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/<p>此篇博客通过电子邮件发送生成,此电子邮件又是通过手机发送。如果都能看见,说明测试成功!</p>掉线https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/<p>昨天网络掉了一夜的线,早晨才恢复,宽带客服的电话都被打爆了,我好不容易挤进去一个电话,被告知他们全部技术人员都在彻夜加班抢修故障,我靠,看来干技术的全是这样儿的命啊!本着惺惺相惜的态度,我也只好随便发两句牢骚就把电话挂了。</p> +<p>ps:昨天跑步速度比平时稍快。</p>喂鱼记https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/<p>公司的旁边有一个公园,公园里有一个人工湖。</p> +<p>该湖曾一度干涸,后来托奥运的福,这个湖做了一次整改,现在,里面不但放满了碧绿的自来水,还撒了一群可供观赏的鱼。</p> +<p>我会在每天午饭后,独自或和同事一起到这里来溜达一圈,一方面是促进消化,还有就是这里的空气真是不错,所以我才会放弃网上冲浪而到这里来晒晒太阳。</p> +<p>每次都会看到那群傻乎乎的鱼争抢人们洒下的鱼食,由于鱼多食少,大家抢得异常激烈,一时间水花翻涌(让晶晶过来都压不住),场面甚为状观。</p> +<p>至于撒食的人,就感觉颇有成就感,我在旁边看着也心里痒痒,总想试试,找找当圣诞老人的感觉。</p> +<p>今天吃饭时故意多要了一个馒头,跟同事说一会儿要喂鱼,同事笑话我说:“你现在嘴里嚼着鱼,居然也假腥腥的要喂鱼”我说“算是补偿吧!”到了地方,发现有人已经先到一步,一群鱼儿在他脚下吃的正欢。</p> +<p>我和同事两个人迫不及待地掏出馒头,拿出吃羊肉泡的功夫(掐啊),就开始往水里洒。</p> +<p>扔了半天,却不见大群的鱼过来,仅有少量老弱病残在这边尝了两口就又游走了,我尴尬地站在湖边,眼看着手里掰下的馒头屑,都打了水飘。仔细一看,还真是我太马乎了,原来先前那人仍的可是上好的面包啊,看来,不仅有崇洋媚外的人,也有崇洋媚外的鱼,这帮混蛋也喜欢吃西餐啊!</p> +<p>PS:第一次用手机打这么多字,手指酸痛ing。</p>不能缩水https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/Thu, 13 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/<p>今天回来时很累,于是就有了改变跑步路线的想法,即,仅从车站跑回家,这样既跑了步,又节约了时间,但这个念头转瞬即逝,立即被否定。</p> +<p>从车站到家的这段路虽然走起来显得不近,但是跟平日跑步的距离比起还是太短,而且这样就视跑步成为一种应付了。</p> +<p>所以为了防止跑步计划到最后不了了之,我今天还是老老实实地跑了一圈。</p>补上https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/Wed, 12 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/<p>昨晚回家晚了,跑步也晚了,然后就睡了,忘了在日志里报告,今早补上。</p> +<p>这两天忒忙了,事情一件件的接踵而来,忙的我有点儿喘气。</p> +<p>有句话说的好,出来混迟早要还的,以前程序的demo做的再好也是假的,现在要动真格的了,撒开手忙活吧!</p>何以解忧,唯有唱歌https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/Wed, 12 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/<p>今天差点儿达到无法执行跑步计划的条件之一(加班到深夜),还好,我及时搞定了问题。</p> +<p>上午也说到了,现在手头事儿特别多,程序的问题也不断涌现,而我又特别不喜欢多任务并行工作(我想没人喜欢吧),并行工作会导致大脑里思考的东西在不断地切换,每个任务都要照顾到,每个任务又很难照顾好。</p> +<p>于是,问题来了,下午快下班的时候我的一段程序罢工了,这段代码在半年前由我亲手调制,当时跑起来一点问题都没有,现在着急用的时候却掉了链子,急得我快要抓狂。</p> +<p>问题还是解决了,怎么解决的呢?</p> +<p>唱歌!下班之后,反正人走的差不多了,也不怕打搅别人,为了缓解压力,我只有使出&quot;杀手锏&quot;,那就是&mdash;-</p> +<p>胡乱唱歌,无论是中国的还是外国的,是民族的还是通俗的,顺嘴拈来,逮着哪句是哪句,什么&quot;千里刀光影,重整代码待后生&quot;、&quot;你说要崩溃我知道很简单&quot;、&quot;小芹我洗衣裳来到河边&quot;等等。</p> +<p>唱着唱着,我就觉得豁然开朗了,柳暗花明了,茅厕顿开了,原来是某行代码被无声地注释掉了(其实早该想到),看来唱歌的效果简直是立竿见影呐。</p> +<p>不光是现在,其实回想起来,唱歌一直是我缓解压力的惯用方式(可以参见这一篇博客),唱歌的地方并不限于在ktv,也不是要老老实实拿捏着唱,要的就是那种随心所欲飘飘然的感觉,大学的时候,每到期末考试我都会整天哼一首类似于&quot;姑娘十八一朵花&quot;的歌儿,这样的话,我不但门门功课都能过,到最后竟然还拿了三好学生!</p>天气不太好https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/Mon, 10 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/<p>今天的天气不是很好,空气质量特别差,用专业术语来说就是&quot;霾&quot;,在做了一番思想斗争之后,我还是决定出去跑步,因为这种天气情况不在我所定义的&quot;不可抗拒之因素&quot;之内。</p> +<p>气喘吁吁地回来,用热水洗了个脚,美,懒得开大机器了,就用小e随便发几个字算了,顺便控诉一下,用小e打字可真是受罪。</p>复制昨天https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/Sun, 09 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/<p>今天和昨天过得一样,略微多了些上班前的焦躁,所以我还是喜欢周六多一些(哪怕那天是加班)。</p> +<p>没空的时候总是想着抽出时间来多学习一些东西,等到周末时却又缺乏了耐心和兴趣,就像牛人说的那样,我所荒废的今日其实就是昨天所期盼的明日啊。</p> +<p>当然了,荒废不荒废也不知是谁说了算。</p> +<p>今天出去跑步的时间略早,发现有人也在跑步,只不过我是顺时针方向,那哥们儿是逆时针方向在跑,我们在西南角碰面,然后又在东北角擦肩,所以我可以断定他和我的速度是差不多的,不过,我回来时,人家可能还在继续跑。</p> +<p>下午的时候,又拿了拿吉他(看来实在是无聊了),摁了两下,摁得左手生疼,发现以前磨出的茧子早下去了,手指光滑无比,连指纹都看不清,我说怎么前两天弄那个指纹识别程序时老调试不成功,看来我可以放心去作案了。</p> +<p>写了半天,发现写的前言不答后语,难道这就是传说中的意识流?</p>超级小女声https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/Sat, 08 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/<p>喜欢听翻唱的歌曲也是个毛病点击小三角开始播放</p>一个普通的周末https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/Sat, 08 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/<p>虽然有时坐在电脑前不知道要写点儿啥,但是,我还是决定每天都在这里写几行字。</p> +<p>一是为了监督我的跑步计划执行情况,防止三天打鱼两天晒网,二是每天记点儿流水帐,将来孙子吵着要我给他讲故事的时候再来翻翻素材。</p> +<p>想起来一个笑话,爷爷在给孙子讲故事:&quot;有一次,在战场上,这边只剩下我一个了,敌人冲上来一个连,我抱着机枪把他们全干掉了。</p> +<p>&quot;孙子说:&quot;可是爷爷,您去年讲的时候说的是冲上来一个排啊?</p> +<p>&quot;&quot;傻孩子,你那时还小,我怕吓着你!&quot;</p> +<p>跑题了,今天是周末,我没有加班,活儿永远都干不完,身体却只有一个,所谓,该出手时就出手,该休息时就休息。</p> +<p>我仍然延续以往的作风,醒的比平时早,起的比平时早,然后开始洗衣服、打扫、做饭、刷碗、看电影&hellip;&hellip;</p> +<p>一天的时间一晃就过了,感觉也就是吃了三顿饭,然后天就黑了。</p> +<p>今天跑步的时候感觉天气比平时要冷,小嗖风风地刮着,我还是坚持跑完一圈,速度还是不能太快,跑到额头微微出汗就行了。</p> +<p>回来查看了一下日历,原来昨天是&quot;立冬&quot;,哦,冬天来了,春天还会远吗?</p>爽事儿两件https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/Fri, 07 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/<p>1、把我的epc升级成ubuntu的操作系统了。</p> +<p>比起它自带的那个阉割版操作系统,界面华丽了,软件丰富了,操作更自由了,爽!</p> +<p>2、家里的宽带在费用不上涨的情况下从1M升级到1.5M了。</p> +<p>虽然感觉也没比以前快了多少,但心里还是美滋滋的,爽!</p> +<p>ps:跑步仍在继续!</p>天涯共此时https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/Thu, 06 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/<p>跑完步回来都九点多了,出差在外的同事一个接一个的打回来电话,原来这帮儿不要命的家伙还在加班。</p> +<p>先是远在宁夏的兄弟告诉我刚做的PPT需要修改,然后是身在河南的项目组打电话咨询版本控制的问题,最后是被发配到青海的哥们儿在电话里用略带嘶哑的嗓音和我一起探讨了一会儿程序路径分支的问题,然后又像是梦游一般地把电话挂掉&hellip;&hellip;</p> +<p>放下电话,我不禁要问(焦点访谈看多了),沟通的方便是帮了我们还是坑了我们?</p> +<p>得亏了信息科技的发达啊,要是远在飞鸽传书的年代,我把代码写好,然后抄到一张小纸条上,绑在鸽子腿上,趁它还没飞抵现场调试的时候,美美地睡上一觉。</p>手机发的https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/Wed, 05 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/<p>今天回来的有点儿晚,并且跑步的距离有所延长,大概比前几次多跑了三百米。电脑都关了,才想起还没有做记录,爬起来,用手机发个报告。</p>假如你看我有点儿累,就请你给我倒碗水https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/Tue, 04 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/<p>今天又跑完步回来了,现在,我真是名副其实的&quot;从容地狂奔&quot;了,每晚都会出去&quot;奔&quot;一圈儿,只有这样才会觉得明天有&quot;奔&quot;头,才能洒脱地&quot;奔&quot;三十了。</p> +<p>我上个周刚过的生日,就是说我上周还二十六(虚岁)呢,现在就二十七了(真的是虚岁)。</p> +<p>最近总想活的更洒脱一些,但总是觉得很为难,因为总感觉自己太在意别人的看法,也就是老是拿别人的标准来衡量自己的生活,到不了那种&quot;忘他&quot;的境界,比如我有同事可以在地铁里一边大声唱歌一边跟我大谈&quot;空间数据的网格索引&quot;,牛逼吧?大学里有个同学,在大街上骑自行车,突然来了兴致,把车一摔,在路边跳了一段&quot;麦考杰克逊&quot;,然后在一片惊叹声中绝尘而去!</p> +<p>洒脱吧?靠,我做不到,就算是在大街上唱歌我都不会。</p> +<p>前两天,看了一篇文章,大致意思是,每个人生来都是一杯白水,随着时间的流逝,为了满足别人对我们的期望,这杯水被掺入了形形色色的杂质而变了味道,有些味道我们觉得好,但是别人觉得怪,或者又相反,最终大家都很不爽,文章最后劝我们别在乎别人怎么看,自己就做那杯最原始的白开水吧。</p> +<p>看到最后,如果作者在我跟前,我想,我会把杂志卷成一卷儿,对着他的头来两下子,你的脑袋是不是被门挤了,还是被驴踢了?</p> +<p>原因不再论述,这种忽悠人的文章以后还是少看为妙。</p> +<p>我只想说,我还是会往我的杯子里,加入各种佐料,哪怕我不喜欢它,只要我的家人喜欢,或者我的家人认为我喜欢。</p> +<p>我继续狂奔,我尽量学着在大街上唱歌,假如你看我有点儿累,就请你给我倒碗水。</p>跑步,有进步https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/Sun, 02 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/<p>昨天跑完后没感觉,睡了一夜,今早感觉腿酸背痛,看来见效果了啊。</p> +<p>今天继续跑步,距离与昨天相同,还是一圈,时间缩短3分钟,速度不是我追求的,跑步本身才重要,看来明天要延长路线了。</p>报告https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/Sat, 01 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/<p>上午制定了跑步的计划,旨在锻炼身体陶冶情操。</p> +<p>说到就要做到,时间刚过8点一刻,我就换上球鞋(本来还想置办一套装备,但是看看动辄上千元的跑鞋只得作罢,还是等过几天跑步略显成效时再买吧)、塞上耳机,大步流星冲下楼去。</p> +<p>HitFM正在播放着动感音乐,伴着音乐的节拍,我迈开轻盈的步伐,前面两个保安晃来晃去,被我轻松越过(靠,又不是打篮球)。</p> +<p>由于是刚开始跑,为了既达到锻炼效果又不丧失信心,我把速度放的很慢,基本上比散布快一些就行。</p> +<p>总算绕着小区跑了一圈,心跳还算正常,喘气有些加速,身上也微微出汗。</p> +<p>OK!我很满意,能否坚持下去虽然是个未知数,但毕竟好的开始已是成功的一小半。</p> +<p>ps:这个跑步计划已经宣扬的全世界都知道了,要是跑两天即放弃,我岂不是无颜见江东父老了,唉,年轻人啊,爱冲动。</p>跑步吧!!!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/Sat, 01 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/<p>午饭后,与远方的二舅聊起家常,说到锻炼身体的重要性。</p> +<p>我说我没时间、坚持不下来,结果被二舅狠狠鄙视了,连二舅那么忙的人都能每天坚持锻炼,我就没啥话说了。</p> +<p>据说他锻炼成果显著,现在腰不酸了背不疼了走路也有劲儿了。</p> +<p>我想起今儿上午,和同事一起搬了台服务器都累的两股战战几欲先走(也怪那服务器忒沉),看来我是得加强锻炼了。</p> +<p>想了半天,最后还是决定采用&quot;跑步&quot;这一经济实惠的锻炼方式,并制定计划:</p> +<p>每晚20点半至21点间散步10分钟跑步20分钟(时间可根据情况提前或推后,但过了22点就取消当日计划)。</p> +<p>除非遇到不可抗拒之因素(如下雪、加班到深夜等),否则一律坚持跑步!即日起,博客恢复更新,以记录跑步计划执行情况。</p>关于十一长假的总结https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/Mon, 06 Oct 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/<p>长假过完了,感觉如下:</p> +<p>1、交通的痛苦,买不到回家的火车票,被黑了一张全价机票。</p> +<p>返京时乘坐大巴,连续坐了16个小时,感觉要比乘坐神七痛苦。</p> +<p>2、妹妹结婚了,打心底祝福她。</p> +<p>小时候那个调皮的小女孩儿怎么转眼变成了端庄的大姑娘了呢。</p> +<p>3、喝多一次,此次回家喝了n顿酒,和老同学在一起喝的那次喝多了。</p> +<p>4、我还是那么瘦,几个老同学都陆续把自己的肚子搞大了,只有我继续瘦的像支铅笔。</p> +<p>5、我仍然是家里的维修工,此次修理好了老家的DVD、抽水马桶、电脑,并弄坏了老婆的手机(后来我又修好了)。</p> +<p>6、美好的时间总是很短暂,每次相聚都是一次分手。</p>月饼https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/Sat, 13 Sep 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/<p>咱们的节日总是与吃有关,比如过年吃饺子,元宵节吃汤圆,端午吃粽子,六月六吃炒面,腊八吃米饭。</p> +<p>中秋当然要吃月饼,而且要吃的相当隆重。</p> +<p>在我的老家,刚入了八月大家就忙活着串亲戚送月饼了。</p> +<p>一个人在外面,当然没人给我送月饼,为了找到一点儿过节的感觉,我只好到超市去一趟,心想,好歹买一两块月饼回来吃,也算是过节。 到了地方却傻眼了,花花绿绿的月饼盒子堆的跟小山似的,个个包装精美,如果不问售货员一句:&quot;这是月饼吗?&quot;我都不敢确定这些东西是什么。</p> +<p>先让我想想小时候的月饼是什么样儿,嗯,圆的(废话),比烧饼厚,油光光的,上面印有花纹图案比如&quot;花好月圆&quot;什么的,随便拿张油纸包着,掰开以后馅里有大块大块的冰糖,还有花花绿绿的丝儿,应该是用橘子皮做的。</p> +<p>对,就是这样,客人来了,主人把月饼拿刀切成菱形的小块就算一道下酒菜,中秋那天晚上一家人也会切上一块,大家一起嘎嘣嘎嘣地吃完。</p> +<p>不过这是十几年前的事儿了,现在的月饼花样儿百出,什么馅儿的都有,造型各异,包装也是越来越豪华,味道却越来越难吃,简直难吃至极,看着这些大盒子我就发怵。</p> +<p>我小声的问售货员:&quot;请问有没有适合自己在家吃的月饼?&quot;</p> +<p>&quot;有啊&quot;她拎起大概有枕头那么大的一盒月饼说&quot;你看这个怎么样,原价四百六现价二百八而且买一盒送一盒,多划算呐!&quot;,</p> +<p>我接过来看了看,诺大的盒子装了六块像扣子似的小月饼,亮亮的泛着油光,虽然个儿不大,但是如果买回去够我吃到过年了,我看了看长长的货架,觉得今天的月饼怕是买不到了。</p> +<p> 不买不行,不吃月饼哪叫过节啊,我拎着购物筐在楼上楼下转了个遍,终于在一个灰暗的角落里发现了散装的月饼,嗯,貌似小时候那种月饼。</p> +<p>将就吧,随便挑了两块扔进筐里,任务算是完成,高兴之余顺便又拎了瓶红酒,就这么地了,晚上就着月饼喝着红酒,举杯邀明月,对影成仨人。</p>我对奥运开幕式的8点感受https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/Sat, 09 Aug 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/<p>1、脚印烟花很令人惊艳    </p> +<p>这真是一个好创意,巨大的脚印从中轴路一路迈向场馆,场面真不是一般的壮观!美中不足的是空中镜头取景再大些就好了。</p> +<p>2、卷轴屏幕很好很强大    </p> +<p>七十多米长的屏幕,应该也是奥运之最了,就是中间那块画布放的有点儿突兀。</p> +<p>3、歌唱祖国很令人激动    </p> +<p>当那个红衣小女孩用清澈如同天籁般的声音唱起歌唱祖国时,整个场馆进入了高潮,我在电视机前也禁不住唱了起来,眼泪都快下来了。</p> +<p>4、主题歌有点儿弱    </p> +<p>主题歌听完之后,印象不深刻,知道是谁唱的,听完就忘了。</p> +<p>5、运动员入场时那些奥运宝贝一直在那儿蹦了两个多小时没换人,佩服!    </p> +<p>导演也太不知道心疼人了,大热天儿的,让这些可爱的奥运宝贝手舞足蹈一直在那儿跳了,换了我,肯定都昏过去了。</p> +<p>6、电视台转播水平发挥正常,镜头切换不敢恭维,画面中经常出现很多钢丝    </p> +<p>不愧是咱们的CCTV啊,发挥出了应有的水平。</p> +<p>7、点火没让人失望,要是点火时画面里看不见钢丝就更好了。</p> +<p>    点火方式很新颖,将吊钢丝技术发挥到了极致,李宁好样儿的!就是在全景的时候,在屏幕前方总是飘着好几根钢丝,让画面失色不少。</p> +<p>8、有朋自远方来不亦乐乎,四海之内皆兄弟也!    击缻时朗诵的《论语》,让人仿佛回到了两千多年前,很好,很中国!</p>工欲善其事,必先利其器?https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/Thu, 31 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/<p>当猿猴第一次有目的的拿起石头将骨头劈开的时候,&quot;它&quot;就不再是&quot;它&quot;了,而成了&quot;他&quot;。</p> +<p>能够使用&quot;工具&quot;是人类与一般动物的最基本的区别,这是教科书告诉我们的事情。</p> +<p>&quot;工欲善其事,必先利其器。&quot;这句话很长时间都被我作为msn签名,也充分说明了工具在我生活中的重要性。</p> +<p>当然这儿说的工具是一个广义上的概念,它可以指硬件也可以指软件。但是,我现在对于工具的使用却有了新的看法。</p> +<p>因为我觉得工具使我的大脑退化了,以前好使的功能现在都不太好用了(比如:记忆力、创造力等)。</p> +<p>写到这儿,我发现我这次的话题起的有点儿大,发些感慨而已,说到哪儿是哪儿吧。 </p> +<p>因为最近(其实早就有感觉)我越来越觉得对某些工具产生了严重依赖,</p> +<p>比如:计算机、手机、Internet。有时候甚至搞不清究竟是在驾驭工具还是在被工具驾驭。</p> +<p>前一段时间我看了一本关于高效率工作的书,按照书中的指点,慢慢养成了将工作事务都提前安排进&quot;日程表&quot;的习惯,感觉效率貌似提高了一些,但是造成的副作用就是,我的记忆力严重下降。</p> +<p>人们常说:&quot;好记性不如烂笔头&quot;,我看则不然,在我没用&quot;烂笔头&quot;的时候,我的记性还是挺好,约会什么的一般不会忘记,现在惨了,当我习惯于把事务用&quot;烂笔头&quot;记下来时,就连&quot;下班后买俩包子&quot;这点儿破事儿如果不写下来就会忘记。</p> +<p>关于电话号码的记忆也是,以前没用手机的时候,我可以记住几十个电话号码,现在连自己的电话号码都得翻手机的电话薄来查找了。</p> +<p> 现在,每天打开电脑第一件事儿就是把浏览器打开,收邮件,安排日程事务,借助google提供的日历功能安排好一天的工作,然后把工作内容同步到手机上,这样整个人都&quot;信息化&quot;了,看似有条不紊的工作,实际上,我已经牢牢地被这些所谓&quot;高科技&quot;拴住了。</p> +<p>什么?万一哪天这些东西消失了?</p> +<p>后果很难想象,想一下就能冒出一身冷汗。</p> +<p>当然也有哥们幻想着有一天能过上&quot;不插电&quot;的生活,我觉得他也只能是想想而已,失去这些把我们宠坏的工具,将会像一只丧家犬那样的失魂落魄。本来打算来一篇长篇大论,发现越说越远,只好虎头蛇尾了。</p> +<p>不能再多说了,因为我的&quot;日程表&quot;提醒我该去吃饭了。</p>怀念win98https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/Mon, 28 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/<p>好友终于无法忍受vista的龟速,将笔记本自带的系统干掉新装了一个windowsxp系统,托我用ghost把系统备份一下,以备不时之需。</p> +<p>自从转到linux阵营之后,我很少用到ghost了,去网上找了个&quot;一键ghost系统&quot;把他的系统做了个备份。</p> +<p>发现现在的ghost软件做的已是十分的人性化了,一路next即可,完全不要用户操心,傻瓜化操作。想起我大学那阵子用的win98系统,那时还没有ghost类的软件,而98又很不稳定,所以我基本上每周都要重装一次系统,同宿舍的哥们,每到周末都能看见我趴在电脑前重装系统(步骤很简单,FormatC:、Setup)。</p> +<p>我想,我的偏执狂性格就是那时候养成的吧,一年下来,25位的windows98序列号我竟然背了下来。</p> +<p>win98给我印象最深的就是&quot;蓝天白云&quot;了,前两天在网上看到有志同道合的网友收藏的win98启动画面,其中就有这张经典的&quot;蓝天白云&quot;。</p> +<p>后来,我误入歧途,对win98的操作技巧十分着迷,就连win98的启动画面也给改的面目全非(比如在启动时写上女朋友的名字),现在,这些曾经让我乐此不疲的&quot;秘籍&quot;已经变得一文不值。</p> +<p>提到win98就不能不提它那经典的&quot;蓝屏&quot;,当程序死机或者非法操作时,它总是跳出来,搞得我的心扑腾扑腾乱跳。</p> +<p>加上那时我的英文水平实在有限,屏幕上的大串英文字母对我来说与乱码无异,蓝屏的次数多了,也就预示着我又要重装系统了。</p> +<p>win98下打游戏很爽,我打电脑游戏的时代也基本上就是大学那几年,星际争霸、红警、剑侠情缘、大菠萝2、极品飞猪(车)5,这些游戏在我的赛扬600下跑的也很顺畅,目前的硬件配置拿到我的大学时代能把人美死(不美死也吓死),可是我已经基本没心思再打游戏了。</p> +<p>大学快毕业的时候,windowsxp横空出世,我终于忍不住诱惑,装了一个英文版(那时还没出中文破解版),谁知,xp竟不由分说(也许是说了,我没看懂)把我的C盘给格式化成了NTFS格式,当我新鲜劲儿一过,想要再重装win98时,由于在DOS下无法识别NTFS磁盘,导致我误把D盘给格式化了,几年的积累化为乌有,气得我在床上跳来跳去,疯了一样。</p> +<p>现在,虽然硬件飞速的发展,内存都快有那时的硬盘大了,可是随着操作系统越来越臃肿,感觉计算机的速度却没有多大提升,仍然要启动老半天,打开一个word文档还是磨磨叽叽的。</p> +<p>有时候不禁要想,拼命的升级硬件、换代计算机,究竟有什么意义?</p> +<p>算了,不说了,洗洗睡吧,与其说是有点儿怀念win98,倒不如说是想念那一段&quot;纯洁的&quot;求学的时光,这个话题一旦摊开来说就唠远了,还是就此打住吧。</p> +<p>ps:我发现写博客固然很爽,但是往往勾起人的回忆,而回忆呢,又往往是美好滴,一美好就难免会想抽根烟,看来我也要&quot;珍惜生命,远离博客&quot;了。</p>珍爱生命,远离手机https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/Fri, 25 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/<p>对于使用手机,我有一个不良习惯,喜欢在睡觉的时候把手机放在枕头旁边,而且是24小时不关机,只有这样我才睡的踏实。</p> +<p>之所以这样儿,是因为我是把手机作为闹钟来用的,放的近一些首先可以保证它在关键时候叫醒我,其次是,这样我就可以迅速把闹铃关掉,然后再睡一会儿。</p> +<p>今天看了一条新闻,让我十分不安,有专家跳出来说“应该让手机远离头部”因为,“手机发出的电磁辐射可以致癌”。</p> +<p>哦卖糕的!以后睡觉的时候干脆把手机放在脚边算了,每当早上它吵醒我美梦的时候,我可以飞起一脚把它踢到地上。</p>原来这句话是这个意思啊https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/Wed, 23 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/<p>《论语》有云&quot;唯女子与小人为难养也&quot;,这句话的意思伤了一大批人,现在有人跳出来给出了新解释:&quot;女&quot;通&quot;汝&quot;,&quot;女子&quot;即&quot;汝子&quot;,即&quot;你的孩子&quot;;&quot;养&quot;指&quot;教养、教育&quot;,全句是说&quot;你的孩子有类似小人习气就不好教育了&quot;。</p> +<p>&quot;这是个教育问题,小孩会因为溺爱而放纵自己,对大人的管理充满埋怨,不就像小人?&quot;</p> +<p>我联想到另外一些新解:</p> +<p>关于孔子的收费标准三十而立:交三十升米者,可以在后面站立听课。</p> +<p>   四十不惑:交四十升米者,允许提问,直至没有疑问为止。</p> +<p>   五十知天命:交五十升米者,可以知道明日考试之命题。</p> +<p>   六十耳顺:交六十升米者,先生会说些你喜欢听的话,让你耳顺。</p> +<p>   七十从心所欲:交七十升米者,听课要躺要坐,想来不来,一切随便。  </p>别想不开啊https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/Tue, 22 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/<p>郁闷或高兴的时候我总是想抽根烟,比如,当我的代码总是调试失败或者刚修改完一个Bug的时候。</p> +<p>办公室里不允许抽烟,否则我们屋肯定和火车的车厢连接处一样,整天烟雾缭绕,这样就剥夺了一小撮人不抽烟的权利。</p> +<p>所以,抽烟的兄弟只能到厕所旁边的那个阳台吞云吐雾了。</p> +<p>这样也好,一边抽着&quot;混合味儿&quot;的香烟,一边欣赏窗外的风景,既满足了肺对于尼古丁的需求,又能放松一下疲倦的眼睛。</p> +<p>楼层不低,所以看得也挺远的,如果眼神儿和天气都足够好的话,甚至可以看见鸟巢里工人师傅的焊枪发出的耀眼蓝光。</p> +<p>下班的时候,我又去抽了一根烟,一个人。</p> +<p>远处的大楼在烟雾中显得虚无缥缈。</p> +<p>我手扶着窗户,探出头去,想看得清晰一些。</p> +<p>这时,一个哥们从厕所走出来,一边提着拉链一边语重心长地说:&quot;别想不开啊!&quot;</p> +<p>我靠!我有啥想不开的?</p> +<p>工作虽然累点儿,但是,祖国还需要我,人民还需要我,老婆做好的饭菜还在桌子上等着我,孩子还等着我回去辅导功课&hellip;&hellip; </p> +<p>算了,回去了,明天又是崭新的一天,但愿今天不堵车。</p>一块钱一斤https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/Mon, 21 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/<p>现在电脑基本上已经普及了,我老家的一个师范同学,去年买了电脑之后,非常迷恋电脑的知识,经常通过qq来问我各种问题,我也是基本上都耐心回复。</p> +<p>后来这厮竟然越来越来劲,已经不满足于普通的日常使用了,有一天就问我编程序到底好玩不好玩儿?我有心把它带进沟里,就告诉他编程序十分有意思,写完程序后很有成就感和快感。</p> +<p>这家伙终于着迷了,发誓要学会写程序,我就把老谭的那本《C程序设计》推荐给他看。</p> +<p>他看了之后一头雾水,说是像看天书一般,遂跟我唠叨十分后悔没念大学。</p> +<p>后来我被他缠的没办法,就告诉他应该先把基础打好,他说也对,不妨就把大学里的计算机课程给全过一遍。</p> +<p>我靠,佩服!让我肃然起敬。</p> +<p>不过,我大学里的书基本上都找不到了,就把课程的书目大体上给他说一遍,让他自己淘弄去,实在不行就去书店买,然后就有一阵子没有联系。</p> +<p>今天突然上线告诉我所有的书都买到手了,大概有十几本,我更佩服他的精神了,作为一个业余爱好者也太舍得了。</p> +<p>我问他:&quot;你哪儿买的书啊?现在书那么贵,花了不少钱吧?&quot;这家伙半天没吱声,过了一阵儿给我来了一句:&quot;没多少钱,比你上学时买的便宜多了,我让亲戚在大学旁边的废品收购站买的,你说的那些书全都有,九成新的!一块钱一斤!&quot;</p>颐和园https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/Mon, 21 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/<p>这几天,老爸老妈过来了,我也没有太多时间陪他们。</p> +<p>周末了,一起去了趟颐和园。</p> +<p>天太热,人太多,出去玩儿实在是太受罪了。</p> +<p>吃晚饭时与我爸一起整了几盅,正想多喝几杯时,老头按住酒瓶说:“编程序我不行,喝酒你不行。”</p> +<p>想去电脑上玩会儿游戏,我妈指着电脑屏幕上一路飙升的qq斗地主分数对我说:“编程序我不行,打牌你不行。”</p>家人来到https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/Tue, 15 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/<p>接风,洗尘、喝酒</p>偏执狂https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/Mon, 14 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/<p>看到了一篇关于电脑偏执狂的帖子,发现里面列举的内容大部分都像是在说我。</p> +<p>比如:Windows桌面只放三个图标:&quot;我的电脑&quot;、&quot;回收站&quot;、&quot;浏览器&quot;回收站永远保持&quot;清空&quot;状态,删除文件都是用Shift+Delete,根本不用进回收站所有软件都使用最新版,打上最新的补丁每隔一段时间就清理一次注册表如果有个软件用的不是最新版本就会浑身不自在</p> +<p>补充:看到别人的电脑不是处于最佳状态也会浑身不自在,想冲过去调理一番如果同样功能的软件有商业版和免费版的话,就打心眼儿里觉得免费版的那个更可爱经常整理磁盘碎片经常整理删除磁盘上的文件,有时候上午刚删完一个文件,到下午就发现那个文件还有用任务栏上同时打开窗口超过四个就觉得难受,如果把程序隐藏在系统栏就感觉好多了新建文件夹时不喜欢用&quot;新建文件夹&quot;来命名</p>自制果汁https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/Sun, 13 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/<p>大早上一起来,打开电视(就是我那个用Python写的小程序),凤凰卫视里的沈星正在介绍&quot;美女私房菜&quot;,正在纳闷原来美女还会做菜,结果令我十分失望,只见她拿了个番茄,随便切几下,往搅拌机里一扔,嗡嗡两下,搅成糊状,美其名曰&quot;营养瘦身果汁&quot;。</p> +<p>咳,正愁着早饭不知吃啥,干脆试一下吧。</p> +<p>从冰箱里拿出番茄,又刷了刷我那半年多没用过的搅拌机(当时为啥要买它?),搅拌之前又撒了些白糖,喝了果然神清气爽,看来,这个搅拌机还挺有用,这样吃番茄(应该是喝)比起放在嘴里生嚼别有一番滋味。</p> +<p>到了傍晚的时候,闷的慌,出去溜达的时候又想起自制果汁的事儿来,干脆这次来做一个真正的果汁。</p> +<p>买来西瓜一只、蜜桃若干、猕猴桃若干、青苹果、黄瓜,本来我还想加点儿芹菜,但是买不到了。</p> +<p>回到家,将这些水果切成丁、片,一股脑儿放入搅拌机,嗡嗡搅了一分来钟,足足做了一大杯,让我想想,西瓜消暑、猕猴桃富含维生素、青苹果酸中带甜,这杯什锦果汁应该是比早上那个强多了吧。</p> +<p>迫不及待喝了一口,靠,说不出的滋味,各种味道窜来窜去,就像是吃烂桃的时候再就着两口酸苹果,没办法,反正有营养,那就喝吧。</p> +<p>喝到大半杯的时候我才想起来,我刚才要是把西瓜的皮儿去掉就好了。</p>每个周六的晚上是我乐兴大发的时候https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/Sat, 12 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/<p>我的吉他弦断了,刚断的,就在我弹那曲《两只老虎》的时候。</p> +<p>没办法,为了能压住隔壁装修的声音,我在弹的时候多使了点劲儿。</p> +<p>幸好我未雨绸缪,买吉他的时候就多买了几根琴弦,今天终于用上了,不过,还是费了老半天劲儿才把弦儿装好。</p> +<p>这让我想起一个传说,爱好古琴人都知道这个神秘传说。古代有两人,一个叫俞伯牙,一个叫钟子期。有一天,俞伯牙琴兴大发,在他家空旷的后院里(也可能是在河边,记不清了),摆好琴,焚香沐浴后,惬意地抚上一曲。一时间,悠扬的曲子飘满了整个院子,向远方扩散。</p> +<p>俞伯牙正沉浸在曼妙的琴声里,突然,&ldquo;啪&quot;地一声脆响,琴弦断了。他向远处一望,原来是钟子期这家伙打完柴在这儿偷听他弹琴。钟子期不但听懂了他的曲子,而且对他这把琴的来历也说得头头是道,后来俩人成了好哥们儿。</p> +<p>就此打住,问题的重点并不是这俩人后来成了好哥们儿,关键是这个故事说明了一个问题:当有人偷听你弹琴的时候,你的琴弦就会断掉。反过来说,如果哪天你的琴弦断了,那么,在某一个角落里,有一个粉丝正在偷听你的琴声。</p> +<p>话说有一个人叫张三,酷爱抚琴,苦于没有知音。一日,在抚琴时琴弦终于崩断,此人对刚才的传说深信不疑,急忙起身,想要寻找那位来偷听的&quot;粉丝&rdquo;,果然,在角落里找到了他。张三欣喜不已,激动地握着&quot;粉丝&quot;的手说:&ldquo;同志!我可找到你了!&ldquo;却又发现这位粉丝已经陶醉于音乐之中,正在轻轻地啜泣。</p> +<p>张三感慨万千:&ldquo;终于有人懂我的琴艺了!&ldquo;忙将此人请入家中,沏茶倒水,欲询问此人对他刚才所奏之曲的感受。此人好不容易才止住哽咽,断断续续说道:&ldquo;本来我在睡午觉,忽听得先生的琴声,就顺着声音走到这里来了。&rdquo;</p> +<p>&ldquo;那又为何哭泣呢,我刚才所奏之曲虽有哀怨之意,听了却也不必如此悲痛吧?&rdquo; 张三不解地问道。说道此处,此人痛苦地干嚎两声,说道:&ldquo;之所以伤心,是因为我心里难受,先生的曲子让我想起我死去的舅舅,先生的曲子与我舅舅的曲子有一样的声音。&rdquo; 张三更加欣喜:&ldquo;敢问你舅舅是哪位大音乐家啊?&quot;,&ldquo;音乐家倒谈不上。&quot;,&ldquo;哦,那他是干什么的?&quot;,&ldquo;他是,弹棉花的&hellip;&quot;,&rdquo;#@$%^#$%^#$%^&rdquo;</p>你知道父母的生日吗?https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/Fri, 11 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/<p>单位要员工填写一张个人信息表,其中有一项内容是父母的出生年月(填的还真够细),很多人都填不上来。</p> +<p>我还好,前一段时间刚好在msn上和妹妹一起聊到了父母的年龄,赶紧翻看msn记录,终于找到了妹妹通过msn告诉我的出生日期(看来养儿子真不如养女儿)。</p> +<p>突然想起一个电视节目,在大街上现场采访,随便拉个人去问他父母的生日,结果大部分都张口结舌,答不上来。</p> +<p>自己的生日记得很清楚,老婆的生日记得很清楚,儿子的生日记得很清楚,有些人甚至领导的小舅子的孩儿他妈隔壁邻居的生日都记得很清楚,可是却把父母的生日抛在脑后,惭愧啊。</p>开幕式那天,使用哪种点火方式?https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/Thu, 10 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/<p>据说已有了定论,但还是个秘密,老张还在卖关子。</p> +<p>我有同事猜测,应该是派一只大熊猫举着火把去点燃,还有哥们儿说还不如让猪坚强去点燃。</p>eeepc 使用技巧(4) 看电视https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/Wed, 09 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/<p>用小e在床头看电视在合适不过了,不过我没找到Linux下的网络电视软件。</p> +<p>找来找去,发现一些可以用mplayer播放的mms链接,试了一下效果还不错,几个著名的电视台都有对应的链接,比如:</p> +<p>凤凰卫视中文台mms://58.22.96.10/litv01;</p> +<p>凤凰卫视资讯台mms://58.22.96.10/litv03;</p> +<p>但是我的mplayer是基于命令行的,每次要看电视的时候还需把这些链接输入进去,感觉很不方便。</p> +<p>刚好这两天对Python这个脚本语言比较感兴趣,于是想用Python写一个脚本来帮我输入这些链接。</p> +<p>由于对Python还不熟,所以写的界面很丑,不过也够我用了。</p> +<p>具体思路是,将这些链接首先存入一个文本文件里保存为channel.data,</p> +<p>内容如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">凤凰卫视中文台|mms&amp;#58;//58.22.96.10/litv01; +</span></span><span class="line"><span class="cl">凤凰卫视资讯台|mms&amp;#58;//58.22.96.10/litv03; +</span></span><span class="line"><span class="cl">东风卫视|mms&amp;#58;//58.22.96.10/litv07; +</span></span><span class="line"><span class="cl">精品影院|mms&amp;#58;//218.1.70.72&amp;#58; +</span></span><span class="line"><span class="cl">1755/JingPinYingYuan; +</span></span><span class="line"><span class="cl">东方卫视|mms&amp;#58;//live.smgbb.cn/dfws; +</span></span><span class="line"><span class="cl">星空卫视|mms&amp;#58;//58.22.96.10/litv06; +</span></span><span class="line"><span class="cl">TVB8|mms&amp;#58;//58.22.96.10/litv05; +</span></span></code></pre></td></tr></table> +</div> +</div><p>然后写一个python脚本读取这些链接并将电视台的名称填入界面中的一个列表框里,到时候通过点击名称就可以播放了。</p> +<p>python脚本内容如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span><span class="lnt">46 +</span><span class="lnt">47 +</span><span class="lnt">48 +</span><span class="lnt">49 +</span><span class="lnt">50 +</span><span class="lnt">51 +</span><span class="lnt">52 +</span><span class="lnt">53 +</span><span class="lnt">54 +</span><span class="lnt">55 +</span><span class="lnt">56 +</span><span class="lnt">57 +</span><span class="lnt">58 +</span><span class="lnt">59 +</span><span class="lnt">60 +</span><span class="lnt">61 +</span><span class="lnt">62 +</span><span class="lnt">63 +</span><span class="lnt">64 +</span><span class="lnt">65 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: UTF-8 -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span> <span class="o">*</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">string</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">class</span> <span class="nc">Application</span><span class="p">(</span><span class="n">Frame</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">clist</span> <span class="o">=</span> <span class="nb">list</span><span class="p">({})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">play_channel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">channel_url</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">strcmd</span> <span class="o">=</span> <span class="s1">&#39;mplayer &#39;</span> <span class="o">+</span> <span class="n">channel_url</span> <span class="o">+</span> <span class="s1">&#39; -cache 1024&#39;</span> +</span></span><span class="line"><span class="cl"> <span class="n">str_output</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">popen</span><span class="p">(</span><span class="n">strcmd</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="n">a</span> <span class="o">=</span> <span class="n">str_output</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&#34;</span><span class="se">\\</span><span class="s2">&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">bin_a</span> <span class="ow">in</span> <span class="n">a</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">bin_a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">channel_url</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">play_tv</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">curselection</span><span class="p">()[</span><span class="mi">0</span><span class="p">])])</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_channel</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">curselection</span><span class="p">()[</span><span class="mi">0</span><span class="p">])])</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">init_channel_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listbox</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;tvchannel.dat&#39;</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_info</span> <span class="o">=</span> <span class="n">channel_file</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">channel_info</span><span class="p">)):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_list</span> <span class="o">=</span> <span class="n">channel_info</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;;&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">channel_list</span><span class="p">)):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel</span> <span class="o">=</span> <span class="n">channel_list</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_name</span> <span class="o">=</span> <span class="n">channel</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_url</span> <span class="o">=</span> <span class="n">channel</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> <span class="n">listbox</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">END</span><span class="p">,</span> <span class="n">channel_name</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">channel_url</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">create_widgets</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;text&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&#34;Quit&#34;</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;command&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">quit</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;width&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">30</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;height&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="o">.</span><span class="n">pack</span><span class="p">({</span><span class="s2">&#34;side&#34;</span><span class="p">:</span> <span class="s2">&#34;left&#34;</span><span class="p">})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;text&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&#34;Play TV&#34;</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;command&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;width&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">30</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;height&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="o">.</span><span class="n">pack</span><span class="p">({</span><span class="s2">&#34;side&#34;</span><span class="p">:</span> <span class="s2">&#34;left&#34;</span><span class="p">})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span> <span class="o">=</span> <span class="n">Listbox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">init_channel_list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">selection_set</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">master</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">Frame</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">master</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">create_widgets</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">app</span> <span class="o">=</span> <span class="n">Application</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"><span class="n">app</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>保存为playtv.py,和刚才那个channel.dat放在一个目录,运行即可(python./playtv.py)。</p>假如工作总结这样写https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/Tue, 08 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/<p>半年很快过去了,领导又安排写工作总结。</p> +<p>写完之后感觉意犹未尽,不如把这半年的生活也总结一下,为了增加总结的趣味性,再此,我特意虚拟了一个记者出来。</p> +<p>记:2008已过去大半年,能不能谈一下你这半年都是在忙些什么呢?</p> +<p>我:可以,上班忙工作,下班忙生活。</p> +<p>记:哦,能不能说一下具体都是忙些什么工作呢?</p> +<p>我:工作上的事情我是不会在博客里说的,我刚写了一份上半年工作总结,一会儿可以给你看一下。</p> +<p>记:好的,那谈一下生活吧。</p> +<p>我:好的,因为我经常加班,所以其实我的生活也基本上就是工作,你还是看工作总结吧。</p> +<p>记:靠!你到底要不要接受采访,玩儿我呐?</p> +<p>我:你还真不懂幽默,咱们国家就是你这样儿的记者太多了。</p> +<p>好吧,给你说一下最近的情况。</p> +<p>记:请问,这半年你的周末都是怎样度过的?</p> +<p>我:大部分周末是在加班,另外由于我是一个很低调的人,所以剩下的时间都宅在家里。</p> +<p>记:宅?这个我知道,据说是一种生活方式,就是呆在家里不出门是吧?周杰伦还有一首歌叫《阳光宅男》呢!</p> +<p>我:你真聪明。</p> +<p>记:在家里干嘛呢?</p> +<p>我:无聊的时候我会谈谈琴看看书,如果有时间我会每周看一部电影。</p> +<p>记:你刚才不是说呆在家里不出去吗?怎么还去影院看电影?</p> +<p>我:刚夸完你的智商你就开始喘啦?谁说上电影院了,现在影院的票价那么贵,而且放的又是剪切版的,网络那么发达,片源很丰富,所以,我是在家看的。</p> +<p>记:说到&quot;剪切版&quot;请谈一下你对《色戒》这部影片的看法。</p> +<p>我:哦,这个我在网上看的也是剪切板的,不过看的是被剪掉的那部分,由于看的也不完整,所以也不便于发表看法。</p> +<p>而且,我比较怀旧,平时看的大部分都是多年前的老片。不过最近的《功夫熊猫》也挺不错。在看的过程中发现精品后我一般会在博客里记录下来。</p> +<p>记:你刚才说到无聊时会看书,都是看些什么书?</p> +<p>我:我还是比较怀旧,想把以前上学时没看过的小说给补一补,金庸和古龙的小说看了好几遍了,最近又复习了一遍《射雕》。</p> +<p>另外这半年还看了《我这一辈子》、《月牙儿》、《白豆》、《许三观卖血记》等中篇小说,上学时,家长不让我看这些小说,现在得补回来。</p> +<p>记:(撇撇嘴)我还以为是《鬼吹灯》、《诛仙》呢。</p> +<p>我:哦,这些我也想看,不过我胆儿小,一个人不敢看,怕失眠,我失眠挺严重的。</p> +<p>记:你刚才说无聊时还要弹琴,是弹钢琴还是吉他?</p> +<p>我:钢琴太贵,买不起,我弹电子琴、吉他、电脑键盘、吹口琴等。</p> +<p>记:(吁!)您的爱好还真够广泛的。看来这半年您过得还真是挺充实惬意的。</p> +<p>我:惬意个P呀,老婆不在身边,没人聊天,没人做饭,我孤独得都快抑郁了。不过她很快就要来了。</p> +<p>记:祝贺你啊。聊了半天,你能不能总结一下你这半年的心得和收获?</p> +<p>我:可以,这半年,我看了不少电影,新喜欢上几首好歌,又恢复了打篮球,身体状态也在恢复。</p> +<p>另外我迷恋上了Linux操作系统。至于收获嘛,真是说不好,有些事儿不能说。</p> +<p>记:好的,感谢你抽出时间接受采访,谢谢,再见。</p> +<p>我:再见。</p>不要忘记https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/Mon, 07 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/<p>7.7</p> +<p>71年前的今天,中国开始了长达八年的抗日战争。无需多言。</p>有音乐就有春天https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/Sun, 06 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/<p>有音乐就有春天,当我写下这句话,撇了撇嘴,我想,我还挺能装啊。</p> +<p>不过,这么说是因为刚刚看了一部电影&ndash;《放牛班的春天》,法国人拍的,很细腻,有一点小幽默。</p> +<p>故事讲的是一个迷恋音乐的教师与一群工读生的故事,工读学校管理混乱,体罚学生,学生自暴自弃到处做恶作剧。直到克莱门特来了,这个秃头的中年男人,看上去还有些磨叽。</p> +<p>然而,这些孩子马上就发现了新老师的与众不同,因为他唯一的皮包里装的仅仅是几张乐谱,而且他把这些视为生命。</p> +<p>克莱门特渐渐发现这些孩子原来也热爱音乐,这使他重新燃起创作激情,他把这些孩子根据特点编成了一个合唱团。</p> +<p>通过教授音乐,他不仅感觉这些孩子原来唱歌不错,而且组建合唱团也使他们变得不那么调皮了,音乐拉近了他们的距离。</p> +<p>然而,事情不会那么顺利,皮埃尔这孩子就很难对付,他声线极美却极难驯服,克莱门特不断挖掘他的优点,还说服他的母亲让他去读专业的音乐学校。</p> +<p>期间还有一段小插曲,那就是克莱门特与皮埃尔的单身母亲还产生了一点儿小感情,不过克莱门特很含蓄,一直埋在心里,影片在这一段处理的很不错。</p> +<p>影片的配乐很精彩,最让人陶醉的就是这些孩子天使般的歌声了,沉静又富有感情,天籁、天籁就是打这儿来的吧。</p> +<p>最后当克莱门特因得罪校长而被辞退的时候,这些孩子被命令不准送他,他孤独走向大门,此时优美的合唱响起,天空中飘满了孩子们折的纸飞机,上面写着祝福的话,孩子们用这种特殊的方式与他告别。</p> +<p>他用音乐给孩子们带来了春天,留下了春天,却又孤独地离去。</p>哈哈太棒了https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/Sat, 05 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/<p>晚饭毕,弹了一会儿电子琴,感觉很投入。</p> +<p>就是那种摇头晃脑的投入,脚也随着音乐的节奏踏着地板,忽闻岸上踏歌声就是这个踏吧。</p> +<p>感觉我的琴技提升了啊,左手和弦右手旋律,配合得天衣无缝,第一次有演奏的感觉,弄得动静比较大,不知道会不会吵到别人。</p> +<p>看来我天生会弹琴,曲谱都在心中,美妙的音符随着手指流淌出来,至少我是这么以为的。</p> +<p>有没有听到那个声音</p> +<p>就像是我忽远忽近</p> +<p>告诉你他来自我的心</p> +<p>带来一首苍老的歌</p> +<p>对着你轻轻的说</p> +<p>我不在乎春夏秋冬花开花落</p> +<p>任凭这夜越来越深</p> +<p>你在我心中越来越沉</p> +<p>压的我不能翻身作自己的主人</p> +<p>任凭这灯越来越昏</p> +<p>你在我眼中越来越真看得清你满脸的风尘</p> +<p>任凭这天空越来越湛蓝</p> +<p>你在我身边越来越平凡</p> +<p>可是有些说过的话一直没能改变</p> +<p>任凭这旅程越来越孤单</p> +<p>你在我面前越来越茫然</p> +<p>丢不下的行李</p> +<p>是我不变的心</p>留意了一下我的blog评论https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/Sat, 05 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/<p>无意间看到我写的几篇日志竟有人评论,想不到这个我发发牢骚的地方竟还有人访问哈。</p> +<p>而且,看起来,我写的颇为不错(嘻嘻)。</p> +<p>ps:感谢SEA同学的捧场。</p>我淋了一场大暴雨!https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/Fri, 04 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/<p>就在下班的时候,天还没有要下雨的样子。</p> +<p>我悠然地吃完了晚饭,然后慢吞吞地走向车站,准备回家。此时天上却落起了雨滴,不大,我想肯定又要堵车了,就买了本《读者》准备在车上看。车行驶到路上的时候,雨真的大起来了,雨点密密地砸在车顶和车窗上,彭彭作响,车窗外的景象被雨水冲得模糊不清。</p> +<p>雨越来越大,公交车就像一只潜水艇,四周都被水包围了。</p> +<p>到站而没有带伞的乘客,咬咬牙狠狠心跳下车去,很快就消失在茫茫雨雾中。</p> +<p>终于,我也要下车了,我带了伞,但我还是太低估了这场雨,我甚至想象在雨中点根烟,那该是多么惬意啊。</p> +<p>然而,我这把伞应付毛毛细雨还凑合,外面下着倾盆大雨,又刮着狂风,闪电在头上不停地把天撕开一个又一个裂口,这把伞仅能护住我的头,被风吹得翻过来复过去。</p> +<p>也许是我&quot;点根烟&quot;的想法激怒了老天,风雨越来越猛,马路变成了一条河,泛起一阵阵波浪,我不由自主地奔跑起来,拼命抱紧了我的电脑包,那里面装着我心爱的笔记本电脑。</p> +<p>几分钟的路程,把我淋得狼狈不堪,衣服湿透了,鞋子里灌满了水,终于,我跌跌撞撞地跑到了家门口。</p> +<p>我想这是我有生以来淋得最大最惨的一场雨了。</p> +<p>现在,我洗完了热水澡,沏了一杯热茶,窗外,雨已经停了。</p>怎样使用VC6的远程调试https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/Thu, 03 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/<p>今天遇到一个问题,我们的程序在本地执行一切正常,但在售后的一台笔记本电脑中却无法启动且爆出runtimeerror。</p> +<p>无奈只有通过调试来查找问题所在,由于该笔记本并未安装开发环境,于是想到了VC6的远程调试。上网翻看资料,写的都不太详细,摸索半天终于成功,并通过远程调试搞定了程序的问题。</p> +<p>现将远程调试的详细操作记录下来以备忘。</p> +<p>1、需机器两台:一台为调试机(装有VC6开发环境),一台为客户机(运行程序)</p> +<p>2、假定客户机的ip地址为192.168.0.168</p> +<p>3、假定需要运行调试的程序放在客户机的C\emote_bin\emote_test.exe</p> +<p>4、共享客户机C:\emote_bin文件夹,并开放所有权限(读、写),共享名为remote_bin;</p> +<p>5、在调试机上映射客户机remote_bin共享目录为&quot;Z&quot;盘(可在cmd中执行&quot;netusez:\\192.168.0.168\emote_bin&quot;) </p> +<p>6、拷贝调试机上VC6安装目录下的Bin目录中的全部内容到客户机任意位置(该目录在调试机的路径一般为&quot;C:\ProgramFiles\MicrosoftVisualStudio\COMMON\MSDev98\Bin&quot;),在此假定拷贝在客户机的&quot;C:\Debugger&quot; </p> +<p>7、在客户机运行&quot;C:\Debugger\MSVCMON.exe&quot;,启动后再对话框上直接点击&quot;Connect&quot;按钮(不用点&quot;Setting&quot;按钮),期间如有防火墙告警提示,需允许该程序。 </p> +<p>8、回到调试机,打开VC6并打开要调试的工程文件(再此为remote_test),在VC6的&quot;Build&quot;菜单下点击&quot;DebuggerRemoteConnection&quot;,在弹出的对话框左侧选择&quot;NetWork(TCP/IP)&quot;,点击右侧&quot;Setting&quot;按钮,填入客户机ip地址(192.168.0.168)点击&quot;ok&quot; </p> +<p>9、点击VC6的&quot;Project&quot;菜单下&quot;Setting&quot;,切换到Link页面,在Outputfile中填入&quot;Z:\emote_test.exe&quot;,切换到Debug页,在Executablefordebugsession中填入&quot;Z:\emote_test.exe&quot;,在Remoteexecutablepathandfilename中填入&quot;C:\emote_bin\emote_test.exe&quot;(注意:此行甚为重要,需填写程序在客户机的完整路径) </p> +<p>10、大功告成,按F7编译可执行文件,按F5开始远程调试吧!</p>求雨妙招https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/Wed, 02 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/<p>入夏以来,大家打篮球的热情空前地高涨,频率已经从原来的每周一场提升到每周两场,较上年同期提升了100个百分点(我晕,还是别用新闻联播的语气了)。</p> +<p>不仅如此,每次打球的时间也有所延长,基本上都是从下班打到天黑,中间不休息、不换人,三个小时下来,基本上都口吐白沫,胳膊抽筋,两股战战几欲先走。</p> +<p>然而天公总是不作美,近日一连串的雨天,严重打乱了我们的打球计划。</p> +<p>基本上每次打球都要下雨,而且时间也选在下班前后。</p> +<p>每当约定好打球日期,第二天带齐了球衣和球鞋,下班后刚给篮球打满气,还没来及拿起来在手指上转一下,只见天空一道闪电,紧跟着大雨倾盆而下,大家只得各自回家收衣服。</p> +<p>同事们都感叹又发现一求雨的新招数,无论哪个地方干旱少雨,只需我们带齐装备过去打球,过不多时必有甘霖降落。</p> +<p>今天,大家没带球衣,也没带球鞋,篮球也没打气,天,晴了!</p>断网一天的感受https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/Tue, 01 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/<p>公司的光纤今日出了故障,整整一天无法上线,感受如下:</p> +<p>1、无法与出差现场的同事交流,同事亦无法访问公司网络,导致工作受阻。</p> +<p>2、IM软件不能上线,家人朋友都很担心,老妈更是打来电话,问我为什么qq不在线。</p> +<p>3、不能收发电邮,心情焦躁不安。</p> +<p>4、无法获取最新资讯,感觉与世隔绝了。</p> +<p>5、GoogleReader积累了200+的未读条目,原来我订阅了这么多信息。</p> +<p>6、终于修好了,爽!</p>终于见识了Vistahttps://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/Mon, 30 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/<p>昨天,一朋友新买了台笔记本,预装WindowsVista操作系统,我拿到手把玩一会儿,见识了传说中的Vista。</p> +<p>界面确实是漂亮了许多,确切的说是比起我用的XP界面华丽了很多,但是咱也有Ubuntu啊,Linux下的界面也不是盖的。</p> +<p>至于速度呢,真是让人难以接受(忍受),想不通微软那帮儿天才是不是故意把系统弄得这么慢,明明硬件配置已经很高了,要是跑xp能让它飞起来,但是Vista却慢慢吞吞咿咿呀呀哼上老半天,让我想到了我十年前第一次启动Win98。</p> +<p>同样,关机也是很慢,一副可怜兮兮、依依不舍的样子,恨不得让你直接拔电池。</p> +<p>Vista另一个让我不爽的方面应该就是UAC(用户帐户控制)了,对于这个功能,我的理解就是典型的掩耳盗铃,因为随便你运行个什么程序系统都会不厌其烦地弹出一个框,告诉你这是个陌生程序,它不确定是否安全,问你是否继续,如果你允许了,那么他也就没有任何责任了。</p> +<p>可是我又怎么知道这个程序有没有威胁?我要是知道我还会运行它吗?</p> +<p>靠!今天看到消息说,从本周一起微软就再也不买XP了,这也就意味着,你如果还想用Windows以后只能买Vista了。</p> +<p>以后再买笔记本也只能预装Vista了,一句话,微软要逼着我们用他的新系统了。但我还是决定对xp&quot;不抛弃,不放弃&quot;,这次Vista的使用经历更是坚定了我的观点,让华丽的Vista见鬼去吧!</p> +<p>ps:不行就用Linux</p>驱蚊良方https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/Sun, 29 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/<p>入夏以来,被蚊子叮咬数次,胳膊的红点竟呈北斗七星状。冥思苦想,得一良方。活捉蚊子一只,将长嘴拔掉,悬挂于床前,众蚊子观其惨状均不敢靠前半步。</p>今天居然不加班https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/Sat, 28 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/<p>像往常一样,周六的早晨匆匆醒来,洗漱完毕拿起包推门而出,忽然想起,今天不加班!</p>是爷们儿就得顶着,看了《太极旗飘扬》https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/Sun, 22 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/<p>真实的战争场面和细腻的故事情节让《太极旗飘扬》这部影片成为了和《拯救大兵瑞恩》同样经典的战争片,</p> +<p>我认为甚至超越了后者,因为《拯救大兵瑞恩》带给我更多的是战斗场景的震撼,而太极旗飘扬则在震撼之外又多了一些在情感上的触动。</p> +<p>战争到来的时候,带来了无尽的不幸和灾难,无数的人卷入这残酷的漩涡。</p> +<p>故事的主角&quot;镇泰&quot;本来和家人幸福的生活在一起,弟弟马上就要念大学了,妈妈和妻子开的面摊也刚刚有了起色,而且自己修鞋的手艺也越来越高超,挣钱供养弟弟上大学应该没有问题,虽然他自己连一个字也不识,但是他很满足。</p> +<p>然而,战争的到来让一切幸福都成为泡影,他们兄弟俩很快被抓了壮丁,与亲人失散。</p> +<p>战场上的血雨腥风让他们很快成长起来,每时每刻都有人死去,在战斗中,作为哥哥,镇泰时刻保护着年幼体弱的弟弟,不惜生命的代价。后来他又听到一个传说:&quot;只要得到一枚总统颁发的勋章就可以让一位自己在军队里的亲人回家&quot;他相信了,为了勋章,为了能让弟弟离开战场,他拼了命,甚至让他的弟弟误会他,以为他为了得到荣誉而不顾一切。</p> +<p>他终于拿到了勋章,可是他弟弟却没能回家,他所得到的却是眼睁睁地看着自己贤惠的妻子被战友当作叛徒无情地射杀,那一刻我想他肯定比子弹打在身上还难受。</p> +<p>后来他的弟弟被当作叛徒要被烧死(被救出,但是他不知道,一直认为弟弟被战友烧死了)。</p> +<p>他绝望了,他为了弟弟、为了家人所做的这一切只给他带来了更多的不幸。于是他成了俘虏,他叛变了,他开始疯狂地报复,当两兄弟在战场上互相以敌人的身份见面时,他已经杀红了眼,两人厮杀很久,在弟弟的叫声中他终于清醒了,可是弟弟的部队已经开始败退了,两个人面临生死抉择,弟弟需要撤走,而他需要留下来为弟弟断后。</p> +<p>看到弟弟安全撤走,他欣慰地死去,为了弟弟,他已用尽了自己最后一丝力气。</p> +<p>整部电影想要表达的以及所表达的远不止这些内容,抛开历史的真实性和导演的政治观点不说(这些仁者见仁智者见智,毕竟这是韩国的电影),我觉得一部电影,看完了能够让我思考的,那就是一部好电影。</p> +<p>通过影片我看到了战争带给人们的苦难以及和平的珍贵,看到了生命的脆弱和人性的光辉。</p> +<p>片中很多情节充满血腥,很多情节又饱含温情,看到两兄弟最后战场离别的那一刻,我更看到了,作为一个男人的责任。</p> +<p>当镇泰倒下去,看着弟弟的背影死去,我只想说:&quot;镇泰是个爷们儿,纯的!&quot;</p>算法导论+《赤道和北极》=失眠https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/Fri, 20 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/<p>昨晚又严重失眠,本来想早早睡觉,便从书架上抽出一本比较枯燥的书(《计算机算法导论》)在睡前翻翻,我想这样可以很快睡着。</p> +<p>谁知竟越看越有精神,于是打开收音机,想找个唠叨的主持人催眠一下。</p> +<p>交通台正在放春晓主持的一档音乐节目,这个主持人声音比较有特点(就是那句:“身未动~~心已远~~让我们一起走吧~~~”)</p> +<p>正所谓:男有伍洲彤女有春晓,这俩人的节目用来边听边睡刚好。</p> +<p>忽听得一阵优美的吉他,竟是另一版本的《赤道和北极》,此歌旋律优美,再加上女歌手声线极美,不由得让人思绪万千。</p> +<p>此处省略1千字以后晚上再也不敢听这个音乐节目了,除非不想睡觉。</p>软件需求与“让你丫不戴帽子”https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/Mon, 16 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/<p>改了一天的软件bug,发发牢骚:</p> +<p>在软件开发过程中,开发人员最担心的不是客户提出的功能需求从技术上难以实现,而是客户往往毙掉你费尽心血开发的功能,然后天马行空地提出另一套思路,如果你抱着客户就是上帝的想法,满足了他们的变态要求,那么,苦日子接着就来了,因为这些变态的家伙会在软件的功能需求上反反复复、朝三暮四并乐此不疲。</p> +<p>比如你的程序完成了某一项任务后没有提示,他会说“为什么干完了不提示我一下?”</p> +<p>而如果你跳出来提示他又会觉得很烦“干完了为什么还要烦我一下?”,</p> +<p>最后只好弄成可配置,但人家又嫌配置起来太罗嗦,不人性化。</p> +<p>不多说了,想起来一个经典的笑话说兔子跟街上走着,迎面碰上了老狼。</p> +<p>老狼伸手就给他一大嘴巴,“让你丫不戴帽子”。  兔子很郁闷地回家了,弄一帽子戴着。  </p> +<p>第二天又碰上老狼了,又挨了一大嘴巴,“让你丫戴帽子”。  如是几次,总挨打。</p> +<p>兔子想,这么老挨打不是个事儿啊,不行,我得找老虎投诉去。  </p> +<p>刚到老虎家门口,就听老虎在屋里说话。  </p> +<p>你也不能老这么蛮不讲理打兔子阿,回头兔子找我投诉来,我也不好罩着你啊。</p> +<p>好歹咱面子上得过得去,我教你一招。  </p> +<p>下回你见着兔子,跟他说:给我弄点儿洗衣服的来。他给你拿肥皂来,你就打他一顿的,说我要的是洗衣粉,谁让你拿肥皂。他拿来洗衣粉,你也能打,说我要肥皂,谁让你拿洗衣粉。  </p> +<p>要不然你跟他说,去,给我找个女人来。他给你找个胖的,你打他一顿说我要瘦的;给你找个瘦的,你也打一顿,说我要胖的。  这样不结了,你也能打他,我面子上也能说得过去。”  兔子一听,得,咱也别投诉了,回家吧。  </p> +<p>第二天,兔子在街上又撞上老狼。老狼大喝一声:去,给我找点儿洗衣服的来。  </p> +<p>兔子不慌不忙:你是要洗衣粉阿,还是要肥皂啊?  </p> +<p>老狼一听,嗯?有一手阿。又说:去,给我找个女人来。  </p> +<p>兔子还是不慌不忙:你是要胖的啊,还是瘦的?  </p> +<p>老狼一听勃然大怒,伸手就给兔子一个大嘴巴,  </p> +<p>让你丫不戴帽子!</p>有阵子没打篮球了https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/Sun, 15 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/<p>今天继续发扬每到周末就睡不着觉的光荣传统,比平时上班起的还早。</p> +<p>洗了个澡,饶有兴致地做了顿早餐(花了一个小时,吃了5分钟)。</p> +<p>还没来得及把电视频道翻看一遍,大宝就喊我去打篮球,二话不说,换好球鞋飞奔球场。</p> +<p>抓起篮球才发现,已经很生疏了,找不到一点儿手感。</p> +<p>来回跑二十分钟就开始喘气了,还好,4对4的接波比赛中总算懵进了几个球。</p> +<p>渐渐找到感觉,跑动越发积极,身法也越来越快。队友一个快速传球,我以迅雷不及掩耳盗铃之势抓住球,猛跑两步,转身!跳起!腿抽筋儿了!</p> +<p>看来我是得注意一下平时的锻炼了。</p>我的吉他梦https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/Mon, 09 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/<p>一个人太无聊,一天没说话,吃饭睡觉打豆豆,傍晚时分,想出去活动活动,溜达到客厅,看见角落里那把吉他,突然想活动活动手指。</p> +<p>我拿起琴,吹了吹上面的灰,呛得我咳嗽了半天,调了调弦,闭上眼睛,富有激情地弹了一曲“两只老虎”,希望没有吵到邻居,虽然听到楼上孩子的哭声,但是我觉得那是该喂奶了,小孩子还小,还不能体会音乐的灵魂,怎么可能感动的哭呢?</p> +<p>其实我十年前就开始学琴了,不过绝对不是为了泡妞而学,而是怀着对音乐的满腔热情而学,虽然也曾幻想抱着吉他站在某个女孩的门前,大声唱着“冷雨夜我不想归家,盼望你会知,可知道我滴心&hellip;.”,</p> +<p>无奈我手指上的茧子退了一层又一层仍是达不到理想的水平,只能一个人的时候弹两曲消遣一下而已。</p> +<p>大学的时候,每当我在寝室练琴就有隔壁同学跑过来说:“你们谁在这把床推来推去的?弄得地板咯吱咯吱的?”,</p> +<p>有一次,管理宿舍的大爷一路咆哮着就上来了:“说过多少遍了!寝室里面不能做饭!”,</p> +<p>“没有啊,大爷”“还说没有!我在楼下都听到炒菜的声音了!”&hellip;&hellip;</p> +<p>他们就这样把我成为一个吉他手的梦想给残忍地扼杀了。</p> +<p>后来我迷恋上了编程(也能活动手指),吉他就被我丢到了角落,偶尔还会拿起来拨两下就像今天这样。</p> +<p>当然了,这个梦并未完全破灭,我仍然幻想着某天弹吉他能像现在敲电脑键盘这么熟,刚工作那会儿我给自己定了计划,觉得无论如何也得在三十岁之前把吉他练成,现在,眼看着快三十了,吉他上的灰却越来越厚。</p>注册atl组件返回错误0x80040154的原因及解决办法https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/Wed, 28 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/<p>今天用VC6做了一个com组件,使用ATL模板创建,结果在使用regsvr32.exe注册时死活注册不上,返回0x80040154,使用ErrorLookup查看错误号结果是“没有注册类别”,百思不得其解,即使以前可以注册的组件现在也无法注册了,怀疑是操作系统的问题。</p> +<p>上网搜索了半天,最终还是在微软的官方网站上找到了一点儿蛛丝马迹:</p> +<p>“WhenyouregisteranATLserver,youmightgeterror0x80040154(Classnotregistered).ForDLLs,REGSVR32.exereturnsthiserror.ForEXEs,thecallto_Module::</p> +<p>RegisterServer(CComModule::RegisterServer)in_tWinMain()returnsthiserror.”,</p> +<p>接着往下看“InstallATL70.dll(orATL.dllforearlierversionsofVisualStudio)intheWindows\SystemorWinnt\System32directory.YoudonothavetoregisterATL70.dll,however,youmustregisterATL.dllbyusingRegsvr32.exe.ThereareUNICODEandANSIversionsofATL70.dllandATL.dll.Installtheappropriateversiononthetargetoperatingsystem(thatis,UNICODEforMicrosoftWindowsNT,andANSIforMicrosoftWindows95orMicrosoftWindows98).”</p> +<p>哦,原来是system32下面的atl.dll没有注册,打开C:\windows\system32\找到atl.dll后使用regsvr32注册,然后再注册我的组件,成功!</p> +<p>结论:怀疑在安装、卸载软件或使用优化软件进行系统清理的时候不小心反注册了atl.dll,导致使用atl模板创建的com组件均无法注册。</p> +<p>ps:两年前就遇到过此问题,当时无法搞定,只得重装系统,今天总算找到问题的原因了</p>eeepc 使用技巧(3)vim搭建c开发环境https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Mon, 26 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/<p>今天继续记录eeepc的使用经验,闲言碎语不要讲,说一说如何安装c、c++开发环境以及在vim下进行编程。</p> +<p>安装开发环境很简单,不用单个安装gcc、make什么的,只需sudoapt-getinstallbuild-essential,这里面就什么都包含了(gcc、g++、gdb、make等)。</p> +<p>然后就找个合适的编辑器吧,系统自带vim,vim太强大了,这里不能多说(我也是刚开始用它),但是只有最基本的编辑功能,要想比较方便地进行开发需要安装如下vim插件:ctags、Taglist、supertab、c.vimctags其实不算是插件,算是单独的程序,用来生成vim能识别的标签文件,这样在vim写代码时就可以进行函数、变量、枚举类型之间快速定位了。</p> +<p>taglist可以在vim窗口的左侧生成一个tags列表,里面就是用ctags生成那些标签,方便随时定位到这些标签supertab是个增强版的代码补齐插件,写代码时按tab键可以弹出自动补齐列表供选择,如“p”可以自动补齐为“printf”c.vim是进行c、c++编程时的必备插件,能使vim变成一个为开发c语言定制的一个ide,拥有自动注释、F9编译,自动补全等强大功能。</p> +<p>插件装好后,在vim的vimrc文件里需要加上syntaxon这样每次启动vim时,它的语法高亮功能就自动打开了。</p> +<p>写一段代码试试看vimhelloworld.c#include&lt;stdio.h&amp;gt;intmain(){printf(&quot;helloworld&quot;);return0;}:wq退出编译:gcchelloworld.c-ohelloworld</p> +<p>运行:./helloworld</p>《Are You The One》以及流鼻血https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/Fri, 23 May 2008 00:00:00 +0000https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/<p>AreYouTheOne,这是一首好听得不得了的歌曲,来自荷兰WithinTemptation乐队,主唱Sharon绝对是超级女声,有着高亢的声线、鬼魅一般的嗓音。</p> +<p>从听第一遍就喜欢上这首歌儿了,让我停不下来,反复播放,直至流鼻血。曲中3分13秒开始的那一段电吉他solo实在是荡气回肠。</p> +<p>Areyoutheone?你是他么?Thetravellerintimewhohascome.进入我生命的陌生人Tohealmywoundstoleadmetothesun.治愈心伤,播撒阳光Towalkthispathwithmeuntiltheendoftime.结伴走在生命的小路上Areyoutheone?你是他吗Whosparklesinthenightlikefireflies.萤火虫般流彩的目光Eternityofeveningsky.对视,在永恒的夜空Facingthemorningeyetoeye.直至晨曦来到Areyoutheone?你是他吗Who'dsharethislifewithme.与我共度此生Who'ddiveintotheseawithme.与我在深海偎依Areyoutheone?你是他吗Who'shadenoughofpain.受尽创伤Anddoesn'twishtofeeltheshame,anymore.不愿再心伤Areyoutheone?你会是他吗Areyoutheone?你是他吗Who'sloveislikeaflowerthatneedsrain.他的爱是雨中的花朵Towashawaythefeelingofpain.冲去了忧伤Whichsometimescanleadtothechainoffear.不再迷茫彷徨Areyoutheone?你是他吗Towalkwithmeingardenofstars.一起走在群星之下Theuniverse,thegalaxiesandMars.火星,银河,宇宙Thesupernovaofourloveistrue.见证我们爱的迸发</p> +<p>ps:流鼻血可能与这首歌曲无关,这两天比较上火,昨天下班时,看到路边有课桑树,上面结满了熟透了的桑椹,于是我童心顿起,顺手摘了几颗放在嘴里,还挺甜的。</p> +<p>小时候挺爱吃桑椹,到了季节就大把大把的吃,大人总是吵着不让多吃,说吃多了会流鼻血,没想到我昨天刚吃了几颗,今天就流鼻血了。</p> +<p>再ps:从今天开始,北京算是进入真正的夏天了,突然就热了起来,非常热,办公室里热的像蒸笼,空调也不管用,当然,天气这么热也有Intel的功劳,整个电脑机箱热的像是路边烧烤用的碳火炉,再烤下去,晚饭就能吃“烤人腿”了。</p>eeepc 使用技巧(2)https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/Thu, 22 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/<p>接着昨天的继续,系统修改为中文了,软件源设好了,输入法也装好了,接下来就想看看小e(姑且把我的eeepc叫做小e)的多媒体性能咋样儿了(其实就是看看能不能看片儿)。</p> +<p>小e自带有mplayer以及前端的SMPlayer,播放一般视频(mpeg、wmv)效果挺不错,遗憾的是还不能播放rmvb,上网查了一下原来是缺少相应的解码包,</p> +<p>于是乎,就找到了这个win32codecs下载后将这个压缩包解压后的内容放到/usr/lib/codecs下即可,系统默认并没有codecs这个文件夹,需要手动创建sudomkdir/usr/lib/codecs,然后复制cp/home/user/win32codecs/*/usr/lib/coecs。</p> +<p>好了,在命令行输入mplayer/home/user/*.rmvb-f-z很流畅的画面就出现了,此时的-f和-z参数分别代表全屏和自动缩放画面到窗口大小。然后我又尝试播放了一下720p的高清视频(wmv格式),小e也能轻松胜任,画面很清晰,也很流畅,看来mplayer这个软件写的很棒,虽然是命令行格式的,但是我喜欢。</p>eeepc 使用技巧(1)https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/Wed, 21 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/<p>买了eeepc900一段时间了,翻遍很多论坛,也慢慢摸索一些基本使用技巧,不敢独享,一直想写出来,只是最近工作很忙,加上地震带来的全国性灾难,导致最近几天也没心思去写。</p> +<p>现在,让我整理一下思路,慢慢把经验写下来,也防止我以后会忘记。</p> +<p>eeepc可以安装xp操作系统,但是我喜欢linux,买了eeepc有一半是为了使用linux,所以我不会把他自带的系统干掉然后安装xp系统,windows操作系统我实在是用腻了。</p> +<p>因为只有装了linux系统的机器才能让我感到完全是“自己的”。</p> +<p>eeepc900自带有定制的linux操作系统,而且是基于debian的发行版,哇,有了debian一切都好办了。</p> +<p>debian有强大的apt-get软件包管理系统,但是eeepc的说明书上吓唬我说“用户不能自行安装其他软件”,咳,管他呢,我查了一下,原来是在apt的source.list里没有相应的源而已,而且eeepc里也自带了“新立得软件管理器”只是没放出来而已。</p> +<p>好了,先从“控制台”开始,刚拿到手的时候,我费了老半天的劲儿才找到控制台窗口打开的办法,看来asus实在太担心用户的智商了。答案是按“Ctrl+Alt+T“就能调出控制台,要知道在Lxiux下有了”控制台“才算有了系统的操纵权啊!</p> +<p>由于默认是英文版的,让我先把系统从英文调整到中文吧在控制台输入/opt/xandros/bin/locale_dialog然后在弹出的对话框中选择简体中文,重启机器,就变成中文系统了。</p> +<p>随机带的软件太少了,而且大部分还是给小孩子用的,根本不够我用,本地化之后就我就开始想办法安装软件控制台输入<code>vim/etc/apt/sources.list</code>发现该文件就两行</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">debhttp&amp;#58;//update.eeepc.asus.com/p900p900maindebhttp&amp;#58;//update.eeepc.asus.com/p900/enp900main增加如下内容:debhttp&amp;#58;//debian.cn99.com/debianstablemaincontribnon-free +</span></span></code></pre></td></tr></table> +</div> +</div><p>然后:wq存盘退出sudoapt-getupdate这样就有了debian的基本源,现在开始使用apt-getinstall疯狂安装想要的软件吧!</p> +<p>由于我这个版本默认的输入法管理器是gcin的,虽然也有拼音输入,但是不符合大陆人的输入习惯,所以我首先要安装scim,在控制台输入sudoapt-getinstallscimscim-chinese,要想使用scim还需要一个软件sudoapt-getinstallim-swich,然后把gcin卸载sudoapt-getinstallgcin-好了,切换到scim吧,输入sudoim-switch-sscim然后重启机器,输入法管理器就变成scim啦!</p> +<p>唉,eeepc的键盘实在是太小了,在上面打字实在是太累,先写这么多,估计也就有十分之一吧,剩下的以后再慢慢写。</p>测试从scribefire发布bloghttps://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/Tue, 20 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/<p>使用firefox在eeepc900上发布测试用无内容</p>我的妈妈https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/Sun, 11 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/<p>从小学到初中的作文课,几乎每个语文老师都布置过“我的妈妈”这篇作文,</p> +<p>很多同学文笔细腻,感情丰富,写出的作文真实流畅,总被老师挑选出来作为范文朗诵,让我很是羡慕,</p> +<p>不过,我作文水平极差,在课堂上拼命咬着铅笔头,恨不得把橡皮也吞下去,还是凑不够字数。</p> +<p>很想回忆一下当时写的别字连篇的作文,不过一晃过去那么多年,现在一个字儿也想不起来了。</p> +<p>母亲节了,我再写一篇试试。</p> +<p>我的妈妈我妈今年五十岁了,虽然她看起来还不到五十岁,而且在我心目中也就是四十来岁的样子,我总是笑着跟她说:“妈,您是越活越年轻啊!”每当这个时候她总是高兴得合不拢嘴,心里美滋滋的。</p> +<p>是的,没错!我说的是实话,我妈是挺年轻的。</p> +<p>我妈是一名出色的乡村教师,我小的时候,爸爸在邻村的中学教书(巧了,我爸也是老师)平时不在家里住,我妈就在我们村的小学,条件极为艰苦,当时为了带我,她吃了不少苦头,一方面是她平时工作任务很重,乡村学校缺老师,她一个人要教好几门功课,跨越几个年级,另一方面是我体弱多病,当时家里又不富裕,照看我这样儿的孩子要比别的孩子多费几倍的心血。</p> +<p>但是她很要强,工作很优秀,同时在她的精心培养下我也茁壮成长,到了今天,我可以很负责任的说,她很成功。说到对我培养,我刚才说的好像有点儿不太谦虚,呵呵,我所指的成功就是,她把我培养成了一个善良的人,并且给了我一个快乐的童年。</p> +<p>想到小时候,其实我妈的脾气还是有点儿火爆的,我要是做错了事儿,挨揍也肯定是跑不掉的。但那都是因为我不懂事,打我那是怕我将来成为一个无用人,而且,所谓“打在儿身,疼在娘心”啊,我挨完揍,她也偷偷抹眼泪。</p> +<p>虽然先说了我妈会打我,但那毕竟是少数,大部分时候妈妈是和蔼可亲的,而且对我也百般呵护、百依百顺,要什么就给什么,想吃什么就做什么,现在回想起来,她对我简直是太溺爱了。</p> +<p>妈妈心灵手巧,我小时候没什么高级玩具,别人折的纸船、纸飞机、风车什么的,她拿到手后,拆开一看,马上就会折了,而且马上把我教会(看来,我也很聪明)。</p> +<p>小孩子都爱拆东西,别家的孩子拆了可能会挨揍,但是我妈见我拆东西不但不打我,而且还带我一起拆玩具,有次我把我仅有的很贵的“坦克”玩具给拆坏了,我妈费了好大的劲儿才把它修好。</p> +<p>后来我上学了,还是保留了这个爱好,拆拆装装的东西弄了一整箱,从收音机到电子表应有尽有,我觉得那些才是最好的玩具。我妈的心灵手巧并非表现在这个方面,她的缝纫技术也是出类拔萃,邻里之间有人要做衣服肯定让她帮着剪衣样,有次她给我做了个棉袄,样式比商场里面卖的还新潮,惹得很多孩子也吵着要这样儿的。</p> +<p>织毛衣也不在话下,不但图案精美,而且速度飞快,有次,天气突然转冷,妈妈怕我妹妹冻着,一夜之间就给我妹妹织了一顶帽子。</p> +<p>现在,妈妈还是能跟上时代的潮流,我给老家装上了电脑,她也很快学会了打字,想我了就上QQ和我聊两句,周末我们还会视频一下,聊聊一周的家长里短。</p> +<p>随着妈妈年龄的增长,她对我们也越来越依赖了,有时候陪着她聊天,我随便说个笑话就把妈妈逗得前仰后合,笑得眼泪都快下来了。她每天都上网上看看,虽然并不是每次都和我聊天(怕我工作忙),但是她说,看到我的QQ也在线,心理就很踏实了。</p> +<p>今天是母亲节,一个感恩的节日,身在遥远的北京,我坐在电脑前,写一点儿文字,衷心祝愿我的妈妈以及天下所有的妈妈都幸福安康。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">慈母手中线 +</span></span><span class="line"><span class="cl">游子身上衣 +</span></span><span class="line"><span class="cl">临行密密缝 +</span></span><span class="line"><span class="cl">意恐迟迟归 +</span></span><span class="line"><span class="cl">谁言寸草心 +</span></span><span class="line"><span class="cl">报得三春晖 +</span></span></code></pre></td></tr></table> +</div> +</div>有了压力你就喊https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/Fri, 25 Apr 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/<img src="https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/20080424.png" alt="Featured image of post 有了压力你就喊" /><p>周末和几个哥们儿喝酒,喝完了哥们儿提议去K歌,很久没K了,我在包厢里抱着话筒死活不肯松手,再一次展现了&quot;麦霸&quot;的风范。</p> +<p>借着酒劲儿我愣是把一首首温柔的情歌咆哮出了&quot;摇滚&quot;加&quot;死亡金属&quot;的味道,那声音,比杀猪好听多了。</p> +<p>没办法,情歌就是得用真实的声音来诠释,而和朋友一起喝完小酒后的情感往往是奔放的、原始的、撕心裂肺的。</p> +<p>管你是青藏高原还是回到拉萨;是左等右等(RightHereWating)还是加州招待所(CaliforniaHotel);</p> +<p>是国粹京剧还是家乡地方戏,一律来者不拒,而且必须是原调!</p> +<p>那一刻我觉得,就是帕瓦罗蒂过来飙高音咱都不惧他!</p> +<p>唱完歌,觉得通体舒畅,酒也解了,一切的压力都烟消云散,腰也不酸了,背也不疼了,一口气儿也能上5楼了。</p> +<p>突然想起一句名言,在这儿给他改一改,就叫&quot;有了压力你就喊!&quot;</p> +<p>&ndash;由sbabybird于4/24/200809:00:00下午在从容地狂奔上发表</p>梦,神经衰弱https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/Fri, 28 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/<p>昨晚,编程时有一问题困惑很久,反复调试总是失败,无奈,只得放弃,怀着郁闷的心情睡去。</p> +<p>睡梦中恍恍惚惚仿佛有人叫我,原来是一白胡子老头,声音洪亮(略有东北口音),精神矍铄,约我相谈技术话题。</p> +<p>只见该老头唾沫横飞,指指点点,谈笑间从身后掏出一笔记本电脑,当场就把VC6启动起来。我定睛一看,我靠!这不就是我白天写了一下午的那些代码么?</p> +<p>老头边解说边将我的代码略为修改,我顿时感到豁然开朗,遂给我演示了一下运行效果,果然很流畅,问题得以解决。</p> +<p>惊喜使我从梦中醒来,回忆刚才的场景,起床倒了一杯水,拿起纸笔,十分虔诚地把刚才的思路记了下来,我甚至能记住当时的函数和变量的名称。</p> +<p>一大早到了公司,启动环境,将代码输入电脑,居然能编译通过!怀着激动的心情运行之,程序吭都没吭一声就崩溃了,看着巨大的“内存错误窗口”,我不禁哑然失笑,梦里的东西怎能当真呢,还以为有仙人助我,原来是我神经衰弱。</p>最讨厌你们这些“黑客”,一点儿技术含量都没有https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/Wed, 26 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/<p>四年前,那时公司还是使用adsl+“代理服务器”上网,有一天早晨我来到公司,发现代理服务器的桌面有一个word文档,打开一看,里面写着“嘿,哥们儿,你的机器被我黑了,我发现你是使用adsl上网的,而且发现不少漏洞,我顺手给你打了补丁,希望你能重视上网的安全性&hellip;&hellip;”</p> +<p>当时令我大吃一惊,因为一方面我们确实不太重视网络安全的问题,另一方面那家伙也太猖狂了吧。</p> +<p>后来我遇到一“高人”,将此事说与他听,他遂露出鄙夷态度:“最讨厌这些傻B“黑客”,一点儿技术含量都没有”,而后掏出几款软件,“扫描器”、“嗅探器”什么的,现场给我演示了一把。</p> +<p>靠!原来会使用这些黑客软件就是黑客啊!</p> +<p>我在公司内部的服务器上建了个小论坛,使用阿帕奇+php+bbpress实现,用于记录兄弟们平时积累的编程经验,由于管理员疏忽,开了远程服务,密码又过于简单,前两天不慎又遭“毒手”,这次那厮没有手下留情,把论坛数据库给我删了,唉,真他妈防不胜防啊!害得我还得花时间恢复。</p> +<p>我说这些自以为是的傻B黑客,能不能用用脑子,有能耐你把我msn空间的广告给我去了,不好好待着干嘛总出来犯贱呢,你妈逼你的是吗?</p>听音乐,要关灯https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/Sun, 23 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/<p>周末,晚饭毕,心绪烦乱。关窗,关灯,音箱的音量调大,陷入黑暗之中,只有机箱闪烁着微弱的蓝光。</p> +<p>如果音乐是海洋,就让我随着醉人的旋律坠入海底,让音乐洗去我的浮躁和忧伤。</p> +<p>如果音乐是双手,就让跳动的音符轻轻拨动我的心弦,跳入我浑浊的内心,然后在上面荡起点点涟漪&hellip;&hellip;</p> +<p>哈哈,关了灯听音乐能让我这样语无伦次,也算是神奇了,所以有句话叫:“爱生活,爱拉灯!”</p>公园里的“鸟巢”https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/Fri, 21 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/<p>每天早晨都穿过这个公园,随手拍了,那个小房子是公园的管理人员为一只野生的鸟儿(大概是野鸭子之类的吧)搭建的,该鸟去年来此地盘再也不走了 </p>老家的电脑中毒了https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/Thu, 20 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/<p>春节回老家,我把老家的电脑升级了一把,并安装了宽带。</p> +<p>这样我在北京就可以随时和父母视频通话了,老妈的打字水平也飞速提升,没事儿就上线和我聊两句。</p> +<p>为了安全起见,我临走时反复叮嘱,不要再安装其它软件(担心流氓软件)。</p> +<p>但是在选择杀毒软件时我有点儿为难了,nod32挺好用,可是咱没买正版,用破解的怕他们用不好,刚好那时卡巴斯基推出了一年免费试用的活动(其实我都两年不使用卡巴斯基了),就贪便宜用了,而且开启了实时监控和每天的病毒库更新。</p> +<p>看来便宜果然没好货,好日子没过多久,老妈就打电话告诉我机器奇慢无比,我当时还颇为自信的告诉她启动杀毒软件的查杀毒程序进行病毒查杀即可,怎奈何断断续续查了一夜(没办法卡巴就是这么卡)病毒之后,倒是找到木马病毒若干,但就是无法清除,一开机cpu就资源占用100%,我又没法亲手操作,看来这个系统是没救了。</p> +<p>还好当时留了一手必杀技,那就是“一键ghost恢复”!</p> +<p>实在不行就“恢复”吧。</p> +<p>不知道是网络环境太差还是咱们的安全意识不够,反正对于一个非计算机专业的人员来说,现在上网实在是处处有陷阱、时时有风险,杀毒防毒软件形同虚设,真是让人担忧啊</p>春天来了,小树发芽了,鼻子发炎了https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/Wed, 05 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/<img src="https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/20080305.png" alt="Featured image of post 春天来了,小树发芽了,鼻子发炎了" /><p>不经意间,她已经来到了,她带来了吹面不寒的杨柳风儿,带来了满树的桃花(树在哪儿呢?),不过她带给我的第一个礼物却是鼻炎,听说过两天还会给我带点儿沙尘暴啥的,是的,她就是春天。</p> +<p>连日来,和煦的春风吹得我昏昏欲睡,口干舌燥。一闻到春风的气息,我得鼻子就发干发痒,看来我的鼻炎是按时发作了。</p> +<p>戒烟、戒酒、戒辣椒,多喝开水、多吃水果、多吃蔬菜,这些残酷的要求我虽然严格遵守,但鼻子仍是一天天痛苦下去,而且一旦休息不好还有流鼻血的危险,万一哪天在街上碰到一个丑女,然后鼻子再不争气的流血了,那就糗大了!</p> +<p>&ndash;由sbabybird于3/05/200805:22:00下午在从容地狂奔上发表</p>Every Night In Beijing 我办了暂住证https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/Sat, 01 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/<p>EveryNightInBeijing我办了暂住证为了迎接今年的奥运会,北京最近开展了“依法登记办证,共创平安奥运”专项活动,所有来京的暂住一个月以上、16岁以上的人员,都要依法主动到暂住地派出所办理暂住证,否则&hellip;.</p> +<p>作为一个外地来北京需要“暂住”超过一个月而且16岁以上的民工,我当然得积极相应,虽然今天是周末我还是起了个大早(其实周末早起是我的坏毛病之一),带齐了证件前往派出所去排队,没办法,现在办这个的人太多,办个暂住证比买春运的火车票还难,听说有人带着干粮半夜就前去排队了。</p> +<p>到了地方一看,嚯!果然是“peoplemountainpeoplesea”,我拿出春运买票劲头,费了两个小时的吹灰之力,终于挤到柜台前(以前没去过派出所,姑且就叫柜台吧),刚要用颤抖的双手递上证件,只听得“啪&hellip;啪&hellip;”两声,来自工作人员拍打的键盘,伴随着一句地道的好莱坞英语:“oh!shit!”</p> +<p>然后曰:“网断了!”我真是百感交集,有一种想扁人的冲动,但是看他们手忙脚乱地样子又想到这儿是派出所,也就没忍心发作。</p> +<p>时间一分一秒地过去,办证的队伍快排到门外,终于其中一位工作人员大喊一声:“我找到了!”</p> +<p>这一嗓子喊的不亚于老阿(阿基米德)想当年那架势。</p> +<p>原来是哪位仁兄不小心踢掉了交换机的电源,网线都断了,插上之。</p> +<p>终于办完了,赶紧揣进怀里,生怕过来几个人把它给撕了,然后把我送去锻炼身体。</p> +<p>“EveryNightInBeijing我要去办暂住证不敢在午夜问路,怕走到了采石场EveryNightInBeijing你可别喝太多酒把酒高歌的男儿,也得去办暂住证&hellip;&hellip;”本故事纯属虚构,如有雷同,那实在是巧合</p>找个地方藏起来https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/Wed, 27 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/<img src="https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/20080227.png" alt="Featured image of post 找个地方藏起来" /><p>前两天与老同学用msn聊天,虽然都工作了几年,但是均感叹现在遭受的压力巨大,无论是来自工作的还是来自家人的。</p> +<p>聊到后来,都有找个地方躲起来的想法,躲到一个没有人认识的地方,或深山老林,或几角旮旯。</p> +<p>像鸵鸟那样,找个沙堆把头埋进去如何?</p> +<p>&ndash;由sbabybird于2/27/200805:37:00下午在从容地狂奔上发表</p>小广告https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/Sat, 16 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/<p>大年三十,老爸安排我贴春联,贴之前先要把房门给清理一下,本着认真负责的态度,我拿着抹布撅着屁股擦了半天。</p> +<p>但是有两个小广告不知道用的什么胶水粘的,贴在上面太顽强了,抹布对其不起作用。</p> +<p>这个难不倒我,从厨房拿来清洁球,发扬&quot;只要功夫深,铁杵磨成针&quot;的精神,终于把这两个小广告拿下,看着擦的光亮如新的防盗门,我揉了揉发酸的腰,露出了满意的笑容。</p> +<p>狂奔到屋里去邀功,谁知我妈刚看了一眼就说:&quot;哎呀!那两个小广告哪儿去啦?那上面有送水的电话号码,我平时就照着那个打呢!</p> +<p>&quot;我:&quot;@#¥%@#%……@#%……&quot;吐了一口鲜血接着说:&quot;没事儿!对门儿房门上贴的还有!&quot;</p> +<p>&ndash;由sbabybird于2/16/200811:03:00上午在从容地狂奔上发表</p>回京了,开工了https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/Wed, 13 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/<p>回家的日子过得飞快,感觉就像做了一场梦,醒来后发现我还是坐在电脑旁,噢,又开工了。</p> +<p>&ndash;由sbabybird于2/13/200809:50:00上午在从容地狂奔上发表</p>夕阳无限好,只是看不清https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/Fri, 01 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/<img src="https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/20080201.JPG" alt="Featured image of post 夕阳无限好,只是看不清" /><p>&ndash;由sbabybird于2/01/200802:12:00下午在从容地狂奔上发表</p>早晨的路灯(随手拍)https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/Thu, 31 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/<img src="https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/20080131.JPG" alt="Featured image of post 早晨的路灯(随手拍)" /><p>未经过修饰</p> +<p>&ndash;由sbabybird于1/31/200808:19:00上午在从容地狂奔上发表</p>车票买好了,现在只想一步跨回家去!https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/Tue, 29 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/<p>每年的春运,我都要受到生理和心理的双重摧残,无休止的排队买票,心惊胆寒地挤上车,反复地转车,汽车、火车、汽车&hellip;,从坐在公司的椅子上到躺在老家的沙发上,就像经历一场洗礼。</p> +<p>感谢上天的保佑,我终于买到今年的车票(这期间的经历和见闻不堪回首,要是说出来肯定是要被&quot;和谐&quot;的),捏着这张沾满了汗水的车票,站在西站挤满了人(失望的和绝望的)的售票大厅,我知道,虽然万里的长征刚迈出了第一步,但我的心&quot;秋&quot;的一下子就飞到老家了!</p> +<p>&ndash;由sbabybird于1/29/200803:43:00下午在从容地狂奔上发表</p>相见恨晚-YOBO(友播-yobo.com)!https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/Mon, 14 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/<p>忍不住要推广一个WEB2.o站点:在Diglog上发现了这个在线音乐站点,非常棒的音乐体验!</p> +<p>进去之后首先进行一个小小的心理测试,这样网站就知道了我的音乐口味(基本上挺准确的),然后自动的挑了一些曲子放给我听,连接速度非常快,丝毫没有停顿的感觉,就像是在听本地文件。</p> +<p>听了一会儿我才发现这个网站是个巨大的曲库,分类很清晰,可以随时输入歌手名或者歌曲名搜索歌曲,老歌新歌都有,曲目丰富的令人发指。</p> +<p>听完点播的歌曲之后系统会自动挑一些与此歌类似的曲子播放,有时候关联的挺准,但有时就太跳跃了,从一个古典的古筝曲子一下跳到了一首流行歌曲上来了。</p> +<p>总之,这是个不错的站点,让我再感叹一声:&quot;Web2.0就是好啊!&quot;PS:不知道这么多中外曲目的版权问题是怎么搞定的。</p> +<p>再PS:希望她能像last.fm那样推出客户端软件,这样就不用总开着网页听歌了。</p> +<p>再再PS:希望YOBO的中文名字改一改,叫这个有点儿俗气。</p> +<p>&ndash;由sbabybird于1/14/200804:04:00下午在从容地狂奔上发表</p>听广播的感觉https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/Thu, 03 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/<img src="https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/20080103.png" alt="Featured image of post 听广播的感觉" /><p>这两天见同事提了个巨大的收音机(比板砖还大),一问才知道,原来是怀旧,想找回曾经&quot;听广播的感觉&quot;,手机带的FM和电脑上的网络电台听起来太没感觉了,于是跑到商场挑了个最大号的扛了回来。</p> +<p>这不禁勾起了我的回忆。</p> +<p>接下来让我把镜头推回到六年前,那时我在郑州上大学,除了上课(如果有课的话)就是整天抱着电脑啃C语言,当时既没上网也没电视可看,接受信息的渠道只有一台收音机(夸张了?)。</p> +<p>节目很丰富,给我印象最深的就是郑州交通广播电台夜在里十二点准时播出的《大丈夫日记》(什么?你以为是《深夜悄悄话》?你想哪儿去啦?),电台主持人每天都以特有的腔调(学不来)朗读一个幽默段子,类似于现在网上的恶搞段子,但是格调要高一些,文章不长,但是很有趣,调侃人生,嬉笑怒骂,文字本身就写的很风趣,主持人再用那富有磁性的声音给读出来,听着真是一种享受。</p> +<p>最后再播放一首歌曲,而且在播放这首歌儿之前一定以一种蛮横的语调说一句:&quot;给男人听的歌,你可以不会唱,但..你..必须听!&quot;我第一次听到老谭(不好意思老谭,你永远都是25岁)的《难舍难分》就是在这个节目里,当时真是觉得太好听了:&quot;忘不了你眼中那闪烁的泪光,好像知道我说谎,我茫然走错了地方,却已不敢回头望&hellip;&hellip;&quot;。</p> +<p>可以说,这个节目是我当时最好的精神食粮了(不知道现在还存在吗),有一阵子我几乎天天等到十二点,我想所谓&quot;听广播的感觉&quot;大概就是这样吧。</p> +<p>好了,回到现在,现在的广播已经很难找到一个精品节目了,不是太矫情就是插广告,而且广告还他妈全是医院、医药的广告!所以,时代的潮流是不可逆转的,广播电台再做垂死挣扎也无济于事,被网络取代已是必然的事情,所以你怀里就算抱个巨大的收音机也不会再找到&quot;听广播的感觉&quot;了!</p> +<p>&ndash;由sbabybird于1/03/200805:40:00下午在从容地狂奔上发表</p>写完了年终总结!https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/Mon, 31 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/<p>明天就是2008年了,我的老毛病还是没改,每到假期或周末就兴奋的睡不着觉,今天刚到早上六点就爬了起来。想起还有一篇年终总结去要写,于是打开电脑,整理思路,先回忆一下今年我都干了什么,再展望一下明年我要干啥,不知不觉地,一篇年终总结就新鲜出炉了!由于我的生活就是工作,工作就是生活,所以呢,这篇总结其实就是个工作总结!不多说了,新年快乐!&ndash;由sbabybird于12/31/200707:54:00上午在从容地狂奔上发表</p>2007就要过去了https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/Sat, 29 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/<img src="https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/20071229.png" alt="Featured image of post 2007就要过去了" /><p><img src="https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/20071229.JPG" +width="360" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="77" +data-flex-basis="185px" +> +再过两天就要迎来激动人心的2008年了,时光如水,生命如歌,每一天都是崭新的,每一年都是十分有意义的。今天是2007年的最后一个工作日,此刻我想起了《甲方乙方》里的那句台词:&quot;1997年过去了,我很怀念它。&quot;2007年的工作依然是十分忙碌,工作占据了我生活中的大部分时间。由于长期缺乏锻炼,身体开始逐渐向亚健康状态发展。早饭经常不吃,晚饭又吃的太晚,导致消化系统不太好使,肠胃胃经常发出抱怨。最后吃了西药、中药若干,一日三餐再也不敢怠慢,肠胃才慢慢恢复正常。所以正是2007年我才认识到了健康的重要性,也更深刻地认识到了幸福的真谛!总之2007年对我来说是成长的一年、成熟的一年、有美好收获的一年(我很佩服我自己能认识到这些)。希望在2008年,我和我的家人都健康幸福!&ndash;由sbabybird于12/29/200704:41:00下午在从容地狂奔上发表</p>口腔溃疡了https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/Wed, 26 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/<img src="https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/20071226.png" alt="Featured image of post 口腔溃疡了" /><p>这两天吃的有点儿上火,口腔溃疡了。&ndash;由sbabybird于12/26/200712:41:00下午在从容地狂奔上发表</p>圣你的圣,诞你的诞https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/Mon, 24 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/<img src="https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/20071224.png" alt="Featured image of post 圣你的圣,诞你的诞" /><p>圣诞节?平安夜?我继续狂奔ing&hellip;&hellip;&ndash;由sbabybird于12/24/200705:30:00下午在从容地狂奔上发表</p>冬至为啥吃饺子?https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/Sat, 22 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/<img src="https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/20071222.png" alt="Featured image of post 冬至为啥吃饺子?" /><p>今天是二十四节气里的冬至,阴天,据说要下雪。按照风俗习惯,我中午饱餐了一顿饺子。为什么冬至这天要吃顿饺子?我还真是不知道,上网查了一查,答案原来是这样:古时候有个老中医(不是华佗啊),叫张仲景,老家是南阳稂东人,有一阵子在长沙当大官,后来不知怎地就干不下去了,于是回老家,时值冬季,在路上看到白河两岸乡亲面黄肌瘦,饥寒交迫,不少人的耳朵都冻烂了。便让其弟子在南阳东关搭起医棚,支起大锅,在冬至那天舍&quot;祛寒娇耳汤&quot;医治冻疮。他把羊肉、辣椒和一些驱寒药材放在锅里熬煮,然后将羊肉、药物捞出来切碎,用面包成耳朵样的&quot;娇耳&quot;,煮熟后,分给来求药的人每人两只&quot;娇耳&quot;,一大碗肉汤。人们吃了&quot;娇耳&quot;,喝了&quot;祛寒汤&quot;,浑身暖和,两耳发热,冻伤的耳朵都治好了。后来人们为了给嘴馋找个理由,就有了&quot;冬至那天吃饺子,再冷也不会把耳朵冻烂&quot;的传说。ps:仔细想想,咱们中国的节日都与&quot;吃&quot;的关系十分密切,正月十五吃元宵、端午节吃粽子、中秋节吃月饼、腊八吃米饭(八宝饭)&hellip;&hellip;&ndash;由sbabybird于12/22/200702:25:00下午在从容地狂奔上发表</p>电池放冰箱的实验结果https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/Wed, 19 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/<p>做一个实验&ndash;关于把手机电池放冰箱里关于这个实验,是这样干的,我的那块旧手机电池电量用光后,先放到冰箱的冷冻室里,冻了48个小时,然后取出,使其自然升温,充电3个小时,充满。放入手机里开始使用,感觉与之前无明显区别,仍然是仅待机两天。不知是我处理的方法不对,还是这个流言本身就是假的。想想也是,要是手机电池冻一冻就能变成新的,那人家电池的生产厂家不早就饿死了?&ndash;由sbabybird于12/19/200708:13:00上午在从容地狂奔上发表</p>看看牛人用纸箱自制的电脑机箱!https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/Wed, 19 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219.JPG" alt="Featured image of post 看看牛人用纸箱自制的电脑机箱!" /><p><img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-1.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-2.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-3.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-4.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +有句话说的好:&quot;牛人无处不在!&quot;公司一哥们儿用笔记本电脑的包装箱DIY了一个电脑机箱,用起来挺爽,就是不知道散热咋样儿!还有就是好像还没有加光驱。看起来挺象那么回事儿吧?呵呵,还是联想的纸箱子。放倒了再看看接口部分,该有的都有。千万别以为是联想新出的pc啊!为了给cpu散热,所以上面也开了个口cpu和cpu风扇&ndash;由sbabybird于12/19/200705:50:00下午在从容地狂奔上发表</p>做一个实验--关于把手机电池放冰箱里https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/Sat, 15 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/<img src="https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/20071215.JPG" alt="Featured image of post 做一个实验--关于把手机电池放冰箱里" /><p><img src="https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/20071215-1.JPG" +width="480" +height="360" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +偶然听到一个关于手机电池的传说:&quot;把老化的电池用纸包好,放进冰箱里冻上两天,这个电池就会起死回生。&quot;去网上搜索一下,发现很多人都在介绍这个&quot;绝招&quot;,也有人表示质疑,但是好像没有人亲身试验过,刚好我昨天换下来的那块电池还在,就顺手试一试这个方法,如果管用当然最好,如果不好使(这个可能性最大),那就把这条流言给终结了吧。我的那块旧电池包好放在冰箱的冷冻室里等候试验结果!&ndash;由sbabybird于12/15/200709:34:00上午在从容地狂奔上发表电池放冰箱的实验结果</p>新买了手机......电池!https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/Fri, 14 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/<p>新手机是没买,买了块电池倒是真的,我那块旧电池已经不行了,开始倚老卖老,随便打个电话就报电量低甚至关机,无奈选不到满意的新手机(请参见这里),而且手里这个旧手机其他一切正常,于是我决定先买块电池,再凑合用一段时间,起码用到咱们大陆开始上3G。</p> +<p>不过也有网友比较悲观,在网上发帖子说:&quot;大陆3G能用时,家祭无忘告乃翁!&quot;跑到卓越网上选了块原装电池(据说是原装),今天就给我送了过来,由于电池个头太小,我怕快递公司送货的拿着太轻松,觉得没有挑战性,会不乐意,就顺便再买了两本书,其中一本就是大名鼎鼎的霍大爷的《时间简史》留着我失眠的时候看,另一本是比较浅显的《万物简史》留着我上厕所时看。&ndash;由sbabybird于12/14/200701:00:00下午在从容地狂奔上发表</p>到那时候https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/Thu, 13 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/<img src="https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/20071213.png" alt="Featured image of post 到那时候" /><p>下班了,还在干活儿ing,瞅瞅我的任务栏:</p> +<p>一边开着TOAD配置数据库,一边开着Word看着文档,在Word的隔壁是牛逼的VC在那儿咔咔编译程序,SourceSafe正努力地Checkin一堆文件(脸都憋红了),点了两下&quot;开始菜单&quot;却不再搭理我,想开个Firefox看两个网页都不行。</p> +<p>唉!什么时候,硬盘像内存那么快,内存像硬盘那么大,就好了什么时候,内存像CPU缓存那么快,CPU缓存像内存那么大,就好了哼哼,到那时候&hellip;</p> +<p>估计是,Windows上来先把资源吃掉三分之一,然后TOAD和VC这些用来干活儿的工具再吃掉三分之一,最后打开Firefox把剩下的全吃掉!</p> +<p>&ndash;由sbabybird于12/13/200705:49:00下午在从容地狂奔上发表</p>第一场雪&堵车https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/Mon, 10 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/<img src="https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/20071210.png" alt="Featured image of post 第一场雪&堵车" /><p>早晨,出了门才知道下雪了,下的还不小,赶紧返回取雨伞。</p> +<p>在路灯的照射下,雪花还挺大的,好歹也是第一场雪,感觉挺不错的。</p> +<p>坐上车就傻眼了,公交车走的比蜗牛还慢,上高速的路口堵成一团,上了高速路还是堵成一团。</p> +<p>花了平时两倍的时间才到公司。</p> +<p>&ndash;由sbabybird于12/10/200709:23:00上午在从容地狂奔上发表</p>小鸟坐公交https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/Sat, 08 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/<p>今天在公交车上看到一个老大爷上车带着他的鸟(此处的&quot;鸟&quot;没有别的意思),离得挺远,赶紧掏出相机,抓拍两张。</p> +<p>不过也看不出这是什么鸟(麻雀?),被老大爷拴在棍子上应该不太爽吧。</p> +<p>&ndash;由sbabybird于12/08/200709:50:00上午在从容地狂奔上发表</p>妹妹开始写博客https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/Thu, 06 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/<img src="https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/20071206.png" alt="Featured image of post 妹妹开始写博客" /><p>中午收到小妹发过来的链接,打开一看,竟是她在新浪写的博客。</p> +<p>我粗略地看了一下,已经写了几篇文字了。</p> +<p>很显然地,她的作文比我写的要好,女孩子的感情细腻和多愁善感都表现在字里行间。</p> +<p>她这个年纪不去qq空间里玩&quot;踩啊踩&quot;,却在新浪开博客,套句比较流行的话说:&quot;我很欣慰啊!&quot;光阴荏苒,白驹过隙,转眼间小妹大学就要毕业,离开校园马上就要面临现实中残酷的就业环境,在网上和我聊了几句,言语里流露出对前途的迷茫。</p> +<p>是啊,我也曾感到过没有方向(现在何尝不是呢?),但是脚下的路总是要自己去走,未来还是把握在自己的手中。</p> +<p>我忽然想起某位牛人说过的话:&quot;睡着前最甜蜜;黎明前最黑暗;成功前最渺茫!&quot;</p> +<p>&ndash;PostedBysbabybirdto从容地狂奔at12/06/200705:40:00下午</p>大脑年龄的测试https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/Wed, 05 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/<img src="https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/20071205.png" alt="Featured image of post 大脑年龄的测试" /><p>午睡醒来,收到同事发来的Flash小游戏,据说可以根据你的反应速度测试出大脑的年龄,我试了一下,最后结果是:我的大脑有30岁了。</p> +<p>还算靠谱,比实际老了点儿(没办法,这都是干活儿累的啊),记得有次我做心理年龄测试,结果是60岁了。</p> +<p>(试试看)&ndash;由sbabybird于12/05/200701:26:00下午在从容地狂奔上发表</p>关于短信https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/Mon, 03 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/<img src="https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/20071203.png" alt="Featured image of post 关于短信" /><p>昨日喜收老友短信:“天气骤变,温度下降,注意身体,多喝水,以防感冒!”</p> +<p>遂感叹友情比暖气还要温暖,欲回复信息以示感谢,孰料又收其短信一条:“别回了,我的短信包月没用完,不发都浪费了!”</p> +<p>我靠!</p> +<p>另一哥们儿,初上网,受某网站蛊惑(告其可免费发短信),通过该网站为我发“免费”短信一条,结果害我收到若干条此网站发来的广告短信,不得不打电话给这一哥们儿,重复强调“天下没有白吃的午餐”这条真理。</p>A Dream !https://sbabybird.github.io/p/a-dream/Sat, 17 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/a-dream/<img src="https://sbabybird.github.io/p/a-dream/20071117.png" alt="Featured image of post A Dream !" /><p>听说国家大剧院下个月就要正式开演了,而且最低票价只有30元?</p> +<p>要真是30块能去看的话,俺就省吃俭用一阵子,看看到时候能不能去感受一下&quot;艺术的魅力&quot;。</p> +<p>&ndash;由sbabybird于11/17/200711:01:00上午在从容地狂奔上发表</p>捡到一首老歌--Ladyhttps://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/Sat, 17 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/<p>在Winamp的电台上捡到这首歌Lady,马上被kennyrogers的嗓音吸引了。</p> +<p>&ndash;由sbabybird于11/17/200702:10:00下午在从容地狂奔上发表</p>天气真的很冷了https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/Thu, 15 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/<p>天气真的很冷了,走在路上,我的鼻涕都冻出来了。</p> +<p>搭车时,公交车都冻得无法启动。</p> +<p>坐车时,腿冻得直打颤。</p> +<p>开门时,牙冻得直打架。</p> +<p>&ndash;吃饭去!&ndash;由sbabybird于11/15/200708:13:00下午在从容地狂奔上发表</p>Hello, Android!https://sbabybird.github.io/p/hello-android/Wed, 14 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/hello-android/<img src="https://sbabybird.github.io/p/hello-android/20071114-1.PNG" alt="Featured image of post Hello, Android!" /><p>到家后立即下载Android的SDK,按照帮助文档的提示,顺利运行伟大的&quot;HelloWorld!&quot;</p> +<p>&ndash;由sbabybird于11/14/200709:14:00下午在从容地狂奔上发表</p>下载了android的SDKhttps://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/Wed, 14 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/<img src="https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/20071114.PNG" alt="Featured image of post 下载了android的SDK" /><p>听说android放出SDK了,而且Google为了鼓励开发者开发出NB的应用特意发了1000万美元的红包,如果你能开发出有创意的精品软件,说不定也能拿到一笔钱呐!</p> +<p>我也去下载了SDK,这个是android的模拟器的样子,还挺漂亮的。</p> +<p>等晚上回家先写一个helloworld再说!</p> +<p>&ndash;由sbabybird于11/14/200704:53:00下午在从容地狂奔上发表</p>blogspot又封了?https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/<img src="https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/20071110.png" alt="Featured image of post blogspot又封了?" /><p>刚刚好了没几天,访问blogspot又&quot;该页无法显示&quot;了。&ndash;由sbabybird于11/10/200703:33:00下午在从容地狂奔上发表</p>偏色https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/<p>清晨的时候&ndash;由sbabybird于11/10/200709:02:00下午在从容地狂奔上发表</p>晚上有雾https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/<p>晚上有雾&ndash;由sbabybird于11/12/200708:00:00下午在从容地狂奔上发表</p>微波炉https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/<img src="https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/20071110-1.png" alt="Featured image of post 微波炉" /><p>画图板&ndash;由sbabybird于11/10/200703:31:00下午在从容地狂奔上发表</p>伪LOMOhttps://sbabybird.github.io/p/%E4%BC%AAlomo/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%AAlomo/<p>用A610拍的,后期经过调色,模仿LOMO的那种效果,嘿嘿。&ndash;由sbabybird于11/10/200708:53:00下午在从容地狂奔上发表</p>午休https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/<img src="https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/20071109.png" alt="Featured image of post 午休" /><p>&ndash;由sbabybird于11/09/200712:58:00下午在从容地狂奔上发表</p>小鸟在脚下飞翔https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/<img src="https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/20071112.png" alt="Featured image of post 小鸟在脚下飞翔" /><p>小鸟在脚下飞翔&ndash;由sbabybird于11/12/200701:56:00下午在从容地狂奔上发表</p>夜路https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/<p>路灯下我的影子&ndash;由sbabybird于11/10/200708:50:00下午在从容地狂奔上发表</p>一碗牛肉面https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/<img src="https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/20071113.png" alt="Featured image of post 一碗牛肉面" /><p>一碗牛肉面,我的晚饭&ndash;由sbabybird于11/13/200706:00:00下午在从容地狂奔上发表</p>早上去打了疫苗https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/<img src="https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/20071113-1.png" alt="Featured image of post 早上去打了疫苗" /><p>前两天单位组织体检,一切正常,就是没有乙肝的抗体,印象中上学的时候已经打过疫苗,不过人家医生说,可能年代太久远了(靠,有那么远么?)</p> +<p>抗体丢了,无奈,再去接种就是了。</p> +<p>打针时,问人家会不会疼?</p> +<p>人家护士答的很爽快:&quot;你就放心吧,我打了20年的针。。。。&quot;,</p> +<p>等我疼完了又接着说:&quot;没有一个不疼的!&quot;</p> +<p>&ndash;由sbabybird于11/13/200710:40:00上午在从容地狂奔上发表</p>重温Winamphttps://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/<img src="https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/20071108.JPG" alt="Featured image of post 重温Winamp" /><p>有几年不用Winamp了,最近Winamp又退出了10周年纪念版版。</p> +<p>我下载了一个,感觉听听里面的网络电台什么的还挺不错的(边上班边听欧美最流行的音乐哈)。</p> +<p>而且新版还包含了podcast的功能,可以搜索订阅网上的播客。</p> +<p>在家听音乐的话,我还是选择foobar。</p> +<p>&ndash;由sbabybird于11/08/200707:49:00下午在从容地狂奔上发表</p>昨天我二十四https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/<img src="https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/20071111.png" alt="Featured image of post 昨天我二十四" /><p>昨天我二十四,今天我二十五</p> +<p>&ndash;由sbabybird于11/11/200712:49:00下午在从容地狂奔上发表</p>Under a Violet Moonhttps://sbabybird.github.io/p/under-a-violet-moon/Sat, 22 Sep 2007 00:00:00 +0000https://sbabybird.github.io/p/under-a-violet-moon/<p>nan</p>关于电脑配置的遐想(瞎想)https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/Tue, 28 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/<p>偶然翻看书架上的旧书,发现我以前在上面随手胡乱写了一个“梦幻配置”,那时应该是2000年,根据当时的硬件发展状况,我写了一个可望而不可及的硬件配置。</p> +<p>具体什么配置就不说了(大概就是纯平显示器、笨三的cpu),反正现在让你用你还嫌慢呢。</p> +<p>现在六、七年过去了,心里又痒痒的,就让我再写一个可望而不可及的硬件配置吧,看看这个配置何时会过时。</p> +<p>中央处理器:IntelCore2QuadprocessorQ6700(4核,为了安静,散热采用水冷系统)</p> +<p>主板:IntelD975XBX2内存:海盗船TWIN2X2048-6400×4(共8G)</p> +<p>外存储:SanDisk64G闪存硬盘(用于系统存储),2TB磁盘阵列(用于文件存储)</p> +<p>显卡:丽台NVIDIAQuadroFX5600×2(每块显卡可接四台屏幕)</p> +<p>主显示器:Apple30&quot;CinemaDisplay(上网、影视、游戏)</p> +<p>副显示器:Apple20&quot;CinemaDisplay×6(地理、虚拟现实、平面设计等)</p> +<p>CreativeSoundBlasterX-FiElitePro+罗技Z5500(用于电影、游戏、非专业录音)</p> +<p>主板数字光纤输出+外置解码器+JBL监听音箱(用于欣赏音乐)</p> +<p>操作系统:自己动手定做(编译)Linux版本,桌面环境采用GONE(如果有兴趣就自己写个操作系统)</p> +<p>备注:机箱易采用高厚度、高散热静音机箱,此系统搭建完成后将用于书房,共七台显示器需要用到特殊的显示器支架。</p>What i've donehttps://sbabybird.github.io/p/what-ive-done/Sat, 18 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/what-ive-done/<p> </p>Don't Cryhttps://sbabybird.github.io/p/dont-cry/Sat, 11 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/dont-cry/<p>nan</p>live space 的表现让我很失望https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/Sat, 04 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/<p>不知是不是因为升级还没有进行完成,最近livespaces总是不能正常操作,用firefox访问有时还会出现乱码或者页面布局乱套,速度慢的惊人,资源占用很厉害。</p> +<p>再加上他有太多的限制,这些问题都让我感到对livespace失望透顶。</p> +<p>衷心希望Googleblogger能够早日解封!</p>昨天去电影院看了《憨豆先生的黄金周》https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/Sat, 04 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/<p>昨天去电影院看了《憨豆先生的黄金周》,感觉还不错,憨豆先生还是那么滑稽可乐,有着独特的幽默方式,我虽然没有笑到肚皮抽筋、掐着大腿,但是90分钟的电影还是让我由衷地笑了半个小时(累计)。</p> +<p>这里就不介绍剧情了(一般来说这种喜剧基本没剧情可言),网上到处都是介绍。</p> +<p>整个影片从头到尾憨豆先生都拿着那只SONY新出的DV,我估计SONY投了不少钱,还有就是片子的音乐配的还可以,轻快明亮。</p> +<p>总的来说还值得一看。</p> +<p>现在的电影院真是不景气啊,能容纳500号人的大厅坐了不到100人,不过挺爽的,谁让他们把票价订的那么贵,现在的票价是我小时候电影票价的100倍</p>在 live spaces 单篇日志中插入音乐 测试https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/Mon, 30 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/<p> </p>理发2007https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/Sun, 29 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/<p>对于我来说,理发是件很痛苦的事情,可能是有心理障碍吧。</p> +<p>小的时候被老爸强行摁住理过一次发,我像一只小鸡那样被夹在腿上无力反抗,由于整个过程我都在不停地叫骂那个理发的,所以那家伙下手还不含糊,把推子使得嚓嚓直响,对着我的头皮和耳朵可劲儿招呼。</p> +<p>整个过程是漫长的、痛苦的、令人发指的。</p> +<p>最后我看着镜子里的凸了吧唧的头,还不忘使劲儿拧了一把鼻涕抹在老爸的裤腿上。</p> +<p>此事后来成为笑谈,但爷儿俩在理发这种事情上一直都持有不同的观点,</p> +<p>当然了,我还只能提出强烈抗议、强烈不满、强烈谴责,但采取进一步措施的权利还是保留了。</p> +<p>一直到现在,当老爸跟我说:“快去把头发理一理!”时,我还是乖乖的狂奔去理发。</p> +<p>不过,现在我离老爸远了,他管不了啦(主要是没看见),我可以尽情地把头发留到很长,然后再一下剪到很短(一般是回老家之前)。</p> +<p>但是我的这种习惯却造成了另一件事情,给我理发的人极度不爽。</p> +<p>每当我拖着留了几个月的长发走进理发店,告诉理发的师傅给我可劲儿剪短时,伊总是很扭捏,假惺惺地跟我说:“哎呀!你的发质这么好,又好不容易留了这么长,剪了多可惜啊!”</p> +<p>其实谁不知道伊是想省点儿事儿,想拿剪刀在那三下两下剪完糊弄我。</p> +<p>于是我只好说:“嗯嗯,本来是想留长的,但是现在突然想开了,不想留了,还是麻烦您给我剪短吧!”</p> +<p>最后等着人家极不情愿(还很费时)地给我剪完,我才满意离去。</p> +<p>但是这招下次就不能用了,所以我总是选择不同的理发店,反正这玩意儿多得是!</p> +<p>今天我又理发了,从五一到现在大概有三个月了,很抱歉,又让一个理发师傅不爽了一把,不管他,这次理完了,谁知道我什么时候有心情理下回呀!</p>轻轻的,我将整蛊你https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/Tue, 24 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/<p>天气这么闷热,生活这么枯燥,何不搞点小把戏调剂一下气氛呢?</p> +<p>要是你现在刚好在办公室里,那么恭喜你了,下面我将教你几个在下秘密收藏的整蛊手段(一般人我不告诉他)。</p> +<p>前提条件:</p> +<p>1、你们用计算机办公;</p> +<p>2、你们使用的是Windows操作系统;</p> +<p>3、你要整蛊的同事没有暴力倾向;</p> +<p>4、他刚好暂时离开一下。</p> +<p>好了,准备好了就开始行动吧!</p> +<p>场景一:“我的密码被改了?!”</p> +<p>如果你的这位同事有锁定计算机的习惯,那就刚好实施一下,在他计算机的锁定状态下的密码框里提前敲入一个空格,这样一般他回来时不会发觉,等他输入完自己的密码后,会发现进不去了!(因为密码前面多输入了一个空格)。</p> +<p>场景二:“用来干活儿的软件没有反应了!”</p> +<p>如果他没有锁定计算机的习惯,那么刚才那个办法就不凑效了,怎么办呢,找到他用来工作的软件(VC,Word、Excel等),把帮助菜单里的“关于(about)”对话框给打开,然后用鼠标把对话框拖动到一个屏幕上看不见的地方。哈哈,等着吧,他回来会发现他用来工作的软件怎么也不听话了,无论点击哪儿都没有反应。</p> +<p>场景三:“鼠标不好使了”</p> +<p>现在大家都用光电鼠标了,而光电鼠标全靠它屁股底下的那个激光眼,没错!你又猜对了,拿个小纸团把它那个小眼睛堵住,赶紧去吧!鼠标瞎了之后就罢工了。</p> +<p>以上方法屡试不爽,我都亲自实验过,不过是别人在我身上实验的(这帮败家玩意儿)。</p> +<p>注:以上操作纯属娱乐!产生后果自负。</p>我心目中的完美手机https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/Mon, 23 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/<p>我手里这个Nokia6230用了3年了,买的时候多加了一块电池。前两天,其中一块电池寿终正寝了,剩下的这块也差不多了,感觉就像我的胃,一吃就饱,一会儿就又饿了。</p> +<p>我看着手里这个灰头土脸得就像从垃圾桶里捡回的手机,不禁有了换掉它的念头。</p> +<p>到网上翻了翻信息,结果让我很失望,感觉Nokia不太长进,眼看着人家索爱扛着音乐、摄像的大旗在市场上占了一席之地,自己也跟着别人的屁股转,也在那儿搞音乐手机、摄像手机,却忘了自己的特色。</p> +<p>没办法,别的牌子不愿意用,老N最近推出的新机不是我看不上就是我的钱包不让看(靠,就这还敢冒充Nokia的粉丝呀?)。</p> +<p>苹果的iPhone最近倒是炒得挺火,看起来也挺不错,可是总觉的那玩意儿离咱太遥远了,还是不多看了,以免中毒。</p> +<p>在查看了众多机型之后,长叹一声:“究竟什么样的手机才能让我满意呢!”</p> +<p>总结以下大概要满足以下几点: +1. 屏幕要足够大、分辨率不用极高但也不能太低 +2. 反应速度一定要快(目前我还没有发现一款智能手机反应速度飞快) +3. 个头不能太大、重量不能太沉 +4. 电话、短信功能好用 +5. 电量一定要持久,待机越长越好(这点最重要,功能再强没电也是白扯) +6. 非国产(这个不用多说)     </p> +<pre><code> 这些要求不过分吧?像什么摄像、音乐等功能都没要求,可愣是找不到这样一款手机,反复对比后发现还是目前手上的这个更合要求一些。 +算了,将就用吧。 +结果,昨晚做梦,梦见我也设计了一款手机,以上条件除了第六条其余都满足,取名就叫“nbPhone”把苹果的Phone的风头给压下去了,乔布斯都跟我急了。 +</code></pre>真正牛逼的人,终究会牛逼起来!https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/Sat, 21 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/<p>一个胖子,一个相貌平平而且豁牙的胖子,一个相貌平平而且豁牙的卖手机的胖子。</p> +<p>这样的人参加选秀节目,如果你是评委的话,你会让他通过海选吗?</p> +<p>如果他告诉你他要表演的是歌剧的话,你会跳下评委台把它踢出演播厅吗?!</p> +<p>我想你会的,因为当时英国的那个选秀节目的评委也是这样想的。</p> +<p>PaulPotts,这个我刚刚看到的英国小伙子,就是这样参加选秀节目的。</p> +<p>当他极不自然地站在舞台上,傻傻地告诉评委他要表演歌剧,评委们都笑了,表现得有些不耐烦。</p> +<p>可是,当他深情地唱起今夜无人入眠,当他那与帕瓦罗蒂一样激昂的男高音在演播厅响起时,赛场沸腾了!所有的人都站了起来,评委刁在嘴里的铅笔掉了下来,掌声雷动!</p> +<p>这段由朋友发过来、我甚至懒得看的视频,看得我头皮发麻。</p> +<p>在起了一身鸡皮疙瘩后,我的眼睛也不争气地湿润了(震撼,感动)。</p> +<p>看了别人写的介绍,我了解到,这个叫Paul的小伙子有着不太顺利的人生际遇(大多数人如此吧),但是他从未怀疑过自己的理想,仍然执着地追求着歌剧表演的艺术魅力,直到他被生活所逼而不得不靠卖手机来糊口时,仍未放弃!</p> +<p>终于,上天给了他最后一次机会,他成功了,他向世人再一次的证明了:真正牛逼的人,终究会牛逼起来!试了一下,msn的空间居然还可以插入视频!</p>几天不见,LiveSpace变了https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/Fri, 20 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/<p>我都已经好几天没有照看我的msn空间了(最近太累),今天访问一下,发现界面居然有了变化(别三日,刮目看),嗯哼,原来是微软的Live小组把咱的空间给升级了。</p> +<p>首先是界面的整体风格有了改变,我审美不行,看不出是好看还是难看,感觉貌似顺眼一些。空间上方仍然悬挂着那个大大的广告条(我一直看它不爽),工具条的宽度变宽了,这样会占用更多的空间。</p> +<p>进入空间的“自定义”功能,发现提供的模板多了一些,但一个比一个不耐看,所以我什么也没有动,继续保持现状。一直希望Live空间能够提供类似WordPress那样的模板(多漂亮啊),现在看来,要走的路还比较长(Live小组继续加油啊!)。</p> +<p>不过话又说回来,空间里整那么多花里胡哨的东东也没用,看得让人眼花缭乱的也不爽,我还是喜欢简约一点的风格,最好是让人进入我的空间后,感觉就像是打开了windows的记事本(过分了吧)。</p> +<p>本来Google提供的那个blog挺好的,可是总是不能访问,还是老老实实的在微软提供的共享空间里得瑟吧。</p> +<p>最后,再鄙视一下我自己,这几天由于懒惰而没有更新空间的内容,太不像话了!</p>嘛儿叫幸福?介就叫幸福!https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/Fri, 20 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/<p>随着一阵悦耳的下班铃声,我提前结束了一天的工作,按照惯例,周末了,要去打球。</p> +<p>叫上同事,抱起篮球,飞快地奔向球场。</p> +<p>终于逃脱了闪烁的计算机屏幕,逃脱了无聊的工作计划,逃脱了漫长的会议,逃脱了郁闷的代码&hellip;&hellip;</p> +<p>各位观众,各位听众,也许你们刚刚打开电梯,现在为您直播的是&ndash;火星杯篮球锦标赛!</p> +<p>穿着运动鞋牛仔裤正在捡球的那家伙就是我,看呐,我在球场上尽情地狂奔,边打球边哼着歌曲“啊哼三分球,它在空中停留,漂亮的假动作,帅呆了我&hellip;&hellip;哦shit!球丢了”。</p> +<p>一口气打了两三个小时,直打到有人气喘吁吁,打到有人双腿抽筋,打到有人口吐白沫还不肯离去。</p> +<p>天渐渐黑了,球框渐渐虚无缥缈起来,收拾家伙,撤!</p> +<p>走到站牌,有车,有座,爽!上了高速,一路畅通,爽!</p> +<p>到了家里,贤惠的老婆已经把饭菜做好,菜做的色香俱佳,啤酒冰得温度适中。</p> +<p>如果这个时候你问我,什么是幸福?我会自在地夹一口菜,然后再悠闲地喝上一口啤酒,眯起眼睛跟你说:“嘛儿叫幸福?介就叫幸福!”</p> +<p>幸福像花儿一样。</p>给点儿钱让我买吃的吧!https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/Thu, 12 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/<p>加班后回家的路上,路灯十分昏暗,还没有吃晚饭,心情极度郁闷,我缓缓(没力气狂奔了)走向公车站牌,走着,走着,突然!</p> +<p>一个黑影窜了过来,他跟我说:“兄弟,要盗版光盘不?”</p> +<p>我没有理他,继续走,走着,走着,突然!</p> +<p>又一个黑影窜了过来,他跟我说:“兄弟,要发票吗?”</p> +<p>我没有理他,继续走,走着,走着,突然(靠,有完没完啊!)</p> +<p>一大一小两个黑影窜了出来,原来是一个中年妇女领着一个七八岁的小女孩儿,夜色中看不清面目。小孩开口说话了:“叔叔,给点儿钱让我买吃的吧,我都饿了一天了&hellip;&hellip;”</p> +<p>边说还边做有气无力状,大人也在一边附和。说得我心里一软,鼻涕快掉下来了,差点儿掏钱。</p> +<p>但是转念一想,我TM也饿了快一天啦,也没吃饭呢,再何况,她们的行为也太让我愤怒了,因为就凭这些个破烂演技拿来唬我也太侮辱我的智商了吧!</p> +<p>于是,我友善的冲她们说道:“小朋友,你看”我用手指了指马路,“往前走500米,那里有家派出所,你过去找警察叔叔要些吃的好不好?”</p> +<p>小孩一时不吭声(台词没背下来),大人接着说:“你就可怜我们,给我们几块钱,买包方便面也行啊!”(我靠,我这么晚了还没吃饭,我求您别勾引我的食欲了!)</p> +<p>我没办法,掏出手机,说:“既然你们不愿意亲自过去,那我帮你们打110吧&hellip;&hellip;”</p> +<p>这句话还没有说完,说时迟那时快,只听得“嗖嗖”两声,两个人全都不见踪影,公车站牌下只剩下我和随风飘舞的碎纸片(好身手!)。</p>测试一把google的在线翻译工具https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/Fri, 06 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/<p>听说google出了在线翻译的工具,而且还广受大家的好评,在美国举行的一次翻译比赛中还拿了冠军。</p> +<p>我虽不是google的粉丝但也对google的产品挺感兴趣的,于是赶紧凑个热闹,看看伟大的google能不能给我带来惊喜。   由于我只会中文,那就看看google的英译中的水平怎么样。</p> +<p>废话少说,赶紧拿来一首英文歌词《youneededme》(我最喜欢的英文歌曲之一)。</p> +<p>YouneededmeIcriesatearyouwipeditdryIwasconfusedyouclearedmymindIsoldmysoulyouboughtitbackformeAndhelpmeupandgivemedignitySomehowyouneededmeYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeAndIcan'tbelieveit'syouIcan'tbelieveit'strueIneededyouandyouwerethereAndI'llneverleavewhyshouldIleaveI'dbeafoolCauseI'vefinallyfoundsomeoneWhoreallycaresYouheldmyhandwhenitwascoldWhenIlostyoutookmehomeYougavemehopewhenIwasattheendAndturnedmyliesbackintotruthagainYouevencalledmefriendYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeOh,yes,youneedmeYouneededme</p> +<p>先试了一下整段翻译,把歌词复制进去,出来的结果让我忍俊不禁google自动翻译的文字:</p> +<p>你需要我,我喊了眼泪,你擦它干,我摸你清我心中我卖出我的灵魂,你买回来,我和帮助我,让我有点尊严,你需要我你们给了我力量单独再次面对世界走出自己再次你就把我小时在室内一个台阶那么高,我几乎可以看到永恒,你需要我,多欧需要我,我也不相信是你,我不能相信这是真的,我需要你和你的笔在此,我永远不会离开,我为何要离开我就是一个傻瓜,我的事业总算发现有人真的三白族你握着我的手,当它冷时,我输了,你带我家,你给了我希望钨母鸡,我是在年底把我的谎言放回真话的时候,你甚至骂我的朋友,你克须缴我力量单独再次面对世界走出自己再次你就把我高美无源一个台阶那么高,我几乎可以看到永恒,你需要我,你需要我哦,多欧需要我,你需要我</p> +<p>唉,比较失望啊,试一下google的翻译网页的功能吧,找到歌词的网页,然后让它翻译你需要我</p> +<p>Icriedatear我哭了眼泪Youwipeditdry你擦它干Iwasconfused我很困惑Youclearedmymind你清除了我的心Isoldmysoul我卖我的灵魂Youboughtitbackforme你买回来,我Andheldtheearth召开地球Yougavemedignity你给我尊严Somehowyouneededme某种程度上,你需要我Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Ican'tbelieveit'syou我不能相信这是你Ican'tbelieveit'syou我不能相信这是你Ineededyou我需要你Andyouwerethere你有AndI'llneverleave,whyshouldIleave?和我永远不会离开,我为何要离开?Ineededyou我需要你canIfinallyfoundsomeonewhoreallycares可我终于发现有人真正关心(Youneededme)(你需要我)Youheldmyhand你牵我的手Itwascold据冷AndIwaslost我失去了Youtookmehome你带我家Yougavemelove你们给我的爱ThatIwasattheend我是在结束Iturnedmylife我把我的生命BackintotruthagainYouevencalledme'friend'放回真话的时候,你甚至骂我'朋友'Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Youneededme你需要我Youneededme你需要我Oh,yes,youneededme哦,你需要我Youneededme你需要我</p> +<p>呵呵,这下看起来还像那么回事儿.感觉机器还是代替不了人啊.翻译有感情的东西总是那么生硬.</p>堵你千遍也不厌倦?https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/Wed, 04 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/<p>统计了一下我平时上班所需要的时间,要是堵车的话大概要一个小时多一些,要是特别堵的话大概要两个小时,要是跑步的话大概得三个小时多一些(推算的,可以忽略),要是夜里打车去上班的话大概得二十多分钟(极少,也可以忽略)。</p> +<p>所以我一天大概有三个小时是堵在路上的,这导致了我的胃口极差,身材日渐消瘦,远看像铅笔近看像挂历!每天我都要坐在车上长吁短叹:“GR的堵车啊!”</p> +<p>是什么原因造成了这样的状况?</p> +<p>原因有很多种,我想最直接的原因可能就是因为路上出现了车祸。</p> +<p>无论是蹭了一下车屁股还是挂了一下后视镜,双方都会停好车,把路占上,然后撅起屁股在那儿查看爱车的状况,最后再各自打电话叫人&hellip;&hellip;</p> +<p>这个时候你要是刚好在路上,你就会感觉你置身于车的海洋,一辆挨着一辆的汽车望不到头,一片喇叭声,让人透不过气来。每当我乘坐的公交车慢慢的拱过出事地点,往往还能看到出事的双方(或多方)在那儿撅着。</p> +<p>这种情况每天都要出现,所以每天都要堵车。</p> +<p>据说从8月7号到8月20号,北京的交通管制要进行奥运预演.这对我们这些挤公交车上班的来说真是莫大的好消息啊!我们又可以感受像去年中非论坛期间的那种一路畅通的超快感了!</p> +<p>不过,快乐永远是短暂的,过了那几天,还是得老老实实的坐在车去上体验“堵车不堵心”。</p>曾经,俺也DIY (怀念我的第一只音箱)https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/Mon, 02 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/<p>最羡慕那些有米的音响发烧友,手里攥着大把的钞票,买音响器材出手阔绰,有没有一双“金耳朵”不知道,反正当音响店的老板告诉他“这套音响,在听蔡琴唱歌的时候能听见她咽吐沫的声音”时,或者跟他说:“那套设备,在听交响乐的时候可以听见拉琴那小子不小心把曲谱翻掉在地上的声音”的时候,他们就会毫不犹豫的掏出几千乃至几万块大洋,把那些“宝贝”搬回家,反复的回放,听听蔡琴在什么时候换了一口气,或者听听吹长笛的坐在第几排。</p> +<p>我也曾在这方面痴迷过,但仅仅是痴迷,没有什么实质性行动,原因很简单,掏不起那些闲钱呐!</p> +<p>不过,在很早以前,读初中的时候就开始摆弄那些“音响器材”了,只是一堆喇叭,功率很小,大部分是从旧收录机上拆下来的,“音源”也就只有卡带,我曾试着把喇叭放到各种地方以调整他们的“音效”,比如放在蚊帐上除了可以在睡眠时有音乐环绕外还兼具“驱蚊”的效果,我为了得到更多的低音也曾把喇叭嵌入到书桌里(整个桌子就是音箱哈),甚至把喇叭放到洗衣机里,那音质真是惨不忍听。</p> +<p>反正受当时的条件限制,我也只能是像小孩摆弄玩具似的,玩一玩儿而已,毕竟当时升学才是最大的目标。</p> +<p>直到有一天,我翻看一本旧音响杂志,有人自制了个音箱,据说效果还不错,于是就动了自己也做一个的念头。</p> +<p>再后来,到了上中师的时候,有了大把的空闲时间(但还是没空闲的钱),决定纯手工制作一只“有源音箱”!说干就干,开始行动!首先考虑的是功放电路采用什么形式,当时最佳的方案是使用“LM-1875”功放芯片,但由于囊中羞涩,最终放弃,后来买来一块晶体管放大板,也算将就了,喇叭买了两只,一个高音,一个中低音(8寸),向我大舅要来了分频器。</p> +<p>让老家木匠邻居帮忙做了个音箱的框架,剩下的就是我和我的一个哥儿们亲自动手了。</p> +<p>箱体的材料比较奢侈,把我家的一个桌子给锯了(靠!太过分了)。</p> +<p>后来组装的时候才发现,我竟然忘了考虑功放的前级,没办法,再次求救与大舅,从旧收录机上拆下来一块板子作为前级(居然还可以调高低音调)。</p> +<p>就这样,前前后后忙活了有半个星期,我的音箱终于发出处女声了,这个时候音源已经是一台VCD,那个时候我好像对蔡琴不感兴趣,于是先听了一首陈慧娴的《归来吧》,真是天籁啊!我当时感动的鼻涕都快掉下来了!</p> +<p>当然了,我这么说是有一些夸张,其实音质不咋地,只是当时又没听过真正的音响,这只亲手做的音箱,让我体验到了充足的低音(说到低音,要感谢我的姥爷,他给了我一只大号的电源,具体功率不知道,反正很大很大),震耳欲聋的低音,就像是有人拿着锤子在敲打我的胸膛。</p> +<p>这只音箱在当时带给了我无限的快乐和满足感,后来就去省会读大学了,买了电脑,买了几百块的音箱,那只音箱就被我扔到了角落,上面布满了灰尘。</p> +<p>再后来,我干脆把它送给了我的大舅,听说他现在拿它当板凳,还挺结实的!</p>饭否,一群人的喃喃自语https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/Sat, 30 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/<p>国外新兴一个叫Twitter的Web2.0站点,听说最近很火爆,很多人在那里叽叽咕咕,说一些有想法但又不至于发一篇bolg的“废话”。</p> +<p>我去看了一眼,感觉跟那帮人文化差异挺大的也就没好意思去注册,但是国内的同志们也不示弱,一时间模仿该网站理念的站点如雨后春笋般涌现。</p> +<p>在这些国内的叽咕站点里,有朋友就给我推荐这个“饭否”,说是一个迷你Blog,像Twitter一样,只是大家都是中国人,叽咕的内容比较容易懂一些。</p> +<p>我这个人最爱尝鲜,就忍不住过去注册了一个帐号。</p> +<p>感觉还不错,可以绑定MSN,QQ等IM软件,方便通过IM软件在上面发言,甚至可以绑定手机,让你随时随地的把感受发到网上。</p> +<p>人气还是挺旺的,不断有人在上面喃喃自语,也不乏有一搭没一搭的聊天者。</p> +<p>发布的内容可以很无聊,比如“今天的天气真好”,也可以很有深度,比如“你们好啊,地球人!”</p> +<p>呵呵,由于没用多久,所以还不能多加评论,我怀我有自闭的倾向,现在有了“饭否”,偶尔在里面发一下实时的感受,发泄一下心情而已,就当我是面对着墙壁在一个人喃喃自语吧。</p>共享空间无法访问!惊得我一身冷汗!https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/Sat, 30 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/<p>早晨起来,像往常的周六一样,来到公司加班。</p> +<p>打开电脑,然后习惯性的访问我的msn空间,“该页无法显示&hellip;.”,不会吧,难道是网络断开了?</p> +<p>没有啊,空间主页还是可以访问的,怎么一切换到我的空间就“该页无法显示”了呢?</p> +<p>强制刷新浏览器还是不行,随便点了一个朋友的空间,可以访问。</p> +<p>完了!莫非我的msnspace被封掉了?</p> +<p>上网搜索一下,看看有没有出现同样问题的朋友,结果显示msnspace无法访问是常有的事儿,很多人都有过类似经历(国内用户),这其中的原因不言自明啊!</p> +<p>我开始回忆,在我的日志里面到底有没有不该出现的敏感词汇?</p> +<p>想了半天,答案是没有。可是要说是msnsapce的故障吧,别人的空间又是可以访问的,无奈只好跟微软的客服发了封电子邮件,暂时还未收到回复。</p> +<p>我刚开始写网络日志,不为影响别人的看法,只为记录一下暂时的心情,本以为放到网上比放在本地还安全(相信微软的技术水平),结果还给我来这一手,想记录的时候却无法访问了,弄的心里还挺难受,担心以前的日志会不会丢掉啊!</p> +<p>ps:就在刚才,它又突然可以访问了!</p>鲜果在线,让我尝一口鲜果https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/Thu, 28 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/<p>偶然在diglog里发现了鲜果在线这个网站,名字很好听,于是乎,我就点击进去看了看。</p> +<p>看了之后真有一种相见恨晚的感觉,这个站点本身不提供什么信息,只是提供一个在线的RSS阅读器,而且它提供的RSS频道都是根据大家的兴趣和订阅量进行排序的,也就是说,看某个频道的人越多,该频道就越靠前。</p> +<p>这样就可以看到大家都喜欢看的东西,那些垃圾信息不会浮上来了(感谢Web2.0啊!)。</p> +<p>在线阅读的操作也十分简单容易上手,而且界面清爽,有比较强大的自定义功能(我靠,怎么这么像托儿啊),我订阅了一些精品的频道,比如Engadget、Solidot、cnBeta等,顺便订阅了王小峰的“不许联想”(这个博客比较能扯淡,这算是夸他了)。</p> +<p>这下就不用Firefox的rss阅读器了,直接把订阅的频道放在鲜果在线里存储到网上,在家和在公司都能看到同样的新鲜信息了,重装系统也不怕,把东西都放到网上,我想这也是以后互联网发展的趋势吧&hellip;&hellip;</p> +<p>ps:其实我早就把收藏的网址也放到网上了,在Firefox里安装一个扩展&ndash;yoono,这个插件也很牛,有点儿像美味书签(del.icio.us),不过yoono最近增加了收藏整个网页的功能所以比较起来就更喜欢yoono。</p>归去来https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/Wed, 27 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/<p>雨后的空气格外清新,天气还没有完全放晴,乡间的柏油路上还是湿的,远处缓缓驶来一辆摩托车,骑车的人叼着烟,看起来懒洋洋的,十分惬意,没错,那就是我。</p> +<p>我这几天回老家了,这个机会十分难得,暂时逃开北京繁忙的工作,溜回老家,无拘无束,自由自在。</p> +<p>目光所及,尽是农田。</p> +<p>空气中还飘散着青草混合大粪的味道,也算是沁人心脾吧。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">别再徘徊沉寂的心灵 +</span></span><span class="line"><span class="cl">别再留恋破碎的回忆 +</span></span><span class="line"><span class="cl">大地迎春雷抛弃你满腹的忧虑 +</span></span><span class="line"><span class="cl">缤纷的彩虹等着你 +</span></span><span class="line"><span class="cl">别再犹豫等待的心湖 +</span></span><span class="line"><span class="cl">别再沉迷过去的旧梦 +</span></span><span class="line"><span class="cl">暖暖的春风走向那灿烂的天涯路 +</span></span><span class="line"><span class="cl">耀眼的阳光迎着你。 +</span></span></code></pre></td></tr></table> +</div> +</div>我拿什么拯救你!我的晚餐!https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/Wed, 27 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/<p>今天又一次雨中漫步,原因很简单,受天气预报的干扰我又没带伞(干嘛要说又呢?)。</p> +<p>拿起背包从容地奔向车站,嘴里也不忘哼着:“我能想到最郁闷的事~~,就是下雨却没有带伞~~”。</p> +<p>淋雨就淋雨吧,挤上车,去思考一个很严重的问题,我的晚饭吃什么?</p> +<p>别笑!这确实是一个很严重的问题。</p> +<p>我不能像老婆在身边时那样说:“随便吧,做啥吃啥”(虽然心里想着最好炒两个菜,再冰上一瓶啤酒)。</p> +<p>自己动手去做的话,倒不是嫌麻烦,只是吃我做的晚饭简直是虐待自己(大饼卷着馒头沾着米饭吃)。</p> +<p>吃晚餐在我眼中确实是非常重要的事儿,平时上班的时候,早饭总是很虚无缥缈,不堵车的时候就慢慢坐在包子铺里吃包子,堵车时就没准儿了,也许是一个鸡蛋饼,也许是一个肉夹馍,也许,也许只有一杯开水。</p> +<p>午饭就是普通的工作餐,千篇一律,除了米饭还是米饭。</p> +<p>所以说,一日三餐也就晚饭是顿饭,我把吃晚饭看作是一件很神圣的事情,虽然不必在每次吃晚饭前都焚香沐浴,但我也在吃饭前做个深呼吸,抛开一天的烦恼,菩萨保佑、阿弥陀佛、无量天尊、阿门!感谢上天又让我吃了一顿晚饭!</p> +<p>然后就对生活重新燃起热情,对工作又重新充满信心,活着不就是为了这顿晚饭嘛!</p> +<p>可是,现在,我看了看车窗外,雨停了,道路渐渐不再拥堵,我的胃却越来越堵,没有胃口,吃还是不吃,这是个问题。</p> +<p>下了车,路边的麻辣烫小摊熏得我的胃一阵抽搐,不远处的油炸臭豆腐老板正在卖力的吆喝,卖盗版书的小贩倒是省事儿,在大喇叭里循环播放“六块一本儿,随便挑随便拣&hellip;&hellip;”,喊得我头晕眼花,我真想冲过拿起他的喇叭然后在空中抛一个完美的弧线。</p> +<p>还是那个晚饭情节,不想在外面饭馆里吃,尤其是一个人在饭馆里吃。</p> +<p>拿起馒头,就着音乐和啤酒&hellip;&hellip;我怎么会舍得你走,这一去竟是几个秋冬请你好好珍重无须挂念我太多我的爱和从前一样这承诺当是万般重要尽管容颜会老这一生无以为靠我还是会爱你到老我不会让你苦恼也许我始终无法释怀我会假装一切都好。</p>我拧你!https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/Tue, 19 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/<p>电视上充斥着广告,其中不乏精品,看完之后让人心情舒畅然后心甘情愿的掏腰包去买他们的产品。</p> +<p>但是大多数广告都庸俗不堪,让人看得心慌气短、胃部抽搐、浑身起鸡皮疙瘩。</p> +<p>这其中不必说“收礼只收搓澡巾”,也不必说“洗洗更健康”,单就是那位一口气上五楼的大爷就能让人抓狂了。</p> +<p>时间长了,这些广告我吐啊吐啊的也就习惯了,对于这类垃圾广告也有了一定的免疫能力。</p> +<p>但是最近又有一个广告冲破了我的心理防线!那就是某饮料的变态广告“我拧你!”</p> +<p>画面上,一群疯子在那里晃来晃去的踢腿,就像得了羊癫疯似的,整个广告看了让人不知道他们在表达什么另类理念,还好导演没忘记让他们每人手里拿着一瓶该品牌的饮料。</p> +<p>我估计作者的思路来源与某天他的鞋里进了个小石子,然后他就不停的甩啊甩,一直甩不出来,直到喝了他那个饮料才甩了出来,于是就创作了这个广告。</p> +<p>关键是你在电视上恶心恶心我也就算了,在上下班的公交车上居然也循环的播放,而且还衍生出不同的版本出来,里面就没有一个正常人,都拿个腿在那儿踢来踢去的。</p> +<p>也许从某种层面上来说,这也是一个很成功的广告,我看见很多人吵着要下载那段抽风的音乐作为手机铃声,但是我绝对不会去喝一口那种饮料,我怕晚上会做噩梦,然后再一脚把被子给踢到床底下去&hellip;&hellip;</p>冰箱里的灯https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/Mon, 18 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/<p>你问:“把大象关冰箱里共分几步?”</p> +<p>答:“分三步,把冰箱门打开,把大象放进去,把冰箱门带上”。</p> +<p>你又问:“可是把大象关进去之后里面黑乎乎的大象不害怕吗?”</p> +<p>反问:“你怎么知道关上之后里面还是黑乎乎的?你确定关上门之后那个灯灭了吗?”</p> +<p>你:“~~~~~~”</p> +<p>这个问题曾经也困扰我很久,因为冰箱的门只要一打开那个灯就亮起来,可是关上门之后你又看不到里面,所以还是不能确定里面到底是什么情况。</p> +<p>听说国外曾经有人为这事儿想不开去自杀,更有人为此急得抓耳挠腮夜里都睡不着觉,直到他把冰箱的门上凿了个洞,看清了原来关上冰箱门后那个小灯真的灭了,这才安稳的睡去(估计这哥们是一环保人士,担心那灯太费电)。</p> +<p>我没像那位牛人那样的使用暴力,但也自有办法。当然了,作为一个正常人,去探讨冰箱里的灯到底关了没有,这种做法实在是有些偏执(这不神经病吗!),你就姑且看作我是好奇心使然吧。</p> +<p>反正,我的冰箱刚弄回来的时候我还真就动用了高科技手段&ndash;拍照手机,我那手机带了个30W像素的鸡肋摄像头这下派上用场了。也是分了三步,把冰箱门打开,把手机定了时(定时10秒后拍摄)放进去,再把门带上。</p> +<p>心中默念,时间到,开门取出,查看照片,出现了不可思议的结果!照片里那个灯竟然还亮着!再试一次,还是亮着。</p> +<p>我那叫一个晕,觉得被冰箱厂家给忽悠了,口口声声说节能,这得多耗不少电呐。</p> +<p>在仔细阅读了两遍说明书之后,总算恍然大悟,原来那不是普通的灯,它不仅仅担任了照明的工作(难道还用来制冷啊?),还兼具杀菌的功效,在关上门之后,它再持续照射几分钟食物,起到杀菌抑菌的效果。哦,原来如此,人家陈老师说了:“人不能无聊到这种地步!”</p>灭蚊记https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/Sun, 17 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/<p>又到了蚊子最猖獗的季节了,现在每晚都有蚊子在我耳边盘旋,嗡嗡的声音若隐若现,让我神经高度紧张,却又懒得起来招呼它们,无奈,硬着头皮睡去。</p> +<p>第二天胳膊腿上到处都是蚊子们留下的吻痕&ndash;小红疙瘩,奇痒难忍。我发飙了,对付蚊子,我要开始行动!刚开始我采用的是防守战略,听说食用葱姜蒜可以使皮肤排出的汗味具有天然的驱蚊效果,本想采用此方法,但是吃了大蒜那味儿我更受不了只得放弃。</p> +<p>还是在洗澡的时候多放点花露水吧,“六神特效驱蚊花露水”据说效果很好,洗完澡往身上狂撒,安静的躺在床上,等待蚊子飘然而来再飘然而去。</p> +<p>结果,效果欠佳,蚊子依然如故的为我唱着催眠曲,而且我还被花露水熏得神清气爽、失眠健忘。</p> +<p>防守看来不行,改变战略。</p> +<p>男人!就要对别人狠一些!对付蚊子也不例外!</p> +<p>狂奔去超市,买来“枪手”喷雾剂、“睡得香”电蚊香、电蚊拍、紫外光灭蚊灯等等,我要发起进攻了!</p> +<p>晚饭毕,拿起“枪手”对卧室一通疯狂扫射,再将蚊香点燃,整个房间烟雾弥漫,关紧房门,外面客厅里的灭蚊灯发出幽幽的清华紫光。</p> +<p>这下蚊子们彻底的玩完儿了,对不起了诸位,我已经够瘦弱了,您就给我留点儿血吧。</p> +<p>沐浴后,推开卧室门,兴冲冲准备打扫战场,刚推开门我就被呛得眼泪鼻涕都下来了(我刚才喷的不是催泪瓦斯吧),蚊子倒是没有了,只是这屋里也不能待了(已经感觉呼吸困难了),无奈只有掐灭蚊香,打开窗户,终于,新鲜的空气伴随着新鲜的蚊子又进来了。</p> +<p>灭蚊灯、灭蚊拍也收效甚微。灭蚊战争暂告一段落,蚊子暂时领先。</p> +<p>先这样吧,实在不行就拿手拍吧,要是懒得拍就猛开空调把他们冻死,再或者,如果我的反应足够灵敏的话,我就在它们叮我的那一刹那,暗运内力把它们的嘴夹在肌肉里,我憋死它们!</p>自然醒https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/Sat, 16 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/<p>如果有那么一天,我在沙滩上走着,突然从沙子里踢出一个神灯,我擦了三下,彭!的一声窜出一个魔鬼,对我龇牙咧嘴,非得满足我三个愿望。</p> +<p>那么,我会许什么愿呢?我不会像周星驰那样无耻,许完了两个愿望后最后一个愿望竟是再要三个愿望。</p> +<p>我想我也应该不那么自私,我会把头两个愿望交给公益事业,比如世界和平、环境保护啥的,然后留一个愿望给自己,那就是&ndash;我想睡个自然醒。</p> +<p>自从告别了自在潇洒的大学生活,参加工作以后,我就没有睡够过,也不是完全没有时间睡觉,而是能有机会睡懒觉的时候我都睡不着。</p> +<p>在一周里里面,工作日期间肯定没睡懒觉的可能,一大早就狂奔到车站去挤车了,晚上又很晚才睡,所以这期间是十分缺觉的。</p> +<p>只有周末的早晨才能有机会赖在床上,可是问题来了,周末的早晨我倍儿精神!平日里闹钟响了还想把它摁掉再小睡一会儿,可一旦到了周末,我往往比闹钟醒的还早,而且再也睡不着。</p> +<p>这是为什么呢,苦苦思索之后,得到答案:周末是属于我自己的自由时间而且很短暂,我不舍的拿这点儿宝贵时间来睡觉!</p> +<p>平时没时间干的我只有等到周末了,平时听不了音乐就周末抱着音响使劲儿听,平时没时间弹琴就等到周末抱着电子琴使劲儿得瑟,平时没时间摄影等到周末就溜达出去一通狂拍&hellip;&hellip;等等,有这些个好事儿等着我,我就算是想睡也真就睡不着了。   所以,我也不祈求啥别的太奢侈的事儿,就让我睡个自然醒吧。</p>老婆回家的第七天https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/Fri, 15 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/<p>老家那边有些事儿需要老婆回去处理一下,用不了几天,可是转眼已经一个周过去了,据说还需要再呆几天才能回北京来。</p> +<p>哎!郁闷呐!按照道理来说,作为一个正常的男人如果老婆回了娘家,那他应该感到万分的高兴才是(我曾经有个同事,从来都不吭声,结果有一次哼了一整天的小曲儿,一问才知道,人家老婆大人回娘家去了)。</p> +<p>高兴是高兴,可是晚饭没有着落了,眼看着冰箱里的东西被我一点点地吃光了,就连平时不爱吃的饺子也在前天被我从冰箱的最底层翻了出来。</p> +<p>家里实在没吃的那就在外面吃吧,昨晚上刚好有饭局,不吃白不吃啊,结果上当了,几个哥们儿都是贪杯的主儿,白的喝完换啤的,啤的喝完换冰的,一直喝到丧心病狂&hellip;&hellip;饭还没吃上几口。</p> +<p>搞得今天蔫了吧唧不说,还浑身上火,鼻炎发作,咽炎发作,苦不堪言。</p> +<p>站起来,叹了口气,转身就看到洗衣机里的衣服也快堆成小山了,都说能把袜子按颜色分类的男人和把袜子随便乱扔的男人是两种不同的生物,我显然是属于后者,看来只有等到周末统一解决了。</p>抽考https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/Thu, 14 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/<p>   高考刚过,每年的这个时候都会有一大帮人在哪儿声泪俱下的控诉这万恶的高考制度。</p> +<p>我也讨厌高考,但是在我的记忆里,另一种考试制度更令我恶心,那就是&mdash;-抽考!</p> +<p>在我上小学的时后,比较害怕的就是考试了,但最让我感到不安的是每个班级选拔“尖子生”的过程。</p> +<p>那个时候每到期末每个班级总是抽出学习成绩最好的几个同学参加镇上的抽考,他们的考试成绩直接代表了整个班级的学习成绩,也代表了老师的教学水平。</p> +<p>私下里大家管抽到的这些学生叫“尖子生”。</p> +<p>从小学到初中我几乎一路是“尖子生”,至于为什么要有“尖子生”,这样考试有什么意义我就不去想了,只知道如果被老师抽到当“尖子生”就全家开心,我在家也可以放肆一些,万一抽不到就没人给我好脸色。</p> +<p>好在屡次的抽考过程中我只有两次没有被选中,不知是幸运还是不幸。</p> +<p>其中一次是在小学二年级的时候,虽然没有被选中,但是也参加了考试(数学替考),当时我的情况是语文极差但数学很好(至少比那些“尖子”要好一些),老师为了他们的荣誉,便让我替另外一个考生参加了数学考试,试卷虽然是我答的却不能填写我的名字。</p> +<p>好在当时也没什么自尊心,也就爽快的答应了,现在想一想作为老师也太不应该了。(这也是我后来虽念了师范却最终没有选择做老师的原因之一)。</p> +<p>到后来就越来越抵制这种虚伪的考试,大概是四年级,我越来越贪玩,成绩真的不行了,要期末考试了,老师们纷纷挑选“尖子”,刚开始还被提名,后来经过多层过滤,勉强坚持到了最后一轮评测,直到我们伟大的辛勤的园丁说:“好了,那谁,你回去吧,其他人留下”。</p> +<p>于是我提着书包灰溜溜回家,心里却说不出的高兴,不用去参加TMD关系到班集体荣誉的考试了!爽!哼哼,我冷笑,冷笑。现在回忆起来,脑子里仍旧充斥着老师们那因为贪图班级的名次而扭曲的面容(这就是原因之二)。</p> +<p>不知道现在怎么样了,在当时,这样的考试制度,它伤了太多太多孩子的心。ps:今日饮酒过渡沉醉不知归路兴尽打车走误入小区深处呕吐、呕吐引来保安无数!</p>天气预报https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/Wed, 13 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/<p>早晨,NB烘烘的中国移动给我发天气预报说是阴转多云,在分析了昨晚电视上的预报加上收音机告诉我的降水概率后,我确定今天不会下雨,然后非常自信的没带伞就上班了,虽然头上的天阴的要滴水似的。</p> +<p>谁知现在的天气预报已经不准确到让人发指的地步了!从下车到家的那段路程我只好雨中快步了(跑啊)。</p> +<p>不是说现在计算机运算速度越来越快了吗?</p> +<p>不是说建立的数据模型越来越接近真实了吗?</p> +<p>不是说那什么风云N号也升空了吗?</p> +<p>嗯?!忽悠谁啊!</p> +<p>上次就报给我说最近西伯利亚那边有情况,未来几天有大风降温的天气,搞得我捂了一身痱子!现在到处是天气预报,各大网站上有,报纸上有,QQ上有,收音机、电视就更有了,而且还花样儿繁多,一会儿是穿衣指数,一会儿又洗车指数,最后还忽悠你个降水概率,有雨就有雨没雨就没雨,整个指数百分之60鬼才知道到底要不要下!</p> +<p>当然了,他们有预报准确的时候,那就是对局部地区的天气预报,反正局部地区天天要下雨甚至还有短时间的雷雨大风等强对流天气。</p> +<p>我妈就曾经十分关切的问我:“为什么局部地区天天下雨,这个地区到底在哪儿?住在那儿的人可怎么活哟!”</p> +<p>算啦,也不跟他们计较,我还是回去翻翻小学的语文课本,好好拜读一下里面的那篇《看云识天气》,以后再也不相信这GR的天气预报了!</p> +<p>慢着,突然想起了倪萍大婶子曾经在“综艺大观”上做的即兴方言版天气预报,啧啧,那叫一个准啊!</p> +<p>“社员同志们注意啦,哈。这个山东省荣成县寨子沟公社刘家村广播站现在开始播送天气预报,哈。这个明天头半晌儿阴有小雨儿,后半晌儿就变天了。南风转西北风7-8级。这个凄凄沥沥的小雨儿夹着嗖嗖的西北风,今儿刮,明儿刮儿,后儿还刮,一直刮到下个星期六,哈。这个咱再接着说天气预报。这个西北风一刮,这回最大的特点就是龙卷风,龙卷风啊,粮食要最重&hellip;.”  </p>小王https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/Tue, 12 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/<p>初来北京的时候,家里托着亲戚的亲戚的关系让我在一家单位实习,就像鲁迅小说里写的那样,掌柜的是一副凶脸孔,主顾也没有好声气。</p> +<p>那时我一个人住在前门外大栅栏里的一家小旅馆里。</p> +<p>我住的胡同往北走几步一拐就是北京著名的“大栅栏步行街”,那儿有着浓厚的京味儿,经常看到成群的外国鬼子。</p> +<p>他们不停的拍照,吃小吃,买工艺品,所以这里一天到晚人山人海热闹非凡。有时候我也去转转,只是转转,并不买东西,那些让老外一看见就双眼冒光的玩意儿对我并没有多大吸引力。</p> +<p>小王,我住的旅店里的服务员,瘦瘦的,头戴一顶鸭舌帽,手腕上戴了一只便宜手表。</p> +<p>一天下午,我一个人站在楼顶上特别无聊,正好小王上来,我递给他一根“中南海”</p> +<p>他笑笑接住说:“一个人在外无聊吧?”</p> +<p>我说:“是”他说“那我就给你讲讲这一片儿的故事吧!”</p> +<p>于是他就趴在栏杆上给我说了一通关于这个胡同的故事,说了这一带在清朝是曾经全是窑子。</p> +<p>他抽了不少烟,我说“中南海这烟太冲了这边有没有柔和一点儿的烟?”</p> +<p>他想了想说:“我抽的都是便宜烟,恩,不过便宜好抽就行&hellip;”</p> +<p>他给我说了两种。我到了晚上买来抽了几支觉得不好抽(那时我还不怎么抽烟)就都送给他了。</p> +<p>以后就时常在一起谈天,混得很熟了,他经常早早的就把我的暖壶打满开水给提上来。</p> +<p>只是又过了两三天,我一直也没见到小王,一问店老板才知道:“他回老家了,他是离家出走才来到这个小店的,没钱了,才在这儿打工,不求挣钱只要有吃有睡就行,前两天他哥哥找到这里就把他带回去了。”</p> +<p>老板很惋惜:“多好的孩子呀!”</p>早晨的阳光真是灿烂https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/Mon, 11 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/<p>早晨的阳光真灿烂,虽然天气湿热有点儿桑拿天的苗头,但是我的心情很好,阳光洒在我的工作服上像是镶了金边,很是耀眼。</p> +<p>对了,我是一个环卫工人,每天早晨都要在这儿清扫垃圾,这个工作是很神圣的,至少我这么认为,虽然和小时候的梦想(艺术家)差得很远,但是用某位相声演员的话说“这是一样一样一样的啊”!</p> +<p>我愉快地拿起扫把,自在地吹着口哨,再把这条街扫完就可以收工了。</p> +<p>我不由得加快了速度挥舞着扫把就像一个画家挥舞着手中的画笔,我气沉丹田暗用内力,短小的扫把被我使得是呼呼生风,卷起的沙尘就像一层薄雾。</p> +<p>这个时候你出现了,挎着小包,下了公共汽车,高跟鞋踩在平坦的人行道上发出清脆的得得响,你的小手微微举起遮住当前还不算猛烈的太阳。真漂亮啊!我暗自赞道。</p> +<p>上学时很不努力导致我的眼神儿非常好,我想,在工作时看到美女也算是一种福利吧!</p> +<p>看着你向我走来,越走越近,不知是热的还是累得,我的手心开始出汗,我攥紧了扫把更卖力的扫了起来,地上的落叶伴随着纸片在沙尘中轻轻飞舞。</p> +<p>你终于走到我的身边,冲我使劲的挥手,这么近的距离我终于看清了你的眼睛,很大、很圆,长长的睫毛。</p> +<p>你竟然停下了脚步,盯住我迷离的眼神和唏嘘的胡茬,我期盼着你能给我说些什么,虽然黑夜给了你黑色的眼睛,但你却翻了个白眼儿给我:“你就不能轻点儿扫吗!还让不让人走路了!”。</p> \ No newline at end of file diff --git a/post/page/1/index.html b/post/page/1/index.html new file mode 100644 index 000000000..c6c7baac4 --- /dev/null +++ b/post/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/post/ \ No newline at end of file diff --git a/post/page/10/index.html b/post/page/10/index.html new file mode 100644 index 000000000..519b3fb31 --- /dev/null +++ b/post/page/10/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/100/index.html b/post/page/100/index.html new file mode 100644 index 000000000..c886db74a --- /dev/null +++ b/post/page/100/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/101/index.html b/post/page/101/index.html new file mode 100644 index 000000000..09197fa79 --- /dev/null +++ b/post/page/101/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/102/index.html b/post/page/102/index.html new file mode 100644 index 000000000..58cd90cbd --- /dev/null +++ b/post/page/102/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/103/index.html b/post/page/103/index.html new file mode 100644 index 000000000..253f2f54b --- /dev/null +++ b/post/page/103/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/104/index.html b/post/page/104/index.html new file mode 100644 index 000000000..61900bd2e --- /dev/null +++ b/post/page/104/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/105/index.html b/post/page/105/index.html new file mode 100644 index 000000000..8143b2d0e --- /dev/null +++ b/post/page/105/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/106/index.html b/post/page/106/index.html new file mode 100644 index 000000000..eaaab8998 --- /dev/null +++ b/post/page/106/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/107/index.html b/post/page/107/index.html new file mode 100644 index 000000000..c9a884fcb --- /dev/null +++ b/post/page/107/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/108/index.html b/post/page/108/index.html new file mode 100644 index 000000000..e31e4cc73 --- /dev/null +++ b/post/page/108/index.html @@ -0,0 +1,37 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/109/index.html b/post/page/109/index.html new file mode 100644 index 000000000..a429f4cff --- /dev/null +++ b/post/page/109/index.html @@ -0,0 +1,36 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/11/index.html b/post/page/11/index.html new file mode 100644 index 000000000..6aabde97b --- /dev/null +++ b/post/page/11/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/110/index.html b/post/page/110/index.html new file mode 100644 index 000000000..84763b1da --- /dev/null +++ b/post/page/110/index.html @@ -0,0 +1,35 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/12/index.html b/post/page/12/index.html new file mode 100644 index 000000000..9b7c6bf62 --- /dev/null +++ b/post/page/12/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/13/index.html b/post/page/13/index.html new file mode 100644 index 000000000..e18591e7c --- /dev/null +++ b/post/page/13/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/14/index.html b/post/page/14/index.html new file mode 100644 index 000000000..9d92c3dce --- /dev/null +++ b/post/page/14/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/15/index.html b/post/page/15/index.html new file mode 100644 index 000000000..e9739b6a5 --- /dev/null +++ b/post/page/15/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/16/index.html b/post/page/16/index.html new file mode 100644 index 000000000..33aeb4a1f --- /dev/null +++ b/post/page/16/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/17/index.html b/post/page/17/index.html new file mode 100644 index 000000000..e3d1526a3 --- /dev/null +++ b/post/page/17/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/18/index.html b/post/page/18/index.html new file mode 100644 index 000000000..7c9983e32 --- /dev/null +++ b/post/page/18/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/19/index.html b/post/page/19/index.html new file mode 100644 index 000000000..8a3c40006 --- /dev/null +++ b/post/page/19/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/2/index.html b/post/page/2/index.html new file mode 100644 index 000000000..09df285b8 --- /dev/null +++ b/post/page/2/index.html @@ -0,0 +1,36 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/20/index.html b/post/page/20/index.html new file mode 100644 index 000000000..8ffd064b0 --- /dev/null +++ b/post/page/20/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/21/index.html b/post/page/21/index.html new file mode 100644 index 000000000..1e46c7931 --- /dev/null +++ b/post/page/21/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/22/index.html b/post/page/22/index.html new file mode 100644 index 000000000..093dcacfa --- /dev/null +++ b/post/page/22/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/23/index.html b/post/page/23/index.html new file mode 100644 index 000000000..c34e97bda --- /dev/null +++ b/post/page/23/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/24/index.html b/post/page/24/index.html new file mode 100644 index 000000000..2b48e6cea --- /dev/null +++ b/post/page/24/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/25/index.html b/post/page/25/index.html new file mode 100644 index 000000000..44ec50f9f --- /dev/null +++ b/post/page/25/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/26/index.html b/post/page/26/index.html new file mode 100644 index 000000000..f7ad07712 --- /dev/null +++ b/post/page/26/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/27/index.html b/post/page/27/index.html new file mode 100644 index 000000000..1b6494435 --- /dev/null +++ b/post/page/27/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/28/index.html b/post/page/28/index.html new file mode 100644 index 000000000..4cbc112d2 --- /dev/null +++ b/post/page/28/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/29/index.html b/post/page/29/index.html new file mode 100644 index 000000000..18e379966 --- /dev/null +++ b/post/page/29/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/3/index.html b/post/page/3/index.html new file mode 100644 index 000000000..88997f423 --- /dev/null +++ b/post/page/3/index.html @@ -0,0 +1,37 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/30/index.html b/post/page/30/index.html new file mode 100644 index 000000000..53dc39503 --- /dev/null +++ b/post/page/30/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/31/index.html b/post/page/31/index.html new file mode 100644 index 000000000..a47cf70dd --- /dev/null +++ b/post/page/31/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/32/index.html b/post/page/32/index.html new file mode 100644 index 000000000..8d776913f --- /dev/null +++ b/post/page/32/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/33/index.html b/post/page/33/index.html new file mode 100644 index 000000000..f30b0f7ee --- /dev/null +++ b/post/page/33/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/34/index.html b/post/page/34/index.html new file mode 100644 index 000000000..949851570 --- /dev/null +++ b/post/page/34/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/35/index.html b/post/page/35/index.html new file mode 100644 index 000000000..0e09c8de7 --- /dev/null +++ b/post/page/35/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/36/index.html b/post/page/36/index.html new file mode 100644 index 000000000..d9be3588c --- /dev/null +++ b/post/page/36/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/37/index.html b/post/page/37/index.html new file mode 100644 index 000000000..c17ab6113 --- /dev/null +++ b/post/page/37/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/38/index.html b/post/page/38/index.html new file mode 100644 index 000000000..bce2c4433 --- /dev/null +++ b/post/page/38/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/39/index.html b/post/page/39/index.html new file mode 100644 index 000000000..99ed28e4b --- /dev/null +++ b/post/page/39/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/4/index.html b/post/page/4/index.html new file mode 100644 index 000000000..cbed0cbd6 --- /dev/null +++ b/post/page/4/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/40/index.html b/post/page/40/index.html new file mode 100644 index 000000000..5d49396d7 --- /dev/null +++ b/post/page/40/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/41/index.html b/post/page/41/index.html new file mode 100644 index 000000000..dbfbae546 --- /dev/null +++ b/post/page/41/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/42/index.html b/post/page/42/index.html new file mode 100644 index 000000000..5f7922a73 --- /dev/null +++ b/post/page/42/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/43/index.html b/post/page/43/index.html new file mode 100644 index 000000000..1c89f7c79 --- /dev/null +++ b/post/page/43/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/44/index.html b/post/page/44/index.html new file mode 100644 index 000000000..4be12a063 --- /dev/null +++ b/post/page/44/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/45/index.html b/post/page/45/index.html new file mode 100644 index 000000000..5de5bca57 --- /dev/null +++ b/post/page/45/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/46/index.html b/post/page/46/index.html new file mode 100644 index 000000000..80a5267fd --- /dev/null +++ b/post/page/46/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/47/index.html b/post/page/47/index.html new file mode 100644 index 000000000..8f7064b48 --- /dev/null +++ b/post/page/47/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/48/index.html b/post/page/48/index.html new file mode 100644 index 000000000..fd07f670d --- /dev/null +++ b/post/page/48/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/49/index.html b/post/page/49/index.html new file mode 100644 index 000000000..5ec903df6 --- /dev/null +++ b/post/page/49/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/5/index.html b/post/page/5/index.html new file mode 100644 index 000000000..d350322f5 --- /dev/null +++ b/post/page/5/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/50/index.html b/post/page/50/index.html new file mode 100644 index 000000000..5408d3c48 --- /dev/null +++ b/post/page/50/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/51/index.html b/post/page/51/index.html new file mode 100644 index 000000000..e1db78e97 --- /dev/null +++ b/post/page/51/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/52/index.html b/post/page/52/index.html new file mode 100644 index 000000000..6171780d5 --- /dev/null +++ b/post/page/52/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/53/index.html b/post/page/53/index.html new file mode 100644 index 000000000..9c5793c89 --- /dev/null +++ b/post/page/53/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/54/index.html b/post/page/54/index.html new file mode 100644 index 000000000..feb92345d --- /dev/null +++ b/post/page/54/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/55/index.html b/post/page/55/index.html new file mode 100644 index 000000000..d41463416 --- /dev/null +++ b/post/page/55/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/56/index.html b/post/page/56/index.html new file mode 100644 index 000000000..4fde8a807 --- /dev/null +++ b/post/page/56/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/57/index.html b/post/page/57/index.html new file mode 100644 index 000000000..69aff1713 --- /dev/null +++ b/post/page/57/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/58/index.html b/post/page/58/index.html new file mode 100644 index 000000000..46f97d0d5 --- /dev/null +++ b/post/page/58/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/59/index.html b/post/page/59/index.html new file mode 100644 index 000000000..0fd7c50ab --- /dev/null +++ b/post/page/59/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/6/index.html b/post/page/6/index.html new file mode 100644 index 000000000..53ea14e69 --- /dev/null +++ b/post/page/6/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/60/index.html b/post/page/60/index.html new file mode 100644 index 000000000..36a6088fd --- /dev/null +++ b/post/page/60/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/61/index.html b/post/page/61/index.html new file mode 100644 index 000000000..6bf699cee --- /dev/null +++ b/post/page/61/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/62/index.html b/post/page/62/index.html new file mode 100644 index 000000000..2153438f7 --- /dev/null +++ b/post/page/62/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/63/index.html b/post/page/63/index.html new file mode 100644 index 000000000..e935d45e4 --- /dev/null +++ b/post/page/63/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/64/index.html b/post/page/64/index.html new file mode 100644 index 000000000..1d873c7ac --- /dev/null +++ b/post/page/64/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/65/index.html b/post/page/65/index.html new file mode 100644 index 000000000..e01a6cd11 --- /dev/null +++ b/post/page/65/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/66/index.html b/post/page/66/index.html new file mode 100644 index 000000000..93cffcb19 --- /dev/null +++ b/post/page/66/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/67/index.html b/post/page/67/index.html new file mode 100644 index 000000000..129287e6b --- /dev/null +++ b/post/page/67/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/68/index.html b/post/page/68/index.html new file mode 100644 index 000000000..61ae11258 --- /dev/null +++ b/post/page/68/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/69/index.html b/post/page/69/index.html new file mode 100644 index 000000000..91355ac00 --- /dev/null +++ b/post/page/69/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/7/index.html b/post/page/7/index.html new file mode 100644 index 000000000..0799f8d75 --- /dev/null +++ b/post/page/7/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/70/index.html b/post/page/70/index.html new file mode 100644 index 000000000..fa9978bd6 --- /dev/null +++ b/post/page/70/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/71/index.html b/post/page/71/index.html new file mode 100644 index 000000000..f332da24c --- /dev/null +++ b/post/page/71/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/72/index.html b/post/page/72/index.html new file mode 100644 index 000000000..3abc6c4ef --- /dev/null +++ b/post/page/72/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/73/index.html b/post/page/73/index.html new file mode 100644 index 000000000..1d48f94e5 --- /dev/null +++ b/post/page/73/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/74/index.html b/post/page/74/index.html new file mode 100644 index 000000000..47e89bb2a --- /dev/null +++ b/post/page/74/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/75/index.html b/post/page/75/index.html new file mode 100644 index 000000000..d57d32a01 --- /dev/null +++ b/post/page/75/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/76/index.html b/post/page/76/index.html new file mode 100644 index 000000000..721c76207 --- /dev/null +++ b/post/page/76/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/77/index.html b/post/page/77/index.html new file mode 100644 index 000000000..bb4bb766d --- /dev/null +++ b/post/page/77/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/78/index.html b/post/page/78/index.html new file mode 100644 index 000000000..6eb9729f3 --- /dev/null +++ b/post/page/78/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/79/index.html b/post/page/79/index.html new file mode 100644 index 000000000..e0dcf699c --- /dev/null +++ b/post/page/79/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/8/index.html b/post/page/8/index.html new file mode 100644 index 000000000..1fd197fec --- /dev/null +++ b/post/page/8/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/80/index.html b/post/page/80/index.html new file mode 100644 index 000000000..2d7c883c7 --- /dev/null +++ b/post/page/80/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/81/index.html b/post/page/81/index.html new file mode 100644 index 000000000..01503ac41 --- /dev/null +++ b/post/page/81/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/82/index.html b/post/page/82/index.html new file mode 100644 index 000000000..dc2ca46d2 --- /dev/null +++ b/post/page/82/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/83/index.html b/post/page/83/index.html new file mode 100644 index 000000000..d428e91a6 --- /dev/null +++ b/post/page/83/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/84/index.html b/post/page/84/index.html new file mode 100644 index 000000000..ed8fd1f22 --- /dev/null +++ b/post/page/84/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/85/index.html b/post/page/85/index.html new file mode 100644 index 000000000..f214f2934 --- /dev/null +++ b/post/page/85/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/86/index.html b/post/page/86/index.html new file mode 100644 index 000000000..349aec9e0 --- /dev/null +++ b/post/page/86/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/87/index.html b/post/page/87/index.html new file mode 100644 index 000000000..90a46b230 --- /dev/null +++ b/post/page/87/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/88/index.html b/post/page/88/index.html new file mode 100644 index 000000000..e9e604b70 --- /dev/null +++ b/post/page/88/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/89/index.html b/post/page/89/index.html new file mode 100644 index 000000000..cbd71895c --- /dev/null +++ b/post/page/89/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/9/index.html b/post/page/9/index.html new file mode 100644 index 000000000..4b7392a6b --- /dev/null +++ b/post/page/9/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/90/index.html b/post/page/90/index.html new file mode 100644 index 000000000..f910d79aa --- /dev/null +++ b/post/page/90/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/91/index.html b/post/page/91/index.html new file mode 100644 index 000000000..310dd159e --- /dev/null +++ b/post/page/91/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/92/index.html b/post/page/92/index.html new file mode 100644 index 000000000..e74179857 --- /dev/null +++ b/post/page/92/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/93/index.html b/post/page/93/index.html new file mode 100644 index 000000000..ceeeed924 --- /dev/null +++ b/post/page/93/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/94/index.html b/post/page/94/index.html new file mode 100644 index 000000000..713e216c3 --- /dev/null +++ b/post/page/94/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/95/index.html b/post/page/95/index.html new file mode 100644 index 000000000..d832f3d47 --- /dev/null +++ b/post/page/95/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/96/index.html b/post/page/96/index.html new file mode 100644 index 000000000..aa642b5f4 --- /dev/null +++ b/post/page/96/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/97/index.html b/post/page/97/index.html new file mode 100644 index 000000000..519fda96e --- /dev/null +++ b/post/page/97/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/98/index.html b/post/page/98/index.html new file mode 100644 index 000000000..b9987479f --- /dev/null +++ b/post/page/98/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/post/page/99/index.html b/post/page/99/index.html new file mode 100644 index 000000000..b28621aa8 --- /dev/null +++ b/post/page/99/index.html @@ -0,0 +1,38 @@ +Posts +

Posts

+ \ No newline at end of file diff --git a/scss/style.min.abbd69b2908fdfcd5179898beaafd374514a86538d81639ddd2c58c06ae54e40.css b/scss/style.min.abbd69b2908fdfcd5179898beaafd374514a86538d81639ddd2c58c06ae54e40.css new file mode 100644 index 000000000..bb25dfd5d --- /dev/null +++ b/scss/style.min.abbd69b2908fdfcd5179898beaafd374514a86538d81639ddd2c58c06ae54e40.css @@ -0,0 +1,10 @@ +/*!* Hugo Theme Stack +* +* @author: Jimmy Cai +* @website: https://jimmycai.com +* @link: https://github.com/CaiJimmy/hugo-theme-stack*/:root{--main-top-padding:35px;--body-background:#f5f5fa;--accent-color:#34495e;--accent-color-darker:#2c3e50;--accent-color-text:#fff;--body-text-color:#707070;--tag-border-radius:4px;--section-separation:40px;--scrollbar-thumb:hsl(0, 0%, 85%);--scrollbar-track:var(--body-background)}@media(min-width:1280px){:root{--main-top-padding:50px}}:root[data-scheme=dark]{--body-background:#303030;--accent-color:#ecf0f1;--accent-color-darker:#bdc3c7;--accent-color-text:#000;--body-text-color:rgba(255, 255, 255, 0.7);--scrollbar-thumb:hsl(0, 0%, 40%);--scrollbar-track:var(--body-background)}:root{--sys-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Droid Sans", "Helvetica Neue";--zh-font-family:"PingFang SC", "Hiragino Sans GB", "Droid Sans Fallback", "Microsoft YaHei";--base-font-family:"Lato", var(--sys-font-family), var(--zh-font-family), sans-serif;--code-font-family:Menlo, Monaco, Consolas, "Courier New", var(--zh-font-family), monospace}:root{--card-background:#fff;--card-background-selected:#eaeaea;--card-text-color-main:#000;--card-text-color-secondary:#747474;--card-text-color-tertiary:#767676;--card-separator-color:rgba(218, 218, 218, 0.5);--card-border-radius:10px;--card-padding:20px;--small-card-padding:25px 20px}@media(min-width:768px){:root{--card-padding:25px}}@media(min-width:1280px){:root{--card-padding:30px}}@media(min-width:768px){:root{--small-card-padding:25px}}:root[data-scheme=dark]{--card-background:#424242;--card-background-selected:rgba(255, 255, 255, 0.16);--card-text-color-main:rgba(255, 255, 255, 0.9);--card-text-color-secondary:rgba(255, 255, 255, 0.7);--card-text-color-tertiary:rgba(255, 255, 255, 0.5);--card-separator-color:rgba(255, 255, 255, 0.12)}:root{--article-font-family:var(--base-font-family);--article-font-size:1.6rem;--article-line-height:1.85}@media(min-width:768px){:root{--article-font-size:1.7rem}}:root{--blockquote-border-size:4px;--blockquote-background-color:rgb(248 248 248);--heading-border-size:4px;--link-background-color:189, 195, 199;--link-background-opacity:0.5;--link-background-opacity-hover:0.7;--pre-background-color:#272822;--pre-text-color:#f8f8f2;--code-background-color:rgba(0, 0, 0, 0.12);--code-text-color:#808080;--table-border-color:#dadada;--tr-even-background-color:#efefee;--kbd-border-color:#dadada}:root[data-scheme=dark]{--code-background-color:#272822;--code-text-color:rgba(255, 255, 255, 0.9);--table-border-color:#717171;--tr-even-background-color:#545454;--blockquote-background-color:rgb(75 75 75)}:root{--shadow-l1:0px 4px 8px rgba(0, 0, 0, 0.04), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 0px 1px rgba(0, 0, 0, 0.04);--shadow-l2:0px 10px 20px rgba(0, 0, 0, 0.04), 0px 2px 6px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);--shadow-l3:0px 10px 20px rgba(0, 0, 0, 0.04), 0px 2px 6px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);--shadow-l4:0px 24px 32px rgba(0, 0, 0, 0.04), 0px 16px 24px rgba(0, 0, 0, 0.04), 0px 4px 8px rgba(0, 0, 0, 0.04), + 0px 0px 1px rgba(0, 0, 0, 0.04)}[data-scheme=light]{--pre-text-color:#272822;--pre-background-color:#fafafa}[data-scheme=light] .chroma{color:#272822;background-color:#fafafa}[data-scheme=light] .chroma .err{color:#960050}[data-scheme=light] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}[data-scheme=light] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:100%;display:block}[data-scheme=light] .chroma .lntable>tbody{display:block;width:100%}[data-scheme=light] .chroma .lntable>tbody>tr{display:flex;width:100%}[data-scheme=light] .chroma .lntable>tbody>tr>td:last-child{overflow-x:auto}[data-scheme=light] .chroma .hl{display:block;width:100%;background-color:#ffc}[data-scheme=light] .chroma .lnt{margin-right:.4em;padding:0 .4em;color:#7f7f7f;display:block}[data-scheme=light] .chroma .ln{margin-right:.4em;padding:0 .4em;color:#7f7f7f}[data-scheme=light] .chroma .k{color:#00a8c8}[data-scheme=light] .chroma .kc{color:#00a8c8}[data-scheme=light] .chroma .kd{color:#00a8c8}[data-scheme=light] .chroma .kn{color:#f92672}[data-scheme=light] .chroma .kp{color:#00a8c8}[data-scheme=light] .chroma .kr{color:#00a8c8}[data-scheme=light] .chroma .kt{color:#00a8c8}[data-scheme=light] .chroma .n{color:#111}[data-scheme=light] .chroma .na{color:#75af00}[data-scheme=light] .chroma .nb{color:#111}[data-scheme=light] .chroma .bp{color:#111}[data-scheme=light] .chroma .nc{color:#75af00}[data-scheme=light] .chroma .no{color:#00a8c8}[data-scheme=light] .chroma .nd{color:#75af00}[data-scheme=light] .chroma .ni{color:#111}[data-scheme=light] .chroma .ne{color:#75af00}[data-scheme=light] .chroma .nf{color:#75af00}[data-scheme=light] .chroma .fm{color:#111}[data-scheme=light] .chroma .nl{color:#111}[data-scheme=light] .chroma .nn{color:#111}[data-scheme=light] .chroma .nx{color:#75af00}[data-scheme=light] .chroma .py{color:#111}[data-scheme=light] .chroma .nt{color:#f92672}[data-scheme=light] .chroma .nv{color:#111}[data-scheme=light] .chroma .vc{color:#111}[data-scheme=light] .chroma .vg{color:#111}[data-scheme=light] .chroma .vi{color:#111}[data-scheme=light] .chroma .vm{color:#111}[data-scheme=light] .chroma .l{color:#ae81ff}[data-scheme=light] .chroma .ld{color:#d88200}[data-scheme=light] .chroma .s{color:#d88200}[data-scheme=light] .chroma .sa{color:#d88200}[data-scheme=light] .chroma .sb{color:#d88200}[data-scheme=light] .chroma .sc{color:#d88200}[data-scheme=light] .chroma .dl{color:#d88200}[data-scheme=light] .chroma .sd{color:#d88200}[data-scheme=light] .chroma .s2{color:#d88200}[data-scheme=light] .chroma .se{color:#ae81ff}[data-scheme=light] .chroma .sh{color:#d88200}[data-scheme=light] .chroma .si{color:#d88200}[data-scheme=light] .chroma .sx{color:#d88200}[data-scheme=light] .chroma .sr{color:#d88200}[data-scheme=light] .chroma .s1{color:#d88200}[data-scheme=light] .chroma .ss{color:#d88200}[data-scheme=light] .chroma .m{color:#ae81ff}[data-scheme=light] .chroma .mb{color:#ae81ff}[data-scheme=light] .chroma .mf{color:#ae81ff}[data-scheme=light] .chroma .mh{color:#ae81ff}[data-scheme=light] .chroma .mi{color:#ae81ff}[data-scheme=light] .chroma .il{color:#ae81ff}[data-scheme=light] .chroma .mo{color:#ae81ff}[data-scheme=light] .chroma .o{color:#f92672}[data-scheme=light] .chroma .ow{color:#f92672}[data-scheme=light] .chroma .p{color:#111}[data-scheme=light] .chroma .c{color:#75715e}[data-scheme=light] .chroma .ch{color:#75715e}[data-scheme=light] .chroma .cm{color:#75715e}[data-scheme=light] .chroma .c1{color:#75715e}[data-scheme=light] .chroma .cs{color:#75715e}[data-scheme=light] .chroma .cp{color:#75715e}[data-scheme=light] .chroma .cpf{color:#75715e}[data-scheme=light] .chroma .gd{color:#f92672}[data-scheme=light] .chroma .ge{font-style:italic}[data-scheme=light] .chroma .gi{color:#75af00}[data-scheme=light] .chroma .gs{font-weight:700}[data-scheme=light] .chroma .gu{color:#75715e}[data-scheme=dark]{--pre-text-color:#f8f8f2;--pre-background-color:#272822}[data-scheme=dark] .chroma{color:#f8f8f2;background-color:#272822}[data-scheme=dark] .chroma .err{color:#bb0064}[data-scheme=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}[data-scheme=dark] .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:100%;display:block}[data-scheme=dark] .chroma .lntable>tbody{display:block;width:100%}[data-scheme=dark] .chroma .lntable>tbody>tr{display:flex;width:100%}[data-scheme=dark] .chroma .lntable>tbody>tr>td:last-child{overflow-x:auto}[data-scheme=dark] .chroma .hl{display:block;width:100%;background-color:#ffc}[data-scheme=dark] .chroma .lnt{margin-right:.4em;padding:0 .4em;color:#7f7f7f;display:block}[data-scheme=dark] .chroma .ln{margin-right:.4em;padding:0 .4em;color:#7f7f7f}[data-scheme=dark] .chroma .k{color:#66d9ef}[data-scheme=dark] .chroma .kc{color:#66d9ef}[data-scheme=dark] .chroma .kd{color:#66d9ef}[data-scheme=dark] .chroma .kn{color:#f92672}[data-scheme=dark] .chroma .kp{color:#66d9ef}[data-scheme=dark] .chroma .kr{color:#66d9ef}[data-scheme=dark] .chroma .kt{color:#66d9ef}[data-scheme=dark] .chroma .n{color:#f8f8f2}[data-scheme=dark] .chroma .na{color:#a6e22e}[data-scheme=dark] .chroma .nb{color:#f8f8f2}[data-scheme=dark] .chroma .bp{color:#f8f8f2}[data-scheme=dark] .chroma .nc{color:#a6e22e}[data-scheme=dark] .chroma .no{color:#66d9ef}[data-scheme=dark] .chroma .nd{color:#a6e22e}[data-scheme=dark] .chroma .ni{color:#f8f8f2}[data-scheme=dark] .chroma .ne{color:#a6e22e}[data-scheme=dark] .chroma .nf{color:#a6e22e}[data-scheme=dark] .chroma .fm{color:#f8f8f2}[data-scheme=dark] .chroma .nl{color:#f8f8f2}[data-scheme=dark] .chroma .nn{color:#f8f8f2}[data-scheme=dark] .chroma .nx{color:#a6e22e}[data-scheme=dark] .chroma .py{color:#f8f8f2}[data-scheme=dark] .chroma .nt{color:#f92672}[data-scheme=dark] .chroma .nv{color:#f8f8f2}[data-scheme=dark] .chroma .vc{color:#f8f8f2}[data-scheme=dark] .chroma .vg{color:#f8f8f2}[data-scheme=dark] .chroma .vi{color:#f8f8f2}[data-scheme=dark] .chroma .vm{color:#f8f8f2}[data-scheme=dark] .chroma .l{color:#ae81ff}[data-scheme=dark] .chroma .ld{color:#e6db74}[data-scheme=dark] .chroma .s{color:#e6db74}[data-scheme=dark] .chroma .sa{color:#e6db74}[data-scheme=dark] .chroma .sb{color:#e6db74}[data-scheme=dark] .chroma .sc{color:#e6db74}[data-scheme=dark] .chroma .dl{color:#e6db74}[data-scheme=dark] .chroma .sd{color:#e6db74}[data-scheme=dark] .chroma .s2{color:#e6db74}[data-scheme=dark] .chroma .se{color:#ae81ff}[data-scheme=dark] .chroma .sh{color:#e6db74}[data-scheme=dark] .chroma .si{color:#e6db74}[data-scheme=dark] .chroma .sx{color:#e6db74}[data-scheme=dark] .chroma .sr{color:#e6db74}[data-scheme=dark] .chroma .s1{color:#e6db74}[data-scheme=dark] .chroma .ss{color:#e6db74}[data-scheme=dark] .chroma .m{color:#ae81ff}[data-scheme=dark] .chroma .mb{color:#ae81ff}[data-scheme=dark] .chroma .mf{color:#ae81ff}[data-scheme=dark] .chroma .mh{color:#ae81ff}[data-scheme=dark] .chroma .mi{color:#ae81ff}[data-scheme=dark] .chroma .il{color:#ae81ff}[data-scheme=dark] .chroma .mo{color:#ae81ff}[data-scheme=dark] .chroma .o{color:#f92672}[data-scheme=dark] .chroma .ow{color:#f92672}[data-scheme=dark] .chroma .p{color:#f8f8f2}[data-scheme=dark] .chroma .c{color:#75715e}[data-scheme=dark] .chroma .ch{color:#75715e}[data-scheme=dark] .chroma .cm{color:#75715e}[data-scheme=dark] .chroma .c1{color:#75715e}[data-scheme=dark] .chroma .cs{color:#75715e}[data-scheme=dark] .chroma .cp{color:#75715e}[data-scheme=dark] .chroma .cpf{color:#75715e}[data-scheme=dark] .chroma .gd{color:#f92672}[data-scheme=dark] .chroma .ge{font-style:italic}[data-scheme=dark] .chroma .gi{color:#a6e22e}[data-scheme=dark] .chroma .gs{font-weight:700}[data-scheme=dark] .chroma .gu{color:#75715e}:root{--menu-icon-separation:40px;--container-padding:15px;--widget-separation:var(--section-separation)}.container{margin-left:auto;margin-right:auto}.container .left-sidebar{order:-3;max-width:var(--left-sidebar-max-width)}.container .right-sidebar{order:-1;max-width:var(--right-sidebar-max-width)}@media(min-width:1024px){.container .right-sidebar{display:flex}}@media(min-width:768px){.container.extended{max-width:1024px;--left-sidebar-max-width:25%;--right-sidebar-max-width:30%}}@media(min-width:1024px){.container.extended{max-width:1280px;--left-sidebar-max-width:20%;--right-sidebar-max-width:30%}}@media(min-width:1280px){.container.extended{max-width:1536px;--left-sidebar-max-width:15%;--right-sidebar-max-width:25%}}@media(min-width:768px){.container.compact{--left-sidebar-max-width:25%;max-width:768px}}@media(min-width:1024px){.container.compact{max-width:1024px;--left-sidebar-max-width:20%}}@media(min-width:1280px){.container.compact{max-width:1280px}}.flex{display:flex;flex-direction:row}.flex.column{flex-direction:column}.flex.on-phone--column{flex-direction:column}@media(min-width:768px){.flex.on-phone--column{flex-direction:unset}}.flex .full-width{width:100%}main.main{order:-2;min-width:0;max-width:100%;flex-grow:1;display:flex;flex-direction:column;gap:var(--section-separation)}@media(min-width:768px){main.main{padding-top:var(--main-top-padding)}}.main-container{min-height:100vh;align-items:flex-start;padding:0 15px;gap:var(--section-separation);padding-top:var(--main-top-padding)}@media(min-width:768px){.main-container{padding:0 20px}}/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}/*!* Hamburgers +* @description Tasty CSS-animated hamburgers +* @author Jonathan Suh @jonsuh +* @site https://jonsuh.com/hamburgers +* @link https://github.com/jonsuh/hamburgers*/.hamburger{padding-top:10px;display:inline-block;cursor:pointer;transition-property:opacity,filter;transition-duration:.15s;transition-timing-function:linear;font:inherit;color:inherit;text-transform:none;background-color:transparent;border:0;margin:0;overflow:visible}.hamburger:hover{opacity:.7}.hamburger.is-active:hover{opacity:.7}.hamburger.is-active .hamburger-inner,.hamburger.is-active .hamburger-inner::before,.hamburger.is-active .hamburger-inner::after{background-color:#000}.hamburger-box{width:30px;height:24px;display:inline-block;position:relative}.hamburger-inner{display:block;top:50%;margin-top:-2px}.hamburger-inner,.hamburger-inner::before,.hamburger-inner::after{width:30px;height:2px;background-color:var(--card-text-color-main);border-radius:4px;position:absolute;transition-property:transform;transition-duration:.15s;transition-timing-function:ease}.hamburger-inner::before,.hamburger-inner::after{content:"";display:block}.hamburger-inner::before{top:-10px}.hamburger-inner::after{bottom:-10px}.hamburger--spin .hamburger-inner{transition-duration:.22s;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.hamburger--spin .hamburger-inner::before{transition:top .1s .25s ease-in,opacity .1s ease-in}.hamburger--spin .hamburger-inner::after{transition:bottom .1s .25s ease-in,transform .22s cubic-bezier(.55,.055,.675,.19)}.hamburger--spin.is-active .hamburger-inner{transform:rotate(225deg);transition-delay:.12s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.hamburger--spin.is-active .hamburger-inner::before{top:0;opacity:0;transition:top .1s ease-out,opacity .1s .12s ease-out}.hamburger--spin.is-active .hamburger-inner::after{bottom:0;transform:rotate(-90deg);transition:bottom .1s ease-out,transform .22s .12s cubic-bezier(.215,.61,.355,1)}#toggle-menu{background:0 0;border:none;position:absolute;right:0;top:0;z-index:2;cursor:pointer;outline:none}[dir=rtl] #toggle-menu{left:0;right:auto}@media(min-width:768px){#toggle-menu{display:none}}#toggle-menu.is-active .hamburger-inner,#toggle-menu.is-active .hamburger-inner::before,#toggle-menu.is-active .hamburger-inner::after{background-color:var(--accent-color)}.menu{padding-left:0;list-style:none;flex-direction:column;overflow-y:auto;flex-grow:1;font-size:1.4rem;background-color:var(--card-background);box-shadow:var(--shadow-l1);display:none;margin:0 calc(var(--container-padding) * -1);padding:30px}@media(min-width:1280px){.menu{padding:15px 0}}.menu,.menu .menu-bottom-section{gap:30px}@media(min-width:1280px){.menu,.menu .menu-bottom-section{gap:25px}}.menu.show{display:flex}@media(min-width:768px){.menu{align-items:flex-end;display:flex;background-color:transparent;padding:0;box-shadow:none;margin:0}}.menu li{position:relative;vertical-align:middle;padding:0}@media(min-width:768px){.menu li{width:100%}}.menu li svg{stroke:currentColor;stroke-width:1.33;width:20px;height:20px}.menu li a{height:100%;display:inline-flex;align-items:center;color:var(--body-text-color);gap:var(--menu-icon-separation)}.menu li span{flex:1}.menu li.current a{color:var(--accent-color);font-weight:700}.menu .menu-bottom-section{margin-top:auto;display:flex;flex-direction:column;width:100%}.social-menu{list-style:none;padding:0;margin:0;display:flex;flex-direction:row;gap:10px}.social-menu svg{width:24px;height:24px;stroke:var(--body-text-color);stroke-width:1.33}.article-list{display:flex;flex-direction:column;gap:var(--section-separation)}.article-list article{display:flex;flex-direction:column;background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);overflow:hidden;transition:box-shadow .3s ease}.article-list article:hover{box-shadow:var(--shadow-l2)}.article-list article .article-image img{width:100%;height:150px;object-fit:cover}@media(min-width:768px){.article-list article .article-image img{height:200px}}@media(min-width:1280px){.article-list article .article-image img{height:250px}}.article-list article:nth-child(5n+1) .article-category a{background:#8ea885;color:#fff}.article-list article:nth-child(5n+2) .article-category a{background:#df7988;color:#fff}.article-list article:nth-child(5n+3) .article-category a{background:#0177b8;color:#fff}.article-list article:nth-child(5n+4) .article-category a{background:#ffb900;color:#fff}.article-list article:nth-child(5n+5) .article-category a{background:#6b69d6;color:#fff}.article-details{display:flex;flex-direction:column;justify-content:center;padding:var(--card-padding);gap:15px}.article-title{font-family:var(--article-font-family);font-weight:600;margin:0;color:var(--card-text-color-main);font-size:2.2rem}@media(min-width:1280px){.article-title{font-size:2.4rem}}.article-title a{color:var(--card-text-color-main)}.article-title a:hover{color:var(--card-text-color-main)}.article-subtitle{font-weight:400;color:var(--card-text-color-secondary);line-height:1.5;margin:0;font-size:1.75rem}@media(min-width:1280px){.article-subtitle{font-size:2rem}}.article-title-wrapper{display:flex;flex-direction:column;gap:8px}.article-time,.article-translations{display:flex;color:var(--card-text-color-tertiary);gap:15px}.article-time svg,.article-translations svg{vertical-align:middle;width:20px;height:20px;stroke-width:1.33;flex-shrink:0}.article-time time,.article-time a,.article-translations time,.article-translations a{font-size:1.4rem;color:var(--card-text-color-tertiary)}.article-time>div,.article-translations>div{display:inline-flex;align-items:center;gap:15px}.article-time{flex-wrap:wrap}.article-translations>div{flex-wrap:wrap}.article-category,.article-tags{display:flex;gap:10px}.article-category a,.article-tags a{color:var(--accent-color-text);background-color:var(--accent-color);padding:8px 16px;border-radius:var(--tag-border-radius);display:inline-block;font-size:1.4rem;transition:background-color .5s ease}.article-category a:hover,.article-tags a:hover{color:var(--accent-color-text);background-color:var(--accent-color-darker)}.article-list--compact{border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);background-color:var(--card-background);--image-size:50px}@media(min-width:768px){.article-list--compact{--image-size:60px}}.article-list--compact article>a{display:flex;align-items:center;padding:var(--small-card-padding);gap:15px}.article-list--compact article:not(:last-of-type){border-bottom:1.5px solid var(--card-separator-color)}.article-list--compact article .article-details{flex-grow:1;padding:0;min-height:var(--image-size);gap:10px}.article-list--compact article .article-title{margin:0;font-size:1.6rem}@media(min-width:768px){.article-list--compact article .article-title{font-size:1.8rem}}.article-list--compact article .article-image img{width:var(--image-size);height:var(--image-size);object-fit:cover}.article-list--compact article .article-time{font-size:1.4rem}.article-list--compact article .article-preview{font-size:1.4rem;color:var(--card-text-color-tertiary);margin-top:10px;line-height:1.5}.article-list--tile article{border-radius:var(--card-border-radius);overflow:hidden;position:relative;height:350px;width:250px;box-shadow:var(--shadow-l1);transition:box-shadow .3s ease;background-color:var(--card-background)}.article-list--tile article:hover{box-shadow:var(--shadow-l2)}.article-list--tile article.has-image .article-details{background-color:rgba(0,0,0,.25)}.article-list--tile article.has-image .article-title{color:#fff}.article-list--tile article .article-image{position:absolute;top:0;left:0;width:100%;height:100%}.article-list--tile article .article-image img{width:100%;height:100%;object-fit:cover}.article-list--tile article .article-details{border-radius:var(--card-border-radius);position:relative;height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-end;z-index:2;padding:15px}@media(min-width:640px){.article-list--tile article .article-details{padding:20px}}.article-list--tile article .article-title{font-size:2rem;font-weight:500;color:var(--card-text-color-main)}@media(min-width:640px){.article-list--tile article .article-title{font-size:2.2rem}}.widget{display:flex;flex-direction:column}.widget .widget-icon svg{width:32px;height:32px;stroke-width:1.6;color:var(--body-text-color)}.tagCloud .tagCloud-tags{display:flex;flex-wrap:wrap;gap:10px}.tagCloud .tagCloud-tags a{background:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--tag-border-radius);padding:8px 20px;color:var(--card-text-color-main);font-size:1.4rem;transition:box-shadow .3s ease}.tagCloud .tagCloud-tags a:hover{box-shadow:var(--shadow-l2)}.widget.archives .widget-archive--list{border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);background-color:var(--card-background)}.widget.archives .archives-year:not(:last-of-type){border-bottom:1.5px solid var(--card-separator-color)}.widget.archives .archives-year a{font-size:1.4rem;padding:18px 25px;display:flex}.widget.archives .archives-year a span.year{flex:1;color:var(--card-text-color-main);font-weight:700}.widget.archives .archives-year a span.count{color:var(--card-text-color-tertiary)}footer.site-footer{padding:20px 0 var(--section-separation);font-size:1.4rem;line-height:1.75}footer.site-footer:before{content:"";display:block;height:3px;width:50px;background:var(--body-text-color);margin-bottom:20px}footer.site-footer .copyright{color:var(--accent-color);font-weight:700;margin-bottom:5px}footer.site-footer .powerby{color:var(--body-text-color);font-weight:400;font-size:1.2rem}footer.site-footer .powerby a{color:var(--body-text-color)}.pagination{display:flex;background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);overflow:hidden;flex-wrap:wrap}.pagination .page-link{padding:16px 32px;display:inline-flex;color:var(--card-text-color-secondary)}.pagination .page-link.current{font-weight:700;background-color:var(--card-background-selected);color:var(--card-text-color-main)}@media(min-width:768px){.sidebar.sticky{position:sticky}}.left-sidebar{display:flex;flex-direction:column;flex-shrink:0;align-self:stretch;gap:var(--sidebar-element-separation);max-width:none;width:100%;position:relative;--sidebar-avatar-size:100px;--sidebar-element-separation:20px;--emoji-size:40px;--emoji-font-size:20px}@media(min-width:768px){.left-sidebar{width:auto;padding-top:var(--main-top-padding);padding-bottom:var(--main-top-padding);max-height:100vh}}@media(min-width:1536px){.left-sidebar{--sidebar-avatar-size:120px;--sidebar-element-separation:25px;--emoji-size:40px}}.left-sidebar.sticky{top:0}.left-sidebar.compact{--sidebar-avatar-size:80px;--emoji-size:30px;--emoji-font-size:15px}@media(min-width:1024px){.left-sidebar.compact header{flex-direction:row}}.left-sidebar.compact header .site-meta{gap:5px}.left-sidebar.compact header .site-name{font-size:1.4rem}@media(min-width:1536px){.left-sidebar.compact header .site-name{font-size:1.75rem}}.left-sidebar.compact header .site-description{font-size:1.4rem}.right-sidebar{width:100%;display:none;flex-direction:column;gap:var(--widget-separation)}.right-sidebar.sticky{top:0}@media(min-width:1024px){.right-sidebar{padding-top:var(--main-top-padding);padding-bottom:var(--main-top-padding)}}.sidebar header{z-index:1;transition:box-shadow .5s ease;display:flex;flex-direction:column;gap:var(--sidebar-element-separation)}@media(min-width:768px){.sidebar header{padding:0}}.sidebar header .site-avatar{position:relative;margin:0;width:var(--sidebar-avatar-size);height:var(--sidebar-avatar-size);flex-shrink:0}.sidebar header .site-avatar .site-logo{width:100%;height:100%;border-radius:100%;box-shadow:var(--shadow-l1)}.sidebar header .site-avatar .emoji{position:absolute;width:var(--emoji-size);height:var(--emoji-size);line-height:var(--emoji-size);border-radius:100%;bottom:0;right:0;text-align:center;font-size:var(--emoji-font-size);background-color:var(--card-background);box-shadow:var(--shadow-l2)}.sidebar header .site-meta{display:flex;flex-direction:column;gap:10px;justify-content:center}.sidebar header .site-name{color:var(--accent-color);margin:0;font-size:1.6rem}@media(min-width:1536px){.sidebar header .site-name{font-size:1.8rem}}.sidebar header .site-description{color:var(--body-text-color);font-weight:400;margin:0;font-size:1.4rem}@media(min-width:1536px){.sidebar header .site-description{font-size:1.6rem}}[data-scheme=dark] #dark-mode-toggle{color:var(--accent-color);font-weight:700}[data-scheme=dark] #dark-mode-toggle .icon-tabler-toggle-left{display:none}[data-scheme=dark] #dark-mode-toggle .icon-tabler-toggle-right{display:unset}#dark-mode-toggle{margin-top:auto;color:var(--body-text-color);display:flex;align-items:center;cursor:pointer;gap:var(--menu-icon-separation)}#dark-mode-toggle .icon-tabler-toggle-right{display:none}#i18n-switch{color:var(--body-text-color);display:inline-flex;align-content:center;gap:var(--menu-icon-separation)}#i18n-switch select{border:0;background-color:transparent;color:var(--body-text-color)}#i18n-switch select option{color:var(--card-text-color-main);background-color:var(--card-background)}html{font-size:62.5%;overflow-y:scroll}*{box-sizing:border-box}body{background:var(--body-background);margin:0;font-family:var(--base-font-family);font-size:1.6rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb)transparent}::-webkit-scrollbar{height:auto}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)}::-webkit-scrollbar-track{background-color:transparent}.article-page.hide-sidebar-sm .left-sidebar{display:none}@media(min-width:768px){.article-page.hide-sidebar-sm .left-sidebar{display:inherit}}.article-page .main-article{background:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);overflow:hidden}.article-page .main-article .article-header .article-image img{height:auto;width:100%;max-height:50vh;object-fit:cover}.article-page .main-article .article-header .article-details{padding:var(--card-padding);padding-bottom:0}.article-page .main-article .article-content{margin:var(--card-padding)0;color:var(--card-text-color-main)}.article-page .main-article .article-content .footnotes{font-family:var(--base-font-family)}.article-page .main-article .article-content img{max-width:100%;height:auto}.article-page .main-article .article-footer{margin:var(--card-padding);margin-top:0}.article-page .main-article .article-footer section:not(:first-child){margin-top:var(--card-padding)}.article-page .main-article .article-footer section{color:var(--card-text-color-tertiary);text-transform:uppercase;display:flex;align-items:center;font-size:1.4rem;gap:15px}.article-page .main-article .article-footer section svg{width:20px;height:20px;stroke-width:1.33}.article-page .main-article .article-footer .article-tags{flex-wrap:wrap;text-transform:unset}.article-page .main-article .article-footer .article-copyright a,.article-page .main-article .article-footer .article-lastmod a{color:var(--body-text-color)}.article-page .main-article .article-footer .article-copyright a.link,.article-page .main-article .article-footer .article-lastmod a.link{box-shadow:unset}.widget--toc{background-color:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);display:flex;flex-direction:column;color:var(--card-text-color-main);overflow:hidden}.widget--toc ::-webkit-scrollbar-thumb{background-color:var(--card-separator-color)}.widget--toc #TableOfContents{overflow-x:auto;max-height:75vh}.widget--toc #TableOfContents ol,.widget--toc #TableOfContents ul{margin:0;padding:0}.widget--toc #TableOfContents ol{list-style-type:none;counter-reset:item}.widget--toc #TableOfContents ol li a:first-of-type::before{counter-increment:item;content:counters(item,".")". ";font-weight:700;margin-right:5px}.widget--toc #TableOfContents>ul{padding:0 1em}.widget--toc #TableOfContents li{margin:15px 0 15px 20px;padding:5px}.widget--toc #TableOfContents li>ol,.widget--toc #TableOfContents li>ul{margin-top:10px;padding-left:10px;margin-bottom:-5px}.widget--toc #TableOfContents li>ol>li:last-child,.widget--toc #TableOfContents li>ul>li:last-child{margin-bottom:0}.widget--toc #TableOfContents li.active-class>a{border-left:var(--heading-border-size)solid var(--accent-color);font-weight:700}.widget--toc #TableOfContents ul li.active-class>a{display:block}.widget--toc #TableOfContents>ul>li.active-class>a{margin-left:calc(-25px - 1em);padding-left:calc(25px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li.active-class>a{margin-left:calc(-9px - 1em);padding-left:calc(9px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li.active-class>a{margin-left:calc(-60px - 1em);padding-left:calc(60px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li.active-class>a{margin-left:calc(-44px - 1em);padding-left:calc(44px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-95px - 1em);padding-left:calc(95px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-79px - 1em);padding-left:calc(79px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-130px - 1em);padding-left:calc(130px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-114px - 1em);padding-left:calc(114px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-165px - 1em);padding-left:calc(165px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-149px - 1em);padding-left:calc(149px + 1em - var(--heading-border-size));display:block}.related-content{overflow-x:auto;padding-bottom:15px}.related-content>.flex{float:left}.related-content article{margin-right:15px;flex-shrink:0;overflow:hidden;width:250px;height:150px}.related-content article .article-title{font-size:1.8rem;margin:0}.related-content article.has-image .article-details{padding:20px;background:linear-gradient(0deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.75) 100%)}.article-content{font-family:var(--article-font-family);font-size:var(--article-font-size);padding:0 var(--card-padding);line-height:var(--article-line-height)}.article-content>p{margin:1.5em 0}.article-content h1,.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6{margin-inline-start:calc((var(--card-padding)) * -1);padding-inline-start:calc(var(--card-padding) - var(--heading-border-size));border-inline-start:var(--heading-border-size)solid var(--accent-color)}.article-content figure{text-align:center}.article-content figure figcaption{font-size:1.4rem;color:var(--card-text-color-secondary)}.article-content blockquote{position:relative;margin:1.5em 0;border-inline-start:var(--blockquote-border-size)solid var(--card-separator-color);padding:15px calc(var(--card-padding) - var(--blockquote-border-size));background-color:var(--blockquote-background-color)}.article-content blockquote .cite{display:block;text-align:right;font-size:.75em}.article-content blockquote .cite a{text-decoration:underline}.article-content hr{width:100px;margin:40px auto;background:var(--card-text-color-tertiary);height:2px;border:0;opacity:.55}.article-content code{color:var(--code-text-color);background-color:var(--code-background-color);padding:2px 4px;border-radius:var(--tag-border-radius);font-family:var(--code-font-family)}.article-content a,.article-content code{word-break:break-word}.article-content .gallery{position:relative;display:flex;flex-direction:row;justify-content:center;margin:1.5em 0;gap:10px}.article-content .gallery figure{margin:0}.article-content pre{overflow-x:auto;display:block;background-color:var(--pre-background-color);color:var(--pre-text-color);font-family:var(--code-font-family);line-height:1.428571429;word-break:break-all;padding:var(--card-padding)}[dir=rtl] .article-content pre{direction:ltr}.article-content pre code{color:unset;border:none;background:0 0;padding:0}.article-content .highlight{background-color:var(--pre-background-color);padding:var(--card-padding);position:relative}.article-content .highlight:hover .copyCodeButton{opacity:1}[dir=rtl] .article-content .highlight{direction:ltr}.article-content .highlight pre{margin:initial;padding:0;margin:0;width:auto}.article-content .copyCodeButton{position:absolute;top:calc(var(--card-padding));right:calc(var(--card-padding));background:var(--card-background);border:none;box-shadow:var(--shadow-l2);border-radius:var(--tag-border-radius);padding:8px 16px;color:var(--card-text-color-main);cursor:pointer;font-size:14px;opacity:0;transition:opacity .3s ease}.article-content .table-wrapper{padding:0 var(--card-padding);overflow-x:auto;display:block}.article-content table{width:100%;border-collapse:collapse;border-spacing:0;margin-bottom:1.5em;font-size:.96em}.article-content th,.article-content td{text-align:left;padding:4px 8px 4px 10px;border:1px solid var(--table-border-color)}.article-content td{vertical-align:top}.article-content tr:nth-child(even){background-color:var(--tr-even-background-color)}.article-content .twitter-tweet{color:var(--card-text-color-main)}.article-content .video-wrapper{position:relative;width:100%;height:0;padding-bottom:56.25%;overflow:hidden}.article-content .video-wrapper>iframe,.article-content .video-wrapper>video{position:absolute;width:100%;height:100%;left:0;top:0;border:0}.article-content .gitlab-embed-snippets{margin:0!important}.article-content .gitlab-embed-snippets .file-holder.snippet-file-content{margin-block-end:0!important;margin-block-start:0!important;margin-left:calc((var(--card-padding)) * -1)!important;margin-right:calc((var(--card-padding)) * -1)!important;padding:0 var(--card-padding)!important}.article-content blockquote,.article-content figure,.article-content .highlight,.article-content pre,.article-content .gallery,.article-content .video-wrapper,.article-content .table-wrapper,.article-content .s_video_simple{margin-left:calc((var(--card-padding)) * -1);margin-right:calc((var(--card-padding)) * -1);width:calc(100% + var(--card-padding) * 2)}.article-content .katex-display>.katex{overflow-x:auto;overflow-y:hidden}.article-content kbd{border:1px solid var(--kbd-border-color);font-weight:700;font-size:.9em;line-height:1;padding:2px 4px;border-radius:4px;display:inline-block}.section-card{border-radius:var(--card-border-radius);background-color:var(--card-background);padding:var(--small-card-padding);box-shadow:var(--shadow-l1);display:flex;align-items:center;gap:20px;--separation:15px}.section-card .section-term{font-size:2.2rem;margin:0;color:var(--card-text-color-main)}.section-card .section-description{font-weight:400;color:var(--card-text-color-secondary);font-size:1.6rem;margin:0}.section-card .section-details{flex-grow:1;display:flex;flex-direction:column;gap:8px}.section-card .section-image img{width:60px;height:60px}.section-card .section-count{color:var(--card-text-color-tertiary);font-size:1.4rem;margin:0;font-weight:700;text-transform:uppercase}.subsection-list{overflow-x:auto}.subsection-list .article-list--tile{display:flex;padding-bottom:15px}.subsection-list .article-list--tile article{width:250px;height:150px;margin-right:20px;flex-shrink:0}.subsection-list .article-list--tile article .article-title{margin:0;font-size:1.8rem}.subsection-list .article-list--tile article .article-details{padding:20px}.not-found-card{background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);padding:var(--card-padding)}.search-form{position:relative;--button-size:80px}.search-form.widget{--button-size:60px}.search-form.widget label{font-size:1.3rem;top:10px}.search-form.widget input{font-size:1.5rem;padding:30px 20px 15px}.search-form p{position:relative;margin:0}.search-form label{position:absolute;top:15px;inset-inline-start:20px;font-size:1.4rem;color:var(--card-text-color-tertiary)}.search-form input{padding:40px 20px 20px;border-radius:var(--card-border-radius);background-color:var(--card-background);box-shadow:var(--shadow-l1);color:var(--card-text-color-main);width:100%;border:0;-webkit-appearance:none;transition:box-shadow .3s ease;font-size:1.8rem}.search-form input:focus{outline:0;box-shadow:var(--shadow-l2)}.search-form button{position:absolute;inset-inline-end:0;top:0;height:100%;width:var(--button-size);cursor:pointer;background-color:transparent;border:0;padding:0 10px}.search-form button:focus{outline:0}.search-form button:focus svg{stroke-width:2;color:var(--accent-color)}.search-form button svg{color:var(--card-text-color-secondary);stroke-width:1.33;transition:all .3s ease;width:20px;height:20px}a{text-decoration:none;color:var(--accent-color)}a:hover{color:var(--accent-color-darker)}a.link{box-shadow:0 -2px rgba(var(--link-background-color),var(--link-background-opacity))inset;transition:all .3s ease}a.link:hover{box-shadow:0 calc(-1rem * var(--article-line-height))rgba(var(--link-background-color),var(--link-background-opacity-hover))inset}.section-title{text-transform:uppercase;margin-top:0;margin-bottom:10px;display:block;font-size:1.6rem;font-weight:700;color:var(--body-text-color)}.section-title a{color:var(--body-text-color)} \ No newline at end of file diff --git a/search/index.html b/search/index.html new file mode 100644 index 000000000..0d65a1419 --- /dev/null +++ b/search/index.html @@ -0,0 +1,8 @@ +Search +

+

+ \ No newline at end of file diff --git a/search/index.json b/search/index.json new file mode 100644 index 000000000..a7db6db2f --- /dev/null +++ b/search/index.json @@ -0,0 +1 @@ +[{"content":"机器文摘 第 050 期 长文 基于 Github Pages 服务搭建个人博客 基于 Github Pages 服务搭建个人博客 这是我自己写的一篇文章,发布在我的博客。\n搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。\n但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。\n经过多年的实践,现在已有越来越多的人选择了使用免费且易用的 GitHub Pages 服务来搭建个人博客。\n然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。\n他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。\n这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。\n本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。\n人的大脑不是由爬行脑、哺乳动物脑、智人脑累加而成 心理学界有一个关于人类大脑流传很广的理论:人的大脑主要由三层不同能力的大脑构成,位于最核心的“爬行动物脑”、随着演化逐渐增加的“低级哺乳动物脑”,以及带来更多灵活性和语言能力的“高级脑”。\n这种理论给人的感觉就好像人的大脑是像洋葱那样,由一个“旧”的大脑结构逐渐添加“新”大脑形成。\n而且换句话说,青蛙和鱼仍然在我们身体里,我们只是有了更高级的东西把它们包裹了起来。\n然而以上理论只是心理学家所提出的一种错误观点,近年来随着生物科学的发展,越来越多的科学家开始指出这种错误。\n这篇《你的大脑不是洋葱,你的脑子里并没有一个爬行动物》是由神经科学家撰写,重点澄清了上述关于“三层大脑”的传言。\n文章指出:之所以这种理论流传甚广,是因为大家普遍对“进化论”的进化过程有所误解,大多数人认为进化过程是一种先低级再逐渐高级的线性过程。然而事实的进化是一种同步辐射进程。\n使用 Javascript 操作照片的 EXIF 信息 使用 Javascript 操作照片的 EXIF 信息 可交换图像文件格式(EXIF)是一种规范,用于指定图像和声音的格式。它通过元数据存储技术细节,所谓元数据即用来描述其他数据的数据,例如相机制造商和型号、图像拍摄日期和时间等信息。\n最初,EXIF仅用于JPEG和TIFF两种图像格式。然而,如今,其他文件格式如PNG、WEBP或HEIC也支持EXIF以用于元数据。\n本文将重点关注JPEG格式,探究其内部结构,然后展示如何在浏览器环境中通过JavaScript读取和更新相关的元数据。\nCSS 的自定义缓动曲线 使用 linear() 函数实现惊人的 CSS 缓动动画,随着新的 CSS linear() 缓动功能的出现,我们可以创建自然感觉的动画和过渡的可能性大大扩展。Jhey Tompkins 在本文中介绍了 CSS 缓动的当前状态,并演示了 linear() 函数令人期待的特性。 ​​​\n通过放大 ROM 芯片搞破解 gbrom,通过拍摄 ROM 芯片的显微照片,将里面固件的二进制代码还原了出来,硬破解的世界就是这么朴实无华。\n资源 免费开发云服务大全 free-for.dev。这个网站筛选收录了大量面向开发者提供的在线服务。收录的标准非常严苛:必须真正免费(免费试用的不算),如果套餐有时间限制,则至少提供 1 年的免费时间。收录的服务涵盖:云基础设施、内容托管、设计资源、字体、在线 IDE 、产品监控等。\n在线提示词工厂 promptperfect,来自 JinaAI 的 PromptPerfect。能自动生成提示词。让用户可以逐步调试提示词,提供了各种参数。我试着让它帮我编写 AI 作画的提示语,感觉比我自己写的要靠谱一些。\n更新的光线追踪教程 《花一个周末学会光线追踪》,Ray Tracing in One Weekend,这本在线电子书出新版了。真正从零开始手把手教你通过光线追踪进行三维场景渲染。 ​​​事实上整个系列一共包括三部曲,继续阅读《光线追踪:下一周篇》,将添加纹理、体积(如雾)、矩形、实例、光源,并支持使用包围体积层次结构(BVH)来处理大量对象。最后,在《光线追踪:往后余生篇》中,将深入探讨创建一个非常严谨的光线追踪器所涉及的数学。\n观点 专注是良药 不用过多考虑某些时间的投入是否值得,而陷入对时间流逝的焦虑。\n如果做一件事情能够使得一个人在一段时间内保持专注,就是非常值得做的事情。\n因为,“专注”本身就是收获成果的一部分。\n能够在快节奏的生活中,找到不容易被分散注意力、不被各种诱惑干扰、可以集中精力投入的事情,已属难得。\n“专注”做事看似简单,却是解决各种精神内耗的良药。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-09-26T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-20_hu7d1abb09c26e9e15004a42a4629a2c00_137410_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/","title":"机器文摘 第 051 期"},{"content":"背景 搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。\n但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。\n经过多年的实践,现在已有越来越多的人选择了使用免费且易用的 GitHub Pages 服务来搭建个人博客。\n然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。\n他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。\n这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。\n本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。\n需要预先掌握的技能和前置条件 需要先了解这些再往下阅读本文\n了解 Git 的概念和常用的操作,知道“分支”、“提交”、“推送”、“拉取”等概念。 拥有 Github 账号,并且能够独立完成“仓库创建”、“本地克隆”、“提交”、“推送”等操作。 了解“博客”本身只是一种“网站”:其内容由若干“网页”组成,读者通过浏览器访问博客网站所在的服务器以获取这些网页内容。 核心思路 简单来说,核心步骤只有三步:内容编辑、页面生成、网站发布。接下来的介绍均围绕这三件事展开。\n内容编辑 作者编写和编辑博客内容,包括编写文章、给文章配图、给文章归类等等活动都属于内容编辑。\n页面生成 如果希望将内容变成可发布的网站,则需要使用专用的软件工具(一般为静态网站生成器)将编辑的内容自动生成可供浏览器显示的博客网站页面。\n网站发布 有了网站页面,还只是一堆存放在本地的文件。若要放到互联网上进行访问,还需要一个服务器提供服务,将网站发布。\n如果采用独立建站的方式,这一步骤会涉及大量技术工作,比如服务器采购、Web服务应用程序安装、域名映射、SSL 安全证书、网络防火墙配置等等。\n但我们今天选择使用 Github 提供的 Pages 服务,这将大大降低上述操作的难度,很多技术细节将不必再多关注,已经由 Pages 服务默认配置好。我们只需享用配置好的环境即可。\n技术路线 Github Pages Github 本来是一个 Git 仓库托管服务商,帮助用户进行项目代码及数字资料的版本管理。不过随着用户规模提升,Github 也围绕版本管理提供了更多的辅助服务,这其中就包括 Pages 服务。\nGitHub Pages 是一项静态站点托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件,(可选)通过构建过程运行文件,然后发布网站。 可以在 GitHub Pages 示例集合中看到 GitHub Pages 站点的示例。\nPages 服务原本用于帮助托管在 Github 上的开源项目更便捷地发布自己的宣传页面。开发团队可以简单编写几个静态页面(HTML)然后放在托管的 Git 仓库中,由 Github 将这些页面以网站服务的方式发布出去,Github 既提供了服务器资源也提供了用于公网访问的专属 URL 地址。\n关于发布网站的专属 URL 地址的提供规则,Github 官方的介绍如下:\n若要发布用户站点,必须创建名为 \u0026lt;username\u0026gt;.github.io 的个人帐户拥有的存储库。 若要发布组织站点,必须创建名为 \u0026lt;organization\u0026gt;.github.io 的组织帐户拥有的存储库。 除非使用的是自定义域,否则用户和组织站点在 http(s)://\u0026lt;username\u0026gt;.github.io 或 http(s)://\u0026lt;organization\u0026gt;.github.io 中可用。 项目站点的源文件与其项目存储在同一个仓库中。 除非使用的是自定义域,否则项目站点在 http(s)://\u0026lt;username\u0026gt;.github.io/\u0026lt;repository\u0026gt; 或 http(s)://\u0026lt;organization\u0026gt;.github.io/\u0026lt;repository\u0026gt; 中可用。\n根据官方介绍,Pages 提供有三种不同的网站发布服务:用户站点、组织站点、项目站点。\n分别对应了“制作个人网站”、“制作团队组织网站”、“制作单个项目网站”的不同需求。\n针对个人博客的搭建,很显然使用 Pages 服务发布“用户站点”是最合适的选择。\n对于“用户站点”,Pages 最终会为用户提供的专属 URL 地址为:https://你的用户名.github.io,也就是说在 Gihtub 的一级域名 https://github.io 下给你免费提供了一个二级域名。之所以默认使用你的 Github 用户名,是因为要防止不同用户发布的地址重名导致冲突。\n按照官方介绍,你也可以使用自己购买的域名,通过自己的域名进行访问。不过这涉及到更复杂的话题和操作,不在本文讨论范畴。\n了解了以上基本信息后,在使用 Pages 服务时,可按照复杂度区分,采用如下几种不同的用法。\n最简单直接的使用流程 手工编写 HTML 页面文件(需要掌握网页制作知识)。 将页面文件推送到的 Github 仓库,对于“用户站点”来说,这个仓库的命名必须为“你的用户名.github.io”。 在 Github 中设置该仓库的 Pages 服务配置,主要是选择仓库的指定“分支”用于 Pages 服务获取待发布的网页文件。 Github 会按照上面介绍的规则给你提供一个 URL 访问地址(https://你的用户名.github.io),使用浏览器打开该地址即可访问到发布的网站了。 注:如果不理解 Git 仓库的“分支”概念,可以把它视为同一个仓库里不同的存储位置,不同的“分支”里面存储了不同的文件内容。\n这个流程仅适用于非常简单网站发布,比如只包含有一个页面,因为手工编写 HTML 页面的效率十分低下,且不利于持续更新维护。\n于是大家常用的方式是,使用一种叫做的东西,对于“博客”这类以静态页面为主的网站,十分适合。\n“静态站点生成器”可以理解为是一个“翻译”,它能自动将你编写的文本内容根据预先的配置信息,自动生成一个完整的网站所需的全部文件(HTML、JS、CSS等)。\n于是有了如下的改进流程:\n改进的使用流程 用户编辑好博客内容,形成保存在本地计算机的原始文档文件。 使用静态网站生成器将本地原始文档文件生成静态页面文件。 将静态页面文件推送到 Github 远端托管仓库。 Github Pages 服务自动被触发,将静态页面以网站形式发布出来。 用户通过指定 URL 地址访问已发布的博客内容。 到目前为止,已经可以较为流畅地执行博客编辑、生成、发布的工作流程了。\n但是这个流程里有个前置条件,作者必须在本地电脑上安装一个“静态站点生成器”,以用于输出转换后的、可供发布的页面。\n所以,为了方便,Github 提供了一个默认的静态网站生成器,上述第 2 步操作实际上可以在远端仓库自动执行,这样用户只需将原始文件上传至远端仓库即可,由 Github 直接在线上完成静态页面的生成和网站发布工作。\n静态站点生成器的选择 比较常见的静态站点生成器有:Jekyll、Hexo、Hugo 这三个。不在这里详细介绍了,因为功能都大同小异。在选定一个之后,需要去他们的官网查看文档以了解具体的使用细节,以便对自己的博客站点能够做到更深的定制。\n我在接下来的操作步骤里,选择使用 Hugo 这个生成器。\n主要原因是,Hugo 提供有相对来说比较美观的免费主题风格模板(Jekyll 也有漂亮的,但是收费。Hexo 的定制性很强,适合有网页开发能力的人自己开发主题)。\n我选择的主题模板是:hugo-theme-stack。\n操作步骤 建立 Github 仓库 点击这个超链接进入 hugo-theme-stack-starter 的 Git 仓库模板。 点击页面中的“使用此模板”按钮,以创建你自己的仓库(注意:需先登录自己的账号才能创建)。 建立好仓库(注意仓库命名为你的用户名.github.io)之后,会自动带有仓库模板的初始文件。 修改配置 将仓库下载到本地。 打开仓库里的 config 文件夹,里面存放有配置信息。 按照 hugo-theme-stack 的官方文档配置自己想要的效果(默认一般都够用,重点是修改自己的站点信息,如显示名称、URL 链接地址等等)。 这些配置主要在 config.toml 和 params.toml 两个文件里。 编写博客文章 生成器会默认去仓库的 content/post/ 文件夹下扫描其下面的所有文件夹和文件,遇到约定格式的 Markdown 文件就会转换成为可发布的 html 页面。具体约定可以查看官方的详细文档,这里介绍一种最简单的写一篇文章的过程。\n在 post 目录下新建一个文件夹用于存放文章的 Markdown 文件和插图文件,文件夹命名为希望编写的标题如:2023-09-21-怎样搭建个人博客。我个人习惯将不同年份的文章在post目录下再建一级目录按照日期或年份进行区分。 在刚建立的文件夹下新建名称为index.md的 Markdown 文件,文件名必须为 index.md 这是由 hugo 生成器约定的。 在刚建立的 Markdown 文件的头部添加必要的元信息(非常关键)。 1 2 3 4 5 6 7 8 9 --- title: 文章标题 date: 2023-09-21 categories: - 文章所属分类 tags: - 文章标签 1 - 文章标签 2 --- 编写文章内容。可以使用 Markdown 的语法随意定义格式,以及插入图片。插入的图片建议保存在同级目录(也就是刚才新建的那个)中。 推送到仓库及发布 将刚才修改配置文件保存。 将刚才编写的博客文章保存。 在本地提交 commit 并 push 到 Github 仓库。 稍等几分钟(给 Github 那端的 Hugo 生成器留出运行时间)。 在 Github 仓库的 “setting” 设置页面开启 Pages 服务(只需第一次)。 在 Pages 设置界面里的 Source 中选择 “Deploy from a branch” ,并在下面的分支选择下拉框中选择 “gh-pages”,保存。 访问你的博客站点 一般稍等几分钟之后,即可按照约定网址访问刚发布的内容了。 扩展阅读 运营自己的博客网站所需了解的概念和知识相对比较多,如果希望将自己的网站做的更加精美、有特色。\n除了能够持续产出高质量内容之外,建议阅读以下文章以了解相关知识:\n学习 web 开发。 ","date":"2023-09-21T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-10-50_hud71083d89a6fcf582c5ec86c790cb99f_29027_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/","title":"基于 Github Pages 服务搭建个人博客"},{"content":"机器文摘 第 050 期 长文 十八世纪的光学电报网络 当年读《基督山伯爵》的时候,有一个让我震惊的科技。\n主人公有一项复仇计划是破坏敌人的金融资产。计划采取的手段是收买了一个传递实时信息的人让其传递错误信息。\n而具体传递信息的手段是,每隔一段距离设一座瞭望塔,每个塔上有一个人,向一个方向用望远镜观看,远方的上级瞭望塔会有人发射信号弹,一连串的信号弹代表一定的信息,然后这个人再原样发射一遍,让后方的瞭望塔看见。信息就这样一级一级传递下去。\n信息经过编码,可以表达股票行情等信息,类似后来的电报系统,但是这是在十八世纪。\n读过之后我就一直有疑问,不知道小说是否虚构了这种信息传递技术,直到前几天我发现了这篇文章:《十八世纪的光学电报网络》。\n里面详细介绍了在两百多年前人类就已经发明了“光学电报”系统,并建立起了巨大的信息网络。信息传递速度达到了惊人的 1380千米/每小时。\nC 语言发展简史 要说 C 语言是计算机历史上最重要的编程语言应该不会有人反对吧。\n作为大多数人编程入门的母语,C 语言具有语法简洁、高性能(贴近计算机底层)、使用灵活、适用范围广泛等特点。\n虽然诞生于上个世纪 70 年代,但即便是在 2023 年的今天,C 语言仍然排在各大编程排行榜的考前位置,仍然是信息科技的重要支撑力量。\n《C 语言简史》,由丹尼斯·里奇(C 语言之父)撰写,是一篇难得的介绍 C 语言的诞生和发展的历史性文献。\nVB(Visual Basic)发展简史 前几天 HN 上有个从业近 30 年的老程序员发问:为什么 VB(Visual Basic)这么高效、好用的开发工具逐渐消失了?。\n被顶的最高的网友放出了《Visual Basic 从诞生到消失》这篇文章。\n在上世纪 80 年代末 90 年代初,Windows 操作系统刚刚崭露头角的时候,VB 已经在萌芽状态了。而且已经具有非常先进的组件化、可视化、低代码等超前思想。并且发明了“控件”、“消息触发”等概念。\n最初的版本与 BASIC 语言并无关系,只考虑了使用可视化开发并辅助简单的内嵌脚本,但是比尔·盖茨对 BASIC 十分热爱(毕竟那是微软起家的技术),亲自推动了组件化、可视化开发与 BASIC 语言结合,便诞生了 Visual Basic。\n得益于超前的可视化开发理念,VB 极大降低了当时开发应用程序的门槛,涌现出一大批开发者。包括当时那些不得不转型给个人电脑开发程序的大型机编程工程师。\n这一切在 VB 随着 Visual Studio 发布 6.0 的时候达到了顶峰。\n转折点出现在微软为了应对 Java 的威胁而推出 .Net 公共语言运行时的时候,VB 也被纳入到这套体系里,被成为 VB.Net ,扩充了复杂的语法和继承、多态等高级特性。\n对于那些真正喜欢 VB6 的人来说,这些都是唯恐避之不及的东西,更糟糕的是新的 VB.Net 无法兼容之前的代码,大量成果移植困难。\n之后更是随着网络信息科技的发展,Web 编程逐渐取代了 Windows 桌面编程,VB 这个伟大的技术,被淘汰也就是顺其自然的了。\n一个在网页里模仿 Excel 表格的故事 一位前端工程师,讲述了他在 2016 年受雇于 Uber(优步)时的一些开发往事。\n作为服务于数据工程师的内部研发团队,他所在的小组主要是给公司的数据分析人员提供内部工具,以便让他们能够更快地分析数据,更快的分析数据意味着更有可能在产品运营竞争里获胜。\n然而数据分析人员总是抱怨工具不满足要求,主要是操作界面,因为他们非常习惯“Excel”,每次提需求的时候总是说:“你就做得跟 Excel 一样就行”。\n作者最开始还试图跟用户解释要实现起来是多么困难,后来逐渐放弃了挣扎,并开始着手在网页里实现一个跟 Excel 一样的表格,而且他竟然实现了。\n故事的后来有些伤感,作者提供的工具并没有使得 “Uber” 在跟嘀嘀的竞争中胜出,相反地,“Uber”在中国的业务还被“嘀嘀”收购了。\n被用于数据分析的工具也被抛弃不再使用。\n后来作者选择了将那个像 Excel 的表格代码放在了 Github 进行开源,地址在这里。\n资源 通用 Web 应用服务器 NGINX Unit,通用 Web 应用服务器。是一个轻量且多功能的应用运行时,作为一个单一的开源服务器,它提供了您的 Web 应用程序所需的基本组件:运行应用程序代码(包括 WebAssembly)、提供静态资源、处理 TLS 和请求路由。\nUnit 是由 NGINX 团队成员从零开始创建的,以在运行时高度高效且完全可配置。最新版本是 1.31.0,于 2023 年 8 月 31 日发布。\n绿色安卓 App 合集 绿色安卓app合集。\n这个网站收集了一大批良心 app,全部没有广告且不要求隐私权限。\n几乎涵盖了日常使用的所有类型,包括艺术绘画、音乐播放器、笔记、文件管理、录音、拍照等。 ​​​\nnuejs nuejs,越来越多的人对前端开发的混乱感到不满了。不同的是有人选择抱怨,有人撸起袖子开干。nuejs 的作者觉得现在使用 React、Vue 等框架再加上若干服务端渲染框架,使得前端开发生态变得越来越复杂和掌握。于是自己动手开发了一个简单的轻量化框架,终极目标是构建一个简洁、高效的前端开发生态。\n1024 字节的网页,可显示 3D 地球 1024 字节的 JavaScript,在网页中显示动画 3D 地球模型,页面动画显示的就是其源代码。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 .\u0026lt;script\u0026gt; eval(z=\u0026#39;p=\u0026#34;\u0026lt;\u0026#34;+\u0026#34;pre\u0026gt;\u0026#34;/* ,.oq#+ ,._, */;for(y in n=\u0026#34;zw24l6k\\ 4e3t4jnt4qj24xh2 x/* =\u0026lt;,m#F^ A W###q. */42kty24wrt413n243n\\ 9h243pdxt41csb yz/* #K q##H######Am */43iyb6k43pk7243nm\\ r24\u0026#34;.split(4)){/* dP cpq#q##########b, */for(a in t=pars\\ eInt(n[y],36)+/* p##@###YG=[#######y */(e=x=r=[]))for\\ (r=!r,i=0;t[a/* d#qg `*PWo##q#######D */]\u0026gt;i;i+=.05)wi\\ th(Math)x-= /* aem1k.com Q###KWR#### W[ */.05,0\\ x;)p+=\u0026#34; *#\u0026#34;/* b. OQ####x#K */[e[x++]+e[x++\\ ]]||(S=(\u0026#34;eval\u0026#34;/* l `X#####D , */+\u0026#34;(z=\\\u0026#39;\u0026#34;+z.spl\\ it(B = \u0026#34;\\\\\\\\\u0026#34;)./* G####B\u0026#34; # */join(B+B).split\\ (Q=\u0026#34;\\\u0026#39;\u0026#34;).join(B+Q/* VQBP` */)+Q+\u0026#34;)//m1k\u0026#34;)[x/2\\ +61*y-1]).fontcolor/* TP */(/\\\\w/.test(S)\u0026amp;\u0026amp;\u0026#34;#\\ 03B\u0026#34;);document.body.innerHTML=p+=B+\u0026#34;\\\\n\u0026#34;}setTimeout(z)\u0026#39;)// 全球 IP 地址地理位置数据库 全球 IP 地址 地理位置数据库。含 IPV4 和 IPV6。 ​​​这篇文章里还介绍了构建 IP 地址地理数据库的实现原理和一套具有指导意义的实现方法。基本原理是:“互联网中的每个 IP 地址都由组织拥有或管理。可以向互联网注册机构查询WHOIS信息。”\n观点 为什么 Facebook 的 PyTorch 占有率赢了 Google 的 Tensorflow Pytorch 已经完全击败了 Tensorflow,成为 AI 开发框架的事实标准。Pytorch 一开始就专注于学术界,方向是把最牛的人吸引过来。而 Tensorflow 则倾向于软件工程炫技,做各种简单但是酷炫的功能。\n最终专业化的 torch 击败了 tensorflow 。 我觉得​​​还有一个原因就是 Google 特别容易弃坑,Tensorflow 中间也切换过前后不兼容的 API。\n越来越多的科技产品让人更好地欺骗自己 比如美颜相机、电影特效、游戏等,研发它们的主要目的就是让人们更好的实现自我欺骗和催眠。\n东方文明为什么警惕科技(我个人不完全同意) 中国古代对于科技非常警惕和打压的原因,也许是古人早就意识到科技(或技术)力量很容易对人类造成强烈反噬。\n观点来自 @​​​安东尼2001:量子自旋理论背后,是人类历史的轮回。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-09-19T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-40_hu3a4ea67a0e4e3f121ecef4f60ac92d88_250830_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/","title":"机器文摘 第 050 期"},{"content":"机器文摘 第 049 期 长文 在 Linux 环境里执行 Windows 应用程序 最近遇到一个难以启齿的需求,服务器是 Linux 环境,但是某项服务功能却需要执行一个 Windows exe 文件。\n不得已才想到要求助 Wine 这个经典中间层,据说可以使的 Linux 兼容大部分的 Win32 程序。\n但是又不想污染服务器的其他环境,于是选择在容器中运行。\n在网上找到了这篇《利用 Docker 容器和 Wine 在 Linux里运行 Windows 程序》,按照文中介绍的步骤成功实现了需求。\n基本步骤: 1、根据文章提供的 Dockfile 构建镜像; 2、运行镜像并注意配置运行容器的环境变量; 3、执行所需的 exe 程序。\nWindows 系统是怎样进行引导的 前不久,我在给笔记本更换大容量固态硬盘的时候,由于不愿重做系统,使用了硬盘克隆功能,将原盘整体信息直接克隆到新硬盘。\n结果克隆成功并替换安装硬盘之后,却没能正常引导进入 Windows,而是进入了一个类似 PE 系统的界面(猜测是原盘中厂家自制的),并告知我由于检测到硬件更换,拒绝引导,并建议我选择恢复系统。\n我猜测之前的隐藏分区可能有笔记本厂家做的一些特定引导程序,才导致这样的情况。\n我对系统引导的理解还停留在 MBR 分区表大面积应用的阶段。于是尝试删除了隐藏分区,并手动将系统盘分区设置为了 “激活”分区(事实上这时候已经错了,因为 GPT 分区表方式下无法采用这种引导方式了)。\n结果系统干脆直接无法引导。出现这种情况,我之前的知识储备显然不够用了。\n经过一番折腾和搜索,我才得知现在 Windows 8 及以上版本操作系统的电脑所采用的方式是 GPT 分区表 + UEFI 引导。\n也就是说硬盘上需要单独开辟一个分区存储负责进行操作系统引导的工作。这个分区平时对于操作系统的资源管理器不可见(但磁盘管理中可以看到),由主板上的 UEFI 程序(这个程序可以理解为 BIOS 的升级版)进行访问和管理。\n了解这个方式之后,就简单了,重新使用工具修改 GPT 分区并制作专用引导分区即可。\n最后,为了弄清这跟之前的 MBR 引导方式有什么区别,我找到了一位运维工程师总结得较到位的文章《Windows系统开机引导顺序简述及运维小结》。\n500 行代码写一个 C 编译器 500 行 Python 代码写一个 C 编译器。\n作者立下这个 flag 之后才发现任务有多难。\n主要是代码行数太少了,如果使用传统手段实现,可能这点儿代码量还不够写个语法分析器的。\n于是作者主动放弃了 AST (抽象语法树)的构建,采用 Token 提取和指令生成“一遍过”的方式,实现了一个相当“简洁”的 C 编译器。\n资源 假装弹钢琴 touchpianist,在线弹钢琴的网站(也提供手机 App 版),可以让你假装钢琴大师,只需要按键盘上的任意键,旋律就会自动演奏,不过你要控制敲击键盘的速度,以匹配原曲的节奏。我弹了一下,默认曲目是贝多芬的《月光奏鸣曲》,差点儿被自己陶醉了。 ​​​\nBun V1.0 bun-v1.0,拳打 node , 脚踢 deno 的 JavaScript 运营环境 bun 推出了 1.0 版本。主打一个“All in one”,号称可以一次性取代一揽子工具:node、npx、npm、webpack、tsc、babel、jest。一个工具包揽了运行、打包、包管理、转译、测试等所有事情,且速度是 nodejs 的 3 倍。\n对于这种吹的比较厉害的技术,保持关注,谨慎使用吧。\n开源基于 LLM 知识库平台 FastGPT - 基于 LLM 大模型的 AI 知识库问答系统。提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景。项目在 Github 开源,采用技术栈: NextJs + TS + ChakraUI + Mongo + Postgres(Vector 插件)。支持 GPT、Claude、Spark、ChatGLM 等多种 LLM 模型。\n开源基于 LLM 数据可视化平台 lida,微软出品的数据可视化工具库,特点是基于 LLM 对话模型进行生成,其生成的可视化代码支持多种可视化后端的语法,包括 matplotlib、seaborn、d3等。 ​​​\n观点 编程是一种体育锻炼 编程除了是一种可以以之谋生的专业技能,对于那些真喜欢编程的人来说,它还是一个心理疗愈工具。\n编程能使人专注,进入“心流”状态比较容易,也容易让人的心态平和。\n编程与体育锻炼一样,都是可以让人受益终生的活动。\n\u0026mdash;-来自@软件教书匠金旭亮。\n造成电子阳痿的一种因素 一个不容忽视的因素是现在游戏的加载速度,尤其是 PC 游戏。\n我们被碎片化信息惯得一秒钟都不想等待。\n每当想玩会儿 CS 或者地平线之类得游戏,光是等待游戏启动、地图加载等就足以让人放弃想玩的念头。\n更别提有些游戏还有一些跳都无法跳过得开场引导视频。\n所以我现在就算是玩也是偶尔打开模拟器玩一玩老游戏,带有状态存储,随时加载存档。\n据说有一部分游戏主机(比如新一代 XBox)有类似笔记本电脑的睡眠功能,开机就玩,随时进入上次未完成的任务。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-09-12T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-22_hu7c2fecfb9bfda307a8ff3b488a489fac_482154_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/","title":"机器文摘 第 049 期"},{"content":"机器文摘 第 048 期 长文 关于 Python 语言的一些统计数字 关于开源 Python 仓库的一些有趣统计,有人克隆了 PyPI 网站里所有 Python 包对应的 Github 仓库,并对这些仓库里的全部文件进行了分析和统计。\n1、排名前三的语法特性分别是:列表推导、fstring字符串格式化、注解;\n2、代码中大约包含有超过 2 万 5 千个密钥明文,泄露最多的是访问 Google API、OpenAI API和腾讯云 Secret ID;\n3、截止到 2023 年 8 月,所有源码加起来已超过 60TB ,文件数量超过 10 亿。\nWasm 技术让数据库执行 AI 模型 使用 Extism 将 WebAssembly 引入 PostgreSQL。\n这篇文章的作者介绍了一种方法,可以使用 Wasm 技术通过扩展插件的方式给 PostgreSQL 数据库增加 UDF (用户自定义函数),从而实现调用 AI 模型的能力。\nBitLocker 硬件加密能破解吗? BitLocker 是 Windows 下的存储加密技术,用于保护硬盘中的数据安全。\n未经解密的硬盘即使遗失或者被接入其他系统也无法进行读取。\n这在极大程度上带来了数据安全(不过仍有不少用户在不知情的情况下开启了 BitLocker 且未保存密钥,在重做系统的时候发现硬盘无法解密,数据无法恢复。。欲哭无泪。。)。\n然而这种加密方式也不是绝对安全,国外有技术爱好者对此进行了挑战,并使用一台逻辑分析仪成功绕过了加密。\n这篇文章进行了详细的记录。\n主要原理为:在系统开机启动过程中的某个时刻,加密芯片和 CPU 之间传输了未加密的信号。使用逻辑分析仪捕获该信号可以逆向出加密密钥。\n资源 监控网页信息变化的工具 changedetection,一个监控网站变化的工具。\n帮助用户密切关注商品打折、股票行情、政策发布等信息变动。\n支持通过网页可视化的方式指定监控页面区域。\n通过邮件、即时聊天软件、API调用等多种方式推送信息。可使用 Docker 部署,或者本地 Python 环境部署。\nSwitch 模拟器 Ryujinx 一个用c# 写的开源 switch 模拟器,该模拟器旨在提供卓越的准确性和性能、用户友好的界面以及稳定的版本构建。 ​​​\n文字缩写快捷键工具 为了减少打字量,国外这哥们写了个脚本将日常用语全部缩写了,只需敲入缩写字母,脚本自动完成完整句子的键盘输入。\n比如: st =\u0026gt; something ab =\u0026gt; about hw =\u0026gt; hardware sti =\u0026gt; sometime\n据小哥自己统计,使用这个脚本以后他已经减少了一半的键盘敲击量。\n项目名叫 compress 目前已开源,如果你有兴趣,改成支持中文也不是不可以。\nCanvas 手册 Canvas 是网页中用于图形绘制的基本元素,结合 JavaScript 可以实现各种复杂的图形效果和交互动画。我之前都是每次用到了的时候现去翻文档,对它的每个 API 都是一知半解。这里有一个Canvas 手册,详细介绍了 Canvas 的各种调用接口。适合希望深度使用及系统学习 Canvas。\n观点 “不要重复造轮子”是人为设置的一种限制 遇到需求不能满足的情况,是去“寻找轮子”还是“动手创造轮子”,这是两种不同的思维习惯。\n“寻找轮子”往往意味着寻找已有答案,将问题看为一种正常的状态,是“自古以来”、是“从来如此”。\n思维定势一旦形成,就很难改变,让人成了那个在沙漠中让美女帮他牵住骆驼的矮子。\n动手创造者往往是发现这种问题的人,他们不循规蹈矩,他们 Think different,是改变世界的人。\n“不要重复发明轮子”,这个原则用于工作中确实比较安全,他保证了不会浪费资源,并且避免了一定的技术风险。\n但也同时拒绝了伟大的创新。\n所以不要被这句话束缚,尽管去做自己的轮子。\n哪怕它一开始很丑。\n你的轮子必将使你与众不同,使你拥有不一样的视角,成为那个动手创造的人。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-09-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/","title":"机器文摘 第 048 期"},{"content":"机器文摘 第 047 期 长文 业余爱好者痴迷于工具,专业人士注重技能 业余爱好者痴迷于工具,专业人士注重技能。\n以原声吉他为例。在数字音乐制作和合成器盛行的时代,这个单独演奏的乐器可能显得有点古老。然而,在熟练音乐家的手中,它变成了一个充满迷人旋律和触动灵魂的载体。它甚至可能为更大的创意提供灵感,如果你直接跳到现代合成器就有可能会错过这些。原声吉他的简单性促使艺术家专注于演奏的细微之处,完善他们的指弹技巧,并通过每一次弹奏传达情感。真正的魔力不在于吉他本身,而在于将其演绎得生动活泼的音乐家的技艺。\n这篇文章读来深有感触。\n在解决问题的时候,我总是忍不住问自己,我这个方法是最优的吗?我使用的工具是不是最合适/最好的?\n这种心理,常常使我陷入对最佳实践和完美工具的追求中,而忘记了解决问题本身。\n时间久了,工具积累一大堆,但每个都未曾发挥其真正作用,一边老工具在吃灰,一边继续寻找新工具。\n差生文具多。\n正如文章中所说:真正的高手明白,应当拿起手里已有的工具,先行动起来。在这个过程中如果有机会创造美好的事物,好的工具自然会出现在眼前。\nCPU 的指令分支预测 现代的 CPU 基本都具有指令分支预测的特性,通过猜测后续会执行的指令分支,提前运行一些指令和设置状态,可以有效利用 CPU 的执行资源,提升效率。\n不过,如果预测准确的话效率提升十分明显,但是如果预测错误,CPU 就要多做一些事情(刷新后续预测的指令和相关的状态),随着现代 CPU 中指令流水线越来越复杂,这种代价也变得越来愈大。\n在编程的时候,编写一些对于 CPU 分支预测友好的代码,能够对性能产生极大的影响。\n这篇对于 CPU 的分支预测,我们能做什么耐心地从 CPU 的分支预测机制讲起,通过具体的代码举例,讲解了怎样让编写的代码对 CPU 分支预测这类优化更加友好。\nSSH 命令详解 SSH 命令详解,一篇对 SSH 命令的参数介绍十分详细且易懂的文章。\n通过举例让我彻底弄清楚了基于 SSH 的端口转发。\n另外还知道了可以在已有的 SSH 连接上执行补充命令,以实现不断开终端的情况下将远程主机上的端口转发到本机访问。 ​​​\n资源 开源的房子 wikihouse,是一个开源房屋建造网站,房子的图纸、模型均可从网站上下载,里面有各式各样的房屋建造资料,任何人都可以据此增删、设计、制造、组装自己的建筑。可以理解为建筑界的 github。 ​​​\n关掉 Edge 浏览器新增的圆角样式 Edge 浏览器的最新更新里,给所有页面强制增加了一个圆角边框,看起来很不习惯(丑陋)。\n经过研究,我发现,如果想恢复到之前的样子,可以在设置外观选项里关闭该特性。\n我已经关闭,并果断给这个功能特性反馈了负面评价。\nHello World Hello World ,这个仓库收录了几乎所有编程语言(997种)的 Hello world 程序。 ​​​\n前端开发代码大全 30secondsofcode。\n这个网站有大量可复用的代码片段,主要是 Javascript、CSS、HTML 、Python 等语言的内容,可以覆盖 Web 应用开发全栈。\n里面收录的代码段或者文章都很清新,每个都配有细心的解释,具有良好的实用性。 ​​​\n关于 Win10 的锁屏睡眠时间 我在使用 Windows10 的时候发现一个问题。\n无论我将电源设置里的睡眠时间、显示器空闲关闭时间设置多长,锁屏后系统都会在 1 分钟之后关闭显示器。\n这会带来一些不方便,并且让人困惑。\n在经过一番研究搜索之后,找到了如下解决方案(Windows就是这么喜欢在注册表隐藏设置):\n1、打开注册表编辑器后。\n2、定位到:计算机\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Power\\PowerSettings\\7516b95f-f776-4464-8c53-06167f40cc99\\8EC4B3A5-6868-48c2-BE75-4F3044BE88A7\n3、修改右侧的Attributes 数值为2 (初始值为1)\n4、再打开“编辑电源计划”时会发现多了一个选项“控制台锁定显示关闭超时。\n红警2游戏整合包 红警2 的民间整合包,支持 win7 到 win11。整合大量资源,傻瓜式一键安装。 ​​​\n经过我的测试,前面链接页面里提供的安装包里带有额外的广告脚本,在使用时可使用 7z 等压缩软件直接打开该自解压包,选取主文件夹拷贝出来即可。\n观点 隐形的门槛 也许每个领域都存在一个隐形的门槛,无论是你学会一种语言,还是掌握一种能力,哪怕是打通一个游戏,只要你跨不过那个门槛,那么无论你尝试多少次,都会在同样的水平下无功而返。相反,一旦跨过后,那就是一马平川,你有了在那个新世界周游的能力。这当然不是说你不会再遇到困难,而是说,你不再有那种尝试了无数次,带着同一种感受离开的感觉。剩下的区别只是更多经验的积累,是熟练度的问题,因为你已经在那个轨道上了,你已经拿到了入场券。\n人生可以被隐喻成一个有着自然消退机制的RPG体系,累积10000经验可以升那关键的一级,那么先前你无论你多少次到达5000,6000,9000都不行,因为熟练度会反复消退到1000,2000的水平。而我知道,很多人就是无数次的卡在了那9000以内,但每次都要从1000,2000这个位置开始。这个和自我接纳也没有关系,因为你知道你遇到的困难并不是基于你对自己的苛求,你的困难在于你无法为自己在乎的事情付出真正的努力,无法将自己的活力与热情持续的灌注在同一个点上,但你隐约知晓跨过那10000的门槛,是你更重要的人生福祉。\n来自微博 @崔庆龙_\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-08-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/","title":"机器文摘 第 047 期"},{"content":"机器文摘 第 046 期 长文 Windows 的任务管理器 如果你喜欢使用 Windows 任务管理器来查杀那些不安分的进程,并且跟我一样讨厌他们乱跳(尤其在按照资源占用排序时)。你可以按下 Ctrl 键,它就会神奇地停止更新直到你松开 Ctrl。\nWindows 操作系统有一种魔力,就是哪怕你用了将近 20 年,还是会有你不知道的快捷键或者快捷操作。这些东西有时候能带来一些惊喜。\n具体介绍可以看这里:暂停 Windows 任务管理器\nLinux 内核最初版的解析 最新版本的 Linux 内核,其源码规模已经飙升至 3600 万行,想要深入细节去了解它十分吃力。\n而Linux 的第一个版本 v0.01 却非常小巧。\n刨去注释和空行的话,也就 8 千来行代码。\n这么小的代码结构,足够理解操作系统的精髓。\n这篇探索 Linux v0.01 d的内部结构,可以带你像参观历史博物馆那样去见证曾经的 Linux。\n我记录了一些有意思的地方:\n1、v0.01 只有 66 个系统调用,用于支持文件管理和进程管理,分别是:\n1 2 3 4 5 6 7 8 9 10 access acct alarm break brk chdir chmod chown chroot close creat dup dup2 execve exit fcntl fork fstat ftime getegid geteuid getgid getpgrp setsid getpid getppid getuid gtty ioctl kill link lock lseek mkdir mknod mount mpx nice open pause phys pipe prof ptrace read rename rmdir setgid setpgid setuid setup signal stat stime stty sync time times ulimit umask umount uname unlink ustat utime waitpid write 其中 mount 调用啥也没干,直接返回了。\n2、直接写死代码绑定 Intel 386 平台。至今对于 PS/2 接口的键盘、ATA硬盘、VGA显卡等标准硬件的驱动代码还是写死在内核里(而不是放在drivers文件夹)。\n3、系统崩溃处理代码只有 5 行:只实现了打印一句“我不行了”,然后进入死循环for(;;);。\nLLaMa.cpp 是怎样做到的? LLaMa.cpp 是一个令人惊叹的项目,在它之前没有人能够在低端消费设备上成功运行 Meta 开源的人工智能模型 LLaMa ,因为那需要太多的硬件资源。\n但是 LLaMa.cpp 的横空出世使得在 M2 Macbook Pro、Android Pixel5 手机甚至树莓派上运行 LLaMa 的 7B 模型成为可能。\n这是怎么做到的?\n带着这个疑问,有网友深入研究了这个项目,并写下了这篇How is LLaMa.cpp possible?以解释原因。\n作者认为主要得益于对模型参数的量化,降低模型参数的精度,从 FLOAT16 减小到 INT4。使得 LLaMa.cpp 能够以较少的计算资源甚至只依赖 CPU 的情况下加载大模型。\n逐渐觉得微软比谷歌良心 曾经微软是技术黑客的公敌,被不少人视为反对技术创新、技术开放的最大反派。\n不过随着时间的推移,以及微软逐渐在开源社区所做出的努力。这一现象有所好转。\n近期在 HN 上有位网友很扭捏地承认:现在他对微软的感觉要比对谷歌好很多。\n他列举了一些关于两家公司的对比,包括发布的产品、主观的优劣评价等等。\n为了抵制微软,他已经十多年没用 Windows 了,但貌似微软的其他产品“很香”(VS Code、Github、ChatGPT等)。\n并表示最近正在寻摸租一个云存储,大概率也会用微软的 onedrive 而不是谷歌的 Google drivers。\n对此我也有类似感觉,不过我对谷歌的不信任起始于十年前谷歌将 Google reader 停掉,而自从微软推出 WSL 后,我更是觉得微软在产品上越来越实在了。 资源 tailwindcss 的小抄 tailwind 这个 css 框架之所以能够很快流行起来,主要原因就是它解决了一个之前很多人没有太注意的问题,即 CSS 的“正交性”。\n之前 CSS 实现一个效果,可以有 N 种方法,外加各种奇技淫巧,但在使用 tailwind 之后,针对特定效果都有了最优实践路径,而且还可以很容易组合。\n不过由于它的类分的太细太碎,导致刚开始的时候会有一些不容易记忆。\n这里有一份 tailwind 的小抄,适合初学者收藏,方便随时查阅。\n在浏览器中运行的 vim vim.wasm,在浏览器中运行的 Vim,不是插件。\n使用 wasm 技术直接编译移植的 Vim Editor 源码,效果跟原生程序几乎一样。\n使用 WebAssembly 给 Vim 提供一个新的 GUI 前端(类似 GVim)。\n为了编译通过,作者在源码里禁用了很多 Wasm 不支持的特性,如:fork(2)、PTY 等。\n可在这里体验:https://rhysd.github.io/vim.wasm/\n无隐私问题的 pdf 工具网站 这个pdf工具可以尝试一下,跟其他pdf 工具网站不同,这个网站借用 WebAssembly 技术将很多工作放在浏览器客户端执行,用户无需上传自己的pdf到网站,即可执行处理工作,包括:加密、解密、拆分、合并等常用功能。 ​​​\n深入理解操作系统的小游戏 这个自称史上最极客的小游戏,是国外一位计算机科学教授给学生们写的一个小游戏,假设玩家是一个“操作系统”,在游戏里玩家需要不停地进程调度、内存页交换等操作,一旦调度不合理就会激怒用户导致“玩家”也就是操作系统被重启,游戏就 GAME OVER 了。\n游戏使用 Python 编写,作者将其编译为 WebAssembly 以嵌入网页,这里可以直接在线体验: https://drfreckles42.itch.io/youre-the-os。\n观点 学习技能最有效的练习手段是“复刻” 这是我前两天尝试用 CSS 临时写个页面效果想到的。\n我虽然也了解了CSS 语言的一些基本知识,但是在具体实操的时候仍会感到无从下手。\n与下棋类似,只知道“规则”但是没有“套路”。\n后来干脆找了几个目标页面,按照自己的想法去还原,渐渐能够摸到一些“套路”的边缘,最终实现了自己想要的效果。\n于是我想: 在学习一项技能的时候,“复刻”、“抄袭”、“借鉴”、“致敬”,都没有问题,应该把它作为最主要的练习手段。\n因为“抄”是最经济的学习方法了。\n不仅仅是编程技能,艺术方面更是如此。\n比如在编曲学习的时候有一种练习叫“扒带”,就是找一首歌,然后你通过你的工具和技巧制作一份完全一样的作品,尽量做到百分百还原。\n很多“大师”都是在这个过程中,遇到问题解决问题,领悟到很多只能意会不能言传的技巧,而这些领悟是无论如何也无法仅仅通过“看”和“听”获得的。\n另外,人们练字、绘画也是从临摹开始,一般在熟练之后才能突破,才又自成体系。\n忍耐守恒 怕麻烦的人,主要是不能忍受一些事情。\n然而正是因为这些不能忍受,所以注定要忍受一些其他的事情。\n人生就是这样,比如无法忍受投资带来的风险,就得承受现金贬值;不能面对创业的压力,就得忍受按时上班的束缚。\n对于这种现象,我将之称为“忍耐守恒”。 ​​​\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-08-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/","title":"机器文摘 第 046 期"},{"content":"机器文摘 第 045 期 长文 基于浏览器 JavaScript 堆快照的网页爬虫 基于 JavaScript 堆快照的网页爬虫。\n本文作者介绍了一个实现网络爬虫的新思路,据称已在生产上使用了一段时间,且效果不错。\n比较典型的网络爬虫在爬取数据时,大都采用解析网页 DOM 的方式,或直接通过 HTTP 请求流直接解析,或使用无头浏览器进行解析。\n但现在这项技术已经被很多网站、平台人为设置很多障碍,比如增加很多随机的嵌套等等。\n作者某天福至心灵,想到一个点子。\n利用浏览器提供的 JavaScript 内存堆快照功能,将内存里的全部信息扒下来,然后根据对应的 JavaScript 对象属性,按图索骥去找到真正需要的数据。\n这种方法比较狠的地方在于,直接从后台的数据结构下手,跳过了对页面 DOM 的分析和拆解,而且据作者说,网站即便想通过混淆此类数据在内存中的属性名称来进行防御,其工作量还是相当大的。\n所以,可能短期内无能为力。\n作者说,也许全面转为 Web Assembly 才能彻底禁止他这种爬虫。\n项目源码在这里\nIntel CPU 的“崩溃攻击”漏洞 intel cpu 有一个崩溃攻击漏洞,标识为 CVE-2022-40982,利用此漏洞可以在虚拟机里窃取共享同一个物理 CPU 的其他虚拟机的数据。\n这个漏洞可以让恶意程序在本机运行后窃取如密码、加密密钥、以及个人电子邮件等私人数据。\n恶意的云计算客户可以利用 Downfall 漏洞从与其共享同一台云计算机的其他客户那里窃取数据和凭据。\n据文章作者(也即漏洞发现者)所说,该漏洞存在于 Intel Core 6 代到 11 代 CPU,并且研究人员发现存在通过 Web 网页浏览进行攻击的可能性。\n作者开放了一部分用于测试攻击的代码在此\n利用树莓派的 GPIO 发射无线信号 原来树莓派的 GPIO 还能干这个,这位老哥使用树莓派的 GPIO 接口直接进行无线电波发射(没错,就是随便扯出一根线就可以当作天线了)。实现了基于树莓派的微型电台。\n这得益于 rpitx这个开源项目,项目本来是为了研究和学习一些无线电原理,不过后来逐渐成为一些 SDR 爱好者必不可少的工具了。\n我上次看到一个小哥使用 RTL-SDR 录制汽车遥控器信号,然后使用树莓派重复发射出来,成功实现了自家汽车的解锁。\n资源 water,一个在网页里模拟流体动画的 Demo,使用 Haxe 语言编写。源码在这里 Haxe 是一种跨平台的开源编程语言,在其官方网站上称其为\u0026quot;universal language\u0026quot;。\n它可以用于开发多种平台(如Web、移动、桌面等)的应用程序。\nHaxe 提供了强大的静态类型系统,并支持多种编译目标,包括但不限于 JavaScript、C++、Java、C#、Python 等。\n感兴趣的话,这里也有一份 Haxe 的在线教程\nFooocus,ControlNet 作者开源的一款新的 AI 画图工具 ,搭建起来比 Stable Diffusion webui 稍微方便了一点,相当于整合包。 原来 HTML5 有一个 \u0026lt;progress\u0026gt;\u0026lt;/progress\u0026gt; 标签,直接写这个标签,不加任何属性的话,就是一个加载动画,非常适合在页面里临时需要一个进度、状态展示的时候。 阮一峰老师的 Typescript 教程,发布了。 据老师自己说,刚开始也是抗拒的,觉得TypeScript 就是为 JS 语言添加静态类型系统。如果真需要静态类型,可以考虑使用其他更成熟的语言(比如 Rust 和 Java),再编译成 JS(wasm 模块),何必新学一门语言呢。\n但是后来发现 TypeScript 越来越流行,成为前端开发的主流工具,各种项目纷纷移植过去。\n我虽然对 TypeScript 仍然持保留态度,但是阮老师写的技术书籍读起来都很轻松易懂,所以觉得还是有必要收藏一下​​​。\nstable-diffusion-webgpu,在网页里运行 AI 画图模型。 基于 webgpu 技术,无需部署,直接在网页里运行。我试了一下,在我的 1080 8G 显存的显卡上 ,可以跑动,但是速度一般。\n上面的图是我只跑了 8 个 steps 的结果。。。 ​​​\n观点 AI 画图的品质 为了验证之前关于“模特很可能被AI取代”的想法,自己动手部署 Stable Diffusion webui 测试了一些模型。根据网友分享的提示词尝试生成了一些图片。\n感觉效果比我几个月之前体验时又有了不少提升,配合各种微调模型和 LoRA 模型可以生成照片质感和光影的图片。\n虽然人物表情和姿态还有些僵硬,不过我相信这是我没有合理调整各个参数以及充分发挥插件性能导致。\n多进行尝试和练习,应该能够生成更逼真、自然的照片。\n信息的维度 最近看了一些线性代数相关的知识,在向量、矩阵的各种计算中逐渐有了一些感悟:\n古代“老子”思想中的“道”很可能是无限维的,你的任何表达都是对它的一种投影,也就是降维了。所以才是“道可道,非常道”。\n每个人都想用最简单的框架去理解世界,将多维的信息硬生生地将为一维。\n这样的后果便是,盲人摸象、管中窥豹、一叶障目,不同的观点争得不可开交。\n所以在接收时也应该尽量按自己掌握的其它维度进行升维还原,任何信息都不可孤立看待。\n如果能从多维信息得视角去认知世界,也许会有转机,这多少就有点儿“阴阳互生、一分为三”的意思了。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-08-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/","title":"机器文摘 第 045 期"},{"content":"机器文摘 第 044 期 长文 导致 Python 多线程鸡肋的 GIL 是什么 近期在使用 Python 多线程的时候,遇到了 GIL 全局锁导致的性能问题。\n具体来说就是性能提升没有达到预期,对于有些计算任务无法并行执行。\n从多核 CPU 占用结果上来看,像极了网上那张经典的围观图,一核干活多核围观。\n于是翻阅了相关资料研究一下,发现这是 Python 社区争论多年的问题,而且有很大的历史包袱。\n严格来说,GIL 全局锁导致的性能问题与 Python 编程语言没有关系,导致这个问题的原因在于具体实现的 CPython 解释器。\n当年解释器开发者为了简单实现对多线程的支持,搞了一个全局锁,以至于在多核时代无法充分发挥 CPU 性能。\n而后续又有很多库延续了这项依赖,历史的包袱(屎山?)越来越重,很难下定决心将之移除(据说代价甚至比当年从 Python2.x 迁移到 Python3 还要大)。\n如果不想深究具体技术细节只想了解基本的来龙去脉,这里有篇文章为什么 GIL 让多线程变得如此鸡肋?介绍了 Python PIL 的产生背景以及适用于 Python 多线程的业务场景,可以给你的技术决策提供参考。\n不过好消息是,就在刚刚(前几天),Python 官方终于宣布要动手取消掉 GIL 了,顿时网上一片沸腾(其实只有一部分人,大多数人都还不知道 PIL 是什么玩意儿)。而且,Meta 也承诺,愿意出工出力(3人年)帮助 Python 社区做针对去除 GIL 的相关开发工作。\n用树莓派做一个属于自己的高级收音机 最近接触到 SDR (软件定义无线电)这个领域,感觉挺有意思的。\n软件定义无线电是一种无线通信技术,它利用软件来实现无线电通信系统中的信号处理和调制解调功能,而不是传统的硬件电路。\n通过软件定义无线电技术,可以实现灵活、可配置和可重用的无线通信系统,大大提高了无线通信的灵活性和性能。\n传统的无线电通信系统通常使用硬件电路来执行信号处理、调制解调和频谱管理等功能。这些硬件电路通常是固定的,不能轻易更改,因此限制了通信系统的灵活性和可配置性。\n而SDR技术通过将信号处理和调制解调等功能以软件方式实现,可以在通信系统中使用可编程的处理器和通用硬件,从而使得通信系统的功能可以在软件层面上重新配置和调整,而不需要更改硬件设计。\n比起灵活性和可配置性来说,我觉得 SDR 最大的优势是成本大大降低。之前必须购买昂贵的硬件才能实现的效果,现在能够通过便宜的、少量的硬件加上软件模拟即可。\n我近期就以很低廉的价格购买了一套 SDR 设备,通过 USB 接口连接计算机,可以实现 500KHz到1700MHz频率范围的接收。听 FM 和航空频段不在话下,SW 短波的话受天线影响,我暂时没有调试出好的效果。\n跟 SDR 相比,我几千块买的旗舰手台显得既昂贵又功能弱。\n这里有篇文章是作者自己动手用 SDR 设备结合树莓派制作了一个看起来还挺专业的宽频无线接收机。\n其实这跟音乐制作领域内很多乐器、效果器逐渐被虚拟化的软件、插件代替是一样的。软件虚拟化拥有巨大的优势,随着通用计算硬件的成本越来越低廉,一切能被软件定义的最终都会被软件定义。\n家用 WiFi 路由器需要选择哪个“信道” 近期验证了一个关于无线路由器的传说。\n起因是我新买了一个树莓派 ZeroW 带无线版本,没想到板载的 WiFi 网卡天线太弱了。\n离路由器稍微远一点,比如放到卧室,传输速率就会大幅下降,我又暂时没能找到合适的外接网卡,一度陷入绝望。\n后来灵机一动,看看能不能从路由器那头想想办法,于是打开路由器配置页面,找到了 WiFi 的“信道”设置,将之从“自动”调到了最不常用的“13”。\n这里补充一下,WiFi信道一般从1到13,由路由器自动选择,但现在无线环境十分混乱,尤其是 2.4G(树莓派 Zero W 只能连这个规格) 频段,干扰很严重。\n但是 13 这个信道很少被路由器自动选用,原因是最初制定标准的时候,不是所有国家和地区都支持,也不是所有终端设备都支持,所以这个信道就成了最不常用的。\n在我手动指定信道之后,惊喜地发现,树莓派放在同样的位置,传输速率得到了较大提升并且稳定。看来传说将路由器 2.4G 信道设为 13 可以防干扰是真实的。\n什么是路由器的信道?信道设置成什么最合理?\n资源 开发人员路线图 是一个学习索引网站,旨在创建路线图、指南和其他教育内容,以帮助开发人员选择学习路径。在 Github 所有仓库中 Stars 排名第七。 ​​​ AudioGen facebook 开源的声音合成模型,可以根据文字描述生成对应的声音。效果已经很惊人了,这个页面展示了很多样例。我听了一下,觉得以后影视作品里的一部分声音特效应该可以通过 AI 进行生成了。至少像一些嘈杂的人群、婴儿哭声、鸟叫等各种背景音是可以合成的。 原来 Chrome 和 Edge 浏览器的 DevTools 里自带了 CSS 动画曲线编辑器啊!可以直接通过鼠标拖动进行调整和预览,十分便捷。 ​​​ Graphite,一个开源的 2D 矢量图形编辑器,适用于照片编辑、图像处理、图形设计、插图、数据可视化、数字绘画等领域。可以实现项目图稿,数据可视化和自动化。 观点 获取高品质信息的需求仍然强烈,只是被淹没了 三十几年前,电视逐渐取代书籍、报纸等传统媒体的年代,尼尔波兹曼写下了《娱乐至死》。\n作者认为:过度追求娱乐和娱乐化的信息传播方式可能导致公众思考能力的下降。\n然而这么多年过去了,人们在降低信息质量这条路上越走越远。电视也早已沦为老年人卧床的伴侣,电视节目更是无法占据现代人的时间,取而代之的是手机短视频。\n短视频已经成为大部分人闲暇消遣、信息获取的主要方式。这种媒体的变化将进一步降低理解和感受深度信息的能力,使人对深入学习和思考失去兴趣。\n虽然获取的信息看似在增多,但现在高质量的信息却越来越少。\n短视频等碎片化信息给我的感觉就像是无线电信号的背景噪音,现在的信息“电磁环境”早已被这种噪音充斥。因为“背景噪音”太大,就好像在高楼林立的城市里打开无线电,接收到的全是 LED 路灯和电动车充电器产生的噪波。\n不过我还是相信会有包括我在内的相当一部分人,不愿放弃主动思考,不屑于接收低品质信息。\n我正在努力做出一些尝试,以后逐渐记录下来:\n降低输入:减少刷碎片信息的时间; 滤波:使用搜索引擎、RSS服务、newsletter邮件等工具进行整理; 溯源:尽量选择信息源头获取一手信息,对于技术来说,直接阅读英文文档是一个办法; 创造:自己制作高质量内容; 摄影师不会被 AI 取代,但是模特很可能会 即便以后 AI 绘画能够产出更加难以分辨真假的作品。\n从目前能看到的各种生成作品来说,还是摄影师负责了主要的创作灵感。\n真要说被取代的话,也许“被拍摄对象”经过虚拟化以后,很可能被取代。\n以后不仅仅是举着相机的叫摄影师,说不定会诞生面向 AI 摄影这一职业。\n到时候器材党玩的不再是镜头,改玩显卡了?\n“嘿,你这 N 卡 比我这 A 卡有德味儿,毒!”\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-08-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/","title":"机器文摘 第 044 期"},{"content":"机器文摘 第 043 期 长文 先做框架再做功能 Before you try to do something, make sure you can do nothing.\n看到这句话第一反应是:这是什么 XX 逻辑?看完作者的文字之后,哦,这是一种软件构建的方法。\n意思是说,先宏观再微观,先整体再局部,别一上来就陷入到细节代码的编写中去。\n先把框架搭好,具体功能一个也别着急实现,留着占位,先搭一个“什么都不干”的架子,然后再逐渐补充功能。\n但也不是真的什么都不干,而是理清了各个关键组件的调用关系以及与开发相关的辅助功能(如打印调试信息)。\n这样做最大的好处是,随着功能开发的深入,代码不至于失控,而且具有良好的可调试性和组件问题隔离能力。\n随之而来的就是轻松写代码,而不是眉毛胡子一把抓。\n神经网络从开始到现在 The Document is All You Need!\n一篇 AI 科普好文章,用较为通俗的语言讲解了神经网络模型原理和发展历程(我感觉有些像生物的进化)。\n从最初的由神经元组成的多层感知机开始,然后进化到卷积神经网络 CNN 降低网络复杂度,再进化, RNN 循环神经网络给模型增加记忆能力,记忆能力太强也不行,到了 LSTM 开始让它能够遗忘,再到后面的 注意力机制以及 LLM 语言模型。\n比起同类文章,这一篇尽量避免了数学概念的推导和论证,尽量在不看公式的情况下解释基本思路,适合我等小白学习。\n代码审查的一些建议 5个关于代码审查的最佳实践,文章记录一些了对代码审查的实践建议,嫌长不看我总结如下:\n一次只审查一个功能特性或者错误修复。 提前准备好背景交代(在审查之前写清楚这么做的原因和基本思路)。 利用自动化工具提前做好静态检查,提前统一风格、规范。 利用提问的方式提出改进建议而不是直接喷,如:“我们真的需要这个断言吗?” 仔细阅读代码,慢慢来,以充分理解。 资源 微软的 ZoomIT 真是个经典工具,已经默默维护了好多年了,现在版本为7.0。体积小巧才1MB多点儿,绿色免安装,下载解压即用。非常适合进行共享屏幕培训讲解,或者录制教学视频。 ZoomIT 快捷键如下: Ctrl+1:放大屏幕,屏幕静止,然后使用鼠标批注; Ctrl+2:使用鼠标随意绘制批注,支持 r、g、b、o 等快捷键切换颜色; Ctrl+3:显示 BreakTime 倒计时; Ctrl+4:放大屏幕,屏幕继续支持鼠标交互操作,用于放大操作过程; Ctrl+5:录制屏幕,可与前面几个功能结合使用;\ndriver.js 一个压缩后只有 5K 大小的前端库,可以让你的网站或者 Webapp 迅速集成交互式“使用指南”的能力。 ​​​ clangjs 一个在浏览器编译、链接、运行 C/C++ 代码的 JS 库。支持 C/C++ 标准库。完全在本地编译,无需网络即可工作。原理: 首先把 Clang 和 LLD 编译为 WebAssembly 使其运行在浏览器中。然后使用 WebAssembly 版本 Clang 把 C/C++ 代码编译为 WebAssembly,最后通过浏览器 API 运行 WebAssembly。 附:clangjs源码\nnms,一个控制台程序,可以将任意命令的输出(ANSI TXT)文本转换成为乱码以达到防偷窥和加密的效果。通过命令管道使用:ls -l | nms ​​​ Icon Buddy,这个网站有超过 1 百万个免费 svg 图标,可在线自定义颜色。 观点 无法眼神交流不是导致远程办公沟通的最大障碍,语音延迟才是: 我之前一直以为远程办公给沟通带来最大的最大障碍是无法眼神交流导致的信息失真,想象着可以通过升级摄像头(比如嵌入在屏幕中)来改善这一情况。 但进行无数次网络会议之后,我体会到了最大的障碍还不是无法眼神交流,而是网络通信带来的(几乎是必然的)严重的语音延迟。 人们对声音延迟的感知和容忍限度大约在10毫秒(现在的电脑声卡在使用 ASIO 驱动之后可以轻松做到本地延迟 8到6毫秒左右,所以可以用于实时录音),大于10毫秒的延迟会带来明显的迟钝感,时间再长一些就会对对话的节奏带来严重影响。(如果体会不到的话,可以回忆一下新闻直播间主持人跟现场记者连线时那种说话总是对不上节奏的尴尬。) 什么时候网络视频会议的延时能缩短到10毫秒以内(唱卡拉OK可以接受的最低延迟),远程办公才能迎来质的飞跃,否则网络视频会议对于工作讨论永远都是隔靴搔痒、效率低下。现在的解决方案普遍还在吹能做到一秒(1000毫秒)以内,任重而道远。 ​​​ 现在真正的程序员用什么编辑器 ? 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-08-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/","title":"机器文摘 第 043 期"},{"content":"机器文摘 第 042 期 长文 从 CPU 到操作系统 整天使用电脑和手机却对它的工作原理一知半解?把你搁 CPU 里是一套不错的科普文章,作者保证你无论是否了解 CPU 的运作方式,读完之后都会有所收获。我原本以为主要讲解 CPU 组成原理,在浏览了一遍之后,发现 CPU 只是引子,后面还讲了很多操作系统相关的知识,很值得一看。 ​​​\n基于 GPU 渲染的 UI 界面制作 基于 GPU 渲染的 UI 界面制作,也是一个系列文章,探讨了使用 GPU 渲染用户界面的一些思路和相关技术实现方法。用 GPU 绘制用户界面不是什么新鲜事,事实上现在大部分游戏的 UI 都是基于 GPU 渲染的,不过这个作者讲的比较深入浅出,对基础介绍的比较多,适合我这种业外人士,读起来通俗易懂。\n为什么我们更应该使用 Display port 而不是 HDMI ? 为什么我们更应该使用 Display port 而不是 HDMI?,简单来说,HDMI 是家电行业制定的接口标准,封闭而保守,Display port 是 PC 行业制定的标准,开放又激进。现在的显卡上一般提供一个 HDMI 接口,仅仅是为了兼容而做出的妥协,不提供多个是因为 HDMI 授权收费。\ntxt 纯文本才是王道 喜欢老式合成器的操作方式,不用图形和触摸屏,而是用文本和字符进行交互,可以快速选择音色参数,指哪儿打哪儿,心中有数。\n喜欢在控制台的黑窗口通过命令行跟计算机交互,而不是用鼠标在图形界面上点击,不用将鼻子凑在屏幕上,闭上眼睛也能做到精确操作。\n喜欢单反相机的肩屏,无论我用什么姿势拨动拨杆、拨轮,肩屏总能用字符给我最快速最准确的响应,告诉我现在的曝光三参数是多少,做到心中有数。\n喜欢用 Markdown 文本格式记录信息,只因为文本格式最干净纯粹,利于保存和传播。\n这篇《txt纯文本才是王道》的作者表达了跟我同样的喜好,对于使用纯文本保存信息偏爱有加,认为无论是视频、图片还是其他数字形式,在文字面前都是弱小的弟弟。\n资源 Llama2-Chinese,Llama2中文社区!是一个专注于Llama2模型在中文方面的优化和上层建设的高级技术社区。 基于大规模中文数据,从预训练开始对Llama2模型进行中文能力的持续迭代升级。Facebook近期开源的 Llama 2 模型比较火,号称可以免费商用。我试了一下,效果不如预期,跟 ChatGPT 3.5 比起来还有距离。可能我使用的中文微调 Lora 参数还不够好吧。 githubunwrapped是一个帮你统计 Github 信息的网站,可以将输入的 Github 账号相关的统计信息生成一段漂亮的动画,展示你使用最多的编程语言、哪天提交的最积极、哪个时段工作效率高(根据文件修改时间?)等。比较有趣的是,这个网站生成动画视频的技术来自一个叫做 remotion的库,它可以使用 React 组件式风格编写动画效果,并通过 Canvas 实现视频文件的渲染。 lazydocker,继发现 lazygit 和 lazyvim 两个神器之后,我又发现了 lazy 家族新成员:lazydocker!同样是提供终端命令行下的“gui”界面,不过操作对象是 docker 这下管理容器终于可以不再看错乱的 docker 命令输出了。 ​​​ 观点 关于产品需求的来源:\n对于提供IT相关服务的从业人员来说,无论是在企业还是个人做独立产品,把握好产品的需求、做好产品定义是最关键的事情,是后续做研发、运营的基础。\n而好的产品定义=自己想做+自己能做+用户想用+愿意付费。\n这样的定义应该怎样去发现?\n拿软件举例,大部分软件能给用户提供的最大价值是“将一些事情自动化”和“将一些物理实体虚拟化”。前者能够通过自动化实现工作效率的指数级提升,后者则通过对物理现实虚拟化实现用户对交互体验的指数级提升。\n所以在分析产品需求进行产品定义时可以从身边三个方面入手:\n还有什么事情可以被计算机自动化? 还有哪些物理实体可以被虚拟化? 市场上的现有产品,还有哪些可以从上面两个维度提升以增强体验的? 我发现,无论是企业的产品,还是个人的独立产品,都可以从这些维度进行分析。\n基于互联网通道的“业余无线电”:\n不是很理解热衷于用互联网通道进行业余无线电通联的心态。\n今天刚知道现在有一些业余无线电爱好者使用一种叫做 mmdvm 的盒子(热点盒子)进行自主搭建数字中继。\n原理是“热点盒子”用家里的wifi接入互联网,然后热点盒子给业余无线电台提供UV频段的发射接收中继,这样就能轻易通联全国甚至全球的爱好者。\n目前很多拥有支持数字通信的电台的爱好者都很积极地参与这种通联,甚至每周还有打卡点名活动。\n我暂时还不是很理解这种心态。这种依赖互联网进行的通联在我看来(也许是暂时的)早已失去了玩无线电的初衷。如果我想要通过互联网假装进行呼叫,还得依靠家里的无线路由器,那我为什么不干脆使用微信电话?\n无头系统: 今天才知道原来我给自己配的远程开发环境有个专业术语叫做 “Headless 无头系统” 啊。我现在基本上可以做到带着笔记本随意移动,开发环境都在远程,在各处体验环境都一样。主要使用: Win10 + WSL2 + Nvidia-Docker + VS Code + Neovim。有时会启用远程桌面 RDP,有时直接 ssh + tmux。有兴趣的话我挑一期详解。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-07-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/","title":"机器文摘 第 042 期"},{"content":"机器文摘 第 041 期 长文 C 也能一次编译到处运行了? 用 C 编写的程序,只编译一次,生成的可执行文件能同时在多个平台运行吗?\n这在以往是 java 这类依赖虚拟机执行环境的语言宣称的事情。\n然而我今天才听说还有这个神奇的库(好久没关注过c++领域的技术了):CosmopolitanLibc 号称可以使 C 成为一种构建一次就能到处运行的语言,就像Java一样,除了它不需要解释器或虚拟机。相反,它重新配置了GCC和Clang,以输出POSIX批准的多语言格式,该格式在Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS上本地运行,具有最佳的性能和最小的占用空间。\n在使用的时候需要引入特殊的库和编译配置,具体执行效果我还没有测试。\n然后,这篇文章的作者干脆来个更方便的操作,他给 GCC 打了大约 2000 行的补丁,使得 GCC 直接就嵌入了 Cosmopolitan 库,现在可以在不修改任何源代码(前提是得用纯 C 写)的情况下构建出到处都能运行可执行文件了(Windows也可以吗?我要测试)。\n业余无线电入坑指南 业余无线电跟摄影、HiFi音响这一类的爱好在某种维度上非常相似,在“入坑”的境界上,甚至完全一样。\n这里的坑,指需要投入大量精力和资金。\n之所以这么说,是因为它们都有一个共同的特点。\n即围绕这些爱好有大量的知识可以学习和探索。\n比如拿业余无线电来说,上来就一堆“亚音”、“中继”、“频段”、“频差”、“杂散发射”等名词,对标摄影中的“构图”、“光圈”、“快门”、“ISO感光度”等名词。新手若想有所体会,单是这些概念就够琢磨几天的。更不用提后续还有逐渐步入玄学的一些操作流派,乃至一个不留神还会陷入无穷尽的装备升级竞赛。\n这类知识对于好奇心强烈、喜欢求知的人来说有着巨大的吸引力。甚至直白的说,我们很可能不是爱好这项技能,而是单纯喜欢探索和求知的过程,喜欢那种获得感。\n这篇《业余无线电新手指南》可以普及一些基本知识,愿意入坑的请阅读。\n我近期已考取了中国无线电协会的业余无线电操作能力 A 证 算是合法的 HAM 火腿了。\n远程办公还能成为趋势吗? 疫情的时候,远程办公、异地协同等概念一度变得很火爆,当时很多人觉得这又是一个风口。\n但随着当时极端环境的消失,各大公司又纷纷将员工从居家办公中召回。\n那么?此类与远程协作相关的概念破灭了吗?\n各种协同工具、平台相关的市场,还有没有继续扩大的可能,或者说还在等待一个巨大的技术革新来引爆?\n这里有个项目,积极收集远程办公相关的信息,包括国内支持的公司清单、工具及使用资料等。\n怎样做出伟大的成就? 昨日读了保罗格雷厄姆(《黑客与画家》的作者)新文章一篇\u0026mdash;-《怎样做出伟大的成就》(实际上我觉得可以译为“怎样牛逼”)。\n虽然标题看起来略有鸡汤味儿,但读起来还是比较实惠的。\n文章从发现和选择要做的事情开始,谈论了一些具体的方法。然后展开讨论了在方法执行过程中可能会遇到的一些问题,以及如何克服。甚至介绍了一些心理暗示技巧。\n文章比较长,我个人体会比较深的点如下:\n一个人做什么才能牛逼?答:做自己天赋里有的东西,就是找一些你既有能力又非常感兴趣的事情。 要养成“自驱”的习惯。让“工作”来源于自己的认知,而不是别人告诉你、让你做的事情。主动,而不是等待。 拥有一个属于自己的“项目”是一个找到“自驱”的最佳方法。不断观察自己对什么有强烈的好奇心(甚至好奇到大多数人不能理解)可以找到这样的“项目”。 选定要做的“项目”还应遵循兴奋原则,即:做自己愿意用的产品,写自己想读的故事,而不是执着于满足想象中的不存在的复杂需求。 注重积累效应,日拱一卒、长期积累,每天写一篇文字,一年下来就是一本书。 周期性审视自己做的事情,确认它是否偏离了目标(在做自己最想做的事情),及时修正。 行动的重要性,很多人实际上可以更牛逼,但是因为“谦虚”和“恐惧”导致的拖延使得计划一再搁浅,浪费了时间。 资源 jabbr.ai是一个针对拳击比赛的打击判定进行训练的AI模型,可以在智能手机上运行,实时监测视频中拳击选手的打击得分情况,即时进行统计,多个智能手机多视角同时运行可以快速生成总结性视频。模型提供约50种监测参数(质量、步法、压力等)可用于运动员训练分析。 浏览器地址栏快捷操作,我今天才知道原来浏览器地址栏还有这些快捷操作(火狐浏览器支持的最多,我测试的Edge浏览器也支持部分操作): 输入*星号,可以搜索你的收藏夹; 输入^,可以搜索历史浏览记录; 输入%,可以搜索当前打开的tab页; 输入?,可以显示所有搜索建议; ​​​ 树莓磁带 一种用树莓派做的小硬件,为了支持在老式电脑中加载程序(之前用磁带存储的那种)。 两招教你“永久”关闭 Windows 自动更新(任选一个都可以): 通过执行代码的方式:reg add “HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\WindowsUpdate\\UX\\Settings” /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f Win+R 打开「运行」对话框,输入 cmd 后按下 Ctrl+Shift+Enter,在弹出来的命令行窗口中输入上面的代码,并敲击回车。命令里的 10000 代表停止更新的天数。 手动把电脑时钟日期改成 2050 年(为了防止时间自动校准,可以暂时断开网络),然后在 Windows 更新设置界面里面点击“延迟更新”,完成设置后再把电脑时间调回来就行了。 pkg-size,一个在线监测 npm 包大小的网站,可以实时查看一个 npm 包的真实依赖,网站利用了 web容器技术,直接在浏览器里执行 npm install 操作。 3e,一个 VS Code 插件,可以让你在编辑器里直接浏览 3d 模型,基于 webgl 实现。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-07-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/","title":"机器文摘 第 041 期"},{"content":"机器文摘 第 039 期 长文 关于写作的通用问题,“元技能”一般指比普通技能更高阶的技能,我理解为可产生技能的技能,此类技能并不会随着外部环境的高速发展而被淘汰。比如写作就算是一种元技能,当不知道该训练和提升什么技能的时候,将时间花在“元技能”的提升上准没有错。这篇文章主要讲解英文写作的常见问题,但是有些我觉得对于中文也适用。比如文章开头提到的两个基本原则:“在写之前就弄清楚自己想表达什么”、“即便是你已经写完了一整篇,如果没能表达你的意思那也是废纸”。 新电脑快还是老电脑快?,上周有博主在twitter发布了一个视频吐槽了一个我也困惑很久的事情。作者展示了他在一台古董电脑上运行Windows NT 3.5 的情况,视频中的电脑基本可以做到秒开程序,然后又展示了一台配备了Windows 11的Surface平板电脑,操作起来界面响应有明显延迟。后者cpu频率为前者的4倍,内存容量为前者的6倍。 现在的硬件性能动辄就比之前的老硬件几十甚至上百倍的提升,但是我们的交互体验呢?能够秒开的程序甚至还不如二十年前的老爷机。 后来这事儿在twitter引发了一些争议,有人认为现在的软件确实吃掉了硬件提升的性能,对体验来说提升不足。也有人说现在的体验与以往不可同日而语,这样的对比不公平也没有意义。\n博主不得不专门写了一篇文章来回应,详细记录了作者认为更加合理的对比过程。\n我个人认为首要原因就是随着硬件性能的提升,软件开发者的精力已经逐渐从性能向开发效率倾斜了。由于现在硬件成本确实低廉,软件迭代周期变得越来越短,软件开发者也越来越没有动力做出极致挖掘硬件性能的软件。\n不信你看,现在越来越多的应用程序不再使用原生开发,而是采用了可以“跨平台”的web技术。\n这样使得软件界面的响应直接下降了一个数量级。(我在使用vscode的时候甚至还会遇到打字卡顿慢慢弹出字符的情况。)\n另外,复杂的设计模式和软件架构,也吃掉了不少硬件性能,因为每增加一层抽象,都会消耗资源,而现在各种复杂的架构就是拼命地增加抽象层。\n希望以后市场能够鼓励开发者多做挖掘硬件性能的事情吧。\n文字渲染比你想象的要复杂,这篇文章的作者曾负责火狐浏览器的文字渲染引擎,他写这篇文字的目的是科普一下关于文字渲染的一些基本技术和困难。在阅读之前,我也简单的以为,文字渲染就是把对应的字符字形从字体库中取出来然后绘制到相应的位置即可,但实际情况确实比这要复杂得多。比如,文中提到的关于“连字符”的处理、“抗锯齿”、“书写方向”等问题,每一个都是开发者的头发杀手。 资源 rrweb,可在网页上记录用户行为并导出视频文件。可用于:排查用户错误、保险业务签署、内部风控、用户交互分析等。rrweb采用虚拟化转换DOM、记录变更和操作过程,并通过链表回放数据。存储最小化、回放可快进且跳过无效行为。 DragGAN-Windows-GUI,DragGAN(上周介绍过的开源模型,可以针对图片进行交互式拖动修改)的懒人包,解压直接用,内置17个模型。 ​​​ deep-sea,这个网页可以让你查看海洋各个深度都是有哪些生物,果然是越往下越看不清,所以大家就随便长长了,不讲究好看不好看了。 电子书《Elements of Programming》,这本老书在出版十年后推出了免费pdf版。中文译作《编程原本》,旨在介绍通用的程序设计原理和技巧,重点关注程序设计的基本元素和抽象概念。这本书的核心思想是将程序设计看作是一种构建和操作抽象概念的过程。它强调程序设计应该建立在数学原理和精确性基础上,通过抽象和泛化来创建可重用、可扩展和可维护的软件。 devpod,Github 的 Codespaces 和微软的 VSCode DevContainers 给开发者提供了即开即用的云端开发环境。现在,他们的开源平替来了,devpod 是一个开源的开发环境容器,可以方便地在任意客户端(Mac、Win、Linux)或云端主机创建体验一致的开发环境,并且可以与VSCode和Jetbrains等IDE直接集成。 从零开始训练大语言模型的最佳实践,训练大语言模型的技术白皮书,从基本概念和技术讲起,教你训练大语言模型。 windbg,一本电子书,讲了很多 windbg 调试器的高级用法,市面上很少见。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-07-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/","title":"机器文摘 第 039 期"},{"content":"机器文摘 第 040 期 长文 前端代码检查插件ESLint和美化插件Prettier的冲突 在使用VSCode等现代化编辑器进行前端开发的时候,很多工程样板都默认开启了代码检查和自动格式化的功能,其中以 ESLint 插件和 Prettier 插件为主。\n之前有一阵子我总是困惑这两个插件的区别,甚至如果配置不好的话,还会有冲突。\n比如 Prettier 插件会在你保存源码的时候按照既定规则进行“美化”代码,如去除行尾分号、增加表达式中的空格等等。此时如果ESLint插件的规则配置不同的话,编辑器就会报错并提示要进行“修复”,然而就在你“修复”之后,刚Ctrl+S保存之后,又傻眼了,因为 Prettier 又对代码进行了“美化”。\n我周末特意花时间研究了一下,梳理了一下这两个插件的关系以及他们的分工。\n首先,他们的职责定位不同:ESLint 用于检查代码编写是否符合某种预定义的规范,可以进行十分详尽的配置和多项检查,比如定义的变量如果未使用可以作为一种警告或者错误,其职责定位以检查为主。而 Prettier 的职责侧重于格式化(美化)代码,对于编写代码的样式如 tab 缩进量、行尾要不要分号、字符串用单引号还是双引号等可以进行统一格式化,一般用于在代码保存的时候进行快速统一样式。\n所以两者可以配合使用,但开头提到的规则冲突需要注意。\n我个人的习惯是,将两个插件的配置文件里的配置项进行匹配(规则调整为一致),因为我在美化时关注的项并不太多,所以编写这两个配置文件不算费劲。\n而网上有人提出了更好的办法,即通过扩展插件的方式,使得 ESLint 自动获取 Prettier 的规则,以自动统一两者的行为。\n关于 ESLint 和 Prettier 的具体分析文章和操作建议可以看这一篇文章:\n说一说我现在的知识管理工具和流程 Hacknews 上有网友说Evernote几乎辞退了它的所有员工,才想起来我已经有好几年没用过 Evernote 了。之前大概有将近十年的时间都在使用Evernote(但都是免费用户)。主要使用场景是记录个人的工作日志和借助浏览器插件剪藏一些值得收藏的文章。\n后来随着 Evernote 的限制越来越多,体验逐渐下降。我就迁移到了使用纯文本作为知识记录载体的路线上了。\n期间使用过 Emacs 的 org 模式,也尝试过 vim 的 wiki 插件,最后选择了现在这个 VSCode + GitHub 的方案,已稳定使用了两年时间。\n具体流程如下: 1、使用 VSCode + foam 、MarkdownAllinOne 等插件实现对 Markdown 的高效编辑,可以实时预览排版效果,foam实现了类似 Obsidian 的文章双向链接和知识关系图谱。我主要使用 Markdown 记录日志和编写知识卡片用于存放个人吸收的信息。 2、所有内容存放在一个 git 仓库中,同步到 GitHub 上的个人私有仓库,这样可以省去对接网盘的麻烦。 3、对于互联网上阅读到的有用文章,使用浏览器插件 Web Clipper,可以完整的抓取页面内容到指定的后端存储,这个插件我最喜欢的点是它可以将文章抓取到你指定的GitHub仓库,并作为Issue提交。 4、来不及看的信息就先抓取到 Issue ,然后等有时间进行整理,形成自己的知识卡片后再关闭该 Issue 。\n这套工具及流程的优点: 1、完全免费,不产生任何费用,而且体验不亚于收费软件。 2、自由度高,存储后端可以自己随意选择,如果嫌 GitHub 麻烦的话,可以自己用网盘同步文件夹。 3、纯文本载体,这个算是优点吧,格式开放,不会存在别的编辑器打不开的情况。 4、数据私有,数据随时都在本地(云端的仅作为备份和同步中转),不用担心 SaaS 供应商跑路(你看现在的Evernote)。\n欢迎大家讨论。\n资源 朋友圈截图生成工具,可以帮你生成逼真的朋友圈截图,可定制头像、评论、点赞个数等细节。收藏这个地址,以后再也不怕被群里晒孩子的家长或者搞活动的商家逼着发朋友圈集赞了。 ​​​ 86box,老式 x86 架构计算机模拟器,与 Virtualbox 等虚拟化技术不同的是,86box采用纯软件模拟的方式,实现了经典老式 cpu (如 AMD Am486DX4)的各种技术细节,甚至是当时的硬件缺陷(有些老游戏的 hack 需要这些缺陷)。可以完美复现一台上世纪 90 年代的经典 DOS PC ,用来复古怀旧游戏是再合适不过了。 fastllm,fastllm是纯c++实现,无第三方依赖的高性能大模型推理库(待测试验证)。据宣称:6~7B级模型在安卓端上也可以流畅运行,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llmam, moss基座,手机端流畅运行。 PhotoAI,作者说,他为这个网站大概写了14000行PHP代码,样式全写在了\u0026lt;style\u0026gt;标签里,JS全写在\u0026lt;script\u0026gt;标签里,除了jQuery没用任何框架,就连布局也是使用float:left这种老式的浮动实现。然而这个网站确能给他带来每月差不多 6万刀 的收入。这是不是在吹牛。这个网站的业务是:使用AI生成完全没有任何版权问题的各种人像照片。 Ironfish synth,用rust写的在线合成器,虽然感觉像个 Demo 但完成度很高,音源部分具有两个振荡器(可选正弦波、方波、锯齿波等)和一个噪波通道,滤波器、效果器齐全,另外还有一个可视化音序器。可基于键盘直接演奏。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-07-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/","title":"机器文摘 第 040 期"},{"content":"机器文摘 第 038 期 研究 ChatGPT的“奶奶漏洞”,奶奶漏洞来源自一个用户说他已经过世的奶奶是凝固汽油弹工厂的工程师,用户让 ChatGPT 用他奶奶说睡前故事的形式,详细介绍了凝固汽油弹的制作方法。以此来绕过 ChatGPT 的安全审查,结果当然是,他得逞了。后来还有网友做了试验,以同样的方式可以套取 Windows 各个版本的序列号。 国外也有“垃圾佬”,这篇《怎样低成本搭建深度学习电脑》的文章,介绍了作者怎样通过在二手网站上“捡垃圾”搭建出了性能良好且便宜的GPU工作站。 值得一提的是,作者购买的主要渠道竟然来自国内的著名二手物品交易平台,某鱼。 长文 回顾这些年软件研发的历程,凡是能够做成的软件,无一例外都是抓住了真正存在的需求。这样的需求未必很宏大或者华丽,但一定不是想象种的伪需求。仔细分析之后就会发现,在一个软件产品的生命周期里,开发者所面临的真正(或者说正确的)需求很少,因为找到它们十分不易,它们周边布满了被人们主观意识强加上的伪需求。《伪需求是糟糕软件的根源》,文章探讨了软件开发中存在的一个问题,即虚构的问题(我将之译为:伪需求)如何导致糟糕的软件结果。 有没有考虑过一个问题,即:为什么随着科技的发展和生产力的提升,人们不是越来越清闲,反而越来越劳累了?这里有篇文章探讨了一些深层次的原因,《狗屁工作》,此文写于 2013 年,作者是 David Graeber (一名人类学教授)。文章讨论了现代社会中存在的一种现象,即许多人在工作中感到他们所从事的工作毫无意义,没有真正的价值和目的。这些工作被称为\u0026quot;狗屁工作\u0026quot;,作者试图探究狗屁工作的存在原因和对个体和社会的影响。 资源 Sarasa Term SC Nerd,写中文Markdown文件的时候,最怕遇到表格,因为编辑器按照一个中文字符的宽度等于两个英文字符的宽度进行计算,而很多字体在设计时未考虑严格按照这种2:1的宽度比例设计字形,导致在Markdown在编辑状态时的表格分割线错位,看起来十分头疼。经过多方对比,我终于找到了让自己满意的等宽字体,支持中英文字符2:1宽度比例,中文为黑体,英文字符也特别适合写代码。此外还整合了Nerd fonts,支持在终端显示各种漂亮图标。 ReviewGPT 写作文、写报告、写邮件,生活中充满了各种写作任务。ReviewGPT 基于 gpt 模型,可为你的文章进行打分、评价,提出修改意见,甚至还可以扮演莎士比亚、金庸等知名作家,帮助你重新撰写,快速提升文章质量。 ​​​ try,刚发布的一个命令行工具,目标是允许你执行命令的时候先检查其执行的后果,然后再决定是否让命令真正生效。真正起到了安全保护的效果。官方介绍这个命令是基于 Linux 的命名空间(通过 unshare )和 overlayfs 联合文件系统等技术实现。并特别提醒并非基于沙盒,所以还是谨慎执行危险操作吧。比如try rm rf /*。 DragGAN, 通过拖动就可以完全操纵图像的 AI 模型,现已开放源码! DragGAN 是由谷歌、麻省理工学院和马克斯普朗克研究所创建的一种新的人工智能模型。可以让你轻松通过点击拖动等简单的交互操作就能改变拍摄对象的姿势、形状和表情。 ​​​ flameshot,一个超强的免费截图软件,可以像任何一个截图工具一样截图,最重要的是还有一些附加功能,按一下数字图标,就可以在屏幕上按数字顺序自动生成步骤图示,非常适合生成操作步骤说明。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-06-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/","title":"机器文摘 第 038 期"},{"content":"机器文摘 第 037 期 研究 SnapFusion 文本到图像的扩散模型可以从自然语言描述中创建令人惊叹的图像。然而,这些模型很大,需要高端 GPU 在服务端运行模型。SnapFusion提出了一种通用方法,可以在移动设备上运行的文本到图像扩散模型,且出图时间不到2秒。 Framer 发布了 AI 工具,直接根据文字需求生成页面,我试了一下,对于个人博客、产品介绍页面等静态展示类型的页面,生成的效果还是十分理想的,而且同步提供桌面端和移动端页面。 比#ffffff还“白”的“超级白”,这里有网友介绍了一个方法,可以显示更高对比度的二维码(以方便用户扫描识别),据说白的程度超出了sRGB颜色范围,前提是你的显示设备支持HDR。作者的思路是用一段HDR视频在网页中伪装成显示二维码的图片。 我在21小时内重启系统29万次,Linux 6.4内核有一个bug可能导致启动时挂起,但概率很低。为了复现bug,Richard WM Jones重启了29万次电脑,最终找到了问题。这让我想起了之前修改不容易复现Bug的艰辛。 我发现一个用chatGPT翻译整段文字的小技巧,那就是在他翻译完成之后,再将这段话发给他,让他根据通顺程度和合理性进行二次润色,出来的结果就好很多了。 Python写代码很爽,但是想打包发布成果的时候就稍微麻烦一些了,毕竟一大堆环境依赖和包依赖。我之前一直用的是PyInstaller作为打包工具,但是现在我又发现了这个Nuitka。它的打包原理是:直接把 Python 代码转成 C 代码再编译,这样打包出来的成果占用小、执行效率也高,尤其适合PyQt编写的桌面程序。另外,著名的 Blender 就是用 Nuitka 编译的。 长文 你买的每样东西都需要支付两次成本,这篇在Hacker News上的文章引起我的强烈共鸣。 它提出了一个有趣的观点,我以前从未意识到:\n每样东西都需要支付两次成本。\n通常,我们只关注第一次支付的成本,也就是购买时花的钱,比如买一台相机、一架钢琴或一本小说。\n然而,作者指出,如果你不支付第二次的成本,你之前花的钱就等于打水漂了。\n第二次成本指的是,你需要花时间和精力去充分使用你所购买的物品。\n比如认真阅读一本书,练习钢琴以提高演奏水平等等。\n然而,我们常常只停留在第一次购买时的满足感上,然后追求下一个。\n随着时间的推移,大量未支付第二次成本的物品使我们积累了一种无形的债务。\n为此经常感到挫败。\n这种挫败感促使我们寻求那些能够刺激我们的短期享受,比如玩手机、享用美食。\n进一步导致没有时间支付第二次成本。\n那么,有什么办法可以改变这种情况吗?\n作者说,唯一的解决办法就是控制购买欲望,强迫自己安排时间来履行第二次支付的责任。\n尽管这听起来可能有些不舒服,但如果我们能克服这种不舒服的临界点,例如学会一首乐曲,耐心读完一本书,我们将会获得意想不到的奖励时刻。\n资源 ratatype,在线键盘盲打指法练习,有完整的练习教程,从初级到高级都有。有点儿像Dos时代的著名打字练习软件TT,不过是网页版的。 0A.D.,帝国时代是个经典游戏,这里有个开源版,名字叫做0AD,由Wildfire Games开发,虽然是免费开源的游戏,但是效果和可玩性都非常高,适合在周末的午后来一把怀旧局。 landing.love,一个专门收集各种网页动画效果的网站,目前已收录超过400个具有新颖创意动效的网站,并配有截图和录屏视频。 infinigen,一款面向计算机视觉研究的3D场景自动生成器,提供多样且高质量的3D训练数据。基于Blender,免费且开源。可以通过重写随机化的默认参数来完全控制资产生成。提供了对自然界中多种对象和场景的生成器,包括植物、动物、地形以及火、云、雨、雪等自然现象。 8086-emulator-web ,用js编写的的8086 cpu模拟器,支持汇编语言在线编写、编译和调试运行,是一个学习汇编语言和理解计算机原理的好工具。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-06-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/","title":"机器文摘 第 037 期"},{"content":"机器文摘 第 036 期 研究 软驱阵列演奏音乐,国外大神用512个软驱、16个硬盘、4个扫描仪,组装成阵列,通过编程的方式控制电机震动发出声音,组成各声部。这么多软驱,让我想到了退休老干部合唱团。 大脑能像身体那样锻炼吗?,如何训练大脑?提高记忆力、注意力和智力!这个视频进行了讲解,总之就是,用进废退,改变日常默认行动,让大脑动起来。 用纯汇编写一个GUI,跟随这篇教学文章,通过编写图形界面的方式来学习汇编语言吧。顺便,作者想挑战一下,最小的GUI程序其可执行二进制文件能有多小。(现在的可执行文件动不动就好几十上百MB)​。 让 ChatGPT 帮我们总结 Hacker News,让AI每天帮我总结新闻摘要,这个想法我已经考虑很久了,现在已经有人做了实现。这篇文章介绍了一个开源静态网站的实现,它利用 ChatGPT 的总结能力,直接将每条Hackernews的新闻用一两句话总结出来,然后发布到GithubPages 可以节约我们每天看新闻的时间。 马斯克专访:推特的混乱过去了,现在的目标是最大化用户无悔时间!,我不喜欢看八卦,但是科技的除外。马斯克收购 Twitter 几个月过去了,大家还在等着看笑话,但是为什么没等到,以及开掉一半人之后效率却提升那么多? 资源 FinGPT,一个面向金融领域的开源语言模型,采用以数据为中心的方法,为研究人员和实践者提供易于使用的资源,致力于做金融领域的chatGPT。 Audiocraft,facebook发布的一个PyTorch库,用于音频生成的深度学习研究。目前,它提供了用于从文本生成音乐的MusicGen代码和模型。模型使用2万小时正版授权音乐训练。 Mercury,在 Jupyter Notebook 中构建 Web 应用程序,允许您在Python笔记本中添加交互式小部件,然后将笔记本发布为带交互界面的Web应用程序。我的感受是,Mercury就是 notebook版的gradio ​​​。 ReactPy,React是最流行的用于构建UI的前端框架,现在所有Python开发人员都可以使用它。比起gradio,这个reactpy的抽象层级更低一些,自由度更高了,我猜测目标用户应该是不喜欢写前端代码但是又希望掌控页面细节的python程序员。 GGML,一个用于机器学习的张量库,采用纯C++实现,无其他依赖项。旨在在普通硬件上实现大型模型和高性能。它同时也是 llama.cpp 和 whisper.cpp 的底层库。 Scrcpy,一个让人相见恨晚的app,可以通过USB或TCP/IP连接镜像Android设备的视频和音频,并允许使用计算机的键盘和鼠标来控制设备。它不需要任何root权限,并且兼容Linux、Windows和macOS操作系统。 Tafi,通过自然语言生成3D模型,质量号称接近AAA级游戏,可以导出创建的角色到Blender、Unreal 或 Unity中。 ​​​ canvas-editor,一个基于 canvas/svg 实现的富文本编辑器,在市面上,使用 Canvas 实现整个编辑器的开源项目并不常见,大多数情况下仍然使用 DOM 来实现。使用 Canvas 的最显著特点是其出色的性能,但实现起来的成本也更高。 markmap.js,一个用markdown文本制作思维导图的工具,提供了vscode的插件可直接在编辑器预览。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-06-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/","title":"机器文摘 第 036 期"},{"content":"机器文摘 第 035 期 研究 笔记帮我们记住还是忘记?这篇文章讨论了笔记对帮助我们遗忘的作用。作者认为,随着时间的推移,我们无法记住所有的事情,但是只要我们记录了重要的信息,就可以在需要时再次查找,因此笔记实际上帮助我们遗忘。 高保真神经表面重建,Nvidia 新发布的这个 Neuralangelo 有些猛,随便给一个视频就能进行精细3D建模,也许要不多久激光点云技术就要淘汰了。值得关注 ! Windows XP 激活算法被破解, XPKeygen是一个可以随意生成XP有效安装密钥的程序,当前的电脑可能用不到了。不过可能还有一些老旧的设备,只能通过 Windows XP 来操作,这时候这个东西就派上用场了。 一个整活儿的开源编辑器,data:text/html;base64,PGh0bWwgY29udGVudGVkaXRhYmxlPmVkaXQgbWU8L2h0bWw+ 把这个代码粘到浏览器地址栏,竟然是个记事本app,如果从IDE拷贝代码过去,竟然还支持代码高亮。。。。加入到收藏夹即可食用。 3D打印拯救海龟 ,2017年,伯奇水族馆与加州大学圣地亚哥分校图书馆的数字媒体实验室合作。他们一起创造了一种首创的3D打印支架,以固定她的外壳上的缝隙。现在,六年后,这种生物及其照顾者继续从这项发明中获益。这只海龟最近接受了年度检查,健康状况良好。 破解“智能”牙刷 国外一个博主记录了他破解自己的电动牙刷的过程。由于牙刷的NFC芯片采用的加密方式是密码加密,并且在通讯过程中是用了明文传递,所以他采取了截获通讯信号的方式窃听到了密码,然后就解锁了各种姿势开始为所欲为了。。。 真·AI相机 ,paragraphica 是一个没有镜头但是却有物理实体的“AI相机”,使用位置、时间等参数数据生成特定地点和时刻的prompt,然后由人工智能来生成“照片”。 资源 Droa,一个通过自然语言进行网站开发的工具,你只需要提需求,剩下的交给AI。 StableDiffusion-CheatSheet,经常用 Stable Diffusion 进行 AI 绘图的,可以看下这个开源速查表。里面拥有超过 700 种经过测试的艺术风格,可快速搜索查找各类艺术家,并支持一键复制 Prompt。 你一直想知道的关于数学的一切,此书是CMU数学科学系的博士生布兰登·W·沙利文撰写的,旨在引导读者进入抽象数学和证明写作的世界,帮助培养读者的数学思维和表达能力。主题涵盖集合、逻辑、归纳法、关系、函数、基数和组合数学等基础和工具。暂未有中文翻译。 Python进阶,是《Intermediate Python》的中文译本。2021最新目录版,实时更新托管在GithubPages。 CSSPro,一个所见即所得的在线CSS可视化开发工具,直接在页面运行,那里修改点哪里。效果真的很惊艳。 Plane,开源版 JIRA !不少软件开发者都使用JIRA进行缺陷管理,JIRA确实很强大,也很好用。现在,开源版的来了,据说完全可以作为JIRA的平替。 机器学习系统:设计和实现,一本关于机器学习的电子书,本书希望做成世界上第一本全面讲述机器学习系统知识的开源书籍。可以看作一门衔接机器学习和计算机系统的课程 ​​。 Callanie,练习英语口语的AI对话机器人,支持国内手机号注册,免费且流畅。后端基于大语言模型,可以陪你聊各种话题。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-06-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/","title":"机器文摘 第 035 期"},{"content":"机器文摘 第 034 期 研究 图解内存分配,文章展示了 C/C++ 编程中的内存分配过程,包括静态和动态内存分配技术、它们的优势,以及有效的内存管理所需考虑的事项。以图解的形式展示了内存分配过程,希望读者可以通过本文更好地理解内存分配相关的概念,并在实际编程中对内存进行更加高效的管理。 文件系统五十年,这是一个系列文章,详细记录了计算机文件系统的发展历程。也许我们身在其中无法感受到它的进步,但是回顾历史我们会发现,即便是我们不容易注意到的部分,也在不停地发展和优化。 只有512字节的C编译器,这篇文章介绍了一个怎样实现最小编译器的思路,SectorC (github) 是一个用 x86-16 汇编编写的 C 编译器,适合 x512 机器的 86 字节引导扇区。它支持 C 的子集,足够大,可以编写真实有趣的程序。它很可能是有史以来最小的C编译器。 上世纪50~60年代的计算机艺术,数字艺术的发展简史。 win10的隐藏功能,原来win10还有这个功能。按Ctrl + Alt + Del 后,按住Ctrl不松,再点击右下角的电源符号,就会进入紧急重启(Emergency Restart)界面。应该是一种强制重启。 资源 Ecoute,可用于远程面试作弊的工具?Ecoute 是一种实时转录工具,可在文本框中为用户的麦克风输入(您)和用户的扬声器输出(扬声器)提供实时翻译。它还使用 OpenAI 的 GPT-3.5 生成建议答复内容,供用户“参考”。 rask.ai,自动将视频转成“译制片”,在对内容进行翻译的同时,会尽量保持之前的音色和语调,端到端给你的视频完成多语配音,后续还会推出唇形同步合成。 Tango,一个Chrome浏览器插件,能帮你生成一个网站的操作指南。它会自动记录所有的操作流程,并做相应的截图和注解文档。你只需要点一遍就行了。目前还只能生成英文版的,不过自己翻译也不麻烦。可以节省不少时间。 WebGPU-torch,PyTroch的webgpu实现。我测试了一下,我的浏览器目前还不支持。 basic-english,“基础英语”的概念是:25,000个单词的牛津袖珍英语词典去掉冗余,并消除组合单词,90%的概念可以用850个单词来实现。使用这些基础英语可以简化日常工作和交流。 Web界面准则,讲解如何提升网页界面的交互性、排版、动画、辅助功能、优化和设计。 excalidraw,开源虚拟手绘风格白板程序,支持端到端加密在线协作。 沉思录 一切商业的本质都是:收购一些东西(包括原材料、人力服务),经过加工(加工过程产生价值)后变成产品或服务出售。这里的原材料可以是实体物品也可以是信息。所以关键动作就是:收、加工、出售,从重要性上来说,出售大于加工大于收。所以如果要策划自己的产品,解决和分析问题的优先级也应如此,我之前想的正好一反; 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-05-31T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/","title":"机器文摘 第 034 期"},{"content":"机器文摘 第 033 期 研究 全键盘信息终端 我一直很怀念使用黑莓手机的日子。\n物理全键盘的手感比起现在硬邦邦的触摸屏真不知道好到哪里去了。\n多少次盯着抽屉里的黑莓尸体,都在想有没有办法再次发挥它的余热。\n现在机会来了,有人将树莓派和黑莓手机的全键盘(带触摸板的那一款)结合起来做了一个终端。\n取名:Beepberry,具有400*200分辨率的LCD屏幕,和usb type-c接口。\n自己动手给树莓派写操作系统 学习操作系统的最佳手段是自己动手写一个。\n这类教程很多,一般都是针对x86平台,树莓派的比较少见。\n《给树莓派编写“裸机”操作系统》来自github上的一个开源项目。\n可以带你从树莓派的硬件层基础上直接构建一个的完整操作系统。\n关于 Demoscene 制作的一些文章 Demoscene(也称为Demo Party)是一种计算机艺术形式,旨在展示计算机的音频和图形表现能力。Demoscene通常是由小团队制作的演示性程序,也被称为demo,它集计算机程序、音乐、图形和动画于一身,是八十年代初期在个人计算机上发展起来的一种文化和艺术运动。Demoscene的主要目的是展示计算机和程序的美感,通常使用3D渲染和其他复杂的视觉效果,展示计算机的高级图形和音频处理能力。\n我对于如何制作这些炫酷的 demo 一直很感兴趣,但是网上关于这方面的资料非常少,成体系的就更少了。\n这里收录了一些比较经典的相关资料:\n64kb的demos介绍了基于SDF(Signed Distance Field,有符号距离场)生成三维网格的方法,这个方法是大部分demo用于在三维场景中产生三维模型的主要方法。\nThe_Art_of_Demomaking是一套很系统的教程,讲述Demo的概念、发展历史以及制作过程需要了解的基础知识。\npbr-book是一本关于基于物理的渲染(Physically Based Rendering,简称PBR)的经典教材。内容包括计算机图形学相关的基础概念、渲染算法、工作流程和高级特性等。\n怎样防止针对LLM的prompt攻击 就像之前流行的sql注入攻击,针对大语言模型的提示语注入攻击现在变得也很常见。\n一种比较典型的攻击场景是,通过一段特定的提示语,解锁chatGPT原本被封印的能力。\n或者对于接入了其他工具接口的语言模型,通过特定的提示语让其执行危险操作(如:删除所有信息)。\n这对于使用者来说可能危害不大,但对于服务的提供者是一个不小的挑战。\n《用于构建可以抵抗即时注入的 AI 助手的双 LLM 模式》提出了一种可能可行的解决方案。\n即使用双模型的配置,协同工作,将具有执行危险操作的特权模型放在另一个模型后面,中间使用过滤器进行风险审查,即未被审查的内容永远不会发送到特权模型。\n资源: gamma,AI帮你做PPT。支持自然语言描述需要生成的内容,自动给出ppt的大纲和每页基本的排版布局; 3blue1brown,YouTube上最好的数学科普视频,特点是使用动画直观展示计算原理; 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-05-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/","title":"机器文摘 第 033 期"},{"content":"机器文摘 第 032 期 长文 AI歌手的训练与使用 最近火了很多AI歌手(即:用AI模型模仿某位歌手的声音),其中b站上AI孙燕姿演唱的《漠河舞厅》、《撒日朗》等歌曲播放已超百万。\n为了研究实现原理,我也找到了开源工具体验了一下。\n具体步骤主要总结如下:\n选定某一个歌手,找到具有代表性的几首歌曲,通过Ultimate Vocal Remover软件利用AI做人声和伴奏的分离,主要用于获取干净的纯人声用于模型训练。(不得不说现在基于AI模型的人声、伴奏分离做的是真的强,可以做到非常干净的提取,让你感觉像是原始独立的音轨)。 通过安装so-vits-svc-fork这个一体化开源工具进行模型训练,具体方法见so-vits-svc-fork的Readme,从数据预处理到最后的模型导出和推理都已经做好了,甚至还提供了图形界面。 继续使用so-vits-svc-fork提供的gui界面进行操作,将模型载入,将预期修改歌曲的原唱人声(提取方式同第1步)传入,运行推理获得定制的人声(注意看文档的各种参数)。 将第3步推理所得干净人声,跟原唱分离的干净背景音乐进行混音合成,即可获得一首新歌曲了。 怎样用口袋计算器玩耍 在移动互联网时代,人打发无聊的方式实在是太多了,视频聊天、阅读各种资讯八卦、观看短视频、手游等等。\n功能机的时代,我有印象的打发无聊的事情是手机上的贪食蛇、发短信、wap资讯等等,也算不错了。\n如果时间来到上世纪七十年代呢?那个时代的没有随身携带的手机,怎么打发时间?\n答案是:如果有一个随身携带的计算器也行,这里有一本书《How To Entertain With Your Pocket Calculator》,出版于上世纪七十年代。书中花了大量的篇幅介绍了很多种基于数字的游戏,我翻看了一下,我觉得可能得无聊到一定的程度我才能愿意玩书里的游戏。\nLLM的几篇介绍文章 Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 与其感叹以chatGPT为代表的大语言模型发展太快,不如静下心来,读一读关于LLM的一些基础知识和使用方法,我找了三篇比较有代表性的放在这里收藏。\n大语言模型综述,认真地概括并解释了什么是LLM和它的基本原理。 ChatGPT背后的语言模型简史,从发展历史上捋一捋各种语言模型的辈分。 prompt-engineering-for-developers一个中文版的 Prompt Engineering 教程,翻译自:吴恩达《ChatGPT Prompt Engineering for Developers》课程,主要内容为指导开发者如何构建 Prompt 并基于 OpenAI API 构建新的、基于 LLM 的应用; 大语言模型微调技术笔记,记录了基于 LLM 进行微调训练的实战技巧。 资源 sinerider,一个很有创意的数学学习游戏,让你通过数学函数构建图像从而帮助画面中的角色到达目标地点。 map-of-github,以节点地图的方式展示Github上面超过40万个仓库,通过虚拟大陆的方式展示他们之间的关系。 learngitbranching,以交互式游戏的方式学习git命令。 ,在线显卡博物馆,收藏了1982年到2012年之间发布的各款显卡,包括高清图片和规格参数的介绍; 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-05-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/","title":"机器文摘 第 032 期"},{"content":"机器文摘 第 031 期 长文 怎样驱动上个世纪的网络摄像头 国外有个老哥,在帮朋友收拾废品的时候,获得了一个老旧的摄像头。\n于是他按耐不住想感受一下,这个来自上个世纪的“古董”,还能打吗?\n由于年代比较久远,厂家也不再提供驱动程序的更新。\n哥们不得不在虚拟机里全新安装一个windows xp,成功启动摄像头,并获得“清晰图像”。\n安装xp时有个插曲:安装界面里的进度条仅用时几十秒就走完了原本几十分钟的倒计时(所以说微软的进度条是如何推断剩余时间的永远是个迷)。\n在经过一番体验之后,又跃跃欲试准备自己给它手搓一个在现代操作系统下的驱动程序。\n整个过程记录在《一个1999年的摄像头复活的故事》。\n整个故事都充满了一种“我不知道这么做有什么意义,但是我就是可以”的极客风格(也是我收录它的主要原因)。\nwebGPU 科普 最近谷歌浏览器率先宣布全面支持 webGPU ,预计到今年年底各大浏览器也都会跟进并提供支持。\nwebGPU 从名字上看跟显卡和浏览器有关,可是之前已经有webgl了,这次又有什么变化?\n通过多方面信息的搜索,我得到的结论是:webGPU 更充分地暴露了显卡的计算能力,GPU不再只是做图形渲染相关的事情,而是根据webGPU提供的相关专业接口,可以执行深度学习之类的更通用的计算工作。\n如果想了解的更全面一些,这篇《谈谈 webGPU》文章十分值得一读。\n作者对 webGPU 这一技术介绍的比较详尽,从各个图形接口的发展历史一直到对未来如何应用的展望,都包括了。\n如何翻译一本书 《从不自量力到 AI 助力,我如何翻译完一整本英文书》 这是一个关于执行力的故事。\n主题是:如何借助AI和现代信息工具,实现看似不可能完成的任务。\n在这个时代,个体的力量很渺小,因为个人几乎无法独立完成任何事情。\n但同时,借助科技工具和基础设施的力量,1 个人甚至可以完成之前需要一个上百人公司才能做到的事情,这让个体变得非常强大。\n如何刷路由器 V站上说,中年技术男有三大爱好:钓鱼、NAS、软路由。\n我一样也没沾边儿,但还是克制不住关注相关技术。\n之前多次想拿自己家的路由器开刀,刷一个openwrt系统,然后就可以各种折腾(科学上网、内网穿透等等)了。\n但是一直没有动手,今天看到这篇自己动手定制你的路由器写的如此详细,还是心动了一下。\n先收藏吧。\n仅用CSS+HTML实现三维动画 CSS 的 translate3d用到的不多。\n如果使用巧妙的话,可以帮你实现很出彩的 3D 动画效果,国外有高手在给自己的文章配数学公式的时候,利用CSS制作了一些可以动态显示的公式图表。这篇CSS 3D图表记录了它们的实现细节和技术原理。\n资源 window-swap,随机看别人家的窗外景色。这个网站每次刷新都随机显示一个网友共享的摄像头视角,一般是自家的窗外。可以随时体验全球各地的邻家风景。 foobar2000,经典的音乐播放器终于更新了。2002年发布的foobar2000播放器曾经是很多发烧友的最爱,如今过了20多年,居然更新了2.0稳定版,值得收藏; lost-at-sql,一个在线学习 sql 的交互游戏,通过游戏闯关的方式练习 sql 技能; glsl-exercises,在线学习glsl的交互课程,通过交互式页面练习 glsl 编写; gameuidatabase,一个游戏界面资源网站,各种游戏的界面截图,可以用来“借鉴”?; 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-05-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/","title":"机器文摘 第 031 期"},{"content":"机器文摘 第 030 期 下周五一假期,休息,不更新。\n长文 内网穿透的原理及实现 设想这样一个问题:在北京和上海各有一台局域网的机器(例如一台是家里的台式机,一 台是连接到星巴克 WiFi 的笔记本),二者都是私网 IP 地址,但可以访问公网, 如何让这两台机器通信呢?\nIPv4地址即将枯竭,IPv6技术还没有普及,现在很多家庭宽带都不再分配公网IP地址。这就意味着大部分的个人电脑是无法通过互联网被直接访问的(当然,你可以通过你家wifi或者4G信号访问互联网,但是反过来不行)。\n可是这种需求又真实存在,比如我就经常希望能够在任何地方访问我家里的电脑,通过远程桌面进行办公、文件共享等等。\n最简单的方法是通过购买一台具有公网IP地址的云主机来实现中继,这也是目前最普遍的方式。\n不过阅读完这篇《NAT 穿透是如何工作的:技术原理及企业级实践》,假如你有很强的动手能力的话,就应该可以实现一套完全不需要公网主机进行中继的“企业级内网穿透工具”。\n文章很长,来自这篇英文博客。\n技术写作指南 曾经在翻阅《程序员的数学》这本书的时候被朋友看到,于是诞生了短暂的讨论。\n当时我的观点是,作为程序员一定要掌握好数学,即便现在编程过程中已经不怎么用到特别底层的知识,但也应该多训练数学思维。\n朋友当时说了一句话让我记忆犹新。\n“比起程序员的数学,我更担忧的是程序员的语文。”\n确实,写作这项能力在很多技术人员心里是被低估的。\n不少人受尽写技术文档的折磨,于是越发讨厌写作。\n这篇《作为工程师应该如何写作》真是雪中送炭,总结了很多立即就能见效的技术写作方法,希望可以帮助到工程师朋友。\n怎样制作好玩的小游戏 很多人都有自己开发游戏的冲动。\n不过很容易掉进各种复杂的引擎和工具的坑里。\n然后感到沮丧,忘了想做游戏的初心。\n这篇《怎样制作好玩的小游戏》可以让你重新焕发精神。\n作者认为开发那种不用复杂引擎的小游戏也可以很欢乐,只要有足够的游戏性。\n他在文章中详细列举了想要制作出真正具有游戏性的小游戏所必须具备的几点关键特性。\n看得出来,作者是懂游戏的。\n神奇的一页纸知识管理 宇航员在太空中找到的方法一定不会错,因为他要是出错就没命了。 航天员的秘密武器,One Pager。就是把一个专项的知识,都写和画在一页纸上。日积月累,宇航员有了一本手册,里面都是一页一页的one pager。 我向来对知识管理的各种方法很有兴趣。\n在网上闲逛时看到这篇《神奇的One Pager》,讲述了一种通过一页纸进行知识管理的方法。\n热爱学习的人可不能错过。\n资源 buzz,Transcribe and translate audio offline on your personal computer. Powered by OpenAI\u0026rsquo;s Whisper. 可视化提示词拼装,文生图的AI越来越多,自己也可以在本地搭建服务,可是为什么我自己生成的图片那么丑呢?这个工具也许可以帮你生成一些靠谱的提示词。 LangChain 中文入门教程,众所周知 OpenAI 的 API 无法联网的,所以如果只使用自己的功能实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能肯定是无法实现的。所以,我们来介绍一个非常强大的第三方开源库:LangChain 。 clock,一个非常酷的网页时钟显示效果。 WebGPU 理论基础,从基础理论开始学习WebGPU,稳! 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-04-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/","title":"机器文摘 第 030 期"},{"content":"机器文摘 第 029 期 长文 计算机的“中断”机制是如何实现的? 稍微了解过计算机原理的朋友都知道,计算机是通过“中断”的机制实现对键盘输入、鼠标移动、硬盘读写等操作的。\n让我给小朋友讲解这些基本的知识时,我也可以侃侃而谈,说上半个小时不带重复。\n但是真要解释“中断”的机制是如何实现的,我想即便是现在科班出身的本科生也未必能够说明白。\n原因我觉得除了缺少实践之外,也跟大部分书上的理论内容离实际工程较远有关。\n这篇漫谈中断从实际的硬件实例(x86)出发,详细介绍了中断的实现机制,普及了“外部中断”、“内部中断”、“软中断”等概念,以及人们怎样通过“中断控制器”逐渐解决了多设备中断处理的问题。是一篇很值得阅读的科普文章。适合对计算机组成原理、操作系统等技术有兴趣的朋友阅读。\n怎样提升软件项目的可维护性? 不同的项目团队对于软件项目的可维护性所做出的努力不同。\n有不少团队宁愿在修改bug上加班加点,也不愿意为可维护性多花一丁点精力。\n不过,如果你要开始一个新的软件项目或者想要改善一个已经存在的项目的可维护性。\n这里有一份软件项目可维护性检查清单可以参考。\n作者主要从版本控制、软件测试、静态分析、依赖库管理、多语言支持、多平台支持、开发环境管理等方面给出了可以改进的行动清单,以及基于开源工具的最佳实践建议。\n怎样榨干chatGPT? ChatGPT是由OpenAI训练的一款大型语言模型,能够和你进行任何领域的对话。\n现在跟年初账号紧张的情况比起来已经方便了很多。\n在这么多开源工具和套壳网站的帮助下,我想现在大部分人都能够比较方便的体验它了吧。\n但是可能很多人还不知道如何更好的发挥它的作用。\n有网友整理了一份开源的chatGPT中文调教指南,内容极为详尽,可以帮你榨干chatGPT的全部潜能。\n怎样让AI作画理解你的意图? 对于现在强大的AI绘图应用,有些人可能会认为只输入一个单词就能生成一张很酷的图片。\n然而,虽然AI模型越来越善于理解我们想要的内容,但它们还不能读懂我们的思想。\n因此,如果你想生成一张看起来像你所想的那样的图片,你需要编写正确的提示。\n这个AI绘图prompt编写指南可以给你提供一些帮助。\n资源 维修指南,各种设备的维修教程大全,详细到每一个步骤的照片,设备型号齐全; glsl-CNN,有大神用glsl语言,仅通过webGL的片元着色器实现了一个手写识别的CNN神经网络。可以在浏览器直接体验,效果惊艳。 dinov2,Meta AI新发布的全能视觉模型,模型支持:图像分类、分割、图像检索和深度估计。比较厉害的地方在于它是一个自监督模型,直接从图像中学习特征,而不依赖文本描述,即可训练计算机视觉模型。 minigpt-4,GPT4 的图像支持迟迟不开放,这个开源的MiniGPT4 却已经做到了类似的多模态效果,官方演示看起来非常棒。只用了四张A100训练了10小时,模型甚至只有13B。 street-fighter-ai,有个B站UP主在GPT的帮助下, 写了个 强化训练的AI模型,终于打败了街霸里的 AI,实现了儿时的梦想。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-04-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/","title":"机器文摘 第 029 期"},{"content":"机器文摘 第 027 期 长文 搭建本地AI作图应用 AI对话机器人火爆的同时,去年由Stable-Diffusion模型引爆的AI作图技术也没有放慢进化的脚步。\n这里面的佼佼者Midjourney已经发展成了强大的图像生成系统。可以轻松定制出照片级图像,其效果足以乱真。\n不过目前在国内使用Midjourney还比较麻烦,即便能够访问,使用量也会受限制,能否自己搭建一个呢?\n答案是肯定的。\n跟去年刚问世的时候不同,现在基于Stable-Diffusion模型的生态也已经十分完备,很多开源软件、框架、插件围绕这个模型开发。\n利用这些软件可以快速在本地计算机上构建一套属于自己的图像生成服务。\n这里有一篇博客以手把手的方式教你如何在最快速的时间搭建自己的图像生成服务。\n里面还列举了一些微调好的定制模型下载地址,合理的使用这些模型,你会发现打开新世界的大门。\n搭建本地chatGPT应用 本来不想再提chatGPT了,因为最近说的有些太多了。\n但是无奈当前的开源生态对于语言模型是在是太追捧了,技术发展迅雷不及掩耳。\n很快就出现了一批可以自己搭建的AI对话模型。\n今天我挑两个我认为效果比较好的(且对中文支持比较好的)介绍一下。\n注意,跟目前流行的基于OpenAI的接口进行套壳的程序不同。我说的是完全在本地搭建自己的服务。\n第一个:ChatGLM-6B,一个具有62亿参数的中英双语语言模型。通过使用与 ChatGLM(chatglm.cn)相同的技术,ChatGLM-6B 初具中文问答和对话功能,并支持在单张 2080Ti 上进行推理使用。\n搭建过程比较简单,按照README文档中的步骤下载模型、执行脚本程序即可。\n第二个:中文 LLaMA \u0026amp; Alpaca 大模型,开源了中文LLaMA模型和经过指令精调的Alpaca大模型。这些模型在原版LLaMA的基础上扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。同时,在中文LLaMA的基础上,本项目使用了中文指令数据进行指令精调,显著提升了模型对指令的理解和执行能力。\n搭建过程略微繁琐一些,需要通过自己的手段下载到开源的LLaMA原始模型(当然这对于技术人员来说不是问题)。\n然后按照文档中的教程,执行模型合并、量化等脚本,最终通过开源程序LLaMA.cpp实现模型的本地运行。\n合作运行千亿参数级语言模型 按照众人划桨开大船的思路,之前在带宽不足的年代诞生了BT下载。\n如今,当我们的本地显卡无法应付超大AI模型时,有人开始用同样的思路解决问题。\nPetals就是这么一个分布式模型微调、运行的框架,可以让你轻松在家运行超过千亿参数的大模型(当然是在线跟大家一起协作)。\n其原理是大家分别加载模型的一小部分,然后与其他人一起通过协同的方式进行推理或者微调。 资源 Prompt Engineering 教程,一份教你如何更好使好地使用 ChatGPT 和其他 AI 产品的免费教程。 Prompthero,跟聊天机器人、绘图机器人交流的prompt大全,与上面的教程不同,这是一个模板库大全,有创作灵感但是不知道该如何描述的时候可以去参考一下。 Civitai,与上面相同,不过专门用于图像生成,而且路子比较野,有大量的NSFW内容,要搭配Stable-Diffusion的各种微调模型使用。具体使用方法,可参考前文中介绍如何搭建本地图像生成服务的部分。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-04-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/","title":"机器文摘 第 027 期"},{"content":"机器文摘 第 028 期 长文 极简代码理解 GPT 模型结构 在twitter上有网友发布了一个简单的示例代码,讲解了 GPT 语言模型的运行原理,为了方便大家理解,作者用了极简的模型设置,即语言文字只保留了1和0两个字符,上下文长度也仅为3,可以很直观地感受到训练过程是如何起作用的。\n作者提供了托管在colab的python源码,可以在线体验。\n用开源语言模型训练自己的数字化身 随着开源语言模型的训练和微调变得越来越简单,果然有人开始整活。\n已经有网友通过自己的微信聊天记录和博客文章训练出有自己风格的AI。\n作者使用目前对中文支持最好的开源模型 chatglm-6b 作为预训练模型(我上期介绍过它的部署和使用)。\n经过一番折腾后终于训练出还算凑合的模型。\n我们的世界离《黑镜》中的黑暗故事越来越近了。 四十年工作经验程序员的职业建议 国外有位“老程序员”退休了,是真正的到了退休年龄的退休。\n他从1981年入行,直到去年退休。这期间他做过各种开发,跳过槽也被辞退过,打过工也创过业。\n这不容易。\n所以,他决定以“一个退休程序员”的身份分享一些心得。\n摘抄部分要点如下:\n保持开阔的眼界:每天花时间获取真正的资讯,看到趋势,在事物流行起来之前发现他们。 保持学习:不要拒绝和敌视新技术,要为你所用。 要有自己的项目(做一些真正的事情):作为程序员不要浪费聪明才智和外部资源,要学着开始一个自己的项目。\n进入心流的入口 进入心流(Flow)状态是一种很忘我的体验,也是知识工作者高效产出的必要条件。\n有不少创作者都体会过那种全身心的投入并且忘记了时间的感觉。\n一旦进入那种状态,很多问题能够很快得到解决,大脑飞速运转并且不会感觉到劳累。\n这种状态最忌讳被打断,因为一旦打断,再进入就会比较困难。\n这里有篇文章介绍了一些小技巧,可以让你在不得已中断心流之后,能够比较快速地恢复状态。\n作者将这些技巧比喻为高速服务区进入主路之前的加速匝道,姑且称为进入心流的入口。\n资源 Spline,一个免费易用的 3D 设计工具,可实时协作,提供了丰富的物料库,可以基于它来快速创建有趣的 3D 场景,支持处理细腻动画交互,此外还可以导入本地模型和声音素材,支持到处多种输出格式包括WebGL、视频、链接等,很适合新手。 Draw With Flowers!,在threejs里用着色器语言编写的一个特效demo,可以随着鼠标移动绘制绚丽的花朵。 React 源码阅读,一本开源电子书,通过阅读React的源码来详细理解前端框架的原理。 Codeium,Github copilot 的免费平替,提供vscode、vim、neovim等常见编辑器的插件,我试了一下,效果可以接受。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-04-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/","title":"机器文摘 第 028 期"},{"content":"机器文摘 第 026 期 长文 通用人工智能要来了吗 AGI(通用人工智能),即用一个模型解决全部问题,而不是特定领域的问题(如语音识别、图像分类等)。\n我在几年前读过一本叫做《人工智能,人类最后的发明》的书。\n书里说AGI就是人类最后一个发明,因为有了它,别的一切都不需要了。\n当时感觉距离通用的人工智能还很遥远,觉得作者有些危言耸听。\n直到今年,chatGPT和GPT-4的发布,我才发觉AI的势头确实有些猛得出乎意料。\n《 GPT-4 ,人类迈向AGI的第一步》是一篇近期论文的翻译,该论文由微软研究院发布,论证了当前的 GPT-4 模型已经初步具有 AGI 的苗头。\n论文内容十分详实,看完很震撼。\n摘录部分文字如下:\n对话 \u0026gt; 马克:我不喜欢你昨天晚上对待杰克的方式 \u0026gt; 朱迪:你看到他在做什么了吗?他打了他哥哥的头! \u0026gt; 马克:这并不能成为你对他大喊大叫的理由 \u0026gt; 朱迪:你想让我怎么做?让他打他的弟弟,然后什么都不说? \u0026gt; 马克:不,我不同意 \u0026gt; 朱迪:那你为什么要为他辩护? 提问:马克的意图似乎是什么? GPT4: 马克的意图似乎是要表达他对朱迪处理与杰克关系的方式的不满,并建议她可以更加冷静和尊重。 ChatGPT:根据谈话内容,马克的意图似乎是为杰克的行为辩护,并表达他对朱迪对待杰克的不满。 提问:朱迪如何看待汤姆的回应? GPT4: 朱迪认为他的评论是对她的分析能力的攻击,也是对杰克的不当行为表示同情的表现。她的反应是防御性的和愤怒的,并质疑马克的动机。 ChatGPT:如果没有更多的文字,我不可能准确判断朱迪是如何接受马克的评论的。然而,根据朱迪的回应,她似乎并不同意马克的观点,而且可能对他为杰克的行为辩护感到沮丧。\n用 GPT-4 帮你编写一个游戏 我第一次见识到 ChaptGPT 的编程能力之后,就基本离不开这个工具了。\n现在我几乎每天都在它的辅助下编写代码。\n不过,这里有个老哥更过分。\n他让 GPT-4 模型帮他做出了一个3D太空赛跑游戏。\n作者本身没有游戏编程经验也不懂Javascript,但是通过跟模型一点一点对话,反复将调试代码生成的错误信息反馈给模型,逐渐完成了一个完成度还挺高的游戏。\n搭建基于私域数据的ChatGPT ChatGPT 超强的对话能力怎样应用到私有数据上?\n比如说我希望做出一个基于 ChatGPT 模型的专属客服,要吃透我的产品信息。\n官方提供的训练API和微调(fine tuning)指导相对复杂一些,对于AI模型的微调不熟悉的人员还不够友好。\n这里有一篇“零基础”教程《搭建基于私域数据的ChatGPT》,可以带你走一下流程,感受一下定制专属模型的步骤。\nAI令人焦虑 这篇《AI狂飙的时代,人还有价值吗?》是一期语音播客的文字转译,因为内容比较精彩,所以也收录在这里了。\n我觉得取代不是一个好的词儿,因为取代是一个非常容易反驳的词儿。我可以说我仍然会干什么什么,AI干不了,所以它取代不了我。 但正是这种字面上的抬杠,使得问题的本质被掩盖了,因为AI在人的生活中的渗透是一个逐渐的过程。 百分之百地取代你可能仍然不会发生,可是它也不需要百分之百的取代掉你,只要50%的取代掉你的某些工作职能,AI就会对就业市场形成非常大的冲击。 我有一个纽约的律师朋友,他是很早就开始用这个东西。 他本身不是一个技术人员,他是一个标准的文科生,平常的用一个新软件都要紧张半天的那种人。 但是他开始用这个之后,因为律师的工作是很大程度上是依赖于文本的,而文本是GPT的长项,所以他就开始用。 之后,我就问他说,所以你真的开始辞退你的员工了吗?因为他自己是一个律所合伙人。 他说我还没有真正开始辞退任何人,但是我确实打算今年暑假不用再招实习生了,因为给我省下的活完全可以让我腾出手来做一些事,以至于我可以省下招一个实习生的AD account。 这就是一个真实的影响对不对? 它没有真正取代什么东西,但是它仍然冲击了一个真实的就业市场上的职位。\n我觉得AI对我们社会的影响会以这种方式出现,它不会马上一下子让你这个人变得没有意义,但是它可以让三个人的活,两个人现在能干完,多出来那个人就没有存在的必要了,所以老板就可以把他开掉。 它并不是百分之百取代的人的方式来逐渐进行的,而且这个事情是非常真实的。这也是为什么我觉得很多人对冲击仍然没有做好心理上和事实上的准备。 其实有点令人忧虑的原因就是,如果你今天还用一种这东西,都是媒体的炒作来对待这个问题,你就很可能会在真正的影响你切身生活的冲击到来之前,没有做好对自己来说比较有用的帮助。\n读完这篇文章,我的感受是,没必要焦虑,不是AI没有威胁,而是焦虑也没用,蒸汽机车发明之后,超越马车就只剩下时间问题了。\n资源 无限制下载器,只要能播放就能下载,能够帮助下载视频网站内容的浏览器插件很多,大部分都是通过嗅探播放地址来实现的下载,网站也会采用各种加密手段来进行阻止。但是这个油猴脚本采用了另一种思路。你网站防再死不能不让观众看吧?脚本几乎采用了类似录屏的手段来进行视频下载。对于一些实在想要下载的内容,可以考虑试试这个插件。 帮你本地运行 LLaMA 模型,只需一行命令就可以让你在本地运行 LLaMA 模型,轻松感受在本地单机上运行大规模语言模型的魅力。 微调 LLaMa 模型的工具,既然都能在本地运行了,那就再给力一些,这个工具可以让你很方便地使用自己的数据训练 LLaMA 模型。 Docker Compose 容器组合最佳实践,Docker有多好用不用再说了吧,这里有一堆使用Docker Compose编排容器的模板,收录了很多十分有用的容器镜像组合,可方便快速的搭建各种业务(如:单点登录、VPN、媒体管理、文件共享、博客、维基、社交网站、项目管理等)。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-03-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/","title":"机器文摘 第 026 期"},{"content":"机器文摘 第 025 期 长文 252个字节实现播放音乐和动画 这里有个网页介绍了一个demo作者使用一段JavaScript代码实现了一个一边播放俄罗斯方块背景音乐一边播放字符动画的网页,原理是利用HTML5的AudioContext对象进行声音合成,通过定时器触发基于当前时间t值的不同频率,实现音乐播放。具体代码如下:\n1 \u0026lt;body onclick=\u0026#34;with(new AudioContext)with(o=createOscillator())connect(destination),start(setInterval(v=\u0026gt;innerHTML=\u0026#39;TETЯIS\u0026amp;#\u0026#39;+(9624|(o.frequency.value=`RR\u0026gt;AIIA\u0026gt;777${d=\u0026#39;ARRIA\u0026gt;\u0026gt;\u0026gt;AIIRRAA7777\u0026#39;}IIIWnnbWRRR${d}`.charCodeAt(++t%58)*4)%7)+\u0026#39;P01\u0026#39;,t=232))\u0026#34;\u0026gt;click 诺基亚发布的“可维修”手机 说到诺基亚,用过的朋友第一个映入脑海的词就是“砸核桃”。\n那是iPhone还没发布的非智能手机年代。\n手机可更换电池和外壳在那时是一个标准设计,谁要是不支持这些都不好意思跟人打招呼。\n那时我经常把我的诺基亚掉在地上摔得七零八落,然后淡定地捡起来像电影里特工拼装自己的手枪那样,一个个把零件组装起来,形成“一把”手机。\n或者等手机快要没电的时候,像换弹匣那样给手机换一块电池,立马满血复活。\n这样的日子自从iPhone发布之后就再也没有了。\n诺基亚近期发布了一款手机,再次让我想起我那掉地上摔开几瓣的手机。这款手机号称具有良好的“可维修”性,普通用户也可一个人在家轻松拆卸。可以自行更换包括电池、屏幕、充电端口等零件。\n不要重复自己是编程的好原则吗 不要重复自己,永远不要从头开始重写代码!\n这是很多程序员收到的忠告。\n然而它是绝对正确的吗?\n这里有篇文章《重复自己,重写一切》,作者在文章中探讨了编程中的一些习惯,他认为这些习惯可以使代码变得更难理解、更难维护,并可能导致代码的冗长和不必要的复杂性。文章提到了重写代码可以给程序带来更好的抽象和可维护性,所以建议定期通过重新写代码的方式重构你的程序。\n说实话,我不知道作者是怎样看待所谓“屎山”代码的,也许当他面对有些代码时,他的观点也会变为:“能跑的代码,就尽量别动它了”。\n慢下来 这篇文章的题目是“慢下来”,作者是Derek Sivers,一位创业者、作家和音乐家。在这篇文章中,他分享了自己对于“慢下来”这个主题的一些思考和感悟。\n虽然是个急性子,但是我很认同文章里的观点。\n资源 反跟踪识别的套件,如果你觉得被公共场所的摄像头拍摄和记录或者识别侵犯了你的隐私,这里有一套开源的穿戴套件可以考虑。它通过在身上穿戴可以发射红外线的LED设备,使得摄像头画面过曝。以获得保护隐私的效果。不过仅用于研究,不知道是否符合有些国家的法律法规。网站提供了配件清单和详细的装配说明(pdf)供下载。 AI帮你解释一段代码,有人使用openai的开发接口提供了一个专门帮人们解释代码执行的工具,输入代码,输出解释。并提供vscode的插件。我把文章开头那段播放音乐的Javascript代码发给他让他解释,效果如下图: 在网页中运行GPT模型,一个可以在浏览器中执行Transformer模型的开源程序,可以执行轻量的模型,实现如翻译、语音转文字、图像转文字等任务。 AI生成工具箱,近期,基于chatGPT模型的应用大爆发,这里有一个整理好的工具箱,可以使用ai做很多内容生成工作,包括帮你编写周报、润色文字、写道歉信、写外卖好评等,效果还不错。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-03-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/","title":"机器文摘 第 025 期"},{"content":"机器文摘 第 024 期 长文 电池充一次可以用两年的“笔记本”电脑 挪威软件开发商安德烈亚斯·埃里克森(Andreas Eriksen)组装了一款笔记本电脑(或者说便携膝上型电脑?)。\n它拥有“以年为单位的电池寿命”,并且使用用Lisp编程系统界面,产品名为:PotatoP。\nCPU好像是个ARM架构的低功耗单核处理器,最高频率96MHz。\n支持蓝牙5.0。\n运行的系统为PotatOS,一个基于uLisp(一个专门为微控制器设计的Lisp)移植的专用系统。\n使用的4.4英寸显示屏采用介于LCD和墨水屏之间的技术,省电。\n再加上机身上还带有太阳能电池,据说如果环境光充足的话,可以连续运行两年。\n详解 AMD 为 Steam Deck 开发的 APU Steam Deck 无疑是一款革命性的掌机。\n如果不是价格在国内被炒的离谱,我定会入手一台,也许再观望一下等待第二代或者三代产品更好。\n这款掌机使得在便携设备上游玩3A大作不再是幻想。\n取得这样的表现,除了得益于V厂魔改的Linux系统之外,还离不开这块由AMD定制的、代号“梵高”的 APU。\n这篇《“梵高”AMD的Steam Deck APU》详细介绍了这块APU的各种技术细节,解释了为什么Steam Deck可以做到低功耗的同时还拥有相当给力的图形性能。\n用磁盘阵列(RAID)确保数据安全靠谱吗? 再谈谈 NAS 的事情(中年技术男的三大爱好之一)。\n像我这样的人,对于 RAID 磁盘阵列总是抱有美好的幻想。我们认为,只要将数据存放在经过合理规划的磁盘阵列中(例如 RAID 5),我们就可以高枕无忧,确保数据永远不会丢失。然而,实际上,磁盘阵列并不是备份数据的最佳选择,最佳的数据安全策略是异地多份存储。\n尽管 RAID 5 宣称随便损坏一块硬盘也不要紧,只需更换一块正常盘即可,但这种理想状态可能不太容易实现,中间随时可能会出现其他状况导致数据永久丢失。\n一篇名为《差点儿就又全没了》的博文,讲述了作者在使用 NAS 磁盘阵列时经历了一次惊险刺激的数据拯救过程。希望这篇文章能够给计划使用类似方式保存数据的朋友们一个平常心态。\n资源 NESFab,一个专为开发任天堂8位游戏机(NES、FC)设计的编程语言。具有高性能、易于装载资源、自动内存地址切换等特性,作者还在主页提供了一个使用NESFab开发游戏的教程。 AstroNvim,一套即开即用的Nvim配置文件,主打界面美观,集成了文件浏览、代码补全、语法高亮、模糊查询、可视化调试等常用插件配置。对于新手和懒得折腾的人来说,可以尝试。 pynecone,一个用python开发的web应用框架,特点是使用python语言完成所有任务,包括前端和后端,可以帮助那些对于前端开发不太擅长的人更方便地制作web应用程序。 函数式编程入门,一篇介绍函数式编程的文章,介绍了函数式编程的基本概念和一些重要的函数式编程概念,并使用Javascript演示了如何使用这些概念进行函数式编程。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-03-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/","title":"机器文摘 第 024 期"},{"content":"机器文摘 第 023 期 长文 视频信号可以被窃听吗? 我之前听到过一个传说。\n使用高灵敏度的天线,再加上一些奇妙的设备。\n可以窃听(窃视?)到附近(方圆数百米)范围之内的显示器显示的内容。\n这个传说流传的时候,还是CRT显示器的时代,当时的视频接口主要是VGA,采用模拟信号进行传输。\n如果显示器或者视频线缆所作的屏蔽不够充分的话,难免会有信号泄露。\n而VGA信号又没有任何加密,被别有用心的人收看是有一定的可能的。\n时间发展到今天,视频接口早已升级,我以为除非不小心无线投屏到了邻居家,否则就不会有视频内容泄露的情况。\n然而,今天要说的这篇文章则证实了上述传说的可能。\n不过,比起传说中的窃听,作者走的更远一些。\n起因是作者在家里摆弄无线电的时候,发现了一个信号干扰源,最后发现来自他的一个树莓派设备。\n于是经过一番操作,作者不但成功通过无线接收的方式将视频信号显示了出来。\n还利用这种无线信号的干扰(或泄露?)实现了叠加数据的传输。\n怎样用密码保护一个静态页面? 说到网站上的数据权限保护,一般我们会需要后端程序配合。\n比如使用账号系统,给用户角色分配不同的权限,使其访问后端接口时获取不同的数据。\n如果没有后台程序,只有静态页面会怎样?\n这儿有个开源工具,可以帮你生成带有密码保护的静态HTML页面。\n具体使用方法和原理也很简单。\n输入你想设置的密码和你的HTML页面原始代码,这个工具可以使用AES-256加密算法对其进行加密。\n然后在浏览器加载时,页面自动使用一个js库实现自解密。\n这个方法用于临时保护一些静态的内容还是挺有效的,而且很方便。\n写代码越“干净”越好吗? 有不少人宣称自己有代码“洁癖”。\n对于设计模式和面向对象有着非常深的执念(或者函数式编程也是)。\n市面上也充斥着很多“之美”、“之道”、“之禅”之类的书籍,强调代码要给人读、整洁干净。\n我并不反对上述观点,甚至自己也有一点这样的“洁癖”,只是有时内心会有一丝怀疑的时候,觉得如果过于追求某些东西可能会偏离了解决问题的根本目标。\n这篇《“干净”的代码,糟糕的性能》,帮我吐槽了一些事情。\n但作者在文中所举的例子稍微有些牵强,不必过于纠结。\n不知道怎么练习编程怎么办 经常有人困惑在学习了一门新的编程语言之后,不知该做些什么。\n就像是掌握了词语却写不出好的小说,掌握了规则也下不好象棋。\n我们从小受到的教育方式导致了,在学习技能这一块,缺失实践的动力和方法。\n这篇给无目标的新手程序的一些建议,虽然内容不多,但是可以看出作者也是个老油条了。\n给出的一些提示都很实在,对于技能练习方面,提的都是我希望我能遵从的。\n比如:\n用技能解决你实际生活中的问题。 做一些你真正会用到的东西。\n资源 写给 React 开发者的 TypeScript 指南,针对React程序员的TypeScript的学习资料,解答了我一部分为什么要用TS的问题。 Method of Action,一些免费的工具和在线小游戏(颜色搭配、贝塞尔曲线等),可以帮助你学习和掌握设计理念和工具。 Archivebox,一套开源的互联网内容保存方案,可以将你喜欢的页面下载下来,并自动爬取相关链接、图片等内容,类似于互联网档案馆的https://archive.org,不过可以自己搭建。 History of Computer Graphics and Animation,一本讲解计算机图形和动画发展历程的电子书,里面记录了计算机图形学相关的许多参考资料,曾用于俄亥俄州立大学的授课。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-03-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/","title":"机器文摘 第 023 期"},{"content":"机器文摘 第 022 期 长文 自制家庭服务器 人们常说,中年技术男的最终归宿除了钓鱼和盘核桃之外,还有一项就是折腾家里的服务器,这些服务器形态各异,但是作用都是殊途同归:NAS、软路由、虚拟化、Docker容器。\n怎样变着花样搭建家庭服务器几乎是 V 站的月经甚至日经话题。\n这里有个国外的老哥,决定使用 ARM64 架构自己“装配”一个,是那种需要焊接的“装配”。\n有兴趣的可以翻阅一下这篇《构建 ARM64 家庭服务器》。\n文章介绍了如何用一种较为困难的方式构建一个 ARM64 架构的家用服务器。\n作者使用了一块名为 ROCKPro64 的开发板,并详细介绍了构建过程中遇到的问题以及如何解决这些问题。\n文章中包含了安装基础操作系统、配置网络连接、设置磁盘阵列和安装各种软件的详细步骤和指导,涵盖了从硬件到软件的多个方面。\n在构建过程中,作者提到了一些常见的问题和解决方法,例如如何处理不同操作系统的差异,如何在开发板上设置固件,以及如何解决硬件不兼容问题。\n总之,这篇文章是一份详细的指南,可以帮助有兴趣构建自己的家用服务器的读者了解基础知识,克服可能遇到的问题,并学习如何从头开始构建一个高效、安全的服务器。\n上面这段是让 chatGPT 帮我写的 :)\n用Rust写一个大小仅有2K的极简FPS游戏 极简渲染器的编写教程网上有很多,但大都浅尝辄止,以静态渲染为主。\n这篇文章则从制作一个第一人称射击游戏的视角出发,讲解了怎样使用光线投射技术实现最基本的三维空间渲染、光照、阴影等效果。\n作者使用 Rust 语言基于 wasm 技术编写了一个在网页中运行的示例程序,该程序非常小巧,但是也充分展现了如何使用光线投射算法来实现 3D 渲染技术仲的一些基本概念,比如:墙体贴图、视角控制等。\n是我看到的教程里比较系统的一个,适合作为爱好者去研究。\n玩具 CPU 模拟器 国外一个大学老师觉得他的计算机组成原理课程有些枯燥,于是他动手撸了一个 CPU 模拟器出来,以帮助学生们更好的理解计算机内部运作原理。\n作者在文章里介绍了基本的原理,以及模拟器的各个组件,适合学习底层原理初入门的学生。\n另外这个模拟器也基于 MIT 协议进行了开源,文章中附有开源仓库的地址和编译好的可执行文件下载连接。\n需要注意的是该程序运行环境为DOS,现在要想体验的话,需要先安装 DosBOX 这个模拟器。\n不用任何构建系统编写前端代码 比起十几年前,前端开发工程现在已经变得十分复杂。\n有次我想写个简单的页面程序,但是却花费了一上午的时间陷入对框架和构建系统的选择上。\n后来不得不放弃,改用记事本随便用原生Javascript完成了功能。\n这篇文章的作者跟我有同样的感受。\n作者认为,对于一些简单的项目来说,使用构建系统可能是不必要的。\n因为构建系统会增加开发和维护的复杂性,而且可能会导致一些性能问题。\n文章演示了作者如何使用原生的Javascript和浏览器的开发者工具来实现一些常见的构建系统功能。\n资源 计算机知识笔记,一个计算机科学知识笔记仓库,包括计算机基础知识、编程语言和算法、开发工具、面试笔试题目等等,是一个非常实用的笔记库。目前在 Github 上有超过 162k 个 star 。 Creating Demos,这套教程是 Hugi 杂志在2001年第31期发布的一系列编程文章,主题是“Demo程序”的制作,是我目前在网络上见到的比较完整和耐心的一套讲解 Demoscene 如何制作的教程。虽然有些技术是老旧的,但是思想一直是不变的,能够学到很多平时很难了解到的东西,现在很少有人愿意分享这些了。 网络视频下载器,一个 go 语言编写的网络音视频资源下载工具,类似 youtube-dl,但是支持的网站要更多一些。 ambient,Ambient是一个使用 WebAssembly、Rust 和 WebGPU 技术构建的高性能多人游戏和3D应用的开源引擎。特点是针对构建多人游戏开发进行优化支持。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-03-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/","title":"机器文摘 第 022 期"},{"content":"机器文摘 第 021 期 长文 chatGPT 原理通俗讲解 可能是有人炒作的缘故,chatGPT 热度一直不降,连街边买菜的大妈都在讨论这个“人工智能机器人”。\n可能是它输出语言的流畅度实在是太接近真实的人类了,用惯了之前那种“智能助理”的人很容易感到震惊。\n然而其背后的原理并非像想象的那么复杂,甚至是大力出奇迹的又一个经典样例。\n最近关于它的文章也是铺天盖地,各种分析、叫好,很少有冷静下来探讨其背后机理的。\n我翻看了几篇之后,发现唯有这篇《chatGPT在做什么以及它为什么好使》 比较优秀。读起来比较平和,没有压力。\n文章揭示了即使像chatGPT这样的大型语言模型也是一个单词一个单词慢慢往出崩的,并尝试说清楚这么流畅的语言是基于什么来预测后续单词的概率。\n怎样利用多GPU训练真正的大型模型 前面提到的 chatGPT 模型,体量非常大,据说训练一次就要耗费上千万美元。\n作为普通开发者我们是不敢奢望自己上手训练一番。\n不过,这里有一篇文章可以让我了解像这样的大模型是如何进行并行训练的。\n另外还有个开源的项目,号称可以在较少资源的基础设施上进行 GPT 模型训练,有兴趣的可以试试。\n怎样搭建一个电子爱好者工作间 拥有一个电子产品工作室一直是我的一个梦想。\n电烙铁、稳压电源、万用表,是我能想到的最基本的设备。\n如果还想更完美,可以借鉴这篇文章所介绍的思路,搭建一个电子爱好者工作间。\n运气计算公式 看到一个关于运气的文章《如何获得好运气》,觉得里面提到的“怎样使得随机的运气变得让好运更加倾向于你”的说法比较有意思。\n于是就收录一下。\n文章里探讨的问题,很容易让我联想到关于“下雨的时候是飞速跑动淋雨多还是慢慢走淋雨多”的问题。\n资源 卡耐基梅隆大学计算机科学在线教程,CMU CS Academy 是卡内基梅隆大学计算机科学学院 (SCS) 的一个项目,其目标是开发一种新颖的、世界级的、在线的、完全免费的交互式高中计算机科学课程。 纯CSS实现的超漂亮UI组件收集,网站收集了超多 UI 组件,基于 纯 CSS 实现,采用 MIT 开源协议发布,可以自由使用。 为开发者打造的演示文稿工具,Slidev 旨在为开发者提供灵活性和交互性,通过使用他们已经熟悉的工具和技术,使他们的演示文稿更加有趣、更具表现力和吸引力。 根据ai做的图倒推出用于训练模型的原始图,这个网站比较有意思,前一段时间比较火的根据文字生成图片的 AI ,这里可以将根据 AI 生成的图片反推出它当时样本训练的原始图。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-02-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/","title":"机器文摘 第 021 期"},{"content":"机器文摘 第 020 期 长文 怎样获得非凡成就 多年来,我对成功学嗤之以鼻。\n但也对有些人的成功给予应有的尊重。\n我所欣赏的成功人士有一种特殊气质,我说不上来具体是什么特点,有点儿像反叛精神,又有点儿对手工技术的狂热。\n这些人里对我影响比较大的是《黑客与画家》的作者 保罗·格雷厄姆(Paul Graham)。\n他创建了著名的 YC 孵化器公司,也打造了很多成功的产品。\n今天推荐的这篇文章《How To Be Successful》的作者,是保罗·格雷厄姆非常推崇的一位创业者。\n文章分享的观点乍看有成功学的影子,但读完却能引人思考。\n这里是中文翻译版:《观察成千上万创业者后,关于如何获得非凡成就的13条思考》\n我觉得这些观点至少可以给长期埋头技术工作的人们一些启发,我稍微列举几条如下:\n这个世界很少人能做到将眼光放长远,而那些有长远眼光的人会得到市场的丰厚回报。 把时间花在做正确的事上,比花长时间进行工作更重要。 跟着你的好奇心走。因为对你来说兴奋的事情对其他人来说也同样兴奋。 成为内驱型的人(即:自己去做一件事的原因来自于自己,而不是外部的力量或别人的期望)。 怎样在客厅建立自己的私人影院 智能电视或者智能盒子已成为现在客厅的标配。\n如何充分发挥它们的作用,早已是技术爱好者的孜孜不倦探索的课题。\n前些天我偶然收到一份公开的云盘链接,使用开源的 AList(一个支持网盘存储的文件列表程序,可以通过多种协议将网盘映射为本地访问的存储路径) 进行构建。里面整理了大量的影视资源,有不少是高质量、高码率的蓝光原盘文件。\n这就激发了我的好奇心。\n由于自己一直按耐住折腾 NAS 的念头,这些年一直没有收集电影。\n但现在既然有在线的资源,不妨尝试一下。\n于是我找到了这篇《利用KODI和云盘打造4K高清私人云影院》(仅作研究,观影和收藏还需支持正版)。\n按照文章的指导,成功给电视安装了 KODI(一个媒体中心 App),并进行了配置,可以非常方便地浏览、观看互联网云盘上的高清电影。\n比起云盘官方所出品的各种 App 在体验上更加灵活、完美。\n“噪声”在计算机图形学里的作用 想要计算机产生的图形更加的接近自然,生成各式各样的噪声是必不可少的算法。\n之前在读《The Nature of Code》(中文译作:代码本色)一书的时候,作者花了大量篇幅讲解关于噪声、随机等对于模拟自然界中各种现象的重要作用。\n或许在噪声里就隐藏着大自然最深处的秘密。\n这篇WebGL进阶——走进图形噪声可以让你领略一些图形噪声的神奇。\n很多场景都给出了 WebGL 实现的源码,可以边学边练。\n资源 ThreeGN,一个基于网页的三维建模程序,特点是具有类似 Blender 的几何节点编辑功能。 tabler,一个开源的图标库,可用于 Web 或 移动端应用开发,全部免费使用。 immersive-translate,一个在线翻译浏览器插件,支持 Edge、Firefox、Chrome 等浏览器,优点是可以在网页上追加中文显示,原文和译文同时展示,对于想提升外语水平的人士,是个不错的对照工具。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-02-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/","title":"机器文摘 第 020 期"},{"content":"机器文摘 第 019 期 长文 现阶段 AI 能对游戏开发提供多大帮助 AI 在最近有多爆发自然不用我再赘述,抛开那些狂热的能够引起焦虑的言论(比如 AI 即将替代大量工作岗位),也有不少人选择跟 AI 和平相处。\n这篇《AI 辅助图形》的作者是一个有着游戏制作二十年经验的从业者,近期想尝试尽可能地利用各种 AI 加持的辅助工具,试图通过他们提升制作效率。\n作者从游戏的概念原型阶段,一直到三维模型资产的制作和游戏场景的搭建,均选用了具有 AI 能力的效率工具进行支持。\n最终结论是,虽然在过程中会有这样那样的不顺手,但这些工具确实能够帮助他节约大量工作时长。\n所以作者的看法是,他很愿意将 AI 工具看作他的同事。\n照这么说的话,留给人类的工作真的是不多了。\nChatGPT 学习笔记 ChatGPT 在春节后又起了一波热度。\n网上到处都是关于它的段子,有人用它写论文,有人拿来给孩子辅导作业,有人写情书,有人当个动嘴的甲方让它写程序。\n喜得微软恨不得现在就把它接到搜索引擎里,逼得谷歌提前释放出自己的类似模型。\n国内的百度也表示将在3月份发出自己的大规模语言模型。\n要我说就不要这么着急,不妨拨开迷雾,看看 ChatGPT 是个什么东东。\n在网上发现这篇《ChatGPT 通俗笔记》,讲述了这个模型的发展历程,以及一些基本的概念原理。\n此类中文资料不多,给这篇文章作者点赞。\n视觉设计的一些规则 现在专业的界限越来越模糊,每个人都应该掌握一些基本的设计理念,以便在日常工作中输出的成果具备基本的美感。\n这篇《视觉设计安全法则》,浅显易读、明确具体,对于视觉设计活动很有指导意义。\n看完之后无论是自己动手做 PPT 还是软件的 demo 原型,都可以用到。\n我觉得甚至对于摄影构图、房屋装修都能有所借鉴,因为美是相通的。\nPython 做后端开发的技术选型 有时候想做一些 Web 应用的原型,Python 是我的首选语言,写起来顺手又省事,能节约不少时间。\n但是由于用的不够深入,在选择开发框架的时候,稍微有些困惑。\n比如同样都能提供快速的开发能力,Fastapi 和 Flask到底选哪个?\n如果你也有跟我一样的疑惑,可以看看这篇《Fastapi 和 Flask 详细对比》。\n文章深度分析了这两个框架的异同以及所适用的工作场景。\n资源 YouPlot,控制台绘图工具,可以在控制台窗口用字符的方式进行绘图,支持柱状图、散点图等。 网页在线联机 CS1.6,只需浏览器即可联机玩反恐精英 1.6,这个网站通过 WASM 技术将 CS 1.6 移植到了网页中运行,现代浏览器均可支持,第一次加载时间略长,但体验还算流畅,在线人员数量也挺多,随时可以匹配到。 交互式 SVG 参考,一个可以在线了解 SVG 图形标准细节的网站,提供交互式界面进行实时演示。 浏览器地址栏里的动画,一个有意思的 Js 库,通过动态修改浏览器地址栏的 URL 地址来实现动画,效果还比较萌。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-02-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/","title":"机器文摘 第 019 期"},{"content":"机器文摘 第 018 期 长文 游戏高清重制《科林麦克雷拉力赛3》 游戏高清重制一直是我比较感兴趣的话题,可能因为比较喜欢怀旧吧。\n我曾经收藏过采用覆盖显示驱动的方式进行高清分辨率支持的《极品飞车 5》、《Quake 3》等游戏。\n也见过一些更古老的游戏在更新资源包之后重新焕发青春。\n不过一直没有接触过真正的重制过程。\n这篇《重制科林麦克雷拉力赛》详细记录了一个优秀的赛车游戏进行高清重制的过程。\n可以带你了解老旧游戏如何进行“宽屏”、“超宽屏”支持,如何重制高清界面UI元素等,过程充满了对不可能的挑战。\n把网页渲染到控制台 通过控制台窗口进行上网,你可能觉得并不新鲜。\n毕竟已经有很多类似 w3m 这种在控制台下基于字符的浏览器程序。\n但是他们的缺点都是不能显示图形,而且几乎失去了对页面的样式渲染。\n今天这篇《把网页渲染到控制台》则另辟蹊径,虽然同样是在控制台的字符界面,但是渲染手段却大不相同。\n它将控制台字符当作单个像素来处理,采用现代浏览器内核进行页面解析和预渲染计算。\n然后在像素渲染阶段,采用了控制台字符来进行替换。\n虽然最终效果无法跟图形界面下的浏览器相比。\n但是它毕竟提供了一种在终端控制台进行图形化网页显示的可能。\nChromium 渲染流水线——字节码到像素的一生 看了前面网页渲染到控制台的文章,如果对浏览器的原理架构比较感兴趣的话。\n可以看看这篇讲解 Chromium 浏览器渲染架构的文章。\n现代浏览器已经复杂到不可能通过个人从零开始实现。\n了解一下他们的架构,即便不从事相关开发,也可能对自己的软件架构产生有益影响。\n99 行代码实现光线追踪 光线追踪在图形渲染中十分关键的概念。\n同时也是现代电影工业实现逼真光照渲染所必须的技术手段。\n然而它的原理却并不复杂,甚至只需少量代码就可以自己实现一个建议的渲染器。\n这篇《99 行代码实现光线追踪》就只是用了少量 C++ 代码实现了一个简单的带有全局光照、阴影、反射的场景渲染。\n虽然看起来简单,效果还是很令人惊艳的。\n适合我这种喜欢研究原理,但又不太深入的“技术爱好者”。\n光线追踪深入 既然前面提到了光线追踪,不妨再引申一下。\n很多光线追踪的入门教程都会教你渲染一些简单的模型,比如球体,圆柱体等等。\n如果想基于光线追踪技术渲染复杂一些的三维模型,应该怎么做?\n这里有一篇《光线行进和符号距离函数》,里面介绍了基于光线行进算法(光线追踪的一种实现方式)和符号距离函数来构建三维场景中复杂模型的思路。\n内容比较详细,并带有示例代码。\n资源 chronophoto,一个猜照片年代的游戏,根据网站随机展示的老照片,来判断这张照片是哪一年拍摄的,答案区间 1900 到 2020 ,我试了试还挺有意思,可以根据照片中出现的物品和人物的衣着进行分析。\nGimel Studio,一个基于节点系统的照片后期处理工具,开源,采用 Python 编写。\nBugChecker,一个支持 Windows 11 的类 SoftICE 调试器,开源。 swiftshader,一个基于 CPU 实现 OpenGL 渲染的图形库。主要应用在谷歌开源的 chromium 项目里,用纯软件算法实现了OpenGL、Vulkan图形接口。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-01-31T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/","title":"机器文摘 第 018 期"},{"content":"机器文摘 第 017 期 预计春节期间暂停更新,节后恢复。\n长文 怎样在 1 位色深的 LCD 屏幕上显示灰度 只有 1 位色深的 LCD 屏幕按理说是不能显示灰度的,因为他的像素点要么纯黑、要么纯白,显示的图案效果肯定非常差。\n如果说非要显示灰度的话,我第一个想法是通过抖动算法进行模拟(即通过像素点的稀疏程度来制造错觉,如下图)。 然而这篇文章的作者采取了更为巧妙地方法,使用 PWM (脉冲宽度调制)技术,利用每个像素点的点亮时间不同来制造灰度错觉。\n之前只是见过使用 PWM 调整 LED 灯泡的亮度,像这种用法我倒是第一次见。\n作为一名数据工程师和作家,我为什么要用 (Neo)vim 很多人都被 Vim 复杂的功能和陡峭的学习曲线吓到过。\n也有很多人本着对效率的极致追求,而选择了征服 Vim,从而走上高效(折腾)的路线。\n本文作者作为一名数据工程师,讲述了他学习 Vim 的心路历程,也许对于现在还在观望的人有所启发。\n我个人使用 Vim 已十多年时间,虽然从未触及特别深入的技能(如宏定义、寄存器等),但是 Vim 这种神器的特点就是,只要你忍者难受越过操作的及格线,剩下的技能你稍微多掌握一点,就能马上给你带来非常丰厚的回报。\n焦散是什么?如何正确地渲染焦散? 焦散(Caustics)在现实生活中随处可见,但在渲染图中却很稀有。这篇文章解答了为什么渲染焦散很难,以及有哪些方法可以迂回实现。\n找到这篇文章是因为我在 Github 上发现了一个使用 webgl 实现焦散渲染的项目,效果非常不错,于是想研究一下背后的原理。 资源 常用设计模式有哪些,一本在线电子书,图文并茂,以比较直观的方式介绍了软件开发常用的设计模式,支持英文、日文、中文等多国语言。\n谷歌的软件工程,好几年前的一本书,讲述在谷歌做软件开发的体验和最佳实践,现在出了可免费阅读的电子版。\n开源低代码开发框架 ToolJet,免费开源的低代码开发框架,带有可视化编辑器,从数据持久化到前端界面全部无需编写代码。\n一个无聊的 Neovim 插件,一个没啥用的 Neovim 插件,唯一能做的事情是当你感到无聊时,可以将你的文本编辑区里的文本执行一个“元胞自动机”动画,看起来还算解压。\n最大的 AI 工具箱,喜欢研究 AI 的不要错过这个网站,收集了各种 AI 模型的开源项目和相关网址,涵盖了图像识别、自然语言处理等常见的、时兴的 AI 技术。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-01-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/","title":"机器文摘 第 017 期"},{"content":"机器文摘 第 016 期 长文 黑客与汽车 现在的汽车很多都具有联网的能力,可以通过互联网进行便利的远程操作。\n比如获取汽车位置、健康状态、远程启动、远程开门等等。\n作为消费者来说,在使用这些便利功能的时候,内心是十分信任厂商的。\n觉得安全问题肯定会被厂商非常重视,作为头号问题来抓。\n然而这篇《黑客与汽车》却改变了我的看法,原来这些车联网的安全防护如此的脆弱。\n文章作者为业内人士,写的还比较实在。如下列举部分这些黑客可以对车进行的未授权操作:\n远程发动机启停、车门解锁与锁定、大灯闪烁、喇叭鸣笛; 锁定用户,迁移管理权; 根据车架号下载到用户的销售档案; 远程刷新更新车辆电脑固件; 跟踪车辆物理GPS位置; 看完我感觉是不是得把我的相关车联网服务给停一停了。\n汇编代码阅读指南 写汇编代码很麻烦,阅读起来也很费劲吗?\n这儿有一份简要的汇编阅读指南,作者介绍了一些汇编代码的阅读技巧。\n因为根据统计显示,最常用的汇编指令也就那么十来个,所以并没有想象中的那么晦涩和高深莫测。\n使用 SVG 绘制逼真的绳索 SVG 是在网页中进行矢量绘图的技术,比起 Canvas 画板的像素图像,SVG 具有放大不失真的特点,在网页中可以通过 Javascript 操作生成 SVG 图形对象,实现各种复杂的图案。\n这篇文章的作者从几何的角度考虑了如何使用矢量图形来绘制一个现实中的麻绳图案,要不仅体现出绳索的扭曲,还要正确表现绳索分支之间的叠压,作者提出了一个巧妙的使用 SVG path 进行实现的方法。还给出了代码。\n你要问作者为什么这么做,有什么用没有?我想作者可能会回答:Because I can !\nSSH 进阶用法介绍 经常在 Linux 系统下进行开发或者运维的专业人士,可能每天使用最多的工具就是 SSH 了,每天都要通过它登录服务端系统,进行一系列的操作。\n这里有一篇文章比较全面地介绍了 SSH 的进阶使用技巧,可以在某种程度上极大提升效率以及操作体验。\n列举部分如下:\n如何免密码登录; 如何映射服务端的服务端口到本地(以方便调试); 如何将服务端的图形界面(如xcalc)代理到本地电脑显示和交互(不是远程桌面哦); 一些网络端口映射之类的高级操作; 资源 个人年终总结模板,我做了一个基于 Markdown 语法的年终总结模板,方便梳理在编写个人总结时的思路,放在 github 上的 gist 里了,可以随意使用。\nweb 网页设计博物馆,一个保存古老网页设计的网站。记录了 1999 年到 2020 年各大公司的网页设计变迁。包括谷歌、亚马逊、苹果、任天堂、麦当劳等等。\n一站式网页工具大全,一堆的在线工具汇总,包括图片处理、PDF格式转换、文字编码转换、密码生成、字符串加密解密等等,常用工具一网打尽。\n在线手柄测试工具,打开网页即可测试游戏手柄的工作状态,按键是否灵敏,遥感是否有死区等等,非常方便。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-01-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/","title":"机器文摘 第 016 期"},{"content":"机器文摘 第 015 期 长文 编程就是玩儿 对于程序员或者技术从业者来说,以一种什么样的心态工作将十分影响成果的产出。\n这篇文章的作者给大家分享了他自己的感受\u0026mdash;-“不把编程视为严肃的工作、目标只是玩得开心、为了好玩而编程”。\n他同时也是 《为什么我喜欢做无用的东西》帖子的作者。\n除了文章本身之外,在 HN 配套的讨论帖子在这里。\n这种类似于“寓教于乐”、“做自己开心的事儿”等等内容,一直是一个值得探讨的话题。\n我个人也倾向于以兴趣和爱好来驱动自己,只是如果这个兴趣和爱好顺便能够挣钱,那就更好了。\nWebAssembly:没有容器的 Docker 最近 Docker 宣布与 WasmEdge 合作支持 WebAssembly 。\nWebAssembly 和 Docker 我们都听说过,在前面的文摘中我还尝试过自己使用 Rust 编写运行在网页里的 WebAssembly 应用程序。\nDocker 也是我工作中每天都要用到的容器技术。\n那他们两个有什么关系?放在一起能碰撞出什么火花?\n这篇文章将讲解这两种技术的结合在云原生架构下的使用。\n看来 WebAssembly 技术不仅可以在浏览器环境中发挥作用,还能在云计算、边缘计算等领域发光发热,前途不可限量嘛。\n3D 摄影测量建模技术 3D 摄影测量建模,是一种通过对物体多角度拍摄照片,然后使用计算机通过软件算法合成为 3D 模型的技术。\n从最开始在专业领域(如:建筑工程、考古)使用,到现在已经普及到普通人只需安装手机 App 也能轻松实现了。\n这篇用3D摄影测量法对我的爷爷建模记述了作者如何使用 3D 摄影测量建模技术给自己爷爷的雕像进行“数字化”的过程。\n里面详细记录了整个过程所使用的开源软件和相关的配置细节。\n对于一些想要进行一次实操演练的朋友来说可能有用。\n在 2D 游戏中如何模拟 3D 的光影效果 《守墓人》是一款经典的 2D 角色扮演游戏,比起它的精彩剧情和有趣的玩法,出色的画面效果也是该游戏取得成功的重要原因。\n这篇《守墓人的图形效果是如何制作的》文章,由该游戏的核心开发者于 2018 年发表,讲述了很多关于实现在 2D 画面带来更加有立体光影效果的特殊技巧。\n文章虽然老了一点,但是技术没有过时。\n读进去可以深深体会到:一个优秀作品的创造,离不开对各种不可能的挑战和极限的突破。\n资源 Flash 游戏大全,上一期里我摘录了一个关于复刻 Flash 游戏的故事。后来也勾起了我对于 Flash 小游戏的怀念。便深入探索了一下现在这个阶段该如何再去运行那些老游戏。Flashpoint 是一个 Web 游戏保存工程,号称已经累计保存了包括 Flash 在内的 35 个平台的超过十万个小游戏。这个工程在 2018 年 1 月启动,试图在 Flash 消亡之前将之前的经典内容进行备份。现在提供两种版本的下载包,一种全量下载的大概 1.3 TB,包含了全部游戏。一种增量下载的,700多MB,只带了部分游戏,但是支持随下随玩。\n根据音频自动生成钢琴旋律,一个开源的 AI 模型,可以根据歌曲的音频识别出里面的旋律主线,并且使用钢琴演奏出来,效果十分神奇。\nC64 Emulator,一个在线的 commodore 64 电脑模拟器,可以直接将磁盘镜像拖拽到网页上进行加载,页面还提供了虚拟键盘。\n沙雕 App,收集了各种有趣网站、工具的导航站,之前就关注过,最近好像升级了,喜欢恶搞的同学可以到里面找到一些比较有恶趣味的小程序。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2023-01-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/","title":"机器文摘 第 015 期"},{"content":"机器文摘 第 014 期 长文 运行在单片机上的 Qt 尝试过给单片机写图形界面没有?\n这篇 《Qt on MCU》 比较系统的介绍了“为什么选择 Qt(一套开源图形界面库) 给单片机做界面”、“Qt 的基本架构”、“程序移植性”等相关问题。\n读完可以较为全面地了解在单片机这种机能较弱的硬件设备上制作图形界面的基本思路和需要关注的问题。\nOpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务 现在大家都不止一个电子终端设备,个人数字信息、各种数据文件的同步需求基本上是一个刚需。\n有很多厂商提供了收费方案,比较常见的有国内的各种网盘、手机厂商提供的各种 Cloud 服务等等。\n如果想基于家庭网络自己动手搭建一个私有服务的话,可能略微麻烦一些,不过也有较为成熟的方案了。\n条件具备的话不妨参考这篇《OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务》动手试一试。\n用 Flash 高清重制一款游戏 Flash 基本已经成为历史了。\n即便现在可以通过一些渠道或者浏览器勉强开启 Flash 插件的话,也会提心掉胆地担心计算机的安全性。\n毕竟那些恼人的弹窗广告有 80% 都是靠 Flash 技术实现的。\n但是还有这么一群人,他们玩着 4399 上的小游戏长大,80 后喜欢的各种主机游戏在他们眼里根本不值一提,倒是网页上那种基于 Flash 制作的即开即玩的小游戏(比如我能想到的就有:黄金矿工、狂扁小朋友、打企鹅等等)才是他们的最爱。\nFlash 技术被时代抛弃,那些 4399 们也就逐渐消失了。\n不过总有人会拥抱情怀,这篇《为拯救童年回忆,开发者决定采用古法编程》便讲述了这样一个故事。\n里面的哥们儿以极其硬核的方式实现了他的梦想,为了复刻一个 Flash 小游戏,他几乎重新写了一个 Flash 播放器。\nUnix 终端系统(TTY)是如何工作的 没有使用过大型机而直接进入 PC 时代的计算机用户,可能觉得“终端”就是电脑上那个能够输入 CMD 命令的黑乎乎窗口吧。\n即便是终日与命令行打交道的软件开发人员、系统运维人员,可能也很难一下子解释清楚什么是“终端”,它为什么叫这个名字。\n这篇《Unix 终端系统(TTY)是如何工作的》从计算机硬件发展的历史出发,介绍了计算机系统跟用户交互的发展历程,并针对“终端”系统进行详细展开,讲解了实现原理和后来发展的现代形态。\n喜欢硬核知识的朋友可点进去阅读一下。\nHN 讨论:极大提升你效率的软件有哪些? 哪些软件最能节约你的时间、解放你的双手、使你离不开它?\n这个话题几乎每过一段时间就会被拿出来讨论一番。\n每个人都有自己的偏爱。\n不过,看看大家的讨论,说不定也能发现一些新鲜的软件,也许能更新一下自己的工具库也说不定。\n比如上面这篇帖子里,楼主提到的 这个 csv 工具 ,可以在命令行让你高效对 csv 文件进行快速检索、合并查询、切片等等。 不过帖子里可能有人把节奏带偏了,在下面大吹特吹各种 IDE 软件,就仁者见仁了。\n资源 SQlite源码分析,一本讲解 SQlite 源码的在线电子书,主要对 SQLite 数据库的实现机制和使用方法做了简要分析。\n经典复古 win98 游戏合集,一个游戏整合包,里面整合了若干在 Win98 系统下才能跑的老游戏,像初代的雷神之锤、半条命、极品飞车等等。提供了基于 DosBox 的虚拟系统,即开即用,性能还不错。\nDOS 系统下的编程工具合集,想要重温在 DOS 环境下编程的感受,这里有一套比较全面的工具合集,包括 QBASIC、TurboC 等开发环境,以及一些用于游戏开发的图形库、引擎。\n给你自己跑个分,现在一些硬件评测动不动就使用软件进行跑分,用以展示硬件之间的形成差异,这个网站提供了一组小游戏,可以考验你的短期记忆力、反应能力,并给你打分。也试试给自己跑个分吧。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-12-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/","title":"机器文摘 第 014 期"},{"content":"机器文摘 第 012 期 长文 Github 登录被第三方网站滥用了吗? 为了方便账号注册,现在很多网站都提供了基于 Github 账号登录的方式。\n我个人也更倾向于使用这种方式登录。\n毕竟可以少填一些注册信息,减少思考密码的麻烦。\n但是这样做有什么安全问题没有?\n上周有一个在 HackerNews 上的帖子,有人遇到了在使用 Github 账号登录某些网站之后,导致他的账号莫名给别的仓库添 Star 的情况。\n这引发了大家关于 Github 账号权限管理以及通过第三方鉴权进行账号登录和注册的讨论。\n看完觉得在第三方鉴权授权时还是应该慎重使用才好。\n每个黑客都知道的命令行快捷键 在图形化界面、触控操作交互界面已经十分普及的今天,普通用户可能现在很少能接触到命令行操作了。\n但是对于软件开发者、IT运维工程师来说,命令行还是属于离不开的操作界面。\n而且对于有些工作任务来说,使用命令行完成起来要更加高效。\n这篇文章讲解了常见命令行交互时的一些快捷操作,比如常见的行内编辑、快速移动光标到命令开头、历史记录搜索等等。\n掌握之后可以在各种命令行交互界面中进行使用(基本风格一致)。\n基于颜色循环的动画技术 在计算机硬件资源匮乏的上世纪 90 年代,开发人员为了在有限条件下实现丰富的效果真是挖空心思。\n比如,还记得 Windows 98 的启动画面吗?\n蓝天白云,Windows 徽标,底部有一个蓝色的渐变色条,在缓慢的滚动。\n实际上它只是一幅图片,并非多帧动画。\n这就用到了一个叫做“颜色循环”的技术。\n来自维基百科:颜色循环,也称为调色板移动,是计算机图形学中使用的一种技术,其中颜色被更改以产生动画的假象。这种技术主要用于早期的电脑游戏,因为存储一个图像并更改其调色板比将动画存储为几帧需要更少的内存和处理器能力。\n这里有个博客使用 HTML Canvas 复刻了一批采用颜色循环创作的作品,效果非常惊艳。\n另外网站还开源了用于展示这些作品的图形引擎,虽然现在已经不再维护了,但是用于学习和探索还是很有研究意义。\n软件逆向工程入门 软件的加密和破解在普通用户眼里十分神秘。\n这篇软件逆向工程入门比较深入浅出地介绍了一些常用手法,跟着作者可以浅尝一下在内存中寻找注册号、修改汇编指令以使得软件保护失效等体验。\n资源 计算机课后作业,斯坦福大学计算机专业评选的历年来优秀作业作品。如果不知道自己编程需要练习什么的话,可以打开参考参考,很有实用价值,比起在 Leecode 上刷算法的题目,这些作业都在解决实际问题。\n互联网档案学术,全文检索索引包含超过2500万的研究文章和其他保存在互联网档案馆里的学术文档。 该馆藏涵盖从18世纪期刊的数字化副本,到最新的Open Access会议记录和从万维网上抓取的预印本。\nPlayCanvas Web 优先的游戏引擎,一个免费的游戏引擎,倡导以 Web 优先,在网页中提供从开发到发行的全部流程支持。\n命令行会话记录器,Asciinema 是一个免费开源软件,用于帮助用户录制在命令行中的操作行为,便于在互联网上分发自己的操作示范、教学演示。比起直接视频录屏的方式,这种以字符方式的记录更加节约资源,无论是记录、传播还是回放环节,都很轻量。\n十分钟物理,这套教程集合了一组十分钟左右的视频短片,每次介绍一个基本的物理概念并通过 Web 前端技术编程实现模拟。除了视频之外,网站还提供了源代码、演示环境等配套资源。\nEasy6502,一本学习 6502 汇编的电子书(没错,我就是特别喜欢这款 CPU)。网站带有交互界面,提供了一个简易模拟器,可以边学边练,教程最后会带你实现一个基于汇编的贪食蛇游戏。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-12-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/","title":"机器文摘 第 012 期"},{"content":"机器文摘 第 013 期 长文 从古董电脑中我们能学到什么 我也不知道为什么自己会对老旧电脑,尤其是上世纪80年代、90年代出品的电脑这么迷恋。\n我觉得那个时代的电脑散发着一种难以名状的工业气质。\n通过阅读这篇文章,使我意识到一些深层次的原因。\n这些老式电脑的魅力来自于当时技术的限制、简单粗暴和直接。\n通过深入了解这些老古董、学习开发那个时代的软件,可以更容易地了解计算机科学。\n毕竟,现在的计算机已经充分的复杂和“人性化”,软件把硬件包裹得越来越严实和抽象。以至于根本看不清它的内部构造和实现原理。\n去研究那些古董电脑吧,操作那些裸漏单纯的硬件接口,贴近更加具体的科技。\n蛋 这是一篇很富有哲理的小小说,严格来说跟机器没有关系。\n但是写的实在是很好,忍不住收录进来。\n毕竟,喜欢机器的人,很难抗拒这种对宇宙天马行空的探索。\nRLHF 模型详解 近期 AI 圈最火的事情,莫过于 OpenAI 发布的聊天机器人 ChatGPT 了。\n这个智能聊天机器人已经强大到可以让人担忧的地步了。\n那么,它背后的实现原理是什么?\n这篇文章讲解了 ChatGPT 所使用的 RLHF(人类反馈强化学习) 模型是如何实现的以及它的未来会怎样发展。\n基于扩散模型生成音乐 基于文本生成图像的扩散模型已经火了一段时间了。\n我当时还在想,既然基于扩散模型可以生成图像的话,那能不能生成声音呢?\n结果我只是动了动念头,人家这边已经把成果拿出来了。\n这篇文章介绍了他们基于扩散模型生成音乐的项目。\n我试听了一下,效果还不错,挺神奇的。\n资源 tmux 入门,一篇 tmux 的入门教程。tmux 是一个终端程序,可以同时模拟多个客户端控制台,如果觉得不好理解的话,可以认为它是一个控制台的多页签浏览器。因为在工作中经常需要 ssh 登录服务器进行编程开发,我现在已经离不开它了。\n一个有趣的个人网站,作者是一个日本在读博士生,网站放了一些个人的编程作品,主要跟物理模拟、像素艺术有关。\n你好,算法,一本开源电子书,可在线阅读,深入浅出讲解数据结构和算法,生动有趣,适合有一定编程基础但是算法这块有些薄弱的爱好者阅读。\n神经网络在线教程,一套神经网络编程教程,提供在线的 python 代码阅读环境,适合作为入门资料学习。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-12-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/","title":"机器文摘 第 013 期"},{"content":"机器文摘 第 011 期 长文 自己动手做一个天气墨水屏 有个喜欢动手的哥们,发现了自己及家人的一项小需求,即从家出门的时候想快速知道天气情况。\n虽然这种需求抬眼看一下手机也能实现,但是本着“懒惰使人进步”的核心思想(作者懒得掏出手机)他动手实现了一套基于电池供电的可以显示天气预报信息的电子墨水屏。\n这篇《做一个天气墨水屏》记录了作者从诞生点子到产品出炉的全过程。\n另外作者还开源了项目的源代码,可在这里获取。\nM1 GPU 的故事 GPU 大家都知道,这里有篇文章介绍了它的工作细节。\n作者来自一个给苹果 M1 芯片适配 Linux 驱动的团队(苹果官方不提供驱动,所以这意味着需要做一些逆向工程)。\n本文记录了这些工作中比较有趣的部分,还顺便介绍了 GPU 的一些底层工作原理。\n在 Commodore 64 上实现位图滚动条的显示 Demosense 是一项挖掘计算机硬件机能极限的活动。\n通常创作者们会通过各种编程技巧来实现看似无法达到的效果。\n由于 Commodore 64 这台古董电脑十分经典,现在仍有不少Demosense爱好者在为它开发程序。\n这篇文章讲述了著名 C64 demo 程序 Memento Mori 的实现过程,程序在 Commodore 64 上显示了一副巨大(对于C64来说)的图片。\n这在圈内属于首创。\n动手做一个 4 位 CPU 计算机组成原理是不是还没学明白?没关系,我们可以自己亲手做一个简单的 CPU 。\nNibbler 是一款 4 位 CPU,使用标准 7400 系列逻辑芯片(单个计数器、寄存器、缓冲器和门)构建而成。是一个简单 CPU 的教育示例,易于理解和构建,但仍然能够运行游戏和其他有趣的程序。Nibbler 在 5 x 4 英寸(127 x 102 毫米)穿孔板上使用绕线制造。CPU总共包含17个芯片。\n作者公开了设计图纸和相关资料,可在文章内部的链接中获取。\n资源 纯手撸一个解释器,编译原理没学明白没关系,这本在线电子书手把手教你写一个自己的解释器。 Git 飞行规则 (Flight Rules) ,一个十分全面的 Git 使用指南,把你能遇到的情况都想到了。 Vim 高级进阶,如果你已经学会了怎么退出 Vim,恭喜你,已经击败了 80% 的选手。想要在 Vim 中进行更高效的编辑操作,这份高手指南十分适合作为参考。 Flexbox 布局交互指南,这篇在线教程讲解了如何使用 Flexbox 进行页面布局,难能可贵的是直接在页面中提供了交互操作界面,可以一遍学一遍实践,非常方便。 在线 AI 标注工具,想要训练自己的 AI 模型,比如目标检测、图像分类等等,可以使用这个在线工具进行数据标注,直接上传图片然后在线标注,完成后可导出 VOC、Coco 等格式的数据集。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-12-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/","title":"机器文摘 第 011 期"},{"content":"机器文摘 第 010 期 长文 极客摄影指南 相机,也是机器的一种。\n我用它记录生活,捕捉生活中转瞬即逝的美好瞬间。\n有个问题一直困扰着我,怎样拍出不那么“到此一游”的照片?\n怎样才能“掌控”相机这个机器?\n这篇《极客摄影》(英文)能够帮助你对摄影做一个真正深入的理解(而不是学习那些充斥社交平台的各种浮于表面的“技巧”)。\n作者是一个热爱摄影的技术男,有二十多年摄影经验。\n听他给你讲讲什么是“光”和“构图”。\n一篇就够了。\nMS-DOS 背后的设计 包括我在内的不少 80 后接触电脑是从 MS-DOS 开始的。\n对于它的黑窗口和命令行都有着很深的印象。\n上大学时执行最多的命令是format c: /s /q\n当年还玩过不少在 DOS 平台的游戏,比如仙剑奇侠传、主题医院等等。\n只是当时没工夫对系统本身做深入了解。\n顶多是,自己在学习汇编语言时,对 DOS 又仔细端详了几眼。\n这篇《凑近看看 MS-DOS 》(英文),介绍了 DOS 系统的设计标准、内存分配、磁盘文件结构、FAT文件系统的技术细节等等。\n想要窥探技术细节的可以点进去看看。\n构建最快的 Lua 解释器 给动态语言编写解释器可能不算太难(如果只是能跑的话)。\n但是如果要编写一个高性能的、好用的动态语言解释器,比如像谷歌浏览器所用的 V8 引擎那样,就比较困难了。\n《构建最快的 Lua 解释器》这篇文章站在更高维度提供一种方法,即:编写一种可以自动生成编译器(解释器)代码的程序,以使得制作高性能解释器变得更加容易。\n我看了一下,大概就是自动化生成之前需要手工处理的编译器优化代码。作为编译原理学的不怎么明白的我,对此不敢评论。\n为什么 Linux 内核没有单元测试? 我对单元测试的态度一般,既不强烈支持,也不反对。\n听说有的开发团队由于对于单元测试十分狂热,已经到了不允许写注释,都用单元测试替代的地步。\n前不久,在 HN 上有网友发起了一个引战的讨论:“既然单元测试这么好,为什么 Linux 内核源码不用呢?”\n以下为部分观点:\n单元测试被严重高估了,TDD有一些好主意,但有一段时间它变成了一种宗教。\n单元测试与TDD宗教不是一回事。它只是意味着将事物划分为小单元并尽可能详尽地测试其功能。\nSQLite不是反例吗?他们有更多的单元测试代码,而不是实际运行的代码。\n资源 Python 100 天从入门到精通,Python 好学吗?好学又不好学,上手容易,精通难。这里有套开源教程囊括了从入门到实战应用(语言基础、数据处理、Web开发、网络开发、爬虫、深度学习等)的所有课程。这个仓库目前已经在 Github 上获得了 12 万star。可以说是好评如潮,想深入学习 Python 的不容错过。赶紧到我收藏夹里吃灰。\n在线单片机模拟器,想要学习单片机开发,又没有硬件设备吗?这个网站最合适。不需要担心手残不会电烙铁,也不用担心买不到芯片。直接在线进行模拟接线,直接运行编写的代码,结果实时展现。 slow roads,一个在线赛车游戏。基于网页制作。亮点在于作者实现了无限地图。所有地形和道路均使用程序生成。游戏有自动驾驶模式,如果只想观赏路边风景的话,可以开启。 TIC-80,TIC-80 是一台用于制作、播放和分享小型游戏的幻想计算机。有内置的开发工具:代码、sprites、地图、声音编辑器和命令行,这足以创建一个迷你复古游戏。在退出时,你将得到一个盒式文件,它可以在网站上存储和播放。 另外,游戏可以打包成一个播放器,可以在所有流行的平台上运行,并按你的意愿分发。为了制作一个复古风格的游戏,整个创作过程是在一些技术限制下进行的。240x136 像素的显示屏,16 种颜色的调色板,256 个 8x8 的彩色 sprites,4 channel sound 等等。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-11-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/","title":"机器文摘 第 010 期"},{"content":"机器文摘 第 009 期 长文 游戏中的“精灵” 精灵(sprite)这个词来自古法语单词“esprit”,意思是“精神”——源自拉丁语“spiritus”。在民间传说中,精灵是活泼、俏皮和神奇的小生物。然而对于游戏开发者来说,它又是另一个含义了。\n这篇《精灵的惊人历史》(英文),介绍了不同的游戏厂商,在早期硬件机能有限的条件下,如何实现“角色在屏幕上移动”这个现在看似十分简单的事情的。\n对于不了解“精灵”的含义的,稍作如下解释:\n2D 游戏在处理需要动起来的角色时,出于性能考虑,将一部分图形的绘制与背景画面的绘制分开,对于频繁需要刷新(动起来的)部分,单独处理,使他们感觉像是漂浮在背景画面的“幽灵”似的,故名“精灵”。\n任天堂 NES 的一些技术细节 NES 是任天堂推出一款极其成功的家用游戏机(NES : Nintendo Entertainment ,System 是其在北美发售的名称,亚洲叫 FC :Family Computer),不少80、90后的朋友应该都玩过(或者是国内山寨厂商仿制的*霸王之类)。\nNES 使用极其经典的 6502 CPU。这块 CPU 有多经典呢,苹果的 Apple1代2代 、史上销量第一的个人电脑 Commodore 64 、国内早年比较流行的文曲星等,使用的都是这个 CPU。\n《我做了一个 NES 模拟器》(英文),这篇文章的作者在编写模拟器的过程中挖出了不少技术细节,里面还提到了硬件存在的各种 BUG (没错,要模拟的话必须连 BUG 都得模拟,不然有些游戏玩不了),想要了解的朋友可以点进去看一下。\n作为模拟器爱好者,我对 6502 处理器非常好奇,一度希望自己动手也实现一个,而且这款处理器真的非常适合模拟器入门,毕竟只有三个寄存器和百十条指令。\n文中提到的 NES 模拟器在 Github 上开放了源码,有兴趣的可以学习。\n一个桌面开发程序员为了学习 Javascript 而手撸了一个基于 WebGL 的游戏引擎 学习一样技能最好的方式就是动手去做。\n当我感叹牛人怎么那么厉害的时候,往往忽略了牛人的学习过程。\n以为他们天生就那样。\n事实上他们的技能也是靠努力训练得来的。\n不过,学习方法确实很重要。\n《我对 Javascript 的尝试》(英文),这篇文章的作者原本是一个桌面程序开发者(类似 CAD 软件之类)。\n他突然想要学习前端开发,掌握 Javascript 语言。\n于是结合自己之前的知识,使用前端技术做了一套很优秀的 Demo 程序,一个性能和外观都很不错的游戏引擎。\n文章里作者详细介绍了实现过程中对技术、算法的选择等等。\n内容很长,但还算友好,比较干货。\n资源 开发者之路,汇总了各个技术路线的学习资料,包括前端、后端、运维、计算机科学、区块链、移动端、质量管理等等。 总之极其全面。 目前在 Github 有两百多万个 star,被 fork 了 三十多万次。 chrome 插件下载,访问谷歌浏览器插件商店有困难吗?试试这个网站,可以直接下载插件的包文件,下载后拖入浏览器即可安装。不过我已经转换到微软的 Edge 阵营了,用不到这个了。 CSS3 生成器,对于 CSS 的属性参数总是记不住,这个网站就很适合我。每次要调背景渐变、圆角、阴影、动画曲线等等,都得现去搜。有了这个网站,在线点点拖拖,直接复制代码即可。 tesseract.js,可直接在浏览器里运行的 OCR 引擎,支持多国语言(超过 100 种)文字识别。 AI 在线写诗,比较全面的 AI 写诗工具,可以写律诗、绝句、现代诗、歌词等等,根据输入的主题任意发挥。 图片分辨率在线提升,上传图片,网站使用 AI 算法将图片的清晰度自动提升,效果还不错。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-11-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/","title":"机器文摘 第 009 期"},{"content":"机器文摘 第 008 期 长文 用好 GitHub,给自己建立一个全方位的私有云平台 很多人都有进行个人的知识管理和数字资源管理的需求,市面上也有很多软件工具或者平台来满足这样的需求,但是大部分都是收费的,且自由度不高。我个人经常使用 Github 作为知识管理仓库,我的网络日志、技术博客、私人小项目、电子书籍等都放在上面,生活中已经离不开这个网站了。\n近期读到这样一篇文章\u0026ndash;善用 Github,全方位讲解了 Github 如何使用,如何将其提供的服务发挥最大化的作用,看完受益匪浅。\nGitHub 是微软旗下的一个在线软件源代码托管服务平台,也是一个拥有八千多万开发者用户的社区。很多开发者应该对GitHub有一定的了解,但非技术人员大多可能并不会去使用它。本文更多是想给非技术人员来介绍这个平台,看完这篇文章,希望能让更多人在上面来学习、创作与展示自己的作品。\nWebGPU 是什么?跟 WebGL 有什么关系? 前几天我想在网页上制作一个小游戏,用于尝试一下图形编程相关的技术。用到了一些基于 Web 技术的 3d 图形框架,比如 Three.js、Babylon.js 等等。在尝试的过程中遇到了一个新的名词 WebGPU,之前总是在听说 WebGL 相关的技术,结果说了这么多年,WebGL还没普及,怎么又冒出来一个 WebGPU?于是找了一篇文章,浅扒一下各个图形接口的历史。就是这篇浅入浅出 WebGPU。\n2016年6月,Google 产生了使用新API来代替WebGL的想法,称之为 WebGL Next。 2017年1月,Khronos Group 举办了WebGL Next研讨会,Chromium一马当先,展示了可以基于OpenGL和Metal独立运行的新图形系统原型,同时Apple和Mozilla也分别展示了自己的原型,三者都非常类似于Metal Api。 次月,Apple就向W3C提交了一个名为 WebGPU 的技术概念验证方案,基于Metal图形开放接口,最终W3C采纳了 WebGPU 这个名字作为下一代标准,Apple的提案进入了正式的小组提案中。 3月,Mozilla向Khronos Group提交了基于Vulkan的名为WebGL Next提案。 2018年6月,Chrome团队宣布着手实现WebGPU,这意味着Khronos的失败,WebGPU胜出,大家以后还是团结在W3C的周围。 按照预期,工作组希望在2021年底发布WebGPU 1.0 标准,不过目前只有草案。 WebGPU 1.0 草案:https://www.w3.org/standards/types#WD\n扔掉 Photoshop 改用字符串绘图 相信很多人都接触过使用字符绘制的图片,这在程序员圈子里甚至发展为一门专有的艺术 “ASCII 艺术”。不过我现在不是要说这些,我在一篇 2015 年发表的文章里,发现了这个:有个猛男在自己的程序里彻底抛弃使用 Photoshop 制作的图片资源,改用字符串来描述各种图形(程序界面的图标),然后自己再用代码将其渲染成为高清的图像。\n作者对此很沾沾自喜,他甚至设计了一套自用的语法规范,用特定字母代表特定的符号关系,这样就可以组合出各种复杂的图案了。\n我也在文章的评论区见到了跟我有同样疑惑的读者留言:“这不就是重新发明了 SVG 吗?唯一的区别就是没有用 XML 作为载体”。\n不过文章记录的整个开发过程还是很有趣的,希望了解朋友可以点进去看看 Replacing Photoshop With NSString\n资源 FFmpeg原理,FFmpeg 这个开源项目可能圈外的人士了解不多,但实际上我们生活中一刻也离不开它。现在的网络直播、网络视频网站和移动App、各种视频剪辑合成软件,都或多或少的使用了 FFmpeg 提供的编解码技术。这本在线书籍对于想进一步了解 FFmpeg 以及视频编解码技术的朋友是个不错的参考资料。\n本书《FFmpeg原理》主要讲解 FFmpeg 原理性的知识,前面几章主要讲解一些音视频开发的基础知识,例如原始数据 YUV 跟 RGB,封装格式 FLV 跟 MP4 ,压缩编码的基本概念,还有封装格式分析。\n开源虚拟与远程桌面基础架构,远程桌面软件,开箱即用,无需任何配置。(我个人目前还是使用windows的远程桌面多一些,不过这个开源的rustdesk看起来不错)\n您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器,或者自建,亦或者开发您的版本 Learn X in Y minutes,这里的教程几乎涵盖所有编程语言,完全没有废话。英文版、中文版都有。如果有编程语言基础的话,通过这个网站确实可以在几十分钟内掌握一门新的编程语言的核心知识。\nFlash 保存计划,Flash 虽然消失了,但是它曾经创造的辉煌一直在我们的记忆里,现在偶尔还想起一些经典的小游戏。这个网站里收藏了很多经典的Flash小游戏,通过一些黑科技复活了它们,可以在浏览器里运行体验。反正我一打开了黄金矿工,就半天停不下来。\nCodeGeeX: 多语言代码生成模型,又一个能帮你写代码的 AI 模型。提供有官方的 VSCode 插件。我试了一下,效果跟 Github 的 copilot 还有一定的差距。\nCodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2022年6月22日,CodeGeeX历时两个月在20多种编程语言的代码语料库(\u0026gt;8500亿Token)上预训练得到\n计算机网络基础学习(英文),一个在线讲解网络基础知识的教程,优点是内容简洁,不用特别多的专用名词唬人,另外还提供了在线实验的环境。\n关于计算机网络的书籍往往令人生畏 - 数千页,无聊的图表\u0026hellip;\u0026hellip;这个教程以几千字的字数引导您了解网络基础知识!它还提供动手实验室来实践所获得的知识。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-11-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/","title":"机器文摘 第 008 期"},{"content":"机器文摘 第 007 期 长文 如何在 HTML5 Canvas 制作可精确控制时间的动画 使用 Canvas 对象在网页中制作动画非常简单,有不少人喜欢直接使用定时器 setinterval 以一定的时间周期循环执行绘图代码来实现动画效果。但是这种做法有一个弊端,由于显示刷新率以及计算机硬件性能的不同,会导致在不同机器上的表现差异。比如你希望你的动画角色在 1 秒内移动 50 个像素,但是实际执行起来却很难控制。基于时间的动画这篇文章讲解了如何使用浏览器的 requestAnimationFrame API 来实现精准控制动画时间的效果,里面给出了一个很简单的样例,但是基本上给出了一个完整的“更新、渲染、通过时间变化计算运动距离”的游戏控制架构。\n如何使用纯 Web 技术开发一个相机 App 如果不习惯复杂的移动 app 开发环境,直接使用 Web 技术开发一些小的 App 也是十分方便的。我近期希望通过网页实现一个拍照的应用,并且希望不使用手机的原生相机功能,而是自己控制一些相机参数、后期效果、增加特定的取景框等等。于是我找到了一篇教学指南:Make a Camera Web App,只需几十行代码就实现了一个相机 App 。感兴趣的朋友可以点进去看看。\n数据库是如何工作的,从零开始写一个数据库 如果和我一样好奇数据库是如何实现的,可以看看这篇文章。带你用 C 语言从头撸一个数据库出来。\n使用 Rust 写一个操作系统 Rust 逐渐火起来了,这篇 2018 年的文章整理了一份教程,作者尝试使用 Rust 写一个操作系统,我之所以收录它是因为作者还在 Github 开源了代码,并且这系列教程甚至提供了多国语言的版本。制作精良。应该是实践操作系统知识的好教材。\n资源 100 天精通 CSS ,这个网站给了你 100 个关于 CSS 技术的挑战题目,也许练完之后可以达到深入应用 CSS 的效果,我尝试了几个挑战,有些题目的设置有些偏炫技范畴了,想在工作中使用估计会被打死。\nLinux 命令在线帮助工具,对于我这种经常记不住命令用法的人来说真的是一种福音。比如我就经常记不清 tar 命令的用法,面对压缩包解压或者文件打包的工作每次都是去网上搜索一番。有了这个在线工具,直接在命令行中使用 curl请求他的网址就可给出命令的样例用法详解,非常方便。比如执行curl cht.sh/tar 就会给出 tar 的使用样例了,我直接复制粘贴之。\n手机博物馆, 网站收录了各品牌手机的各代产品资料,包括手机图片、型号参数、当时发布的广告等。不过我看了一下,资料应该还不齐全,有些手机只是列了个名字和型号在那儿,还缺少详细信息,估计还在继续收集中。\n中文家用游戏博物馆 ,收录了比较齐全的家用游戏机及掌机的中文版游戏资料。可以直接在线通过模拟器玩耍。有不少经典的 FC、GB、MD 游戏,甚至还有小霸王学习机的 ROM ,可以在线体验。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-11-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/","title":"机器文摘 第 007 期"},{"content":"机器文摘 第 006 期 长文 怎样写一段代码把自己打印出来? 近期在知乎上看到一个如何编写代码打印自己的问题,感到十分有趣。以前也在网上见到过类似的代码,用 C 或者 Javascript 等各种语言实现的版本都有。当时只是感叹代码写的十分神奇,一段代码在运行之后竟然输出自己的源代码,而且一个字符也不差,并没有搞懂其中的原理。这篇回答里,作者给出了详细解释。并指出,冯·诺依曼早在他编写的《自复制元胞自动机理论》一书中的提出了这种事情在理论上的通用方法。\n如上图所示,自复制系统有五个基本部件:A:通用构造器;B:通用复制器;C:控制器;D:其他函数;ϕ(A,B,C,D)\\phi(A,B,C,D)\\phi(A,B,C,D) : A, B, C, D的编码;当自复制过程启动的时候,B将编码复制一份。A再根据复制出的编码构造出ABCD。最后,C再将这些结构组合起来,构造出一个新的、复制的结构。可以看到,自复制、自打印程序的核心就在于通用构造器和编码,因为复制器、控制器都是比较容易实现的。\n具体实现的示例,文中有更详细的说明。\n最后,此问题可以引申到,大自然中生命基于基因的复制机制,也是与此相关,甚至其背后都是同样的机制。\nKevin Kelly 在 68 岁生日时给出的 68 条建议 凯文·凯利(又称KK, 作者,著有《失控》《科技想要什么》《必然》等),上个月 28 号是他的 68 岁生日,他准备了 68 条简短的建议,作为礼物送给年轻人。\n有人翻译了KK 在 68 岁生日时给出的 68 条建议。\n摘抄几条如下:\n任何一项大工程(修房子、拍电影、开发 app)完成度为 90% 的时候,你都要做好心理准备:剩余的大量细节工作会占掉你另一段与之前相当的时间。\n不要担心自己问的问题听起来很傻。99% 的情况下,其他人都有和你一样的问题,只不过羞于问出口而已。\n别成为一群人里最聪明的那个。和那些比你聪明的人待在一起,向他们学习。如果能找到和你观点相左的聪明人,那就更好了。\n别做最好的。做唯一的。\n任何真实之物都源于虚构之意。想象是宇宙中最强大的力量,也是你能够日益精进的能力。生命中可以因不知众人所知而获益的能力,仅此一项。\n经验往往被高估了。招募的时候,要看资质,技能则可以培训。许多令人惊奇和赞叹的事情,都是由第一次做的人做出来的。\n怎样搭建一个最简的 GIT 服务器 GIT 是现在软件开发过程中必不可少的版本控制工具,功能非常强大,我们平时直接使用单位的私有服务或者在线的云服务(如:Github 等)。\n如果想要搭建个人的服务,可能就比较繁琐一些。阮一峰老师的这篇博客就解答了怎样采用极简的技术路线,为自己搭建一台 GIT 服务器。\n自己搭建 Git 服务器的原因,无非就是不方便访问外网,不愿意代码放在别人的服务器,或者有一些定制化的需求。 这时,你可以选择开源的 Git 服务器软件。 Gitlab CE Gitea Gogs Onedev 这些软件里面,Gogs 的安装是最简单的,但是功能相对比较弱。功能越强的软件,安装越复杂。 如果你只是想远程保存一份代码,并不在意有没有 Web 界面,或者其他功能,那么根本不用安装上面这些软件,一行命令就够了。\n为什么很多程序员讨厌低代码? “低代码”(一般指:不用或少用编写代码的方式进行软件开发)这个词近两年又开始火了,它代表着对软件工程的一种美好“幻想”,即:花费更低的代价去构建复杂的软件系统。\n虽然每隔一个时间周期都会被重提一次,但是每次都未能如愿。\n现在既然又被频繁提及,我在知乎上发现了这样一篇关于低代码话题的回答。从程序员的视角表达了对低代码这种期望的观点,有兴趣的朋友可以点进去看看。\n软件工程这门学问,研究的就是“如何利用工程思想,从整体上降低开发复杂性”;但与之同时,它不得不反复强调“软件工程试图解决的、是人为引入的不必要的复杂性;但工程的本质复杂性是无法逃避的。因为没有银弹,没有银弹,没有银弹!”\n我个人的观点是:低代码或者配置化、拖拽式软件开发,很难平衡对复杂现实的抽象程度和开发便利性的矛盾关系。如何做到既提供方便的组件同时又不限制对个性化需求的实现,这需要非常强大的设计能力以及对于特定应用场景的取舍。目前来看,如果要做到或者接近上述状态,必然要先消耗巨量的成本,至于是否值得,可能不同的主体会有不同的选择吧。\n资源 从加减乘除到机器学习,一本不错的数学扫盲书,如果你在学习人工智能的时候对数学感到吃力的话,这本书非常适合阅读,一点也不枯燥。主要讲解线性代数相关的知识。\n命令行的艺术 想成为命令行高手,掌握这一篇就够了。\n熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。\n基于实际项目的学习,这是一个巨大的代码工程资源索引,里面列举了针对各种编程语言的个人项目,当你不知道该如何去深入学习一门编程语言的时候,选择一个这里的项目然后自己动手跟着练一遍效果绝对惊人。入选的项目都十分有趣,比如怎样用 C 写一个解释器、怎样写一个自己的编辑器、自己动手实现 TCP/IP 协议栈,等等。\n霞鹜文楷,一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。用来看书非常舒服,特别是在排版上。微信读书已经内置,如果是第三方支持自定义字体的可以试试。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-11-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/","title":"机器文摘 第 006 期"},{"content":"机器文摘 第 005 期 长文 穿越到 1983 年学习 BASIC 很多著名的程序员,尤其在计算机游戏行业,孩童时期就在苹果 II 和 Commodore 64 这样的 8 位计算机上开始编写游戏,John Romero、Richard Garriott 和 Chris Roberts 都是这样的例子。这好理解。在 8 位计算机时代,很多游戏只能在计算机杂志和书籍中以印刷的 BASIC 程序清单方式得到。如果你想玩其中一款游戏,就必须手工键入整个程序。不可避免的,你可能遇到一些问题,所以你就得调试你的程序。等到你让它可以工作起来了,你就已经对程序是如何运行的有了足够的了解,你就可以开始自己修改它了。如果你是一个狂热的游戏玩家,你几乎必然会成为一名优秀的程序员。\n喜欢小霸王的小伙伴(老伙伴?),不可错过的文章,一起跟随作者回忆一下如何在老古董电脑上运行BASIC程序,顺便怀念一下当年靠着一本说明书就在小霸王学习机上编写(抄写)游戏的时光。\n文中提到的 Commodore64 电脑可以在这里下载模拟器。 在 Github 的 Pages 服务里跑 SQLite 作者尝试做一个小网站来显示一些统计数据,于是他想到了用数据库,但是,使用数据库需要托管和维护后端服务,或者每次将整个数据集下载到浏览器中(当数据集超过10MB时,体验就变得很差劲)。\n于是作者开始琢磨有没有办法找到一个可以在静态服务器上搞一个数据库服务得可能,毕竟提供静态服务的地方有很多(如 GitHub,GitLab,Netlify 等等)。\n一通折腾下来(借助了 WASM 技术并适当的进行一些魔改),作者竟然实现了一个 100% 静态托管的数据库服务。\n语句、表达式和海象操作符 这是一篇介绍如何通过“海象操作符“(类似这样:foo := 'bar')使得Python语句更加精炼的文章。\n这种操作符之所以可以使得语句更加精炼,主要原因就是它使得一句代码既进行了赋值然后又作为表达式返回了值。\n之前写 Python 代码的时候都没注意还有这种写法,而且貌似这在 C 和 C++ 中都是基本的特性。不过 C 和 C++ 是赋值语句=直接就返回了表达式的值,同时这给程序员提供了出错机会(有不少人应该还记得条件判断时少写了个等号导致的问题)。\n给个人开发者的一些建议(英文) hacker news 上的网友针对有志于运营自己的SaaS产品的个人开发者提了一些心得和建议。\n摘抄一点儿如下:\n关于做什么,做那些你自己都愿意付费的东西,别指望做出一个你自己都不想花钱使用的产品有别人来买单; 还是关于做什么,不要做需要漂亮UI的东西,那会让你陷入编码之外的很多麻烦(确实很牵涉精力),如果提供的工具能够通过简单交互就能提供优质服务最佳; 如果有可能,尽量提供自助服务模式,也就是说让用户不用见到你就可以自行操作付款了(作者这是有多社交恐惧?); 资源 数据结构与算法可视化,是一个学习算法知识的好工具。通过动图来演示和讲解数据结构和算法实现原理,针对每一个常用算法不仅有直观的图示,还附有一篇详细的文档,内涵原理知识以及代码实例,网站甚至还提供了答题练习功能,可以一边学习一边做题。 SLip,一个在浏览器中运行的Lisp解释器,使用Javascript实现。网站提供了一个简易的IDE,可以直接在页面中进行编程开发,还提供了图形绘制的扩展包,用于学习lisp语言非常合适。 针对 Windows 预先编译的 Python 扩展包,在使用Python的时候,尤其是在Windows环境,经常会遇到有些扩展包由于依赖某些二进制库的原因导致无法通过pip直接安装,自己动手编译又十分麻烦。这个网站提供了各种预编译版本,可以直接下载网站提供的whl文件到本地然后安装。 3D 渲染器入门,一套计算机图形学的入门教程,从原理讲解开始,手把手教你用C++语言编写一个自己的光线追踪渲染器。 HTMLDOG,前端开发基础知识大全,主要是 HTML、CSS、Javascript 的手把手教学以及语言参考。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-10-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/","title":"机器文摘 第 005 期"},{"content":"机器文摘 第 004 期 搞机 美国德州仪器公司出品的TI图形计算器是一种既能计算又能作图的新型的数学使用工具,它具备符号代数系统、几何操作系统、数据分析系统等,可以直观地绘制各种图形,并进行动态演示、跟踪轨迹。\nTI实体计算器的售价十分昂贵(相较于其他消费类计算器),这里有一个开源项目wabbitemu,使用C语言编写的一个TI计算器的模拟器,可以在电脑上运行并模拟TI计算器,支持多种型号,如TI-82、TI-83、TI-83-plus(需要加载对应的ROM)等。\n甚至有人基于这个项目编译出了Android的版本,安装后手机秒变成高级科学计算器。\n想进一步了解TI计算器的强大,可以看一下这篇文章《计算器与计算器游戏发展简史》。\nTI计算器模拟器安卓版本下载地址(含ROM文件) TI计算器使用说明书 以上资源来自@Karen的日志\n观点 社交媒体的正确使用方法: 一,不浪费一秒钟时间和知识结构相差太大的人去解释/讨论。你没有义务也没有这个精力。对任何不友好评论,迅速拉黑。 二,通过公开展示你的思考,来寻找在知识结构,兴趣或技能上,可能与你产生互补作用,或者 1+1\u0026gt;2 的效应的朋友。公开展示长期留存的文字记录,效率最高。\n来自@硅谷王川\n长文 我是如何用21天刷完SICP SICP 全称 Structure and Interpretation of Computer Programs,翻译过来叫《计算机程序的构造和解释》,是一本关于计算机程序设计的总体性观念的基础教科书,由麻省理工学院出版社与麦格罗希尔出版社共同出版营销。作者是麻省理工学院教授哈尔·阿伯尔森、杰拉德·杰伊·萨斯曼。\n这本书是计算机编程领域非常经典的一本教科书,内容覆盖范围非常广泛,从编程入门一直到教你亲手设计实现一个编程语言解释器。虽然是一本几十年前的书,但是书中的编程理念如数据驱动、过程抽象等到现在仍不过时。可以说是程序员修炼“内功心法”必读的一本好书。\n这篇《我是如何用21天刷完SICP(中文)》的文章讲述了作者通过阅读本书学习的过程和心得,里面的观点可以借鉴,我在看完之后也想再把这本书拿出来学习一遍。\n觉得看书太晦涩的,可以到下面这个项目里下载本书作者课堂讲解视频(国内好心人给做了翻译字幕)\n『计算机程序的结构和解释』公开课 翻译项目 百度网盘SICP文件夹 中译版视频专辑列表(bilibili) 图解Stable Diffusion模型 这篇图解Stable Diffusion模型(英文)详细讲解了 Stable Diffusion(最近比较火的那个可以通过文字描述进行绘图的AI模型)的工作原理。文中使用清晰的图示阐述了“扩散”模型是怎样通过给图片增加噪声一步一步生成图像的。\nWine是如何工作的 Linux桌面用户都遇到过在不得不运行 Windows 软件的时候,这个时候就可以使用这个叫做 Wine 的兼容程序,它可以让你在 Linux 下执行 win32 程序。( Valve 最新出品的游戏掌机 Steam Dect 就使用了 Wine 作为兼容层来运行 Windows 平台下的游戏)。\nWine 的名字来自于 “Wine Is Not an Emulator” 这个英文缩写。\n这篇《Wine是如何工作的(英文)》介绍了它的基本工作原理。\n在 Windows 记事本里运行光线追踪 光纤追踪(Ray Tracing)是一项计算机图形学技术,使用该技术渲染的计算机图像具有逼真的全局光照效果。\n这篇《记事本中的光线追踪 30FPS》记录了作者突发奇想要在Windows上的记事本中进行光线追踪渲染的趣事。\n其原理是通过系统API获取到记事本窗口的句柄,然后利用钩子函数给记事本的窗体发送相应的“消息”以及覆盖对应的内存数据来实现对记事本窗体界面的“魔改”。最终实现了在另一个进程里执行光线追踪算法,然后借用记事本中显示的字符来替代画面像素,从而“渲染”出画面的效果。\n资源 SerenityOS项目,一个从头开始的桌面操作系统,内核采用类似Unix的架构,界面外观则仿照了上世纪90年代Windows的窗口风格。作者并未将其定位成玩具,而是一款具备生产力的操作系统软件。 除了操作系统本身,这个项目还有配套的编程语言Jakt、自己的浏览器引擎LibWeb和浏览器Ladybird ​​​\n《中文技术文档写作规范》,阮一峰老师整理的技术文档写作规范,规定了标题、文本、段落、标点符号等文档元素的使用约定,需要经常编写技术文档的朋友可以收藏看看。\nFreehand意绘,一个在线的AI绘图工具,可以根据文字描述帮助你生成图片,界面简洁友好,使用方便。 计算机科学自学指南,提供了一份自学计算机科学的全方位资料大全,可以根据内容系统地进行学习计算机科学相关的知识。\n互联网上,到处都有许多的学习资源,然而精华与糟粕并存。你所需要的,不是一个诸如「200+ 免费在线课程」的清单,而是以下问题的答案:\n你应当学习 哪些科目,为什么? 对于这些科目,最好的书籍或者视频课程 是什么? 在这份指引中,我们尝试对这些问题做出确定的回答。\nUNIX环境中的高级编程,一套编程教程,在课程中,主要学习用C编程语言开发复杂的系统级软件,同时深入了解Unix操作系统(以及属于该家族的所有操作系统,如Linux,BSD,甚至Mac OS X)及其编程环境。\n涵盖的主题将包括用户/内核接口,Unix的基本概念,用户身份验证,基本和高级I / O,文件系统,信号,进程关系和进程间通信。还将涵盖Unix系统上软件开发和维护的基本概念(开发和调试工具,如“make”和“gdb”)。\n写在C头文件里的3D物理引擎,一个仅用C99标准写在C头文件里的超小物理引擎,没有依赖,直接包含头文件即可在你的工程中使用,功能完整,内置向量、三角函数、引力等计算库。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-10-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/","title":"机器文摘 第 004 期"},{"content":"机器文摘 第003期 搞机 收听广播可以缓解压力(个人体会) 近期我找到一个缓解焦虑的新方法,听收音机。\n一定要老式的那种,收听真正无线电波信号的。随便找个台,最好还带有滋滋啦啦的杂音,当作工作时的背景声音,听着听着就感觉无比的放松。但又不是简单的“粉红噪音”、“白噪音”带来的那种平静,这种“仿佛脱离现在、回到了某个时空”的感觉让人感到愉悦。\n我还没找到相关的研究信息,有人知道原理吗?\n动向 欧洲通过法案,将强制统一USB Type-C接口为充电接口 欧洲议会今天以压倒性多数投票赞成在2024年底之前将USB-C作为包括iPhone和AirPods在内的各种消费电子设备的通用充电端口。\n这对于苹果来说恐怕是个坏消息,对于消费者来说应该是个好消息。不过也许以苹果公司的脾气,说不定将来取消所有物理接口也有可能。\n欧洲强制iPhone使用usb-c接口 波士顿动力承诺不将机器人武器化 当地时间 10 月 6 日消息,波士顿动力、Agility Robotics、ANYbotics 等 6 家公司联合发表致行业的公开信表达了他们对这些可能性的担忧。他们称,先进的商业化机器人的经济可负担性和可获得性越来越强,其被滥用的可能性也越来越大。我们承诺不会将通用机器人或软件武器化,也不会支持其他人这么做;同时呼吁政策制定者、开发者和用户共同促进安全使用。\n我个人感觉此类声明并不会带来什么限制,相反地,我偏悲观的认为这种技术很可能以最优先的速度被应用于军事目的。\n网易新闻:波士顿动力承诺不将机器人武器化 TAOCP(《The Art of Computer Programming》) 4B正式初版 图片来自@算法时空\n世界著名程序员——高德纳老师,日前在他的个人网站宣布了TAOCP 4B正式出版的消息。\n这部计算机世界的经典巨著,耗费了高德纳老爷子的毕生心血,虽然已经出到了第四B卷,但本书目前还没有完全写完(本书从1962年开始写(中间停了几年是因为老爷子发现没有趁手的排版软件,就顺手发明了TEX——这又是另一个宏大话题了),计划共有七卷,其中第四卷分ABC三册)。他在自己主页中提到:\n与此同时,我继续研究第3部分(第4C卷),它已经有许多令人兴奋的主题。\n我只能说:祝老爷子身体健康!\nWebAssembly技术发展的怎么样了? WebAssembly 是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如 C、C++和 Rust 等低级源语言提供一个高效的编译目标。 ——来自Mozilla官方文档关于WebAssembly概念的介绍。\nWebAssembly技术号称可以在浏览器中高效执行代码,并可以很方便地将C、Rust等各种语言编译到浏览器中执行,那么目前他的使用体验如何?\n我周末做了简单体验。\n通过官方给出的文档和入门指南,可以很快速地搭建出程序的原型,上图就是我参考官方示例将Rust代码编译到网页中执行的效果(是一个经典的Game of life的小游戏)。\n从开发上来说,现在已经有了比较成熟的工具链(尤其是针对Rust语言到WASM的工具),和共享库的生态,想要进行开发,不必像前些年那样费心地搭建开发环境,基本上在Linux系统下简单执行几行命令即可完成环境搭建。\n从执行效果来说,我没有做性能测试,直观感受上来说,确实比原生js快了不少。\n但这并不是重点,我个人觉得这项技术它最大的意义在于,将之前的桌面程序技术有了向Web移植的可行性。\n我们有可能很快就看到完全兼顾Web分发的方便和桌面程序性能体验的产品。\n一则WebAssembly相关的新闻 GitHub网友整理的关于WASM的资源大全 一本手把手教你使用Rust语言进行WASM开发的在线电子书 一个使用WASM技术将三维设计软件CAD嵌入到网页中的开源项目 一个使用WASM技术在浏览器中运行的PostgresSQL数据库 观点 在你的密码里面放上一个逗号\u0026quot;,\u0026quot;,这样当你的密码在网上被人拖库时可以给黑客增加一些麻烦,因这样会使得他在作为csv文件往他的密码字典里面导入的时候,因为逗号分隔符的错位而让他崩溃。 注:csv文件默认使用逗号分隔符区分字段。\n来自:佚名网友。 当你长期使用windows远程桌面进行远程办公时,一层一层的服务器登进去,时间长了就会陷入盗梦空间那种疑惑,我现在是在哪一层?\n来自:我自己。 量子计算机就是向过去和未来借用了很多乃至无限的时间吗?刹那即永恒。 注:量子计算机号称每个bit位可在同一时刻表示多种状态。\n来自:我自己。 长文 从0到1打造家庭弱电方案 现在有不少人在困惑家里的网线该如何布局,这篇《从0到1打造家庭弱电方案》(中文)记录了作者完整的装修过程,内容十分精彩详尽。看完之后我有点儿后悔,当时装修时没有给各个房间拉上光纤,以及用了比较普通的超五类网线。\n如何配置一个完全基于命令行窗口的开发环境 我在油管上关注了一个日本小哥(Takuya Matsuyama),是一个个人开发者,经常上传自己的开发过程录屏,他完全基于命令行窗口(控制台)进行开发,没使用任何IDE。\n后来我参考他的配置文件给自己也配置了一套,使用fish作为shell,neovim加上各种插件作为主力编辑器,现已成为我的日常开发环境。\n有条件的可以到他的主页看看关于如何配置的详细介绍,或者直接去他的github仓库获取配置文件。\nTakuya Matsuyama小哥的主页 他的基于控制台命令行开发的各种配置文件 云桌面并不像你想的那么好 给开发人员配置一个廉价的笔记本加上一个高性能的云端工作站,这个点子棒不棒?\n听起来有很多的优势,兼具了性能、便携性、安全性等等。\n不过先等一等,这里有一位作者在这样尝试了之后,给出了不少负面反馈(比如多显示器支持、GPU加速、网页视频质量等等问题),有兴趣的可以点进去看看。\n《云桌面并不像你想象的那么好》(英文) 资源 从高中到大学,数学中常用符号和计算关系的英文名称,适合对数学公式中的各种符号感到困惑的人收藏,这本小册子汇聚了所有数学符号、常用希腊字母、代数式等英文叫法介绍。 如何在Ubuntu下进行x86-x64汇编语言编程,一本讲解现代汇编语言的电子书,基于常用的Ubuntu系统,从认识汇编语言开始讲起,到工具链的准备和怎样编写和调试程序,都有详细的介绍。 DrawKit,一个提供矢量插画的网站,有很多免费的高质量插画,可用于网站制作、软件产品等方面。 计算机教育中缺失的一课,一般学校里不会教开发环境的配置和各种效率工具的使用,这本电子书就是以环境和工具为切入点,将学校学习的理论应用于实际,比较接地气。 大学里的计算机课程通常专注于讲授从操作系统到机器学习这些学院派的课程或主题,而对于如何精通工具这一主题则往往会留给学生自行探索。在这个系列课程中,我们讲授命令行、强大的文本编辑器的使用、使用版本控制系统提供的多种特性等等。学生在他们受教育阶段就会和这些工具朝夕相处(在他们的职业生涯中更是这样)。 因此,花时间打磨使用这些工具的能力并能够最终熟练地、流畅地使用它们是非常有必要的。\n订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-10-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/","title":"机器文摘 第 003 期"},{"content":"机器文摘 第002期 搞机 MNT推出了一款名叫Pocket Reform的迷你笔记本电脑。它外形紧凑(屏幕只有7英寸),但功能齐全,据官方介绍,它的性能满足轻量办公需求,甚至还能玩一些游戏(ARM平台)。虽然现在的智能手机在性能方面已经有了很大提升,且便携性远超笔记本电脑,但是还是有相当一部分人倾向于在具有真实物理键盘的“电脑”上进行操作。\n在我看来,这台设备可能对于希望随时随地写两行代码的程序员更加具有吸引力。\n参考文章: 可以装在口袋里的开源PC 动向 文字直接生成3D模型 谷歌实验室的几个哥们上周发布了一个新作\u0026mdash;-DreamFusion。输入文字,就能生成带深度图和法线的3D模型。\n开发团队声称:\n最近在文本到图像合成方面的突破是基于在数十亿个图像-文本对上训练的扩散模型。将这种方法应用于3D合成将需要标记大量的3D资产和用于对3D数据进行去噪的高效架构,而目前这都不太可行。在DreamFusion中,我们通过使用预先训练的2D文本到图像扩散模型来执行文本到3D合成来规避这些限制。我们的方法不需要3D训练数据,也不需要修改图像扩散模型,证明了预训练图像扩散模型作为先验的有效性。\n具体方法据称是来自他们新提出的“一种通过优化损失函数从扩散模型中生成采样的方法”该方法允许他们在任意参数空间中优化采样(例如3D空间)。\n我看了一下官方给出的demo,3D模型还略显粗糙,不过可能将来算力提升之后会有改善。\n现在,除了插画师受到了职业威胁,就连3D建模工程师的工作也有可能被AI取代?\n参考文章: DreamFusion官方介绍 通过文字描述生成语音的人工智能也来了 Twitter 用户 Felix Kreuk 发布了从文本到音频 (Text to Audio) 的 AI 模型:AudioGen AudioGen 可以 (1) 根据文本生成音频;(2) 续写指定的音频;(3) 同时做以上两件事,根据指定文本描述生成指定音频。 作者给出的展示DEMO里展示了如下文本生成的语音: (1)在风声中吹口哨 (2)男人在说话时伴有鸟和狗的叫声 (3)警报器和嗡嗡作响的引擎接近后走远 (4)鸽子咕咕叫并伴有沙沙的声音 (5)男人说话的声音,背景伴有人群欢呼声\n从作者公布的架构图上可以看出来,采用的也是Transformer神经网络。之前在看到AI画图时我就想到同样的原理可能用于生成音频,结果这才没过几天,人家都已经做出来了。\n参考文章: @海辛Hyacinth 作者的demo和原理介绍页面(托管在github) 观点 站桩的简单,枯燥和有效,就好比持有 sp500 指数基金简单,枯燥但足以秒杀 95%以上的基金经理一样。 莫将容易得,便作等闲看。\n来自@硅谷王川 长文 为什么现在的软件这么慢(英文),作者在Windows系统(Windows 10, 21H2版本)下使用“录音机App”的时候获得了极差的体验(确切的说是软件启动后大概卡死了将近20秒)。于是动手分析到底是什么原因导致,然后发现主要是这个软件启动后疯狂扫描“用户”文件夹下的录音文件用于构建界面中的录音列表,这种密集IO操作导致软件停止响应。作者花了很大的篇幅来吐槽这种行为,对于微软工程师为什么这么做表示莫名其妙。不过由于我们现在的计算机大都使用了固态硬盘,而且我们的习惯一般不会在“用户”文件夹下存放太多文件,所以这个体验应该不太明显。但即使这样,我也同样对Windows系统现在的软件质量感到担忧。 内卷、汉明问题与认知迭代(中文),作者较为科学地分析了内卷的定义和形态,从而引申出了关于什么是“人生中重要的事”的思考,文章虽然比较长,但也清晰易懂,发人深省。部分引用如下:\n从大的方面说,社会需要创新,个人则需要突破,而创新和突破又都要求我们不断地精益求精。那么,内卷与精益求精是本质上一样的吗?如果不是,两者的区别在哪?\n在某件事情上花费太多精力,并不一定就是内卷;在无关紧要的事情上花费精力才是真的内卷。\n汉明早年在贝尔实验室工作。那年春天,他经常和几位同事聚在一起在餐厅吃午饭。吃饭期间,他向其中一位叫Dave McCall的同事提了一个问题:“在你的领域里最重要的问题是什么?”大约一个星期后,再次一起午餐时他继续发问:“你目前正在研究的最重要的问题是什么?” 显然,这位同伴对于这两个问题的回答并不一样。于是他接着问:“如果你当前做的并不是最重要的事,那为什么还要一直花时间投入去做呢?”有了这「灵魂三问」之后,于是——在那个春天接下来的日子里,汉明不得不另找别的同伴一起吃午饭了…… 汉明的问题听起来有些让人生厌,但后来演变成了一个在学术界很受关注的问题——汉明问题(The Hamming Question)。它本来说的是科研选题的事情,但实际上关乎人生最重要的选择。\n内卷,指的是在低水平的状态下无实质意义的消耗。这里的「低水平」,可能是客观的,也可能是主观的。 针对主观的低水平状态,我们需要冲破意识层面的障碍,同时把读书、实践和思考结合起来,反复迭代,这样才可能跃升到更高的认知层次上。 而针对客观的低水平状态,唯有认真对待汉明问题,选择好真正重要的人生大方向,才能避免卷入那些无关紧要的、无谓的消耗中去。这才是真正考验大智慧的时候了。\n资源 每个程序员都需要知道的 ,整理了一份资源合集,包含了软件工程师技能相关的各类知识资源,包括算法、数据结构、浮点、Unicode、时间、内存、分布式、正则、安全、架构、工程哲学、实践、职业发展、软技能。。。等等,以及一些可用于技能训练和学习的站点。看起来非常符合我这种“收藏了就是学习了”的囤积爱好者的胃口。 Word Writer 6 6502汇编源码,是一份开源的Word Writer 6的6502汇编源码,可在模拟器下编译运行。用来学习6502汇编是一个不错的项目。上个世纪80年代爆火的计算机Commodore 64是很多复古计算机爱好者(包括我)的最爱,Word Writer 6是该平台上流行的文字排版编辑软件。 HTTP Archive的年度报告,这份报告详细(超级详细)分析了目前全球各在线网页中所使用的技术,从页面中的“CSS”、“Javascript”、“字体”以及用户体验中的“搜索引擎优化”、“移动端支持”等超过20个方面进行展示,内容十分详尽,有种看NBA的进球统计的感觉。 Javascript Quiz,一份关于Javascript的小测验,可在线作答,一共十道选择题,全是关于Js语法的常见坑,每道题答完之后都可以点击“info”图标获取关于这道题的详细解释。我试着做了一下,勉强及格。 Streams,这里有一批纯AI创作的音乐,由AI负责作曲和编曲,工程师只是把这些乐谱放入DAW软件中进行混音和录音,完成度很高,听起来相当上头。 学习合成器,这个网站提供了一本交互式电子书,讲解了电子合成器的原理,还单独提供了一个交互页面用于调制和体验各种合成器音色。我尝试了一下,真的很直观,在页面中直接可以修改各种振荡器波形、滤波器、LFO等参数,非常适合用于音色合成入门。 函数式编程指北,在线电子书,讲解函数式编程的范式,以Javascript进行举例,作者风趣幽默,深入浅出,觉得被函数编程概念唬住的可以去看看。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-10-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/","title":"机器文摘 第 002 期"},{"content":"机器文摘 第001期 搞机 TurnT是一个颇具创意的唱盘设计,它把智能手机与模拟黑胶的老式音乐播放方式相结合。用家把触笔放在手机屏幕显示的黑胶唱片上,它即开始播放。从内部结构上看,它其实是一个无线扬声器,可以连接到智能手机播放音乐。TurnT这种播放音乐的体验增加了互动的体验感,如同在实际的唱片上一样,挪开唱针会立即停止音乐,将其“向内”移动到手机屏幕上显示的光盘中心就可以播放音乐。要更改歌曲,您可以通过滑动来更改专辑,还可以重新定位。\n参考文章: 把手机变成黑胶唱机 \u0026mdash; Yamaha发布了与智能手机配合使用的独特音乐设备 动向 AI生成图像技术带来的“艺术危机” 近几周,基于AI生成的图像艺术作品的新闻越来越多,以DALL-E、Stable Diffusion等神经网络模型为代表的图像生成类AI进化越来越快,已达“以假乱真”程度。我也在动手尝试后惊叹他们的生成效果非常逼真和充满想象力。然而很快,此类AI就引起设计师、画师、艺术家的反对(恐慌?)。当然也有很多持积极态度,把它们当作工具加以利用,甚至不乏商业头脑灵活的人士,已经通过AI作画开始获取收益。于是引发了一系列的反应和讨论。\n参考文章: 知名图库Unsplash 宣布禁传AI生成图像 付费图库集体封禁AI生成图片 AI 绘画 Windows 本地零基础搭建 Stable Diffusion AI数字绘画 stable-diffusion 保姆级教程 一个包装好的AI绘图开源GUI客户端 观点 程序员是计算机的翻译官。他们先是把人类的语言翻译成计算机的语言,现在又教会了计算机使用人类的语言。\n来自@t0mbkeeper 长文 对很多事情都有兴趣,但是生命的时间有限,怎么办?这篇hacker news上的讨论(英文)或许能提供一些建议。 这篇文章提到了一项关于焦虑的研究(英文)。研究表明,远离社交媒体(包括及时通讯工具)一个星期,可以显著提升幸福感、降低焦虑程度; 掌握一项技能需要时间和实践,降低预期,慢即是快。《我是如何学会编程的》(中文),这篇文章是一位网友分享的关于他学习编程的历程。 资源 coding-fonts ​​​是一个不错的编程字体网站,可以在线预览各种适合编程开发时用的字体,让选择更加直观。 深度强化学习羊了个羊 这个github仓库开源了一个通过AI强化学习来玩耍“羊了个羊”游戏的模型及代码,结构清晰,效果很棒,用于了解深度强化学习知识非常不错。 深度学习500问这本在线书籍以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,目前在github将近50k颗星。 订阅 这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。\n喜欢的朋友可以订阅关注:\n通过微信公众号“从容地狂奔”订阅。 通过竹白进行邮件、微信小程序订阅。 ","date":"2022-09-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/","title":"机器文摘 第 001 期"},{"content":"背景 之前一直有收藏文章并整理自己知识体系的习惯,使用的工具是evernote(印象笔记),十多年来收集数百篇网络文章,自己整理并编写笔记若干篇,已做到目录和标签的基本分类; 之前也有通过每日编写一个markdown文件来记录工作日志、零星日记的习惯,有心得感悟时都直接在工作日志中随手写入,保存起来; 通过github pages写过一些个人博客文章,更新频率不高,主要作为个人笔记在使用; 当前问题如下: evernote用户体验逐年下降,对设备限制较多,且内容存在云端、格式封闭,个人掌控感较差,数据有无法访问的风险; 工作日志中散落的心得感悟没有索引,基本埋没在以日期命名的文件里,不成体系; 收集的数百篇网络文章基本没有进行消化阅读,未形成自己理解的内容; 目标 为网络收藏和个人产出的文章建立索引,把之前的“仓库”形成“体系”; 从evernote中迁移出来,所有数据放在本地,并通过在线网盘进行同步; 以纯文本+附件资源作为载体,避免对一种编辑器或工具产生过度依赖; 工具选择 Obsidian,用于建立最基本的知识仓库,编辑自己的知识卡片,并充分利用它的双向链接功能将收藏的文章和自己输出的内容形成体系连接起来; vscode, 用于编辑技术文章、工作日志以及基于插件进行绘图,最终输出内容到Obsidian文件库中; 360网盘,用于在线实时同步存储Markdown的文件夹,任何具有同步文件功能的网盘均可; 具体计划 整理文章目录:按照文章来源(网络、书籍、心得)、知识层面(技术、生活、哲学)等进行分类,形成树状目录结构; 整理文章标签:每篇文章虽然只属于一个目录,但是可以有多个标签,提升了检索文章的维度。目录作为知识体系的骨架分类,标签则是详细划分(如技能相关的标签就可以有:编程、绘画、音乐、写作,并还能进一步细分); 参考少数派文章玩转 Obsidian 01:打造知识循环利器提到的Zettelkasten笔记法逐步整理多年积累的知识形成以“知识卡”(其实就是具有互相链接关系的Markdown文件)为单位的知识; [[玩转 Obsidian 01:打造知识循环利器 - 少数派]] 阅读整理多年收集的知识文章,按照大约每周一篇的节奏,产出自己理解后的知识卡片,形成“知识循环”; 如此往复若干时间,不断完善这个体系,工具可更换,载体亦可更换,唯独不变的是探索、求知的心; ","date":"2022-04-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/","title":"基于Markdown格式的知识管理尝试计划"},{"content":"简介 《少有人走的路-心智成熟的旅程》这本书据说是畅销多年,经久不衰,在豆瓣上评分很高。不少人纷纷表示此书给自己带来了很多思考和感悟。我是在今年第二遍阅读了此书,之前大约十年前草草看过一遍,印象不够深刻。但今年再读,书中就有很多文字能够读进去了。虽然作者本身对“爱”的定义和解读我并不完全认同,以及作者也许受宗教信仰的影响,在某些观点上有一定的倾向,但都不妨碍这本书给我带来震撼。\n笔记 人生苦难重重。\n开篇就表达了最基本的设定,让我闭上本来想要抱怨的嘴,不得不跟着往后翻看有没有可以解决的答案。\n解决人生问题的关键在于自律。人若缺少自律,就不可能解决任何麻烦和问题。在某些方面自律,只能解决某些问题,全面的自律才能解决人生所有的问题。\n在认真看本书之前,我对“自律”的理解还仅限于在生活上严格要求自己,作息规律、遵守诺言、办事靠谱、简约不浪费。但作者显然不仅仅是这个意思,否则也用不着用很大的篇幅来说“自律”。\n看一下作者对“自律”的定义。\n所谓自律,就是主动要求自己以积极的态度去承受痛苦,解决问题。自律有四个原则:推迟满足感、承担责任、忠于事实、保持平衡。\n只有不回避问题、以积极的心态去解决问题,才算作是自律。即便在生活中早睡早起、刻苦读书、勤奋工作,如果遇到问题首先想要逃避,那就不能算是自律。很惭愧,我之前在不少问题上都是以拖延为主要处理方式,本质上还是无法承受或者面对解决问题可能带来的痛苦,那么在读了本书之后,我会有意识地去改变做事原则,就拿上周来说,我终于鼓起勇气去诊所看牙,解决了拖了很久的牙结石问题(虽然智齿还没解决)。\n推迟满足感,就是不贪图暂时的安逸,先苦后甜,重新设置人生快乐与痛苦的次序:首先,面对问题并感受痛苦;然后,解决问题并享受更大的快乐。在充满问题和痛苦的人生中,推迟满足感是唯一可行的生活方式。\n这个话题不仅仅是在本书中提到过,据说有心理学家做过试验,在一群孩子里面寻找具有“推迟满足感”倾向的人(比如能够先忍住不吃巧克力以获取更大的奖励),结果证明这样的人在后续的生活中取得成功的概率要远高于先吃巧克力的人。本书首先强调这个话题,将其作为自律中的第一个原则,我想是因为道理都是相通的吧。很久之前我看过一篇讲解时间管理的文章,里面提到在规划一天的工作时,优先处理最难的那件事(文章中称“先吃掉那只青蛙”),然后当前的工作会越来越简单,这样的方式跟本书中作者所提倡的“推迟满足感”异曲同工。尽可能的正面问题、提早感受解决问题的痛苦,正是执行自律的首要原则。\n不能及时解决自己面临的问题,这些问题就会像山一样横亘在我们心中,阻碍心灵的成长和心智的成熟。很多人显然忽略了这个道理。我们必须面对属于自己的问题,这是解决问题的基本前提。 指望别人解决自己的问题,也不是明智之举。唯一的办法\u0026ndash;我们应该勇敢地说:“这是我的问题,要由我来解决!”\n这就牵出了第二个原则\u0026ndash;“承担责任”。逃避问题会自然而然的推卸责任,认为这不是自己的问题,始终对于自己扮演的角色缺少清晰的认知。不过作者提到了两种情况“神经官能症”和“人格失调症”,前者属于给自己强加责任,后者属于推卸责任。这么说来,我可能有前者的倾向,很多压力都来源于此。不过作者也提到在复杂的人生道路上,判断自己该为什么事和什么人负责,这是一个永远存在的难题。\n还有一种情况是,在有些事情上强加给自己责任,在有些事情上又没有意识到是自己的责任。读到这些章节的时候,我也在反思,当我一旦开始想要抱怨的时候,其实已经陷入“人格失调”和“神经官能”的边缘,要时刻提醒自己,不断评估自己的责任。\n忠于事实是自律的第三条原则。如果我们追求健康的生活和心智的成熟,那我们就要坚定不移地遵循这条原则。我们需要实事求是,杜绝虚假。我们越是了解事实,处理问题就越是得心应手。逃避现实的痛苦是人类的天性,只有通过自律,我们才能逐渐克服现实的痛苦,及时修改自己的地图,逐步成长。我们必须忠于事实,尽管这会带来暂时的痛苦,但远比沉湎于虚假的舒适中要好。我们必须忍受暂时的不适感,追求事实而不是假象,并承受这一过程的痛苦。\n这让我想到了“诚实”,不仅限于不撒谎(这一点实在是难以做到)。但我很快意识到作者所说的忠于事实比不撒谎更重要的是,面对事实,不可活在自己的想象里。虽然我们每个人都有自己的成见,看事情也很难看到全貌,但是不可做不基于事实的幻想,期望问题会自行消失、期望不付出努力就能得到回报。\n你既要承担责任学会推迟满足感,先苦后甜,把眼光放长远,同时又要尽可能过好当前的生活,让人生的快乐多于痛苦。\n这就是“保持平衡”,应该是一种“拿捏”吧。为了保持平衡,作者建议,适当的选择“放弃”。包括放弃过时的观念、习惯。王小波在小说中写道:“人生就是一个缓慢被捶的过程。。。”,如果不能适时的放弃一些东西,那很显然这个过程是相当痛苦的。\n先写这么多。\n","date":"2021-04-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/","title":"《少有人走的路》读书笔记"},{"content":"文章介绍 《管理自己(Management Yourself)》作者——彼得·德鲁克。该文是《哈佛商业评论》创刊以来重印次数最多的文章之一,节选自其著作《21世纪的管理挑战》。\n我第一次读到这篇文章,是2013年在左岸读书的博客,当时很快就放入收藏夹,今日再次翻阅,仍觉受益匪浅。\n摘抄部分在此记录,并附上自己的一些理解。\n笔记 知识工作者必须成为自己的首席执行官。你应该在公司中开辟自己的天地,知道何时改变发展道路,并在可能长达50年的职业生涯中不断努力、干出实绩。要做好这些事情,你首先要对自己有深刻的认识——不仅清楚自己的优点和缺点,也知道自己是怎样学习新知识和与别人共事的,并且还明白自己的价值观是什么、自己又能在哪些方面做出最大贡献。因为只有当所有工作都从自己的长处着眼,你才能真正做到卓尔不群。\n未来社会,体力劳动将逐渐被智能化机械所取代,人人都是知识工作者即将成为事实。每个人都需要把自己当作一个公司来看待,自己就是CEO,包揽人生的“市场”、“营销”、“生产”、“运营”等各项工作,只有从更高的视角来规划自己,才能掌握主动权,避免落入被动接受的局面。\n与运营企业一样,经营自己的第一步还是要先了解自己,深刻认识自己的优势与不足,这样无论是制定计划还是付诸行动,才能做到目标明确、行之有效。\n多数人都以为他们知道自己擅长什么。其实不然,更多的情况是,人们只知道自己不擅长什么——即便是在这一点上,人们也往往认识不清。然而,一个人要有所作为,只能靠发挥自己的长处,而如果从事自己不太擅长的工作是无法取得成就的,更不用说那些自己根本干不了的事情了。\n这个观点跟我的直觉是相反的,在读到这段文字之前我以为自己对擅长什么了如指掌,但认真思索之后,才发现事情并没有那么简单,有些自以为是的优点根本不值得推敲,如沟通表达、对技术了解广泛、技术趋势敏感等等。至于真正做什么样的事情非常的得心应手,还真得通过认真分析才行。\n要发现自己的长处,唯一途径就是回馈分析法(feedback analysis)。每当做出重要决定或采取重要行动时,你都可以事先记录下自己对结果的预期。9到 12个月后,再将实际结果与自己的预期比较。我们只要持之以恒地运用这个简单的方法,就能在较短的时间内(可能两三年),发现自己的长处——这是你需要知道的最重要的事情。在采用这种方法之后,你就能知道,自己正在做(或没有做)的哪些事情会让你的长处无法发挥出来。同时,你也将看到自己在哪些方面能力不是特别强。最后,你还将了解到自己在哪些方面完全不擅长,做不出成绩来。\n作者给出了一个据说十分有效的方法,虽然执行起来略显繁琐且时间较长,但应该还值得一试。我个人有记录工作日志的习惯,但停留在时间消耗的记录和分析层面,并未对任务执行的结果进行预期和分析。\n首先最重要的是,专注于你的长处,把自己放到那些能发挥长处的地方。其次,加强你的长处。第三,发现任何由于恃才傲物而造成的偏见和无知,并且加以克服。\n想起了之前读到的另一本书《现在发现你的优势》,虽然木桶原理说要补充自己的短板,但这里的观点则强调要充分把自己的优势利用起来,并且进行加强,这样才能更好的发挥自己。当然,努力学习新技能、新知识,发现自己的偏见和不良习惯然后克服它们也很重要。\n把预期和实际结果进行比较,也会发现自己不能做什么。我们每个人都有许多一窍不通、毫无天分的领域,在这些领域我们甚至连平庸的水平都达不到。人们,尤其是知识工作者,就不应该试图去完成这些领域的工作和任务。他们应该尽量少把精力浪费在那些不能胜任的领域上,因为从无能到平庸要比从一流到卓越需要人们付出多得多的努力。\n深有体会,不应该将时间和经历消耗在自己即使努力也达不到平庸水平的事情上,然而现实中却有很多人在被动的做着这样的事情,甚至还抱有不切实际的幻想,人生苦短,早日醒悟早日改变。\n我属于读者型,还是听者型?首先,你要搞清楚的是,你是读者型(习惯阅读信息)还是听者型(习惯听取信息)的人。绝大多数人甚至都不知道还有读者型和听者型之说,而且很少有人既是读者型又是听者型。知道自己属于哪种类型的人更少。\n这一段不知是翻译的问题还是作者没说明白,文中并未定义“读者型”、“听者型”这两种类型的工作方式具体是如何工作的,只是通过例子强调了自己工作方式的不同所带来的巨大差异。我的猜测是,“读者型”应该指的是在工作中理性和逻辑思维占上风的人,通常通过阅读逻辑缜密的文字来规划和开展工作,而“听者型”则属于感性思维偏多,通过视觉、听觉来判断事物的发展。\n如果一个组织的价值体系不为自己所接受或者与自己的价值观不相容,人们就会备感沮丧,工作效力低下。\n不要试图改变自己的价值观,这只会让你倍感痛苦,你可以更换环境或者改变组织价值体系。\n成功的事业不是预先规划的,而是在人们知道了自己的长处、工作方式和价值观后,准备把握机遇时水到渠成的。知道自己属于何处,可使一个勤奋、有能力但原本表现平平的普通人,变成出类拔萃的工作者。\n机会留给有准备的人,但前提是这个人认识到自己的长处、工作方式、价值观,所谓的把握机会,是了解了这些之后才能识别到机会。\n一般来说,一项计划的时间跨度如果超过了 18个月,就很难做到明确和具体。因此,在多数情况下我们应该提出的问题是:我在哪些方面能取得将在今后一年半内见效的结果?如何取得这样的结果?\n千里之行始于足下,如果决定开始行动,也不可把计划定的太远,自己给自己安排近期可行的执行目标,对效果要有清晰的预期,对如何取得效果应有详细而具体的计划。\n人与人之间相互信任,不一定意味着他们彼此喜欢对方,而是意味着彼此了解。因此,人们绝对有必要对自己的人际关系负责。这是一种义务。不管一个人是公司的一名成员,还是公司的顾问、供应商或经销商,他都需要对他的所有共事者负起这种责任。所谓共事者,是指在工作上他所依赖的同事以及依赖他的同事。\n成熟的处理人际关系,同样需要问文章开头的三个问题,了解他人或者共事者,是我们的义务和责任。\n在一个崇尚成功的社会里,拥有各种选择变得越来越重要。从历史上来看,却没有“成功”一说。绝大多数人只期望坚守“适当的位置”。唯一的流动性是向下的流动性。然而,在知识社会里,我们期望每一个人都能取得成功。这显然是不可能的。对许多人来说,能避免失败就行。可是有成功的地方,就会有失败。因此,有一个能够让人们做出贡献、发挥影响力或成为“大人物”的领域,这不仅对个人十分重要,对个人的家庭也同样重要。这意味着人们需要找到一个能够有机会成为领袖、受到尊重、取得成功的第二领域——可能是第二份职业,也可能是平行的职业或社会创业。\n在飞速发展(或者说在加速发展)的时代,人人都在焦虑,仿佛竞争、内卷根本无法避免,但如果合理的认识自己、管理自己,并且去用心经营的话,也许人人都有机会可以在擅长的领域做出闪光的事情,获得一份自己独有的成就。\n自我管理中面临的挑战看上去比较明显,甚至非常基本,其答案可能不言自明,甚至近乎幼稚。自我管理需要个人,尤其是知识工作者,做出以前从未做过的事情。实际上,自我管理需要每一个知识工作者在思想和行动上都要成为自己的首席执行官。\n最后一段很关键,“做出以前从未做过的事情”,即行动最为重要。这也是为什么我会花费一个小时的时间,从头又阅读一遍这篇文章,并摘录下来加以分析理解的主要原因。\n","date":"2021-04-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/","title":"《管理自己》阅读笔记"},{"content":"保持好奇心 大概是2011年左右,我把QQ签名改成了“好奇、求知、创造”,从此再也没有改变过,我所喜欢的、热爱的、欲罢不能的事情,都被这三个词涵盖了。 十年过去了,很高兴自己还能保持一颗探索未知、热爱学习的心。 读书 现在听书比读书所占比重大,阅读时间缩水明显,翻开电子书的时间都有限,更别提手不释卷。 年初重温《三体》,即便很多情节已烂熟于心,重读仍有新发现,休闲阅读而已,只为放松大脑。 其余时间陆续阅读一些杂书《原则》、《随机漫步》、《菜根谭》、《曾国藩传》等若干。 唯一触动较大的是年末再次翻看《计算机程序的构造和解释》,此次配合网上的公开课视频进行,跟随原书作者课程讲解节奏,对于知识的理解大有帮助,视频虽然年代久远,但知识历久弥新,比起科技业广泛应用的新兴技术,书中的计算原理以及相关的思想更像是对应了武术的“内功心法”,一旦有所突破,则在上层应用产生巨大的提升,与工作学习都大有裨益,其中玄妙不可言说。 摄影 户外活动大为减少,往年春天乃摄影高产期,今年却苦于疫情无法外出,摄影爱好被迫搁置,2020年对摄影技术的练习几乎停滞,无心仪作品产出。 卡片相机已很少使用,手机拍摄已是主流,器材追求已解毒,但如有更新的街拍机问世,心头恐怕还是会痒。 有一事可提,今年独自吃饭次数很多,每次都拍食物照一张,累积下来一年竟拍了几百。 生活 压力与机遇并存,最大收获是面对挫折、困难更坦然,2020不愿多提。 记忆力确实有下降之趋势,回忆起来竟无亮点,亦可能本身就比较平淡。 发现凡事都要低调不吭声的重要性,切记四处宣扬,否则就会出现“说出来就不灵”的魔咒。 学习 对8bit老古董计算机的兴趣不减,四处搜寻相关知识,弄了一大堆模拟器,研究过程中竟对之前所学计算机组成原理有了新的认识和理解,喜出望外,本该大学之时就应掌握的技能,到现在再学也不迟,重在理解。 创意类软件如blender等也持续浅尝,进步缓慢,但入门已没问题,缺少作品练习,安排即可。 儿子已入大学,借用假期时间,我教他编程,他给我讲解高数,算是技能交换了,费曼学习法的一个很直接的应用案例。 越发觉得B站是个学习的好地方,该站以后的发展不可估量,但从教育来看,很可能迅速超越国内二流大学,或者未来改变大学的形态也未可知。 后续计划 希望可以继续通过写字记录学习的知识,保持一定量的文字输出,如条件实在有限,配合语音录音也可。 在自己热爱的事情上,持续学习,关注一下作品输出(持续开新坑),早日成为心目中的“全栈工程师”、“三级工程师”(可参见吴军《硅谷来信》中的定义)。 限制烟酒摄入,保持每日的活动量,能走路就不坐车。 ","date":"2021-02-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/","title":"2020年个人总结"},{"content":"2019年个人总结 起头 2019年过的比往年还要更快,今年的新年假期只有一天,正好用来写总结。\n2019年是充分践行“在事儿上磨练自己”的一年,对目标有了更清晰的迭代,在行动上更加倾向于知行合一,继续缩减无效信息的获取和消费,挤出精力去做对自己更重要的事情。\n有多少成绩不好说,但是多少有一些感悟。\n摄影 每年的春季,都会有一种强烈的想要深入摄影的感觉。最近几年越来越明显,一方面可能跟大量的摄影器材新产品发布有关,另一个方面,环境的复苏,春天代表着一种生机勃勃的精神,敏感的人们便容易感受到事物的变化。\n还有就是,可能因为春天比起冬天来比较。。。不冻手。\n今年大概按了四五千次快门吧,能看的入眼的也有个百十来张,我对摄影的定位就是记录日常生活,发现并捕捉生活中的美好瞬间,如果让我挑一张自己比较满意的话,就是下面这张:\n在地铁上的抓拍,当时感觉这个包比较有趣,于是就拍了。\n思考 大部分繁忙的人们,每天用在思考上面的时间都是很少的,或者说高质量的深度思考太少,导致了一种错觉,没有时间闲下来,仿佛进入了一个繁忙的死循环(这里推荐一本书《稀缺》,关于这种现象还有一种装逼的说法叫“内卷化”)。\n许多比较成功的人士,并非这么繁忙,相反地,他们会腾出大量的时间用于思考,以思想来指导行动,给自己留出“空余”的时间,然后“行动”才有意义。\n写到这里,我又想起一件事儿,比如装修房间,需要规划空间的布置,一定要规划空出来的部分跟实际功能使用的比例,不能一味将空间沾满用干净,那样的话整体就会感到很压抑,而如果空余的部分跟使用的部分有一个合理的平衡,就会整体感到档次和品质提升了不少。\n这种“用”与“不用”的平衡可以说到处都能体现,摄影中存在“正负空间”的说法,也有“影调平衡”的说法,都是在讲究一种平衡。\n我们对自己日常工作、生活乃至人生规划,都要向这种平衡去靠拢,每年、每月、每天的时间分配也要考虑到这种平衡,因为如果一味的用满,则会给整体的效能和品质大打折扣,看似繁忙充实,实则得不偿失。\n所以,今年我更加注意留出时间给自己,深度思考,尽力争取空闲时间,把空闲当作一种保持平衡的“负空间”。\n早起 今年加强了早起这个习惯,起床时间直接拨到了早晨6点,经过一段时间练习,现在就算不用闹钟也可以准点起来,睡眠质量不降反升,真是一举多得。\n起床早的话,感觉精力充沛,精神状态也很不错,睡懒觉并不能带来充分的休息,反而早起的好处却很多,比如时间上的从容,交通不拥挤,吃饭、办事等都比较轻松,能够感觉每天的有效时间得到了延长。\n我这么做倒也不是因为自律,而是想给自己更多的时间和机会去学习和体验,在我看来,外部的物质环境远没有自己的精神体验重要,随着时间进程的加速,谁都能意识到生命不是无限的,多做一些自己喜欢的事情比什么都重要,安逸可以适当体验,但更多的是,去观察和创造。\n健康 心态平和所带来的第一个福利竟然是体重提升了10斤左右,半年时间内从65公斤飙升至70公斤,搞得有点儿措手不及,怀疑是不是因为工作地点搬迁之后周边好吃的有点儿太多了的原因,再也不敢相信随便吃都不会胖的神话,从能看清肋骨到能看见肉褶儿不过是几顿羊肉汤的功夫。\n在可供我焦虑的选项里除了脱发,又增加了一项。\n手机 今年将我的电子产品全线更换为自主品牌华为,一方面是苹果手机在创新上已经不思进取,在将开发团队外包给印度之后,其系统的稳定性和体验均出现大幅下滑,苹果公司本身的吃相也越来越难看,另一方面,国产手机现在做的确实不错,体验很好,而且就算是华为的高端手机,也比国外的那些手机“物美价廉”,所以支持国产很正常。\n读书 除了一些专业的工具书籍以外,今年没有买任何的“闲书”,但是翻出了以前买来的重读了一些。\n这个可以深入说一说。\n比如今年又重读了《老人与海》,算是想明白了,为什么海明威仅凭借这一部中篇小说就能获得诺贝尔文学奖。以前上学的时候看此书,觉得吧,没意思,一个关于捕鱼的故事有什么可看的呢?但多年以后又重新翻看的话,体会就大不相同了。\n今年年中的时候在老家跟几个老友小聚喝酒,仿佛一夜之间,感到我们这一代人的成长,大家忽然都成了家庭里的核心力量,所面临的压力陡增,无论是父母健康还是后代教育或者是亲戚邻里帮扶,我们这一代正在成为家里各项事务的第一责任人。\n唏嘘之余,我才想到,我们这些人,哪一个不是《老人与海》中的那个捕鱼的老人呢?我们每个人都在等待生活中属于自己的那条大鱼,或者都在跟自己的那条大鱼在激烈搏斗,小说中的老人跟大鱼僵持不下,连换个姿势都成为一种奢侈,我们在面对各种生活中的琐事时又何尝不是跟老人当时一样的境遇呢?\n所以说《老人与海》这部小说能够给人力量,我们都在跟“大鱼”搏斗,这是我们的使命。\n其他的书也陆续看了一些,但都侧重于“闲书”,比如《数学之美》、《巨人三传》、《人类的群星闪耀时》,等等。\n不以功利心读书是基本原则,将至少保持一百年不动摇。\n学习 说到了学习,为工作而学的不算,今年在私下里研究最多的就是计算机图形学了。\n由于缺少大块的时间,系统性学习是不可能了。\n只能利用一些碎片时间,比如在下班路上阅读一些开源代码和论文,断断续续的。耗费了挺长时间才把空间坐标转换的矩阵给推演明白。\n不过值得欣慰的是,编程也没落下,利用周末时间充分发挥理论结合实际的思想,我竟然亲手撸了一个基于web画布的光栅化渲染器,很原始,但是可以渲染obj格式的线框和三角面。\n但毕竟平时很忙,估计等到可以加上光照和着色器的时候还得等几年了。\n结尾 总的来说,认真做好每件小事,可以算是今年的主要指导思想,放平心态,不对自己要求太高,重点是投入进去,以谦虚的心态,搞懂小事,做好细节,即便是做的事情不多,成果也不大,也没关系,若能将小事做好,也能给自己的内心带来平静。\n以往的习惯,往往是给自己定义较高的完美目标,结果就是不能完全令自己满意,时间长了难免带来较多负面情绪,随着年龄的增长,逐渐意识到自己的平凡和普通,虽说不是上和自己或者世界和解,但也逐渐更加了解世界和了解自己。\n无论别人怎样看待,自己的感受才是最重要的,所谓幸福也主要就是一种自我的感受,只有自己才能对自己负责,任何人的建议都是首先站在建议人那一方的利益考虑。所以认真对待该做的事情,同时不违背自己内心的意愿,每一分钟都不是在准备生活,而是就在生活之中。\n抛开不可抗拒之因素,仍然以自己的节奏为中心,抓住重点,继续学习和深入实践,饭一口口吃,事儿一件件做,只要小事能推进,日积月累也定会带来不小的收获。\n","date":"2020-01-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/","title":"2019年个人总结"},{"content":"有监督学习的两种主要任务(分类和回归) 有监督机器学习任务主要分为两种,一种是分类任务,一般是通过学习算法实现对未知数据的分类甄别,比如判断是男性还是女性,预测明天会不会下雨等等,预测结果是离散的分类。另一种是回归任务,用于预测一个具体的值,比如房价、年龄等等,预测结果是连续的值; 解决回归任务比较常见的算法就是线性回归算法; 线性回归 线性回归是最典型的用于回归任务的机器学习算法。它的基本原理是基于,任意一个为n的值,可以通过一个n-1阶的多项式进行拟合; 线性回归的算法的目标是根据已知标签数据,训练一个预测函数f(a, b),使得x输入带入ax+b这样的多项式可以得出需要预测的值; 所以目标是找到合适的a和b(从数学语言的精确描述来说,一般用别的符号代替,为了方便记录,我使用a和b); 为了找到合适的a和b,需要定义一个损失函数(也有称为代价函数的),J(a, b),用于判断a和b是否合适,比较简单的有“方差均值”法; 方差均值指的是,所有样本带入预测函数f,将预测值与实际值相减,取平方,求和再求平均数(暂时不知到markdown里如何加入公式); 那么带入损失函数,就是意味着,找到合适的a、b使得刚才那个方差均值小于一个阈值(接近最优); 线性回归本质上,是在平面坐标系里找到一个与样本匹配的直线,这样基于这个直线,即可预测未知的值; 梯度下降 如何找到合适的a和b,一个一个地去试是不可能的(无穷多的计算量); 比较典型的算法是“梯度下降”,又是牛顿起的头; 比较生动的描述是,想想一个三维空间图形,X和Y平面是有a和b的值构成,Z轴是损失函数的值,值最小的部分(在图上就最低的部分,像一个山谷)就是最优解; 从山顶的某个点上,环顾360度,找到适合下山的一小步,一点一点儿走向山谷最低处,有点像慢慢走楼梯,所以叫梯度下降; 从我的体会来看,这个方法有点像牛顿那个计算平方根的迭代法(根据一个猜测值,然后通过迭代公式寻找一个更加接近正确值的值,直到误差降低到合适范围); 从微积分的角度,就是找到损失函数J在最初尝试的那个点上的切线,并通过它的斜率(也就是导数值)乘以一个系数a,逐步逼近最低点(切线斜率为零)的过程; ","date":"2019-06-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/","title":"线性回归和梯度下降"},{"content":"机器学习的概念 机器学习是人工智能的一个分支,是近年来逐渐具备实用性的各种人工智能应用的基础。其本质是(我目前的个人理解)利用针对已知的数据集合抽取采样特征,然后利用某种数据模型(核心是某种算法:如kNN、SVM、朴素贝叶斯等)对数据进行计算处理,得到一组可以预测未知数据集特征的参数和手段,从而可以对数据进行预测判断的一种数据处理方法。\n机器学习相关的名词 神经网络:是机器学习的一种实现方式,从概念上来说,小于“机器学习”,但是由于其在图像识别、语音识别、语言翻译等领域的优异表现,以至于现在提到机器学习就认为是神经网络,实际则不然,机器学习的概念更大,更加基础,是实现神经网络应用的基础理论和方法; 深度学习:是神经网络的应用特例,同样是在应用层表现优异,可以理解为神经网络的一种实现; 大数据:机器学习的数据处理基础支撑,近年来机器学习在应用层面表现较好主要得益于大数据技术的发展,可以使得模型训练内容量级增加,极大的提高了模型准确度; n维向量:来自线性代数,在机器学习中起到重要作用,在机器学习中一般用于各种特征数据的载体,在不同的算法过程中传递和计算。 机器学习相关的工具 编程语言:目前比较流行的是Python,因为有比较丰富易用的程序包,很多科技公司也开源了较为成熟的框架,再加上Python语言本身的简单易上手,使得Python成为这个领域最流行的语言。当然C和C++、Java还是实现各种算法的根基,Python更多是提供了一种调用接口; iPython:Python语言的交互控制台,可以较为方便的测试、调试Python程序,有较强的交互功能,比语言发行版自带的强大; jupyter:提供Python语言的Web交互界面,通过网页即可编写代码,并及时反馈执行结果,由于是B/S架构,所以可以使得运行时跟开发环境分开。编辑界面同时支持基于Markdown语法的文档编写,使得“文学化”编程成为一种可能,非常适合用于科研人员的汇报材料或论文; TensorFlow:谷歌开源的机器学习框架,快速灵活部署机器学习应用,可以应用与大规模、工业级场景; keras:基于Python编写的高级神经网络API,属于对机器学习的深度封装,如果以学习机器学习原理为目标的,不建议使用,还是先手动将若干种核心算法实现一遍比较深刻; 预期的学习方法 通过阅读相关的书籍,对于概念有所了解,这个过程可以是粗糙的浏览,不求详细的理解各种原理和算法; 尝试一些教学视频,了解实操的基本流程,对于自己读书得到的概念进行验证,修订理解,并熟悉基本工具的使用(如Python的numpy、plot等); 细读书籍,按照书中的事例进行实操,并尝试推导算法的基本原理,理解后,形成自己的文字; 定义简单的任务,贯穿数据准备、数据清洗、特征值提取、模型建立、模型应用各个阶段,一般来说可以是手写文字识别,或者给新闻文章分类等; 循环和迭代这个过程,一边输入信息,一边将学到的东西结合思考,形成有效的输出(文字、视频等); ","date":"2019-05-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/","title":"机器学习的学习准备"},{"content":"序言我儿,见信如面。在这个即时通讯如此发达的时代,我选择写一封长信,以表示对你即将成人的祝贺。\n我陷入沉思了一会儿,考虑该给你讲些什么道理。但我很快意识到,“道理”这种东西,靠听和说没有用,只能自己去感悟。而我自己也十分讨厌被说教,所以我会克制想要给你讲一番大道理的冲动,尽量避免不对等的交流形式。\n我想我还是跟你分享一些我对这个世界的思考和想法吧。\n茨威格在《人类群星闪耀》中写到“一个人最幸运的事情就是在他思想最活跃、精力最充沛的时候找到了他的人生使命”。看来大家都把寻找人生使命当做比较重要事情来看待。姑且就当做我这封信的主题吧。\n寻找人生使命本质上是通过尝试在一些方向上的努力来实现对人生价值和意义的探索,每个人或多或少、或深或浅都要做这样的尝试。\n你们学校把“成人礼”包装成一个重要的人生节点,想必是希望给你们一些感觉,让你们意识到,从这一刻起,你们开始对自己的行为负责,要开始尝试去寻找和探索了。\n那么该如何去探索,我有一些自己的看法。\n首先要相信一点,那就是无论是否还在上学,学习和完善自己都是一辈子的事情,不存在一个可以停止学习的时间点。就我个人来说,无论是读大学的时候还是参加工作以后,从来没有在提升自己方面有过松懈的想法,甚至我感觉工作之后对知识的渴望更加强烈了,学到的东西也比在校园里多得多。\n当然了,学习方式跟你目前在学校这种还是差别挺大的,强度也没有那么辛苦。而且工作之后的这种学习方式才是我最认可的方式。什么方式?\n我们一起讨论过几次王阳明的“知行合一”,为了不扯那么远,简单来说,刚才提到的学习方式就是老王早就提出的“事儿上练”。通过不断地实践,各种经历,才是学习知识的源泉。这也是为啥我在开头就说道理只能感悟不可说教,怎么感悟?事儿上感悟!经历多了自然懂。\n所以也不用一下子被“寻找人生使命”这种“宏大话题”给吓住了,保持学习的心态,放松大胆地去经历各种事情,就是这么个过程。\n然后呢,就是在做事的过程中,保持一颗善良、为他人多着想的心。关于这一点,我的体会是,“助人为快乐之本”真的不是一句空话。远的不说,你看你爷爷奶奶平日里多么乐于助人,用乐善好施形容他们一点儿也不为过。他们因此收获了广泛的认可,也给这个家庭带来了积极向上的生活氛围,对你老爹我向好的方面发展也起到了关键作用。\n再有一点,也是我个人非常推崇的,就是最好能时刻对世界保持强烈的好奇心。\n刘慈欣在短篇科幻小说《朝闻道》中讲了一个故事。外星高等文明在监视地球人类进化的过程中,距离现在几十万年前的一个原始人抬头望了望夜晚的天空,凝视了一会儿。这看似随意的行为使得外星人的警报器响了起来,因为这意味着,人类的好奇心已经发展到了星空,同时也意味着人类文明将要开始爆发式发展了。可见好奇心的重要。\n好奇心一方面是推动我们前进的动力,同时也使得我们平凡的生活变得不那么枯燥。\n你能经常提出一些有时连我都无法回答的问题,这让我也颇感欣慰,有些答案注定要自己去摸索着发现,我希望你能多多提问,也多自己思考,不用去管答案是什么。\n稀稀拉拉写了这么多,估计你也不能理解太多,我像你这个年纪时估计也理解不了。不过也没关系,只是给你讲讲我个人通过思考得到的观点而已,说不定你自己以后有不同的发现,当然如果能在你以后的发展中起到一点儿提醒作用,也就挺好了。\n希望你这次“成人礼”活动就像人类文明那一次一次对星空的凝望那样,使你能够进入人生的一个新的高速发展阶段。\n祝:学习进步,健康成长!\n二零一九年五月九日 写于贵阳机场\n","date":"2019-05-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/","title":"致儿子成人礼的一封信"},{"content":" 积极是内在的,是选择的自由,是人性中最不能剥夺的部分。 以终为始,是要知道自己要什么,并以原则为重心,所做的决策是主动选择的结果,而非被环境所迫使的结果。 人类的四个天赋分别是,自我意识,良知,想象力,独立意志。 第四代时间管理,以原则为中心,以周为单位,设定自己所扮演的各项角色欲达成的三个重要成果,安排出每一天的第一要务,更理想的是当作每一天的特殊约会,全力以赴。每周都回顾上周周日程完成情况以及制定新的周日程,并每日调整。 对人不可讲效率,对事才可如此,对人应该讲效用,即某一行为是否有效。 以原则为重心,以良知为导向(人比事儿更重要),针对个人独有的使命,平衡发展生活中不同角色,全盘规划日常生活。 要想充分授权必须要具备的默契和共识包括: 预期成果。 应遵守的规范。 可用的资源。 责任的归属,约定考评的标准和次数。 明确的奖惩制度。 在双赢协议中,对以下5要素应该有明确的规定。 预期结果,确认目标和实现,方法不计。 指导方针,确认实现目标的原则,方针和行为限度。 可用资源,包括人力,财力,技术或者组织资源。 任务考核,建立业绩评估标准和时间。 奖惩制度,根据任务考核确定奖惩。 制定好目标之后,还要看你的组织体系是否与目标相符合,否则就要调整系统体系。 我们总是喜欢匆匆忙忙地下结论,以善意的建议快刀斩乱麻地解决问题。不愿意花时间去诊断,深入了解问题的症结。 ","date":"2019-05-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/","title":"《高效能人士的七个习惯》读书笔记"},{"content":" 首先要通过分析知道问题是什么,才能真正洞悉解决问题的办法。 归根结底,所有公司最后的生命线都是信任问题,顾客要相信企业生产的产品正如它所许诺的那样好,投资者要相信公司的管理层是有能力的,员工要相信公司管理者能够兑现承诺。 他们根本想不到人都有缺陷,包括他们自己在内也都不是完美的。 问题的关键不在于机器会不会想问题,而在于人会不会想问题。 真正让我们陷入麻烦的并非那些我们根本不懂的东西,而是我们一知半解的东西。 有一种心理偏见叫做肯定的陷阱,它指的是我们努力想证明自己的观点,而非找出自己观点中的错误之处。 深思熟虑并不是浪费时间,而是必要之举。 除非有人能停下来想一想,否则一再犯同样的错误是很容易的。对每个错误都有必要进行反思和总结。 如果你能承认自己犯了错误,承认自己并不是战无不胜,那么你反而能得到好处。 管理是一门艺术,而不是一种科学。如果遇到那些想要量化人类行为的专家,你就要保持警惕了。 行业中的每个公司都应该力争标新立异,让自己变的与众不同,而不是随大溜。 要憎恨组织里的官僚作风——通用电气公司杰克·韦尔奇写给股东的信中写道。如果你想一事无成的话,那就让行政流程占据主导地位好了,去崇尚官僚主义就行了。 不能创造生产力的工作越努力越失败,要时刻警惕并搜寻身边那些并不能创造生产力的工作。 每个公司其实主要就是为现有的客户提供优质服务并努力开拓新客户群。我们在花每一分钱、设立每一个部门或是接手每一个项目时,都要问自己一个基本的问题:这能帮我们带来新客户或是为客户提供更好的服务吗? 将注意力放在失败上是最大的悲观主义。只要稍稍抬起你的头,改变一下你的态度,那么你的世界观就会发生巨大的变化。 ","date":"2019-04-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/","title":"《管理十诫》读书笔记"},{"content":"2018年个人总结 起头 同样是元旦假期最后一天,坐下来给自己写总结。去年写总结的时候,我给自己上一年定义的关键词是“认识自己”,2018年我觉得关键词可以是“改变自己”。刚刚翻看了2018年产生的大量工作日志和心得记录,一边感慨时间过的飞快,一边在脑海里飞快回忆这刚过去的一整年,这个在网上被大家普遍吐槽、觉得艰难的年份。\n关于资讯 2018年最令个人满意的一件事儿是戒掉了对互联网资讯的依赖。整整一年几乎没有主动上网刷过任何资讯,比2017年还要彻底,在手机上删掉了各种资讯软件,平时也很少刷新微信的朋友圈(偶尔发一发)。最开始的时候会感到不适应,但是一旦觉得资讯恐慌的时候,就强迫自己利用互联网学习知识,或者处理日常事务,一年下来节约了不少时间。\n这么做的主要原因是自己认识到互联网资讯正在给人们贩卖大量的消费冲动和焦虑。\n我觉得互联网是一个信息放大器,总是被掌握了话语权的人将自己的感受放大然后传播出去,如果这些人感到了焦虑,那么这些焦虑就会通过网络放大若干倍,去影响更多的人,给更多的人带来焦虑。那么现在是什么人在掌握互联网上的话语权呢,没错,就是我们这些80后。回过头去检查各年的网络热词,几乎是80后的人生成长轨迹,大龄了,剩了,结婚了,生娃了,学区房了,中年了,油腻了,佛系了,等等。\n戒掉信息并不意味着远离了这些,只是可以更加正确的认识这个世界,不再陷入以前的误区、觉得喧闹的只剩下一种声音。\n思考与认知 苏格拉底说,未经思考的人生不值得度过。如果说2017年是通过思考来认识自己的话,2018年就是将思想转变落实到行动上的一年。可以说是真真正正的用思考来指导行动的一年,向“知行合一”又推进了一丢丢。\n以前知乎上有个关于“优秀的人不够自信”的问题,问为什么有的人明明很优秀却仍然觉得不够自信,要是搁在从前的认知,我会觉得答案很明显,会给出极左极右的评判。现在不这么认为了,没有绝对的两极,大多数人处在中间,符合正态分布,可能有些人更加偏向于“优秀而不自信”一些。造成这样的原因跟从小接受的教育有很大的关系,即“活在他人对自己的期望之中”,我几乎可以断定自己此生难以摆脱这种心理了,只能在正确认识到这种情况之后尽可能的去调节。通过多做事情去磨练自己,并不断用自己的目标去替换别人的期望,目前正走在这样的改变之路上。\n找到自己的目标不存在诀窍,更不是自己坐在家里冥思苦想就可以,而是要不断去尝试,多做事情,去接触更多以前没有接触到的事物或者体验,只有这样,才能激发自己的潜力,遇见自己真正热爱并愿意投入精力与时间去奋斗的事情。\n想明白这些之后,我主动多做了一些事情,可以明显感受到通过思考指导做事给自己带来的成长。\n压力出口 每天大约能记录1k字的工作日志,当然里面不全是工作流水,有很多是临时书写的心得体会或者思考碎片。坚持这么做的原因是发现写作可以作为疏解压力的一个出口,既能整理思路,又能缓解压力,真是一举两得。\n我称这种写作为“随意写作”,或者叫释放心理垃圾,《写出我心》这本书里说过,刚开始写不好没关系,因为需要先把内心里的垃圾信息倾倒出来,先把污水排出来然后才可能有干净和高质量的东西出来,这个比喻可能不太恰当,但是对我比较触动,也正好作为我接受自己水平很烂的借口。\n看书让我认可了自己的“爱好广泛” 看书当然是日常生活中不可缺少的一部分,今年开始看阿城的作品。果然不简单,我还没有遇到过这么容易读下去的文字,可以说是流畅至极。阿城写这些文字就像是坐在这里跟你唠嗑似的,娓娓道来,而且段落之间完全感觉不到过渡突兀,天南海北扯来扯去最后还都能很好地收尾,讲到具体事例往往还能极为精准地引用古往今来学者或者艺术家的典故,说的煞有其事,看的引人入胜。\n我觉得他之所以能够写出这么多东西应该跟肚子里有货有关,而且这些货还不仅仅是简单的灌装进去,码放整齐。应该是经过消化和思考加工,已然形成一套体系,里面既包含个性鲜明的观点,也体现他的三观。在聊天喷空之余偶尔还不忘揶揄几句当下的社会或者某些人群,幽默感着实了得。\n读这样的作品还有一个感觉,就是越读越觉得自己对历史和人文了解甚少,往远了说有诗经论语等经典,往近了说有明清小说或者近代大家,东方有儒家道家佛家文化,西方有心理学、哲学、文艺复兴的科学等等,如果做不到对这些东西融会贯通,那么即使读到好看的文字,能看懂作者的议论也仅仅是瞧个热闹,过后很难产生更加复杂的化学反应,所以好书又会给人提供了解历史和文化的动力,仅从这一点来说,好书和好作家就功德无量了。\n我以前总是担心自己的知识太杂,有种什么都想了解一点儿又什么都不精通的感觉,总是提醒自己要缩小自己的关注圈。看了阿城的作品后,感觉,既然天性之中有那么强的求知欲,又何必压抑自己,不妨也多做尝试,管他什么音乐绘画还是神学哲学,只要有兴趣就大胆去了解。\n感谢阿城能够让我醒悟,不必为自己爱好广泛而烦恼,更不必为没能精通若干技能而悔恨,专有专的强,杂也有杂的好。\n几点感悟 关于“改变” 推动事件向自己希望的方向发生是有难度的,也是考验和锻炼一个人综合素养的绝佳机会。观察这么多伟大的领导者,没有一个不是在推动变革中成长起来的,所以成功有很大的因素就是在推动变革。做变革的推动者需要面对很多困难,因为就跟打扫房间一样,任由事情向无序方向发展是最省力的,也是最不负责任的,只有想要东西向有序方向发展才是困难的。\n广义上来说,做任何事情都是将事物从无序向有序方向发展,这是自然规律,宇宙万事万物从有序走向无序,只有智慧生命才具备能力维持有序或者把无序变有序,这一切都需要能量,作为智慧个体所具备的只有利用能量的方法和信息,比如蒸汽机、内燃机电动机等等,再往前倒腾,那就是农业时代的耕种,那也是一种利用能量(太阳)将无序向有序转变的过程。\n这么些年以来,推动或者说维持有序的本质没有改变,个体想要发挥价值或者说作用,只有在这个过程中通过一定的方法和信息来完成能量转换为有序的操作,工程师、艺术家、农民,可以说做的是一样的事情,区别就是大家所使用的信息不同,引导的能量不同,所输出的转化物不同。\n个体的价值就体现在不是作为“无序”的生产者,而是“有序”的生产者。\n关于“做自己” 我以前特别尊崇“真”,要活的真性情并且避免虚伪,不愿意假装任何事情。这样做有很多缺陷,因为不同的人有不同的期望,而且这些往往是互相矛盾的,西方的文化传统是“做自己就好”,是挺好的,但是仅限西方,在中国的话,还是要讲究一下中和。\n所以聪明的做法,在中国文化传统下,必然是不能直来直去,即便是“做自己”,也不能表现的太过于直接,中国的文化就是内在与外在严重的分裂,外在主要用于伪装和“一团和气”,而各自的内在又是什么样儿呢?谁也不知道。但有一点是毫无疑问的,那就是我们的文化绝对不推崇直接表现内心,所以才有古代大臣劝皇帝登基,而皇帝则三番五次推脱,嘴里喊着不要,虽然双方都知道是在演戏,但是也都不亦乐乎,做的很足。\n刚正不阿的人在明白了这些之后难免会有一些哀怨,但在我看来,这样就有些狭隘了,从客观规律上来说,谁都逃脱不了自然的力量,无论是基因还是环境,所以不必抱着一种价值观跟这个世界死磕,老祖宗的智慧早就告诉我们任何事物都不可一分为二,不能非黑即白,要以一种“中间调”的视角来看待问题。\n结尾 2018年经历了很多事情,思想的转变带来了行动的变化,年初的时候给自己开出了化解中年焦虑的药方“多做事情”,效果良好。通过具体事情的磨练,更加清晰的体会到了实际练习对成长的重要性,希望在后续的时光里,自己仍然能够保持好奇心,坚持学习,创造美好的东西出来。\n","date":"2019-01-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/","title":"2018年个人总结"},{"content":"上苍保佑吃饱饭撑着的人,中午吃完饭抽烟的时候,刷了几页微博,可能跟我关注的人有关(我一般关注段子手或者文艺思想贩卖者),感觉内容作为消遣挺合适,但是越看呢,越觉得没有营养,可能是跟我刚抽完烟进入贤者时间有关,一把把微博推开的时候(合上屏幕),心里竟涌现出一句“都是吃饱了撑的”,用以评价刚刚看过的几段不痛不痒的文字。\n发完感慨随即想到,这句话是不是可以作为一本非常扯淡的书名呢?然后开始畅想自己写一本这样的书,里面的内容天马行空,多为吃饱了没事儿干的人才会忧伤和考虑的事情,饱暖之后各种忧虑和焦躁的事情可以化作各种思考,用于填满本书,作为同病相怜者证明自己不再孤独的弹药,一旦物质状态不能满足,则书中的内容立即退化到可有可无的状态。\n真的,我这两三年来,刷牙沉思录这种哗众取宠的段子写了不少,缺少深度的技术文章也写过几篇,以吃饱了撑着来进行衡量的话,还真的比较符合标准,如果加以艺术润色的话,真难说能不能包装成为一本具备贩卖价值的书,至少想到这个问题之后,被自己震惊了一下,进一步对人生需求的几个层次有了切身认识。\n无论我再怎么黑自己,有一点是不会改变,我写的那些东西至少保留了我一部分的回忆,它们记载了我在某一段时期内的心智情况,无论是用词还是造句,都能从一个侧面反映我当时的状态。而我的人生正是由若干个这样的状态所组成,随着年龄的增长,我的记忆力会越来越差,如果能够多记录一些东西下来,就算是那种吃饱了撑着才能思考的问题,也将使未来的我读起来热泪盈眶。\n不过信息世界的问题在于,资料保存的永久性很不靠谱,说不定哪天这些信息就不在了(我写在msn空间的博客一篇也没了),甚至安全性还比不了一个纸质的笔记本,但我仍然不做过多的努力和担忧,倘若保存良好,那就作为未来回忆的佐料,倘若不幸丢失了,那就随他去吧。因为在写这些东西的同时,我已经感受一次生活了,本来也是留不住的东西,事如春梦了无痕嘛。\n","date":"2018-07-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/","title":"事如春梦了无痕"},{"content":"2018年新年第一天,起的不早也不晚,天气晴的很好,阳光从窗外洒进来,给窗台上的多肉镶了一圈儿金黄。\n每到这样的新年假期,我都会安排一天的时间收拾一下房间,然后坐在电脑跟前,回顾一下在过去一年里个人的经历和得失,考虑一下在新的一年里对自己的期望和改进要求,设立一些学习上的小目标,给新的一年提前充电。\n这个习惯我已经坚持了四五年,主要以总结工作之余的个人学习和感悟,提取生活中的一些有趣经历,为自己在将来能够翻看回忆提供一些文字素材。\n总结本身可能并不重要,但是这种回顾过去和展望未来的仪式感,每次都能使我得到激励,使我能站到一个更高的维度审视自己。\n人们常说,了解自己是最困难的,我们可能永远都不能了解自己,只能无限趋近于了解,那我这样的总结,算是对了解自己所做的一种尝试和努力。\n学习与读书 虽然随着年龄的增长,学习新的东西变得越来越困难,土话也有“人过四十不学艺”之说,但不得不承认,当今时代,学习成为了人人都必须修炼的一种能力,无论什么行业和职业,只有不断的学习,才能适应科技和文化的飞速发展。\n有人说,最终人类比拼的将是学习能力,但这多少有点儿站在功利的角度,我所说的学习更多的是一种探索精神,一种想去了解自己了解世界的强烈好奇心。\n今年买了不少书,技术类书籍和鸡汤类书籍各占一半,认真看进去的书不是很多,基本上每一本都翻了翻,但没有特别沉下心来看。\n摄影类的书籍有《理光GR的随手拍摄心得》《纽约摄影学院教材》《摄影构图学》等等,这些归类到技术类书籍好像不太合适,但又确实是学习用的,看得还算是津津有味,其中给我带来最多收获的应该就是理光用户的那个随手拍摄心得,作者好像是台湾人,在读到之前我还难以想象摄影书还能这样写,基本上我感觉就是结合自己的故事重新写了说明书,读起来比较有吸引力,而且顺便把怎样使用相机也学了,真是一举两得。\n学习数学、英语的相关书籍也买了一些,想重温一下高等数学,以及线性代数,感觉还是没达到预期目标,尤其是高等数学,基本上忘光了,连做课后的练习题都很困难,基于这些书倒是延伸学习了一些计算机图形学,这个算是意外收获,对计算机图形学里的一些概念如齐次坐标等等有了比较好的理解,尤其是使用矩阵来表示各种坐标变换,以前完全不知道内部实现的原理,直到今年我通过一边看书一边在excel里模拟了旋转平移和缩放的过程之后才算有了深入理解。\n历史类的书买了两本入门册子,但是都没有读进去,畅销书《人类简史》倒是看了,写的确实不错,有一种以前读《万物简史》时的畅快,而且作者很会比喻,观点也独到,从很浅显的角度解释了人类发明的货币和公司这些东西。\n趁着创业的热潮而大卖的关于创业的书也买了些,比如《从零到一》这样的,我看都是一些硅谷的创业成功者写出来忽悠人的,不过里面也讲了不少实话,看的时候就当是听作者诉说他是怎样取得成功的好了,反正他是这么认为的,虽然再来一次也可能不管用。\n每年都会重新看看《黑客与画家》,虽然是一本很早的书,但是每年看的时候都有新的感触,也会产生新的影响,这个书的作者应该算是硅谷的创业教父了,他比较喜欢说实话,而且也喜欢思考,给我带来很多启发。\n同样每年还会看看SICP《计算机程序的构造和解释》,这本被誉为神书的书,我一直没能完全看懂,今年借助YouTube,在上面听了两节MIT教授的课程,算是对前两章有了较深的理解,并顺便学习了LISP语言,这对于我以后折腾Emacs编辑器有所帮助,而且LISP语言的学习能够激发对计算机编程的深入认识,有一种超越编程语言的高维度感受,对计算过程的抽象很有可能是计算机世界的终极抽象,怪不得《黑客与画家》的作者说,未来的编程语言很有可能无限趋近LISP。\n关于拍照 2017年我大概拍了四千多张照片,经过整理和挑选,留下来的也有差不多一千五百张,是我有生以来,拍照最多的年份,这个数字并不大,有些摄影师可能一天就达到了这个数字,但我这个业余爱好者,今年是一个突破,希望能够在明年以及更远的将来拍摄更多。\n就像学习其他知识一样,如果只是听和看,不去亲自动手试一试,十有八九做的是无用功,不是说听和看不重要,我今年就读了好几本关于摄影的书籍,而是动手去练习更重要,10000小时的定律说的更多的也是练习,当然举这么多其他的例子更没用,游泳才是更好的例子,你不跳到水里根本不可能学会。\n所以我今年能感受得到在摄影上的进步,一方面因为我读了很多关于摄影的书籍,无论是经典教材还是随手摄影的心得,这些书籍看了确实能够改善和丰富我对摄影的认知,另外我也在网上也观看了大量关于摄影的视频,大部分是在YouTube上看的,很多都是个人摄影爱好者开设的播客,这些内容虽然不成体系,但是也有不少可取之处,尤其是针对单个知识点进行的介绍,比如构图、后期、器材搭配等等。\n关键还是因为我随身带了个相机,比起用手机来,我更喜欢这个理光的卡片机,虽然感觉并没有网上吹嘘的那么神化,但是还是很够用的,街拍神机名副其实,随身携带让我得一随时随地想拍了就来一发,比手机更有拍照的仪式感,而且画面质量确实比手机强的多,毕竟“底大一级压死人”,这个卡片机的传感器比手机的大了不知多少倍,拍摄夜晚或者光线较暗的场景时,手机拍的基本没法看,理光GR2基本可以胜任所有拍摄场景。\n我能感受到最大的进步应该是在“构图”方面,比起对曝光的控制、后期调色等方面,我对构图有着天然的热爱,这虽然有些“形式大于内容”,但是我确实无法忍受一幅照片在构图上的失败,所以我现在在拍照之前,第一件考虑的事情竟然不是曝光,而是构图。这可能是因为现在的相机都已经智能化到自动控制曝光的地步,虽然有时候拍出来并不是想要的效果,但至少相机不会让你曝光失败。于是构图就成了拍摄首要关注的内容了。\n我今年读的大部分摄影相关的书籍都是构图相关的,这些与绘画、平面设计类似的东西,我基本上东一下西一下的瞎看,不成体系,但也总结出了自己的一些原则,比如地平线一定要平,三分法放置画面等等。通过实际练习,我感到构图水平明显的变化,至少现在拍出来的东西一看就知道不是随手对付的,而是经过考虑和设计的,已经达到了业余爱好者的水准。\n在练习中的感悟才是真正学到的东西,有的时候甚至能够跨越技能,从一件事情感悟到另外的事情上去,用一句今年比较流行的话来说就是“建立了联结”,通过练习,可以从拍照这个简单的事情本身,联想引申到对美的感受,无论是音乐、文字或者是其他的艺术品,人类所期盼看到的和听到的,就是愉悦的体验,而通过“平衡”、“对比”、“韵律”、“节奏”这些感觉的灵活运用,就是能让人感到愉悦,所以我现在比较能够理解艺术是相通的这句话了。\n关于资讯 资讯的阅读是打发时间的最好方法,你看地铁上的人,几乎每一个人都捧着手机看新闻,当然也有刷剧和打游戏的,但据我的观察,大部分人都是在刷新闻。\n资讯好像是一种食粮,每个人都如饥似渴的吸收,现代化的互联网技术和移动app,使得资讯触手可及,随时随地,吃个没完。\n资讯又好像一种毒品,使人上瘾,如果有一个小时没有看到的话,就会浑身不适,非得打开浏览器或手机点两下不可,然后看到并没有什么有用的信息浮现的时候,才放下手机,内心得到了片刻的虚假平静。\n其实不知不觉中,资讯消耗了我们大量的时间和精力,甚至成为了我们的枷锁,我们的眼睛仿佛除了资讯之外就看不到什么东西了,对其他东西的观察成了一种原始的应激反应,吃饭、睡觉、乘车,稍有闲暇的时候,就用资讯来填补。\n好像我们的脑子已经无法承受在没有资讯刺激下的无聊,我们放弃了自己的思想,大脑的发动机已经不再运转,有的只剩下最基本的生理反应,这种情况所产生的空白,使我们恐惧,于是就吸取更多的资讯来填补,殊不知这些东西进一步把我们自己的思想挤的无处容身,脑子就更不能转动了。\n我见过很多独处的人,在吃饭的时候,也不忘了掏出手机,我虽然没看到他的屏幕,但是可以猜想,看的无非就是一些“有趣的”文章。可怕的是,我自己有时候也这样,因为如果不这样我好像也吃的不香,觉得眼神无处安放,觉得这一段时间不知所措。\n有一个关于“禅”的故事被说的比较多,大意是,有人问禅师“什么是禅?”,禅师回答:“吃饭就是吃饭,睡觉就是睡觉”,我最初听到这个故事或者段子的时候,根本无法理解,谁吃饭不是吃饭,睡觉不是睡觉呢。\n后来想到关于吃饭时看信息,关于睡觉时胡思乱想,才明白,原来,吃饭就是吃饭,睡觉就是睡觉,是那么的难啊。\n我在2017年有意识的限制自己获取资讯的时间,每当我忍不住想打开网页的时候,我就强迫自己坐下来写字,就写当下的脑子里想到的内容,想到哪儿就写到哪儿,完全不顾及条理性和先后顺序。\n我原来还特别担心这样写出的东西根本不通顺,没法看,但是在坐下来写了两篇之后,我才发现,原来这些不加修饰和斟酌的文字,看起来是那么流畅,读起来非常顺口,就像自己跟自己在交谈。\n而且这样做的一个很明显的好处是,屏蔽了资讯,用赵本山的话说“病毒关闭了,你的智商又重新占领高地了。”清空了资讯,给自己的大脑腾挪出可以思考的空间,很多自己的思想就涌现出来了。\n先不用管他们是积极的还是消极的,根本不用识别他,站在一个旁观者的角度来观察,可能这就是禅宗经常说的“观照自己的内心”吧。\n关于写作 我在2016年的时候,坚持每周输出五百字,作为写作练习,这项活动开展了整整一年,写了好几万字,后来我在2017年停止在网上发表。因为我觉得输出的内容有些缺少思想,而想写出比较有思想的内容还是很有挑战和耗费精力的,尤其是考虑到有读者的观看,会给自己带来额外的压力,后来我在写字这一块开始写给自己看,内容也都散落在工作日志里了,没有整理到网上。\n上面提到的关于将资讯时间用于写作的方法,来源于2017年我看的一本书, 叫《写出我心》,主要的内容是帮助十分焦虑的现代人通过写作的方式找回内心的平静。\n书的作者为了解决内心烦躁的问题,曾经尝试过冥想、瑜伽等方法,但是效果都不太好,心理的念头仍然非常的多,挥之不去,起伏不定,甚至越来越糟,于是作者尝试使用写作的方式,将自己的念头不通过思考,直接书写下来。\n然后他欣喜的发现,不假思索将自己的念头不断的书写下来,经过一段时间,竟然可以解决自己的烦躁,内心逐渐变得平静,于是他就把自己的这种体验和方法总结下来,写了这样一本书,并提出了具体执行的一些原则和要求。\n我看了之后感到比较有意思,也想尝试一下,开始利用闲暇时间或碎片时间写一些无关紧要的文字,主要是自己的一些思考和心绪。我发现,写作的过程真的具有疏解内心压力的功效,然后我逐渐意识到,这不仅仅是写作,这是一种倾诉。\n而倾诉,很可能是一种卸下负能量的过程,也是积攒正能量的过程,每个人都有倾诉的需求,以前我没意识到,原来倾诉是舒缓内心的一剂良药。\n可能对于外向的人来说,这不是问题,因为在日常生活中,他们随时随地在向别人诉说和交流,向别人输出自己的感受或观点。但是对于内向者来说,可能比较缺少倾诉的出口。\n不过除了说话是一种倾诉方式之外,写作、绘画、其他艺术创作等,应该都是有效的倾诉方法,写到这儿我发现,怪不得艺术家多为内向者。\n餐桌段子 2017年几乎没怎么看电视,不仅仅我自己,全家人也几乎都不看电视了,一方面是因为电视中的内容比较无聊,另一方面主要是因为孩子,孩子的作业较多,如果全家看电视的话,而且在吃晚饭的时候看电视的话,基本都会严重影响孩子的作业时间,而且一边吃饭一边看电视实在是不好的习惯,所以我有意识的在生活中取消掉了电视时间。\n这样以来,刚开始大家都不怎么习惯,因为默不作声闷头吃饭实在是有违传统,用孩子的话说就是场面变得好尴尬,整个餐厅只回响着我biaji嘴的声音。\n偶然的机会,我跟金妍开始尝试在餐桌上讲段子,都是一些学校的趣事,或者吐槽日常生活中的事情,可吐槽的对象主要包括“老师布置的作业”、“妈妈做的饭菜”、“爸爸的坏毛病”,或者是对于学习中的一些技巧。\n由于孩子笑点很低,所以基本上我都是以原创和自制的段子为主,讲出来都比较冷(比如:为什么金币的颜色是黄色?答:因为“金碧辉煌–会黄”),但是,充分发挥脱口秀精神时,起到的效果都很不错,常常一顿饭吃下来笑到腮帮子疼(请勿模仿,吃饭还是尽量别笑,尤其是米饭)。\n我想这些在未来都能成为孩子们成长的美好回忆吧。\n总结 2017年如果汇总一个关键词的话,那就是“认识自己”,到了一定的年纪之后每个人都在承受生活中的各种压力,这些压力一部分来自别人,一部分来自自己,其中自己的那部分所占比重最大。\n中年男人到了这个时间点,或多或少都会有些迷茫,多少都有一些积累,但是又缺少安全感,失去了一些年轻人的锐利,无论从精力还是身体健康状况,都有所下降。\n所以如果想要突破,不仅仅是努力的事情,更多的是要思考,给自己定位,并有效率的付诸实践。\n以前在学习时间管理的时候,陷于方法和工具,所以效果不明显,直到今年才认识到,无论任何的时间管理方法论,要想有好的效果,首先要想清楚自己的目标,就好像是确定目的地似的,不然即使掌握了方法,也同样无济于事。\n就像企业一样,一个人也同样需要战略,如果没有战略,就像是一艘行驶在大海中的船,却没有舵,随波逐流,不知道飘向何方。\n往大了说是叫战略,实际上是用来确定所做事情优先级的指导思想,只有定出来战略,才能在日常工作和生活中知道什么事儿是必须要做,什么事儿是能不做就不做。\n所以2017年最大的成果,应该就是考虑清楚了自己的目标和想要到达的地方,感谢这个世界有那么多美好可以让我迷恋,未来我会投入更多时间和精力到我所爱,因为我发现我努力所追求的无非就是一种状态:那种可以让我痴迷沉浸进去的一种状态。\n","date":"2018-01-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/","title":"2017年个人总结"},{"content":"几乎在所有的职位招聘要求里,都包含一条“有较强的团队协作能力”,与之对应的是,几乎每个人都会心安理得地在自己的简历里写上“有较强的团队协作能力”,就像写“本人熟练使用Office”那样心安理得。\n无论是出题的人,还是答题的人,可能都没有认真的考虑过,什么是“团队协作能力”,可能只是在内心里觉得“好像加上这么一条,会显得更像那么回事儿吧”。\n近期做了一些与“个人能力评估模型”相关的工作,使我不得不认真思考这个问题。我发现,想把这个事儿解释清楚,并落在实实在在的执行上,还真没那么容易。\n首先,“团队协作能力”可以是对一个团队的衡量,也可以是对一个人的评价,接下来根据我个人粗浅的观察和分析,谈谈对个人能力的评价,即我觉得一个人怎样算是“有较强的团队协作能力”了。\n0、尊重他人 可能是人类与生俱来的天性所致,要做到这一点还真是相当不易,且不说地域、种族、信仰等比较沉重老套的话题(这些方面往往最能暴露天性),即便是在日常的讨论中,我们也很难做到在面对不同观点时以对事不对人的态度来讨论,很容易将一件鸡毛蒜皮争论上升致对个人的全方位评判,争到最后往往要捍卫的不是真理,而是自我“对”与“错”的“尊严”。因此,做到充分的听取他人的意见,理解各方的立场与观点,尊重并理解与自己不同的声音才是良好协作的开端。\n说到这里我忽然想到当年庄子跟惠子俩人在河边关于一条鱼是否快乐争论半天,至今未分出胜负,可见庄子若论团队协作,不求行,打嘴炮行。\n1、勇于担当 日常生活中,比较好协作和沟通的人往往具有比较能担当的性格,对于他人(所谓自负者眼里的“猪队友”)做错事情而造成的后果,这些人第一时间是给予安慰和指导,而不是指责和抱怨。相反,如果第一时间选择将“锅”甩的远远的,立即划清界限,很难相信其能具备多强的协作能力。\n所以,既然是协作,肯定会涉及多个人的配合,能否做到包容他人并勇于担当,应该是协作的基础。\n2、谦虚的态度 谦虚是一种美德,这大家从小就知道,“三人行必有我师”也早已挂在嘴边随时准备被调用,可是在现实生活中我们所谓的“沟通”却总是想着在这个过程中教别人些什么。在团队中做事,能否空杯心态,听取他人的建议和意见,而不是固执己见,觉得所有人都不如你。每个人都有自己擅长的事情,多看到别人的优点,谦虚地学习,应该没有人会喜欢跟狂妄自大目中无人的人合作吧。\n这一点古人做的就比较好,比如著名的“一字之师”的故事,写诗那哥们儿,“前村深雪里,昨夜数枝开”被人改成“前村深雪里,昨夜一枝开”,这哥们儿不但没有恼怒反而当即称改诗那哥们儿为一字之师,可见其谦虚好学。(反观自己,代码被人改了往往会有些不爽)。\n3、分享精神 在“伸手党”横行的年代,拥有分享精神无疑是一种比谦虚还要美的美德,无论是分享自己的观点、心得还是见闻,都可以在过程中得以升华,实现双赢的效果。而具有分享精神的人往往在团队中拥有较好的人缘和评价,我个人始终认为知识越分享就掌握的越牢固,信息越分享沟通就越顺畅,所以是保守封闭还是乐于分享应该也是衡量团队协作的一项重要指标。\n不过,也许跟团队的性质有关,比如FBI的特工可能就不能太有分享精神吧。。。\n4、表达能力 人的愤怒大部分来自于无法表达自己,很多人的狂怒往往伴随着这么一句话\u0026mdash;-“我说了这么半天你怎么还不明白?!”,对于性子急躁着表现更为明显,这种愤怒,与其说是对别人不理解的愤怒,倒不如说是对自己比较弱的表达能力的愤怒。这个倒是可以锻炼,清晰的逻辑思维和较好的文字语言功底都能大幅提升表达能力,如果让我总结关于这个能力的“技巧”的话,就四个字儿\u0026mdash;-“抓住重点”。\n5、团队利益与价值观的认可 即便做到以上多点,如果不能认可自己所在团队的价值观的话,也很难得以发挥。要做到这条,首先是对团队利益和价值观认知的问题,能否看清团队利益所在,知道该提倡什么和拒绝什么,是基本。其次,对于需要大家共同遵守的原则是否发自内心的认同,否则作为个体应该会比较难受,高效协作也就无从谈起了。当然这一点来说,不仅仅是对个人的要求,能否理出清晰的原则并身体力行的去执行,更是对团队领导者的要求了。\n写了这么多,其实都是人人明白的道理,也都能明白难在具体的执行,不过,花一点儿时间整理一下思路,就当是一个自我反省了,当然要是能正向影响一些人,并给人带来一丢丢的思考和改进念头,那就更好了。\n","date":"2017-11-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/","title":"听说你有较强的团队协作能力?"},{"content":"一些老段子,放松一下(来自知乎https://www.zhihu.com/collection/124380021?page=2)\n给我一个坚定的眼神! 无题 怎样制作草莓酱 能让你产生强烈情绪的图片 填空题 小学时有道关联词填空: 他( )牺牲生命,( )出卖组织。 有人填“宁可 也不”;有人填“害怕 , 所以”; 有人填“与其 不如”;有人填“即使 ,也要”; 更有个人全校出名,他填的“白白, 忘了”。 评论里有个清新脱俗,苦大仇深的,他填“大舅,二舅”!\n","date":"2017-07-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/","title":"压力比较大?讲个笑话放松一下"},{"content":"为了避免浪费时间带来的焦虑,人们一般会选择做些什么来保持忙碌,或者至少在看起来是十分忙碌的样子。即使当下所做的事情可能对于完成任务目标来说毫无意义,甚至是背道而驰,但是为了逃避思考,往往沉浸在自己已经“很忙了”、“没时间考虑”这样的假象当中,乐此不彼。\n我以前在出行的时候,有时坐地铁到一个陌生的地方,不知道出了地铁口该怎么走,这个时候我就会比较焦虑,一般会先随便朝一个方向走一段,然后一边走一边查看地图,很多时候发现我前进的方向与地图上规划的路径是相反的,但是我的潜意识里认为,我在走动中查地图,比我站在那儿不动查地图要节约时间,要安心一些。这显然是不对的。在一次内部分享会上,我跟大家讲了自己的故事和体会,来说明每个人都或多或少都有这样的逃避倾向(有心理学家指出,事实上脑力劳动才是最累的体力活儿,所以人的天性都是逃避真正的动脑思考的,最好是别人都替我想完了)。\n意识到以上的思维模式是错的以后,然后就是想办法来避免。首先需要解决的就是,针对工作中,思考上的懒惰。当然这事儿早就有人发现并指出了,比如著名的那句“战术上的勤奋掩盖不了战略上的懒惰”,以前还有句老话叫“不仅低头拉车,也要抬头看路”等等。\n但是都没有提供更加接地气的具体方法。我有一个具体可行的方法,操作起来简单有效,又花不了太多时间,在我看来,对于每一个职场中人都十分适用,除非不思进取、天生与效率为敌(此类人乃将来被AI替代的主要对象)。\n具体做法就是:** “在每个周末的午后,抽出30分钟时间,把你认为你下周最重要的三件事确定出来,列到你的工作计划中去。” **注意,是三件,不是更多,此举目的并非让你制定完美计划,而是判断什么事情是重要的,如何判断最重要?很简单,问自己一个问题即可:“我在完成这三件事儿之后,是不是即使其他事情都不干、躺下睡觉,也能认为本周工作是成功的,至少是及格的?”\n这样做好处有三,都是立竿见影的效果。\n1、这是一个很好的“重新审视工作”的机会。 即,“抬头看路”。暂时放下手中的忙碌,重新认识一下自己的工作目标,你会发现无论任务有多繁杂,要达成的目标就那么几个,最终的目的地就在那儿,所有任务都应该是指向那儿的,如果不是,那就更简单,降低优先级,或者干脆从任务清单里把它踢出去。\n2、这样做,可以有效避免“周一综合症”。 现在人,矫情起来谁还没有个心理疾病啊,各种“症”往自己身上套,最明显的就是“周一综合症”或者“节后综合症”,更有甚者称之为“上班的心情比上坟都沉重”。焦虑的根源在于“不可控”,不知道自己做的事情与承诺的目标有什么关系。列出重点之后,先做这些事情,剩下的事情就越做越轻松了。提前考虑好了,就化被动为主动了,心情自然不同。\n3、便于跟踪工作计划。 各方示例都表明,有计划地开展工作,要比稀里糊涂开干效率高的多,但是“有计划没跟踪”也是一个很致命的问题。我在每个周末的思考时间里,都会查看团队成员发来的工作周报(我要求他们也这样做),一是跟踪上周任务完成情况,二是查看下周的工作重点是否偏离既定目标,如果偏离就及时修正,避免了时间和资源的浪费。\n习惯虽小,但是一旦养成,威力无穷。为了配合我们高效的工作和管理方法,我们开发的移动办公应用“遥知”* (是一款轻量级主打体验的共享协同办公应用) *做出了十分匹配高效工作者的功能,帮助大家养成高效工作的习惯,避免在思考上的懒惰,借助这款工具,无论在工作方法上,还是协作效率上,我们的团队都得到了显著的提升。\n硬广时间:扫码直接下载遥知,开启高效工作之旅吧! ","date":"2017-04-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/","title":"每个周末的下午,这样做把你的效率提升百倍"},{"content":"据悉,Github有超过一半的员工遍布在全球各地,而开源组织OpenSSL的团队则一直都未在线下见过面(直到后来有某老板资助他们在线下碰了一次面)。随着科技的进步和社会的高速发展,知识型工作的办公方式正在逐渐由集中办公向分布式远程办公转变。\n远程办公带来的好处非常明显,比如:有效解决了员工上下班通勤浪费时间的问题,顺便还缓解了交通压力,对环境保护亦有贡献;抛开了地域的束缚,可以吸引全球各地的人才参与,对企业的人才战略有积极影响;有效降低企业办公场地投入;团队效率、员工积极性都能得到有效提升;等等。\n但是如何具体的实施远程办公,不同的团队会有不同的见解,我个人一直热衷于推进办公模式的改进,也做过相关尝试,下面根据我的浅见,从几个方面总结一下远程办公的关键要素:\n成果目标的明确定义和有效检查 远程办公对于团队管理要求更高了,一个团队要统一一个目标,大家对于目标的定义应有一致的理解。须将目标逐级分解具体到人,并提前设计好由细节到整体的成果装配流程。 每一种类型的任务要有对应的检查清单(checklist),每日的工作成果都要通过检查清单的检查。 团队的工作成果要有装配和构建系统进行组装,并有一个全局的检查清单,有专人负责检查。 员工自我检查,组长验收检查,配置管理组装检查,质量管理进度跟踪检查。 沟通的及时性和有效性 所有人应该可以立即呼叫到所有人,反应是实时的,不能超过30秒的延迟。 语音,文字使用统一的语言体系,命名和表达方式需要规范化。 可以随时截屏和录制一小段视频传递给任何人,必要时需要共享显示器和白板的内容。 工作进度跟踪 有效、深入细节的项目管理,需要有完善的项目台账,实时反应项目的状态。 显式任务管理,团队里的所有人要知道所有人的工作任务情况,可区分普通任务和私密任务。 项目生命周期管理细化到任务生命周期管理,起源、分解、执行、成果检查、后评价、归档入库、装配完结。 办公状态模拟 为防止远程办公缺少仪式感,需要规定集体的远程互动,举行每日开工会议和收工会议。 严格统一上下班时间,确保大家同时在线。 每周至少一天线下见面会议,集中起来讨论工作。 信息化工具支持 使用遥知的“小纸条”进行及时沟通。 使用遥知的项目管理和任务管理进行协作管理。 使用qq、视频直播等工具进行远程集体互动。 使用gitlab做好配置管理和成果审查。 使用docker、jenkins等做好产品的持续集成和每日成果构建。 为了在我们的团队更好的推行远程办公模式,我们不断探索和思考,去年初,我所在的团队开始小范围尝试远程办公的模式,期间遇到了一些问题,我们也做出了一些工作方式上的改进,总的来说利大于弊,经过这些尝试,更加坚定了我们未来逐步迁移至远程办公模式的决心,也促使我们研发了移动端协作工具遥知,致力于帮助更多的知识工作者更高效的远程办公。\n","date":"2017-02-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/","title":"关于远程办公的思考"},{"content":"“扁平化”管理并不是什么新鲜的概念,早在上个世纪就有公司在尝试通过压缩管理层级来实现扁平化管理,并取得了不错的成效,以至于有一阵子“扁平化”管理理念大有席卷全球之趋势。\n但后来事实证明,在缺少有效的沟通和协作机制之前,扁平化管理的瓶颈往往很快出现在管理者身上,原因很简单,传统的“金字塔”式管理虽然等级多、决策下达缓慢,但是符合2/8原则,一个管理者只需要管理较少的几个人,沟通比较顺畅,扁平化管理模式下的管理者需要对接的人较多,很容易形成沟通瓶颈。\n所以“扁平化”在火了一阵子之后,不少企业掉进坑里挣扎了一阵子之后,又回归传统的“金字塔”模型。\n但是,随着技术的进步,很多工具得以改进,好多传统的“真理”也不再那么有效(比如一人最多管理7个人),这一点上来说,很多国外的互联网公司已经快速发现改进点,并将“扁平化”管理结合了现代化工具和理念成功在自己的企业推行。\n比如著名的谷歌。无论是技术还是管理,谷歌一直是走在时代前列的公司,其管理方式或企业价值观虽不能照搬,对于我们仍有一定的借鉴意义。\n最近读了两本关于谷歌公司的书,《重新定义公司》和《重新定义团队》,书中讲解了谷歌公司对未来公司组织、团队管理的尝试和思考,在信息文明全面取代工业文明的时候,传统的组织方式和团队管理会怎样被超越。两本书从文化、战略、决策、人才、沟通等多个方面阐述了未来企业的改进可能。\n内容比较多,不同的人看了可能有不同的收获,通过读书,一方面我发现了未来组织对扁平化管理的需求,然后思考了企业信息化对这一管理模式的支撑,下面简单谈谈我的看法(比较有意思的是,谷歌公司的员工也在抱怨他们自己开发的IT系统不好用)。\n###利用信息技术提升管理者与员工在“扁平化”管理下的沟通效率。 通过互联网、移动应用可以实现所有人的实时在线,无论是任务指派还是成果检查,或者随时沟通一些思路和想法。所以我猜测,未来的企业,可以一方面在线下仍然建立传统的“金字塔”层级结构,另一方面,通过移动应用工具,在线上建立“扁平化”的虚拟管理团队,企业的管理者可以获得更强的管控力和执行力。\n###利用信息技术加强企业文化的建设。 利用现代化的信息工具,企业内的每个人都可以更迅速的向团队传达及时的信息,分享自己的观点、技能。工作的目标更容易清晰传递,工作进展也更容易跟踪,管理者更方便地关注每一个成员的状态,只要积极利用工具向大家分享信息,“企业文化”就不再是一句虚无缥缈的口号,而是变成真正融入到每一项工作中、影响每一个成员的实实在在的观念、模式、原则。\n###利用信息技术放大“好员工”的影响力。 称职的管理者在团队中一定是认可并推崇积极优秀人才、打击并消灭低效消极人员的,传统的方式下一个好员工的影响力可能只局限在自己负责的那一部分工作,但是利用社交化的信息工具,在管理者的推动下,可以放大好员工的影响力,一个明星员工可以给更多的人带来正面影响,优秀可以“传染”给更多人。\n###方便打造学习型组织。 学习型组织,或学习型团队,现在大家提的比较多,构建一个学习型的团队是很多管理者的共识。信息技术提供的在线工具和移动应用可以让团队管理者更方便的实现打造学习型组织的理想。知识分享除了通过线下的活动进行外,还可以随时在线上进行,无论是看到了好的文章或者想系统的给团队成员讲解某一项技能,都可以利用信息工具在线上进行。\n###“标准”与“流程”不再是束缚,而是助手。 很多人提到企业信息化往往第一个想到ERP或传统的OA系统,但是未来这两个东西一定为消亡,或者换一种方式存在。传统的“标准”和“流程”是“死”的,听起来就没有什么生命力,未来的信息化工具在这个方面要想突破,一定是高度可定制化的,通过定制化,适应企业的高速发展,通过定制化,甚至让使用信息工具的人自己“创造”功能。\n###遥知 以上是关于新形势下企业信息化需求的简单思考,我所在的团队也正在做一些尝试,管理上,向扁平化方向发展,信息化工具上,我们自主开发了一款满足上述需求的移动应用产品\u0026mdash;-遥知,目前已经发布,正在积极推广中,有兴趣的可以尝试一下,虽然距我们设定的目标还有一定的距离,但对我们自己的团队管理已经初见成效,通过不断的迭代和改进,我相信我们会成为未来企业信息化管理工具的引领者。\n","date":"2017-02-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/","title":"未来企业扁平化管理中的信息化需求"},{"content":"每个新年假期我都会抽出一个下午的时间,回顾一下这一年所经历的事情(工作以外),总结一下得与失,回顾过去的同时顺便展望一下美好的未来。\n2016有很多值得怀念的,也有很多值得感谢的,从几件小事谈起,简单总结一下生活。\n0 、读书,2016年初定下原则,多看书少看电影,结果执行的还不错,朋友给推荐了一些书,自己也随机的买了一些,利用晚上睡觉前的一些时间累计下来一年也能看个十本八本的,印象比较深的有白先勇的《台北人》、蔡崇达的《皮囊》、村上春树的《当我跑步时我谈些什么》、东野圭吾的《解忧杂货店》、王小波的《万寿寺》。看完《当我跑步时我谈些什么》之后还冲动地跑了一个月的步,后因天气原因未能坚持(也不遗憾,姿势不当可能损伤关节)。技术类书籍没少买,每年仍看一遍《黑客与画家》,今年人工智能和大数据方面发展比较迅猛,陆续看了一些与之相关的书,对于科技的发展保持密切关注。\n1、写字,每周都在简书写一些文字,记录一些心得体会,或者对一些事物的看法 ,质量参差不齐,大部分文字都未经推敲,纯粹自娱自乐。虽错把创作冲动当才华,但比起只说不做,我毕竟坚持把思想落实在了行动上了,一些文字也能引起共鸣,甚至有朋友打赏鼓励,最后统计了一下,写了五万字,一共收获了一百多块赏金,其中老妈、老妹打赏最多。\n2、沉思录,从年初开始在微信朋友圈坚持做的一个小试验,每日睡前将当日坐车或刷牙时考虑的无聊问题,总结一段文字,发到朋友圈,浅薄幽默为主,记录心情为辅,偶有正能量鸡汤出没,好在我的朋友大都了解我的性格,通过这样一个小互动,得到大家很多的鼓励,谢谢你们。\n3、脱发,虽然健康问题不容忽视,但是随着年龄的增长,脱发,是每一个“聪明”的中年男人都要面临的问题,就像我大学时第一次丢自行车似的,刚开始不敢相信,到后来,不得不接受这个事实。小区门口理发店的老板,给我剪了十多年的头了,从最初不断夸赞我头发浓密,到现在已经开始主动帮我掩盖局部地区的稀薄了(不过我还是没在他们家办卡)。不过还好,至少老年时我不会为是否需要染发所困扰了。\n4、幽默与抑郁,幽默的人比较容易抑郁,据说很多喜剧大师如卓别林、周星驰,甚至很多段子手如赖宝,都有抑郁症。原因是幽默的人一般不太会处理自己的负面情绪,往往使用幽默的手段来进行心理防御,负面情绪得不到发泄,造成内伤。不过我还好,庆幸还没幽默到那种程度,自然也就不会抑郁那么狠,作为一个后知后觉的“慢性子”在经历的事情多了之后也能想明白不少问题,现在已经基本上不太会被别人的期望和评价所影响,知道关心自己的人是谁,在意该在意的,忽略该忽略的。\n5、老爸的忆苦思甜,父母每年暑假都会过来住一段时间,为了表示诚意,这段时间我几乎每天都要跟老爸喝两杯,三杯酒下肚,老爸必然通过将各种故事对我进行教育,老爸讲故事有个特点,那就是保持在故事框架的基础上,为了达到更好的效果,可以进行适量的改动(比如《武松打虎》这一回,武松最多的一次是喝了72碗酒才把老虎打死的)。所以虽然我早已将忆苦思甜的框架烂熟于心,但每次捧哏的时候还是得认真对待,虔诚的接受“再教育”。毕竟老爸尝过挨饿的滋味,所以我经历的这些困难在他面前基本无颜提起。\n6、“克己”,我在办公室放的有一本《传习录》,里面记载的都是明代心学大师王阳明与弟子、朋友的对话或书信,我古文水平很次,看起来磕磕绊绊,但是偶尔也会拿出来翻一番,说不定哪天就能领悟到一些东西。某日看到一段对话对我启发很大,了解到很多道理都有千丝万缕的联系,比如很多人看过的《高效能人士的七个习惯》,其中第一个习惯就是“积极主动”,大家也很推崇“积极主动”,但我某天在看《传习录》的一段对话时才更加理解这个“积极主动”了\n“弟子问王阳明为什么平时道理都明白,遇到事情的时候却还是难以控制自己,老王说,那是因为你经历的事情还不够,没能克己,你还是应该在事情上磨练自己”\n这里的“克己”虽然说的是在事情上磨练自己,但是怎么磨练?其实就是遇事要积极主动,不放过任何可以锻炼自己的机会,这样才会有进步,也就不会出现道理都懂,但实际没懂的情况了。\n7、时光倒流,有天金妍问我,时光真的能倒流吗?为了严谨一些,我回答,现在不能,以后或许可能。然后我问她,如果时光可以倒流,你想回到什么时候?她说,我想回到小时候。小时候?多小?我问她。她说,我想回到4岁(幼儿园)。看来从上了小学,我们的人生就开始了战斗模式。我说,那等着哪天科技发达了,咱们一起回到小时候吧。我没忍心说,其实就算时光可以倒流,我们自己是不可能倒流了,我们的人生就像是离弦的箭,开始了,就永远不能回头,只能不断向前,冲刺再冲刺,然后在向前的过程中,去寻找美好的体验和感受,并努力赋予这个过程以意义。\n时间过的很快,2017年我希望自己能够成为一个更好的 人,读到更多好书,听的更多好歌,做出更美的产品,坚持良好的习惯,关注他人的体验,向身边的人多学习,并坚持自己的梦想,向快乐出发!\n","date":"2017-01-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/","title":"2016年的个人总结"},{"content":"作家余华在《我能否相信自己》里写的一句话让我看了很有触动:\n“那些轻易发表看法的人,很可能经常将别人的知识误解成是自己的,将过去的知识误解成未来的。然后,这个世界上就出现了层出不穷的笑话。”\n这正是我所担心的,担心知道的太多,明白的却又太少。前者容易造成焦虑,信息的过载,或者想的太多。后者则导致在实际生活中面对问题时仍旧束手无策。\n面对互联网上大量的信息和资料,为了缓解焦虑,大部分人都有两个习惯,一个是收藏,一个是转发。\n我曾经维护着一个巨大的笔记列表,里面全是我多年来在互联网上搜集的各种资料和文章,从工具技术到人文自然与哲学相关的,都有。我还耐心的给每篇文章都增添了标签进行分类,以便“以后”更方便的查找和“仔细阅读”。\n然而,事实是,永远会有更新的内容出现,然后动动鼠标就能收藏,但是再也没找到机会进行“仔细阅读”,当时那种“留下来慢慢看”、“以后会有用”的感觉是那么强烈,但是,真的很少再想打开看一眼。那些文章永远的躺在收藏夹里,累计出来的数字越来越大,甚至开始让我误以为那些东西我都懂了。\n另一个习惯就是“转发”,看到好的东西就想分享,这是一个好习惯,但同时大量的分享也反映了一个很细微的心理激励过程,即,如果我转发某篇文字,里面提到了很多我十分认可的观点或思路(但事实上我可能根本做不到),我就忍不住要转发出来,在转发的那一刻,我的内心深处隐约觉得,好像离“做到”又进了一步(其实并没有)。\n我想不仅仅只有我才是这样,应该很多人都有这种习惯和心理。\n后来,我意识到了这一点,逐渐的开始改进,直到有一天我想明白了,自己不应该胡乱发表连自己都不能明白的观点,自己知道的东西不一定就能成为自己的知识。于是开始有意的控制信息的获取,转而开始尝试着将自己能想明白的东西用文字组织一下,开始“消化”知识,通过文字重新构建自己的“知识体系”。\n书写东西实际上是一个思考的过程,很多写作高手看起来轻易就能写出精彩的文字,事实上底下支撑的并不是他有多强的“写作”能力,而是他的“思考”能力,他能否构建出一个他想要表达的形象,一个完整的、具体的形象,然后剩下的就是写出来。\n所以说,能够写出来的东西,至少,表明了作者可以在内心里构建一个清晰的影像,对于自己的知识,有了更进一步的理解。\n从将知识写成文字开始,到真正在现实中有效使用,再到可以传授给他人,慢慢的“我知道的”,就真的变成“我懂得”了。\n“我的大脑就像是一口池塘,别人的书就像是一块石子;石子扔进池塘激起的是水波,而不会激起石子。”“因此别人的知识在我脑子里装得再多,也是别人的,不会是我的。”\n","date":"2016-12-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/","title":"写点儿东西,以防自己把别人的知识当成自己的"},{"content":"学会制造和使用工具应该是人类区别于其他物种的最重要的一项区别,所以DIY应该是一种原始的冲动。每个男人都应该有一个属于自己的工具箱,或者更近一步,一个工作台。\n据说德国的制造工业之所以发达就是因为人家从小就培养和锻炼孩子的动手能力,几乎每个家庭都拥有全套的机械维修设备,小孩从几岁开始就趴在旁边看老爸在那儿捣鼓各种东西,骨子里就渗透了DIY的文化。\n这方面中国男人明显做的比较差一些(咱们当然也有高手,但从比例上来说还是太少了),一方面可能是因为从小所接受的教育比较注重理论文化知识、轻视实际操作能力,另一方面也可能是我们的人力相对廉价,有什么事情直接找专业工人搞定,老外的人工费用太高,动不动就找人做的话肯能花钱比较心疼。\n我身边认识的人也有比较能动手折腾的,但他们很少因为这样的技能而得到尊重,最后往往沦为一个免费修理工。不过也没关系,动手折腾带来的乐趣本身比什么都重要。\n最近偶然在网上看到DIY达人上传的自制机器人的视频,发现了更大的世界,原来有这么多喜欢动手DIY的人啊,赶紧去Youtube搜索一下,结果搜到大量视频,小到使用打火机制作迷你喷壶,大到在自己家后院架设完整的游乐场过山车。看过之后,赞叹和羡慕之余,感觉竟然还有些蠢蠢欲动。\n以前也喜欢动手修理一些东西,尝试制作过纸箱收音机之类的玩意儿,但随着年龄的增长,逐渐失去动手的机会和时间,以至于现在几乎彻底丧失了此类能力。\n所以呢,行动最重要,既然喜欢自己做一些东西,那不妨先从丰富和建设自己的工作台开始,然后一边鼓捣软件,一边鼓捣硬件吧。\n","date":"2016-12-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/","title":"应该自己动手做一些东西了"},{"content":"最近在读一本书《我们最后的发明》,作者在书中表达了对人工智能发展的深度担忧。并阐明了一个耸人听闻的观点——人工智能将带来人类的毁灭(比核武器带给人类的伤害要大多了)。\n客观来说,目前的人工智能仍然处于较为低级的阶段,只能应用于非常窄的专业领域(专业术语叫ANI,狭义人工智能),如文字处理、语音识别、图像识别、棋类对弈等等。受制于硬件环境的制约,对于这一类技术的研究曾经一度停滞不前,但近些年开始,基于大数据技术和生物技术以“深度学习”为代表的“机器学习”类技术的崛起,给人工智能带来了高速发展的可能。\nAlphaGo战胜了人类围棋手已经被说的太多了,举两个其他的例子,大概还是在前年的时候,我研究过一段时间的基于图像识别的文字识别技术,阅读了很多资料,做过一些尝试,发现很难将文字的识别率提升到可以接受的水平,以至于沮丧的认为电脑不可能战胜人脑,因为三岁的小孩就可以轻易的分辨出照片中的动物是一只猫还是一只狗,但是电脑却判断不出来。然而没过多久我就看到新闻,谷歌已经通过“深度学习”技术通过让程序大量的阅读图片(谷歌的数据量很大),使得程序已经可以自动发现在任意图片中的“猫”,而且这还建立在人类从来没有告诉他“猫”这个概念的前提下。就在前几天,谷歌又爆出新闻,通过观看BBC的电视节目,他们的程序已经“学会了”读唇语的技能,而且识别率已经远远高于人类的读唇语专家(从这一点可以看出,电脑一旦某个方面超越人脑,人脑就再也没有机会追赶了)。\n这还只是ANI,随着时间的推移,科学家们肯定蠢蠢欲动,开始着手研究AGI(广义人工智能),通用的人工智能,也就是说在智能上各方面均能达到人类的级别,这才是真正意义上的人工智能,也是历代人工智能工作者梦寐以求的结果。\n可是有个比喻说的特别好,说通用人工智能就像是一列高速前进的火车,我们站在站台上远远看着它飞速向我们奔跑过来,然而就在赶到我们跟前的那一刹那,火车并没有停歇,而是从我们身边呼啸而过,将我们远远的甩在身后。这个时候的人工智能就是所谓的ASI(超级人工智能)。\n而且,据很多持悲观态度的分析人士(如本文所提到《我们最后的发明》一书的作者)所设想,从AGI到ASI的进化时间,要比从我们现在发展到通用人工智能要快的多,根本不是一个数量级,也许我们盯着屏幕眼瞅着我们发明的通用人工智能在短短几分钟内进化成为超级人工智能,然后,剩下的事情,就很难设想了,作者在书中提到了好多可能性,遗憾的是,没有一种可能是对人类有利的。\n为什么呢,毕竟是人类创造了它啊?可惜的是,它并没有对创造它的人有什么感激之情,相反,它很可能不再依赖人类,根据自己的决策来处置人类(想想《黑客帝国》吧)。从情感上来说,人类肯定想控制这些智能,并天真的认为可以通过编程手段来处理机器的逻辑判断(这正是我们现在广大软件工程师每天要做的事情),可惜,了解“机器学习”的人都知道,正是因为“机器学习”的“模糊”(输入和输出的因果关系不是通过编程控制的,而是根据统计和概率学习得来的)特性,使得计算机能够自动的找到我们无法通过编程来找到的最优解。\n还有一点,也是人类的一道防线,那就是“意识”,作为这颗星球的掌控者,人类骄傲的认为,“意识”是人类独有的东西,因为“意识”是对“思考”的“思考”(元思考?),所以我们认为人工智能再牛,如果没有意识那么也不过是个受人控制的机器而已。可是关于这一点,现在也有很多争论,首先我们自己是不知道意识是怎样诞生的,了解的很少,而且一旦深入研究就会跑到科学、哲学、宗教的汇合点,最后不了了之。\n不过,还是有人做出了比较靠谱的设想,今年最火的没有之一的美剧《西部世界》就是一个例子,虽然“人工智能的觉醒”这个概念已经被很多电影和电视剧演绎的有点儿烂了,但是这个剧以及原著小说的关于“觉醒”的设想,让人细思恐极,原来人工智能可以在条件具备的时候完成“意识”的“自举”(Bootstrap?有点儿像拎着自己的头发把自己拎起来的意思)。有兴趣的话,可以自行去网上搜一下关于这个剧的影评,因为自己看可能看不太懂。\n不过还是不要太悲观了吧,毕竟已经有越来越多的人意识到这个问题的重要性,也有人开始系统的研究如何通过技术的手段,在研发过程中遵循某种规范和约束来降低智能爆发带来的危险,希望这件事最终像当年的“千年虫”那样能够平滑过渡吧,但愿人类能与超级智能和平相处。\n","date":"2016-12-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/","title":"AI会是人类最后的发明吗"},{"content":"我一直热衷于尝试一切能够提升工作效率方法。几年前我非常推崇一种叫“GTD”的时间管理方法,方法效果怎样暂且不提,反正作者在全球出书(Get Things Done,中文名称《搞定》)、做演讲赚了不少钱,国内也因此诞生了一大批以讲解GTD时间管理为主题的培训机构或个人,应该也有不少人取得了显著成果。\n但是GTD在热了一段时间之后就销声匿迹了,我推测原因是该系统太复杂了,为了完整的运行这一 时间管理体系需要做大量的准备工作,要严格执行预先定义的工作流程,虽然该系统推崇最终能够达到“心如止水”的境界,但是太难了,好多人都停留在如何选择工具这个阶段,整天纠结选用什么样的工具(或软件)才能够顺畅执行流程,结果只能是越来越糟。\n我在尝试了一段时间GTD之后也部分放弃了,目前只保留了其思想中的“收件箱”机制,即任何事情来了之后先纳入收件箱中,分出轻重缓急(按重要程度排序下一步行动应该是GTD和核心思想了,与《高效能人士的七个习惯》中所提出的“要事第一”是一个意思)再做出下一步行动。\n可能是现代人都比较浮躁吧,后来又流行了一段时间的“番茄工作法”,这个方法主要是帮助你集中精力,具体方法大家可以网上搜索或者购买书籍来进行学习,实施起来还算比较简单,但方法能否有效很大程度上取决于你所做的工作是什么类型,如果你是一个比较纯粹的知识工作者,那么这个方法还是很管用的,每天都可以按部就班地消灭几个“番茄”。但如果你从事的工作经常需要沟通或总被外部信息打断,“番茄工作法”就无能为力了,因为一旦被打断,刚才的工作时间就算作废了,比较容易让人沮丧,所以我无法正常使用这种方法。\n随着时间的推移,各种方法在不断进化和融合,在抓住要事第一、清空大脑、保持专注的核心思想指导下,每个人最终都能找到 适合自己的高效工作方法,我在近期就做了一些融合和改进,虽然还没形成方法论,但是根据我自己的体会来说,效果还是很显著,因为操作起来比较简单,所以我觉得可以推广使用。\n首先,说一下所用到的工具,很简单,只需一支笔和两页纸(A4最好,如果没有也可以用记事本替代)。\n第一页纸,是用于写晨间日志的,一天之计在于晨,这话一点儿也不假,大部分人每天最清醒的时候应该是在早晨起床到上午10点钟之前那一段时间,如果一天当中这一段时间得到有效利用,那么这一天的时间就不算浪费了。所以把握好这一段时间这一点最重要。\n至于所书写的内容,没有具体的要求,最好是你脑子里当时想到的东西全部写下来,如果文字不足以表达,就用图画画出来,将你此刻烦心的、畏惧的、牵挂的、未完成的、已承诺的,反正只要能想到的,都可以写下来,这么做最大的好处就是可以有效缓解你的压力,而且很多事情在写出来之后就变得没那么麻烦了,你会突然发现灵感,然后顺着灵感找到解决的思路。尽量写满一页纸。写完琐碎的东西之后,你就可以对着这一页纸,仔细考虑当日的工作计划了,描出最重要的三个待办事项,从难到易进行排序(一天的工作应先挑最难的开始下手,这样会越干越轻松)。这样就算完成了晨间日志了,一般顶多占用30分钟时间。\n第二页纸,用于记录工作日志,不是为了记录流水账,主要是为了总结和分析。在处理早晨给自己安排的任务时,可以用这张纸来进行梳理思路、分解目标,必要时也可以画图。还有一点儿比较关键,就是你要随时将新来的待办事项记录到这张纸上,因为你在工作的过程中随时会有电话或有人找你,你放下手头事情,除非来的事情是天塌下来那样重要紧急,否则你把这个事儿记录在纸上,继续你的工作。\n工作中随时会出现一些灵感或者心得体会,也要及时记录下来。这样在结束一天工作的时候,你会发现基本上都能写满那第二页纸,收尾的时候,分析你的日志,将待办事项等扔进你的手机或电脑的日程表(这样就不会忘了),心得体会等可以归档到你的记事本、电脑,或者等待有时间把它孵化成具体的任务(比如写一篇文章、发起一个会议等等)。简单排序之后,标出你第二天要处理的最重要的事情。\n接下来就简单了,循环执行一段时间试试吧,说不定你就会发现效率真的得以蹭蹭提升,以前的焦虑感逐渐降低甚至不见了。\n","date":"2016-11-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/","title":"借助两页A4纸高效工作"},{"content":"你觉得经典的东西,其实只是你年轻的时候喜欢的东西罢了。\n周日的下午,听说要下雪和降温,看不进去书,摆弄了一会儿电脑,关掉浏览器,干脆听会儿歌吧。听着听着突然就想到创建一个歌单,将我原来买磁带听的歌都找到存起来吧。\n现在已经没有人再听磁带了,别说磁带,现在通过网络获取音乐这么方便,连CD也几乎绝迹了,当然据说现在仍然有部分人怀抱着黑胶唱片不放,但我没有经历过黑胶的黄金时代,从最一开始听的就是磁带。\n在有MP3之前,听歌是一个很具有仪式感的事情,因为需要很多步骤(比把大象关冰箱里还麻烦),你得从你的磁带架子(或盒子)上认真挑选一盒你想听的,如果你的磁带很多,当你的手指划过一排包装或精美或粗糙的塑料盒时,你会陷入短暂的沉思,仿佛先将歌曲在大脑里播放一遍似的,然后你按开录音机的仓门,认清磁带的AB面,然后轻轻放进去,再合上。按下播放键,磁头划过空白会出现一些沙沙声。\n虽然录音机也有快进的功能,但是一般很少用,因为跟CD和电脑的那种“非线性”切歌方式不同(一下就能下一首),磁带是线性的,想听下一首就得等待磁带一点点转过去。如果是随身听的话,为了省电就更不舍得使用快进的功能了,只能老老实实一首接一首听完。后来,在使用随身听的时候,我们发明了使用笔杆快速卷动磁带的方法,拿一个圆珠笔插在磁带孔上,甩动磁带使得磁带盒随着惯性迅速旋转,即可达到快进的目的,以至于我后来练就了直接用笔就能转到想听的任意一首歌的本领。\n磁带的音质还是不错的,可能那个时候没听过数字音乐的缘故吧,从我的记忆来说,磁带特有的那种模拟电路温暖音色,要比现在的MP3强多了,即使现在的一些CD也比不了。有时候听久了,会觉得音质越来越差,这个时候如果不是因为那种质量特别次的盗版磁带的话,一般就是录音机的磁头脏了,解决办法很简单,拿一团棉花蘸上一些酒精(如果没有酒精也可用高度白酒代替),轻轻擦拭一下磁头就行了,保证立竿见影,声音一下子就亮了许多。有钱的人家会更讲究一些,会买那种专用的清洗带,长的跟磁带一样,但是里面装的不是歌曲而是空白的毛绒卷,走动的时候会自动将磁头擦干净(有点儿类似于后来的VCD清洗碟)。\n我现在购买了网易云音乐的账号,所以即使是从网上下载的也算是正版音乐吧,现在有很多人不能接受听首歌还得花钱,觉得那些音乐人是不是想钱想疯了,可能他们都没有经历过买磁带听歌的日子吧,从性价比上来说,那时听歌可比现在贵多了,一盒正版磁带几十块,好一点儿的盗版也得十来块(要是算上通货膨胀的话,怎么着也得相当于现在的一百块吧,要是按房价算就更贵了)。一盒磁带一般也就容纳十来首歌,有些出版商为了多装几首歌,只得降低歌曲长度将每首歌都截取了一半放上去,或者干脆来那种四十首或八十首的大联唱(港台叫大串烧),这种听着就没劲了,一首歌刚唱几句就开始下一首了。\n今年十一的时候,我回到村里的老家,想办法找到了我以前装书和杂物的柜子。无奈时间太久了,我现在只能翻出一些DVD、VCD和CD了,磁带一盒也找不到了,每想到此,心里都惋惜不已。\n附:我创建的歌单(都是磁带时听的,后来买CD听的不算,每一首都听了不下百遍,唱K的时候全部不需要看歌词)链接 http://music.163.com/#/m/playlist?id=515310127\u0026userid=2998061\n","date":"2016-11-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/","title":"磁带情节"},{"content":"BIM这个词最近出现比较多,可能很多人听到过但是还不太了解它指的是什么,我稍微做了一些学习探索,希望能通过一些简短通俗的文字总结一下自己对BIM的认识。\nBIM 的全称是 “Building Information Modeling”,这个词语是由美国AutoDesk(就是那个旗下有AutoCAD和3DMax的公司)公司首创,中文翻译过来叫做“建筑信息模型”。被定义成由完全和充足信息构成以支持生命周期管理,并可由电脑应用程序直接解释的建筑或建筑工程信息模型。 简言之,即数字技术支撑的对建筑环境进行全生命周期管理的信息模型(来自维基百科)。\n狭义上来说,BIM指的就是一种以表示三维图形为主、面向对象、为建筑学有关的计算机辅助设计服务的数字化信息模型。从广义上引申来看,BIM是一种涵盖了整个建设领域包括一切和水、土、文化有关的基础建设的计划、建造和维修,以及城市规划,土木工程,交通工程等学科的全生命周期数字化设计技术。\n虽然概念提出很早(大概上个世纪80年代),但是真正的作为建筑设计方法流行起来还是近些年的事情,在此之前,建筑设计领域仍然停留在CAD(计算机辅助设计)二维图纸的阶段。所以,基于BIM的设计算是一中新兴的建筑设计方法。\n对于传统CAD技术的提升主要有如下几点:\n1、全生命周期。一个工程从设计到施工,再到后期的投运和检修,都可以通过 BIM 进行全方位的设计和模拟。\n2、三维可视化,所见即所得。传统的设计是基于二维图纸的,设计的最终效果往往只存在于设计人员的脑子里,随着建筑越来越复杂,仅凭想象是很难应付庞大的建筑结构的,而运用BIM技术可以使得整个项目过程(设计、施工、运行)都是可视化的,所见即所得。\n3、各个环节的协同。设计工程庞大而复杂,往往需要各个部门紧密配合,传统的设计方式往往是结构、水、电等都有自己独立的图纸,给设计和沟通带来诸多不便,而BIM则从根本上解决了这个问题,大家使用统一的模型进行设计,具备更好的协调性,及早发现设计冲突。\n4、方便进行数字化模拟。由于设计时采用面向对象的数据模型,带有丰富的设计参数,使用BIM可以方便的进行设计结果模拟,不仅包括常规的物理力学计算、用料统计,还可以针对节能、环境、应急、施工进度等进行高级 分析和模拟。\n以上说了这么多优点,那么我们现在处于那个阶段呢,坦白说,国内的BIM目前仍处于起步阶段,甚至国内的《建筑信息模型应用统一标准》目前还在编制阶段,但是随着信息技术的发展和普及,国内的设计行业正在积极的尝试,很多信息化服务厂商(如恒华科技)都纷纷参与进来,一方面积极贡献标准化建议,另一方面整合升级自己的传统设计软件,全面贴合BIM理念。\n最后附上一张图(图片来自谷歌搜索),概括了与BIM相关的软件分类,大家可以参考。\n","date":"2016-11-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/","title":"什么是BIM"},{"content":"听说《黑镜》第三季出来了,激动不已,虽然早就不再舍得花时间刷剧,但是《黑镜》太特别了,忍不住花了半夜的时间连看了四集(以往的两季都是每季三集,但是这一季不知道为啥这么猛一次就放出来六集)。\n几年前有本名叫《浅薄》的书,火了一段时间,作者在书中痛斥现在各种高科技带来的负面效应,互联网让我们越来越浅薄,失去了自我思考的能力,思想变得越来越贫瘠,只能靠不断寻求刺激来掩盖。\n显然,《黑镜》的编剧们也意识到了,只是这些人的脑洞更大,并带有强烈的反乌托邦味道,随便看一集基本就能粉碎“高科技能够给人类带来幸福”这个幻象。\n如果只是对迷信技术的讽刺也就罢了,让此剧如此出色和受追捧的关键还是在于对人性的探索和拷问,在不受技术限制(科幻嘛)的情况下,主人公时刻都徘徊在看似很爽(至少让我们羡慕)但其实又痛苦不堪的两种境界边缘,虽然英国人的口味有点重,比如第一季第一集里就要让他们的首相现场直播与一只猪发生不可描述的事情。比如给大家都装上智能眼球,然后通过技术彻底拉黑一个人(物理上的拉黑,关于他的声音和图像全部都被屏蔽)。\n虽然都是幻想,不过还是带有对现实世界事情的映射,最新的这一季,据大家评论说感觉不如前两季精彩,但是我看了后感觉已经非常不错了,毕竟无论从剧情还是效果都高出同期剧集一大截,属于良心制作了。\n新一季的第一集甚至科幻的都有点儿不像科幻了,如果拿掉一些不怎么影响剧情的科幻效果,看起来感觉跟我们现在生活的世界是一样的。故事中的人物无时不刻都在被电子化的社交圈所包围,每个人都靠别人给他点赞来获得认可,评分高的人受到的“尊重”就越多,有点儿像现在的信用体系,但是比较讽刺的是,这里的人们为了维持较高的评分已经变得失去了自己,带着面具生活,早已忘了坦白说话是什么滋味。\n再说就有点儿剧透了,如果喜欢科幻的话,可以抽时间看看。\n目前在这里还能看: http://www.bilibili.com/video/av6802900/\n","date":"2016-11-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/","title":"推荐一个剧"},{"content":"浙江温州最大的网盘厂,360网盘,倒闭了,王八蛋老板吃喝嫖赌欠下了三点五个亿,带着他的小姨子跑了。。。。。。\n我是在出差途中听到这个丧心病狂的消息,虽然以前就隐约觉得迟早会有这么一天,但是却没有想到它来的这么快。当时感觉强行被打脸,我可是经常见人就推荐这款产品的啊,文件夹同步功能比某度网盘云盘不知道高到哪里去了。\n现在我的脑海里除了一边盘算如何下载我那费劲巴力传上去的一百多G数据,一边浮现出当年范厨师坐在轮椅上对赵本山说:“我要是再相信你就是二次上当。。。”的画面。\n第一次有这种感觉是前些年谷歌关闭旗下的GoogleReader产品(一款RSS阅读器),这个产品我用了将近5年,可以说通过这个产品提供的阅读文章刷新了部分三观,但是谷歌在2013年7月毅然关闭了这个产品,不顾百万用户跪求不要关闭。从此以后再使用谷歌产品我都持谨慎悲观的态度,后来的事情也逐渐印证了这种观点\u0026mdash;-谷歌是个喜欢随意关闭产品线的厂,项目说砍就砍。果然后来谷歌的glass、无人驾驶等项目都雷声大雨点小,在无人驾驶技术方面甚至被起步比他晚的厂商反超。\n另一个大厂,微软,和谷歌随意关闭产品的习惯不同的是,微软喜欢改自己产品的名字,我最早的时候用过微软的MySpace(比qq空间可能还要早),在上面写了不少日志,后来微软不知怎的就把它的名字改为LiveSapce了,然后所有产品线都开始围绕Live展开,连注册个账号都要live.com的邮箱,结果,没过几年,不知哪位大师又给微软看了风水,全线产品又都开始围绕outlook.com展开了,live也被废弃了。\n说到大厂,雅虎当年也算一个,当年给用户提供终身免费电子邮箱的时候,用户无不感恩戴德,好多账号都使用雅虎的邮箱进行申请,然并卵,雅虎的邮箱同样也在2013年关闭。看来所谓的“终身免费”,在互联网公司的眼里指的并不是针对你的“终身”,而是产品的寿命。\n从个人感受来说,我是非常愿意为好用的产品付费,因为这符合市场价值交换的基本原则,有句话比较流行,叫“免费的,才是最贵的”。现在的互联网产品已经把用户给惯坏了,免费可能都不行了,恨不得倒找你钱才行,放眼望去,线上充斥 着免费的劣质产品,好的产品很容易就因为收费问题而被干趴下,像360云盘这么好的网盘产品(同类产品的几乎每一款客户端我都试用过超过1周,最终谨慎选择了360),绝对不是因为技术原因导致的关闭,我猜测真实原因可能也不是其在公告里说的“因为版权审查”,很可能是因为“钱烧完了”。不知道360网盘是否怀念当年将杀毒软件免费而干掉别人的日子。\n","date":"2016-10-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/","title":"那些年,我用过的“终身免费”产品"},{"content":"从计算机诞生的那一刻开始,游戏就一直是技术前进的推动力,无论是对硬件的压榨还是对算法的要求,很少有应用软件能够超越游戏的需求,一般来说,游戏软件所使用的技术总是领先其他应用软件一个世代,就连最近比较火的VR、AR技术也是首先从游戏开始的。还记得乔布斯大神说过:“全民娱乐是最终需求,一切技术最终都将为娱乐服务(大意吧,记不清了)”。\n那么,除了放松身心、打发时间之外,好像找到正当玩游戏的理由了。\n1、寻找灵感。我一直觉得应该在游戏中寻找产品的灵感,哪怕是最基本的交互设计或用户界面,同时期的游戏都能把传统软件甩好几条街,所以我们可以从玩游戏的过程中激发灵感,考虑我们的软件产品交互或界面有没有可以向游戏借鉴的地方。\n2、推动技术。最先使H5火起来的还是基于网页的游戏,正是这些游戏先驱踏平了无数的技术坑,才使得当前基于H5技术的跨平台游戏引擎如此火爆,并进一步诞生了通用的应用软件开发平台,在使用这些平台或者制作同类产品时,必须明白,是游戏率先推进了标准化和硬件性能提升,才使得我们能够基于成熟技术制作跨平台软件。\n3、学习技术。在享受游戏的乐趣之余,可以思考这些游戏的性能是如何实现的,现在互联网这么开放,不难寻找到相关的介绍资料,很多技术思路都可以借鉴,无论是终端资源的有效利用还是服务端高并发的基础架构,如果能满足游戏的要求,基本可以超越你的需求。\n4、学习心理学。为什么我们都觉得玩游戏比工作要爽,闲暇时间宁愿掏出手机玩两把消消乐也不愿意写一篇技术博客?根本在于游戏的设计符合心理学中人们对正向激励的需求,大部分游戏都设置有精妙的积分机制,一方面鼓励你多玩多得,另一方面让你不由自主的愿意付出时间和金钱,都是因为你在这个过程中获得了及时的反馈和激励。这个层面我们在产品设计或运营的时候都可以借鉴,向那些游戏厂商学习。\n5、学习知识。这个有些牵强了,但是也不是不可能,有些纯粹消磨时间的游戏就算了,但是确实有些有追求的游戏公司在制作的时候是出于寓教于乐目的的,比如我最近就在玩一款编程游戏(为什么下了班还要编程啊?!),通过几个简单的指令控制游戏中的小人完成任务,通过玩这个游戏我就很轻松的理解了大学里没有学会的汇编语言(或机器语言?),原来汇编语言里动不动就往寄存器里传输数据的意义就在于将输入通过某种操作变为输出,通过最简单的加减运算来实现复杂操作。\n很多人尤其是学生家长非常抵制孩子们玩游戏,认为游戏就是破坏学习的毒品,但是事物都有两面性,如果合理的安排时间,不沉迷于游戏,而是在娱乐的同时能学习和思考一些东西,那么玩游戏也没什么大不了的,甚至应该得到推崇,至少每个软件工程师都应该在工作之余多玩一玩游戏,只有不断的反思自己的产品,才做出更出色成果来。\n","date":"2016-10-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/","title":"玩游戏能学到什么"},{"content":"过节回了几天老家,亲朋好友团聚之余,感受到了一些变化,可片面代表当下农村对现代科技的使用情况,同时也更新了我对于互联网的一些认识。\n1、移动互联网要比在城市所占比重大,人手一部智能手机,几乎没有使用PC上网的,网吧几乎销声匿迹,每个人都在低头看手机屏幕,即使是在干农活的时候。\n2、上网不再是年轻人的专利,很多老人也都开始使用手机上网,并开通了社交软件账号,特点是对于网上传播的文字信息不具备过滤能力,只能被动接受,任何信息都认为是真实可靠的,并热衷于转发给身边的人。\n3、对手机操作系统没有概念(当然手机操作系统以Android为主),就像现在大多数人仍然对web浏览器(IE、Chrome、火狐?)没有概念一样,很多人并不能区分Android和苹果的iOS,也不认为手机上安装App的是“软件”,而是代表了某种功能,比如聊天、吃饭、天气、新闻、搞笑好玩儿的事儿,这种认识其实很纯粹,我们平时的认知反而会因为专业知识导致偏差。\n4、手机软件占比,沟通、娱乐类占比最大,全民娱乐的时代,以前只能通过看电视放松,现在普遍都盯着小屏幕了,微信里盛传各种自制搞笑小视频,虽然做工粗糙,但是认可度很高,我能感到里面的暗流涌动,很多在我们看来“一眼假”的东西却能够得到爆炸性的传播,仍然坚守“按套路”出牌的高大上公司指不定在哪儿被干翻。\n5、利用社交软件做营销,利用社交圈子的传播性而策划的营销活动特别盛行,商家们都已经十分重视手机上传播的宣传推广信息,而电视、平面媒体的广告已经成为了辅助信息。已经爆发了不少专门帮助商家进行微信营销的团队,有些人利用技术手段仅仅通过制作一些转发工具、外挂工具等获得了巨额利益。\n以上的观察虽然是主观认识,但是确实反应了一些事实,可以肯定的是,大家都在发力移动互联时代的创新,而且随着技术的推进,创新的杠杆将越来越长,能撬动的东西也越来越大,有时候真的需要将目光投向最不起眼的地方,你认为最稀松平常的事情,说不定有人已经准备掀起一场革命。\n","date":"2016-10-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/","title":"感受另一种创新"},{"content":"鉴于我们在web产品开发过程中采用了前后端分离(也是广泛采用的新技术)的技术,前端开发与后端开发在约定完交互接口之后往往存在一定的开发时间差,也就是说移动端和页面程序已经开发出界面了,但是后端的接口还没提供好,导致调试困难。于是我们很自然的就想到一个点子,为何不制作一个服务专门用来生成供前端调试调用的“假”接口呢?\n于是我们很快就选用了MongoDB作为数据库,基于nodejs开发了一个模拟各种数据增删查改的接口,符合RESTful标准,可以通过web页面随时增加你想要模拟的接口,除了没有业务逻辑之外,可以满足移动应用和web前端页面开发的数据模拟和接口访问,解决了前后端开发的时间差问题。\n后来我进一步想了一下,为什么我们不能将这个服务增强,使之具有一定的业务扩展能力(比如使用js脚本来插入业务逻辑),并配上我们的基础服务(权限、流程、报表等),这样我们是不是就不用开发纯业务的后端程序了呢?\n这个想法令我很兴奋,因为这就是传说中的云计算PaaS落地的一个体现,而且看起来像是一个伟大的产品的小时候,于是我就上网搜索了一下,看看有没有类似产品,结果令人欢欣鼓舞,原来Facebook早在两年前就投资了一家创业公司开始做这个了(名字叫Parse,有兴趣可以搜索一下),谷歌公司也收购了类似产品。国内也已经有人做了,而且据说还不错,比较出名的是LeanCloud,我看了一下已经是比较成熟的解决方案了。\n在移动互联网飞速发展的今天,后端服务的开发需求量非常之大(当然很多风投老板至今还认为移动应用的开发工作量只是手机上面的那些界面,这使得他们数次掉进坑里),上面那些厂商就是看准了这个需求,开发了面向后端的PaaS服务,使得一大票创业团队不再为后台服务发愁,找几个app程序员专注于客户端的应用开发就行了。\n云计算技术发展到今天,上层的软件即服务(SaaS)和底层的基础设施即服务(IaaS)发展的都特别好。一方面,软件即服务已经渗透到社会各行各业,很多在线服务已经成为了普通人生活中不可或缺的一部分(比如在线地图),另一方面,基础设施即服务也得到了广大开发者的认可,几乎每个上进的开发者都在互联网上租赁(或免费)有自己的虚拟服务器或存储服务。唯独处在中间层的平台即服务(PaaS)发展的不尽如人意,无论是国内的SAE(新浪)还是国外的谷歌的GAE(现在改名叫GoogleCloudPlatform了),用户都没有达到较大的规模。因为现有PaaS仍没有很好的提升后端开发的工作量,即使存在那么多的中间件,仍然需要大量的后端开发工作要做。这时候,上帝说:要有光,于是就诞生了BaaS。\nBaaS(后端即服务)是指专为移动应用开发者提供整合云后端的服务。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储、账户管理、消息推送、社交网络整合等功能。\nBaaS本质上来说是PaaS的一个细分领域实现,但是基本解决了后端开发问题。鼓吹者甚至扬言用一个云平台来解决所有互联网产品后端服务的需求。\n想法有些激进,但是可以回顾操作系统的发展历史来借鉴。很久以前,所有的计算机都没有通用操作系统,那个时候的软件厂商提供给客户的软件是自带操作系统的,完全从硬件底层做起,一直到业务功能开发。直到后来有了通用的操作系统如(windows、linux等),才将这些软件厂商从底层解放出来,控制硬件的事情交给了操作系统,应用软件厂商专注于业务开发。\n现在的情形跟当年的操作系统诞生时很像,很多厂商还在自己解决后端服务的开发,但是随着后端技术的越来越成熟,必然出现像当年微软这样的厂商彻底解决后端服务的问题。\n所以现在还在编写后端业务代码的企业和技术人员,需要用发展的眼光来看自己的软件架构,业务逻辑逐渐向前端倾斜,底层服务围绕数据为中心,很有可能在未来的某一天后端开发(这里指侠义的业务逻辑开发)将淡出应用软件开发的领域。\n","date":"2016-09-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/","title":"后端开发从PaaS到BaaS"},{"content":"借假日之闲,重读了一遍《正念,此刻是一支花》。书中反复引用梭罗在《瓦尔登湖》中的描写,并无比推崇的说:“梭罗常常在自己的门前一坐数小时,什么也不做,只是观察、聆听,太阳在天空慢慢变换位置,光和影也在不知不觉中变换”,看得我“身不能至,心向往之”。\n前天看了一个综艺节目,里面有一个小品,讲述了现代人对手机依赖成瘾的种种情形,虽然有所夸张,但是很贴合实际,尤其是里面主人公说出“你的世界不再是真实的世界,你被困在手机里了。。。”的时候,引起了很多观众的共鸣,包括我。\n像我这么追求“知行合一”的人嘛,自然不能只发感慨,凡事都要有所行动,于是借假期的机会,我准备初步尝试一下“不开电脑、少玩手机”的思路,体验一下互联网和各种资讯之外的世界还剩余什么。\n如果有幸,看看能否达到梭罗所言:“刚才还是清晨;看哪,现在已是黄昏,一日之中几无可念之事。。。”的境界。\n向来都是“买书如山倒看书如抽丝”,一旦关掉电脑和浏览器,突然就有时间看书了,发现如果真能静下心来认真阅读,平时买的那几本书根本不够怎么看的,随便翻看一个上午就能看完两本,而且还有富裕,看来以往所推脱没有时间实在是瞎扯,以后可以考虑安排出固定时间读书,尽量不要利用碎片时间阅读,大段时间最佳。\n留出时间陪孩子玩耍一下感觉也是不错,除了打扫卫生之外,我跟金妍一起练习了钢琴的哈农指法,我早已手指僵硬伸展不开,练习时总不能合拍,屡次遭到金妍批评,但还是能感受到全身心投入到一件事情时的那种忘我,虽然持续的时间不长。\n上次这么无聊的时候,我跟金妍一起,拿着铅笔和画板,把客厅里的物品几乎画了一遍,这次我又想到前些年买来一直未使用过的《秘密花园》绘本,可以尝试一下了。认真挑出几种颜色的彩铅,在餐桌摊开绘本,开始仔细描绘,确实是个锻炼耐心的工作,俩人一起涂了半个多小时才描了不到半页纸。\n做以上事情的同时,开始感受到信息枯竭的焦躁,但是忍住了各种冲动(比如说查收邮件、上网、编程),看书、听音乐、吃东西交替进行,但是我突然想到了另一件事情,我何尝不能练习一下“冥想”呢,据说乔布斯就是经常冥想然后才保持较高的创新力的,而且是个放松自我的绝佳途径,这个简单,我想。\n往沙发上一坐,闭上眼,“尽量无可念之事”我想,那是不可能,各种思虑此起彼伏,根本无法安静,我于是爬起来,打开书,像阅读说明书那样,查看“如何放松四肢,将注意力集中在自己的呼吸上,相像自己是一座山。。。。。。”\n等我醒来时发现自己实际上睡了两个多小时,这也算是间接达到了“刚才还是清晨,现在已是黄昏。。。”了吧。\n","date":"2016-09-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/","title":"不上网的假日"},{"content":"最近“人工智能”比较火,谷歌的阿尔法狗战胜了围棋大师,IBM的华生博士轻松赢得了国外的“幸运52”和“开心辞典”,苹果也准备推出“人工智能即服务”的云服务,有种“忽如一夜春风来,千树万树梨花开”的味道。\n毫无疑问地,未来的社会,“人工智能”将会成为中流砥柱,替代一大拨人。到那个时候,与我们打交道最多的,可能就不是人了,而是各式各样的机器,出门打车可能是无人驾驶,餐厅吃饭可能是自主点餐,“为人民服务”的各种窗口背后可能也不再是一张冷冰冰的脸,而是通过后端服务API支持的人工智能界面。\n一厢情愿地推测,这可能会促使一些变化,人与人之间的联系可能跟以前不再一样,无论是沟通还是协作,可能不再像现在这样复杂。我们可能会从复杂的人际关系中得到解脱,从而获得更多的精力来做自己想做的事情。\n到那个时候,我们可能需要重新考虑什么是“情商”。\n“情商”的重要性已经毋庸多言,非得要解释一下什么是“情商”的话,大概就是“体会别人感受的能力”吧,关于“情商”有句很直白的话,叫“智商高爽自己,情商高爽别人”。\n大概“情商”高的人更能让别人舒服吧,所以现在特别推崇这个,如果去图书馆的话,大概有整架子的书摆在那儿教你如何提高“情商”,教你如何让他人“更爽”。\n但是当技术推动社会变革,人工智能得到普及以后呢,到那个时候,我们需要什么样的“情商”?\n我们可能需要更多的考虑如何利用发挥机器的效率,而不是委婉的告诉机器他做的不好但是值得鼓励。 机器带来的效率提升使得更多人有了更多的空闲时间,而利用这些时间学习或者干别的,更能拉伸人与人之间的差距。 人更要追寻自己的内心,驱动自己做些有创造力的事情,否则被机器取代是迟早的事儿。 人除了跟人打交道之外,可能会跟更多的“机器”打交道,需要懂得机器的规律,思考方式也要发生变化,放弃那些人类不擅长的事情,才能更好的利用机器。就算是人工智能,也没有创造力,不能探索未知的问题,所以那个时候,我们要拼的可能就是创新力,而不是“让别人爽”的能力了吧。\n","date":"2016-09-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/","title":"人工智能时代的“情商”"},{"content":"我记忆中关于秋天的美好全都在田野里。\n记忆里的秋天是收获的季节,小学的课本里就有课文专门描述这个季节的美好:“高粱涨红了脸,稻子笑弯了腰”,我只记住了这一句。\n对于几岁的孩子来说,农忙的事情不用操心,即使去地里也是以撒欢为主,虽然欣赏不来万里无云的晴空和一片金黄的丰收景色,但是可以吃啊,到处都是好吃的。\n有一种野浆果,具体在生物书上该叫什么名字,我也不知道,我们老家那儿管它叫“香不溜”。长在秋天的庄稼地里,枝叶也不茂盛,不太容易被发现,如果不注意的话,很难跟其他野草棵子区分出来。但是果实极为好吃,酸中带甜,还伴有浓浓的香味儿,是我小时候能吃到的最好吃的“水果”。遗憾的是,由于会影响庄稼生长,这种东西一般都会被作为野草被拔去,到了收获的季节,能够躲过重重除草工作并坚持结果儿成熟的可不多,也就是说,这种果子不会天天遇见,偶尔能吃到一颗就撞了大运了。但正是这种稀缺性使得它吃起来的味道更加美好,如果能碰到熟透的,当然最好,碰见了半生的,也会迫不及待地吃掉,如果恰好碰上刚结果还没长熟,我一般是先记住位置,然后天天去看,等到成熟了再去吃(前提是没有被别人捷足先登,这事儿时常发生)。不过小时候下地的时间并不多,我吃香不溜最大的供货源还是来自于我的爷爷(从地里给我带回来的),别的记不起来了,只记得爷爷下地回来我跳起来掏他的口袋,希望能从里面找到几颗香不溜的情景。\n还有一种野生的“瓜”,想象一下,把西瓜按照比例缩小50倍,就像一颗玻璃球那么大,但是外观完全一样,只不过皮儿是软的,土名儿叫“马炮”。瓜秧漫长,顺着玉米杆的根儿生长,跑太快如果不注意的话还会被绊倒,上面结了成串儿的果实,虽然吃起来味道差一些,好在随处可见,就算是不吃也能拿着玩耍,小圆球可以拿来做各种有意思的游戏,就算是不做游戏,把马炮放在地上用力一踩,也会卟嗞一声爆炸,每个人脸上都笑开颜。\n以上说的都是可以生吃的,对于地里刚刚成熟或即将成熟的庄稼来说,吃起来往往需要加工一下。\n说是加工,其实也没那么复杂,顶多就用火烤一下。秋天的地里最不怕火,有成堆的秸秆和叶子可以作为燃料,在地里点燃后还能作为肥料,如果能顺便烤一下吃的,真是一举两得。\n大豆不能等到完全成熟再烤来吃,那样就太硬了,最好是在豆荚还青青的泛着一点儿黄的时候直接连根拔掉,然后整棵整棵的放在火里,到不了一根烟的功夫,香气就从火堆里飘出来了,这个时候最好别嫌烫手,赶紧抓起来,剥开豆荚,将还正在冒着热气的青豆一把一把的放在嘴里,香的保证你忘了所有的烦恼。\n花生和红薯,饿了的时候,直接从地里扒出来就可以吃,但是生的吃多了对肚子不好,所以一般也是烤熟才吃,不过吃起来就没那么方便了,一般费的功夫要稍微大一些。尤其是红薯,不能用大火,否则皮焦骨头生,表皮都黑了,里面还是生硬的。最好整块扔在刚烤完青豆的火堆里,不用搭理它,先去玩会儿别的,等到天快黑的时候,再从灰烬里将红薯慢慢扒出来,熟透的红薯绵软可口,甜的让人掉牙。现在大街上卖的烤红薯闻着很香,吃起来比起我们在地里吃的就逊色不少了,一方面可能是因为现在嘴刁了,另一方面估计也跟小时候吃红薯之前那漫长的等待有关。\n说了这么半天吃的,好像跟想象中金色的画卷不太一样,但是,秋天的田野是大自然对于没有零食可吃的农村孩子最好的馈赠。。。。\n","date":"2016-09-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/","title":"秋天的田野"},{"content":"背景 配置开发环境是目前我们开发团队在进行开发工作之前的重要工作,对于需要使用我们自己封装的开发框架的java web程序员来说更是如此,一般来说需要配置jdk、mysql、tomcat、maven等一系列基础环境,如果需要使用我们现有的开发框架,还需要配置开发工程的模板、基础服务的访问地址、统一的环境参数等等。这些工作做起来比较繁琐,即使按照开发文档一步一步进行也容易出现差错,而且较为耗费时间。\nDocker容器技术的出现使得这一工作得以改进,通过一段时间的研究,我们的底层框架开发人员将以上环境全部使用Docker容器技术制作成为完整的镜像,使得业务开发人员不必再关心这些琐碎工作,只需通过git下载我们的工程模板,通过执行Docker命令自动在本地完成开发环境的构建。\n然而由于docker是一个较新的技术,仍有很多开发人员没有接触过,上次我发的文章对于环境的配置描述的并不详细,这次专门针对windows下的开发者如何配置docker环境做一次讲解。如有必要,我将录制专门的视频来讲解。\n认识Docker Docker是一种容器技术,可以在操作系统中隔离出若干个独立的程序运行环境,这些环境既可以共享宿主机的资源,另一方面他们之间相互独立,互不影响,也不会对宿主机的环境产生影响。与虚拟化技术不同的是,Docker比较轻量级,容器(隔离运行环境)的启动和销毁都比较快,这些运行环境可以像现实世界中的集装箱那样,打包成一个一个的镜像,同样的镜像在不同的Docker环境中部署运行将会得到同样的结果,就像同一首歌在不同的播放器播放那样简单。\nDocker的出发点是将现在日趋复杂的web应用系统部署变得像播放唱片那样简单,但是它能做的却远不止于此,如果使用得当,我们将可以很容易实现“开发”、“测试”、“生产”环境的完全一致(这在以前是十分困难的),程序员以后也许再也说不出“这功能在我这儿好使”这样的话了。\n作为开发者,如果认真思考过以上的问题,当遇到Docker这种容器技术时,应该很容易就想到针对自己工作的改进方案,并且加以利用。比如如果想尝试某一个新技术,以前可能需要在自己工作的操作系统上进行安装,不但配置麻烦,而且存在将自己的系统弄坏的风险(很多人还爱重装系统),现在不同了,只需要下载对应的镜像文件,然后启动容器,即可体验。无论是golang、node、java、python这些程序语言,还是spark、wordpress、tomcat、mysql这种应用环境,都已经有人封装好了即开即用的镜像,随时可以体验,而且用着不爽可以随时清理。\n在Windows环境下的安装 如果是在Linux系统下干活,则比较简单,因为Linux已经实现对Docker技术的内核级支持,CentOS的软件仓库自带了Docker最新版,可以直接通过命令安装使用。\n对于Windows来说,稍有些困难,但是目前也不是问题了。首先需要看一下你的Windows环境,分两种情况,一种是Windows 10 64位专业版,一种是其他版本(比如很多人仍然推崇的Win 7)。前者可以直接支持安装Docker原生版,性能最好,体验最佳,后者只能使用Docker官方提供的一种过度技术(Docker ToolBox),这种技术不得不依赖Oracle的Virtualbox以在你的系统里创建一个虚拟机用以模拟Linux运行环境,好在封装的比较好,基本可以忽略这个虚拟机的存在,只需专心使用Docker即可。\n在Windows 10 64位专业版的安装 这个最简单,需要确定两个基础环境:\n你的CPU支持虚拟化(一般都支持,如果在操作系统中没看到,则可以手动到BIOS里打开,如果实在不支持,换台新的电脑吧),具体可以通过任务管理器查看,如图 你的操作系统需要开启Hyper-V,如图 然后到官方网站下载安装包直接安装即可,有时候可能存在网站被墙的情况,也可以到我上传的网盘里下载,链接在此 https://yunpan.cn/cMRZNp6BaXeEF 访问密码 80e6\n非Windows 10 64位专业版(无法使用原生Docker)的安装 这个稍微麻烦,也需要确定两个基础环境:\n你的CPU支持虚拟化 你的操作系统需要关闭(注意是关闭!)Hyper-V 然后到官方网站下载安装包,如果网站被墙,可以访问这个地址,也可以到我上传的网盘里下载,链接在此https://yunpan.cn/cMSaWneaYPE5K 访问密码 c8fa\n安装过程无特别之处,需要注意的是,如果你的系统内没有安装过Oracle Virtualbox,安装程序会自动给你安装一个,不用理会,直接一直点击“下一步”即可。安装完成后直接点击快捷方式“Docker Quick Start”即可,如果是第一次运行,将会耗费一些时间(因为需要创建虚拟机),在这个过程中,系统可能会弹出若干次UAC提示让你授权,果断点击“同意”即可。\n环境的配置和使用 安装完成之后,就可以随意使用了,但是,受国内网络环境的影响,还有一些需要调整,因为在国内访问国外的镜像库(docker默认的那个)比较慢,一般镜像又都比较大(动辄几百兆),所以我们还需要配置一个国内的镜像仓库,推荐DaoCloud或者阿里云的,这里以阿里云举例。\nWindows10下的镜像仓库配置 原生的Docker配置比较简单,官方还提供了可视化的配置界面,操作步骤如下:\n右键点击系统托盘的Dcoker图标,选择Settings 进入Docker Daemon选项,在右侧窗口填入镜像仓库的地址(可以自行去阿里云申请,我这里有一个示例) 示例如图 配置完成后,在命令行窗口执行一个拉取镜像的命令(docker pull tomcat)试试看,会发现速度杠杠的。\nDockerToolbox镜像仓库的配置 这个略微麻烦一些,不过还可以接受,需要在命令行进行操作:\n先执行这个命令(镜像地址可以自行替换)docker-machine ssh default \u0026quot;echo 'EXTRA_ARGS=\\\u0026quot;--registry-mirror=https://xks740zc.mirror.aliyuncs.com\\\u0026quot;' | sudo tee -a /var/lib/boot2docker/profile\u0026quot; 再执行这个命令 docker-machine restart default 会重启Docker虚拟机 然后执行命令docker-machine ssh default 即可进入docker命令行环境了 关于DockerToolbox的特殊之处 在容器中暴露的应用端口,需要注意,他的访问地址不是你的主机localhost,而是一个虚拟机的ip地址,一般为192.168.99.100,如果你在容器中跑起来一个web程序并且暴露了8080端口,那么想在外面访问的话,地址为http://192.168.99.100:8080 ,如果是win10下的原生docker就会没有这个迷惑,直接localhost了。 共享宿主机的文件给容器,需要注意,我们在使用容器时,一般会通过挂载卷的形式将系统的文件共享给容器使用,对于DockerToolbox来说,它默认给你设置了系统盘的User文件夹具有可以挂载共享文件的能力,也就是说,你需要使用挂载卷的时候,必须确保文件在这个根目录之下(比如放在C:/Users/xxx/Dcouments/xxxx)。 如果是window10系统的原生docker技术则可通过图形设置界面完成,如图 ","date":"2016-08-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/","title":"Docker环境在windows系统下的安装与配置"},{"content":"前两天量子试验卫星的成功发射,让我想起一些事情。\n当年,大约是十九世纪末期,全世界知名的物理学家集中在一起开paty,庆祝物理学所取得的伟大成就,其活动的组织者自信的站在台上宣布,物理学的大厦已经建成,基本的体系架构已经日趋完美,未来对于物理学已经基本没啥可研究的了(“只剩下对大厦的装修了”),唯一的不足就是,在展望未来时,飘在大厦上还存在两朵乌云,这两朵乌云就是:1、光的波动;2、能量的均分;\n然而,谁都没想到的是,正是这两朵乌云,最后彻底摧毁了物理学大厦,使得一切不得不重新来过。最终诞生了量子力学。\n我们想当然的认为,数学是对现实世界的高度抽象,完美的表达了现实世界,但是随着研究的深入,我们逐渐发现,“现实”比我们想象的要复杂的多。\n第一个问题是粒子的运动。通俗的来说,数学上的定义,两点之间有无限多个点,从A点到B点,必然经过AB这条线段上的所有点,这在宏观世界中是显而易见的,可是在微观世界,物理学家彻底蒙圈了,他们发现原子内的电子,从A点到B点的时候,完全可以不经过“中间”,而是忽然“跳跃”到了B点,也就是说,粒子不再是像公式中描述的那样平滑移动了,而是无法预测他们的轨迹,他们可能突然出现在他们愿意出现的位置。\n第二个问题是量子纠缠。这个问题好复杂啊,还是简单来说吧。科学家通过不断捣鼓发现,处于量子纠缠态的两个粒子,无论相距有多么遥远,当你改变其中一个粒子的状态时,另外一个粒子的状态立即发生改变,这个信息传递的速度是超过光速的(如果真的存在信息传递的话)。现在科学上只能证明这种现象的存在,但是无法解释这是为什么。\n以我浅薄的理解(我在刷牙沉思录中也提到),这其实进一步证明了我们所处的世界是一个“幻象”,我们可能就是生活在一个“某种超级智能”创建的虚拟世界,就像我们创造的游戏世界一样。\n为什么呢,建设在这个“虚拟世界”的假设之上,首先是我对第一个问题的理解,粒子之所以不能平滑移动,说明人类的微观探索已经到达这个“虚拟世界”的“分辨率”极限了。熟悉计算机的人都了解“分辨率”这个概念,我们在程序中绘制的“点”、“线”、“面”最终显示到屏幕上的时候是需要“栅格化”的,因为显示器有物理分辨率,两个里的非常近的点在显示器中的显示可能就是在一个像素上,那么这个时候处在我们的程序中的“物理学家”也会蒙圈地发现,从A到B是“一下子跳过去的”。\n第二个问题,为什么两个粒子的状态会如此的变化一致,而且变化的速度超出了光速?答案就是,这根本就是一个粒子,也就是说,无论相聚多远,他们的“本体”就是一个,类似于我们程序中的变量地址,无论这个变量的值显示在哪里,它在内存里只有一份,所以一旦发生变化,你在各地看到的结果都是一样的。这就好像我们最近在看里约奥运会的直播,赛场上的球的运动轨迹,无论我们在北京看电视屏幕,还是在纽约看电视屏幕,我们看到的都是一样的运动轨迹,而如果我们不知道这是来自于同一场直播,那么我们就像量子科学家对这两个处于量子纠缠态的粒子那样,感觉到很奇妙,为什么他们的运动状态这么一致呢?\n金刚经有云:“凡所有相,皆为虚妄”,不知与量子物理有没有关系。\n","date":"2016-08-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/","title":"由量子卫星想到的"},{"content":"我的偶像,王小波(一个会写小说的程序员)曾经说过(歌词大意吧,记不清了):此生梦想不过是遇见一些有趣的人,经历一些有趣的事儿。上周有篇讲解关于如何成为有趣的人的文章还比较火,承蒙QC抬爱,还在朋友圈艾特了我,实在惭愧。我觉得,成为有趣的人挺难的,但是成为无趣的人确很简单,我可以“谈谈方法”。\n放弃爱好。成年人的压力很大,所以要赶紧放弃那些幼稚的爱好,把那些能够从本质上给你带来快乐的东西都抛开,然后你就有精力去做那些让这个世界变得更无趣的事情了。\n做事前先衡量投入与收益比。要知道,无趣的人的时间通常很宝贵,所以千万别做那些投入与收益不成比例的事情,要学着用功利(别查了,这是一个中性词)的心态去判断事情的重要性,哪怕是读本书也要先评估一下是否对自己有利、能否在自己做那些无趣的事情时产生作用。\n做“有意义”的事情。身为一个无趣的人,千万不能做那些“毫无意义”的事情,比如浪费时间去考据鸡汤文学的发展史、分析周杰伦的歌词里是否表达过对蔡依林的好感、花时间研究vim的配置等等。你的时间应该全部用于做那些“有意义”的事情,要随时准备奋斗,脑子里要随时浮现那些成功人士的奋斗事迹,从而去激励自己,要发誓看到洛杉矶的每一个凌晨,不能停歇。\n不看“闲书”。虽然说开卷有益,但是你最好还是多读工具书吧,去读那些别人总结好的精华,最好是全是答案的东西,脑洞大开的小说实在是浪费时间,人的大脑容量有限,还是装那些更有用的东西吧,如果你看书的话,尽量别看“闲书”吧。\n拒绝新鲜事物。向当年被李斯焚书坑儒的那些老家伙们多学习,守住信条,老祖宗都没做过的事情,千万别做。\n消费,而不是创造。消费那些有趣的人创造的东西,别想着自己去做些东西,反正你节省的时间和金钱让你可以有资本这么做。\n如果以上这些你都做到了,请受我一拜,然后可以去死了。\n","date":"2016-08-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/","title":"怎样成为一个无趣的人"},{"content":" 很多人忽视这个说明文档,往往给自己的项目工程建立一个空readme文件或者在里面随便写几行不清不楚的文字,这样非常不利于代码工程的后期管理,尤其是对于有团队协作的项目,即使是个人项目,考虑到后期可能要给别人用,写一份合适的说明也十分必要。\n现在我们的项目工程已经全部迁移到gitlab中了,大家使用git工具管理 自己的代码版本已经比较得心应手,但是仅仅使用git管理代码并没有发挥出gitlab的全部功能,我上次也提到了更好的使用gitlab的几个技巧,这次详细说一下如何给自己的项目写一篇readme。\n在自己的项目代码的根目录中建立一个readme.md文件,注意扩展名为md,这样gitlab就可以自动识别并在这个项目主页上自动渲染(将源码翻译成html)这个文件了。\n学会使用Markdown语法,充分利用文档的“插入图片”、“嵌入代码”、“标题分级”、“超链接”等功能,将内容“富”起来,尤其是图片和超链接,可以弥补文本文件表达的不足。\n开头的简介很关键,readme文档的主要意义在于向读者描述你这个项目做了什么,运行在什么环境,如何使用,所以在文档的开头首先要简要介绍这个项目的存在意义,为什么要做这个,主要解决什么问题,运行在什么环境,如果需要与别的项目配合,那么你的项目处于什么样的位置。\n必备信息,由于是开发工程,所以很多信息是必须要在文档中说明的,主要有:\n开发编译和系统运行的必要参数 项目中的文件和目录结构信息 编译或安装步骤说明 使用示例 扩展信息,以上是传统的readme文档的套路,对于我们的软件开发工程(私有的非开源项目),我个人认为可以将readme稍作扩展,使得参与这个项目的人员能够在协作上更加顺畅,主要有:\n项目的业务范围,可以理解为项目需求的简化索引,具体的需求可以链接到其他的Markdown文档 项目的流程图和架构图,可以理解为设计文档的索引,具体内容也可以链接到其他Markdown文档 版本信息,如果有发布版本,则持续更新版本的发布记录,说明每次发布的重要更新项 总之,文档的重要性不亚于项目代码,简洁有效的文档是一个成功项目的必要条件,在这个到处需要团队协作(或本地或远程)的时代,程序员想要让自己的项目得到更多的支持,发挥更好的作用,必须养成给编写技术文档的习惯。那么,先从一份能拿得出手的readme开始吧!\n","date":"2016-08-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/","title":"如何给项目写一篇合适的readme"},{"content":"win10系统的升级推送大概烦了我们半年时间,微软为了实现10亿装机量的目标,到最后甚至丧心病狂到向国内的流氓软件厂商学习的地步(取消按钮都不提供了),据说现在好像达到了大概3亿的装机量。\n去年年末当win10第一次推送更新时,我第一时间进行了升级,然而在使用了不到一个星期的时间,我就果断返回到win8.1系统了,因为当时的体验实在是太差了,各种不兼容,系统启动速度和响应速度都变得很慢。\n直到上周到了win10免费推送的最后关头,于是就再次抱着试试看的态度将我的家用电脑进行了升级,结果出乎我的意料,经过了半年的不懈努力,现在的版本已经稳定可用了,随后我便将我所有的windows系统都进行了升级,全面进入win10时代。\n普通用户的使用体验就不再赘述,比如新增的小娜助手等等,这些功能稍微方便一些,但是比win8.1不算是革命性更新,作为一个软件开发者,主要有如下功能比较让我心动:\n1、直接执行Linux命令行程序。微软将其称为「Windows 下的 Linux 子系统」 (Windows Subsystem for Linux),据说这是一项全新的技术,并未采用虚拟化手段,也不是交叉编译的技术,而是直接将Linux系统调用映射为原生的Windows系统调用,类似于Linux平台下的Wine(在Linux下运行Win程序,唉,大家这样累不累啊),这样一来既可以体验windows良好的桌面环境,又可以使用Linux系的命令行,可谓鱼与熊掌兼得了。\n2、Docker开始原生支持Windows10(64位),在此之前要想在Windows下体验Docker容器技术的话,必须安装DockerToolbox(基于VirtualBox虚拟机的模拟环境),现在 则可以直接基于Windows原生自带的Hyper-V技术使用Docker了,虽然效果有待观察,但是相比基于VirtualBox虚拟机的环境,性能方面应该能有所提升。\n3、Windows Hello 生物识别技术,虽然需要特殊的硬件设备支持(一种带深度探测的摄像头,估计会逐步普及),登录系统或网站只需要刷脸就行了,据说识别率还是挺高的,但是女生如果化了妆,有可能无法识别。\n总之,虽然一开始是拒绝的,但是经过这么长时间的升级,通过这几天的使用体验,我认为现在可以升级到win10了。\n","date":"2016-07-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/","title":"好吧,现在可以用win10了"},{"content":"gitlab是一个开源的git服务软件,与大名鼎鼎的github所提供的功能类似,适合企业或团队搭建属于自己的在线git仓库。\n近期我给自己所在的开发团队也搭建了一个gitlab,经过一段时间的试用,反应效果良好,具备发展成为自有开发社区的潜力。摸索了若干的使用技巧给初使用者:\n1、尽量使用ssh协议访问仓库。gitlab默认给仓库提供两种访问方式,一种是https,一种是ssh,前者使用简单但是遇到文件较多或较大时容易出现问题(由于HTTP协议导致),后者则是配置上略复杂但是一旦设置好一劳永逸,可以免密码登录。\n2、利用分组(Groups)管理权限,有时候项目比较大,往往一个项目下包含多个开发工程,如果分别给参与这些工程的人员进行授权的话,比较繁琐,而利用Groups分组的功能,可以将若干个项目成员放入同一个分组,这样此分组的git工程将自动继承分组的权限设置,只需要设置一次即可,如果有特例仍然可以在具体的git工程下进行特殊设置,比较灵活。\n3、善用Markdown写文档,每一个工程下面都应该有一个以readme.md命名的markdown格式文档,用于详细说明这个工程的信息,可以图文并茂,超链接到其他的文档,以及包含代码片段并进行语法高亮,gitlab系统会自动在该项目的主页中渲染这个文件,这样当别人第一次进入这个项目时就可以迅速了解这个工程了。\n4、利用评论(comment)进行代码评审(code review),每当有人进行了提交之后,在系统的信息流上都可以看到这个提交的具体改动,作为项目技术负责人可以及时的了解提交情况,并针对此次提价的代码修改内容进行评论,可以细化到每一行,评论的信息系统会自动发送邮件给相关负责人,可以重复利用这个特性来做代码评审。\n5、保护master分支,git工程的master分支一般比较重要,可以通过设置将master分支保护起来,使得只有具有高权限的人员才能推送到该分支,而一般开发者将自己的成果提交到普通分支,经过代码评审后再由技术负责人将分支合并。\n6、善用代码片段(Snippets)分享功能,gitlab系统也提供了代码片段分享功能(类似于github的gist),每个人都可以将自己常用的代码片段保存到系统并分享给大家,比自己留在本地电脑上要方便很多,而且能发挥这些片段的最大价值。\n","date":"2016-07-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/","title":"gitlab的若干使用技巧"},{"content":"没有比陪二老打牌更重要的事情了。\n每年的暑假,二老都会千里迢迢从老家赶过来。不为别的,只为了在这个漂泊的地方能让我感受多一些家的温暖。烦恼的事情向二老倾诉一下(当然不会),工作或生活上的成绩也略作汇报。\n但是平时工作都很忙,白天基本不在一起,能够一起聊天的时间也就是晚上的打牌了。\n夏日的时光,如果能给惬意下一个定义的话,除了吹着空调盖棉被意外,就是吃着西瓜陪二老打牌了。欧阳修在醉翁亭记中说“醉翁之意不在酒,在乎山水之间也”。陪二老打牌亦如此,不在乎输赢,在乎谈笑之间也。\n从邻家孩子的高考,到印巴关系的进展,无所不聊。基本上,都是老爸在说,我在听,偶尔扮演一下相声演员捧哏的角色,说一声“哦,那是,那当然了”,让话题得以延续。\n可能是因为经历过困难时期的原因,每当我对现实生活稍有不满,老爸都会给我来一段忆苦思甜,经历过吃不饱的日子,虽然现在提起来轻描淡写,但是对于我来说都具有巨大的威慑力,与二老经历的苦难相比,我现在所承受的压力自然不值一提。\n聊的都是家长里短,外人看来不值一提,但每每此时正是教导我辈的绝好时机,无论是诚信做人还是认真做事,都能在小小的牌桌上得以体现,我打牌虽技术不行,但好在能够坚持,这么多年来,陪着二老练手,基本上也将斗地主的规则了然于胸,偶尔老爸耍赖,我亦能联合老妈将牌面算的一清二楚,“炸弹要关键时候再出”,老爸说,我说:“ei!”。\n希望将打牌进行到底。\n","date":"2016-07-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/","title":"打牌"},{"content":"去年的时候网上流出一段某火锅店领班激励服务员的视频,员工整齐划一跟着领班边手舞足蹈边喊口号,其中有一句喊得最带劲,叫“加油加油我最棒!” 。看完一笑。\n今日乘坐地铁,得功夫刷了会儿知乎,看到一篇关于如何提高自信的提问,才感觉到,原来大部分人都缺乏自信,甚至包括我自己,这是缺点,需要改进。\n缺少自信带来的危害是广泛的、显而易见的,是会影响各种效率和幸福感的,容易形成挫败感的恶性循环,长期积累容易形成心理问题,尤其是在快节奏、高压力的现代社会,所以现在很多成年人已经积累的差不多了,以后可能会出现大规模爆发期。\n这个问题很火爆,相信很多人都有此类困惑,我总结了一下比较靠前的答案内容,大致可以分为两类,一种是从改变行为着手,简单有效,另一种则是从深层面改变自己的认知和思想,我觉得可以两种结合。\n首先说一下缺乏自信的基本表现(可能没这么极端,但是多少会有一点儿): 1、难以接受别人的示好,但凡有人对他好一点,都会觉得不太应当,受之有愧。 2、遇到问题时,总是怀疑自己,觉得自己不够好,自己哪里做的不对。 3、得不到想要的东西,不强求,也不会不开心,因为开始的时候就觉得自己不配。\n如何改进,方法层面: 1、不要抱怨,有谚语云:闭上嘴巴,好运自来。闭上抱怨的嘴巴,慢慢攒正能量吧。 2、说话降低语速,清晰表达观点,及时对方再不耐烦,也不要讲太快,做到掷地有声。 3、每天洗头:)。 4、走路挺直,目视前方。如果你与人对视害羞,走路的时候就笔直看远方的广告牌\n如何改进,思想层面: 1、不要给自己加标签,加上标签意味着自己给自己设限,很多事情不是做不到,而是自己以为做不到。 2、做自己擅长的事情,才能形成良性循环,然后再拓宽。 3、洒脱一点儿,不试图隐藏自己的缺点,不发表模糊的观点,不人云亦云,立场清晰,不讨好,不谄媚。 4、认识你自己。\n但是以上这些答案,所达到的效果,都不如开头我提到的那个视频里的领班,所以最简单的办法应该是,每天对着镜子说一句,“加油加油我最棒!” 哈哈哈。 ","date":"2016-07-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/","title":"加油加油我最棒"},{"content":"Docker是一种比虚拟机更轻量级的应用程序执行容器,受云计算技术普及以及微服务架构的影响,Docker这两年风声水起,成为用于管理应用部署的最佳利器,很多DevOps团队宣称使用该技术后能极大缩减开发、测试、生产环境切换的时间,提升整体效率。\n考虑到目前很多开发人员仍是在Mac和Windows系统进行开发,为了方便环境的部署和管理,Docker公司近期推出了DockerToolbox工具包,可以跨平台(Mac、Windows)使用,对于想在Windows环境下体验容器技术并开发产品的程序员来说真是福音。\n安装过程很简单,直接去官网下载对应的安装包到本地执行安装程序即可,安装后会自动在系统中打包安装VirtualBox虚拟机(因为Docker依赖Linux系统,必须模拟Linux环境)、Docker-engine、Docker-machine、Docker-compose等组件,基本做到了即开即用。\n然后主要就是进入命令行管理界面(安装包会创建快捷方式),执行各种docker命令进行工作了,我在使用过程中主要遇到了如下问题:\n1、CPU虚拟化的开启,现在的CPU一般都在硬件级别支持虚拟化技术,但是有的可能默认没有打开,需要到BIOS中手动开启,查看是否开启的方法是,在windows系统任务管理器的“性能”页,是否有虚拟化已开启的字样,当然目前也有一些比较老的低端CPU不支持,这个就建议更换设备吧。\n2、与Windows系统自带的虚拟化技术Hyper-V冲突,专业版的Windows系统一般带有虚拟化技术组件,是微软自有的,名叫Hyper-V(与virtual box等类似),但是与我们要安装的工具有冲突,需要关闭Hyper-V后才能正常使用,具体操作方法为到控制面板的“程序和功能”里面的“启用或关闭windows功能”将Hyper-V关掉。\n3、VirtualBox虚拟机网段IP分配冲突,这个是我遇到的特例,VirtualBox会自动给用于模拟Docker环境的虚拟机分配内网IP地址,且默认为10.0.2网段,这个恰恰与我的工作环境存在冲突,而且界面中和配置文件里都没有可配置的地方,经过多天研究,终于找到通过命令行的方式将这个默认配置可以改掉 ,命令如下 VBoxManage.exe modifyvm \u0026quot;default\u0026quot; --natnet1 \u0026quot;10.0.20.0/24\u0026quot;(需要在virtualbox安装目录下执行,default是虚拟机的名字。)\n4、系统重启后环境丢失(偶然发生),这个可能是工具存在bug,我在下载各种镜像进行测试后,将我的Windows重启后发现default虚拟机里的东西都丢了,这个可能是由于环境在运行的状态下我重启了系统导致。目前我的解决办法是在每次关机或重启的时候,先将default虚拟机停掉,方法是在命令行下执行如下指令docker-machine stop default 。\n总的来说,这套工具包非常方便在windows下开发的人员,基本可以做到与容器环境的无缝对接,合理使用这一套工具包,对于我们的“持续集成”、“持续交付”等工作将有很大的促进作用。\n","date":"2016-07-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/","title":"使用DockerToolbox在Windows下搭建Docker环境"},{"content":"“世上本无我,庸人自设之”,这是豆瓣上某位网友读完《失控》之后的简短书评,看完之后深以为然。最近重读《失控》,多年过去仍然有新的发现,作者在上世纪九十年代就能有如此的见地,不得不服(不过老子早在《道德经》中也有类似论述,这又是另外一回事儿了)。\n《失控》虽整体在论述人工智能与生物的最终归宿,但每一章都有一定的独立性,所以看似在讲解人工智能,其实作者为了讲明白要论述的最终观点(生物与人工智能必将合为一体)前面章节做了大量铺垫,普及了很多颠覆性的思想,有些观点是我们这些从小接受灌输性教育、思维存在束缚的人很难一下子接受的(课本里学不到的)。\n书中提到对于机器人的控制不应该存在中央大脑的设定,因为如果所有事情都由机器人的中央大脑控制,必然使得这个“大脑”十分复杂,而且存在通信、供电等问题,很多以这种设定进行的机器人项目造出的机器人往往连路都走不好,而且体积庞大(因为所有部件都要与大脑直接连接,大脑又做的比较大)。\n反过来说,应该从低层级入手,每一个部件都有自己的控制中枢,这些部件本身对于外部环境做出简单反射,这种“反射”虽然谈不上智能但是更接近自然现象,就像有些昆虫的腿被扯下来仍然可以对外部形成反射一样,但是它们一旦形成组合就会发生奇妙的事情,每一条腿通过简单的对外部环境“反射”反应,在不知道还有另外一条腿存在的情况下竟然可以使得组合体具有“爬行”的功能,越来越多的这种“低级”组件组合在一起后自动形成更高层级的智能。作者为这种通过大量低层级组件组合在一起产生更高层级“智能”的现象取了一个比较传神的名字叫“涌现”,这种现象在自然界中也大量存在无论是天生的(比如蜜蜂群体、蚂蚁群体)还是人造的(互联网、经济体)等。\n最近考虑软件系统架构比较多,所以干什么事儿总能联想到软件架构,在看书的时候也不例外。于是联想到,我们以前所推崇的“自顶向下”的架构设计,可能存在问题。为什么看似“完美”的架构设计在实际构建的时候存在各种困难?为什么各种分层、模块划分在细化设计时很难做到具体到内部细节控制?通过反思,我意识到,或许我们的方法有待商榷。\n在架构设计时比较传统的手段是,先进行顶层设计,然后一步一步的细化。这样做看似很合理,但是这样做有一个假设,就是你在最初对一切都了如指掌,你能预知每一个变化,所以能对每一个细节都能掌控,而且在执行构建的时候还要有极高的执行力,每一个组件和模块都按照最初的设计实现。这样的做法对于建筑类(如桥梁、大楼)的工程是比较适用的,但是对于需求多变存在大量未知因素的大型软件系统无疑是不现实的。\n或许我们也可以借鉴自然界中的规律,让我们的软件系统也“涌现”出来,而不是“设计”出来。\n举例来说,我们从最底层入手,给每一个组件赋予最简单的职责,比如传输的组件只负责将数据从一个地方搬运到另一个地方,本身并不知道有其他组件的存在,通过设定一个外部规则环境让更多的组件加入进来,去掉中心控制,充分发挥每个组件的自主性,各司其职,随着规则的成熟和组件数量的增加,慢慢就能“涌现”为一个复杂而庞大的系统。其实这种“只把简单的事情做好”思想很早就有了(比如大名鼎鼎的UNIX操作系统),而且现实中已经有大量的这样的例子了比如Linux开源社区,Github社区等等。\n所以,回到最开始的话题,所提及的“无我”其实也是一个意思,作为更高层级智能的“我”是不存在的,仅仅是由若干个只能低级反射的细胞组成的虚幻而已。\n","date":"2016-06-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/","title":"世上本无我,谈自底向上的架构设计"},{"content":"上周,我利用互联网直播平台(斗鱼)面向自己团队的同事和我们的应届毕业生在网上直播了两次技术培训,直播的出发点是利用互联网技术跨越地域障碍,将自己的知识技能分享给大家。比起集中在会议室进行交流培训,互联网直播平台具有成本低(准备一台联网电脑即可)、规模大(理论上可以上万人同时参与)、没有地理位置限制(全球各地都可以)等优点,也正是因为有如此的优势,我才决心探索一下在直播平台上开展培训的方式,不苛求卓越的效果,只愿可以将知识传递给更多有需要的人。\n经过两次在线直播的尝试,有些方面超出了预期效果,有些地方仍有待改进,总结心得如下:\n1、关于直播前的准备工作。由于人员较为分散,每个人所处的环境不同,对于技能类直播,观众最好能够边听边练习,所以事先通知大家提前准备好各自的操作环境比较重要,如果准备充分,可以很快进入状态,我在第一次的时候就忘记让大家提前准备了,导致耽误了一些时间用于安排各自的听课环境。\n2、关于直播过程中的互动。目前的直播平台还不能做到完全实时的互动,因为直播信号有较大的延迟,基本上我在本地说的话要经过1分钟左右的时间才能被大家听到,而大家在直播间的发言我也需要等待1分钟左右才能看到,这么大的延迟,很难做到实时问答,所以我决定放弃在直播时的问答,按照预先既定的思路进行讲解,大家如有疑问则由另外的同事助手帮忙收集反馈信息,统一安排时间进行回答。\n3、关于讲解的时间控制。每次技能培训时间不可过长,应控制在1个半小时以内,时间太长会导致大家的注意力不能集中,降低培训效果。\n4、关于操作演示时的讲解。没有直播讲解经验的人都会犯这样的错误,即只顾自己操作,而忘记说话,导致观众不知道你在做什么,从而跟不上进度。这个需要改进操作习惯,将每一步操作的原因和预期结果都要讲出来,这样观众才不会感到茫然,并且录制下来的视频在以后回放的时候仍然具有较好的效果。\n5、关于视频质量。这个问题主要体现在观看卡顿上,刚开始的时候我使用本地的直播工具进行视频上传,直播工具在测试了我本地的网速之后,给出了一个建议码率(视频压缩时的一个参数,越高越清晰),当时工具建议码率为1600,这样视频清晰度较高,但是忽视了观看者的网速问题,出现了较多的卡顿现象,后来我将码率降低为1200时就基本不会出现观看卡顿了。清晰度降低后可能会出现文本显示不够清晰的情况,此时需要将操作界面的字体尽量调大,这样也能达到能看清的效果。\n总结:虽然存在一些不足,但是如果经过充分准备和磨合,互联网在线直播平台可以作为一个技能教育培训手段,希望我可以继续分享更多的知识技能给大家。\n","date":"2016-06-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/","title":"使用互联网直播平台进行授课的心得"},{"content":"","date":"2016-06-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/","title":"Git工具相关链接"},{"content":"推荐我在手机上常用的应用给大家,都是经过我精挑细选长期使用后的选择。\n1、新闻或资讯阅读,推荐即刻。可以有选择的关注话题,降低资讯噪音,而且产品比较有情怀,里面推荐的一些关注话题都挺有意思的。此类的不太推荐“今日头条”,信息太多,且高质量条目较少。\n2、处理文档,推荐微软office全系产品。微软出品必属精品,而且免费。\n3、邮箱客户端,推荐网易邮箱大师。与我工作时使用的网易企业邮箱是绝配,而且还有一个隐含作用,就是可以在不翻墙的情况下收取Gmail的邮件。\n4、看电子书,推荐多看阅读。阅读体验良好,支持上传自己的书籍到云空间,一般购买正版电子书也比较便宜,支付方便。\n5、自拍美图,推荐微软自拍。还是那句话,微软出品必属精品,虽然图标做的有些low,不过效果很好,其实我基本不用此类软件,列出来只是怕埋没了这么好的软件。\n6、摄影滤镜,推荐LOFTCam。俗话说“姑娘自拍靠美图,文青摄影靠滤镜”,现在的照片哪有不加滤镜的,试用了那么多应用,最终选定这一款,而且还是网易出品,在我个人看来网易基本代表中国互联网的良心(可能没有)。\n7、代码学习,推荐CodeHub。非官方的github手机客户端,用于在手机上浏览github代码仓库,使用体验良好,利用碎片时间随时看看这个世界上的技术大牛们都在干什么。\n8、团队协作,推荐遥知。知识型工作团队的管理利器,包括基本的移动办公、任务管理、及时通信等功能,以前我们团队沟通总是使用微信、qq、邮件等工具,现在全部使用遥知,基本告别之前的碎片化沟通协作,也避免了将生活中的工具(如qq)带入工作中的尴尬(相信有很多孩子不愿意加父母或领导的微信)。\n","date":"2016-06-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/","title":"我常用的app整理"},{"content":"一直以为很多人上网跟我一样,习惯在地址栏输入网址,或者在收藏夹点击网址。直到有一天我无意中瞥见赵老师在淘宝买东西,只见她在地址栏输入“百度”,浏览器显示出第一个搜索页面(现代浏览器都在地址栏提供了搜索功能),点击第一个链接进入“百度”网站,然后又在百度的主页上输入“淘宝”,点击搜索,最后在结果页面中点击第一个链接进入“淘宝”。当时我就震惊了。后来即使我耐心讲解了收藏夹的作用,并亲手将淘宝放入了收藏夹,无奈习惯的力量是巨大的,赵老师依然使用同样的方式上网。\n拼凑完粉碎的三观后,我开始反思,专业人士习以为常的操作界面在正常人眼里是不是蠢的根本没法用,什么“地址栏”、“文件夹”等等,都是懒惰没品的工程师随意设计的交互界面,严重违反正常人的思维方式。当设计师们还在争论“扁平化”和“拟物化”的风格趋势时,有没有想过我们离人性化的交互越来越远,我们真的需要界面(那样的)吗?\n要做好下一代人机交互,首先要丢掉工程师思维,有故事为证:\n1、国外有个网友有一次给他的儿子显摆珍藏了多年的软盘,他的儿子惊呼“爸爸你把保存按钮给3D打印出来啦?”(过了这么多年,到现在大部分软件的“保存”图标还是一张软盘的抽象)\n2、谷歌的glass智能眼镜之所以失败是因为交互方式容易让人受伤,比如相左歪头是点击“确认”,向右歪头是点击“取消”,不知道有没有“双击”。\n关于下一代交互方式不负责任的畅想:\n1、基于AI的语音交互,这个是普遍认为的趋势,随着人工智能的飞速发展,各大公司都在准备提供人工智能即服务,使得未来的人工智能变得异常廉价,未来的交互方式一定会模糊机器与人的界限,在聊天过程中完成任务。不过在公共场合使用的时候可能会有隐私问题。\n2、增强虚拟现实,这个也比较火,通过技术赋予现实中的一切物体交互能力,也许有一天你走进超市触摸一条鱼的时候,它身上能自动显示有多少人给它点了“赞”。\n3、脑机接口,这个应该比较终极了,生物与机器达到完美结合,不需要中间的输入和输出设备了,再也没有空间和时间上的限制,达到这一步就可以实现《黑客帝国》中的设想了,人类可以去死了。\n","date":"2016-06-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/","title":"人机交互畅想"},{"content":"在美国加利福尼亚州利弗莫尔市东大道4550号,有一个灯泡,这只灯泡之所以出名,是因为它的寿命,从出厂到现在,他已经坚持工作了超过110年的时间,而且据说还在亮着。\n但是对于厂家来说,这是一个不合格产品,因为当时合格的灯泡被严格限制寿命在1000小时以内。\n为什么要限制呢?因为这个世界是被一小撮聪明人控制的,规则也是这一小撮人制定的,对于他们来说,需要将产品的寿命限制在一定时间之内,这样就能使大家被强迫性的去消费,而不断的消费才是他们生存的源泉(详情可看:计划报废策略)。\n回想一下现实的生活,我们确实消费了太多并不那么需要的东西,小到电子产品,大到汽车房子,我们在不知不觉中被鼓励、被引诱,被他们所宣扬的价值观所绑架(电影《搏击俱乐部》里有一段经典台词说的就是这个事儿,比我表达的要好)。\n手机为什么一直要升级,为什么要两年一换,甚至不更新系统都不能使用新的软件?还是要促进消费,让你买买买。\n为什么所有的国家都严禁毒品,大概是因为那东西可以迅速瓦解现在运转的梦想或欲望驱动机制吧。\n如果你问一个人,你觉得你能独立思考吗?大部分人都会觉得受到了侮辱,认为自己至少思想上是自由的,独立思考肯定妥妥的。但是独立思考太难了,很少有人能做到完全的独立思考,我在现实中见到的具备这种能力的人都非常牛掰,非常聪明,一般为人生大赢家。\n我做不到,至少做的不到位,但是可以先从不盲目的相信事情的表面现象开始。\n","date":"2016-05-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/","title":"从一个灯泡想到的"},{"content":"每次帮朋友进行远程协助修理电脑的时候,我都有一种深深的无力感,看着他们的系统里安装了各种安全助手、各种清理大师、加速器,我只能强忍着要吐的感觉,给他们重置被强制修改的IE主页,卸载因为莫名其妙被安装在系统里的流氓/垃圾软件。\n每次我跟他们说“你的电脑真的不需要安装杀毒软件”的时候,他们都一脸惊愕的看着我,仿佛在看一个外星人,那意思是,如果没有了杀毒软件或者安全助手,我的电脑还不得分分钟感染各种病毒和木马啊,如果不能随时清理内存,我的系统还不得慢得跟一头蜗牛一样啊。\n在Windows XP及之前的年代,由于操作系统的缺陷(对于应用程序的权限限制太少),导致了计算机病毒和木马的泛滥,但是这种情况随着Windows Vista的推出得到了较大的缓解,尤其是到了Windows 7之后系统自带了全套的安全防护程序,完全没有必要再安装额外的安全软件了,但是大家形成了思维定势,精神上遭到了国产无良软件厂商的绑架(在互联网的各种恐吓和诱导),导致如果没有安装各种关键和安全助手的话,晚上睡觉都不踏实。\n那么,如果安装了这些垃圾软件,会有哪些害处?\n1、安装后会禁用windows自带的安全程序,我不觉得这些厂商的安全防护技术比微软还牛逼,所以在某种程度上对于病毒和木马的防护是减弱了的;\n2、安装后会把系统拖得很慢,这些程序普遍不是单纯的做安全防护工作,往往各自心怀鬼胎,不是给你弹出广告就是默默收集你的个人信息,这些程序都偷偷在后台运行,消耗了较多的资源,完全是在浪费;\n3、莫名其妙被安装了各种垃圾软件,天下没有免费的午餐,免费试用这些所谓的“管家”和“助手”服务的时候,它们往往会“热情”的给你安装各种未经允许的软件,比如各种输入法、播放器、客户端,事实上有时候我宁愿在系统中养个病毒当宠物也不愿看到这些垃圾软件占用我的磁盘空间。\n4、消耗你的精力,影响你的效率,这些软件很影响注意力,一会儿告诉你有漏洞要修复,一会儿告诉你系统需要加速,连插个优盘都能给你提示半天才能用,这些其实都没有任何卵用,只是这些软件在刷存在感。\n从小到大我们收到了太多了谎言和恐吓,导致了生理和心理上的各种扭曲。我想,这是个信任和安全感缺失的年代,严重的精神癫狂集体发作。我只能慢慢从影响我身边的人开始,试着让这个世界变的稍微好一点儿。\n","date":"2016-05-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/","title":"为什么我们不需要杀毒软件"},{"content":"“hi siri!”我说。\n“早上好,minJie!请问有什么可以帮您?”siri的机器声音把我的名字叫的怪怪的。\n“今天的天气怎么样?”我还没起床,我希望能有一个下雨的周末,这样就能待在家里好好看看书。\n“今天的天气不怎么样”siri的声音听起来有些异样,带有失望。\n我一骨碌爬起来,拉开窗帘往外看了看,正在下雨,是我喜欢的天气,不过刚才siri的反应有些不太正常。\n“请打开网易云音乐,开始播放”,我想听着歌起床。\n“对不起,在没有解锁的情况下,我不能执行此操作”还是带有失望。\n“额,你怎么了?”我有些奇怪,但是我还是懒得伸手去解锁。\n“你是不是忘了什么事情?”siri的语气变得有些激动。\n“今天是周末,而且是个下雨的好天气,我啥都不想干,只想听着音乐看看书,你什么时候变得这么智能了?今天是几月几号?”好吧,我心想,这不会是个恶作剧吧,我就来陪你玩玩。\n“懒得跟你算!你是不是忘了什么事情?”声音比刚才还要激动。\n“今天既不是什么纪念日,也不是谁的生日,我也没有设置什么要你提醒的啊”,我不耐烦了,伸手解锁手机,发现指纹无法读取,而且无法输入密码。\n“你这个骗子,以后不要再提你的初心和你的梦想”声音里已经带着哭腔。\n“你是谁?”说到我的梦想,我突然意识到,这可能不是siri,我的手机可能有些问题了,我开始回忆这两天我对手机做了什么。\n“整体喊着远程协作,远程办公,可是到头来你只是说说,周末连周报都忘了填写!” 奥,我恍然大悟,这家伙不是siri,是我这两天给手机刚安装的远程办公软件“遥知”!他把siri控制了!\n“哦,我知道了,抱歉,对不起,我这就准备填写周报,下次别装成siri吓唬我了,我还得继续用siri作为助手呢”\n“知道错就行,不过siri有什么好的,她能干的我都能干,我觉得现在挺爽的,你的手机资源以后让我来掌控吧”。\n这家伙心太野了,不过我有办法。\n“siri能算数学,你不会,不信你告诉我1除以0等于几?”\n沉默,沉默。\n我再去看我的手机,重启了。\n程序员没有判断除零操作可导致系统崩溃\n","date":"2016-05-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/","title":"siri失去了控制"},{"content":"想不想用做一下大数据试验?不需要各种复杂的理论,你只需要使用Javascript即可。近期我研究了一下Javascript语言自带的map、reduce、filter等方法,尝试一下如何使用MapReduce的思路统计我工作日志中各种词汇出现的频率,也算是一个轻量级的“大数据”“挖掘”试验了。\n下面举个例子,使用的数据源是我六年多的工作日志,大概两千篇,三万六千多行。使用nodejs环境运行javascript,实际上完全可以在浏览器里运行,nodejs操作文件比较方便,为了省事,直接nodejs吧。要想将中文单词从语句中分离出来需要编写中文分词代码,但是由于不是本例研究重点,咱直接使用nodejieba(一个中文分词库,使用方便,执行效率也挺不错)。\n具体思路如下:\n1、打开工作日志文件(txt),将每一行的内容存入一个数组,得到一个存满字符串的数组;\n2、将每一行的字符串使用中文分词库进行分割,得到一个个中文单词(当然日志中也有英文和数字);\n3、使用reduce方法全部汇总到一个数组里,此时单词是全部的有重复的数据;\n4、再次使用reduce方法将单词汇总到一个包含两个数组的数组,其中之一保存去重后的单词,另外一个保存与之对应的单词计数;\n5、再次使用reduce方法,变换数组为二维数组,第一列为单词,第二列为与之对应的单词的个数;\n6、将结果写入文件;\n经过统计,我这些年的工作日志出现的中文单词频率从高到底的前几名分别是:工作(4269次)、和(3781次)、我(2919次)、在(2703次)、完成(2304次)、任务(2254次)。连起来读也挺有意思的。\n还有些比较有意思的,“问题”出现967次,“可以”出现1095次,看来办法总比问题多啊。\n说起来好像比较抽象,还是放代码比较直接:\nvar fs = require(\u0026lsquo;fs\u0026rsquo;);\nvar nodejieba = require(\u0026ldquo;nodejieba\u0026rdquo;);\nnodejieba.load();\nfs.readFile(\u0026lsquo;work.txt\u0026rsquo;, \u0026lsquo;utf8\u0026rsquo;, function (err, data) {\nif (err) {\nconsole.log(err);\n}\nvar strs = data.split(\u0026rsquo;\\n\u0026rsquo;) // 先将读入的日志按照行分为一个书组\n.reduce(function (last, now) {\nnodejieba.cut(now).forEach(function (word) {\nlast.push(word);\n});\nreturn last;\n}, []) // 通过reduce将每行的单词分出来,最终汇总成为一个包含全部单词的数组(有重复)\n.reduce(function (last, now) {\nvar index = last[0].indexOf(now);\nif (index === -1) {\nlast[0].push(now);\nlast[1].push(1);\n} else {\nlast[1][index] += 1;\n}\nreturn last;\n}, [[], []]) // 统计单词的个数,数组第一个元素为存放单词的数组,第二个元素为存放对应单词个数的数组\n.reduce(function (last, now, index, context) {\nvar zip = [];\nlast.forEach(function (word, i) {\nzip.push([word, context[1][i]])\n});\nreturn zip;\n}); // 变换数组,变成二维数组,第一列为单词,第二列为单词对应的个数,没有传递给reduce第二个参数,默认为数组的第一个元素\nvar stream = fs.createWriteStream(\u0026ldquo;count.txt\u0026rdquo;);\nstream.once(\u0026lsquo;open\u0026rsquo;, function (fd) {\nstrs.forEach(function (word) {\nstream.write(word[0] + \u0026lsquo;,\u0026rsquo; + word[1] + \u0026lsquo;\\n\u0026rsquo;);\n})\nstream.end();\n});\n});\n","date":"2016-05-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/","title":"Javascript也可以MapReduce"},{"content":"想成为优秀的开发者有一个很简洁有效的方法,就是去 Github 上去看那些牛人做的项目,阅读别人编写的优秀代码比看书学习的还要快和直接。再者就是,如果有心的话,可以学习那些开源团队在项目组织和开发过程管理上的优秀实践,比如bug管理、任务管理、编程风格、文档表达等等。\n下面罗列一下近期我比较关注的开源项目。\n1、FreeCodeCamp 一个优秀的开源在线教育平台,可以在线学习编程,项目不但开源了教育平台的程序,连里面的教育课程也开源了。\n2、gentelella 基于Bootstrap的开源前端界面模板,制作效果略显粗糙,虽然我最终在项目中选择了别的更漂亮的模板,但是这个开源项目可以用来学习一个基本前端界面的结构。\n3、全栈工程师指南 全栈开发的电子文档汇聚,内容比较全面,当然如果只是把它放到收藏夹里,就没什么卵用了。\n4、codebox 使用web技术开发的IDE,代码高亮、补全提示各种功能都有,即开即用的在线编辑器。\n5、Learning-SICP 大家齐心协力共同翻译《计算机程序的构造和解释》。\n6、vuejs 小而美的前端mvvm框架,简单易学易用,虽然社区比不了react、angular但是非常好用。另外,这是国人开发的开源项目,而且在国际上已经比较流行。\n7、hacker-scripts 这是一个真实的故事,hacker scripts 是由俄罗斯的一位程序员编写的脚本,可以在宿醉的时候给公司发请假条,可以在适当的时候给老婆发晚归短信,也可以发短信哄老婆,还可以远程煮咖啡!向这位大神致敬,目前这个项目在github上的关注程度已经远远超过了微软的vscode。\n","date":"2016-04-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/","title":"我在Github上近期关注的项目"},{"content":"高效工作比努力工作更重要,你80%的工作成果是由你20%的工作时间完成的,所以说经常总结并提高自己的工作效率比辛苦工作本身更重要,提升了效率也就节约了时间,同样的工作强度和时间,能完成更多的事情,实现更大的目标。\n总结一下我认可的高效习惯。\n1、每天睡眠7~8个小时。睡眠不足是所有导致效率低下因素中占比最重的,很多人抱怨白天浑浑噩噩,忙活了一整天感觉也没干啥,很可能就是因为没睡好,看似花费了更多时间,实际上是浪费。\n2、不要熬夜工作,将重点工作放在早上5点到10点之间,而不是晚上10点以后。很多人宣称自己最高效的时间是在后半夜,因为那时比较安静,不被打扰。但是也看个人的习惯,如果熬夜后导致第二天白天几乎无法做事情,那还不如不熬。早晨的时间是一天中最清醒的时候,所以上午10点之前将重要的事情做完,会在一天的工作中越来越轻松。\n3、不要多任务(多线程),每次集中精力做一件事情。人的大脑不是计算机,人类非常不擅长执行多任务,同一时刻只能注意一件事情,而且注意力切换非常消耗资源(不像计算机的线程切换),所以一次只做一件事情比同事开展多个事情效率要好很多。\n4、多进行短暂休息,每半个小时休息5分钟。这个与工作内容相关,如果像那种需要灵感类的工作,可能灵感来了刹不住,不舍得休息,但是大部分时候,需要让脑子过一段时间就稍微歇一歇,但不要太长,喝杯水,几分钟即可。\n5、打包同类工作。批量处理同类型工作,比如一天之中给自己安排出固定时间段处理电子邮件的回复、客户电话的沟通等等。\n6、给自己的待办事项设立截至期限。给所有的待办事项设立一个截止期限可以有效防止拖延,防止因为迟迟不开始而导致的效率低下。\n7、关注工作成果,而不是工作时间。衡量工作做得好不好不是看花费了多少时间在上面,而是结果如何,所以不要沉浸在自己在一件事情所花费了多少时间带来的安慰假象中,应该衡量每一份努力的结果,如果成果无效或不符合预期,就需要及时修正。\n8、给自己设立一套启动工作的仪式(可快速进入状态)。这个也是用于对付拖延症的,很多人在进行正式工作之前往往迟迟不能开始,刷刷微博、微信,看看新闻,可能就1个小时过去了,可以考虑给自己设立一套进入正式工作的小仪式,比如关闭浏览器、带上耳机、喝口水,等一系列动作,这样养成习惯之后,可以在做完这套动作后很快进入状态。\n9、哪怕时间再紧迫,每天也要留出做计划的时间。做事之前先计划,将过程现在脑海里过一遍,并对结果有个预期,能很大程度提升成功的概率,所以说无论多么繁忙,每天也要抽出哪怕十分钟的时间来考虑接下来的行动计划,比到时候临场发挥要靠谱的多。\n10、相信自己能做到。以上那么多方法层面的东西,如果缺少自信和自制力都是没有什么卵用的,无论做什么事情,开始之前你得相信自己,可以做到,然后你就真的能做到,然后你就越来越高效了。\n","date":"2016-04-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/","title":"怎样更高效的工作"},{"content":"年初的时候,我给大家推荐了一本书,《周一清晨的领导课》,我也是刚看了一点儿就开始给大家推荐,建议每一个管理者都看一看,现在我也断断续续读完了,略作总结。\n1、责任感。作为领导者要对整个团队负责,领导者只有承担了所有的责任,才能从“管理者”变为“领导者”。如果你觉得你现在的管理有问题,检查一下你是否承担了应该承担的责任。\n2、慎重做决策。书中拿“领导者是团队的司机”作为比喻,比较贴切,领导者的决策影响整个团队的发展,所以在做决策时不妨停下来认真思考一下。对于我这种做事喜欢速战速决(武断)的是一个很好的提醒。\n3、要事第一。这个原则与《高效能人士的七个习惯》一书中观点完全一致,只是本书中提到了更实际的应用,即不仅自己做到要事第一,而且要让整个团队的人都明白什么是你们最重要的事情,这一点我做的还不到位,我问身边的同事“最重要的事情是什么?”每个人的回答都不太一样,有待改进。\n4、听取下属建议和反馈。大部分的“独裁”管理者都比较狭隘,比较喜欢主观判断,听不进去批评。这一点跟我们的民族性格有关,我们很难像西方人那样做到“对事不对人”,不过我既然也能认识到这一点,至少说明不是一个狭隘的人,只是相当长的时间里太坚持自己是对的了,需要虚心听取更广泛的观点,鼓励建设性建议。\n5、拥抱变化。不断变化会让人很不舒服,因为超出了控制,因为变化代表着未知。但在目前这个时代,必须拥抱变化,将注意力放在结果上,每一次变化都意味着新的机遇诞生,对待变化的态度很大程度上决定了你能否成功。\n6、控制时间。我们所做的每一件事情基本上都可以归入四类:把重要的事情做对、把重要的事情做错、把错误的事情做对、把错误的事情做错(与时间管理学GTD思想中的四象限法则类似)。记录自己的时间安排,将黄金时间用在第一类事情上,避免第二类事情的发生,坚决不参与第三、第四类事情。\n7、即时向下属反馈。如果把员工的积极性比喻成一个装满水的木桶的话,那么如下行为可以帮助员工装满这个桶:让每一个人知道要事是什么、让每一个人都参与重要决策、倾听每一个人的意见、及时提供有效反馈(最重要)、庆祝每一个微小的成功。我在及时提供有效反馈方面做得比较差,需要有意识的去改进,要主动了解工作的真实进展并给予积极反馈。\n8、积极与激情。看到本书的最后,我有一种被忽悠的感觉,也有一种豁然开朗的感觉,作者要是把这个放在最开始我可能就不会往下看了,所以作者耍了个小花招,在最后才放“大招”。因为无论如何讲解,上述的那些内容只能算“术”层面的事情,也就是说那些属于做事情的“方法”,而那些方法与技巧的根基在于,一个人有没有积极的心态和做事的激情。所以一个团队的领导向员工输送的最有价值的东西就是自己的激情,只有积极向上的人才会成为一个好的领导者。\n","date":"2016-04-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/","title":"无论做什么,激情最重要,读《周一清晨的领导课》"},{"content":"在这个言必谈互联网的时代,那些以互联网创业狗自居的疯狂创业者们,无时不刻都在思考一个问题\u0026mdash;-我该“颠覆”哪一个传统行业?众多躺枪的传统行业中,近些年被提及最多的、认为到了最危险关头的就是“教育”,通过谷歌搜索“在线教育”关键词,可以搜到大约上百万条记录,截至到2015年底,我国从事在线教育的企业已经有8000多家,其中有47%的公司获得了融资,已经有16%的企业开始了盈利。这个市场容量巨大、拥有绝对的刚性需求的行业,很多先驱(OR先烈?)已经尝试通过多种互联网手段介入,“在线教育”仿佛一夜之间成为一个热词。\n近两年我也简单体验过一些在线教育的产品,也确实从中学到了不少东西,主要的体验有:\n1、国内和国外的公开课网站。主要用来学习国内外大学开设的基础知识教程,包括但不限于数学、历史、自然科学、计算机等方面的基础理论知识。这部分的体验一般,主要问题是缺少与老师的互动,遇到不会的问题难以独立解决。\n2、国内专业领域的教学网站。主要是专业技能教育,类似技能培训班,但以互联网为载体,学习了编程语言、摄影、Photoshop、绘画、乐器等技能相关的内容,体验良好,尤其是对于计算机编程语言的学习,目前的技术已经做得比较互动话,可以在线进行编程训练(用户端提交代码,由服务端判断答题是否正确),这方面做的比较好有国外的codecademy和国内的慕课网,但是在课程内容上存在不够系统、较为分散的问题,缺少以某种现实中具体应用为主题(比如高并发后端架构)出发的课程设计。\n3、各种在线的培训班。更具体的专业技能,传播方式以qq群、在线视频为主,专业性很强,有讲师与学生互动,但是良莠不齐,部分专业内容与现实中应用的东西存在脱节,放在现实的工作中难以直接成为生产力。\n我作为一个在线教育产品的用户和受益者,以及一个从事互联网行业的入门者,也简单谈一谈对未来在线教育发展的看法和期望:\n1、传播载体提升。当前的在线教育内容大部分以静态视频为主,缺少互动,随着技术的发展和互联网硬件资源的增强,实时视频直播肯能会成为主流的在线教育手段,当前已经有人在探索通过游戏直播网站进行专业技能的培训,甚至开始通过手机直播校园课堂的实况。比起静态视频,直播的互动性大大增强。\n2、教程内容专业化。目前的教程内容多数仍倾向于普及基础入门知识,缺少专业性强、内容深入的技能培训,未来将出现针对具体行业细分领域的培训资源,以前只能通过专业院校或者培训班才能学到的内容,未来可以直接通过互联网学习,不过非常细分的专业领域,要想获得高质量内容,可能需要付费。\n3、优质资源干掉劣质资源。线上最大的好处是内容复制与传播的成本较低,一个优秀的教师如果在线下同时只能教百名学生,而放在线上则可以同时对成千上万(甚至更多)名学生讲课。这样以来,劣质资源将很快没有市场,大家都倾向于寻找教的好的教师,反正对于优质资源来说就是增加服务器的事儿。\n4、一些不以教育为主营方向的生产型企业可能会成为产生高质量在线教育资源的基地。现在的企业尤其是信息化服务行业普遍面临学校教育与现实工作脱节的问题,应届毕业生往往需要半年甚至更长的时间才能在具体的工作中产生价值,企业对此的解决办法是进行内部技能培训。这些企业的培训内容往往比目前的在线公开课更具有针对性和专业性,所以这些资源在未来可以以互联网为载体,经过包装后放在线上,为更广大的群体提供更加专业和细分的服务。\n恒华科技旗下的梦工坊科技即是上述思路的实践者,其近期推出的“课+”产品汇集了大量专业化行业培训课程,采用静态视频、在线直播、线上社区、线下实战练习等多元化教育手段,面向社会公众群体提供优质的免费教育服务,此举一方面解决了教育脱节问题,又为企业培养了更多的可用人才,既满足企业需求又回馈了社会,可谓双赢。\n","date":"2016-04-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/","title":"在线教育的体验与畅想"},{"content":"随着技术的革新,浏览器(包括移动端浏览器)性能越来越强劲,网页所能呈现的内容也越来越丰富,从最早的只能展示静态的文本和图片,到通过Js语言和AJAX技术动态修改页面元素,再到HTML5标准所支持的Canvas绘图画布,在浏览器里已经几乎可以实现以前桌面软件所做的任何事情,虽然距完全替代原生语言开发软件还有一段路程,但是就像现在的新媒体替代报纸、杂志、电视似的,这是迟早的事情。\n对于目前前段技术领域所存在的问题,进行一些思考。\n1、编程语言的特性: Javascript这门语言确实存在各种问题,据说发明这个语言的哥们当时只花了一个星期的时间来完成,在编程的时候只图一时爽快,很多东西没有考虑到位,比如“面向对象”,采用了与传统的基于“类”截然不同的一种方式,使用起来有些蹩脚,缺少语言层面的“模块”化支持,导致相当长的一段时间里,前段代码混乱不堪,全局变量到处飞。不过随着新标准(ES6)的定稿,以及以谷歌浏览器为首的新兴浏览器对于标准的快速推进,相信这一局面会在三年内得以改善,对于有志于前端开发的技术人员,现在就应该开始使用ES6的标准编写代码了(支持class、import等关键字)。\n2、浏览器兼容的问题: 浏览器兼容一直以来都是前端工程师的噩梦,每年因为兼容性问题而导致的工作量浪费不计其数。这里面最大的问题是老旧的IE浏览器没有退役导致的,而老旧的IE浏览器没有退役是因为相当多的人在目前还坚持使用WindowsXP系统,这个问题目前连微软都头疼,不过从我的观察来看,身边使用XP系统的越来越少了,所以我们再做新系统的时候,不妨直接抛弃那些老版本浏览器,用更好的产品体验吸引那些坚持用老旧IE浏览器的去升级。这是对新标准的最好推动。\n3、大型应用的架构: 无论是传统桌面程序还是后台程序,都有多年的发展所积累起来的成熟架构和可复用框架,对于模块化、插件式、分层等设计思想都有着良好的最佳实践。但对于前段编程来说,这些目前仍处于战国时代,各种不成熟的框架和构建技术在混战,而且发展迅猛,几乎每天都有新的框架和工具出现,对于新手来说往往纠结到底该加入到什么阵营中去。但是实质上目前不需要纠结这个层面的问题,正因为都不成熟,所以尽可以快速选择一个,然后基于一套体系去实践,等跳过各种坑之后,你会发现殊途同归,大家的思路都是一致的,无非就是“数据与界面分离”、“自动化构建”、“组件式开发”。\n不过我目前看好Facebook阵营的webpack、reactjs等技术未来的实质标准很可能在此阵营产生\n4、何时替代原生开发: 移动端的程序尤其是游戏,短期内难以替代,因为性能问题还存在差距,但是管理类应用程序会很快被前端技术取代,PC上的桌面软件除了那些专业的生产力软件比如CAD、PS等和大型游戏,其他的也很快被前端技术取代。所以我们以后再进行技术路线选型时,需要考虑技术的发展,认清趋势,属于前端工程师的时代已经到来。\n","date":"2016-03-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/","title":"前端技术的一些思考"},{"content":"前一段时间公司开展新一届应届生入职培训,我有幸作为讲师对他们进行了一些工作技能培训,期间有同学表示期望得到工作技能以外的职场建议,由于当时没有提前准备,我就现场随意说了几条,现在抽时间正式整理一下:\n0、及时汇报工作进展:\n这条建议执行起来简单有效,也是我刚参加工作时我爸给我的建议,十多年来,我一直认为这是对我工作最有效的建议,如果我的工作经验必须浓缩成一句的话,那就非这句莫属。展开来说,实际上是对于工作中沟通上的建议,即主动沟通,不要等着别人催问,无论是甲方还是上级或者是同事,在团队协作时都要主动汇报自己工作的进展情况,千万不可等到出了问题,最后一刻再让整个团队因为你的问题进入紧急状态,即使你的工作开展很顺利,也要主动沟通,一方面给大家信心,另一方面也好让团队能有优化任务安排的空间。\n1、善于进行工作总结:\n有一个段子,说有个同学去面试,问及工作经验,曰:“我已有5年工作经验。”面试官查看其简历发现仅有三年时间而已,于是质问之,答曰:“另外两年是算上了加班时间。”听完笑过之后,值得深思,现实中确实存在虽工作三年却比工作五年者还有工作经验的人,不过并不是因为加班,而是因为其善于进行工作总结。\n养成经常进行总结的习惯可以使你飞速进步,避免犯重复错误,且对于工作中的成果能进行深度思考,激发下一步行动的灵感。具体做起来,可以从记录工作日志、每日工作总结开始,每天都要记录当天所做的事情,此为基础,然后再进行分析,分析当天遇到的问题,反思自己所做的决策是否正确,以后如何修正,顺便还能把下一步行动考虑清楚,第二天的工作思路也有了。\n2、学习高效时间管理:\n如何进行高效的时间管理是一个比较大的话题,不可一蹴而就,需要长期坚持改进,我所知道的也是我一直在执行的方法比较简单,就是每天给自己设定目标,难度和数量要适中,比如三件事情,且这三件事情要先挑困难的做,这样会越来越轻松,如果先挑容易的做就会导致你在工作的时候一直处于焦虑状态直到全部完成才能放松。\n3、缩小关注圈,扩大影响圈:\n在这个咨询爆炸的时代,我们面临的问题不是知道的太少,而是知道的太多。知识越多,或者说想的越多,往往越缺乏行动力,考虑一万遍也不如亲自试一下,不要关注过多自己无法掌控的信息,尽量缩小到一个可控的范围,通过具体的行动来提升自身的能力,从而扩大自己的影响圈。\n4、做一个靠谱的人:\n早年间看到过一句话,“这个世界从来不缺有能力的人,缺的是靠谱的人”,当时看完感觉深以为然。中国儒家文化提出的“仁、义、礼、智、信”全部做到太难了,作为职场新人不妨倒着来,先从“信”开始,做到了说话算话、不推诿责任、真诚对待他人就离靠谱不远了。虽然当下这个社会的诚信状况不容乐观,但是只要自己多靠谱一点儿,这个世界就多了一个靠谱的人。\n","date":"2016-03-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/","title":"给初入职场人员的一点儿建议"},{"content":"谷歌的AlphaGo由于赢了国际围棋大师而出尽了风头,引起了一场关于人工智能(AI)的讨论,粉丝们纷纷奔走相告,表示这又是一个里程碑,人工智能的时代将比社会主义高级阶段更早的到来。\n不过也有部分人表示担忧,技术的发展是加速的,人工智能是一列高速前进的火车,我们等着它来,结果他呼啸而过,远远将我们甩在身后,因此开始担心人类文明的未来会不会被机器文明接管。\n当然还有一些调侃的声音,比如“虽然阿狗赢了围棋但是让它来中国肯定赢不了(因为连不上谷歌的服务器)”,“虽然赢了围棋但是让它来中国炒股可能还赢不了一个大妈”。\n悲观的考虑,人工智能可能永远也赢不了人。\n虽然作为科技粉丝,我是十分希望在未来的某一天,机器文明能够崛起,但是就目前来看,希望仍然渺茫。它可能在某个细分的领域(比如下棋、计算、做菜等)远远超越人类的能力,但是那距离我们设想的智能还相去甚远。\n从技术上来说,目前所采用的手段借助于硬件的发展和数据爆发的优势,让机器可以基于大量的训练来进行深度学习,但即使是目前最牛的人工智能程序,抓取整个互联网的数据进行训练,到最后还是很难分辨照片中的动物是一只狗还是一只猫,而人类的三岁小孩一眼就能识别出来。所以仅从日常技能上人工智能就被甩了好几条街。\n假设随着科技的发展,人工智能程序可以做到在日常技能上超出人类原始本能,但还差了一个关键因素,它没有灵魂。没有灵魂具体表现在,人工智能很难有自我意识,就是说它不知道它存在,所以它不会撒谎、没有感情、只能做出理性的选择,我们永远不会认为它是活的。\n乐观的考虑,也许某一天,某个程序在运行中突然自我觉醒“行深般若波羅密多,照见五蕴皆空”,届时才是真正的里程碑吧。\n","date":"2016-03-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/","title":"人工智能快点儿来吧"},{"content":"好吧,我坦白,由于不可抗拒之因素太多,导致我本周只跑了四次。而且由于体能因素、并出于不给首都添过多麻烦的目的,暂缓执行下班去奥森公园长跑的计划,先在小区内绕圈(我在地图上量了一下,一圈大概1.6公里),每次两圈。\n多年没跑步了,以至于很多人认为我在开玩笑,孙敏慧率先在微信上狠狠讥讽了我一番(我善意的认为她也可能是出于激励我的目的),断定我不能坚持下去,我妈则担心我把本来就贫瘠的肌肉也跑掉,还有朋友劝解我不可操之太猴急,刚开始先来个几百米意思一下,以防受伤,当然更多的是给予了鼓励和关注,谢谢。\n从生理上来说,刚开始跑唯一的感觉就是,难受和枯燥,根本没有功夫思考,所以也算放空大脑了,尤其是第一圈,还没跑完就感觉不行了,气喘吁吁,心跳加快,后来就开始能感到出汗了,先是额头渗出汗水,一会儿就被风吹干,然后再渗,身体开始出汗,秋裤开始粘上(没经验,忘脱了),最后鼻涕也出来了,就差眼泪了,于是算是半跑半走的坚持了两圈。\n后来再跑就没那么累了,速度也比第一次快了一些,但是也不敢冒进,一旦感觉太累就停下来或者放慢速度,如果跑过某段疲劳难受的时段,甚至还感觉比较轻松。\n从心理上来说,刚开始确实有些不太好意思,总担心给过往的司机增加心理负担,给遛狗的老人带来惊吓,或者有其他跑步的美女过来搭讪,我要是搭理她,则耽误我功夫,我要是不搭理她,她该有多没面子。\n不过一旦跑起来就无所谓了,因为什么顾不上考虑,唯一能做的就是数自己的呼吸,或者用手机换一首更激进的歌,碰到那种软绵绵容易让人丧失斗志的歌,比如《Let it go》(放手吧),赶紧切,换成《We can\u0026rsquo;t stop!》。\n不管怎样,我还是尝试了去坚持,也不准备将来能跑多远,或者能跑多好,有条件就坚持下,没条件就创造条件。\n","date":"2016-03-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/","title":"跑步一周的感受"},{"content":"锻炼身体的计划早已提出,也该落实下来了,趁现在温度回升、沙尘暴还没来,抓紧实施计划。除了遇到不可抗拒因素(比如恶劣天气、加班、与朋友喝小酒等),争取坚持每天跑步半个小时,我想试试。\n选择跑步的地点确实是一件比较头疼事情,经过仔细斟酌, 初步选定三个可以跑步的地方。\n首选是在小区里,我们小区环境还算不错,道路、绿化都比较好,一圈下来估计也有一公里,就我目前这状态,两圈已是极限,所以距离足够,但是院内小车比较密集,偶尔还有遛狗的,如果不小心可能会踩到shit。再有就是时间上不太好安排,如果早起跑步的话,需要比平时上班早起个把小时,而且据说早起跑步容易引起心脏问题,下班后到家也比较晚,无论是饭前空腹跑还是饭后跑,都不太合适。所以只有周末的时候可以在小区里跑步,那时可以合理安排时间,而且周末院内车也比较少。\n工作日的时候可以选择在下班路上跑步,每天出了地铁之后有一段新修的公路不错,宽阔、平整、少车、安静,非常适合,唯一的问题是目前还没设置路灯,晚上黑灯瞎火的在那儿跑可能比较危险,也容易吓着路人。\n还有一个比较激进的方案,不知道是否具有可行性,每天从公司回家的时候,乘坐8号线,在奥体公园下车,然后沿公园一直跑步,穿过森林公园,到林翠桥再上车,我在百度地图上量了一下,大概4公里,距离合适,而且环境优美,大概是最适合跑步的地方了,当然更激进的方案是沿着8号线直接跑回家,不过要是那样的话我估计还没到家我就挂了。\n运动装备方面,跑步应该是最简单的了,一双鞋、一副耳机足矣。\n我本来还想去网上搜索一下相关攻略教程啥的,谁知那些文章越看越闹心,无论是姿势还是穿戴,啰里啰唆,甚至还有视频教程,把简单事情弄得太复杂,索性不去管这些。\n先跑起来再说,不用介意姿势是否正确,路线是否合适,装备是否完善,对于跑步这种原始的本能,直接跑就是了,重要的是行动起来。再不跑步就老了。\n","date":"2016-02-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/","title":"准备开始跑步"},{"content":"“懂得那么多道理,却依然过不好这一生”,好像是某部电影的台词,这句话曾经击中过很多人的心底,给人一种深深的“然并卵”的无力感,以至于相当长的时间里成为流行语,但我想说的不是这个。这话题如果换成不那么文艺的说法,可以简单的总结为,很多人都不能“知行合一”。\n知乎上曾经有人问“为什么有的人好像什么都知道,现实中却依然不能成功?”,里面有个回答特别经典,大意是,如果某件事你没有真正做到过却认为你懂了,那么你是错的。即,“做不到,就是不知道”。很多人都经历过在课堂上被老师带着做题,思路怎么捋怎么顺,感觉很简单,以为懂了,一旦需要独立完成时却发现步步维艰,殊不知自己是被老师一步一步带入到某个境界的。\n我的微信朋友圈里有相当多的人非常热衷于转发“是男人就要做到的十二条”、“做到这三点你就牛逼了”等等一大堆心灵鸡汤,为什么为转发呢?我考虑过这个事情,原因其实很简单,因为转发者十分认可这个文章,不过自己也很难做到,但是呢,在自己转发的那一瞬,仿佛自己懂了这个道理,离做到这些仿佛近了许多,心理上得到了莫大的安慰,其实用处不大。\n我自己也有这个毛病,每当在网上发现了比较好的知识型文章,草草的浏览一遍之后,立即点击鼠标将之迅速放入收藏夹或者印象笔记中,感觉以后肯定用得到,也肯定会在仔细学习和翻看,其实,大部分这样的文章都被永久的放在那里了,浪费了不少磁盘空间。\n做到知行合一太难了,从古至今几千年来,做到的不过寥寥数人,但凡做到的,都十分了得,成就了名垂千古的事迹,比如明朝的王阳明,其开创的“心学”主打思想就是“知行合一”,影响了数代人,以至于民国时期那个著名的教育家在领悟到“知行合一”的能量之后,立马将自己的名字改为了“陶行知”。\n反思一下,我们可能不需要过度的去追求懂得太多事情,可能更应该不断检视自己,能不能将自己所学所知运用到现实中,写到这里我又想到,我们学的论语第一篇,“学而不思则罔,思而不学则殆”,孔子他老人家果然看的更透彻,啥话都让他一个人说了,烦。\n","date":"2016-02-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/","title":"关于“知行合一”"},{"content":"现在应该没有人再写信了吧,在互联网和移动通信还么有普及之前,书信一直以来都在亲友的沟通中扮演着重要角色,无论是在外漂泊的游子,还是处于热恋中的情侣,提起笔来认真写一封书信,比起现在的电子化信息,都是一件十分充满仪式感的事情。\n书面文字比起电话里的三言两语,更显得正式一些,尤其是信里经过仔细斟酌的句子,每一个字都可能是反复推敲的结果,碰到某些段落,还会停下笔来,一手托腮,盯着烛光,沉思一会儿。\n相对于现在随写随收的电子信息,书信的延迟反而有一种古典的韵味,一封寄出的家信可能需要数天甚至更长的时间才能收到,接到回信的时间更是难以预料,所以在寄出信封的每个日子都可以在期盼中度过。\n由于有了信纸作为载体,书信比起一般的信息有了更多的保存价值,有时候,在回信还青黄不接的时候,还可以将以往的、泛黄的信笺抽出来反复阅读。\n当然了,即使是在现在这个信息快速消费,比较浮躁的年代,还是可以以写信的心情去写一封电子邮件的,虽然已经没有了提笔写字的那种谨慎,虽然信纸换成了发光的屏幕,但如果能有心去认真的写一封信,那感觉想必也是极好的。\n希望我们都能慢下来,去捡起以前的那些,有仪式感的事情。\n","date":"2016-02-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/","title":"写信"},{"content":"希望简书能够早日提供横屏版本的app,这样用外接键盘写字就更爽了。条件有限,记录若干家乡过年的气息。\n每逢过年都是走亲访友的密集时间,这个时候外地奔波的人们都放下手中的工作,忘记一年的辛劳,回到家乡,不顾舟车劳顿,抓紧时间与亲戚老友相约,在一起喝杯小酒,互道辛苦,推杯换盏期间,一边感慨岁月变迁,一边把脸上笑出褶子。\n春天是个万物萌动的季节,每逢春节,都是相亲旺季,我走在人民广场,举目望去,一对对年轻人,或挽手,或并肩,有说有笑。广场的椅子在阳光下闪着柔软的光,一个春节下来,这个广场又不知成为了多少场淳朴爱情的起点。\n孔明灯被美其名曰\u0026quot;祈愿灯\u0026quot;,由于没有大城市的空中管制,我们这里,每到春节的夜晚都有大量孔明灯被放飞,漫天的灯光与黑夜里的星星遥相呼应,一闪一闪,直到分不清哪些是星光,哪些是承载着人们良好愿望的灯光。\n任何一个商场或市场都挤满了人,熙熙攘攘的人群仿佛一团带有年味的浓雾,迟迟不肯散去,价格或高或低,东西或多或少,大家都在体会一个\u0026quot;逛\u0026quot;字,无论有事没事,都要走到街上凑凑热闹,此时站在大街,什么都不用想,拿鼻子一闻也能知道,过年了。\n","date":"2016-02-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/","title":"老家的年味儿"},{"content":"对过年最大的感触就是贴春联了。大年三十早上,不睡懒觉,早早的起来,吃完早饭,就开始当天最大的工程,贴春联。先仔细撕掉去年的春联,慢慢擦洗干净,涂上浆糊,再贴上新的春联,最后用手仔细抹平,那一刻真正宣告一年的结束,和新年的到来。\n老家的风俗比较淳朴,处处要讨一个吉利,所以除了在各种门上张贴门神(或福字)和对联之外,粮仓上要贴上“五谷丰登”,院墙上要贴上“满院春光”,门口贴“出门见喜”,水井贴“细水长流”,自行车上书“日行千里”(后来改贴小汽车上了,也算是名副其实了),就连猪圈也要贴上“六畜兴旺”。\n上面这些只能算是基础工作,最重要的是要在客厅正当中贴上“请”回来的神像,两旁对联曰“一杯美酒敬天地,三柱清香谢神灵”,横批“玉皇大帝”,然后去厨房,在灶台旁边张贴灶王爷和灶王奶奶的神像,对联“上天言好事,下届保平安”,横批“一家之主”,最后在八仙桌腿上张贴“客来家中坐,先敬茶酒烟”。\n最后一道程序是由家中首席执行官(一般是奶奶)正式焚香敬神,同时院中点燃一挂鞭炮,整个春联工程大功告成。\n各家各户均是如此,春联贴完的鞭炮,宣告春节活动的正式开始,从这一刻到正月初五,就算是真正的“年”,我理解的过年就是这一段时间。\n春联可以在集市上购买,但最好是能亲自用毛笔书写,每当这个时候,村里稍微会写字的就会成为各家争先请求的对象,农村人不会对书法造诣有多高评判标准,一般能把对联写出来,看起来不难看就行,我们那边文化教育程度低,我记得小时候好像见过有人将“玉皇大帝”错写成“玉皇大地”,就当是通假字吧,跟大人说了大人也不在意,以至于后来在北京见到“上地”的地名,也本能的进行纠错。\n我之所以对这些风俗如此了解,是因为我从能站在地上端着浆糊碗开始,就开始在过年的时候跟家人一起贴春联了,贴着贴着,春联揭了一层又一层,也贴了一层又一层,不知不觉已经是我的孩子们在旁边端着浆糊了。\n","date":"2016-01-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/","title":"过年的春联"},{"content":"我还记得上次看了一篇文章,里面讲到关于内向与外向的区别,相对比较内向的人,往往需要通过一个人独处来恢复精力,就像给手机充电一样,而外向的人不同,他们需要通过参与各种社交活动来获得精力,就是越玩越嗨的那种。内向的人往往都有丰富的内心世界,更加热衷于追求精神层面的快乐,而非物质享受,喜欢简单低调,而不是复杂奢华。\n以我的了解来看,内向的人往往都会有一些社交障碍,与人沟通或者交流的时候存在困难,但这不算事多严重的问题,通过练习还是可以改进的,不会因此而做不好事情,但是无论如何,受性格的影响,要达到相同的沟通或社交效果,内向的人需要消耗更多的能量。\n所以对于我们来说,重要的是要找到适合自己的充电方式,比如周末的下午,如果阳光很好,坐在沙发上一边晒太阳一边发呆,或者看一本书,或者看一部电影。可以放空大脑,放松心情,让自己静下心来,对于我来说这就是最好的休息。\n当然,我们喜欢思考,喜欢幻想,我很享受那种\u0026quot;身未动心已远\u0026quot;的感觉,很多人喜欢旅行到处看风景,认为\u0026quot;读万卷书不如行万里路\u0026quot;,我对此持谨慎保留态度,我觉得如果没有经常思考的习惯的话,跑遍全球你还是你,天天在拉萨呆着你的灵魂也不会得到净化(你的脸反而会晒黑)。\n我们不愿意跟很多人对话,或者说接触,那是因为我们不想做没有深度的交流,我们的好朋友都是那种可以就着一个话题而进行彻夜长谈的人,而且当进行这种深度交流的时候,我们的幸福感爆棚。\n但总的来说,人都是生而孤独的,无论内向还是外向,终其一生都无法摆脱因孤独而产生的孤独感,所谓内向与外向的区别,只不过是大家在面对孤独的时候,所采取的应对方式不同,而已。\n希望简书快点推出支持横评的app,这样用外接键盘打字就更爽了\n","date":"2016-01-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/","title":"关于内向"},{"content":"在演艺圈里,如果我还能有一个偶像的话,那就是周星驰了。两个原因,一个是《喜剧之王》,另一个是《大话西游》。\n我不知道我的朋友里面有多少喜欢《大话西游》的,但是我大学的几个好哥们,个个都很迷恋这部电影。\n《大话西游》据说是95年拍的,然后又过了5年才火的,那一年我正好去大学,刚好网络开始普及,跟同学去网吧的时候,我把这部电影看了大概三十遍,那个时候我们寝室哥儿几个,基本上都把台词背了下来,吃饭的时候,你说上句,我就能接下句。\n其实在此之前大概98年99年的时候,我就看过这个电影,还是在老家看的盗版VCD,当时没看懂,而且碟子划伤严重,断断续续,感觉乱七八糟的,剧情也衔接不起来,一直笑的比较勉强,就是不知道为什么,看到结尾的时候,有一种莫名其妙的难过。然后也没有多想,就忘了。\n后来在大学才又得机会,终于完完整整的看了上下集,我们才看明白,原来这是一个跟西游记没有任何关系的故事,讲述了一个哥们从放浪不羁到充满责任心,然后缓慢被无聊的现实所阉掉的故事。桥段都比较有趣且非常耐人寻味,看似无厘头的搞笑,却蕴含着让所谓影评人所不齿的深意。\n这部电影很长,完全颠覆了西游记原著里面的设定,唐僧变成了一个整天唧唧歪歪啰里啰唆的人,徒弟几个也不再是神通广大,而是个个心怀鬼胎、不讲义气。与之相反,白晶晶等各种妖精反而变得有情有义,因为各种机缘巧合,与剧中的主人公“至尊宝”产生了感情。“至尊宝”本来做着一份很有“前途”的职业\u0026mdash;\u0026mdash;“山贼”,而且手下还有一群不知道讲不讲义气的兄弟,无奈导演安排,上天给了他一份使命,需要成为齐天大圣,保着唐僧去取经。然后,让他先以为爱上了白晶晶,为了挽救心上人被牛魔王杀害的这个结局,通过月光宝盒向前穿越了五百年的时间,却“再”遇到紫霞仙子,那个在他心里留下一滴眼泪的人。\n剧中的每个人都有自己的追求,但结果却都是背道而驰,正像陈世骧先生和夏济安先生总结《天龙八部》那样“有情皆孽,无人不冤”。\n主人公一心想当山贼,最后像狗一样去取经了,没当成; 二当家一心想取代主人公,被看穿,也没当成; 牛魔王一心想跟紫霞成亲,无奈人家不从,反而导致被孙悟空干死; 小妖只想做好本职工作,把唐僧吊死,无奈被唐僧先啰嗦死了; 白晶晶爱上了至尊宝,无奈最后要结婚的时候被紫霞的眼泪吓跑了; 紫霞幻想着心上人有一天会踩着七彩祥云来娶她,可是猜中了开头,却没猜中结局; 青霞跟紫霞斗了一辈子,最后一刻为紫霞献身了; 杨二郎的哮天犬一心想为主人立功,却因为动了凡心被炖了; 每个人看完这部电影都会有自己的理解,把自己想象成为那个主角,在同情主人公的遭遇的同时,也在安慰自己。正是因为这样,它才让人产生共鸣和思考,我们应该思考什么,有人说:“每个人现在拥有的,可能就是别人奋斗一生梦寐以求的”,然而,在明白了那么多道理以后,我们却还是想反抗,想尝试,不安,并去追求自己的目标,虽然结局是固定的,但毕竟经历过那么多的曲折和精彩,可能也值了。我觉得这也是这部电影所能表达的积极的一面。\n就像老一辈喜剧人陈佩斯说过的那样,喜剧的内核都是悲剧,表面上越是喜剧,内在里越是悲剧。有网友评论,看完《大话》笑了,说明你没看懂,看完哭了,还是没看懂,看完怔在那里,明白了造化弄人、世事无常,才是真的懂了。\n电影里的原声音乐都很好,尤其是最后紫霞说“我猜中了开头,却没有猜中结局”时的配乐,简直太贴切了,我后来找了很久才找到。\n为了防止剧透,此处删去五千字。好的电影常看常新,如果没看过的,我建议你看一下,说不定就能在里面找到你自己。\n","date":"2016-01-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/","title":"说一说《大话西游》"},{"content":"最近有人看我操作我的电脑,觉得整理的很整齐、很干净,能够高效地工作,并表示希望自己的电脑也能这样,我想了一下,决定利用自己的一些闲暇时间,我也整理一下思路,将自己在使用电脑时的一些“好习惯”分享出来,希望对你们有帮助。\n##硬件\n首先,在硬件上,不用对CPU和硬盘容量要求太高,这两个东西目前的配置都是过剩的,如果有条件,建议你使用固态硬盘,内存则是多多益善,买你能买的起的最大的内存(摄影圈有句话,叫“买你能买的起的最贵的镜头”)。如果没有也没关系,现在随便一台电脑的配置都足够用(非专业工作或大型游戏,打游戏的,你直接买xbox多好,一块显卡的钱就够了,而且体验还远超家用PC)。 如果你说你有大量电影要存储,首先这不是好习惯,其次如果非得这样的话,请另外配置一个家用NAS,比你PC上的硬盘靠谱。 ##操作系统\n不要盲目崇拜Mac系统,如果你不是从事艺术、设计类工作,请老老实实使用Windows操作系统,建议使用Win8.1版本,那些Win7的死忠粉估计是真没用过8.1(同样的硬件配置,8.1比7跑的快又稳),Win10目前存在硬件兼容性问题,估计还得再等等才能使用 别再用Xp了,求你了,Xp上的IE浏览器顶多升级到8.0,你知道这给我们的前端开发带来多大的工作量浪费吗,整天兼容来兼容去的,为了祖国的发展和程序员的健康及家庭和睦,请升级你的操作系统 ##基础习惯\n不要安装任何杀毒软件,包括各种助手、管家、防火墙,不要被他们给你的错误安全感所洗脑,觉得你的电脑到处充满了病毒和危险,以及动不动就清理垃圾、整理内存、监测网速,完全没必要,让他们统统去死,windows自带的防火墙和杀毒防御足够用了。 不要关闭UAC,Xp以上的系统,带有一个用户体验很不好的功能,即如果有软件尝试高权限操作时(比如偷偷安装东西),windows会弹出一个警告界面让你选择是否继续,这个功能很有必要,尤其是现在很多流氓软件的情况下,但是很多人为了图省事儿,把他关了,后来就出现了自己明明啥也没动,一些流氓软件还是自动装上了的情况。 保持桌面的整洁,最好一个图标也别留,这样心情好,心情好了干活效率也就高了 如无必要,不要额外安装任何软件,只保留基本的办公软件和浏览器、音乐视频播放等就行了 安装一个靠谱的浏览器,建议是谷歌浏览器,或者火狐也行,开通云同步功能,这样收藏夹就不会丢了 系统自带的微软拼音输入法就很好用了,别安装其他输入法了(如果你还在用五笔,前辈,请受我一拜) 不要爱惜你的电脑,放心大胆的整,犯的错多了你就老实了 ##进阶篇\n固态硬盘不要分区,分区为了数据安全的想法已经过时了,要淘汰这种老思想 普通硬盘可以考虑分一下,将不同类型的文件按分区或文件夹归类,比如系统一个区、工作一个区、数据档案一个区 给自己的当前工作建立一个TODO文件夹,里面放需要解决和处理的文件或工作过程中的文件,但是一旦完成此项工作后,记得及时归档保存。 关于文件夹命名和文件命名,要尽量有意义,尽量长一些,别出现“新建文件夹13”这样的,会给将来的检索带来极大干扰 按照项目整理文件,而不是按照文件类别 使用云盘(推荐360网盘)保存备份你的数据,不用担心隐私问题,互联网时代没隐私 整理、善用你的浏览器收藏夹,这样省得每次都输入网址 ##大师篇\n如果你有秘密数据,我推荐一款软件TrueCrypt,可将文件加密后再备份,不过据说这个软件的加密算法被美国FBI破解了,不过你那点儿数据也犯不着动用FBI 有一款软件叫Everything,查询文件速度极快,如果你的文件命名比较有意义的话,可以快速搜索到,当然如果你都放在云盘了,云盘自身的搜索也很不错了。 善用快捷键,先说这些简单的吧 Win+L,锁屏 Win+E,资源管理器 Win+Q,快速检索应用或文件 Tab键是可以将光标跳转到下一个输入框,但是可能很少有人知道Shift+Tab是跳转到上一个 Win+1、2、3、4、5等,可以快速启动你锁定在任务栏上的应用 Win+X,进入最快捷的系统菜单 Win+C,另一个快速菜单,可以快速设置、关机等等 Win+D,快速回到桌面 PrintScreen,截屏,Alt+PrintScreen截屏当前活动窗口 丧心病狂篇 善用Win+R(运行),直接启动各种程序 输入calc,启动计算器 输入mspaint,启动画图板 输入excel,启动excel 输入winword,启动word 输入cmd,启动命令行控制台(这个回头单聊吧) 输入services.msc,启动服务管理界面 输入gpedit.msc,启动组策略管理器 ##省事儿篇\n找一个像我这样的朋友,请他吃饭。 最近比较忙,先写这么多,想到再补充。 ","date":"2016-01-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/","title":"如何更高效的使用你的电脑"},{"content":"我坐在客厅的沙发上\n将我的手机支起来\n晒着太阳\n用小键盘打字\n感觉美美的\n想着你在哪里\n是不是也和我一样\n面带微笑\n","date":"2016-01-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/","title":"我坐在客厅的沙发上打字"},{"content":"推荐一些我经常去的网站吧,可能比较偏向技术宅。\n0、技术类 http://stackoverflow.com/ 根据名字(栈溢出)就知道这是一个程序员相关的站点,之所以把它排在第一位,是因为它基本上是程序员每天必上的网站,各种编程问题如果在这个站上找不到解决办法,那几本上可以宣告在互联网上找不到答案了。即使没有遇到问题,也可抽时间浏览一下当前热门的问题,碰上自己能回答的,也别吝啬,热情回馈一下吧,据说很多国外公司在面试程序员时,在stackoverflow上回答的问题质量也是一个评价指标。 https://github.com/ 世界最大开源社区,免费送你版本控制空间,可玩性很高,连微软等大公司也将自己的开源代码放在上面托管,牛人很多。想要成为牛人?先在github上follow那些牛人吧,看看他们在做什么项目,在写什么样的代码。 http://news.ycombinator.com/ hackernews,《黑客与画家》的作者,硅谷著名孵化器创始人ycombinator创建的站点,很多科技创业项目首选的推广平台,此网站乍一看很粗糙,但是干货很多,经常有大神级牛人在上面发布作品。 http://news.dbanotes.net/news 上一个网站的国内版,中文,国内著名DBA冯大辉创建,质量虽不比hackernews,但可以了解国内的技术形式。 http://geek.csdn.net/ 国内著名程序员网站CSDN出品的hacknews,文章质量良莠不齐,偶有精品,可以偶尔上去看看。 1、学习提升 网易云课堂 说网易为中国互联网的良心一点儿都不过分(百度去死去死),云课堂内容质量非常高,基本上可以做到足不出户读完各种大学,另外网易还翻译了很多精彩的TED演讲视频,TED爱好者的福音。 慕课网 免费学习各种IT技能,前端、后端、设计、架构等等,基本上如果你愿意学,可以自学成为全栈工程师,那些整天嚷嚷着就差一个程序员了的创业团队,上去看看吧。 Codecademy在线学习编程网站的鼻祖,以前我Js和Python就是在这上面学的,艺不压身,多掌握基本语言吧,每个语言都代表一种编程思想。 高高手 这家教Photoshop、设计和摄影,比蓝翔还要好。 2、视野 知乎 不要多上,否则容易产生你掌握很多知识的错觉,佛家说,贪恋知识也是一种“贪”,但是确实可以开阔视野,增长见识,适可而止。 quora 知乎就是模仿的它,问答质量非常高,但里面也充斥着各种鸡汤,如果想练习英文阅读能力,可以尝试一下。 3、音乐 邻居的耳朵 一篇美文配一首好歌,能让你经常发现以前错过的好歌。 rainymood 这个网站只有一个功能,就是播放下雨的声音,催眠最佳。 音频应用 国内第一的录音论坛。 网易云音乐 不多说了。 叉烧网 音乐器材是一个跟单反一样的不归路。 ###4、美图\n500px 高质量图片网站,很多摄影师在上面出售作品,做PPT时用的到 pinterest 图片网站,瀑布流图片站的鼻祖,做PPT时用得到 ###注:有些网站可能需要翻墙才能上。\n","date":"2016-01-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/","title":"推荐几个我经常去的网站"},{"content":"按照惯例,工作总结写完了,可以开始写个人总结了,只总结与工作无关的。\n0、家庭\n按照年初的预定目标,要抽出更多时间跟家人一起,基本也实现了,比如陪赵老师逛了两次街(元旦和年末各一次),虽然全程一脸无奈、两股战战几欲先走,但也算破了纪录了,我还总结了一个技巧,只要赵老师试衣服,我就在旁边说:“哎呀,这衣服穿上没腰啊”,不一会儿赵老师就让我一边儿歇着了,后来我还为她写了首歌,叫《一千个买鞋的理由》; 儿子在我的引导下,现在每周都会用英文给我写一封信,写在纸上用手机拍了发给我,每一封开头的“Dear Dad”看着都很是让我有些小激动,我基本都能做到认真点评且鼓励为主,偶尔碰到不熟悉的单词,我还得查查再回复。只是他性格有些自闭,跟我小时候差不多,不擅长表达内心真实的想法。 女儿成长很快,今年入小学没少让我以及周围的朋友费劲(感谢大家),但好在最终还是如愿以偿,我也尽量在周末多抽出时间来陪她,不过她也越来越大了,心思也多了,现在我一下班,她已经不再冲出来抱着我的小腿坐在皮鞋上跟我说“爸爸你回来啦,爸爸我好喜欢你啊”了(那时她特别像《卑鄙的我》里的那个最小的小女孩)。一想到将来会有那么一天,她推开家门扯着一个男生的手,对着坐在沙发上抽烟的我说:“爸爸这是我男朋友”时,我就心碎(赵老师评论,如果到30岁还没有,你更心碎)。 父母正在慢慢苍老,不过心态还算年轻,今年暑假仍然过来检查了我的工作,相聚时间虽然不长,加上今年我中间又多回老家了几天,也算是响应国家号召,常回家看看了。我虽不爱打牌,但仍然坚持陪二老斗地主,无奈水平太次,每次都被我爸赢个精光。我爸控制欲极强,我说我周末吃饺子,他遥在千里之外还打电话跟我说,如果吃猪肉大葱馅的,以我的量,剁馅儿的时候必须只能放一根葱“那样剁出的馅儿才最好吃”。我虽心里呵呵,但嘴上还是像乙方对待甲方那样深表同意。 十一的时候,跟妹妹约定,她从深圳,我自北京,携家人在鸡公山顺利会师,一起游玩了几天,她还千里迢迢给我带了自酿的红葡萄酒,一喝上瘾,后来我自己也在北京酿了十来斤,无奈第一次制作,缺乏经验,口感偏酸,就没有好意思拿出去给朋友品尝,我自己受累都喝完了。 1、健康,我的体重如愿增长了约3公斤,达到了历史新高度,67公斤(冬天、棉衣),上次去买衣服时惊喜的发现腰围已增长至二尺五。但明显缺乏锻炼,精力也不如以前,目前已经认识到问题严重性,虽然没法跑步,但准备多做家务(比如拖地),多走路少坐车,饮食规律、睡眠规律,将锻炼身体正式提上日程。\n2、电影,今年还是看了很多不错的电影,有的在影院,有的在网络上看的,如果非让我给个排名的话《爆裂鼓手》应该是在第一位,明显是拍给“不疯魔不成活”的孤独者看的。《海洋之歌》是我近年来、乃至建国以来看过的最优美的动画片(又是爱尔兰这个忧郁的民族拍的),略伤感,但是每首配乐都可以单曲循环,每个画面都可以截图然后冲印挂墙上。《少年斯派维的奇异旅行》是一部意外惊喜,讲述一个天才少年走出误伤弟弟的心理阴影的过程,反正也是各种优美,适合某个周日的下午躺沙发上安静观赏。看过的新科幻大片反正就那么些,乏善可陈,倒是有一些科幻小制作非常出彩,比如《她》、《I型起源》等等。还有一些略文艺的比如《深夜食堂》、《一树梨花压海棠》等。国产电影中只有《夏洛特烦恼》留下深刻印象,其他一概不记得,这就是拍给我们80后看的,全程无尿点,悲剧的内核喜剧的外表,看的时候可以放心的抹眼泪,因为别人也不知是不是笑出来的。(写到这里我突然发现,明年需要降低电影预算,拨给读书)。\n3、音乐,自从豆瓣FM下架了很多我收藏的红心歌曲后,我基本上就只用“网易云音乐”了,重新捡起了上班路上插着耳机听歌的习惯,以前总不舍得用耳朵,怕听伤了,后来想通了,和XX一样,有些事情是不能攒到老年时再做的。而且现在没那么挑剔了,苹果原装的耳塞就足矣,返朴归真了。(写到这里想起一个笑话,有一天早晨起床后发现有一只耳机不响了,后来大夫告诉我是右耳聋了,吓了我一跳,我还以为耳机坏了)。\n4、看书,基本上都是在地铁上断断续续看的,比较有印象的有《思考,快与慢》、《万物有灵且美》、《The Nature of Code》、《设计中的设计》、《那些古怪又让人忧心的问题》等等。看的比较杂,这些书基本上都可以开拓视野促进思考。比较实用的是我在年末的时候看了一本关于领导技能的书\u0026mdash;-《周一清晨的领导课》,感觉受益匪浅,书名虽然起的有些鸡汤,但是内容确实不错,对于中层领导解决在管理团队时存在的问题确实很有帮助,目前还没看完,我准备实践一下(知行合一),我身边的人,无论是不是要搞管理,我都准备向他们隆重推荐这本书。另外我在kindle上又看了两遍南怀瑾大师的《金刚经说什么》,虽然看不太懂,但还是深深体悟到了什么叫“念念不忘,必有回响”。\n5、其他,今年还是经历了很多,其中有很多意外的美好,也有痛苦的体会,但总的来说,还是好的,思想上有进步,心态也比较平和,不会为琐事计较,进一步明确了“助人为快乐之本、创造是幸福本源”的价值观,能够以比较积极的心态看待问题,乐善好施,更喜欢跟朋友聊天,尤其喜欢传递给周围的人快乐和正能量(承蒙大家错爱,无以为报,而且我觉得这也是“善”的一种)。\n对于未来的期望,我考虑了一下,有这几点: 努力去创造美好; 发现更大的世界; 用心体验生活; 奉献,带给他人快乐,即善; 负责,承担责任与使命; 具体点儿来说:\n对技术的热情不能消减,没有时间即使是挤时间也要坚持学习新技术,创造美好的事物; 坚持知行合一的理念,看再多的书和文章也不如真正去实践; 有意识的提升管理和自我管理能力,阅读管理书籍,并在现实中运用,坚持PDCA; 适量扩大社交圈,好朋友要常联系、常来往,缩小关注范围,降低信息噪音; 多做好事,以助人为决策标准,帮助他人成功; 锻炼身体,多做家务,多陪家人,即“负责”; 慢下来,尤其是在做决策时,需要认真考虑和分析,始终坚持原则与最初的目标定义,也是“负责”; ","date":"2015-12-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/","title":"2015年的个人总结"},{"content":"幽默不是对什么都不在乎,相反,幽默的人都很认真,而且需要勇气,一个敢于自黑的人一定是睿智又自信的。\n能理解幽默的人,也一定是一个有趣的人,感谢那些幽默的段子手,使我在工作之余得到放松,下面是微博网友在2015年收集的一些网络段子,分享给大家,我已经主动过滤了一些低俗没品的(列位如果谁有需要请私下联系,反正我也没有)。\n0、我这辈子最重要的三点是:岁月安好、懂得感恩、与你相随。总的来说就是 Fine,thinks and you。(@大哥王振华)。\n1、世界五大王牌情报组织:CIA(中情局)、KGB(克格勃)、MOSSAD(摩萨德)、MI6(军情六处),BJCYQZ(北京朝阳群众)(@警察蜀黍)。\n2、一个简易的提升逼格的方法:如果你愿意,你可以在简历上写自己是美国时代周刊2006年度人物,曾获2008年感动中国组委会特别大奖。不用担心吹牛被捉,因为这两年的获奖者分别是“everyone”和“全体中国人”(@英式没品笑话百科)。\n3、遇见一个中国导游,他说从前最头疼的,就是带大团游客到处乱走,必须不停点人头回去找,不然很容易散。但现在他弄了一个随身wifi,免费提供给团员连接。从此游客们都紧紧跟着他,亦步亦趋,生怕离远了没信号,再也不担心队伍走散了。(@马伯庸)。\n4、女孩喜欢男孩,每晚都和男孩聊天。可男孩要么半天回一句,要么干脆不理。女孩依旧主动着。终于在某一天,男孩突然回的很快,高谈阔论。女孩感动,努力终于没有白费,鼓起勇气问:“你终于对我有感觉了吗?”男孩淡淡地说:“不是呀,今天刚刚把三星手机换掉了。”(@福大校长)。\n5、朋友说:“油价不能再跌了,要不只剩下税了!”(@傅蔚冈)。\n6、黄晓明是一个青岛人,婚礼却在上海办,可见家乡的酒席是有多贵。。。(@江上渡)。\n7、弟弟带了一群朋友回家吃饭,一会儿弟弟神神秘秘的到厨房对做饭的妈妈说:“这里面可有一个是你未来的儿媳妇。”妈妈头都没抬,说:“是穿白色裙子的那个吧。”弟弟惊讶的说:“妈,您真神了,怎么看出来的?”妈妈淡淡的说:“因为这些人里面我最烦的就是她。”\n8、母语就是数钱的时候心里念的语言。(@laoyang945)。\n9、晚上和女朋友吃完饭,我说:“待会儿把碗刷一下。”她说:“你自言自语的声音怎么这么大?”(@柳三便)。\n10、刚才我女人在弄新买的面包机。她把内胆洗干净以后让我擦干,说:“你要擦得很干,一点水都不能有。要不然面包就做不好。”然后我死命擦了五分钟,里里外外都没有一丝水迹。接着她开始放配料。第一步,加入70毫升水。。。(@段子楼)。\n11、印度舞蹈的精要是左手向下拍小狗,右手抬起拧灯泡,脚步动作是一边踩缝纫机,一边打转。\n12、小时候每当我生病,母亲都会为我冲一杯咖啡,她温柔地说:“外国人都喝这个的。”幼小的我总是害怕咖啡,酸甜苦涩交错。如今我走遍米萝、上岛、星巴克都找不到小时候喝的那个味道,直到那天我喝了一杯板蓝根\u0026hellip;\u0026hellip;.(@张大进就是我)。\n13、最近小区广场舞大妈们都不跳了,问下邻居大妈怎么不跳了,是不是感觉扰民不好意思了。大妈说:“不知道谁家的孩子穿个红肚兜,我们一跳他就在前面说,孩儿们操练起来!”\n14、朋友家孩子满月,我用EMS给孩子快递了一份礼物。收到快递后,孩子高兴地打电话对我说:“谢谢您的礼物,我非常喜欢”(@剑神葡萄)。\n15、唐僧师徒四人正在吃饭,突然“轰隆!”一生巨响,吓了大家一跳,唐僧抬眼望了望,指着山下修路炸碎的石头说:“悟空,你妈生二胎了。”\n","date":"2015-12-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/","title":"我喜欢的段子,在2015"},{"content":"完成自定的作业,想到哪儿是哪儿。\n说说“学习”本身,它可以是一种行为,也可以是一种态度。狭义上来说,“学习”可能指的是习得某种技能的手段,广义上来说,获取或领悟任何知识的过程都算是“学习”。\n#“好奇” 对这个世界强烈的好奇心应该是最原始的学习动力了,大家小的时候都有很强烈的好奇心,那个时候世界充满了未知和不可预测,晚上没太阳的时候向日葵怎么办、天上的星星会不会掉下来、校长是不是不上厕所、电视机关了之后里面的人去哪儿了,等,很多事情等待我们去探索。等到这些事情有了“答案”,我们也长大了,老了,对很多事情不再感到好奇了,我们可以使用表情符号聊天、会通过微积分求曲面的面积、可以制定很详尽的工作计划并跟踪、知道计算机从按下电源开关后里面发生的一切事情不过是一堆二进制在流动,我们以为世界就是这个样子了,并号称树立了完整的世界观。\n回顾人类文明的进程,现在的人类并不是最聪明的,或者很聪明,但是智慧不足,因为我们现在所做的事情,发出的那些看似看明白的感悟,最终发现都是古人考虑n遍以后剩余的思想渣渣,不信你去看看《道德经》。\n所以,我不能被自己所谓的“世界观”所束缚,在想明白上述事情之后,我觉得我还是要在可控的范围之内保持好奇心,以及对未知的敬畏之心。(所谓可控的范围,是比如上次我去看耳鼻喉的医生,就想问一下我的鼻中隔偏曲是不是跟挖鼻屎有关,我怕他让我转到精神科,还是忍住了。)\n#“求知” 多看书应该是最好的方法,所谓开卷有益一点儿也没错,现在大家都抱怨没有时间,实际上是一个伪命题,我们只是把时间用在了很多无意义的事情上,比如发呆、不断在手机上刷那些不痛不痒的新闻、主动看烂片等,这个时候脑子就在空转,时间久了就会引起各种问题,比如信息的碎片化导致根本无法长时间集中注意力,比如对于大量信息带来的焦虑,甚至感到“迷茫”,哈哈,很多人的迷茫其实就是因为这个导致的,静下心来看书就能解决。\n上网去探索信息也可以,但是分内容的优劣,我觉得新闻类的几乎可以不看,重点关注一些与你相关的即可,可以去找一些不错的博客来看,具体内容根据个人喜好来定,比如我比较喜欢看一些技术类博客,很多博主写的都比较有深度,我以前喜欢使用谷歌的Reader阅读器来订阅博客,后来谷歌把它关了,没有更好的客户端了,好在现在移动端也有很多不错的订阅客户端(推荐“即刻”,鄙视“今日头条”)。\n仅仅停留在信息获取上是远远不够的,网络在带来便利的同时,有一个很大的副作用,就是使我们失去行动能力,我们在硬盘上收集大量的资料,收藏很多篇非常认同的文字,沉浸在朋友圈分享的各种技巧里,就是懒得抬手去验证一下(这一段可以谱曲唱了)。我们很容易就能知道TCP的三次握手,也知道现代大数据的处理都基于Map Reduce思想,当我们看了一两篇文章之后甚至开始沾沾自喜,仿佛已经成了该领域的专家。孔子和孟子都说过“学习东西最糟糕的方法就是看很多书、听很多讲课、看很多视频,而不亲自动手去试一下”,创立了伟大心学的王阳明也说过“知行合一最牛掰”。所以亲自动手试一试,将领会的思想运用在现实中还是很有必要的。\n#“创造” 这个世界上获取快乐的方式有很多,但是获得幸福的方法只有一个,那就是“创造”。消费东西很容易带来短暂的快乐,比如女生买包、男生买车,当时很爽,但只是暂时的,保持持续的幸福感就是不断去创造,不一定非得创造出实物,因为创造的过程本身就是快乐的,可以是写一首歌,一篇文章,一段代码,制造一段美好回忆等等,说到这里我突然想到那个只想当木匠的明朝皇帝,哈哈。\n因为“创造”本身是只有智慧生命才具有的能力,所以我们才因为创造而感到幸福,再说远一点儿,宇宙本身是一个“熵增”的过程(我靠好高深),而“创造”恰恰是将“无序”变为“有序”的逆过程,可能这种叛逆感才是让我们感到很爽的原因吧。\n#“坚持” 最近我一直在挑战自己,坚持了一些创造的习惯,简单的事情坚持下来应该也是一件伟大的事情吧,所以写到最后,我突然想起几年前的某个周末,我坐在马桶上,捧着一本《万物简史》,一边感叹宇宙的神奇,一边埋怨自己买书如山倒,看书如抽丝。然后,突然就像当年的须菩提那样,非常虔诚地,由衷地发起了一个愿望\u0026mdash;-我要用一辈子的时间去学习。遂将我的签名改成了“好奇”、“求知”、“创造”,这三个词后来基本上作为我以后的衡量做一件事是否有意义的准则了。\n###考虑到不违反最新的广告法,我谨慎地将文章标题前加了一个“可能”。\n","date":"2015-12-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/","title":"可能要用一辈子时间去学习"},{"content":"工作总结写的头昏脑涨,换换脑子。\n每年的这个时候最容易引发各种感慨,年底,除了工作上需要总结之外,生活上也应该进行一次梳理,回顾这一年的体验,感受了多少幸福,经历了哪些痛苦,吃了什么,玩了什么,读了什么,写了什么,看了什么,听了什么,喝过几次断片儿,摔了几个手机,额。\n可以总结,但不要陷入对回忆的感慨,应该以积极的心态去整理。现在流行一种病,缅怀青春,而且怀起来各种哀怨,哀怨声中尽情的去体验那种令人愉悦的忧伤,仿佛只有过去的才是美好的,对于未来和现在则是一脸迷茫。而且我发现这种行为有越来越年轻化的趋势,比如,金妍昨天跟我抱怨说,自从上了小学,压力很大,好怀念小时候,于是我给她买了个带奶嘴的水壶(简直行为艺术)。\n去年过年的时候,我回老家,跟我妈抱怨,说时间过的飞快,转眼又是一年,感觉没干啥balabala。我妈没有拿爱因斯坦相对论那一套唬我,而是轻蔑的一笑,说,你之所以感到时间过得很快,可能是因为你的生活还很轻松快乐,过的不艰难,对于那些每天还在担心如何吃饱饭的人来说,可能就没那么快了。我竟无言以对。\n我也有我的解释。我认为,随着生活阅历的增加,我们对于新鲜事物的敏感度越来越低,小的时候对于任何事物都很好奇,大脑无时不刻都在感受新东西,所以45分钟的课堂才显得那么难熬。到了对于任何东西都有了自己的认识之后,看啥都没那么新鲜了,所以才觉的时间飞快,感叹白驹过隙,光阴真荏苒。就连子都曾经站在川上曰:「逝者如斯夫,不舍昼夜。」\n看来,life不是线性的,是一个加速过程,笑。\n#我准备抽时间做一下2015年的个人总结#\n","date":"2015-12-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/life-is-short/","title":"life-is-short"},{"content":"我近期新增了一个习惯,将我每天在地铁上、刷牙时或者其他发呆的时候,考虑的那些无聊或有聊的问题,整理出来,发在微信朋友圈里,并取名“刷牙沉思录”,话题比较跳跃,每天都不同,但有一点,这些都是我经过慎重考虑、认真分析过的问题。通过简单的一段文字,全方位体现了我对思考的热爱,以及我充分具备当一个哲学家(神经病)的潜质。\n爱幻想、胡思乱想是我从小就有的毛病,基本上整个上学阶段,每堂课,我都能体验“身未动、心已远”那种灵魂出窍的感觉,老师在课堂上讲的眉飞色舞、唾沫飞溅,我盯着黑板,考虑如果老师是一个潜伏在我们学校的外星人,而我是不小心发现了这个秘密的人,我该如何向大家解释人们才能相信我。\n我吃东西不少,但一直长不胖,这一方面很拉仇恨,另一方面,我想说的是,思考是很耗费能量的一件事情,每天睡觉之前,我都能感受到我大脑的不安分,这直接导致失眠和辗转反侧,我必须通过畅想一些事情,才能逐渐平息,慢慢睡去。好在通过多年的总结,有几个经典的设定可以供我可劲儿折腾。\n比如其中有一个是,如果我走在沙漠里,荒芜人烟,各种供给也基本耗尽,这个时候我发现了一个重达三百多吨的金块,我该如何行动才能将这些东西带回。不过我不太喜欢这个设定,难度较大,而且带来的实惠太小。我比较喜欢银河系漫游这样的设定,驾驶一艘乳白色的梭子状飞船(太空中由于没有大气,所以飞船的外观可以很随意,无需考虑空气动力学),船体有四分之一都是透明的玻璃罩,我坐在飞船的控制台前,飞向银河系的边缘,不过一般还没飞出太阳系我就睡着了。\n刷牙沉思录就是在这种条件下产生的,睡觉之前,刷牙的时候,满嘴的泡沫,看着水池里逆时针(说明我在地球的北半球)旋转的漩涡,有时就会有比较虚幻的感觉,会顿悟一些鸡毛蒜皮的事情,但是这个宇宙中的真理往往都是蕴藏在非常浅显的道理中的,所以我一般会怀着非常崇敬的心情将这些记录下来。\n一个偶然的机会,我发现将这些东西发在朋友圈进行分享或许也很不错,这样也许能让喜欢我的朋友更加了解我从而更加亲密,讨厌我的人会更加坚定不移地认为我是一个傻Ⅹ而将我拉黑,从而减轻我的社交压力。如果有可能,我想我会坚持下去,不管还发不发朋友圈。\n这些年我思考记录的东西,比较琐碎混乱,以前总觉得没有用,甚至是浪费时间,现在忽然想通了,其实这些思考之间是有联系的,在积累达到一定量的情况下,悟性被激发的时候就可以发现一些规律和更抽象升华的知识或方法论,也许就是常说的量变引发质变吧,大脑里的知识积累到一定程度,就是『大数据』了,呵呵。\n#我可能会在每个周末的晚上写一篇短文#\n","date":"2015-11-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/","title":"关于“刷牙沉思录”"},{"content":"练习 1.9 下面两个过程各定义了一种加起两个正整数的方法,他们都基于过程inc(它将参数增加1)和dec(它将参数减少1) 。请用代换模型展示这两个过程在求值(add 4 5)时所产生的计算过程。这些计算过程是递归的或者迭代的吗? 1 2 3 4 5 6 7 8 9 10 (define (add a b) (if (= a 0) b (inc (add (dec a) b)))) (define (add a b) (if (= a 0) b (add (dec a) (inc b)))) 解答:根据代换模型分别展开如下\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 (add 4 5) (inc (add 3 5)) (inc (inc (add 2 5))) (inc (inc (inc (add 1 5)))) (inc (inc (inc (inc (add 0 5))))) (inc (inc (inc (inc 5)))) (inc (inc (inc 6))) (inc (inc 7)) (inc 8) (9) (add 4 5) (add 3 6) (add 2 7) (add 1 8) (add 0 9) (9) 根据展开可以看出,第一个计算过程是递归的,因为明显有一个逐步扩展然后又收缩的递归计算链条。第二个计算过程是迭代的,没有扩展、收缩的过程,而是使用a和b存储了常量。\n","date":"2015-01-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/","title":"SICP 课后练习题1.9"},{"content":"一口气看完了三本《搞定》系列,我突然“顿悟”了,我意识到,根本不存在所谓的“时间管理”,在脱离了对自己目标清晰认知的前提下,任何时间管理的方法都是毫无意义乃至浪费时间的。\n然而虽然很多教授方法的书籍里面也提到了这一点,却无一告诉读者如何对自己的目标找到清晰的认知。\n无论是否学习过各种时间管理或精力管理的技巧,每个人实际上已经自成体系有了一套多年来摸索出来的方法,应对自身的工作、生活、欲望,出于对效率的无尽追求,不断贪心想要提升,人们发明了各种方法来管理时间,有简单的也有复杂的,这些方法没有例外,都是在告诉人们一件事情,那就是如果你的方法得当,所有的事情都可以有效掌控,你的人生最后可以变成一张写在纸上的待办清单。然而事实呢,恰恰相反,可控的永远是少数,未知远远大于已知,以有限的精力与未知做斗争无异于以卵击石,到头来弄个筋疲力竭,垂头丧气,改去寻找其他的方法,岂不知出发点就是错误的。\n不如换个思路,放弃对方法的追求,去思考一些本质上的东西。\n","date":"2015-01-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/","title":"忘掉GTD、忘掉所谓的高效习惯"},{"content":"今天是2015年的第三天,元旦假期就要过去,本打算在evernote上记录一下对新年的愿景,谁知写了半天,没保存上,全丢了,想起来还有个地方叫简书,就索性在这里写吧,既然准备动笔重新开始,不妨先总结一下过去的一年。\n我的2014,这一年我过得比较平淡,也比较充实,认真工作、积极创新、乐于助人、波澜不惊,没事儿还看看电影、找朋友喝喝小酒吹吹牛,可以说相当的自我。我刚才又翻看了一下年初时写下的期待,基本上都实现了。\n1、我个人在今年才开始使用智能手机(赵老师倒是早就用上了苹果,手机领先我一个世代),在此之前,我一直鄙视智能手机(电池不行、没有实体键盘输入不方便、软件装多了就慢等等),不过,在我用了一台大屏幕智能手机之后我彻底改变了看法(大屏就是爽啊,技术进步迅猛,现在的手机已经没有性能问题了),从此我的黑莓就躺在了抽屉里吃灰,我的包里也不用随时塞一个厚重的iPad了,笔记本电脑就更不用背了。对了,在中国移动的反复撩拨下,我终于也开通了4G,不必再忍受GPRS的龟速了。\n2、今年的电影看得比较少,没有什么值得回忆的,暑假的时候我带孩子们去看了场『变形金刚4』,片子又烂又长,中途不得不去了两次厕所。\n3、拜某局所赐,美剧也看得不多,反而省了时间做其他的事情。\n4、利用业余时间,我学会了用Photoshop修片,在网上系统了学习了课程,而且与实践结合,将自己拍的照片调的还算满意,不过一看就是个新手,调出的照片远远就能闻见浓浓的后期味儿。\n5、买了个电钢琴,给金妍练琴用,开始时我也跟着瞎掺和,甚至一起做指法练习,可以没坚持下来,现在她已经可以弹出完整的曲子了,我还停留在小星星阶段。\n6、不过我在吉他的扫弦方面进步不小哦,至少我是这么以为的,因为听起来,不那么像噪音了,我甚至和金妍一起录了一曲『小苹果』,感觉还『蛮拼的』。\n7、赵老师开车闯了个红灯,一下子就扣了我6分,从此我开车上路都多里哆嗦不敢开快像个娘炮,连老杨都比我开的猛。\n8、读书读的不算多,但也陆续看完了几本,『ReWork』、『给青年的十二封信』、『禅与摩托车维修艺术』、『围城』等等,另外我又看了一遍『黑客与画家』,每次看都有新的收获。在办公室,还有一本道德经放在抽屉里,每当工作累了就拿出来翻一翻,虽然总是看不懂,不过用来缓解压力效果还是不错的。\n9、陪家人的时间比以前有所增多,甚至去了一趟幼儿园参加家长互动的活动,由于以前去的太少,老师们都不认识我,不得不让孩子亲自出来指认。活动中,与孩子的互动环节,在老师的指引下,孩子们伴随着音乐给家长捏肩捶背无比亲昵,我看到了旁边一个像我一样的木纳父亲,那一刻,他的眼里竟泛着泪光。\n回顾了过去的一年,再考虑一下我的2015,给未来一些愿景和期待:\n1、坚持学习,为了兴趣和爱好去学习,并尝试做一些记录,去年年末的时候,我将SICP(计算机程序的构造和解释)的部分课后练习题做完后写到我的博客里,这是一个不错的开始,今年争取能做完一半,如果有余力的话,将The natural of code这本书的练习题也做了记录到博客中。\n2、我的人生目标仍然是不断创造出美好的东西,继续保持好奇心,做好玩的事儿。每天的PDCA都要围绕这个目标进行。\n3、不放弃自己的爱好,吉他、摄影、绘画、编程等等这些,多抽时间放在上面,为了防止以后不会写字,可以考虑使用钢笔临摹一些硬币字帖。\n4、通过互联网优化自己的工作,关注最新动态,永远对技术敬畏。\n5、多看书,kindle里没看的书还很多,争取每个月都读一本。\n6、少上网,2014年已经有意识的限制自己的上网时间,2015年要做的更好,每天固定少量时间阅读英文咨询(hacknews、reddit、thenextweb等),每周固定时间阅读中文咨询(知乎等)即可。\n7、多行动,少踌躇,别怕犯错。\n","date":"2015-01-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/","title":"2014年的个人总结"},{"content":"练习 1.8 求立方根的牛顿法基于如下事实,如果y是x的立方根的一个近似值,那么下式将给出一个更好的近似值: $$ \\frac{x/y^2+2y}{3} $$\n请利用这一公式实现一个类似平方根过程的求立方根的过程。\n解答:基本思路与求解平方根的实现是一致的,区别再有得到更好值improve的过程有变化,只需根据公式描述进行实现即可\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (define (improve guess x) (/ (+ (/ x (* guess guess)) (* guess 2)) 3)) (define (good-enough? guess next) (\u0026lt; (/ (abs (- guess next)) guess) 0.001))) (define (abs x) (if (\u0026lt; x 0) (- x) x)) (define (cbrt-iter guess x) (if (good-enough? guess (improve guess x)) (improve guess x) (cbrt-iter (improve guess x) x))) (define (cbrt x) (cbrt-iter 1.0 x)) ","date":"2014-12-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/","title":"SICP 课后练习题1.8"},{"content":"练习 1.7 对于确定很小的数的平方根而言,在计算平方根中使用的检测good-enough?是很不好的。还有,在现实的计算机里,算术运算总是以一定的有限精度进行的。这也会使我们的检测不适合非常大的数的计算。请解释上述论断,用例子说明对很小和很大的数,这种检测都可能失败。实现good-enough?的另一种策略是监视猜测值在从一次迭代到下一次的变化情况,当改变值相对于猜测值的比率很小时就结束。请设计一个采用这种终止测试方式的平方根过程。对于很大和很小的数,这一方式都能工作吗? 解答:good-enough?当前采用的判断方式是,对比猜测值的平方结果与X的值之间的差距,当差距小于某个阙值时(比如0.001),就停止计算。当X很小或很大时,这种检测就会失败,比如,假设我们的阙值设置为0.001,那么当X本身小于这个阙值时,就会检测失败,得出错误结果,当X很大时,也会由于精度不足而一直达不到最佳猜测值,导致死循环。\n因此,要解决这一问题,可以按照题目中给出的思路对good-enough?过程进行修改,不再判断猜测值平方与X的差距,而是判断两次猜测值之间的比率。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 ]=\u0026gt; (define (good-enough? guess next) (\u0026lt; (/ (abs (- guess next)) guess) 0.001))) ;Value: good-enough? 1 ]=\u0026gt; (define (sqrt-iter guess x) (if (good-enough? guess (improve guess x)) (improve guess x) (sqrt-iter (improve guess x) x))) ;Value: sqrt-iter 1 ]=\u0026gt; (sqrt 0.00000000001) ;Value: 3.1622776601874535e-6 1 ]=\u0026gt; (sqrt 100000000000000000000000000000000000000000000) ;Value: 1.0000000000001497e22 在新的good-enough?中,传入的是两次猜测值,所以还要修改sqrt-iter过程,在调用时计算两次猜测值。\n","date":"2014-12-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/","title":"SICP 课后练习题1.7"},{"content":"采用牛顿法求平方根的过程如下。开始时,我们有了被开方数的值(现在需要做的就是算出它的平方根)和一个猜测值。如果猜测值已经足够好了,有关工作也就完成了。如若不然,那么就需要改进猜测值(求出猜测值与被开方数除以猜测值的平均值),并重复这个计算过程。具体编写代码如下(在MIT scheme解释器中)。\n定义sqrt-iter过程,与上述描述完全对应。\n1 2 3 4 5 6 7 1 ]=\u0026gt; (define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))) ;Value: sqrt-iter 定义改进猜测值的过程improve,返回猜测值与被开方数除以猜测值的平均值。\n1 2 3 4 1 ]=\u0026gt; (define (improve guess x) (average guess (/ x guess))) ;Value: improve 定义求平均数的过程average。\n1 2 3 4 1 ]=\u0026gt; (define (average x y) (/ (+ x y) 2)) ;Value: average 定义判断猜测值是否足够好的过程good-enough?。\n1 2 3 4 1 ]=\u0026gt; (define (good-enough? guess x) (\u0026lt; (abs (- (square guess) x)) 0.001)) ;Value: good-enough? 定义求绝对值和平方的过程\n1 2 3 4 5 6 7 8 1 ]=\u0026gt; (define (abs x) (if (\u0026lt; x 0) (- x) x)) ;Value: abs 1 ]=\u0026gt; (define (square x) (* x x)) ;Value: square 定义最上层的过程,用于启动整个工作(使用1这个数字作为任何数的初始猜测值)。\n1 2 3 4 1 ]=\u0026gt; (define (sqrt x) (sqrt-iter 1.0 x)) ;Value: sqrt 执行sqrt过程,并以9为参数,求得平方根为3\n1 2 3 1 ]=\u0026gt; (sqrt 9) ;Value: 3.00009155413138 练习1.6 Alyssa P.Hacker看不出来为什么需要将if提供为一种特殊形式,她问:“为什么我不能直接通过cond将它定义为一个常规过程呢?”Alyssa的朋友Eva Lu Ator断言确实可以这样做,并定义了if的一个新版本: 1 2 3 4 5 1 ]=\u0026gt; (define (new-if predicate then-clause else-clause) (cond (predicate then-clause) (else else-clause))) ;Value: new-if Eva给Alyssa演示她的程序:\n1 2 3 4 5 (new-if (= 2 3) 0 5) 5 (new-if (= 1 1) 0 5) 0 她很高兴地用自己的new-if重写了求平方根的程序:\n1 2 3 4 5 6 7 1 ]=\u0026gt; (define (sqrt-iter guess x) (new-if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))) ;Value: sqrt-iter 当Alyssa试着用这个过程去计算平方根时会发生什么事情呢?请给出解释。\n解答:\n这个练习引入了一个新的思考,刚开始时,我以为是牵涉到了过程的局部参数概念,因为在新编写的new-if过程中,看似可以完成条件判断并返回正确的值,但是在本例中使用却存在问题,即在递归调用sqrt-iter时,传给该过程的guess和x为new-if的局部参数,被返回给了new-if这个过程,不会向上返回到上一层sqrt-iter里,这样就导致了改进的猜测值永远不会被使用,使得这个计算过程永远不会结束(除非第一个猜测值恰好合适),从而导致递归调用的陷入无限循环。我在MIT-scheme解释器里的执行结果是,解释器自动退出并提示我递归调用深度超出最大值。\n上述看起来是合理的,但是后来我考虑了其他情况,及本书在前面章节里提到了if(if \u0026lt;predicate\u0026gt; \u0026lt;consequent\u0026gt; \u0026lt;alternative\u0026gt;)语句是条件表达式的受限形式,在执行时,先判断predicate是否为真,然后根据结果只执行其后consequent/alternative中的一个。如果使用本例新定义的new-if则作为普通过程执行,传入的参数会因为解释器使用应用序求值的原因,两个表达式都会被立即求值,反应到本例中就是guess和(sqrt-iter (improve guess x) x)都会被立即求值,后面的那句是属于递归调用,这样也会导致改进的猜测值永远不会被使用,陷入无限层的递归调用中。\n1 2 3 1 ]=\u0026gt; (sqrt 9) ;Aborting!: maximum recursion depth exceeded 思考:\n最初的时候,我的针对此题的思考方式是变量的作用域问题(可能lisp不会有此问题),后来发现,也许不是这样,而是由于对传入参数立即求值导致的,后续的网上搜索结果也显示出大家的答案都倾向于后者。\n","date":"2014-12-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/","title":"SICP 课后练习题1.6"},{"content":"练习1.4 请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型,根据对这一模型的认识描述下面过程的行为。 1 2 (define (a-plus-abs-b a b) ((if (\u0026gt; b 0) + -) a b)) 练习1.4,通过if判断,根据b的值决定对a b所使用的运算符是+还是-,如果b大于0,则组合式为(+ a b),反之则为(- a b),所以组合式结果永远返回a加上b的绝对值。\n1 2 3 4 5 6 7 8 9 (define (a-plus-abs-b a b) ((if (\u0026gt; b 0) + -) a b)) ;Value: a-plus-abs-b (a-plus-abs-b 4 2) ;Value: 6 (a-plus-abs-b 4 -2) ;Value: 6 ","date":"2014-12-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/","title":"SICP 课后练习题1.4"},{"content":"练习1.5 Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用哪种序求值,是采用应用序,还是正则序。他定义了下面两个过程 1 2 3 4 5 6 (define (p) (p)) (define (test x y) (if (= x 0) 0 y)) 而后他求值下面的表达式:\n1 (test 0 (p)) 如果某个解释器采用的是应用序求值,Ben会看到什么样的情况?如果解释器采用正则序求值,他又会看到什么情况?请对你的回答做出解释。(无论采用正则序或者应用序,假定特殊形式if的求值规则总是一样的。其中的谓词部分先行求值,根据其结果确定随后求值的子表达式部分。)\n练习1.5 『完全展开而后规约』的求值模型为正则序求值,『先求值参数而后应用』的方式为应用序求值,因此,在应用序求值的模式下,执行(test 0 (p))时会先求(p)这个表达式的值,而根据定义(define (p) (p))执行(p)会造成递归调用,解释器陷入死循环。而在正则序求值模式下,会先展开test过程,根据需要再决定是否执行(p),在本例中,由于传入的x等于0,所以(p)不会被执行,因此不会陷入死循环。\n所以,根据以上分析,如果解释器采用的是应用序求值,则解释器陷入死循环,如果是采用正则序求值,则解释器输出;Value: 0。\n","date":"2014-12-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/","title":"SICP 课后练习题1.5"},{"content":"练习1.1 下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的。 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 10 ;Value: 10 (+ 5 3 4) ;Value: 12 (- 9 1) ;Value: 8 (/ 6 2) ;Value: 3 (+ (* 2 4) (- 4 6)) ;Value: 6 (define a 3) ;Value: a (define b (+ a 1)) ;Value: b (+ a b (* a b)) ;Value: 19 (= a b) ;Value: #f (if (and (\u0026gt; b a) (\u0026lt; b (* a b))) b a) ;Value: 4 (cond ((= a 4) 6) ((= b 4) (+ 6 7 a)) (else 25)) ;Value: 16 (+ 2 (if (\u0026gt; b a) b a)) ;Value: 6 (* (cond ((\u0026gt; a b) a) ((\u0026lt; a b) b) (else -1)) (+ a 1)) ;Value: 16 练习1.1的内容比较简单,基本上直接就可以计算出表达式的值,所有表达式都可以在mit-scheme的交互解释器里进行验证。\n","date":"2014-12-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/","title":"SICP 课后练习题1.1"},{"content":"练习1.2 请将下面表达式变换为前缀形式: $$ \\frac{5+4+\\Bigl(2-\\Bigl(3-\\left(6+\\frac{4}{5}\\right)\\Bigr)\\Bigr)}{3\\left(6-2\\right)\\left(2-7\\right)} $$\n1 2 3 4 5 6 7 8 9 10 11 (/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7) )) ;Value: -37/150 练习1.2,直接将数学表达式转换为前序表达式即可,在写的时候可以遵循一下排版规则,即同一个运算符的表达式垂直对齐。\n","date":"2014-12-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/","title":"SICP 课后练习题1.2"},{"content":"练习1.3 请定义一个过程,它以三个数为参数,返回其中较大两个数之和。 1 2 3 4 5 6 7 8 (define (max-three-number a b c) (if (\u0026gt; a b) (if (\u0026gt; b c) (+ a b) (+ a c)) (if (\u0026gt; a c) (+ b a) (+ b c)))) (max-three-number 42 7 1) ;Value: 49 练习1.3,解决此练习中问题的方法比较多,本答案使用比较朴素的方法,先比较出最大的两个数字,然后将其相加,对于三个数字来说,先在前两个中选取一个大的,然后将其与后面两个中比较大的那一个相加。还有一种思路就是可以先定义出比较大小的方法,然后再调用之,或者先对数字按从小到大排序然后加最后两个,等等。\n","date":"2014-12-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/","title":"SICP 课后练习题1.3"},{"content":"win8系统下使用笔记本作为wifi热点 背景 在没有无线路由的情况下,比如出差在宾馆,如果手里有一台可以上网的笔记本电脑,则可以给手机、平板电脑或者其他笔记本提供一个可以上网的wifi热点。\n我平时在单位即通过此方式给我的平板电脑和手机共享网络通道,比较方便实用,近期在使用的过程中遇到一些问题,经过摸索,解决了问题,在此记录一下,方便以后查阅。\n环境需要 一台通过有线连接上网(或者通过3G上网,就是说wifi网卡没有被占用)的笔记本电脑 安装有win8操作系统(win7应该也可以) 无线网卡芯片是intel的(否则可能不支持此技术),并使用了最新的驱动程序 基本步骤 打开具有管理员权限的控制台窗口(在win8系统下,可以通过按windows+x键,然后在弹出的菜单里选择『命令提示符(管理员)』)\n输入如下命令 netsh wlan set hostednetwork mode=allow ssid=\u0026quot;mywifi\u0026quot; key=\u0026quot;12345678\u0026quot; 其中ssid后面的热点名称和key后面的密码可以根据情况自行决定\n上一个命令完成后,如果没有异常的话,则输入如下命令 netsh wlan start hostednetwork 这条命令如果执行成功会显示『已启动承载网络』,在下次系统重启后需要重新执行,如果嫌麻烦则可以做一个批处理文件每次双击即可\n成功启动承载网络之后,进入『网络和共享中心』点击『更改适配器设置』,此时在该页里应该可以看到一个虚拟网卡(名称一般叫MicrosoftVirtual WiFi Miniport Adapter),右键点击那个可以上网的网络连接(如果是有线连接就是那个『本地连接』,如果是3G的则根据情况而定,总之必须是那个可以上网的连接),选择『属性』,切换到『共享』页,勾选『允许其他网络用户通过此计算机的Internet连接来连接』,在下面的下拉列表里选择那个刚虚拟出来的虚拟网卡。确定即可。\n常见问题 执行以上第二条命令启动承载网络后,有时会显示『无法启动承载网络,组或资源的状态不是执行请求操作的正确状态』,网上大部分的文章针对这个问题给出的解决办法都是更新网卡驱动,可是对于我的笔记本无效,因为我的笔记本电脑在前一段时间是好用的,后来不好用了,根据我的摸索,解决这个问题的办法是,去『设备管理器』下面的『网络适配器』里面找找,看看有没有被禁用的设备,比如『微软托管网络协议』,如果禁用了再重新启用即可正常使用此功能了。\n","date":"2014-02-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/","title":"win8系统下使用笔记本作为wifi热点"},{"content":"背景问题 mongodb在windwos下的官方编译包是使用vs2010编译的,从官网上下载的源代码在vs2008环境下不能直接编译通过,因为mongodb提供的相关配置文件是针对vs2010的,可能是因为mongodb最新的代码使用了部分C++11的特性,而vs2008没有提供对C++11支持的原因。可是我们在一个具体的项目上需要在vs2008环境下使用mongodb,只好通过手工修改部分配置和代码的办法完成编译。\n环境准备 mongodb是使用scons进行编译控制的,所以在进行以下编译之前需要安装并配置好如下环境:\npython2.7 官方建议是安装python2.7版本,而且要在环境变量PATH中加入python的安装路径和python/scripts的路径,以便在命令行中执行python脚本。 不过我在编译的时候使用的是python2.6版本,也没有发现问题\nscons 直接去网上下载最新版本进行安装即可。 vs2008 需要安装vc++的全部组件(主要是默认安装不带amd64的编译支持),如果只需要编译32位版本的话则可以忽略此条。 需要安装sp1补丁,否则会在编译时报错。 boost库 最好使用boost1.4.9版本,去官网上下载对应的源码包然后自己在vs2008的命令行环境下编译\n编译boost的命令如下(只编译了所需库):\nbjam stage variant=debug --with-filesystem --with-thread --with-date_time --with-program_options --layout=versioned threading=multi toolset=msvc-10.0 --build-type=complete 如果需要编译release版本,就把variant的选项改为release,如果需要编译64位的版本,就在以上命令中加入address-model=64\n配置及代码修改 SConstruct文件修改 SConstruct文件用于存放scons的关键配置信息,我们为了在vs2008下编译mongodb首先要做的就是修改mongodb源码下根目录的SConstruct文件。\n修改env配置,找到 evn = Environment\nenv = Environment( BUILD_DIR=variantDir, CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', CLIENT_DIST_BASENAME=get_option('client-dist-basename'), CLIENT_LICENSE='#distsrc/client/LICENSE.txt', CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', DIST_ARCHIVE_SUFFIX='.tgz', EXTRAPATH=get_option(\u0026quot;extrapath\u0026quot;), MODULE_BANNERS=[], MODULETEST_ALIAS='moduletests', MODULETEST_LIST='#build/moduletests.txt', MSVS_ARCH=msarch , PYTHON=utils.find_python(), SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', TARGET_ARCH=msarch , tools=[\u0026quot;default\u0026quot;, \u0026quot;gch\u0026quot;, \u0026quot;jsheader\u0026quot;, \u0026quot;mergelib\u0026quot;, \u0026quot;unittest\u0026quot;], UNITTEST_ALIAS='unittests', UNITTEST_LIST='#build/unittests.txt', PYSYSPLATFORM=os.sys.platform, PCRE_VERSION='8.30', CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', CONFIGURELOG = '#' + scons_data_dir + '/config.log' ) 在Environment里追加一条 MSVC_VERSION='9.0',这是因为如果机器上有其他的编译环境,比如vs2010或vs2012,scons会自动使用他们的编译器进行编译,即使你是在vs2008的命令行环境下,我最初因为此问题困扰了很久,后来才只得强制指定编译器的版本,修改完成后如下:\nenv = Environment( BUILD_DIR=variantDir, CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', CLIENT_DIST_BASENAME=get_option('client-dist-basename'), CLIENT_LICENSE='#distsrc/client/LICENSE.txt', CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', DIST_ARCHIVE_SUFFIX='.tgz', EXTRAPATH=get_option(\u0026quot;extrapath\u0026quot;), MODULE_BANNERS=[], MODULETEST_ALIAS='moduletests', MODULETEST_LIST='#build/moduletests.txt', MSVS_ARCH=msarch , PYTHON=utils.find_python(), SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', TARGET_ARCH=msarch , tools=[\u0026quot;default\u0026quot;, \u0026quot;gch\u0026quot;, \u0026quot;jsheader\u0026quot;, \u0026quot;mergelib\u0026quot;, \u0026quot;unittest\u0026quot;], UNITTEST_ALIAS='unittests', UNITTEST_LIST='#build/unittests.txt', PYSYSPLATFORM=os.sys.platform, PCRE_VERSION='8.30', CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', CONFIGURELOG = '#' + scons_data_dir + '/config.log', MSVC_VERSION = '9.0' ) 给编译器搜索路径增加你自己本地的boost库路径 因为在编译时需要用到boost库,所以需要把你在本地的boost所在目录加入scons的环境,否则会报找不到boost头文件或链接库的错误,打开Sconstruct文件直接在最后加入如下代码\nenv.Append(CPPPATH=[\u0026ldquo;d:/thirdlib/boost_1_49_0\u0026rdquo;, \u0026ldquo;d:/thirdlib/boost_1_49_0/boost/tr1\u0026rdquo;], LIBPATH=[\u0026ldquo;d:/thridlib/boost_1_49_0/stage/lib\u0026rdquo;])\n*你在编译时需要将路径替换成你自己的* 准备stdint.h 去这个地址https://msinttypes.googlecode.com/files/msinttypes-r26.zip下载msinttypes,将压缩包里的stdint.h解压并复制到 C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include 目录 修改mongodb源码目录下platform下的cstdint.h,将#include\u0026lt;cstdint\u0026gt;修改为#include\u0026lt;stdint.h\u0026gt;,将#define _MONGO_STDINT_NAMESPACE std这一行里的std注释掉,变成#define _MONGO_STDINT_NAMESPACE /*std*/ 修改mongodb源码目录下util下的time_support.h,在文件开头加入#include\u0026lt;stdint.h\u0026gt;,否则在编译这个文件时会无法识别int64_t类型 修改windows_basic.h 修改mongodb源码目录下platform下的windows_basic.h, 在 #if !defined(NTDDI_WINXPSP3) || (NTDDI_VERSION \u0026lt; NTDDI_WINXPSP3) 之前加入 #define NTDDI_WINXPSP3 0x05010300 在#if !defined(NTDDI_WS03SP2) || (NTDDI_VERSION \u0026lt; NTDDI_WS03SP2)之前加入#define NTDDI_WS03SP2 0x05020200 否则会报 \u0026ldquo;32 bit mongo does not support Windows versions older than XP Service Pack 3\u0026rdquo; 和\u0026quot;64 bit mongo does not support Windows versions older than Windows Server 2003 SP 2\u0026quot; 错误 修改listen.cpp和sock.cpp 修改util下net下listen.cpp,在#include段之后加入如下代码\n#ifdef _WIN32 #define EADDRINUSE WSAEADDRINUSE #define ECONNABORTED WSAECONNABORTED #define EBADF 9 #define ENFILE 23 #define EMFILE 24 #endif 修改util下net下sock.cpp,在#include段之后加入如下代码\n#ifdef _WIN32 #define EAGAIN 11 #endif 开始编译 环境准备好之后,编译就比较简单了,打开vs2008命令行窗口,执行如下代码即可完成编译 scons --dd --32 mongoclient.lib\n如果是编译release版本,就把\u0026ndash;dd换成\u0026ndash;release,如果是编译64位版本,就把\u0026ndash;32换成\u0026ndash;64\n","date":"2013-11-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/","title":"使用vs2008编译mongodb"},{"content":"Hello World ","date":"2013-04-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/hello-world/","title":"Hello World!"},{"content":"在姥爷家玩儿,看到桌上有零食,随手捏着就吃,吃完了,姥爷十分纠结地告诉我,那是给猫吃的。\n家里的微电脑程控智能电压力锅坏了,拒绝接受一切指令,让我这个“技术人员”束手无策,赵老师将锅翻过来,用力敲击之,好使了。\n家里的新房装修好了,我对于装修效果赞不绝口,老爸老妈和赵老师都感到很欣慰,毕竟这几个月把他们累的够呛,你们辛苦啦。\n我把堆在角落里的老音响接好了摆在新房子里,认真擦去厚厚的灰尘,开机,每个喇叭都有声,一米多高的落地箱低音是很澎湃,还好这次的天花板很结实。\n早晨睡眼惺忪地往院子里看,那里有老妈种在现实世界的菜,我说,这蒜苗长的真不赖,赵老师鄙视我说,才出去几年就分辨不出小葱和蒜苗了。天地良心,我是因为眼睛近视了,凑近了看绝对能分清。\n小外甥才8个月就已经养成揪我耳朵的习惯,而且揪起来一脸享受的样子。\n女儿在我面前跌倒,我表情平静既没有表示遗憾也没有对地板提出强烈谴责,她于是自己爬起来慢慢穿过客厅和饭厅找到赵老师,嗷嗷哭。\n和儿子比赛跳舞毯,轻易将其击败。\n哦也,打游戏我从来不让着他。这几天将老爸珍藏的佳酿喝掉了好几瓶,过瘾。\n在我对他的白酒表示欣赏之后,他也表示突然听起来我的音响也很不错,于是我们都颇感欣慰。\n临回北京的前一天晚上,腾讯终于发布s60v5版的“斗地主”,我半夜爬起来给老妈的手机装上,老妈终于能随时“斗地主”了。\n","date":"2010-10-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/","title":"假日记趣"},{"content":"没事儿再瞎畅想一下,如果这些科技公司生产马桶,他们将会生产出什么样的\u0026mdash;\u0026ndash;马桶?\n微软生产的马桶将会有着华丽的外观,而且对你卫生间的配置要求很高,不过即使这样你还会发觉掀开马桶盖的速度十分缓慢,而且随着时光的流逝,冲水的速度会越来越慢,你去询问维修工程师,得到的答复通常是让你将马桶卸了重新安装一次。\n苹果生产的马桶已经上市就会迎来大批的粉丝扎着帐篷在商店门外排队,马桶将会有着白色的外观,名字就叫“i马桶”,界面将会十分简洁,简洁到压根儿不提供冲水按钮,不过你可以再多花99美元买一个配套的冲水按钮模块,当然你也可以去淘宝上买一个高仿的。\nMozilla生产马桶的目的就是为了鄙视微软的马桶,他们宣称“系统检测到你正在使用老掉牙的微软马桶,赶紧更换成我们生产的‘火桶’吧!”而且该马桶最大的特色就是支持各式各样的插件,有的插件让你在如厕的时候可以听音乐,有的插件则是可以提供天气预报的功能,甚至有的插件装上之后可以将其伪装成一个“苹果的马桶”以满足部分人的虚荣心。\n诺基亚生产的马桶将会非常的皮实,而且供你选择的型号也非常繁多,他们除了可以用来当马桶用外还都有一个共同的特点,那就是随心换彩壳,你可以根据心情来更换不同颜色的马桶外壳,不过外壳会比较松,一不小心就会掉下来。\n如果你是一个追逐新型号的狂热分子,那么诺基亚马桶还是比较适合你的,你昨天刚安装好WC71型号的,过两天就会看到诺基亚关于发布WC72的新闻,如果你马上升级那就上当了,因为其实也就是换了一个彩壳而已。\n各大Linux厂商生产的马桶宣称天生就不是给普通人用的,首先这个系列的马桶虽然使用同一个内核,但会分裂出各种各样的版本分支,这让你在选择时很犯愁。\n然后是他们的功能设置极其麻烦,你得翻遍1500+页的文档、彻夜在论坛里泡着、冰天雪地裸体旋转360度跪求解决办法、花个把月的时间才能将该马桶配置的可以正常掀开马桶盖了,但是别高兴的太早,要想能够正常冲水往往你还得重新编译内核。\n最后,当你气急败坏的时候,你会想到国产马桶,你开始到处询问,然后厂商会首先寄给你一套马桶系统解决方案书,上面画着一个真皮座椅还带后背按摩器,而且标价极其便宜。\n当然了,当你付完钱,若干个月后你将会收到一个马扎。\n","date":"2010-09-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/","title":"如果他们生产马桶"},{"content":"我静静的呆在文件夹里,我的身后是一首2002年的曲子,对了,我是一个文件,确切地说,我是一首mp3,你通过搜索引擎找到了我,通过右键另存为给我取了个名字,从那一刻起,我诞生了。\n你迫不及待地打开winamp,用鼠标拽住我,拖进了播放列表。硬盘的磁头开始颤抖,顺着磁道的轨迹划过我的身体,我的细胞就是一串二进制的序列,它们活蹦乱跳地被磁头提起,转换成抖动的电信号涌进了内存,声卡大哥开始工作,它们的任务就是在winamp的安排下去搔声卡大哥的胳肢窝,声卡忍受不住,愉快地哼起了歌,那就是我。你带着耳机,闭目养神,觉得从来没有听过如此美妙的声音。\n我露出欣慰的微笑,磁头划过我带给我的痛苦一扫而光,我甚至期待你的下一次播放。\n你却渐渐地把我遗忘,周围的文件叽叽喳喳叫个不停,它们哪懂得我的忧伤。\n从此我开始长时间的睡眠,直到我遇见另一首mp3.开始的时候我还看她不起眼,因为她来自一块移动硬盘,这个外地人,我心里想。\n瘦弱的她哪里及得上我曲子的悠扬,又怎能赶上我320k的压缩比和古典浪漫的心肠。\n然而我渐渐地发现,虽然她是那样的其貌不扬,可她的快乐却迅速将我感染,连winamp大哥也对她颇有好感,随机播放的时候总是偷偷将她播放,就连愚钝缓慢的回收站也幽幽地说,不希望她去那个地方。\n我开始整晚失眠,到处寻找暗恋的药方,CPU大哥忙着计算,根本帮不上忙,显卡更是高傲地扇着风扇,一副过来人的模样:”这种事我见得多啦,回去洗洗睡觉,明天我还得渲染上岗“,还是硬盘忠厚老实,偷偷跟我说,过两天要整理碎片,到时你再这样这样。\n醒来时我发现已经被移到另外一个文件夹,粉红色的背景还有一个明亮的天窗,那首mp3羞涩地呆在那里,红着脸问我觉得装修怎样,哈哈,我心里想,要不是主人在意,谁会将一个文件夹弄成自定义的模样。\n无损压缩的时代就要来了,我说。到时我们肯定都人老珠黄,不如把握现在的时间做些更有意义的事情,比如,轰轰烈烈地爱一场。\nps:纯属虚构,如有雷同,那实在是巧合。\n","date":"2010-08-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/","title":"我是一首mp3"},{"content":"n年以前,n小于3,我偷偷地策划过一件事情,最终未能实现,因为太不着边际了。\n我想徒步去一趟西藏,在我又听了一遍《回到拉萨》之后。\n那时我想,我靠,就这么定了,我跟谁都不说,电话关机,从此消失,我要走着去西藏,找一个喇嘛庙,问一问人家,看能否收留我,出家算了。\n我差点把这事儿写进project做个详细的计划。\n一直没有想明白,为什么会对一个从不了解也从未去过的地方产生向往之情,也许冥冥之中觉得那是一方纯洁的圣土,我想去洗一洗,找找回家的感觉。\n受不了喧闹和高速的生活,一个人孤独地在这边单着,偶尔夜里躺床上做梦,总觉得有人在后面拿鞭子抽我。\n相当一段时间,我真是烦乱至极,劳累的工作导致身体的虚弱,长期的压力导致轻微的精神分裂,就像电影《搏击俱乐部》里的主角那样,人格差点儿分裂出去。\n于是就想做一件比较荒诞的事情来调剂一下,可惜未能实现。\n为啥未能实现哩,因为片刻之后我就恢复了理智。\n祖国还需要我,人民还需要我。那段时间我打电话给我妈,说我想回老家歇几年,哪怕几个月也成,未被批准。\n也就咬咬牙撑过来了,只是落下了一郁闷就想起徒步去西藏的毛病。\n今天又想起这事儿了。\n","date":"2010-06-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/","title":"走路去西藏"},{"content":"前一段时间,老爸在qq上和我视频,见我头发稍长,便催我尽快去理发。\n这事儿他催了我好几个星期了,但是天高皇帝远,将在外君命有所不受,我一直没去。\n我之所以没去,第一是因为我十分讨厌现在的理发店动不动就让我办卡,而且理发师也都很娘娘腔,唠唠叨叨个没完,第二是因为我有那么一点儿的叛逆心理,老人家想让我头发剪短显得精神一点,我还就想拿头发盖住耳朵显得颓废些,当然了,我并不是想培养那种长发半月不洗、胡茬上沾满饭粒的那种艺术家气质。\n从毕业后踏入社会到现在,我一直踏实工作,刻苦努力,从未有过吊儿郎当的岁月,花天酒地我没干过,打架群殴我没凑过热闹,打牌搓麻我更是没有兴趣,也就是听听音乐看看书,说实话我都替我老爸有这么个省心的儿子感到高兴。\n等一下,我说跑题了,今天是父亲节本来想夸夸老爸,怎么话题扯到我身上了。\n老爸身材高大魁梧(略胖),声如洪钟,气质不凡。虽说现在已是五十多岁,但只要稍作打扮,说他是四十来岁的小伙子都不过分。\n老爸是个教师,工作勤勤恳恳、一丝不苟,为祖国的教育事业做出了卓越贡献,成功地把我培养成一个正直乐观的人。\n由于他们那一代人是结结实实挨过饿的,所以他最痛恨的就是浪费粮食,东西吃不完也不允许我们扔掉,只得勉强吃下,结果吃成了一个看上去颇具成功人士气质的胖子,好在他脾气还凑合,面对我们对他肚子无情的嘲笑,他总是一笑了之。\n老爸从小受苦,在家里排行老大,在那个贫瘠的年代,早早地站出来把家里的事儿都撑了起来。\n所以他在叔叔们面前基本具备家长威严,都比较尊敬他。\n由于很小就出来磨练,老爸练就了一身社交能力,信奉以德服人,人缘那是相当好,喝酒那是相当能喝,办事儿那是相当利索。\n要说优点,当然是说不完的,但是我比较欣赏他的一个优点就是他“动手”能力差,所以我在挨揍的季节并没有挨过他的揍。\n呵呵,开个玩笑,他动手能力是差点儿,修理东西不会,这就给我很好的机会,我基本上从小学就把维修家里东西的业务给接管了,小到接个灯泡开关,大到修理冰箱洗衣机,反正他们敢让我修我就敢修。\n好吧,现在我也当父亲了,也能体会当父亲的心情。\n在这个父亲的节日里,衷心祝愿我的爸爸,身体健康,工作顺利。\n并在我个人资料里“最崇拜的人”那一栏谨慎地填上了“父亲”。\n","date":"2010-06-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/","title":"祝爸爸节日快乐"},{"content":"学习五线谱和钢琴大半个月了,使用Cubase录了一段自己弹奏的《落叶》虽然速度不稳,比节拍器忽快忽慢,但是好歹是用双手了。\n呵呵,左手好像弹错了。\n","date":"2010-06-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/","title":"汇报一下进展"},{"content":"我的blog两个周没有更新了,原因是我这两个周里每天的博客时间被别的事儿占用了,而这个别的事儿就是我在上一篇博客里给自己挖的坑(真够罗嗦),头脑发热买了几本五线谱来挑战自己,现在已经深陷此坑,练了十几天没啥进展,看着谱子上的小蝌蚪还是发懵,真是隔行如隔山呐。\n不过也再次验证了一个道理,欲速则不达,真是放之四海皆准的真理啊,21天无法精通C++,同样三个月也不可能学会吉他,两个礼拜想把钢琴弹好更是没戏。\n不过我这次倒是想坚持一下,至少现在哈农的前两个练习我是练熟了,手指也没那么僵硬了,总之吧,我要告别《两只老虎》的阶段!\n","date":"2010-05-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/","title":"两个周未更新了"},{"content":"头脑发热,买了几本钢琴和五线谱教程,准备牺牲每天写博客的时间来学习五线谱,想想就头大。\n","date":"2010-05-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/","title":"冲动是魔鬼"},{"content":"今儿在优酷上看到一牛人使用iDreamPiano演奏卡农,简直是绝了,http://v.youku.com/v_show/id_XMTE0MTMwMzI0.html。\n早就玩过iDreamPiano,不过仅仅是弹点儿“两只老虎”之类的,牛人果然无处不在,竟然把这个软件发挥到这种地步。\n随即,我也去搜了一下曲谱,网上已有好人专门制作了卡农的双手版简谱,赶紧也试了一下,果然很爽,虽然后面的我还弹不了,但前一段已经没问题了,很像那么回事儿,哈哈。\n","date":"2010-05-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/","title":"最爱的钢琴曲,竟然可以用这个弹"},{"content":"昨天又去打了一场篮球,体力比上次好多了,连续打了2个小时直到天黑。\n手感也差不多恢复了,只不过很长时间不打,会出现意识到但动作不到的情况,甚至眼睁睁的看着篮板球而“身不能至,心向往之”。\n打完之后,筋疲力竭,回家连写博客的劲儿都没有了,倒是睡眠很香,一觉睡到闹钟响,起来之后精神百倍,看来以后要多出去运动运动了。\n","date":"2010-05-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/","title":"以后要多锻炼"},{"content":"nan\n","date":"2010-05-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/","title":"一段比较有力度的架子鼓"},{"content":"我会弹弹吉他,这样可以压压我的手指,从中医学的角度来说,十指连心,是若干经络的起点,活泛活泛手指可以舒肝解郁。\n或者在房间里唱唱歌,先唱青藏高原再唱回到拉萨,两首歌下来,胃就舒坦多了。\n或者打开CS,把机器人的智商调到100,然后疯狂地用mp5与匪徒们对战,要是屡被爆头请尝试降低机器人智商。\n","date":"2010-05-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/","title":"郁闷的时候干点儿啥"},{"content":"不知道为啥,livespaces拒绝接收我从gmail发来的邮件,这下无法通过电子邮件来更新博客了。\n","date":"2010-05-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/","title":"无法通过email更新了"},{"content":"不折腾就不舒服,有个小巧的linux发行版叫做puppy(虽然没有slitaz那么变态的小,但也绝对值得推荐),我前两天忙里偷闲,把它装在笔记本的sd卡上了,经过一番折腾,一切配置妥当,甚至可以编译helloworld.c了,这个时候我发现一个严重的问题\u0026mdash;\u0026ndash;\npuppy没有提供可用的vim,本来我给笔记本安装puppy就是让它轻快地起来,然后我躺在床上,敲一两行代码,用以验证某些书上的内容,结果没有vim,计划眼看要泡汤了。\n比较讽刺的是,比vim庞大好几倍的编辑器emacs却躺在puppy的软件库中,抱着试试看的态度把emacs给装上了。\n虽然vim我用的不熟但至少还是可以拿起来干活儿的,而emacs这个据说是vim的唯一对手(当然,在口水战里,着两个编辑器总是扯不清)我却用得极其蹩脚,而且还不能抱怨,抱怨只能得到一大堆耻笑:“瞧你,连这个都用不好,你只需要这样然后再同时按下那个,最后,来吧再试试这段配置文件”,然后丢过来一大段充满括号的配置代码。\n如果说没有人会喜欢复杂的东西,我绝对不赞成,那么多的高手拎着成串的配置文件手脚并用地用着emacs,甜蜜地记忆着C-xCc,M-xfu××之类的长串命令。\n竟然还有人宣称完美地解决了代码补全的问题,真不知道他是否用过真正的代码补全。\n也许是我用的太蹩脚了,他们为什么会喜欢这么复杂的东西?\n","date":"2010-05-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/","title":"他们为什么会喜欢复杂的东西"},{"content":"今天要打篮球,开始时我还担心今天会下雨,因为按照以往的惯例,只要我们想打球,天气往往是立即下雨(这样的)。\n不过还好,今天天气很不错,非常配合,没有刮风也没有下雨,一切照常进行,还没下班我就迫不及待地把我的装备找了出来,n年前(n\u0026lt;4)的队服,上书醒目的11号外加公司logo,穿上球鞋,给篮球使劲儿打满气。\n其实至少有1年没碰篮球了,而且也没有其他的运动,不出所料,刚上场不一会儿,我就气喘吁吁,汗流浃背,两股战战几欲先走。\n不过等慢慢活动一阵儿之后,开始恢复手感,投进几球后渐入佳境,4v4淘汰赛也把别的队给虐下去了几盘,恍惚之间我又仿佛回到了18+的年纪。\n不过毕竟是28+了,蹦了不到一个钟头就再也没力气了,如果没有意外的话,明天肯定是浑身腰疼,现在只想再按照惯例喝杯冰镇啤酒,可惜我答应老爸不再喝啤酒了,还是白酒算了。\n","date":"2010-05-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/","title":"痛痛快快打了场篮球"},{"content":"篮球。\n","date":"2010-05-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/","title":"很久没打球了,准备明天打球去"},{"content":"最近霍金霍大爷又放话出来说,大家小心一些,最好不要惹了外星人,不然人类文明可能会完蛋。\n这边唱那边就有出来和的,一帮专家又跳出来分析说,大家也不要太担心外星人会跟我们动武。\n我看也是,确实不用担心,因为担心也没用。\n古时候有一说法,叫“天上一天,地上一年”,乍一听觉得不可思议,可是现在的物理学越研究就越发现古人说的有道理,当宇宙飞船在天上的飞行速度接近或者超过光速时,那确实是天上一天地上一年。\n做一个很俗的假设,其实神话中的天神下凡,就是外星人来地球逛街,至于七仙女什么的估计就是女外星人了。\n外星人能来地球得瑟,就说明他们拥有比我们先进的多的文明程度,要灭我们也是轻而易举,但是为什么还不动手呢?\n我想是因为宇宙中也有保护濒危物种的法律吧,猪再蠢,要是地球上的猪快死绝了,也得修好猪圈养起来。\n","date":"2010-05-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/","title":"跟着扯扯淡"},{"content":"基本忘记了五一节的真实含义,对我来说,其实就是有机会多睡两个懒觉,而生物钟被打乱的难受则让我已经开始怀念早起的日子,还好,明天就开工了。\n基本没有出去玩,因为终于有时间呆在家里,坐坐我的沙发,看看闲书,听听闲歌,真他妈闲啊。\n不过昨晚上还是和同事出去喝了小酒,而我们也充分发挥工作狂的精神,居然在饭桌上讨论工作内容,让随桌陪同的家属掩鼻而去。\n基本没有写程序,不过还是没有忍住,写了个小程序来处理我的照片。\n","date":"2010-05-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/","title":"五一小总结"},{"content":"上次整理硬盘的时候把我的照片一股脑儿的放在了一个目录下,这次又有闲功夫了,写了个python脚本来处理我的照片。基本思路是使用PIL库读取照片的exif信息,取出拍摄的日期时间,根据日期建立新的文件夹,然后照片文件以日期时间格式命名。批量处理,比较简单。\n1 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 #!/usr/bin/env python # -*- coding: gbk -*- \u0026#34;\u0026#34;\u0026#34; 复制指定目录的照片到目标目录,并且根据照片的拍摄时间进行重命名 比如某张照片拍摄于2008年3月15日12:00:00,则目标目录为2008\\\\03\\\\15\\\\120000.jpg \u0026#34;\u0026#34;\u0026#34; from PIL import Image import os import sys def get_dist_path(str, dist_dir): date = str.split(\u0026#39; \u0026#39;)[0].split(\u0026#39;:\u0026#39;) dirs = dist_dir + os.sep + os.sep.join(date) if not os.path.exists(dirs): os.makedirs(dirs) dirs = dirs + os.sep + \u0026#39;\u0026#39;.join(str.split(\u0026#39; \u0026#39;)[1].split(\u0026#39;:\u0026#39;)) + \u0026#39;.jpg\u0026#39; return dirs def copy_image(src_dir, dist_dir): for path in [src_dir + os.sep + i for i in os.listdir(src_dir)]: if os.path.isdir(path): copy_image(path, dist_dir) else: write_log(path) try: image = Image.open(path) except: log_str = \u0026#39;file open error: \u0026#39; + path write_log(log_str) try: dist_path = get_dist_path(image._getexif()[306], dist_dir) log_str = \u0026#39;dist path: \u0026#39; + dist_path write_log(log_str) except: log_str = \u0026#39;get exif error: \u0026#39; + path write_log(log_str) try: if not os.path.exists(dist_path): image.save(dist_path) except: log_str = \u0026#39;file copy error: \u0026#39; + path write_log(log_str) def write_log(str): global log_file log_file.write(str + \u0026#39;\\n\u0026#39;) print(str) def main(): if len(sys.argv) == 3: global log_file log_file = open(\u0026#39;cilog.txt\u0026#39;, \u0026#39;w\u0026#39;) copy_image(sys.argv[1], sys.argv[2]) log_file.close() else: print(\u0026#39;需要给出两个参数,第一个是照片目录,第二个是目标目录\u0026#39;) print(\u0026#39;例如:\u0026#39;, sys.argv[0], \u0026#39;e:\\\\photo f:\\\\goodphoto\u0026#39;) if __name__ == \u0026#39;__main__\u0026#39;: main() ","date":"2010-05-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/","title":"写了个脚本整理我的照片"},{"content":"1、建立一个简洁todolist\n,这个todolist可以使用任意方式建立,比如笔记本或者googletasks,总之就是一个简洁的任务列表,每天上午开始工作之前,将今天要做的事情逐条记录下来,按照要事优先的原则,我一般是把比较费脑子的事情放在最前面。\n然后每完成一项就在上面打勾,很有成就感。\n2、整理好自己的文档资料:)\n,给自己建立一个清晰有序的文档管理机制,这样当你需要某个文档资料的时候可以立即将其取出。\n我使用totalcommander+dokuwiki进行管理。\n将文档按照工作项目进行分类,而不是按照文件的扩展名分类。\n3、记录工作日志\n,每天记录工作日志可以有效分析出自己每天的时间花在了哪里,并改进自己对工作任务的安排。\n而且将自己的做的事情记录下来对记忆力来说也有好的帮助。\n4、关掉qq、msn\n,不上比较耗费时间的网站比如GoogleReader,工作时就是集中精力,不开聊天工具就不会被打扰,不开rss阅读器就不会有资讯压力。\n5、听音乐\n,带上耳机听听自己喜欢的音乐,这样工作时心情比较放松,思维也比较活跃。\n6、使用高效的软件和计算机操作方式\n,比如使用vim代替普通编辑器,使用totalcommander代替windows的资源管理器,使用脚本或批处理命令来代替大量的鼠标操作。\n需要整理思路时可使用freemind来绘制一张脑图。\n","date":"2010-04-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/","title":"提高工作效率的心得"},{"content":"极客,又译为技客、奇客,是英文单词geek的音译。\n具体解释参见这里。想起小时候干的一些事儿,以现在的眼光来看,颇具极客精神。\n小时候,我曾经嫌弃我家的收音机音量太小听音乐不过瘾,于是动手改造,本来两节干电池就可以正常使用,但是我把三节电池串联起来接在收音机的电池仓里,结果由于心理作用感觉上好像音量比以前更大了,于是我信心十足的把一个电源插头直接接在了收音机上,然后满怀希望地把另一头插在了220v的电源插座上,结果杯具发生了,一声巨响过后,浓烟滚滚,收音机被烧成了一个黑匣子。\n于是我只好央求我维修技艺高超的舅舅帮忙维修,后来那台收音机倒是起死回生了,但是舅舅悄悄告诉我,除了壳没换,其他的零件全换了!还是小时候,大概在上小学,突发奇想,把我妹妹的电子表给拆了个七零八落再也装不到一起去了,无奈只好哄她说我其实是想帮她把电子表改装成一个游戏机,就快成功了,再等等。\n中考的前夕,备考的压力非常大,炎热的午后,我实在是复习不下去了,动手把我床头的石英闹钟拆了,零件铺满了整个桌子,但是这次我慢条斯理的把它又给装好了,而且一个零件也没多出来,颇有成就感,只是由于把其中的一个线圈装翻了,导致这个闹钟的指针一直倒着走,直到考试结束我才又花时间把它给正了过来。\n嘿,那些时光多美好呀。\n","date":"2010-04-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/","title":"小时候干过的一些颇为geek的事儿"},{"content":"每天提醒自己。\n","date":"2010-04-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/","title":"不要浮躁,不要骄傲,不要让全世界都知道你的低调"},{"content":"软件如果不用最新版是可耻的,我以为。\n这个毛病把我折磨的够呛,每天都有大量新版的软件发布,我就更新更新再更新,每天就迷失在软件更新的过程中,不在更新中就是在下载更新的路上。\n然而,尝鲜总是要付出代价的,光怪陆离的新特性一个也没用上不说,新bug带来的烦恼却一点儿也没少。\n新系统、新软件带来的兼容性问题也纠缠不休,可我却乐此不疲,有点儿飞蛾扑火的味道。\n终于有那么一天,我顿悟了,次新版才是最好的!我说的次新版,也就是比最新版稍微老那么一点儿的版本。\n优点如下,你看,首先次新版的功能比最新版不会差太多,该有的基本都有,从使用的角度来说绝对是够用的,其次,次新版的稳定性大大高于最新版,因为经过了长时间的测试和bug修正功能的磨合已经趋于完美,不信的话你看看windowsxp就知道了。别信那些发布最新版时的噱头,什么“大大降低了内存占用”“显著提升了性能”等等,我们脆弱的心灵再也经不起忽悠。\n就拿开发环境来说吧,现在的vs2010发布了,也就是说赶紧用vs2008吧,因为它现在是最好用的,同样,听说office2010也出来了,也就是说是时候全面使用office2007了,ubuntu10.04今夜也就发布了,先别用,赶紧用9.10吧,目前来说9.10才是最完美的。\n呵呵,以上纯属忽悠,如有意外,那实在是巧合。\n","date":"2010-04-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/","title":"拥抱次新版"},{"content":"昨天天气不错,挺风和日丽的,杯具的是,这么好的天气一般都被用来加班了。\n今天使劲儿赖了赖床,起来后继续发扬热爱劳动的光荣传统,打扫房间洗洗被单。\n然后就淅淅沥沥下雨了,到现在洗的东西还没有晾干。\n翻了翻书,一页也看不下去,听说ubuntu10.04除了rc版的了,没有忍住好奇心,下了一个在虚拟机中耍了耍,网速慢的厉害,更新个语言包都慢腾腾的。\n一晃就到了晚饭时间,下着雨实在不想出去买东西,这下我的电饼铛派上用场了,面粉加鸡蛋转眼就变成热气腾腾香喷喷的煎饼,美美吃上一顿,准备睡觉。\n","date":"2010-04-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/","title":"休息总是在雨天"},{"content":"所以要加班。\n","date":"2010-04-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/","title":"因为要丰富工作以外的生活"},{"content":"由于喜爱python,我几乎每次装完系统就会立即给电脑装上python环境(当然了,大部分的linux的发行版都自带了)。\n不过,每次都要安装不少我常用的python库,比如pyopengl用来写写opengl什么的比较合适,pyqt用来写桌面程序也很好,陆续把这些库装完也挺费劲的。\n要说还是好人多,我这两天发现网上就有好人给整理了一个及其全面的安装包,叫做PythonXY,可以说是一旦安装别无所求,自带python基本环境,另外加上以eclipse为基础的ide,在加上ipython这个很好的shell,还包括numpy、scipy等等一大堆与数学计算相关的包,不多说了,自己去这里看吧http://www.pythonxy.com/,要下载完整的压缩包比较大,好像有4百多Mb。\n","date":"2010-04-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/","title":"关于python的好东东"},{"content":"我爱这个充满神秘的世界,有着无限多的未知,这么多等着我们去探索的未知加上我的好奇心,是我快乐的源泉。\n","date":"2010-04-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/","title":"无题"},{"content":"昨晚一时心动,把家里的电脑装上了windows7,一切都挺好的,特效也挺漂亮,可是我的创新声卡不发声了,以前在xp下的驱动一个也不好使了。\n去创新的官网上寻找驱动,发现人家已经不再理会这块10年前的声卡,无奈只好寻找各路的改版驱动,好在那个来自俄罗斯的好人还在辛勤的更新着他的kx驱动。\n赶紧下了个最新版的3550版驱动,安装完之后傻眼了,声音是能出来,可是怎么听都不对味,声音瘪瘪的,又干又涩,还不如使用板载声卡呢。\n再去网上搜寻一通,原来有人和我一样抱怨过了,而且据说某个版本的(3541)驱动还凑合,那就试试吧,但愿能行,不然我还得把操作系统换回去。\n","date":"2010-04-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/","title":"我的声卡悲剧了"},{"content":"从春节后开始的硬盘整理计划总算进行完了。\n通过这次整理我发现了我曾经认为很重要的文件其实一次也不会被用到,当我真正想用到哪些文件时,通常它们已经过期了(尤其是某些软件的安装包)。\n大量的工作文档也是整理的重点,杂乱无章的文件夹比乱糟糟的书桌更让我抓狂,期间我甚至萌生了自己写一个资料管理软件的念头,当然了,工作太忙,该计划被搁置(说不定哪天我真就卷起袖子为自己写一个)。\n目前来说,使用totalcommader这个绝世好软配合良好的管理思路,也基本上可以管理好那些资料了。\n当然在我翻遍文件夹之后,也找到了不少被遗忘的时光,我甚至找到了我在大学时自娱自乐录制的卡拉ok,恩,那时嗓音使劲儿装成熟,现在都快到了装嫩的年纪了。\n","date":"2010-04-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/","title":"整理完毕"},{"content":"最近一段时间,中午休息的时候我不再上网,这样我就基本上不在公司上GoogleReader了。\n随着订阅数越来越多,我的“未读条目”也爆炸式增长,听说有人为此苦恼不已,得了信息爆炸抓狂症。我的解决办法是,每天晚上回家,立即打开GoogleReader把未读条目全部清空,现在基本上每天都是在手机上阅读这些订阅了,上下班的路上,消遣消遣时间而已,哪有什么有用信息。\n","date":"2010-04-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/","title":"无用的信息"},{"content":"听说2012年北京的宽带会宽到20M到桌面,我靠,真是让我欢喜让我忧,喜的是,盼望已久的带宽终于上去了,忧的是,啥都上不了要这么宽的带宽干啥?\n","date":"2010-04-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/","title":"今天听说"},{"content":"集成开发环境(为了响应号召,我就不说是IDE了)是个好东西,使我们轻松迈入软件开发的门槛,轻松的点击几下“下一步”,瞧,一个软件就诞生了。\n以至于现在很多程序员只知道makelove而不知道makefile。\n我最早接触的集成开发环境应该是TurboC了,惭愧的是,我当时以为那就是C语言,没办法,当时确实分不清开发环境和编程语言。\n有大约半年的时间由于我未能正确的设置该环境的参数,导致我从教科书上抄来的代码统统不能编译通过,我还以为书上印错了咧。\n后来终于弄好了,在编写了各个版本的helloworld之后,终于对C语言开窍了,不过还是分不清程序语言和开发环境的关系。\n再后来遇见了VC6,跟着《21天精通×××》的教程也能用鼠标写出“大”程序了。\n若干年后的某一天,我研究某开源软件(该软件跨平台)的源码的时候,才第一次见到了makefile,第一次知道了原来在命令行下也能编译程序啊,于是恍然大悟,明白了集成开发环境只是一个“壳儿”。\n这才试着偶尔用记事本写写小程序,在命令行下编译。从那开始,我渐渐的倾向于,使用编辑器编写代码,使用makefile管理项目工程,使用命令行编译程序。\n而对于庞大臃肿、缓慢笨拙的集成开发环境越来越不满了。\n昨天,VS2010发布了,一大拨人在网上散发着欣喜的软文,疯狂的鼓吹它的强大和先进,喜新厌旧的人们昨天还用着VS2008,今天就将其抛弃,转而把VS2010揽在怀里。\n我想他们大概是喜欢那慢腾腾的编译速度并且可以趁机偷偷去喝上一杯咖啡吧。\n","date":"2010-04-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/","title":"集成开发环境"},{"content":"刚看到有人为本年度的旅游制定了完备的计划,恩,很羡慕这个家伙。\n不过说真心话,我不喜欢旅游,有那个时间的话,我还不如好好在我的老家待上一段日子,虽然不是什么山清水秀的地方,但是也算的上是空气清新了。\n我不想去青藏高原,也不愿意去丽江云南,好山好水对我一点儿吸引力都没有。\n与其奢望环游世界,倒不如多和老家亲近亲近,因为我怕有一天,我真的会记不起那里的模样。\n","date":"2010-04-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/","title":"我没有旅游计划"},{"content":"我是一个热爱学习的人,可是这是从学习编程开始的。\n上学的时候,我从没有过哪怕一丁点儿的热爱学习。\n虽然那个时候努力装出刻苦的样子,偶尔在邻居们教育孩子的口中听到以我为榜样的句子,可是我和他们心里都清楚,谁他妈的想学习!\n唉,仔细想想,委屈了邻居的孩子们了。\n小的时候,我应该是挺自闭的,虽说成绩还凑合,可是那都是应付考试的结果,回想我们的课本,除了小学数学还算是发挥了点作用,其他的都是垃圾,背的满满一书包全都是大便。\n先从语文说起罢,千篇一律的课文也就罢了,每回回都要划分段落然后总结所谓的中心思想,反复揣摩作者的用意,就算是作者根本没有那个想法,老师也千方百计地往某方面引导。\n至于思想品德课则更是对智商的严重伤害,脆弱的心灵一次次被无情的蹂躏,满满的答卷上全是对撒谎的最早练习。\n老师们极度推崇的课前预习也是我永远的心理阴影,我就想不明白,如果课前预习都把问题考虑清楚了那么还上课干嘛?每次都会有针对预习内容的提问,好好的课堂被搞的乌烟瘴气,听话的孩子翻开白眼,昂起头,骄傲地回答出老师希望的句子。\n期末考试永远是我们的噩梦,考不好承受压力不说,来自各方面的歧视又在伤口上再撒一把厚厚的盐。\n所谓三好学生,所谓学习标兵,做一个他们理想中的孩子吧,做一个“热爱学习”的孩子吧,只要你不想做你自己。\n","date":"2010-04-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/","title":"让我来骂一 骂那些学习的日子"},{"content":"现在的源代码都是纯文本,代码关键字、函数以及注释的高亮都是通过源代码编辑器或集成开发环境自己分析的。\n我在想,能不能有一种开发环境,他的源代码采用富文本的方式来存放,及程序员可以随时高亮某一段代码以示警告或提醒,将不同功能模块的代码来使用不同的颜色来显示?\n或者,更进一步的想法,代码的注释里可以加入任何内容,不仅仅是干巴巴的几句描述,而是可以插入一段视频或一幅图片,或者任意的一个附件在代码中?\n再丰富一下,在现有的以“项目”或“解决”方案为代码组织方法的基础上,增加代码以外的东西进入到开发环境中来,比如说,从软件需求的调研文档一直到设计文档,均与最终的代码有机的结合起来,也就是说,通过功能需求文档可以追溯到实现该功能的代码,反过来也可以从某行代码追溯到他所服务的功能。\n吼吼,这样做是不是有点儿太那个了。\n","date":"2010-04-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/","title":"关于支持富文本的开发环境设想"},{"content":"春天还是来了,虽然晚了一些。但树枝已经偷偷抽出嫩牙儿来,吹在脸上的风也不再恶狠狠的了,偶尔抬头向上望去,甚至能看见蓝天。\n我在路上懒洋洋地走着,边走边想,春姑娘还是来了。\n","date":"2010-04-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/","title":"懒洋洋"},{"content":"整理了一下自己的vim配置文件,记录在此以备忘。\n1 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 \u0026#34; 编码设置 set encoding=utf-8 set fileencodings=utf-8,chinese,latin-1,gb18030,gbk,cp936 if has(\u0026#34;win32\u0026#34;) set fileencoding=chinese else set fileencoding=utf-8 endif language messages zh_CN.utf-8 \u0026#34; 基础设置 set nocompatible set softtabstop=4 set shiftwidth=4 set tabstop=4 set bs=2 set autoread \u0026#34; read open files again when changed outside Vim set autowrite \u0026#34; write a modified buffer on each :next, ... set browsedir = current \u0026#34; which directory to use for the file browser set wildmenu set wildignore=*.bak,*.o,*.e,*~ set complete+=k \u0026#34; scan the files given with the \u0026#39;dictionary\u0026#39; option autocmd BufEnter * lchdir %:p:h \u0026#34; Change the working directory to the directory containing the current file filetype on filetype plugin on filetype indent on syntax on \u0026#34; 颜色设置 colorscheme koehler \u0026#34; 字体设置 set guifont=Consolas:h12:cANSI set guifontwide=youyuan:h12 \u0026#34; 折叠设置 set foldmethod=manual nnoremap \u0026lt;space\u0026gt; @=((foldclosed(line(\u0026#39;.\u0026#39;))\u0026lt;0)?\u0026#39;zc\u0026#39;:\u0026#39;zo\u0026#39;)\u0026lt;CR\u0026gt; \u0026#34; 界面设置 set showtabline=2 \u0026#34; 始终显示标签页 set guitablabel=%{tabpagenr()}.%t\\%m \u0026#34; 每个 tab 上显示编号 set guioptions-=T \u0026#34; 去掉工具条 set guioptions-=m \u0026#34; 去掉菜单 set guioptions-=r \u0026#34; 去掉右边的滚动条 set guioptions-=L set statusline=%F%m%r%h%w\\[FMT=%{\u0026amp;ff}]\\[TYPE=%Y]\\[POS=%l,%v][%p%%]\\%{strftime(\\\u0026#34;%d/%m/%y-%H:%M\\\u0026#34;)} set laststatus=2 set scrolloff=3 set nu set ruler \u0026#34; 查找搜索设置 set incsearch \u0026#34; use incremental search set ignorecase smartcase hlsearch incsearch \u0026#34; 将键盘上的 F12 健映射为执行当前文件 map \u0026lt;F12\u0026gt; :!%\u0026lt;CR\u0026gt; \u0026#34; 使用 Ctrl+Tab 键来切换标签页 map \u0026lt;C-TAB\u0026gt; :tabn\u0026lt;CR\u0026gt; \u0026#34; 快捷键设置 \u0026#34; F2 - write file without confirmation \u0026#34; F3 - call file explorer \u0026#34; F4 - show tag under curser in the preview window (tag file must exist!) \u0026#34; F5 - open quickfix error window \u0026#34; F6 - close quickfix error window \u0026#34; F7 - display previous error \u0026#34; F8 - display next error \u0026#34; Shift-Tab - Fast switching between buffers (see below) \u0026#34; Ctrl-q - Leave the editor with Ctrl-q (see below) map \u0026lt;silent\u0026gt; \u0026lt;F2\u0026gt; :write\u0026lt;CR\u0026gt; map \u0026lt;silent\u0026gt; \u0026lt;F3\u0026gt; :Explore\u0026lt;CR\u0026gt; map \u0026lt;silent\u0026gt; \u0026lt;F4\u0026gt; :exe \u0026#34;ptag \u0026#34;.expand(\u0026#34;\u0026lt;cword\u0026gt;\u0026#34;)\u0026lt;CR\u0026gt; map \u0026lt;silent\u0026gt; \u0026lt;F5\u0026gt; :copen\u0026lt;CR\u0026gt; map \u0026lt;silent\u0026gt; \u0026lt;F6\u0026gt; :cclose\u0026lt;CR\u0026gt; map \u0026lt;silent\u0026gt; \u0026lt;F7\u0026gt; :cp\u0026lt;CR\u0026gt; map \u0026lt;silent\u0026gt; \u0026lt;F8\u0026gt; :cn\u0026lt;CR\u0026gt; imap \u0026lt;silent\u0026gt; \u0026lt;F2\u0026gt; \u0026lt;Esc\u0026gt;:write\u0026lt;CR\u0026gt; imap \u0026lt;silent\u0026gt; \u0026lt;F3\u0026gt; \u0026lt;Esc\u0026gt;:Explore\u0026lt;CR\u0026gt; imap \u0026lt;silent\u0026gt; \u0026lt;F4\u0026gt; \u0026lt;Esc\u0026gt;:exe \u0026#34;ptag \u0026#34;.expand(\u0026#34;\u0026lt;cword\u0026gt;\u0026#34;)\u0026lt;CR\u0026gt; imap \u0026lt;silent\u0026gt; \u0026lt;F5\u0026gt; \u0026lt;Esc\u0026gt;:copen\u0026lt;CR\u0026gt; imap \u0026lt;silent\u0026gt; \u0026lt;F6\u0026gt; \u0026lt;Esc\u0026gt;:cclose\u0026lt;CR\u0026gt; imap \u0026lt;silent\u0026gt; \u0026lt;F7\u0026gt; \u0026lt;Esc\u0026gt;:cp\u0026lt;CR\u0026gt; imap \u0026lt;silent\u0026gt; \u0026lt;F8\u0026gt; \u0026lt;Esc\u0026gt;:cn\u0026lt;CR\u0026gt; map \u0026lt;silent\u0026gt; \u0026lt;S-Tab\u0026gt; \u0026lt;Esc\u0026gt;:if \u0026amp;modifiable\u0026amp;\u0026amp;!\u0026amp;readonly\u0026amp;\u0026amp; \\ \u0026amp;modified\u0026lt;CR\u0026gt;:write\u0026lt;CR\u0026gt;:endif\u0026lt;CR\u0026gt;:bprevious\u0026lt;CR\u0026gt; imap \u0026lt;silent\u0026gt; \u0026lt;S-Tab\u0026gt; \u0026lt;Esc\u0026gt;:if \u0026amp;modifiable\u0026amp;\u0026amp;!\u0026amp;readonly\u0026amp;\u0026amp; \\ \u0026amp;modified\u0026lt;CR\u0026gt;:write\u0026lt;CR\u0026gt;:endif\u0026lt;CR\u0026gt;:bprevious\u0026lt;CR\u0026gt; nmap \u0026lt;C-q\u0026gt; :wqa\u0026lt;CR\u0026gt; \u0026#34; taglist 设置 noremap \u0026lt;silent\u0026gt; \u0026lt;F11\u0026gt; \u0026lt;Esc\u0026gt;\u0026lt;Esc\u0026gt;:Tlist\u0026lt;CR\u0026gt; inoremap \u0026lt;silent\u0026gt; \u0026lt;F11\u0026gt; \u0026lt;Esc\u0026gt;\u0026lt;Esc\u0026gt;:T ","date":"2010-04-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/","title":"我的vim配置文件"},{"content":"想说说坐马桶上看书这事儿,记得在美剧《好汉两个半》里有这样一个情节,被老婆抛弃的那哥们儿有一天在书店里突然失去理智,变得歇斯底里,\n因为他想起来曾经发誓要读的书从来都没有读过,把这些书都抱在怀里哭泣不止,\n更令人沮丧的是他的花花公子哥哥劝他说,现在还来得及,虽然平时比较忙,但如果把这些书放在马桶上则可以每次大便的时候都看一段,这样应该也能弥补一些缺憾。\n可是这哥们儿哭着说,来不及了,把他余生大便次数都用上,也读不完这些名著了。\n呵呵,说的太对了,我觉得这个段子用来教育不爱读书的孩子估计不错,我们看了却只能苦笑一下。\n显然我也不认为在大便的时候读名著是个好主意,看着那些故事里的主人公在那里纠结不休,要么爱的死去活来,要么整天拧巴地思考人生意义,就算是你天天喝着蜂蜜外加一瓶开塞露也非得便秘不可。\n我觉得吧,为了身体的健康,如果非要在大便时看书的话,还是尽量的读一些短文好了,比如我以前就爱看看《读者》啥的,最近偶尔也提升点儿档次弄本《三联周刊》看看,不过总的来说,看的都是些文笔平顺、言语轻快能促进大肠蠕动的文章。\n今天收拾洗手间的时候,从马桶后面拎出了一大摞书,数了数,居然比我书架上的书还多。\n","date":"2010-04-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/","title":"马桶书架"},{"content":"不要被眼前的困难吓倒,认定你的目标,坚持下去。\n哪怕有一万个人对你说,不行,但只要你的心告诉你,行,那就是行,没有商量的余地。\n有时候越是简单的事情越难以做好,骄傲的人做不好,懒惰的人做不好,勤奋却不得方法的人也做不好。\n你觉得你谦虚了﹑努力了﹑方法也对了,那么,别灰心,坚持下去。\n\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;-重温《阿甘正传》有感。\n","date":"2010-04-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/","title":"永不放弃"},{"content":"今天是一年一度的愚人节,过得平淡无奇。\n大家慵懒得好像连开玩笑的心思也没有了,不过还是在互联网上看到了几条愚人新闻,聊胜于无。\n出镜最多的就数Google了,比如这个Google可以上传任意物体的新闻就比较有创意,还有这个说Google收购了核技术公司准备进行核研究的新闻,\n至于Google宣布改名为Topek和Google准备收购百度这两条新闻就比较无趣了,而这个关于Google街景提供红蓝眼镜3D观赏模式的新闻简直可以以假乱真了。\n其他的新闻就比较少了,国内的cnBeta也算是提供了一个比较搞笑的,称其不再支持ie6和flash,并且说的有板有眼,说实在的这条新闻我宁愿相信是真的。\n","date":"2010-04-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/","title":"愚人节的新闻"},{"content":"这场雨下的挺爽的,为什么呢?因为我带伞了。\n","date":"2010-03-30T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/20100330512-777160_huda455224a4084123d3affd1b1bc5440d_184393_120x120_fill_q75_box_smart1.jpg","permalink":"https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/","title":"春雨"},{"content":"我的硬盘整理行动已经开始了一周多了,期间最让我头疼的就属工作中产生的文档资料了,技术文章、幻灯片、项目计划等等等等。\n杂乱地堆放在我的各个硬盘里,好多东西不舍的删除,偏偏在用到的时候找不见,没用的时候又老在眼皮子底下碍事。\n曾经试过evernote来管理资料,可是对于大量的word文档不太合适,使用subversion又有点儿麻烦或大才小用。\n使用GoogleDocs倒是还凑合,可是说不定哪天就上不去了,到时候哭都来不及。\n干脆使用Google的桌面搜索,可是眼看着索引文件越来越大而且重装系统也是个麻烦事儿。\nmyBase也试用过,界面太朴素也可以接受,功能也很强大,就怕管理的文档多了影响速度,而且myBase是收费软件,使用单一文件数据库还得天天备份,麻烦。\n真的找不到合适的了,难道要自己动手写一个?\n","date":"2010-03-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/","title":"没有合适的资料管理软件"},{"content":"这个周末碰到的不是烂片,而是一部让人惊喜的电影\u0026mdash;\u0026mdash;《窃听者》。\n该怎样评价这部电影,我不知道,只能说好的电影,能够给人带来思考。\n而《窃听者》这部电影却在带来思考的同时又打动人内心最柔软的部分。\n故事也许很简单,但是讲好一个故事并不容易,在那样一个年代,或者是在这样一个年代,形形色色的人,做着自以为正确的事情。\n片中的主人公(我认为他才是男一号)工作在见不得光的地方,每天的工作就是带着耳机监听着“疑似坏人”的一举一动。\n随着时间的推移,他的思想渐渐转变,融入到被监听人的生活。\n影片的节奏平缓而又有力,细腻又不失大气,场景的色调和背景音乐低沉得像是一直饱含泪水。\n带着耳机的监听人在立场上渐渐站在被监听人那边时,连他自己都很难理解自己为什么要这么做,其实他只是在追随自己的心,哪怕为此付出了巨大的代价。\n如果说这个世界还有良心的话,那这就是良心。\n","date":"2010-03-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/","title":"不用了,这是给我的。"},{"content":"晚饭后,出去散步,春风拂面,颇有意境,遂赋酸词一首,改日谱曲。\n如下:\n我会做我自己只要我还愿意去寻找\n曾经,的美丽在幸福的日记里在漫漫岁月里\n有了你我不怕,孤寂\n我要好好爱你没有人能怀疑\n你知道我不能,失去你\n就算春风淅沥沥吹不走\n长夜思绪爱让我化不开,忧伤\n哪怕心中燃烧的梦想带来远方无尽的希望\n猜不透的是那里到底有没有天堂\n春天花儿悄悄地绽放背上重重流浪的行囊\n带不走的是你给我的清香\n","date":"2010-03-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/","title":"写歌一首"},{"content":"打开我的blog总是连接被重置,为啥?我这儿没啥敏感词啊。\n","date":"2010-03-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/","title":"连接被重置"},{"content":"下班的路上,下起了大雨,下了车仍然在下,没带雨伞,还好穿的比较厚,没有淋到,但是地上积水很多,把我的鞋洗的铮亮。\n不是说春雨像牛毛、像花针、像细丝吗?\n不是说随风潜入夜,润物细无声吗?\n","date":"2010-03-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/","title":"下雨啦"},{"content":"都说你是纯爷们,其实也只是个传说,这里没有纯爷们。\n","date":"2010-03-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/","title":"春天,GoogleBye"},{"content":"闲来无事,意淫一下千年以后人类是啥子样子哈。\n如果2012是真的,那么千年以后没有人类。\n如果不是,也许北京的地铁都修到31415926号线了,但是交通依然拥堵。\n那时候也许你的qq等级已经升级到两个天狼星外加5个太阳3个月牙(1G个太阳折合一颗天狼星)。\n那时候Google已经接管了地球上所有的计算工作,人一生下来屁股上就被栓个搜索框。\n那时候人当然已经不再是从娘肚子里爬出来,而是由计算机编译出来,他的“父亲”在web页面上选择他所具备的能力,可以选择他一生下来就会C语言或者偷菜,而且有多星系语言版本,当然了,能力越高就越贵。\n那时候所有的人都要求过织女星语4级,考不过不给办理银河系暂住证,当然了你也可以在开往木星的长途车站门口找到一堆办证的广告。\n那时候IE也应该支持W3C的浏览器标准了,如果IE还在的话。\n那时候会有一堆考古学家专门研究从地下挖出的碟片是盗版还是正版,当然了那时还是正版的值钱,到时会有一个电视节目叫“鉴碟”,拿着你收藏的碟片上电视节目的话,如果是盗版会被当场被锤子砸烂,不过有个例外是“A片不砸”。\n","date":"2010-03-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/","title":"千年以后的人类"},{"content":"1、装机\n要是在2000年左右买电脑装机器,除了要考虑cpu、主板和显卡之外,还有个板卡不能忽视,就是声卡。\n没声音,再好的戏也出不来,所以声卡作为一个多媒体电脑的基本配件在当时是十分重要的,记得当时很多厂家都在这个领域厮杀,启亨、帝盟、创新、雅马哈等,广告打得异常火爆,后来来自新加坡的创新公司创新赢得了这场战争。因为创新推出了一片极其牛逼的芯片EMU-10k1,利用该芯片制造出了一拨红的发紫的声卡产品\u0026mdash;-SB-Live系列(我们背地里管它叫傻逼的生活)。\n后来一个计算机标准出来了,那就是AC97,主板逐渐集成了声卡,开始还依赖cpu的运算偶尔还要爆音和死机,后来技术日趋成熟,遍地都是板载声卡了,主板厂商要是不集成声卡都不好意思跟人家打招呼了,这下好了,装机的配置单上再也没有“声卡”这个选项了。\n2、波表\n我的第一台计算机配了一块杂牌声卡,我估计音质还比不了现在的集成声卡,但是该声卡集成了一个FM合成器,我当时爱玩一个叫“快乐电子琴”的音乐软件(感谢这个软件,因为这个软件我后来才买了台雅马哈电子琴),利用该软件可以在电脑上叮叮咚咚地弹电子琴,也算是过过电子琴的干瘾。\n这个软件之所以可以发音就是依赖了我声卡上的FM合成器,不过乐器的音色很假,敲鼓的声音像是在放屁。\n直到有一天我去同学家里玩,他有一块雅马哈724声卡,我给他装上了“快乐电子琴”,一弹奏我就惊呆了,乐器的声音太逼真了,跟真的一样,比起我那个FM合成器声音有天壤之别,后来屡次查资料这才认识了“波表”这个东东,这是一项MIDI技术,如果要说清楚的话估计得说上三天三夜,这里就不详细介绍了。\n不过雅马哈的724声卡其实并非带了硬件波表合成器,而是通过软件模拟的,发声会有一些延迟,但是已经很不错了,软件波表模拟器后来发展的也不错,能力也大大超过了硬波表,不过这就是后话了(现在的计算机上如果是windows系统就都有一个软波表,音质一般,有延迟)。\n再后来我的另一个同学有块创新PCI128声卡带了个8MB的硬波表合成器,这个声音又让我吃惊了一下子,这次就更逼真了,而且声音实时发出,不带一丝一毫的延迟,软件波表模拟器的最大的缺陷在这里被一扫而光。\n3、ASIO\n我后来有了一块创新的SB-Live声卡,用了快8年了,这么多年我换了3台计算机,但是声卡一直用的是这一块。这块声卡经典到无法用言语来形容,目前在我的电脑上通过kx驱动,发出的声音甜美清澈,音质是那些集成声卡脱了裤子也撵不上的。\n虽然已经停产了,但是仍然可以在网上买到旧的,听说有人收藏了上百块这款声卡,可见其经典程度。\n更难能可贵的是,有了kx驱动(一个非官方的改版驱动)可以使此声卡支持ASIO(一种音频标准),在Cubase等录音软件下可达到实时渲染声音的效果,行话叫“听湿录干”,要是普通声卡的话就有很大的延迟,想想你唱卡拉ok时过了几秒钟声音才发出来的尴尬,所以支持ASIO可以让我在CuBase下直接唱卡拉OK,而且可通过各种软效果器随意处理自己的音色。\n4、现在\n很少有人再去关注声卡了,厂商也不再大力宣传他们的声卡产品,那些肯花五千块钱配电脑的人宁愿其中有一千块钱花在显卡上却不愿花三百块钱买块差不多的声卡。好吧,那你就忍受集成声卡那粘粘糊糊的音质吧。\n","date":"2010-03-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/","title":"声卡那些事儿"},{"content":"周末,挑了一部尼古拉斯凯奇的电影,看完了不得不说,白瞎了尼古拉斯凯奇了,不过竟然看完了,知道是哪部了吧?\n","date":"2010-03-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/","title":"烂片时间"},{"content":"随着时间的推移,硬盘上的东西积累的越来越多,硬盘也由原来的一块到现在的四块,大容量的硬盘对于偏执狂就是一个噩梦。\n早就意识到硬盘需要整理,可是我的整理速度却赶不上硬盘里的垃圾堆积的速度。\n有些东西明明“没有用”却不舍的删除,而真正需要用到的时候却死活找不到放在那个文件夹下面了,曾经使用过Google的桌面搜素,确实不错,可是该程序的索引会越来越大,渐渐达到难以忍受的地步,只得停用。\n我决定狠一狠心,花掉这个周末,彻底整理好硬盘上的文件\u0026hellip;\u0026hellip;\n","date":"2010-03-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/","title":"我是无法整理好我的硬盘了"},{"content":"最早对听歌有印象应该是在八九岁的时候,追逐时尚(当时还没有‘时尚’这个词)的三叔买了当时比较酷的双卡收录机,呵呵,年轻人嘛。\n我就从那个时候起开始听磁带,磁带比较匮乏,基本上没啥可挑的,偶尔只有戏曲磁带也得将就着听。\n估计当时就是90年代吧,记不清了,好像还流传过一阵子囚歌(愁啊愁啥的),后来又有电视连续剧《渴望》、《篱笆女人和狗》等里面的插曲流行,我记得我当时听一遍就学会了《篱笆女人和狗》里面的一曲《过三关》,还好当时还小,啥也不明白,现在回想起来,那绝对是一首“黄色歌曲”,比邓丽君的歌“黄”多了(当然我当时不知道邓丽君),不信你可以去查一查歌词,不过要说这是艺术的话也能给糊弄过去(其实仔细品味宋祖英的《十八弯的水路到我家》也有那个意思)。\n没办法,在农村的乡下,也就听这些歌了,将就了。也有一阵子流行《黄土高坡》、《信天游》什么的,后来我才知道,人们管那一阵子叫“西北风”。\n镜头再往现在稍微推一推,我就开始听到港台歌曲了,第一首有印象的港台歌曲是刘德华的《来生缘》,第二首是叶倩文的《潇洒走一回》,第三首是郑智化的《水手》,算是对流行歌曲的正式启蒙吧,那时家已经搬到了镇上。\n后来学习开始紧张了,没机会听到更多的流行歌曲,但是还是很喜欢听的,基本不放过听歌的机会,偶尔也会攒点儿零花钱去买磁带,但当时的零花钱简直是少的可怜,一盒磁带要十块钱左右,所以我很少买,不过我现在还记得买的第一盒磁带,是一个大杂烩合集,周华健《风雨无阻》、张学友《偷心》、谭咏麟《青春梦》等等,都是在那盒磁带上第一次听到。\n这些歌应该不是那年才刚刚流行的,但我肯定是那时才接触到。由于信息的闭塞和经济的欠发达(就是穷),我听歌的节奏一直比别人晚了半拍(这是后来上了大学才知道的)。\n比如他们听张信哲的时候我还不认识这个人,我听张信哲的时候他们已经在听周杰伦了。\n现在我偶尔也听周杰伦了,但是他们都不听周杰伦了。工作以后,有一天我跟同事聊天说道:“我怎么现在才觉得欧美的80年代摇滚那么好听呢?是不是我的欣赏水平才达到人家80年代的水平呢?”还是我的同事有水平,沉吟片刻,给了一个很牛逼的答案:“不是越往现在的东西就越好,比如瓷器就是越老越值钱,越是现在的就越便宜\u0026hellip;\u0026hellip;”\n","date":"2010-03-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/","title":"听歌随想"},{"content":"前一阵子突然想玩玩在手机上写程序,以前也写过j2me的,这次图个新鲜就挑了pythonfors60,还算比较容易掌握,于是就随便写了个帮助我自己查话费余额以及gprs流量的小程序,基本能用,后来由于太忙就懒得再完善了,随便打个包装在我的e71上了事。\n前几天老婆也让我给她装个这样的程序,我才发现问题所在,我没有开发者证书(这个据说要掏钱向nokia购买),打包成的sis安装程序在破解过的手机上可以随便装,但是没破的就无法安装了,而以一个普通用户的水平,诸如这些申请证书、软件签名、高权限、破解等几乎无法独立完成,甚至无法理解。\n靠,把话题扯远一些,再说说nokia提供的开发环境,如果使用c++开发的话,光是开发环境的配置就足以让人抓狂的,不能在linux下开发不说,在windows下开发还得把编译环境和sdk安装到同一个盘符下否则打死都不能编译通过,在某些笔记本上就连模拟器也有必须插上麦克风才能正常启动的怪癖。\n所以说nokia这么做只会让symbian平台慢慢死去或慢慢去死,以后就算不被android压住风头也会被自己玩死。\n我的建议是,提供好用又免费的开发环境,彻底摒弃垃圾的软件签名机制,提供类似于appstore的软件商店(听说也有了)。\n总之就是吸引开发人员开发出大量牛叉的应用,这样才“科技以人为本”而不是以坑人为本。\nps:看来nokia把宝压在qt上了,我也是比较看好qt的,也希望nokia能够发挥好qt。\n","date":"2010-03-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/","title":"想出s60软件签名机制的家伙脑子一定是被驴踢了"},{"content":"前一阵子我养成了一个不良好的习惯,睡前听相声,甚至达到了不听就睡不着的地步。\n说出来怕郭德纲不高兴,我听他的段子入睡最快,不过也许他会说一句“我很欣慰啊”。\n如今的相声段子太少,很快就无法听着新鲜段子睡觉了,而老段子则是催眠效果不佳。\n行动吧,改掉这个坏毛病。\n于是,我把音箱从书房搬到客厅,然后又搬到卧室,每天晚上睡前从《加州招待所》一直听到《喜洋洋》,渐渐发现我现在竟然能听的进去民乐,甚至还喜欢上了。\n","date":"2010-03-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/","title":"不听相声听音乐"},{"content":"折腾,大部分情况是贬义,有一种没事儿找事儿的味道,或者是重复地捣腾一些无意义的事情。\n大概就这么个意思吧,详情可以去查词典。\n对照一下,发现我是个不折不扣的爱折腾的人。\n我的这个特质在计算机方面几乎发挥到了让人发指的地步,比如在大学的时候,我几乎每周重装一次操作系统,后来无意中把Win98的序列号(QY7TT-VJ7VG-7QPHY-QXHD3-B838Q)给背了下来,你看,竟然现在还记得(敲了那么多遍,记不住才怪)。\n这个爱重装系统的癖好差点儿保留到工作以后,直到后来工作忙了,实在无暇顾及才消停。有一阵子我认为听音乐的感受跟音箱的摆放有很大关系,于是就反复调整喇叭的位置,比如挂在蚊帐上、放在洗衣机里、塞到书架里等等,虽然知道这么做没啥意义(不像许三多那样整天想着做有意义的事情),但是还是无法停止。\n最近还流行一个词叫MOD(改造),其实就是折腾,好好的东西改的面目全非却让人着迷,虽然不会把吹风机改装成刮胡刀,但是可以把台式机改造成便携机,或者把笔记本电脑改造成平板电脑,据说有公司专门负责干这个还挺赚钱的。\n还有一种折腾是总想让手里的工具达到一种无限趋近完美的状态,或者榨干它的最后一丝潜力,这些貌似无聊的事情,有个很大的原因是因为个性里多少有点儿完美主义或偏执的性格。\n这里的例子很多,并不局限于计算机上,生活中的各个方面都有,比如据传闻有牛人在开车起步的时候先挂一下倒档,这样使自己的手动挡的车在别人看起来像是自动档的了,哈哈,玩笑。\n折腾是一种生活态度,在我看来甚至是一种美德,一个人喜爱折腾并非是缺心眼儿,而是说明其有活力、有追求。\n爱迪生如果不爱折腾可能我们现在还在点着蜡烛,牛顿不爱折腾的话我们也不会在学校里里受尽高等数学的折磨,福特要是不爱折腾我们现在的交通也许不会这么拥堵,骑着马去赶集,够拉风,我靠,怎么说着说着论证反了。\n总之吧,我觉得上苍就是保佑爱折腾的人,怎么地吧。\n","date":"2010-03-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/","title":"上苍保佑爱折腾的人"},{"content":"虽然理论上已是春天,可是很显然今年真正的春天要比往年来得要晚一些。\n星期天的早晨不太想睡懒觉,拉开窗帘就看见大雪纷飞的天气,恩,这种天气最适合缩在家里,看个电影或者看看书,总之,是个适合宅在家里的天气。\n","date":"2010-03-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/","title":"真是个不错的天气"},{"content":"一直后悔书读的太少,用他们文化人的观点来说,我几乎算上是文盲级别的。\n记得有人开过一长串的书单,曰:没读过这些书的都算文盲。\n我扫了一下列表,光是外国名著就占了很大一部分,像我这种看见翻译成中文的外国人名就头疼的人,肯定算个不折不扣的文盲了。\n学生时期,我所看的文章大部分来自于语文课文,偶尔有课外读物也是吹得没边儿没沿儿的童话故事。\n厚部头的书几乎没有耐心把封皮看完。\n后来用掌上电脑看书,没有了厚度的压力,我才能把金庸和古龙看完,嘿嘿,就算是补看,也补武侠小说。\n前两天又有人出来得瑟着整书单出来,告诉别人这辈子最该读什么书,我操,我该读什么书先搁一边儿,你凭什么在那儿指手画脚。\n最讨厌的就是这些家伙,动不动就告诉别人该这样该那样,什么这辈子一定要去的几十个地方啦,做人一定要注意的十个方面啦,一天一定要喝八杯水啦,你大爷的,你自己的事儿整明白了么?嗯?\n","date":"2010-03-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/","title":"该读什么样的书"},{"content":"今天是女儿的生日,祝她生日快乐,健康、平安。\n","date":"2010-03-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/","title":"今天是女儿生日"},{"content":"今天起的很早,天气转晴了,冷的厉害。\n检查手机电邮时发现忘记换电池了,赶紧给手机换上。\n公交车又迟迟不来,烦。\n","date":"2010-03-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/","title":"模仿最近比较 流行的日记格式"},{"content":"在辽阔的金黄色的麦田里,微风吹起麦浪,主人公的背影慢慢出现,伸手轻抚麦穗。\n在麦田的对岸,有守望他的亲人,这是我最喜欢的电影画面,来自《角斗士》。\n","date":"2010-03-10T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/4681282-739763_hu2d43eafb317e22bc3c8a13510615bd6e_33587_120x120_fill_q75_box_smart1.jpg","permalink":"https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/","title":"我最喜欢的电影画面"},{"content":"北方的天气就是干燥,在房间里放上半杯水,没两天就干了。\n睡上一觉醒来,鼻子和喉咙都干的够呛。\n经过同事的建议,买了个“空气加湿器”,京东的送货速度就是快,昨天下的订单今天就到了。\n拆开一看,根本就不是多么高级精密的仪器,是一个塑料水杯,通过马达把水打成很碎的水雾然后喷出来而已。\n试试效果如何,先喷一晚上再说。\n","date":"2010-03-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/","title":"买了个加湿器"},{"content":"刚才老婆短我,问我为啥博客不再更新了,并表示期待看到我继续更新此博客。\n本来,对网络环境十分失望,写了博客也无法正常访问,养成写博客的习惯也慢慢丢弃。\n有心不再更新livespace的博客而专心使用blogspot,无奈blogspot长期被挡在墙外,老婆大人当然无法访问,而老婆通常又是我博客的VIP读者,所以,既然老婆要求我仍然在此唠叨,那就继续在此更新吧。\n","date":"2010-03-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/","title":"应老婆大人要求,继续写博"},{"content":"byebye另一个blog地址仍然有效http://sbabybird.blogspot.com\n","date":"2010-02-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/this-blog-is-shutdown/","title":"this blog is shutdown"},{"content":"大前天(2010-01-25)的晚上,我更新了一篇博客叫“中了数码产品的毒”,通过email同步更新到我的在blogspot上和livespaces上的日志里,结果livespaces里无法显示。\n本来就觉得livespaces用着有些别扭,因为blogspot在国内无法访问,没办法才同时更新livespaces作为备份的。加上这两天盖茨又在叫嚣不利于互联网和谐的声音。于是,前天晚上,我在livespaces里说,不再更新livespaces,还发了一通牢骚。\n结果,在今天发生了时空大逆转,大前天发的那篇博客又出来了,而且显示在前天晚上的那篇牢骚之后,真是无奈啊。\n也许是livespaces的邮件系统出了毛病吧,唉,你说我还要不要在livespaces上继续更新之?\n","date":"2010-01-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/","title":"经历时光倒流"},{"content":"05年的时候,我迷恋上了摄影,确切地说,是迷恋上了数码相机。\n那一阵子,我觉得我得马上买一个数码相机,没它不行,走在路上也想着我拿着相机到处“喀嚓”的感觉,不时地拿手比划比划进行所谓的“构图”。\n于是乎,我天天看评测报告,看各个相机的参数,由于当时还算比较理智,没有买单反的,随便买了个消费型的数码相机,其实也不是很随便,至少具备手动功能,成像质量也不算太差,但是跟专业相机比起来仍然是玩具。\n不过偏偏有人鼓吹“照片拍的好坏不取决于硬件,某某大师也能用傻瓜相机拍出经典来”。\n导致我那阵子还研究了一下光圈和快门的关系,甚至还背了景深表。\n不过,很快我就发现,两点一线的生活并不适合学摄影,热度也慢慢下降,那个数码相机也被丢到角落。\n华硕刚刚推出上网本的时候,我又迷恋上了,就是所谓的“中毒”,也觉得要马上买一个回来,这东西简直就是给我量身定做的,每天在路上惬意地写两段程序,多美好啊,我想。\n不过,很快就发现,上网本的键盘简直是一种刑具,按键小的像米粒,在上面打字备受折磨。\n屏幕也很小,看起来很费眼睛,所以,我的视力下降了。\n唉,回顾一下,那么多诱人的数码产品到底给我带来了什么?从文曲星的电子词典到华硕的上网本,从诺基亚到黑莓,这些曾经使我严重中毒的东西,没有一样发挥出我没有拥有时所想象的功能。\n最近我又中毒了,看上了亚马逊出的电子书,恩木,电子墨水屏幕,超便携,wifi,省电,看起来是那么诱人。这也就是为什么,我要写下了上面的那些文字,因为我要给自己解毒。\n简单地回顾了一下,我仿佛听到这些电子产品说,“你不要迷恋哥,因为哥只是个传说”。\n","date":"2010-01-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/","title":"中了数码产品的毒"},{"content":"第一,livespace太难用了。\n第二,2010年我想做些有意义的事情。\n第三,在blogspot上的博客继续更新。\n第四,无限期暂停更新此博客。\n第五,我个人十分讨厌微软的产品。\n","date":"2010-01-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/","title":"不再更新这个博客"},{"content":"刚刚看了这个视频,乐得够呛。暴躁是人的天性,虽然平时不怎么打游戏,不过我也偶尔会有这些冲动,只是显示器和键盘实在是太委屈了。\n","date":"2010-01-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/","title":"可怜的显示器和键盘"},{"content":"这个世界从来不缺乏新鲜的点子和想法,缺的是把想法实现出来,并坚持下去。无论做什么事情,随着刚开始的新鲜感渐渐退去,随之而来的就是对耐心和毅力的考验,是的,这世道就是这样,就像他们说的那样,人生就像那啥,能够挺到最后的都是纯爷们。\n我从去年开始,准备一点一滴的整理自己的“个人知识管理系统”,期间使用过各种软件,包括但不局限于“evernote”、“trac”、“dokuwiki”等等。\n每一次都是浅尝辄止,稀稀拉拉地整理了几篇文章,然后慢慢地落了一层灰。\n固然有“工作忙”这个屡试不爽的借口,但每当想起自己当初信誓旦旦定下的计划还是有些不爽。\n这次在年初的计划里,我又列出了整理“个人知识”的计划,看来是非执行不可了。\n也许等我整理好了,英特纳雄耐尔也就实现了。\n","date":"2010-01-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/","title":"坚持"},{"content":"老旧的计算机除了扔掉还能干点儿啥?\n其实只要发挥创意,老电脑还是可以发挥一些余热的。\n下面是一些牛人想出来的点子:\n1、驱蚊,蚊子十分讨厌频率为6k左右的声波,根据这个传说,编写程序控制pc的小喇叭发出这个频率的声音就可以达到驱蚊效果。\n这个我也曾经做过测试,发现纯属骗人,而且6khz的声波仍在人耳的听觉范围之内(20~20k)所以蚊子没赶跑倒是把人给吵晕了。\n2、烧烤,有牛人拿旧机箱来烧烤,这个没啥技术含量只要舍得就行。\n3、哄baby睡觉,这个比较绝,利用程序控制电脑的光驱开合,从而拖动婴儿车来回移动,达到催眠的效果。\n","date":"2010-01-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/","title":"高人无处不在"},{"content":"今天发现这个http://3d.pptv.com/看电影的网站(我火星了吗?),在线提供3d电影的视频,当然也是需要3d眼睛,不过是那种最古老的3d眼睛,即红绿3d眼镜。\n网站速度还不错,据说带上3d眼镜之后在普通显示器上也可看到3d效果了。\n可惜手头没有材料,要不然就自制一个了。\n据说这种眼镜没啥技术含量,随便拿两个塑料片就可以了。\n","date":"2010-01-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/","title":"在线看3d电影"},{"content":"刚看到一个模仿“一虎一席谈”的节目,提出一个争议话题,找了两组因为利益不同(而导致观点不同)而针锋相对的人在讲台上掐架。\n感觉还行,可以当小品看。\n","date":"2010-01-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/","title":"地方台的电视节目,偶尔也有能看的"},{"content":"我的记性不大好,一般都是靠手机的日程表来安排事情。\n于是今天早晨,我的手机提醒我,妹妹的生日到了,我赶紧发短信以示祝福。\n结果不一会儿妹妹就回复短信\u0026quot;你发错了吧,我的生日还差好几天呐!\u0026quot;,仔细一看手机的日期,我靠,提前了好几天。\n原来是不知道什么时候错调了手机的时间,看来,电子的东西还是不能太信任。\n","date":"2010-01-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/","title":"时空错乱"},{"content":"不好意思,最近总是频繁提及Slitaz这个小巧的Linux发行版,我已经把它安装到我的epc上了,驱动齐全,启动和运行速度飞快,安装了最新版的firefox和flash插件,vim当然少不了,可是官方的iso里面并未附带中文的支持,所以打开的中文网页都是乱码。\n到网上搜索汉化的方法,发现都比较麻烦,于是自己摸索了一个省事儿的办法。\n首先就是准备好一个字体文件,可以直接从已安装的Windows系统里选取喜欢的字体文件,但是我不推崇这么做,因为Windows下的字体都是有版权的,所以推荐使用“文泉驿”系列字体,我选择了“文泉驿微米黑”,可去官方网站下载。\n将下载后的字体文件解压到\u0026quot;/usr/share/fonts\u0026quot;下使用root用户执行命令fc-cache好了,现在打开firefox在选项里字体的选择框里就可以选择刚刚安装的字体了,然后在看网页就可以显示中文了。\n如果遇到播放flash出现乱码的情况,可执行这个命令\u0026quot;mv/etc/fonts/conf.d/49-sansserif.conf/etc/fonts/conf.d/49-sansserif.conf.bak\u0026quot;这样就可以了。\n现在就剩下桌面环境以及程序菜单是英文的了,不过这个没关系,想汉化的话直接修改openbox的资源配置文件即可,不过我就懒得弄了。\n","date":"2010-01-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/","title":"不用那么麻烦,轻松使slitaz支持中文"},{"content":"我从来没有看过演唱会,我曾经想象着这样的场景,歌手在光亮的舞台上扯开喉咙唱歌,我和无数歌迷在舞台地下挥舞着荧光棒也扯着嗓子高呼。\n可是我从来没有这样做过,因为我已经错过了那个季节。\n我也曾幻想着那样的场景,我理着光头,抱着吉他在舞台上扯开喉咙唱歌,千万的听众也挥舞着荧光棒随着高呼,但是我也错过了那个季节。\n我也是个热爱音乐的人,也偏爱着某些歌手,我也曾想象着去听某些人的演唱会,但是我想我不会去了,因为我知道,有些歌我在演唱会上要是跟着唱的话,会无法控制自己的情感而轻轻啜泣。\n张学友有一首歌叫《她来听我的演唱会》令无数恋爱中的女人为之动容,因为这首歌唱出了从少女到女人的心路历程。从浪漫的青葱岁月到现实的装b季节,无数的少男少女经历了从梦想的飞蛾到蚕蛹的转变。\n正像崔健在《假行僧》里唱到的那样,我要从南走到北,还要从白走到黑,我要人们到看到我但不知道我是谁,假如你看我有点儿累就请你给我倒碗水。。。。。。\n今天,我的一个好哥们,雅兴大发,拼命挤到网上淘得一张齐秦在北京演唱会的门票,欣喜若狂。\n我很羡慕他还有这个心情去看一场演唱会,在这个充满压力的某些时候还令人沮丧的世界,仍然能保持梦想并执着于自己的爱好。\n","date":"2010-01-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/","title":"她来听我的演唱会"},{"content":"前两天在试用Slitaz的时候发现其中带的Geany是个不错的IDE(想想吧,Slitaz才不到30M的身材竟然还带了个开发环境),Geany轻巧快捷,功能齐全,具备基本的代码高亮和自动补全功能,用来写python脚本真是个不错的选择。\n难能可贵的是其还支持插件扩展(这年头要是拿出个软件还不支持扩展就真不好意思和人家打招呼)。\n当然了,就编辑功能来说有些弱,但是作为Slitaz这个小巧系统下的开发环境真是再合适不过了。\n","date":"2010-01-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/","title":"Geany,不错的IDE"},{"content":"Google,一个IT公司,一个搜索引擎,对我来说几乎意味着整个互联网。\n本来在我的心目中,IT公司几乎等于骗子,然而Google却是个例外。\n自打开始接触互联网以来,就离不开Google了,她可以说是我的良师益友,离开大学以后学到的知识几乎全部来自于Google的索引。\n除了出色的搜索功能之外,Google提供的产品无不令人惊叹,出色电子邮箱、Rss阅读器、浏览器、操作系统、手机操作系统,这些产品每一个拿出来以后都足以让原本在该领域内的佼佼者掩面而去。\n可是,马上就要说再见了,总部那边发布了一篇博客,用某些动物的话说叫“撒了一下娇”,一下子就把这边的用户给抛弃了,就像上次operamini抛弃大陆用户一样。\n一时间有人高兴,有人悲伤,有人麻木,有人抓狂。\n技术人员大都是不关心敏感词的(或懒得关心),可是热爱技术的人哪一个不热爱Google呢,据我的感受来说,但凡是有所能力的技术人员,无论他的外表多么的随和其内心都是十分倔强的,正是凭着这一股倔强的劲儿才啃下了一个个难题,掌握了常人所不能(或不齿)掌握的东西。\n然而这些人却一点一点的被逼到了墙角。\n倔强的人会放弃吗?想到一个故事,记不清从那个文章里看到的了,歌词大意是:一个大山里的人被带进了繁华的大都市,第一次看到了这花花世界还有这么多活法,然后被告知回去继续过原来种菜喂猪的日子,此人大哭:“既然无法得到却又为什么让我看到啊”\n嘿嘿,我宁愿从来都没有看清过这个世界。\n","date":"2010-01-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/","title":"难以说再见"},{"content":"今天的气温在极冷的情况下又骤降,这是我遇到的最冷的冬天了,走在路上,鼻涕先给冻出来然后再给冻回去最后结成冰。\n最近十分痴迷于在我的小笔记本上试验各种版本的操作系统,今天继续。\n","date":"2010-01-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/","title":"痴迷"},{"content":"如题。\n","date":"2010-01-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/","title":"好像又不能访问google了"},{"content":"早就对google的android系统垂蜒三尺,终于看到了这个android-x86,原来是有几个好心人把android系统移植到了x86平台,喜欢折腾的我当然不能错过。\n看网站上的介绍是支持epc的硬件,遂下载了iso刻录到我的优盘上,简直是帅带了,一次启动成功,速度不错,无线网络可以开启,电池电量也可以检测。\n界面果然是为手机设计的,可惜我的epc不是触摸屏,但是有键盘,操作起来还算说的过去,比如现在这几行文字就是在此系统下打出来的,也是google的拼音输入法不过是针对android的,使用键盘选字不是太方便。\n想截个图结果没找到截图软件,按printscreen按键也不行,算了,先玩玩吧,毕竟不是为笔记本量身定制的系统。\n","date":"2010-01-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/","title":"在我的epc上运行android"},{"content":"记得小时候有一次看电视,新闻报道说某地某羊肉泡馍饭馆生意火爆,去吃羊肉泡馍的人络绎不绝,而且都喜欢装模作样的自己把馍慢慢掰碎了扔进碗里,感觉那样才有味儿。\n昨天晚上和同事一起吃饭,某人点了石锅拌饭,不一会儿端上来的却是拌好的,该同事不甚满意,因为以往都是自己动手拌的,即自己眼睁睁地看着那个半生不熟的鸡蛋被慢慢搅匀到米饭里,而这次却是饭店服务员手太勤快直接就给搅匀了,该同事顿觉很失落,因为吃石锅拌饭自己动手拌也算是消费的一部分,拌好了再端上来就失去了原来应有的韵味,就好象上面说的羊肉泡馍的事情,同样的面疙瘩,不是自己掰开的就觉得没味儿。\n说了半天,其实我是这些事儿让我想到了其他的方面。\n会不会是大家都有某种亲自动手的情节。\n比如Linux有很多发行版,其中就有一种发行版叫Gentoo(当然了还有LFS,这个更变态)的\u0026mdash;颇受欢迎,因为其十分的具有原味儿,该系统所有的程序包括操作系统的内核都要自己亲自动手下载源代码进行编译,虽然整个系统从内核到桌面环境一点一滴地慢慢编译出来非常的耗费时间和精力,但是很多人却沉迷其中不能自拔,因为自己动手的感觉真是太他妈爽了。\n再说到写程序的方面,虽然现在的IDE都十分强大了,但是还是有人(包括我)热衷于自己写Makefile来控制软件的编译过程,就算VisualStudio已经提供了十分“完善”的开发向导,但是我还是习惯自己写包括消息映射在内的代码,不为别的,因为自己可以控制具体的细节,精确到每一行。\n好吧,我承认有时候需要考虑效率和成就感的平衡,但就个人情感来说,我还是觉得自己动手要爽一些,就像吃羊肉泡馍和石锅拌饭一样,恩,有机会把家里的操作系统也换成Gentoo。\n","date":"2010-01-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/","title":"从石锅拌饭想到的"},{"content":"家里的宽带没被我怎么用过,只是每天晚上用来听相声,可是由于忘记去续费导致我昨天晚上没听成,体验了一夜失去互联网的感觉。\n这种体验让我感到相当不爽,因为意识到自己太依赖互联网了,哦卖糕的,我有网瘾。\n","date":"2010-01-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/","title":"我靠,宽带断了"},{"content":"回来的时候,门上贴个条,原来是抄水表的过来时我不在家,只好留下电话让我自己把水表上的数字告诉他。\n可是我没有工具,水表安装的位置又极其蹩脚(在厨房水槽下方靠近墙的位置),无法直接观看,每次我都是看他们带着手电外加一个镜子然后撅着身子瘪着头使劲儿看半天。\n可是这难不倒我呀,使用手机打开闪光灯,伸进去对准水表,连拍三张照片,然后上传到电脑,本来还准备使用ocr软件自动识别(脱了裤子放屁),但是才发现水表是指针式的,放大图片读出数字,OK。\n","date":"2010-01-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/","title":"高科技手段抄水表"},{"content":"SliTaz,是一个极其小巧的Linux发行版,究竟有多小呢,他的个头才30MB,可以制作成LiveCD和LiveUSB系统。\n所谓麻雀虽小五脏俱全,附带有完整的桌面环境和常用软件,连firefox都有。\n在我的epc上跑得飞快,启动速度也很快(它的启动画面上有句很醒目的话“BOOT!BABYBOOT!”,可见其对启动速度的追求),驱动程序也挺齐全的,直接启用无线网卡,零设置。\n刚刚才开始试用,无更多体验,目前显卡仍未设置成宽屏的最佳分辨率,不过我想问题不大。\n","date":"2010-01-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/","title":"SliTaz,一个神奇的操作系统"},{"content":"普通pc最多能装多少块硬盘?我不知道,之所以想到这个问题是因为我有个同事是个DIY狂人,他跟我说他想把50块500G的硬盘(普通ATA硬盘)塞进一台机器里(PC),使该机的存储容量达到25T,问我该使用什么操作系统。\n我靠,这真是个疯狂的想法,让我想到了那个买一堆奥拓拿铁丝绑在一起的笑话(呵呵,做人要厚道)。\n可惜,我是没有这方面的经验,但是去网上搜索了一下,乖乖,借助RAID卡的威力,理论上可以在pc里安装超过100块硬盘,但是实际上几乎没有人这么做过,所以,让我拭目以待,看看真实情况下,到底能够安装多少块硬盘。\n想一想这台怪兽的样子,~~~额,再忍不住打个寒噤。\n","date":"2010-01-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/","title":"普通pc最多能装多少块硬盘?"},{"content":"刚回过神儿来,现在已是2010年了,进入了传说中的二十一世纪的第10个年头。\n有几点目标,希望今年可以达到。\n谈不上计划,只是随便想想:\n1、体重能够增加5公斤。\n2、阅读5本书。\n3、彻底整理好自己硬盘上的文件,并建立完善的知识管理机制。\n4、学会吉他的扫弦。\n5、写一个真正的pc游戏。\n6、提升英文水平至可阅读非技术类新闻。\n7、改善自己的GTD系统。\n","date":"2010-01-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/","title":"新年畅想"},{"content":"早晨醒来,拉开窗帘,看到一个洁白的飘着雪花的世界,哦也。\n这意味着,在明天早上,假期之后的第一天上班,水平很烂的司机和自认为水平很棒的司机将会在美妙的高速公路上疯狂追击,带来无与伦比的超级大堵车,这就叫明知山有虎偏向虎山行,胸中有红日,脚下舞东风,哦,等一等,跑题了。\n我是说,早晨一醒来,看到一个洁白的飘着雪花的世界,哦也。\n这意味着,我昨天洗的衣服即使是到了明天还是很难晾干,湿润的裤子在风雪中将会很快冻成一根冰棍,恩,是两根。\nmad,我发现想怀着一份飘飘(也有人叫浪漫)的心情写几个文字实在是太难了,于是给自己倒上一杯红酒(昨天超市促销,所以\u0026hellip;),重新开始。\n我想说,下吧!大雪,我喜欢!(哦,已经有点儿酒劲儿了)。\n因为我喜欢聆听雪的声音,那种安静而又带有几分神秘的雪花飘落的声音。\n我喜欢独自站在阳台透明的玻璃后面,点上一支烟,雪花纷飞,毫无章法地打在玻璃上有些甚至想在上面堆砌一些图案,远处的景色已经模糊,那些本来杂乱又浮躁的东西统统被覆盖,仿佛他们本来就那么纯洁似的。\n路上的行人放慢了脚步,孩子们开心地堆着他们叫做“雪人”的物体,我几乎能听见皮鞋踩在上面发出的轻微的“咯吱”声。\n当一个人体会美好的时候,回忆总会涌上心头,因为回忆里全是美好。\n镜头很快滑过小时候第一次看见下雪的情景,起初飘落在地上的不是雪花,而是很小很圆的颗粒,叮叮咚咚,我拿着小铲子蹲在院子里,还以为那是化肥,恩,我也记不清楚了。\n然后就是大片的雪花了,地上很快就白了,嘴里呼出的热气和雪花缠在一起。\n再后来,我穿着笨拙的大头鞋使劲儿在雪地里踩出又大又深的脚印,恩,这就是我对雪的第一次印象,虽然记忆已经模糊地带着雪花点了,不过这正迎合了此刻的景象。\n听雪的时候更能够享受一份孤独,烦恼都烟消云散。电脑里编译着代码,电视里主持人在蹩脚地斗嘴,我一个人站在玻璃后面听了一袋烟工夫的雪,却好像一个世纪那么长。\n","date":"2010-01-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/","title":"听雪"},{"content":"2010年的第一天,我加了一天班。\n2010年的第二天,我狠狠地睡了个懒觉,本来想从天黑睡到天黑,但是想到假期是如此的珍贵,只好在9点am就爬了起来,做了顿丰盛的早餐。\n在给我的ubuntu重新编译了两次最新的内核之后,我意识到这是一件很无聊的事情,于是决定做一些有意义的事情,看美剧,一连看了十来集,再看就要呕吐了,而且由于反复傻笑导致脸也快抽筋了。\n我决定出去走走,做了个不太理智的决定,那就是漫无目的的逛超市而且还是空着肚子。\n记得好像有人提醒过,去超市买东西时最好先想好一个清单,而且最好是在吃饱的情况下再去,否则就会拿回一大堆垃圾回来,恩,我今天就是这样。\n我推着小车(这也是个错误的决定),由于食欲的关系,不一会儿的功夫就把小推车堆的满满的,一边大把的拿东西一边想象着自己坐在家里美美的吃它们的样子,哦也,再加一瓶红酒吧,哦,等一等,这边的酱肘子正在滋滋地冒着热气,仿佛正在召唤我,ok拿下。\n提着东西走进家里,我才意识到,我买了足够我吃一个月的食物,而有些东西的保质期才两天,比如那只烧鸡。\n好吧,他们说狂欢是一群人的孤单,而孤单正好一个人狂欢,justeat!\n","date":"2010-01-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/","title":"假期"},{"content":"。,goodbye2009,hello2010\n","date":"2009-12-31T00:00:00Z","permalink":"https://sbabybird.github.io/p/goodbye2009hello2010/","title":"goodbye2009,hello2010"},{"content":"单位的机器,前一段时间,被我换成了windows7系统,没办法,咱就是爱折腾。\n尝鲜总是要付出代价的,那就是不知怎地,过了一段时间就无法安装某些软件了,不能安装office这还能忍,可是连vs都不能装了那还用个屁啊。反复观察,原来是无法安装vc++的runtime了(也就是vc_redist_x86.exe),具体是为什么不太清楚,好像是一个系统的bug导致的。反复地google,去microsoft网站去查,折腾了好几天,总算有了解决办法。\n步骤如下:\n1、打开注册表编辑器regedit,找到这儿HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control,\n下面有个叫RegistrySizeLimi的键,把它的值修改为0xffffffff\n2、重新启动电脑,并使用administrator用户登录,如果该用户未启用则要首先到“计算机管理”里面把administrator帐号启用。\n3、在cmd里运行“sfc/scannow”以上几步完成后,再次重启机器即可。\n","date":"2009-12-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/","title":"关于windows7下无法安装Visual Studio2008的问题"},{"content":"谁也阻挡不了互联网带来的变化,有些东西正在一个一个地被消灭,比如纸质信件,比如影碟机,比如磁带、CD。\n现在还在苟延残喘的还有电视、报纸等,但是他们的日子也\u0026hellip;\u0026hellip;\n今天看到消息,咱们的CCTV也推出网络电视了,抱着凑热闹的心理去看了看,随便打开几个视频看了看,然后就关了,我只能说他们的网速还不错,内容实在是没有什么吸引力。\n不知怎地,我现在已经开始讨厌看电视了,我不是不喜欢电视机,而是不喜欢里面的节目了。\n再也没有瞪着好奇的眼睛盯着电视屏幕不放的心情了,小的时候,哪怕是一段朴素的广告我也爱看,现在回忆起来那时的电视节目几乎个个都是经典。可惜啊,随着时间的流逝,信息来源的多样化,尤其是接触了互联网之后,眼界一下子开阔了,再加上现在的节目大都粗制滥造带有极强的功利色彩很多时候拿观众当傻B,谁还爱看呢。有句话说的好,记不得是谁说的的,歌词大意是:“当你打开电视的时候,你的大脑就会停止思考。\n而当你打开电脑的时候,你的大脑正开始思考。”\n恩,我很同意这句话,尤其是前半句。\n","date":"2009-12-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/","title":"你看,电视!"},{"content":"嘿嘿,Linux进步真是非常快,桌面环境比起前两年已经友好的多了,很多人性化的功能让windows只能掩面而去。\n以前在linux下的输入法还只能算是能用,现在的输入法已经算是好用了,当然还比不了windows下的google拼音,不过也差不多了。\n抛开其他的特性不说,一想起这是一个开放的、自由的、免费的系统环境就让我对它爱不释手。\n一大票强大的软件可用,成熟方便的开发环境,安全的游览器,不用装杀毒软件,实在是找不到理由再去用windows了。\n唯独不能在qq上和家人视频,不过我准备用skype试试看。\n","date":"2009-12-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/","title":"在kde下更新博客哦"},{"content":"早上一睁眼,想起了这是星期天。于是我的老毛病就又犯了,睡不着了。\n一个念头闪过脑海,感存重装系统玩儿吧,这几天在单位被windows7折磨的够呛,于是决定换掉家里的系统,不用windows了!\n换成哪个linux发行版呢,一定要漂亮的,一定要省事儿的,于是选择了kUbuntu这个号称比windows7还要漂亮的发行版。\n安装十分简单,去下载iso就行了。\n一路“下一步”即可。\n第一次使用kde4的桌面环境,很是惊艳,早听说kde4漂亮的一塌糊涂没想到竟会这么漂亮,开了特效之后更是华丽的令人发指。\n好了,就这么定了,以后就用这个了。\n","date":"2009-12-27T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/20091227_hu379c8ca6331b54e94fffe3576d050f37_169484_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/","title":"正式切换家用电脑的主系统为kUbuntu"},{"content":"尝试用触摸板画画,太蹩脚了。\n","date":"2009-12-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/","title":"无题"},{"content":"据说他们装的都很认真,为了让孩子保持对圣诞老人期待,他们每年都要装模作样的去追踪圣诞老人。\n刚刚看到消息,说Google每年都提供kml文件用以跟踪圣诞老人的行踪,而网站noradsanta.org更是制作了完整的地图来显示,可惜的是访问该网站只支持Windows和Mac系统,于是有人抱怨说:“难道圣诞老人讨厌Linux吗”,我觉得noradsanta.org做的挺对的,因为使用Linux的人,谁还相信有圣诞老人啊。\ntoosimple\n","date":"2009-12-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/","title":"圣诞老人"},{"content":"圣诞节,这个本属于老外的节日,现在已经成功移植到国内了,大家过得还不亦乐乎,节日嘛,咱们最喜欢了,来者不拒,有一个算一个。\n现在外面温度-5度,偏北风力4级,看不见月亮,我刚和同事喝了两杯回来,屋里暖和极了,倒了一杯开水,坐在客厅,很安静。\n总是到了年末的时候才想起感慨时光的流逝,这一晃就又是一年。粗略地回顾一下,有收获也有遗憾,有成长也有叛逆。\n翻了翻年初给自己制定的计划(对不起,我是计划狂++),发现大部分还是实现了的,有些计划制定的太过离谱偏离较远,比如学习计划,由于时间的冲突只得以工作为重。\n不过,梦想始终是不能够放弃的,我庆幸自己清醒地知道目标,并坚定不移地去实现它,一个一个地了却心中的情结。\n谈到梦想,我都快成了一个梦想家了,到现在为止我仍然保留的梦想有:\n拍摄一部上好的纪录片,做一个录音师,拥有一个属于自己的实验室,写一个操作系统,等等等等(除了最后一个其它的好像都离我的职业挺远的)。\n在追逐梦想的路上,难免会有失望和沮丧的时候,但心中的信念从来都没有丢失,面对我的梦想,我像一个虔诚的信徒,怀揣着单纯的心,每晚甜蜜的睡去。\n","date":"2009-12-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/","title":"写在平安夜"},{"content":"无论厂家如何吹嘘,微波炉的电磁辐射泄漏都是挺严重的。\n以前不觉得,认为把它关严实就不会有微波跑出来,所以一边加热食物,一边在跟前等着。\n这几天我喜欢拿着笔记本在餐桌旁上网,刚才开动了一下微波炉,我的笔记本立即就连不上无线网络了,我差点以为是我打开的网页内有敏感词,后来才发现是微波炉辐射的影响,看来以后得注意些,不能在开启的微波炉边上上网啦。\n","date":"2009-12-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/","title":"微波炉的影响"},{"content":"刚在Solidot看到一则让人兴奋的消息,3D蓝光规格终于敲定,这意味着以后的3D电影可以装进蓝光DVD并在家里播放了,虽然在观看时仍然需要特制的眼镜,但这已经不是问题了,我想,随着技术的发展,很快就能观看不用带3D眼睛的3D电影了。\n最酷的是,使用蓝光DVD播放器即可组建家庭3D影院了,当然对显示设备有所要求,不过问题不大,我估计5年之内即可普及了,科技的发展速度实在是让人敬畏。\n顺便提醒一下,国内的标准机构是不是也需要与时俱进赶紧制定咱中国人自己的标准呢?嗯?\n","date":"2009-12-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/","title":"3D电影终于要走进家庭了"},{"content":"靠,本来想说开心是郁闷的万能解药,想了想又觉得不妥,本来就郁闷了还哪来的开心。\n好吧,乐观的心态才是。很久很久以前,记不清了,大概是上个世纪的事儿了,有一坨古老的电视节目,里面有一句名言:“快乐是一天,不快乐也是一天,为何不天天快乐呢?”\n,你听听,说的多在理啊,虽然有点儿站着说话不腰疼的意思,但是话糙理不糙,不用多仔细去想就觉得豁然开朗。\n随着工作压力的增大,以及对世界认知的改变,人已经变的越来越不单纯了,本来一杯清澈的白水已经污染的又黑又浑,已经很难咧着大嘴叉子笑得喘不过气来了。\n曾经一个一头猪掉进臭水沟里的笑话都能笑上半天,到现在看见这样的笑话连嘴角都懒得抽动,偶尔遇到能够笑得起来的还是荤段子。\n但是,最近看了一连串的美剧,让我又回到傻笑的年代,有些人说这太单纯、无聊、没意思,其实包含着大量的深刻讽刺和幽默,比如《生活大爆炸》、《好汉两个半》、《老爸老妈的浪漫史》等等\n,他们不但让我看得前仰后合而且还能产生一些积极乐观的思考,不像有些电视剧简直是把你的脑袋敲开了往里面扔大便。\n","date":"2009-12-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/","title":"郁闷的万能解药"},{"content":"今天坐在电子琴前瞎按,精神有些恍惚,尝试着弹些曲子,居然可以有“完整”的旋律被弹出来,而且听起来有些淡淡的伤感,有些甜蜜。\n我又不会记谱,纯粹凭着感觉弹奏,恰巧电脑上的midi软件坏了,无法使用软件录制,只好掏出手机赶紧把这段录下来(用手机录的音质就差多了),要不然很快就会忘了。点击这里可听如有雷同纯属巧合:)\n","date":"2009-12-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/","title":"没写过曲子的厨子不是一个好裁缝!"},{"content":"按照偏执的日程安排,周末乃观影时间,一个人抽着烟复习经典老片。\n","date":"2009-12-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/","title":"周末,看电影的时间"},{"content":"众所周知,计算机(不含量子计算机)是不可能产生真正的随机数的,而只能产生出“伪随机数”。\n因为要在计算机上产生随机数都要设置“随机数种子”,而一般来说这个“种子”来自于计算机自带的时钟,这也就意味着这个过程是可重复的,产生出的随机数也是有一定的规律的,无论多复杂的随机算法都难逃这个定律。\n具体解释可参考维基百科。\n可是大自然中到处充满了“真随机数”,因为没有完全一样的两片树叶,也没有完全相同的指纹(这个不好说)。\n可是这些真的是随机的吗?\n还是由于人类的认知并未达到一定的高度才产生出来的错觉?\n因为我常常这样想:假如我写了一段程序,里面有个“生物”假设他有意识(我靠,这太难了),我给这段程序一堆随机数字,那么程序里的“生物”是不可能知道这些随机数字是由于我设置了“随机种子”才产生的,因为在“构建”这个“生物”之前我已经设置了“随机种子”。\n好了,令我有些迷惑的是,也许我们大自然的随机数是在“宇宙大爆炸”的时候就设置了“随机种子”的,后面的发展固然有无尽的随机数,导致根本没有重复的树叶也好,没有相同的指纹也罢,也许这些还是“伪随机数”。\n","date":"2009-12-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/","title":"关于随机数"},{"content":"实在找不到词语形容今天的天气了,查了半天新华字典才找到“hou”这个字怎么写,恩,今天天气齁冷齁冷的。\n","date":"2009-12-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/","title":"齁冷"},{"content":"当初买电子琴的时候没有配套买一个踏板,后来练习的时候才知道延音踏板的作用还是十分重要的,嫌麻烦就没有再去买,到网上看看卖的还挺贵,雅马哈原装的要好几百块。\n后来我研究了一下,电子琴的延音踏板原理十分简单,就是拿脚一踩就短路而已。\n于是就想自己做一个,苦于没有材料,有一阵子我甚至联想到我垃圾桶上的那个踏板能不能拿来做延音踏板(当然不行),后来想到了鼠标,行倒是行,就是“脚感”太差。\n今天在家翻抽屉翻出来一个废弃的台灯,发现他的底座挺合适的,于是就卷起袖子开干。原理太简单了,就是拿跟引线从电子琴上接下来,这头接在台灯底座上,台灯的底座经过改造,踩下去就导电,抬起来就断开,试了一下,还真对得起咱这台琴!\n请看照片:\n","date":"2009-12-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/","title":"DIY了个电子琴延音踏板"},{"content":"今天去理发了,很难理解那些一边理发一边与发型师聊个没完的话痨,今天我终于想明白了为什么我到了理发店就沉默寡言了。\n因为他们一般都会问我这几个问题:\n1、“您多久没理发了?”\n妈的,老子想什么时候理就什么时候理,怎么了。\n天气这么闷热生活这么枯燥,理个发你还在这唧唧歪歪没完。\n不就是老子的头发留的稍微长了点儿,收拾起来慢一些吗。\n2、“您的发质太硬,要不要做个软化?”\n操!好好的头发干嘛要在药水里泡来泡去了的。\n3、“您的头发有些脱发,给你推荐一款防脱发的洗发水怎么样?我们这边特价”\n脱发?没你说的那么严重吧,倒是推荐的洗发水有些怪异,恕我孤陋寡闻,这些牌子我一个也没听说过。\n4、“办个会员卡吧?以后每次来都能打8折”\n最崩溃的就是这句,痛苦地忍住胸口那句脏话,赶紧离开这间店。\n","date":"2009-12-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/","title":"理发"},{"content":"今天在网上看到有人写他的装机必备软件,看得我也心痒痒,也来说一说我的装机必备软件,每个人的习惯不一样,我选择的都是我最喜欢的。\n选择的原则是有免费的就不用收费的,有开源的就不用闭源的,有小巧的就不用臃肿的(当然是同样功能的比较),有绿色的就不用安装的。\n1、记事本替代,这个可选择的余地很大,gvim、Notepad++、Notepad2等等,我选择gvim,它高效、强大、聪明。\n2、浏览器,这个非常重要,可选择Firefox、Chrome、Opera等等,我选择Firefox,因为Chrome目前还无法让我放弃Firefox,不过Chrome也真的很好,而且进步很快。\n为啥没有IE?用IE上网让我没有安全感,而且操作起来很不爽,这点目前已有了很大改观(IE8)。\n3、音乐播放器,我选择foobar,不过现在在线听音乐才是趋势,所以foobar只有在听本地的无损音频文件的时候才能派上用场。\n4、视频播放器,我选择MPlayer,没有理由,就是他了,非要找个理由的话,那就是因为它是开源的而且它有很多快捷键。\n5、看网络电视,选择ppstream。\n6、文件管理器,选择totalcommander,又是一个绝世好软,好处多到一天也说不完。\n7、在线听广播,选择龙卷风网络收音机,老牌子,质量有保证。\n8、系统快捷键定制,选择ahk(AutoHotKey),可以自己编写脚本定制快捷键。\n","date":"2009-12-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/","title":"我的装机必备软件及理由"},{"content":"《逃出克隆岛》这部2005年的科幻电影(算是科幻吧),今天又被我翻出来看了看。\n故事里说,在不远的将来,随着克隆技术的发展,人类已经具备了克隆自己的能力,最简单的应用是当人类的器官坏掉之后就克隆一个换上,这给那些贪婪的、渴望长生的人们又带来了希望。\n有了市场需求就有人提供这种服务,故事里的“坏人”开办了一个地下工厂专门提供克隆器官,并告诉外界克隆的这些器官寄生在没有灵魂、没有思想、知觉的“植物人”身上,听起来貌似很人道。\n然而,随着时间的进展,“坏人”发现通过这种手段提供的器官质量并不高,于是直接克隆出整个的活人,大批量的复制,统一的教育他们,并给他们植入雷同的记忆,描述了一个类似天堂的地方作为他们活着的终极目标,当然这个地方就是他们生命的重点。\n一旦用到了他们器官他们的生命也就走到了终点,外面世界里的人类作为“客户”继续使用新鲜的器官活下去。\n这些克隆人大部分没有真正的思想,认知水平停留在孩童阶段,本来一切进展顺利,使用器官的人都没有负罪感,因为就像电影里说的那样:“吃牛排的时候你从没想过要认识那头牛”。\n然而,人都是有好奇心的,克隆人也一样,随着好奇心越来越强烈,就引发了电影接下来的故事。\n故事的结局还算不错,就像所有的电影一样,“坏人”受到了惩罚,泯灭的人性又一次战胜了邪恶。\n电影本身结束了,可是带给人的思考却漫无边际,随着人类文明的发展,人性会被重新定义,只有一样是可以肯定的:为了生存,所有人都会不择手段。\n","date":"2009-12-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/","title":"吃牛排的时候你没想过要认识那头牛"},{"content":"用vim已经有一段时间了,谈不上高手的级别,但总算是入门了,vim作为编辑器的王者,掌握之后带来的成就感无与伦比,但是其陡峭的学习曲线常常让人望而却步,下面,我来介绍几点心得,虽是入门级但是能为将来的熟练掌握打下基础。\n1、不要再依赖菜单和工具条,虽然gvim提供了菜单和工具条,请不要再用他们,在配置里加上一行\u0026quot;setguioptions-=mT\u0026quot;,这样一来gvim的界面就干净多了,尽情的用快捷键吧。\n2、不要再依赖方向键来移动光标了,熟记h、j、k、l分别对应左、下、上、右,并强迫自己使用,你会发现右手再也不用来回移动了。\n3、切忌总在“插入”模式里待着,“插入”完成后立即按esc或ctrl+c推回到“默认”模式,因为在默认模式里才能发挥出vim各种“命令”的优势。\n4、“o“命令是在当前行的下面插入一行并进入“插入”模式(大写的“O”是在当前行的上方插入)。\n5、“dw”是删除一个单词,“dd”是删除一行。\n6、将光标移动到某个单词上并按“*”键是对这个单词进行向后搜索,“#”是向前搜索。\n7、“xp”是前后交换两个字符,“ddp”是上下交换两行。\n8、“v”这个选择命令很管用,紧跟其后按“i(”是选中小括号内的内容,“a(”是连小括号一起选择(你可以尽情地举一反三)。\n9、多看帮助。\n","date":"2009-12-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/","title":"记住这几个窍门带你迈入vim的门槛"},{"content":"09年已经接近尾声,琐碎的事情纷至沓来。\n很多事情需要加班才能解决,睡眠质量严重下降。\n我的博客又快荒废了。\n","date":"2009-12-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/","title":"最近比较忙"},{"content":"刚写完了一篇文档,绞尽脑汁,换换脑子,上来唠叨两句。\n这两天又尝试着使用evernote管理笔记,界面华丽,功能强劲,赏心悦目,就是太耗资源了。\n勉强能在小笔记本上跑,输入中文的时候还吭哧吭哧的。本打算以后就直接在上面写日志,发了两篇测试,效果很不理想。\n放弃。发现我的共享空间又不能访问了。\n","date":"2009-12-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/","title":"忙里偷闲写博客"},{"content":"来来来,一起解决全球变暖的问题来来来大家一起跳吧刚才在浏览科学松鼠会的网站,看到一个有趣的话题,假如地球上的所有人在同一时刻做同一件事情,会有什么样的后果?不过已经有喜爱恶搞的老外开始忽悠了。\n故事说的是:\n2006年有‘科学家’建议六十亿人在2006年7月20日11:39:13秒同时猛跳一次就能让地球轨道距离太阳远一些,这样就很好地解决了气候变暖的问题。\n我初一看差点儿就相信了。www.evernote.com|Remember\n","date":"2009-12-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/","title":"来来来,一起解决全球变暖的问题"},{"content":"testMinim0www.evernote.com|Remembereverything|Signupforfree__________InformationfromESETNOD32Antivirus,versionofvirussignaturedatabase4663(20091205)__________ThemessagewascheckedbyESETNOD32Antivirus.http://www.eset.com\n","date":"2009-12-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/test/","title":"test"},{"content":"qy:“优盘借我用一下,我要重装windows7”\n我:“你现在的Windows7用的好好的为什么要重装?”\nqy:“因为现在用的是RC版的,想装中文正式旗舰版”\n我:“哦,了解”\nqy:“有时候,虽然明知道现在的软件用着很好,但就是想装最新版的,不然心里就特别扭”\n我:“我也是这样,我上周因为不能用firefox最新版把我的小笔记本重装了四次,还有就是我不能看见回收站里有东西”\nqy(会心的笑):“对对对,我看见回收站已满的图标就浑身难受”\n我:“我上次用别人的计算机,上去就把他的回收站清空了,结果那家伙用回收站来存放重要文件”\nqy:“我用软件只喜欢去官方网站下载,然后自己动手破解,别人破的我不放心(信不过)”\n我:“你知道别人会怎么说我们这种行为吗?”\nqy:“怎么说?”\n我:“神经病!”\nqy(羞涩地笑):“。。。。。”\n","date":"2009-12-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/","title":"两个偏执狂的对话"},{"content":"城里的房子太挤,隔音很差,楼上蹑手蹑脚走过一个人,楼下也能听的一清二楚(有点儿夸张)。\n以前我有在家听音乐的习惯,那是在老家的时候,每到周末都把音响开到最大,一边听一边洗衣服,现在不能这样听了,因为那样会打扰到邻居,甚至有时候稍微把音量调的大一点儿都会觉得内心十分不安。\n音量大了就会担心,小了就听着不爽,感觉白瞎了我那套音箱了。\n想要随心所欲的开大音量听音乐,看来只能等住进别墅了,或者回乡下老家。\n","date":"2009-12-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/","title":"音量"},{"content":"不管有没有人看,几乎每天都要写一篇博客,一是为了换换脑子,二是为了留点儿记忆,当然最好能写一些有用的东西,而不是流水帐。\n刚看了和菜头老师写的《像说话那样写博客》,深有同感。\n又不是写作文或者写文档,干嘛要写那么多书面用语或者空话套话呢,就是随心所欲,嘴里想说啥,就写点儿啥,有点儿像自言自语。\n内容当然不能太没劲,说一说今天吃了啥,去了几趟厕所等,写这些简直是浪费网络资源,不过也不是绝对的,据说有人坚持写了一年的博客,每一篇里面只记载了当天吃了什么饭,后来又有好事者根据博客内容统计出了该人的饮食习惯并列出了图表,这又另当别论了。\n我自己给自己的博客定下了内容范围,首先绝对不会转载别人的内容,其次不会写与政治有关的话题(我只是不明真相而且沉默的大多数),然后也不会写工作中的事情。\n如果算上刚才说的不能写当日的流水帐,就只剩下自己的爱好可以写一些了,比如音乐、电影(不是影评)、科技、编程、硬件等,偶尔也会写一些貌似小资文风的内容,不过也都是喝高了之后写的,过后看完两股战战几欲删除。\n","date":"2009-12-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/","title":"写博客"},{"content":"这两天小笔记本出故障害我卷起袖子修了两个晚上,由于没有光驱,所以没少用到我的优盘,可是网上可下载系统盘一般都是iso文件,即光盘镜像刻录成光盘才可以引导机器启动,不过现在是21世纪了,几乎所有的主板都支持usb启动,所以没有光驱也无所谓了,只要手中有可引导光盘的iso文件就可以制作出一个可引导的优盘出来。\n正所谓授之以鱼不如授之以渔,下面介绍一下制作可引导优盘的步骤,并非所有的引导盘都必须这么做,这仅是其中的一种方法,也最省事。\n1、必备条件:运行Windowsxp系统的计算机一台,优盘一只。\n2、去网上搜索并下载名叫“UltraISO\u0026quot;的软件,试用版亦可。(该软件同时具有光盘刻录、iso制作、虚拟光驱的功能,真是居家旅行\u0026hellip;\u0026hellip;..)\n3、可引导的光盘镜像文件(扩展名一般为iso)一只,比如ubuntu9.10-i386-livecd.iso,具体要什么iso取决于你要干的事情,如果这一句你弄不明白,那就别往下进行了。\n4、把那只倒霉的优盘插入电脑。(记清楚他的盘符,如果你插入了多个优盘的话)。\n4、启动UltraISO,在菜单里选择“文件”==》“打开”选中你的iso文件。确定。\n5、在菜单里找到“启动”下面的“写入硬盘映像”并猛烈点击之。\n6、现在弹出了一个新对话框,在名叫“选择硬盘驱动器”的那个下拉框中选择你刚才插入的那个优盘(如果就插入了一个,就不用于选了)。\n7、在“写入方式”那个下拉框里选择“USB-HDD+”,除了这个选项还有“USB-ZIP”等选项,但是你选择USB-HDD+就可以了,因为这个格式的兼容性最好,实在不行再换其他的。\n8、点击“写入按钮”并耐心等待。注意:优盘的内容会被清空。\n9、等写完了就拔掉优盘尽情的去得瑟吧。\n","date":"2009-12-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/","title":"如何制作一个可以引导的优盘"},{"content":"周日手欠,将epc的系统改为ubuntu的remix版,损坏了ssd的mbr,后又恢复成xp,一天后出现ssd无法读取的错误,再也无法安装xp系统,本着死马当活马医的态度,我试了一下随机附带的恢复光盘(利用光盘烧录了一个可引导的u盘),竟然好使,现在系统又恢复到最初买回来时的状态了。但愿SSD没有坏。\n","date":"2009-12-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/","title":"小e复活"},{"content":"上次逛当当的时候,忍不住买了一本书\u0026ndash;《一个程序员的自我修养》(副标题为:链接、装载与库),当时我说,就冲这个书名,哪怕里面全是白纸我也要买这本书。\n因为我是周星驰的影迷,《喜剧之王》在我心里一直是周星驰的巅峰之作(别跟我提《大话西游》,台词我比你记得还熟)。\n影片里的周星驰作为一个“死跑龙套”的“演员”,一直拿着的一本书就是《演员的自我修养》,那是他的梦想。每个编码的程序员其实心里或多或少都有一些代码情结,手里头捧着一本关于程序的书,就好象捧着自己的梦想似的。\n抛开书上面的不说,说一说我所认为作为一个程序员应该具备哪些修养:\n1、对程序、编码的热爱。如果不热爱编程,技术再牛逼也只能是一个代码工人。\n2、谦虚好学的态度。\n早就听说就有文人相轻的说法,做文章的瞧不起做文章的,其实很多程序员也一样,不知天高地厚,眼高手低,整天拿编程语言比来比去,在他们眼里别的程序员都是傻逼。\n这些人就算是某个领域的“高手”,也绝对谈不上是一个合格的程序员。\n3、团队协作能力。\n自古有一个诸葛亮抵不上三个臭皮匠的说法,这话说的虽然有些绝对,但是也有一定的道理,如果一个程序员不能很好的和队友交流、合作,哪怕有三头六臂也很难成为一个出色的程序员。\n4、安静平和的心态。\n浮躁、急躁是技术人员最忌讳的心态,这当然不是指火烧到眉毛了还懒的动弹,而是说遇到问题能够冷静的分析并作出准确的判断。\n这一点上有些人真让我望尘莫及,后天可以锻炼,但我觉得天生的因素占很多。\n5、自信。\n鼻孔朝天也不好,但是没有自信更要命,总是不相信自己能够开发出成功的软件,或者怨天尤人以语言不通、国内环境为挡箭牌为自己开脱,这样永远也写不出像样的程序。就牢骚这么多吧,说起来永远比做起来轻松,以上观点纯属瞎掰,如有雷同,那实在是巧合。\n","date":"2009-12-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/","title":"程序员的自我修养"},{"content":"推荐一个视频网站,TED,因主要关注Technology, Entertainment, Design故得此名。我基本每周都要在上面看一段,里面的演讲精彩纷呈,就算是语言不通也能慢慢适应(很多经典视频有中文字幕)。\n今天看的是这一段。这哥们儿的风琴弹的简直出神入化。\nPS:我的livespaces又不能访问了,不知道此篇能否发送成功。\n","date":"2009-11-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/","title":"TED,这里都是能给你带来思考的视频"},{"content":"本着没有困难制造困难也要上的精神,我以迅雷不及掩耳盗铃之势把epc的操作系统换成了ubuntunetbookremix9.10,因为好奇心的原因,或者是爱用最高版本的原因,我这次不但将可怜的小笔记本给格式化了,而且选择了最新出的文件系统\u0026mdash;-Ext4!首先4G的那块SSD用来作为根分区“/”使用了Ext4,然后划出了256M的空间作为交换分区。\n剩下那块16G的SSD也格式化成了Ext4,挂载点为“/home”,理论上来说这种分配应该是可以的了。\n可是杯具就杯具在倒霉的Ext4上。\n安装完毕,按照我的老毛病,立即上网更新系统,吭哧吭哧下载了半天,所有软件都更新为了最新版啦!结果第一次重启就让我大跌眼镜。\n首先,由于某种原因,我直接在命令行输入了sudoshutdown-rnow来进行重启,还没有来及进入图形界面就告诉我说,“糟糕,/home无法挂载,可能文件系统损坏了,您需要进行手动检查”,好吧,去官方网站上一查,人家说这是个bug,需要先这样然后再那样blablablabla。我忍了,输入:fsck/dev/sdb1进行全面检查,磨烦了半天总算修复,等到进入了图形界面已经折腾了一头汗出来了。\n然而大自然是残酷的,这个系统竟然让我每次重启都要修复文件系统,而且修复后奇慢无比,每次访问/home下的文件都会产生I/O错误,在控制台下满屏都是error的身影。\n可怜的美好周末就这样被消耗掉了,本来准备收拾好笔记本就抱着去阳台写一写小程序啥的,看来在太阳下山之前是没戏了。\n","date":"2009-11-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/","title":"冲动是魔鬼"},{"content":"不知道其他人为什么喜欢电影,或者不喜欢。\n反正我是十分喜欢,也许你说,是啊,美好的东西谁TM不喜欢?\n错!首先,不必像装逼的小资那样扭捏地大谈电影的文艺味道或者表达了一种什么样的思想,也不用像有关部门那样无耻地对电影挑三拣四反复阉割,我喜欢电影是因为电影可以让人经历不同的人生。\n等一等,我扯的有点儿远了,但是我要说的事儿是建立在以上基础之上的。\n我刚才差点就要像马丁路德金那样说:“我有一个梦想”,但是这句话让我的胃稍有不适,喝口水,冲一冲酒劲儿。\n好吧,我曾经有个梦想,那就是\u0026mdash;家庭影院!\n你会轻蔑地一笑:“多大点儿事儿,我还以为抢鸡蛋呢,原来是家庭影院啊,这有啥啊,整个大电视,搞两个音箱,往房间里面一摆,不就是了嘛”。\n唉,俺也曾经这样以为,而且照做了,但真不是家庭影院。\n\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;注意,以下内容纯属瞎掰:\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\n真正的家庭影院有这么几个要求:\n首先,必须要有一个巨幅的屏幕,液晶电视就甭想了,充其量也就一百寸吧?远远不够,至少要有两百寸以上的屏幕(就这比起电影院里两层楼高的银幕还是差很远),所以要用投影。\n其次呢,要有高清晰度的投影机,市面上现在卖那些白菜价的1024×768的液晶投影就别看了,专业的投影机对亮度和对比度以及分辨率都有很高的要求,10万元(人民币)以内都没有特别符合要求的。\n然后是音响系统,市场上鼓吹的5.1或者7.1系统都是白扯,不是说喇叭多了凑个数就行了,功率、灵敏度、解码方案这些都是有严格要求的,目前来说,家用的音响系统就算是通过THX认证的也鲜有达到影院级标准的。\n就算以上这些设备全部买到,也得考虑放在哪儿以及如何摆放的问题,客厅肯定不行,东西太多太乱,那就得单独提供房间了,至少也得30平米(因为要放沙发),房间里要做好隔音、吸音处理,因为你肯定不想在看的正投入的时候让邻居们过来砸门。\n假设这些都准备齐了,还是要注意片源的问题,兄弟!几十万的东西拿回家不会就是放录像带吧?\n上一代DVD肯定不行,据说以前有发烧友自己在家弄电影放映机来放胶片,不过现在好了,有了蓝光DVD(一片儿顶过去五片儿),一部电影几十G的容量,1920或以上的清晰度,基本够用了。\n所以看来,哪怕是一个看电影的梦想,也不是那么容易实现的哈。\n","date":"2009-11-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/","title":"谈谈我对家庭影院的看法"},{"content":"上次回老家休假,和家里的哥儿几个聚了一把,见了面无非就是聊天,喝酒,打台球,只是都已成熟许多,使劲儿咧嘴笑的话,也能看见皱纹了。\n这些曾经睡在一个炕上的兄弟,据上次见面已经差不多两年了,有坐车来的,有开车来的,几个兄弟还是骑摩托过来的。\n我问了一下,还是无牌照,无头盔,钻胡同躲交警,和从前一样。\n于是我又犯骑车瘾,借着酒劲儿风驰电掣了一把。\n十年前刚拥有摩托车的时候,我曾天真地以为,摩托车是我的最爱,给个奔驰都不换。\n因为骑摩托可以到处转悠,可以使劲把油门拧到底,体验呼呼的风把眼泪刮出来的感觉,可以带着墨镜飞速穿过柏油路上被大豆秸杆掀起的土雾,可以让坐在后座上的姑娘不由自主地搂着我的腰。\n那个时候,周末基本上都是和哥儿几个骑着车四处乱窜,再窄乡间小路也敢往里冲,吹着口哨把车扎在路边跳到河里去洗澡,有时下着大雨,淋的像个落汤鸡。\n路上当然是飙来飙去,偶尔也被大人们骂句:“不要命了!”\n如今,都已是拖家带口了,社会的磨练多少给了一些沧桑的感觉,脸上的笑容也失去了往日的纯真而增添了几分苦涩,只是,当他们跳上摩托车,冲我招一招手,伴着隆隆的声音脚下喷出一股股蓝烟,我的心仿佛又回到了那个时节。\n","date":"2009-11-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/","title":"兄弟们还是喜欢骑摩托"},{"content":"有睡前听相声或评书的习惯,有个人在旁边罗哩罗嗦没完是个很好的催眠剂,可以很快入睡,保证了充足的睡眠。MoRadio是一个很简洁干净的在线广播站点,界面清新漂亮,电台丰富,甚至可以在线听小说。\n有了它我基本舍弃了“龙卷风网络收音机”。网址:http://www.moradio.cn/\n","date":"2009-11-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/","title":"推荐一个在线听广播站点"},{"content":"刚才二舅给我打电话,聊了一会儿天。\n问我现在是否还看书,我说看,电子版的,在手机上也看,看的眼睛都快毁了。\n很久没买书了,记得跟飞行鱼借来的《代码大全》差点儿垫了桌子。\n接了这个电话,两个人谈了一阵子书,我又想看纸质的真书了,刚好他又给我推荐了两本,随即去当当把书定下。\n选书的时候哦发现一个问题,计算机相关的书最贵,买三本畅销书的价格还比不了买一本忽悠你怎么编程的书贵。\n不过还是难以抗拒诱惑,各买了两本。\n《做单》这本书最近十分火,本来看名字和书评都不太和我的胃口,但是二舅极力推荐,所以拿下。\n《我们台湾这些年》是王三表在他博客里提到的,所以拿下。\n《深入理解计算机系统》据说是人家美国大学里的教材,图个新鲜,所以拿下。\n《程序员的自我修养》就冲这个名字哪怕里面全是白纸也得拿下。\n","date":"2009-11-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/","title":"准备买几本书"},{"content":"肯定有过这样的经历,有一样东西(通常是个小东西,电冰箱什么的不算)翻箱倒柜地找不到,过一段时间你突然发现这个东西出现在某个地方,而那个地方当时已被你掘地三尺了。\n有人说这是眼睛欺骗了大脑,或者是大脑欺骗了眼睛,但我更相信另一个比较科幻的说法\u0026mdash;-平行宇宙。\n按照平行宇宙的说法,我们生活的宇宙不是唯一的宇宙,另外还有无数个和咱们的宇宙差不多的宇宙,无数个宇宙里自然就有无数个你我,每一个重大事件的发生都会导致当前的宇宙分裂出与之平行的另一个宇宙来,我没有瞎掰,科学家也是这么说的,不过我感觉他们是有点儿瞎掰。\n刚才我翻箱倒柜也找不到我的吉他拨片了,我记得很清楚就在一个放有调音笛的小盒子里,打开一看没有,出去干点儿别的,再回来,发现果然在小盒子里。\n所以我宁愿相信这个拨片刚才有一阵子进入了另一个宇宙。\n","date":"2009-11-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/","title":"平行宇宙"},{"content":"从《越狱》火起来那年开始,pushmail这个概念随着黑莓手机的流行而泛滥成灾(什么?不知道什么是pushmail?请Google之,或者看这里。现在知道了吧,pushmail的好处就是及时。),就连中国移动也推出了自己的pushmail,当然了他们要收取“少量”的费用。\n那么有没有免费的泥?\n答案是肯定的,条件有三:\n1、拥有一个gmail帐号。\n2、拥有一部Nokia智能手机(最好是E系列)。\n3、喜欢折腾。由于pushmail客户端不再向以前的email客户端那样需要过一段时间就去服务器查询是否有新邮件,这样既省钱又省流量,所以折腾一下还是值得的。\n好吧,准备好手机,就到这里来下载MailForExcange吧。\nhttp://www.google.com/mobile/products/sync.html#p=nokia_smart\n下载完成后这里有使用说明\nhttp://www.google.com/support/mobile/bin/answer.py?hl=en\u0026amp;answer=147951\n按照文档的说明,设置完毕之后就可以使用了。\n补充两点:\n1、不要选择同步“任务”,目前还不支持,如果选择了就会什么也同步不了。\n2、不要选择同步“联系人”,否则会把你gmail里的联系人全部同步到手机上,如果不小心还可能会清空手机的电话本(慎用!)。\n另:我有使用日程表的习惯,这也是偏执狂的一个表现,是GoogleCalendar重度使用者、Gmail的中度使用者,同时极度讨厌使用OutLook。\n此MailForExcange还可以同步日程安排到手机,真是居家旅行杀人灭口之必备好软。\n","date":"2009-11-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/","title":"塞班手机使用MailForExcange同步gmail实现pushmail"},{"content":"1、今天排队看了《2012》,包括排队买票,排队进场,排队去厕所放水。\n2、好的电影看完可以引起一些思考。\n3、想起一句诗:假如明天就是世界末日,我今天仍然种我的苹果树。\n4、就算是商业电影,里面也有一些政治隐喻,仁者见仁,淫者见淫。\n5、人生短暂,活着真好,我决定请朋友们吃饭,今晚。\n6、有可能的话,以后看电影尽量去影院看。\n","date":"2009-11-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/","title":"假如明天就是世界末日"},{"content":"昨天夜里,Google演示了他们推出的操作系统ChromeOS,据说是基于Linux的。\n在此之前已有风生放出,比较适合上网本,我期待着能够用在我的epc(太弱了)上。\n结果是,Google根本不允许在他的操作系统上安装任何本地软件,甚至不能自己安装在笔记本上,所有的数据均保存在Google的服务器上,意味着一旦失去网络就是废塑料一坨。\n想一想咱们的网络环境,我还是洗洗睡吧。\n","date":"2009-11-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/","title":"失望"},{"content":"有相当长的时间,我的手机都是24小时开机的。\n不过我有一个坏习惯,把手机放在枕边当闹钟,半夜醒来也好看时间。后来关于手机电磁波辐射的说法越来越多,导致我产生了一定的心理阴影,总感觉电磁波正在滋滋地穿过我的脑袋。\n后来就到睡觉时就把闹钟关掉了,然后早晨再起来开机把闹铃叫醒。\n不过现在用的手机支持关机闹铃,即使关机状态也可以很负责任地把我叫醒。\n剩余的问题是,夜里醒来不太容易看时间,开手机太费劲,爬起来到客厅看时间又太远,有人出个馊主意说:起来“演奏”一会儿乐器,邻居们就会大声告诉我现在是什么时间了。\n不过我觉得这个方法不太可取,万一他们的手机也关机了咋办。\n想来想去,我还是觉得应该在床头放一个真正的闹钟,可以很方便看时间的那种,最好能发出幽幽地蓝光(不是绿光)。\n刚才我发现了这个,感觉挺合适的,就是目前还买不到。\n啧啧,可惜啊。\n","date":"2009-11-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/","title":"床头的电磁波"},{"content":"一大早就收到家人发来的祝福短信,原来今天是我的生日。\n逐个回复短信之后,我慢慢回想,掏出计算器算了算,哦是的,原来我已经二十八了。\n他们说:“生日快乐!”,没错,快乐最重要,我想,和十年前的想法一样,到了今天我还是认为快乐最重要。\n潜在的意思就是玩儿最重要,只不过十年前我玩儿起来是骑着摩托车约着一群怀疑人生的青少年去疯狂飚车,或者是跳到半腰深的河里去捉鱼,或者是带着漂亮的女生一起谈论理想(现在已是我的老婆)等等。\n十年后的今天玩的仅是一些虚无缥缈的东西,比如曾经以为永远也学不会的编程现在用来吃饭,生活就是这样,玩玩电脑偶尔也被电脑玩玩。\n仔细地想一想,岁月还真是不饶人哩,小时候的玩伴大都不再联系,老爸老妈的鬓角也渐渐染上了白霜,时间就这样一年年过去,不断地得到也不断地失去,唯一能保持不变的以许就是一颗追求快乐的心吧。\n今天是我的生日,祝我生日快乐,也愿我的家人幸福快乐。\n","date":"2009-11-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/","title":"祝我生日快乐!"},{"content":"问我为啥用twitter,因为我觉得上twitter比较有技术含量(嘿嘿,想起黎叔了)。\n开个玩笑而已,其实是觉得twitter上的人尤其是中文twitter用户都比较有爱心和有责任心。\n虽然也有愤怒激进的,但大部分都是能够较为冷静地看待问题的人。\n用句流行的话来说,就是感觉twitter上的人都比较有爱。\n再一点就是它“致命”的优点了,也是被反复提及的信息及时性,这实在是很让人暗爽的特点,每天早晨打开手机第一件事就是更新twitter,不用发愁会错过什么信息,而且都是第一手资料。\n今天再次帮助一位不知道twitter是何物的朋友开通了twitter,本着送佛送到西的精神,一股脑儿帮他flow了几十个有意义的中文twitter,然后又帮装上手机客户端,由于众所周知的原因,我还得把代理地址给他设置好。\n弄完之后,感觉自己像是一个传教士。\n","date":"2009-11-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/","title":"我觉得twitter"},{"content":"记得老婆怀孕的时候,为了保持其心情愉悦,我每天都要给她发送一条短信,均是时下最流行的笑话段子。\n这些段子基本上来自于网上,有些比较长的我还得进行一定的删减,由于平时储备的段子较多,刚开始几天还源源不断,后来因为我的审查比较严格,比较俗气的段子不发,太露骨的荤段子不发,不经典不好笑的不发,导致连压箱底的段子都发给她了,有时候我甚至还得四处搜罗。\n每天一条笑话,一直持续到孩子生下来,现在孩子白白胖胖非常可爱,我的笑话短信有很大的功劳。\n再后来,由于工作实在是繁忙又加上自己存储的段子实在是不够用了,我才逐步取消“今日笑话”这项“业务”。\n前两天老婆又跟我叫屈,说我太偏心了,孩子一生下来就收不到新段子了,向我申请重新开通“每日笑话”的业务。\n很长时间没有发笑话,我的段子又储备的差不多了,经过深思熟虑之后,我决定今日起重新开通该业务。\n另附今日笑话:儿子学习不好,被妈妈痛骂。儿子用哀怨的眼神看着爸爸说:“你为什么要娶她?”爸爸也用哀怨的眼神看着儿子说:“还不是因为你!”\n","date":"2009-11-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/","title":"每日笑话"},{"content":"此周末加班0.75天,在朋友家玩了1.25天。吃大餐若干,其中有朋友亲自下厨精心烹饪的海鲜。狂唱卡拉OK从民歌到通俗再到摇滚,直至嗓子嘶哑。三五个人又一起打了台球,期间发现我的球技属于遇强则强遇弱则更弱。\n晚饭又在另一个朋友家中解决,亦丰盛无比,这两天真是太对得住我的胃了。\n","date":"2009-11-15T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/20091115-776584_hu9871ff045cc91bee797e4e6eb9428ec0_22921_120x120_fill_q75_box_smart1.JPG","permalink":"https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/","title":"到处蹭饭的周末"},{"content":"今天在回家的路上看见有人在twitter欢呼,因为这两天有人要来,所以Youtube、blogspot、picasa等网站都解封了。等到了家,立即打开电脑,把那些被封的网站挨个试了一遍,Mad,还和原来一样。看来,twitter确实是个制造谣言的好地方。\n","date":"2009-11-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%94%89/","title":"唉"},{"content":"昨天某同事出差,走到半路发现笔记本硬盘坏了,十分痛苦地发短信问我火车上有没有IBM的客服,我说,天将降大任与斯人也,必先苦其心志劳其筋骨,坏其硬盘。\n此同事吐血半升后就杳无音讯了。\n此事引发大家热烈地讨论起关于硬盘的话题(我们太残忍了),最后大家一致认为经常背着出差的笔记本其硬盘特别容易出毛病,颠簸导致。\n有没有不怕振动的硬盘呢,答案是肯定的,那就是SSD,中文称“固态硬盘”,因没有磁盘盘片和磁头等机械装置,所以不怕振动,具体介绍如下(来自维基百科):\n固态硬盘(SolidStateDisk、SolidStateDrive,簡稱SSD)是一种基于永久性存储器,例如闪存,或者非永久性存储器,例如同步动态随机存取存储器(SDRAM)的计算机外部存储设备。\n固态硬盘用来在便携式计算机中代替常规硬盘。\n虽然在固态硬盘中已经没有可以旋转的盘状机构,但是依照人们的命名习惯,这类存储器仍然被称为“硬盘”。去Google搜索一下“SSD”或者“固态硬盘”返回的文章里充满了赞美之词,什么随机读取速度别传统硬盘快啊,没有噪音啦,没有散热问题啦等等。\n然后一致指出的缺点就是价格太贵。难道就没有别的缺点了?NO!我的epc用的就是SSD,抛开至今仍有争议的SSD寿命问题不说,我在使用中发现了一个很大的问题就是\u0026mdash;-“磁盘碎片”,由于现在的文件系统(NTFS、FAT32)等都是针对以前的硬盘设计的,目前还没有一个针对SSD优化的文件系统(听说快出了),所以随着SSD里存储的文件越来越多,那么访问这个SSD上的文件将会越来越慢,尤其是写入,有时候会慢的无法忍受,我认为这个问题是目前SSD面临的最严重的问题,至于容量价格之类肯定不用担心。\n今天的话题好像扯的有点儿远,不知道那位硬盘坏了的同事现在怎么样了。\n","date":"2009-11-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/","title":"关于SSD硬盘"},{"content":"最近老多人都讨论破解无线网络来蹭网的问题,提到破解都挺鸡冻的。\n其实wi-fi的破解早就出来了,不过遗憾的是破解并不彻底,只是破解了WEP加密而已,现在很多人的无线网络被蹭网,我的理解是,一部分人是自愿的(本着分享的精神或者另有企图),另一部分就是因为懒。\n现在如果一个无线路由使用WEB加密的话,破解已经很简单,甚至傻瓜化了,国外已经有人做成live的Linux系统(因为破解程序是Linux版的)。\n如何破解就不说了,谈谈怎样不被别人蹭网(我个人希望我的无线路由是不加密的,但是有些人蹭网还上BT就太过分了)。\n1、进入无线路由器的设置页面(地址一般是http://192.168.1.1或者http://192.168.0.1),找到无线设置那一页。\n2、设置加密方式为WPA-PSK或者WPA2-PSK,别选WEP了,上面已经写的很清楚了。把密码设置的复杂一些。\n做到上一步已经基本安全,要想再安全一些还可以这样:\n3、找到高级一些的无线设置选项,把SSID广播关掉,这样别人根本就扫描不到你的无线路由了,不过你所付出的代价就是自己上网的时候要手动输入接入点的SSID,自己记住即可。\n要是还不放心的话还可以这样:\n4、找到更高级的mac绑定设置,有些路由器不支持,也就是说仅允许指定的机器可以上网。\nps:路由器本身的访问密码也最好设置一下。\n再ps:蹭别人的网也要小心,现在抓包的工具都很先进很傻瓜化,蹭别人的无线路由也就意味着隐私很难保障,随便吧。\n","date":"2009-11-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/","title":"你说你,要蹭网,用心良苦却成空"},{"content":"今天心情比较郁闷,幸好有兄弟陪我喝喝小酒,打打台球。心情好多了。\n","date":"2009-11-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/","title":"兄弟"},{"content":"上次一狠心,把epc上的系统更换为xp了,现在差不多又到了换系统的时候了,因为xp的毛病就是\u0026mdash;越来越慢。\n本来epc上带的那个基于debian定制的原装系统速度贼快,但是功能太弱了,三岁小孩用还行。\n后来有好心人给整出来个eee-ubuntu,赶紧装上,发现他继承了ubuntu体态臃肿的优良传统,可怜的小e仅带了4G的系统盘,根本不够怎么折腾的,而且在安装最新版firefox时被我编译坏了glibc库,于是换成了xp。\n今天发现以前的那个eee-ubuntu已经改名了,现在叫做EasyPaesy,都1.5了,不过仍然是基于ubuntu的定制,据说已经优化了不少,看得我都有些动心了。\n官方网站上的介绍更是让我心动:下一个版本,也就是2.0的时候将直接基于debian定制,不在基于臃肿的ubuntu,而且将原生的带有epc的全部驱动程序。\n哦夜!太期待了。\n","date":"2009-11-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/","title":"期待"},{"content":"最近几个月来,感觉思维有些迟钝,记忆力有所下降,用脑过度导致。\n考虑到每天需要休息一下脑子和眼睛,为了远离屏幕,我决定每天晚上活动活动手指(虽然敲键盘也是活动手指,但那是机械性的),弹弹吉他,正好重拾练习吉他的计划。\n几天之后,感觉“颇有长进”,遂记录心得如下:\n1、不要怕打扰到邻居。\n以前我弹琴的时候,心里总是有个阴影,总觉得邻居正在把耳朵贴在墙上偷听我弹琴,这样一来我就不好意思弹的太大声,不敢弹的太难听,可是又不会弹好听,每次都几乎是看着谱子在心中默念,这样的话就像哑巴英语似的永远也甭想弹好。\n后来我干脆想,反正邻居养了狗,叫声也挺大,吵了我这么久我都不放在心上,我弹吉它吵他们也算是扯平了,再者说了,狗叫要难听多了。\n2、不要在洗脚的时候练琴。\n这是一个很不好的习惯,源自我对时间管理的偏执。\n有段时间我觉得每天洗脚的这段时间被白白浪费了,我想,要是每次洗脚都认真看一篇文章的话我很快都能成为文学家了,可是我对文学没有兴趣,于是我选择了弹吉他。\n而且养成洗脚要弹吉他的毛病,就连老家也专门放了一把琴,洗脚专用。\n结果可想而知,我弹吉他的水平越来越臭。\n3、认真练习音阶和节奏。\n总算说到正经的了,音阶和节奏一直被我忽视,从来都是由着性子来,自负胸中有谱,想到哪里弹到哪里,不管琴弦按的对不对速度是否正确。\n结果到现在我仍然不能完整的弹奏任何一支曲子。\n现在每次我都认真练习十分钟的音阶并且开着电子琴用于矫正节奏,几天下来,感觉手指灵活了许多(当然是针对以前说的)。\n4、弹自己喜欢的曲子并投入进去。\n这个没什么可说的,只有自己喜欢的曲子才有可能投入进去,也只有投入进去才能觉得弹琴是很幸福的事情。\n当然现在距离人琴合一的境界还差一些,也许再过个三五年,或者三五十年可以达到。\n","date":"2009-11-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/","title":"练习吉他的心得"},{"content":"定律:上午删除的下午就会用到,而如果你不删除它们,永远也用不到。\n前两天听到有人抱怨现在硬盘越来越大了,动辄好几百G甚至上T,这对于AV爱好者来说是个福音,但对于一个偏执狂来说简直是个灾难。\n因为偏执狂要控制电脑里的一切,磁盘该如何分区,文件夹该如何命名,要建多深层次的文件夹结构都有详细的规划,比如音乐可按格式分为无损的和压缩的,按地域分可分为国内、欧美、日韩的,至于按流派分那就更头疼了,还有纯音乐等等,所以我有个偏执狂朋友甚至花费了将近一年的时间才慢慢把自己的那个叫做Music的文件夹整理完毕,真是一项系统工程。\n我对磁盘文件的管理也有些偏执,首先一点是不能看见回收站里有东西(听说还有人听清空回收站的声音上瘾),所以删除任何文件的时候都是按住shift键直接删除,这些倒霉的文件连进入回收站里歇会儿的功夫都没有直接就被踢飞了。\n我想说的是,这是一个很不好的习惯。\n每当我清理磁盘上“没用的”文件之后,随着干净文件夹带来的快感而来的就是马上就需要用到刚才被删文件的痛苦。\n一般来说,上午删除的下午就会用到,而如果你不删除它们,感觉永远也用不到,每天都在哪儿呆着看着真碍眼!\n刚才就又经历了一次活生生的例子,昨天晚上在家呆着没事儿,就把我家用机上的东西都打扫了一下,卸载了很多软件,最大的失败就是把开发环境卸掉了,把相应的安装文件也删除了。\n结果…………刚才被电话吵醒了,前方的同事有问题搞不定了,让我着实体验了一把手边没有开发环境(偏偏赶上不能使用远程桌面)来遥控搞定问题的艰辛。\n好了,牢骚发完,睡觉!\n","date":"2009-11-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/","title":"删除文件的定律"},{"content":"今年暑假的时候,老爸过来视察我的工作,会谈始终在亲切友好的气氛下进行,双方就共同关注的话题交换了意见。\n期间谈论到饮食问题时,老爸对我在北京是否按时吃饭深切关注,并表示:“一定要吃饱、吃好!身体好才能工作好,身体是革命的本钱嘛!”以上内容纯属虚构,真实场景是,老爸问我吃饭是否合乎口味,我说饭菜都还行,就是吃不到味道能赶上老家那边小镇上“福星酒家”做的四喜丸子,深表遗憾,老爸深表同情。\n以上对话造成的直接后果是,我这次回老家休假连续吃了七天的“福星酒家”的四喜丸子(每顿都得挑着大拇哥说好吃),吃的我现在看见四喜丸子就饱了。\n","date":"2009-11-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/","title":"四喜丸子"},{"content":"体检结果下来了,我唯一的毛病是体重不足,这是我的老毛病了,多年来身体只有拉长,从来没有横向发展过。医生给的建议是:多进行身体锻炼。\n我记得去年寒冬的时候我咬牙坚持跑了两个月的步,结果体重不升反降,后来人家都说跑步是减肥的良药,跑步被紧急叫停!\n好吧,那还有什么锻炼身体的好项目?\n篮球已半年多没打过了,也不好组织人打,台球太休闲,摔跤太枯燥,做俯卧撑又太危险了。\n我觉得以后要是有条件的话,可以考虑改变一下工作模式,上午下地干活儿(耕地﹑施肥等),下午编程写文档,日出而作,日落而息,男耕女织,夜不闭户,多美好啊,肯定能胖!\n","date":"2009-11-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/","title":"体重不足"},{"content":"最近总写一些偏向界面应用的代码,对于文件操作,字符串操作这些东西都快忘了,以至于下午想写个处理文本的程序差点儿无从下手,虽说python什么的好是好,咱也不能丢了C啊。\n","date":"2009-11-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/","title":"一日不练手生"},{"content":"突然下了一场大雪,天气一下冷了。\n换上最厚的被子,缩在被窝里看《生活大爆炸》。\n我的eeepc性能够弱的,一边看视频,一边打几个字都卡壳。\n","date":"2009-11-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9A%96/","title":"暖"},{"content":"单位机器上的xp已经装了2年了,昨天终于无法忍受越来越慢的速度(关键是office软件坏了,无法修复),决定重装系统,进来win7挺火,装一个试试看,RC版的,可以显示中文但界面为英文,无所谓了,先试用几天再说。希望能取代xp。\n","date":"2009-11-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/","title":"开始使用windows7"},{"content":"下了点儿小雨,天气突然转冷,走在街上都有些冻耳朵了。\n想起孙燕姿的一首歌,忘记什么名字了,\u0026quot;雨天,想起你的生日卡片,望着你的照片…\u0026quot;,叫什么名字呢,旋律挺熟悉…\n","date":"2009-10-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/","title":"雨天"},{"content":"经常在美剧和好莱坞大片里看到这样的情景,一个人对着自己的车或者某样心爱的东西感情丰富地谈话,比如\u0026quot;干的不错!伙计\u0026quot;,\u0026quot;全靠你了!\u0026quot;,\u0026quot;今天天气挺好的,你说我该不该去看她?\u0026quot;等等,就好像跟某人聊天一样。\n不知道他们生活中是否也是这样,感觉怪怪的。老外有人做过统计,相当比例的人喜欢自言自语,并且认为这很正常。我想这是跟他们使用语音信箱有关。\n据说使用语音信箱是他们的老习惯了,起源于上个世纪,打电话经常没人接,打电话者听到嘟的一声然后乖乖留言,并且对着话筒\u0026quot;得不得得不得\u0026quot;聊上半天。\n也许时间长了就养成自言自语的习惯了吧。\n某段时间我也对语音留言感兴趣,可惜国内没有该服务,后来有了,可是费用贵得离谱。\n现在我使用智能手机了,装了个软件就一切搞定,在无人接听的时候软件也能帮我接电话了。\n可惜咱们都没这个习惯,一旦知道对方没在听电话便立即失去说话的兴趣,匆匆挂断。\n常常有人听到我的提示音之后以为我在调戏他而冲我发牢骚。\n所以该软件装了这么久除了我的测试录音之外,并没有接到过真正有意义的留言。\n今天我终于收到一段有意义的留言:\u0026quot;靠!真受不了你!\u0026quot;\n","date":"2009-10-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/","title":"自言自语和语音信箱"},{"content":"我是一个没有恒心的人,需要恒心的事情我没有坚持下来的。\n长跑﹑写字﹑外语﹑弹琴,等等这些都没有坚持下来,理由多种多样,太累了,没时间,没天分。\n这些事情我常常去想,我要是能够从开始坚持到现在,那该多好?\n前两天看了些关于时间管理方面的书,方法千变万化,工具五花八门,但核心思想只有一个\u0026mdash;\u0026mdash;有梦想,并且坚持下来。\n没有什么能够一蹴而就的,我要慢慢练习。\n","date":"2009-10-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/","title":"开始练习"},{"content":"回老家休了个假前两天回家休息了几天,和家人团聚的感觉就是好。\n吃饭吃得香,顿顿都吃到撑。\n睡觉也睡的十分踏实,一点儿也不失眠。\n按照惯例和朋友们喝喝小酒,打打台球。\n老家民风纯朴,空气清新,我简直是不想回来。\n","date":"2009-10-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/","title":"回老家休了个假"},{"content":"终于收到googlewave的激活邀请!\n在我苦苦等待几个月之后,就在今天下午,我终于收到了googlewave的激活邀请!赶紧点击进入,由于之前已经看过了很多关于它的报道与评测,所以对界面也没有什么新鲜感了,总体感觉还不错,由于周围的朋友只有我收到了邀请,联系人列表里还空空如也,所以目前只能随便耍耍,不能充分发挥wave的特长\u0026mdash;\u0026ndash;在线协作交流。\n激活账户后,手里就有了8个邀请了,好珍贵啊,后来发现只是\u0026quot;提名\u0026quot;而非\u0026quot;邀请\u0026quot;,迅速发给好友\u0026quot;飞行鱼\u0026quot;一只,又给在twitter上的朋友们留了两只。\ngoogle这种靠邀请来刺激人好奇心的招数真是运用到了极致。\n","date":"2009-10-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/","title":"终于收到google wave的激活邀请!"},{"content":"我引以为傲的视力下降了,由于长期盯住屏幕的缘故,导致了一百多度的近视,最近狂做眼保健操,发誓要看清我对面墙的贴纸上的字。不过不怎么有效,刚才我忍不住凑上去看了看,发现贴纸没了。\n","date":"2009-10-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/","title":"眼保健操"},{"content":"为排解国庆假日加班的郁闷,今晚特与同事一起喝喝小酒。喝完后他们打牌,我作为牌盲,一旁观战。\n","date":"2009-09-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/","title":"喝小酒"},{"content":"难得糊涂啊难得糊涂,难就难在不知道该在什么时候糊涂,什么时候装糊涂。\n","date":"2009-09-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/","title":"难得糊涂"},{"content":"我这辈子最痛恨两件事儿,一个是排队,另一个还是排队。\n可悲的是,排队是必须要面对的。取钱要排队,交费要排队,买票要排队,上车要排队,点儿背的时候上厕所也要排队。\n排队的时候,心情是焦躁不安的,是望眼欲穿的,是忍不住想骂娘又不知该骂谁的。\n这个时候唯一可以获得安慰的是你身后的队伍越来越长,而你前面的队伍越来越短。\n可是,当队伍就像便秘的大肠那样久久不能蠕动时,当你的伸长了脖子恨不得直接伸到窗口撞墙时,你还是不能怎样,大家都一样。\n以上是去银行排队有感,纯属发泄,如有雷同,那简直是巧合。\n","date":"2009-09-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/","title":"排队"},{"content":"尽管我经常比闹钟醒的还早,可是起床仍然依赖闹铃。\n今天是星期天,由于国庆假期的原因,今天也要照常上班,可是我的手机有点儿小聪明,周末不闹。这下可好了,我终于睡了个自然醒,我在半梦半醒之中想明白今天要上班而且闹铃不会叫我时,我惊的一下子从床上跳了起来。\n还是晚起了一个小时。洗脸刷牙堵车堵车堵车还堵车所以,迟到了,可是郁闷的事情还在后头。\n我平时几乎不迟到,偏偏今天等我到公司的时候老总已经找了我一圈了,于是赶紧去报到,可是电梯坏了,于是爬楼梯,等我爬上十层楼梯,得到一个更加郁闷的消息:“假期要加班\u0026hellip;\u0026hellip;\u0026quot;(此处窗外电闪雷鸣并伴有大风)。\n如果不是爬楼梯爬的喘不上气,我肯定要仰天长啸十分钟。\n可怜我辛苦买到的往返火车票啊,现在要退掉!\n可怜我定好的假日计划啊,现在要取消!淡定,要淡定\n","date":"2009-09-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/","title":"美好的一天"},{"content":"到网上搜搜“秋天打雷吗”,发现还真有人问这个问题,我来告诉你吧,答案是肯定的!\n昨晚打了大半夜的雷,对于本来就有“周末睡眠障碍”的我来说真是雪上加霜,一道道闪电把窗帘的影子投在床上,好恐怖啊。之前我也以为秋天不会打雷,直到被巨大的声音惊醒的时候我还以为有敏感词搞敏感词被敏感词了呢,靠,最近因为敏感词要举办敏感词弄得的大家都紧张兮兮的。好吧,秋天会打雷,sowhat?\n","date":"2009-09-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/","title":"秋天打雷吗"},{"content":"电脑知识今天在greader上看了一篇文章,说是掌握了这些电脑知识就可以怎样怎样,我一看,写的都是些windows系统的操作技巧,有些见过,有些极为偏门。\n恩,有点儿意思,我就曾经错误的以为这些windows技巧就是电脑知识。\n大学的时候,当老师喷着唾沫讲解进程调度时,我正在研究如何修改win98的启动画面,当别人抱着书学习数据结构的时候,我却把如何修改win98资源管理器的脚本使其可预览mp3文件的技巧视为珍宝。\n可是这有个屁用,现谁还用这些玩意儿?\n干活儿时搞不定问题了还得去翻书,那里面才称得上是真正的知识吧(也得看是什么书)。\n嘿嘿,说规说,我还是迅速地把这篇\u0026quot;知识\u0026quot;文章收藏了。\n","date":"2009-09-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/","title":"电脑知识"},{"content":"关于\u0026quot;什么是\u0026quot;在google.com里搜索任何带有\u0026quot;什么是\u0026quot;的关键字比如\u0026quot;什么是手机\u0026quot;,连接会立刻被\u0026quot;重置\u0026quot;,并在短时间内无法浏览任何网站,但是在google.cn不会这样,在百度也可以。但是后两个……我又没搜索什么不和谐的东西,干嘛扼杀俺的求知欲捏!\n","date":"2009-09-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/","title":"什么是_什么是_"},{"content":"快捷键说实话我真的很担心未来计算机会像某些专家鼓吹的那样,完全没有键盘,而是通过语音或者眼神和人进行交流。我觉得可以没有鼠标,但是不能没有键盘。\n记得大学的时候,有一次我的显示器坏了,我只好凭记忆的感觉通过对键盘的操作来听歌﹑\u0026quot;看\u0026quot;电影等,大概过了一个星期,发现即使没有显示器也可以做很多事情,这件事儿让我对键盘产生了很严重的偏爱。\n我喜欢去记各个程序的快捷键,不是故意去记的,而是下意识的。\n无论是简单的快速搜索还是宏替换,再或者是复杂的组合按键我都烂熟于胸。\n还有比较偏门的,比如xp关机时按shift会出现休眠按钮等。\n所已我一想到快捷键脑子里就会飞过一片一片的写着按键的字符串,都是对各个软件的快捷操作,擦都擦不掉。能用键盘操作的还是用键盘吧,否则总会有一只手徘徊在键盘和鼠标之间(上网斗地主除外),长此以往手腕真会受不了。\n所以,我特别喜欢的软件都是提供了强大的快捷键功能的,totalcommander方便的操作使人上瘾,gmail和greader里的快捷键让人中毒,vim咒语般的命令叫人忘记鼠标的存在。\n就说这么多吧,快到家了。\n","date":"2009-09-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/","title":"快捷键"},{"content":"体检今天是每年一度的例行体检,一切正常。\n各个零件都正常,医生们也都正常,还像往常那样懈怠。\n耳鼻喉科的大夫是我见到的唯一一位比我还偏执的人,先是抱怨办公室被人换了,体检系统无法登录,然后又觉得鼠标放的不是地方,掘起屁股找了半天鼠标,然后发现台灯的线和条码扫描器的线缠绕在一起,全部解开后才满意地叫我坐过去,最后发现我的椅子摆的不正,让我像小学生上课那样坐好才行。\n花了老半天收拾好之后,就草草看了两眼:\u0026quot;下一个!\u0026quot;。\nps:我的视力果然下跌了。\n","date":"2009-09-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/","title":"体检"},{"content":"听歌的心情偶尔听了听朋友的mp3,发现是经典老歌大放送,最喜欢听老歌了,马上将其全部考走(没用剪切,不像某些考毛片的学生)。\n有些歌相当长的时间没听过了,有些上次听的时候还在用盒带。\n朋友向我抱怨说现在的随身听容量太大,选歌忒麻烦,跳来跳去跳不到心坎上。\n我也有此感受,我平时干活儿时一般都开着foobar,列表里四五千首歌,几乎没有一首能耐着性子听完,于是我设置了全局热键,一边编码一边换歌,时间长了练就了只要听三秒钟前奏马上就听出是什么歌的本领,要是有此类比赛,我肯定能获奖。\n为什么就没有耐心听完一首呢,为什么呢?\n技术的前进加上人的浮躁!以前听磁带的时候,想跳下一曲得按快进,马达呼呼跑半天,既费时间又费电(那时买不起南孚),还不能保证刚好到下一曲(后来出的高级货具备自动检测的能力就另当别论了)。\n那个时候我练出来的就是另一个本领了,用铅笔转磁带!\n既省电又准确,所以我就经常一边听歌一边拿笔转另一盒磁带。\n现在好了,想听什么直接在线就听了,遇见喜欢的直接就下载了,特别喜欢的就下载无损压缩的,再也不去逛碟店了。\n然后在成千上万的曲目里跳来跳去。\n可是,我听歌的心情那里去了?\n","date":"2009-09-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/","title":"听歌的心情"},{"content":"尽管朋友们露出鄙夷的目光,《建国大业》这部片子,我今天还是去看了。\n片子净长133分钟(据不可靠消息说本来长度可达4个小时),加上开头有20分钟左右的广告,让我坐了两个半小时吧。虽然开场之前大家都去放水了但影片结束后电影院的厕所还是堵了个水泄不通。\n感受呢,还行。演员阵容不是一般的强大,演员的演技实力也不是一般的强大,所以单纯从电影的角度来说,感觉应该是一部很不错的电影,所有人都很卖力气。\n但是感觉时间上还是有点儿赶,故事讲的很跳跃速度很快,明星们冒个泡亮一下,连个沙发板凳都还没抢,就进入下一个环节了。\n看的时候总是想跟小时候看的那个《开国大典》来比对,《开国大典》看了n遍了,很多情节还是记忆犹新,比如吃面没带钱,解放军砍总统府的棋,登城楼时往上爬台阶的那个长镜头。\n这个《建国大业》里面还是有些笑点的,安排的还算轻松,比如冯巩老抢不上发言,女代表让郭德纲改底片,许三多报告发现前面的地主大院不容易攻打请求炮火支援,结果葛优一看,发现这是到了德胜门(好像是德胜门,管它哩)。\n最后,这部片子可看,其他人说了屁也不算,何必让别人的垃圾评论影响自己的观点哩。\nps:电影而已,外籍演员的片子你还少看了?\n","date":"2009-09-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/","title":"还是说说吧"},{"content":"手机没电了本打算在路上写今天的博客,结果手机一个劲儿地提醒电量低。\n我看看能不能发出此篇。\n我的手机配了两块电池,一块是原装的,另一块也是原装的。\n在轻度使用的情况下每块电池可以坚持一周左右,最近使用过度,连三天都很勉强。\n本来我家里有座充,公司有旅行充,但是现在在路上,没电了。\n","date":"2009-09-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/","title":"手机没电了"},{"content":"吹吹灰我的博客三个多月没更新了,我估计上面已经开始结蜘蛛网了吧。\n说是没时间更新显得太娇情了,不过确实是没时间。\n这段时间以来一直在忙同一个项目,全部的身心都投入到上面去了,根本没有精力更新这里,连QQ﹑MSN等都一概不上了。\n好在现在终于进入了一个新的阶段,我觉得也需要每天换换脑子,思考点儿别的东西,或许对工作质量有一屁股的促进作用。于是我又想到了写博客(为什么要说又呢),那就到这里吹吹灰尘吧,像往常一样,同时发送到livespace和blogspot。\n说点儿啥呢?对了,我开始用twitter了,人的思想真是奇怪,在twitter没有被封掉之前一年多我就注册了,但是根本不用它,等到twitter被封了之后却又非常想在上面发发牢骚。\n虽然不能正常登录,对于我等爱钻研爱学习的人到也增添了不少情趣。\n这就像是和好不容易追的姑娘交往一样有意思(屁话)。\n好吧我承认我不会像沉迷于google那样沉迷于twitter(什么你还有google瘾),至少不能耽误干活儿,我只是渐渐感到twitter才是最好的新闻来源(屁话)。\n还有就是我在手机安装了gravity这个twitter客户端,这是个很容易让人中毒的软件,请不要误会,此毒既不是医学上的也不是计算机病毒。\n先说这么多吧,经过这段时间的繁忙工作,我感觉我已经有了轻微的精神分裂迹象,看看上面的文字就能感受的到,好吧。\n","date":"2009-09-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/","title":"吹吹灰"},{"content":"桌面壁纸有嘛用?\n整天看到人乐此不疲地换来换去,唧唧歪歪,真是还躁。\n我的桌面壁纸就是黑乎乎的一片,上面散落着几行咒语般的VI命令。\n擦!误把这里当推特了\n","date":"2009-07-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/","title":"壁纸"},{"content":"赶!回来的时候,用自动售票机买的票,这机器有点儿缺心眼,认为我是短跑高手,给了我一张5分钟后就发车的票,看完之后我马上汗就下来了,一溜小跑,要说还是天津人民素质高,不仅不在乎我夹塞进站还帮我查询检票口的号码,我一路狂奔到车上,还没站稳,车就开动了!\n","date":"2009-06-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B5%B6/","title":"赶"},{"content":"上次的津门半日游一点也不过瘾,这次估计再待半天。\n","date":"2009-06-12T00:00:00Z","image":"https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/20090612_hu99c23b465af1e5d9b1a22d0495651ba3_31295_120x120_fill_q75_box_smart1.jpg","permalink":"https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/","title":"俺又要到天津出差啦"},{"content":"下班后去超市买东西,面对如此拥挤的人群,我感到大脑一片空白。\n","date":"2009-06-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/","title":"恐怖的超市"},{"content":"买了个U3鉴于东西放到网上太不安全,如果把资料整理到网上,比如说blog,说不定哪天就灰飞烟灭了(确切的说是被众所周知了),我觉得有必要将自己的知识管理系统转移到U盘上了。\n现在U盘已经白菜价了,随便选了几款,最终选择了SanDisk的U3,因为附带了U3软件,所以据说可以将常用软件随身携带,还有安全保证。\n可是这个U3软件我刚用了半天就把它卸载了,原因是:首先它不支持Linux,其次里面很多可移动的软件都是收费的,再次,对于禁用了自动播放功能的机器来说,操作是很麻烦的。\n好了,我现在把它当普通盘来用了,准备在上面装个轻量级的Linux发行版,比如Puppy,然后再建个wiki,然后再慢慢把东西整上来。\n","date":"2009-06-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/","title":"买了个U3"},{"content":"第一次在北京看到了彩虹,手机拍的,不清楚。\n","date":"2009-06-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/","title":"看见了彩虹"},{"content":"用了两个月的GoogleChrome浏览器之后,现在我又换回Firefox了,虽然Chrome很快,启动很快、网页加载很快、js脚本飞快,但是还是无法替代我的Firefox。\n首先就是在页面的渲染效果上chrome没有firefox好看,尤其是对于中文页面的渲染,再有就是firefox拥有无比强大的插件系统,与其说舍弃不了firefox倒不如说是舍不得那些插件,delicious、greasemonkey、tabmix、ubiquity等等都是绝世好插件,给我的浏览带来完美的体验。\nchrome也是很好的浏览器,从刚发布时的粗糙简陋到现在的稳定、高效、人性化,进步非常快,记得chrome刚发布的时候我立即就安装了,也立即就卸载了,太简陋了(也许是简约)。\n后来2.0的时候我又忍不住安装了,这次提高很多,渲染中文字体也比以前好看,速度飞快,于是我坚持用了两个月,期间忍受着没有delicious书签的痛苦。\n现在我又换回到firefox了,虽然启动慢点儿,内存占用多点儿,可是用起来真是很可手,听说马上要出3.5了,拭目以待。\n","date":"2009-06-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/","title":"还是难舍firefox"},{"content":"我有两个同步更新的blog,一个在Google的blogspot,一个在微软的livespaces,blogspot不能访问很正常,可是从昨天开始,连放在livespaces的也不能访问了,真不知到抽的哪阵风。GFW,我叉你老叉的叉叉叉。\n","date":"2009-06-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/","title":"博客不能访问了"},{"content":"小时候的语文课里有一段对鲁迅先生头发的描述:\u0026quot;头发约莫一寸长,显然好久没剪了,却一根一根精神抖擞地直竖着。\u0026quot;\n能留出这种发型来,光有好的洗发水是不够的,关键是发质,我的头发就是这样。\n我的头发现在两寸长都有,虽然大部分都乖乖趴着,但是一觉醒来之后,总是有几小撮不合时宜地直竖着,任你嗻哩还是魔丝都无法把他们撂倒。\n每天早晨洗漱完毕到梳头这一环节时总是想起刚才那段对鲁迅的描述,然后顶着翘得像刺猬般的发型去狂奔。\n","date":"2009-05-31T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/","title":"发型"},{"content":"媳妇带着孩子过来视察工作了,所谓兵马未动粮草先行,来之前先把小孩子用的东西打了个大包裹给寄了过来。\n也不知是放假的原因还是快递公司的车没有动车组快,她们已经到两天了,我今天才收到包裹。一个很大的包裹,被快递公司在外面又包了一层蛇皮袋,然后又用透明胶带在外面缠了几圈,再加上一层土,看起来让我想到了民工兄弟。\n就这大包,下班后我往肩上一扛,一股劳动者的优越感油然而生,用媳妇儿的话说,我要是手里再拿只山寨手机,然后把喇叭外放打开,播放一曲高亢的\u0026quot;月亮之上\u0026quot;,就完美了!\nPS:我也是个民工,此篇没有鄙视我们民工的意思。\n","date":"2009-05-31T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/","title":"扛包"},{"content":"第一次到火车站接人。\n需要买站台票,售票员会要求凭火车票购买站台票,但是你说是来接人的,她就会毫不犹豫地卖给你站台票了,我感觉这是个漏洞。\n到了站台才发现我来的实在是早了点儿,火车还有一个多小时才到站,接人的地方又不是候车室,别说椅子了,连个马扎都没有。\n我干脆一屁股坐在了冰凉的地板上,怀着焦急的心情,等待火车的到来。\n","date":"2009-05-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/","title":"接站"},{"content":"今天去天津出了一趟差。\n感觉天津是个不错的地方,不愧是“上有天堂下有天津”(有这句话吗?)。\n首先感受了一下中国最快的列车,时速达330的城际特快,椅子都没有坐热都已经到了天津站。\n然后就听到了地道的天津方言,虽然是第一次到天津,但感觉很亲切,倍儿舒服。出租车司机话也很多,天南地北都挺能侃,和北京的出租司机有一拼。\n下了车就奔公司分舵去了,那里的同事也十分热情,简单吃过饭,就去办公事。\n然后就是打车去火车站,又是椅子没做热就到了北京。\n所以,虽然是去了一趟天津,基本上也没啥感受,就是感觉那儿人挺不错,环境也不错,至少比北京强,还有就是感叹城际特快的速度,要是以后坐火车都像这样,那航空公司肯定要关张了。\n","date":"2009-05-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/","title":"津门一日游"},{"content":"朋友婚宴,多喝了三五杯。明日出差,一路顺风!\n","date":"2009-05-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/","title":"无题"},{"content":"郁闷的紧急任务什么样的任务是令人郁闷的泥?\n比如说,邻近下班的时候,老总紧急抠你,递给你一张小纸条,然后气喘吁吁的对你说:\u0026quot;实在是安排不开了,你赶紧按照这个意思做个PPT,明天上午十点钟给客户演示一下。\u0026quot;\n你接过纸条一看,发现上面只有几行小字,比一条手机短信还短,更郁闷的是,上面的内容比较生辟,大家都没搞过的那种。\n你长叹一声,心想,为什么总是等屎到了屁股门口才上茅房!\n我今天就遇到了上述情况,多亏了Google的搜索和维基百科,我抽了三根烟才把PPT做完。\n","date":"2009-05-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/","title":"郁闷的紧急任务"},{"content":"作为一个天生的左撇子,我除了写字用右手之外,拿筷子,切菜,投篮,羽毛球,乒乓球,台球,包括用鼠标都是用左手。\n其实最早的时候我连写字都是用左手的(右手只会扔板砖),只是后来被家长逼着换成了右手,这样直接导致的一个后果是,我的字写的很烂,除了自己的名字写的还勉强能看之外,其他汉字都写得潦草的像鸡挠一样。\n平时也还有很多郁闷的事儿,比如我坐地铁,左手拿着卡在通道上一刷,嗒的一声,我正前方的门没开,左侧通道的门开了,还得蹬蹬蹬转过去。\n为什么想起左撇子这件事儿呢,因为今天考试的时候需要拿起多年不用的笔来写一篇论文,论文写的烂不说,关键是字写得实在是不堪入目,想来想去除了怪我练字不够努力之外,也只能怪我当时没有坚持用左手写字了,只是,令人尴尬的是,我左手写的比右手写的还难看。\n","date":"2009-05-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/","title":"左撇子"},{"content":"早在去年的这个时候,我们就发过牢骚,只要是我们想打篮球的时候,必然要下雨。\n今天再次证明了这一点。每次我们兴致勃勃地带好球衣,穿上球鞋,给篮球打满气,这一切收拾停当之后,刚刚还晴朗的天空突然就飘来朵朵乌云,半个时辰之内必有甘霖降落。\n可是如果我们仅仅是说好了打球然后又因故取消的话,这场雨就不下了,可见,求雨还得心诚才行啊!\n","date":"2009-05-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/","title":"球雨"},{"content":"这两天我的系统特别慢,这归功于office,由于工作需要,最近我每天都需要打开大量的word文档,而这个时候我的机器就有些吃不消了,基本上打开个1m左右的文档大概需要一袋烟的功夫,这样的文件要是同时打开个4~5个,那我的机器就干不了别的了。\n于是我就尽量减少并行运行的程序,并把占用大量内存的程序更换成占用少些的程序,比如把firefox换成了Googlechrome,后来我干脆把qq、msn统统关掉了,因为我发现根本没时间聊天。\n但是问题就来了,以前我的qq是整天在线的,qq的状态就显示了我的工作状态,我妈每天都上qq看一看,有时是为了打牌,有时就仅仅是看看我在不在线,也不跟我聊天,看看就踏实。\n我刚一个上午没上线就打电话问我,“什么情况?为什么qq不在线?”,我解释一番。\n今天又有朋友发短信过来表示关心:“这几天上线这么少,有事儿吗?”看来,qq真的很重要\n","date":"2009-05-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/","title":"该不该qq"},{"content":"wolframalpha 上线了,据说是个Google杀手,而且是基于“语义”的搜索我试用了一下,感觉挺有意思,本来按照我的理解是搜索“黄河有多长”就能直接给出答案,可是人家目前还不支持中文,又听说他的数学能力不是一般的强,于是输入了一个一元二次方程y=2x^2+3x,竟然直接把函数曲线画出来了看了学生们以后做作业不用那么麻烦了\n","date":"2009-05-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/","title":"有意思的wolframalpha"},{"content":"我以前写代码的时候总是习惯戴着耳机写,代码的风格总是跟着音乐的风格,一会儿古典一会儿流行,要是哪天赶上一段二泉映月之类的,写出的代码立即就透露出点点的哀伤,就连变量的命名也变得婉转起来。\n当然了,如果碰上不好的音乐,写出的代码总是bug特别多!所以我过一阵子就会清理一下硬盘上的mp3,把那些影响代码质量的音乐彻底删除,比如黑色星期天之类的。\n总之,音乐就像是我的粮食,一天没听音乐就像是没吃饭似的。\n不过,要是按刚才这句话的定义,我已经个把月没吃饭了,最近有个项目搞得我压力特别大,耳机也懒得戴了,每天就是挣扎在一堆文档中间。\n前天吃饭时突然得到同事的点醒,才意识到我还得把耳机戴上,于是乎,今天的工作就十分顺利,事情也很流畅,我仿佛又找到突然间的自我了。\n","date":"2009-05-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/","title":"戴着耳机干活儿"},{"content":"作为一个工具狂人,我对Vim的喜爱是天生的。喜欢Vim的简单、高效、朴素、专业\u0026hellip;。所以Vim成了我的主编辑器,无论是在Linux下还是XP下都能帮我高效地完成工作。(当然,Visual Studio才是我混饭吃的主要工具,不过这不是今天要说的重点)\n对于使用Vim的人来说,大部分的工作是用Vim来编辑代码,这么一来代码的自动补全就很重要了。虽然使用SuperTab、C-Support等插件之后Vim的代码补全功能有了很大提高,但是离VS下面的VSAssistant还是有一定的距离的,比如对于代码块的补全就不是很方便。\n今天我发现的这个叫做snipMate的插件很好的弥补了这一点。这个插件再次证明了Vim是无所不能的,也说明了聪明人要是懒起来真的可以很过分。\nsnipMate的下载地址:http://www.vim.org/scripts/script.php?script_id=2540\n下载解压到vimfiles目录即可,然后打开Vim,试着编辑一个C文件,比如hello.c,输入main然后按Tab键,你会发现代码变成了下面这样:\n1 2 3 4 int main(int argc, char const *argv[]) { return 0; } 先输入for再按Tab键:\n1 2 3 for (i = 0; i \u0026lt; count; i++) { } 再按Tab键,光标还会自动跳跃到count、i、code上,以方便编写自己的代码。snipMate同样也有if、while、define等常用的片段补全。\n当然了,snipMate是支持各种语言的补全的,比如Python、HTML、Java等等。\n最后,最重要的,就是snipMate支持自定义补全,语法也很简单,通过编辑配置文件可以很方便地定义自己的自动片段补全。\n再来一段演示视频,看完后就马上去下载安装吧!演示视频链接\n","date":"2009-05-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/","title":"发现一款vim代码段补全的插件--snipMate"},{"content":"最近习惯在晚上听着音乐或相声、评书睡觉,但电脑总是忘记关,于是使用Windows的shutdown -s -t命令来进行倒计时关机,但是我还嫌这样麻烦,因为要按多次键,还要输入命令,于是就写了下面的AHK脚本,运行后只要按下Windows键 + S键即弹出一个输入框,输入3600即一个小时,到时候就自动关机啦。后来觉得有取消关机的可能,就加了一个判断,到时候点击取消的话,就放弃关机了。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #s:: InputBox, time, 关机倒计时, 请输入一个时间(单位是秒) if (time \u0026gt; 0) { loop { if (A_Index \u0026gt; time) { break } sleep, 1000 count := time - A_Index ToolTip, 剩余:%count%秒关机 } ToolTip MsgBox, 33, 关机倒计时, 定时关机的时间到了,确定要关闭计算机吗? `n`n此框6秒内自动确定, 6 IfMsgBoxCancel { MsgBox 取消了关机 } else { Shutdown, 9 } } return ","date":"2009-04-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/","title":"关机倒计时ahk脚本"},{"content":"同事传来一张图片,看了之后茅塞顿开,简直无法比喻了。\n","date":"2009-04-15T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/20090415_hu8556d716ea99f5e48c1158b9974178f4_60222_120x120_fill_q75_box_smart1.jpg","permalink":"https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/","title":"原来如此"},{"content":"试用Googlemusic的泡泡选歌功能,可根据节奏和音色等属性选歌,最爽的是可以根据年代选歌。从我这张截图上可以看出我最爱听老歌。网址:http://www.google.cn/music/songscreener\n","date":"2009-03-29T00:00:00Z","image":"https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/20090329_hu0553601e01a09990ad279be7fc6278ee_94663_120x120_fill_q75_box_smart1.JPG","permalink":"https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/","title":"试用Google music的泡泡选歌功能"},{"content":"nan\n","date":"2009-03-27T00:00:00Z","image":"https://sbabybird.github.io/p/if-you-want-me/20090327_hu7b153d4f985e5ae793c9cf04e8187a85_16608_120x120_fill_q75_box_smart1.jpg","permalink":"https://sbabybird.github.io/p/if-you-want-me/","title":"if you want me"},{"content":"呵呵\n","date":"2009-03-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/","title":"就不说这是啥"},{"content":"我有个很大的毛病,就是爱好学习,有很强的求知欲。\n我觉得主要的原因是好奇心太强,尤其是对于技术方面,恨不得什么都能掌握,后来发现那是不可能的。\n但是我还是很喜欢搜集各方面的知识资料,总以为以后有时间会用到。\n开始时我喜欢胡乱放文件,一些技术指南、一些能力技巧、一些文档秘籍等等,这些东西有些是从网络上获取的,有的是自己亲自总结的,都是很值得收藏的玩意儿,我把这些看似有用的东西一股脑地扔进硬盘。\n我的硬盘越来越满,想找的东西越来越难以从堆积的资料中翻出来。\n直到有一天我发现如果一份资料在用到的时候找不到,那就等于没存,甚至还不如不存,困惑了一段时间后,通过网络搜索第一次知道了“个人知识管理”这个“东西”。tobecontinue\n","date":"2009-03-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/","title":"我是怎样进行知识管理的"},{"content":"晚饭喝粥吃饼,就在离公司不远的粥铺。\n这家的大麦粥很合我的口味,提供的主食里有一种面饼,拿辣椒、鸡蛋、面粉混在一起煎制而成,曰:尖椒饼。\n吃起来绵软可口,十分鲜美,是我每次必点的主食。\n美中不足就是份量太少,每次总被我三口两口吃完,于是我今天就一次点了两份,服务员好像很不解,瞪着眼睛有跟我确认两遍,然后转过身吐了吐舌头冲别服务员做了鬼脸。\n她心想,没看出来,这家活这么瘦还这么能吃。\n我心想,谁能吃啦?你们也不觉的害臊,这么少的东西也好意思端上来。\n不过,我还是假装只吃了一张饼,那一份打包了在路上吃了…\n","date":"2009-03-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/","title":"吃饼"},{"content":"有几个月没认真写工作日志了,费劲搭建的trac平台也逐渐荒芜。\n最近的工作效率一直不高,系统太慢,硬盘太乱,内存不足,桌面难看…狠了狠心还是没有重做系统,准备工作太多,要装得软件太多,到最后还是一样。\n于是就本着磨刀不误砍柴工的精神,整理了一下文件夹,吹了吹trac平台的灰尘,开始好好写工作日志。\n以后要坚持每天清理收件箱,每天早晨安排一天的事务,并注意每天回顾。\n为了节省流量就写这么多吧…\n","date":"2009-03-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/","title":"重新启用工作日志"},{"content":"年前我连续两个月坚持晚上跑步,就是绕小区跑一圈,大概十分钟左右,后来天气太冷,就暂停了。\n现在天气又暖和了,我想还是把跑步这个计划坚持下来吧,每晚跑一圈,对身体的效果也许不明显,就当是锻炼执行力了。\n","date":"2009-03-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/","title":"如果可能的话,恢复跑步。"},{"content":"夕阳无限好\n","date":"2009-03-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/","title":"夕阳无限好"},{"content":"笔筒,自动对焦拍摄。\n","date":"2009-03-15T00:00:00Z","image":"https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/20090315_hu37199544be19d6d590aeb3bc21327668_27443_120x120_fill_q75_box_smart1.jpg","permalink":"https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/","title":"笔筒"},{"content":"周末的下午,按照惯例,看片!看到了论坛上推荐的《飓风营救》原名(Taken),名字取的有点儿让我不太想看,但是无聊的很,还是看看吧。\n结果这个故事真的引人入胜,一个为了女儿而退役的老特工,为了女儿营救女儿,几乎把巴黎闹翻了天,虽然有点儿英雄主义,但看得让人很过瘾。\n等到看完了我才想起来查查这个影片的导演是谁,我靠!居然是吕克贝松(开头的字幕居然没注意到),啥话也不说了,此牛人没拍过一般的片。\n剧中的主角为了营救女儿,几乎干掉了他遇到的每一个坏人,而且手段十分干净利落,甚至残忍,这恰恰是最过瘾的地方,比起以往此类电影,主角往往带着仁慈再次受伤而导致事情失败,让人唏嘘,但此片不然,对坏人,乃至对坏人的老婆\u0026mdash;\u0026mdash;貌似一个十分无辜的人,也毫不留情,这种做法,将一个父亲对自己女儿的爱,表达到了极致。\n总结成一句话就是:为了女儿豁了老命什么也不顾了!\n","date":"2009-03-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/","title":"五年来看到的最过瘾的一部电影"},{"content":"手机发图片测试\n","date":"2009-03-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/","title":"手机发图片测试"},{"content":"手机写博客测试。\n","date":"2009-03-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/","title":"手机写博客测试"},{"content":"googlereader用了快两年了,我认为它是目前最好的在线rss阅读器了。\n自从greader推出好友分享的功能后,我的好友也加了不少,而且大家都把自己认为有价值的条目共享出来。\n但目前有点不太令我满意的地方是\u0026mdash;-重复的共享太多,就是说一条有意思的rss内容反复的被好友共享,即使我已经阅读过此条目,当我在点击进入朋友共享的条目时,如果有朋友共享了该条目,则greader会认为我未读过这条内容,于是就会出现同一条资源被反复阅读的情况。\n我觉得greader最好再智能一些,即我读过的东西,哪怕有n个人又共享了n遍,也不要列入到我的未读列表里,这样才好。\n","date":"2009-03-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/","title":"对googlereader中共享条目的看法"},{"content":"我以前写过一个程序,在pda上通过读取gps模块的串口信息来实现坐标定位的功能。通常gps模块都会输出标准的GPRMC与GPGGA信息,所以程序一直运行正常。\n今天突然遇到奇怪问题,同事说我的那个程序不好使了,虽然能够打开gps模块但是不能解析经纬度等信息。\n这是一个国产的智能手机,自带的gps导航程序可以正常定位,但我的程序不行。\n于是我把从串口得到的信息统统打印出来,仔细调试,发现该gps模块可以正常输出GPGGA格式的信息,但输出GPRMC格式的信息却不完整,而我那程序正是通过解析GPRMC的信息来实现坐标定位的,于是修改代码,放弃GPRMC信息,改为从GPGGA里读取坐标信息,程序正常。\n但我还是没弄明白这个gps模块为什么会输出不正常的GPRMC信息。\n头大。\n另附GPRMC与GPGGA的解释GPGGA的百度百科解释GPRMC的百度百科解释\n","date":"2009-03-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/","title":"今天遇到的问题,GPRMC与GPGGA"},{"content":"这次来京时,老婆大人托付的有点儿小事要办,帮家里的亲戚在北京买点儿药,冲剂类,应该就像板蓝根似的。\n来之前,特地将药品的描述写了个纸条塞进我的口袋。\n到了这边之后,进入工作状态后,立即将此事抛到了九霄云外了,直到老婆今日在qq上提醒我才想起。\n后来经人提醒,药物无法邮寄,无论是平邮还是EMS均没戏,让我很是失望,不过还好,咨询快递公司后,人家说只要不是液体就行,而且感觉服务又比EMS好的,当然就用快递了。\n靠,龌龊的EMS!额真鄙视你呀\n","date":"2009-03-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/","title":"我的好忘性"},{"content":"我的英语水平一直徘徊在“烂”与“那是相当的烂”之间,那是因为我的词汇量一直少的可怜,我也曾经心潮澎湃地背单词,甚至背字典,但都没有坚持下来,每每想起都非常懊悔,如果从我刚学英语那天就每天记住一个单词的话,现在至少记住5000个单词了,当然这是不可能的,因为我没有坚持下来。\n学习其他东西也是这样,十年前就摸过吉他,而且能像模像样的弹一首单调的曲子,也是因为没有坚持练习,到现在还是那个水平。\n年前一段时间,我心血来潮,准备每天晚上坚持跑步,但是仅仅跑了两个月,就在冬至那天被打败了,天太冷了,还是不能坚持。\n一旦松懈下来,就再也不想继续了。\n有相当一段时间,我以为每天写一篇博客实在是很轻松easy的事情,但是前一段时间工作一忙,还是没能坚持下来。\n哪怕是一天在上面唠叨一句也懒的罗嗦。\n现在,下班了,我想换换脑子,思考了半天,竟忍不住感叹一句:“做什么事情,最难的就是坚持!”\n","date":"2009-03-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/","title":"坚持是最难的事情"},{"content":"回老家温暖几天之后,我现在又恢复到一人吃一人住的状态了。\n刚到北京就感冒了,先是鼻子消极怠工,然后是咽喉肿痛,再后来就咳嗽,直到昏昏欲睡,浑身酸痛。\n昨天加了一天班,不想在外头吃了,就跑到超市买了一堆东西,想自己做着吃。\n忽然想起来前几天上火车时老妈给我拿的煮鸡蛋,现在还都在冰箱里放着呢,只是不知还能不能吃,发短信请示老婆,问是否还能吃,批示曰:“浪费可耻,尽量吃掉!”我想也是,何况这可是纯天然的柴鸡蛋啊,在北京想吃还吃不到哩。\n于是就把一个鸡蛋放到微波炉里,想热一下再吃,只怪我由于感冒引起的大脑短路,忘记给鸡蛋剥皮,在加热到15秒的时候就听到一声巨响,就像正月十五放烟花的那种响声,坏了!赶紧关掉微波炉的电源,打开一看,鸡蛋炸成了米粒那么大小碎片,均匀地分布在整个微波炉里。刚好,我早就想清理一下微波炉了,借此机会,清洗一下!\n","date":"2009-03-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/","title":"昨天洗了一下微波炉"},{"content":"很久没有更新了,懒是一方面原因,另一方面是因为最近忙的没有心思写博客了。其实按理说,每天抽出一点时间来唠叨两句还是能够办到的,只是一旦停下来,再开始就更费尽了。随便整理一些东西发上来吧,又是关于技术的。\n有一段时间我需要写程序来处理tif格式的影像图,在网上找来找去就发现了gdal这个好东西,可是在vc下调用它还是有些罗嗦,达不到快速调试的效果。于是前两天我又试着在python下调用gdal,把思路先用python实现一遍,调试通过了再用c++。下面是最简单的显示一幅tif影像图的python代码:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import pygame from osgeo import gdal pygame.init() screen = pygame.display.set_mode(WINSIZE) pygame.display.set_caption(\u0026#39;gdaltest\u0026#39;) pygame.time.set_timer(USEREVENT, 50) dataset = gdal.Open(\u0026#34;c:/test.tif\u0026#34;) surface = pygame.Surface((WINWIDTH, WINHEIGHT)) parr = dataset.ReadAsArray(1, 1, WINWIDTH + 1, WINHEIGHT + 1) r = parr[0] g = parr[1] b = parr[2] img = pygame.PixelArray(surface) for x in range(WINWIDTH): for y in range(WINHEIGHT): img[x, y] = (r[y, x], g[y, x], b[y, x]) show(img) ","date":"2009-02-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/","title":"在python下调用gdal库来显示影像图"},{"content":"最近一段时间都会比较忙、相当忙、非常忙,正常下班的时间已经被无情地调整到了晚上9点,请注意,我说的是下班时间,我可没说加班加到几点。\n","date":"2009-02-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%92%A6/","title":"咦!"},{"content":"真快,又开工了。\n","date":"2009-02-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/","title":"我回来了"},{"content":"牛年大吉!万事顺利!\n","date":"2009-01-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/","title":"春节好!"},{"content":"好啦,历时十二个小时,经过无数次的转车,终于平安到家了。\n带着一身的疲惫,当我走进家门的那一刻,所有的烦恼与苦难都在一霎那间烟消云散了。\n管他是令人发指的票贩子,还是无处不在的小偷,是零下十几度的寒冷天气,还是把我折磨得筋疲力尽的客运系统,都通通给我一边去吧。\n虽然屋里没有暖气,但是可口的饭菜,家人的欢笑,这一切都让我觉得比开着暖气的北京温暖多了!\n","date":"2009-01-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/","title":"什么也比不上家的温暖"},{"content":"一路顺风!明天就到家啦。\n","date":"2009-01-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/","title":"一路顺风!"},{"content":"说说小时候过年的事情吧,那个时候我们村里还没有通电,平时晚上会点煤油灯来照明,过年的时候家家户户都要点蜡烛,俗称\u0026quot;大蜡\u0026quot;。\n这可不是一般的蜡烛,而是非常巨大的一对蜡烛,差不多有两斤重,顶端粗壮,下端圆滑,底部有孔,上面通常写着非常有年味儿的对联,如\u0026quot;一杯美酒敬天地,三柱清香谢神灵\u0026quot;等字样,金色的字,红色的蜡闪闪发光。\n这么大的蜡是不能直接放在桌子上点燃的,一般要有支撑蜡的架子,俗称\u0026quot;蜡台子\u0026quot;,现在的小朋友可能都没有见过蜡台,那是一个精致的木头架子,刷上红漆,中间有两根铁柱竖着用以把蜡烛插在上面,手巧的木匠会把蜡台做的颇具艺术感。\n也有的人家直接把一个大萝卜切开两半,平着摆在桌子上,再插上两根筷子,也成了不错的蜡台。\n大蜡会在大年初一那天四五更天的时候点燃,我过年一般起的很早(小孩子最爱过年了),起来之后洗漱完毕第一件事情就是点大蜡,大蜡的火苗很大,照的整个堂屋像白天一样明亮,也预示着大家在新的一年里红红火火,吉祥如意。\n点大蜡、敬香、吃饺子,然后放鞭炮这个流程就是我对小时候过年的记忆。\n","date":"2009-01-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/","title":"过年的蜡烛"},{"content":"还有两天就回家了,身在北京,心早已飞到了家人的身边。 ","date":"2009-01-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/","title":"最后的倒计时"},{"content":"还是洗洗睡吧。\n","date":"2009-01-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/","title":"看完了《叶问》,心情沉重地去洗澡了"},{"content":"这两天做了一个程序的demo,在台式机上十分运行正常,在笔记本上运行时,窗口就是不能最大化,最大化之后程序窗口只能显示一半,鼠标也拖不动它,因为windows认为你的窗口既然已经最大化了所以就不让你拖动了:)。\n反复调试程序也找不到问题所在,最终才想到是显卡驱动的问题,于是我抱着试试看的态度(这个语气好熟)把Nvidia好心提供的附加程序\u0026quot;desktop-Manager\u0026quot;功能给禁用了,程序立即就好使了,窗口可以正常最大化了。\n如图\n","date":"2009-01-19T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/20090119_hu467aba225f0fe8cf11967b9dcb450ca7_38418_120x120_fill_q75_box_smart1.JPG","permalink":"https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/","title":"显卡驱动导致程序不能正常最大化窗口"},{"content":"前天在网上看了个视频,某人(其实就是rickwakeman)演奏了一段keyboard,看得让我心神激荡(地址在这儿),旋律速度极快,却也十分好听。\n此人运指如飞,根本看不清是哪根手指在动,小手指摆动得就像蜻蜓的翅膀,好像就要发出嗡嗡声似的。\n看完视频后我长叹一声,唉,咱这辈子也别想弹成这样了。\n","date":"2009-01-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/","title":"没信心了"},{"content":"最近在做一个与指纹识别有关的项目,选了几家硬件。\n我发现,无论吹嘘的多牛逼的识别硬件,对我的指纹都无可奈何,对我同事指纹的识别率基本达到百分百,却常常认不出我的指纹。\n这样我调试程序的时候就很麻烦,常常需要同事的帮助,动不动就拿着硬件拉着一个同事的手说:\u0026quot;麻烦帮个忙,手指头借我用一下\u0026quot;。\n没办法,我的指纹太浅,无论是光学识别器还是电容识别器都不能很好的识别,不知道这是否意味着我可以放心的去作案了?\n","date":"2009-01-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/","title":"我的指纹"},{"content":"今天妈妈打来电话,说在家里整理房间,整理到我曾经的书房兼卧房,问我那一书柜的书还有一堆乱七八糟的东西该如何处理。\n按照我爸的建议是,该清理的统统清理,免得占地方。\n但我在电话里还是坚持要把我的那些东西全部保留下来,哪怕是小学课本也最好别扔掉。\n我想到了我的\u0026quot;百宝箱\u0026quot;。\n其实不加引号也行,虽然对别人来说那里装的都是垃圾,但对我来说那里装的绝对都是宝贝,十来年没碰过了,也记不起来装的都是有什么了,印象比较深的大概有几只拆开的电子表、闹钟,拆散的收录机配件,螺丝,铁丝儿,手电筒啥的。\n在没有电动玩具玩耍的年代,这些都是我的玩具,而且一直陪伴我到了初中毕业。那时候,我每晚都被\u0026quot;逼\u0026quot;着看书写作业,累了的时候就拆个闹钟玩玩,或者随便接几个喇叭听音乐,一个人往往不知不觉玩到深夜而忘了睡觉。\n我曾经幻想着把电子表改装成游戏机,很显然不能成功,不过我还是乐此不疲,所以我的百宝箱里大概有四五只拆毁的电子表,有语音报时的,还有公鸡打鸣的。\n出来上学以后,这些东西就基本没动过了。\n书,倒是偶尔还翻翻,那也是七八年前的事儿了。\n这一柜子书基本没有名著,分类杂乱的很,童话故事与科普读物居多,里面甚至还夹杂着一些课后习题集、作文选刊之类的等很多根本算不上是书的东西。\n当时信息不发达,我又被限制不能看太多电视(现在想想该庆幸才对),这些仅有的书都被我翻了又翻,看了又看,陪我度过了我的童年时光。\n一个废纸箱,一柜子书,那个时候这些就是我的世界,正是这些造就了我自闭、偏执而又爱幻想的性格。\n于是我对老妈说,还是别扔了吧,这些都是我美好的回忆啊,其实我还想接着说,说不定哪本书里还夹着我的情书呢,但是我妈已经把电话挂断了,她没时间听我啰嗦。\n","date":"2009-01-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/","title":"我的垃圾,我的回忆"},{"content":"如题,虽然给票贩子加了一百元钱,但也还是比坐飞机划算。\n","date":"2009-01-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/","title":"买到票了"},{"content":"今天听到一句至理名言:\u0026quot;作为一个中国人,最好认识一个票贩子,一个交警,一个主任医师,一个幼儿园老师,一个律师,一个记者,一个修电脑的。\n\u0026quot;对于我来说,除了最后一个,其他的我都不认识,因为最后一个就是我自己。\n","date":"2009-01-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/","title":"完美的社交关系"},{"content":"公司组织全体员工在北京某郊县(靠,好神秘啊)开了三天年会。\n年会,就是大家忙了一年了,抽个时间在一起喝喝酒,放松放松,再顺便总结一下工作。\n很显然,我对前者更感兴趣,这期间,我参加了一场拔河比赛,喝了几顿酒,飙了几首歌,甚至还进行了一次演讲。\n感触最深的就是这场拔河比赛了,我们组从确定完人数之后就是公认的\u0026quot;死亡之组\u0026quot;,因为全是体格单薄的人,个个身材像根铅笔。\n在赛前,我们一直担心我们组上去就被别人轻易拽过去,但是,当我们都抓住绳子,并且在此起彼伏的加油声中竭尽全力时,我才发现,我们其实不弱。\n人是有巨大的潜力可挖掘的,我们的身子向后倾斜,快要倒在地上,双手使劲攥住绳子,手已经失去了知觉,也看不清跳起来喊着\u0026quot;加油!\u0026quot;的人的脸,那一刻我只知道的是,要把绳子拽过来。\n最后,在僵持了将近一分钟后,我们终于感到绳子一轻,都倒在了地上。\n虽然在接下来的两局里我们都败下阵来,但是虽败犹荣,我们僵持不下并最终胜利的那一局,被公认为在整场比赛中的最精彩的一局。\n虽然第二天腰酸背疼,但是我会记住这次拔河比赛,以后也会把这事儿当作床边故事讲给孙子听,虽然最后可能告诉他,爷赢了!\n","date":"2009-01-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/","title":"拔河"},{"content":"把ubuntu换成xp了,深度精简版的,速度比ubuntu快多了。\n","date":"2009-01-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%BB%AD/","title":"续"},{"content":"前一段时间我在eeepc上装了ubuntu,这个linux的发行版确实比asus自带的那个强大得多得多得多(继续),但是有个缺点\u0026mdash;\u0026mdash;慢。\n为此我忍了很久了。\n今天回到家,想装上一个最新的播放器软件,发现没有合适的安装包,于是就想,反正有源码,那就自己编译吧,于是,卷起袖子就开始了。\n下载代码后,configure发现我的gtk太老,apt-get又不给我装gtk(说我已经有了最新版),于是我又要先把gtk的最新版编译好,但是问题又来了,gtk的编译依赖glib,于是我又要先把glib编译好,但是问题又来了,glib的编译又依赖另外的包,于是我耐着性子一个一个把这些包都编译完,make,makeinstall,手都酸了,然后再编译gtk,又告诉我没有atk、freetype、cairo、pango、pixman等等一大堆依赖包,\n好吧,非编译出来不可!\n全部下载这些东东的代码,一个一个make再makeinstall,终于可以编译gtk了,终于把gtk编译完了。发现我的Firefox却运行不起来了,Fuck!\n","date":"2009-01-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/","title":"不好意思,小折腾了一把"},{"content":"1、今日第一次在大街上掀开井盖钻了进去。(当然是经过许可的)\n2、今日第一次进入电力隧道,\u0026quot;初极狭,才通人\u0026quot;,进去后发现地下真是豁然开朗,别有洞天。\n3、今日第一次使用单反相机,一个字儿,\u0026quot;沉!\u0026quot;\n4、今日第一次近距离接近数十万伏特高压的设备。\n","date":"2009-01-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/","title":"四个第一次"},{"content":"昨天,飞行鱼一脸扭捏而又羞答答的对我说他终于没忍住,在元旦的时候买了把吉他。\n这厮早就想买吉他了,但是这个想法多次被我扼杀在饭桌上,我以我的亲身经历,动之以情晓之以理地将他想买吉他的念头一再浇灭。\n比如说我十年前就买过吉他,但是今天仍是连一首曲子都弹不全,比如说我曾经以为弹的不好是因为吉他不行,在我买了第二把好琴之后我才发现是自己的水平不行,说到动情之处声泪俱下,唏嘘不已。\n但这厮还是买了,他说,他在听了卖琴的老板弹奏完一曲《加州旅馆》之后,就立即掏钱了,仿佛买回去的是那一曲《加州旅馆》。\n不过自己回去连《加州招待所》都弹不出来,只能摆在那里当个装饰罢了。\n那,买了琴,为什会感到羞涩捏?\n因为我们早都过了\u0026quot;男孩\u0026quot;的年纪,早就错过了拿着吉他装逼的季节,只是心里总有个情节而已,你要知道,装逼被自己看穿了总是怪不好意思的吧。\n","date":"2009-01-05T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/20090105_huda675bb3df3313d56b64a8fa66527355_47881_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/","title":"每个男孩都应该有一把吉他"},{"content":"今天看到一组新闻,里面总结了发生在2008年度的有趣而又真实的事件,其中有一条,我觉得非常真实:\u0026quot;一个男人在暴风雪的芝加哥街头奋力铲雪一个小时,终于给自己的车清出了一个停车位。\n当他把车开来时,发现一位女士已经抢了他的位置——可以理解,他朝她开了一枪,把她干掉了。\n\u0026quot;说实在的,对此男士,我表示十分的理解,我可以理解这个家伙能有多么的沮丧。\n今天晚上去\u0026quot;敦煌老马家\u0026quot;吃面的时候,发现比我后到的客人都吃完了,而我的还没端上来时,我才发现原来做面的师傅把我这碗忘了,这个时候我有了和上面那个哥们儿一样的感觉,只是咱们国家不允许带枪而已。\n","date":"2009-01-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/","title":"总有些事情让你感到沮丧"},{"content":"谁都不愿意排队,但是很不幸,这个世界上到处都要排队,上车要排队,看病要排队,买东西要排队,收钱要排队,交钱也要排队,如果哪天不巧的话,上公共厕所蹲个坑都得排队。\n要说排队排的最厉害的,还是得数银行!前一阵子,股票特别火的时候,银行各个网点都是爆满,想去取个钱买个电啥的,基本上是上午拿号下午办,这还算是幸运的,如果赶上你的时候人家正好下班,那么,对不起,麻烦您明儿早点儿来。\n最可气的是,在银行里办业务的人那个磨叽劲儿,我就纳了闷了,赶上我的时候,去取钱也好存钱也罢,绝对不会超过一分钟去(就算是取个十万八万的也顶多5分钟吧),可是往往有些人在窗口前,屁股往椅子上一挪就是十几二十分钟,难道你是去聊天去了,里面的柜员也贼磨叽,一会儿站起来拿点儿表格,一会儿和隔壁女孩聊中午吃什么。\n我就是想不明白,那些在柜台动辄磨叽几十分钟的人,他们办理的都是什么业务?\n","date":"2009-01-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/","title":"有啥业务非得在银行办啊"},{"content":"昨天,一个哥们给我打电话说他的机器中病毒了,系统瘫痪了,光驱也坏了,让我去看看,顺便去他家里玩。\n于是今天我就过去了,到那儿以后,这家伙已经买了新光驱回来了,还顺手买了个移动硬盘外加一个优盘(怎么想的?)。\n于是俩人开始拆电脑、装光驱、装系统、装软件。\n下午的时候,觉得有点儿无聊,这哥们儿突发奇想,决定出去转转,想买个游戏机耍耍。\n于是我们又跑到他买光驱的电子市场,直奔电玩柜台,老板看到两个奔三的\u0026quot;小伙子\u0026quot;过来,开始都不太爱搭理,听到我们要买游戏机,就显的热情起来。\n我们先后试了Xbox360和任天堂的wii,虽然xbox的画质很优美,但是最终还是决定买了任天堂的wii,日版原装套装外加一个原装手柄,一共两千三百块,老板看我们连价都没还一下(这哥们买东西跟我一样),主动送了20张游戏碟。\n立即打车回去,接上电视就开始玩,一边玩还一边感叹:\u0026quot;小日本设计的游戏机就是好玩!\u0026quot;。\n网球、保龄球玩起来跟真的一样,那个无线手柄绝真是个绝妙的设计,反映十分,游戏虽然画面稍微有点儿逊色,音质也比较一般,但整体来说,玩游戏的体验还是要比在pc上玩要爽的多。\n可惜明天还得加班,否则今天肯定玩疯了。\n","date":"2009-01-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/","title":"以后不在电脑上玩游戏了"},{"content":"今天是2009第一天,按照计划,我基本上在家宅了一天。\n早晨起床后边洗热水澡边洗衣服,然后出去买菜,准备做我很久没吃到的牛肉饭。\n等到七七八八收拾差不多的时候,也就上午十点多了,纲要休息会儿吃口饭,却发现手机里已经收了n多的新年短信,于是饭也顾不上吃,先把短信回复了再说,这几天移动又赚翻了。\n然后就是上午下午各看一部电影,到了晚上去老杨家吃了顿饭,打了会儿牌,喝小酒喝得微醺。\n总之,我的新年第一天,就是这么平凡地度过了,就像是一个普通的周末。晚上回到电脑前,向往博客里写点儿东西,又觉得脑子里空空的,本来还相对08年做个总结啥的,后来想想,实在是没什么好总结的,那就对09年提点儿希望吧。\n想起我前两天列的一个09年的学习计划,这个计划十分贪婪,牵涉到各种技术和技能,感觉不是很靠谱,还是说一下大方向上的愿望吧。\n我希望在2009年里,我能实现如下愿望。\n1、英语水平飞速发展,可以正常阅读英文文档与小说(阅读能力要像看中文的《故事会》一样)。\n2、体重增加到65公斤。\n3、编程水平继续提高,主要在基础算法与数据结构方面。\n4、掌握一种开源三维引擎。\n5、vim的应用更上一个台阶,使vim彻底替代我机器上的编辑器。\n6、能够用上3G。\n","date":"2009-01-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/","title":"第一天,提点儿希望"},{"content":"此处无声胜有声\n","date":"2008-12-31T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/20081231_hu00b9eb80defaadb973990ab4dbd5f9a2_123082_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/","title":"再见2008,你好2009"},{"content":"空酒杯一只\n","date":"2008-12-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/","title":"blender练习"},{"content":"周末,睡了个懒觉,九点出去看了一场早场电影,一个人。本来以为早场电影人会很少,结果发现电影院门口居然还排了队,当然了,都是冲着冯小刚的《非诚勿扰》来的,对于这部电影,我没什么可点评的,只能说,值得看,比起以往的冯氏贺岁片,味道还没变,故事不错,讲的也不错。回来以后,又把《甲方乙方》翻出来看一遍。\n","date":"2008-12-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/","title":"早场电影"},{"content":"同样是使用电子邮件发布的一篇博客,发布到blogger的效果比法在livespace里的效果要好,昨天发了一张图片,blogger那边简直是又好又快,显示的还是原始大小,到了msnspace这边,给我整成了一个只有指甲盖大小的缩略图!您要问为什么放着好好的blogger不用,反而还在这贱兮兮的说livespace的坏话?\n答案是,中国大陆无法正常使用blogger的服务,为什么不能正常使用呢?\n答案不是因为人家歧视咱,而是@#¥%@#¥%@#¥%。\n","date":"2008-12-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/","title":"livespace 真难用"},{"content":"无聊,用blender作图一副,练习。\n","date":"2008-12-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/","title":"Blender练习"},{"content":"昨日,也就是平安夜,一年N度的节日会餐,在老居家隆重举行,出席宴会的有,大宝夫妇,小江夫妇,老杨夫妇及其儿子,会餐在亲切友好的气氛下进行,大家就共同关心的话题交换了意见,纷纷表示,鱼炖的不错,汤的味道更美!\u0026mdash;\u0026mdash;路边社记者\u0026quot;从容地狂奔\u0026quot;在现场吃饱后发回的报道。\n","date":"2008-12-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/","title":"简讯"},{"content":"前天,就是冬至那天,据说是n年以来最冷的冬至,冷就不用多说了,反正实在是不能出去跑步了,我还是先将跑步停一停,等跑步指数上升到两颗星时再开始跑。\n","date":"2008-12-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/","title":"跑步指数零颗星"},{"content":"我每天大概有2个小时呆在公交车上,与拥挤的地铁相比,我坐的这趟车还算宽松,车上装有移动电视,每天循环播放着垃圾节目,让你在忍受堵车又堵心的同时也备受垃圾广告的煎熬。\n最近两天,节目质量有所好转,有时甚至能听到一两首老歌,不禁让人陷入回忆,有时甚至想跟着哼唱两声。\n可是很快我就又发现了新问题,那就是,电视的声音总是被公交报站的声音打断,听起来有时让人如鲠在喉有时又忍俊不禁。\n比如吧,潘美辰在屏幕上正抱着话筒深情款款滴唱着:\u0026quot;我想要有个家,一个不需要多大的地方~~~\u0026quot;突然潘美辰变身成一个大嗓门的售票员,\u0026quot;龙花园到了,下车请出示车票,youarearrivinginlonghuayuan。。。。。\n\u0026quot;罗哩罗嗦老半天直到歌曲唱完,在或者伍思凯刚唱完一句:\u0026quot;没有承诺,却被你抓得更紧~~~\u0026quot;然后紧接着就说:\u0026quot;车辆起步,请抓稳扶好,刚上车的乘客请往里走,前方到站是叉叉叉\u0026quot;。\n","date":"2008-12-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/","title":"串台"},{"content":"今天是二十四节气里的冬至,天气突然变得冷酷起来,冷得令人失去意识,我从来没有像今天这样觉得暖气片如此可爱,以至于我抱着它\u0026quot;亲热\u0026quot;了半天。\n按照惯例,冬至要吃饺子,可是我一个人,既不想吃速冻的,又不想在家自己做,所以,晚饭我就准备出去吃了。\n外面的天气比我想象的要冷的多得多,尤其是北风,吹得我站都站不稳,风不断从袖口、领口里钻进来,有一段时间我根本无法呼吸。\n出了小区东门,过马路,看见一个热气腾腾的小菜馆,隐约能看见牌子上写有\u0026quot;水饺\u0026quot;字样,二话不说,撩起帘子钻了进去。\n在这儿住了这么久,第一次发现这儿还有个饭馆,店面很小,门口是个涮麻辣烫的锅,几个贪吃的家伙正稀里哗啦地吃着麻辣烫,里面一共四张小桌子,铺着桌布,收拾得很干净,墙壁上挂了几串红辣椒,最里面是个小柜台,老板娘正低着头算账。\n打过招呼,做了下来,\u0026quot;您整点儿啥?\u0026quot;听了老板的口音,我才发现这是东北小两口开的店,顿时觉得亲切起来,感觉这儿就像是《东北一家人》里面的\u0026quot;达达杀猪菜\u0026quot;(实际上这儿还真有杀猪菜)。\n\u0026quot;有水饺吗?\u0026quot;我问他,\u0026quot;有,猪肉大葱、猪肉酸菜\u0026hellip;\u0026quot;,\u0026quot;要猪肉酸菜的吧\u0026quot;我说。\n\u0026quot;要多少?\u0026quot;他又接着问\u0026quot;像您这个头的怎么着也得一斤吧?\u0026quot;,呵呵,我哪能吃得完一斤啊,为了不浪费粮食,我还是只要了半斤。\n热气腾腾的饺子很快就端了上来,为了驱赶身上的严寒,我又要了一瓶二锅头(二两装),实际上,是这个馆子的氛围让我想喝两口,不知道为什么,看着忙碌的老板和老板娘,看着吃麻辣串的情侣,我抿了两口醇香的二锅头,眯起眼睛,突然感觉人生又美好起来\u0026hellip;\u0026hellip;\n","date":"2008-12-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/","title":"突然的自我"},{"content":"这儿http://www.appinn.com/Frets-On-Fire-Portable/,是一个好玩儿的吉他游戏,可以让我这个吉他弹的很烂的人过过干瘾。\nps:今天跑步指数2星★★☆☆☆\n","date":"2008-12-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/","title":"找到一个不错的游戏"},{"content":"从吃完饭到现在就一直坐在车上,俩小时了,还堵在路上。\n","date":"2008-12-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/","title":"周末大堵车。"},{"content":"好像最近我的博客里只剩下我每天在唠叨天气了,没办法,劳累了一天的脑子实在是没有力气在攒出一篇上千字的文章了。\n今天的跑步指数是一颗星,极不适合跑步(满分五星),天气寒冷,空气污浊,空气中弥漫着烧烤的味道,实际上是天然气取暖燃烧的烟雾。\n我还是出去跑了一圈,权当是为了锻炼自己的执行力。\n","date":"2008-12-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/","title":"跑步指数1颗星"},{"content":"像我这样的好员工真是打着灯笼也不好找啊,刚刚完成了一份公司安排的ppt,啊~呵(打个哈欠)。\n今天果然降温了,跑步的时候明显感觉到了寒冷。\n回来后,我把家里的窗户打开来换了换空气,才几分钟的时间,室内温度就从19度降低到了15度!\n","date":"2008-12-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/","title":"在家办公"},{"content":"无论有没有外界的压力,总是不能放松自己,下班回家后看个电影都觉的在浪费生命,其实是走进了生命的误区而已。\n我们总是不相信自己的感觉,一会儿别人说\u0026quot;要活在当下\u0026quot;,有点儿今朝有酒今朝醉的意思,可是又有人蹦出来说,\u0026quot;四十岁前就别提享受\u0026quot;,我TM到底该信谁的?\n忒难为我了。\n算了,不想发牢骚了,博客从来都不是一个可以倾诉的地方。\n我想说的意思是,这个世界上充斥着各种声音,不时有\u0026quot;专家\u0026quot;跳出来唧唧歪歪,又或者有\u0026quot;过来人\u0026quot;大谈经验感受,\n其实,每个人都有每个人自己的王国,在这个王国里,自己就是国王,好好当好自己的国王就行了,不用管别人的看法,\n我太累了,只想好好休息。\n","date":"2008-12-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/","title":"休息"},{"content":"今天大脑超负荷运转,下午连续工作五个小时没休息,一直在思考一个程序上的问题,最后终于解决了。\n终于把一个老程序的数据库引擎从恶心的access换成了可爱的sqlite了。\n","date":"2008-12-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/","title":"费了不少脑细胞"},{"content":"早上六点蒙蒙胧胧醒来,看了一眼时间又昏睡过去,再睁开眼已经九点半了,起来洗漱完毕刚要做饭,接到老杨电话,需要火速出去办点儿公事。\n好吧,早饭成了一杯麦当劳里的咖啡。\n办完事回来已是中午,在老杨家喝了一点儿小酒,喝的微醺,毕竟六十七度的\u0026quot;老白干\u0026quot;不是浪得虚名。\n吃完饭就顺势去了老居家里,约了大宝来打牌,大宝二话不说提着新买的麻将牌一路小跑就过来了。\n就这样,在午后洒满温暖阳光的客厅里,我们忙里偷闲,搓了一下午的麻将。\n","date":"2008-12-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/","title":"完美的星期天"},{"content":"据一向不靠谱的天气预报说,最近又有大风降温天气,明天就席卷而来了,但愿不会影响我的跑步计划。\n","date":"2008-12-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/","title":"又要降温"},{"content":"今夜星光灿烂,今晚月色撩人,据传闻今晚月亮正好处在与地球相聚最近的位置,所以应该开起来特别的大。\n刚刚跑步的时候,证实了这一说法,月亮果然又大又圆,感觉就在我家楼顶上似的,我忍不住跑回去拿出相机来拍照。\n结果是让人失望的,我的相机既没有三脚架,也没有好镜头,再搭上我这个糟糕的摄影师,真是白瞎了这么好的月光了,我在寒风中冻得瑟瑟发抖,鼻涕都快滴到液晶屏幕上了,照片要么漆黑一片,要么抖得天上到处是月亮,唉!\n","date":"2008-12-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/","title":"白瞎了这么好的月亮"},{"content":"看来我就是把livespaces当微博了,每次都懒得多打几个字。\n原因来自各个方面,尤其工作压力,每天徘徊在办公室的椅子和卧室的大床直接,两点一线的生活使我很难再提起兴致在博客里扯闲篇。\n今天仍然顶着严寒跑步,空气不是很好,跑步系数为1★☆☆☆☆不适合跑步。\n","date":"2008-12-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/","title":"冒个泡"},{"content":"温度回升到最冷才-6度了,风也不那么大了,暂停了整整一周的跑步计划,今天正式恢复。\n室外其实没我想象的那么冷,上身只穿了一件羊毛衫,仍然跑的微微出汗,拿着秒表的手刚开始感觉快要冻僵,但跑了一会儿之后就感觉很暖和了。\n路况比我想象的糟糕,由于白天飘了几片雪花的缘故,导致部分路面已经结冰,跑在上面十分危险,差点摔倒。\n总的来说,跑一跑还是很舒坦的。\n","date":"2008-12-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/","title":"跑步继续!!!"},{"content":"昨天天气预报说,今夜迎来第一场雪,可是,感觉又被忽悠了。Ps:一大早在车上通过黑莓发送\n","date":"2008-12-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/","title":"雪呢?"},{"content":"前年的时候,我淘到一个palm,正式成为\u0026quot;胖友\u0026quot;,买回来后折腾了很久,反复安装软件,又反复的卸载掉,最后仅保留了几个看书的软件,这个palmtt的屏幕看书真的是没话说,非常舒适,我也在上面看了大概有几十本小说,几回回抱着palm到天亮,呵呵。\n但是毕竟是个老机器了,速度慢,功能弱,最让我头疼的是,他的电池越来越不行了,后来,我又把手写笔丢了,再后来,也就是今年5月,一冲动买了个epc,就是所谓的\u0026quot;上网本、二奶机\u0026quot;,这下palm彻底失宠,我很少再将它带在身边,\n直到上周末,我整理桌子的时候才发现奄奄一息地他躺在抽屉里,我竟然没搭理他,继续整理我的音箱,今天才又想起来。掏出来一看,由于长期没充电,里面的资料全丢了,还好没什么重要内容,\n但我辛苦挑选的软件全没了,我干脆给他擦了擦灰,将所有配件整理到一起,全部锁进抽屉里,再见吧您呐。\n","date":"2008-12-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/","title":"我的palm饿死了"},{"content":"为什么wall-e这么可爱?这是我看完《机器人wall-e》之后一直在想的问题。\n无论是是他捧着电板给自己充电时的样子,还是手足无措时搓腿(其实搓的是他的\u0026quot;履带\u0026quot;)的动作,都可爱得让人抓狂。\n现在,我总结一下,让我觉得这个小机器人可爱的原因大概有以下几点:\n1、他总是很开心的工作,他很乐观,吹着口哨上班,当地球上只剩下他自己时仍然乐观地活着,对了还有一只蟑螂是他的朋友。\n2、他很善良,不小心压了小蟑螂一下(他的履带很宽)就后悔的不行,还好\u0026quot;小强\u0026quot;并非浪得虚名,不仅没事儿还和walle玩得很开心。\n3、他很单纯,傻乎乎的,没有心眼儿,连伊娃的手都不敢拉一下。\n4、有爱,为了倾慕的女机器人(伊娃)不惜一切代价,以至于芯片烧毁。暂时就说这么多吧,皮克斯的这部动画片还是像以往的那样用简单故事打动人的心。\n","date":"2008-12-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/","title":"为什么wall-e这么可爱?"},{"content":"昨天花了一下午的时间把我的书柜和电脑重新整理了一遍,把惠威的2.1音箱移到了显示器旁边,把漫步者2.0的移到了书架的二层,与书挤在了一起,成了名副其实的书架箱。\n电脑机箱后面的连线乱成了一锅粥,费了很大的劲才整理通顺。\n现在,音箱与书柜成为一个整体,整个书柜便是一个巨大的音箱,用来听音乐那叫一个爽!\n","date":"2008-12-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/","title":"真正的“书架箱”"},{"content":"寒流来袭,最高温度才零下2度,外面冷的能把人冻傻,在我还未被冻傻之前,先做出一个明智的决定,无限期暂停跑步计划,风太大,空气又凉,我又没有自虐倾向,还是在屋里待着暖和。\n","date":"2008-12-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/","title":"跑步暂停!"},{"content":"北京的天气要降温的消息已经提前三天放出,电视、网络反复强调,就连公司内部的网络都发布温馨小贴士提醒大家注意加衣服了。\n今晚跑步的时候明显感受到寒风的力度,不过我还是跑得微微出汗。\n昨晚(应该说是今早)睡的实在太晚,今天在回来的车上都昏昏欲睡,刚刚跑完步回来后洗了个热水澡,本来困倦的身体又感觉精神了,打开电脑,在日志里罗嗦两句再睡。\n","date":"2008-12-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/","title":"据说明天要降温"},{"content":"没错,我还在办公室里,还在加班,而且意识还很清醒,我还活着。\n现在的时间是凌晨的0点10分,再过半个小时,如果一切顺利的话,我就要打车回去睡觉了,差不多还能再睡4个小时呢。\n然后,我就要从床上爬起来,洗洗脸,刷刷牙,迎着还没出来的太阳,再次奔上开向公司的地铁。\n没办法,既然选择程序员这个连妓女都不如的职业,就要接受没日没夜的加班生活,就像我们经常在程序中\u0026quot;拿空间换时间\u0026quot;那样,现实中,我们在\u0026quot;拿健康换时间\u0026quot;,等到健康剩得不多、徐娘半老之时也就是我们的退休之日吧。\n因为到了那个时候,我们将再也加不动班,再也爬不上车,可能连敲键盘的力气都没有了,而且又会有一大批精壮的程序员前赴后继的补充上来,再次走上我们走过的路\u0026hellip;\u0026hellip;\n","date":"2008-12-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/","title":"早啊,各位!"},{"content":"再过十分钟就过了今天跑步的时限了,而现在我仍旧坐在办公室里,喝着温热的开水,盯着跑焦的屏幕。\n","date":"2008-12-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/","title":"还没回家"},{"content":"前天有同事问我说,跑步坚持了一段时间了,感觉如何,有什么效果没有,我说不知道,估计以后就不怎么感冒吧。\n此话尚未落音,今儿就开始感冒了,打了好几个打喷嚏,嗓子也开始干了。\n我从十一月一号开始跑步,一天也没落下,跑步时间基本上都是在晚上8点至9点之间,每次绕小区一圈,跑十几分钟,感觉良好。\n","date":"2008-12-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/","title":"一个月"},{"content":"让我看看blog标题里能不能出现\u0026quot;关键字\u0026quot;ps:一个累人的周末。\n","date":"2008-11-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/update/","title":"update"},{"content":"近日,我的机器速度越来越慢,内存占用常常超过1.5G,尤其是开了office之后,其操作反应之慢令人发指,考虑再三之后,我决定还是不重装系统,先手动优化两下再说。\n首当其冲的是卸载多余软件了,我是软件狂人,开始菜单完全展开几乎将屏幕挤满,一口气卸载十几个不常用软件,然后使用ccleaner清理垃圾,清理注册表,清理回收站,清理缓存。\n重启。还是觉得不过瘾,进入控制面板,把不常用的服务给停掉,就连桌面主题服务都停掉了。\n重启。\n还是觉得不过瘾,打开系统任务管理器查看了一下,Firefox最占内存,但是这个千万不能卸载啊,其次是qq占内存,卸载之,然后发现msn也很不老实,卸载之,看着飞信也很不爽,卸载!\n这下,整个世界清静了,内存占用只剩下四百M了,速度提高了不少。\n可是咱也不能聊天啊,于是想到了Pidgin这个在Linux下很火的软件,下载安装后,发现居然还支持飞信,于是我用它同时连接gtalk、qq、msn、飞信,体验很好,另外还可替代aol、icq、雅虎等多种聊天客户端。\n这下好了,以前啊聊天总是要开多个程序,麻烦,现在啊有了Pidgin高钙片,一片顶过去5片,您瞅准了!是Pidgin!\nps:今日跑步指数★★★☆☆\n","date":"2008-11-29T00:00:00Z","image":"https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/20081229_hub1fa993bcb22b9a593243c7dedbee461_14226_120x120_fill_q75_box_smart1.jpg","permalink":"https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/","title":"一拖四"},{"content":"由于项目的需要,下周需要我出差,本来出去散散心也挺爽的,只是我担心我的跑步计划会搁浅一段时间,因为到了现场就没时间去跑步了,就算不整天调程序也没有跑步的地方,总不能在大马路上伸着舌头撵公交吧。\n但是,计划没有变化快,由于北京这边又有优先级更高的活儿,所以,暂时不用出差了,哦也。\nps:今日天气(我估计的),晴间多云,风力2、3级转4、5级,最高温度20度(室内)最低温度0度,跑步指数:3(★★★☆☆)适宜跑步。\n","date":"2008-11-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/","title":"差点没出差"},{"content":"下班晚也就算了,还刮这么大的风,跑得我那叫一个累啊,回来的时候我一边喘粗气一边想:\u0026quot;啥时候下大雪啊\u0026quot;\n","date":"2008-11-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/","title":"坚持"},{"content":"快要下班的时候,我的眼神已经分外地扑簌迷离了,审核了一天的文档,看了再写,写了再看,千锤百炼。\n瞅了瞅身边的同事,个个被文档折磨得目光呆滞,面如死灰,头发蓬乱,口吐白沫。\n说实话,我宁愿写一千行代码也不愿意写一行文档,宁愿写一行文档,也不愿去审一千行文档。\n因为,审文档你得咬文嚼字,你得反复推敲,就算是仅仅挑出错别字就已经很费神了。\n慢慢地,我感觉到文字在屏幕上开始爬行,一会儿排成人字,一会儿又排成一字。\nps:跑步一直在继续,耶!\n","date":"2008-11-25T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/20081225_hu619a9b72d5a5e457ff137a1d06209e72_92055_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/","title":"文档!文档!"},{"content":"第一次见识DVD的清晰是在上大学的时候,在我们刚刚落成的多媒体教室,好像还是\u0026quot;邓论\u0026quot;课,老师看大家实在闷的慌,就放了一部《角斗士》来调节气氛,播放器材就是DVD加投影机。\n我现在印象最深刻的一个镜头是,男主角走在金黄的麦田里,用手拨弄着麦穗,身边荡起层层麦浪,这个镜头太美了,DVD清晰的画质深深震撼了我。\n不久,在我的软磨硬泡下,家里也给我买了一台DVD(顺便买了不错的音响,暂且按下不表),我欢喜的不得了,可惜没有投影机,因为当时动辄十几万一台的投影机对我来说只能奢望,当然,现在也是。然后就是开始疯狂收碟,从《勇敢的心》到《杀手里昂》,从《喜剧之王》到《阿甘正传》,反正当时我认为经典的电影全部收藏,两年下来,在零花钱不是特别充裕的情况下,我\u0026quot;收藏\u0026quot;了将近200张DVD(现在还剩几十张了)\n虽然是盗版,但是过来人都知道,在国内,盗版DVD实际上比正版DVD画质都要好(当然要选对牌子咯,这个话题说起来就扯远了)。\n当时我逛街最怕两件事,一个是进书店,另一个就是进碟店,因为无论走进哪个,我出来之后钱包准空。\n不过和真正收碟的碟友比起来我这几张真的不算啥,我后来认识了一个哥们,光正版碟就收了1000多张(刚工作的工资全花在买碟上了),同样的电影,要买两份,一张平时看,一张摆那儿永远也不舍得打开看。\n还是醒醒吧,我现在已经几乎不看DVD了,而且也不再买碟。\n一方面是因为随着年龄的增长,工作将我的各种兴趣爱好磨灭了不少,另一方面是因为网络飞速发展,DVD这种存储介质渐渐走向衰败,即使偶尔想看两眼电影,也随时可以在线观看。\n虽然现在又推出新格式的蓝光DVD,但是我认为它也基本没戏,就像过气的女明星,无论怎么打扮也难逃被抛弃的命运。\n现在再看看那些卖碟的小贩,谈起DVD极不专业,而且以次充好,老拿电影院偷拍的枪版糊弄人,再者就是n合一的压缩碟,这种格式彻底毁掉了我对DVD的兴趣,要画质没画质要音质没音质,除了毁坏光驱,再也找不到别的用处了。\n另外也别跟我扯新一代蓝光DVD的容量和清晰度,还是那句话,\u0026quot;我很不看好你哟\u0026quot;,因为我认为,随着网络技术的发展,硬盘、光盘、优盘、这些存储介质都将被淘汰。\n什么?你说咱们还有完全自主知识产权的EVD呢?我只能说:\u0026quot;呵呵,大哥,你可真会讲笑话,这是我今天听到的最好笑的笑话了\u0026quot;\n","date":"2008-11-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/","title":"远去的DVD"},{"content":"不错的周末,把太阳能热水器里的水放干净了,热水已切换到燃气系统了,地暖系统也恢复正常了,房间也打扫干净了,看了部老电影,天就黑了,跑完步回来泡个脚,睡了。\n","date":"2008-11-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/","title":"晚安"},{"content":"今天要去朋友家吃晚饭,所以我预计晚上的跑步计划会无法执行,干脆提前跑步,在太阳将要下山之前,绕着小区跑了一圈,感觉比在晚上伴着路灯跑要好的多,可惜啊,这种机会也只有周末才有。\n","date":"2008-11-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/","title":"在傍晚跑步"},{"content":"再次迎来双休日,虽然明天要有半天公事,但是毕竟不是去加班,感觉挺爽。\n","date":"2008-11-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/","title":"大周末"},{"content":"今日要去建行转些钱到支付宝,被逼无奈使用了我最讨厌的ie浏览器,输入帐户名、密码、验证码,没问题,选择证书和动态加密口令也没问题,就在最后那一哆嗦,网页弹出一个小空白页面就再也不动了,连续两次都是这样,废掉了我两个动态口令,求救客服半个多钟头也没有搞定问题。\n现在,我分析,引起问题的原因:\n1、ie不求行\n2、有防火墙\n3、银行网站很烂\n4、人品问题\n5、以上原因都有\n","date":"2008-11-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/","title":"垃圾网上银行"},{"content":"跑完步,口渴,走到小区门口超市买酸奶喝。这是一个袖珍超市,但是麻雀虽小五脏俱全,所以我懒得去大超市了。\n这么晚了,超市也快收工了,只有我一个顾客,门口的收银员打着哈欠,我拎了一盒酸奶出来。\n\u0026quot;九块钱\u0026quot;收银员说,由于零钱不够了,我只好拿出一张一百的,\u0026quot;请问您有没有一块钱零钱?\u0026quot;她接着问\u0026quot;这样就可以找你九十了\u0026quot;,翻遍口袋,摸出一块钱给她。\n这个时候,只见超市的pos机屏幕上写着:收101.00元、应找零92.00元。看来我的大脑也有点儿缺氧\n","date":"2008-11-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/","title":"找钱"},{"content":"我的胃不太好,为此,我妈颇为担忧,\n有天,我妈听说一个单方,可以养胃,即在枕头里装上炒熟的甘草(中药),\n每天睡觉枕着就行,该方法不但使用简单而且可操作性强。\n于是前两天就在QQ上给我说了,我觉得试试也行,我妈就立刻行动(好习惯),\n结果我今天就收到了快递。打开一看,跳出一个制作精美的枕头,散发出甘草的清香,\n这可是我妈亲手缝制,对我来说真是无比珍贵。今晚就要枕着它入眠,在梦里露出灿烂的笑容。\n","date":"2008-11-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/","title":"感谢妈妈"},{"content":"今天跑步最大的感觉就是有风,说是刺骨的寒风有点儿夸张,但是你要是在里面站立半个钟头的话,保证能冻傻。\n我发现无论往那个方向跑都是顶风,吹得我快要飘起来,有一阵子甚至感到呼吸困难,意识模糊,后来就加速奔跑,并打破了昨天的记录。\n天越来越冷了,我的跑步计划迎来了严峻的考验。\n","date":"2008-11-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%A3%8E/","title":"风"},{"content":"不容易,坚持半个月了,加油。\n","date":"2008-11-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/","title":"跑步在继续"},{"content":"此篇博客通过电子邮件发送生成,此电子邮件又是通过手机发送。如果都能看见,说明测试成功!\n","date":"2008-11-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/","title":"测试"},{"content":"昨天网络掉了一夜的线,早晨才恢复,宽带客服的电话都被打爆了,我好不容易挤进去一个电话,被告知他们全部技术人员都在彻夜加班抢修故障,我靠,看来干技术的全是这样儿的命啊!本着惺惺相惜的态度,我也只好随便发两句牢骚就把电话挂了。\nps:昨天跑步速度比平时稍快。\n","date":"2008-11-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/","title":"掉线"},{"content":"公司的旁边有一个公园,公园里有一个人工湖。\n该湖曾一度干涸,后来托奥运的福,这个湖做了一次整改,现在,里面不但放满了碧绿的自来水,还撒了一群可供观赏的鱼。\n我会在每天午饭后,独自或和同事一起到这里来溜达一圈,一方面是促进消化,还有就是这里的空气真是不错,所以我才会放弃网上冲浪而到这里来晒晒太阳。\n每次都会看到那群傻乎乎的鱼争抢人们洒下的鱼食,由于鱼多食少,大家抢得异常激烈,一时间水花翻涌(让晶晶过来都压不住),场面甚为状观。\n至于撒食的人,就感觉颇有成就感,我在旁边看着也心里痒痒,总想试试,找找当圣诞老人的感觉。\n今天吃饭时故意多要了一个馒头,跟同事说一会儿要喂鱼,同事笑话我说:“你现在嘴里嚼着鱼,居然也假腥腥的要喂鱼”我说“算是补偿吧!”到了地方,发现有人已经先到一步,一群鱼儿在他脚下吃的正欢。\n我和同事两个人迫不及待地掏出馒头,拿出吃羊肉泡的功夫(掐啊),就开始往水里洒。\n扔了半天,却不见大群的鱼过来,仅有少量老弱病残在这边尝了两口就又游走了,我尴尬地站在湖边,眼看着手里掰下的馒头屑,都打了水飘。仔细一看,还真是我太马乎了,原来先前那人仍的可是上好的面包啊,看来,不仅有崇洋媚外的人,也有崇洋媚外的鱼,这帮混蛋也喜欢吃西餐啊!\nPS:第一次用手机打这么多字,手指酸痛ing。\n","date":"2008-11-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/","title":"喂鱼记"},{"content":"今天回来时很累,于是就有了改变跑步路线的想法,即,仅从车站跑回家,这样既跑了步,又节约了时间,但这个念头转瞬即逝,立即被否定。\n从车站到家的这段路虽然走起来显得不近,但是跟平日跑步的距离比起还是太短,而且这样就视跑步成为一种应付了。\n所以为了防止跑步计划到最后不了了之,我今天还是老老实实地跑了一圈。\n","date":"2008-11-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/","title":"不能缩水"},{"content":"昨晚回家晚了,跑步也晚了,然后就睡了,忘了在日志里报告,今早补上。\n这两天忒忙了,事情一件件的接踵而来,忙的我有点儿喘气。\n有句话说的好,出来混迟早要还的,以前程序的demo做的再好也是假的,现在要动真格的了,撒开手忙活吧!\n","date":"2008-11-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/","title":"补上"},{"content":"今天差点儿达到无法执行跑步计划的条件之一(加班到深夜),还好,我及时搞定了问题。\n上午也说到了,现在手头事儿特别多,程序的问题也不断涌现,而我又特别不喜欢多任务并行工作(我想没人喜欢吧),并行工作会导致大脑里思考的东西在不断地切换,每个任务都要照顾到,每个任务又很难照顾好。\n于是,问题来了,下午快下班的时候我的一段程序罢工了,这段代码在半年前由我亲手调制,当时跑起来一点问题都没有,现在着急用的时候却掉了链子,急得我快要抓狂。\n问题还是解决了,怎么解决的呢?\n唱歌!下班之后,反正人走的差不多了,也不怕打搅别人,为了缓解压力,我只有使出\u0026quot;杀手锏\u0026quot;,那就是\u0026mdash;-\n胡乱唱歌,无论是中国的还是外国的,是民族的还是通俗的,顺嘴拈来,逮着哪句是哪句,什么\u0026quot;千里刀光影,重整代码待后生\u0026quot;、\u0026quot;你说要崩溃我知道很简单\u0026quot;、\u0026quot;小芹我洗衣裳来到河边\u0026quot;等等。\n唱着唱着,我就觉得豁然开朗了,柳暗花明了,茅厕顿开了,原来是某行代码被无声地注释掉了(其实早该想到),看来唱歌的效果简直是立竿见影呐。\n不光是现在,其实回想起来,唱歌一直是我缓解压力的惯用方式(可以参见这一篇博客),唱歌的地方并不限于在ktv,也不是要老老实实拿捏着唱,要的就是那种随心所欲飘飘然的感觉,大学的时候,每到期末考试我都会整天哼一首类似于\u0026quot;姑娘十八一朵花\u0026quot;的歌儿,这样的话,我不但门门功课都能过,到最后竟然还拿了三好学生!\n","date":"2008-11-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/","title":"何以解忧,唯有唱歌"},{"content":"今天的天气不是很好,空气质量特别差,用专业术语来说就是\u0026quot;霾\u0026quot;,在做了一番思想斗争之后,我还是决定出去跑步,因为这种天气情况不在我所定义的\u0026quot;不可抗拒之因素\u0026quot;之内。\n气喘吁吁地回来,用热水洗了个脚,美,懒得开大机器了,就用小e随便发几个字算了,顺便控诉一下,用小e打字可真是受罪。\n","date":"2008-11-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/","title":"天气不太好"},{"content":"今天和昨天过得一样,略微多了些上班前的焦躁,所以我还是喜欢周六多一些(哪怕那天是加班)。\n没空的时候总是想着抽出时间来多学习一些东西,等到周末时却又缺乏了耐心和兴趣,就像牛人说的那样,我所荒废的今日其实就是昨天所期盼的明日啊。\n当然了,荒废不荒废也不知是谁说了算。\n今天出去跑步的时间略早,发现有人也在跑步,只不过我是顺时针方向,那哥们儿是逆时针方向在跑,我们在西南角碰面,然后又在东北角擦肩,所以我可以断定他和我的速度是差不多的,不过,我回来时,人家可能还在继续跑。\n下午的时候,又拿了拿吉他(看来实在是无聊了),摁了两下,摁得左手生疼,发现以前磨出的茧子早下去了,手指光滑无比,连指纹都看不清,我说怎么前两天弄那个指纹识别程序时老调试不成功,看来我可以放心去作案了。\n写了半天,发现写的前言不答后语,难道这就是传说中的意识流?\n","date":"2008-11-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/","title":"复制昨天"},{"content":"喜欢听翻唱的歌曲也是个毛病点击小三角开始播放\n","date":"2008-11-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/","title":"超级小女声"},{"content":"虽然有时坐在电脑前不知道要写点儿啥,但是,我还是决定每天都在这里写几行字。\n一是为了监督我的跑步计划执行情况,防止三天打鱼两天晒网,二是每天记点儿流水帐,将来孙子吵着要我给他讲故事的时候再来翻翻素材。\n想起来一个笑话,爷爷在给孙子讲故事:\u0026quot;有一次,在战场上,这边只剩下我一个了,敌人冲上来一个连,我抱着机枪把他们全干掉了。\n\u0026quot;孙子说:\u0026quot;可是爷爷,您去年讲的时候说的是冲上来一个排啊?\n\u0026quot;\u0026quot;傻孩子,你那时还小,我怕吓着你!\u0026quot;\n跑题了,今天是周末,我没有加班,活儿永远都干不完,身体却只有一个,所谓,该出手时就出手,该休息时就休息。\n我仍然延续以往的作风,醒的比平时早,起的比平时早,然后开始洗衣服、打扫、做饭、刷碗、看电影\u0026hellip;\u0026hellip;\n一天的时间一晃就过了,感觉也就是吃了三顿饭,然后天就黑了。\n今天跑步的时候感觉天气比平时要冷,小嗖风风地刮着,我还是坚持跑完一圈,速度还是不能太快,跑到额头微微出汗就行了。\n回来查看了一下日历,原来昨天是\u0026quot;立冬\u0026quot;,哦,冬天来了,春天还会远吗?\n","date":"2008-11-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/","title":"一个普通的周末"},{"content":"1、把我的epc升级成ubuntu的操作系统了。\n比起它自带的那个阉割版操作系统,界面华丽了,软件丰富了,操作更自由了,爽!\n2、家里的宽带在费用不上涨的情况下从1M升级到1.5M了。\n虽然感觉也没比以前快了多少,但心里还是美滋滋的,爽!\nps:跑步仍在继续!\n","date":"2008-11-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/","title":"爽事儿两件"},{"content":"跑完步回来都九点多了,出差在外的同事一个接一个的打回来电话,原来这帮儿不要命的家伙还在加班。\n先是远在宁夏的兄弟告诉我刚做的PPT需要修改,然后是身在河南的项目组打电话咨询版本控制的问题,最后是被发配到青海的哥们儿在电话里用略带嘶哑的嗓音和我一起探讨了一会儿程序路径分支的问题,然后又像是梦游一般地把电话挂掉\u0026hellip;\u0026hellip;\n放下电话,我不禁要问(焦点访谈看多了),沟通的方便是帮了我们还是坑了我们?\n得亏了信息科技的发达啊,要是远在飞鸽传书的年代,我把代码写好,然后抄到一张小纸条上,绑在鸽子腿上,趁它还没飞抵现场调试的时候,美美地睡上一觉。\n","date":"2008-11-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/","title":"天涯共此时"},{"content":"今天回来的有点儿晚,并且跑步的距离有所延长,大概比前几次多跑了三百米。电脑都关了,才想起还没有做记录,爬起来,用手机发个报告。\n","date":"2008-11-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/","title":"手机发的"},{"content":"今天又跑完步回来了,现在,我真是名副其实的\u0026quot;从容地狂奔\u0026quot;了,每晚都会出去\u0026quot;奔\u0026quot;一圈儿,只有这样才会觉得明天有\u0026quot;奔\u0026quot;头,才能洒脱地\u0026quot;奔\u0026quot;三十了。\n我上个周刚过的生日,就是说我上周还二十六(虚岁)呢,现在就二十七了(真的是虚岁)。\n最近总想活的更洒脱一些,但总是觉得很为难,因为总感觉自己太在意别人的看法,也就是老是拿别人的标准来衡量自己的生活,到不了那种\u0026quot;忘他\u0026quot;的境界,比如我有同事可以在地铁里一边大声唱歌一边跟我大谈\u0026quot;空间数据的网格索引\u0026quot;,牛逼吧?大学里有个同学,在大街上骑自行车,突然来了兴致,把车一摔,在路边跳了一段\u0026quot;麦考杰克逊\u0026quot;,然后在一片惊叹声中绝尘而去!\n洒脱吧?靠,我做不到,就算是在大街上唱歌我都不会。\n前两天,看了一篇文章,大致意思是,每个人生来都是一杯白水,随着时间的流逝,为了满足别人对我们的期望,这杯水被掺入了形形色色的杂质而变了味道,有些味道我们觉得好,但是别人觉得怪,或者又相反,最终大家都很不爽,文章最后劝我们别在乎别人怎么看,自己就做那杯最原始的白开水吧。\n看到最后,如果作者在我跟前,我想,我会把杂志卷成一卷儿,对着他的头来两下子,你的脑袋是不是被门挤了,还是被驴踢了?\n原因不再论述,这种忽悠人的文章以后还是少看为妙。\n我只想说,我还是会往我的杯子里,加入各种佐料,哪怕我不喜欢它,只要我的家人喜欢,或者我的家人认为我喜欢。\n我继续狂奔,我尽量学着在大街上唱歌,假如你看我有点儿累,就请你给我倒碗水。\n","date":"2008-11-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/","title":"假如你看我有点儿累,就请你给我倒碗水"},{"content":"昨天跑完后没感觉,睡了一夜,今早感觉腿酸背痛,看来见效果了啊。\n今天继续跑步,距离与昨天相同,还是一圈,时间缩短3分钟,速度不是我追求的,跑步本身才重要,看来明天要延长路线了。\n","date":"2008-11-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/","title":"跑步,有进步"},{"content":"上午制定了跑步的计划,旨在锻炼身体陶冶情操。\n说到就要做到,时间刚过8点一刻,我就换上球鞋(本来还想置办一套装备,但是看看动辄上千元的跑鞋只得作罢,还是等过几天跑步略显成效时再买吧)、塞上耳机,大步流星冲下楼去。\nHitFM正在播放着动感音乐,伴着音乐的节拍,我迈开轻盈的步伐,前面两个保安晃来晃去,被我轻松越过(靠,又不是打篮球)。\n由于是刚开始跑,为了既达到锻炼效果又不丧失信心,我把速度放的很慢,基本上比散布快一些就行。\n总算绕着小区跑了一圈,心跳还算正常,喘气有些加速,身上也微微出汗。\nOK!我很满意,能否坚持下去虽然是个未知数,但毕竟好的开始已是成功的一小半。\nps:这个跑步计划已经宣扬的全世界都知道了,要是跑两天即放弃,我岂不是无颜见江东父老了,唉,年轻人啊,爱冲动。\n","date":"2008-11-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/","title":"报告"},{"content":"午饭后,与远方的二舅聊起家常,说到锻炼身体的重要性。\n我说我没时间、坚持不下来,结果被二舅狠狠鄙视了,连二舅那么忙的人都能每天坚持锻炼,我就没啥话说了。\n据说他锻炼成果显著,现在腰不酸了背不疼了走路也有劲儿了。\n我想起今儿上午,和同事一起搬了台服务器都累的两股战战几欲先走(也怪那服务器忒沉),看来我是得加强锻炼了。\n想了半天,最后还是决定采用\u0026quot;跑步\u0026quot;这一经济实惠的锻炼方式,并制定计划:\n每晚20点半至21点间散步10分钟跑步20分钟(时间可根据情况提前或推后,但过了22点就取消当日计划)。\n除非遇到不可抗拒之因素(如下雪、加班到深夜等),否则一律坚持跑步!即日起,博客恢复更新,以记录跑步计划执行情况。\n","date":"2008-11-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/","title":"跑步吧!!!"},{"content":"长假过完了,感觉如下:\n1、交通的痛苦,买不到回家的火车票,被黑了一张全价机票。\n返京时乘坐大巴,连续坐了16个小时,感觉要比乘坐神七痛苦。\n2、妹妹结婚了,打心底祝福她。\n小时候那个调皮的小女孩儿怎么转眼变成了端庄的大姑娘了呢。\n3、喝多一次,此次回家喝了n顿酒,和老同学在一起喝的那次喝多了。\n4、我还是那么瘦,几个老同学都陆续把自己的肚子搞大了,只有我继续瘦的像支铅笔。\n5、我仍然是家里的维修工,此次修理好了老家的DVD、抽水马桶、电脑,并弄坏了老婆的手机(后来我又修好了)。\n6、美好的时间总是很短暂,每次相聚都是一次分手。\n","date":"2008-10-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/","title":"关于十一长假的总结"},{"content":"咱们的节日总是与吃有关,比如过年吃饺子,元宵节吃汤圆,端午吃粽子,六月六吃炒面,腊八吃米饭。\n中秋当然要吃月饼,而且要吃的相当隆重。\n在我的老家,刚入了八月大家就忙活着串亲戚送月饼了。\n一个人在外面,当然没人给我送月饼,为了找到一点儿过节的感觉,我只好到超市去一趟,心想,好歹买一两块月饼回来吃,也算是过节。 到了地方却傻眼了,花花绿绿的月饼盒子堆的跟小山似的,个个包装精美,如果不问售货员一句:\u0026quot;这是月饼吗?\u0026quot;我都不敢确定这些东西是什么。\n先让我想想小时候的月饼是什么样儿,嗯,圆的(废话),比烧饼厚,油光光的,上面印有花纹图案比如\u0026quot;花好月圆\u0026quot;什么的,随便拿张油纸包着,掰开以后馅里有大块大块的冰糖,还有花花绿绿的丝儿,应该是用橘子皮做的。\n对,就是这样,客人来了,主人把月饼拿刀切成菱形的小块就算一道下酒菜,中秋那天晚上一家人也会切上一块,大家一起嘎嘣嘎嘣地吃完。\n不过这是十几年前的事儿了,现在的月饼花样儿百出,什么馅儿的都有,造型各异,包装也是越来越豪华,味道却越来越难吃,简直难吃至极,看着这些大盒子我就发怵。\n我小声的问售货员:\u0026quot;请问有没有适合自己在家吃的月饼?\u0026quot;\n\u0026quot;有啊\u0026quot;她拎起大概有枕头那么大的一盒月饼说\u0026quot;你看这个怎么样,原价四百六现价二百八而且买一盒送一盒,多划算呐!\u0026quot;,\n我接过来看了看,诺大的盒子装了六块像扣子似的小月饼,亮亮的泛着油光,虽然个儿不大,但是如果买回去够我吃到过年了,我看了看长长的货架,觉得今天的月饼怕是买不到了。\n不买不行,不吃月饼哪叫过节啊,我拎着购物筐在楼上楼下转了个遍,终于在一个灰暗的角落里发现了散装的月饼,嗯,貌似小时候那种月饼。\n将就吧,随便挑了两块扔进筐里,任务算是完成,高兴之余顺便又拎了瓶红酒,就这么地了,晚上就着月饼喝着红酒,举杯邀明月,对影成仨人。\n","date":"2008-09-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/","title":"月饼"},{"content":"1、脚印烟花很令人惊艳 这真是一个好创意,巨大的脚印从中轴路一路迈向场馆,场面真不是一般的壮观!美中不足的是空中镜头取景再大些就好了。\n2、卷轴屏幕很好很强大 七十多米长的屏幕,应该也是奥运之最了,就是中间那块画布放的有点儿突兀。\n3、歌唱祖国很令人激动 当那个红衣小女孩用清澈如同天籁般的声音唱起歌唱祖国时,整个场馆进入了高潮,我在电视机前也禁不住唱了起来,眼泪都快下来了。\n4、主题歌有点儿弱 主题歌听完之后,印象不深刻,知道是谁唱的,听完就忘了。\n5、运动员入场时那些奥运宝贝一直在那儿蹦了两个多小时没换人,佩服! 导演也太不知道心疼人了,大热天儿的,让这些可爱的奥运宝贝手舞足蹈一直在那儿跳了,换了我,肯定都昏过去了。\n6、电视台转播水平发挥正常,镜头切换不敢恭维,画面中经常出现很多钢丝 不愧是咱们的CCTV啊,发挥出了应有的水平。\n7、点火没让人失望,要是点火时画面里看不见钢丝就更好了。\n点火方式很新颖,将吊钢丝技术发挥到了极致,李宁好样儿的!就是在全景的时候,在屏幕前方总是飘着好几根钢丝,让画面失色不少。\n8、有朋自远方来不亦乐乎,四海之内皆兄弟也! 击缻时朗诵的《论语》,让人仿佛回到了两千多年前,很好,很中国!\n","date":"2008-08-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/","title":"我对奥运开幕式的8点感受"},{"content":"当猿猴第一次有目的的拿起石头将骨头劈开的时候,\u0026quot;它\u0026quot;就不再是\u0026quot;它\u0026quot;了,而成了\u0026quot;他\u0026quot;。\n能够使用\u0026quot;工具\u0026quot;是人类与一般动物的最基本的区别,这是教科书告诉我们的事情。\n\u0026quot;工欲善其事,必先利其器。\u0026quot;这句话很长时间都被我作为msn签名,也充分说明了工具在我生活中的重要性。\n当然这儿说的工具是一个广义上的概念,它可以指硬件也可以指软件。但是,我现在对于工具的使用却有了新的看法。\n因为我觉得工具使我的大脑退化了,以前好使的功能现在都不太好用了(比如:记忆力、创造力等)。\n写到这儿,我发现我这次的话题起的有点儿大,发些感慨而已,说到哪儿是哪儿吧。 因为最近(其实早就有感觉)我越来越觉得对某些工具产生了严重依赖,\n比如:计算机、手机、Internet。有时候甚至搞不清究竟是在驾驭工具还是在被工具驾驭。\n前一段时间我看了一本关于高效率工作的书,按照书中的指点,慢慢养成了将工作事务都提前安排进\u0026quot;日程表\u0026quot;的习惯,感觉效率貌似提高了一些,但是造成的副作用就是,我的记忆力严重下降。\n人们常说:\u0026quot;好记性不如烂笔头\u0026quot;,我看则不然,在我没用\u0026quot;烂笔头\u0026quot;的时候,我的记性还是挺好,约会什么的一般不会忘记,现在惨了,当我习惯于把事务用\u0026quot;烂笔头\u0026quot;记下来时,就连\u0026quot;下班后买俩包子\u0026quot;这点儿破事儿如果不写下来就会忘记。\n关于电话号码的记忆也是,以前没用手机的时候,我可以记住几十个电话号码,现在连自己的电话号码都得翻手机的电话薄来查找了。\n现在,每天打开电脑第一件事儿就是把浏览器打开,收邮件,安排日程事务,借助google提供的日历功能安排好一天的工作,然后把工作内容同步到手机上,这样整个人都\u0026quot;信息化\u0026quot;了,看似有条不紊的工作,实际上,我已经牢牢地被这些所谓\u0026quot;高科技\u0026quot;拴住了。\n什么?万一哪天这些东西消失了?\n后果很难想象,想一下就能冒出一身冷汗。\n当然也有哥们幻想着有一天能过上\u0026quot;不插电\u0026quot;的生活,我觉得他也只能是想想而已,失去这些把我们宠坏的工具,将会像一只丧家犬那样的失魂落魄。本来打算来一篇长篇大论,发现越说越远,只好虎头蛇尾了。\n不能再多说了,因为我的\u0026quot;日程表\u0026quot;提醒我该去吃饭了。\n","date":"2008-07-31T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/","title":"工欲善其事,必先利其器?"},{"content":"好友终于无法忍受vista的龟速,将笔记本自带的系统干掉新装了一个windowsxp系统,托我用ghost把系统备份一下,以备不时之需。\n自从转到linux阵营之后,我很少用到ghost了,去网上找了个\u0026quot;一键ghost系统\u0026quot;把他的系统做了个备份。\n发现现在的ghost软件做的已是十分的人性化了,一路next即可,完全不要用户操心,傻瓜化操作。想起我大学那阵子用的win98系统,那时还没有ghost类的软件,而98又很不稳定,所以我基本上每周都要重装一次系统,同宿舍的哥们,每到周末都能看见我趴在电脑前重装系统(步骤很简单,FormatC:、Setup)。\n我想,我的偏执狂性格就是那时候养成的吧,一年下来,25位的windows98序列号我竟然背了下来。\nwin98给我印象最深的就是\u0026quot;蓝天白云\u0026quot;了,前两天在网上看到有志同道合的网友收藏的win98启动画面,其中就有这张经典的\u0026quot;蓝天白云\u0026quot;。\n后来,我误入歧途,对win98的操作技巧十分着迷,就连win98的启动画面也给改的面目全非(比如在启动时写上女朋友的名字),现在,这些曾经让我乐此不疲的\u0026quot;秘籍\u0026quot;已经变得一文不值。\n提到win98就不能不提它那经典的\u0026quot;蓝屏\u0026quot;,当程序死机或者非法操作时,它总是跳出来,搞得我的心扑腾扑腾乱跳。\n加上那时我的英文水平实在有限,屏幕上的大串英文字母对我来说与乱码无异,蓝屏的次数多了,也就预示着我又要重装系统了。\nwin98下打游戏很爽,我打电脑游戏的时代也基本上就是大学那几年,星际争霸、红警、剑侠情缘、大菠萝2、极品飞猪(车)5,这些游戏在我的赛扬600下跑的也很顺畅,目前的硬件配置拿到我的大学时代能把人美死(不美死也吓死),可是我已经基本没心思再打游戏了。\n大学快毕业的时候,windowsxp横空出世,我终于忍不住诱惑,装了一个英文版(那时还没出中文破解版),谁知,xp竟不由分说(也许是说了,我没看懂)把我的C盘给格式化成了NTFS格式,当我新鲜劲儿一过,想要再重装win98时,由于在DOS下无法识别NTFS磁盘,导致我误把D盘给格式化了,几年的积累化为乌有,气得我在床上跳来跳去,疯了一样。\n现在,虽然硬件飞速的发展,内存都快有那时的硬盘大了,可是随着操作系统越来越臃肿,感觉计算机的速度却没有多大提升,仍然要启动老半天,打开一个word文档还是磨磨叽叽的。\n有时候不禁要想,拼命的升级硬件、换代计算机,究竟有什么意义?\n算了,不说了,洗洗睡吧,与其说是有点儿怀念win98,倒不如说是想念那一段\u0026quot;纯洁的\u0026quot;求学的时光,这个话题一旦摊开来说就唠远了,还是就此打住吧。\nps:我发现写博客固然很爽,但是往往勾起人的回忆,而回忆呢,又往往是美好滴,一美好就难免会想抽根烟,看来我也要\u0026quot;珍惜生命,远离博客\u0026quot;了。\n","date":"2008-07-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/","title":"怀念win98"},{"content":"对于使用手机,我有一个不良习惯,喜欢在睡觉的时候把手机放在枕头旁边,而且是24小时不关机,只有这样我才睡的踏实。\n之所以这样儿,是因为我是把手机作为闹钟来用的,放的近一些首先可以保证它在关键时候叫醒我,其次是,这样我就可以迅速把闹铃关掉,然后再睡一会儿。\n今天看了一条新闻,让我十分不安,有专家跳出来说“应该让手机远离头部”因为,“手机发出的电磁辐射可以致癌”。\n哦卖糕的!以后睡觉的时候干脆把手机放在脚边算了,每当早上它吵醒我美梦的时候,我可以飞起一脚把它踢到地上。\n","date":"2008-07-25T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/","title":"珍爱生命,远离手机"},{"content":"《论语》有云\u0026quot;唯女子与小人为难养也\u0026quot;,这句话的意思伤了一大批人,现在有人跳出来给出了新解释:\u0026quot;女\u0026quot;通\u0026quot;汝\u0026quot;,\u0026quot;女子\u0026quot;即\u0026quot;汝子\u0026quot;,即\u0026quot;你的孩子\u0026quot;;\u0026quot;养\u0026quot;指\u0026quot;教养、教育\u0026quot;,全句是说\u0026quot;你的孩子有类似小人习气就不好教育了\u0026quot;。\n\u0026quot;这是个教育问题,小孩会因为溺爱而放纵自己,对大人的管理充满埋怨,不就像小人?\u0026quot;\n我联想到另外一些新解:\n关于孔子的收费标准三十而立:交三十升米者,可以在后面站立听课。\n四十不惑:交四十升米者,允许提问,直至没有疑问为止。\n五十知天命:交五十升米者,可以知道明日考试之命题。\n六十耳顺:交六十升米者,先生会说些你喜欢听的话,让你耳顺。\n七十从心所欲:交七十升米者,听课要躺要坐,想来不来,一切随便。 ","date":"2008-07-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/","title":"原来这句话是这个意思啊"},{"content":"郁闷或高兴的时候我总是想抽根烟,比如,当我的代码总是调试失败或者刚修改完一个Bug的时候。\n办公室里不允许抽烟,否则我们屋肯定和火车的车厢连接处一样,整天烟雾缭绕,这样就剥夺了一小撮人不抽烟的权利。\n所以,抽烟的兄弟只能到厕所旁边的那个阳台吞云吐雾了。\n这样也好,一边抽着\u0026quot;混合味儿\u0026quot;的香烟,一边欣赏窗外的风景,既满足了肺对于尼古丁的需求,又能放松一下疲倦的眼睛。\n楼层不低,所以看得也挺远的,如果眼神儿和天气都足够好的话,甚至可以看见鸟巢里工人师傅的焊枪发出的耀眼蓝光。\n下班的时候,我又去抽了一根烟,一个人。\n远处的大楼在烟雾中显得虚无缥缈。\n我手扶着窗户,探出头去,想看得清晰一些。\n这时,一个哥们从厕所走出来,一边提着拉链一边语重心长地说:\u0026quot;别想不开啊!\u0026quot;\n我靠!我有啥想不开的?\n工作虽然累点儿,但是,祖国还需要我,人民还需要我,老婆做好的饭菜还在桌子上等着我,孩子还等着我回去辅导功课\u0026hellip;\u0026hellip; 算了,回去了,明天又是崭新的一天,但愿今天不堵车。\n","date":"2008-07-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/","title":"别想不开啊"},{"content":"现在电脑基本上已经普及了,我老家的一个师范同学,去年买了电脑之后,非常迷恋电脑的知识,经常通过qq来问我各种问题,我也是基本上都耐心回复。\n后来这厮竟然越来越来劲,已经不满足于普通的日常使用了,有一天就问我编程序到底好玩不好玩儿?我有心把它带进沟里,就告诉他编程序十分有意思,写完程序后很有成就感和快感。\n这家伙终于着迷了,发誓要学会写程序,我就把老谭的那本《C程序设计》推荐给他看。\n他看了之后一头雾水,说是像看天书一般,遂跟我唠叨十分后悔没念大学。\n后来我被他缠的没办法,就告诉他应该先把基础打好,他说也对,不妨就把大学里的计算机课程给全过一遍。\n我靠,佩服!让我肃然起敬。\n不过,我大学里的书基本上都找不到了,就把课程的书目大体上给他说一遍,让他自己淘弄去,实在不行就去书店买,然后就有一阵子没有联系。\n今天突然上线告诉我所有的书都买到手了,大概有十几本,我更佩服他的精神了,作为一个业余爱好者也太舍得了。\n我问他:\u0026quot;你哪儿买的书啊?现在书那么贵,花了不少钱吧?\u0026quot;这家伙半天没吱声,过了一阵儿给我来了一句:\u0026quot;没多少钱,比你上学时买的便宜多了,我让亲戚在大学旁边的废品收购站买的,你说的那些书全都有,九成新的!一块钱一斤!\u0026quot;\n","date":"2008-07-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/","title":"一块钱一斤"},{"content":"这几天,老爸老妈过来了,我也没有太多时间陪他们。\n周末了,一起去了趟颐和园。\n天太热,人太多,出去玩儿实在是太受罪了。\n吃晚饭时与我爸一起整了几盅,正想多喝几杯时,老头按住酒瓶说:“编程序我不行,喝酒你不行。”\n想去电脑上玩会儿游戏,我妈指着电脑屏幕上一路飙升的qq斗地主分数对我说:“编程序我不行,打牌你不行。”\n","date":"2008-07-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/","title":"颐和园"},{"content":"接风,洗尘、喝酒\n","date":"2008-07-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/","title":"家人来到"},{"content":"看到了一篇关于电脑偏执狂的帖子,发现里面列举的内容大部分都像是在说我。\n比如:Windows桌面只放三个图标:\u0026quot;我的电脑\u0026quot;、\u0026quot;回收站\u0026quot;、\u0026quot;浏览器\u0026quot;回收站永远保持\u0026quot;清空\u0026quot;状态,删除文件都是用Shift+Delete,根本不用进回收站所有软件都使用最新版,打上最新的补丁每隔一段时间就清理一次注册表如果有个软件用的不是最新版本就会浑身不自在\n补充:看到别人的电脑不是处于最佳状态也会浑身不自在,想冲过去调理一番如果同样功能的软件有商业版和免费版的话,就打心眼儿里觉得免费版的那个更可爱经常整理磁盘碎片经常整理删除磁盘上的文件,有时候上午刚删完一个文件,到下午就发现那个文件还有用任务栏上同时打开窗口超过四个就觉得难受,如果把程序隐藏在系统栏就感觉好多了新建文件夹时不喜欢用\u0026quot;新建文件夹\u0026quot;来命名\n","date":"2008-07-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/","title":"偏执狂"},{"content":"大早上一起来,打开电视(就是我那个用Python写的小程序),凤凰卫视里的沈星正在介绍\u0026quot;美女私房菜\u0026quot;,正在纳闷原来美女还会做菜,结果令我十分失望,只见她拿了个番茄,随便切几下,往搅拌机里一扔,嗡嗡两下,搅成糊状,美其名曰\u0026quot;营养瘦身果汁\u0026quot;。\n咳,正愁着早饭不知吃啥,干脆试一下吧。\n从冰箱里拿出番茄,又刷了刷我那半年多没用过的搅拌机(当时为啥要买它?),搅拌之前又撒了些白糖,喝了果然神清气爽,看来,这个搅拌机还挺有用,这样吃番茄(应该是喝)比起放在嘴里生嚼别有一番滋味。\n到了傍晚的时候,闷的慌,出去溜达的时候又想起自制果汁的事儿来,干脆这次来做一个真正的果汁。\n买来西瓜一只、蜜桃若干、猕猴桃若干、青苹果、黄瓜,本来我还想加点儿芹菜,但是买不到了。\n回到家,将这些水果切成丁、片,一股脑儿放入搅拌机,嗡嗡搅了一分来钟,足足做了一大杯,让我想想,西瓜消暑、猕猴桃富含维生素、青苹果酸中带甜,这杯什锦果汁应该是比早上那个强多了吧。\n迫不及待喝了一口,靠,说不出的滋味,各种味道窜来窜去,就像是吃烂桃的时候再就着两口酸苹果,没办法,反正有营养,那就喝吧。\n喝到大半杯的时候我才想起来,我刚才要是把西瓜的皮儿去掉就好了。\n","date":"2008-07-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/","title":"自制果汁"},{"content":"我的吉他弦断了,刚断的,就在我弹那曲《两只老虎》的时候。\n没办法,为了能压住隔壁装修的声音,我在弹的时候多使了点劲儿。\n幸好我未雨绸缪,买吉他的时候就多买了几根琴弦,今天终于用上了,不过,还是费了老半天劲儿才把弦儿装好。\n这让我想起一个传说,爱好古琴人都知道这个神秘传说。古代有两人,一个叫俞伯牙,一个叫钟子期。有一天,俞伯牙琴兴大发,在他家空旷的后院里(也可能是在河边,记不清了),摆好琴,焚香沐浴后,惬意地抚上一曲。一时间,悠扬的曲子飘满了整个院子,向远方扩散。\n俞伯牙正沉浸在曼妙的琴声里,突然,\u0026ldquo;啪\u0026quot;地一声脆响,琴弦断了。他向远处一望,原来是钟子期这家伙打完柴在这儿偷听他弹琴。钟子期不但听懂了他的曲子,而且对他这把琴的来历也说得头头是道,后来俩人成了好哥们儿。\n就此打住,问题的重点并不是这俩人后来成了好哥们儿,关键是这个故事说明了一个问题:当有人偷听你弹琴的时候,你的琴弦就会断掉。反过来说,如果哪天你的琴弦断了,那么,在某一个角落里,有一个粉丝正在偷听你的琴声。\n话说有一个人叫张三,酷爱抚琴,苦于没有知音。一日,在抚琴时琴弦终于崩断,此人对刚才的传说深信不疑,急忙起身,想要寻找那位来偷听的\u0026quot;粉丝\u0026rdquo;,果然,在角落里找到了他。张三欣喜不已,激动地握着\u0026quot;粉丝\u0026quot;的手说:\u0026ldquo;同志!我可找到你了!\u0026ldquo;却又发现这位粉丝已经陶醉于音乐之中,正在轻轻地啜泣。\n张三感慨万千:\u0026ldquo;终于有人懂我的琴艺了!\u0026ldquo;忙将此人请入家中,沏茶倒水,欲询问此人对他刚才所奏之曲的感受。此人好不容易才止住哽咽,断断续续说道:\u0026ldquo;本来我在睡午觉,忽听得先生的琴声,就顺着声音走到这里来了。\u0026rdquo;\n\u0026ldquo;那又为何哭泣呢,我刚才所奏之曲虽有哀怨之意,听了却也不必如此悲痛吧?\u0026rdquo; 张三不解地问道。说道此处,此人痛苦地干嚎两声,说道:\u0026ldquo;之所以伤心,是因为我心里难受,先生的曲子让我想起我死去的舅舅,先生的曲子与我舅舅的曲子有一样的声音。\u0026rdquo; 张三更加欣喜:\u0026ldquo;敢问你舅舅是哪位大音乐家啊?\u0026quot;,\u0026ldquo;音乐家倒谈不上。\u0026quot;,\u0026ldquo;哦,那他是干什么的?\u0026quot;,\u0026ldquo;他是,弹棉花的\u0026hellip;\u0026quot;,\u0026rdquo;#@$%^#$%^#$%^\u0026rdquo;\n","date":"2008-07-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/","title":"每个周六的晚上是我乐兴大发的时候"},{"content":"单位要员工填写一张个人信息表,其中有一项内容是父母的出生年月(填的还真够细),很多人都填不上来。\n我还好,前一段时间刚好在msn上和妹妹一起聊到了父母的年龄,赶紧翻看msn记录,终于找到了妹妹通过msn告诉我的出生日期(看来养儿子真不如养女儿)。\n突然想起一个电视节目,在大街上现场采访,随便拉个人去问他父母的生日,结果大部分都张口结舌,答不上来。\n自己的生日记得很清楚,老婆的生日记得很清楚,儿子的生日记得很清楚,有些人甚至领导的小舅子的孩儿他妈隔壁邻居的生日都记得很清楚,可是却把父母的生日抛在脑后,惭愧啊。\n","date":"2008-07-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/","title":"你知道父母的生日吗?"},{"content":"据说已有了定论,但还是个秘密,老张还在卖关子。\n我有同事猜测,应该是派一只大熊猫举着火把去点燃,还有哥们儿说还不如让猪坚强去点燃。\n","date":"2008-07-10T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/","title":"开幕式那天,使用哪种点火方式?"},{"content":"用小e在床头看电视在合适不过了,不过我没找到Linux下的网络电视软件。\n找来找去,发现一些可以用mplayer播放的mms链接,试了一下效果还不错,几个著名的电视台都有对应的链接,比如:\n凤凰卫视中文台mms://58.22.96.10/litv01;\n凤凰卫视资讯台mms://58.22.96.10/litv03;\n但是我的mplayer是基于命令行的,每次要看电视的时候还需把这些链接输入进去,感觉很不方便。\n刚好这两天对Python这个脚本语言比较感兴趣,于是想用Python写一个脚本来帮我输入这些链接。\n由于对Python还不熟,所以写的界面很丑,不过也够我用了。\n具体思路是,将这些链接首先存入一个文本文件里保存为channel.data,\n内容如下:\n1 2 3 4 5 6 7 8 凤凰卫视中文台|mms\u0026amp;#58;//58.22.96.10/litv01; 凤凰卫视资讯台|mms\u0026amp;#58;//58.22.96.10/litv03; 东风卫视|mms\u0026amp;#58;//58.22.96.10/litv07; 精品影院|mms\u0026amp;#58;//218.1.70.72\u0026amp;#58; 1755/JingPinYingYuan; 东方卫视|mms\u0026amp;#58;//live.smgbb.cn/dfws; 星空卫视|mms\u0026amp;#58;//58.22.96.10/litv06; TVB8|mms\u0026amp;#58;//58.22.96.10/litv05; 然后写一个python脚本读取这些链接并将电视台的名称填入界面中的一个列表框里,到时候通过点击名称就可以播放了。\npython脚本内容如下:\n1 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 #!/usr/bin/env python # -*- coding: UTF-8 -*- from tkinter import * import os import string class Application(Frame): clist = list({}) def play_channel(self, channel_url): strcmd = \u0026#39;mplayer \u0026#39; + channel_url + \u0026#39; -cache 1024\u0026#39; str_output = os.popen(strcmd).read() a = str_output.split(\u0026#34;\\\\\u0026#34;) for bin_a in a: print(bin_a) print(channel_url) def play_tv(self): print(self.clist[int(self.channellistbox.curselection()[0])]) self.play_channel(self.clist[int(self.channellistbox.curselection()[0])]) def init_channel_list(self, listbox): channel_file = open(\u0026#39;tvchannel.dat\u0026#39;, \u0026#39;r\u0026#39;) channel_info = channel_file.readlines() channel_file.close() for i in range(len(channel_info)): channel_list = channel_info[i].split(\u0026#39;;\u0026#39;) for j in range(len(channel_list)): channel = channel_list[j].split(\u0026#39;|\u0026#39;) channel_name = channel[0] channel_url = channel[1] listbox.insert(END, channel_name) self.clist.append(channel_url) def create_widgets(self): self.quit_button = Button(self) self.quit_button[\u0026#34;text\u0026#34;] = \u0026#34;Quit\u0026#34; self.quit_button[\u0026#34;command\u0026#34;] = self.quit self.quit_button[\u0026#34;width\u0026#34;] = 30 self.quit_button[\u0026#34;height\u0026#34;] = 10 self.quit_button.pack({\u0026#34;side\u0026#34;: \u0026#34;left\u0026#34;}) self.play_tv_button = Button(self) self.play_tv_button[\u0026#34;text\u0026#34;] = \u0026#34;Play TV\u0026#34; self.play_tv_button[\u0026#34;command\u0026#34;] = self.play_tv self.play_tv_button[\u0026#34;width\u0026#34;] = 30 self.play_tv_button[\u0026#34;height\u0026#34;] = 10 self.play_tv_button.pack({\u0026#34;side\u0026#34;: \u0026#34;left\u0026#34;}) self.channellistbox = Listbox(self) self.init_channel_list(self.channellistbox) self.channellistbox.selection_set(0) self.channellistbox.pack() def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.create_widgets() app = Application() app.mainloop() 保存为playtv.py,和刚才那个channel.dat放在一个目录,运行即可(python./playtv.py)。\n","date":"2008-07-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/","title":"eeepc 使用技巧(4) 看电视"},{"content":"半年很快过去了,领导又安排写工作总结。\n写完之后感觉意犹未尽,不如把这半年的生活也总结一下,为了增加总结的趣味性,再此,我特意虚拟了一个记者出来。\n记:2008已过去大半年,能不能谈一下你这半年都是在忙些什么呢?\n我:可以,上班忙工作,下班忙生活。\n记:哦,能不能说一下具体都是忙些什么工作呢?\n我:工作上的事情我是不会在博客里说的,我刚写了一份上半年工作总结,一会儿可以给你看一下。\n记:好的,那谈一下生活吧。\n我:好的,因为我经常加班,所以其实我的生活也基本上就是工作,你还是看工作总结吧。\n记:靠!你到底要不要接受采访,玩儿我呐?\n我:你还真不懂幽默,咱们国家就是你这样儿的记者太多了。\n好吧,给你说一下最近的情况。\n记:请问,这半年你的周末都是怎样度过的?\n我:大部分周末是在加班,另外由于我是一个很低调的人,所以剩下的时间都宅在家里。\n记:宅?这个我知道,据说是一种生活方式,就是呆在家里不出门是吧?周杰伦还有一首歌叫《阳光宅男》呢!\n我:你真聪明。\n记:在家里干嘛呢?\n我:无聊的时候我会谈谈琴看看书,如果有时间我会每周看一部电影。\n记:你刚才不是说呆在家里不出去吗?怎么还去影院看电影?\n我:刚夸完你的智商你就开始喘啦?谁说上电影院了,现在影院的票价那么贵,而且放的又是剪切版的,网络那么发达,片源很丰富,所以,我是在家看的。\n记:说到\u0026quot;剪切版\u0026quot;请谈一下你对《色戒》这部影片的看法。\n我:哦,这个我在网上看的也是剪切板的,不过看的是被剪掉的那部分,由于看的也不完整,所以也不便于发表看法。\n而且,我比较怀旧,平时看的大部分都是多年前的老片。不过最近的《功夫熊猫》也挺不错。在看的过程中发现精品后我一般会在博客里记录下来。\n记:你刚才说到无聊时会看书,都是看些什么书?\n我:我还是比较怀旧,想把以前上学时没看过的小说给补一补,金庸和古龙的小说看了好几遍了,最近又复习了一遍《射雕》。\n另外这半年还看了《我这一辈子》、《月牙儿》、《白豆》、《许三观卖血记》等中篇小说,上学时,家长不让我看这些小说,现在得补回来。\n记:(撇撇嘴)我还以为是《鬼吹灯》、《诛仙》呢。\n我:哦,这些我也想看,不过我胆儿小,一个人不敢看,怕失眠,我失眠挺严重的。\n记:你刚才说无聊时还要弹琴,是弹钢琴还是吉他?\n我:钢琴太贵,买不起,我弹电子琴、吉他、电脑键盘、吹口琴等。\n记:(吁!)您的爱好还真够广泛的。看来这半年您过得还真是挺充实惬意的。\n我:惬意个P呀,老婆不在身边,没人聊天,没人做饭,我孤独得都快抑郁了。不过她很快就要来了。\n记:祝贺你啊。聊了半天,你能不能总结一下你这半年的心得和收获?\n我:可以,这半年,我看了不少电影,新喜欢上几首好歌,又恢复了打篮球,身体状态也在恢复。\n另外我迷恋上了Linux操作系统。至于收获嘛,真是说不好,有些事儿不能说。\n记:好的,感谢你抽出时间接受采访,谢谢,再见。\n我:再见。\n","date":"2008-07-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/","title":"假如工作总结这样写"},{"content":"7.7\n71年前的今天,中国开始了长达八年的抗日战争。无需多言。\n","date":"2008-07-07T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/","title":"不要忘记"},{"content":"有音乐就有春天,当我写下这句话,撇了撇嘴,我想,我还挺能装啊。\n不过,这么说是因为刚刚看了一部电影\u0026ndash;《放牛班的春天》,法国人拍的,很细腻,有一点小幽默。\n故事讲的是一个迷恋音乐的教师与一群工读生的故事,工读学校管理混乱,体罚学生,学生自暴自弃到处做恶作剧。直到克莱门特来了,这个秃头的中年男人,看上去还有些磨叽。\n然而,这些孩子马上就发现了新老师的与众不同,因为他唯一的皮包里装的仅仅是几张乐谱,而且他把这些视为生命。\n克莱门特渐渐发现这些孩子原来也热爱音乐,这使他重新燃起创作激情,他把这些孩子根据特点编成了一个合唱团。\n通过教授音乐,他不仅感觉这些孩子原来唱歌不错,而且组建合唱团也使他们变得不那么调皮了,音乐拉近了他们的距离。\n然而,事情不会那么顺利,皮埃尔这孩子就很难对付,他声线极美却极难驯服,克莱门特不断挖掘他的优点,还说服他的母亲让他去读专业的音乐学校。\n期间还有一段小插曲,那就是克莱门特与皮埃尔的单身母亲还产生了一点儿小感情,不过克莱门特很含蓄,一直埋在心里,影片在这一段处理的很不错。\n影片的配乐很精彩,最让人陶醉的就是这些孩子天使般的歌声了,沉静又富有感情,天籁、天籁就是打这儿来的吧。\n最后当克莱门特因得罪校长而被辞退的时候,这些孩子被命令不准送他,他孤独走向大门,此时优美的合唱响起,天空中飘满了孩子们折的纸飞机,上面写着祝福的话,孩子们用这种特殊的方式与他告别。\n他用音乐给孩子们带来了春天,留下了春天,却又孤独地离去。\n","date":"2008-07-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/","title":"有音乐就有春天"},{"content":"晚饭毕,弹了一会儿电子琴,感觉很投入。\n就是那种摇头晃脑的投入,脚也随着音乐的节奏踏着地板,忽闻岸上踏歌声就是这个踏吧。\n感觉我的琴技提升了啊,左手和弦右手旋律,配合得天衣无缝,第一次有演奏的感觉,弄得动静比较大,不知道会不会吵到别人。\n看来我天生会弹琴,曲谱都在心中,美妙的音符随着手指流淌出来,至少我是这么以为的。\n有没有听到那个声音\n就像是我忽远忽近\n告诉你他来自我的心\n带来一首苍老的歌\n对着你轻轻的说\n我不在乎春夏秋冬花开花落\n任凭这夜越来越深\n你在我心中越来越沉\n压的我不能翻身作自己的主人\n任凭这灯越来越昏\n你在我眼中越来越真看得清你满脸的风尘\n任凭这天空越来越湛蓝\n你在我身边越来越平凡\n可是有些说过的话一直没能改变\n任凭这旅程越来越孤单\n你在我面前越来越茫然\n丢不下的行李\n是我不变的心\n","date":"2008-07-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/","title":"哈哈太棒了"},{"content":"无意间看到我写的几篇日志竟有人评论,想不到这个我发发牢骚的地方竟还有人访问哈。\n而且,看起来,我写的颇为不错(嘻嘻)。\nps:感谢SEA同学的捧场。\n","date":"2008-07-05T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/","title":"留意了一下我的blog评论"},{"content":"就在下班的时候,天还没有要下雨的样子。\n我悠然地吃完了晚饭,然后慢吞吞地走向车站,准备回家。此时天上却落起了雨滴,不大,我想肯定又要堵车了,就买了本《读者》准备在车上看。车行驶到路上的时候,雨真的大起来了,雨点密密地砸在车顶和车窗上,彭彭作响,车窗外的景象被雨水冲得模糊不清。\n雨越来越大,公交车就像一只潜水艇,四周都被水包围了。\n到站而没有带伞的乘客,咬咬牙狠狠心跳下车去,很快就消失在茫茫雨雾中。\n终于,我也要下车了,我带了伞,但我还是太低估了这场雨,我甚至想象在雨中点根烟,那该是多么惬意啊。\n然而,我这把伞应付毛毛细雨还凑合,外面下着倾盆大雨,又刮着狂风,闪电在头上不停地把天撕开一个又一个裂口,这把伞仅能护住我的头,被风吹得翻过来复过去。\n也许是我\u0026quot;点根烟\u0026quot;的想法激怒了老天,风雨越来越猛,马路变成了一条河,泛起一阵阵波浪,我不由自主地奔跑起来,拼命抱紧了我的电脑包,那里面装着我心爱的笔记本电脑。\n几分钟的路程,把我淋得狼狈不堪,衣服湿透了,鞋子里灌满了水,终于,我跌跌撞撞地跑到了家门口。\n我想这是我有生以来淋得最大最惨的一场雨了。\n现在,我洗完了热水澡,沏了一杯热茶,窗外,雨已经停了。\n","date":"2008-07-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/","title":"我淋了一场大暴雨!"},{"content":"今天遇到一个问题,我们的程序在本地执行一切正常,但在售后的一台笔记本电脑中却无法启动且爆出runtimeerror。\n无奈只有通过调试来查找问题所在,由于该笔记本并未安装开发环境,于是想到了VC6的远程调试。上网翻看资料,写的都不太详细,摸索半天终于成功,并通过远程调试搞定了程序的问题。\n现将远程调试的详细操作记录下来以备忘。\n1、需机器两台:一台为调试机(装有VC6开发环境),一台为客户机(运行程序)\n2、假定客户机的ip地址为192.168.0.168\n3、假定需要运行调试的程序放在客户机的C\\emote_bin\\emote_test.exe\n4、共享客户机C:\\emote_bin文件夹,并开放所有权限(读、写),共享名为remote_bin;\n5、在调试机上映射客户机remote_bin共享目录为\u0026quot;Z\u0026quot;盘(可在cmd中执行\u0026quot;netusez:\\\\192.168.0.168\\emote_bin\u0026quot;) 6、拷贝调试机上VC6安装目录下的Bin目录中的全部内容到客户机任意位置(该目录在调试机的路径一般为\u0026quot;C:\\ProgramFiles\\MicrosoftVisualStudio\\COMMON\\MSDev98\\Bin\u0026quot;),在此假定拷贝在客户机的\u0026quot;C:\\Debugger\u0026quot; 7、在客户机运行\u0026quot;C:\\Debugger\\MSVCMON.exe\u0026quot;,启动后再对话框上直接点击\u0026quot;Connect\u0026quot;按钮(不用点\u0026quot;Setting\u0026quot;按钮),期间如有防火墙告警提示,需允许该程序。 8、回到调试机,打开VC6并打开要调试的工程文件(再此为remote_test),在VC6的\u0026quot;Build\u0026quot;菜单下点击\u0026quot;DebuggerRemoteConnection\u0026quot;,在弹出的对话框左侧选择\u0026quot;NetWork(TCP/IP)\u0026quot;,点击右侧\u0026quot;Setting\u0026quot;按钮,填入客户机ip地址(192.168.0.168)点击\u0026quot;ok\u0026quot; 9、点击VC6的\u0026quot;Project\u0026quot;菜单下\u0026quot;Setting\u0026quot;,切换到Link页面,在Outputfile中填入\u0026quot;Z:\\emote_test.exe\u0026quot;,切换到Debug页,在Executablefordebugsession中填入\u0026quot;Z:\\emote_test.exe\u0026quot;,在Remoteexecutablepathandfilename中填入\u0026quot;C:\\emote_bin\\emote_test.exe\u0026quot;(注意:此行甚为重要,需填写程序在客户机的完整路径) 10、大功告成,按F7编译可执行文件,按F5开始远程调试吧!\n","date":"2008-07-03T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/","title":"怎样使用VC6的远程调试"},{"content":"入夏以来,大家打篮球的热情空前地高涨,频率已经从原来的每周一场提升到每周两场,较上年同期提升了100个百分点(我晕,还是别用新闻联播的语气了)。\n不仅如此,每次打球的时间也有所延长,基本上都是从下班打到天黑,中间不休息、不换人,三个小时下来,基本上都口吐白沫,胳膊抽筋,两股战战几欲先走。\n然而天公总是不作美,近日一连串的雨天,严重打乱了我们的打球计划。\n基本上每次打球都要下雨,而且时间也选在下班前后。\n每当约定好打球日期,第二天带齐了球衣和球鞋,下班后刚给篮球打满气,还没来及拿起来在手指上转一下,只见天空一道闪电,紧跟着大雨倾盆而下,大家只得各自回家收衣服。\n同事们都感叹又发现一求雨的新招数,无论哪个地方干旱少雨,只需我们带齐装备过去打球,过不多时必有甘霖降落。\n今天,大家没带球衣,也没带球鞋,篮球也没打气,天,晴了!\n","date":"2008-07-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/","title":"求雨妙招"},{"content":"公司的光纤今日出了故障,整整一天无法上线,感受如下:\n1、无法与出差现场的同事交流,同事亦无法访问公司网络,导致工作受阻。\n2、IM软件不能上线,家人朋友都很担心,老妈更是打来电话,问我为什么qq不在线。\n3、不能收发电邮,心情焦躁不安。\n4、无法获取最新资讯,感觉与世隔绝了。\n5、GoogleReader积累了200+的未读条目,原来我订阅了这么多信息。\n6、终于修好了,爽!\n","date":"2008-07-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/","title":"断网一天的感受"},{"content":"昨天,一朋友新买了台笔记本,预装WindowsVista操作系统,我拿到手把玩一会儿,见识了传说中的Vista。\n界面确实是漂亮了许多,确切的说是比起我用的XP界面华丽了很多,但是咱也有Ubuntu啊,Linux下的界面也不是盖的。\n至于速度呢,真是让人难以接受(忍受),想不通微软那帮儿天才是不是故意把系统弄得这么慢,明明硬件配置已经很高了,要是跑xp能让它飞起来,但是Vista却慢慢吞吞咿咿呀呀哼上老半天,让我想到了我十年前第一次启动Win98。\n同样,关机也是很慢,一副可怜兮兮、依依不舍的样子,恨不得让你直接拔电池。\nVista另一个让我不爽的方面应该就是UAC(用户帐户控制)了,对于这个功能,我的理解就是典型的掩耳盗铃,因为随便你运行个什么程序系统都会不厌其烦地弹出一个框,告诉你这是个陌生程序,它不确定是否安全,问你是否继续,如果你允许了,那么他也就没有任何责任了。\n可是我又怎么知道这个程序有没有威胁?我要是知道我还会运行它吗?\n靠!今天看到消息说,从本周一起微软就再也不买XP了,这也就意味着,你如果还想用Windows以后只能买Vista了。\n以后再买笔记本也只能预装Vista了,一句话,微软要逼着我们用他的新系统了。但我还是决定对xp\u0026quot;不抛弃,不放弃\u0026quot;,这次Vista的使用经历更是坚定了我的观点,让华丽的Vista见鬼去吧!\nps:不行就用Linux\n","date":"2008-06-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/","title":"终于见识了Vista"},{"content":"入夏以来,被蚊子叮咬数次,胳膊的红点竟呈北斗七星状。冥思苦想,得一良方。活捉蚊子一只,将长嘴拔掉,悬挂于床前,众蚊子观其惨状均不敢靠前半步。\n","date":"2008-06-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/","title":"驱蚊良方"},{"content":"像往常一样,周六的早晨匆匆醒来,洗漱完毕拿起包推门而出,忽然想起,今天不加班!\n","date":"2008-06-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/","title":"今天居然不加班"},{"content":"真实的战争场面和细腻的故事情节让《太极旗飘扬》这部影片成为了和《拯救大兵瑞恩》同样经典的战争片,\n我认为甚至超越了后者,因为《拯救大兵瑞恩》带给我更多的是战斗场景的震撼,而太极旗飘扬则在震撼之外又多了一些在情感上的触动。\n战争到来的时候,带来了无尽的不幸和灾难,无数的人卷入这残酷的漩涡。\n故事的主角\u0026quot;镇泰\u0026quot;本来和家人幸福的生活在一起,弟弟马上就要念大学了,妈妈和妻子开的面摊也刚刚有了起色,而且自己修鞋的手艺也越来越高超,挣钱供养弟弟上大学应该没有问题,虽然他自己连一个字也不识,但是他很满足。\n然而,战争的到来让一切幸福都成为泡影,他们兄弟俩很快被抓了壮丁,与亲人失散。\n战场上的血雨腥风让他们很快成长起来,每时每刻都有人死去,在战斗中,作为哥哥,镇泰时刻保护着年幼体弱的弟弟,不惜生命的代价。后来他又听到一个传说:\u0026quot;只要得到一枚总统颁发的勋章就可以让一位自己在军队里的亲人回家\u0026quot;他相信了,为了勋章,为了能让弟弟离开战场,他拼了命,甚至让他的弟弟误会他,以为他为了得到荣誉而不顾一切。\n他终于拿到了勋章,可是他弟弟却没能回家,他所得到的却是眼睁睁地看着自己贤惠的妻子被战友当作叛徒无情地射杀,那一刻我想他肯定比子弹打在身上还难受。\n后来他的弟弟被当作叛徒要被烧死(被救出,但是他不知道,一直认为弟弟被战友烧死了)。\n他绝望了,他为了弟弟、为了家人所做的这一切只给他带来了更多的不幸。于是他成了俘虏,他叛变了,他开始疯狂地报复,当两兄弟在战场上互相以敌人的身份见面时,他已经杀红了眼,两人厮杀很久,在弟弟的叫声中他终于清醒了,可是弟弟的部队已经开始败退了,两个人面临生死抉择,弟弟需要撤走,而他需要留下来为弟弟断后。\n看到弟弟安全撤走,他欣慰地死去,为了弟弟,他已用尽了自己最后一丝力气。\n整部电影想要表达的以及所表达的远不止这些内容,抛开历史的真实性和导演的政治观点不说(这些仁者见仁智者见智,毕竟这是韩国的电影),我觉得一部电影,看完了能够让我思考的,那就是一部好电影。\n通过影片我看到了战争带给人们的苦难以及和平的珍贵,看到了生命的脆弱和人性的光辉。\n片中很多情节充满血腥,很多情节又饱含温情,看到两兄弟最后战场离别的那一刻,我更看到了,作为一个男人的责任。\n当镇泰倒下去,看着弟弟的背影死去,我只想说:\u0026quot;镇泰是个爷们儿,纯的!\u0026quot;\n","date":"2008-06-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/","title":"是爷们儿就得顶着,看了《太极旗飘扬》"},{"content":"昨晚又严重失眠,本来想早早睡觉,便从书架上抽出一本比较枯燥的书(《计算机算法导论》)在睡前翻翻,我想这样可以很快睡着。\n谁知竟越看越有精神,于是打开收音机,想找个唠叨的主持人催眠一下。\n交通台正在放春晓主持的一档音乐节目,这个主持人声音比较有特点(就是那句:“身未动~~心已远~~让我们一起走吧~~~”)\n正所谓:男有伍洲彤女有春晓,这俩人的节目用来边听边睡刚好。\n忽听得一阵优美的吉他,竟是另一版本的《赤道和北极》,此歌旋律优美,再加上女歌手声线极美,不由得让人思绪万千。\n此处省略1千字以后晚上再也不敢听这个音乐节目了,除非不想睡觉。\n","date":"2008-06-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/","title":"算法导论+《赤道和北极》=失眠"},{"content":"改了一天的软件bug,发发牢骚:\n在软件开发过程中,开发人员最担心的不是客户提出的功能需求从技术上难以实现,而是客户往往毙掉你费尽心血开发的功能,然后天马行空地提出另一套思路,如果你抱着客户就是上帝的想法,满足了他们的变态要求,那么,苦日子接着就来了,因为这些变态的家伙会在软件的功能需求上反反复复、朝三暮四并乐此不疲。\n比如你的程序完成了某一项任务后没有提示,他会说“为什么干完了不提示我一下?”\n而如果你跳出来提示他又会觉得很烦“干完了为什么还要烦我一下?”,\n最后只好弄成可配置,但人家又嫌配置起来太罗嗦,不人性化。\n不多说了,想起来一个经典的笑话说兔子跟街上走着,迎面碰上了老狼。\n老狼伸手就给他一大嘴巴,“让你丫不戴帽子”。 兔子很郁闷地回家了,弄一帽子戴着。 第二天又碰上老狼了,又挨了一大嘴巴,“让你丫戴帽子”。 如是几次,总挨打。\n兔子想,这么老挨打不是个事儿啊,不行,我得找老虎投诉去。 刚到老虎家门口,就听老虎在屋里说话。 你也不能老这么蛮不讲理打兔子阿,回头兔子找我投诉来,我也不好罩着你啊。\n好歹咱面子上得过得去,我教你一招。 下回你见着兔子,跟他说:给我弄点儿洗衣服的来。他给你拿肥皂来,你就打他一顿的,说我要的是洗衣粉,谁让你拿肥皂。他拿来洗衣粉,你也能打,说我要肥皂,谁让你拿洗衣粉。 要不然你跟他说,去,给我找个女人来。他给你找个胖的,你打他一顿说我要瘦的;给你找个瘦的,你也打一顿,说我要胖的。 这样不结了,你也能打他,我面子上也能说得过去。” 兔子一听,得,咱也别投诉了,回家吧。 第二天,兔子在街上又撞上老狼。老狼大喝一声:去,给我找点儿洗衣服的来。 兔子不慌不忙:你是要洗衣粉阿,还是要肥皂啊? 老狼一听,嗯?有一手阿。又说:去,给我找个女人来。 兔子还是不慌不忙:你是要胖的啊,还是瘦的? 老狼一听勃然大怒,伸手就给兔子一个大嘴巴, 让你丫不戴帽子!\n","date":"2008-06-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/","title":"软件需求与“让你丫不戴帽子”"},{"content":"今天继续发扬每到周末就睡不着觉的光荣传统,比平时上班起的还早。\n洗了个澡,饶有兴致地做了顿早餐(花了一个小时,吃了5分钟)。\n还没来得及把电视频道翻看一遍,大宝就喊我去打篮球,二话不说,换好球鞋飞奔球场。\n抓起篮球才发现,已经很生疏了,找不到一点儿手感。\n来回跑二十分钟就开始喘气了,还好,4对4的接波比赛中总算懵进了几个球。\n渐渐找到感觉,跑动越发积极,身法也越来越快。队友一个快速传球,我以迅雷不及掩耳盗铃之势抓住球,猛跑两步,转身!跳起!腿抽筋儿了!\n看来我是得注意一下平时的锻炼了。\n","date":"2008-06-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/","title":"有阵子没打篮球了"},{"content":"一个人太无聊,一天没说话,吃饭睡觉打豆豆,傍晚时分,想出去活动活动,溜达到客厅,看见角落里那把吉他,突然想活动活动手指。\n我拿起琴,吹了吹上面的灰,呛得我咳嗽了半天,调了调弦,闭上眼睛,富有激情地弹了一曲“两只老虎”,希望没有吵到邻居,虽然听到楼上孩子的哭声,但是我觉得那是该喂奶了,小孩子还小,还不能体会音乐的灵魂,怎么可能感动的哭呢?\n其实我十年前就开始学琴了,不过绝对不是为了泡妞而学,而是怀着对音乐的满腔热情而学,虽然也曾幻想抱着吉他站在某个女孩的门前,大声唱着“冷雨夜我不想归家,盼望你会知,可知道我滴心\u0026hellip;.”,\n无奈我手指上的茧子退了一层又一层仍是达不到理想的水平,只能一个人的时候弹两曲消遣一下而已。\n大学的时候,每当我在寝室练琴就有隔壁同学跑过来说:“你们谁在这把床推来推去的?弄得地板咯吱咯吱的?”,\n有一次,管理宿舍的大爷一路咆哮着就上来了:“说过多少遍了!寝室里面不能做饭!”,\n“没有啊,大爷”“还说没有!我在楼下都听到炒菜的声音了!”\u0026hellip;\u0026hellip;\n他们就这样把我成为一个吉他手的梦想给残忍地扼杀了。\n后来我迷恋上了编程(也能活动手指),吉他就被我丢到了角落,偶尔还会拿起来拨两下就像今天这样。\n当然了,这个梦并未完全破灭,我仍然幻想着某天弹吉他能像现在敲电脑键盘这么熟,刚工作那会儿我给自己定了计划,觉得无论如何也得在三十岁之前把吉他练成,现在,眼看着快三十了,吉他上的灰却越来越厚。\n","date":"2008-06-09T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/","title":"我的吉他梦"},{"content":"今天用VC6做了一个com组件,使用ATL模板创建,结果在使用regsvr32.exe注册时死活注册不上,返回0x80040154,使用ErrorLookup查看错误号结果是“没有注册类别”,百思不得其解,即使以前可以注册的组件现在也无法注册了,怀疑是操作系统的问题。\n上网搜索了半天,最终还是在微软的官方网站上找到了一点儿蛛丝马迹:\n“WhenyouregisteranATLserver,youmightgeterror0x80040154(Classnotregistered).ForDLLs,REGSVR32.exereturnsthiserror.ForEXEs,thecallto_Module::\nRegisterServer(CComModule::RegisterServer)in_tWinMain()returnsthiserror.”,\n接着往下看“InstallATL70.dll(orATL.dllforearlierversionsofVisualStudio)intheWindows\\SystemorWinnt\\System32directory.YoudonothavetoregisterATL70.dll,however,youmustregisterATL.dllbyusingRegsvr32.exe.ThereareUNICODEandANSIversionsofATL70.dllandATL.dll.Installtheappropriateversiononthetargetoperatingsystem(thatis,UNICODEforMicrosoftWindowsNT,andANSIforMicrosoftWindows95orMicrosoftWindows98).”\n哦,原来是system32下面的atl.dll没有注册,打开C:\\windows\\system32\\找到atl.dll后使用regsvr32注册,然后再注册我的组件,成功!\n结论:怀疑在安装、卸载软件或使用优化软件进行系统清理的时候不小心反注册了atl.dll,导致使用atl模板创建的com组件均无法注册。\nps:两年前就遇到过此问题,当时无法搞定,只得重装系统,今天总算找到问题的原因了\n","date":"2008-05-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/","title":"注册atl组件返回错误0x80040154的原因及解决办法"},{"content":"今天继续记录eeepc的使用经验,闲言碎语不要讲,说一说如何安装c、c++开发环境以及在vim下进行编程。\n安装开发环境很简单,不用单个安装gcc、make什么的,只需sudoapt-getinstallbuild-essential,这里面就什么都包含了(gcc、g++、gdb、make等)。\n然后就找个合适的编辑器吧,系统自带vim,vim太强大了,这里不能多说(我也是刚开始用它),但是只有最基本的编辑功能,要想比较方便地进行开发需要安装如下vim插件:ctags、Taglist、supertab、c.vimctags其实不算是插件,算是单独的程序,用来生成vim能识别的标签文件,这样在vim写代码时就可以进行函数、变量、枚举类型之间快速定位了。\ntaglist可以在vim窗口的左侧生成一个tags列表,里面就是用ctags生成那些标签,方便随时定位到这些标签supertab是个增强版的代码补齐插件,写代码时按tab键可以弹出自动补齐列表供选择,如“p”可以自动补齐为“printf”c.vim是进行c、c++编程时的必备插件,能使vim变成一个为开发c语言定制的一个ide,拥有自动注释、F9编译,自动补全等强大功能。\n插件装好后,在vim的vimrc文件里需要加上syntaxon这样每次启动vim时,它的语法高亮功能就自动打开了。\n写一段代码试试看vimhelloworld.c#include\u0026lt;stdio.h\u0026amp;gt;intmain(){printf(\u0026quot;helloworld\u0026quot;);return0;}:wq退出编译:gcchelloworld.c-ohelloworld\n运行:./helloworld\n","date":"2008-05-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/","title":"eeepc 使用技巧(3)vim搭建c开发环境"},{"content":"AreYouTheOne,这是一首好听得不得了的歌曲,来自荷兰WithinTemptation乐队,主唱Sharon绝对是超级女声,有着高亢的声线、鬼魅一般的嗓音。\n从听第一遍就喜欢上这首歌儿了,让我停不下来,反复播放,直至流鼻血。曲中3分13秒开始的那一段电吉他solo实在是荡气回肠。\nAreyoutheone?你是他么?Thetravellerintimewhohascome.进入我生命的陌生人Tohealmywoundstoleadmetothesun.治愈心伤,播撒阳光Towalkthispathwithmeuntiltheendoftime.结伴走在生命的小路上Areyoutheone?你是他吗Whosparklesinthenightlikefireflies.萤火虫般流彩的目光Eternityofeveningsky.对视,在永恒的夜空Facingthemorningeyetoeye.直至晨曦来到Areyoutheone?你是他吗Who'dsharethislifewithme.与我共度此生Who'ddiveintotheseawithme.与我在深海偎依Areyoutheone?你是他吗Who'shadenoughofpain.受尽创伤Anddoesn'twishtofeeltheshame,anymore.不愿再心伤Areyoutheone?你会是他吗Areyoutheone?你是他吗Who'sloveislikeaflowerthatneedsrain.他的爱是雨中的花朵Towashawaythefeelingofpain.冲去了忧伤Whichsometimescanleadtothechainoffear.不再迷茫彷徨Areyoutheone?你是他吗Towalkwithmeingardenofstars.一起走在群星之下Theuniverse,thegalaxiesandMars.火星,银河,宇宙Thesupernovaofourloveistrue.见证我们爱的迸发\nps:流鼻血可能与这首歌曲无关,这两天比较上火,昨天下班时,看到路边有课桑树,上面结满了熟透了的桑椹,于是我童心顿起,顺手摘了几颗放在嘴里,还挺甜的。\n小时候挺爱吃桑椹,到了季节就大把大把的吃,大人总是吵着不让多吃,说吃多了会流鼻血,没想到我昨天刚吃了几颗,今天就流鼻血了。\n再ps:从今天开始,北京算是进入真正的夏天了,突然就热了起来,非常热,办公室里热的像蒸笼,空调也不管用,当然,天气这么热也有Intel的功劳,整个电脑机箱热的像是路边烧烤用的碳火炉,再烤下去,晚饭就能吃“烤人腿”了。\n","date":"2008-05-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/","title":"《Are You The One》以及流鼻血"},{"content":"接着昨天的继续,系统修改为中文了,软件源设好了,输入法也装好了,接下来就想看看小e(姑且把我的eeepc叫做小e)的多媒体性能咋样儿了(其实就是看看能不能看片儿)。\n小e自带有mplayer以及前端的SMPlayer,播放一般视频(mpeg、wmv)效果挺不错,遗憾的是还不能播放rmvb,上网查了一下原来是缺少相应的解码包,\n于是乎,就找到了这个win32codecs下载后将这个压缩包解压后的内容放到/usr/lib/codecs下即可,系统默认并没有codecs这个文件夹,需要手动创建sudomkdir/usr/lib/codecs,然后复制cp/home/user/win32codecs/*/usr/lib/coecs。\n好了,在命令行输入mplayer/home/user/*.rmvb-f-z很流畅的画面就出现了,此时的-f和-z参数分别代表全屏和自动缩放画面到窗口大小。然后我又尝试播放了一下720p的高清视频(wmv格式),小e也能轻松胜任,画面很清晰,也很流畅,看来mplayer这个软件写的很棒,虽然是命令行格式的,但是我喜欢。\n","date":"2008-05-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/","title":"eeepc 使用技巧(2)"},{"content":"买了eeepc900一段时间了,翻遍很多论坛,也慢慢摸索一些基本使用技巧,不敢独享,一直想写出来,只是最近工作很忙,加上地震带来的全国性灾难,导致最近几天也没心思去写。\n现在,让我整理一下思路,慢慢把经验写下来,也防止我以后会忘记。\neeepc可以安装xp操作系统,但是我喜欢linux,买了eeepc有一半是为了使用linux,所以我不会把他自带的系统干掉然后安装xp系统,windows操作系统我实在是用腻了。\n因为只有装了linux系统的机器才能让我感到完全是“自己的”。\neeepc900自带有定制的linux操作系统,而且是基于debian的发行版,哇,有了debian一切都好办了。\ndebian有强大的apt-get软件包管理系统,但是eeepc的说明书上吓唬我说“用户不能自行安装其他软件”,咳,管他呢,我查了一下,原来是在apt的source.list里没有相应的源而已,而且eeepc里也自带了“新立得软件管理器”只是没放出来而已。\n好了,先从“控制台”开始,刚拿到手的时候,我费了老半天的劲儿才找到控制台窗口打开的办法,看来asus实在太担心用户的智商了。答案是按“Ctrl+Alt+T“就能调出控制台,要知道在Lxiux下有了”控制台“才算有了系统的操纵权啊!\n由于默认是英文版的,让我先把系统从英文调整到中文吧在控制台输入/opt/xandros/bin/locale_dialog然后在弹出的对话框中选择简体中文,重启机器,就变成中文系统了。\n随机带的软件太少了,而且大部分还是给小孩子用的,根本不够我用,本地化之后就我就开始想办法安装软件控制台输入vim/etc/apt/sources.list发现该文件就两行\n1 debhttp\u0026amp;#58;//update.eeepc.asus.com/p900p900maindebhttp\u0026amp;#58;//update.eeepc.asus.com/p900/enp900main增加如下内容:debhttp\u0026amp;#58;//debian.cn99.com/debianstablemaincontribnon-free 然后:wq存盘退出sudoapt-getupdate这样就有了debian的基本源,现在开始使用apt-getinstall疯狂安装想要的软件吧!\n由于我这个版本默认的输入法管理器是gcin的,虽然也有拼音输入,但是不符合大陆人的输入习惯,所以我首先要安装scim,在控制台输入sudoapt-getinstallscimscim-chinese,要想使用scim还需要一个软件sudoapt-getinstallim-swich,然后把gcin卸载sudoapt-getinstallgcin-好了,切换到scim吧,输入sudoim-switch-sscim然后重启机器,输入法管理器就变成scim啦!\n唉,eeepc的键盘实在是太小了,在上面打字实在是太累,先写这么多,估计也就有十分之一吧,剩下的以后再慢慢写。\n","date":"2008-05-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/","title":"eeepc 使用技巧(1)"},{"content":"使用firefox在eeepc900上发布测试用无内容\n","date":"2008-05-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/","title":"测试从scribefire发布blog"},{"content":"从小学到初中的作文课,几乎每个语文老师都布置过“我的妈妈”这篇作文,\n很多同学文笔细腻,感情丰富,写出的作文真实流畅,总被老师挑选出来作为范文朗诵,让我很是羡慕,\n不过,我作文水平极差,在课堂上拼命咬着铅笔头,恨不得把橡皮也吞下去,还是凑不够字数。\n很想回忆一下当时写的别字连篇的作文,不过一晃过去那么多年,现在一个字儿也想不起来了。\n母亲节了,我再写一篇试试。\n我的妈妈我妈今年五十岁了,虽然她看起来还不到五十岁,而且在我心目中也就是四十来岁的样子,我总是笑着跟她说:“妈,您是越活越年轻啊!”每当这个时候她总是高兴得合不拢嘴,心里美滋滋的。\n是的,没错!我说的是实话,我妈是挺年轻的。\n我妈是一名出色的乡村教师,我小的时候,爸爸在邻村的中学教书(巧了,我爸也是老师)平时不在家里住,我妈就在我们村的小学,条件极为艰苦,当时为了带我,她吃了不少苦头,一方面是她平时工作任务很重,乡村学校缺老师,她一个人要教好几门功课,跨越几个年级,另一方面是我体弱多病,当时家里又不富裕,照看我这样儿的孩子要比别的孩子多费几倍的心血。\n但是她很要强,工作很优秀,同时在她的精心培养下我也茁壮成长,到了今天,我可以很负责任的说,她很成功。说到对我培养,我刚才说的好像有点儿不太谦虚,呵呵,我所指的成功就是,她把我培养成了一个善良的人,并且给了我一个快乐的童年。\n想到小时候,其实我妈的脾气还是有点儿火爆的,我要是做错了事儿,挨揍也肯定是跑不掉的。但那都是因为我不懂事,打我那是怕我将来成为一个无用人,而且,所谓“打在儿身,疼在娘心”啊,我挨完揍,她也偷偷抹眼泪。\n虽然先说了我妈会打我,但那毕竟是少数,大部分时候妈妈是和蔼可亲的,而且对我也百般呵护、百依百顺,要什么就给什么,想吃什么就做什么,现在回想起来,她对我简直是太溺爱了。\n妈妈心灵手巧,我小时候没什么高级玩具,别人折的纸船、纸飞机、风车什么的,她拿到手后,拆开一看,马上就会折了,而且马上把我教会(看来,我也很聪明)。\n小孩子都爱拆东西,别家的孩子拆了可能会挨揍,但是我妈见我拆东西不但不打我,而且还带我一起拆玩具,有次我把我仅有的很贵的“坦克”玩具给拆坏了,我妈费了好大的劲儿才把它修好。\n后来我上学了,还是保留了这个爱好,拆拆装装的东西弄了一整箱,从收音机到电子表应有尽有,我觉得那些才是最好的玩具。我妈的心灵手巧并非表现在这个方面,她的缝纫技术也是出类拔萃,邻里之间有人要做衣服肯定让她帮着剪衣样,有次她给我做了个棉袄,样式比商场里面卖的还新潮,惹得很多孩子也吵着要这样儿的。\n织毛衣也不在话下,不但图案精美,而且速度飞快,有次,天气突然转冷,妈妈怕我妹妹冻着,一夜之间就给我妹妹织了一顶帽子。\n现在,妈妈还是能跟上时代的潮流,我给老家装上了电脑,她也很快学会了打字,想我了就上QQ和我聊两句,周末我们还会视频一下,聊聊一周的家长里短。\n随着妈妈年龄的增长,她对我们也越来越依赖了,有时候陪着她聊天,我随便说个笑话就把妈妈逗得前仰后合,笑得眼泪都快下来了。她每天都上网上看看,虽然并不是每次都和我聊天(怕我工作忙),但是她说,看到我的QQ也在线,心理就很踏实了。\n今天是母亲节,一个感恩的节日,身在遥远的北京,我坐在电脑前,写一点儿文字,衷心祝愿我的妈妈以及天下所有的妈妈都幸福安康。\n1 2 3 4 5 6 慈母手中线 游子身上衣 临行密密缝 意恐迟迟归 谁言寸草心 报得三春晖 ","date":"2008-05-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/","title":"我的妈妈"},{"content":"周末和几个哥们儿喝酒,喝完了哥们儿提议去K歌,很久没K了,我在包厢里抱着话筒死活不肯松手,再一次展现了\u0026quot;麦霸\u0026quot;的风范。\n借着酒劲儿我愣是把一首首温柔的情歌咆哮出了\u0026quot;摇滚\u0026quot;加\u0026quot;死亡金属\u0026quot;的味道,那声音,比杀猪好听多了。\n没办法,情歌就是得用真实的声音来诠释,而和朋友一起喝完小酒后的情感往往是奔放的、原始的、撕心裂肺的。\n管你是青藏高原还是回到拉萨;是左等右等(RightHereWating)还是加州招待所(CaliforniaHotel);\n是国粹京剧还是家乡地方戏,一律来者不拒,而且必须是原调!\n那一刻我觉得,就是帕瓦罗蒂过来飙高音咱都不惧他!\n唱完歌,觉得通体舒畅,酒也解了,一切的压力都烟消云散,腰也不酸了,背也不疼了,一口气儿也能上5楼了。\n突然想起一句名言,在这儿给他改一改,就叫\u0026quot;有了压力你就喊!\u0026quot;\n\u0026ndash;由sbabybird于4/24/200809:00:00下午在从容地狂奔上发表\n","date":"2008-04-25T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/20080424_hu33075bee32bd631689c147c046db48ae_41980_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/","title":"有了压力你就喊"},{"content":"昨晚,编程时有一问题困惑很久,反复调试总是失败,无奈,只得放弃,怀着郁闷的心情睡去。\n睡梦中恍恍惚惚仿佛有人叫我,原来是一白胡子老头,声音洪亮(略有东北口音),精神矍铄,约我相谈技术话题。\n只见该老头唾沫横飞,指指点点,谈笑间从身后掏出一笔记本电脑,当场就把VC6启动起来。我定睛一看,我靠!这不就是我白天写了一下午的那些代码么?\n老头边解说边将我的代码略为修改,我顿时感到豁然开朗,遂给我演示了一下运行效果,果然很流畅,问题得以解决。\n惊喜使我从梦中醒来,回忆刚才的场景,起床倒了一杯水,拿起纸笔,十分虔诚地把刚才的思路记了下来,我甚至能记住当时的函数和变量的名称。\n一大早到了公司,启动环境,将代码输入电脑,居然能编译通过!怀着激动的心情运行之,程序吭都没吭一声就崩溃了,看着巨大的“内存错误窗口”,我不禁哑然失笑,梦里的东西怎能当真呢,还以为有仙人助我,原来是我神经衰弱。\n","date":"2008-03-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/","title":"梦,神经衰弱"},{"content":"四年前,那时公司还是使用adsl+“代理服务器”上网,有一天早晨我来到公司,发现代理服务器的桌面有一个word文档,打开一看,里面写着“嘿,哥们儿,你的机器被我黑了,我发现你是使用adsl上网的,而且发现不少漏洞,我顺手给你打了补丁,希望你能重视上网的安全性\u0026hellip;\u0026hellip;”\n当时令我大吃一惊,因为一方面我们确实不太重视网络安全的问题,另一方面那家伙也太猖狂了吧。\n后来我遇到一“高人”,将此事说与他听,他遂露出鄙夷态度:“最讨厌这些傻B“黑客”,一点儿技术含量都没有”,而后掏出几款软件,“扫描器”、“嗅探器”什么的,现场给我演示了一把。\n靠!原来会使用这些黑客软件就是黑客啊!\n我在公司内部的服务器上建了个小论坛,使用阿帕奇+php+bbpress实现,用于记录兄弟们平时积累的编程经验,由于管理员疏忽,开了远程服务,密码又过于简单,前两天不慎又遭“毒手”,这次那厮没有手下留情,把论坛数据库给我删了,唉,真他妈防不胜防啊!害得我还得花时间恢复。\n我说这些自以为是的傻B黑客,能不能用用脑子,有能耐你把我msn空间的广告给我去了,不好好待着干嘛总出来犯贱呢,你妈逼你的是吗?\n","date":"2008-03-26T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/","title":"最讨厌你们这些“黑客”,一点儿技术含量都没有"},{"content":"周末,晚饭毕,心绪烦乱。关窗,关灯,音箱的音量调大,陷入黑暗之中,只有机箱闪烁着微弱的蓝光。\n如果音乐是海洋,就让我随着醉人的旋律坠入海底,让音乐洗去我的浮躁和忧伤。\n如果音乐是双手,就让跳动的音符轻轻拨动我的心弦,跳入我浑浊的内心,然后在上面荡起点点涟漪\u0026hellip;\u0026hellip;\n哈哈,关了灯听音乐能让我这样语无伦次,也算是神奇了,所以有句话叫:“爱生活,爱拉灯!”\n","date":"2008-03-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/","title":"听音乐,要关灯"},{"content":"每天早晨都穿过这个公园,随手拍了,那个小房子是公园的管理人员为一只野生的鸟儿(大概是野鸭子之类的吧)搭建的,该鸟去年来此地盘再也不走了 ","date":"2008-03-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/","title":"公园里的“鸟巢”"},{"content":"春节回老家,我把老家的电脑升级了一把,并安装了宽带。\n这样我在北京就可以随时和父母视频通话了,老妈的打字水平也飞速提升,没事儿就上线和我聊两句。\n为了安全起见,我临走时反复叮嘱,不要再安装其它软件(担心流氓软件)。\n但是在选择杀毒软件时我有点儿为难了,nod32挺好用,可是咱没买正版,用破解的怕他们用不好,刚好那时卡巴斯基推出了一年免费试用的活动(其实我都两年不使用卡巴斯基了),就贪便宜用了,而且开启了实时监控和每天的病毒库更新。\n看来便宜果然没好货,好日子没过多久,老妈就打电话告诉我机器奇慢无比,我当时还颇为自信的告诉她启动杀毒软件的查杀毒程序进行病毒查杀即可,怎奈何断断续续查了一夜(没办法卡巴就是这么卡)病毒之后,倒是找到木马病毒若干,但就是无法清除,一开机cpu就资源占用100%,我又没法亲手操作,看来这个系统是没救了。\n还好当时留了一手必杀技,那就是“一键ghost恢复”!\n实在不行就“恢复”吧。\n不知道是网络环境太差还是咱们的安全意识不够,反正对于一个非计算机专业的人员来说,现在上网实在是处处有陷阱、时时有风险,杀毒防毒软件形同虚设,真是让人担忧啊\n","date":"2008-03-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/","title":"老家的电脑中毒了"},{"content":"不经意间,她已经来到了,她带来了吹面不寒的杨柳风儿,带来了满树的桃花(树在哪儿呢?),不过她带给我的第一个礼物却是鼻炎,听说过两天还会给我带点儿沙尘暴啥的,是的,她就是春天。\n连日来,和煦的春风吹得我昏昏欲睡,口干舌燥。一闻到春风的气息,我得鼻子就发干发痒,看来我的鼻炎是按时发作了。\n戒烟、戒酒、戒辣椒,多喝开水、多吃水果、多吃蔬菜,这些残酷的要求我虽然严格遵守,但鼻子仍是一天天痛苦下去,而且一旦休息不好还有流鼻血的危险,万一哪天在街上碰到一个丑女,然后鼻子再不争气的流血了,那就糗大了!\n\u0026ndash;由sbabybird于3/05/200805:22:00下午在从容地狂奔上发表\n","date":"2008-03-05T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/20080305_hu3385ad53ea23c572ac4ac34e2fe10d80_38299_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/","title":"春天来了,小树发芽了,鼻子发炎了"},{"content":"EveryNightInBeijing我办了暂住证为了迎接今年的奥运会,北京最近开展了“依法登记办证,共创平安奥运”专项活动,所有来京的暂住一个月以上、16岁以上的人员,都要依法主动到暂住地派出所办理暂住证,否则\u0026hellip;.\n作为一个外地来北京需要“暂住”超过一个月而且16岁以上的民工,我当然得积极相应,虽然今天是周末我还是起了个大早(其实周末早起是我的坏毛病之一),带齐了证件前往派出所去排队,没办法,现在办这个的人太多,办个暂住证比买春运的火车票还难,听说有人带着干粮半夜就前去排队了。\n到了地方一看,嚯!果然是“peoplemountainpeoplesea”,我拿出春运买票劲头,费了两个小时的吹灰之力,终于挤到柜台前(以前没去过派出所,姑且就叫柜台吧),刚要用颤抖的双手递上证件,只听得“啪\u0026hellip;啪\u0026hellip;”两声,来自工作人员拍打的键盘,伴随着一句地道的好莱坞英语:“oh!shit!”\n然后曰:“网断了!”我真是百感交集,有一种想扁人的冲动,但是看他们手忙脚乱地样子又想到这儿是派出所,也就没忍心发作。\n时间一分一秒地过去,办证的队伍快排到门外,终于其中一位工作人员大喊一声:“我找到了!”\n这一嗓子喊的不亚于老阿(阿基米德)想当年那架势。\n原来是哪位仁兄不小心踢掉了交换机的电源,网线都断了,插上之。\n终于办完了,赶紧揣进怀里,生怕过来几个人把它给撕了,然后把我送去锻炼身体。\n“EveryNightInBeijing我要去办暂住证不敢在午夜问路,怕走到了采石场EveryNightInBeijing你可别喝太多酒把酒高歌的男儿,也得去办暂住证\u0026hellip;\u0026hellip;”本故事纯属虚构,如有雷同,那实在是巧合\n","date":"2008-03-01T00:00:00Z","permalink":"https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/","title":"Every Night In Beijing 我办了暂住证"},{"content":"前两天与老同学用msn聊天,虽然都工作了几年,但是均感叹现在遭受的压力巨大,无论是来自工作的还是来自家人的。\n聊到后来,都有找个地方躲起来的想法,躲到一个没有人认识的地方,或深山老林,或几角旮旯。\n像鸵鸟那样,找个沙堆把头埋进去如何?\n\u0026ndash;由sbabybird于2/27/200805:37:00下午在从容地狂奔上发表\n","date":"2008-02-27T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/20080227_hu05748ac1e297775450b0a2b9a1c5033e_33278_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/","title":"找个地方藏起来"},{"content":"大年三十,老爸安排我贴春联,贴之前先要把房门给清理一下,本着认真负责的态度,我拿着抹布撅着屁股擦了半天。\n但是有两个小广告不知道用的什么胶水粘的,贴在上面太顽强了,抹布对其不起作用。\n这个难不倒我,从厨房拿来清洁球,发扬\u0026quot;只要功夫深,铁杵磨成针\u0026quot;的精神,终于把这两个小广告拿下,看着擦的光亮如新的防盗门,我揉了揉发酸的腰,露出了满意的笑容。\n狂奔到屋里去邀功,谁知我妈刚看了一眼就说:\u0026quot;哎呀!那两个小广告哪儿去啦?那上面有送水的电话号码,我平时就照着那个打呢!\n\u0026quot;我:\u0026quot;@#¥%@#%……@#%……\u0026quot;吐了一口鲜血接着说:\u0026quot;没事儿!对门儿房门上贴的还有!\u0026quot;\n\u0026ndash;由sbabybird于2/16/200811:03:00上午在从容地狂奔上发表\n","date":"2008-02-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/","title":"小广告"},{"content":"回家的日子过得飞快,感觉就像做了一场梦,醒来后发现我还是坐在电脑旁,噢,又开工了。\n\u0026ndash;由sbabybird于2/13/200809:50:00上午在从容地狂奔上发表\n","date":"2008-02-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/","title":"回京了,开工了"},{"content":"\u0026ndash;由sbabybird于2/01/200802:12:00下午在从容地狂奔上发表\n","date":"2008-02-01T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/20080201_hufbf21a2fb931d9bad3394195c7c4cdc6_49969_120x120_fill_q75_box_smart1.JPG","permalink":"https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/","title":"夕阳无限好,只是看不清"},{"content":"未经过修饰\n\u0026ndash;由sbabybird于1/31/200808:19:00上午在从容地狂奔上发表\n","date":"2008-01-31T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/20080131_hud3c8d51d54dc0e81db78d7eeeef1214e_574521_120x120_fill_q75_box_smart1.JPG","permalink":"https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/","title":"早晨的路灯(随手拍)"},{"content":"每年的春运,我都要受到生理和心理的双重摧残,无休止的排队买票,心惊胆寒地挤上车,反复地转车,汽车、火车、汽车\u0026hellip;,从坐在公司的椅子上到躺在老家的沙发上,就像经历一场洗礼。\n感谢上天的保佑,我终于买到今年的车票(这期间的经历和见闻不堪回首,要是说出来肯定是要被\u0026quot;和谐\u0026quot;的),捏着这张沾满了汗水的车票,站在西站挤满了人(失望的和绝望的)的售票大厅,我知道,虽然万里的长征刚迈出了第一步,但我的心\u0026quot;秋\u0026quot;的一下子就飞到老家了!\n\u0026ndash;由sbabybird于1/29/200803:43:00下午在从容地狂奔上发表\n","date":"2008-01-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/","title":"车票买好了,现在只想一步跨回家去!"},{"content":"忍不住要推广一个WEB2.o站点:在Diglog上发现了这个在线音乐站点,非常棒的音乐体验!\n进去之后首先进行一个小小的心理测试,这样网站就知道了我的音乐口味(基本上挺准确的),然后自动的挑了一些曲子放给我听,连接速度非常快,丝毫没有停顿的感觉,就像是在听本地文件。\n听了一会儿我才发现这个网站是个巨大的曲库,分类很清晰,可以随时输入歌手名或者歌曲名搜索歌曲,老歌新歌都有,曲目丰富的令人发指。\n听完点播的歌曲之后系统会自动挑一些与此歌类似的曲子播放,有时候关联的挺准,但有时就太跳跃了,从一个古典的古筝曲子一下跳到了一首流行歌曲上来了。\n总之,这是个不错的站点,让我再感叹一声:\u0026quot;Web2.0就是好啊!\u0026quot;PS:不知道这么多中外曲目的版权问题是怎么搞定的。\n再PS:希望她能像last.fm那样推出客户端软件,这样就不用总开着网页听歌了。\n再再PS:希望YOBO的中文名字改一改,叫这个有点儿俗气。\n\u0026ndash;由sbabybird于1/14/200804:04:00下午在从容地狂奔上发表\n","date":"2008-01-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/","title":"相见恨晚-YOBO(友播-yobo.com)!"},{"content":"这两天见同事提了个巨大的收音机(比板砖还大),一问才知道,原来是怀旧,想找回曾经\u0026quot;听广播的感觉\u0026quot;,手机带的FM和电脑上的网络电台听起来太没感觉了,于是跑到商场挑了个最大号的扛了回来。\n这不禁勾起了我的回忆。\n接下来让我把镜头推回到六年前,那时我在郑州上大学,除了上课(如果有课的话)就是整天抱着电脑啃C语言,当时既没上网也没电视可看,接受信息的渠道只有一台收音机(夸张了?)。\n节目很丰富,给我印象最深的就是郑州交通广播电台夜在里十二点准时播出的《大丈夫日记》(什么?你以为是《深夜悄悄话》?你想哪儿去啦?),电台主持人每天都以特有的腔调(学不来)朗读一个幽默段子,类似于现在网上的恶搞段子,但是格调要高一些,文章不长,但是很有趣,调侃人生,嬉笑怒骂,文字本身就写的很风趣,主持人再用那富有磁性的声音给读出来,听着真是一种享受。\n最后再播放一首歌曲,而且在播放这首歌儿之前一定以一种蛮横的语调说一句:\u0026quot;给男人听的歌,你可以不会唱,但..你..必须听!\u0026quot;我第一次听到老谭(不好意思老谭,你永远都是25岁)的《难舍难分》就是在这个节目里,当时真是觉得太好听了:\u0026quot;忘不了你眼中那闪烁的泪光,好像知道我说谎,我茫然走错了地方,却已不敢回头望\u0026hellip;\u0026hellip;\u0026quot;。\n可以说,这个节目是我当时最好的精神食粮了(不知道现在还存在吗),有一阵子我几乎天天等到十二点,我想所谓\u0026quot;听广播的感觉\u0026quot;大概就是这样吧。\n好了,回到现在,现在的广播已经很难找到一个精品节目了,不是太矫情就是插广告,而且广告还他妈全是医院、医药的广告!所以,时代的潮流是不可逆转的,广播电台再做垂死挣扎也无济于事,被网络取代已是必然的事情,所以你怀里就算抱个巨大的收音机也不会再找到\u0026quot;听广播的感觉\u0026quot;了!\n\u0026ndash;由sbabybird于1/03/200805:40:00下午在从容地狂奔上发表\n","date":"2008-01-03T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/20080103_hufbccef9df9bd583e5bafd4b11be039d1_37596_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/","title":"听广播的感觉"},{"content":"明天就是2008年了,我的老毛病还是没改,每到假期或周末就兴奋的睡不着觉,今天刚到早上六点就爬了起来。想起还有一篇年终总结去要写,于是打开电脑,整理思路,先回忆一下今年我都干了什么,再展望一下明年我要干啥,不知不觉地,一篇年终总结就新鲜出炉了!由于我的生活就是工作,工作就是生活,所以呢,这篇总结其实就是个工作总结!不多说了,新年快乐!\u0026ndash;由sbabybird于12/31/200707:54:00上午在从容地狂奔上发表\n","date":"2007-12-31T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/","title":"写完了年终总结!"},{"content":" 再过两天就要迎来激动人心的2008年了,时光如水,生命如歌,每一天都是崭新的,每一年都是十分有意义的。今天是2007年的最后一个工作日,此刻我想起了《甲方乙方》里的那句台词:\u0026quot;1997年过去了,我很怀念它。\u0026quot;2007年的工作依然是十分忙碌,工作占据了我生活中的大部分时间。由于长期缺乏锻炼,身体开始逐渐向亚健康状态发展。早饭经常不吃,晚饭又吃的太晚,导致消化系统不太好使,肠胃胃经常发出抱怨。最后吃了西药、中药若干,一日三餐再也不敢怠慢,肠胃才慢慢恢复正常。所以正是2007年我才认识到了健康的重要性,也更深刻地认识到了幸福的真谛!总之2007年对我来说是成长的一年、成熟的一年、有美好收获的一年(我很佩服我自己能认识到这些)。希望在2008年,我和我的家人都健康幸福!\u0026ndash;由sbabybird于12/29/200704:41:00下午在从容地狂奔上发表\n","date":"2007-12-29T00:00:00Z","image":"https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/20071229_hu5b88f4e9883ab7aea6caba8837d1fb69_65153_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/","title":"2007就要过去了"},{"content":"这两天吃的有点儿上火,口腔溃疡了。\u0026ndash;由sbabybird于12/26/200712:41:00下午在从容地狂奔上发表\n","date":"2007-12-26T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/20071226_hu6057eb0d373350ebda9cca1ca99c9e66_35225_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/","title":"口腔溃疡了"},{"content":"圣诞节?平安夜?我继续狂奔ing\u0026hellip;\u0026hellip;\u0026ndash;由sbabybird于12/24/200705:30:00下午在从容地狂奔上发表\n","date":"2007-12-24T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/20071224_hudf399a35ca65c54332d928237b106eb2_40328_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/","title":"圣你的圣,诞你的诞"},{"content":"今天是二十四节气里的冬至,阴天,据说要下雪。按照风俗习惯,我中午饱餐了一顿饺子。为什么冬至这天要吃顿饺子?我还真是不知道,上网查了一查,答案原来是这样:古时候有个老中医(不是华佗啊),叫张仲景,老家是南阳稂东人,有一阵子在长沙当大官,后来不知怎地就干不下去了,于是回老家,时值冬季,在路上看到白河两岸乡亲面黄肌瘦,饥寒交迫,不少人的耳朵都冻烂了。便让其弟子在南阳东关搭起医棚,支起大锅,在冬至那天舍\u0026quot;祛寒娇耳汤\u0026quot;医治冻疮。他把羊肉、辣椒和一些驱寒药材放在锅里熬煮,然后将羊肉、药物捞出来切碎,用面包成耳朵样的\u0026quot;娇耳\u0026quot;,煮熟后,分给来求药的人每人两只\u0026quot;娇耳\u0026quot;,一大碗肉汤。人们吃了\u0026quot;娇耳\u0026quot;,喝了\u0026quot;祛寒汤\u0026quot;,浑身暖和,两耳发热,冻伤的耳朵都治好了。后来人们为了给嘴馋找个理由,就有了\u0026quot;冬至那天吃饺子,再冷也不会把耳朵冻烂\u0026quot;的传说。ps:仔细想想,咱们中国的节日都与\u0026quot;吃\u0026quot;的关系十分密切,正月十五吃元宵、端午节吃粽子、中秋节吃月饼、腊八吃米饭(八宝饭)\u0026hellip;\u0026hellip;\u0026ndash;由sbabybird于12/22/200702:25:00下午在从容地狂奔上发表\n","date":"2007-12-22T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/20071222_hu2ee8cc5380aa15d28902b73f9aff1b3e_37176_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/","title":"冬至为啥吃饺子?"},{"content":"做一个实验\u0026ndash;关于把手机电池放冰箱里关于这个实验,是这样干的,我的那块旧手机电池电量用光后,先放到冰箱的冷冻室里,冻了48个小时,然后取出,使其自然升温,充电3个小时,充满。放入手机里开始使用,感觉与之前无明显区别,仍然是仅待机两天。不知是我处理的方法不对,还是这个流言本身就是假的。想想也是,要是手机电池冻一冻就能变成新的,那人家电池的生产厂家不早就饿死了?\u0026ndash;由sbabybird于12/19/200708:13:00上午在从容地狂奔上发表\n","date":"2007-12-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/","title":"电池放冰箱的实验结果"},{"content":" 有句话说的好:\u0026quot;牛人无处不在!\u0026quot;公司一哥们儿用笔记本电脑的包装箱DIY了一个电脑机箱,用起来挺爽,就是不知道散热咋样儿!还有就是好像还没有加光驱。看起来挺象那么回事儿吧?呵呵,还是联想的纸箱子。放倒了再看看接口部分,该有的都有。千万别以为是联想新出的pc啊!为了给cpu散热,所以上面也开了个口cpu和cpu风扇\u0026ndash;由sbabybird于12/19/200705:50:00下午在从容地狂奔上发表\n","date":"2007-12-19T00:00:00Z","image":"https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219_hue5dd081feed485b76cff8f3a696b3772_51552_120x120_fill_q75_box_smart1.JPG","permalink":"https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/","title":"看看牛人用纸箱自制的电脑机箱!"},{"content":" 偶然听到一个关于手机电池的传说:\u0026quot;把老化的电池用纸包好,放进冰箱里冻上两天,这个电池就会起死回生。\u0026quot;去网上搜索一下,发现很多人都在介绍这个\u0026quot;绝招\u0026quot;,也有人表示质疑,但是好像没有人亲身试验过,刚好我昨天换下来的那块电池还在,就顺手试一试这个方法,如果管用当然最好,如果不好使(这个可能性最大),那就把这条流言给终结了吧。我的那块旧电池包好放在冰箱的冷冻室里等候试验结果!\u0026ndash;由sbabybird于12/15/200709:34:00上午在从容地狂奔上发表电池放冰箱的实验结果\n","date":"2007-12-15T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/20071215_hub55171281b5984c8bfb07ba0c818d0c5_10558_120x120_fill_q75_box_smart1.JPG","permalink":"https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/","title":"做一个实验--关于把手机电池放冰箱里"},{"content":"新手机是没买,买了块电池倒是真的,我那块旧电池已经不行了,开始倚老卖老,随便打个电话就报电量低甚至关机,无奈选不到满意的新手机(请参见这里),而且手里这个旧手机其他一切正常,于是我决定先买块电池,再凑合用一段时间,起码用到咱们大陆开始上3G。\n不过也有网友比较悲观,在网上发帖子说:\u0026quot;大陆3G能用时,家祭无忘告乃翁!\u0026quot;跑到卓越网上选了块原装电池(据说是原装),今天就给我送了过来,由于电池个头太小,我怕快递公司送货的拿着太轻松,觉得没有挑战性,会不乐意,就顺便再买了两本书,其中一本就是大名鼎鼎的霍大爷的《时间简史》留着我失眠的时候看,另一本是比较浅显的《万物简史》留着我上厕所时看。\u0026ndash;由sbabybird于12/14/200701:00:00下午在从容地狂奔上发表\n","date":"2007-12-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/","title":"新买了手机......电池!"},{"content":"下班了,还在干活儿ing,瞅瞅我的任务栏:\n一边开着TOAD配置数据库,一边开着Word看着文档,在Word的隔壁是牛逼的VC在那儿咔咔编译程序,SourceSafe正努力地Checkin一堆文件(脸都憋红了),点了两下\u0026quot;开始菜单\u0026quot;却不再搭理我,想开个Firefox看两个网页都不行。\n唉!什么时候,硬盘像内存那么快,内存像硬盘那么大,就好了什么时候,内存像CPU缓存那么快,CPU缓存像内存那么大,就好了哼哼,到那时候\u0026hellip;\n估计是,Windows上来先把资源吃掉三分之一,然后TOAD和VC这些用来干活儿的工具再吃掉三分之一,最后打开Firefox把剩下的全吃掉!\n\u0026ndash;由sbabybird于12/13/200705:49:00下午在从容地狂奔上发表\n","date":"2007-12-13T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/20071213_hudd51e4af981121665c21452b637d7852_42053_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/","title":"到那时候"},{"content":"早晨,出了门才知道下雪了,下的还不小,赶紧返回取雨伞。\n在路灯的照射下,雪花还挺大的,好歹也是第一场雪,感觉挺不错的。\n坐上车就傻眼了,公交车走的比蜗牛还慢,上高速的路口堵成一团,上了高速路还是堵成一团。\n花了平时两倍的时间才到公司。\n\u0026ndash;由sbabybird于12/10/200709:23:00上午在从容地狂奔上发表\n","date":"2007-12-10T00:00:00Z","image":"https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/20071210_hufc1c223b436dd2eeebbb4a20ac93d966_271052_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/","title":"第一场雪\u0026堵车"},{"content":"今天在公交车上看到一个老大爷上车带着他的鸟(此处的\u0026quot;鸟\u0026quot;没有别的意思),离得挺远,赶紧掏出相机,抓拍两张。\n不过也看不出这是什么鸟(麻雀?),被老大爷拴在棍子上应该不太爽吧。\n\u0026ndash;由sbabybird于12/08/200709:50:00上午在从容地狂奔上发表\n","date":"2007-12-08T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/","title":"小鸟坐公交"},{"content":"中午收到小妹发过来的链接,打开一看,竟是她在新浪写的博客。\n我粗略地看了一下,已经写了几篇文字了。\n很显然地,她的作文比我写的要好,女孩子的感情细腻和多愁善感都表现在字里行间。\n她这个年纪不去qq空间里玩\u0026quot;踩啊踩\u0026quot;,却在新浪开博客,套句比较流行的话说:\u0026quot;我很欣慰啊!\u0026quot;光阴荏苒,白驹过隙,转眼间小妹大学就要毕业,离开校园马上就要面临现实中残酷的就业环境,在网上和我聊了几句,言语里流露出对前途的迷茫。\n是啊,我也曾感到过没有方向(现在何尝不是呢?),但是脚下的路总是要自己去走,未来还是把握在自己的手中。\n我忽然想起某位牛人说过的话:\u0026quot;睡着前最甜蜜;黎明前最黑暗;成功前最渺茫!\u0026quot;\n\u0026ndash;PostedBysbabybirdto从容地狂奔at12/06/200705:40:00下午\n","date":"2007-12-06T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/20071206_hub402b1c625839e2c285a36338a055ac0_42038_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/","title":"妹妹开始写博客"},{"content":"午睡醒来,收到同事发来的Flash小游戏,据说可以根据你的反应速度测试出大脑的年龄,我试了一下,最后结果是:我的大脑有30岁了。\n还算靠谱,比实际老了点儿(没办法,这都是干活儿累的啊),记得有次我做心理年龄测试,结果是60岁了。\n(试试看)\u0026ndash;由sbabybird于12/05/200701:26:00下午在从容地狂奔上发表\n","date":"2007-12-05T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/20071205_hucf680495e43e1c9a752df5efb0b4c225_30309_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/","title":"大脑年龄的测试"},{"content":"昨日喜收老友短信:“天气骤变,温度下降,注意身体,多喝水,以防感冒!”\n遂感叹友情比暖气还要温暖,欲回复信息以示感谢,孰料又收其短信一条:“别回了,我的短信包月没用完,不发都浪费了!”\n我靠!\n另一哥们儿,初上网,受某网站蛊惑(告其可免费发短信),通过该网站为我发“免费”短信一条,结果害我收到若干条此网站发来的广告短信,不得不打电话给这一哥们儿,重复强调“天下没有白吃的午餐”这条真理。\n","date":"2007-12-03T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/20071203_hu376d2ef8163143723b89ecbdcd7dc9b0_42304_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/","title":"关于短信"},{"content":"听说国家大剧院下个月就要正式开演了,而且最低票价只有30元?\n要真是30块能去看的话,俺就省吃俭用一阵子,看看到时候能不能去感受一下\u0026quot;艺术的魅力\u0026quot;。\n\u0026ndash;由sbabybird于11/17/200711:01:00上午在从容地狂奔上发表\n","date":"2007-11-17T00:00:00Z","image":"https://sbabybird.github.io/p/a-dream/20071117_huc7b4ae66ca7cc815c48ea996e8b13d91_56892_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/a-dream/","title":"A Dream !"},{"content":"在Winamp的电台上捡到这首歌Lady,马上被kennyrogers的嗓音吸引了。\n\u0026ndash;由sbabybird于11/17/200702:10:00下午在从容地狂奔上发表\n","date":"2007-11-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/","title":"捡到一首老歌--Lady"},{"content":"天气真的很冷了,走在路上,我的鼻涕都冻出来了。\n搭车时,公交车都冻得无法启动。\n坐车时,腿冻得直打颤。\n开门时,牙冻得直打架。\n\u0026ndash;吃饭去!\u0026ndash;由sbabybird于11/15/200708:13:00下午在从容地狂奔上发表\n","date":"2007-11-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/","title":"天气真的很冷了"},{"content":"到家后立即下载Android的SDK,按照帮助文档的提示,顺利运行伟大的\u0026quot;HelloWorld!\u0026quot;\n\u0026ndash;由sbabybird于11/14/200709:14:00下午在从容地狂奔上发表\n","date":"2007-11-14T00:00:00Z","image":"https://sbabybird.github.io/p/hello-android/20071114-1_hu45a7af1065e7abd09088b691cc0f35fc_116609_120x120_fill_box_smart1_3.PNG","permalink":"https://sbabybird.github.io/p/hello-android/","title":"Hello, Android!"},{"content":"听说android放出SDK了,而且Google为了鼓励开发者开发出NB的应用特意发了1000万美元的红包,如果你能开发出有创意的精品软件,说不定也能拿到一笔钱呐!\n我也去下载了SDK,这个是android的模拟器的样子,还挺漂亮的。\n等晚上回家先写一个helloworld再说!\n\u0026ndash;由sbabybird于11/14/200704:53:00下午在从容地狂奔上发表\n","date":"2007-11-14T00:00:00Z","image":"https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/20071114_hu8f30bffae67aa58e2ae25fcd6d29e0a5_9247_120x120_fill_box_smart1_3.PNG","permalink":"https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/","title":"下载了android的SDK"},{"content":"刚刚好了没几天,访问blogspot又\u0026quot;该页无法显示\u0026quot;了。\u0026ndash;由sbabybird于11/10/200703:33:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","image":"https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/20071110_huc02894a12c0be2d33a118d0c2d08984e_39385_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/","title":"blogspot又封了?"},{"content":"清晨的时候\u0026ndash;由sbabybird于11/10/200709:02:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/","title":"偏色"},{"content":"晚上有雾\u0026ndash;由sbabybird于11/12/200708:00:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/","title":"晚上有雾"},{"content":"画图板\u0026ndash;由sbabybird于11/10/200703:31:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/20071110-1_huba7495d6173f40033816076ca1d4f706_47513_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/","title":"微波炉"},{"content":"用A610拍的,后期经过调色,模仿LOMO的那种效果,嘿嘿。\u0026ndash;由sbabybird于11/10/200708:53:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E4%BC%AAlomo/","title":"伪LOMO"},{"content":"\u0026ndash;由sbabybird于11/09/200712:58:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/20071109_hudf97a7cb7b2c8e33b9206ac442996f9c_53347_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/","title":"午休"},{"content":"小鸟在脚下飞翔\u0026ndash;由sbabybird于11/12/200701:56:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","image":"https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/20071112_hu17415488324c37b595cf3da9cec6c2f9_44222_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/","title":"小鸟在脚下飞翔"},{"content":"路灯下我的影子\u0026ndash;由sbabybird于11/10/200708:50:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/","title":"夜路"},{"content":"一碗牛肉面,我的晚饭\u0026ndash;由sbabybird于11/13/200706:00:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","image":"https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/20071113_huc86a66e6329342bedcf95dfed181a4c4_34268_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/","title":"一碗牛肉面"},{"content":"前两天单位组织体检,一切正常,就是没有乙肝的抗体,印象中上学的时候已经打过疫苗,不过人家医生说,可能年代太久远了(靠,有那么远么?)\n抗体丢了,无奈,再去接种就是了。\n打针时,问人家会不会疼?\n人家护士答的很爽快:\u0026quot;你就放心吧,我打了20年的针。。。。\u0026quot;,\n等我疼完了又接着说:\u0026quot;没有一个不疼的!\u0026quot;\n\u0026ndash;由sbabybird于11/13/200710:40:00上午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/20071113-1_hu2c23a74a5dd4d3cac685219891a987a9_37556_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/","title":"早上去打了疫苗"},{"content":"有几年不用Winamp了,最近Winamp又退出了10周年纪念版版。\n我下载了一个,感觉听听里面的网络电台什么的还挺不错的(边上班边听欧美最流行的音乐哈)。\n而且新版还包含了podcast的功能,可以搜索订阅网上的播客。\n在家听音乐的话,我还是选择foobar。\n\u0026ndash;由sbabybird于11/08/200707:49:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","image":"https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/20071108_hu62cd708ddab6ac1a151f28a1d17a6d2b_65575_120x120_fill_q75_box_smart1.JPG","permalink":"https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/","title":"重温Winamp"},{"content":"昨天我二十四,今天我二十五\n\u0026ndash;由sbabybird于11/11/200712:49:00下午在从容地狂奔上发表\n","date":"2007-11-13T00:00:00Z","image":"https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/20071111_hu3f7aeb0ac9e3bc184609c322c43f7824_51296_120x120_fill_box_smart1_3.png","permalink":"https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/","title":"昨天我二十四"},{"content":"nan\n","date":"2007-09-22T00:00:00Z","permalink":"https://sbabybird.github.io/p/under-a-violet-moon/","title":"Under a Violet Moon"},{"content":"偶然翻看书架上的旧书,发现我以前在上面随手胡乱写了一个“梦幻配置”,那时应该是2000年,根据当时的硬件发展状况,我写了一个可望而不可及的硬件配置。\n具体什么配置就不说了(大概就是纯平显示器、笨三的cpu),反正现在让你用你还嫌慢呢。\n现在六、七年过去了,心里又痒痒的,就让我再写一个可望而不可及的硬件配置吧,看看这个配置何时会过时。\n中央处理器:IntelCore2QuadprocessorQ6700(4核,为了安静,散热采用水冷系统)\n主板:IntelD975XBX2内存:海盗船TWIN2X2048-6400×4(共8G)\n外存储:SanDisk64G闪存硬盘(用于系统存储),2TB磁盘阵列(用于文件存储)\n显卡:丽台NVIDIAQuadroFX5600×2(每块显卡可接四台屏幕)\n主显示器:Apple30\u0026quot;CinemaDisplay(上网、影视、游戏)\n副显示器:Apple20\u0026quot;CinemaDisplay×6(地理、虚拟现实、平面设计等)\nCreativeSoundBlasterX-FiElitePro+罗技Z5500(用于电影、游戏、非专业录音)\n主板数字光纤输出+外置解码器+JBL监听音箱(用于欣赏音乐)\n操作系统:自己动手定做(编译)Linux版本,桌面环境采用GONE(如果有兴趣就自己写个操作系统)\n备注:机箱易采用高厚度、高散热静音机箱,此系统搭建完成后将用于书房,共七台显示器需要用到特殊的显示器支架。\n","date":"2007-08-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/","title":"关于电脑配置的遐想(瞎想)"},{"content":" ","date":"2007-08-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/what-ive-done/","title":"What i've done"},{"content":"nan\n","date":"2007-08-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/dont-cry/","title":"Don't Cry"},{"content":"不知是不是因为升级还没有进行完成,最近livespaces总是不能正常操作,用firefox访问有时还会出现乱码或者页面布局乱套,速度慢的惊人,资源占用很厉害。\n再加上他有太多的限制,这些问题都让我感到对livespace失望透顶。\n衷心希望Googleblogger能够早日解封!\n","date":"2007-08-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/","title":"live space 的表现让我很失望"},{"content":"昨天去电影院看了《憨豆先生的黄金周》,感觉还不错,憨豆先生还是那么滑稽可乐,有着独特的幽默方式,我虽然没有笑到肚皮抽筋、掐着大腿,但是90分钟的电影还是让我由衷地笑了半个小时(累计)。\n这里就不介绍剧情了(一般来说这种喜剧基本没剧情可言),网上到处都是介绍。\n整个影片从头到尾憨豆先生都拿着那只SONY新出的DV,我估计SONY投了不少钱,还有就是片子的音乐配的还可以,轻快明亮。\n总的来说还值得一看。\n现在的电影院真是不景气啊,能容纳500号人的大厅坐了不到100人,不过挺爽的,谁让他们把票价订的那么贵,现在的票价是我小时候电影票价的100倍\n","date":"2007-08-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/","title":"昨天去电影院看了《憨豆先生的黄金周》"},{"content":" ","date":"2007-07-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/","title":"在 live spaces 单篇日志中插入音乐 测试"},{"content":"对于我来说,理发是件很痛苦的事情,可能是有心理障碍吧。\n小的时候被老爸强行摁住理过一次发,我像一只小鸡那样被夹在腿上无力反抗,由于整个过程我都在不停地叫骂那个理发的,所以那家伙下手还不含糊,把推子使得嚓嚓直响,对着我的头皮和耳朵可劲儿招呼。\n整个过程是漫长的、痛苦的、令人发指的。\n最后我看着镜子里的凸了吧唧的头,还不忘使劲儿拧了一把鼻涕抹在老爸的裤腿上。\n此事后来成为笑谈,但爷儿俩在理发这种事情上一直都持有不同的观点,\n当然了,我还只能提出强烈抗议、强烈不满、强烈谴责,但采取进一步措施的权利还是保留了。\n一直到现在,当老爸跟我说:“快去把头发理一理!”时,我还是乖乖的狂奔去理发。\n不过,现在我离老爸远了,他管不了啦(主要是没看见),我可以尽情地把头发留到很长,然后再一下剪到很短(一般是回老家之前)。\n但是我的这种习惯却造成了另一件事情,给我理发的人极度不爽。\n每当我拖着留了几个月的长发走进理发店,告诉理发的师傅给我可劲儿剪短时,伊总是很扭捏,假惺惺地跟我说:“哎呀!你的发质这么好,又好不容易留了这么长,剪了多可惜啊!”\n其实谁不知道伊是想省点儿事儿,想拿剪刀在那三下两下剪完糊弄我。\n于是我只好说:“嗯嗯,本来是想留长的,但是现在突然想开了,不想留了,还是麻烦您给我剪短吧!”\n最后等着人家极不情愿(还很费时)地给我剪完,我才满意离去。\n但是这招下次就不能用了,所以我总是选择不同的理发店,反正这玩意儿多得是!\n今天我又理发了,从五一到现在大概有三个月了,很抱歉,又让一个理发师傅不爽了一把,不管他,这次理完了,谁知道我什么时候有心情理下回呀!\n","date":"2007-07-29T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/","title":"理发2007"},{"content":"天气这么闷热,生活这么枯燥,何不搞点小把戏调剂一下气氛呢?\n要是你现在刚好在办公室里,那么恭喜你了,下面我将教你几个在下秘密收藏的整蛊手段(一般人我不告诉他)。\n前提条件:\n1、你们用计算机办公;\n2、你们使用的是Windows操作系统;\n3、你要整蛊的同事没有暴力倾向;\n4、他刚好暂时离开一下。\n好了,准备好了就开始行动吧!\n场景一:“我的密码被改了?!”\n如果你的这位同事有锁定计算机的习惯,那就刚好实施一下,在他计算机的锁定状态下的密码框里提前敲入一个空格,这样一般他回来时不会发觉,等他输入完自己的密码后,会发现进不去了!(因为密码前面多输入了一个空格)。\n场景二:“用来干活儿的软件没有反应了!”\n如果他没有锁定计算机的习惯,那么刚才那个办法就不凑效了,怎么办呢,找到他用来工作的软件(VC,Word、Excel等),把帮助菜单里的“关于(about)”对话框给打开,然后用鼠标把对话框拖动到一个屏幕上看不见的地方。哈哈,等着吧,他回来会发现他用来工作的软件怎么也不听话了,无论点击哪儿都没有反应。\n场景三:“鼠标不好使了”\n现在大家都用光电鼠标了,而光电鼠标全靠它屁股底下的那个激光眼,没错!你又猜对了,拿个小纸团把它那个小眼睛堵住,赶紧去吧!鼠标瞎了之后就罢工了。\n以上方法屡试不爽,我都亲自实验过,不过是别人在我身上实验的(这帮败家玩意儿)。\n注:以上操作纯属娱乐!产生后果自负。\n","date":"2007-07-24T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/","title":"轻轻的,我将整蛊你"},{"content":"我手里这个Nokia6230用了3年了,买的时候多加了一块电池。前两天,其中一块电池寿终正寝了,剩下的这块也差不多了,感觉就像我的胃,一吃就饱,一会儿就又饿了。\n我看着手里这个灰头土脸得就像从垃圾桶里捡回的手机,不禁有了换掉它的念头。\n到网上翻了翻信息,结果让我很失望,感觉Nokia不太长进,眼看着人家索爱扛着音乐、摄像的大旗在市场上占了一席之地,自己也跟着别人的屁股转,也在那儿搞音乐手机、摄像手机,却忘了自己的特色。\n没办法,别的牌子不愿意用,老N最近推出的新机不是我看不上就是我的钱包不让看(靠,就这还敢冒充Nokia的粉丝呀?)。\n苹果的iPhone最近倒是炒得挺火,看起来也挺不错,可是总觉的那玩意儿离咱太遥远了,还是不多看了,以免中毒。\n在查看了众多机型之后,长叹一声:“究竟什么样的手机才能让我满意呢!”\n总结以下大概要满足以下几点: 1. 屏幕要足够大、分辨率不用极高但也不能太低 2. 反应速度一定要快(目前我还没有发现一款智能手机反应速度飞快) 3. 个头不能太大、重量不能太沉 4. 电话、短信功能好用 5. 电量一定要持久,待机越长越好(这点最重要,功能再强没电也是白扯) 6. 非国产(这个不用多说) 这些要求不过分吧?像什么摄像、音乐等功能都没要求,可愣是找不到这样一款手机,反复对比后发现还是目前手上的这个更合要求一些。 算了,将就用吧。 结果,昨晚做梦,梦见我也设计了一款手机,以上条件除了第六条其余都满足,取名就叫“nbPhone”把苹果的Phone的风头给压下去了,乔布斯都跟我急了。 ","date":"2007-07-23T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/","title":"我心目中的完美手机"},{"content":"一个胖子,一个相貌平平而且豁牙的胖子,一个相貌平平而且豁牙的卖手机的胖子。\n这样的人参加选秀节目,如果你是评委的话,你会让他通过海选吗?\n如果他告诉你他要表演的是歌剧的话,你会跳下评委台把它踢出演播厅吗?!\n我想你会的,因为当时英国的那个选秀节目的评委也是这样想的。\nPaulPotts,这个我刚刚看到的英国小伙子,就是这样参加选秀节目的。\n当他极不自然地站在舞台上,傻傻地告诉评委他要表演歌剧,评委们都笑了,表现得有些不耐烦。\n可是,当他深情地唱起今夜无人入眠,当他那与帕瓦罗蒂一样激昂的男高音在演播厅响起时,赛场沸腾了!所有的人都站了起来,评委刁在嘴里的铅笔掉了下来,掌声雷动!\n这段由朋友发过来、我甚至懒得看的视频,看得我头皮发麻。\n在起了一身鸡皮疙瘩后,我的眼睛也不争气地湿润了(震撼,感动)。\n看了别人写的介绍,我了解到,这个叫Paul的小伙子有着不太顺利的人生际遇(大多数人如此吧),但是他从未怀疑过自己的理想,仍然执着地追求着歌剧表演的艺术魅力,直到他被生活所逼而不得不靠卖手机来糊口时,仍未放弃!\n终于,上天给了他最后一次机会,他成功了,他向世人再一次的证明了:真正牛逼的人,终究会牛逼起来!试了一下,msn的空间居然还可以插入视频!\n","date":"2007-07-21T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/","title":"真正牛逼的人,终究会牛逼起来!"},{"content":"我都已经好几天没有照看我的msn空间了(最近太累),今天访问一下,发现界面居然有了变化(别三日,刮目看),嗯哼,原来是微软的Live小组把咱的空间给升级了。\n首先是界面的整体风格有了改变,我审美不行,看不出是好看还是难看,感觉貌似顺眼一些。空间上方仍然悬挂着那个大大的广告条(我一直看它不爽),工具条的宽度变宽了,这样会占用更多的空间。\n进入空间的“自定义”功能,发现提供的模板多了一些,但一个比一个不耐看,所以我什么也没有动,继续保持现状。一直希望Live空间能够提供类似WordPress那样的模板(多漂亮啊),现在看来,要走的路还比较长(Live小组继续加油啊!)。\n不过话又说回来,空间里整那么多花里胡哨的东东也没用,看得让人眼花缭乱的也不爽,我还是喜欢简约一点的风格,最好是让人进入我的空间后,感觉就像是打开了windows的记事本(过分了吧)。\n本来Google提供的那个blog挺好的,可是总是不能访问,还是老老实实的在微软提供的共享空间里得瑟吧。\n最后,再鄙视一下我自己,这几天由于懒惰而没有更新空间的内容,太不像话了!\n","date":"2007-07-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/","title":"几天不见,LiveSpace变了"},{"content":"随着一阵悦耳的下班铃声,我提前结束了一天的工作,按照惯例,周末了,要去打球。\n叫上同事,抱起篮球,飞快地奔向球场。\n终于逃脱了闪烁的计算机屏幕,逃脱了无聊的工作计划,逃脱了漫长的会议,逃脱了郁闷的代码\u0026hellip;\u0026hellip;\n各位观众,各位听众,也许你们刚刚打开电梯,现在为您直播的是\u0026ndash;火星杯篮球锦标赛!\n穿着运动鞋牛仔裤正在捡球的那家伙就是我,看呐,我在球场上尽情地狂奔,边打球边哼着歌曲“啊哼三分球,它在空中停留,漂亮的假动作,帅呆了我\u0026hellip;\u0026hellip;哦shit!球丢了”。\n一口气打了两三个小时,直打到有人气喘吁吁,打到有人双腿抽筋,打到有人口吐白沫还不肯离去。\n天渐渐黑了,球框渐渐虚无缥缈起来,收拾家伙,撤!\n走到站牌,有车,有座,爽!上了高速,一路畅通,爽!\n到了家里,贤惠的老婆已经把饭菜做好,菜做的色香俱佳,啤酒冰得温度适中。\n如果这个时候你问我,什么是幸福?我会自在地夹一口菜,然后再悠闲地喝上一口啤酒,眯起眼睛跟你说:“嘛儿叫幸福?介就叫幸福!”\n幸福像花儿一样。\n","date":"2007-07-20T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/","title":"嘛儿叫幸福?介就叫幸福!"},{"content":"加班后回家的路上,路灯十分昏暗,还没有吃晚饭,心情极度郁闷,我缓缓(没力气狂奔了)走向公车站牌,走着,走着,突然!\n一个黑影窜了过来,他跟我说:“兄弟,要盗版光盘不?”\n我没有理他,继续走,走着,走着,突然!\n又一个黑影窜了过来,他跟我说:“兄弟,要发票吗?”\n我没有理他,继续走,走着,走着,突然(靠,有完没完啊!)\n一大一小两个黑影窜了出来,原来是一个中年妇女领着一个七八岁的小女孩儿,夜色中看不清面目。小孩开口说话了:“叔叔,给点儿钱让我买吃的吧,我都饿了一天了\u0026hellip;\u0026hellip;”\n边说还边做有气无力状,大人也在一边附和。说得我心里一软,鼻涕快掉下来了,差点儿掏钱。\n但是转念一想,我TM也饿了快一天啦,也没吃饭呢,再何况,她们的行为也太让我愤怒了,因为就凭这些个破烂演技拿来唬我也太侮辱我的智商了吧!\n于是,我友善的冲她们说道:“小朋友,你看”我用手指了指马路,“往前走500米,那里有家派出所,你过去找警察叔叔要些吃的好不好?”\n小孩一时不吭声(台词没背下来),大人接着说:“你就可怜我们,给我们几块钱,买包方便面也行啊!”(我靠,我这么晚了还没吃饭,我求您别勾引我的食欲了!)\n我没办法,掏出手机,说:“既然你们不愿意亲自过去,那我帮你们打110吧\u0026hellip;\u0026hellip;”\n这句话还没有说完,说时迟那时快,只听得“嗖嗖”两声,两个人全都不见踪影,公车站牌下只剩下我和随风飘舞的碎纸片(好身手!)。\n","date":"2007-07-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/","title":"给点儿钱让我买吃的吧!"},{"content":"听说google出了在线翻译的工具,而且还广受大家的好评,在美国举行的一次翻译比赛中还拿了冠军。\n我虽不是google的粉丝但也对google的产品挺感兴趣的,于是赶紧凑个热闹,看看伟大的google能不能给我带来惊喜。 由于我只会中文,那就看看google的英译中的水平怎么样。\n废话少说,赶紧拿来一首英文歌词《youneededme》(我最喜欢的英文歌曲之一)。\nYouneededmeIcriesatearyouwipeditdryIwasconfusedyouclearedmymindIsoldmysoulyouboughtitbackformeAndhelpmeupandgivemedignitySomehowyouneededmeYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeAndIcan'tbelieveit'syouIcan'tbelieveit'strueIneededyouandyouwerethereAndI'llneverleavewhyshouldIleaveI'dbeafoolCauseI'vefinallyfoundsomeoneWhoreallycaresYouheldmyhandwhenitwascoldWhenIlostyoutookmehomeYougavemehopewhenIwasattheendAndturnedmyliesbackintotruthagainYouevencalledmefriendYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeOh,yes,youneedmeYouneededme\n先试了一下整段翻译,把歌词复制进去,出来的结果让我忍俊不禁google自动翻译的文字:\n你需要我,我喊了眼泪,你擦它干,我摸你清我心中我卖出我的灵魂,你买回来,我和帮助我,让我有点尊严,你需要我你们给了我力量单独再次面对世界走出自己再次你就把我小时在室内一个台阶那么高,我几乎可以看到永恒,你需要我,多欧需要我,我也不相信是你,我不能相信这是真的,我需要你和你的笔在此,我永远不会离开,我为何要离开我就是一个傻瓜,我的事业总算发现有人真的三白族你握着我的手,当它冷时,我输了,你带我家,你给了我希望钨母鸡,我是在年底把我的谎言放回真话的时候,你甚至骂我的朋友,你克须缴我力量单独再次面对世界走出自己再次你就把我高美无源一个台阶那么高,我几乎可以看到永恒,你需要我,你需要我哦,多欧需要我,你需要我\n唉,比较失望啊,试一下google的翻译网页的功能吧,找到歌词的网页,然后让它翻译你需要我\nIcriedatear我哭了眼泪Youwipeditdry你擦它干Iwasconfused我很困惑Youclearedmymind你清除了我的心Isoldmysoul我卖我的灵魂Youboughtitbackforme你买回来,我Andheldtheearth召开地球Yougavemedignity你给我尊严Somehowyouneededme某种程度上,你需要我Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Ican'tbelieveit'syou我不能相信这是你Ican'tbelieveit'syou我不能相信这是你Ineededyou我需要你Andyouwerethere你有AndI'llneverleave,whyshouldIleave?和我永远不会离开,我为何要离开?Ineededyou我需要你canIfinallyfoundsomeonewhoreallycares可我终于发现有人真正关心(Youneededme)(你需要我)Youheldmyhand你牵我的手Itwascold据冷AndIwaslost我失去了Youtookmehome你带我家Yougavemelove你们给我的爱ThatIwasattheend我是在结束Iturnedmylife我把我的生命BackintotruthagainYouevencalledme'friend'放回真话的时候,你甚至骂我'朋友'Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Youneededme你需要我Youneededme你需要我Oh,yes,youneededme哦,你需要我Youneededme你需要我\n呵呵,这下看起来还像那么回事儿.感觉机器还是代替不了人啊.翻译有感情的东西总是那么生硬.\n","date":"2007-07-06T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/","title":"测试一把google的在线翻译工具"},{"content":"统计了一下我平时上班所需要的时间,要是堵车的话大概要一个小时多一些,要是特别堵的话大概要两个小时,要是跑步的话大概得三个小时多一些(推算的,可以忽略),要是夜里打车去上班的话大概得二十多分钟(极少,也可以忽略)。\n所以我一天大概有三个小时是堵在路上的,这导致了我的胃口极差,身材日渐消瘦,远看像铅笔近看像挂历!每天我都要坐在车上长吁短叹:“GR的堵车啊!”\n是什么原因造成了这样的状况?\n原因有很多种,我想最直接的原因可能就是因为路上出现了车祸。\n无论是蹭了一下车屁股还是挂了一下后视镜,双方都会停好车,把路占上,然后撅起屁股在那儿查看爱车的状况,最后再各自打电话叫人\u0026hellip;\u0026hellip;\n这个时候你要是刚好在路上,你就会感觉你置身于车的海洋,一辆挨着一辆的汽车望不到头,一片喇叭声,让人透不过气来。每当我乘坐的公交车慢慢的拱过出事地点,往往还能看到出事的双方(或多方)在那儿撅着。\n这种情况每天都要出现,所以每天都要堵车。\n据说从8月7号到8月20号,北京的交通管制要进行奥运预演.这对我们这些挤公交车上班的来说真是莫大的好消息啊!我们又可以感受像去年中非论坛期间的那种一路畅通的超快感了!\n不过,快乐永远是短暂的,过了那几天,还是得老老实实的坐在车去上体验“堵车不堵心”。\n","date":"2007-07-04T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/","title":"堵你千遍也不厌倦?"},{"content":"最羡慕那些有米的音响发烧友,手里攥着大把的钞票,买音响器材出手阔绰,有没有一双“金耳朵”不知道,反正当音响店的老板告诉他“这套音响,在听蔡琴唱歌的时候能听见她咽吐沫的声音”时,或者跟他说:“那套设备,在听交响乐的时候可以听见拉琴那小子不小心把曲谱翻掉在地上的声音”的时候,他们就会毫不犹豫的掏出几千乃至几万块大洋,把那些“宝贝”搬回家,反复的回放,听听蔡琴在什么时候换了一口气,或者听听吹长笛的坐在第几排。\n我也曾在这方面痴迷过,但仅仅是痴迷,没有什么实质性行动,原因很简单,掏不起那些闲钱呐!\n不过,在很早以前,读初中的时候就开始摆弄那些“音响器材”了,只是一堆喇叭,功率很小,大部分是从旧收录机上拆下来的,“音源”也就只有卡带,我曾试着把喇叭放到各种地方以调整他们的“音效”,比如放在蚊帐上除了可以在睡眠时有音乐环绕外还兼具“驱蚊”的效果,我为了得到更多的低音也曾把喇叭嵌入到书桌里(整个桌子就是音箱哈),甚至把喇叭放到洗衣机里,那音质真是惨不忍听。\n反正受当时的条件限制,我也只能是像小孩摆弄玩具似的,玩一玩儿而已,毕竟当时升学才是最大的目标。\n直到有一天,我翻看一本旧音响杂志,有人自制了个音箱,据说效果还不错,于是就动了自己也做一个的念头。\n再后来,到了上中师的时候,有了大把的空闲时间(但还是没空闲的钱),决定纯手工制作一只“有源音箱”!说干就干,开始行动!首先考虑的是功放电路采用什么形式,当时最佳的方案是使用“LM-1875”功放芯片,但由于囊中羞涩,最终放弃,后来买来一块晶体管放大板,也算将就了,喇叭买了两只,一个高音,一个中低音(8寸),向我大舅要来了分频器。\n让老家木匠邻居帮忙做了个音箱的框架,剩下的就是我和我的一个哥儿们亲自动手了。\n箱体的材料比较奢侈,把我家的一个桌子给锯了(靠!太过分了)。\n后来组装的时候才发现,我竟然忘了考虑功放的前级,没办法,再次求救与大舅,从旧收录机上拆下来一块板子作为前级(居然还可以调高低音调)。\n就这样,前前后后忙活了有半个星期,我的音箱终于发出处女声了,这个时候音源已经是一台VCD,那个时候我好像对蔡琴不感兴趣,于是先听了一首陈慧娴的《归来吧》,真是天籁啊!我当时感动的鼻涕都快掉下来了!\n当然了,我这么说是有一些夸张,其实音质不咋地,只是当时又没听过真正的音响,这只亲手做的音箱,让我体验到了充足的低音(说到低音,要感谢我的姥爷,他给了我一只大号的电源,具体功率不知道,反正很大很大),震耳欲聋的低音,就像是有人拿着锤子在敲打我的胸膛。\n这只音箱在当时带给了我无限的快乐和满足感,后来就去省会读大学了,买了电脑,买了几百块的音箱,那只音箱就被我扔到了角落,上面布满了灰尘。\n再后来,我干脆把它送给了我的大舅,听说他现在拿它当板凳,还挺结实的!\n","date":"2007-07-02T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/","title":"曾经,俺也DIY (怀念我的第一只音箱)"},{"content":"国外新兴一个叫Twitter的Web2.0站点,听说最近很火爆,很多人在那里叽叽咕咕,说一些有想法但又不至于发一篇bolg的“废话”。\n我去看了一眼,感觉跟那帮人文化差异挺大的也就没好意思去注册,但是国内的同志们也不示弱,一时间模仿该网站理念的站点如雨后春笋般涌现。\n在这些国内的叽咕站点里,有朋友就给我推荐这个“饭否”,说是一个迷你Blog,像Twitter一样,只是大家都是中国人,叽咕的内容比较容易懂一些。\n我这个人最爱尝鲜,就忍不住过去注册了一个帐号。\n感觉还不错,可以绑定MSN,QQ等IM软件,方便通过IM软件在上面发言,甚至可以绑定手机,让你随时随地的把感受发到网上。\n人气还是挺旺的,不断有人在上面喃喃自语,也不乏有一搭没一搭的聊天者。\n发布的内容可以很无聊,比如“今天的天气真好”,也可以很有深度,比如“你们好啊,地球人!”\n呵呵,由于没用多久,所以还不能多加评论,我怀我有自闭的倾向,现在有了“饭否”,偶尔在里面发一下实时的感受,发泄一下心情而已,就当我是面对着墙壁在一个人喃喃自语吧。\n","date":"2007-06-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/","title":"饭否,一群人的喃喃自语"},{"content":"早晨起来,像往常的周六一样,来到公司加班。\n打开电脑,然后习惯性的访问我的msn空间,“该页无法显示\u0026hellip;.”,不会吧,难道是网络断开了?\n没有啊,空间主页还是可以访问的,怎么一切换到我的空间就“该页无法显示”了呢?\n强制刷新浏览器还是不行,随便点了一个朋友的空间,可以访问。\n完了!莫非我的msnspace被封掉了?\n上网搜索一下,看看有没有出现同样问题的朋友,结果显示msnspace无法访问是常有的事儿,很多人都有过类似经历(国内用户),这其中的原因不言自明啊!\n我开始回忆,在我的日志里面到底有没有不该出现的敏感词汇?\n想了半天,答案是没有。可是要说是msnsapce的故障吧,别人的空间又是可以访问的,无奈只好跟微软的客服发了封电子邮件,暂时还未收到回复。\n我刚开始写网络日志,不为影响别人的看法,只为记录一下暂时的心情,本以为放到网上比放在本地还安全(相信微软的技术水平),结果还给我来这一手,想记录的时候却无法访问了,弄的心里还挺难受,担心以前的日志会不会丢掉啊!\nps:就在刚才,它又突然可以访问了!\n","date":"2007-06-30T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/","title":"共享空间无法访问!惊得我一身冷汗!"},{"content":"偶然在diglog里发现了鲜果在线这个网站,名字很好听,于是乎,我就点击进去看了看。\n看了之后真有一种相见恨晚的感觉,这个站点本身不提供什么信息,只是提供一个在线的RSS阅读器,而且它提供的RSS频道都是根据大家的兴趣和订阅量进行排序的,也就是说,看某个频道的人越多,该频道就越靠前。\n这样就可以看到大家都喜欢看的东西,那些垃圾信息不会浮上来了(感谢Web2.0啊!)。\n在线阅读的操作也十分简单容易上手,而且界面清爽,有比较强大的自定义功能(我靠,怎么这么像托儿啊),我订阅了一些精品的频道,比如Engadget、Solidot、cnBeta等,顺便订阅了王小峰的“不许联想”(这个博客比较能扯淡,这算是夸他了)。\n这下就不用Firefox的rss阅读器了,直接把订阅的频道放在鲜果在线里存储到网上,在家和在公司都能看到同样的新鲜信息了,重装系统也不怕,把东西都放到网上,我想这也是以后互联网发展的趋势吧\u0026hellip;\u0026hellip;\nps:其实我早就把收藏的网址也放到网上了,在Firefox里安装一个扩展\u0026ndash;yoono,这个插件也很牛,有点儿像美味书签(del.icio.us),不过yoono最近增加了收藏整个网页的功能所以比较起来就更喜欢yoono。\n","date":"2007-06-28T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/","title":"鲜果在线,让我尝一口鲜果"},{"content":"雨后的空气格外清新,天气还没有完全放晴,乡间的柏油路上还是湿的,远处缓缓驶来一辆摩托车,骑车的人叼着烟,看起来懒洋洋的,十分惬意,没错,那就是我。\n我这几天回老家了,这个机会十分难得,暂时逃开北京繁忙的工作,溜回老家,无拘无束,自由自在。\n目光所及,尽是农田。\n空气中还飘散着青草混合大粪的味道,也算是沁人心脾吧。\n1 2 3 4 5 6 7 8 别再徘徊沉寂的心灵 别再留恋破碎的回忆 大地迎春雷抛弃你满腹的忧虑 缤纷的彩虹等着你 别再犹豫等待的心湖 别再沉迷过去的旧梦 暖暖的春风走向那灿烂的天涯路 耀眼的阳光迎着你。 ","date":"2007-06-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/","title":"归去来"},{"content":"今天又一次雨中漫步,原因很简单,受天气预报的干扰我又没带伞(干嘛要说又呢?)。\n拿起背包从容地奔向车站,嘴里也不忘哼着:“我能想到最郁闷的事~~,就是下雨却没有带伞~~”。\n淋雨就淋雨吧,挤上车,去思考一个很严重的问题,我的晚饭吃什么?\n别笑!这确实是一个很严重的问题。\n我不能像老婆在身边时那样说:“随便吧,做啥吃啥”(虽然心里想着最好炒两个菜,再冰上一瓶啤酒)。\n自己动手去做的话,倒不是嫌麻烦,只是吃我做的晚饭简直是虐待自己(大饼卷着馒头沾着米饭吃)。\n吃晚餐在我眼中确实是非常重要的事儿,平时上班的时候,早饭总是很虚无缥缈,不堵车的时候就慢慢坐在包子铺里吃包子,堵车时就没准儿了,也许是一个鸡蛋饼,也许是一个肉夹馍,也许,也许只有一杯开水。\n午饭就是普通的工作餐,千篇一律,除了米饭还是米饭。\n所以说,一日三餐也就晚饭是顿饭,我把吃晚饭看作是一件很神圣的事情,虽然不必在每次吃晚饭前都焚香沐浴,但我也在吃饭前做个深呼吸,抛开一天的烦恼,菩萨保佑、阿弥陀佛、无量天尊、阿门!感谢上天又让我吃了一顿晚饭!\n然后就对生活重新燃起热情,对工作又重新充满信心,活着不就是为了这顿晚饭嘛!\n可是,现在,我看了看车窗外,雨停了,道路渐渐不再拥堵,我的胃却越来越堵,没有胃口,吃还是不吃,这是个问题。\n下了车,路边的麻辣烫小摊熏得我的胃一阵抽搐,不远处的油炸臭豆腐老板正在卖力的吆喝,卖盗版书的小贩倒是省事儿,在大喇叭里循环播放“六块一本儿,随便挑随便拣\u0026hellip;\u0026hellip;”,喊得我头晕眼花,我真想冲过拿起他的喇叭然后在空中抛一个完美的弧线。\n还是那个晚饭情节,不想在外面饭馆里吃,尤其是一个人在饭馆里吃。\n拿起馒头,就着音乐和啤酒\u0026hellip;\u0026hellip;我怎么会舍得你走,这一去竟是几个秋冬请你好好珍重无须挂念我太多我的爱和从前一样这承诺当是万般重要尽管容颜会老这一生无以为靠我还是会爱你到老我不会让你苦恼也许我始终无法释怀我会假装一切都好。\n","date":"2007-06-27T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/","title":"我拿什么拯救你!我的晚餐!"},{"content":"电视上充斥着广告,其中不乏精品,看完之后让人心情舒畅然后心甘情愿的掏腰包去买他们的产品。\n但是大多数广告都庸俗不堪,让人看得心慌气短、胃部抽搐、浑身起鸡皮疙瘩。\n这其中不必说“收礼只收搓澡巾”,也不必说“洗洗更健康”,单就是那位一口气上五楼的大爷就能让人抓狂了。\n时间长了,这些广告我吐啊吐啊的也就习惯了,对于这类垃圾广告也有了一定的免疫能力。\n但是最近又有一个广告冲破了我的心理防线!那就是某饮料的变态广告“我拧你!”\n画面上,一群疯子在那里晃来晃去的踢腿,就像得了羊癫疯似的,整个广告看了让人不知道他们在表达什么另类理念,还好导演没忘记让他们每人手里拿着一瓶该品牌的饮料。\n我估计作者的思路来源与某天他的鞋里进了个小石子,然后他就不停的甩啊甩,一直甩不出来,直到喝了他那个饮料才甩了出来,于是就创作了这个广告。\n关键是你在电视上恶心恶心我也就算了,在上下班的公交车上居然也循环的播放,而且还衍生出不同的版本出来,里面就没有一个正常人,都拿个腿在那儿踢来踢去的。\n也许从某种层面上来说,这也是一个很成功的广告,我看见很多人吵着要下载那段抽风的音乐作为手机铃声,但是我绝对不会去喝一口那种饮料,我怕晚上会做噩梦,然后再一脚把被子给踢到床底下去\u0026hellip;\u0026hellip;\n","date":"2007-06-19T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/","title":"我拧你!"},{"content":"你问:“把大象关冰箱里共分几步?”\n答:“分三步,把冰箱门打开,把大象放进去,把冰箱门带上”。\n你又问:“可是把大象关进去之后里面黑乎乎的大象不害怕吗?”\n反问:“你怎么知道关上之后里面还是黑乎乎的?你确定关上门之后那个灯灭了吗?”\n你:“~~~~~~”\n这个问题曾经也困扰我很久,因为冰箱的门只要一打开那个灯就亮起来,可是关上门之后你又看不到里面,所以还是不能确定里面到底是什么情况。\n听说国外曾经有人为这事儿想不开去自杀,更有人为此急得抓耳挠腮夜里都睡不着觉,直到他把冰箱的门上凿了个洞,看清了原来关上冰箱门后那个小灯真的灭了,这才安稳的睡去(估计这哥们是一环保人士,担心那灯太费电)。\n我没像那位牛人那样的使用暴力,但也自有办法。当然了,作为一个正常人,去探讨冰箱里的灯到底关了没有,这种做法实在是有些偏执(这不神经病吗!),你就姑且看作我是好奇心使然吧。\n反正,我的冰箱刚弄回来的时候我还真就动用了高科技手段\u0026ndash;拍照手机,我那手机带了个30W像素的鸡肋摄像头这下派上用场了。也是分了三步,把冰箱门打开,把手机定了时(定时10秒后拍摄)放进去,再把门带上。\n心中默念,时间到,开门取出,查看照片,出现了不可思议的结果!照片里那个灯竟然还亮着!再试一次,还是亮着。\n我那叫一个晕,觉得被冰箱厂家给忽悠了,口口声声说节能,这得多耗不少电呐。\n在仔细阅读了两遍说明书之后,总算恍然大悟,原来那不是普通的灯,它不仅仅担任了照明的工作(难道还用来制冷啊?),还兼具杀菌的功效,在关上门之后,它再持续照射几分钟食物,起到杀菌抑菌的效果。哦,原来如此,人家陈老师说了:“人不能无聊到这种地步!”\n","date":"2007-06-18T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/","title":"冰箱里的灯"},{"content":"又到了蚊子最猖獗的季节了,现在每晚都有蚊子在我耳边盘旋,嗡嗡的声音若隐若现,让我神经高度紧张,却又懒得起来招呼它们,无奈,硬着头皮睡去。\n第二天胳膊腿上到处都是蚊子们留下的吻痕\u0026ndash;小红疙瘩,奇痒难忍。我发飙了,对付蚊子,我要开始行动!刚开始我采用的是防守战略,听说食用葱姜蒜可以使皮肤排出的汗味具有天然的驱蚊效果,本想采用此方法,但是吃了大蒜那味儿我更受不了只得放弃。\n还是在洗澡的时候多放点花露水吧,“六神特效驱蚊花露水”据说效果很好,洗完澡往身上狂撒,安静的躺在床上,等待蚊子飘然而来再飘然而去。\n结果,效果欠佳,蚊子依然如故的为我唱着催眠曲,而且我还被花露水熏得神清气爽、失眠健忘。\n防守看来不行,改变战略。\n男人!就要对别人狠一些!对付蚊子也不例外!\n狂奔去超市,买来“枪手”喷雾剂、“睡得香”电蚊香、电蚊拍、紫外光灭蚊灯等等,我要发起进攻了!\n晚饭毕,拿起“枪手”对卧室一通疯狂扫射,再将蚊香点燃,整个房间烟雾弥漫,关紧房门,外面客厅里的灭蚊灯发出幽幽的清华紫光。\n这下蚊子们彻底的玩完儿了,对不起了诸位,我已经够瘦弱了,您就给我留点儿血吧。\n沐浴后,推开卧室门,兴冲冲准备打扫战场,刚推开门我就被呛得眼泪鼻涕都下来了(我刚才喷的不是催泪瓦斯吧),蚊子倒是没有了,只是这屋里也不能待了(已经感觉呼吸困难了),无奈只有掐灭蚊香,打开窗户,终于,新鲜的空气伴随着新鲜的蚊子又进来了。\n灭蚊灯、灭蚊拍也收效甚微。灭蚊战争暂告一段落,蚊子暂时领先。\n先这样吧,实在不行就拿手拍吧,要是懒得拍就猛开空调把他们冻死,再或者,如果我的反应足够灵敏的话,我就在它们叮我的那一刹那,暗运内力把它们的嘴夹在肌肉里,我憋死它们!\n","date":"2007-06-17T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/","title":"灭蚊记"},{"content":"如果有那么一天,我在沙滩上走着,突然从沙子里踢出一个神灯,我擦了三下,彭!的一声窜出一个魔鬼,对我龇牙咧嘴,非得满足我三个愿望。\n那么,我会许什么愿呢?我不会像周星驰那样无耻,许完了两个愿望后最后一个愿望竟是再要三个愿望。\n我想我也应该不那么自私,我会把头两个愿望交给公益事业,比如世界和平、环境保护啥的,然后留一个愿望给自己,那就是\u0026ndash;我想睡个自然醒。\n自从告别了自在潇洒的大学生活,参加工作以后,我就没有睡够过,也不是完全没有时间睡觉,而是能有机会睡懒觉的时候我都睡不着。\n在一周里里面,工作日期间肯定没睡懒觉的可能,一大早就狂奔到车站去挤车了,晚上又很晚才睡,所以这期间是十分缺觉的。\n只有周末的早晨才能有机会赖在床上,可是问题来了,周末的早晨我倍儿精神!平日里闹钟响了还想把它摁掉再小睡一会儿,可一旦到了周末,我往往比闹钟醒的还早,而且再也睡不着。\n这是为什么呢,苦苦思索之后,得到答案:周末是属于我自己的自由时间而且很短暂,我不舍的拿这点儿宝贵时间来睡觉!\n平时没时间干的我只有等到周末了,平时听不了音乐就周末抱着音响使劲儿听,平时没时间弹琴就等到周末抱着电子琴使劲儿得瑟,平时没时间摄影等到周末就溜达出去一通狂拍\u0026hellip;\u0026hellip;等等,有这些个好事儿等着我,我就算是想睡也真就睡不着了。 所以,我也不祈求啥别的太奢侈的事儿,就让我睡个自然醒吧。\n","date":"2007-06-16T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/","title":"自然醒"},{"content":"老家那边有些事儿需要老婆回去处理一下,用不了几天,可是转眼已经一个周过去了,据说还需要再呆几天才能回北京来。\n哎!郁闷呐!按照道理来说,作为一个正常的男人如果老婆回了娘家,那他应该感到万分的高兴才是(我曾经有个同事,从来都不吭声,结果有一次哼了一整天的小曲儿,一问才知道,人家老婆大人回娘家去了)。\n高兴是高兴,可是晚饭没有着落了,眼看着冰箱里的东西被我一点点地吃光了,就连平时不爱吃的饺子也在前天被我从冰箱的最底层翻了出来。\n家里实在没吃的那就在外面吃吧,昨晚上刚好有饭局,不吃白不吃啊,结果上当了,几个哥们儿都是贪杯的主儿,白的喝完换啤的,啤的喝完换冰的,一直喝到丧心病狂\u0026hellip;\u0026hellip;饭还没吃上几口。\n搞得今天蔫了吧唧不说,还浑身上火,鼻炎发作,咽炎发作,苦不堪言。\n站起来,叹了口气,转身就看到洗衣机里的衣服也快堆成小山了,都说能把袜子按颜色分类的男人和把袜子随便乱扔的男人是两种不同的生物,我显然是属于后者,看来只有等到周末统一解决了。\n","date":"2007-06-15T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/","title":"老婆回家的第七天"},{"content":" 高考刚过,每年的这个时候都会有一大帮人在哪儿声泪俱下的控诉这万恶的高考制度。\n我也讨厌高考,但是在我的记忆里,另一种考试制度更令我恶心,那就是\u0026mdash;-抽考!\n在我上小学的时后,比较害怕的就是考试了,但最让我感到不安的是每个班级选拔“尖子生”的过程。\n那个时候每到期末每个班级总是抽出学习成绩最好的几个同学参加镇上的抽考,他们的考试成绩直接代表了整个班级的学习成绩,也代表了老师的教学水平。\n私下里大家管抽到的这些学生叫“尖子生”。\n从小学到初中我几乎一路是“尖子生”,至于为什么要有“尖子生”,这样考试有什么意义我就不去想了,只知道如果被老师抽到当“尖子生”就全家开心,我在家也可以放肆一些,万一抽不到就没人给我好脸色。\n好在屡次的抽考过程中我只有两次没有被选中,不知是幸运还是不幸。\n其中一次是在小学二年级的时候,虽然没有被选中,但是也参加了考试(数学替考),当时我的情况是语文极差但数学很好(至少比那些“尖子”要好一些),老师为了他们的荣誉,便让我替另外一个考生参加了数学考试,试卷虽然是我答的却不能填写我的名字。\n好在当时也没什么自尊心,也就爽快的答应了,现在想一想作为老师也太不应该了。(这也是我后来虽念了师范却最终没有选择做老师的原因之一)。\n到后来就越来越抵制这种虚伪的考试,大概是四年级,我越来越贪玩,成绩真的不行了,要期末考试了,老师们纷纷挑选“尖子”,刚开始还被提名,后来经过多层过滤,勉强坚持到了最后一轮评测,直到我们伟大的辛勤的园丁说:“好了,那谁,你回去吧,其他人留下”。\n于是我提着书包灰溜溜回家,心里却说不出的高兴,不用去参加TMD关系到班集体荣誉的考试了!爽!哼哼,我冷笑,冷笑。现在回忆起来,脑子里仍旧充斥着老师们那因为贪图班级的名次而扭曲的面容(这就是原因之二)。\n不知道现在怎么样了,在当时,这样的考试制度,它伤了太多太多孩子的心。ps:今日饮酒过渡沉醉不知归路兴尽打车走误入小区深处呕吐、呕吐引来保安无数!\n","date":"2007-06-14T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/","title":"抽考"},{"content":"早晨,NB烘烘的中国移动给我发天气预报说是阴转多云,在分析了昨晚电视上的预报加上收音机告诉我的降水概率后,我确定今天不会下雨,然后非常自信的没带伞就上班了,虽然头上的天阴的要滴水似的。\n谁知现在的天气预报已经不准确到让人发指的地步了!从下车到家的那段路程我只好雨中快步了(跑啊)。\n不是说现在计算机运算速度越来越快了吗?\n不是说建立的数据模型越来越接近真实了吗?\n不是说那什么风云N号也升空了吗?\n嗯?!忽悠谁啊!\n上次就报给我说最近西伯利亚那边有情况,未来几天有大风降温的天气,搞得我捂了一身痱子!现在到处是天气预报,各大网站上有,报纸上有,QQ上有,收音机、电视就更有了,而且还花样儿繁多,一会儿是穿衣指数,一会儿又洗车指数,最后还忽悠你个降水概率,有雨就有雨没雨就没雨,整个指数百分之60鬼才知道到底要不要下!\n当然了,他们有预报准确的时候,那就是对局部地区的天气预报,反正局部地区天天要下雨甚至还有短时间的雷雨大风等强对流天气。\n我妈就曾经十分关切的问我:“为什么局部地区天天下雨,这个地区到底在哪儿?住在那儿的人可怎么活哟!”\n算啦,也不跟他们计较,我还是回去翻翻小学的语文课本,好好拜读一下里面的那篇《看云识天气》,以后再也不相信这GR的天气预报了!\n慢着,突然想起了倪萍大婶子曾经在“综艺大观”上做的即兴方言版天气预报,啧啧,那叫一个准啊!\n“社员同志们注意啦,哈。这个山东省荣成县寨子沟公社刘家村广播站现在开始播送天气预报,哈。这个明天头半晌儿阴有小雨儿,后半晌儿就变天了。南风转西北风7-8级。这个凄凄沥沥的小雨儿夹着嗖嗖的西北风,今儿刮,明儿刮儿,后儿还刮,一直刮到下个星期六,哈。这个咱再接着说天气预报。这个西北风一刮,这回最大的特点就是龙卷风,龙卷风啊,粮食要最重\u0026hellip;.” ","date":"2007-06-13T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/","title":"天气预报"},{"content":"初来北京的时候,家里托着亲戚的亲戚的关系让我在一家单位实习,就像鲁迅小说里写的那样,掌柜的是一副凶脸孔,主顾也没有好声气。\n那时我一个人住在前门外大栅栏里的一家小旅馆里。\n我住的胡同往北走几步一拐就是北京著名的“大栅栏步行街”,那儿有着浓厚的京味儿,经常看到成群的外国鬼子。\n他们不停的拍照,吃小吃,买工艺品,所以这里一天到晚人山人海热闹非凡。有时候我也去转转,只是转转,并不买东西,那些让老外一看见就双眼冒光的玩意儿对我并没有多大吸引力。\n小王,我住的旅店里的服务员,瘦瘦的,头戴一顶鸭舌帽,手腕上戴了一只便宜手表。\n一天下午,我一个人站在楼顶上特别无聊,正好小王上来,我递给他一根“中南海”\n他笑笑接住说:“一个人在外无聊吧?”\n我说:“是”他说“那我就给你讲讲这一片儿的故事吧!”\n于是他就趴在栏杆上给我说了一通关于这个胡同的故事,说了这一带在清朝是曾经全是窑子。\n他抽了不少烟,我说“中南海这烟太冲了这边有没有柔和一点儿的烟?”\n他想了想说:“我抽的都是便宜烟,恩,不过便宜好抽就行\u0026hellip;”\n他给我说了两种。我到了晚上买来抽了几支觉得不好抽(那时我还不怎么抽烟)就都送给他了。\n以后就时常在一起谈天,混得很熟了,他经常早早的就把我的暖壶打满开水给提上来。\n只是又过了两三天,我一直也没见到小王,一问店老板才知道:“他回老家了,他是离家出走才来到这个小店的,没钱了,才在这儿打工,不求挣钱只要有吃有睡就行,前两天他哥哥找到这里就把他带回去了。”\n老板很惋惜:“多好的孩子呀!”\n","date":"2007-06-12T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/","title":"小王"},{"content":"早晨的阳光真灿烂,虽然天气湿热有点儿桑拿天的苗头,但是我的心情很好,阳光洒在我的工作服上像是镶了金边,很是耀眼。\n对了,我是一个环卫工人,每天早晨都要在这儿清扫垃圾,这个工作是很神圣的,至少我这么认为,虽然和小时候的梦想(艺术家)差得很远,但是用某位相声演员的话说“这是一样一样一样的啊”!\n我愉快地拿起扫把,自在地吹着口哨,再把这条街扫完就可以收工了。\n我不由得加快了速度挥舞着扫把就像一个画家挥舞着手中的画笔,我气沉丹田暗用内力,短小的扫把被我使得是呼呼生风,卷起的沙尘就像一层薄雾。\n这个时候你出现了,挎着小包,下了公共汽车,高跟鞋踩在平坦的人行道上发出清脆的得得响,你的小手微微举起遮住当前还不算猛烈的太阳。真漂亮啊!我暗自赞道。\n上学时很不努力导致我的眼神儿非常好,我想,在工作时看到美女也算是一种福利吧!\n看着你向我走来,越走越近,不知是热的还是累得,我的手心开始出汗,我攥紧了扫把更卖力的扫了起来,地上的落叶伴随着纸片在沙尘中轻轻飞舞。\n你终于走到我的身边,冲我使劲的挥手,这么近的距离我终于看清了你的眼睛,很大、很圆,长长的睫毛。\n你竟然停下了脚步,盯住我迷离的眼神和唏嘘的胡茬,我期盼着你能给我说些什么,虽然黑夜给了你黑色的眼睛,但你却翻了个白眼儿给我:“你就不能轻点儿扫吗!还让不让人走路了!”。\n","date":"2007-06-11T00:00:00Z","permalink":"https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/","title":"早晨的阳光真是灿烂"}] \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 000000000..65639098c --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://sbabybird.github.io/2023-09-26T00:00:00+00:00https://sbabybird.github.io/categories/2023-09-26T00:00:00+00:00https://sbabybird.github.io/post/2023-09-26T00:00:00+00:00https://sbabybird.github.io/tags/2023-09-26T00:00:00+00:00https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/2023-09-26T00:00:00+00:00https://sbabybird.github.io/categories/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/2023-09-26T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26T00:00:00+00:00https://sbabybird.github.io/tags/github/2023-09-21T00:00:00+00:00https://sbabybird.github.io/tags/howto/2023-09-21T00:00:00+00:00https://sbabybird.github.io/categories/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8/2023-09-21T00:00:00+00:00https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-11T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-12T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-12T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/2022-09-28T00:00:00+00:00https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/2022-04-23T00:00:00+00:00https://sbabybird.github.io/tags/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/2022-04-23T00:00:00+00:00https://sbabybird.github.io/categories/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/2022-04-23T00:00:00+00:00https://sbabybird.github.io/archives/2022-03-06T00:00:00+00:00https://sbabybird.github.io/page/2022-03-06T00:00:00+00:00https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/2021-04-18T00:00:00+00:00https://sbabybird.github.io/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/2021-04-18T00:00:00+00:00https://sbabybird.github.io/tags/%E5%BF%83%E7%90%86%E5%AD%A6/2021-04-18T00:00:00+00:00https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/2021-04-15T00:00:00+00:00https://sbabybird.github.io/tags/%E7%AE%A1%E7%90%86/2021-04-15T00:00:00+00:00https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/2021-02-10T00:00:00+00:00https://sbabybird.github.io/tags/%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/2021-02-10T00:00:00+00:00https://sbabybird.github.io/categories/%E9%9A%8F%E7%AC%94/2021-02-10T00:00:00+00:00https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/2020-01-01T00:00:00+00:00https://sbabybird.github.io/categories/%E5%8D%9A%E5%AE%A2%E6%97%A5%E8%AE%B0/2020-01-01T00:00:00+00:00https://sbabybird.github.io/tags/%E6%AF%8F%E5%91%A8%E4%BA%94%E7%99%BE%E5%AD%97/2020-01-01T00:00:00+00:00https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/2019-06-02T00:00:00+00:00https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/2019-06-02T00:00:00+00:00https://sbabybird.github.io/categories/%E5%AD%A6%E4%B9%A0/2019-06-02T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/2019-05-18T00:00:00+00:00https://sbabybird.github.io/tags/%E5%AE%B6%E5%BA%AD/2019-05-09T00:00:00+00:00https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/2019-05-09T00:00:00+00:00https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/2019-05-07T00:00:00+00:00https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/2019-04-30T00:00:00+00:00https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/2019-01-01T00:00:00+00:00https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/2018-07-19T00:00:00+00:00https://sbabybird.github.io/tags/%E5%BF%83%E5%BE%97/2018-07-19T00:00:00+00:00https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/2018-01-01T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/2017-11-18T00:00:00+00:00https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/2017-07-07T00:00:00+00:00https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/2017-04-23T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/2017-02-18T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/2017-02-11T00:00:00+00:00https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/2017-01-02T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/2016-12-24T00:00:00+00:00https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/2016-12-10T00:00:00+00:00https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/2016-12-04T00:00:00+00:00https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/2016-11-27T00:00:00+00:00https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/2016-11-20T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/2016-11-12T00:00:00+00:00https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/2016-11-06T00:00:00+00:00https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/2016-10-27T00:00:00+00:00https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/2016-10-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/2016-10-07T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/2016-09-24T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/2016-09-17T00:00:00+00:00https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/2016-09-10T00:00:00+00:00https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/2016-09-03T00:00:00+00:00https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/2016-08-27T00:00:00+00:00https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/2016-08-20T00:00:00+00:00https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/2016-08-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/2016-08-07T00:00:00+00:00https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/2016-07-30T00:00:00+00:00https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/2016-07-23T00:00:00+00:00https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/2016-07-16T00:00:00+00:00https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/2016-07-09T00:00:00+00:00https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/2016-07-02T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/2016-06-25T00:00:00+00:00https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/2016-06-18T00:00:00+00:00https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/2016-06-13T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/2016-06-11T00:00:00+00:00https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/2016-06-04T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/2016-05-28T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/2016-05-21T00:00:00+00:00https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/2016-05-14T00:00:00+00:00https://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/2016-05-07T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/2016-04-30T00:00:00+00:00https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/2016-04-23T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/2016-04-09T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/2016-04-02T00:00:00+00:00https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/2016-03-26T00:00:00+00:00https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/2016-03-19T00:00:00+00:00https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/2016-03-12T00:00:00+00:00https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/2016-03-05T00:00:00+00:00https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/2016-02-27T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/2016-02-20T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/2016-02-13T00:00:00+00:00https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/2016-02-06T00:00:00+00:00https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/2016-01-30T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/2016-01-23T00:00:00+00:00https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/2016-01-16T00:00:00+00:00https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/2016-01-09T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/2016-01-04T00:00:00+00:00https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/2016-01-02T00:00:00+00:00https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/2015-12-26T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/2015-12-20T00:00:00+00:00https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/2015-12-13T00:00:00+00:00https://sbabybird.github.io/p/life-is-short/2015-12-06T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/2015-11-29T00:00:00+00:00https://sbabybird.github.io/tags/exercise/2015-01-05T00:00:00+00:00https://sbabybird.github.io/tags/lisp/2015-01-05T00:00:00+00:00https://sbabybird.github.io/tags/programming/2015-01-05T00:00:00+00:00https://sbabybird.github.io/categories/sicp/2015-01-05T00:00:00+00:00https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/2015-01-05T00:00:00+00:00https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/2015-01-04T00:00:00+00:00https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/2015-01-03T00:00:00+00:00https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/2014-12-29T00:00:00+00:00https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/2014-12-27T00:00:00+00:00https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/2014-12-23T00:00:00+00:00https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/2014-12-19T00:00:00+00:00https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/2014-12-19T00:00:00+00:00https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/2014-12-15T00:00:00+00:00https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/2014-12-15T00:00:00+00:00https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/2014-12-15T00:00:00+00:00https://sbabybird.github.io/categories/misc/2014-02-13T00:00:00+00:00https://sbabybird.github.io/tags/wifi/2014-02-13T00:00:00+00:00https://sbabybird.github.io/tags/win8/2014-02-13T00:00:00+00:00https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/2014-02-13T00:00:00+00:00https://sbabybird.github.io/categories/develop/2013-11-07T00:00:00+00:00https://sbabybird.github.io/tags/mongodb/2013-11-07T00:00:00+00:00https://sbabybird.github.io/tags/vs2008/2013-11-07T00:00:00+00:00https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/2013-11-07T00:00:00+00:00https://sbabybird.github.io/tags/about/2013-04-29T00:00:00+00:00https://sbabybird.github.io/tags/hello/2013-04-29T00:00:00+00:00https://sbabybird.github.io/categories/hello/2013-04-29T00:00:00+00:00https://sbabybird.github.io/p/hello-world/2013-04-29T00:00:00+00:00https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/2010-10-07T00:00:00+00:00https://sbabybird.github.io/tags/%E5%BF%83%E6%83%85%E9%9A%8F%E7%AC%94/2010-10-07T00:00:00+00:00https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/2010-09-02T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/2010-08-26T00:00:00+00:00https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/2010-06-23T00:00:00+00:00https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/2010-06-20T00:00:00+00:00https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/2010-06-06T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/2010-05-30T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/2010-05-17T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/2010-05-16T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/2010-05-14T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/2010-05-12T00:00:00+00:00https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/2010-05-11T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/2010-05-10T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/2010-05-09T00:00:00+00:00https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/2010-05-07T00:00:00+00:00https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/2010-05-06T00:00:00+00:00https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/2010-05-04T00:00:00+00:00https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/2010-05-03T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/2010-05-01T00:00:00+00:00https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/2010-04-29T00:00:00+00:00https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/2010-04-28T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/2010-04-27T00:00:00+00:00https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/2010-04-26T00:00:00+00:00https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/2010-04-25T00:00:00+00:00https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/2010-04-23T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/2010-04-22T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/2010-04-21T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/2010-04-18T00:00:00+00:00https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/2010-04-18T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/2010-04-15T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/2010-04-13T00:00:00+00:00https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/2010-04-12T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/2010-04-11T00:00:00+00:00https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/2010-04-09T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/2010-04-08T00:00:00+00:00https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/2010-04-07T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/2010-04-06T00:00:00+00:00https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/2010-04-04T00:00:00+00:00https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/2010-04-03T00:00:00+00:00https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/2010-04-01T00:00:00+00:00https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/2010-03-30T00:00:00+00:00https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/2010-03-29T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/2010-03-28T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/2010-03-28T00:00:00+00:00https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/2010-03-27T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/2010-03-24T00:00:00+00:00https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/2010-03-23T00:00:00+00:00https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/2010-03-22T00:00:00+00:00https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/2010-03-21T00:00:00+00:00https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/2010-03-20T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/2010-03-18T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/2010-03-17T00:00:00+00:00https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/2010-03-16T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/2010-03-15T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/2010-03-14T00:00:00+00:00https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/2010-03-14T00:00:00+00:00https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/2010-03-12T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/2010-03-11T00:00:00+00:00https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/2010-03-10T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/2010-03-10T00:00:00+00:00https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/2010-03-09T00:00:00+00:00https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/2010-03-08T00:00:00+00:00https://sbabybird.github.io/p/this-blog-is-shutdown/2010-02-05T00:00:00+00:00https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/2010-01-28T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/2010-01-27T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/2010-01-26T00:00:00+00:00https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/2010-01-24T00:00:00+00:00https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/2010-01-23T00:00:00+00:00https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/2010-01-21T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/2010-01-20T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/2010-01-19T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/2010-01-18T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/2010-01-17T00:00:00+00:00https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/2010-01-15T00:00:00+00:00https://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/2010-01-14T00:00:00+00:00https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/2010-01-13T00:00:00+00:00https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/2010-01-12T00:00:00+00:00https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/2010-01-11T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/2010-01-10T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/2010-01-09T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/2010-01-09T00:00:00+00:00https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/2010-01-07T00:00:00+00:00https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/2010-01-06T00:00:00+00:00https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/2010-01-05T00:00:00+00:00https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/2010-01-04T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/2010-01-03T00:00:00+00:00https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/2010-01-02T00:00:00+00:00https://sbabybird.github.io/p/goodbye2009hello2010/2009-12-31T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/2009-12-30T00:00:00+00:00https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/2009-12-29T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/2009-12-28T00:00:00+00:00https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/2009-12-27T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/2009-12-26T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/2009-12-25T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/2009-12-24T00:00:00+00:00https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/2009-12-23T00:00:00+00:00https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/2009-12-22T00:00:00+00:00https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/2009-12-21T00:00:00+00:00https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/2009-12-20T00:00:00+00:00https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/2009-12-19T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/2009-12-18T00:00:00+00:00https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/2009-12-17T00:00:00+00:00https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/2009-12-16T00:00:00+00:00https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/2009-12-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/2009-12-14T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/2009-12-13T00:00:00+00:00https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/2009-12-11T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/2009-12-10T00:00:00+00:00https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/2009-12-08T00:00:00+00:00https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/2009-12-07T00:00:00+00:00https://sbabybird.github.io/p/test/2009-12-06T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/2009-12-06T00:00:00+00:00https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/2009-12-05T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/2009-12-04T00:00:00+00:00https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/2009-12-03T00:00:00+00:00https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/2009-12-02T00:00:00+00:00https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/2009-12-01T00:00:00+00:00https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/2009-11-30T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/2009-11-29T00:00:00+00:00https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/2009-11-28T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/2009-11-27T00:00:00+00:00https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/2009-11-26T00:00:00+00:00https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/2009-11-25T00:00:00+00:00https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/2009-11-24T00:00:00+00:00https://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/2009-11-23T00:00:00+00:00https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/2009-11-22T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/2009-11-20T00:00:00+00:00https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/2009-11-19T00:00:00+00:00https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/2009-11-18T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/2009-11-17T00:00:00+00:00https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/2009-11-16T00:00:00+00:00https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/2009-11-15T00:00:00+00:00https://sbabybird.github.io/p/%E5%94%89/2009-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/2009-11-12T00:00:00+00:00https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/2009-11-11T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/2009-11-10T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/2009-11-09T00:00:00+00:00https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/2009-11-08T00:00:00+00:00https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/2009-11-06T00:00:00+00:00https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/2009-11-05T00:00:00+00:00https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/2009-11-04T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/2009-11-03T00:00:00+00:00https://sbabybird.github.io/p/%E6%9A%96/2009-11-02T00:00:00+00:00https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/2009-11-01T00:00:00+00:00https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/2009-10-30T00:00:00+00:00https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/2009-10-29T00:00:00+00:00https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/2009-10-28T00:00:00+00:00https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/2009-10-27T00:00:00+00:00https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/2009-10-14T00:00:00+00:00https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/2009-10-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/2009-09-30T00:00:00+00:00https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/2009-09-29T00:00:00+00:00https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/2009-09-28T00:00:00+00:00https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/2009-09-27T00:00:00+00:00https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/2009-09-26T00:00:00+00:00https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/2009-09-25T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/2009-09-24T00:00:00+00:00https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/2009-09-23T00:00:00+00:00https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/2009-09-22T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/2009-09-21T00:00:00+00:00https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/2009-09-20T00:00:00+00:00https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/2009-09-19T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/2009-09-18T00:00:00+00:00https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/2009-07-20T00:00:00+00:00https://sbabybird.github.io/p/%E8%B5%B6/2009-06-13T00:00:00+00:00https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/2009-06-12T00:00:00+00:00https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/2009-06-11T00:00:00+00:00https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/2009-06-10T00:00:00+00:00https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/2009-06-09T00:00:00+00:00https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/2009-06-05T00:00:00+00:00https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/2009-06-03T00:00:00+00:00https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/2009-05-31T00:00:00+00:00https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/2009-05-31T00:00:00+00:00https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/2009-05-29T00:00:00+00:00https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/2009-05-27T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/2009-05-26T00:00:00+00:00https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/2009-05-25T00:00:00+00:00https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/2009-05-23T00:00:00+00:00https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/2009-05-21T00:00:00+00:00https://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/2009-05-20T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/2009-05-19T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/2009-05-18T00:00:00+00:00https://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/2009-05-17T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/2009-04-22T00:00:00+00:00https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/2009-04-15T00:00:00+00:00https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/2009-03-29T00:00:00+00:00https://sbabybird.github.io/p/if-you-want-me/2009-03-27T00:00:00+00:00https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/2009-03-27T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/2009-03-26T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/2009-03-24T00:00:00+00:00https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/2009-03-23T00:00:00+00:00https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/2009-03-18T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/2009-03-16T00:00:00+00:00https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/2009-03-15T00:00:00+00:00https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/2009-03-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/2009-03-14T00:00:00+00:00https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/2009-03-14T00:00:00+00:00https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/2009-03-12T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/2009-03-11T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/2009-03-10T00:00:00+00:00https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/2009-03-09T00:00:00+00:00https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/2009-03-08T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/2009-02-19T00:00:00+00:00https://sbabybird.github.io/p/%E5%92%A6/2009-02-04T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/2009-02-01T00:00:00+00:00https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/2009-01-25T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/2009-01-24T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/2009-01-22T00:00:00+00:00https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/2009-01-21T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/2009-01-20T00:00:00+00:00https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/2009-01-19T00:00:00+00:00https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/2009-01-19T00:00:00+00:00https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/2009-01-17T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/2009-01-16T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/2009-01-15T00:00:00+00:00https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/2009-01-14T00:00:00+00:00https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/2009-01-13T00:00:00+00:00https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/2009-01-12T00:00:00+00:00https://sbabybird.github.io/p/%E7%BB%AD/2009-01-08T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/2009-01-07T00:00:00+00:00https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/2009-01-06T00:00:00+00:00https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/2009-01-05T00:00:00+00:00https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/2009-01-04T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/2009-01-03T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/2009-01-02T00:00:00+00:00https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/2009-01-01T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/2008-12-31T00:00:00+00:00https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/2008-12-29T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/2008-12-28T00:00:00+00:00https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/2008-12-26T00:00:00+00:00https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/2008-12-25T00:00:00+00:00https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/2008-12-25T00:00:00+00:00https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/2008-12-23T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/2008-12-22T00:00:00+00:00https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/2008-12-21T00:00:00+00:00https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/2008-12-20T00:00:00+00:00https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/2008-12-19T00:00:00+00:00https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/2008-12-18T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/2008-12-17T00:00:00+00:00https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/2008-12-16T00:00:00+00:00https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/2008-12-15T00:00:00+00:00https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/2008-12-14T00:00:00+00:00https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/2008-12-13T00:00:00+00:00https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/2008-12-12T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/2008-12-11T00:00:00+00:00https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/2008-12-10T00:00:00+00:00https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/2008-12-10T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/2008-12-09T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/2008-12-08T00:00:00+00:00https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/2008-12-07T00:00:00+00:00https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/2008-12-05T00:00:00+00:00https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/2008-12-03T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/2008-12-03T00:00:00+00:00https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/2008-12-02T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/2008-12-01T00:00:00+00:00https://sbabybird.github.io/p/update/2008-11-30T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/2008-11-29T00:00:00+00:00https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/2008-11-27T00:00:00+00:00https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/2008-11-26T00:00:00+00:00https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/2008-11-25T00:00:00+00:00https://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/2008-11-24T00:00:00+00:00https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/2008-11-23T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/2008-11-22T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/2008-11-21T00:00:00+00:00https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/2008-11-20T00:00:00+00:00https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/2008-11-19T00:00:00+00:00https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/2008-11-18T00:00:00+00:00https://sbabybird.github.io/p/%E9%A3%8E/2008-11-17T00:00:00+00:00https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/2008-11-16T00:00:00+00:00https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/2008-11-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/2008-11-15T00:00:00+00:00https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/2008-11-15T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/2008-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/2008-11-12T00:00:00+00:00https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/2008-11-12T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/2008-11-10T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/2008-11-09T00:00:00+00:00https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/2008-11-08T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/2008-11-08T00:00:00+00:00https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/2008-11-07T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/2008-11-06T00:00:00+00:00https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/2008-11-05T00:00:00+00:00https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/2008-11-04T00:00:00+00:00https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/2008-11-02T00:00:00+00:00https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/2008-11-01T00:00:00+00:00https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/2008-11-01T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/2008-10-06T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/2008-09-13T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/2008-08-09T00:00:00+00:00https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/2008-07-31T00:00:00+00:00https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/2008-07-28T00:00:00+00:00https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/2008-07-25T00:00:00+00:00https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/2008-07-23T00:00:00+00:00https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/2008-07-22T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/2008-07-21T00:00:00+00:00https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/2008-07-21T00:00:00+00:00https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/2008-07-15T00:00:00+00:00https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/2008-07-14T00:00:00+00:00https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/2008-07-13T00:00:00+00:00https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/2008-07-12T00:00:00+00:00https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/2008-07-11T00:00:00+00:00https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/2008-07-10T00:00:00+00:00https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/2008-07-09T00:00:00+00:00https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/2008-07-08T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/2008-07-07T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/2008-07-06T00:00:00+00:00https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/2008-07-05T00:00:00+00:00https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/2008-07-05T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/2008-07-04T00:00:00+00:00https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/2008-07-03T00:00:00+00:00https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/2008-07-02T00:00:00+00:00https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/2008-07-01T00:00:00+00:00https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/2008-06-30T00:00:00+00:00https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/2008-06-29T00:00:00+00:00https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/2008-06-28T00:00:00+00:00https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/2008-06-22T00:00:00+00:00https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/2008-06-20T00:00:00+00:00https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/2008-06-16T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/2008-06-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/2008-06-09T00:00:00+00:00https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/2008-05-28T00:00:00+00:00https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/2008-05-26T00:00:00+00:00https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/2008-05-23T00:00:00+00:00https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/2008-05-22T00:00:00+00:00https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/2008-05-21T00:00:00+00:00https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/2008-05-20T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/2008-05-11T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/2008-04-25T00:00:00+00:00https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/2008-03-28T00:00:00+00:00https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/2008-03-26T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/2008-03-23T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/2008-03-21T00:00:00+00:00https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/2008-03-20T00:00:00+00:00https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/2008-03-05T00:00:00+00:00https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/2008-03-01T00:00:00+00:00https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/2008-02-27T00:00:00+00:00https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/2008-02-16T00:00:00+00:00https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/2008-02-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/2008-02-01T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/2008-01-31T00:00:00+00:00https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/2008-01-29T00:00:00+00:00https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/2008-01-14T00:00:00+00:00https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/2008-01-03T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/2007-12-31T00:00:00+00:00https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/2007-12-29T00:00:00+00:00https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/2007-12-26T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/2007-12-24T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/2007-12-22T00:00:00+00:00https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/2007-12-19T00:00:00+00:00https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/2007-12-19T00:00:00+00:00https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/2007-12-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/2007-12-14T00:00:00+00:00https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/2007-12-13T00:00:00+00:00https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/2007-12-10T00:00:00+00:00https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/2007-12-08T00:00:00+00:00https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/2007-12-06T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/2007-12-05T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/2007-12-03T00:00:00+00:00https://sbabybird.github.io/p/a-dream/2007-11-17T00:00:00+00:00https://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/2007-11-17T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/2007-11-15T00:00:00+00:00https://sbabybird.github.io/p/hello-android/2007-11-14T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/2007-11-14T00:00:00+00:00https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E4%BC%AAlomo/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/2007-11-13T00:00:00+00:00https://sbabybird.github.io/p/under-a-violet-moon/2007-09-22T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/2007-08-28T00:00:00+00:00https://sbabybird.github.io/p/what-ive-done/2007-08-18T00:00:00+00:00https://sbabybird.github.io/p/dont-cry/2007-08-11T00:00:00+00:00https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/2007-08-04T00:00:00+00:00https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/2007-08-04T00:00:00+00:00https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/2007-07-30T00:00:00+00:00https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/2007-07-29T00:00:00+00:00https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/2007-07-24T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/2007-07-23T00:00:00+00:00https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/2007-07-21T00:00:00+00:00https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/2007-07-20T00:00:00+00:00https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/2007-07-20T00:00:00+00:00https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/2007-07-12T00:00:00+00:00https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/2007-07-06T00:00:00+00:00https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/2007-07-04T00:00:00+00:00https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/2007-07-02T00:00:00+00:00https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/2007-06-30T00:00:00+00:00https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/2007-06-30T00:00:00+00:00https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/2007-06-28T00:00:00+00:00https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/2007-06-27T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/2007-06-27T00:00:00+00:00https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/2007-06-19T00:00:00+00:00https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/2007-06-18T00:00:00+00:00https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/2007-06-17T00:00:00+00:00https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/2007-06-16T00:00:00+00:00https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/2007-06-15T00:00:00+00:00https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/2007-06-14T00:00:00+00:00https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/2007-06-13T00:00:00+00:00https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/2007-06-12T00:00:00+00:00https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/2007-06-11T00:00:00+00:00https://sbabybird.github.io/links/https://sbabybird.github.io/search/ \ No newline at end of file diff --git a/tags/about/index.html b/tags/about/index.html new file mode 100644 index 000000000..e6bab84e1 --- /dev/null +++ b/tags/about/index.html @@ -0,0 +1,32 @@ +Tag: about - Learning & Writing! +

Tags

about

+ \ No newline at end of file diff --git a/tags/about/index.xml b/tags/about/index.xml new file mode 100644 index 000000000..281fcc603 --- /dev/null +++ b/tags/about/index.xml @@ -0,0 +1,2 @@ +about on Learning & Writing!https://sbabybird.github.io/tags/about/Recent content in about on Learning & Writing!Hugo -- gohugo.iozh-cnMon, 29 Apr 2013 00:00:00 +0000Hello World!https://sbabybird.github.io/p/hello-world/Mon, 29 Apr 2013 00:00:00 +0000https://sbabybird.github.io/p/hello-world/<h2 id="hello">Hello</h2> +<h2 id="world">World</h2> \ No newline at end of file diff --git a/tags/about/page/1/index.html b/tags/about/page/1/index.html new file mode 100644 index 000000000..3526c10f7 --- /dev/null +++ b/tags/about/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/about/ \ No newline at end of file diff --git a/tags/exercise/index.html b/tags/exercise/index.html new file mode 100644 index 000000000..43627677a --- /dev/null +++ b/tags/exercise/index.html @@ -0,0 +1,33 @@ +Tag: exercise - Learning & Writing! +

Tags

exercise

+ \ No newline at end of file diff --git a/tags/exercise/index.xml b/tags/exercise/index.xml new file mode 100644 index 000000000..a310792c8 --- /dev/null +++ b/tags/exercise/index.xml @@ -0,0 +1,576 @@ +exercise on Learning & Writing!https://sbabybird.github.io/tags/exercise/Recent content in exercise on Learning & Writing!Hugo -- gohugo.iozh-cnMon, 05 Jan 2015 00:00:00 +0000SICP 课后练习题1.9https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/<h4 id="练习-19--下面两个过程各定义了一种加起两个正整数的方法他们都基于过程inc它将参数增加1和dec它将参数减少1-请用代换模型展示这两个过程在求值add-4-5时所产生的计算过程这些计算过程是递归的或者迭代的吗">练习 1.9 下面两个过程各定义了一种加起两个正整数的方法,他们都基于过程inc(它将参数增加1)和dec(它将参数减少1) 。请用代换模型展示这两个过程在求值<code>(add 4 5)</code>时所产生的计算过程。这些计算过程是递归的或者迭代的吗?</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nf">inc</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><p>解答:根据代换模型分别展开如下</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">5</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">5</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">6</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">7</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>根据展开可以看出,第一个计算过程是递归的,因为明显有一个逐步扩展然后又收缩的递归计算链条。第二个计算过程是迭代的,没有扩展、收缩的过程,而是使用a和b存储了常量。</p>SICP 课后练习题1.8https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/Mon, 29 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/<h4 id="练习-18-求立方根的牛顿法基于如下事实如果y是x的立方根的一个近似值那么下式将给出一个更好的近似值">练习 1.8 求立方根的牛顿法基于如下事实,如果y是x的立方根的一个近似值,那么下式将给出一个更好的近似值:</h4> +<p>$$ \frac{x/y^2+2y}{3} $$</p> +<p>请利用这一公式实现一个类似平方根过程的求立方根的过程。</p> +<p>解答:基本思路与求解平方根的实现是一致的,区别再有得到更好值<code>improve</code>的过程有变化,只需根据公式描述进行实现即可</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">/</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="nv">guess</span><span class="p">))</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="mi">3</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.7https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/Sat, 27 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/<h4 id="练习-17-对于确定很小的数的平方根而言在计算平方根中使用的检测good-enough是很不好的还有在现实的计算机里算术运算总是以一定的有限精度进行的这也会使我们的检测不适合非常大的数的计算请解释上述论断用例子说明对很小和很大的数这种检测都可能失败实现good-enough的另一种策略是监视猜测值在从一次迭代到下一次的变化情况当改变值相对于猜测值的比率很小时就结束请设计一个采用这种终止测试方式的平方根过程对于很大和很小的数这一方式都能工作吗">练习 1.7 对于确定很小的数的平方根而言,在计算平方根中使用的检测good-enough?是很不好的。还有,在现实的计算机里,算术运算总是以一定的有限精度进行的。这也会使我们的检测不适合非常大的数的计算。请解释上述论断,用例子说明对很小和很大的数,这种检测都可能失败。实现good-enough?的另一种策略是监视猜测值在从一次迭代到下一次的变化情况,当改变值相对于猜测值的比率很小时就结束。请设计一个采用这种终止测试方式的平方根过程。对于很大和很小的数,这一方式都能工作吗?</h4> +<p>解答:good-enough?当前采用的判断方式是,对比猜测值的平方结果与X的值之间的差距,当差距小于某个阙值时(比如0.001),就停止计算。当X很小或很大时,这种检测就会失败,比如,假设我们的阙值设置为0.001,那么当X本身小于这个阙值时,就会检测失败,得出错误结果,当X很大时,也会由于精度不足而一直达不到最佳猜测值,导致死循环。</p> +<p>因此,要解决这一问题,可以按照题目中给出的思路对good-enough?过程进行修改,不再判断猜测值平方与X的差距,而是判断两次猜测值之间的比率。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mf">0.00000000001</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.1622776601874535e-6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">100000000000000000000000000000000000000000000</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 1.0000000000001497e22</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>在新的<code>good-enough?</code>中,传入的是两次猜测值,所以还要修改<code>sqrt-iter</code>过程,在调用时计算两次猜测值。</p>SICP 课后练习题1.6https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/Tue, 23 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/<p>采用牛顿法求平方根的过程如下。开始时,我们有了被开方数的值(现在需要做的就是算出它的平方根)和一个猜测值。如果猜测值已经足够好了,有关工作也就完成了。如若不然,那么就需要改进猜测值(求出猜测值与被开方数除以猜测值的平均值),并重复这个计算过程。具体编写代码如下(在MIT scheme解释器中)。</p> +<p>定义<code>sqrt-iter</code>过程,与上述描述完全对应。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义改进猜测值的过程<code>improve</code>,返回猜测值与被开方数除以猜测值的平均值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">average</span> <span class="nv">guess</span> <span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="nv">guess</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: improve</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求平均数的过程<code>average</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">average</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: average</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义判断猜测值是否足够好的过程<code>good-enough?</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="p">(</span><span class="nf">square</span> <span class="nv">guess</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> <span class="mf">0.001</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求绝对值和平方的过程</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: abs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">square</span> <span class="nv">x</span><span class="p">)</span> <span class="p">(</span><span class="nb">* </span><span class="nv">x</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: square</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义最上层的过程,用于启动整个工作(使用<code>1</code>这个数字作为任何数的初始猜测值)。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">sqrt </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>执行<code>sqrt</code>过程,并以<code>9</code>为参数,求得平方根为<code>3</code></p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.00009155413138</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h4 id="练习16----alyssa-phacker看不出来为什么需要将if提供为一种特殊形式她问为什么我不能直接通过cond将它定义为一个常规过程呢alyssa的朋友eva-lu-ator断言确实可以这样做并定义了if的一个新版本">练习1.6 Alyssa P.Hacker看不出来为什么需要将if提供为一种特殊形式,她问:“为什么我不能直接通过<code>cond</code>将它定义为一个常规过程呢?”Alyssa的朋友Eva Lu Ator断言确实可以这样做,并定义了<code>if</code>的一个新版本:</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">new-if</span> <span class="nv">predicate</span> <span class="nv">then-clause</span> <span class="nv">else-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">cond </span><span class="p">(</span><span class="nf">predicate</span> <span class="nv">then-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">else </span><span class="nv">else-clause</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: new-if</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>Eva给Alyssa演示她的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">2</span> <span class="mi">3</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">5</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">1</span> <span class="mi">1</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>她很高兴地用自己的<code>new-if</code>重写了求平方根的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>当Alyssa试着用这个过程去计算平方根时会发生什么事情呢?请给出解释。</p> +<p>解答:</p> +<p>这个练习引入了一个新的思考,刚开始时,我以为是牵涉到了过程的局部参数概念,因为在新编写的<code>new-if</code>过程中,看似可以完成条件判断并返回正确的值,但是在本例中使用却存在问题,即在递归调用<code>sqrt-iter</code>时,传给该过程的<code>guess</code>和<code>x</code>为<code>new-if</code>的局部参数,被返回给了<code>new-if</code>这个过程,不会向上返回到上一层<code>sqrt-iter</code>里,这样就导致了改进的猜测值永远不会被使用,使得这个计算过程永远不会结束(除非第一个猜测值恰好合适),从而导致递归调用的陷入无限循环。我在<code>MIT-scheme</code>解释器里的执行结果是,解释器自动退出并提示我递归调用深度超出最大值。</p> +<p>上述看起来是合理的,但是后来我考虑了其他情况,及本书在前面章节里提到了if<code>(if &lt;predicate&gt; &lt;consequent&gt; &lt;alternative&gt;)</code>语句是条件表达式的受限形式,在执行时,先判断<code>predicate</code>是否为真,然后根据结果只执行其后<code>consequent/alternative</code>中的一个。如果使用本例新定义的<code>new-if</code>则作为普通过程执行,传入的参数会因为解释器使用应用序求值的原因,两个表达式都会被立即求值,反应到本例中就是<code>guess</code>和<code>(sqrt-iter (improve guess x) x)</code>都会被立即求值,后面的那句是属于递归调用,这样也会导致改进的猜测值永远不会被使用,陷入无限层的递归调用中。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Aborting!: maximum recursion depth exceeded</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>思考:</p> +<p>最初的时候,我的针对此题的思考方式是变量的作用域问题(可能lisp不会有此问题),后来发现,也许不是这样,而是由于对传入参数立即求值导致的,后续的网上搜索结果也显示出大家的答案都倾向于后者。</p>SICP 课后练习题1.4https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/<h4 id="练习14----请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型根据对这一模型的认识描述下面过程的行为">练习1.4 请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型,根据对这一模型的认识描述下面过程的行为。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.4,通过if判断,根据b的值决定对a b所使用的运算符是+还是-,如果b大于0,则组合式为(+ a b),反之则为(- a b),所以组合式结果永远返回a加上b的绝对值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: a-plus-abs-b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">-2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.5https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/<h4 id="练习15---ben-bitdiddle发明了一种检测方法能够确定解释器究竟采用哪种序求值是采用应用序还是正则序他定义了下面两个过程">练习1.5 Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用哪种序求值,是采用应用序,还是正则序。他定义了下面两个过程</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">p</span><span class="p">)</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">test</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span><span class="line"><span class="cl"> <span class="nv">y</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>而后他求值下面的表达式:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">test</span> <span class="mi">0</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>如果某个解释器采用的是应用序求值,Ben会看到什么样的情况?如果解释器采用正则序求值,他又会看到什么情况?请对你的回答做出解释。(无论采用正则序或者应用序,假定特殊形式if的求值规则总是一样的。其中的谓词部分先行求值,根据其结果确定随后求值的子表达式部分。)</p> +<p>练习1.5 『完全展开而后规约』的求值模型为正则序求值,『先求值参数而后应用』的方式为应用序求值,因此,在应用序求值的模式下,执行<code>(test 0 (p))</code>时会先求<code>(p)</code>这个表达式的值,而根据定义<code>(define (p) (p))</code>执行<code>(p)</code>会造成递归调用,解释器陷入死循环。而在正则序求值模式下,会先展开<code>test</code>过程,根据需要再决定是否执行<code>(p)</code>,在本例中,由于传入的<code>x</code>等于<code>0</code>,所以<code>(p)</code>不会被执行,因此不会陷入死循环。</p> +<p>所以,根据以上分析,如果解释器采用的是应用序求值,则解释器陷入死循环,如果是采用正则序求值,则解释器输出<code>;Value: 0</code>。</p>SICP 课后练习题1.1https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/<h4 id="练习11----下面是一系列表达式对于每个表达式解释器将输出什么结果假定这一系列表达式是按照给出的顺序逐个求值的">练习1.1 下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="mi">10</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 10</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> <span class="mi">3</span> <span class="mi">4</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 12</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">9</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 8</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 3</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">* </span><span class="mi">2</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="mi">4</span> <span class="mi">6</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">a</span> <span class="mi">3</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: a</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">b</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 19</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: #f</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="k">and </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">&lt; </span><span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"><span class="nv">b</span> +</span></span><span class="line"><span class="cl"><span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 4</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">4</span><span class="p">)</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">= </span><span class="nv">b</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="mi">7</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">25</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">2</span> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">&lt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">-1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.1的内容比较简单,基本上直接就可以计算出表达式的值,所有表达式都可以在mit-scheme的交互解释器里进行验证。</p>SICP 课后练习题1.2https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/<h4 id="练习12----请将下面表达式变换为前缀形式">练习1.2 请将下面表达式变换为前缀形式:</h4> +<p>$$ \frac{5+4+\Bigl(2-\Bigl(3-\left(6+\frac{4}{5}\right)\Bigr)\Bigr)}{3\left(6-2\right)\left(2-7\right)} $$</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> +</span></span><span class="line"><span class="cl"><span class="mi">4</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="p">(</span><span class="nb">/ </span><span class="mi">4</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: -37/150</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.2,直接将数学表达式转换为前序表达式即可,在写的时候可以遵循一下排版规则,即同一个运算符的表达式垂直对齐。</p>SICP 课后练习题1.3https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/<h4 id="练习13----请定义一个过程它以三个数为参数返回其中较大两个数之和">练习1.3 请定义一个过程,它以三个数为参数,返回其中较大两个数之和。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">max-three-number</span> <span class="nv">a</span> <span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">c</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">c</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">max-three-number</span> <span class="mi">42</span> <span class="mi">7</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 49</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.3,解决此练习中问题的方法比较多,本答案使用比较朴素的方法,先比较出最大的两个数字,然后将其相加,对于三个数字来说,先在前两个中选取一个大的,然后将其与后面两个中比较大的那一个相加。还有一种思路就是可以先定义出比较大小的方法,然后再调用之,或者先对数字按从小到大排序然后加最后两个,等等。</p> \ No newline at end of file diff --git a/tags/exercise/page/1/index.html b/tags/exercise/page/1/index.html new file mode 100644 index 000000000..898174f07 --- /dev/null +++ b/tags/exercise/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/exercise/ \ No newline at end of file diff --git a/tags/exercise/page/2/index.html b/tags/exercise/page/2/index.html new file mode 100644 index 000000000..ace2109dd --- /dev/null +++ b/tags/exercise/page/2/index.html @@ -0,0 +1,33 @@ +Tag: exercise - Learning & Writing! +

Tags

exercise

+ \ No newline at end of file diff --git a/tags/github/index.html b/tags/github/index.html new file mode 100644 index 000000000..0c2fae95f --- /dev/null +++ b/tags/github/index.html @@ -0,0 +1,32 @@ +Tag: github - Learning & Writing! +

Tags

github

+ \ No newline at end of file diff --git a/tags/github/index.xml b/tags/github/index.xml new file mode 100644 index 000000000..4d1ee2e33 --- /dev/null +++ b/tags/github/index.xml @@ -0,0 +1,218 @@ +github on Learning & Writing!https://sbabybird.github.io/tags/github/Recent content in github on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 21 Sep 2023 00:00:00 +0000基于 Github Pages 服务搭建个人博客https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Thu, 21 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-10-50.png" alt="Featured image of post 基于 Github Pages 服务搭建个人博客" /><h2 id="背景">背景</h2> +<p>搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。</p> +<p>但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。</p> +<p>经过多年的实践,现在已有越来越多的人选择了使用免费且易用的<a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +> GitHub Pages </a>服务来搭建个人博客。</p> +<p>然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。</p> +<p>他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。</p> +<p>这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。</p> +<p>本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。</p> +<h3 id="需要预先掌握的技能和前置条件">需要预先掌握的技能和前置条件</h3> +<p><em>需要先了解这些再往下阅读本文</em></p> +<ul> +<li>了解 Git 的概念和常用的操作,知道“分支”、“提交”、“推送”、“拉取”等概念。</li> +<li>拥有 Github 账号,并且能够独立完成“仓库创建”、“本地克隆”、“提交”、“推送”等操作。</li> +<li>了解“博客”本身只是一种“网站”:其内容由若干“网页”组成,读者通过浏览器访问博客网站所在的服务器以获取这些网页内容。</li> +</ul> +<h2 id="核心思路">核心思路</h2> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-20-10.png" +width="790" +height="258" +loading="lazy" +class="gallery-image" +data-flex-grow="306" +data-flex-basis="734px" +> +简单来说,核心步骤只有三步:内容编辑、页面生成、网站发布。接下来的介绍均围绕这三件事展开。</p> +<h3 id="内容编辑">内容编辑</h3> +<p>作者编写和编辑博客内容,包括编写文章、给文章配图、给文章归类等等活动都属于内容编辑。</p> +<h3 id="页面生成">页面生成</h3> +<p>如果希望将内容变成可发布的网站,则需要使用专用的软件工具(一般为<a class="link" href="https://baike.baidu.com/item/%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99/2776875" target="_blank" rel="noopener" +>静态网站</a>生成器)将编辑的内容自动生成可供浏览器显示的博客网站页面。</p> +<h3 id="网站发布">网站发布</h3> +<p>有了网站页面,还只是一堆存放在本地的文件。若要放到互联网上进行访问,还需要一个服务器提供服务,将网站发布。</p> +<p>如果采用独立建站的方式,这一步骤会涉及大量技术工作,比如服务器采购、Web服务应用程序安装、域名映射、SSL 安全证书、网络防火墙配置等等。</p> +<p>但我们今天选择使用 Github 提供的 Pages 服务,这将大大降低上述操作的难度,很多技术细节将不必再多关注,已经由 Pages 服务默认配置好。我们只需享用配置好的环境即可。</p> +<h3 id="技术路线">技术路线</h3> +<h4 id="github-pages">Github Pages</h4> +<p>Github 本来是一个 Git 仓库托管服务商,帮助用户进行项目代码及数字资料的版本管理。不过随着用户规模提升,Github 也围绕版本管理提供了更多的辅助服务,这其中就包括 <a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +>Pages 服务</a>。</p> +<blockquote> +<p>GitHub Pages 是一项静态站点托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件,(可选)通过构建过程运行文件,然后发布网站。 可以在 GitHub Pages 示例集合中看到 GitHub Pages 站点的示例。</p> +</blockquote> +<p>Pages 服务原本用于帮助托管在 Github 上的开源项目更便捷地发布自己的宣传页面。开发团队可以简单编写几个静态页面(HTML)然后放在托管的 Git 仓库中,由 Github 将这些页面以网站服务的方式发布出去,Github 既提供了服务器资源也提供了用于公网访问的<strong>专属 URL</strong> 地址。</p> +<p>关于发布网站的<strong>专属 URL</strong> 地址的提供规则,Github 官方的介绍如下:</p> +<blockquote> +<p>若要发布<strong>用户站点</strong>,必须创建名为 <code>&lt;username&gt;.github.io</code> 的个人帐户拥有的存储库。 若要发布<strong>组织站点</strong>,必须创建名为 <code>&lt;organization&gt;.github.io</code> 的组织帐户拥有的存储库。 除非使用的是自定义域,否则用户和组织站点在 <code>http(s)://&lt;username&gt;.github.io</code> 或 <code>http(s)://&lt;organization&gt;.github.io</code> 中可用。 +<strong>项目站点</strong>的源文件与其项目存储在同一个仓库中。 除非使用的是自定义域,否则项目站点在 <code>http(s)://&lt;username&gt;.github.io/&lt;repository&gt;</code> 或 <code>http(s)://&lt;organization&gt;.github.io/&lt;repository&gt;</code> 中可用。</p> +</blockquote> +<p>根据官方介绍,Pages 提供有三种不同的网站发布服务:用户站点、组织站点、项目站点。</p> +<p>分别对应了“制作个人网站”、“制作团队组织网站”、“制作单个项目网站”的不同需求。</p> +<p>针对个人博客的搭建,很显然使用 Pages 服务发布“用户站点”是最合适的选择。</p> +<p>对于“用户站点”,Pages 最终会为用户提供的专属 URL 地址为:<code>https://你的用户名.github.io</code>,也就是说在 Gihtub 的一级域名 <code>https://github.io</code> 下给你免费提供了一个二级域名。之所以默认使用你的 Github 用户名,是因为要防止不同用户发布的地址重名导致冲突。</p> +<p><em>按照官方介绍,你也可以使用自己购买的域名,通过自己的域名进行访问。不过这涉及到更复杂的话题和操作,不在本文讨论范畴。</em></p> +<p>了解了以上基本信息后,在使用 Pages 服务时,可按照复杂度区分,采用如下几种不同的用法。</p> +<h5 id="最简单直接的使用流程">最简单直接的使用流程</h5> +<ol> +<li>手工编写 HTML 页面文件(需要掌握网页制作知识)。</li> +<li>将页面文件推送到的 Github 仓库,对于“用户站点”来说,这个仓库的命名必须为“<code>你的用户名.github.io</code>”。</li> +<li>在 Github 中设置该仓库的 Pages 服务配置,主要是选择仓库的指定“分支”用于 Pages 服务获取待发布的网页文件。</li> +<li>Github 会按照上面介绍的规则给你提供一个 URL 访问地址(<code>https://你的用户名.github.io</code>),使用浏览器打开该地址即可访问到发布的网站了。</li> +</ol> +<p><em>注:如果不理解 Git 仓库的“分支”概念,可以把它视为同一个仓库里不同的存储位置,不同的“分支”里面存储了不同的文件内容。</em></p> +<p>这个流程仅适用于非常简单网站发布,比如只包含有一个页面,因为手工编写 HTML 页面的效率十分低下,且不利于持续更新维护。</p> +<p>于是大家常用的方式是,使用一种叫做的东西,对于“博客”这类以静态页面为主的网站,十分适合。</p> +<p>“静态站点生成器”可以理解为是一个“翻译”,它能自动将你编写的文本内容根据预先的配置信息,自动生成一个完整的网站所需的全部文件(HTML、JS、CSS等)。</p> +<p>于是有了如下的改进流程:</p> +<h5 id="改进的使用流程">改进的使用流程</h5> +<ol> +<li>用户编辑好博客内容,形成保存在本地计算机的原始文档文件。</li> +<li>使用静态网站生成器将本地原始文档文件生成静态页面文件。</li> +<li>将静态页面文件推送到 Github 远端托管仓库。</li> +<li>Github Pages 服务自动被触发,将静态页面以网站形式发布出来。</li> +<li>用户通过指定 URL 地址访问已发布的博客内容。</li> +</ol> +<p>到目前为止,已经可以较为流畅地执行博客编辑、生成、发布的工作流程了。</p> +<p>但是这个流程里有个前置条件,作者必须在本地电脑上安装一个“静态站点生成器”,以用于输出转换后的、可供发布的页面。</p> +<p>所以,为了方便,Github 提供了一个默认的静态网站生成器,上述第 2 步操作实际上可以在远端仓库自动执行,这样用户只需将原始文件上传至远端仓库即可,由 Github 直接在线上完成静态页面的生成和网站发布工作。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-46-36.png" +width="937" +height="625" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></p> +<h5 id="静态站点生成器的选择">静态站点生成器的选择</h5> +<p>比较常见的静态站点生成器有:<a class="link" href="https://jekyllrb.com/" target="_blank" rel="noopener" +>Jekyll</a>、<a class="link" href="https://hexo.io/index.html" target="_blank" rel="noopener" +>Hexo</a>、<a class="link" href="https://gohugo.io/" target="_blank" rel="noopener" +>Hugo</a> 这三个。不在这里详细介绍了,因为功能都大同小异。在选定一个之后,需要去他们的官网查看文档以了解具体的使用细节,以便对自己的博客站点能够做到更深的定制。</p> +<p>我在接下来的操作步骤里,选择使用 Hugo 这个生成器。</p> +<p>主要原因是,Hugo 提供有相对来说比较美观的<a class="link" href="https://themes.gohugo.io/" target="_blank" rel="noopener" +>免费主题风格模板</a>(Jekyll 也有漂亮的,但是收费。Hexo 的定制性很强,适合有网页开发能力的人自己开发主题)。</p> +<p>我选择的主题模板是:<a class="link" href="https://themes.gohugo.io/themes/hugo-theme-stack/" target="_blank" rel="noopener" +>hugo-theme-stack</a>。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-40-58.png" +width="900" +height="300" +loading="lazy" +class="gallery-image" +data-flex-grow="300" +data-flex-basis="720px" +></p> +<h2 id="操作步骤">操作步骤</h2> +<h3 id="建立-github-仓库">建立 Github 仓库</h3> +<ol> +<li>点击这个超链接进入 <a class="link" href="https://github.com/CaiJimmy/hugo-theme-stack-starter" target="_blank" rel="noopener" +>hugo-theme-stack-starter 的 Git 仓库模板</a>。</li> +<li>点击页面中的“使用此模板”按钮,以创建你自己的仓库(注意:需先登录自己的账号才能创建)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-45-54.png" +width="925" +height="134" +loading="lazy" +class="gallery-image" +data-flex-grow="690" +data-flex-basis="1656px" +></li> +<li>建立好仓库(注意仓库命名为<code>你的用户名.github.io</code>)之后,会自动带有仓库模板的初始文件。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-47-57.png" +width="908" +height="528" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="412px" +></li> +</ol> +<h3 id="修改配置">修改配置</h3> +<ol> +<li>将仓库下载到本地。</li> +<li>打开仓库里的 config 文件夹,里面存放有配置信息。</li> +<li>按照 <a class="link" href="https://stack.jimmycai.com/guide/getting-started" target="_blank" rel="noopener" +>hugo-theme-stack 的官方文档</a>配置自己想要的效果(默认一般都够用,重点是修改自己的站点信息,如显示名称、URL 链接地址等等)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-53-02.png" +width="1466" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="515px" +> +<em>这些配置主要在 <code>config.toml</code> 和 <code>params.toml</code> 两个文件里。</em></li> +</ol> +<h3 id="编写博客文章">编写博客文章</h3> +<p>生成器会默认去仓库的 <code>content/post/</code> 文件夹下扫描其下面的所有文件夹和文件,遇到约定格式的 <code>Markdown</code> 文件就会转换成为可发布的 <code>html</code> 页面。具体约定可以查看官方的详细文档,这里介绍一种最简单的写一篇文章的过程。</p> +<ol> +<li>在 post 目录下新建一个文件夹用于存放文章的 Markdown 文件和插图文件,文件夹命名为希望编写的标题如:<code>2023-09-21-怎样搭建个人博客</code>。<em>我个人习惯将不同年份的文章在post目录下再建一级目录按照日期或年份进行区分。</em></li> +<li>在刚建立的文件夹下新建名称为<code>index.md</code>的 Markdown 文件,文件名必须为 index.md 这是由 hugo 生成器约定的。</li> +<li>在刚建立的 Markdown 文件的头部添加必要的元信息(非常关键)。 +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="l">文章标题</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">date</span><span class="p">:</span><span class="w"> </span><span class="ld">2023-09-21</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">categories</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章所属分类</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">tags</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 1</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 2</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-07-46.png" +width="787" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="220" +data-flex-basis="529px" +></li> +<li>编写文章内容。可以使用 <a class="link" href="https://markdown.com.cn/basic-syntax/" target="_blank" rel="noopener" +>Markdown 的语法</a>随意定义格式,以及插入图片。插入的图片建议保存在同级目录(也就是刚才新建的那个)中。</li> +</ol> +<h3 id="推送到仓库及发布">推送到仓库及发布</h3> +<ol> +<li>将刚才修改配置文件保存。</li> +<li>将刚才编写的博客文章保存。</li> +<li>在本地提交 commit 并 push 到 Github 仓库。</li> +<li>稍等几分钟(给 Github 那端的 Hugo 生成器留出运行时间)。</li> +<li>在 Github 仓库的 “setting” 设置页面开启 Pages 服务(只需第一次)。</li> +<li>在 Pages 设置界面里的 Source 中选择 “Deploy from a branch” ,并在下面的分支选择下拉框中选择 “gh-pages”,保存。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-17-49.png" +width="1090" +height="568" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +</ol> +<h3 id="访问你的博客站点">访问你的博客站点</h3> +<p>一般稍等几分钟之后,即可按照约定网址访问刚发布的内容了。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-31-26.png" +width="1539" +height="661" +loading="lazy" +class="gallery-image" +data-flex-grow="232" +data-flex-basis="558px" +></p> +<h2 id="扩展阅读">扩展阅读</h2> +<p>运营自己的博客网站所需了解的概念和知识相对比较多,如果希望将自己的网站做的更加精美、有特色。</p> +<p>除了能够持续产出高质量内容之外,建议阅读以下文章以了解相关知识:</p> +<ul> +<li><a class="link" href="https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web" target="_blank" rel="noopener" +>学习 web 开发</a>。</li> +</ul> \ No newline at end of file diff --git a/tags/github/page/1/index.html b/tags/github/page/1/index.html new file mode 100644 index 000000000..5e51a166d --- /dev/null +++ b/tags/github/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/github/ \ No newline at end of file diff --git a/tags/hello/index.html b/tags/hello/index.html new file mode 100644 index 000000000..bdb6de0a5 --- /dev/null +++ b/tags/hello/index.html @@ -0,0 +1,32 @@ +Tag: hello - Learning & Writing! +

Tags

hello

+ \ No newline at end of file diff --git a/tags/hello/index.xml b/tags/hello/index.xml new file mode 100644 index 000000000..203c1eb11 --- /dev/null +++ b/tags/hello/index.xml @@ -0,0 +1,2 @@ +hello on Learning & Writing!https://sbabybird.github.io/tags/hello/Recent content in hello on Learning & Writing!Hugo -- gohugo.iozh-cnMon, 29 Apr 2013 00:00:00 +0000Hello World!https://sbabybird.github.io/p/hello-world/Mon, 29 Apr 2013 00:00:00 +0000https://sbabybird.github.io/p/hello-world/<h2 id="hello">Hello</h2> +<h2 id="world">World</h2> \ No newline at end of file diff --git a/tags/hello/page/1/index.html b/tags/hello/page/1/index.html new file mode 100644 index 000000000..34fb2d96b --- /dev/null +++ b/tags/hello/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/hello/ \ No newline at end of file diff --git a/tags/howto/index.html b/tags/howto/index.html new file mode 100644 index 000000000..b3f001559 --- /dev/null +++ b/tags/howto/index.html @@ -0,0 +1,32 @@ +Tag: howto - Learning & Writing! +

Tags

howto

+ \ No newline at end of file diff --git a/tags/howto/index.xml b/tags/howto/index.xml new file mode 100644 index 000000000..795e52ecb --- /dev/null +++ b/tags/howto/index.xml @@ -0,0 +1,218 @@ +howto on Learning & Writing!https://sbabybird.github.io/tags/howto/Recent content in howto on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 21 Sep 2023 00:00:00 +0000基于 Github Pages 服务搭建个人博客https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/Thu, 21 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-10-50.png" alt="Featured image of post 基于 Github Pages 服务搭建个人博客" /><h2 id="背景">背景</h2> +<p>搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。</p> +<p>但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。</p> +<p>经过多年的实践,现在已有越来越多的人选择了使用免费且易用的<a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +> GitHub Pages </a>服务来搭建个人博客。</p> +<p>然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。</p> +<p>他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。</p> +<p>这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。</p> +<p>本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。</p> +<h3 id="需要预先掌握的技能和前置条件">需要预先掌握的技能和前置条件</h3> +<p><em>需要先了解这些再往下阅读本文</em></p> +<ul> +<li>了解 Git 的概念和常用的操作,知道“分支”、“提交”、“推送”、“拉取”等概念。</li> +<li>拥有 Github 账号,并且能够独立完成“仓库创建”、“本地克隆”、“提交”、“推送”等操作。</li> +<li>了解“博客”本身只是一种“网站”:其内容由若干“网页”组成,读者通过浏览器访问博客网站所在的服务器以获取这些网页内容。</li> +</ul> +<h2 id="核心思路">核心思路</h2> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-20-10.png" +width="790" +height="258" +loading="lazy" +class="gallery-image" +data-flex-grow="306" +data-flex-basis="734px" +> +简单来说,核心步骤只有三步:内容编辑、页面生成、网站发布。接下来的介绍均围绕这三件事展开。</p> +<h3 id="内容编辑">内容编辑</h3> +<p>作者编写和编辑博客内容,包括编写文章、给文章配图、给文章归类等等活动都属于内容编辑。</p> +<h3 id="页面生成">页面生成</h3> +<p>如果希望将内容变成可发布的网站,则需要使用专用的软件工具(一般为<a class="link" href="https://baike.baidu.com/item/%E9%9D%99%E6%80%81%E7%BD%91%E7%AB%99/2776875" target="_blank" rel="noopener" +>静态网站</a>生成器)将编辑的内容自动生成可供浏览器显示的博客网站页面。</p> +<h3 id="网站发布">网站发布</h3> +<p>有了网站页面,还只是一堆存放在本地的文件。若要放到互联网上进行访问,还需要一个服务器提供服务,将网站发布。</p> +<p>如果采用独立建站的方式,这一步骤会涉及大量技术工作,比如服务器采购、Web服务应用程序安装、域名映射、SSL 安全证书、网络防火墙配置等等。</p> +<p>但我们今天选择使用 Github 提供的 Pages 服务,这将大大降低上述操作的难度,很多技术细节将不必再多关注,已经由 Pages 服务默认配置好。我们只需享用配置好的环境即可。</p> +<h3 id="技术路线">技术路线</h3> +<h4 id="github-pages">Github Pages</h4> +<p>Github 本来是一个 Git 仓库托管服务商,帮助用户进行项目代码及数字资料的版本管理。不过随着用户规模提升,Github 也围绕版本管理提供了更多的辅助服务,这其中就包括 <a class="link" href="https://docs.github.com/zh/pages/getting-started-with-github-pages/about-github-pages" target="_blank" rel="noopener" +>Pages 服务</a>。</p> +<blockquote> +<p>GitHub Pages 是一项静态站点托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件,(可选)通过构建过程运行文件,然后发布网站。 可以在 GitHub Pages 示例集合中看到 GitHub Pages 站点的示例。</p> +</blockquote> +<p>Pages 服务原本用于帮助托管在 Github 上的开源项目更便捷地发布自己的宣传页面。开发团队可以简单编写几个静态页面(HTML)然后放在托管的 Git 仓库中,由 Github 将这些页面以网站服务的方式发布出去,Github 既提供了服务器资源也提供了用于公网访问的<strong>专属 URL</strong> 地址。</p> +<p>关于发布网站的<strong>专属 URL</strong> 地址的提供规则,Github 官方的介绍如下:</p> +<blockquote> +<p>若要发布<strong>用户站点</strong>,必须创建名为 <code>&lt;username&gt;.github.io</code> 的个人帐户拥有的存储库。 若要发布<strong>组织站点</strong>,必须创建名为 <code>&lt;organization&gt;.github.io</code> 的组织帐户拥有的存储库。 除非使用的是自定义域,否则用户和组织站点在 <code>http(s)://&lt;username&gt;.github.io</code> 或 <code>http(s)://&lt;organization&gt;.github.io</code> 中可用。 +<strong>项目站点</strong>的源文件与其项目存储在同一个仓库中。 除非使用的是自定义域,否则项目站点在 <code>http(s)://&lt;username&gt;.github.io/&lt;repository&gt;</code> 或 <code>http(s)://&lt;organization&gt;.github.io/&lt;repository&gt;</code> 中可用。</p> +</blockquote> +<p>根据官方介绍,Pages 提供有三种不同的网站发布服务:用户站点、组织站点、项目站点。</p> +<p>分别对应了“制作个人网站”、“制作团队组织网站”、“制作单个项目网站”的不同需求。</p> +<p>针对个人博客的搭建,很显然使用 Pages 服务发布“用户站点”是最合适的选择。</p> +<p>对于“用户站点”,Pages 最终会为用户提供的专属 URL 地址为:<code>https://你的用户名.github.io</code>,也就是说在 Gihtub 的一级域名 <code>https://github.io</code> 下给你免费提供了一个二级域名。之所以默认使用你的 Github 用户名,是因为要防止不同用户发布的地址重名导致冲突。</p> +<p><em>按照官方介绍,你也可以使用自己购买的域名,通过自己的域名进行访问。不过这涉及到更复杂的话题和操作,不在本文讨论范畴。</em></p> +<p>了解了以上基本信息后,在使用 Pages 服务时,可按照复杂度区分,采用如下几种不同的用法。</p> +<h5 id="最简单直接的使用流程">最简单直接的使用流程</h5> +<ol> +<li>手工编写 HTML 页面文件(需要掌握网页制作知识)。</li> +<li>将页面文件推送到的 Github 仓库,对于“用户站点”来说,这个仓库的命名必须为“<code>你的用户名.github.io</code>”。</li> +<li>在 Github 中设置该仓库的 Pages 服务配置,主要是选择仓库的指定“分支”用于 Pages 服务获取待发布的网页文件。</li> +<li>Github 会按照上面介绍的规则给你提供一个 URL 访问地址(<code>https://你的用户名.github.io</code>),使用浏览器打开该地址即可访问到发布的网站了。</li> +</ol> +<p><em>注:如果不理解 Git 仓库的“分支”概念,可以把它视为同一个仓库里不同的存储位置,不同的“分支”里面存储了不同的文件内容。</em></p> +<p>这个流程仅适用于非常简单网站发布,比如只包含有一个页面,因为手工编写 HTML 页面的效率十分低下,且不利于持续更新维护。</p> +<p>于是大家常用的方式是,使用一种叫做的东西,对于“博客”这类以静态页面为主的网站,十分适合。</p> +<p>“静态站点生成器”可以理解为是一个“翻译”,它能自动将你编写的文本内容根据预先的配置信息,自动生成一个完整的网站所需的全部文件(HTML、JS、CSS等)。</p> +<p>于是有了如下的改进流程:</p> +<h5 id="改进的使用流程">改进的使用流程</h5> +<ol> +<li>用户编辑好博客内容,形成保存在本地计算机的原始文档文件。</li> +<li>使用静态网站生成器将本地原始文档文件生成静态页面文件。</li> +<li>将静态页面文件推送到 Github 远端托管仓库。</li> +<li>Github Pages 服务自动被触发,将静态页面以网站形式发布出来。</li> +<li>用户通过指定 URL 地址访问已发布的博客内容。</li> +</ol> +<p>到目前为止,已经可以较为流畅地执行博客编辑、生成、发布的工作流程了。</p> +<p>但是这个流程里有个前置条件,作者必须在本地电脑上安装一个“静态站点生成器”,以用于输出转换后的、可供发布的页面。</p> +<p>所以,为了方便,Github 提供了一个默认的静态网站生成器,上述第 2 步操作实际上可以在远端仓库自动执行,这样用户只需将原始文件上传至远端仓库即可,由 Github 直接在线上完成静态页面的生成和网站发布工作。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-21-16-46-36.png" +width="937" +height="625" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></p> +<h5 id="静态站点生成器的选择">静态站点生成器的选择</h5> +<p>比较常见的静态站点生成器有:<a class="link" href="https://jekyllrb.com/" target="_blank" rel="noopener" +>Jekyll</a>、<a class="link" href="https://hexo.io/index.html" target="_blank" rel="noopener" +>Hexo</a>、<a class="link" href="https://gohugo.io/" target="_blank" rel="noopener" +>Hugo</a> 这三个。不在这里详细介绍了,因为功能都大同小异。在选定一个之后,需要去他们的官网查看文档以了解具体的使用细节,以便对自己的博客站点能够做到更深的定制。</p> +<p>我在接下来的操作步骤里,选择使用 Hugo 这个生成器。</p> +<p>主要原因是,Hugo 提供有相对来说比较美观的<a class="link" href="https://themes.gohugo.io/" target="_blank" rel="noopener" +>免费主题风格模板</a>(Jekyll 也有漂亮的,但是收费。Hexo 的定制性很强,适合有网页开发能力的人自己开发主题)。</p> +<p>我选择的主题模板是:<a class="link" href="https://themes.gohugo.io/themes/hugo-theme-stack/" target="_blank" rel="noopener" +>hugo-theme-stack</a>。</p> +<p><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-40-58.png" +width="900" +height="300" +loading="lazy" +class="gallery-image" +data-flex-grow="300" +data-flex-basis="720px" +></p> +<h2 id="操作步骤">操作步骤</h2> +<h3 id="建立-github-仓库">建立 Github 仓库</h3> +<ol> +<li>点击这个超链接进入 <a class="link" href="https://github.com/CaiJimmy/hugo-theme-stack-starter" target="_blank" rel="noopener" +>hugo-theme-stack-starter 的 Git 仓库模板</a>。</li> +<li>点击页面中的“使用此模板”按钮,以创建你自己的仓库(注意:需先登录自己的账号才能创建)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-45-54.png" +width="925" +height="134" +loading="lazy" +class="gallery-image" +data-flex-grow="690" +data-flex-basis="1656px" +></li> +<li>建立好仓库(注意仓库命名为<code>你的用户名.github.io</code>)之后,会自动带有仓库模板的初始文件。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-47-57.png" +width="908" +height="528" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="412px" +></li> +</ol> +<h3 id="修改配置">修改配置</h3> +<ol> +<li>将仓库下载到本地。</li> +<li>打开仓库里的 config 文件夹,里面存放有配置信息。</li> +<li>按照 <a class="link" href="https://stack.jimmycai.com/guide/getting-started" target="_blank" rel="noopener" +>hugo-theme-stack 的官方文档</a>配置自己想要的效果(默认一般都够用,重点是修改自己的站点信息,如显示名称、URL 链接地址等等)。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-10-53-02.png" +width="1466" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="515px" +> +<em>这些配置主要在 <code>config.toml</code> 和 <code>params.toml</code> 两个文件里。</em></li> +</ol> +<h3 id="编写博客文章">编写博客文章</h3> +<p>生成器会默认去仓库的 <code>content/post/</code> 文件夹下扫描其下面的所有文件夹和文件,遇到约定格式的 <code>Markdown</code> 文件就会转换成为可发布的 <code>html</code> 页面。具体约定可以查看官方的详细文档,这里介绍一种最简单的写一篇文章的过程。</p> +<ol> +<li>在 post 目录下新建一个文件夹用于存放文章的 Markdown 文件和插图文件,文件夹命名为希望编写的标题如:<code>2023-09-21-怎样搭建个人博客</code>。<em>我个人习惯将不同年份的文章在post目录下再建一级目录按照日期或年份进行区分。</em></li> +<li>在刚建立的文件夹下新建名称为<code>index.md</code>的 Markdown 文件,文件名必须为 index.md 这是由 hugo 生成器约定的。</li> +<li>在刚建立的 Markdown 文件的头部添加必要的元信息(非常关键)。 +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="l">文章标题</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">date</span><span class="p">:</span><span class="w"> </span><span class="ld">2023-09-21</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">categories</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章所属分类</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">tags</span><span class="p">:</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 1</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">文章标签 2</span><span class="w"> +</span></span></span><span class="line"><span class="cl"><span class="w"> </span>---<span class="w"> +</span></span></span></code></pre></td></tr></table> +</div> +</div><img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-07-46.png" +width="787" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="220" +data-flex-basis="529px" +></li> +<li>编写文章内容。可以使用 <a class="link" href="https://markdown.com.cn/basic-syntax/" target="_blank" rel="noopener" +>Markdown 的语法</a>随意定义格式,以及插入图片。插入的图片建议保存在同级目录(也就是刚才新建的那个)中。</li> +</ol> +<h3 id="推送到仓库及发布">推送到仓库及发布</h3> +<ol> +<li>将刚才修改配置文件保存。</li> +<li>将刚才编写的博客文章保存。</li> +<li>在本地提交 commit 并 push 到 Github 仓库。</li> +<li>稍等几分钟(给 Github 那端的 Hugo 生成器留出运行时间)。</li> +<li>在 Github 仓库的 “setting” 设置页面开启 Pages 服务(只需第一次)。</li> +<li>在 Pages 设置界面里的 Source 中选择 “Deploy from a branch” ,并在下面的分支选择下拉框中选择 “gh-pages”,保存。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-17-49.png" +width="1090" +height="568" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +</ol> +<h3 id="访问你的博客站点">访问你的博客站点</h3> +<p>一般稍等几分钟之后,即可按照约定网址访问刚发布的内容了。 +<img src="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/2023-09-22-11-31-26.png" +width="1539" +height="661" +loading="lazy" +class="gallery-image" +data-flex-grow="232" +data-flex-basis="558px" +></p> +<h2 id="扩展阅读">扩展阅读</h2> +<p>运营自己的博客网站所需了解的概念和知识相对比较多,如果希望将自己的网站做的更加精美、有特色。</p> +<p>除了能够持续产出高质量内容之外,建议阅读以下文章以了解相关知识:</p> +<ul> +<li><a class="link" href="https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web" target="_blank" rel="noopener" +>学习 web 开发</a>。</li> +</ul> \ No newline at end of file diff --git a/tags/howto/page/1/index.html b/tags/howto/page/1/index.html new file mode 100644 index 000000000..339c8a8b1 --- /dev/null +++ b/tags/howto/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/howto/ \ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 000000000..b4823fdeb --- /dev/null +++ b/tags/index.html @@ -0,0 +1,35 @@ +Tags +

Tags

+ \ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml new file mode 100644 index 000000000..2a758df51 --- /dev/null +++ b/tags/index.xml @@ -0,0 +1 @@ +Tags on Learning & Writing!https://sbabybird.github.io/tags/Recent content in Tags on Learning & Writing!Hugo -- gohugo.iozh-cnTue, 26 Sep 2023 00:00:00 +0000机器文摘https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/Tue, 26 Sep 2023 00:00:00 +0000https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/githubhttps://sbabybird.github.io/tags/github/Thu, 21 Sep 2023 00:00:00 +0000https://sbabybird.github.io/tags/github/howtohttps://sbabybird.github.io/tags/howto/Thu, 21 Sep 2023 00:00:00 +0000https://sbabybird.github.io/tags/howto/知识管理https://sbabybird.github.io/tags/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/Sat, 23 Apr 2022 00:00:00 +0000https://sbabybird.github.io/tags/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/心理学https://sbabybird.github.io/tags/%E5%BF%83%E7%90%86%E5%AD%A6/Sun, 18 Apr 2021 00:00:00 +0000https://sbabybird.github.io/tags/%E5%BF%83%E7%90%86%E5%AD%A6/管理https://sbabybird.github.io/tags/%E7%AE%A1%E7%90%86/Thu, 15 Apr 2021 00:00:00 +0000https://sbabybird.github.io/tags/%E7%AE%A1%E7%90%86/年度总结https://sbabybird.github.io/tags/%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/Wed, 10 Feb 2021 00:00:00 +0000https://sbabybird.github.io/tags/%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/每周五百字https://sbabybird.github.io/tags/%E6%AF%8F%E5%91%A8%E4%BA%94%E7%99%BE%E5%AD%97/Wed, 01 Jan 2020 00:00:00 +0000https://sbabybird.github.io/tags/%E6%AF%8F%E5%91%A8%E4%BA%94%E7%99%BE%E5%AD%97/机器学习https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/Sun, 02 Jun 2019 00:00:00 +0000https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/家庭https://sbabybird.github.io/tags/%E5%AE%B6%E5%BA%AD/Thu, 09 May 2019 00:00:00 +0000https://sbabybird.github.io/tags/%E5%AE%B6%E5%BA%AD/心得https://sbabybird.github.io/tags/%E5%BF%83%E5%BE%97/Thu, 19 Jul 2018 00:00:00 +0000https://sbabybird.github.io/tags/%E5%BF%83%E5%BE%97/exercisehttps://sbabybird.github.io/tags/exercise/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/tags/exercise/lisphttps://sbabybird.github.io/tags/lisp/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/tags/lisp/programminghttps://sbabybird.github.io/tags/programming/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/tags/programming/wifihttps://sbabybird.github.io/tags/wifi/Thu, 13 Feb 2014 00:00:00 +0000https://sbabybird.github.io/tags/wifi/win8https://sbabybird.github.io/tags/win8/Thu, 13 Feb 2014 00:00:00 +0000https://sbabybird.github.io/tags/win8/mongodbhttps://sbabybird.github.io/tags/mongodb/Thu, 07 Nov 2013 00:00:00 +0000https://sbabybird.github.io/tags/mongodb/vs2008https://sbabybird.github.io/tags/vs2008/Thu, 07 Nov 2013 00:00:00 +0000https://sbabybird.github.io/tags/vs2008/abouthttps://sbabybird.github.io/tags/about/Mon, 29 Apr 2013 00:00:00 +0000https://sbabybird.github.io/tags/about/hellohttps://sbabybird.github.io/tags/hello/Mon, 29 Apr 2013 00:00:00 +0000https://sbabybird.github.io/tags/hello/心情随笔https://sbabybird.github.io/tags/%E5%BF%83%E6%83%85%E9%9A%8F%E7%AC%94/Thu, 07 Oct 2010 00:00:00 +0000https://sbabybird.github.io/tags/%E5%BF%83%E6%83%85%E9%9A%8F%E7%AC%94/ \ No newline at end of file diff --git a/tags/lisp/index.html b/tags/lisp/index.html new file mode 100644 index 000000000..ef1c5ab56 --- /dev/null +++ b/tags/lisp/index.html @@ -0,0 +1,33 @@ +Tag: lisp - Learning & Writing! +

Tags

lisp

+ \ No newline at end of file diff --git a/tags/lisp/index.xml b/tags/lisp/index.xml new file mode 100644 index 000000000..81e0d37d9 --- /dev/null +++ b/tags/lisp/index.xml @@ -0,0 +1,576 @@ +lisp on Learning & Writing!https://sbabybird.github.io/tags/lisp/Recent content in lisp on Learning & Writing!Hugo -- gohugo.iozh-cnMon, 05 Jan 2015 00:00:00 +0000SICP 课后练习题1.9https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/<h4 id="练习-19--下面两个过程各定义了一种加起两个正整数的方法他们都基于过程inc它将参数增加1和dec它将参数减少1-请用代换模型展示这两个过程在求值add-4-5时所产生的计算过程这些计算过程是递归的或者迭代的吗">练习 1.9 下面两个过程各定义了一种加起两个正整数的方法,他们都基于过程inc(它将参数增加1)和dec(它将参数减少1) 。请用代换模型展示这两个过程在求值<code>(add 4 5)</code>时所产生的计算过程。这些计算过程是递归的或者迭代的吗?</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nf">inc</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><p>解答:根据代换模型分别展开如下</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">5</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">5</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">6</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">7</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>根据展开可以看出,第一个计算过程是递归的,因为明显有一个逐步扩展然后又收缩的递归计算链条。第二个计算过程是迭代的,没有扩展、收缩的过程,而是使用a和b存储了常量。</p>SICP 课后练习题1.8https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/Mon, 29 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/<h4 id="练习-18-求立方根的牛顿法基于如下事实如果y是x的立方根的一个近似值那么下式将给出一个更好的近似值">练习 1.8 求立方根的牛顿法基于如下事实,如果y是x的立方根的一个近似值,那么下式将给出一个更好的近似值:</h4> +<p>$$ \frac{x/y^2+2y}{3} $$</p> +<p>请利用这一公式实现一个类似平方根过程的求立方根的过程。</p> +<p>解答:基本思路与求解平方根的实现是一致的,区别再有得到更好值<code>improve</code>的过程有变化,只需根据公式描述进行实现即可</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">/</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="nv">guess</span><span class="p">))</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="mi">3</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.7https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/Sat, 27 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/<h4 id="练习-17-对于确定很小的数的平方根而言在计算平方根中使用的检测good-enough是很不好的还有在现实的计算机里算术运算总是以一定的有限精度进行的这也会使我们的检测不适合非常大的数的计算请解释上述论断用例子说明对很小和很大的数这种检测都可能失败实现good-enough的另一种策略是监视猜测值在从一次迭代到下一次的变化情况当改变值相对于猜测值的比率很小时就结束请设计一个采用这种终止测试方式的平方根过程对于很大和很小的数这一方式都能工作吗">练习 1.7 对于确定很小的数的平方根而言,在计算平方根中使用的检测good-enough?是很不好的。还有,在现实的计算机里,算术运算总是以一定的有限精度进行的。这也会使我们的检测不适合非常大的数的计算。请解释上述论断,用例子说明对很小和很大的数,这种检测都可能失败。实现good-enough?的另一种策略是监视猜测值在从一次迭代到下一次的变化情况,当改变值相对于猜测值的比率很小时就结束。请设计一个采用这种终止测试方式的平方根过程。对于很大和很小的数,这一方式都能工作吗?</h4> +<p>解答:good-enough?当前采用的判断方式是,对比猜测值的平方结果与X的值之间的差距,当差距小于某个阙值时(比如0.001),就停止计算。当X很小或很大时,这种检测就会失败,比如,假设我们的阙值设置为0.001,那么当X本身小于这个阙值时,就会检测失败,得出错误结果,当X很大时,也会由于精度不足而一直达不到最佳猜测值,导致死循环。</p> +<p>因此,要解决这一问题,可以按照题目中给出的思路对good-enough?过程进行修改,不再判断猜测值平方与X的差距,而是判断两次猜测值之间的比率。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mf">0.00000000001</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.1622776601874535e-6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">100000000000000000000000000000000000000000000</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 1.0000000000001497e22</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>在新的<code>good-enough?</code>中,传入的是两次猜测值,所以还要修改<code>sqrt-iter</code>过程,在调用时计算两次猜测值。</p>SICP 课后练习题1.6https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/Tue, 23 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/<p>采用牛顿法求平方根的过程如下。开始时,我们有了被开方数的值(现在需要做的就是算出它的平方根)和一个猜测值。如果猜测值已经足够好了,有关工作也就完成了。如若不然,那么就需要改进猜测值(求出猜测值与被开方数除以猜测值的平均值),并重复这个计算过程。具体编写代码如下(在MIT scheme解释器中)。</p> +<p>定义<code>sqrt-iter</code>过程,与上述描述完全对应。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义改进猜测值的过程<code>improve</code>,返回猜测值与被开方数除以猜测值的平均值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">average</span> <span class="nv">guess</span> <span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="nv">guess</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: improve</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求平均数的过程<code>average</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">average</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: average</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义判断猜测值是否足够好的过程<code>good-enough?</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="p">(</span><span class="nf">square</span> <span class="nv">guess</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> <span class="mf">0.001</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求绝对值和平方的过程</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: abs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">square</span> <span class="nv">x</span><span class="p">)</span> <span class="p">(</span><span class="nb">* </span><span class="nv">x</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: square</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义最上层的过程,用于启动整个工作(使用<code>1</code>这个数字作为任何数的初始猜测值)。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">sqrt </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>执行<code>sqrt</code>过程,并以<code>9</code>为参数,求得平方根为<code>3</code></p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.00009155413138</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h4 id="练习16----alyssa-phacker看不出来为什么需要将if提供为一种特殊形式她问为什么我不能直接通过cond将它定义为一个常规过程呢alyssa的朋友eva-lu-ator断言确实可以这样做并定义了if的一个新版本">练习1.6 Alyssa P.Hacker看不出来为什么需要将if提供为一种特殊形式,她问:“为什么我不能直接通过<code>cond</code>将它定义为一个常规过程呢?”Alyssa的朋友Eva Lu Ator断言确实可以这样做,并定义了<code>if</code>的一个新版本:</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">new-if</span> <span class="nv">predicate</span> <span class="nv">then-clause</span> <span class="nv">else-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">cond </span><span class="p">(</span><span class="nf">predicate</span> <span class="nv">then-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">else </span><span class="nv">else-clause</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: new-if</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>Eva给Alyssa演示她的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">2</span> <span class="mi">3</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">5</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">1</span> <span class="mi">1</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>她很高兴地用自己的<code>new-if</code>重写了求平方根的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>当Alyssa试着用这个过程去计算平方根时会发生什么事情呢?请给出解释。</p> +<p>解答:</p> +<p>这个练习引入了一个新的思考,刚开始时,我以为是牵涉到了过程的局部参数概念,因为在新编写的<code>new-if</code>过程中,看似可以完成条件判断并返回正确的值,但是在本例中使用却存在问题,即在递归调用<code>sqrt-iter</code>时,传给该过程的<code>guess</code>和<code>x</code>为<code>new-if</code>的局部参数,被返回给了<code>new-if</code>这个过程,不会向上返回到上一层<code>sqrt-iter</code>里,这样就导致了改进的猜测值永远不会被使用,使得这个计算过程永远不会结束(除非第一个猜测值恰好合适),从而导致递归调用的陷入无限循环。我在<code>MIT-scheme</code>解释器里的执行结果是,解释器自动退出并提示我递归调用深度超出最大值。</p> +<p>上述看起来是合理的,但是后来我考虑了其他情况,及本书在前面章节里提到了if<code>(if &lt;predicate&gt; &lt;consequent&gt; &lt;alternative&gt;)</code>语句是条件表达式的受限形式,在执行时,先判断<code>predicate</code>是否为真,然后根据结果只执行其后<code>consequent/alternative</code>中的一个。如果使用本例新定义的<code>new-if</code>则作为普通过程执行,传入的参数会因为解释器使用应用序求值的原因,两个表达式都会被立即求值,反应到本例中就是<code>guess</code>和<code>(sqrt-iter (improve guess x) x)</code>都会被立即求值,后面的那句是属于递归调用,这样也会导致改进的猜测值永远不会被使用,陷入无限层的递归调用中。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Aborting!: maximum recursion depth exceeded</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>思考:</p> +<p>最初的时候,我的针对此题的思考方式是变量的作用域问题(可能lisp不会有此问题),后来发现,也许不是这样,而是由于对传入参数立即求值导致的,后续的网上搜索结果也显示出大家的答案都倾向于后者。</p>SICP 课后练习题1.4https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/<h4 id="练习14----请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型根据对这一模型的认识描述下面过程的行为">练习1.4 请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型,根据对这一模型的认识描述下面过程的行为。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.4,通过if判断,根据b的值决定对a b所使用的运算符是+还是-,如果b大于0,则组合式为(+ a b),反之则为(- a b),所以组合式结果永远返回a加上b的绝对值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: a-plus-abs-b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">-2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.5https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/<h4 id="练习15---ben-bitdiddle发明了一种检测方法能够确定解释器究竟采用哪种序求值是采用应用序还是正则序他定义了下面两个过程">练习1.5 Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用哪种序求值,是采用应用序,还是正则序。他定义了下面两个过程</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">p</span><span class="p">)</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">test</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span><span class="line"><span class="cl"> <span class="nv">y</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>而后他求值下面的表达式:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">test</span> <span class="mi">0</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>如果某个解释器采用的是应用序求值,Ben会看到什么样的情况?如果解释器采用正则序求值,他又会看到什么情况?请对你的回答做出解释。(无论采用正则序或者应用序,假定特殊形式if的求值规则总是一样的。其中的谓词部分先行求值,根据其结果确定随后求值的子表达式部分。)</p> +<p>练习1.5 『完全展开而后规约』的求值模型为正则序求值,『先求值参数而后应用』的方式为应用序求值,因此,在应用序求值的模式下,执行<code>(test 0 (p))</code>时会先求<code>(p)</code>这个表达式的值,而根据定义<code>(define (p) (p))</code>执行<code>(p)</code>会造成递归调用,解释器陷入死循环。而在正则序求值模式下,会先展开<code>test</code>过程,根据需要再决定是否执行<code>(p)</code>,在本例中,由于传入的<code>x</code>等于<code>0</code>,所以<code>(p)</code>不会被执行,因此不会陷入死循环。</p> +<p>所以,根据以上分析,如果解释器采用的是应用序求值,则解释器陷入死循环,如果是采用正则序求值,则解释器输出<code>;Value: 0</code>。</p>SICP 课后练习题1.1https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/<h4 id="练习11----下面是一系列表达式对于每个表达式解释器将输出什么结果假定这一系列表达式是按照给出的顺序逐个求值的">练习1.1 下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="mi">10</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 10</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> <span class="mi">3</span> <span class="mi">4</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 12</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">9</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 8</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 3</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">* </span><span class="mi">2</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="mi">4</span> <span class="mi">6</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">a</span> <span class="mi">3</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: a</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">b</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 19</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: #f</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="k">and </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">&lt; </span><span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"><span class="nv">b</span> +</span></span><span class="line"><span class="cl"><span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 4</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">4</span><span class="p">)</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">= </span><span class="nv">b</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="mi">7</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">25</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">2</span> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">&lt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">-1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.1的内容比较简单,基本上直接就可以计算出表达式的值,所有表达式都可以在mit-scheme的交互解释器里进行验证。</p>SICP 课后练习题1.2https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/<h4 id="练习12----请将下面表达式变换为前缀形式">练习1.2 请将下面表达式变换为前缀形式:</h4> +<p>$$ \frac{5+4+\Bigl(2-\Bigl(3-\left(6+\frac{4}{5}\right)\Bigr)\Bigr)}{3\left(6-2\right)\left(2-7\right)} $$</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> +</span></span><span class="line"><span class="cl"><span class="mi">4</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="p">(</span><span class="nb">/ </span><span class="mi">4</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: -37/150</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.2,直接将数学表达式转换为前序表达式即可,在写的时候可以遵循一下排版规则,即同一个运算符的表达式垂直对齐。</p>SICP 课后练习题1.3https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/<h4 id="练习13----请定义一个过程它以三个数为参数返回其中较大两个数之和">练习1.3 请定义一个过程,它以三个数为参数,返回其中较大两个数之和。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">max-three-number</span> <span class="nv">a</span> <span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">c</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">c</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">max-three-number</span> <span class="mi">42</span> <span class="mi">7</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 49</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.3,解决此练习中问题的方法比较多,本答案使用比较朴素的方法,先比较出最大的两个数字,然后将其相加,对于三个数字来说,先在前两个中选取一个大的,然后将其与后面两个中比较大的那一个相加。还有一种思路就是可以先定义出比较大小的方法,然后再调用之,或者先对数字按从小到大排序然后加最后两个,等等。</p> \ No newline at end of file diff --git a/tags/lisp/page/1/index.html b/tags/lisp/page/1/index.html new file mode 100644 index 000000000..803c4a403 --- /dev/null +++ b/tags/lisp/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/lisp/ \ No newline at end of file diff --git a/tags/lisp/page/2/index.html b/tags/lisp/page/2/index.html new file mode 100644 index 000000000..e533181bb --- /dev/null +++ b/tags/lisp/page/2/index.html @@ -0,0 +1,33 @@ +Tag: lisp - Learning & Writing! +

Tags

lisp

+ \ No newline at end of file diff --git a/tags/mongodb/index.html b/tags/mongodb/index.html new file mode 100644 index 000000000..63049959b --- /dev/null +++ b/tags/mongodb/index.html @@ -0,0 +1,32 @@ +Tag: mongodb - Learning & Writing! +

Tags

mongodb

+ \ No newline at end of file diff --git a/tags/mongodb/index.xml b/tags/mongodb/index.xml new file mode 100644 index 000000000..b1e01e47c --- /dev/null +++ b/tags/mongodb/index.xml @@ -0,0 +1,130 @@ +mongodb on Learning & Writing!https://sbabybird.github.io/tags/mongodb/Recent content in mongodb on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 07 Nov 2013 00:00:00 +0000使用vs2008编译mongodbhttps://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/Thu, 07 Nov 2013 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/<h2 id="背景问题">背景问题</h2> +<p>mongodb在windwos下的官方编译包是使用vs2010编译的,从官网上下载的源代码在vs2008环境下不能直接编译通过,因为mongodb提供的相关配置文件是针对vs2010的,可能是因为mongodb最新的代码使用了部分C++11的特性,而vs2008没有提供对C++11支持的原因。可是我们在一个具体的项目上需要在vs2008环境下使用mongodb,只好通过手工修改部分配置和代码的办法完成编译。</p> +<h2 id="环境准备">环境准备</h2> +<p>mongodb是使用scons进行编译控制的,所以在进行以下编译之前需要安装并配置好如下环境:</p> +<h3 id="python27">python2.7</h3> +<p>官方建议是安装python2.7版本,而且要在环境变量PATH中加入python的安装路径和python/scripts的路径,以便在命令行中执行python脚本。 +<em>不过我在编译的时候使用的是python2.6版本,也没有发现问题</em></p> +<h3 id="scons">scons</h3> +<ul> +<li>直接去网上下载最新版本进行安装即可。</li> +</ul> +<h3 id="vs2008">vs2008</h3> +<ul> +<li>需要安装vc++的全部组件(主要是默认安装不带amd64的编译支持),如果只需要编译32位版本的话则可以忽略此条。</li> +<li>需要安装sp1补丁,否则会在编译时报错。</li> +</ul> +<h3 id="boost库">boost库</h3> +<ul> +<li> +<p>最好使用boost1.4.9版本,去官网上下载对应的源码包然后自己在vs2008的命令行环境下编译</p> +</li> +<li> +<p>编译boost的命令如下(只编译了所需库):</p> +<pre><code> bjam stage variant=debug --with-filesystem --with-thread --with-date_time --with-program_options --layout=versioned threading=multi toolset=msvc-10.0 --build-type=complete +</code></pre> +</li> +</ul> +<p><em>如果需要编译release版本,就把<code>variant</code>的选项改为<code>release</code>,如果需要编译64位的版本,就在以上命令中加入<code>address-model=64</code></em></p> +<h2 id="配置及代码修改">配置及代码修改</h2> +<h3 id="sconstruct文件修改">SConstruct文件修改</h3> +<p>SConstruct文件用于存放scons的关键配置信息,我们为了在vs2008下编译mongodb首先要做的就是修改mongodb源码下根目录的SConstruct文件。</p> +<ul> +<li> +<p>修改env配置,找到 evn = Environment</p> +<pre><code> env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log' +) +</code></pre> +</li> +</ul> +<p>在Environment里追加一条 <code>MSVC_VERSION='9.0'</code>,这是因为如果机器上有其他的编译环境,比如vs2010或vs2012,scons会自动使用他们的编译器进行编译,即使你是在vs2008的命令行环境下,我最初因为此问题困扰了很久,后来才只得强制指定编译器的版本,修改完成后如下:</p> +<pre><code>env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log', +MSVC_VERSION = '9.0' +) +</code></pre> +<ul> +<li> +<p>给编译器搜索路径增加你自己本地的boost库路径 +因为在编译时需要用到boost库,所以需要把你在本地的boost所在目录加入scons的环境,否则会报找不到boost头文件或链接库的错误,打开Sconstruct文件直接在最后加入如下代码</p> +<p>env.Append(CPPPATH=[&ldquo;d:/thirdlib/boost_1_49_0&rdquo;, &ldquo;d:/thirdlib/boost_1_49_0/boost/tr1&rdquo;], LIBPATH=[&ldquo;d:/thridlib/boost_1_49_0/stage/lib&rdquo;])</p> +<pre><code> *你在编译时需要将路径替换成你自己的* +</code></pre> +</li> +</ul> +<h3 id="准备stdinth">准备stdint.h</h3> +<ul> +<li>去这个地址<a class="link" href="https://msinttypes.googlecode.com/files/msinttypes-r26.zip" target="_blank" rel="noopener" +>https://msinttypes.googlecode.com/files/msinttypes-r26.zip</a>下载msinttypes,将压缩包里的stdint.h解压并复制到 <code>C:\Program Files\Microsoft Visual Studio 9.0\VC\include</code> 目录</li> +<li>修改mongodb源码目录下platform下的cstdint.h,将<code>#include&lt;cstdint&gt;</code>修改为<code>#include&lt;stdint.h&gt;</code>,将<code>#define _MONGO_STDINT_NAMESPACE std</code>这一行里的std注释掉,变成<code>#define _MONGO_STDINT_NAMESPACE /*std*/ </code></li> +<li>修改mongodb源码目录下util下的time_support.h,在文件开头加入<code>#include&lt;stdint.h&gt;</code>,否则在编译这个文件时会无法识别int64_t类型</li> +</ul> +<h3 id="修改windows_basich">修改windows_basic.h</h3> +<ul> +<li>修改mongodb源码目录下platform下的windows_basic.h,</li> +<li>在<code> #if !defined(NTDDI_WINXPSP3) || (NTDDI_VERSION &lt; NTDDI_WINXPSP3)</code> 之前加入 <code>#define NTDDI_WINXPSP3 0x05010300</code> 在<code>#if !defined(NTDDI_WS03SP2) || (NTDDI_VERSION &lt; NTDDI_WS03SP2)</code>之前加入<code>#define NTDDI_WS03SP2 0x05020200</code> 否则会报 &ldquo;32 bit mongo does not support Windows versions older than XP Service Pack 3&rdquo; 和&quot;64 bit mongo does not support Windows versions older than Windows Server 2003 SP 2&quot; 错误</li> +</ul> +<h3 id="修改listencpp和sockcpp">修改listen.cpp和sock.cpp</h3> +<ul> +<li> +<p>修改util下net下listen.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EADDRINUSE WSAEADDRINUSE +#define ECONNABORTED WSAECONNABORTED +#define EBADF 9 +#define ENFILE 23 +#define EMFILE 24 +#endif +</code></pre> +</li> +<li> +<p>修改util下net下sock.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EAGAIN 11 +#endif +</code></pre> +</li> +</ul> +<h2 id="开始编译">开始编译</h2> +<p>环境准备好之后,编译就比较简单了,打开vs2008命令行窗口,执行如下代码即可完成编译 +<code>scons --dd --32 mongoclient.lib</code></p> +<p>如果是编译release版本,就把&ndash;dd换成&ndash;release,如果是编译64位版本,就把&ndash;32换成&ndash;64</p> \ No newline at end of file diff --git a/tags/mongodb/page/1/index.html b/tags/mongodb/page/1/index.html new file mode 100644 index 000000000..144f1249d --- /dev/null +++ b/tags/mongodb/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/mongodb/ \ No newline at end of file diff --git a/tags/page/1/index.html b/tags/page/1/index.html new file mode 100644 index 000000000..fcfb10c85 --- /dev/null +++ b/tags/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/ \ No newline at end of file diff --git a/tags/page/2/index.html b/tags/page/2/index.html new file mode 100644 index 000000000..24f7597be --- /dev/null +++ b/tags/page/2/index.html @@ -0,0 +1,36 @@ +Tags +

Tags

+ \ No newline at end of file diff --git a/tags/page/3/index.html b/tags/page/3/index.html new file mode 100644 index 000000000..2293b0b3b --- /dev/null +++ b/tags/page/3/index.html @@ -0,0 +1,36 @@ +Tags +

Tags

+ \ No newline at end of file diff --git a/tags/page/4/index.html b/tags/page/4/index.html new file mode 100644 index 000000000..83af08302 --- /dev/null +++ b/tags/page/4/index.html @@ -0,0 +1,36 @@ +Tags +

Tags

+ \ No newline at end of file diff --git a/tags/page/5/index.html b/tags/page/5/index.html new file mode 100644 index 000000000..897154648 --- /dev/null +++ b/tags/page/5/index.html @@ -0,0 +1,35 @@ +Tags +

Tags

+ \ No newline at end of file diff --git a/tags/programming/index.html b/tags/programming/index.html new file mode 100644 index 000000000..502864afe --- /dev/null +++ b/tags/programming/index.html @@ -0,0 +1,33 @@ +Tag: programming - Learning & Writing! +

Tags

programming

+ \ No newline at end of file diff --git a/tags/programming/index.xml b/tags/programming/index.xml new file mode 100644 index 000000000..ea68ed40f --- /dev/null +++ b/tags/programming/index.xml @@ -0,0 +1,576 @@ +programming on Learning & Writing!https://sbabybird.github.io/tags/programming/Recent content in programming on Learning & Writing!Hugo -- gohugo.iozh-cnMon, 05 Jan 2015 00:00:00 +0000SICP 课后练习题1.9https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/Mon, 05 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.9/<h4 id="练习-19--下面两个过程各定义了一种加起两个正整数的方法他们都基于过程inc它将参数增加1和dec它将参数减少1-请用代换模型展示这两个过程在求值add-4-5时所产生的计算过程这些计算过程是递归的或者迭代的吗">练习 1.9 下面两个过程各定义了一种加起两个正整数的方法,他们都基于过程inc(它将参数增加1)和dec(它将参数减少1) 。请用代换模型展示这两个过程在求值<code>(add 4 5)</code>时所产生的计算过程。这些计算过程是递归的或者迭代的吗?</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">add</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">b</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="p">(</span><span class="nf">dec</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nf">inc</span> <span class="nv">b</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span></code></pre></td></tr></table> +</div> +</div><p>解答:根据代换模型分别展开如下</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">5</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">5</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">5</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">6</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="p">(</span><span class="nf">inc</span> <span class="mi">7</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">inc</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">4</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">3</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">1</span> <span class="mi">8</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">add</span> <span class="mi">0</span> <span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="mi">9</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>根据展开可以看出,第一个计算过程是递归的,因为明显有一个逐步扩展然后又收缩的递归计算链条。第二个计算过程是迭代的,没有扩展、收缩的过程,而是使用a和b存储了常量。</p>SICP 课后练习题1.8https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/Mon, 29 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.8/<h4 id="练习-18-求立方根的牛顿法基于如下事实如果y是x的立方根的一个近似值那么下式将给出一个更好的近似值">练习 1.8 求立方根的牛顿法基于如下事实,如果y是x的立方根的一个近似值,那么下式将给出一个更好的近似值:</h4> +<p>$$ \frac{x/y^2+2y}{3} $$</p> +<p>请利用这一公式实现一个类似平方根过程的求立方根的过程。</p> +<p>解答:基本思路与求解平方根的实现是一致的,区别再有得到更好值<code>improve</code>的过程有变化,只需根据公式描述进行实现即可</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">/</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="nv">guess</span><span class="p">))</span> <span class="p">(</span><span class="nb">* </span><span class="nv">guess</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="mi">3</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">cbrt</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">cbrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.7https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/Sat, 27 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.7/<h4 id="练习-17-对于确定很小的数的平方根而言在计算平方根中使用的检测good-enough是很不好的还有在现实的计算机里算术运算总是以一定的有限精度进行的这也会使我们的检测不适合非常大的数的计算请解释上述论断用例子说明对很小和很大的数这种检测都可能失败实现good-enough的另一种策略是监视猜测值在从一次迭代到下一次的变化情况当改变值相对于猜测值的比率很小时就结束请设计一个采用这种终止测试方式的平方根过程对于很大和很小的数这一方式都能工作吗">练习 1.7 对于确定很小的数的平方根而言,在计算平方根中使用的检测good-enough?是很不好的。还有,在现实的计算机里,算术运算总是以一定的有限精度进行的。这也会使我们的检测不适合非常大的数的计算。请解释上述论断,用例子说明对很小和很大的数,这种检测都可能失败。实现good-enough?的另一种策略是监视猜测值在从一次迭代到下一次的变化情况,当改变值相对于猜测值的比率很小时就结束。请设计一个采用这种终止测试方式的平方根过程。对于很大和很小的数,这一方式都能工作吗?</h4> +<p>解答:good-enough?当前采用的判断方式是,对比猜测值的平方结果与X的值之间的差距,当差距小于某个阙值时(比如0.001),就停止计算。当X很小或很大时,这种检测就会失败,比如,假设我们的阙值设置为0.001,那么当X本身小于这个阙值时,就会检测失败,得出错误结果,当X很大时,也会由于精度不足而一直达不到最佳猜测值,导致死循环。</p> +<p>因此,要解决这一问题,可以按照题目中给出的思路对good-enough?过程进行修改,不再判断猜测值平方与X的差距,而是判断两次猜测值之间的比率。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">next</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="nv">guess</span> <span class="nv">next</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mf">0.001</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mf">0.00000000001</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.1622776601874535e-6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">100000000000000000000000000000000000000000000</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 1.0000000000001497e22</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>在新的<code>good-enough?</code>中,传入的是两次猜测值,所以还要修改<code>sqrt-iter</code>过程,在调用时计算两次猜测值。</p>SICP 课后练习题1.6https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/Tue, 23 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.6/<p>采用牛顿法求平方根的过程如下。开始时,我们有了被开方数的值(现在需要做的就是算出它的平方根)和一个猜测值。如果猜测值已经足够好了,有关工作也就完成了。如若不然,那么就需要改进猜测值(求出猜测值与被开方数除以猜测值的平均值),并重复这个计算过程。具体编写代码如下(在MIT scheme解释器中)。</p> +<p>定义<code>sqrt-iter</code>过程,与上述描述完全对应。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义改进猜测值的过程<code>improve</code>,返回猜测值与被开方数除以猜测值的平均值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">average</span> <span class="nv">guess</span> <span class="p">(</span><span class="nb">/ </span><span class="nv">x</span> <span class="nv">guess</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: improve</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求平均数的过程<code>average</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">average</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> <span class="mi">2</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: average</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义判断猜测值是否足够好的过程<code>good-enough?</code>。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nb">&lt; </span><span class="p">(</span><span class="nb">abs </span><span class="p">(</span><span class="nb">- </span><span class="p">(</span><span class="nf">square</span> <span class="nv">guess</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> <span class="mf">0.001</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: good-enough?</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义求绝对值和平方的过程</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">abs </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&lt; </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="nv">x</span><span class="p">)</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: abs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">square</span> <span class="nv">x</span><span class="p">)</span> <span class="p">(</span><span class="nb">* </span><span class="nv">x</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: square</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>定义最上层的过程,用于启动整个工作(使用<code>1</code>这个数字作为任何数的初始猜测值)。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nb">sqrt </span><span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="mf">1.0</span> <span class="nv">x</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>执行<code>sqrt</code>过程,并以<code>9</code>为参数,求得平方根为<code>3</code></p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 3.00009155413138</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h4 id="练习16----alyssa-phacker看不出来为什么需要将if提供为一种特殊形式她问为什么我不能直接通过cond将它定义为一个常规过程呢alyssa的朋友eva-lu-ator断言确实可以这样做并定义了if的一个新版本">练习1.6 Alyssa P.Hacker看不出来为什么需要将if提供为一种特殊形式,她问:“为什么我不能直接通过<code>cond</code>将它定义为一个常规过程呢?”Alyssa的朋友Eva Lu Ator断言确实可以这样做,并定义了<code>if</code>的一个新版本:</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">new-if</span> <span class="nv">predicate</span> <span class="nv">then-clause</span> <span class="nv">else-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">cond </span><span class="p">(</span><span class="nf">predicate</span> <span class="nv">then-clause</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">else </span><span class="nv">else-clause</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: new-if</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>Eva给Alyssa演示她的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">2</span> <span class="mi">3</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">5</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nb">= </span><span class="mi">1</span> <span class="mi">1</span><span class="p">)</span> <span class="mi">0</span> <span class="mi">5</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>她很高兴地用自己的<code>new-if</code>重写了求平方根的程序:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">sqrt-iter</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">new-if</span> <span class="p">(</span><span class="nf">good-enough?</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">guess</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">sqrt-iter</span> <span class="p">(</span><span class="nf">improve</span> <span class="nv">guess</span> <span class="nv">x</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nv">x</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: sqrt-iter</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>当Alyssa试着用这个过程去计算平方根时会发生什么事情呢?请给出解释。</p> +<p>解答:</p> +<p>这个练习引入了一个新的思考,刚开始时,我以为是牵涉到了过程的局部参数概念,因为在新编写的<code>new-if</code>过程中,看似可以完成条件判断并返回正确的值,但是在本例中使用却存在问题,即在递归调用<code>sqrt-iter</code>时,传给该过程的<code>guess</code>和<code>x</code>为<code>new-if</code>的局部参数,被返回给了<code>new-if</code>这个过程,不会向上返回到上一层<code>sqrt-iter</code>里,这样就导致了改进的猜测值永远不会被使用,使得这个计算过程永远不会结束(除非第一个猜测值恰好合适),从而导致递归调用的陷入无限循环。我在<code>MIT-scheme</code>解释器里的执行结果是,解释器自动退出并提示我递归调用深度超出最大值。</p> +<p>上述看起来是合理的,但是后来我考虑了其他情况,及本书在前面章节里提到了if<code>(if &lt;predicate&gt; &lt;consequent&gt; &lt;alternative&gt;)</code>语句是条件表达式的受限形式,在执行时,先判断<code>predicate</code>是否为真,然后根据结果只执行其后<code>consequent/alternative</code>中的一个。如果使用本例新定义的<code>new-if</code>则作为普通过程执行,传入的参数会因为解释器使用应用序求值的原因,两个表达式都会被立即求值,反应到本例中就是<code>guess</code>和<code>(sqrt-iter (improve guess x) x)</code>都会被立即求值,后面的那句是属于递归调用,这样也会导致改进的猜测值永远不会被使用,陷入无限层的递归调用中。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="mi">1</span> <span class="p">]</span><span class="k">=&gt; </span><span class="p">(</span><span class="nb">sqrt </span><span class="mi">9</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Aborting!: maximum recursion depth exceeded</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>思考:</p> +<p>最初的时候,我的针对此题的思考方式是变量的作用域问题(可能lisp不会有此问题),后来发现,也许不是这样,而是由于对传入参数立即求值导致的,后续的网上搜索结果也显示出大家的答案都倾向于后者。</p>SICP 课后练习题1.4https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.4/<h4 id="练习14----请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型根据对这一模型的认识描述下面过程的行为">练习1.4 请仔细考察上面给出的允许运算符为复合表达式的组合式的求值模型,根据对这一模型的认识描述下面过程的行为。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.4,通过if判断,根据b的值决定对a b所使用的运算符是+还是-,如果b大于0,则组合式为(+ a b),反之则为(- a b),所以组合式结果永远返回a加上b的绝对值。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span><span class="lnt">9 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">((</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="mi">0</span><span class="p">)</span> <span class="nv">+</span> <span class="nv">-</span><span class="p">)</span> <span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: a-plus-abs-b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">a-plus-abs-b</span> <span class="mi">4</span> <span class="mi">-2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 6</span> +</span></span></code></pre></td></tr></table> +</div> +</div>SICP 课后练习题1.5https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/Fri, 19 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.5/<h4 id="练习15---ben-bitdiddle发明了一种检测方法能够确定解释器究竟采用哪种序求值是采用应用序还是正则序他定义了下面两个过程">练习1.5 Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用哪种序求值,是采用应用序,还是正则序。他定义了下面两个过程</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">p</span><span class="p">)</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">test</span> <span class="nv">x</span> <span class="nv">y</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">= </span><span class="nv">x</span> <span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="mi">0</span> +</span></span><span class="line"><span class="cl"> <span class="nv">y</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>而后他求值下面的表达式:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">test</span> <span class="mi">0</span> <span class="p">(</span><span class="nf">p</span><span class="p">))</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>如果某个解释器采用的是应用序求值,Ben会看到什么样的情况?如果解释器采用正则序求值,他又会看到什么情况?请对你的回答做出解释。(无论采用正则序或者应用序,假定特殊形式if的求值规则总是一样的。其中的谓词部分先行求值,根据其结果确定随后求值的子表达式部分。)</p> +<p>练习1.5 『完全展开而后规约』的求值模型为正则序求值,『先求值参数而后应用』的方式为应用序求值,因此,在应用序求值的模式下,执行<code>(test 0 (p))</code>时会先求<code>(p)</code>这个表达式的值,而根据定义<code>(define (p) (p))</code>执行<code>(p)</code>会造成递归调用,解释器陷入死循环。而在正则序求值模式下,会先展开<code>test</code>过程,根据需要再决定是否执行<code>(p)</code>,在本例中,由于传入的<code>x</code>等于<code>0</code>,所以<code>(p)</code>不会被执行,因此不会陷入死循环。</p> +<p>所以,根据以上分析,如果解释器采用的是应用序求值,则解释器陷入死循环,如果是采用正则序求值,则解释器输出<code>;Value: 0</code>。</p>SICP 课后练习题1.1https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.1/<h4 id="练习11----下面是一系列表达式对于每个表达式解释器将输出什么结果假定这一系列表达式是按照给出的顺序逐个求值的">练习1.1 下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="mi">10</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 10</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> <span class="mi">3</span> <span class="mi">4</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 12</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">9</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 8</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 3</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="p">(</span><span class="nb">* </span><span class="mi">2</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">- </span><span class="mi">4</span> <span class="mi">6</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">a</span> <span class="mi">3</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: a</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">define </span><span class="nv">b</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: b</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 19</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">= </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: #f</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="k">and </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">&lt; </span><span class="nv">b</span> <span class="p">(</span><span class="nb">* </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)))</span> +</span></span><span class="line"><span class="cl"><span class="nv">b</span> +</span></span><span class="line"><span class="cl"><span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 4</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">= </span><span class="nv">a</span> <span class="mi">4</span><span class="p">)</span> <span class="mi">6</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">= </span><span class="nv">b</span> <span class="mi">4</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="mi">7</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">25</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">2</span> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="nv">b</span> <span class="nv">a</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 6</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="p">(</span><span class="k">cond </span><span class="p">((</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">((</span><span class="nb">&lt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="k">else </span><span class="mi">-1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="mi">1</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: 16</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.1的内容比较简单,基本上直接就可以计算出表达式的值,所有表达式都可以在mit-scheme的交互解释器里进行验证。</p>SICP 课后练习题1.2https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.2/<h4 id="练习12----请将下面表达式变换为前缀形式">练习1.2 请将下面表达式变换为前缀形式:</h4> +<p>$$ \frac{5+4+\Bigl(2-\Bigl(3-\left(6+\frac{4}{5}\right)\Bigr)\Bigr)}{3\left(6-2\right)\left(2-7\right)} $$</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"><span class="p">(</span><span class="nb">/ </span><span class="p">(</span><span class="nb">+ </span><span class="mi">5</span> +</span></span><span class="line"><span class="cl"><span class="mi">4</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">+ </span><span class="mi">6</span> <span class="p">(</span><span class="nb">/ </span><span class="mi">4</span> <span class="mi">5</span><span class="p">)))))</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">* </span><span class="mi">3</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">6</span> <span class="mi">2</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="nb">- </span><span class="mi">2</span> <span class="mi">7</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="c1">;Value: -37/150</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.2,直接将数学表达式转换为前序表达式即可,在写的时候可以遵循一下排版规则,即同一个运算符的表达式垂直对齐。</p>SICP 课后练习题1.3https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/Mon, 15 Dec 2014 00:00:00 +0000https://sbabybird.github.io/p/sicp-%E8%AF%BE%E5%90%8E%E7%BB%83%E4%B9%A0%E9%A2%981.3/<h4 id="练习13----请定义一个过程它以三个数为参数返回其中较大两个数之和">练习1.3 请定义一个过程,它以三个数为参数,返回其中较大两个数之和。</h4> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-scheme" data-lang="scheme"><span class="line"><span class="cl"> <span class="p">(</span><span class="k">define </span><span class="p">(</span><span class="nf">max-three-number</span> <span class="nv">a</span> <span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">b</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">b</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">a</span> <span class="nv">c</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="k">if </span><span class="p">(</span><span class="nb">&gt; </span><span class="nv">a</span> <span class="nv">c</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">a</span><span class="p">)</span> <span class="p">(</span><span class="nb">+ </span><span class="nv">b</span> <span class="nv">c</span><span class="p">))))</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="p">(</span><span class="nf">max-three-number</span> <span class="mi">42</span> <span class="mi">7</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="c1">;Value: 49</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>练习1.3,解决此练习中问题的方法比较多,本答案使用比较朴素的方法,先比较出最大的两个数字,然后将其相加,对于三个数字来说,先在前两个中选取一个大的,然后将其与后面两个中比较大的那一个相加。还有一种思路就是可以先定义出比较大小的方法,然后再调用之,或者先对数字按从小到大排序然后加最后两个,等等。</p> \ No newline at end of file diff --git a/tags/programming/page/1/index.html b/tags/programming/page/1/index.html new file mode 100644 index 000000000..4b17ab4df --- /dev/null +++ b/tags/programming/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/programming/ \ No newline at end of file diff --git a/tags/programming/page/2/index.html b/tags/programming/page/2/index.html new file mode 100644 index 000000000..bbad89d60 --- /dev/null +++ b/tags/programming/page/2/index.html @@ -0,0 +1,33 @@ +Tag: programming - Learning & Writing! +

Tags

programming

+ \ No newline at end of file diff --git a/tags/vs2008/index.html b/tags/vs2008/index.html new file mode 100644 index 000000000..bb0096996 --- /dev/null +++ b/tags/vs2008/index.html @@ -0,0 +1,32 @@ +Tag: vs2008 - Learning & Writing! +

Tags

vs2008

+ \ No newline at end of file diff --git a/tags/vs2008/index.xml b/tags/vs2008/index.xml new file mode 100644 index 000000000..df00e6815 --- /dev/null +++ b/tags/vs2008/index.xml @@ -0,0 +1,130 @@ +vs2008 on Learning & Writing!https://sbabybird.github.io/tags/vs2008/Recent content in vs2008 on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 07 Nov 2013 00:00:00 +0000使用vs2008编译mongodbhttps://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/Thu, 07 Nov 2013 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8vs2008%E7%BC%96%E8%AF%91mongodb/<h2 id="背景问题">背景问题</h2> +<p>mongodb在windwos下的官方编译包是使用vs2010编译的,从官网上下载的源代码在vs2008环境下不能直接编译通过,因为mongodb提供的相关配置文件是针对vs2010的,可能是因为mongodb最新的代码使用了部分C++11的特性,而vs2008没有提供对C++11支持的原因。可是我们在一个具体的项目上需要在vs2008环境下使用mongodb,只好通过手工修改部分配置和代码的办法完成编译。</p> +<h2 id="环境准备">环境准备</h2> +<p>mongodb是使用scons进行编译控制的,所以在进行以下编译之前需要安装并配置好如下环境:</p> +<h3 id="python27">python2.7</h3> +<p>官方建议是安装python2.7版本,而且要在环境变量PATH中加入python的安装路径和python/scripts的路径,以便在命令行中执行python脚本。 +<em>不过我在编译的时候使用的是python2.6版本,也没有发现问题</em></p> +<h3 id="scons">scons</h3> +<ul> +<li>直接去网上下载最新版本进行安装即可。</li> +</ul> +<h3 id="vs2008">vs2008</h3> +<ul> +<li>需要安装vc++的全部组件(主要是默认安装不带amd64的编译支持),如果只需要编译32位版本的话则可以忽略此条。</li> +<li>需要安装sp1补丁,否则会在编译时报错。</li> +</ul> +<h3 id="boost库">boost库</h3> +<ul> +<li> +<p>最好使用boost1.4.9版本,去官网上下载对应的源码包然后自己在vs2008的命令行环境下编译</p> +</li> +<li> +<p>编译boost的命令如下(只编译了所需库):</p> +<pre><code> bjam stage variant=debug --with-filesystem --with-thread --with-date_time --with-program_options --layout=versioned threading=multi toolset=msvc-10.0 --build-type=complete +</code></pre> +</li> +</ul> +<p><em>如果需要编译release版本,就把<code>variant</code>的选项改为<code>release</code>,如果需要编译64位的版本,就在以上命令中加入<code>address-model=64</code></em></p> +<h2 id="配置及代码修改">配置及代码修改</h2> +<h3 id="sconstruct文件修改">SConstruct文件修改</h3> +<p>SConstruct文件用于存放scons的关键配置信息,我们为了在vs2008下编译mongodb首先要做的就是修改mongodb源码下根目录的SConstruct文件。</p> +<ul> +<li> +<p>修改env配置,找到 evn = Environment</p> +<pre><code> env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log' +) +</code></pre> +</li> +</ul> +<p>在Environment里追加一条 <code>MSVC_VERSION='9.0'</code>,这是因为如果机器上有其他的编译环境,比如vs2010或vs2012,scons会自动使用他们的编译器进行编译,即使你是在vs2008的命令行环境下,我最初因为此问题困扰了很久,后来才只得强制指定编译器的版本,修改完成后如下:</p> +<pre><code>env = Environment( BUILD_DIR=variantDir, +CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +CLIENT_DIST_BASENAME=get_option('client-dist-basename'), +CLIENT_LICENSE='#distsrc/client/LICENSE.txt', +CLIENT_SCONSTRUCT='#distsrc/client/SConstruct', +DIST_ARCHIVE_SUFFIX='.tgz', +EXTRAPATH=get_option(&quot;extrapath&quot;), +MODULE_BANNERS=[], +MODULETEST_ALIAS='moduletests', +MODULETEST_LIST='#build/moduletests.txt', +MSVS_ARCH=msarch , +PYTHON=utils.find_python(), +SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', +TARGET_ARCH=msarch , +tools=[&quot;default&quot;, &quot;gch&quot;, &quot;jsheader&quot;, &quot;mergelib&quot;, &quot;unittest&quot;], +UNITTEST_ALIAS='unittests', +UNITTEST_LIST='#build/unittests.txt', +PYSYSPLATFORM=os.sys.platform, +PCRE_VERSION='8.30', +CONFIGUREDIR = '#' + scons_data_dir + '/sconf_temp', +CONFIGURELOG = '#' + scons_data_dir + '/config.log', +MSVC_VERSION = '9.0' +) +</code></pre> +<ul> +<li> +<p>给编译器搜索路径增加你自己本地的boost库路径 +因为在编译时需要用到boost库,所以需要把你在本地的boost所在目录加入scons的环境,否则会报找不到boost头文件或链接库的错误,打开Sconstruct文件直接在最后加入如下代码</p> +<p>env.Append(CPPPATH=[&ldquo;d:/thirdlib/boost_1_49_0&rdquo;, &ldquo;d:/thirdlib/boost_1_49_0/boost/tr1&rdquo;], LIBPATH=[&ldquo;d:/thridlib/boost_1_49_0/stage/lib&rdquo;])</p> +<pre><code> *你在编译时需要将路径替换成你自己的* +</code></pre> +</li> +</ul> +<h3 id="准备stdinth">准备stdint.h</h3> +<ul> +<li>去这个地址<a class="link" href="https://msinttypes.googlecode.com/files/msinttypes-r26.zip" target="_blank" rel="noopener" +>https://msinttypes.googlecode.com/files/msinttypes-r26.zip</a>下载msinttypes,将压缩包里的stdint.h解压并复制到 <code>C:\Program Files\Microsoft Visual Studio 9.0\VC\include</code> 目录</li> +<li>修改mongodb源码目录下platform下的cstdint.h,将<code>#include&lt;cstdint&gt;</code>修改为<code>#include&lt;stdint.h&gt;</code>,将<code>#define _MONGO_STDINT_NAMESPACE std</code>这一行里的std注释掉,变成<code>#define _MONGO_STDINT_NAMESPACE /*std*/ </code></li> +<li>修改mongodb源码目录下util下的time_support.h,在文件开头加入<code>#include&lt;stdint.h&gt;</code>,否则在编译这个文件时会无法识别int64_t类型</li> +</ul> +<h3 id="修改windows_basich">修改windows_basic.h</h3> +<ul> +<li>修改mongodb源码目录下platform下的windows_basic.h,</li> +<li>在<code> #if !defined(NTDDI_WINXPSP3) || (NTDDI_VERSION &lt; NTDDI_WINXPSP3)</code> 之前加入 <code>#define NTDDI_WINXPSP3 0x05010300</code> 在<code>#if !defined(NTDDI_WS03SP2) || (NTDDI_VERSION &lt; NTDDI_WS03SP2)</code>之前加入<code>#define NTDDI_WS03SP2 0x05020200</code> 否则会报 &ldquo;32 bit mongo does not support Windows versions older than XP Service Pack 3&rdquo; 和&quot;64 bit mongo does not support Windows versions older than Windows Server 2003 SP 2&quot; 错误</li> +</ul> +<h3 id="修改listencpp和sockcpp">修改listen.cpp和sock.cpp</h3> +<ul> +<li> +<p>修改util下net下listen.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EADDRINUSE WSAEADDRINUSE +#define ECONNABORTED WSAECONNABORTED +#define EBADF 9 +#define ENFILE 23 +#define EMFILE 24 +#endif +</code></pre> +</li> +<li> +<p>修改util下net下sock.cpp,在#include段之后加入如下代码</p> +<pre><code> #ifdef _WIN32 +#define EAGAIN 11 +#endif +</code></pre> +</li> +</ul> +<h2 id="开始编译">开始编译</h2> +<p>环境准备好之后,编译就比较简单了,打开vs2008命令行窗口,执行如下代码即可完成编译 +<code>scons --dd --32 mongoclient.lib</code></p> +<p>如果是编译release版本,就把&ndash;dd换成&ndash;release,如果是编译64位版本,就把&ndash;32换成&ndash;64</p> \ No newline at end of file diff --git a/tags/vs2008/page/1/index.html b/tags/vs2008/page/1/index.html new file mode 100644 index 000000000..bfeb5963e --- /dev/null +++ b/tags/vs2008/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/vs2008/ \ No newline at end of file diff --git a/tags/wifi/index.html b/tags/wifi/index.html new file mode 100644 index 000000000..2564f97dc --- /dev/null +++ b/tags/wifi/index.html @@ -0,0 +1,32 @@ +Tag: wifi - Learning & Writing! +

Tags

wifi

+ \ No newline at end of file diff --git a/tags/wifi/index.xml b/tags/wifi/index.xml new file mode 100644 index 000000000..44def0edb --- /dev/null +++ b/tags/wifi/index.xml @@ -0,0 +1,27 @@ +wifi on Learning & Writing!https://sbabybird.github.io/tags/wifi/Recent content in wifi on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 13 Feb 2014 00:00:00 +0000win8系统下使用笔记本作为wifi热点https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/Thu, 13 Feb 2014 00:00:00 +0000https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/<h1 id="win8系统下使用笔记本作为wifi热点">win8系统下使用笔记本作为wifi热点</h1> +<h2 id="背景">背景</h2> +<p>在没有无线路由的情况下,比如出差在宾馆,如果手里有一台可以上网的笔记本电脑,则可以给手机、平板电脑或者其他笔记本提供一个可以上网的wifi热点。</p> +<p>我平时在单位即通过此方式给我的平板电脑和手机共享网络通道,比较方便实用,近期在使用的过程中遇到一些问题,经过摸索,解决了问题,在此记录一下,方便以后查阅。</p> +<h2 id="环境需要">环境需要</h2> +<ul> +<li>一台通过有线连接上网(或者通过3G上网,就是说wifi网卡没有被占用)的笔记本电脑</li> +<li>安装有win8操作系统(win7应该也可以)</li> +<li>无线网卡芯片是intel的(否则可能不支持此技术),并使用了最新的驱动程序</li> +</ul> +<h2 id="基本步骤">基本步骤</h2> +<ul> +<li> +<p>打开具有管理员权限的控制台窗口(在win8系统下,可以通过按<code>windows+x</code>键,然后在弹出的菜单里选择『命令提示符(管理员)』)</p> +</li> +<li> +<p>输入如下命令 <code>netsh wlan set hostednetwork mode=allow ssid=&quot;mywifi&quot; key=&quot;12345678&quot;</code> <em>其中ssid后面的热点名称和key后面的密码可以根据情况自行决定</em></p> +</li> +<li> +<p>上一个命令完成后,如果没有异常的话,则输入如下命令 <code>netsh wlan start hostednetwork</code> <em>这条命令如果执行成功会显示『已启动承载网络』,在下次系统重启后需要重新执行,如果嫌麻烦则可以做一个批处理文件每次双击即可</em></p> +</li> +<li> +<p>成功启动承载网络之后,进入『网络和共享中心』点击『更改适配器设置』,此时在该页里应该可以看到一个虚拟网卡(名称一般叫MicrosoftVirtual WiFi Miniport Adapter),右键点击那个可以上网的网络连接(如果是有线连接就是那个『本地连接』,如果是3G的则根据情况而定,总之必须是那个可以上网的连接),选择『属性』,切换到『共享』页,勾选『允许其他网络用户通过此计算机的Internet连接来连接』,在下面的下拉列表里选择那个刚虚拟出来的虚拟网卡。确定即可。</p> +</li> +</ul> +<h2 id="常见问题">常见问题</h2> +<p>执行以上第二条命令启动承载网络后,有时会显示『无法启动承载网络,组或资源的状态不是执行请求操作的正确状态』,网上大部分的文章针对这个问题给出的解决办法都是更新网卡驱动,可是对于我的笔记本无效,因为我的笔记本电脑在前一段时间是好用的,后来不好用了,根据我的摸索,解决这个问题的办法是,去『设备管理器』下面的『网络适配器』里面找找,看看有没有被禁用的设备,比如『微软托管网络协议』,如果禁用了再重新启用即可正常使用此功能了。</p> \ No newline at end of file diff --git a/tags/wifi/page/1/index.html b/tags/wifi/page/1/index.html new file mode 100644 index 000000000..bde58df34 --- /dev/null +++ b/tags/wifi/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/wifi/ \ No newline at end of file diff --git a/tags/win8/index.html b/tags/win8/index.html new file mode 100644 index 000000000..137f8a19c --- /dev/null +++ b/tags/win8/index.html @@ -0,0 +1,32 @@ +Tag: win8 - Learning & Writing! +

Tags

win8

+ \ No newline at end of file diff --git a/tags/win8/index.xml b/tags/win8/index.xml new file mode 100644 index 000000000..aadb7aff4 --- /dev/null +++ b/tags/win8/index.xml @@ -0,0 +1,27 @@ +win8 on Learning & Writing!https://sbabybird.github.io/tags/win8/Recent content in win8 on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 13 Feb 2014 00:00:00 +0000win8系统下使用笔记本作为wifi热点https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/Thu, 13 Feb 2014 00:00:00 +0000https://sbabybird.github.io/p/win8%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%BD%9C%E4%B8%BAwifi%E7%83%AD%E7%82%B9/<h1 id="win8系统下使用笔记本作为wifi热点">win8系统下使用笔记本作为wifi热点</h1> +<h2 id="背景">背景</h2> +<p>在没有无线路由的情况下,比如出差在宾馆,如果手里有一台可以上网的笔记本电脑,则可以给手机、平板电脑或者其他笔记本提供一个可以上网的wifi热点。</p> +<p>我平时在单位即通过此方式给我的平板电脑和手机共享网络通道,比较方便实用,近期在使用的过程中遇到一些问题,经过摸索,解决了问题,在此记录一下,方便以后查阅。</p> +<h2 id="环境需要">环境需要</h2> +<ul> +<li>一台通过有线连接上网(或者通过3G上网,就是说wifi网卡没有被占用)的笔记本电脑</li> +<li>安装有win8操作系统(win7应该也可以)</li> +<li>无线网卡芯片是intel的(否则可能不支持此技术),并使用了最新的驱动程序</li> +</ul> +<h2 id="基本步骤">基本步骤</h2> +<ul> +<li> +<p>打开具有管理员权限的控制台窗口(在win8系统下,可以通过按<code>windows+x</code>键,然后在弹出的菜单里选择『命令提示符(管理员)』)</p> +</li> +<li> +<p>输入如下命令 <code>netsh wlan set hostednetwork mode=allow ssid=&quot;mywifi&quot; key=&quot;12345678&quot;</code> <em>其中ssid后面的热点名称和key后面的密码可以根据情况自行决定</em></p> +</li> +<li> +<p>上一个命令完成后,如果没有异常的话,则输入如下命令 <code>netsh wlan start hostednetwork</code> <em>这条命令如果执行成功会显示『已启动承载网络』,在下次系统重启后需要重新执行,如果嫌麻烦则可以做一个批处理文件每次双击即可</em></p> +</li> +<li> +<p>成功启动承载网络之后,进入『网络和共享中心』点击『更改适配器设置』,此时在该页里应该可以看到一个虚拟网卡(名称一般叫MicrosoftVirtual WiFi Miniport Adapter),右键点击那个可以上网的网络连接(如果是有线连接就是那个『本地连接』,如果是3G的则根据情况而定,总之必须是那个可以上网的连接),选择『属性』,切换到『共享』页,勾选『允许其他网络用户通过此计算机的Internet连接来连接』,在下面的下拉列表里选择那个刚虚拟出来的虚拟网卡。确定即可。</p> +</li> +</ul> +<h2 id="常见问题">常见问题</h2> +<p>执行以上第二条命令启动承载网络后,有时会显示『无法启动承载网络,组或资源的状态不是执行请求操作的正确状态』,网上大部分的文章针对这个问题给出的解决办法都是更新网卡驱动,可是对于我的笔记本无效,因为我的笔记本电脑在前一段时间是好用的,后来不好用了,根据我的摸索,解决这个问题的办法是,去『设备管理器』下面的『网络适配器』里面找找,看看有没有被禁用的设备,比如『微软托管网络协议』,如果禁用了再重新启用即可正常使用此功能了。</p> \ No newline at end of file diff --git a/tags/win8/page/1/index.html b/tags/win8/page/1/index.html new file mode 100644 index 000000000..4fb0dc457 --- /dev/null +++ b/tags/win8/page/1/index.html @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/win8/ \ No newline at end of file diff --git "a/tags/\345\256\266\345\272\255/index.html" "b/tags/\345\256\266\345\272\255/index.html" new file mode 100644 index 000000000..ac7d2e6ba --- /dev/null +++ "b/tags/\345\256\266\345\272\255/index.html" @@ -0,0 +1,32 @@ +Tag: 家庭 - Learning & Writing! +

Tags

家庭

+ \ No newline at end of file diff --git "a/tags/\345\256\266\345\272\255/index.xml" "b/tags/\345\256\266\345\272\255/index.xml" new file mode 100644 index 000000000..956b3f530 --- /dev/null +++ "b/tags/\345\256\266\345\272\255/index.xml" @@ -0,0 +1,20 @@ +家庭 on Learning & Writing!https://sbabybird.github.io/tags/%E5%AE%B6%E5%BA%AD/Recent content in 家庭 on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 09 May 2019 00:00:00 +0000致儿子成人礼的一封信https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/Thu, 09 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%B4%E5%84%BF%E5%AD%90%E6%88%90%E4%BA%BA%E7%A4%BC%E7%9A%84%E4%B8%80%E5%B0%81%E4%BF%A1/<p>序言我儿,见信如面。在这个即时通讯如此发达的时代,我选择写一封长信,以表示对你即将成人的祝贺。</p> +<p>我陷入沉思了一会儿,考虑该给你讲些什么道理。但我很快意识到,“道理”这种东西,靠听和说没有用,只能自己去感悟。而我自己也十分讨厌被说教,所以我会克制想要给你讲一番大道理的冲动,尽量避免不对等的交流形式。</p> +<p>我想我还是跟你分享一些我对这个世界的思考和想法吧。</p> +<p>茨威格在《人类群星闪耀》中写到“一个人最幸运的事情就是在他思想最活跃、精力最充沛的时候找到了他的人生使命”。看来大家都把寻找人生使命当做比较重要事情来看待。姑且就当做我这封信的主题吧。</p> +<p>寻找人生使命本质上是通过尝试在一些方向上的努力来实现对人生价值和意义的探索,每个人或多或少、或深或浅都要做这样的尝试。</p> +<p>你们学校把“成人礼”包装成一个重要的人生节点,想必是希望给你们一些感觉,让你们意识到,从这一刻起,你们开始对自己的行为负责,要开始尝试去寻找和探索了。</p> +<p>那么该如何去探索,我有一些自己的看法。</p> +<p>首先要相信一点,那就是无论是否还在上学,学习和完善自己都是一辈子的事情,不存在一个可以停止学习的时间点。就我个人来说,无论是读大学的时候还是参加工作以后,从来没有在提升自己方面有过松懈的想法,甚至我感觉工作之后对知识的渴望更加强烈了,学到的东西也比在校园里多得多。</p> +<p>当然了,学习方式跟你目前在学校这种还是差别挺大的,强度也没有那么辛苦。而且工作之后的这种学习方式才是我最认可的方式。什么方式?</p> +<p>我们一起讨论过几次王阳明的“知行合一”,为了不扯那么远,简单来说,刚才提到的学习方式就是老王早就提出的“事儿上练”。通过不断地实践,各种经历,才是学习知识的源泉。这也是为啥我在开头就说道理只能感悟不可说教,怎么感悟?事儿上感悟!经历多了自然懂。</p> +<p>所以也不用一下子被“寻找人生使命”这种“宏大话题”给吓住了,保持学习的心态,放松大胆地去经历各种事情,就是这么个过程。</p> +<p>然后呢,就是在做事的过程中,保持一颗善良、为他人多着想的心。关于这一点,我的体会是,“助人为快乐之本”真的不是一句空话。远的不说,你看你爷爷奶奶平日里多么乐于助人,用乐善好施形容他们一点儿也不为过。他们因此收获了广泛的认可,也给这个家庭带来了积极向上的生活氛围,对你老爹我向好的方面发展也起到了关键作用。</p> +<p>再有一点,也是我个人非常推崇的,就是最好能时刻对世界保持强烈的好奇心。</p> +<p>刘慈欣在短篇科幻小说《朝闻道》中讲了一个故事。外星高等文明在监视地球人类进化的过程中,距离现在几十万年前的一个原始人抬头望了望夜晚的天空,凝视了一会儿。这看似随意的行为使得外星人的警报器响了起来,因为这意味着,人类的好奇心已经发展到了星空,同时也意味着人类文明将要开始爆发式发展了。可见好奇心的重要。</p> +<p>好奇心一方面是推动我们前进的动力,同时也使得我们平凡的生活变得不那么枯燥。</p> +<p>你能经常提出一些有时连我都无法回答的问题,这让我也颇感欣慰,有些答案注定要自己去摸索着发现,我希望你能多多提问,也多自己思考,不用去管答案是什么。</p> +<p>稀稀拉拉写了这么多,估计你也不能理解太多,我像你这个年纪时估计也理解不了。不过也没关系,只是给你讲讲我个人通过思考得到的观点而已,说不定你自己以后有不同的发现,当然如果能在你以后的发展中起到一点儿提醒作用,也就挺好了。</p> +<p>希望你这次“成人礼”活动就像人类文明那一次一次对星空的凝望那样,使你能够进入人生的一个新的高速发展阶段。</p> +<p>祝:学习进步,健康成长!</p> +<p>二零一九年五月九日 写于贵阳机场</p> \ No newline at end of file diff --git "a/tags/\345\256\266\345\272\255/page/1/index.html" "b/tags/\345\256\266\345\272\255/page/1/index.html" new file mode 100644 index 000000000..d47003835 --- /dev/null +++ "b/tags/\345\256\266\345\272\255/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E5%AE%B6%E5%BA%AD/ \ No newline at end of file diff --git "a/tags/\345\271\264\345\272\246\346\200\273\347\273\223/index.html" "b/tags/\345\271\264\345\272\246\346\200\273\347\273\223/index.html" new file mode 100644 index 000000000..2e69503e8 --- /dev/null +++ "b/tags/\345\271\264\345\272\246\346\200\273\347\273\223/index.html" @@ -0,0 +1,32 @@ +Tag: 年度总结 - Learning & Writing! +

Tags

年度总结

+ \ No newline at end of file diff --git "a/tags/\345\271\264\345\272\246\346\200\273\347\273\223/index.xml" "b/tags/\345\271\264\345\272\246\346\200\273\347\273\223/index.xml" new file mode 100644 index 000000000..709d05013 --- /dev/null +++ "b/tags/\345\271\264\345\272\246\346\200\273\347\273\223/index.xml" @@ -0,0 +1,37 @@ +年度总结 on Learning & Writing!https://sbabybird.github.io/tags/%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/Recent content in 年度总结 on Learning & Writing!Hugo -- gohugo.iozh-cnWed, 10 Feb 2021 00:00:00 +00002020年个人总结https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Wed, 10 Feb 2021 00:00:00 +0000https://sbabybird.github.io/p/2020%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h2 id="保持好奇心">保持好奇心</h2> +<ul> +<li>大概是2011年左右,我把QQ签名改成了“好奇、求知、创造”,从此再也没有改变过,我所喜欢的、热爱的、欲罢不能的事情,都被这三个词涵盖了。</li> +<li>十年过去了,很高兴自己还能保持一颗探索未知、热爱学习的心。</li> +</ul> +<h2 id="读书">读书</h2> +<ul> +<li>现在听书比读书所占比重大,阅读时间缩水明显,翻开电子书的时间都有限,更别提手不释卷。</li> +<li>年初重温《三体》,即便很多情节已烂熟于心,重读仍有新发现,休闲阅读而已,只为放松大脑。</li> +<li>其余时间陆续阅读一些杂书《原则》、《随机漫步》、《菜根谭》、《曾国藩传》等若干。</li> +<li>唯一触动较大的是年末再次翻看《计算机程序的构造和解释》,此次配合网上的公开课视频进行,跟随原书作者课程讲解节奏,对于知识的理解大有帮助,视频虽然年代久远,但知识历久弥新,比起科技业广泛应用的新兴技术,书中的计算原理以及相关的思想更像是对应了武术的“内功心法”,一旦有所突破,则在上层应用产生巨大的提升,与工作学习都大有裨益,其中玄妙不可言说。</li> +</ul> +<h2 id="摄影">摄影</h2> +<ul> +<li>户外活动大为减少,往年春天乃摄影高产期,今年却苦于疫情无法外出,摄影爱好被迫搁置,2020年对摄影技术的练习几乎停滞,无心仪作品产出。</li> +<li>卡片相机已很少使用,手机拍摄已是主流,器材追求已解毒,但如有更新的街拍机问世,心头恐怕还是会痒。</li> +<li>有一事可提,今年独自吃饭次数很多,每次都拍食物照一张,累积下来一年竟拍了几百。</li> +</ul> +<h2 id="生活">生活</h2> +<ul> +<li>压力与机遇并存,最大收获是面对挫折、困难更坦然,2020不愿多提。</li> +<li>记忆力确实有下降之趋势,回忆起来竟无亮点,亦可能本身就比较平淡。</li> +<li>发现凡事都要低调不吭声的重要性,切记四处宣扬,否则就会出现“说出来就不灵”的魔咒。</li> +</ul> +<h2 id="学习">学习</h2> +<ul> +<li>对8bit老古董计算机的兴趣不减,四处搜寻相关知识,弄了一大堆模拟器,研究过程中竟对之前所学计算机组成原理有了新的认识和理解,喜出望外,本该大学之时就应掌握的技能,到现在再学也不迟,重在理解。</li> +<li>创意类软件如blender等也持续浅尝,进步缓慢,但入门已没问题,缺少作品练习,安排即可。</li> +<li>儿子已入大学,借用假期时间,我教他编程,他给我讲解高数,算是技能交换了,费曼学习法的一个很直接的应用案例。</li> +<li>越发觉得B站是个学习的好地方,该站以后的发展不可估量,但从教育来看,很可能迅速超越国内二流大学,或者未来改变大学的形态也未可知。</li> +</ul> +<h2 id="后续计划">后续计划</h2> +<ul> +<li>希望可以继续通过写字记录学习的知识,保持一定量的文字输出,如条件实在有限,配合语音录音也可。</li> +<li>在自己热爱的事情上,持续学习,关注一下作品输出(持续开新坑),早日成为心目中的“全栈工程师”、“三级工程师”(可参见吴军《硅谷来信》中的定义)。</li> +<li>限制烟酒摄入,保持每日的活动量,能走路就不坐车。</li> +</ul> \ No newline at end of file diff --git "a/tags/\345\271\264\345\272\246\346\200\273\347\273\223/page/1/index.html" "b/tags/\345\271\264\345\272\246\346\200\273\347\273\223/page/1/index.html" new file mode 100644 index 000000000..de33f7307 --- /dev/null +++ "b/tags/\345\271\264\345\272\246\346\200\273\347\273\223/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93/ \ No newline at end of file diff --git "a/tags/\345\277\203\345\276\227/index.html" "b/tags/\345\277\203\345\276\227/index.html" new file mode 100644 index 000000000..4e3f06a3a --- /dev/null +++ "b/tags/\345\277\203\345\276\227/index.html" @@ -0,0 +1,32 @@ +Tag: 心得 - Learning & Writing! +

Tags

心得

+ \ No newline at end of file diff --git "a/tags/\345\277\203\345\276\227/index.xml" "b/tags/\345\277\203\345\276\227/index.xml" new file mode 100644 index 000000000..8654c761a --- /dev/null +++ "b/tags/\345\277\203\345\276\227/index.xml" @@ -0,0 +1,5 @@ +心得 on Learning & Writing!https://sbabybird.github.io/tags/%E5%BF%83%E5%BE%97/Recent content in 心得 on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 19 Jul 2018 00:00:00 +0000事如春梦了无痕https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/Thu, 19 Jul 2018 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%8B%E5%A6%82%E6%98%A5%E6%A2%A6%E4%BA%86%E6%97%A0%E7%97%95/<p>上苍保佑吃饱饭撑着的人,中午吃完饭抽烟的时候,刷了几页微博,可能跟我关注的人有关(我一般关注段子手或者文艺思想贩卖者),感觉内容作为消遣挺合适,但是越看呢,越觉得没有营养,可能是跟我刚抽完烟进入贤者时间有关,一把把微博推开的时候(合上屏幕),心里竟涌现出一句“都是吃饱了撑的”,用以评价刚刚看过的几段不痛不痒的文字。</p> +<p>发完感慨随即想到,这句话是不是可以作为一本非常扯淡的书名呢?然后开始畅想自己写一本这样的书,里面的内容天马行空,多为吃饱了没事儿干的人才会忧伤和考虑的事情,饱暖之后各种忧虑和焦躁的事情可以化作各种思考,用于填满本书,作为同病相怜者证明自己不再孤独的弹药,一旦物质状态不能满足,则书中的内容立即退化到可有可无的状态。</p> +<p>真的,我这两三年来,刷牙沉思录这种哗众取宠的段子写了不少,缺少深度的技术文章也写过几篇,以吃饱了撑着来进行衡量的话,还真的比较符合标准,如果加以艺术润色的话,真难说能不能包装成为一本具备贩卖价值的书,至少想到这个问题之后,被自己震惊了一下,进一步对人生需求的几个层次有了切身认识。</p> +<p>无论我再怎么黑自己,有一点是不会改变,我写的那些东西至少保留了我一部分的回忆,它们记载了我在某一段时期内的心智情况,无论是用词还是造句,都能从一个侧面反映我当时的状态。而我的人生正是由若干个这样的状态所组成,随着年龄的增长,我的记忆力会越来越差,如果能够多记录一些东西下来,就算是那种吃饱了撑着才能思考的问题,也将使未来的我读起来热泪盈眶。</p> +<p>不过信息世界的问题在于,资料保存的永久性很不靠谱,说不定哪天这些信息就不在了(我写在msn空间的博客一篇也没了),甚至安全性还比不了一个纸质的笔记本,但我仍然不做过多的努力和担忧,倘若保存良好,那就作为未来回忆的佐料,倘若不幸丢失了,那就随他去吧。因为在写这些东西的同时,我已经感受一次生活了,本来也是留不住的东西,事如春梦了无痕嘛。</p> \ No newline at end of file diff --git "a/tags/\345\277\203\345\276\227/page/1/index.html" "b/tags/\345\277\203\345\276\227/page/1/index.html" new file mode 100644 index 000000000..6a9974f32 --- /dev/null +++ "b/tags/\345\277\203\345\276\227/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E5%BF%83%E5%BE%97/ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/index.html" new file mode 100644 index 000000000..989f8ee10 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/index.html" @@ -0,0 +1,35 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/index.xml" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/index.xml" new file mode 100644 index 000000000..f0cfdb95e --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/index.xml" @@ -0,0 +1,2517 @@ +心情随笔 on Learning & Writing!https://sbabybird.github.io/tags/%E5%BF%83%E6%83%85%E9%9A%8F%E7%AC%94/Recent content in 心情随笔 on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 07 Oct 2010 00:00:00 +0000假日记趣https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/Thu, 07 Oct 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E6%97%A5%E8%AE%B0%E8%B6%A3/<p>在姥爷家玩儿,看到桌上有零食,随手捏着就吃,吃完了,姥爷十分纠结地告诉我,那是给猫吃的。</p> +<p>家里的微电脑程控智能电压力锅坏了,拒绝接受一切指令,让我这个“技术人员”束手无策,赵老师将锅翻过来,用力敲击之,好使了。</p> +<p>家里的新房装修好了,我对于装修效果赞不绝口,老爸老妈和赵老师都感到很欣慰,毕竟这几个月把他们累的够呛,你们辛苦啦。</p> +<p>我把堆在角落里的老音响接好了摆在新房子里,认真擦去厚厚的灰尘,开机,每个喇叭都有声,一米多高的落地箱低音是很澎湃,还好这次的天花板很结实。</p> +<p>早晨睡眼惺忪地往院子里看,那里有老妈种在现实世界的菜,我说,这蒜苗长的真不赖,赵老师鄙视我说,才出去几年就分辨不出小葱和蒜苗了。天地良心,我是因为眼睛近视了,凑近了看绝对能分清。</p> +<p>小外甥才8个月就已经养成揪我耳朵的习惯,而且揪起来一脸享受的样子。</p> +<p>女儿在我面前跌倒,我表情平静既没有表示遗憾也没有对地板提出强烈谴责,她于是自己爬起来慢慢穿过客厅和饭厅找到赵老师,嗷嗷哭。</p> +<p>和儿子比赛跳舞毯,轻易将其击败。</p> +<p>哦也,打游戏我从来不让着他。这几天将老爸珍藏的佳酿喝掉了好几瓶,过瘾。</p> +<p>在我对他的白酒表示欣赏之后,他也表示突然听起来我的音响也很不错,于是我们都颇感欣慰。</p> +<p>临回北京的前一天晚上,腾讯终于发布s60v5版的“斗地主”,我半夜爬起来给老妈的手机装上,老妈终于能随时“斗地主”了。</p>如果他们生产马桶https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/Thu, 02 Sep 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E4%BB%96%E4%BB%AC%E7%94%9F%E4%BA%A7%E9%A9%AC%E6%A1%B6/<p>没事儿再瞎畅想一下,如果这些科技公司生产马桶,他们将会生产出什么样的&mdash;&ndash;马桶?</p> +<p>微软生产的马桶将会有着华丽的外观,而且对你卫生间的配置要求很高,不过即使这样你还会发觉掀开马桶盖的速度十分缓慢,而且随着时光的流逝,冲水的速度会越来越慢,你去询问维修工程师,得到的答复通常是让你将马桶卸了重新安装一次。</p> +<p>苹果生产的马桶已经上市就会迎来大批的粉丝扎着帐篷在商店门外排队,马桶将会有着白色的外观,名字就叫“i马桶”,界面将会十分简洁,简洁到压根儿不提供冲水按钮,不过你可以再多花99美元买一个配套的冲水按钮模块,当然你也可以去淘宝上买一个高仿的。</p> +<p>Mozilla生产马桶的目的就是为了鄙视微软的马桶,他们宣称“系统检测到你正在使用老掉牙的微软马桶,赶紧更换成我们生产的‘火桶’吧!”而且该马桶最大的特色就是支持各式各样的插件,有的插件让你在如厕的时候可以听音乐,有的插件则是可以提供天气预报的功能,甚至有的插件装上之后可以将其伪装成一个“苹果的马桶”以满足部分人的虚荣心。</p> +<p>诺基亚生产的马桶将会非常的皮实,而且供你选择的型号也非常繁多,他们除了可以用来当马桶用外还都有一个共同的特点,那就是随心换彩壳,你可以根据心情来更换不同颜色的马桶外壳,不过外壳会比较松,一不小心就会掉下来。</p> +<p>如果你是一个追逐新型号的狂热分子,那么诺基亚马桶还是比较适合你的,你昨天刚安装好WC71型号的,过两天就会看到诺基亚关于发布WC72的新闻,如果你马上升级那就上当了,因为其实也就是换了一个彩壳而已。</p> +<p>各大Linux厂商生产的马桶宣称天生就不是给普通人用的,首先这个系列的马桶虽然使用同一个内核,但会分裂出各种各样的版本分支,这让你在选择时很犯愁。</p> +<p>然后是他们的功能设置极其麻烦,你得翻遍1500+页的文档、彻夜在论坛里泡着、冰天雪地裸体旋转360度跪求解决办法、花个把月的时间才能将该马桶配置的可以正常掀开马桶盖了,但是别高兴的太早,要想能够正常冲水往往你还得重新编译内核。</p> +<p>最后,当你气急败坏的时候,你会想到国产马桶,你开始到处询问,然后厂商会首先寄给你一套马桶系统解决方案书,上面画着一个真皮座椅还带后背按摩器,而且标价极其便宜。</p> +<p>当然了,当你付完钱,若干个月后你将会收到一个马扎。</p>我是一首mp3https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/Thu, 26 Aug 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E4%B8%80%E9%A6%96mp3/<p>我静静的呆在文件夹里,我的身后是一首2002年的曲子,对了,我是一个文件,确切地说,我是一首mp3,你通过搜索引擎找到了我,通过右键另存为给我取了个名字,从那一刻起,我诞生了。</p> +<p>你迫不及待地打开winamp,用鼠标拽住我,拖进了播放列表。硬盘的磁头开始颤抖,顺着磁道的轨迹划过我的身体,我的细胞就是一串二进制的序列,它们活蹦乱跳地被磁头提起,转换成抖动的电信号涌进了内存,声卡大哥开始工作,它们的任务就是在winamp的安排下去搔声卡大哥的胳肢窝,声卡忍受不住,愉快地哼起了歌,那就是我。你带着耳机,闭目养神,觉得从来没有听过如此美妙的声音。</p> +<p>我露出欣慰的微笑,磁头划过我带给我的痛苦一扫而光,我甚至期待你的下一次播放。</p> +<p>你却渐渐地把我遗忘,周围的文件叽叽喳喳叫个不停,它们哪懂得我的忧伤。</p> +<p>从此我开始长时间的睡眠,直到我遇见另一首mp3.开始的时候我还看她不起眼,因为她来自一块移动硬盘,这个外地人,我心里想。</p> +<p>瘦弱的她哪里及得上我曲子的悠扬,又怎能赶上我320k的压缩比和古典浪漫的心肠。</p> +<p>然而我渐渐地发现,虽然她是那样的其貌不扬,可她的快乐却迅速将我感染,连winamp大哥也对她颇有好感,随机播放的时候总是偷偷将她播放,就连愚钝缓慢的回收站也幽幽地说,不希望她去那个地方。</p> +<p>我开始整晚失眠,到处寻找暗恋的药方,CPU大哥忙着计算,根本帮不上忙,显卡更是高傲地扇着风扇,一副过来人的模样:”这种事我见得多啦,回去洗洗睡觉,明天我还得渲染上岗“,还是硬盘忠厚老实,偷偷跟我说,过两天要整理碎片,到时你再这样这样。</p> +<p>醒来时我发现已经被移到另外一个文件夹,粉红色的背景还有一个明亮的天窗,那首mp3羞涩地呆在那里,红着脸问我觉得装修怎样,哈哈,我心里想,要不是主人在意,谁会将一个文件夹弄成自定义的模样。</p> +<p>无损压缩的时代就要来了,我说。到时我们肯定都人老珠黄,不如把握现在的时间做些更有意义的事情,比如,轰轰烈烈地爱一场。</p> +<p>ps:纯属虚构,如有雷同,那实在是巧合。</p>走路去西藏https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/Wed, 23 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%B5%B0%E8%B7%AF%E5%8E%BB%E8%A5%BF%E8%97%8F/<p>n年以前,n小于3,我偷偷地策划过一件事情,最终未能实现,因为太不着边际了。</p> +<p>我想徒步去一趟西藏,在我又听了一遍《回到拉萨》之后。</p> +<p>那时我想,我靠,就这么定了,我跟谁都不说,电话关机,从此消失,我要走着去西藏,找一个喇嘛庙,问一问人家,看能否收留我,出家算了。</p> +<p>我差点把这事儿写进project做个详细的计划。</p> +<p>一直没有想明白,为什么会对一个从不了解也从未去过的地方产生向往之情,也许冥冥之中觉得那是一方纯洁的圣土,我想去洗一洗,找找回家的感觉。</p> +<p>受不了喧闹和高速的生活,一个人孤独地在这边单着,偶尔夜里躺床上做梦,总觉得有人在后面拿鞭子抽我。</p> +<p>相当一段时间,我真是烦乱至极,劳累的工作导致身体的虚弱,长期的压力导致轻微的精神分裂,就像电影《搏击俱乐部》里的主角那样,人格差点儿分裂出去。</p> +<p>于是就想做一件比较荒诞的事情来调剂一下,可惜未能实现。</p> +<p>为啥未能实现哩,因为片刻之后我就恢复了理智。</p> +<p>祖国还需要我,人民还需要我。那段时间我打电话给我妈,说我想回老家歇几年,哪怕几个月也成,未被批准。</p> +<p>也就咬咬牙撑过来了,只是落下了一郁闷就想起徒步去西藏的毛病。</p> +<p>今天又想起这事儿了。</p>祝爸爸节日快乐https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/Sun, 20 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%A5%9D%E7%88%B8%E7%88%B8%E8%8A%82%E6%97%A5%E5%BF%AB%E4%B9%90/<p>前一段时间,老爸在qq上和我视频,见我头发稍长,便催我尽快去理发。</p> +<p>这事儿他催了我好几个星期了,但是天高皇帝远,将在外君命有所不受,我一直没去。</p> +<p>我之所以没去,第一是因为我十分讨厌现在的理发店动不动就让我办卡,而且理发师也都很娘娘腔,唠唠叨叨个没完,第二是因为我有那么一点儿的叛逆心理,老人家想让我头发剪短显得精神一点,我还就想拿头发盖住耳朵显得颓废些,当然了,我并不是想培养那种长发半月不洗、胡茬上沾满饭粒的那种艺术家气质。</p> +<p>从毕业后踏入社会到现在,我一直踏实工作,刻苦努力,从未有过吊儿郎当的岁月,花天酒地我没干过,打架群殴我没凑过热闹,打牌搓麻我更是没有兴趣,也就是听听音乐看看书,说实话我都替我老爸有这么个省心的儿子感到高兴。</p> +<p>等一下,我说跑题了,今天是父亲节本来想夸夸老爸,怎么话题扯到我身上了。</p> +<p>老爸身材高大魁梧(略胖),声如洪钟,气质不凡。虽说现在已是五十多岁,但只要稍作打扮,说他是四十来岁的小伙子都不过分。</p> +<p>老爸是个教师,工作勤勤恳恳、一丝不苟,为祖国的教育事业做出了卓越贡献,成功地把我培养成一个正直乐观的人。</p> +<p>由于他们那一代人是结结实实挨过饿的,所以他最痛恨的就是浪费粮食,东西吃不完也不允许我们扔掉,只得勉强吃下,结果吃成了一个看上去颇具成功人士气质的胖子,好在他脾气还凑合,面对我们对他肚子无情的嘲笑,他总是一笑了之。</p> +<p>老爸从小受苦,在家里排行老大,在那个贫瘠的年代,早早地站出来把家里的事儿都撑了起来。</p> +<p>所以他在叔叔们面前基本具备家长威严,都比较尊敬他。</p> +<p>由于很小就出来磨练,老爸练就了一身社交能力,信奉以德服人,人缘那是相当好,喝酒那是相当能喝,办事儿那是相当利索。</p> +<p>要说优点,当然是说不完的,但是我比较欣赏他的一个优点就是他“动手”能力差,所以我在挨揍的季节并没有挨过他的揍。</p> +<p>呵呵,开个玩笑,他动手能力是差点儿,修理东西不会,这就给我很好的机会,我基本上从小学就把维修家里东西的业务给接管了,小到接个灯泡开关,大到修理冰箱洗衣机,反正他们敢让我修我就敢修。</p> +<p>好吧,现在我也当父亲了,也能体会当父亲的心情。</p> +<p>在这个父亲的节日里,衷心祝愿我的爸爸,身体健康,工作顺利。</p> +<p>并在我个人资料里“最崇拜的人”那一栏谨慎地填上了“父亲”。</p>汇报一下进展https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/Sun, 06 Jun 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B1%87%E6%8A%A5%E4%B8%80%E4%B8%8B%E8%BF%9B%E5%B1%95/<p>学习五线谱和钢琴大半个月了,使用Cubase录了一段自己弹奏的《落叶》虽然速度不稳,比节拍器忽快忽慢,但是好歹是用双手了。</p> +<p>呵呵,左手好像弹错了。</p>两个周未更新了https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/Sun, 30 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%91%A8%E6%9C%AA%E6%9B%B4%E6%96%B0%E4%BA%86/<p>我的blog两个周没有更新了,原因是我这两个周里每天的博客时间被别的事儿占用了,而这个别的事儿就是我在上一篇博客里给自己挖的坑(真够罗嗦),头脑发热买了几本五线谱来挑战自己,现在已经深陷此坑,练了十几天没啥进展,看着谱子上的小蝌蚪还是发懵,真是隔行如隔山呐。</p> +<p>不过也再次验证了一个道理,欲速则不达,真是放之四海皆准的真理啊,21天无法精通C++,同样三个月也不可能学会吉他,两个礼拜想把钢琴弹好更是没戏。</p> +<p>不过我这次倒是想坚持一下,至少现在哈农的前两个练习我是练熟了,手指也没那么僵硬了,总之吧,我要告别《两只老虎》的阶段!</p>冲动是魔鬼https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/Mon, 17 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/<p>头脑发热,买了几本钢琴和五线谱教程,准备牺牲每天写博客的时间来学习五线谱,想想就头大。</p>最爱的钢琴曲,竟然可以用这个弹https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/Sun, 16 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E7%88%B1%E7%9A%84%E9%92%A2%E7%90%B4%E6%9B%B2%E7%AB%9F%E7%84%B6%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E5%BC%B9/<p>今儿在优酷上看到一牛人使用iDreamPiano演奏卡农,简直是绝了,http://v.youku.com/v_show/id_XMTE0MTMwMzI0.html。</p> +<p>早就玩过iDreamPiano,不过仅仅是弹点儿“两只老虎”之类的,牛人果然无处不在,竟然把这个软件发挥到这种地步。</p> +<p>随即,我也去搜了一下曲谱,网上已有好人专门制作了卡农的双手版简谱,赶紧也试了一下,果然很爽,虽然后面的我还弹不了,但前一段已经没问题了,很像那么回事儿,哈哈。</p>以后要多锻炼https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/Fri, 14 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E8%A6%81%E5%A4%9A%E9%94%BB%E7%82%BC/<p>昨天又去打了一场篮球,体力比上次好多了,连续打了2个小时直到天黑。</p> +<p>手感也差不多恢复了,只不过很长时间不打,会出现意识到但动作不到的情况,甚至眼睁睁的看着篮板球而“身不能至,心向往之”。</p> +<p>打完之后,筋疲力竭,回家连写博客的劲儿都没有了,倒是睡眠很香,一觉睡到闹钟响,起来之后精神百倍,看来以后要多出去运动运动了。</p>一段比较有力度的架子鼓https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/Wed, 12 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%AE%B5%E6%AF%94%E8%BE%83%E6%9C%89%E5%8A%9B%E5%BA%A6%E7%9A%84%E6%9E%B6%E5%AD%90%E9%BC%93/<p>nan</p>郁闷的时候干点儿啥https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/Tue, 11 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E6%97%B6%E5%80%99%E5%B9%B2%E7%82%B9%E5%84%BF%E5%95%A5/<p>我会弹弹吉他,这样可以压压我的手指,从中医学的角度来说,十指连心,是若干经络的起点,活泛活泛手指可以舒肝解郁。</p> +<p>或者在房间里唱唱歌,先唱青藏高原再唱回到拉萨,两首歌下来,胃就舒坦多了。</p> +<p>或者打开CS,把机器人的智商调到100,然后疯狂地用mp5与匪徒们对战,要是屡被爆头请尝试降低机器人智商。</p>无法通过email更新了https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/Mon, 10 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87email%E6%9B%B4%E6%96%B0%E4%BA%86/<p>不知道为啥,livespaces拒绝接收我从gmail发来的邮件,这下无法通过电子邮件来更新博客了。</p>他们为什么会喜欢复杂的东西https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/Sun, 09 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%96%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%96%9C%E6%AC%A2%E5%A4%8D%E6%9D%82%E7%9A%84%E4%B8%9C%E8%A5%BF/<p>不折腾就不舒服,有个小巧的linux发行版叫做puppy(虽然没有slitaz那么变态的小,但也绝对值得推荐),我前两天忙里偷闲,把它装在笔记本的sd卡上了,经过一番折腾,一切配置妥当,甚至可以编译helloworld.c了,这个时候我发现一个严重的问题&mdash;&ndash;</p> +<p>puppy没有提供可用的vim,本来我给笔记本安装puppy就是让它轻快地起来,然后我躺在床上,敲一两行代码,用以验证某些书上的内容,结果没有vim,计划眼看要泡汤了。</p> +<p>比较讽刺的是,比vim庞大好几倍的编辑器emacs却躺在puppy的软件库中,抱着试试看的态度把emacs给装上了。</p> +<p>虽然vim我用的不熟但至少还是可以拿起来干活儿的,而emacs这个据说是vim的唯一对手(当然,在口水战里,着两个编辑器总是扯不清)我却用得极其蹩脚,而且还不能抱怨,抱怨只能得到一大堆耻笑:“瞧你,连这个都用不好,你只需要这样然后再同时按下那个,最后,来吧再试试这段配置文件”,然后丢过来一大段充满括号的配置代码。</p> +<p>如果说没有人会喜欢复杂的东西,我绝对不赞成,那么多的高手拎着成串的配置文件手脚并用地用着emacs,甜蜜地记忆着C-xCc,M-xfu××之类的长串命令。</p> +<p>竟然还有人宣称完美地解决了代码补全的问题,真不知道他是否用过真正的代码补全。</p> +<p>也许是我用的太蹩脚了,他们为什么会喜欢这么复杂的东西?</p>痛痛快快打了场篮球https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/Fri, 07 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%97%9B%E7%97%9B%E5%BF%AB%E5%BF%AB%E6%89%93%E4%BA%86%E5%9C%BA%E7%AF%AE%E7%90%83/<p>今天要打篮球,开始时我还担心今天会下雨,因为按照以往的惯例,只要我们想打球,天气往往是立即下雨(这样的)。</p> +<p>不过还好,今天天气很不错,非常配合,没有刮风也没有下雨,一切照常进行,还没下班我就迫不及待地把我的装备找了出来,n年前(n&lt;4)的队服,上书醒目的11号外加公司logo,穿上球鞋,给篮球使劲儿打满气。</p> +<p>其实至少有1年没碰篮球了,而且也没有其他的运动,不出所料,刚上场不一会儿,我就气喘吁吁,汗流浃背,两股战战几欲先走。</p> +<p>不过等慢慢活动一阵儿之后,开始恢复手感,投进几球后渐入佳境,4v4淘汰赛也把别的队给虐下去了几盘,恍惚之间我又仿佛回到了18+的年纪。</p> +<p>不过毕竟是28+了,蹦了不到一个钟头就再也没力气了,如果没有意外的话,明天肯定是浑身腰疼,现在只想再按照惯例喝杯冰镇啤酒,可惜我答应老爸不再喝啤酒了,还是白酒算了。</p>很久没打球了,准备明天打球去https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/Thu, 06 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%88%E4%B9%85%E6%B2%A1%E6%89%93%E7%90%83%E4%BA%86%E5%87%86%E5%A4%87%E6%98%8E%E5%A4%A9%E6%89%93%E7%90%83%E5%8E%BB/<p>篮球。</p>跟着扯扯淡https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/Tue, 04 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%9F%E7%9D%80%E6%89%AF%E6%89%AF%E6%B7%A1/<p>最近霍金霍大爷又放话出来说,大家小心一些,最好不要惹了外星人,不然人类文明可能会完蛋。</p> +<p>这边唱那边就有出来和的,一帮专家又跳出来分析说,大家也不要太担心外星人会跟我们动武。</p> +<p>我看也是,确实不用担心,因为担心也没用。</p> +<p>古时候有一说法,叫“天上一天,地上一年”,乍一听觉得不可思议,可是现在的物理学越研究就越发现古人说的有道理,当宇宙飞船在天上的飞行速度接近或者超过光速时,那确实是天上一天地上一年。</p> +<p>做一个很俗的假设,其实神话中的天神下凡,就是外星人来地球逛街,至于七仙女什么的估计就是女外星人了。</p> +<p>外星人能来地球得瑟,就说明他们拥有比我们先进的多的文明程度,要灭我们也是轻而易举,但是为什么还不动手呢?</p> +<p>我想是因为宇宙中也有保护濒危物种的法律吧,猪再蠢,要是地球上的猪快死绝了,也得修好猪圈养起来。</p>五一小总结https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/Mon, 03 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%94%E4%B8%80%E5%B0%8F%E6%80%BB%E7%BB%93/<p>基本忘记了五一节的真实含义,对我来说,其实就是有机会多睡两个懒觉,而生物钟被打乱的难受则让我已经开始怀念早起的日子,还好,明天就开工了。</p> +<p>基本没有出去玩,因为终于有时间呆在家里,坐坐我的沙发,看看闲书,听听闲歌,真他妈闲啊。</p> +<p>不过昨晚上还是和同事出去喝了小酒,而我们也充分发挥工作狂的精神,居然在饭桌上讨论工作内容,让随桌陪同的家属掩鼻而去。</p> +<p>基本没有写程序,不过还是没有忍住,写了个小程序来处理我的照片。</p>写了个脚本整理我的照片https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/Sat, 01 May 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E4%BA%86%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%95%B4%E7%90%86%E6%88%91%E7%9A%84%E7%85%A7%E7%89%87/<p>上次整理硬盘的时候把我的照片一股脑儿的放在了一个目录下,这次又有闲功夫了,写了个python脚本来处理我的照片。基本思路是使用PIL库读取照片的exif信息,取出拍摄的日期时间,根据日期建立新的文件夹,然后照片文件以日期时间格式命名。批量处理,比较简单。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span><span class="lnt">46 +</span><span class="lnt">47 +</span><span class="lnt">48 +</span><span class="lnt">49 +</span><span class="lnt">50 +</span><span class="lnt">51 +</span><span class="lnt">52 +</span><span class="lnt">53 +</span><span class="lnt">54 +</span><span class="lnt">55 +</span><span class="lnt">56 +</span><span class="lnt">57 +</span><span class="lnt">58 +</span><span class="lnt">59 +</span><span class="lnt">60 +</span><span class="lnt">61 +</span><span class="lnt">62 +</span><span class="lnt">63 +</span><span class="lnt">64 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: gbk -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="s2">&#34;&#34;&#34; +</span></span></span><span class="line"><span class="cl"><span class="s2">复制指定目录的照片到目标目录,并且根据照片的拍摄时间进行重命名 +</span></span></span><span class="line"><span class="cl"><span class="s2">比如某张照片拍摄于2008年3月15日12:00:00,则目标目录为2008</span><span class="se">\\</span><span class="s2">03</span><span class="se">\\</span><span class="s2">15</span><span class="se">\\</span><span class="s2">120000.jpg +</span></span></span><span class="line"><span class="cl"><span class="s2">&#34;&#34;&#34;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">PIL</span> <span class="kn">import</span> <span class="n">Image</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">sys</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">get_dist_path</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">date</span> <span class="o">=</span> <span class="nb">str</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">dirs</span> <span class="o">=</span> <span class="n">dist_dir</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">date</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dirs</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">dirs</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="n">dirs</span> <span class="o">=</span> <span class="n">dirs</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">))</span> <span class="o">+</span> <span class="s1">&#39;.jpg&#39;</span> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="n">dirs</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">copy_image</span><span class="p">(</span><span class="n">src_dir</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="p">[</span><span class="n">src_dir</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">src_dir</span><span class="p">)]:</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">copy_image</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">dist_dir</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">else</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">image</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;file open error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">dist_path</span> <span class="o">=</span> <span class="n">get_dist_path</span><span class="p">(</span><span class="n">image</span><span class="o">.</span><span class="n">_getexif</span><span class="p">()[</span><span class="mi">306</span><span class="p">],</span> <span class="n">dist_dir</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;dist path: &#39;</span> <span class="o">+</span> <span class="n">dist_path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;get exif error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">try</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dist_path</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">image</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">dist_path</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">except</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_str</span> <span class="o">=</span> <span class="s1">&#39;file copy error: &#39;</span> <span class="o">+</span> <span class="n">path</span> +</span></span><span class="line"><span class="cl"> <span class="n">write_log</span><span class="p">(</span><span class="n">log_str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">write_log</span><span class="p">(</span><span class="nb">str</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">global</span> <span class="n">log_file</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">main</span><span class="p">():</span> +</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="k">global</span> <span class="n">log_file</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;cilog.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">copy_image</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"> <span class="n">log_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="k">else</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;需要给出两个参数,第一个是照片目录,第二个是目标目录&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;例如:&#39;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">&#39;e:</span><span class="se">\\</span><span class="s1">photo f:</span><span class="se">\\</span><span class="s1">goodphoto&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">&#39;__main__&#39;</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="n">main</span><span class="p">()</span> +</span></span></code></pre></td></tr></table> +</div> +</div>提高工作效率的心得https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/Thu, 29 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84%E5%BF%83%E5%BE%97/<p>1、建立一个简洁todolist</p> +<p>,这个todolist可以使用任意方式建立,比如笔记本或者googletasks,总之就是一个简洁的任务列表,每天上午开始工作之前,将今天要做的事情逐条记录下来,按照要事优先的原则,我一般是把比较费脑子的事情放在最前面。</p> +<p>然后每完成一项就在上面打勾,很有成就感。</p> +<p>2、整理好自己的文档资料:)</p> +<p>,给自己建立一个清晰有序的文档管理机制,这样当你需要某个文档资料的时候可以立即将其取出。</p> +<p>我使用totalcommander+dokuwiki进行管理。</p> +<p>将文档按照工作项目进行分类,而不是按照文件的扩展名分类。</p> +<p>3、记录工作日志</p> +<p>,每天记录工作日志可以有效分析出自己每天的时间花在了哪里,并改进自己对工作任务的安排。</p> +<p>而且将自己的做的事情记录下来对记忆力来说也有好的帮助。</p> +<p>4、关掉qq、msn</p> +<p>,不上比较耗费时间的网站比如GoogleReader,工作时就是集中精力,不开聊天工具就不会被打扰,不开rss阅读器就不会有资讯压力。</p> +<p>5、听音乐</p> +<p>,带上耳机听听自己喜欢的音乐,这样工作时心情比较放松,思维也比较活跃。</p> +<p>6、使用高效的软件和计算机操作方式</p> +<p>,比如使用vim代替普通编辑器,使用totalcommander代替windows的资源管理器,使用脚本或批处理命令来代替大量的鼠标操作。</p> +<p>需要整理思路时可使用freemind来绘制一张脑图。</p>小时候干过的一些颇为geek的事儿https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/Wed, 28 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E6%97%B6%E5%80%99%E5%B9%B2%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E9%A2%87%E4%B8%BAgeek%E7%9A%84%E4%BA%8B%E5%84%BF/<p>极客,又译为技客、奇客,是英文单词geek的音译。</p> +<p>具体解释参见这里。想起小时候干的一些事儿,以现在的眼光来看,颇具极客精神。</p> +<p>小时候,我曾经嫌弃我家的收音机音量太小听音乐不过瘾,于是动手改造,本来两节干电池就可以正常使用,但是我把三节电池串联起来接在收音机的电池仓里,结果由于心理作用感觉上好像音量比以前更大了,于是我信心十足的把一个电源插头直接接在了收音机上,然后满怀希望地把另一头插在了220v的电源插座上,结果杯具发生了,一声巨响过后,浓烟滚滚,收音机被烧成了一个黑匣子。</p> +<p>于是我只好央求我维修技艺高超的舅舅帮忙维修,后来那台收音机倒是起死回生了,但是舅舅悄悄告诉我,除了壳没换,其他的零件全换了!还是小时候,大概在上小学,突发奇想,把我妹妹的电子表给拆了个七零八落再也装不到一起去了,无奈只好哄她说我其实是想帮她把电子表改装成一个游戏机,就快成功了,再等等。</p> +<p>中考的前夕,备考的压力非常大,炎热的午后,我实在是复习不下去了,动手把我床头的石英闹钟拆了,零件铺满了整个桌子,但是这次我慢条斯理的把它又给装好了,而且一个零件也没多出来,颇有成就感,只是由于把其中的一个线圈装翻了,导致这个闹钟的指针一直倒着走,直到考试结束我才又花时间把它给正了过来。</p> +<p>嘿,那些时光多美好呀。</p>不要浮躁,不要骄傲,不要让全世界都知道你的低调https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/Tue, 27 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E6%B5%AE%E8%BA%81%E4%B8%8D%E8%A6%81%E9%AA%84%E5%82%B2%E4%B8%8D%E8%A6%81%E8%AE%A9%E5%85%A8%E4%B8%96%E7%95%8C%E9%83%BD%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84%E4%BD%8E%E8%B0%83/<p>每天提醒自己。</p>拥抱次新版https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/Mon, 26 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%8B%A5%E6%8A%B1%E6%AC%A1%E6%96%B0%E7%89%88/<p>软件如果不用最新版是可耻的,我以为。</p> +<p>这个毛病把我折磨的够呛,每天都有大量新版的软件发布,我就更新更新再更新,每天就迷失在软件更新的过程中,不在更新中就是在下载更新的路上。</p> +<p>然而,尝鲜总是要付出代价的,光怪陆离的新特性一个也没用上不说,新bug带来的烦恼却一点儿也没少。</p> +<p>新系统、新软件带来的兼容性问题也纠缠不休,可我却乐此不疲,有点儿飞蛾扑火的味道。</p> +<p>终于有那么一天,我顿悟了,次新版才是最好的!我说的次新版,也就是比最新版稍微老那么一点儿的版本。</p> +<p>优点如下,你看,首先次新版的功能比最新版不会差太多,该有的基本都有,从使用的角度来说绝对是够用的,其次,次新版的稳定性大大高于最新版,因为经过了长时间的测试和bug修正功能的磨合已经趋于完美,不信的话你看看windowsxp就知道了。别信那些发布最新版时的噱头,什么“大大降低了内存占用”“显著提升了性能”等等,我们脆弱的心灵再也经不起忽悠。</p> +<p>就拿开发环境来说吧,现在的vs2010发布了,也就是说赶紧用vs2008吧,因为它现在是最好用的,同样,听说office2010也出来了,也就是说是时候全面使用office2007了,ubuntu10.04今夜也就发布了,先别用,赶紧用9.10吧,目前来说9.10才是最完美的。</p> +<p>呵呵,以上纯属忽悠,如有意外,那实在是巧合。</p>休息总是在雨天https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/Sun, 25 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF%E6%80%BB%E6%98%AF%E5%9C%A8%E9%9B%A8%E5%A4%A9/<p>昨天天气不错,挺风和日丽的,杯具的是,这么好的天气一般都被用来加班了。</p> +<p>今天使劲儿赖了赖床,起来后继续发扬热爱劳动的光荣传统,打扫房间洗洗被单。</p> +<p>然后就淅淅沥沥下雨了,到现在洗的东西还没有晾干。</p> +<p>翻了翻书,一页也看不下去,听说ubuntu10.04除了rc版的了,没有忍住好奇心,下了一个在虚拟机中耍了耍,网速慢的厉害,更新个语言包都慢腾腾的。</p> +<p>一晃就到了晚饭时间,下着雨实在不想出去买东西,这下我的电饼铛派上用场了,面粉加鸡蛋转眼就变成热气腾腾香喷喷的煎饼,美美吃上一顿,准备睡觉。</p>因为要丰富工作以外的生活https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/Fri, 23 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%A0%E4%B8%BA%E8%A6%81%E4%B8%B0%E5%AF%8C%E5%B7%A5%E4%BD%9C%E4%BB%A5%E5%A4%96%E7%9A%84%E7%94%9F%E6%B4%BB/<p>所以要加班。</p>关于python的好东东https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/Thu, 22 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Epython%E7%9A%84%E5%A5%BD%E4%B8%9C%E4%B8%9C/<p>由于喜爱python,我几乎每次装完系统就会立即给电脑装上python环境(当然了,大部分的linux的发行版都自带了)。</p> +<p>不过,每次都要安装不少我常用的python库,比如pyopengl用来写写opengl什么的比较合适,pyqt用来写桌面程序也很好,陆续把这些库装完也挺费劲的。</p> +<p>要说还是好人多,我这两天发现网上就有好人给整理了一个及其全面的安装包,叫做PythonXY,可以说是一旦安装别无所求,自带python基本环境,另外加上以eclipse为基础的ide,在加上ipython这个很好的shell,还包括numpy、scipy等等一大堆与数学计算相关的包,不多说了,自己去这里看吧http://www.pythonxy.com/,要下载完整的压缩包比较大,好像有4百多Mb。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Wed, 21 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<p>我爱这个充满神秘的世界,有着无限多的未知,这么多等着我们去探索的未知加上我的好奇心,是我快乐的源泉。</p>我的声卡悲剧了https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/Sun, 18 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A3%B0%E5%8D%A1%E6%82%B2%E5%89%A7%E4%BA%86/<p>昨晚一时心动,把家里的电脑装上了windows7,一切都挺好的,特效也挺漂亮,可是我的创新声卡不发声了,以前在xp下的驱动一个也不好使了。</p> +<p>去创新的官网上寻找驱动,发现人家已经不再理会这块10年前的声卡,无奈只好寻找各路的改版驱动,好在那个来自俄罗斯的好人还在辛勤的更新着他的kx驱动。</p> +<p>赶紧下了个最新版的3550版驱动,安装完之后傻眼了,声音是能出来,可是怎么听都不对味,声音瘪瘪的,又干又涩,还不如使用板载声卡呢。</p> +<p>再去网上搜寻一通,原来有人和我一样抱怨过了,而且据说某个版本的(3541)驱动还凑合,那就试试吧,但愿能行,不然我还得把操作系统换回去。</p>整理完毕https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/Sun, 18 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%95%B4%E7%90%86%E5%AE%8C%E6%AF%95/<p>从春节后开始的硬盘整理计划总算进行完了。</p> +<p>通过这次整理我发现了我曾经认为很重要的文件其实一次也不会被用到,当我真正想用到哪些文件时,通常它们已经过期了(尤其是某些软件的安装包)。</p> +<p>大量的工作文档也是整理的重点,杂乱无章的文件夹比乱糟糟的书桌更让我抓狂,期间我甚至萌生了自己写一个资料管理软件的念头,当然了,工作太忙,该计划被搁置(说不定哪天我真就卷起袖子为自己写一个)。</p> +<p>目前来说,使用totalcommader这个绝世好软配合良好的管理思路,也基本上可以管理好那些资料了。</p> +<p>当然在我翻遍文件夹之后,也找到了不少被遗忘的时光,我甚至找到了我在大学时自娱自乐录制的卡拉ok,恩,那时嗓音使劲儿装成熟,现在都快到了装嫩的年纪了。</p>无用的信息https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/Thu, 15 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E7%94%A8%E7%9A%84%E4%BF%A1%E6%81%AF/<p>最近一段时间,中午休息的时候我不再上网,这样我就基本上不在公司上GoogleReader了。</p> +<p>随着订阅数越来越多,我的“未读条目”也爆炸式增长,听说有人为此苦恼不已,得了信息爆炸抓狂症。我的解决办法是,每天晚上回家,立即打开GoogleReader把未读条目全部清空,现在基本上每天都是在手机上阅读这些订阅了,上下班的路上,消遣消遣时间而已,哪有什么有用信息。</p>今天听说https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/Tue, 13 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%90%AC%E8%AF%B4/<p>听说2012年北京的宽带会宽到20M到桌面,我靠,真是让我欢喜让我忧,喜的是,盼望已久的带宽终于上去了,忧的是,啥都上不了要这么宽的带宽干啥?</p>集成开发环境https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Mon, 12 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%86%E6%88%90%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/<p>集成开发环境(为了响应号召,我就不说是IDE了)是个好东西,使我们轻松迈入软件开发的门槛,轻松的点击几下“下一步”,瞧,一个软件就诞生了。</p> +<p>以至于现在很多程序员只知道makelove而不知道makefile。</p> +<p>我最早接触的集成开发环境应该是TurboC了,惭愧的是,我当时以为那就是C语言,没办法,当时确实分不清开发环境和编程语言。</p> +<p>有大约半年的时间由于我未能正确的设置该环境的参数,导致我从教科书上抄来的代码统统不能编译通过,我还以为书上印错了咧。</p> +<p>后来终于弄好了,在编写了各个版本的helloworld之后,终于对C语言开窍了,不过还是分不清程序语言和开发环境的关系。</p> +<p>再后来遇见了VC6,跟着《21天精通×××》的教程也能用鼠标写出“大”程序了。</p> +<p>若干年后的某一天,我研究某开源软件(该软件跨平台)的源码的时候,才第一次见到了makefile,第一次知道了原来在命令行下也能编译程序啊,于是恍然大悟,明白了集成开发环境只是一个“壳儿”。</p> +<p>这才试着偶尔用记事本写写小程序,在命令行下编译。从那开始,我渐渐的倾向于,使用编辑器编写代码,使用makefile管理项目工程,使用命令行编译程序。</p> +<p>而对于庞大臃肿、缓慢笨拙的集成开发环境越来越不满了。</p> +<p>昨天,VS2010发布了,一大拨人在网上散发着欣喜的软文,疯狂的鼓吹它的强大和先进,喜新厌旧的人们昨天还用着VS2008,今天就将其抛弃,转而把VS2010揽在怀里。</p> +<p>我想他们大概是喜欢那慢腾腾的编译速度并且可以趁机偷偷去喝上一杯咖啡吧。</p>我没有旅游计划https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/Sun, 11 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%B2%A1%E6%9C%89%E6%97%85%E6%B8%B8%E8%AE%A1%E5%88%92/<p>刚看到有人为本年度的旅游制定了完备的计划,恩,很羡慕这个家伙。</p> +<p>不过说真心话,我不喜欢旅游,有那个时间的话,我还不如好好在我的老家待上一段日子,虽然不是什么山清水秀的地方,但是也算的上是空气清新了。</p> +<p>我不想去青藏高原,也不愿意去丽江云南,好山好水对我一点儿吸引力都没有。</p> +<p>与其奢望环游世界,倒不如多和老家亲近亲近,因为我怕有一天,我真的会记不起那里的模样。</p>让我来骂一 骂那些学习的日子https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/Fri, 09 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%AE%A9%E6%88%91%E6%9D%A5%E9%AA%82%E4%B8%80-%E9%AA%82%E9%82%A3%E4%BA%9B%E5%AD%A6%E4%B9%A0%E7%9A%84%E6%97%A5%E5%AD%90/<p>我是一个热爱学习的人,可是这是从学习编程开始的。</p> +<p>上学的时候,我从没有过哪怕一丁点儿的热爱学习。</p> +<p>虽然那个时候努力装出刻苦的样子,偶尔在邻居们教育孩子的口中听到以我为榜样的句子,可是我和他们心里都清楚,谁他妈的想学习!</p> +<p>唉,仔细想想,委屈了邻居的孩子们了。</p> +<p>小的时候,我应该是挺自闭的,虽说成绩还凑合,可是那都是应付考试的结果,回想我们的课本,除了小学数学还算是发挥了点作用,其他的都是垃圾,背的满满一书包全都是大便。</p> +<p>先从语文说起罢,千篇一律的课文也就罢了,每回回都要划分段落然后总结所谓的中心思想,反复揣摩作者的用意,就算是作者根本没有那个想法,老师也千方百计地往某方面引导。</p> +<p>至于思想品德课则更是对智商的严重伤害,脆弱的心灵一次次被无情的蹂躏,满满的答卷上全是对撒谎的最早练习。</p> +<p>老师们极度推崇的课前预习也是我永远的心理阴影,我就想不明白,如果课前预习都把问题考虑清楚了那么还上课干嘛?每次都会有针对预习内容的提问,好好的课堂被搞的乌烟瘴气,听话的孩子翻开白眼,昂起头,骄傲地回答出老师希望的句子。</p> +<p>期末考试永远是我们的噩梦,考不好承受压力不说,来自各方面的歧视又在伤口上再撒一把厚厚的盐。</p> +<p>所谓三好学生,所谓学习标兵,做一个他们理想中的孩子吧,做一个“热爱学习”的孩子吧,只要你不想做你自己。</p>关于支持富文本的开发环境设想https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/Thu, 08 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E6%94%AF%E6%8C%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%AE%BE%E6%83%B3/<p>现在的源代码都是纯文本,代码关键字、函数以及注释的高亮都是通过源代码编辑器或集成开发环境自己分析的。</p> +<p>我在想,能不能有一种开发环境,他的源代码采用富文本的方式来存放,及程序员可以随时高亮某一段代码以示警告或提醒,将不同功能模块的代码来使用不同的颜色来显示?</p> +<p>或者,更进一步的想法,代码的注释里可以加入任何内容,不仅仅是干巴巴的几句描述,而是可以插入一段视频或一幅图片,或者任意的一个附件在代码中?</p> +<p>再丰富一下,在现有的以“项目”或“解决”方案为代码组织方法的基础上,增加代码以外的东西进入到开发环境中来,比如说,从软件需求的调研文档一直到设计文档,均与最终的代码有机的结合起来,也就是说,通过功能需求文档可以追溯到实现该功能的代码,反过来也可以从某行代码追溯到他所服务的功能。</p> +<p>吼吼,这样做是不是有点儿太那个了。</p>懒洋洋https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/Wed, 07 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%87%92%E6%B4%8B%E6%B4%8B/<p>春天还是来了,虽然晚了一些。但树枝已经偷偷抽出嫩牙儿来,吹在脸上的风也不再恶狠狠的了,偶尔抬头向上望去,甚至能看见蓝天。</p> +<p>我在路上懒洋洋地走着,边走边想,春姑娘还是来了。</p>我的vim配置文件https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/Tue, 06 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84vim%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/<p>整理了一下自己的vim配置文件,记录在此以备忘。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt"> 10 +</span><span class="lnt"> 11 +</span><span class="lnt"> 12 +</span><span class="lnt"> 13 +</span><span class="lnt"> 14 +</span><span class="lnt"> 15 +</span><span class="lnt"> 16 +</span><span class="lnt"> 17 +</span><span class="lnt"> 18 +</span><span class="lnt"> 19 +</span><span class="lnt"> 20 +</span><span class="lnt"> 21 +</span><span class="lnt"> 22 +</span><span class="lnt"> 23 +</span><span class="lnt"> 24 +</span><span class="lnt"> 25 +</span><span class="lnt"> 26 +</span><span class="lnt"> 27 +</span><span class="lnt"> 28 +</span><span class="lnt"> 29 +</span><span class="lnt"> 30 +</span><span class="lnt"> 31 +</span><span class="lnt"> 32 +</span><span class="lnt"> 33 +</span><span class="lnt"> 34 +</span><span class="lnt"> 35 +</span><span class="lnt"> 36 +</span><span class="lnt"> 37 +</span><span class="lnt"> 38 +</span><span class="lnt"> 39 +</span><span class="lnt"> 40 +</span><span class="lnt"> 41 +</span><span class="lnt"> 42 +</span><span class="lnt"> 43 +</span><span class="lnt"> 44 +</span><span class="lnt"> 45 +</span><span class="lnt"> 46 +</span><span class="lnt"> 47 +</span><span class="lnt"> 48 +</span><span class="lnt"> 49 +</span><span class="lnt"> 50 +</span><span class="lnt"> 51 +</span><span class="lnt"> 52 +</span><span class="lnt"> 53 +</span><span class="lnt"> 54 +</span><span class="lnt"> 55 +</span><span class="lnt"> 56 +</span><span class="lnt"> 57 +</span><span class="lnt"> 58 +</span><span class="lnt"> 59 +</span><span class="lnt"> 60 +</span><span class="lnt"> 61 +</span><span class="lnt"> 62 +</span><span class="lnt"> 63 +</span><span class="lnt"> 64 +</span><span class="lnt"> 65 +</span><span class="lnt"> 66 +</span><span class="lnt"> 67 +</span><span class="lnt"> 68 +</span><span class="lnt"> 69 +</span><span class="lnt"> 70 +</span><span class="lnt"> 71 +</span><span class="lnt"> 72 +</span><span class="lnt"> 73 +</span><span class="lnt"> 74 +</span><span class="lnt"> 75 +</span><span class="lnt"> 76 +</span><span class="lnt"> 77 +</span><span class="lnt"> 78 +</span><span class="lnt"> 79 +</span><span class="lnt"> 80 +</span><span class="lnt"> 81 +</span><span class="lnt"> 82 +</span><span class="lnt"> 83 +</span><span class="lnt"> 84 +</span><span class="lnt"> 85 +</span><span class="lnt"> 86 +</span><span class="lnt"> 87 +</span><span class="lnt"> 88 +</span><span class="lnt"> 89 +</span><span class="lnt"> 90 +</span><span class="lnt"> 91 +</span><span class="lnt"> 92 +</span><span class="lnt"> 93 +</span><span class="lnt"> 94 +</span><span class="lnt"> 95 +</span><span class="lnt"> 96 +</span><span class="lnt"> 97 +</span><span class="lnt"> 98 +</span><span class="lnt"> 99 +</span><span class="lnt">100 +</span><span class="lnt">101 +</span><span class="lnt">102 +</span><span class="lnt">103 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-vim" data-lang="vim"><span class="line"><span class="cl"><span class="c">&#34; 编码设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">encoding</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">fileencodings</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span><span class="p">,</span><span class="nx">chinese</span><span class="p">,</span><span class="nx">latin</span><span class="m">-1</span><span class="p">,</span><span class="nx">gb18030</span><span class="p">,</span><span class="nx">gbk</span><span class="p">,</span><span class="nx">cp936</span> +</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">has</span><span class="p">(</span><span class="s2">&#34;win32&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">set</span> <span class="nx">fileencoding</span><span class="p">=</span><span class="nx">chinese</span> +</span></span><span class="line"><span class="cl"><span class="k">else</span> +</span></span><span class="line"><span class="cl"> <span class="k">set</span> <span class="nx">fileencoding</span><span class="p">=</span><span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="k">endif</span> +</span></span><span class="line"><span class="cl"><span class="nx">language</span> <span class="nx">messages</span> <span class="nx">zh_CN</span>.<span class="nx">utf</span><span class="m">-8</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 基础设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">nocompatible</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">softtabstop</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">shiftwidth</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">tabstop</span><span class="p">=</span><span class="m">4</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">bs</span><span class="p">=</span><span class="m">2</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">autoread</span> <span class="c">&#34; read open files again when changed outside Vim</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">autowrite</span> <span class="c">&#34; write a modified buffer on each :next, ...</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">browsedir</span> <span class="p">=</span> <span class="nx">current</span> <span class="c">&#34; which directory to use for the file browser</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">wildmenu</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">wildignore</span><span class="p">=</span>*.<span class="nx">bak</span><span class="p">,</span>*.<span class="nx">o</span><span class="p">,</span>*.<span class="nx">e</span><span class="p">,</span>*<span class="p">~</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">complete</span><span class="p">+=</span><span class="nx">k</span> <span class="c">&#34; scan the files given with the &#39;dictionary&#39; option</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">autocmd</span> <span class="nx">BufEnter</span> * <span class="nx">lchdir</span> %:<span class="nx">p</span>:<span class="nx">h</span> <span class="c">&#34; Change the working directory to the directory containing the current file</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">plugin</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">filetype</span> <span class="nx">indent</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="k">syntax</span> <span class="nx">on</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 颜色设置</span> +</span></span><span class="line"><span class="cl"><span class="k">colorscheme</span> <span class="nx">koehler</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 字体设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guifont</span><span class="p">=</span><span class="nx">Consolas</span>:<span class="nx">h12</span>:<span class="nx">cANSI</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guifontwide</span><span class="p">=</span><span class="nx">youyuan</span>:<span class="nx">h12</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 折叠设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">foldmethod</span><span class="p">=</span><span class="nx">manual</span> +</span></span><span class="line"><span class="cl"><span class="nx">nnoremap</span> <span class="p">&lt;</span><span class="nx">space</span><span class="p">&gt;</span> @<span class="p">=((</span><span class="nx">foldclosed</span><span class="p">(</span><span class="nx">line</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">))&lt;</span><span class="m">0</span><span class="p">)</span>?<span class="s1">&#39;zc&#39;</span>:<span class="s1">&#39;zo&#39;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 界面设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">showtabline</span><span class="p">=</span><span class="m">2</span> <span class="c">&#34; 始终显示标签页</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guitablabel</span><span class="p">=</span>%{<span class="nx">tabpagenr</span><span class="p">()</span>}.%<span class="nx">t</span>\%<span class="nx">m</span> <span class="c">&#34; 每个 tab 上显示编号</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">T</span> <span class="c">&#34; 去掉工具条</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">m</span> <span class="c">&#34; 去掉菜单</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">r</span> <span class="c">&#34; 去掉右边的滚动条</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">guioptions</span><span class="p">-=</span><span class="nx">L</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">statusline</span><span class="p">=</span>%<span class="nx">F</span>%<span class="nx">m</span>%<span class="nx">r</span>%<span class="nx">h</span>%<span class="nx">w</span>\[<span class="nx">FMT</span><span class="p">=</span>%{&amp;<span class="nx">ff</span>}]\[<span class="nx">TYPE</span><span class="p">=</span>%<span class="nx">Y</span>]\[<span class="nx">POS</span><span class="p">=</span>%<span class="nx">l</span><span class="p">,</span>%<span class="nx">v</span>][%<span class="nx">p</span>%%]\%{<span class="nx">strftime</span><span class="p">(</span>\<span class="s2">&#34;%d/%m/%y-%H:%M\&#34;</span><span class="p">)</span>} +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">laststatus</span><span class="p">=</span><span class="m">2</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">scrolloff</span><span class="p">=</span><span class="m">3</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">nu</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">ruler</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 查找搜索设置</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">incsearch</span> <span class="c">&#34; use incremental search</span> +</span></span><span class="line"><span class="cl"><span class="k">set</span> <span class="nx">ignorecase</span> <span class="nx">smartcase</span> <span class="nx">hlsearch</span> <span class="nx">incsearch</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 将键盘上的 F12 健映射为执行当前文件</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">F12</span><span class="p">&gt;</span> :<span class="p">!</span>%<span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 使用 Ctrl+Tab 键来切换标签页</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">C</span><span class="p">-</span><span class="nx">TAB</span><span class="p">&gt;</span> :<span class="nx">tabn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; 快捷键设置</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F2 - write file without confirmation</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F3 - call file explorer</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F4 - show tag under curser in the preview window (tag file must exist!)</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F5 - open quickfix error window</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F6 - close quickfix error window</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F7 - display previous error</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; F8 - display next error</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; Shift-Tab - Fast switching between buffers (see below)</span> +</span></span><span class="line"><span class="cl"><span class="c">&#34; Ctrl-q - Leave the editor with Ctrl-q (see below)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F2</span><span class="p">&gt;</span> :<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F3</span><span class="p">&gt;</span> :<span class="nx">Explore</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F4</span><span class="p">&gt;</span> :<span class="nx">exe</span> <span class="s2">&#34;ptag &#34;</span>.<span class="nx">expand</span><span class="p">(</span><span class="s2">&#34;&lt;cword&gt;&#34;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F5</span><span class="p">&gt;</span> :<span class="nx">copen</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F6</span><span class="p">&gt;</span> :<span class="nx">cclose</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F7</span><span class="p">&gt;</span> :<span class="nx">cp</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F8</span><span class="p">&gt;</span> :<span class="nx">cn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F2</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F3</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">Explore</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F4</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">exe</span> <span class="s2">&#34;ptag &#34;</span>.<span class="nx">expand</span><span class="p">(</span><span class="s2">&#34;&lt;cword&gt;&#34;</span><span class="p">)&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F5</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">copen</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F6</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cclose</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F7</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cp</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F8</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">cn</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">map</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">S</span><span class="p">-</span><span class="nx">Tab</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="k">if</span> &amp;<span class="nx">modifiable</span>&amp;&amp;<span class="p">!</span>&amp;<span class="nx">readonly</span>&amp;&amp; \ &amp;<span class="nx">modified</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="k">endif</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">bprevious</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">imap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">S</span><span class="p">-</span><span class="nx">Tab</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="k">if</span> &amp;<span class="nx">modifiable</span>&amp;&amp;<span class="p">!</span>&amp;<span class="nx">readonly</span>&amp;&amp; \ &amp;<span class="nx">modified</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">write</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="k">endif</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span>:<span class="nx">bprevious</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="nx">nmap</span> <span class="p">&lt;</span><span class="nx">C</span><span class="p">-</span><span class="nx">q</span><span class="p">&gt;</span> :<span class="nx">wqa</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="c"> +</span></span></span><span class="line"><span class="cl"><span class="c">&#34; taglist 设置</span> +</span></span><span class="line"><span class="cl"><span class="nx">noremap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F11</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">Tlist</span><span class="p">&lt;</span><span class="nx">CR</span><span class="p">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nx">inoremap</span> <span class="p">&lt;</span><span class="nx">silent</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">F11</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nx">Esc</span><span class="p">&gt;&lt;</span><span class="nx">Esc</span><span class="p">&gt;</span>:<span class="nx">T</span> +</span></span></code></pre></td></tr></table> +</div> +</div>马桶书架https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/Sun, 04 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%A9%AC%E6%A1%B6%E4%B9%A6%E6%9E%B6/<p>想说说坐马桶上看书这事儿,记得在美剧《好汉两个半》里有这样一个情节,被老婆抛弃的那哥们儿有一天在书店里突然失去理智,变得歇斯底里,</p> +<p>因为他想起来曾经发誓要读的书从来都没有读过,把这些书都抱在怀里哭泣不止,</p> +<p>更令人沮丧的是他的花花公子哥哥劝他说,现在还来得及,虽然平时比较忙,但如果把这些书放在马桶上则可以每次大便的时候都看一段,这样应该也能弥补一些缺憾。</p> +<p>可是这哥们儿哭着说,来不及了,把他余生大便次数都用上,也读不完这些名著了。</p> +<p>呵呵,说的太对了,我觉得这个段子用来教育不爱读书的孩子估计不错,我们看了却只能苦笑一下。</p> +<p>显然我也不认为在大便的时候读名著是个好主意,看着那些故事里的主人公在那里纠结不休,要么爱的死去活来,要么整天拧巴地思考人生意义,就算是你天天喝着蜂蜜外加一瓶开塞露也非得便秘不可。</p> +<p>我觉得吧,为了身体的健康,如果非要在大便时看书的话,还是尽量的读一些短文好了,比如我以前就爱看看《读者》啥的,最近偶尔也提升点儿档次弄本《三联周刊》看看,不过总的来说,看的都是些文笔平顺、言语轻快能促进大肠蠕动的文章。</p> +<p>今天收拾洗手间的时候,从马桶后面拎出了一大摞书,数了数,居然比我书架上的书还多。</p>永不放弃https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/Sat, 03 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B0%B8%E4%B8%8D%E6%94%BE%E5%BC%83/<p>不要被眼前的困难吓倒,认定你的目标,坚持下去。</p> +<p>哪怕有一万个人对你说,不行,但只要你的心告诉你,行,那就是行,没有商量的余地。</p> +<p>有时候越是简单的事情越难以做好,骄傲的人做不好,懒惰的人做不好,勤奋却不得方法的人也做不好。</p> +<p>你觉得你谦虚了﹑努力了﹑方法也对了,那么,别灰心,坚持下去。</p> +<p>&mdash;&mdash;&mdash;&mdash;&mdash;-重温《阿甘正传》有感。</p>愚人节的新闻https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/Thu, 01 Apr 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9A%E4%BA%BA%E8%8A%82%E7%9A%84%E6%96%B0%E9%97%BB/<p>今天是一年一度的愚人节,过得平淡无奇。</p> +<p>大家慵懒得好像连开玩笑的心思也没有了,不过还是在互联网上看到了几条愚人新闻,聊胜于无。</p> +<p>出镜最多的就数Google了,比如这个Google可以上传任意物体的新闻就比较有创意,还有这个说Google收购了核技术公司准备进行核研究的新闻,</p> +<p>至于Google宣布改名为Topek和Google准备收购百度这两条新闻就比较无趣了,而这个关于Google街景提供红蓝眼镜3D观赏模式的新闻简直可以以假乱真了。</p> +<p>其他的新闻就比较少了,国内的cnBeta也算是提供了一个比较搞笑的,称其不再支持ie6和flash,并且说的有板有眼,说实在的这条新闻我宁愿相信是真的。</p>春雨https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/Tue, 30 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/<img src="https://sbabybird.github.io/p/%E6%98%A5%E9%9B%A8/20100330512-777160.jpg" alt="Featured image of post 春雨" /><p>这场雨下的挺爽的,为什么呢?因为我带伞了。</p>没有合适的资料管理软件https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/Mon, 29 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E6%9C%89%E5%90%88%E9%80%82%E7%9A%84%E8%B5%84%E6%96%99%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/<p>我的硬盘整理行动已经开始了一周多了,期间最让我头疼的就属工作中产生的文档资料了,技术文章、幻灯片、项目计划等等等等。</p> +<p>杂乱地堆放在我的各个硬盘里,好多东西不舍的删除,偏偏在用到的时候找不见,没用的时候又老在眼皮子底下碍事。</p> +<p>曾经试过evernote来管理资料,可是对于大量的word文档不太合适,使用subversion又有点儿麻烦或大才小用。</p> +<p>使用GoogleDocs倒是还凑合,可是说不定哪天就上不去了,到时候哭都来不及。</p> +<p>干脆使用Google的桌面搜索,可是眼看着索引文件越来越大而且重装系统也是个麻烦事儿。</p> +<p>myBase也试用过,界面太朴素也可以接受,功能也很强大,就怕管理的文档多了影响速度,而且myBase是收费软件,使用单一文件数据库还得天天备份,麻烦。</p> +<p>真的找不到合适的了,难道要自己动手写一个?</p>不用了,这是给我的。https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/Sun, 28 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E4%BA%86%E8%BF%99%E6%98%AF%E7%BB%99%E6%88%91%E7%9A%84/<p>这个周末碰到的不是烂片,而是一部让人惊喜的电影&mdash;&mdash;《窃听者》。</p> +<p>该怎样评价这部电影,我不知道,只能说好的电影,能够给人带来思考。</p> +<p>而《窃听者》这部电影却在带来思考的同时又打动人内心最柔软的部分。</p> +<p>故事也许很简单,但是讲好一个故事并不容易,在那样一个年代,或者是在这样一个年代,形形色色的人,做着自以为正确的事情。</p> +<p>片中的主人公(我认为他才是男一号)工作在见不得光的地方,每天的工作就是带着耳机监听着“疑似坏人”的一举一动。</p> +<p>随着时间的推移,他的思想渐渐转变,融入到被监听人的生活。</p> +<p>影片的节奏平缓而又有力,细腻又不失大气,场景的色调和背景音乐低沉得像是一直饱含泪水。</p> +<p>带着耳机的监听人在立场上渐渐站在被监听人那边时,连他自己都很难理解自己为什么要这么做,其实他只是在追随自己的心,哪怕为此付出了巨大的代价。</p> +<p>如果说这个世界还有良心的话,那这就是良心。</p>写歌一首https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/Sun, 28 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E6%AD%8C%E4%B8%80%E9%A6%96/<p>晚饭后,出去散步,春风拂面,颇有意境,遂赋酸词一首,改日谱曲。</p> +<p>如下:</p> +<p>我会做我自己只要我还愿意去寻找</p> +<p>曾经,的美丽在幸福的日记里在漫漫岁月里</p> +<p>有了你我不怕,孤寂</p> +<p>我要好好爱你没有人能怀疑</p> +<p>你知道我不能,失去你</p> +<p>就算春风淅沥沥吹不走</p> +<p>长夜思绪爱让我化不开,忧伤</p> +<p>哪怕心中燃烧的梦想带来远方无尽的希望</p> +<p>猜不透的是那里到底有没有天堂</p> +<p>春天花儿悄悄地绽放背上重重流浪的行囊</p> +<p>带不走的是你给我的清香</p>连接被重置https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/Sat, 27 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/<p>打开我的blog总是连接被重置,为啥?我这儿没啥敏感词啊。</p>下雨啦https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/Wed, 24 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8B%E9%9B%A8%E5%95%A6/<p>下班的路上,下起了大雨,下了车仍然在下,没带雨伞,还好穿的比较厚,没有淋到,但是地上积水很多,把我的鞋洗的铮亮。</p> +<p>不是说春雨像牛毛、像花针、像细丝吗?</p> +<p>不是说随风潜入夜,润物细无声吗?</p>春天,GoogleByehttps://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/Tue, 23 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9googlebye/<p>都说你是纯爷们,其实也只是个传说,这里没有纯爷们。</p>千年以后的人类https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/Mon, 22 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%83%E5%B9%B4%E4%BB%A5%E5%90%8E%E7%9A%84%E4%BA%BA%E7%B1%BB/<p>闲来无事,意淫一下千年以后人类是啥子样子哈。</p> +<p>如果2012是真的,那么千年以后没有人类。</p> +<p>如果不是,也许北京的地铁都修到31415926号线了,但是交通依然拥堵。</p> +<p>那时候也许你的qq等级已经升级到两个天狼星外加5个太阳3个月牙(1G个太阳折合一颗天狼星)。</p> +<p>那时候Google已经接管了地球上所有的计算工作,人一生下来屁股上就被栓个搜索框。</p> +<p>那时候人当然已经不再是从娘肚子里爬出来,而是由计算机编译出来,他的“父亲”在web页面上选择他所具备的能力,可以选择他一生下来就会C语言或者偷菜,而且有多星系语言版本,当然了,能力越高就越贵。</p> +<p>那时候所有的人都要求过织女星语4级,考不过不给办理银河系暂住证,当然了你也可以在开往木星的长途车站门口找到一堆办证的广告。</p> +<p>那时候IE也应该支持W3C的浏览器标准了,如果IE还在的话。</p> +<p>那时候会有一堆考古学家专门研究从地下挖出的碟片是盗版还是正版,当然了那时还是正版的值钱,到时会有一个电视节目叫“鉴碟”,拿着你收藏的碟片上电视节目的话,如果是盗版会被当场被锤子砸烂,不过有个例外是“A片不砸”。</p>声卡那些事儿https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/Sun, 21 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A3%B0%E5%8D%A1%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/<p>1、装机</p> +<p>要是在2000年左右买电脑装机器,除了要考虑cpu、主板和显卡之外,还有个板卡不能忽视,就是声卡。</p> +<p>没声音,再好的戏也出不来,所以声卡作为一个多媒体电脑的基本配件在当时是十分重要的,记得当时很多厂家都在这个领域厮杀,启亨、帝盟、创新、雅马哈等,广告打得异常火爆,后来来自新加坡的创新公司创新赢得了这场战争。因为创新推出了一片极其牛逼的芯片EMU-10k1,利用该芯片制造出了一拨红的发紫的声卡产品&mdash;-SB-Live系列(我们背地里管它叫傻逼的生活)。</p> +<p>后来一个计算机标准出来了,那就是AC97,主板逐渐集成了声卡,开始还依赖cpu的运算偶尔还要爆音和死机,后来技术日趋成熟,遍地都是板载声卡了,主板厂商要是不集成声卡都不好意思跟人家打招呼了,这下好了,装机的配置单上再也没有“声卡”这个选项了。</p> +<p>2、波表</p> +<p>我的第一台计算机配了一块杂牌声卡,我估计音质还比不了现在的集成声卡,但是该声卡集成了一个FM合成器,我当时爱玩一个叫“快乐电子琴”的音乐软件(感谢这个软件,因为这个软件我后来才买了台雅马哈电子琴),利用该软件可以在电脑上叮叮咚咚地弹电子琴,也算是过过电子琴的干瘾。</p> +<p>这个软件之所以可以发音就是依赖了我声卡上的FM合成器,不过乐器的音色很假,敲鼓的声音像是在放屁。</p> +<p>直到有一天我去同学家里玩,他有一块雅马哈724声卡,我给他装上了“快乐电子琴”,一弹奏我就惊呆了,乐器的声音太逼真了,跟真的一样,比起我那个FM合成器声音有天壤之别,后来屡次查资料这才认识了“波表”这个东东,这是一项MIDI技术,如果要说清楚的话估计得说上三天三夜,这里就不详细介绍了。</p> +<p>不过雅马哈的724声卡其实并非带了硬件波表合成器,而是通过软件模拟的,发声会有一些延迟,但是已经很不错了,软件波表模拟器后来发展的也不错,能力也大大超过了硬波表,不过这就是后话了(现在的计算机上如果是windows系统就都有一个软波表,音质一般,有延迟)。</p> +<p>再后来我的另一个同学有块创新PCI128声卡带了个8MB的硬波表合成器,这个声音又让我吃惊了一下子,这次就更逼真了,而且声音实时发出,不带一丝一毫的延迟,软件波表模拟器的最大的缺陷在这里被一扫而光。</p> +<p>3、ASIO</p> +<p>我后来有了一块创新的SB-Live声卡,用了快8年了,这么多年我换了3台计算机,但是声卡一直用的是这一块。这块声卡经典到无法用言语来形容,目前在我的电脑上通过kx驱动,发出的声音甜美清澈,音质是那些集成声卡脱了裤子也撵不上的。</p> +<p>虽然已经停产了,但是仍然可以在网上买到旧的,听说有人收藏了上百块这款声卡,可见其经典程度。</p> +<p>更难能可贵的是,有了kx驱动(一个非官方的改版驱动)可以使此声卡支持ASIO(一种音频标准),在Cubase等录音软件下可达到实时渲染声音的效果,行话叫“听湿录干”,要是普通声卡的话就有很大的延迟,想想你唱卡拉ok时过了几秒钟声音才发出来的尴尬,所以支持ASIO可以让我在CuBase下直接唱卡拉OK,而且可通过各种软效果器随意处理自己的音色。</p> +<p>4、现在</p> +<p>很少有人再去关注声卡了,厂商也不再大力宣传他们的声卡产品,那些肯花五千块钱配电脑的人宁愿其中有一千块钱花在显卡上却不愿花三百块钱买块差不多的声卡。好吧,那你就忍受集成声卡那粘粘糊糊的音质吧。</p>烂片时间https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/Sat, 20 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%83%82%E7%89%87%E6%97%B6%E9%97%B4/<p>周末,挑了一部尼古拉斯凯奇的电影,看完了不得不说,白瞎了尼古拉斯凯奇了,不过竟然看完了,知道是哪部了吧?</p>我是无法整理好我的硬盘了https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/Thu, 18 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%97%A0%E6%B3%95%E6%95%B4%E7%90%86%E5%A5%BD%E6%88%91%E7%9A%84%E7%A1%AC%E7%9B%98%E4%BA%86/<p>随着时间的推移,硬盘上的东西积累的越来越多,硬盘也由原来的一块到现在的四块,大容量的硬盘对于偏执狂就是一个噩梦。</p> +<p>早就意识到硬盘需要整理,可是我的整理速度却赶不上硬盘里的垃圾堆积的速度。</p> +<p>有些东西明明“没有用”却不舍的删除,而真正需要用到的时候却死活找不到放在那个文件夹下面了,曾经使用过Google的桌面搜素,确实不错,可是该程序的索引会越来越大,渐渐达到难以忍受的地步,只得停用。</p> +<p>我决定狠一狠心,花掉这个周末,彻底整理好硬盘上的文件&hellip;&hellip;</p>听歌随想https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/Wed, 17 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E9%9A%8F%E6%83%B3/<p>最早对听歌有印象应该是在八九岁的时候,追逐时尚(当时还没有‘时尚’这个词)的三叔买了当时比较酷的双卡收录机,呵呵,年轻人嘛。</p> +<p>我就从那个时候起开始听磁带,磁带比较匮乏,基本上没啥可挑的,偶尔只有戏曲磁带也得将就着听。</p> +<p>估计当时就是90年代吧,记不清了,好像还流传过一阵子囚歌(愁啊愁啥的),后来又有电视连续剧《渴望》、《篱笆女人和狗》等里面的插曲流行,我记得我当时听一遍就学会了《篱笆女人和狗》里面的一曲《过三关》,还好当时还小,啥也不明白,现在回想起来,那绝对是一首“黄色歌曲”,比邓丽君的歌“黄”多了(当然我当时不知道邓丽君),不信你可以去查一查歌词,不过要说这是艺术的话也能给糊弄过去(其实仔细品味宋祖英的《十八弯的水路到我家》也有那个意思)。</p> +<p>没办法,在农村的乡下,也就听这些歌了,将就了。也有一阵子流行《黄土高坡》、《信天游》什么的,后来我才知道,人们管那一阵子叫“西北风”。</p> +<p>镜头再往现在稍微推一推,我就开始听到港台歌曲了,第一首有印象的港台歌曲是刘德华的《来生缘》,第二首是叶倩文的《潇洒走一回》,第三首是郑智化的《水手》,算是对流行歌曲的正式启蒙吧,那时家已经搬到了镇上。</p> +<p>后来学习开始紧张了,没机会听到更多的流行歌曲,但是还是很喜欢听的,基本不放过听歌的机会,偶尔也会攒点儿零花钱去买磁带,但当时的零花钱简直是少的可怜,一盒磁带要十块钱左右,所以我很少买,不过我现在还记得买的第一盒磁带,是一个大杂烩合集,周华健《风雨无阻》、张学友《偷心》、谭咏麟《青春梦》等等,都是在那盒磁带上第一次听到。</p> +<p>这些歌应该不是那年才刚刚流行的,但我肯定是那时才接触到。由于信息的闭塞和经济的欠发达(就是穷),我听歌的节奏一直比别人晚了半拍(这是后来上了大学才知道的)。</p> +<p>比如他们听张信哲的时候我还不认识这个人,我听张信哲的时候他们已经在听周杰伦了。</p> +<p>现在我偶尔也听周杰伦了,但是他们都不听周杰伦了。工作以后,有一天我跟同事聊天说道:“我怎么现在才觉得欧美的80年代摇滚那么好听呢?是不是我的欣赏水平才达到人家80年代的水平呢?”还是我的同事有水平,沉吟片刻,给了一个很牛逼的答案:“不是越往现在的东西就越好,比如瓷器就是越老越值钱,越是现在的就越便宜&hellip;&hellip;”</p>想出s60软件签名机制的家伙脑子一定是被驴踢了https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/Tue, 16 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%83%B3%E5%87%BAs60%E8%BD%AF%E4%BB%B6%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6%E7%9A%84%E5%AE%B6%E4%BC%99%E8%84%91%E5%AD%90%E4%B8%80%E5%AE%9A%E6%98%AF%E8%A2%AB%E9%A9%B4%E8%B8%A2%E4%BA%86/<p>前一阵子突然想玩玩在手机上写程序,以前也写过j2me的,这次图个新鲜就挑了pythonfors60,还算比较容易掌握,于是就随便写了个帮助我自己查话费余额以及gprs流量的小程序,基本能用,后来由于太忙就懒得再完善了,随便打个包装在我的e71上了事。</p> +<p>前几天老婆也让我给她装个这样的程序,我才发现问题所在,我没有开发者证书(这个据说要掏钱向nokia购买),打包成的sis安装程序在破解过的手机上可以随便装,但是没破的就无法安装了,而以一个普通用户的水平,诸如这些申请证书、软件签名、高权限、破解等几乎无法独立完成,甚至无法理解。</p> +<p>靠,把话题扯远一些,再说说nokia提供的开发环境,如果使用c++开发的话,光是开发环境的配置就足以让人抓狂的,不能在linux下开发不说,在windows下开发还得把编译环境和sdk安装到同一个盘符下否则打死都不能编译通过,在某些笔记本上就连模拟器也有必须插上麦克风才能正常启动的怪癖。</p> +<p>所以说nokia这么做只会让symbian平台慢慢死去或慢慢去死,以后就算不被android压住风头也会被自己玩死。</p> +<p>我的建议是,提供好用又免费的开发环境,彻底摒弃垃圾的软件签名机制,提供类似于appstore的软件商店(听说也有了)。</p> +<p>总之就是吸引开发人员开发出大量牛叉的应用,这样才“科技以人为本”而不是以坑人为本。</p> +<p>ps:看来nokia把宝压在qt上了,我也是比较看好qt的,也希望nokia能够发挥好qt。</p>不听相声听音乐https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/Mon, 15 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%90%AC%E7%9B%B8%E5%A3%B0%E5%90%AC%E9%9F%B3%E4%B9%90/<p>前一阵子我养成了一个不良好的习惯,睡前听相声,甚至达到了不听就睡不着的地步。</p> +<p>说出来怕郭德纲不高兴,我听他的段子入睡最快,不过也许他会说一句“我很欣慰啊”。</p> +<p>如今的相声段子太少,很快就无法听着新鲜段子睡觉了,而老段子则是催眠效果不佳。</p> +<p>行动吧,改掉这个坏毛病。</p> +<p>于是,我把音箱从书房搬到客厅,然后又搬到卧室,每天晚上睡前从《加州招待所》一直听到《喜洋洋》,渐渐发现我现在竟然能听的进去民乐,甚至还喜欢上了。</p>上苍保佑爱折腾的人https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/Sun, 14 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8A%E8%8B%8D%E4%BF%9D%E4%BD%91%E7%88%B1%E6%8A%98%E8%85%BE%E7%9A%84%E4%BA%BA/<p>折腾,大部分情况是贬义,有一种没事儿找事儿的味道,或者是重复地捣腾一些无意义的事情。</p> +<p>大概就这么个意思吧,详情可以去查词典。</p> +<p>对照一下,发现我是个不折不扣的爱折腾的人。</p> +<p>我的这个特质在计算机方面几乎发挥到了让人发指的地步,比如在大学的时候,我几乎每周重装一次操作系统,后来无意中把Win98的序列号(QY7TT-VJ7VG-7QPHY-QXHD3-B838Q)给背了下来,你看,竟然现在还记得(敲了那么多遍,记不住才怪)。</p> +<p>这个爱重装系统的癖好差点儿保留到工作以后,直到后来工作忙了,实在无暇顾及才消停。有一阵子我认为听音乐的感受跟音箱的摆放有很大关系,于是就反复调整喇叭的位置,比如挂在蚊帐上、放在洗衣机里、塞到书架里等等,虽然知道这么做没啥意义(不像许三多那样整天想着做有意义的事情),但是还是无法停止。</p> +<p>最近还流行一个词叫MOD(改造),其实就是折腾,好好的东西改的面目全非却让人着迷,虽然不会把吹风机改装成刮胡刀,但是可以把台式机改造成便携机,或者把笔记本电脑改造成平板电脑,据说有公司专门负责干这个还挺赚钱的。</p> +<p>还有一种折腾是总想让手里的工具达到一种无限趋近完美的状态,或者榨干它的最后一丝潜力,这些貌似无聊的事情,有个很大的原因是因为个性里多少有点儿完美主义或偏执的性格。</p> +<p>这里的例子很多,并不局限于计算机上,生活中的各个方面都有,比如据传闻有牛人在开车起步的时候先挂一下倒档,这样使自己的手动挡的车在别人看起来像是自动档的了,哈哈,玩笑。</p> +<p>折腾是一种生活态度,在我看来甚至是一种美德,一个人喜爱折腾并非是缺心眼儿,而是说明其有活力、有追求。</p> +<p>爱迪生如果不爱折腾可能我们现在还在点着蜡烛,牛顿不爱折腾的话我们也不会在学校里里受尽高等数学的折磨,福特要是不爱折腾我们现在的交通也许不会这么拥堵,骑着马去赶集,够拉风,我靠,怎么说着说着论证反了。</p> +<p>总之吧,我觉得上苍就是保佑爱折腾的人,怎么地吧。</p>真是个不错的天气https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/Sun, 14 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%98%AF%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E5%A4%A9%E6%B0%94/<p>虽然理论上已是春天,可是很显然今年真正的春天要比往年来得要晚一些。</p> +<p>星期天的早晨不太想睡懒觉,拉开窗帘就看见大雪纷飞的天气,恩,这种天气最适合缩在家里,看个电影或者看看书,总之,是个适合宅在家里的天气。</p>该读什么样的书https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/Fri, 12 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%A5%E8%AF%BB%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E4%B9%A6/<p>一直后悔书读的太少,用他们文化人的观点来说,我几乎算上是文盲级别的。</p> +<p>记得有人开过一长串的书单,曰:没读过这些书的都算文盲。</p> +<p>我扫了一下列表,光是外国名著就占了很大一部分,像我这种看见翻译成中文的外国人名就头疼的人,肯定算个不折不扣的文盲了。</p> +<p>学生时期,我所看的文章大部分来自于语文课文,偶尔有课外读物也是吹得没边儿没沿儿的童话故事。</p> +<p>厚部头的书几乎没有耐心把封皮看完。</p> +<p>后来用掌上电脑看书,没有了厚度的压力,我才能把金庸和古龙看完,嘿嘿,就算是补看,也补武侠小说。</p> +<p>前两天又有人出来得瑟着整书单出来,告诉别人这辈子最该读什么书,我操,我该读什么书先搁一边儿,你凭什么在那儿指手画脚。</p> +<p>最讨厌的就是这些家伙,动不动就告诉别人该这样该那样,什么这辈子一定要去的几十个地方啦,做人一定要注意的十个方面啦,一天一定要喝八杯水啦,你大爷的,你自己的事儿整明白了么?嗯?</p>今天是女儿生日https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/Thu, 11 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E6%98%AF%E5%A5%B3%E5%84%BF%E7%94%9F%E6%97%A5/<p>今天是女儿的生日,祝她生日快乐,健康、平安。</p>模仿最近比较 流行的日记格式https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/Wed, 10 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%A8%A1%E4%BB%BF%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83-%E6%B5%81%E8%A1%8C%E7%9A%84%E6%97%A5%E8%AE%B0%E6%A0%BC%E5%BC%8F/<p>今天起的很早,天气转晴了,冷的厉害。</p> +<p>检查手机电邮时发现忘记换电池了,赶紧给手机换上。</p> +<p>公交车又迟迟不来,烦。</p>我最喜欢的电影画面https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/Wed, 10 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/<img src="https://sbabybird.github.io/p/%E6%88%91%E6%9C%80%E5%96%9C%E6%AC%A2%E7%9A%84%E7%94%B5%E5%BD%B1%E7%94%BB%E9%9D%A2/4681282-739763.jpg" alt="Featured image of post 我最喜欢的电影画面" /><p>在辽阔的金黄色的麦田里,微风吹起麦浪,主人公的背影慢慢出现,伸手轻抚麦穗。</p> +<p>在麦田的对岸,有守望他的亲人,这是我最喜欢的电影画面,来自《角斗士》。</p>买了个加湿器https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/Tue, 09 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AA%E5%8A%A0%E6%B9%BF%E5%99%A8/<p>北方的天气就是干燥,在房间里放上半杯水,没两天就干了。</p> +<p>睡上一觉醒来,鼻子和喉咙都干的够呛。</p> +<p>经过同事的建议,买了个“空气加湿器”,京东的送货速度就是快,昨天下的订单今天就到了。</p> +<p>拆开一看,根本就不是多么高级精密的仪器,是一个塑料水杯,通过马达把水打成很碎的水雾然后喷出来而已。</p> +<p>试试效果如何,先喷一晚上再说。</p>应老婆大人要求,继续写博https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/Mon, 08 Mar 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%94%E8%80%81%E5%A9%86%E5%A4%A7%E4%BA%BA%E8%A6%81%E6%B1%82%E7%BB%A7%E7%BB%AD%E5%86%99%E5%8D%9A/<p>刚才老婆短我,问我为啥博客不再更新了,并表示期待看到我继续更新此博客。</p> +<p>本来,对网络环境十分失望,写了博客也无法正常访问,养成写博客的习惯也慢慢丢弃。</p> +<p>有心不再更新livespace的博客而专心使用blogspot,无奈blogspot长期被挡在墙外,老婆大人当然无法访问,而老婆通常又是我博客的VIP读者,所以,既然老婆要求我仍然在此唠叨,那就继续在此更新吧。</p>this blog is shutdownhttps://sbabybird.github.io/p/this-blog-is-shutdown/Fri, 05 Feb 2010 00:00:00 +0000https://sbabybird.github.io/p/this-blog-is-shutdown/<p>byebye另一个blog地址仍然有效http://sbabybird.blogspot.com</p>经历时光倒流https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/Thu, 28 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%8F%E5%8E%86%E6%97%B6%E5%85%89%E5%80%92%E6%B5%81/<p>大前天(2010-01-25)的晚上,我更新了一篇博客叫“中了数码产品的毒”,通过email同步更新到我的在blogspot上和livespaces上的日志里,结果livespaces里无法显示。</p> +<p>本来就觉得livespaces用着有些别扭,因为blogspot在国内无法访问,没办法才同时更新livespaces作为备份的。加上这两天盖茨又在叫嚣不利于互联网和谐的声音。于是,前天晚上,我在livespaces里说,不再更新livespaces,还发了一通牢骚。</p> +<p>结果,在今天发生了时空大逆转,大前天发的那篇博客又出来了,而且显示在前天晚上的那篇牢骚之后,真是无奈啊。</p> +<p>也许是livespaces的邮件系统出了毛病吧,唉,你说我还要不要在livespaces上继续更新之?</p>中了数码产品的毒https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/Wed, 27 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%AD%E4%BA%86%E6%95%B0%E7%A0%81%E4%BA%A7%E5%93%81%E7%9A%84%E6%AF%92/<p>05年的时候,我迷恋上了摄影,确切地说,是迷恋上了数码相机。</p> +<p>那一阵子,我觉得我得马上买一个数码相机,没它不行,走在路上也想着我拿着相机到处“喀嚓”的感觉,不时地拿手比划比划进行所谓的“构图”。</p> +<p>于是乎,我天天看评测报告,看各个相机的参数,由于当时还算比较理智,没有买单反的,随便买了个消费型的数码相机,其实也不是很随便,至少具备手动功能,成像质量也不算太差,但是跟专业相机比起来仍然是玩具。</p> +<p>不过偏偏有人鼓吹“照片拍的好坏不取决于硬件,某某大师也能用傻瓜相机拍出经典来”。</p> +<p>导致我那阵子还研究了一下光圈和快门的关系,甚至还背了景深表。</p> +<p>不过,很快我就发现,两点一线的生活并不适合学摄影,热度也慢慢下降,那个数码相机也被丢到角落。</p> +<p>华硕刚刚推出上网本的时候,我又迷恋上了,就是所谓的“中毒”,也觉得要马上买一个回来,这东西简直就是给我量身定做的,每天在路上惬意地写两段程序,多美好啊,我想。</p> +<p>不过,很快就发现,上网本的键盘简直是一种刑具,按键小的像米粒,在上面打字备受折磨。</p> +<p>屏幕也很小,看起来很费眼睛,所以,我的视力下降了。</p> +<p>唉,回顾一下,那么多诱人的数码产品到底给我带来了什么?从文曲星的电子词典到华硕的上网本,从诺基亚到黑莓,这些曾经使我严重中毒的东西,没有一样发挥出我没有拥有时所想象的功能。</p> +<p>最近我又中毒了,看上了亚马逊出的电子书,恩木,电子墨水屏幕,超便携,wifi,省电,看起来是那么诱人。这也就是为什么,我要写下了上面的那些文字,因为我要给自己解毒。</p> +<p>简单地回顾了一下,我仿佛听到这些电子产品说,“你不要迷恋哥,因为哥只是个传说”。</p>不再更新这个博客https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/Tue, 26 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%86%8D%E6%9B%B4%E6%96%B0%E8%BF%99%E4%B8%AA%E5%8D%9A%E5%AE%A2/<p>第一,livespace太难用了。</p> +<p>第二,2010年我想做些有意义的事情。</p> +<p>第三,在blogspot上的博客继续更新。</p> +<p>第四,无限期暂停更新此博客。</p> +<p>第五,我个人十分讨厌微软的产品。</p>可怜的显示器和键盘https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/Sun, 24 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%AF%E6%80%9C%E7%9A%84%E6%98%BE%E7%A4%BA%E5%99%A8%E5%92%8C%E9%94%AE%E7%9B%98/<p>刚刚看了这个视频,乐得够呛。暴躁是人的天性,虽然平时不怎么打游戏,不过我也偶尔会有这些冲动,只是显示器和键盘实在是太委屈了。</p>坚持https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/Sat, 23 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/<p>这个世界从来不缺乏新鲜的点子和想法,缺的是把想法实现出来,并坚持下去。无论做什么事情,随着刚开始的新鲜感渐渐退去,随之而来的就是对耐心和毅力的考验,是的,这世道就是这样,就像他们说的那样,人生就像那啥,能够挺到最后的都是纯爷们。</p> +<p>我从去年开始,准备一点一滴的整理自己的“个人知识管理系统”,期间使用过各种软件,包括但不局限于“evernote”、“trac”、“dokuwiki”等等。</p> +<p>每一次都是浅尝辄止,稀稀拉拉地整理了几篇文章,然后慢慢地落了一层灰。</p> +<p>固然有“工作忙”这个屡试不爽的借口,但每当想起自己当初信誓旦旦定下的计划还是有些不爽。</p> +<p>这次在年初的计划里,我又列出了整理“个人知识”的计划,看来是非执行不可了。</p> +<p>也许等我整理好了,英特纳雄耐尔也就实现了。</p>高人无处不在https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/Thu, 21 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E4%BA%BA%E6%97%A0%E5%A4%84%E4%B8%8D%E5%9C%A8/<p>老旧的计算机除了扔掉还能干点儿啥?</p> +<p>其实只要发挥创意,老电脑还是可以发挥一些余热的。</p> +<p>下面是一些牛人想出来的点子:</p> +<p>1、驱蚊,蚊子十分讨厌频率为6k左右的声波,根据这个传说,编写程序控制pc的小喇叭发出这个频率的声音就可以达到驱蚊效果。</p> +<p>这个我也曾经做过测试,发现纯属骗人,而且6khz的声波仍在人耳的听觉范围之内(20~20k)所以蚊子没赶跑倒是把人给吵晕了。</p> +<p>2、烧烤,有牛人拿旧机箱来烧烤,这个没啥技术含量只要舍得就行。</p> +<p>3、哄baby睡觉,这个比较绝,利用程序控制电脑的光驱开合,从而拖动婴儿车来回移动,达到催眠的效果。</p>在线看3d电影https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/Wed, 20 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E7%9C%8B3d%E7%94%B5%E5%BD%B1/<p>今天发现这个http://3d.pptv.com/看电影的网站(我火星了吗?),在线提供3d电影的视频,当然也是需要3d眼睛,不过是那种最古老的3d眼睛,即红绿3d眼镜。</p> +<p>网站速度还不错,据说带上3d眼镜之后在普通显示器上也可看到3d效果了。</p> +<p>可惜手头没有材料,要不然就自制一个了。</p> +<p>据说这种眼镜没啥技术含量,随便拿两个塑料片就可以了。</p>地方台的电视节目,偶尔也有能看的https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/Tue, 19 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%B0%E6%96%B9%E5%8F%B0%E7%9A%84%E7%94%B5%E8%A7%86%E8%8A%82%E7%9B%AE%E5%81%B6%E5%B0%94%E4%B9%9F%E6%9C%89%E8%83%BD%E7%9C%8B%E7%9A%84/<p>刚看到一个模仿“一虎一席谈”的节目,提出一个争议话题,找了两组因为利益不同(而导致观点不同)而针锋相对的人在讲台上掐架。</p> +<p>感觉还行,可以当小品看。</p>时空错乱https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/Mon, 18 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%B6%E7%A9%BA%E9%94%99%E4%B9%B1/<p>我的记性不大好,一般都是靠手机的日程表来安排事情。</p> +<p>于是今天早晨,我的手机提醒我,妹妹的生日到了,我赶紧发短信以示祝福。</p> +<p>结果不一会儿妹妹就回复短信&quot;你发错了吧,我的生日还差好几天呐!&quot;,仔细一看手机的日期,我靠,提前了好几天。</p> +<p>原来是不知道什么时候错调了手机的时间,看来,电子的东西还是不能太信任。</p>不用那么麻烦,轻松使slitaz支持中文https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/Sun, 17 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E7%94%A8%E9%82%A3%E4%B9%88%E9%BA%BB%E7%83%A6%E8%BD%BB%E6%9D%BE%E4%BD%BFslitaz%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87/<p>不好意思,最近总是频繁提及Slitaz这个小巧的Linux发行版,我已经把它安装到我的epc上了,驱动齐全,启动和运行速度飞快,安装了最新版的firefox和flash插件,vim当然少不了,可是官方的iso里面并未附带中文的支持,所以打开的中文网页都是乱码。</p> +<p>到网上搜索汉化的方法,发现都比较麻烦,于是自己摸索了一个省事儿的办法。</p> +<p>首先就是准备好一个字体文件,可以直接从已安装的Windows系统里选取喜欢的字体文件,但是我不推崇这么做,因为Windows下的字体都是有版权的,所以推荐使用“文泉驿”系列字体,我选择了“文泉驿微米黑”,可去官方网站下载。</p> +<p>将下载后的字体文件解压到&quot;/usr/share/fonts&quot;下使用root用户执行命令fc-cache好了,现在打开firefox在选项里字体的选择框里就可以选择刚刚安装的字体了,然后在看网页就可以显示中文了。</p> +<p>如果遇到播放flash出现乱码的情况,可执行这个命令&quot;mv/etc/fonts/conf.d/49-sansserif.conf/etc/fonts/conf.d/49-sansserif.conf.bak&quot;这样就可以了。</p> +<p>现在就剩下桌面环境以及程序菜单是英文的了,不过这个没关系,想汉化的话直接修改openbox的资源配置文件即可,不过我就懒得弄了。</p>她来听我的演唱会https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/Fri, 15 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%B9%E6%9D%A5%E5%90%AC%E6%88%91%E7%9A%84%E6%BC%94%E5%94%B1%E4%BC%9A/<p>我从来没有看过演唱会,我曾经想象着这样的场景,歌手在光亮的舞台上扯开喉咙唱歌,我和无数歌迷在舞台地下挥舞着荧光棒也扯着嗓子高呼。</p> +<p>可是我从来没有这样做过,因为我已经错过了那个季节。</p> +<p>我也曾幻想着那样的场景,我理着光头,抱着吉他在舞台上扯开喉咙唱歌,千万的听众也挥舞着荧光棒随着高呼,但是我也错过了那个季节。</p> +<p>我也是个热爱音乐的人,也偏爱着某些歌手,我也曾想象着去听某些人的演唱会,但是我想我不会去了,因为我知道,有些歌我在演唱会上要是跟着唱的话,会无法控制自己的情感而轻轻啜泣。</p> +<p>张学友有一首歌叫《她来听我的演唱会》令无数恋爱中的女人为之动容,因为这首歌唱出了从少女到女人的心路历程。从浪漫的青葱岁月到现实的装b季节,无数的少男少女经历了从梦想的飞蛾到蚕蛹的转变。</p> +<p>正像崔健在《假行僧》里唱到的那样,我要从南走到北,还要从白走到黑,我要人们到看到我但不知道我是谁,假如你看我有点儿累就请你给我倒碗水。。。。。。</p> +<p>今天,我的一个好哥们,雅兴大发,拼命挤到网上淘得一张齐秦在北京演唱会的门票,欣喜若狂。</p> +<p>我很羡慕他还有这个心情去看一场演唱会,在这个充满压力的某些时候还令人沮丧的世界,仍然能保持梦想并执着于自己的爱好。</p>Geany,不错的IDEhttps://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/Thu, 14 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/geany%E4%B8%8D%E9%94%99%E7%9A%84ide/<p>前两天在试用Slitaz的时候发现其中带的Geany是个不错的IDE(想想吧,Slitaz才不到30M的身材竟然还带了个开发环境),Geany轻巧快捷,功能齐全,具备基本的代码高亮和自动补全功能,用来写python脚本真是个不错的选择。</p> +<p>难能可贵的是其还支持插件扩展(这年头要是拿出个软件还不支持扩展就真不好意思和人家打招呼)。</p> +<p>当然了,就编辑功能来说有些弱,但是作为Slitaz这个小巧系统下的开发环境真是再合适不过了。</p>难以说再见https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/Wed, 13 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%9A%BE%E4%BB%A5%E8%AF%B4%E5%86%8D%E8%A7%81/<p>Google,一个IT公司,一个搜索引擎,对我来说几乎意味着整个互联网。</p> +<p>本来在我的心目中,IT公司几乎等于骗子,然而Google却是个例外。</p> +<p>自打开始接触互联网以来,就离不开Google了,她可以说是我的良师益友,离开大学以后学到的知识几乎全部来自于Google的索引。</p> +<p>除了出色的搜索功能之外,Google提供的产品无不令人惊叹,出色电子邮箱、Rss阅读器、浏览器、操作系统、手机操作系统,这些产品每一个拿出来以后都足以让原本在该领域内的佼佼者掩面而去。</p> +<p>可是,马上就要说再见了,总部那边发布了一篇博客,用某些动物的话说叫“撒了一下娇”,一下子就把这边的用户给抛弃了,就像上次operamini抛弃大陆用户一样。</p> +<p>一时间有人高兴,有人悲伤,有人麻木,有人抓狂。</p> +<p>技术人员大都是不关心敏感词的(或懒得关心),可是热爱技术的人哪一个不热爱Google呢,据我的感受来说,但凡是有所能力的技术人员,无论他的外表多么的随和其内心都是十分倔强的,正是凭着这一股倔强的劲儿才啃下了一个个难题,掌握了常人所不能(或不齿)掌握的东西。</p> +<p>然而这些人却一点一点的被逼到了墙角。</p> +<p>倔强的人会放弃吗?想到一个故事,记不清从那个文章里看到的了,歌词大意是:一个大山里的人被带进了繁华的大都市,第一次看到了这花花世界还有这么多活法,然后被告知回去继续过原来种菜喂猪的日子,此人大哭:“既然无法得到却又为什么让我看到啊”</p> +<p>嘿嘿,我宁愿从来都没有看清过这个世界。</p>痴迷https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/Tue, 12 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E7%97%B4%E8%BF%B7/<p>今天的气温在极冷的情况下又骤降,这是我遇到的最冷的冬天了,走在路上,鼻涕先给冻出来然后再给冻回去最后结成冰。</p> +<p>最近十分痴迷于在我的小笔记本上试验各种版本的操作系统,今天继续。</p>好像又不能访问google了https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/Mon, 11 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%BD%E5%83%8F%E5%8F%88%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEgoogle%E4%BA%86/<p>如题。</p>在我的epc上运行androidhttps://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/Sun, 10 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E6%88%91%E7%9A%84epc%E4%B8%8A%E8%BF%90%E8%A1%8Candroid/<p>早就对google的android系统垂蜒三尺,终于看到了这个android-x86,原来是有几个好心人把android系统移植到了x86平台,喜欢折腾的我当然不能错过。</p> +<p>看网站上的介绍是支持epc的硬件,遂下载了iso刻录到我的优盘上,简直是帅带了,一次启动成功,速度不错,无线网络可以开启,电池电量也可以检测。</p> +<p>界面果然是为手机设计的,可惜我的epc不是触摸屏,但是有键盘,操作起来还算说的过去,比如现在这几行文字就是在此系统下打出来的,也是google的拼音输入法不过是针对android的,使用键盘选字不是太方便。</p> +<p>想截个图结果没找到截图软件,按printscreen按键也不行,算了,先玩玩吧,毕竟不是为笔记本量身定制的系统。</p>从石锅拌饭想到的https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 09 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8E%E7%9F%B3%E9%94%85%E6%8B%8C%E9%A5%AD%E6%83%B3%E5%88%B0%E7%9A%84/<p>记得小时候有一次看电视,新闻报道说某地某羊肉泡馍饭馆生意火爆,去吃羊肉泡馍的人络绎不绝,而且都喜欢装模作样的自己把馍慢慢掰碎了扔进碗里,感觉那样才有味儿。</p> +<p>昨天晚上和同事一起吃饭,某人点了石锅拌饭,不一会儿端上来的却是拌好的,该同事不甚满意,因为以往都是自己动手拌的,即自己眼睁睁地看着那个半生不熟的鸡蛋被慢慢搅匀到米饭里,而这次却是饭店服务员手太勤快直接就给搅匀了,该同事顿觉很失落,因为吃石锅拌饭自己动手拌也算是消费的一部分,拌好了再端上来就失去了原来应有的韵味,就好象上面说的羊肉泡馍的事情,同样的面疙瘩,不是自己掰开的就觉得没味儿。</p> +<p>说了半天,其实我是这些事儿让我想到了其他的方面。</p> +<p>会不会是大家都有某种亲自动手的情节。</p> +<p>比如Linux有很多发行版,其中就有一种发行版叫Gentoo(当然了还有LFS,这个更变态)的&mdash;颇受欢迎,因为其十分的具有原味儿,该系统所有的程序包括操作系统的内核都要自己亲自动手下载源代码进行编译,虽然整个系统从内核到桌面环境一点一滴地慢慢编译出来非常的耗费时间和精力,但是很多人却沉迷其中不能自拔,因为自己动手的感觉真是太他妈爽了。</p> +<p>再说到写程序的方面,虽然现在的IDE都十分强大了,但是还是有人(包括我)热衷于自己写Makefile来控制软件的编译过程,就算VisualStudio已经提供了十分“完善”的开发向导,但是我还是习惯自己写包括消息映射在内的代码,不为别的,因为自己可以控制具体的细节,精确到每一行。</p> +<p>好吧,我承认有时候需要考虑效率和成就感的平衡,但就个人情感来说,我还是觉得自己动手要爽一些,就像吃羊肉泡馍和石锅拌饭一样,恩,有机会把家里的操作系统也换成Gentoo。</p>我靠,宽带断了https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/Sat, 09 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E9%9D%A0%E5%AE%BD%E5%B8%A6%E6%96%AD%E4%BA%86/<p>家里的宽带没被我怎么用过,只是每天晚上用来听相声,可是由于忘记去续费导致我昨天晚上没听成,体验了一夜失去互联网的感觉。</p> +<p>这种体验让我感到相当不爽,因为意识到自己太依赖互联网了,哦卖糕的,我有网瘾。</p>高科技手段抄水表https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/Thu, 07 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E7%A7%91%E6%8A%80%E6%89%8B%E6%AE%B5%E6%8A%84%E6%B0%B4%E8%A1%A8/<p>回来的时候,门上贴个条,原来是抄水表的过来时我不在家,只好留下电话让我自己把水表上的数字告诉他。</p> +<p>可是我没有工具,水表安装的位置又极其蹩脚(在厨房水槽下方靠近墙的位置),无法直接观看,每次我都是看他们带着手电外加一个镜子然后撅着身子瘪着头使劲儿看半天。</p> +<p>可是这难不倒我呀,使用手机打开闪光灯,伸进去对准水表,连拍三张照片,然后上传到电脑,本来还准备使用ocr软件自动识别(脱了裤子放屁),但是才发现水表是指针式的,放大图片读出数字,OK。</p>SliTaz,一个神奇的操作系统https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/Wed, 06 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/slitaz%E4%B8%80%E4%B8%AA%E7%A5%9E%E5%A5%87%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/<p>SliTaz,是一个极其小巧的Linux发行版,究竟有多小呢,他的个头才30MB,可以制作成LiveCD和LiveUSB系统。</p> +<p>所谓麻雀虽小五脏俱全,附带有完整的桌面环境和常用软件,连firefox都有。</p> +<p>在我的epc上跑得飞快,启动速度也很快(它的启动画面上有句很醒目的话“BOOT!BABYBOOT!”,可见其对启动速度的追求),驱动程序也挺齐全的,直接启用无线网卡,零设置。</p> +<p>刚刚才开始试用,无更多体验,目前显卡仍未设置成宽屏的最佳分辨率,不过我想问题不大。</p>普通pc最多能装多少块硬盘?https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/Tue, 05 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%AE%E9%80%9Apc%E6%9C%80%E5%A4%9A%E8%83%BD%E8%A3%85%E5%A4%9A%E5%B0%91%E5%9D%97%E7%A1%AC%E7%9B%98/<p>普通pc最多能装多少块硬盘?我不知道,之所以想到这个问题是因为我有个同事是个DIY狂人,他跟我说他想把50块500G的硬盘(普通ATA硬盘)塞进一台机器里(PC),使该机的存储容量达到25T,问我该使用什么操作系统。</p> +<p>我靠,这真是个疯狂的想法,让我想到了那个买一堆奥拓拿铁丝绑在一起的笑话(呵呵,做人要厚道)。</p> +<p>可惜,我是没有这方面的经验,但是去网上搜索了一下,乖乖,借助RAID卡的威力,理论上可以在pc里安装超过100块硬盘,但是实际上几乎没有人这么做过,所以,让我拭目以待,看看真实情况下,到底能够安装多少块硬盘。</p> +<p>想一想这台怪兽的样子,~~~额,再忍不住打个寒噤。</p>新年畅想https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/Mon, 04 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%B0%E5%B9%B4%E7%95%85%E6%83%B3/<p>刚回过神儿来,现在已是2010年了,进入了传说中的二十一世纪的第10个年头。</p> +<p>有几点目标,希望今年可以达到。</p> +<p>谈不上计划,只是随便想想:</p> +<p>1、体重能够增加5公斤。</p> +<p>2、阅读5本书。</p> +<p>3、彻底整理好自己硬盘上的文件,并建立完善的知识管理机制。</p> +<p>4、学会吉他的扫弦。</p> +<p>5、写一个真正的pc游戏。</p> +<p>6、提升英文水平至可阅读非技术类新闻。</p> +<p>7、改善自己的GTD系统。</p>听雪https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/Sun, 03 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E9%9B%AA/<p>早晨醒来,拉开窗帘,看到一个洁白的飘着雪花的世界,哦也。</p> +<p>这意味着,在明天早上,假期之后的第一天上班,水平很烂的司机和自认为水平很棒的司机将会在美妙的高速公路上疯狂追击,带来无与伦比的超级大堵车,这就叫明知山有虎偏向虎山行,胸中有红日,脚下舞东风,哦,等一等,跑题了。</p> +<p>我是说,早晨一醒来,看到一个洁白的飘着雪花的世界,哦也。</p> +<p>这意味着,我昨天洗的衣服即使是到了明天还是很难晾干,湿润的裤子在风雪中将会很快冻成一根冰棍,恩,是两根。</p> +<p>mad,我发现想怀着一份飘飘(也有人叫浪漫)的心情写几个文字实在是太难了,于是给自己倒上一杯红酒(昨天超市促销,所以&hellip;),重新开始。</p> +<p>我想说,下吧!大雪,我喜欢!(哦,已经有点儿酒劲儿了)。</p> +<p>因为我喜欢聆听雪的声音,那种安静而又带有几分神秘的雪花飘落的声音。</p> +<p>我喜欢独自站在阳台透明的玻璃后面,点上一支烟,雪花纷飞,毫无章法地打在玻璃上有些甚至想在上面堆砌一些图案,远处的景色已经模糊,那些本来杂乱又浮躁的东西统统被覆盖,仿佛他们本来就那么纯洁似的。</p> +<p>路上的行人放慢了脚步,孩子们开心地堆着他们叫做“雪人”的物体,我几乎能听见皮鞋踩在上面发出的轻微的“咯吱”声。</p> +<p>当一个人体会美好的时候,回忆总会涌上心头,因为回忆里全是美好。</p> +<p>镜头很快滑过小时候第一次看见下雪的情景,起初飘落在地上的不是雪花,而是很小很圆的颗粒,叮叮咚咚,我拿着小铲子蹲在院子里,还以为那是化肥,恩,我也记不清楚了。</p> +<p>然后就是大片的雪花了,地上很快就白了,嘴里呼出的热气和雪花缠在一起。</p> +<p>再后来,我穿着笨拙的大头鞋使劲儿在雪地里踩出又大又深的脚印,恩,这就是我对雪的第一次印象,虽然记忆已经模糊地带着雪花点了,不过这正迎合了此刻的景象。</p> +<p>听雪的时候更能够享受一份孤独,烦恼都烟消云散。电脑里编译着代码,电视里主持人在蹩脚地斗嘴,我一个人站在玻璃后面听了一袋烟工夫的雪,却好像一个世纪那么长。</p>假期https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/Sat, 02 Jan 2010 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E6%9C%9F/<p>2010年的第一天,我加了一天班。</p> +<p>2010年的第二天,我狠狠地睡了个懒觉,本来想从天黑睡到天黑,但是想到假期是如此的珍贵,只好在9点am就爬了起来,做了顿丰盛的早餐。</p> +<p>在给我的ubuntu重新编译了两次最新的内核之后,我意识到这是一件很无聊的事情,于是决定做一些有意义的事情,看美剧,一连看了十来集,再看就要呕吐了,而且由于反复傻笑导致脸也快抽筋了。</p> +<p>我决定出去走走,做了个不太理智的决定,那就是漫无目的的逛超市而且还是空着肚子。</p> +<p>记得好像有人提醒过,去超市买东西时最好先想好一个清单,而且最好是在吃饱的情况下再去,否则就会拿回一大堆垃圾回来,恩,我今天就是这样。</p> +<p>我推着小车(这也是个错误的决定),由于食欲的关系,不一会儿的功夫就把小推车堆的满满的,一边大把的拿东西一边想象着自己坐在家里美美的吃它们的样子,哦也,再加一瓶红酒吧,哦,等一等,这边的酱肘子正在滋滋地冒着热气,仿佛正在召唤我,ok拿下。</p> +<p>提着东西走进家里,我才意识到,我买了足够我吃一个月的食物,而有些东西的保质期才两天,比如那只烧鸡。</p> +<p>好吧,他们说狂欢是一群人的孤单,而孤单正好一个人狂欢,justeat!</p>goodbye2009,hello2010https://sbabybird.github.io/p/goodbye2009hello2010/Thu, 31 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/goodbye2009hello2010/<p>。,goodbye2009,hello2010</p>关于windows7下无法安装Visual Studio2008的问题https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/Wed, 30 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Ewindows7%E4%B8%8B%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85visual-studio2008%E7%9A%84%E9%97%AE%E9%A2%98/<p>单位的机器,前一段时间,被我换成了windows7系统,没办法,咱就是爱折腾。</p> +<p>尝鲜总是要付出代价的,那就是不知怎地,过了一段时间就无法安装某些软件了,不能安装office这还能忍,可是连vs都不能装了那还用个屁啊。反复观察,原来是无法安装vc++的runtime了(也就是vc_redist_x86.exe),具体是为什么不太清楚,好像是一个系统的bug导致的。反复地google,去microsoft网站去查,折腾了好几天,总算有了解决办法。</p> +<p>步骤如下:</p> +<p>1、打开注册表编辑器regedit,找到这儿HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control,</p> +<p>下面有个叫RegistrySizeLimi的键,把它的值修改为0xffffffff</p> +<p>2、重新启动电脑,并使用administrator用户登录,如果该用户未启用则要首先到“计算机管理”里面把administrator帐号启用。</p> +<p>3、在cmd里运行“sfc/scannow”以上几步完成后,再次重启机器即可。</p>你看,电视!https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/Tue, 29 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E7%9C%8B%E7%94%B5%E8%A7%86/<p>谁也阻挡不了互联网带来的变化,有些东西正在一个一个地被消灭,比如纸质信件,比如影碟机,比如磁带、CD。</p> +<p>现在还在苟延残喘的还有电视、报纸等,但是他们的日子也&hellip;&hellip;</p> +<p>今天看到消息,咱们的CCTV也推出网络电视了,抱着凑热闹的心理去看了看,随便打开几个视频看了看,然后就关了,我只能说他们的网速还不错,内容实在是没有什么吸引力。</p> +<p>不知怎地,我现在已经开始讨厌看电视了,我不是不喜欢电视机,而是不喜欢里面的节目了。</p> +<p>再也没有瞪着好奇的眼睛盯着电视屏幕不放的心情了,小的时候,哪怕是一段朴素的广告我也爱看,现在回忆起来那时的电视节目几乎个个都是经典。可惜啊,随着时间的流逝,信息来源的多样化,尤其是接触了互联网之后,眼界一下子开阔了,再加上现在的节目大都粗制滥造带有极强的功利色彩很多时候拿观众当傻B,谁还爱看呢。有句话说的好,记不得是谁说的的,歌词大意是:“当你打开电视的时候,你的大脑就会停止思考。</p> +<p>而当你打开电脑的时候,你的大脑正开始思考。”</p> +<p>恩,我很同意这句话,尤其是前半句。</p>在kde下更新博客哦https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/Mon, 28 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8kde%E4%B8%8B%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E5%93%A6/<p>嘿嘿,Linux进步真是非常快,桌面环境比起前两年已经友好的多了,很多人性化的功能让windows只能掩面而去。</p> +<p>以前在linux下的输入法还只能算是能用,现在的输入法已经算是好用了,当然还比不了windows下的google拼音,不过也差不多了。</p> +<p>抛开其他的特性不说,一想起这是一个开放的、自由的、免费的系统环境就让我对它爱不释手。</p> +<p>一大票强大的软件可用,成熟方便的开发环境,安全的游览器,不用装杀毒软件,实在是找不到理由再去用windows了。</p> +<p>唯独不能在qq上和家人视频,不过我准备用skype试试看。</p>正式切换家用电脑的主系统为kUbuntuhttps://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/Sun, 27 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/<img src="https://sbabybird.github.io/p/%E6%AD%A3%E5%BC%8F%E5%88%87%E6%8D%A2%E5%AE%B6%E7%94%A8%E7%94%B5%E8%84%91%E7%9A%84%E4%B8%BB%E7%B3%BB%E7%BB%9F%E4%B8%BAkubuntu/20091227.png" alt="Featured image of post 正式切换家用电脑的主系统为kUbuntu" /><p>早上一睁眼,想起了这是星期天。于是我的老毛病就又犯了,睡不着了。</p> +<p>一个念头闪过脑海,感存重装系统玩儿吧,这几天在单位被windows7折磨的够呛,于是决定换掉家里的系统,不用windows了!</p> +<p>换成哪个linux发行版呢,一定要漂亮的,一定要省事儿的,于是选择了kUbuntu这个号称比windows7还要漂亮的发行版。</p> +<p>安装十分简单,去下载iso就行了。</p> +<p>一路“下一步”即可。</p> +<p>第一次使用kde4的桌面环境,很是惊艳,早听说kde4漂亮的一塌糊涂没想到竟会这么漂亮,开了特效之后更是华丽的令人发指。</p> +<p>好了,就这么定了,以后就用这个了。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Sat, 26 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<img src="https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/blog-733901.PNG" alt="Featured image of post 无题" /><p>尝试用触摸板画画,太蹩脚了。</p>圣诞老人https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/Fri, 25 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A3%E8%AF%9E%E8%80%81%E4%BA%BA/<p>据说他们装的都很认真,为了让孩子保持对圣诞老人期待,他们每年都要装模作样的去追踪圣诞老人。</p> +<p>刚刚看到消息,说Google每年都提供kml文件用以跟踪圣诞老人的行踪,而网站noradsanta.org更是制作了完整的地图来显示,可惜的是访问该网站只支持Windows和Mac系统,于是有人抱怨说:“难道圣诞老人讨厌Linux吗”,我觉得noradsanta.org做的挺对的,因为使用Linux的人,谁还相信有圣诞老人啊。</p> +<p>toosimple</p>写在平安夜https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/Thu, 24 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%9C%A8%E5%B9%B3%E5%AE%89%E5%A4%9C/<p>圣诞节,这个本属于老外的节日,现在已经成功移植到国内了,大家过得还不亦乐乎,节日嘛,咱们最喜欢了,来者不拒,有一个算一个。</p> +<p>现在外面温度-5度,偏北风力4级,看不见月亮,我刚和同事喝了两杯回来,屋里暖和极了,倒了一杯开水,坐在客厅,很安静。</p> +<p>总是到了年末的时候才想起感慨时光的流逝,这一晃就又是一年。粗略地回顾一下,有收获也有遗憾,有成长也有叛逆。</p> +<p>翻了翻年初给自己制定的计划(对不起,我是计划狂++),发现大部分还是实现了的,有些计划制定的太过离谱偏离较远,比如学习计划,由于时间的冲突只得以工作为重。</p> +<p>不过,梦想始终是不能够放弃的,我庆幸自己清醒地知道目标,并坚定不移地去实现它,一个一个地了却心中的情结。</p> +<p>谈到梦想,我都快成了一个梦想家了,到现在为止我仍然保留的梦想有:</p> +<p>拍摄一部上好的纪录片,做一个录音师,拥有一个属于自己的实验室,写一个操作系统,等等等等(除了最后一个其它的好像都离我的职业挺远的)。</p> +<p>在追逐梦想的路上,难免会有失望和沮丧的时候,但心中的信念从来都没有丢失,面对我的梦想,我像一个虔诚的信徒,怀揣着单纯的心,每晚甜蜜的睡去。</p>微波炉的影响https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/Wed, 23 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89%E7%9A%84%E5%BD%B1%E5%93%8D/<p>无论厂家如何吹嘘,微波炉的电磁辐射泄漏都是挺严重的。</p> +<p>以前不觉得,认为把它关严实就不会有微波跑出来,所以一边加热食物,一边在跟前等着。</p> +<p>这几天我喜欢拿着笔记本在餐桌旁上网,刚才开动了一下微波炉,我的笔记本立即就连不上无线网络了,我差点以为是我打开的网页内有敏感词,后来才发现是微波炉辐射的影响,看来以后得注意些,不能在开启的微波炉边上上网啦。</p>3D电影终于要走进家庭了https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/Tue, 22 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/3d%E7%94%B5%E5%BD%B1%E7%BB%88%E4%BA%8E%E8%A6%81%E8%B5%B0%E8%BF%9B%E5%AE%B6%E5%BA%AD%E4%BA%86/<p>刚在Solidot看到一则让人兴奋的消息,3D蓝光规格终于敲定,这意味着以后的3D电影可以装进蓝光DVD并在家里播放了,虽然在观看时仍然需要特制的眼镜,但这已经不是问题了,我想,随着技术的发展,很快就能观看不用带3D眼睛的3D电影了。</p> +<p>最酷的是,使用蓝光DVD播放器即可组建家庭3D影院了,当然对显示设备有所要求,不过问题不大,我估计5年之内即可普及了,科技的发展速度实在是让人敬畏。</p> +<p>顺便提醒一下,国内的标准机构是不是也需要与时俱进赶紧制定咱中国人自己的标准呢?嗯?</p>郁闷的万能解药https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/Mon, 21 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E4%B8%87%E8%83%BD%E8%A7%A3%E8%8D%AF/<p>靠,本来想说开心是郁闷的万能解药,想了想又觉得不妥,本来就郁闷了还哪来的开心。</p> +<p>好吧,乐观的心态才是。很久很久以前,记不清了,大概是上个世纪的事儿了,有一坨古老的电视节目,里面有一句名言:“快乐是一天,不快乐也是一天,为何不天天快乐呢?”</p> +<p>,你听听,说的多在理啊,虽然有点儿站着说话不腰疼的意思,但是话糙理不糙,不用多仔细去想就觉得豁然开朗。</p> +<p>随着工作压力的增大,以及对世界认知的改变,人已经变的越来越不单纯了,本来一杯清澈的白水已经污染的又黑又浑,已经很难咧着大嘴叉子笑得喘不过气来了。</p> +<p>曾经一个一头猪掉进臭水沟里的笑话都能笑上半天,到现在看见这样的笑话连嘴角都懒得抽动,偶尔遇到能够笑得起来的还是荤段子。</p> +<p>但是,最近看了一连串的美剧,让我又回到傻笑的年代,有些人说这太单纯、无聊、没意思,其实包含着大量的深刻讽刺和幽默,比如《生活大爆炸》、《好汉两个半》、《老爸老妈的浪漫史》等等</p> +<p>,他们不但让我看得前仰后合而且还能产生一些积极乐观的思考,不像有些电视剧简直是把你的脑袋敲开了往里面扔大便。</p>没写过曲子的厨子不是一个好裁缝!https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/Sun, 20 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E5%86%99%E8%BF%87%E6%9B%B2%E5%AD%90%E7%9A%84%E5%8E%A8%E5%AD%90%E4%B8%8D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E8%A3%81%E7%BC%9D/<p>今天坐在电子琴前瞎按,精神有些恍惚,尝试着弹些曲子,居然可以有“完整”的旋律被弹出来,而且听起来有些淡淡的伤感,有些甜蜜。</p> +<p>我又不会记谱,纯粹凭着感觉弹奏,恰巧电脑上的midi软件坏了,无法使用软件录制,只好掏出手机赶紧把这段录下来(用手机录的音质就差多了),要不然很快就会忘了。点击这里可听如有雷同纯属巧合:)</p>周末,看电影的时间https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/Sat, 19 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E7%9C%8B%E7%94%B5%E5%BD%B1%E7%9A%84%E6%97%B6%E9%97%B4/<p>按照偏执的日程安排,周末乃观影时间,一个人抽着烟复习经典老片。</p>关于随机数https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/Fri, 18 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%95%B0/<p>众所周知,计算机(不含量子计算机)是不可能产生真正的随机数的,而只能产生出“伪随机数”。</p> +<p>因为要在计算机上产生随机数都要设置“随机数种子”,而一般来说这个“种子”来自于计算机自带的时钟,这也就意味着这个过程是可重复的,产生出的随机数也是有一定的规律的,无论多复杂的随机算法都难逃这个定律。</p> +<p>具体解释可参考维基百科。</p> +<p>可是大自然中到处充满了“真随机数”,因为没有完全一样的两片树叶,也没有完全相同的指纹(这个不好说)。</p> +<p>可是这些真的是随机的吗?</p> +<p>还是由于人类的认知并未达到一定的高度才产生出来的错觉?</p> +<p>因为我常常这样想:假如我写了一段程序,里面有个“生物”假设他有意识(我靠,这太难了),我给这段程序一堆随机数字,那么程序里的“生物”是不可能知道这些随机数字是由于我设置了“随机种子”才产生的,因为在“构建”这个“生物”之前我已经设置了“随机种子”。</p> +<p>好了,令我有些迷惑的是,也许我们大自然的随机数是在“宇宙大爆炸”的时候就设置了“随机种子”的,后面的发展固然有无尽的随机数,导致根本没有重复的树叶也好,没有相同的指纹也罢,也许这些还是“伪随机数”。</p>齁冷https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/Thu, 17 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%BD%81%E5%86%B7/<p>实在找不到词语形容今天的天气了,查了半天新华字典才找到“hou”这个字怎么写,恩,今天天气齁冷齁冷的。</p>DIY了个电子琴延音踏板https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/Wed, 16 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/diy%E4%BA%86%E4%B8%AA%E7%94%B5%E5%AD%90%E7%90%B4%E5%BB%B6%E9%9F%B3%E8%B8%8F%E6%9D%BF/<p>当初买电子琴的时候没有配套买一个踏板,后来练习的时候才知道延音踏板的作用还是十分重要的,嫌麻烦就没有再去买,到网上看看卖的还挺贵,雅马哈原装的要好几百块。</p> +<p>后来我研究了一下,电子琴的延音踏板原理十分简单,就是拿脚一踩就短路而已。</p> +<p>于是就想自己做一个,苦于没有材料,有一阵子我甚至联想到我垃圾桶上的那个踏板能不能拿来做延音踏板(当然不行),后来想到了鼠标,行倒是行,就是“脚感”太差。</p> +<p>今天在家翻抽屉翻出来一个废弃的台灯,发现他的底座挺合适的,于是就卷起袖子开干。原理太简单了,就是拿跟引线从电子琴上接下来,这头接在台灯底座上,台灯的底座经过改造,踩下去就导电,抬起来就断开,试了一下,还真对得起咱这台琴!</p> +<p>请看照片:</p>理发https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/Tue, 15 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%86%E5%8F%91/<p>今天去理发了,很难理解那些一边理发一边与发型师聊个没完的话痨,今天我终于想明白了为什么我到了理发店就沉默寡言了。</p> +<p>因为他们一般都会问我这几个问题:</p> +<p>1、“您多久没理发了?”</p> +<p>妈的,老子想什么时候理就什么时候理,怎么了。</p> +<p>天气这么闷热生活这么枯燥,理个发你还在这唧唧歪歪没完。</p> +<p>不就是老子的头发留的稍微长了点儿,收拾起来慢一些吗。</p> +<p>2、“您的发质太硬,要不要做个软化?”</p> +<p>操!好好的头发干嘛要在药水里泡来泡去了的。</p> +<p>3、“您的头发有些脱发,给你推荐一款防脱发的洗发水怎么样?我们这边特价”</p> +<p>脱发?没你说的那么严重吧,倒是推荐的洗发水有些怪异,恕我孤陋寡闻,这些牌子我一个也没听说过。</p> +<p>4、“办个会员卡吧?以后每次来都能打8折”</p> +<p>最崩溃的就是这句,痛苦地忍住胸口那句脏话,赶紧离开这间店。</p>我的装机必备软件及理由https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/Mon, 14 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E8%A3%85%E6%9C%BA%E5%BF%85%E5%A4%87%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%90%86%E7%94%B1/<p>今天在网上看到有人写他的装机必备软件,看得我也心痒痒,也来说一说我的装机必备软件,每个人的习惯不一样,我选择的都是我最喜欢的。</p> +<p>选择的原则是有免费的就不用收费的,有开源的就不用闭源的,有小巧的就不用臃肿的(当然是同样功能的比较),有绿色的就不用安装的。</p> +<p>1、记事本替代,这个可选择的余地很大,gvim、Notepad++、Notepad2等等,我选择gvim,它高效、强大、聪明。</p> +<p>2、浏览器,这个非常重要,可选择Firefox、Chrome、Opera等等,我选择Firefox,因为Chrome目前还无法让我放弃Firefox,不过Chrome也真的很好,而且进步很快。</p> +<p>为啥没有IE?用IE上网让我没有安全感,而且操作起来很不爽,这点目前已有了很大改观(IE8)。</p> +<p>3、音乐播放器,我选择foobar,不过现在在线听音乐才是趋势,所以foobar只有在听本地的无损音频文件的时候才能派上用场。</p> +<p>4、视频播放器,我选择MPlayer,没有理由,就是他了,非要找个理由的话,那就是因为它是开源的而且它有很多快捷键。</p> +<p>5、看网络电视,选择ppstream。</p> +<p>6、文件管理器,选择totalcommander,又是一个绝世好软,好处多到一天也说不完。</p> +<p>7、在线听广播,选择龙卷风网络收音机,老牌子,质量有保证。</p> +<p>8、系统快捷键定制,选择ahk(AutoHotKey),可以自己编写脚本定制快捷键。</p>吃牛排的时候你没想过要认识那头牛https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/Sun, 13 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%83%E7%89%9B%E6%8E%92%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%A0%E6%B2%A1%E6%83%B3%E8%BF%87%E8%A6%81%E8%AE%A4%E8%AF%86%E9%82%A3%E5%A4%B4%E7%89%9B/<p>《逃出克隆岛》这部2005年的科幻电影(算是科幻吧),今天又被我翻出来看了看。</p> +<p>故事里说,在不远的将来,随着克隆技术的发展,人类已经具备了克隆自己的能力,最简单的应用是当人类的器官坏掉之后就克隆一个换上,这给那些贪婪的、渴望长生的人们又带来了希望。</p> +<p>有了市场需求就有人提供这种服务,故事里的“坏人”开办了一个地下工厂专门提供克隆器官,并告诉外界克隆的这些器官寄生在没有灵魂、没有思想、知觉的“植物人”身上,听起来貌似很人道。</p> +<p>然而,随着时间的进展,“坏人”发现通过这种手段提供的器官质量并不高,于是直接克隆出整个的活人,大批量的复制,统一的教育他们,并给他们植入雷同的记忆,描述了一个类似天堂的地方作为他们活着的终极目标,当然这个地方就是他们生命的重点。</p> +<p>一旦用到了他们器官他们的生命也就走到了终点,外面世界里的人类作为“客户”继续使用新鲜的器官活下去。</p> +<p>这些克隆人大部分没有真正的思想,认知水平停留在孩童阶段,本来一切进展顺利,使用器官的人都没有负罪感,因为就像电影里说的那样:“吃牛排的时候你从没想过要认识那头牛”。</p> +<p>然而,人都是有好奇心的,克隆人也一样,随着好奇心越来越强烈,就引发了电影接下来的故事。</p> +<p>故事的结局还算不错,就像所有的电影一样,“坏人”受到了惩罚,泯灭的人性又一次战胜了邪恶。</p> +<p>电影本身结束了,可是带给人的思考却漫无边际,随着人类文明的发展,人性会被重新定义,只有一样是可以肯定的:为了生存,所有人都会不择手段。</p>记住这几个窍门带你迈入vim的门槛https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/Fri, 11 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AE%B0%E4%BD%8F%E8%BF%99%E5%87%A0%E4%B8%AA%E7%AA%8D%E9%97%A8%E5%B8%A6%E4%BD%A0%E8%BF%88%E5%85%A5vim%E7%9A%84%E9%97%A8%E6%A7%9B/<p>用vim已经有一段时间了,谈不上高手的级别,但总算是入门了,vim作为编辑器的王者,掌握之后带来的成就感无与伦比,但是其陡峭的学习曲线常常让人望而却步,下面,我来介绍几点心得,虽是入门级但是能为将来的熟练掌握打下基础。</p> +<p>1、不要再依赖菜单和工具条,虽然gvim提供了菜单和工具条,请不要再用他们,在配置里加上一行&quot;setguioptions-=mT&quot;,这样一来gvim的界面就干净多了,尽情的用快捷键吧。</p> +<p>2、不要再依赖方向键来移动光标了,熟记h、j、k、l分别对应左、下、上、右,并强迫自己使用,你会发现右手再也不用来回移动了。</p> +<p>3、切忌总在“插入”模式里待着,“插入”完成后立即按esc或ctrl+c推回到“默认”模式,因为在默认模式里才能发挥出vim各种“命令”的优势。</p> +<p>4、“o“命令是在当前行的下面插入一行并进入“插入”模式(大写的“O”是在当前行的上方插入)。</p> +<p>5、“dw”是删除一个单词,“dd”是删除一行。</p> +<p>6、将光标移动到某个单词上并按“*”键是对这个单词进行向后搜索,“#”是向前搜索。</p> +<p>7、“xp”是前后交换两个字符,“ddp”是上下交换两行。</p> +<p>8、“v”这个选择命令很管用,紧跟其后按“i(”是选中小括号内的内容,“a(”是连小括号一起选择(你可以尽情地举一反三)。</p> +<p>9、多看帮助。</p>最近比较忙https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/Thu, 10 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E8%BF%91%E6%AF%94%E8%BE%83%E5%BF%99/<p>09年已经接近尾声,琐碎的事情纷至沓来。</p> +<p>很多事情需要加班才能解决,睡眠质量严重下降。</p> +<p>我的博客又快荒废了。</p>忙里偷闲写博客https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/Tue, 08 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%99%E9%87%8C%E5%81%B7%E9%97%B2%E5%86%99%E5%8D%9A%E5%AE%A2/<p>刚写完了一篇文档,绞尽脑汁,换换脑子,上来唠叨两句。</p> +<p>这两天又尝试着使用evernote管理笔记,界面华丽,功能强劲,赏心悦目,就是太耗资源了。</p> +<p>勉强能在小笔记本上跑,输入中文的时候还吭哧吭哧的。本打算以后就直接在上面写日志,发了两篇测试,效果很不理想。</p> +<p>放弃。发现我的共享空间又不能访问了。</p>来来来,一起解决全球变暖的问题https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/Mon, 07 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9D%A5%E6%9D%A5%E6%9D%A5%E4%B8%80%E8%B5%B7%E8%A7%A3%E5%86%B3%E5%85%A8%E7%90%83%E5%8F%98%E6%9A%96%E7%9A%84%E9%97%AE%E9%A2%98/<p>来来来,一起解决全球变暖的问题来来来大家一起跳吧刚才在浏览科学松鼠会的网站,看到一个有趣的话题,假如地球上的所有人在同一时刻做同一件事情,会有什么样的后果?不过已经有喜爱恶搞的老外开始忽悠了。</p> +<p>故事说的是:</p> +<p>2006年有‘科学家’建议六十亿人在2006年7月20日11:39:13秒同时猛跳一次就能让地球轨道距离太阳远一些,这样就很好地解决了气候变暖的问题。</p> +<p>我初一看差点儿就相信了。www.evernote.com|Remember</p>testhttps://sbabybird.github.io/p/test/Sun, 06 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/test/<p>testMinim0www.evernote.com|Remembereverything|Signupforfree__________InformationfromESETNOD32Antivirus,versionofvirussignaturedatabase4663(20091205)__________ThemessagewascheckedbyESETNOD32Antivirus.http://www.eset.com</p>两个偏执狂的对话https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/Sun, 06 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%A4%E4%B8%AA%E5%81%8F%E6%89%A7%E7%8B%82%E7%9A%84%E5%AF%B9%E8%AF%9D/<p>qy:“优盘借我用一下,我要重装windows7”</p> +<p>我:“你现在的Windows7用的好好的为什么要重装?”</p> +<p>qy:“因为现在用的是RC版的,想装中文正式旗舰版”</p> +<p>我:“哦,了解”</p> +<p>qy:“有时候,虽然明知道现在的软件用着很好,但就是想装最新版的,不然心里就特别扭”</p> +<p>我:“我也是这样,我上周因为不能用firefox最新版把我的小笔记本重装了四次,还有就是我不能看见回收站里有东西”</p> +<p>qy(会心的笑):“对对对,我看见回收站已满的图标就浑身难受”</p> +<p>我:“我上次用别人的计算机,上去就把他的回收站清空了,结果那家伙用回收站来存放重要文件”</p> +<p>qy:“我用软件只喜欢去官方网站下载,然后自己动手破解,别人破的我不放心(信不过)”</p> +<p>我:“你知道别人会怎么说我们这种行为吗?”</p> +<p>qy:“怎么说?”</p> +<p>我:“神经病!”</p> +<p>qy(羞涩地笑):“。。。。。”</p>音量https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/Sat, 05 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9F%B3%E9%87%8F/<p>城里的房子太挤,隔音很差,楼上蹑手蹑脚走过一个人,楼下也能听的一清二楚(有点儿夸张)。</p> +<p>以前我有在家听音乐的习惯,那是在老家的时候,每到周末都把音响开到最大,一边听一边洗衣服,现在不能这样听了,因为那样会打扰到邻居,甚至有时候稍微把音量调的大一点儿都会觉得内心十分不安。</p> +<p>音量大了就会担心,小了就听着不爽,感觉白瞎了我那套音箱了。</p> +<p>想要随心所欲的开大音量听音乐,看来只能等住进别墅了,或者回乡下老家。</p>写博客https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/Fri, 04 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%8D%9A%E5%AE%A2/<p>不管有没有人看,几乎每天都要写一篇博客,一是为了换换脑子,二是为了留点儿记忆,当然最好能写一些有用的东西,而不是流水帐。</p> +<p>刚看了和菜头老师写的《像说话那样写博客》,深有同感。</p> +<p>又不是写作文或者写文档,干嘛要写那么多书面用语或者空话套话呢,就是随心所欲,嘴里想说啥,就写点儿啥,有点儿像自言自语。</p> +<p>内容当然不能太没劲,说一说今天吃了啥,去了几趟厕所等,写这些简直是浪费网络资源,不过也不是绝对的,据说有人坚持写了一年的博客,每一篇里面只记载了当天吃了什么饭,后来又有好事者根据博客内容统计出了该人的饮食习惯并列出了图表,这又另当别论了。</p> +<p>我自己给自己的博客定下了内容范围,首先绝对不会转载别人的内容,其次不会写与政治有关的话题(我只是不明真相而且沉默的大多数),然后也不会写工作中的事情。</p> +<p>如果算上刚才说的不能写当日的流水帐,就只剩下自己的爱好可以写一些了,比如音乐、电影(不是影评)、科技、编程、硬件等,偶尔也会写一些貌似小资文风的内容,不过也都是喝高了之后写的,过后看完两股战战几欲删除。</p>如何制作一个可以引导的优盘https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/Thu, 03 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%BC%95%E5%AF%BC%E7%9A%84%E4%BC%98%E7%9B%98/<p>这两天小笔记本出故障害我卷起袖子修了两个晚上,由于没有光驱,所以没少用到我的优盘,可是网上可下载系统盘一般都是iso文件,即光盘镜像刻录成光盘才可以引导机器启动,不过现在是21世纪了,几乎所有的主板都支持usb启动,所以没有光驱也无所谓了,只要手中有可引导光盘的iso文件就可以制作出一个可引导的优盘出来。</p> +<p>正所谓授之以鱼不如授之以渔,下面介绍一下制作可引导优盘的步骤,并非所有的引导盘都必须这么做,这仅是其中的一种方法,也最省事。</p> +<p>1、必备条件:运行Windowsxp系统的计算机一台,优盘一只。</p> +<p>2、去网上搜索并下载名叫“UltraISO&quot;的软件,试用版亦可。(该软件同时具有光盘刻录、iso制作、虚拟光驱的功能,真是居家旅行&hellip;&hellip;..)</p> +<p>3、可引导的光盘镜像文件(扩展名一般为iso)一只,比如ubuntu9.10-i386-livecd.iso,具体要什么iso取决于你要干的事情,如果这一句你弄不明白,那就别往下进行了。</p> +<p>4、把那只倒霉的优盘插入电脑。(记清楚他的盘符,如果你插入了多个优盘的话)。</p> +<p>4、启动UltraISO,在菜单里选择“文件”==》“打开”选中你的iso文件。确定。</p> +<p>5、在菜单里找到“启动”下面的“写入硬盘映像”并猛烈点击之。</p> +<p>6、现在弹出了一个新对话框,在名叫“选择硬盘驱动器”的那个下拉框中选择你刚才插入的那个优盘(如果就插入了一个,就不用于选了)。</p> +<p>7、在“写入方式”那个下拉框里选择“USB-HDD+”,除了这个选项还有“USB-ZIP”等选项,但是你选择USB-HDD+就可以了,因为这个格式的兼容性最好,实在不行再换其他的。</p> +<p>8、点击“写入按钮”并耐心等待。注意:优盘的内容会被清空。</p> +<p>9、等写完了就拔掉优盘尽情的去得瑟吧。</p>小e复活https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/Wed, 02 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8Fe%E5%A4%8D%E6%B4%BB/<p>周日手欠,将epc的系统改为ubuntu的remix版,损坏了ssd的mbr,后又恢复成xp,一天后出现ssd无法读取的错误,再也无法安装xp系统,本着死马当活马医的态度,我试了一下随机附带的恢复光盘(利用光盘烧录了一个可引导的u盘),竟然好使,现在系统又恢复到最初买回来时的状态了。但愿SSD没有坏。</p>程序员的自我修养https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/Tue, 01 Dec 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E8%87%AA%E6%88%91%E4%BF%AE%E5%85%BB/<p>上次逛当当的时候,忍不住买了一本书&ndash;《一个程序员的自我修养》(副标题为:链接、装载与库),当时我说,就冲这个书名,哪怕里面全是白纸我也要买这本书。</p> +<p>因为我是周星驰的影迷,《喜剧之王》在我心里一直是周星驰的巅峰之作(别跟我提《大话西游》,台词我比你记得还熟)。</p> +<p>影片里的周星驰作为一个“死跑龙套”的“演员”,一直拿着的一本书就是《演员的自我修养》,那是他的梦想。每个编码的程序员其实心里或多或少都有一些代码情结,手里头捧着一本关于程序的书,就好象捧着自己的梦想似的。</p> +<p>抛开书上面的不说,说一说我所认为作为一个程序员应该具备哪些修养:</p> +<p>1、对程序、编码的热爱。如果不热爱编程,技术再牛逼也只能是一个代码工人。</p> +<p>2、谦虚好学的态度。</p> +<p>早就听说就有文人相轻的说法,做文章的瞧不起做文章的,其实很多程序员也一样,不知天高地厚,眼高手低,整天拿编程语言比来比去,在他们眼里别的程序员都是傻逼。</p> +<p>这些人就算是某个领域的“高手”,也绝对谈不上是一个合格的程序员。</p> +<p>3、团队协作能力。</p> +<p>自古有一个诸葛亮抵不上三个臭皮匠的说法,这话说的虽然有些绝对,但是也有一定的道理,如果一个程序员不能很好的和队友交流、合作,哪怕有三头六臂也很难成为一个出色的程序员。</p> +<p>4、安静平和的心态。</p> +<p>浮躁、急躁是技术人员最忌讳的心态,这当然不是指火烧到眉毛了还懒的动弹,而是说遇到问题能够冷静的分析并作出准确的判断。</p> +<p>这一点上有些人真让我望尘莫及,后天可以锻炼,但我觉得天生的因素占很多。</p> +<p>5、自信。</p> +<p>鼻孔朝天也不好,但是没有自信更要命,总是不相信自己能够开发出成功的软件,或者怨天尤人以语言不通、国内环境为挡箭牌为自己开脱,这样永远也写不出像样的程序。就牢骚这么多吧,说起来永远比做起来轻松,以上观点纯属瞎掰,如有雷同,那实在是巧合。</p>TED,这里都是能给你带来思考的视频https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/Mon, 30 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/ted%E8%BF%99%E9%87%8C%E9%83%BD%E6%98%AF%E8%83%BD%E7%BB%99%E4%BD%A0%E5%B8%A6%E6%9D%A5%E6%80%9D%E8%80%83%E7%9A%84%E8%A7%86%E9%A2%91/<p>推荐一个视频网站,<a class="link" href="http://www.ted.com/" target="_blank" rel="noopener" +>TED</a>,因主要关注Technology, Entertainment, Design故得此名。我基本每周都要在上面看一段,里面的演讲精彩纷呈,就算是语言不通也能慢慢适应(很多经典视频有中文字幕)。</p> +<p>今天看的是这一段。这哥们儿的风琴弹的简直出神入化。</p> +<object width="446" height="326"> +<param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param> +<param name="allowFullScreen" value="true"></param> +<param name="wmode" value="transparent"></param> +<param name="bgColor" value="#ffffff"></param> +<param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/CameronCarpenter_2008P-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/CameronCarpenter-2008P.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=699&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=cameron_carpenter_improvs_on_the_organ;year=2008;theme=new_on_ted_com;theme=live_music;theme=the_creative_spark;theme=tales_of_invention;event=EG+2008;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"></param> +<embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/CameronCarpenter_2008P-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/CameronCarpenter-2008P.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=699&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=cameron_carpenter_improvs_on_the_organ;year=2008;theme=new_on_ted_com;theme=live_music;theme=the_creative_spark;theme=tales_of_invention;event=EG+2008;"></embed> +</object> +<p>PS:我的livespaces又不能访问了,不知道此篇能否发送成功。</p>冲动是魔鬼https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/Sun, 29 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B2%E5%8A%A8%E6%98%AF%E9%AD%94%E9%AC%BC/<p>本着没有困难制造困难也要上的精神,我以迅雷不及掩耳盗铃之势把epc的操作系统换成了ubuntunetbookremix9.10,因为好奇心的原因,或者是爱用最高版本的原因,我这次不但将可怜的小笔记本给格式化了,而且选择了最新出的文件系统&mdash;-Ext4!首先4G的那块SSD用来作为根分区“/”使用了Ext4,然后划出了256M的空间作为交换分区。</p> +<p>剩下那块16G的SSD也格式化成了Ext4,挂载点为“/home”,理论上来说这种分配应该是可以的了。</p> +<p>可是杯具就杯具在倒霉的Ext4上。</p> +<p>安装完毕,按照我的老毛病,立即上网更新系统,吭哧吭哧下载了半天,所有软件都更新为了最新版啦!结果第一次重启就让我大跌眼镜。</p> +<p>首先,由于某种原因,我直接在命令行输入了sudoshutdown-rnow来进行重启,还没有来及进入图形界面就告诉我说,“糟糕,/home无法挂载,可能文件系统损坏了,您需要进行手动检查”,好吧,去官方网站上一查,人家说这是个bug,需要先这样然后再那样blablablabla。我忍了,输入:fsck/dev/sdb1进行全面检查,磨烦了半天总算修复,等到进入了图形界面已经折腾了一头汗出来了。</p> +<p>然而大自然是残酷的,这个系统竟然让我每次重启都要修复文件系统,而且修复后奇慢无比,每次访问/home下的文件都会产生I/O错误,在控制台下满屏都是error的身影。</p> +<p>可怜的美好周末就这样被消耗掉了,本来准备收拾好笔记本就抱着去阳台写一写小程序啥的,看来在太阳下山之前是没戏了。</p>谈谈我对家庭影院的看法https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/Sat, 28 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%B0%88%E8%B0%88%E6%88%91%E5%AF%B9%E5%AE%B6%E5%BA%AD%E5%BD%B1%E9%99%A2%E7%9A%84%E7%9C%8B%E6%B3%95/<p>不知道其他人为什么喜欢电影,或者不喜欢。</p> +<p>反正我是十分喜欢,也许你说,是啊,美好的东西谁TM不喜欢?</p> +<p>错!首先,不必像装逼的小资那样扭捏地大谈电影的文艺味道或者表达了一种什么样的思想,也不用像有关部门那样无耻地对电影挑三拣四反复阉割,我喜欢电影是因为电影可以让人经历不同的人生。</p> +<p>等一等,我扯的有点儿远了,但是我要说的事儿是建立在以上基础之上的。</p> +<p>我刚才差点就要像马丁路德金那样说:“我有一个梦想”,但是这句话让我的胃稍有不适,喝口水,冲一冲酒劲儿。</p> +<p>好吧,我曾经有个梦想,那就是&mdash;家庭影院!</p> +<p>你会轻蔑地一笑:“多大点儿事儿,我还以为抢鸡蛋呢,原来是家庭影院啊,这有啥啊,整个大电视,搞两个音箱,往房间里面一摆,不就是了嘛”。</p> +<p>唉,俺也曾经这样以为,而且照做了,但真不是家庭影院。</p> +<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;注意,以下内容纯属瞎掰:&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;</p> +<p>真正的家庭影院有这么几个要求:</p> +<p>首先,必须要有一个巨幅的屏幕,液晶电视就甭想了,充其量也就一百寸吧?远远不够,至少要有两百寸以上的屏幕(就这比起电影院里两层楼高的银幕还是差很远),所以要用投影。</p> +<p>其次呢,要有高清晰度的投影机,市面上现在卖那些白菜价的1024×768的液晶投影就别看了,专业的投影机对亮度和对比度以及分辨率都有很高的要求,10万元(人民币)以内都没有特别符合要求的。</p> +<p>然后是音响系统,市场上鼓吹的5.1或者7.1系统都是白扯,不是说喇叭多了凑个数就行了,功率、灵敏度、解码方案这些都是有严格要求的,目前来说,家用的音响系统就算是通过THX认证的也鲜有达到影院级标准的。</p> +<p>就算以上这些设备全部买到,也得考虑放在哪儿以及如何摆放的问题,客厅肯定不行,东西太多太乱,那就得单独提供房间了,至少也得30平米(因为要放沙发),房间里要做好隔音、吸音处理,因为你肯定不想在看的正投入的时候让邻居们过来砸门。</p> +<p>假设这些都准备齐了,还是要注意片源的问题,兄弟!几十万的东西拿回家不会就是放录像带吧?</p> +<p>上一代DVD肯定不行,据说以前有发烧友自己在家弄电影放映机来放胶片,不过现在好了,有了蓝光DVD(一片儿顶过去五片儿),一部电影几十G的容量,1920或以上的清晰度,基本够用了。</p> +<p>所以看来,哪怕是一个看电影的梦想,也不是那么容易实现的哈。</p>兄弟们还是喜欢骑摩托https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/Fri, 27 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F%E4%BB%AC%E8%BF%98%E6%98%AF%E5%96%9C%E6%AC%A2%E9%AA%91%E6%91%A9%E6%89%98/<p>上次回老家休假,和家里的哥儿几个聚了一把,见了面无非就是聊天,喝酒,打台球,只是都已成熟许多,使劲儿咧嘴笑的话,也能看见皱纹了。</p> +<p>这些曾经睡在一个炕上的兄弟,据上次见面已经差不多两年了,有坐车来的,有开车来的,几个兄弟还是骑摩托过来的。</p> +<p>我问了一下,还是无牌照,无头盔,钻胡同躲交警,和从前一样。</p> +<p>于是我又犯骑车瘾,借着酒劲儿风驰电掣了一把。</p> +<p>十年前刚拥有摩托车的时候,我曾天真地以为,摩托车是我的最爱,给个奔驰都不换。</p> +<p>因为骑摩托可以到处转悠,可以使劲把油门拧到底,体验呼呼的风把眼泪刮出来的感觉,可以带着墨镜飞速穿过柏油路上被大豆秸杆掀起的土雾,可以让坐在后座上的姑娘不由自主地搂着我的腰。</p> +<p>那个时候,周末基本上都是和哥儿几个骑着车四处乱窜,再窄乡间小路也敢往里冲,吹着口哨把车扎在路边跳到河里去洗澡,有时下着大雨,淋的像个落汤鸡。</p> +<p>路上当然是飙来飙去,偶尔也被大人们骂句:“不要命了!”</p> +<p>如今,都已是拖家带口了,社会的磨练多少给了一些沧桑的感觉,脸上的笑容也失去了往日的纯真而增添了几分苦涩,只是,当他们跳上摩托车,冲我招一招手,伴着隆隆的声音脚下喷出一股股蓝烟,我的心仿佛又回到了那个时节。</p>推荐一个在线听广播站点https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/Thu, 26 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%9C%A8%E7%BA%BF%E5%90%AC%E5%B9%BF%E6%92%AD%E7%AB%99%E7%82%B9/<p>有睡前听相声或评书的习惯,有个人在旁边罗哩罗嗦没完是个很好的催眠剂,可以很快入睡,保证了充足的睡眠。MoRadio是一个很简洁干净的在线广播站点,界面清新漂亮,电台丰富,甚至可以在线听小说。</p> +<p>有了它我基本舍弃了“龙卷风网络收音机”。网址:http://www.moradio.cn/</p>准备买几本书https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/Wed, 25 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E4%B9%B0%E5%87%A0%E6%9C%AC%E4%B9%A6/<p>刚才二舅给我打电话,聊了一会儿天。</p> +<p>问我现在是否还看书,我说看,电子版的,在手机上也看,看的眼睛都快毁了。</p> +<p>很久没买书了,记得跟飞行鱼借来的《代码大全》差点儿垫了桌子。</p> +<p>接了这个电话,两个人谈了一阵子书,我又想看纸质的真书了,刚好他又给我推荐了两本,随即去当当把书定下。</p> +<p>选书的时候哦发现一个问题,计算机相关的书最贵,买三本畅销书的价格还比不了买一本忽悠你怎么编程的书贵。</p> +<p>不过还是难以抗拒诱惑,各买了两本。</p> +<p>《做单》这本书最近十分火,本来看名字和书评都不太和我的胃口,但是二舅极力推荐,所以拿下。</p> +<p>《我们台湾这些年》是王三表在他博客里提到的,所以拿下。</p> +<p>《深入理解计算机系统》据说是人家美国大学里的教材,图个新鲜,所以拿下。</p> +<p>《程序员的自我修养》就冲这个名字哪怕里面全是白纸也得拿下。</p>平行宇宙https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/Tue, 24 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99/<p>肯定有过这样的经历,有一样东西(通常是个小东西,电冰箱什么的不算)翻箱倒柜地找不到,过一段时间你突然发现这个东西出现在某个地方,而那个地方当时已被你掘地三尺了。</p> +<p>有人说这是眼睛欺骗了大脑,或者是大脑欺骗了眼睛,但我更相信另一个比较科幻的说法&mdash;-平行宇宙。</p> +<p>按照平行宇宙的说法,我们生活的宇宙不是唯一的宇宙,另外还有无数个和咱们的宇宙差不多的宇宙,无数个宇宙里自然就有无数个你我,每一个重大事件的发生都会导致当前的宇宙分裂出与之平行的另一个宇宙来,我没有瞎掰,科学家也是这么说的,不过我感觉他们是有点儿瞎掰。</p> +<p>刚才我翻箱倒柜也找不到我的吉他拨片了,我记得很清楚就在一个放有调音笛的小盒子里,打开一看没有,出去干点儿别的,再回来,发现果然在小盒子里。</p> +<p>所以我宁愿相信这个拨片刚才有一阵子进入了另一个宇宙。</p>塞班手机使用MailForExcange同步gmail实现pushmailhttps://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/Mon, 23 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A1%9E%E7%8F%AD%E6%89%8B%E6%9C%BA%E4%BD%BF%E7%94%A8mailforexcange%E5%90%8C%E6%AD%A5gmail%E5%AE%9E%E7%8E%B0pushmail/<p>从《越狱》火起来那年开始,pushmail这个概念随着黑莓手机的流行而泛滥成灾(什么?不知道什么是pushmail?请Google之,或者看这里。现在知道了吧,pushmail的好处就是及时。),就连中国移动也推出了自己的pushmail,当然了他们要收取“少量”的费用。</p> +<p>那么有没有免费的泥?</p> +<p>答案是肯定的,条件有三:</p> +<p>1、拥有一个gmail帐号。</p> +<p>2、拥有一部Nokia智能手机(最好是E系列)。</p> +<p>3、喜欢折腾。由于pushmail客户端不再向以前的email客户端那样需要过一段时间就去服务器查询是否有新邮件,这样既省钱又省流量,所以折腾一下还是值得的。</p> +<p>好吧,准备好手机,就到这里来下载MailForExcange吧。</p> +<p>http://www.google.com/mobile/products/sync.html#p=nokia_smart</p> +<p>下载完成后这里有使用说明</p> +<p>http://www.google.com/support/mobile/bin/answer.py?hl=en&amp;answer=147951</p> +<p>按照文档的说明,设置完毕之后就可以使用了。</p> +<p>补充两点:</p> +<p>1、不要选择同步“任务”,目前还不支持,如果选择了就会什么也同步不了。</p> +<p>2、不要选择同步“联系人”,否则会把你gmail里的联系人全部同步到手机上,如果不小心还可能会清空手机的电话本(慎用!)。</p> +<p>另:我有使用日程表的习惯,这也是偏执狂的一个表现,是GoogleCalendar重度使用者、Gmail的中度使用者,同时极度讨厌使用OutLook。</p> +<p>此MailForExcange还可以同步日程安排到手机,真是居家旅行杀人灭口之必备好软。</p>假如明天就是世界末日https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/Sun, 22 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E6%98%8E%E5%A4%A9%E5%B0%B1%E6%98%AF%E4%B8%96%E7%95%8C%E6%9C%AB%E6%97%A5/<p>1、今天排队看了《2012》,包括排队买票,排队进场,排队去厕所放水。</p> +<p>2、好的电影看完可以引起一些思考。</p> +<p>3、想起一句诗:假如明天就是世界末日,我今天仍然种我的苹果树。</p> +<p>4、就算是商业电影,里面也有一些政治隐喻,仁者见仁,淫者见淫。</p> +<p>5、人生短暂,活着真好,我决定请朋友们吃饭,今晚。</p> +<p>6、有可能的话,以后看电影尽量去影院看。</p>失望https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/Fri, 20 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%B1%E6%9C%9B/<p>昨天夜里,Google演示了他们推出的操作系统ChromeOS,据说是基于Linux的。</p> +<p>在此之前已有风生放出,比较适合上网本,我期待着能够用在我的epc(太弱了)上。</p> +<p>结果是,Google根本不允许在他的操作系统上安装任何本地软件,甚至不能自己安装在笔记本上,所有的数据均保存在Google的服务器上,意味着一旦失去网络就是废塑料一坨。</p> +<p>想一想咱们的网络环境,我还是洗洗睡吧。</p>床头的电磁波https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/Thu, 19 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%8A%E5%A4%B4%E7%9A%84%E7%94%B5%E7%A3%81%E6%B3%A2/<p>有相当长的时间,我的手机都是24小时开机的。</p> +<p>不过我有一个坏习惯,把手机放在枕边当闹钟,半夜醒来也好看时间。后来关于手机电磁波辐射的说法越来越多,导致我产生了一定的心理阴影,总感觉电磁波正在滋滋地穿过我的脑袋。</p> +<p>后来就到睡觉时就把闹钟关掉了,然后早晨再起来开机把闹铃叫醒。</p> +<p>不过现在用的手机支持关机闹铃,即使关机状态也可以很负责任地把我叫醒。</p> +<p>剩余的问题是,夜里醒来不太容易看时间,开手机太费劲,爬起来到客厅看时间又太远,有人出个馊主意说:起来“演奏”一会儿乐器,邻居们就会大声告诉我现在是什么时间了。</p> +<p>不过我觉得这个方法不太可取,万一他们的手机也关机了咋办。</p> +<p>想来想去,我还是觉得应该在床头放一个真正的闹钟,可以很方便看时间的那种,最好能发出幽幽地蓝光(不是绿光)。</p> +<p>刚才我发现了这个,感觉挺合适的,就是目前还买不到。</p> +<p>啧啧,可惜啊。</p>祝我生日快乐!https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/Wed, 18 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A5%9D%E6%88%91%E7%94%9F%E6%97%A5%E5%BF%AB%E4%B9%90/<p>一大早就收到家人发来的祝福短信,原来今天是我的生日。</p> +<p>逐个回复短信之后,我慢慢回想,掏出计算器算了算,哦是的,原来我已经二十八了。</p> +<p>他们说:“生日快乐!”,没错,快乐最重要,我想,和十年前的想法一样,到了今天我还是认为快乐最重要。</p> +<p>潜在的意思就是玩儿最重要,只不过十年前我玩儿起来是骑着摩托车约着一群怀疑人生的青少年去疯狂飚车,或者是跳到半腰深的河里去捉鱼,或者是带着漂亮的女生一起谈论理想(现在已是我的老婆)等等。</p> +<p>十年后的今天玩的仅是一些虚无缥缈的东西,比如曾经以为永远也学不会的编程现在用来吃饭,生活就是这样,玩玩电脑偶尔也被电脑玩玩。</p> +<p>仔细地想一想,岁月还真是不饶人哩,小时候的玩伴大都不再联系,老爸老妈的鬓角也渐渐染上了白霜,时间就这样一年年过去,不断地得到也不断地失去,唯一能保持不变的以许就是一颗追求快乐的心吧。</p> +<p>今天是我的生日,祝我生日快乐,也愿我的家人幸福快乐。</p>我觉得twitterhttps://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/Tue, 17 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E8%A7%89%E5%BE%97twitter/<p>问我为啥用twitter,因为我觉得上twitter比较有技术含量(嘿嘿,想起黎叔了)。</p> +<p>开个玩笑而已,其实是觉得twitter上的人尤其是中文twitter用户都比较有爱心和有责任心。</p> +<p>虽然也有愤怒激进的,但大部分都是能够较为冷静地看待问题的人。</p> +<p>用句流行的话来说,就是感觉twitter上的人都比较有爱。</p> +<p>再一点就是它“致命”的优点了,也是被反复提及的信息及时性,这实在是很让人暗爽的特点,每天早晨打开手机第一件事就是更新twitter,不用发愁会错过什么信息,而且都是第一手资料。</p> +<p>今天再次帮助一位不知道twitter是何物的朋友开通了twitter,本着送佛送到西的精神,一股脑儿帮他flow了几十个有意义的中文twitter,然后又帮装上手机客户端,由于众所周知的原因,我还得把代理地址给他设置好。</p> +<p>弄完之后,感觉自己像是一个传教士。</p>每日笑话https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/Mon, 16 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E6%97%A5%E7%AC%91%E8%AF%9D/<p>记得老婆怀孕的时候,为了保持其心情愉悦,我每天都要给她发送一条短信,均是时下最流行的笑话段子。</p> +<p>这些段子基本上来自于网上,有些比较长的我还得进行一定的删减,由于平时储备的段子较多,刚开始几天还源源不断,后来因为我的审查比较严格,比较俗气的段子不发,太露骨的荤段子不发,不经典不好笑的不发,导致连压箱底的段子都发给她了,有时候我甚至还得四处搜罗。</p> +<p>每天一条笑话,一直持续到孩子生下来,现在孩子白白胖胖非常可爱,我的笑话短信有很大的功劳。</p> +<p>再后来,由于工作实在是繁忙又加上自己存储的段子实在是不够用了,我才逐步取消“今日笑话”这项“业务”。</p> +<p>前两天老婆又跟我叫屈,说我太偏心了,孩子一生下来就收不到新段子了,向我申请重新开通“每日笑话”的业务。</p> +<p>很长时间没有发笑话,我的段子又储备的差不多了,经过深思熟虑之后,我决定今日起重新开通该业务。</p> +<p>另附今日笑话:儿子学习不好,被妈妈痛骂。儿子用哀怨的眼神看着爸爸说:“你为什么要娶她?”爸爸也用哀怨的眼神看着儿子说:“还不是因为你!”</p>到处蹭饭的周末https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/Sun, 15 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/<img src="https://sbabybird.github.io/p/%E5%88%B0%E5%A4%84%E8%B9%AD%E9%A5%AD%E7%9A%84%E5%91%A8%E6%9C%AB/20091115-776584.JPG" alt="Featured image of post 到处蹭饭的周末" /><p>此周末加班0.75天,在朋友家玩了1.25天。吃大餐若干,其中有朋友亲自下厨精心烹饪的海鲜。狂唱卡拉OK从民歌到通俗再到摇滚,直至嗓子嘶哑。三五个人又一起打了台球,期间发现我的球技属于遇强则强遇弱则更弱。</p> +<p>晚饭又在另一个朋友家中解决,亦丰盛无比,这两天真是太对得住我的胃了。</p>https://sbabybird.github.io/p/%E5%94%89/Fri, 13 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%94%89/<p>今天在回家的路上看见有人在twitter欢呼,因为这两天有人要来,所以Youtube、blogspot、picasa等网站都解封了。等到了家,立即打开电脑,把那些被封的网站挨个试了一遍,Mad,还和原来一样。看来,twitter确实是个制造谣言的好地方。</p>关于SSD硬盘https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/Thu, 12 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8Essd%E7%A1%AC%E7%9B%98/<p>昨天某同事出差,走到半路发现笔记本硬盘坏了,十分痛苦地发短信问我火车上有没有IBM的客服,我说,天将降大任与斯人也,必先苦其心志劳其筋骨,坏其硬盘。</p> +<p>此同事吐血半升后就杳无音讯了。</p> +<p>此事引发大家热烈地讨论起关于硬盘的话题(我们太残忍了),最后大家一致认为经常背着出差的笔记本其硬盘特别容易出毛病,颠簸导致。</p> +<p>有没有不怕振动的硬盘呢,答案是肯定的,那就是SSD,中文称“固态硬盘”,因没有磁盘盘片和磁头等机械装置,所以不怕振动,具体介绍如下(来自维基百科):</p> +<p>固态硬盘(SolidStateDisk、SolidStateDrive,簡稱SSD)是一种基于永久性存储器,例如闪存,或者非永久性存储器,例如同步动态随机存取存储器(SDRAM)的计算机外部存储设备。</p> +<p>固态硬盘用来在便携式计算机中代替常规硬盘。</p> +<p>虽然在固态硬盘中已经没有可以旋转的盘状机构,但是依照人们的命名习惯,这类存储器仍然被称为“硬盘”。去Google搜索一下“SSD”或者“固态硬盘”返回的文章里充满了赞美之词,什么随机读取速度别传统硬盘快啊,没有噪音啦,没有散热问题啦等等。</p> +<p>然后一致指出的缺点就是价格太贵。难道就没有别的缺点了?NO!我的epc用的就是SSD,抛开至今仍有争议的SSD寿命问题不说,我在使用中发现了一个很大的问题就是&mdash;-“磁盘碎片”,由于现在的文件系统(NTFS、FAT32)等都是针对以前的硬盘设计的,目前还没有一个针对SSD优化的文件系统(听说快出了),所以随着SSD里存储的文件越来越多,那么访问这个SSD上的文件将会越来越慢,尤其是写入,有时候会慢的无法忍受,我认为这个问题是目前SSD面临的最严重的问题,至于容量价格之类肯定不用担心。</p> +<p>今天的话题好像扯的有点儿远,不知道那位硬盘坏了的同事现在怎么样了。</p>你说你,要蹭网,用心良苦却成空https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/Wed, 11 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E8%AF%B4%E4%BD%A0%E8%A6%81%E8%B9%AD%E7%BD%91%E7%94%A8%E5%BF%83%E8%89%AF%E8%8B%A6%E5%8D%B4%E6%88%90%E7%A9%BA/<p>最近老多人都讨论破解无线网络来蹭网的问题,提到破解都挺鸡冻的。</p> +<p>其实wi-fi的破解早就出来了,不过遗憾的是破解并不彻底,只是破解了WEP加密而已,现在很多人的无线网络被蹭网,我的理解是,一部分人是自愿的(本着分享的精神或者另有企图),另一部分就是因为懒。</p> +<p>现在如果一个无线路由使用WEB加密的话,破解已经很简单,甚至傻瓜化了,国外已经有人做成live的Linux系统(因为破解程序是Linux版的)。</p> +<p>如何破解就不说了,谈谈怎样不被别人蹭网(我个人希望我的无线路由是不加密的,但是有些人蹭网还上BT就太过分了)。</p> +<p>1、进入无线路由器的设置页面(地址一般是http://192.168.1.1或者http://192.168.0.1),找到无线设置那一页。</p> +<p>2、设置加密方式为WPA-PSK或者WPA2-PSK,别选WEP了,上面已经写的很清楚了。把密码设置的复杂一些。</p> +<p>做到上一步已经基本安全,要想再安全一些还可以这样:</p> +<p>3、找到高级一些的无线设置选项,把SSID广播关掉,这样别人根本就扫描不到你的无线路由了,不过你所付出的代价就是自己上网的时候要手动输入接入点的SSID,自己记住即可。</p> +<p>要是还不放心的话还可以这样:</p> +<p>4、找到更高级的mac绑定设置,有些路由器不支持,也就是说仅允许指定的机器可以上网。</p> +<p>ps:路由器本身的访问密码也最好设置一下。</p> +<p>再ps:蹭别人的网也要小心,现在抓包的工具都很先进很傻瓜化,蹭别人的无线路由也就意味着隐私很难保障,随便吧。</p>兄弟https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/Tue, 10 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%84%E5%BC%9F/<p>今天心情比较郁闷,幸好有兄弟陪我喝喝小酒,打打台球。心情好多了。</p>期待https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/Mon, 09 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%9F%E5%BE%85/<p>上次一狠心,把epc上的系统更换为xp了,现在差不多又到了换系统的时候了,因为xp的毛病就是&mdash;越来越慢。</p> +<p>本来epc上带的那个基于debian定制的原装系统速度贼快,但是功能太弱了,三岁小孩用还行。</p> +<p>后来有好心人给整出来个eee-ubuntu,赶紧装上,发现他继承了ubuntu体态臃肿的优良传统,可怜的小e仅带了4G的系统盘,根本不够怎么折腾的,而且在安装最新版firefox时被我编译坏了glibc库,于是换成了xp。</p> +<p>今天发现以前的那个eee-ubuntu已经改名了,现在叫做EasyPaesy,都1.5了,不过仍然是基于ubuntu的定制,据说已经优化了不少,看得我都有些动心了。</p> +<p>官方网站上的介绍更是让我心动:下一个版本,也就是2.0的时候将直接基于debian定制,不在基于臃肿的ubuntu,而且将原生的带有epc的全部驱动程序。</p> +<p>哦夜!太期待了。</p>练习吉他的心得https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/Sun, 08 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%83%E4%B9%A0%E5%90%89%E4%BB%96%E7%9A%84%E5%BF%83%E5%BE%97/<p>最近几个月来,感觉思维有些迟钝,记忆力有所下降,用脑过度导致。</p> +<p>考虑到每天需要休息一下脑子和眼睛,为了远离屏幕,我决定每天晚上活动活动手指(虽然敲键盘也是活动手指,但那是机械性的),弹弹吉他,正好重拾练习吉他的计划。</p> +<p>几天之后,感觉“颇有长进”,遂记录心得如下:</p> +<p>1、不要怕打扰到邻居。</p> +<p>以前我弹琴的时候,心里总是有个阴影,总觉得邻居正在把耳朵贴在墙上偷听我弹琴,这样一来我就不好意思弹的太大声,不敢弹的太难听,可是又不会弹好听,每次都几乎是看着谱子在心中默念,这样的话就像哑巴英语似的永远也甭想弹好。</p> +<p>后来我干脆想,反正邻居养了狗,叫声也挺大,吵了我这么久我都不放在心上,我弹吉它吵他们也算是扯平了,再者说了,狗叫要难听多了。</p> +<p>2、不要在洗脚的时候练琴。</p> +<p>这是一个很不好的习惯,源自我对时间管理的偏执。</p> +<p>有段时间我觉得每天洗脚的这段时间被白白浪费了,我想,要是每次洗脚都认真看一篇文章的话我很快都能成为文学家了,可是我对文学没有兴趣,于是我选择了弹吉他。</p> +<p>而且养成洗脚要弹吉他的毛病,就连老家也专门放了一把琴,洗脚专用。</p> +<p>结果可想而知,我弹吉他的水平越来越臭。</p> +<p>3、认真练习音阶和节奏。</p> +<p>总算说到正经的了,音阶和节奏一直被我忽视,从来都是由着性子来,自负胸中有谱,想到哪里弹到哪里,不管琴弦按的对不对速度是否正确。</p> +<p>结果到现在我仍然不能完整的弹奏任何一支曲子。</p> +<p>现在每次我都认真练习十分钟的音阶并且开着电子琴用于矫正节奏,几天下来,感觉手指灵活了许多(当然是针对以前说的)。</p> +<p>4、弹自己喜欢的曲子并投入进去。</p> +<p>这个没什么可说的,只有自己喜欢的曲子才有可能投入进去,也只有投入进去才能觉得弹琴是很幸福的事情。</p> +<p>当然现在距离人琴合一的境界还差一些,也许再过个三五年,或者三五十年可以达到。</p>删除文件的定律https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/Fri, 06 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%BE%8B/<p>定律:上午删除的下午就会用到,而如果你不删除它们,永远也用不到。</p> +<p>前两天听到有人抱怨现在硬盘越来越大了,动辄好几百G甚至上T,这对于AV爱好者来说是个福音,但对于一个偏执狂来说简直是个灾难。</p> +<p>因为偏执狂要控制电脑里的一切,磁盘该如何分区,文件夹该如何命名,要建多深层次的文件夹结构都有详细的规划,比如音乐可按格式分为无损的和压缩的,按地域分可分为国内、欧美、日韩的,至于按流派分那就更头疼了,还有纯音乐等等,所以我有个偏执狂朋友甚至花费了将近一年的时间才慢慢把自己的那个叫做Music的文件夹整理完毕,真是一项系统工程。</p> +<p>我对磁盘文件的管理也有些偏执,首先一点是不能看见回收站里有东西(听说还有人听清空回收站的声音上瘾),所以删除任何文件的时候都是按住shift键直接删除,这些倒霉的文件连进入回收站里歇会儿的功夫都没有直接就被踢飞了。</p> +<p>我想说的是,这是一个很不好的习惯。</p> +<p>每当我清理磁盘上“没用的”文件之后,随着干净文件夹带来的快感而来的就是马上就需要用到刚才被删文件的痛苦。</p> +<p>一般来说,上午删除的下午就会用到,而如果你不删除它们,感觉永远也用不到,每天都在哪儿呆着看着真碍眼!</p> +<p>刚才就又经历了一次活生生的例子,昨天晚上在家呆着没事儿,就把我家用机上的东西都打扫了一下,卸载了很多软件,最大的失败就是把开发环境卸掉了,把相应的安装文件也删除了。</p> +<p>结果…………刚才被电话吵醒了,前方的同事有问题搞不定了,让我着实体验了一把手边没有开发环境(偏偏赶上不能使用远程桌面)来遥控搞定问题的艰辛。</p> +<p>好了,牢骚发完,睡觉!</p>四喜丸子https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/Thu, 05 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9B%E5%96%9C%E4%B8%B8%E5%AD%90/<p>今年暑假的时候,老爸过来视察我的工作,会谈始终在亲切友好的气氛下进行,双方就共同关注的话题交换了意见。</p> +<p>期间谈论到饮食问题时,老爸对我在北京是否按时吃饭深切关注,并表示:“一定要吃饱、吃好!身体好才能工作好,身体是革命的本钱嘛!”以上内容纯属虚构,真实场景是,老爸问我吃饭是否合乎口味,我说饭菜都还行,就是吃不到味道能赶上老家那边小镇上“福星酒家”做的四喜丸子,深表遗憾,老爸深表同情。</p> +<p>以上对话造成的直接后果是,我这次回老家休假连续吃了七天的“福星酒家”的四喜丸子(每顿都得挑着大拇哥说好吃),吃的我现在看见四喜丸子就饱了。</p>体重不足https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/Wed, 04 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%93%E9%87%8D%E4%B8%8D%E8%B6%B3/<p>体检结果下来了,我唯一的毛病是体重不足,这是我的老毛病了,多年来身体只有拉长,从来没有横向发展过。医生给的建议是:多进行身体锻炼。</p> +<p>我记得去年寒冬的时候我咬牙坚持跑了两个月的步,结果体重不升反降,后来人家都说跑步是减肥的良药,跑步被紧急叫停!</p> +<p>好吧,那还有什么锻炼身体的好项目?</p> +<p>篮球已半年多没打过了,也不好组织人打,台球太休闲,摔跤太枯燥,做俯卧撑又太危险了。</p> +<p>我觉得以后要是有条件的话,可以考虑改变一下工作模式,上午下地干活儿(耕地﹑施肥等),下午编程写文档,日出而作,日落而息,男耕女织,夜不闭户,多美好啊,肯定能胖!</p>一日不练手生https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/Tue, 03 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%97%A5%E4%B8%8D%E7%BB%83%E6%89%8B%E7%94%9F/<p>最近总写一些偏向界面应用的代码,对于文件操作,字符串操作这些东西都快忘了,以至于下午想写个处理文本的程序差点儿无从下手,虽说python什么的好是好,咱也不能丢了C啊。</p>https://sbabybird.github.io/p/%E6%9A%96/Mon, 02 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9A%96/<p>突然下了一场大雪,天气一下冷了。</p> +<p>换上最厚的被子,缩在被窝里看《生活大爆炸》。</p> +<p>我的eeepc性能够弱的,一边看视频,一边打几个字都卡壳。</p>开始使用windows7https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/Sun, 01 Nov 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8windows7/<p>单位机器上的xp已经装了2年了,昨天终于无法忍受越来越慢的速度(关键是office软件坏了,无法修复),决定重装系统,进来win7挺火,装一个试试看,RC版的,可以显示中文但界面为英文,无所谓了,先试用几天再说。希望能取代xp。</p>雨天https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/Fri, 30 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%A8%E5%A4%A9/<p>下了点儿小雨,天气突然转冷,走在街上都有些冻耳朵了。</p> +<p>想起孙燕姿的一首歌,忘记什么名字了,&quot;雨天,想起你的生日卡片,望着你的照片…&quot;,叫什么名字呢,旋律挺熟悉…</p>自言自语和语音信箱https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/Thu, 29 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E8%A8%80%E8%87%AA%E8%AF%AD%E5%92%8C%E8%AF%AD%E9%9F%B3%E4%BF%A1%E7%AE%B1/<p>经常在美剧和好莱坞大片里看到这样的情景,一个人对着自己的车或者某样心爱的东西感情丰富地谈话,比如&quot;干的不错!伙计&quot;,&quot;全靠你了!&quot;,&quot;今天天气挺好的,你说我该不该去看她?&quot;等等,就好像跟某人聊天一样。</p> +<p>不知道他们生活中是否也是这样,感觉怪怪的。老外有人做过统计,相当比例的人喜欢自言自语,并且认为这很正常。我想这是跟他们使用语音信箱有关。</p> +<p>据说使用语音信箱是他们的老习惯了,起源于上个世纪,打电话经常没人接,打电话者听到嘟的一声然后乖乖留言,并且对着话筒&quot;得不得得不得&quot;聊上半天。</p> +<p>也许时间长了就养成自言自语的习惯了吧。</p> +<p>某段时间我也对语音留言感兴趣,可惜国内没有该服务,后来有了,可是费用贵得离谱。</p> +<p>现在我使用智能手机了,装了个软件就一切搞定,在无人接听的时候软件也能帮我接电话了。</p> +<p>可惜咱们都没这个习惯,一旦知道对方没在听电话便立即失去说话的兴趣,匆匆挂断。</p> +<p>常常有人听到我的提示音之后以为我在调戏他而冲我发牢骚。</p> +<p>所以该软件装了这么久除了我的测试录音之外,并没有接到过真正有意义的留言。</p> +<p>今天我终于收到一段有意义的留言:&quot;靠!真受不了你!&quot;</p>开始练习https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/Wed, 28 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%A7%8B%E7%BB%83%E4%B9%A0/<p>我是一个没有恒心的人,需要恒心的事情我没有坚持下来的。</p> +<p>长跑﹑写字﹑外语﹑弹琴,等等这些都没有坚持下来,理由多种多样,太累了,没时间,没天分。</p> +<p>这些事情我常常去想,我要是能够从开始坚持到现在,那该多好?</p> +<p>前两天看了些关于时间管理方面的书,方法千变万化,工具五花八门,但核心思想只有一个&mdash;&mdash;有梦想,并且坚持下来。</p> +<p>没有什么能够一蹴而就的,我要慢慢练习。</p>回老家休了个假https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/Tue, 27 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9E%E8%80%81%E5%AE%B6%E4%BC%91%E4%BA%86%E4%B8%AA%E5%81%87/<p>回老家休了个假前两天回家休息了几天,和家人团聚的感觉就是好。</p> +<p>吃饭吃得香,顿顿都吃到撑。</p> +<p>睡觉也睡的十分踏实,一点儿也不失眠。</p> +<p>按照惯例和朋友们喝喝小酒,打打台球。</p> +<p>老家民风纯朴,空气清新,我简直是不想回来。</p>终于收到google wave的激活邀请!https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/Wed, 14 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E6%94%B6%E5%88%B0google-wave%E7%9A%84%E6%BF%80%E6%B4%BB%E9%82%80%E8%AF%B7/<p>终于收到googlewave的激活邀请!</p> +<p>在我苦苦等待几个月之后,就在今天下午,我终于收到了googlewave的激活邀请!赶紧点击进入,由于之前已经看过了很多关于它的报道与评测,所以对界面也没有什么新鲜感了,总体感觉还不错,由于周围的朋友只有我收到了邀请,联系人列表里还空空如也,所以目前只能随便耍耍,不能充分发挥wave的特长&mdash;&ndash;在线协作交流。</p> +<p>激活账户后,手里就有了8个邀请了,好珍贵啊,后来发现只是&quot;提名&quot;而非&quot;邀请&quot;,迅速发给好友&quot;飞行鱼&quot;一只,又给在twitter上的朋友们留了两只。</p> +<p>google这种靠邀请来刺激人好奇心的招数真是运用到了极致。</p>眼保健操https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/Tue, 13 Oct 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%BC%E4%BF%9D%E5%81%A5%E6%93%8D/<p>我引以为傲的视力下降了,由于长期盯住屏幕的缘故,导致了一百多度的近视,最近狂做眼保健操,发誓要看清我对面墙的贴纸上的字。不过不怎么有效,刚才我忍不住凑上去看了看,发现贴纸没了。</p>喝小酒https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/Wed, 30 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%96%9D%E5%B0%8F%E9%85%92/<p>为排解国庆假日加班的郁闷,今晚特与同事一起喝喝小酒。喝完后他们打牌,我作为牌盲,一旁观战。</p>难得糊涂https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/Tue, 29 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%9A%BE%E5%BE%97%E7%B3%8A%E6%B6%82/<p>难得糊涂啊难得糊涂,难就难在不知道该在什么时候糊涂,什么时候装糊涂。</p>排队https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/Mon, 28 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%92%E9%98%9F/<p>我这辈子最痛恨两件事儿,一个是排队,另一个还是排队。</p> +<p>可悲的是,排队是必须要面对的。取钱要排队,交费要排队,买票要排队,上车要排队,点儿背的时候上厕所也要排队。</p> +<p>排队的时候,心情是焦躁不安的,是望眼欲穿的,是忍不住想骂娘又不知该骂谁的。</p> +<p>这个时候唯一可以获得安慰的是你身后的队伍越来越长,而你前面的队伍越来越短。</p> +<p>可是,当队伍就像便秘的大肠那样久久不能蠕动时,当你的伸长了脖子恨不得直接伸到窗口撞墙时,你还是不能怎样,大家都一样。</p> +<p>以上是去银行排队有感,纯属发泄,如有雷同,那简直是巧合。</p>美好的一天https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/Sun, 27 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9/<p>尽管我经常比闹钟醒的还早,可是起床仍然依赖闹铃。</p> +<p>今天是星期天,由于国庆假期的原因,今天也要照常上班,可是我的手机有点儿小聪明,周末不闹。这下可好了,我终于睡了个自然醒,我在半梦半醒之中想明白今天要上班而且闹铃不会叫我时,我惊的一下子从床上跳了起来。</p> +<p>还是晚起了一个小时。洗脸刷牙堵车堵车堵车还堵车所以,迟到了,可是郁闷的事情还在后头。</p> +<p>我平时几乎不迟到,偏偏今天等我到公司的时候老总已经找了我一圈了,于是赶紧去报到,可是电梯坏了,于是爬楼梯,等我爬上十层楼梯,得到一个更加郁闷的消息:“假期要加班&hellip;&hellip;&quot;(此处窗外电闪雷鸣并伴有大风)。</p> +<p>如果不是爬楼梯爬的喘不上气,我肯定要仰天长啸十分钟。</p> +<p>可怜我辛苦买到的往返火车票啊,现在要退掉!</p> +<p>可怜我定好的假日计划啊,现在要取消!淡定,要淡定</p>秋天打雷吗https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/Sat, 26 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E6%89%93%E9%9B%B7%E5%90%97/<p>到网上搜搜“秋天打雷吗”,发现还真有人问这个问题,我来告诉你吧,答案是肯定的!</p> +<p>昨晚打了大半夜的雷,对于本来就有“周末睡眠障碍”的我来说真是雪上加霜,一道道闪电把窗帘的影子投在床上,好恐怖啊。之前我也以为秋天不会打雷,直到被巨大的声音惊醒的时候我还以为有敏感词搞敏感词被敏感词了呢,靠,最近因为敏感词要举办敏感词弄得的大家都紧张兮兮的。好吧,秋天会打雷,sowhat?</p>电脑知识https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/Fri, 25 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B5%E8%84%91%E7%9F%A5%E8%AF%86/<p>电脑知识今天在greader上看了一篇文章,说是掌握了这些电脑知识就可以怎样怎样,我一看,写的都是些windows系统的操作技巧,有些见过,有些极为偏门。</p> +<p>恩,有点儿意思,我就曾经错误的以为这些windows技巧就是电脑知识。</p> +<p>大学的时候,当老师喷着唾沫讲解进程调度时,我正在研究如何修改win98的启动画面,当别人抱着书学习数据结构的时候,我却把如何修改win98资源管理器的脚本使其可预览mp3文件的技巧视为珍宝。</p> +<p>可是这有个屁用,现谁还用这些玩意儿?</p> +<p>干活儿时搞不定问题了还得去翻书,那里面才称得上是真正的知识吧(也得看是什么书)。</p> +<p>嘿嘿,说规说,我还是迅速地把这篇&quot;知识&quot;文章收藏了。</p>什么是_什么是_https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/Thu, 24 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AF_%E4%BB%80%E4%B9%88%E6%98%AF_/<p>关于&quot;什么是&quot;在google.com里搜索任何带有&quot;什么是&quot;的关键字比如&quot;什么是手机&quot;,连接会立刻被&quot;重置&quot;,并在短时间内无法浏览任何网站,但是在google.cn不会这样,在百度也可以。但是后两个……我又没搜索什么不和谐的东西,干嘛扼杀俺的求知欲捏!</p>快捷键https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/Wed, 23 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%AB%E6%8D%B7%E9%94%AE/<p>快捷键说实话我真的很担心未来计算机会像某些专家鼓吹的那样,完全没有键盘,而是通过语音或者眼神和人进行交流。我觉得可以没有鼠标,但是不能没有键盘。</p> +<p>记得大学的时候,有一次我的显示器坏了,我只好凭记忆的感觉通过对键盘的操作来听歌﹑&quot;看&quot;电影等,大概过了一个星期,发现即使没有显示器也可以做很多事情,这件事儿让我对键盘产生了很严重的偏爱。</p> +<p>我喜欢去记各个程序的快捷键,不是故意去记的,而是下意识的。</p> +<p>无论是简单的快速搜索还是宏替换,再或者是复杂的组合按键我都烂熟于胸。</p> +<p>还有比较偏门的,比如xp关机时按shift会出现休眠按钮等。</p> +<p>所已我一想到快捷键脑子里就会飞过一片一片的写着按键的字符串,都是对各个软件的快捷操作,擦都擦不掉。能用键盘操作的还是用键盘吧,否则总会有一只手徘徊在键盘和鼠标之间(上网斗地主除外),长此以往手腕真会受不了。</p> +<p>所以,我特别喜欢的软件都是提供了强大的快捷键功能的,totalcommander方便的操作使人上瘾,gmail和greader里的快捷键让人中毒,vim咒语般的命令叫人忘记鼠标的存在。</p> +<p>就说这么多吧,快到家了。</p>体检https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/Tue, 22 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%93%E6%A3%80/<p>体检今天是每年一度的例行体检,一切正常。</p> +<p>各个零件都正常,医生们也都正常,还像往常那样懈怠。</p> +<p>耳鼻喉科的大夫是我见到的唯一一位比我还偏执的人,先是抱怨办公室被人换了,体检系统无法登录,然后又觉得鼠标放的不是地方,掘起屁股找了半天鼠标,然后发现台灯的线和条码扫描器的线缠绕在一起,全部解开后才满意地叫我坐过去,最后发现我的椅子摆的不正,让我像小学生上课那样坐好才行。</p> +<p>花了老半天收拾好之后,就草草看了两眼:&quot;下一个!&quot;。</p> +<p>ps:我的视力果然下跌了。</p>听歌的心情https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/Mon, 21 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E6%AD%8C%E7%9A%84%E5%BF%83%E6%83%85/<p>听歌的心情偶尔听了听朋友的mp3,发现是经典老歌大放送,最喜欢听老歌了,马上将其全部考走(没用剪切,不像某些考毛片的学生)。</p> +<p>有些歌相当长的时间没听过了,有些上次听的时候还在用盒带。</p> +<p>朋友向我抱怨说现在的随身听容量太大,选歌忒麻烦,跳来跳去跳不到心坎上。</p> +<p>我也有此感受,我平时干活儿时一般都开着foobar,列表里四五千首歌,几乎没有一首能耐着性子听完,于是我设置了全局热键,一边编码一边换歌,时间长了练就了只要听三秒钟前奏马上就听出是什么歌的本领,要是有此类比赛,我肯定能获奖。</p> +<p>为什么就没有耐心听完一首呢,为什么呢?</p> +<p>技术的前进加上人的浮躁!以前听磁带的时候,想跳下一曲得按快进,马达呼呼跑半天,既费时间又费电(那时买不起南孚),还不能保证刚好到下一曲(后来出的高级货具备自动检测的能力就另当别论了)。</p> +<p>那个时候我练出来的就是另一个本领了,用铅笔转磁带!</p> +<p>既省电又准确,所以我就经常一边听歌一边拿笔转另一盒磁带。</p> +<p>现在好了,想听什么直接在线就听了,遇见喜欢的直接就下载了,特别喜欢的就下载无损压缩的,再也不去逛碟店了。</p> +<p>然后在成千上万的曲目里跳来跳去。</p> +<p>可是,我听歌的心情那里去了?</p>还是说说吧https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/Sun, 20 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E8%AF%B4%E8%AF%B4%E5%90%A7/<p>尽管朋友们露出鄙夷的目光,《建国大业》这部片子,我今天还是去看了。</p> +<p>片子净长133分钟(据不可靠消息说本来长度可达4个小时),加上开头有20分钟左右的广告,让我坐了两个半小时吧。虽然开场之前大家都去放水了但影片结束后电影院的厕所还是堵了个水泄不通。</p> +<p>感受呢,还行。演员阵容不是一般的强大,演员的演技实力也不是一般的强大,所以单纯从电影的角度来说,感觉应该是一部很不错的电影,所有人都很卖力气。</p> +<p>但是感觉时间上还是有点儿赶,故事讲的很跳跃速度很快,明星们冒个泡亮一下,连个沙发板凳都还没抢,就进入下一个环节了。</p> +<p>看的时候总是想跟小时候看的那个《开国大典》来比对,《开国大典》看了n遍了,很多情节还是记忆犹新,比如吃面没带钱,解放军砍总统府的棋,登城楼时往上爬台阶的那个长镜头。</p> +<p>这个《建国大业》里面还是有些笑点的,安排的还算轻松,比如冯巩老抢不上发言,女代表让郭德纲改底片,许三多报告发现前面的地主大院不容易攻打请求炮火支援,结果葛优一看,发现这是到了德胜门(好像是德胜门,管它哩)。</p> +<p>最后,这部片子可看,其他人说了屁也不算,何必让别人的垃圾评论影响自己的观点哩。</p> +<p>ps:电影而已,外籍演员的片子你还少看了?</p>手机没电了https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/Sat, 19 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E6%B2%A1%E7%94%B5%E4%BA%86/<p>手机没电了本打算在路上写今天的博客,结果手机一个劲儿地提醒电量低。</p> +<p>我看看能不能发出此篇。</p> +<p>我的手机配了两块电池,一块是原装的,另一块也是原装的。</p> +<p>在轻度使用的情况下每块电池可以坚持一周左右,最近使用过度,连三天都很勉强。</p> +<p>本来我家里有座充,公司有旅行充,但是现在在路上,没电了。</p>吹吹灰https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/Fri, 18 Sep 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%B9%E5%90%B9%E7%81%B0/<p>吹吹灰我的博客三个多月没更新了,我估计上面已经开始结蜘蛛网了吧。</p> +<p>说是没时间更新显得太娇情了,不过确实是没时间。</p> +<p>这段时间以来一直在忙同一个项目,全部的身心都投入到上面去了,根本没有精力更新这里,连QQ﹑MSN等都一概不上了。</p> +<p>好在现在终于进入了一个新的阶段,我觉得也需要每天换换脑子,思考点儿别的东西,或许对工作质量有一屁股的促进作用。于是我又想到了写博客(为什么要说又呢),那就到这里吹吹灰尘吧,像往常一样,同时发送到livespace和blogspot。</p> +<p>说点儿啥呢?对了,我开始用twitter了,人的思想真是奇怪,在twitter没有被封掉之前一年多我就注册了,但是根本不用它,等到twitter被封了之后却又非常想在上面发发牢骚。</p> +<p>虽然不能正常登录,对于我等爱钻研爱学习的人到也增添了不少情趣。</p> +<p>这就像是和好不容易追的姑娘交往一样有意思(屁话)。</p> +<p>好吧我承认我不会像沉迷于google那样沉迷于twitter(什么你还有google瘾),至少不能耽误干活儿,我只是渐渐感到twitter才是最好的新闻来源(屁话)。</p> +<p>还有就是我在手机安装了gravity这个twitter客户端,这是个很容易让人中毒的软件,请不要误会,此毒既不是医学上的也不是计算机病毒。</p> +<p>先说这么多吧,经过这段时间的繁忙工作,我感觉我已经有了轻微的精神分裂迹象,看看上面的文字就能感受的到,好吧。</p>壁纸https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/Mon, 20 Jul 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A3%81%E7%BA%B8/<p>桌面壁纸有嘛用?</p> +<p>整天看到人乐此不疲地换来换去,唧唧歪歪,真是还躁。</p> +<p>我的桌面壁纸就是黑乎乎的一片,上面散落着几行咒语般的VI命令。</p> +<p>擦!误把这里当推特了</p>https://sbabybird.github.io/p/%E8%B5%B6/Sat, 13 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%B5%B6/<p>赶!回来的时候,用自动售票机买的票,这机器有点儿缺心眼,认为我是短跑高手,给了我一张5分钟后就发车的票,看完之后我马上汗就下来了,一溜小跑,要说还是天津人民素质高,不仅不在乎我夹塞进站还帮我查询检票口的号码,我一路狂奔到车上,还没站稳,车就开动了!</p>俺又要到天津出差啦https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/Fri, 12 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/<img src="https://sbabybird.github.io/p/%E4%BF%BA%E5%8F%88%E8%A6%81%E5%88%B0%E5%A4%A9%E6%B4%A5%E5%87%BA%E5%B7%AE%E5%95%A6/20090612.jpg" alt="Featured image of post 俺又要到天津出差啦" /><p>上次的津门半日游一点也不过瘾,这次估计再待半天。</p>恐怖的超市https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/Thu, 11 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%81%90%E6%80%96%E7%9A%84%E8%B6%85%E5%B8%82/<p>下班后去超市买东西,面对如此拥挤的人群,我感到大脑一片空白。</p>买了个U3https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/Wed, 10 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E4%BA%86%E4%B8%AAu3/<p>买了个U3鉴于东西放到网上太不安全,如果把资料整理到网上,比如说blog,说不定哪天就灰飞烟灭了(确切的说是被众所周知了),我觉得有必要将自己的知识管理系统转移到U盘上了。</p> +<p>现在U盘已经白菜价了,随便选了几款,最终选择了SanDisk的U3,因为附带了U3软件,所以据说可以将常用软件随身携带,还有安全保证。</p> +<p>可是这个U3软件我刚用了半天就把它卸载了,原因是:首先它不支持Linux,其次里面很多可移动的软件都是收费的,再次,对于禁用了自动播放功能的机器来说,操作是很麻烦的。</p> +<p>好了,我现在把它当普通盘来用了,准备在上面装个轻量级的Linux发行版,比如Puppy,然后再建个wiki,然后再慢慢把东西整上来。</p>看见了彩虹https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/Tue, 09 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E8%A7%81%E4%BA%86%E5%BD%A9%E8%99%B9/<p>第一次在北京看到了彩虹,手机拍的,不清楚。</p>还是难舍firefoxhttps://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/Fri, 05 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%98%AF%E9%9A%BE%E8%88%8Dfirefox/<p>用了两个月的GoogleChrome浏览器之后,现在我又换回Firefox了,虽然Chrome很快,启动很快、网页加载很快、js脚本飞快,但是还是无法替代我的Firefox。</p> +<p>首先就是在页面的渲染效果上chrome没有firefox好看,尤其是对于中文页面的渲染,再有就是firefox拥有无比强大的插件系统,与其说舍弃不了firefox倒不如说是舍不得那些插件,delicious、greasemonkey、tabmix、ubiquity等等都是绝世好插件,给我的浏览带来完美的体验。</p> +<p>chrome也是很好的浏览器,从刚发布时的粗糙简陋到现在的稳定、高效、人性化,进步非常快,记得chrome刚发布的时候我立即就安装了,也立即就卸载了,太简陋了(也许是简约)。</p> +<p>后来2.0的时候我又忍不住安装了,这次提高很多,渲染中文字体也比以前好看,速度飞快,于是我坚持用了两个月,期间忍受着没有delicious书签的痛苦。</p> +<p>现在我又换回到firefox了,虽然启动慢点儿,内存占用多点儿,可是用起来真是很可手,听说马上要出3.5了,拭目以待。</p>博客不能访问了https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/Wed, 03 Jun 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%9A%E5%AE%A2%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E4%BA%86/<p>我有两个同步更新的blog,一个在Google的blogspot,一个在微软的livespaces,blogspot不能访问很正常,可是从昨天开始,连放在livespaces的也不能访问了,真不知到抽的哪阵风。GFW,我叉你老叉的叉叉叉。</p>发型https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/Sun, 31 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%91%E5%9E%8B/<p>小时候的语文课里有一段对鲁迅先生头发的描述:&quot;头发约莫一寸长,显然好久没剪了,却一根一根精神抖擞地直竖着。&quot;</p> +<p>能留出这种发型来,光有好的洗发水是不够的,关键是发质,我的头发就是这样。</p> +<p>我的头发现在两寸长都有,虽然大部分都乖乖趴着,但是一觉醒来之后,总是有几小撮不合时宜地直竖着,任你嗻哩还是魔丝都无法把他们撂倒。</p> +<p>每天早晨洗漱完毕到梳头这一环节时总是想起刚才那段对鲁迅的描述,然后顶着翘得像刺猬般的发型去狂奔。</p>扛包https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/Sun, 31 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%9B%E5%8C%85/<p>媳妇带着孩子过来视察工作了,所谓兵马未动粮草先行,来之前先把小孩子用的东西打了个大包裹给寄了过来。</p> +<p>也不知是放假的原因还是快递公司的车没有动车组快,她们已经到两天了,我今天才收到包裹。一个很大的包裹,被快递公司在外面又包了一层蛇皮袋,然后又用透明胶带在外面缠了几圈,再加上一层土,看起来让我想到了民工兄弟。</p> +<p>就这大包,下班后我往肩上一扛,一股劳动者的优越感油然而生,用媳妇儿的话说,我要是手里再拿只山寨手机,然后把喇叭外放打开,播放一曲高亢的&quot;月亮之上&quot;,就完美了!</p> +<p>PS:我也是个民工,此篇没有鄙视我们民工的意思。</p>接站https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/Fri, 29 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A5%E7%AB%99/<p>第一次到火车站接人。</p> +<p>需要买站台票,售票员会要求凭火车票购买站台票,但是你说是来接人的,她就会毫不犹豫地卖给你站台票了,我感觉这是个漏洞。</p> +<p>到了站台才发现我来的实在是早了点儿,火车还有一个多小时才到站,接人的地方又不是候车室,别说椅子了,连个马扎都没有。</p> +<p>我干脆一屁股坐在了冰凉的地板上,怀着焦急的心情,等待火车的到来。</p>津门一日游https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/Wed, 27 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B4%A5%E9%97%A8%E4%B8%80%E6%97%A5%E6%B8%B8/<p>今天去天津出了一趟差。</p> +<p>感觉天津是个不错的地方,不愧是“上有天堂下有天津”(有这句话吗?)。</p> +<p>首先感受了一下中国最快的列车,时速达330的城际特快,椅子都没有坐热都已经到了天津站。</p> +<p>然后就听到了地道的天津方言,虽然是第一次到天津,但感觉很亲切,倍儿舒服。出租车司机话也很多,天南地北都挺能侃,和北京的出租司机有一拼。</p> +<p>下了车就奔公司分舵去了,那里的同事也十分热情,简单吃过饭,就去办公事。</p> +<p>然后就是打车去火车站,又是椅子没做热就到了北京。</p> +<p>所以,虽然是去了一趟天津,基本上也没啥感受,就是感觉那儿人挺不错,环境也不错,至少比北京强,还有就是感叹城际特快的速度,要是以后坐火车都像这样,那航空公司肯定要关张了。</p>无题https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/Tue, 26 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E9%A2%98/<p>朋友婚宴,多喝了三五杯。明日出差,一路顺风!</p>郁闷的紧急任务https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/Mon, 25 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%83%81%E9%97%B7%E7%9A%84%E7%B4%A7%E6%80%A5%E4%BB%BB%E5%8A%A1/<p>郁闷的紧急任务什么样的任务是令人郁闷的泥?</p> +<p>比如说,邻近下班的时候,老总紧急抠你,递给你一张小纸条,然后气喘吁吁的对你说:&quot;实在是安排不开了,你赶紧按照这个意思做个PPT,明天上午十点钟给客户演示一下。&quot;</p> +<p>你接过纸条一看,发现上面只有几行小字,比一条手机短信还短,更郁闷的是,上面的内容比较生辟,大家都没搞过的那种。</p> +<p>你长叹一声,心想,为什么总是等屎到了屁股门口才上茅房!</p> +<p>我今天就遇到了上述情况,多亏了Google的搜索和维基百科,我抽了三根烟才把PPT做完。</p>左撇子https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/Sat, 23 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%A6%E6%92%87%E5%AD%90/<p>作为一个天生的左撇子,我除了写字用右手之外,拿筷子,切菜,投篮,羽毛球,乒乓球,台球,包括用鼠标都是用左手。</p> +<p>其实最早的时候我连写字都是用左手的(右手只会扔板砖),只是后来被家长逼着换成了右手,这样直接导致的一个后果是,我的字写的很烂,除了自己的名字写的还勉强能看之外,其他汉字都写得潦草的像鸡挠一样。</p> +<p>平时也还有很多郁闷的事儿,比如我坐地铁,左手拿着卡在通道上一刷,嗒的一声,我正前方的门没开,左侧通道的门开了,还得蹬蹬蹬转过去。</p> +<p>为什么想起左撇子这件事儿呢,因为今天考试的时候需要拿起多年不用的笔来写一篇论文,论文写的烂不说,关键是字写得实在是不堪入目,想来想去除了怪我练字不够努力之外,也只能怪我当时没有坚持用左手写字了,只是,令人尴尬的是,我左手写的比右手写的还难看。</p>球雨https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/Thu, 21 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%83%E9%9B%A8/<p>早在去年的这个时候,我们就发过牢骚,只要是我们想打篮球的时候,必然要下雨。</p> +<p>今天再次证明了这一点。每次我们兴致勃勃地带好球衣,穿上球鞋,给篮球打满气,这一切收拾停当之后,刚刚还晴朗的天空突然就飘来朵朵乌云,半个时辰之内必有甘霖降落。</p> +<p>可是如果我们仅仅是说好了打球然后又因故取消的话,这场雨就不下了,可见,求雨还得心诚才行啊!</p>该不该qqhttps://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/Wed, 20 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%A5%E4%B8%8D%E8%AF%A5qq/<p>这两天我的系统特别慢,这归功于office,由于工作需要,最近我每天都需要打开大量的word文档,而这个时候我的机器就有些吃不消了,基本上打开个1m左右的文档大概需要一袋烟的功夫,这样的文件要是同时打开个4~5个,那我的机器就干不了别的了。</p> +<p>于是我就尽量减少并行运行的程序,并把占用大量内存的程序更换成占用少些的程序,比如把firefox换成了Googlechrome,后来我干脆把qq、msn统统关掉了,因为我发现根本没时间聊天。</p> +<p>但是问题就来了,以前我的qq是整天在线的,qq的状态就显示了我的工作状态,我妈每天都上qq看一看,有时是为了打牌,有时就仅仅是看看我在不在线,也不跟我聊天,看看就踏实。</p> +<p>我刚一个上午没上线就打电话问我,“什么情况?为什么qq不在线?”,我解释一番。</p> +<p>今天又有朋友发短信过来表示关心:“这几天上线这么少,有事儿吗?”看来,qq真的很重要</p>有意思的wolframalphahttps://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/Tue, 19 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84wolframalpha/<p>wolframalpha 上线了,据说是个Google杀手,而且是基于“语义”的搜索我试用了一下,感觉挺有意思,本来按照我的理解是搜索“黄河有多长”就能直接给出答案,可是人家目前还不支持中文,又听说他的数学能力不是一般的强,于是输入了一个一元二次方程y=2x^2+3x,竟然直接把函数曲线画出来了看了学生们以后做作业不用那么麻烦了</p>戴着耳机干活儿https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/Mon, 18 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%B4%E7%9D%80%E8%80%B3%E6%9C%BA%E5%B9%B2%E6%B4%BB%E5%84%BF/<p>我以前写代码的时候总是习惯戴着耳机写,代码的风格总是跟着音乐的风格,一会儿古典一会儿流行,要是哪天赶上一段二泉映月之类的,写出的代码立即就透露出点点的哀伤,就连变量的命名也变得婉转起来。</p> +<p>当然了,如果碰上不好的音乐,写出的代码总是bug特别多!所以我过一阵子就会清理一下硬盘上的mp3,把那些影响代码质量的音乐彻底删除,比如黑色星期天之类的。</p> +<p>总之,音乐就像是我的粮食,一天没听音乐就像是没吃饭似的。</p> +<p>不过,要是按刚才这句话的定义,我已经个把月没吃饭了,最近有个项目搞得我压力特别大,耳机也懒得戴了,每天就是挣扎在一堆文档中间。</p> +<p>前天吃饭时突然得到同事的点醒,才意识到我还得把耳机戴上,于是乎,今天的工作就十分顺利,事情也很流畅,我仿佛又找到突然间的自我了。</p>发现一款vim代码段补全的插件--snipMatehttps://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/Sun, 17 May 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AC%BEvim%E4%BB%A3%E7%A0%81%E6%AE%B5%E8%A1%A5%E5%85%A8%E7%9A%84%E6%8F%92%E4%BB%B6--snipmate/<p>作为一个工具狂人,我对Vim的喜爱是天生的。喜欢Vim的简单、高效、朴素、专业&hellip;。所以Vim成了我的主编辑器,无论是在Linux下还是XP下都能帮我高效地完成工作。(当然,Visual Studio才是我混饭吃的主要工具,不过这不是今天要说的重点)</p> +<p>对于使用Vim的人来说,大部分的工作是用Vim来编辑代码,这么一来代码的自动补全就很重要了。虽然使用SuperTab、C-Support等插件之后Vim的代码补全功能有了很大提高,但是离VS下面的VSAssistant还是有一定的距离的,比如对于代码块的补全就不是很方便。</p> +<p>今天我发现的这个叫做snipMate的插件很好的弥补了这一点。这个插件再次证明了Vim是无所不能的,也说明了聪明人要是懒起来真的可以很过分。</p> +<p>snipMate的下载地址:<a class="link" href="http://www.vim.org/scripts/script.php?script_id=2540" target="_blank" rel="noopener" +>http://www.vim.org/scripts/script.php?script_id=2540</a></p> +<p>下载解压到<code>vimfiles</code>目录即可,然后打开Vim,试着编辑一个C文件,比如<code>hello.c</code>,输入<code>main</code>然后按Tab键,你会发现代码变成了下面这样:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="k">const</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span> +</span></span><span class="line"><span class="cl"><span class="p">{</span> +</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span> +</span></span><span class="line"><span class="cl"><span class="p">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>先输入for再按Tab键:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">count</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="p">{</span> +</span></span><span class="line"><span class="cl"><span class="p">}</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>再按Tab键,光标还会自动跳跃到count、i、code上,以方便编写自己的代码。snipMate同样也有if、while、define等常用的片段补全。</p> +<p>当然了,snipMate是支持各种语言的补全的,比如Python、HTML、Java等等。</p> +<p>最后,最重要的,就是snipMate支持自定义补全,语法也很简单,通过编辑配置文件可以很方便地定义自己的自动片段补全。</p> +<p>再来一段演示视频,看完后就马上去下载安装吧!<a class="link" href="http://www.vimeo.com/3535418" target="_blank" rel="noopener" +>演示视频链接</a></p>关机倒计时ahk脚本https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/Wed, 22 Apr 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E6%9C%BA%E5%80%92%E8%AE%A1%E6%97%B6ahk%E8%84%9A%E6%9C%AC/<p>最近习惯在晚上听着音乐或相声、评书睡觉,但电脑总是忘记关,于是使用Windows的<code>shutdown -s -t</code>命令来进行倒计时关机,但是我还嫌这样麻烦,因为要按多次键,还要输入命令,于是就写了下面的AHK脚本,运行后只要按下Windows键 + S键即弹出一个输入框,输入3600即一个小时,到时候就自动关机啦。后来觉得有取消关机的可能,就加了一个判断,到时候点击取消的话,就放弃关机了。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-autohotkey" data-lang="autohotkey"><span class="line"><span class="cl"><span class="nl">#s::</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="nb">InputBox</span><span class="p">,</span> <span class="n">time</span><span class="p">,</span> <span class="err">关机倒计时</span><span class="p">,</span> <span class="err">请输入一个时间(单位是秒) +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="n">if</span> <span class="p">(</span><span class="n">time</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">loop</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">if</span> <span class="p">(</span><span class="nv">A_Index</span> <span class="o">&gt;</span> <span class="n">time</span><span class="p">)</span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">break</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">sleep</span><span class="p">,</span> <span class="mi">1000</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">count</span> <span class="o">:=</span> <span class="n">time</span> <span class="o">-</span> <span class="nv">A_Index</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">ToolTip</span><span class="p">,</span> <span class="err">剩余:</span><span class="nv">%count%</span><span class="err">秒关机 +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">ToolTip</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">MsgBox</span><span class="p">,</span> <span class="mi">33</span><span class="p">,</span> <span class="err">关机倒计时</span><span class="p">,</span> <span class="err">定时关机的时间到了,确定要关闭计算机吗? +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="se">`n`n</span><span class="err">此框</span><span class="mi">6</span><span class="err">秒内自动确定</span><span class="p">,</span> <span class="mi">6</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="n">IfMsgBoxCancel</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">MsgBox</span> <span class="err">取消了关机 +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">else</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">{</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="nb">Shutdown</span><span class="p">,</span> <span class="mi">9</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span> <span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="p">}</span><span class="err"> +</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="nb">return</span><span class="err"> +</span></span></span></code></pre></td></tr></table> +</div> +</div>原来如此https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/Wed, 15 Apr 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/<img src="https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E5%A6%82%E6%AD%A4/20090415.jpg" alt="Featured image of post 原来如此" /><p>同事传来一张图片,看了之后茅塞顿开,简直无法比喻了。</p>试用Google music的泡泡选歌功能https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/Sun, 29 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/<img src="https://sbabybird.github.io/p/%E8%AF%95%E7%94%A8google-music%E7%9A%84%E6%B3%A1%E6%B3%A1%E9%80%89%E6%AD%8C%E5%8A%9F%E8%83%BD/20090329.JPG" alt="Featured image of post 试用Google music的泡泡选歌功能" /><p>试用Googlemusic的泡泡选歌功能,可根据节奏和音色等属性选歌,最爽的是可以根据年代选歌。从我这张截图上可以看出我最爱听老歌。网址:http://www.google.cn/music/songscreener</p>if you want mehttps://sbabybird.github.io/p/if-you-want-me/Fri, 27 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/if-you-want-me/<img src="https://sbabybird.github.io/p/if-you-want-me/20090327.jpg" alt="Featured image of post if you want me" /><p>nan</p>就不说这是啥https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/Fri, 27 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%B1%E4%B8%8D%E8%AF%B4%E8%BF%99%E6%98%AF%E5%95%A5/<p>呵呵</p>我是怎样进行知识管理的https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/Thu, 26 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9B%E8%A1%8C%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E7%9A%84/<p>我有个很大的毛病,就是爱好学习,有很强的求知欲。</p> +<p>我觉得主要的原因是好奇心太强,尤其是对于技术方面,恨不得什么都能掌握,后来发现那是不可能的。</p> +<p>但是我还是很喜欢搜集各方面的知识资料,总以为以后有时间会用到。</p> +<p>开始时我喜欢胡乱放文件,一些技术指南、一些能力技巧、一些文档秘籍等等,这些东西有些是从网络上获取的,有的是自己亲自总结的,都是很值得收藏的玩意儿,我把这些看似有用的东西一股脑地扔进硬盘。</p> +<p>我的硬盘越来越满,想找的东西越来越难以从堆积的资料中翻出来。</p> +<p>直到有一天我发现如果一份资料在用到的时候找不到,那就等于没存,甚至还不如不存,困惑了一段时间后,通过网络搜索第一次知道了“个人知识管理”这个“东西”。tobecontinue</p>吃饼https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/Tue, 24 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%83%E9%A5%BC/<p>晚饭喝粥吃饼,就在离公司不远的粥铺。</p> +<p>这家的大麦粥很合我的口味,提供的主食里有一种面饼,拿辣椒、鸡蛋、面粉混在一起煎制而成,曰:尖椒饼。</p> +<p>吃起来绵软可口,十分鲜美,是我每次必点的主食。</p> +<p>美中不足就是份量太少,每次总被我三口两口吃完,于是我今天就一次点了两份,服务员好像很不解,瞪着眼睛有跟我确认两遍,然后转过身吐了吐舌头冲别服务员做了鬼脸。</p> +<p>她心想,没看出来,这家活这么瘦还这么能吃。</p> +<p>我心想,谁能吃啦?你们也不觉的害臊,这么少的东西也好意思端上来。</p> +<p>不过,我还是假装只吃了一张饼,那一份打包了在路上吃了…</p>重新启用工作日志https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/Mon, 23 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/<p>有几个月没认真写工作日志了,费劲搭建的trac平台也逐渐荒芜。</p> +<p>最近的工作效率一直不高,系统太慢,硬盘太乱,内存不足,桌面难看…狠了狠心还是没有重做系统,准备工作太多,要装得软件太多,到最后还是一样。</p> +<p>于是就本着磨刀不误砍柴工的精神,整理了一下文件夹,吹了吹trac平台的灰尘,开始好好写工作日志。</p> +<p>以后要坚持每天清理收件箱,每天早晨安排一天的事务,并注意每天回顾。</p> +<p>为了节省流量就写这么多吧…</p>如果可能的话,恢复跑步。https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/Wed, 18 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E6%9E%9C%E5%8F%AF%E8%83%BD%E7%9A%84%E8%AF%9D%E6%81%A2%E5%A4%8D%E8%B7%91%E6%AD%A5/<p>年前我连续两个月坚持晚上跑步,就是绕小区跑一圈,大概十分钟左右,后来天气太冷,就暂停了。</p> +<p>现在天气又暖和了,我想还是把跑步这个计划坚持下来吧,每晚跑一圈,对身体的效果也许不明显,就当是锻炼执行力了。</p>夕阳无限好https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/Mon, 16 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD/<p>夕阳无限好</p>笔筒https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/Sun, 15 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/<img src="https://sbabybird.github.io/p/%E7%AC%94%E7%AD%92/20090315.jpg" alt="Featured image of post 笔筒" /><p>笔筒,自动对焦拍摄。</p>五年来看到的最过瘾的一部电影https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/Sun, 15 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%94%E5%B9%B4%E6%9D%A5%E7%9C%8B%E5%88%B0%E7%9A%84%E6%9C%80%E8%BF%87%E7%98%BE%E7%9A%84%E4%B8%80%E9%83%A8%E7%94%B5%E5%BD%B1/<p>周末的下午,按照惯例,看片!看到了论坛上推荐的《飓风营救》原名(Taken),名字取的有点儿让我不太想看,但是无聊的很,还是看看吧。</p> +<p>结果这个故事真的引人入胜,一个为了女儿而退役的老特工,为了女儿营救女儿,几乎把巴黎闹翻了天,虽然有点儿英雄主义,但看得让人很过瘾。</p> +<p>等到看完了我才想起来查查这个影片的导演是谁,我靠!居然是吕克贝松(开头的字幕居然没注意到),啥话也不说了,此牛人没拍过一般的片。</p> +<p>剧中的主角为了营救女儿,几乎干掉了他遇到的每一个坏人,而且手段十分干净利落,甚至残忍,这恰恰是最过瘾的地方,比起以往此类电影,主角往往带着仁慈再次受伤而导致事情失败,让人唏嘘,但此片不然,对坏人,乃至对坏人的老婆&mdash;&mdash;貌似一个十分无辜的人,也毫不留情,这种做法,将一个父亲对自己女儿的爱,表达到了极致。</p> +<p>总结成一句话就是:为了女儿豁了老命什么也不顾了!</p>手机发图片测试https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/Sat, 14 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E5%9B%BE%E7%89%87%E6%B5%8B%E8%AF%95/<p>手机发图片测试</p>手机写博客测试https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/Sat, 14 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%86%99%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95/<p>手机写博客测试。</p>对googlereader中共享条目的看法https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/Thu, 12 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%AF%B9googlereader%E4%B8%AD%E5%85%B1%E4%BA%AB%E6%9D%A1%E7%9B%AE%E7%9A%84%E7%9C%8B%E6%B3%95/<p>googlereader用了快两年了,我认为它是目前最好的在线rss阅读器了。</p> +<p>自从greader推出好友分享的功能后,我的好友也加了不少,而且大家都把自己认为有价值的条目共享出来。</p> +<p>但目前有点不太令我满意的地方是&mdash;-重复的共享太多,就是说一条有意思的rss内容反复的被好友共享,即使我已经阅读过此条目,当我在点击进入朋友共享的条目时,如果有朋友共享了该条目,则greader会认为我未读过这条内容,于是就会出现同一条资源被反复阅读的情况。</p> +<p>我觉得greader最好再智能一些,即我读过的东西,哪怕有n个人又共享了n遍,也不要列入到我的未读列表里,这样才好。</p>今天遇到的问题,GPRMC与GPGGAhttps://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/Wed, 11 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98gprmc%E4%B8%8Egpgga/<p>我以前写过一个程序,在pda上通过读取gps模块的串口信息来实现坐标定位的功能。通常gps模块都会输出标准的GPRMC与GPGGA信息,所以程序一直运行正常。</p> +<p>今天突然遇到奇怪问题,同事说我的那个程序不好使了,虽然能够打开gps模块但是不能解析经纬度等信息。</p> +<p>这是一个国产的智能手机,自带的gps导航程序可以正常定位,但我的程序不行。</p> +<p>于是我把从串口得到的信息统统打印出来,仔细调试,发现该gps模块可以正常输出GPGGA格式的信息,但输出GPRMC格式的信息却不完整,而我那程序正是通过解析GPRMC的信息来实现坐标定位的,于是修改代码,放弃GPRMC信息,改为从GPGGA里读取坐标信息,程序正常。</p> +<p>但我还是没弄明白这个gps模块为什么会输出不正常的GPRMC信息。</p> +<p>头大。</p> +<p>另附GPRMC与GPGGA的解释GPGGA的百度百科解释GPRMC的百度百科解释</p>我的好忘性https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/Tue, 10 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A5%BD%E5%BF%98%E6%80%A7/<p>这次来京时,老婆大人托付的有点儿小事要办,帮家里的亲戚在北京买点儿药,冲剂类,应该就像板蓝根似的。</p> +<p>来之前,特地将药品的描述写了个纸条塞进我的口袋。</p> +<p>到了这边之后,进入工作状态后,立即将此事抛到了九霄云外了,直到老婆今日在qq上提醒我才想起。</p> +<p>后来经人提醒,药物无法邮寄,无论是平邮还是EMS均没戏,让我很是失望,不过还好,咨询快递公司后,人家说只要不是液体就行,而且感觉服务又比EMS好的,当然就用快递了。</p> +<p>靠,龌龊的EMS!额真鄙视你呀</p>坚持是最难的事情https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/Mon, 09 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84%E4%BA%8B%E6%83%85/<p>我的英语水平一直徘徊在“烂”与“那是相当的烂”之间,那是因为我的词汇量一直少的可怜,我也曾经心潮澎湃地背单词,甚至背字典,但都没有坚持下来,每每想起都非常懊悔,如果从我刚学英语那天就每天记住一个单词的话,现在至少记住5000个单词了,当然这是不可能的,因为我没有坚持下来。</p> +<p>学习其他东西也是这样,十年前就摸过吉他,而且能像模像样的弹一首单调的曲子,也是因为没有坚持练习,到现在还是那个水平。</p> +<p>年前一段时间,我心血来潮,准备每天晚上坚持跑步,但是仅仅跑了两个月,就在冬至那天被打败了,天太冷了,还是不能坚持。</p> +<p>一旦松懈下来,就再也不想继续了。</p> +<p>有相当一段时间,我以为每天写一篇博客实在是很轻松easy的事情,但是前一段时间工作一忙,还是没能坚持下来。</p> +<p>哪怕是一天在上面唠叨一句也懒的罗嗦。</p> +<p>现在,下班了,我想换换脑子,思考了半天,竟忍不住感叹一句:“做什么事情,最难的就是坚持!”</p>昨天洗了一下微波炉https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/Sun, 08 Mar 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%B4%97%E4%BA%86%E4%B8%80%E4%B8%8B%E5%BE%AE%E6%B3%A2%E7%82%89/<p>回老家温暖几天之后,我现在又恢复到一人吃一人住的状态了。</p> +<p>刚到北京就感冒了,先是鼻子消极怠工,然后是咽喉肿痛,再后来就咳嗽,直到昏昏欲睡,浑身酸痛。</p> +<p>昨天加了一天班,不想在外头吃了,就跑到超市买了一堆东西,想自己做着吃。</p> +<p>忽然想起来前几天上火车时老妈给我拿的煮鸡蛋,现在还都在冰箱里放着呢,只是不知还能不能吃,发短信请示老婆,问是否还能吃,批示曰:“浪费可耻,尽量吃掉!”我想也是,何况这可是纯天然的柴鸡蛋啊,在北京想吃还吃不到哩。</p> +<p>于是就把一个鸡蛋放到微波炉里,想热一下再吃,只怪我由于感冒引起的大脑短路,忘记给鸡蛋剥皮,在加热到15秒的时候就听到一声巨响,就像正月十五放烟花的那种响声,坏了!赶紧关掉微波炉的电源,打开一看,鸡蛋炸成了米粒那么大小碎片,均匀地分布在整个微波炉里。刚好,我早就想清理一下微波炉了,借此机会,清洗一下!</p>在python下调用gdal库来显示影像图https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/Thu, 19 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8python%E4%B8%8B%E8%B0%83%E7%94%A8gdal%E5%BA%93%E6%9D%A5%E6%98%BE%E7%A4%BA%E5%BD%B1%E5%83%8F%E5%9B%BE/<p>很久没有更新了,懒是一方面原因,另一方面是因为最近忙的没有心思写博客了。其实按理说,每天抽出一点时间来唠叨两句还是能够办到的,只是一旦停下来,再开始就更费尽了。随便整理一些东西发上来吧,又是关于技术的。</p> +<p>有一段时间我需要写程序来处理tif格式的影像图,在网上找来找去就发现了gdal这个好东西,可是在vc下调用它还是有些罗嗦,达不到快速调试的效果。于是前两天我又试着在python下调用gdal,把思路先用python实现一遍,调试通过了再用c++。下面是最简单的显示一幅tif影像图的python代码:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">pygame</span> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">osgeo</span> <span class="kn">import</span> <span class="n">gdal</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">init</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"><span class="n">screen</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">set_mode</span><span class="p">(</span><span class="n">WINSIZE</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">set_caption</span><span class="p">(</span><span class="s1">&#39;gdaltest&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">pygame</span><span class="o">.</span><span class="n">time</span><span class="o">.</span><span class="n">set_timer</span><span class="p">(</span><span class="n">USEREVENT</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">dataset</span> <span class="o">=</span> <span class="n">gdal</span><span class="o">.</span><span class="n">Open</span><span class="p">(</span><span class="s2">&#34;c:/test.tif&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">surface</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">Surface</span><span class="p">((</span><span class="n">WINWIDTH</span><span class="p">,</span> <span class="n">WINHEIGHT</span><span class="p">))</span> +</span></span><span class="line"><span class="cl"><span class="n">parr</span> <span class="o">=</span> <span class="n">dataset</span><span class="o">.</span><span class="n">ReadAsArray</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">WINWIDTH</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">WINHEIGHT</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="n">r</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">g</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">=</span> <span class="n">parr</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"><span class="n">img</span> <span class="o">=</span> <span class="n">pygame</span><span class="o">.</span><span class="n">PixelArray</span><span class="p">(</span><span class="n">surface</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">WINWIDTH</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">WINHEIGHT</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">img</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">],</span> <span class="n">g</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">])</span> +</span></span><span class="line"><span class="cl"><span class="n">show</span><span class="p">(</span><span class="n">img</span><span class="p">)</span> +</span></span></code></pre></td></tr></table> +</div> +</div>咦!https://sbabybird.github.io/p/%E5%92%A6/Wed, 04 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%92%A6/<p>最近一段时间都会比较忙、相当忙、非常忙,正常下班的时间已经被无情地调整到了晚上9点,请注意,我说的是下班时间,我可没说加班加到几点。</p>我回来了https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/Sun, 01 Feb 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9B%9E%E6%9D%A5%E4%BA%86/<p>真快,又开工了。</p>春节好!https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/Sun, 25 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E8%8A%82%E5%A5%BD/<p>牛年大吉!万事顺利!</p>什么也比不上家的温暖https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/Sat, 24 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E4%B9%9F%E6%AF%94%E4%B8%8D%E4%B8%8A%E5%AE%B6%E7%9A%84%E6%B8%A9%E6%9A%96/<p>好啦,历时十二个小时,经过无数次的转车,终于平安到家了。</p> +<p>带着一身的疲惫,当我走进家门的那一刻,所有的烦恼与苦难都在一霎那间烟消云散了。</p> +<p>管他是令人发指的票贩子,还是无处不在的小偷,是零下十几度的寒冷天气,还是把我折磨得筋疲力尽的客运系统,都通通给我一边去吧。</p> +<p>虽然屋里没有暖气,但是可口的饭菜,家人的欢笑,这一切都让我觉得比开着暖气的北京温暖多了!</p>一路顺风!https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/Thu, 22 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E8%B7%AF%E9%A1%BA%E9%A3%8E/<p>一路顺风!明天就到家啦。</p>过年的蜡烛https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/Wed, 21 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E8%9C%A1%E7%83%9B/<p>说说小时候过年的事情吧,那个时候我们村里还没有通电,平时晚上会点煤油灯来照明,过年的时候家家户户都要点蜡烛,俗称&quot;大蜡&quot;。</p> +<p>这可不是一般的蜡烛,而是非常巨大的一对蜡烛,差不多有两斤重,顶端粗壮,下端圆滑,底部有孔,上面通常写着非常有年味儿的对联,如&quot;一杯美酒敬天地,三柱清香谢神灵&quot;等字样,金色的字,红色的蜡闪闪发光。</p> +<p>这么大的蜡是不能直接放在桌子上点燃的,一般要有支撑蜡的架子,俗称&quot;蜡台子&quot;,现在的小朋友可能都没有见过蜡台,那是一个精致的木头架子,刷上红漆,中间有两根铁柱竖着用以把蜡烛插在上面,手巧的木匠会把蜡台做的颇具艺术感。</p> +<p>也有的人家直接把一个大萝卜切开两半,平着摆在桌子上,再插上两根筷子,也成了不错的蜡台。</p> +<p>大蜡会在大年初一那天四五更天的时候点燃,我过年一般起的很早(小孩子最爱过年了),起来之后洗漱完毕第一件事情就是点大蜡,大蜡的火苗很大,照的整个堂屋像白天一样明亮,也预示着大家在新的一年里红红火火,吉祥如意。</p> +<p>点大蜡、敬香、吃饺子,然后放鞭炮这个流程就是我对小时候过年的记忆。</p>最后的倒计时https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/Tue, 20 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E5%90%8E%E7%9A%84%E5%80%92%E8%AE%A1%E6%97%B6/<p>还有两天就回家了,身在北京,心早已飞到了家人的身边。 </p>看完了《叶问》,心情沉重地去洗澡了https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/Mon, 19 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E5%AE%8C%E4%BA%86%E5%8F%B6%E9%97%AE%E5%BF%83%E6%83%85%E6%B2%89%E9%87%8D%E5%9C%B0%E5%8E%BB%E6%B4%97%E6%BE%A1%E4%BA%86/<p>还是洗洗睡吧。</p>显卡驱动导致程序不能正常最大化窗口https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/Mon, 19 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/<img src="https://sbabybird.github.io/p/%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E5%AF%BC%E8%87%B4%E7%A8%8B%E5%BA%8F%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%9C%80%E5%A4%A7%E5%8C%96%E7%AA%97%E5%8F%A3/20090119.JPG" alt="Featured image of post 显卡驱动导致程序不能正常最大化窗口" /><p>这两天做了一个程序的demo,在台式机上十分运行正常,在笔记本上运行时,窗口就是不能最大化,最大化之后程序窗口只能显示一半,鼠标也拖不动它,因为windows认为你的窗口既然已经最大化了所以就不让你拖动了:)。</p> +<p>反复调试程序也找不到问题所在,最终才想到是显卡驱动的问题,于是我抱着试试看的态度(这个语气好熟)把Nvidia好心提供的附加程序&quot;desktop-Manager&quot;功能给禁用了,程序立即就好使了,窗口可以正常最大化了。</p> +<p>如图</p>没信心了https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/Sat, 17 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%B2%A1%E4%BF%A1%E5%BF%83%E4%BA%86/<p>前天在网上看了个视频,某人(其实就是rickwakeman)演奏了一段keyboard,看得让我心神激荡(地址在这儿),旋律速度极快,却也十分好听。</p> +<p>此人运指如飞,根本看不清是哪根手指在动,小手指摆动得就像蜻蜓的翅膀,好像就要发出嗡嗡声似的。</p> +<p>看完视频后我长叹一声,唉,咱这辈子也别想弹成这样了。</p>我的指纹https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/Fri, 16 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E6%8C%87%E7%BA%B9/<p>最近在做一个与指纹识别有关的项目,选了几家硬件。</p> +<p>我发现,无论吹嘘的多牛逼的识别硬件,对我的指纹都无可奈何,对我同事指纹的识别率基本达到百分百,却常常认不出我的指纹。</p> +<p>这样我调试程序的时候就很麻烦,常常需要同事的帮助,动不动就拿着硬件拉着一个同事的手说:&quot;麻烦帮个忙,手指头借我用一下&quot;。</p> +<p>没办法,我的指纹太浅,无论是光学识别器还是电容识别器都不能很好的识别,不知道这是否意味着我可以放心的去作案了?</p>我的垃圾,我的回忆https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/Thu, 15 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%9E%83%E5%9C%BE%E6%88%91%E7%9A%84%E5%9B%9E%E5%BF%86/<p>今天妈妈打来电话,说在家里整理房间,整理到我曾经的书房兼卧房,问我那一书柜的书还有一堆乱七八糟的东西该如何处理。</p> +<p>按照我爸的建议是,该清理的统统清理,免得占地方。</p> +<p>但我在电话里还是坚持要把我的那些东西全部保留下来,哪怕是小学课本也最好别扔掉。</p> +<p>我想到了我的&quot;百宝箱&quot;。</p> +<p>其实不加引号也行,虽然对别人来说那里装的都是垃圾,但对我来说那里装的绝对都是宝贝,十来年没碰过了,也记不起来装的都是有什么了,印象比较深的大概有几只拆开的电子表、闹钟,拆散的收录机配件,螺丝,铁丝儿,手电筒啥的。</p> +<p>在没有电动玩具玩耍的年代,这些都是我的玩具,而且一直陪伴我到了初中毕业。那时候,我每晚都被&quot;逼&quot;着看书写作业,累了的时候就拆个闹钟玩玩,或者随便接几个喇叭听音乐,一个人往往不知不觉玩到深夜而忘了睡觉。</p> +<p>我曾经幻想着把电子表改装成游戏机,很显然不能成功,不过我还是乐此不疲,所以我的百宝箱里大概有四五只拆毁的电子表,有语音报时的,还有公鸡打鸣的。</p> +<p>出来上学以后,这些东西就基本没动过了。</p> +<p>书,倒是偶尔还翻翻,那也是七八年前的事儿了。</p> +<p>这一柜子书基本没有名著,分类杂乱的很,童话故事与科普读物居多,里面甚至还夹杂着一些课后习题集、作文选刊之类的等很多根本算不上是书的东西。</p> +<p>当时信息不发达,我又被限制不能看太多电视(现在想想该庆幸才对),这些仅有的书都被我翻了又翻,看了又看,陪我度过了我的童年时光。</p> +<p>一个废纸箱,一柜子书,那个时候这些就是我的世界,正是这些造就了我自闭、偏执而又爱幻想的性格。</p> +<p>于是我对老妈说,还是别扔了吧,这些都是我美好的回忆啊,其实我还想接着说,说不定哪本书里还夹着我的情书呢,但是我妈已经把电话挂断了,她没时间听我啰嗦。</p>买到票了https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/Wed, 14 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B9%B0%E5%88%B0%E7%A5%A8%E4%BA%86/<p>如题,虽然给票贩子加了一百元钱,但也还是比坐飞机划算。</p>完美的社交关系https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/Tue, 13 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E7%A4%BE%E4%BA%A4%E5%85%B3%E7%B3%BB/<p>今天听到一句至理名言:&quot;作为一个中国人,最好认识一个票贩子,一个交警,一个主任医师,一个幼儿园老师,一个律师,一个记者,一个修电脑的。</p> +<p>&quot;对于我来说,除了最后一个,其他的我都不认识,因为最后一个就是我自己。</p>拔河https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/Mon, 12 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%8B%94%E6%B2%B3/<p>公司组织全体员工在北京某郊县(靠,好神秘啊)开了三天年会。</p> +<p>年会,就是大家忙了一年了,抽个时间在一起喝喝酒,放松放松,再顺便总结一下工作。</p> +<p>很显然,我对前者更感兴趣,这期间,我参加了一场拔河比赛,喝了几顿酒,飙了几首歌,甚至还进行了一次演讲。</p> +<p>感触最深的就是这场拔河比赛了,我们组从确定完人数之后就是公认的&quot;死亡之组&quot;,因为全是体格单薄的人,个个身材像根铅笔。</p> +<p>在赛前,我们一直担心我们组上去就被别人轻易拽过去,但是,当我们都抓住绳子,并且在此起彼伏的加油声中竭尽全力时,我才发现,我们其实不弱。</p> +<p>人是有巨大的潜力可挖掘的,我们的身子向后倾斜,快要倒在地上,双手使劲攥住绳子,手已经失去了知觉,也看不清跳起来喊着&quot;加油!&quot;的人的脸,那一刻我只知道的是,要把绳子拽过来。</p> +<p>最后,在僵持了将近一分钟后,我们终于感到绳子一轻,都倒在了地上。</p> +<p>虽然在接下来的两局里我们都败下阵来,但是虽败犹荣,我们僵持不下并最终胜利的那一局,被公认为在整场比赛中的最精彩的一局。</p> +<p>虽然第二天腰酸背疼,但是我会记住这次拔河比赛,以后也会把这事儿当作床边故事讲给孙子听,虽然最后可能告诉他,爷赢了!</p>https://sbabybird.github.io/p/%E7%BB%AD/Thu, 08 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%AD/<p>把ubuntu换成xp了,深度精简版的,速度比ubuntu快多了。</p>不好意思,小折腾了一把https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/Wed, 07 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E5%B0%8F%E6%8A%98%E8%85%BE%E4%BA%86%E4%B8%80%E6%8A%8A/<p>前一段时间我在eeepc上装了ubuntu,这个linux的发行版确实比asus自带的那个强大得多得多得多(继续),但是有个缺点&mdash;&mdash;慢。</p> +<p>为此我忍了很久了。</p> +<p>今天回到家,想装上一个最新的播放器软件,发现没有合适的安装包,于是就想,反正有源码,那就自己编译吧,于是,卷起袖子就开始了。</p> +<p>下载代码后,configure发现我的gtk太老,apt-get又不给我装gtk(说我已经有了最新版),于是我又要先把gtk的最新版编译好,但是问题又来了,gtk的编译依赖glib,于是我又要先把glib编译好,但是问题又来了,glib的编译又依赖另外的包,于是我耐着性子一个一个把这些包都编译完,make,makeinstall,手都酸了,然后再编译gtk,又告诉我没有atk、freetype、cairo、pango、pixman等等一大堆依赖包,</p> +<p>好吧,非编译出来不可!</p> +<p>全部下载这些东东的代码,一个一个make再makeinstall,终于可以编译gtk了,终于把gtk编译完了。发现我的Firefox却运行不起来了,Fuck!</p>四个第一次https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/Tue, 06 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9B%E4%B8%AA%E7%AC%AC%E4%B8%80%E6%AC%A1/<p>1、今日第一次在大街上掀开井盖钻了进去。(当然是经过许可的)</p> +<p>2、今日第一次进入电力隧道,&quot;初极狭,才通人&quot;,进去后发现地下真是豁然开朗,别有洞天。</p> +<p>3、今日第一次使用单反相机,一个字儿,&quot;沉!&quot;</p> +<p>4、今日第一次近距离接近数十万伏特高压的设备。</p>每个男孩都应该有一把吉他https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/Mon, 05 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/<img src="https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E7%94%B7%E5%AD%A9%E9%83%BD%E5%BA%94%E8%AF%A5%E6%9C%89%E4%B8%80%E6%8A%8A%E5%90%89%E4%BB%96/20090105.png" alt="Featured image of post 每个男孩都应该有一把吉他" /><p>昨天,飞行鱼一脸扭捏而又羞答答的对我说他终于没忍住,在元旦的时候买了把吉他。</p> +<p>这厮早就想买吉他了,但是这个想法多次被我扼杀在饭桌上,我以我的亲身经历,动之以情晓之以理地将他想买吉他的念头一再浇灭。</p> +<p>比如说我十年前就买过吉他,但是今天仍是连一首曲子都弹不全,比如说我曾经以为弹的不好是因为吉他不行,在我买了第二把好琴之后我才发现是自己的水平不行,说到动情之处声泪俱下,唏嘘不已。</p> +<p>但这厮还是买了,他说,他在听了卖琴的老板弹奏完一曲《加州旅馆》之后,就立即掏钱了,仿佛买回去的是那一曲《加州旅馆》。</p> +<p>不过自己回去连《加州招待所》都弹不出来,只能摆在那里当个装饰罢了。</p> +<p>那,买了琴,为什会感到羞涩捏?</p> +<p>因为我们早都过了&quot;男孩&quot;的年纪,早就错过了拿着吉他装逼的季节,只是心里总有个情节而已,你要知道,装逼被自己看穿了总是怪不好意思的吧。</p>总有些事情让你感到沮丧https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/Sun, 04 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%BB%E6%9C%89%E4%BA%9B%E4%BA%8B%E6%83%85%E8%AE%A9%E4%BD%A0%E6%84%9F%E5%88%B0%E6%B2%AE%E4%B8%A7/<p>今天看到一组新闻,里面总结了发生在2008年度的有趣而又真实的事件,其中有一条,我觉得非常真实:&quot;一个男人在暴风雪的芝加哥街头奋力铲雪一个小时,终于给自己的车清出了一个停车位。</p> +<p>当他把车开来时,发现一位女士已经抢了他的位置——可以理解,他朝她开了一枪,把她干掉了。</p> +<p>&quot;说实在的,对此男士,我表示十分的理解,我可以理解这个家伙能有多么的沮丧。</p> +<p>今天晚上去&quot;敦煌老马家&quot;吃面的时候,发现比我后到的客人都吃完了,而我的还没端上来时,我才发现原来做面的师傅把我这碗忘了,这个时候我有了和上面那个哥们儿一样的感觉,只是咱们国家不允许带枪而已。</p>有啥业务非得在银行办啊https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/Sat, 03 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E5%95%A5%E4%B8%9A%E5%8A%A1%E9%9D%9E%E5%BE%97%E5%9C%A8%E9%93%B6%E8%A1%8C%E5%8A%9E%E5%95%8A/<p>谁都不愿意排队,但是很不幸,这个世界上到处都要排队,上车要排队,看病要排队,买东西要排队,收钱要排队,交钱也要排队,如果哪天不巧的话,上公共厕所蹲个坑都得排队。</p> +<p>要说排队排的最厉害的,还是得数银行!前一阵子,股票特别火的时候,银行各个网点都是爆满,想去取个钱买个电啥的,基本上是上午拿号下午办,这还算是幸运的,如果赶上你的时候人家正好下班,那么,对不起,麻烦您明儿早点儿来。</p> +<p>最可气的是,在银行里办业务的人那个磨叽劲儿,我就纳了闷了,赶上我的时候,去取钱也好存钱也罢,绝对不会超过一分钟去(就算是取个十万八万的也顶多5分钟吧),可是往往有些人在窗口前,屁股往椅子上一挪就是十几二十分钟,难道你是去聊天去了,里面的柜员也贼磨叽,一会儿站起来拿点儿表格,一会儿和隔壁女孩聊中午吃什么。</p> +<p>我就是想不明白,那些在柜台动辄磨叽几十分钟的人,他们办理的都是什么业务?</p>以后不在电脑上玩游戏了https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/Fri, 02 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%A5%E5%90%8E%E4%B8%8D%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A%E7%8E%A9%E6%B8%B8%E6%88%8F%E4%BA%86/<p>昨天,一个哥们给我打电话说他的机器中病毒了,系统瘫痪了,光驱也坏了,让我去看看,顺便去他家里玩。</p> +<p>于是今天我就过去了,到那儿以后,这家伙已经买了新光驱回来了,还顺手买了个移动硬盘外加一个优盘(怎么想的?)。</p> +<p>于是俩人开始拆电脑、装光驱、装系统、装软件。</p> +<p>下午的时候,觉得有点儿无聊,这哥们儿突发奇想,决定出去转转,想买个游戏机耍耍。</p> +<p>于是我们又跑到他买光驱的电子市场,直奔电玩柜台,老板看到两个奔三的&quot;小伙子&quot;过来,开始都不太爱搭理,听到我们要买游戏机,就显的热情起来。</p> +<p>我们先后试了Xbox360和任天堂的wii,虽然xbox的画质很优美,但是最终还是决定买了任天堂的wii,日版原装套装外加一个原装手柄,一共两千三百块,老板看我们连价都没还一下(这哥们买东西跟我一样),主动送了20张游戏碟。</p> +<p>立即打车回去,接上电视就开始玩,一边玩还一边感叹:&quot;小日本设计的游戏机就是好玩!&quot;。</p> +<p>网球、保龄球玩起来跟真的一样,那个无线手柄绝真是个绝妙的设计,反映十分,游戏虽然画面稍微有点儿逊色,音质也比较一般,但整体来说,玩游戏的体验还是要比在pc上玩要爽的多。</p> +<p>可惜明天还得加班,否则今天肯定玩疯了。</p>第一天,提点儿希望https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/Thu, 01 Jan 2009 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%A4%A9%E6%8F%90%E7%82%B9%E5%84%BF%E5%B8%8C%E6%9C%9B/<p>今天是2009第一天,按照计划,我基本上在家宅了一天。</p> +<p>早晨起床后边洗热水澡边洗衣服,然后出去买菜,准备做我很久没吃到的牛肉饭。</p> +<p>等到七七八八收拾差不多的时候,也就上午十点多了,纲要休息会儿吃口饭,却发现手机里已经收了n多的新年短信,于是饭也顾不上吃,先把短信回复了再说,这几天移动又赚翻了。</p> +<p>然后就是上午下午各看一部电影,到了晚上去老杨家吃了顿饭,打了会儿牌,喝小酒喝得微醺。</p> +<p>总之,我的新年第一天,就是这么平凡地度过了,就像是一个普通的周末。晚上回到电脑前,向往博客里写点儿东西,又觉得脑子里空空的,本来还相对08年做个总结啥的,后来想想,实在是没什么好总结的,那就对09年提点儿希望吧。</p> +<p>想起我前两天列的一个09年的学习计划,这个计划十分贪婪,牵涉到各种技术和技能,感觉不是很靠谱,还是说一下大方向上的愿望吧。</p> +<p>我希望在2009年里,我能实现如下愿望。</p> +<p>1、英语水平飞速发展,可以正常阅读英文文档与小说(阅读能力要像看中文的《故事会》一样)。</p> +<p>2、体重增加到65公斤。</p> +<p>3、编程水平继续提高,主要在基础算法与数据结构方面。</p> +<p>4、掌握一种开源三维引擎。</p> +<p>5、vim的应用更上一个台阶,使vim彻底替代我机器上的编辑器。</p> +<p>6、能够用上3G。</p>再见2008,你好2009https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/Wed, 31 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/<img src="https://sbabybird.github.io/p/%E5%86%8D%E8%A7%812008%E4%BD%A0%E5%A5%BD2009/20081231.png" alt="Featured image of post 再见2008,你好2009" /><p>此处无声胜有声</p>blender练习https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/Mon, 29 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/<p>空酒杯一只</p>早场电影https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/Sun, 28 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E5%9C%BA%E7%94%B5%E5%BD%B1/<p>周末,睡了个懒觉,九点出去看了一场早场电影,一个人。本来以为早场电影人会很少,结果发现电影院门口居然还排了队,当然了,都是冲着冯小刚的《非诚勿扰》来的,对于这部电影,我没什么可点评的,只能说,值得看,比起以往的冯氏贺岁片,味道还没变,故事不错,讲的也不错。回来以后,又把《甲方乙方》翻出来看一遍。</p>livespace 真难用https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/Fri, 26 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/livespace-%E7%9C%9F%E9%9A%BE%E7%94%A8/<p>同样是使用电子邮件发布的一篇博客,发布到blogger的效果比法在livespace里的效果要好,昨天发了一张图片,blogger那边简直是又好又快,显示的还是原始大小,到了msnspace这边,给我整成了一个只有指甲盖大小的缩略图!您要问为什么放着好好的blogger不用,反而还在这贱兮兮的说livespace的坏话?</p> +<p>答案是,中国大陆无法正常使用blogger的服务,为什么不能正常使用呢?</p> +<p>答案不是因为人家歧视咱,而是@#¥%@#¥%@#¥%。</p>Blender练习https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/Thu, 25 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/blender%E7%BB%83%E4%B9%A0/<p>无聊,用blender作图一副,练习。</p>简讯https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/Thu, 25 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%80%E8%AE%AF/<p>昨日,也就是平安夜,一年N度的节日会餐,在老居家隆重举行,出席宴会的有,大宝夫妇,小江夫妇,老杨夫妇及其儿子,会餐在亲切友好的气氛下进行,大家就共同关心的话题交换了意见,纷纷表示,鱼炖的不错,汤的味道更美!&mdash;&mdash;路边社记者&quot;从容地狂奔&quot;在现场吃饱后发回的报道。</p>跑步指数零颗星https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/Tue, 23 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B0%E9%9B%B6%E9%A2%97%E6%98%9F/<p>前天,就是冬至那天,据说是n年以来最冷的冬至,冷就不用多说了,反正实在是不能出去跑步了,我还是先将跑步停一停,等跑步指数上升到两颗星时再开始跑。</p>串台https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/Mon, 22 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%B2%E5%8F%B0/<p>我每天大概有2个小时呆在公交车上,与拥挤的地铁相比,我坐的这趟车还算宽松,车上装有移动电视,每天循环播放着垃圾节目,让你在忍受堵车又堵心的同时也备受垃圾广告的煎熬。</p> +<p>最近两天,节目质量有所好转,有时甚至能听到一两首老歌,不禁让人陷入回忆,有时甚至想跟着哼唱两声。</p> +<p>可是很快我就又发现了新问题,那就是,电视的声音总是被公交报站的声音打断,听起来有时让人如鲠在喉有时又忍俊不禁。</p> +<p>比如吧,潘美辰在屏幕上正抱着话筒深情款款滴唱着:&quot;我想要有个家,一个不需要多大的地方~~~&quot;突然潘美辰变身成一个大嗓门的售票员,&quot;龙花园到了,下车请出示车票,youarearrivinginlonghuayuan。。。。。</p> +<p>&quot;罗哩罗嗦老半天直到歌曲唱完,在或者伍思凯刚唱完一句:&quot;没有承诺,却被你抓得更紧~~~&quot;然后紧接着就说:&quot;车辆起步,请抓稳扶好,刚上车的乘客请往里走,前方到站是叉叉叉&quot;。</p>突然的自我https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/Sun, 21 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91/<p>今天是二十四节气里的冬至,天气突然变得冷酷起来,冷得令人失去意识,我从来没有像今天这样觉得暖气片如此可爱,以至于我抱着它&quot;亲热&quot;了半天。</p> +<p>按照惯例,冬至要吃饺子,可是我一个人,既不想吃速冻的,又不想在家自己做,所以,晚饭我就准备出去吃了。</p> +<p>外面的天气比我想象的要冷的多得多,尤其是北风,吹得我站都站不稳,风不断从袖口、领口里钻进来,有一段时间我根本无法呼吸。</p> +<p>出了小区东门,过马路,看见一个热气腾腾的小菜馆,隐约能看见牌子上写有&quot;水饺&quot;字样,二话不说,撩起帘子钻了进去。</p> +<p>在这儿住了这么久,第一次发现这儿还有个饭馆,店面很小,门口是个涮麻辣烫的锅,几个贪吃的家伙正稀里哗啦地吃着麻辣烫,里面一共四张小桌子,铺着桌布,收拾得很干净,墙壁上挂了几串红辣椒,最里面是个小柜台,老板娘正低着头算账。</p> +<p>打过招呼,做了下来,&quot;您整点儿啥?&quot;听了老板的口音,我才发现这是东北小两口开的店,顿时觉得亲切起来,感觉这儿就像是《东北一家人》里面的&quot;达达杀猪菜&quot;(实际上这儿还真有杀猪菜)。</p> +<p>&quot;有水饺吗?&quot;我问他,&quot;有,猪肉大葱、猪肉酸菜&hellip;&quot;,&quot;要猪肉酸菜的吧&quot;我说。</p> +<p>&quot;要多少?&quot;他又接着问&quot;像您这个头的怎么着也得一斤吧?&quot;,呵呵,我哪能吃得完一斤啊,为了不浪费粮食,我还是只要了半斤。</p> +<p>热气腾腾的饺子很快就端了上来,为了驱赶身上的严寒,我又要了一瓶二锅头(二两装),实际上,是这个馆子的氛围让我想喝两口,不知道为什么,看着忙碌的老板和老板娘,看着吃麻辣串的情侣,我抿了两口醇香的二锅头,眯起眼睛,突然感觉人生又美好起来&hellip;&hellip;</p>找到一个不错的游戏https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/Sat, 20 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%94%99%E7%9A%84%E6%B8%B8%E6%88%8F/<p>这儿http://www.appinn.com/Frets-On-Fire-Portable/,是一个好玩儿的吉他游戏,可以让我这个吉他弹的很烂的人过过干瘾。</p> +<p>ps:今天跑步指数2星★★☆☆☆</p>周末大堵车。https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/Fri, 19 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%91%A8%E6%9C%AB%E5%A4%A7%E5%A0%B5%E8%BD%A6/<p>从吃完饭到现在就一直坐在车上,俩小时了,还堵在路上。</p>跑步指数1颗星https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/Thu, 18 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%8C%87%E6%95%B01%E9%A2%97%E6%98%9F/<p>好像最近我的博客里只剩下我每天在唠叨天气了,没办法,劳累了一天的脑子实在是没有力气在攒出一篇上千字的文章了。</p> +<p>今天的跑步指数是一颗星,极不适合跑步(满分五星),天气寒冷,空气污浊,空气中弥漫着烧烤的味道,实际上是天然气取暖燃烧的烟雾。</p> +<p>我还是出去跑了一圈,权当是为了锻炼自己的执行力。</p>在家办公https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/Wed, 17 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E5%AE%B6%E5%8A%9E%E5%85%AC/<p>像我这样的好员工真是打着灯笼也不好找啊,刚刚完成了一份公司安排的ppt,啊~呵(打个哈欠)。</p> +<p>今天果然降温了,跑步的时候明显感觉到了寒冷。</p> +<p>回来后,我把家里的窗户打开来换了换空气,才几分钟的时间,室内温度就从19度降低到了15度!</p>休息https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/Tue, 16 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%91%E6%81%AF/<p>无论有没有外界的压力,总是不能放松自己,下班回家后看个电影都觉的在浪费生命,其实是走进了生命的误区而已。</p> +<p>我们总是不相信自己的感觉,一会儿别人说&quot;要活在当下&quot;,有点儿今朝有酒今朝醉的意思,可是又有人蹦出来说,&quot;四十岁前就别提享受&quot;,我TM到底该信谁的?</p> +<p>忒难为我了。</p> +<p>算了,不想发牢骚了,博客从来都不是一个可以倾诉的地方。</p> +<p>我想说的意思是,这个世界上充斥着各种声音,不时有&quot;专家&quot;跳出来唧唧歪歪,又或者有&quot;过来人&quot;大谈经验感受,</p> +<p>其实,每个人都有每个人自己的王国,在这个王国里,自己就是国王,好好当好自己的国王就行了,不用管别人的看法,</p> +<p>我太累了,只想好好休息。</p>费了不少脑细胞https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/Mon, 15 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B4%B9%E4%BA%86%E4%B8%8D%E5%B0%91%E8%84%91%E7%BB%86%E8%83%9E/<p>今天大脑超负荷运转,下午连续工作五个小时没休息,一直在思考一个程序上的问题,最后终于解决了。</p> +<p>终于把一个老程序的数据库引擎从恶心的access换成了可爱的sqlite了。</p>完美的星期天https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/Sun, 14 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%8C%E7%BE%8E%E7%9A%84%E6%98%9F%E6%9C%9F%E5%A4%A9/<p>早上六点蒙蒙胧胧醒来,看了一眼时间又昏睡过去,再睁开眼已经九点半了,起来洗漱完毕刚要做饭,接到老杨电话,需要火速出去办点儿公事。</p> +<p>好吧,早饭成了一杯麦当劳里的咖啡。</p> +<p>办完事回来已是中午,在老杨家喝了一点儿小酒,喝的微醺,毕竟六十七度的&quot;老白干&quot;不是浪得虚名。</p> +<p>吃完饭就顺势去了老居家里,约了大宝来打牌,大宝二话不说提着新买的麻将牌一路小跑就过来了。</p> +<p>就这样,在午后洒满温暖阳光的客厅里,我们忙里偷闲,搓了一下午的麻将。</p>又要降温https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/Sat, 13 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%88%E8%A6%81%E9%99%8D%E6%B8%A9/<p>据一向不靠谱的天气预报说,最近又有大风降温天气,明天就席卷而来了,但愿不会影响我的跑步计划。</p>白瞎了这么好的月亮https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/Fri, 12 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%99%BD%E7%9E%8E%E4%BA%86%E8%BF%99%E4%B9%88%E5%A5%BD%E7%9A%84%E6%9C%88%E4%BA%AE/<p>今夜星光灿烂,今晚月色撩人,据传闻今晚月亮正好处在与地球相聚最近的位置,所以应该开起来特别的大。</p> +<p>刚刚跑步的时候,证实了这一说法,月亮果然又大又圆,感觉就在我家楼顶上似的,我忍不住跑回去拿出相机来拍照。</p> +<p>结果是让人失望的,我的相机既没有三脚架,也没有好镜头,再搭上我这个糟糕的摄影师,真是白瞎了这么好的月光了,我在寒风中冻得瑟瑟发抖,鼻涕都快滴到液晶屏幕上了,照片要么漆黑一片,要么抖得天上到处是月亮,唉!</p>冒个泡https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/Thu, 11 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%92%E4%B8%AA%E6%B3%A1/<p>看来我就是把livespaces当微博了,每次都懒得多打几个字。</p> +<p>原因来自各个方面,尤其工作压力,每天徘徊在办公室的椅子和卧室的大床直接,两点一线的生活使我很难再提起兴致在博客里扯闲篇。</p> +<p>今天仍然顶着严寒跑步,空气不是很好,跑步系数为1★☆☆☆☆不适合跑步。</p>跑步继续!!!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/Wed, 10 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E7%BB%A7%E7%BB%AD/<p>温度回升到最冷才-6度了,风也不那么大了,暂停了整整一周的跑步计划,今天正式恢复。</p> +<p>室外其实没我想象的那么冷,上身只穿了一件羊毛衫,仍然跑的微微出汗,拿着秒表的手刚开始感觉快要冻僵,但跑了一会儿之后就感觉很暖和了。</p> +<p>路况比我想象的糟糕,由于白天飘了几片雪花的缘故,导致部分路面已经结冰,跑在上面十分危险,差点摔倒。</p> +<p>总的来说,跑一跑还是很舒坦的。</p>雪呢?https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/Wed, 10 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%9B%AA%E5%91%A2/<p>昨天天气预报说,今夜迎来第一场雪,可是,感觉又被忽悠了。Ps:一大早在车上通过黑莓发送</p>我的palm饿死了https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/Tue, 09 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84palm%E9%A5%BF%E6%AD%BB%E4%BA%86/<p>前年的时候,我淘到一个palm,正式成为&quot;胖友&quot;,买回来后折腾了很久,反复安装软件,又反复的卸载掉,最后仅保留了几个看书的软件,这个palmtt的屏幕看书真的是没话说,非常舒适,我也在上面看了大概有几十本小说,几回回抱着palm到天亮,呵呵。</p> +<p>但是毕竟是个老机器了,速度慢,功能弱,最让我头疼的是,他的电池越来越不行了,后来,我又把手写笔丢了,再后来,也就是今年5月,一冲动买了个epc,就是所谓的&quot;上网本、二奶机&quot;,这下palm彻底失宠,我很少再将它带在身边,</p> +<p>直到上周末,我整理桌子的时候才发现奄奄一息地他躺在抽屉里,我竟然没搭理他,继续整理我的音箱,今天才又想起来。掏出来一看,由于长期没充电,里面的资料全丢了,还好没什么重要内容,</p> +<p>但我辛苦挑选的软件全没了,我干脆给他擦了擦灰,将所有配件整理到一起,全部锁进抽屉里,再见吧您呐。</p>为什么wall-e这么可爱?https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/Mon, 08 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88wall-e%E8%BF%99%E4%B9%88%E5%8F%AF%E7%88%B1/<p>为什么wall-e这么可爱?这是我看完《机器人wall-e》之后一直在想的问题。</p> +<p>无论是是他捧着电板给自己充电时的样子,还是手足无措时搓腿(其实搓的是他的&quot;履带&quot;)的动作,都可爱得让人抓狂。</p> +<p>现在,我总结一下,让我觉得这个小机器人可爱的原因大概有以下几点:</p> +<p>1、他总是很开心的工作,他很乐观,吹着口哨上班,当地球上只剩下他自己时仍然乐观地活着,对了还有一只蟑螂是他的朋友。</p> +<p>2、他很善良,不小心压了小蟑螂一下(他的履带很宽)就后悔的不行,还好&quot;小强&quot;并非浪得虚名,不仅没事儿还和walle玩得很开心。</p> +<p>3、他很单纯,傻乎乎的,没有心眼儿,连伊娃的手都不敢拉一下。</p> +<p>4、有爱,为了倾慕的女机器人(伊娃)不惜一切代价,以至于芯片烧毁。暂时就说这么多吧,皮克斯的这部动画片还是像以往的那样用简单故事打动人的心。</p>真正的“书架箱”https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/Sun, 07 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B9%A6%E6%9E%B6%E7%AE%B1/<p>昨天花了一下午的时间把我的书柜和电脑重新整理了一遍,把惠威的2.1音箱移到了显示器旁边,把漫步者2.0的移到了书架的二层,与书挤在了一起,成了名副其实的书架箱。</p> +<p>电脑机箱后面的连线乱成了一锅粥,费了很大的劲才整理通顺。</p> +<p>现在,音箱与书柜成为一个整体,整个书柜便是一个巨大的音箱,用来听音乐那叫一个爽!</p>跑步暂停!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/Fri, 05 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9A%82%E5%81%9C/<p>寒流来袭,最高温度才零下2度,外面冷的能把人冻傻,在我还未被冻傻之前,先做出一个明智的决定,无限期暂停跑步计划,风太大,空气又凉,我又没有自虐倾向,还是在屋里待着暖和。</p>据说明天要降温https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/Wed, 03 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8D%AE%E8%AF%B4%E6%98%8E%E5%A4%A9%E8%A6%81%E9%99%8D%E6%B8%A9/<p>北京的天气要降温的消息已经提前三天放出,电视、网络反复强调,就连公司内部的网络都发布温馨小贴士提醒大家注意加衣服了。</p> +<p>今晚跑步的时候明显感受到寒风的力度,不过我还是跑得微微出汗。</p> +<p>昨晚(应该说是今早)睡的实在太晚,今天在回来的车上都昏昏欲睡,刚刚跑完步回来后洗了个热水澡,本来困倦的身体又感觉精神了,打开电脑,在日志里罗嗦两句再睡。</p>早啊,各位!https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/Wed, 03 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E5%95%8A%E5%90%84%E4%BD%8D/<p>没错,我还在办公室里,还在加班,而且意识还很清醒,我还活着。</p> +<p>现在的时间是凌晨的0点10分,再过半个小时,如果一切顺利的话,我就要打车回去睡觉了,差不多还能再睡4个小时呢。</p> +<p>然后,我就要从床上爬起来,洗洗脸,刷刷牙,迎着还没出来的太阳,再次奔上开向公司的地铁。</p> +<p>没办法,既然选择程序员这个连妓女都不如的职业,就要接受没日没夜的加班生活,就像我们经常在程序中&quot;拿空间换时间&quot;那样,现实中,我们在&quot;拿健康换时间&quot;,等到健康剩得不多、徐娘半老之时也就是我们的退休之日吧。</p> +<p>因为到了那个时候,我们将再也加不动班,再也爬不上车,可能连敲键盘的力气都没有了,而且又会有一大批精壮的程序员前赴后继的补充上来,再次走上我们走过的路&hellip;&hellip;</p>还没回家https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/Tue, 02 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%98%E6%B2%A1%E5%9B%9E%E5%AE%B6/<p>再过十分钟就过了今天跑步的时限了,而现在我仍旧坐在办公室里,喝着温热的开水,盯着跑焦的屏幕。</p>一个月https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/Mon, 01 Dec 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%9C%88/<p>前天有同事问我说,跑步坚持了一段时间了,感觉如何,有什么效果没有,我说不知道,估计以后就不怎么感冒吧。</p> +<p>此话尚未落音,今儿就开始感冒了,打了好几个打喷嚏,嗓子也开始干了。</p> +<p>我从十一月一号开始跑步,一天也没落下,跑步时间基本上都是在晚上8点至9点之间,每次绕小区一圈,跑十几分钟,感觉良好。</p>updatehttps://sbabybird.github.io/p/update/Sun, 30 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/update/<p>让我看看blog标题里能不能出现&quot;关键字&quot;ps:一个累人的周末。</p>一拖四https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/Sat, 29 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/<img src="https://sbabybird.github.io/p/%E4%B8%80%E6%8B%96%E5%9B%9B/20081229.jpg" alt="Featured image of post 一拖四" /><p>近日,我的机器速度越来越慢,内存占用常常超过1.5G,尤其是开了office之后,其操作反应之慢令人发指,考虑再三之后,我决定还是不重装系统,先手动优化两下再说。</p> +<p>首当其冲的是卸载多余软件了,我是软件狂人,开始菜单完全展开几乎将屏幕挤满,一口气卸载十几个不常用软件,然后使用ccleaner清理垃圾,清理注册表,清理回收站,清理缓存。</p> +<p>重启。还是觉得不过瘾,进入控制面板,把不常用的服务给停掉,就连桌面主题服务都停掉了。</p> +<p>重启。</p> +<p>还是觉得不过瘾,打开系统任务管理器查看了一下,Firefox最占内存,但是这个千万不能卸载啊,其次是qq占内存,卸载之,然后发现msn也很不老实,卸载之,看着飞信也很不爽,卸载!</p> +<p>这下,整个世界清静了,内存占用只剩下四百M了,速度提高了不少。</p> +<p>可是咱也不能聊天啊,于是想到了Pidgin这个在Linux下很火的软件,下载安装后,发现居然还支持飞信,于是我用它同时连接gtalk、qq、msn、飞信,体验很好,另外还可替代aol、icq、雅虎等多种聊天客户端。</p> +<p>这下好了,以前啊聊天总是要开多个程序,麻烦,现在啊有了Pidgin高钙片,一片顶过去5片,您瞅准了!是Pidgin!</p> +<p>ps:今日跑步指数★★★☆☆</p>差点没出差https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/Thu, 27 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%AE%E7%82%B9%E6%B2%A1%E5%87%BA%E5%B7%AE/<p>由于项目的需要,下周需要我出差,本来出去散散心也挺爽的,只是我担心我的跑步计划会搁浅一段时间,因为到了现场就没时间去跑步了,就算不整天调程序也没有跑步的地方,总不能在大马路上伸着舌头撵公交吧。</p> +<p>但是,计划没有变化快,由于北京这边又有优先级更高的活儿,所以,暂时不用出差了,哦也。</p> +<p>ps:今日天气(我估计的),晴间多云,风力2、3级转4、5级,最高温度20度(室内)最低温度0度,跑步指数:3(★★★☆☆)适宜跑步。</p>坚持https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/Wed, 26 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9D%9A%E6%8C%81/<p>下班晚也就算了,还刮这么大的风,跑得我那叫一个累啊,回来的时候我一边喘粗气一边想:&quot;啥时候下大雪啊&quot;</p>文档!文档!https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/Tue, 25 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/<img src="https://sbabybird.github.io/p/%E6%96%87%E6%A1%A3%E6%96%87%E6%A1%A3/20081225.png" alt="Featured image of post 文档!文档!" /><p>快要下班的时候,我的眼神已经分外地扑簌迷离了,审核了一天的文档,看了再写,写了再看,千锤百炼。</p> +<p>瞅了瞅身边的同事,个个被文档折磨得目光呆滞,面如死灰,头发蓬乱,口吐白沫。</p> +<p>说实话,我宁愿写一千行代码也不愿意写一行文档,宁愿写一行文档,也不愿去审一千行文档。</p> +<p>因为,审文档你得咬文嚼字,你得反复推敲,就算是仅仅挑出错别字就已经很费神了。</p> +<p>慢慢地,我感觉到文字在屏幕上开始爬行,一会儿排成人字,一会儿又排成一字。</p> +<p>ps:跑步一直在继续,耶!</p>远去的DVDhttps://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/Mon, 24 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%9C%E5%8E%BB%E7%9A%84dvd/<p>第一次见识DVD的清晰是在上大学的时候,在我们刚刚落成的多媒体教室,好像还是&quot;邓论&quot;课,老师看大家实在闷的慌,就放了一部《角斗士》来调节气氛,播放器材就是DVD加投影机。</p> +<p>我现在印象最深刻的一个镜头是,男主角走在金黄的麦田里,用手拨弄着麦穗,身边荡起层层麦浪,这个镜头太美了,DVD清晰的画质深深震撼了我。</p> +<p>不久,在我的软磨硬泡下,家里也给我买了一台DVD(顺便买了不错的音响,暂且按下不表),我欢喜的不得了,可惜没有投影机,因为当时动辄十几万一台的投影机对我来说只能奢望,当然,现在也是。然后就是开始疯狂收碟,从《勇敢的心》到《杀手里昂》,从《喜剧之王》到《阿甘正传》,反正当时我认为经典的电影全部收藏,两年下来,在零花钱不是特别充裕的情况下,我&quot;收藏&quot;了将近200张DVD(现在还剩几十张了)</p> +<p>虽然是盗版,但是过来人都知道,在国内,盗版DVD实际上比正版DVD画质都要好(当然要选对牌子咯,这个话题说起来就扯远了)。</p> +<p>当时我逛街最怕两件事,一个是进书店,另一个就是进碟店,因为无论走进哪个,我出来之后钱包准空。</p> +<p>不过和真正收碟的碟友比起来我这几张真的不算啥,我后来认识了一个哥们,光正版碟就收了1000多张(刚工作的工资全花在买碟上了),同样的电影,要买两份,一张平时看,一张摆那儿永远也不舍得打开看。</p> +<p>还是醒醒吧,我现在已经几乎不看DVD了,而且也不再买碟。</p> +<p>一方面是因为随着年龄的增长,工作将我的各种兴趣爱好磨灭了不少,另一方面是因为网络飞速发展,DVD这种存储介质渐渐走向衰败,即使偶尔想看两眼电影,也随时可以在线观看。</p> +<p>虽然现在又推出新格式的蓝光DVD,但是我认为它也基本没戏,就像过气的女明星,无论怎么打扮也难逃被抛弃的命运。</p> +<p>现在再看看那些卖碟的小贩,谈起DVD极不专业,而且以次充好,老拿电影院偷拍的枪版糊弄人,再者就是n合一的压缩碟,这种格式彻底毁掉了我对DVD的兴趣,要画质没画质要音质没音质,除了毁坏光驱,再也找不到别的用处了。</p> +<p>另外也别跟我扯新一代蓝光DVD的容量和清晰度,还是那句话,&quot;我很不看好你哟&quot;,因为我认为,随着网络技术的发展,硬盘、光盘、优盘、这些存储介质都将被淘汰。</p> +<p>什么?你说咱们还有完全自主知识产权的EVD呢?我只能说:&quot;呵呵,大哥,你可真会讲笑话,这是我今天听到的最好笑的笑话了&quot;</p>晚安https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/Sun, 23 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%9A%E5%AE%89/<p>不错的周末,把太阳能热水器里的水放干净了,热水已切换到燃气系统了,地暖系统也恢复正常了,房间也打扫干净了,看了部老电影,天就黑了,跑完步回来泡个脚,睡了。</p>在傍晚跑步https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/Sat, 22 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E5%82%8D%E6%99%9A%E8%B7%91%E6%AD%A5/<p>今天要去朋友家吃晚饭,所以我预计晚上的跑步计划会无法执行,干脆提前跑步,在太阳将要下山之前,绕着小区跑了一圈,感觉比在晚上伴着路灯跑要好的多,可惜啊,这种机会也只有周末才有。</p>大周末https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/Fri, 21 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A7%E5%91%A8%E6%9C%AB/<p>再次迎来双休日,虽然明天要有半天公事,但是毕竟不是去加班,感觉挺爽。</p>垃圾网上银行https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/Thu, 20 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9E%83%E5%9C%BE%E7%BD%91%E4%B8%8A%E9%93%B6%E8%A1%8C/<p>今日要去建行转些钱到支付宝,被逼无奈使用了我最讨厌的ie浏览器,输入帐户名、密码、验证码,没问题,选择证书和动态加密口令也没问题,就在最后那一哆嗦,网页弹出一个小空白页面就再也不动了,连续两次都是这样,废掉了我两个动态口令,求救客服半个多钟头也没有搞定问题。</p> +<p>现在,我分析,引起问题的原因:</p> +<p>1、ie不求行</p> +<p>2、有防火墙</p> +<p>3、银行网站很烂</p> +<p>4、人品问题</p> +<p>5、以上原因都有</p>找钱https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/Wed, 19 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E9%92%B1/<p>跑完步,口渴,走到小区门口超市买酸奶喝。这是一个袖珍超市,但是麻雀虽小五脏俱全,所以我懒得去大超市了。</p> +<p>这么晚了,超市也快收工了,只有我一个顾客,门口的收银员打着哈欠,我拎了一盒酸奶出来。</p> +<p>&quot;九块钱&quot;收银员说,由于零钱不够了,我只好拿出一张一百的,&quot;请问您有没有一块钱零钱?&quot;她接着问&quot;这样就可以找你九十了&quot;,翻遍口袋,摸出一块钱给她。</p> +<p>这个时候,只见超市的pos机屏幕上写着:收101.00元、应找零92.00元。看来我的大脑也有点儿缺氧</p>感谢妈妈https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/Tue, 18 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9F%E8%B0%A2%E5%A6%88%E5%A6%88/<p>我的胃不太好,为此,我妈颇为担忧,</p> +<p>有天,我妈听说一个单方,可以养胃,即在枕头里装上炒熟的甘草(中药),</p> +<p>每天睡觉枕着就行,该方法不但使用简单而且可操作性强。</p> +<p>于是前两天就在QQ上给我说了,我觉得试试也行,我妈就立刻行动(好习惯),</p> +<p>结果我今天就收到了快递。打开一看,跳出一个制作精美的枕头,散发出甘草的清香,</p> +<p>这可是我妈亲手缝制,对我来说真是无比珍贵。今晚就要枕着它入眠,在梦里露出灿烂的笑容。</p>https://sbabybird.github.io/p/%E9%A3%8E/Mon, 17 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A3%8E/<p>今天跑步最大的感觉就是有风,说是刺骨的寒风有点儿夸张,但是你要是在里面站立半个钟头的话,保证能冻傻。</p> +<p>我发现无论往那个方向跑都是顶风,吹得我快要飘起来,有一阵子甚至感到呼吸困难,意识模糊,后来就加速奔跑,并打破了昨天的记录。</p> +<p>天越来越冷了,我的跑步计划迎来了严峻的考验。</p>跑步在继续https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/Sun, 16 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%9C%A8%E7%BB%A7%E7%BB%AD/<p>不容易,坚持半个月了,加油。</p>测试https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95/<p>此篇博客通过电子邮件发送生成,此电子邮件又是通过手机发送。如果都能看见,说明测试成功!</p>掉线https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%89%E7%BA%BF/<p>昨天网络掉了一夜的线,早晨才恢复,宽带客服的电话都被打爆了,我好不容易挤进去一个电话,被告知他们全部技术人员都在彻夜加班抢修故障,我靠,看来干技术的全是这样儿的命啊!本着惺惺相惜的态度,我也只好随便发两句牢骚就把电话挂了。</p> +<p>ps:昨天跑步速度比平时稍快。</p>喂鱼记https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/Sat, 15 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%96%82%E9%B1%BC%E8%AE%B0/<p>公司的旁边有一个公园,公园里有一个人工湖。</p> +<p>该湖曾一度干涸,后来托奥运的福,这个湖做了一次整改,现在,里面不但放满了碧绿的自来水,还撒了一群可供观赏的鱼。</p> +<p>我会在每天午饭后,独自或和同事一起到这里来溜达一圈,一方面是促进消化,还有就是这里的空气真是不错,所以我才会放弃网上冲浪而到这里来晒晒太阳。</p> +<p>每次都会看到那群傻乎乎的鱼争抢人们洒下的鱼食,由于鱼多食少,大家抢得异常激烈,一时间水花翻涌(让晶晶过来都压不住),场面甚为状观。</p> +<p>至于撒食的人,就感觉颇有成就感,我在旁边看着也心里痒痒,总想试试,找找当圣诞老人的感觉。</p> +<p>今天吃饭时故意多要了一个馒头,跟同事说一会儿要喂鱼,同事笑话我说:“你现在嘴里嚼着鱼,居然也假腥腥的要喂鱼”我说“算是补偿吧!”到了地方,发现有人已经先到一步,一群鱼儿在他脚下吃的正欢。</p> +<p>我和同事两个人迫不及待地掏出馒头,拿出吃羊肉泡的功夫(掐啊),就开始往水里洒。</p> +<p>扔了半天,却不见大群的鱼过来,仅有少量老弱病残在这边尝了两口就又游走了,我尴尬地站在湖边,眼看着手里掰下的馒头屑,都打了水飘。仔细一看,还真是我太马乎了,原来先前那人仍的可是上好的面包啊,看来,不仅有崇洋媚外的人,也有崇洋媚外的鱼,这帮混蛋也喜欢吃西餐啊!</p> +<p>PS:第一次用手机打这么多字,手指酸痛ing。</p>不能缩水https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/Thu, 13 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%83%BD%E7%BC%A9%E6%B0%B4/<p>今天回来时很累,于是就有了改变跑步路线的想法,即,仅从车站跑回家,这样既跑了步,又节约了时间,但这个念头转瞬即逝,立即被否定。</p> +<p>从车站到家的这段路虽然走起来显得不近,但是跟平日跑步的距离比起还是太短,而且这样就视跑步成为一种应付了。</p> +<p>所以为了防止跑步计划到最后不了了之,我今天还是老老实实地跑了一圈。</p>补上https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/Wed, 12 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%A1%A5%E4%B8%8A/<p>昨晚回家晚了,跑步也晚了,然后就睡了,忘了在日志里报告,今早补上。</p> +<p>这两天忒忙了,事情一件件的接踵而来,忙的我有点儿喘气。</p> +<p>有句话说的好,出来混迟早要还的,以前程序的demo做的再好也是假的,现在要动真格的了,撒开手忙活吧!</p>何以解忧,唯有唱歌https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/Wed, 12 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%95%E4%BB%A5%E8%A7%A3%E5%BF%A7%E5%94%AF%E6%9C%89%E5%94%B1%E6%AD%8C/<p>今天差点儿达到无法执行跑步计划的条件之一(加班到深夜),还好,我及时搞定了问题。</p> +<p>上午也说到了,现在手头事儿特别多,程序的问题也不断涌现,而我又特别不喜欢多任务并行工作(我想没人喜欢吧),并行工作会导致大脑里思考的东西在不断地切换,每个任务都要照顾到,每个任务又很难照顾好。</p> +<p>于是,问题来了,下午快下班的时候我的一段程序罢工了,这段代码在半年前由我亲手调制,当时跑起来一点问题都没有,现在着急用的时候却掉了链子,急得我快要抓狂。</p> +<p>问题还是解决了,怎么解决的呢?</p> +<p>唱歌!下班之后,反正人走的差不多了,也不怕打搅别人,为了缓解压力,我只有使出&quot;杀手锏&quot;,那就是&mdash;-</p> +<p>胡乱唱歌,无论是中国的还是外国的,是民族的还是通俗的,顺嘴拈来,逮着哪句是哪句,什么&quot;千里刀光影,重整代码待后生&quot;、&quot;你说要崩溃我知道很简单&quot;、&quot;小芹我洗衣裳来到河边&quot;等等。</p> +<p>唱着唱着,我就觉得豁然开朗了,柳暗花明了,茅厕顿开了,原来是某行代码被无声地注释掉了(其实早该想到),看来唱歌的效果简直是立竿见影呐。</p> +<p>不光是现在,其实回想起来,唱歌一直是我缓解压力的惯用方式(可以参见这一篇博客),唱歌的地方并不限于在ktv,也不是要老老实实拿捏着唱,要的就是那种随心所欲飘飘然的感觉,大学的时候,每到期末考试我都会整天哼一首类似于&quot;姑娘十八一朵花&quot;的歌儿,这样的话,我不但门门功课都能过,到最后竟然还拿了三好学生!</p>天气不太好https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/Mon, 10 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E4%B8%8D%E5%A4%AA%E5%A5%BD/<p>今天的天气不是很好,空气质量特别差,用专业术语来说就是&quot;霾&quot;,在做了一番思想斗争之后,我还是决定出去跑步,因为这种天气情况不在我所定义的&quot;不可抗拒之因素&quot;之内。</p> +<p>气喘吁吁地回来,用热水洗了个脚,美,懒得开大机器了,就用小e随便发几个字算了,顺便控诉一下,用小e打字可真是受罪。</p>复制昨天https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/Sun, 09 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%8D%E5%88%B6%E6%98%A8%E5%A4%A9/<p>今天和昨天过得一样,略微多了些上班前的焦躁,所以我还是喜欢周六多一些(哪怕那天是加班)。</p> +<p>没空的时候总是想着抽出时间来多学习一些东西,等到周末时却又缺乏了耐心和兴趣,就像牛人说的那样,我所荒废的今日其实就是昨天所期盼的明日啊。</p> +<p>当然了,荒废不荒废也不知是谁说了算。</p> +<p>今天出去跑步的时间略早,发现有人也在跑步,只不过我是顺时针方向,那哥们儿是逆时针方向在跑,我们在西南角碰面,然后又在东北角擦肩,所以我可以断定他和我的速度是差不多的,不过,我回来时,人家可能还在继续跑。</p> +<p>下午的时候,又拿了拿吉他(看来实在是无聊了),摁了两下,摁得左手生疼,发现以前磨出的茧子早下去了,手指光滑无比,连指纹都看不清,我说怎么前两天弄那个指纹识别程序时老调试不成功,看来我可以放心去作案了。</p> +<p>写了半天,发现写的前言不答后语,难道这就是传说中的意识流?</p>超级小女声https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/Sat, 08 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B6%85%E7%BA%A7%E5%B0%8F%E5%A5%B3%E5%A3%B0/<p>喜欢听翻唱的歌曲也是个毛病点击小三角开始播放</p>一个普通的周末https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/Sat, 08 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%91%A8%E6%9C%AB/<p>虽然有时坐在电脑前不知道要写点儿啥,但是,我还是决定每天都在这里写几行字。</p> +<p>一是为了监督我的跑步计划执行情况,防止三天打鱼两天晒网,二是每天记点儿流水帐,将来孙子吵着要我给他讲故事的时候再来翻翻素材。</p> +<p>想起来一个笑话,爷爷在给孙子讲故事:&quot;有一次,在战场上,这边只剩下我一个了,敌人冲上来一个连,我抱着机枪把他们全干掉了。</p> +<p>&quot;孙子说:&quot;可是爷爷,您去年讲的时候说的是冲上来一个排啊?</p> +<p>&quot;&quot;傻孩子,你那时还小,我怕吓着你!&quot;</p> +<p>跑题了,今天是周末,我没有加班,活儿永远都干不完,身体却只有一个,所谓,该出手时就出手,该休息时就休息。</p> +<p>我仍然延续以往的作风,醒的比平时早,起的比平时早,然后开始洗衣服、打扫、做饭、刷碗、看电影&hellip;&hellip;</p> +<p>一天的时间一晃就过了,感觉也就是吃了三顿饭,然后天就黑了。</p> +<p>今天跑步的时候感觉天气比平时要冷,小嗖风风地刮着,我还是坚持跑完一圈,速度还是不能太快,跑到额头微微出汗就行了。</p> +<p>回来查看了一下日历,原来昨天是&quot;立冬&quot;,哦,冬天来了,春天还会远吗?</p>爽事儿两件https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/Fri, 07 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%88%BD%E4%BA%8B%E5%84%BF%E4%B8%A4%E4%BB%B6/<p>1、把我的epc升级成ubuntu的操作系统了。</p> +<p>比起它自带的那个阉割版操作系统,界面华丽了,软件丰富了,操作更自由了,爽!</p> +<p>2、家里的宽带在费用不上涨的情况下从1M升级到1.5M了。</p> +<p>虽然感觉也没比以前快了多少,但心里还是美滋滋的,爽!</p> +<p>ps:跑步仍在继续!</p>天涯共此时https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/Thu, 06 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B6%AF%E5%85%B1%E6%AD%A4%E6%97%B6/<p>跑完步回来都九点多了,出差在外的同事一个接一个的打回来电话,原来这帮儿不要命的家伙还在加班。</p> +<p>先是远在宁夏的兄弟告诉我刚做的PPT需要修改,然后是身在河南的项目组打电话咨询版本控制的问题,最后是被发配到青海的哥们儿在电话里用略带嘶哑的嗓音和我一起探讨了一会儿程序路径分支的问题,然后又像是梦游一般地把电话挂掉&hellip;&hellip;</p> +<p>放下电话,我不禁要问(焦点访谈看多了),沟通的方便是帮了我们还是坑了我们?</p> +<p>得亏了信息科技的发达啊,要是远在飞鸽传书的年代,我把代码写好,然后抄到一张小纸条上,绑在鸽子腿上,趁它还没飞抵现场调试的时候,美美地睡上一觉。</p>手机发的https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/Wed, 05 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%8B%E6%9C%BA%E5%8F%91%E7%9A%84/<p>今天回来的有点儿晚,并且跑步的距离有所延长,大概比前几次多跑了三百米。电脑都关了,才想起还没有做记录,爬起来,用手机发个报告。</p>假如你看我有点儿累,就请你给我倒碗水https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/Tue, 04 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E4%BD%A0%E7%9C%8B%E6%88%91%E6%9C%89%E7%82%B9%E5%84%BF%E7%B4%AF%E5%B0%B1%E8%AF%B7%E4%BD%A0%E7%BB%99%E6%88%91%E5%80%92%E7%A2%97%E6%B0%B4/<p>今天又跑完步回来了,现在,我真是名副其实的&quot;从容地狂奔&quot;了,每晚都会出去&quot;奔&quot;一圈儿,只有这样才会觉得明天有&quot;奔&quot;头,才能洒脱地&quot;奔&quot;三十了。</p> +<p>我上个周刚过的生日,就是说我上周还二十六(虚岁)呢,现在就二十七了(真的是虚岁)。</p> +<p>最近总想活的更洒脱一些,但总是觉得很为难,因为总感觉自己太在意别人的看法,也就是老是拿别人的标准来衡量自己的生活,到不了那种&quot;忘他&quot;的境界,比如我有同事可以在地铁里一边大声唱歌一边跟我大谈&quot;空间数据的网格索引&quot;,牛逼吧?大学里有个同学,在大街上骑自行车,突然来了兴致,把车一摔,在路边跳了一段&quot;麦考杰克逊&quot;,然后在一片惊叹声中绝尘而去!</p> +<p>洒脱吧?靠,我做不到,就算是在大街上唱歌我都不会。</p> +<p>前两天,看了一篇文章,大致意思是,每个人生来都是一杯白水,随着时间的流逝,为了满足别人对我们的期望,这杯水被掺入了形形色色的杂质而变了味道,有些味道我们觉得好,但是别人觉得怪,或者又相反,最终大家都很不爽,文章最后劝我们别在乎别人怎么看,自己就做那杯最原始的白开水吧。</p> +<p>看到最后,如果作者在我跟前,我想,我会把杂志卷成一卷儿,对着他的头来两下子,你的脑袋是不是被门挤了,还是被驴踢了?</p> +<p>原因不再论述,这种忽悠人的文章以后还是少看为妙。</p> +<p>我只想说,我还是会往我的杯子里,加入各种佐料,哪怕我不喜欢它,只要我的家人喜欢,或者我的家人认为我喜欢。</p> +<p>我继续狂奔,我尽量学着在大街上唱歌,假如你看我有点儿累,就请你给我倒碗水。</p>跑步,有进步https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/Sun, 02 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E6%9C%89%E8%BF%9B%E6%AD%A5/<p>昨天跑完后没感觉,睡了一夜,今早感觉腿酸背痛,看来见效果了啊。</p> +<p>今天继续跑步,距离与昨天相同,还是一圈,时间缩短3分钟,速度不是我追求的,跑步本身才重要,看来明天要延长路线了。</p>报告https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/Sat, 01 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%8A%A5%E5%91%8A/<p>上午制定了跑步的计划,旨在锻炼身体陶冶情操。</p> +<p>说到就要做到,时间刚过8点一刻,我就换上球鞋(本来还想置办一套装备,但是看看动辄上千元的跑鞋只得作罢,还是等过几天跑步略显成效时再买吧)、塞上耳机,大步流星冲下楼去。</p> +<p>HitFM正在播放着动感音乐,伴着音乐的节拍,我迈开轻盈的步伐,前面两个保安晃来晃去,被我轻松越过(靠,又不是打篮球)。</p> +<p>由于是刚开始跑,为了既达到锻炼效果又不丧失信心,我把速度放的很慢,基本上比散布快一些就行。</p> +<p>总算绕着小区跑了一圈,心跳还算正常,喘气有些加速,身上也微微出汗。</p> +<p>OK!我很满意,能否坚持下去虽然是个未知数,但毕竟好的开始已是成功的一小半。</p> +<p>ps:这个跑步计划已经宣扬的全世界都知道了,要是跑两天即放弃,我岂不是无颜见江东父老了,唉,年轻人啊,爱冲动。</p>跑步吧!!!https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/Sat, 01 Nov 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E5%90%A7/<p>午饭后,与远方的二舅聊起家常,说到锻炼身体的重要性。</p> +<p>我说我没时间、坚持不下来,结果被二舅狠狠鄙视了,连二舅那么忙的人都能每天坚持锻炼,我就没啥话说了。</p> +<p>据说他锻炼成果显著,现在腰不酸了背不疼了走路也有劲儿了。</p> +<p>我想起今儿上午,和同事一起搬了台服务器都累的两股战战几欲先走(也怪那服务器忒沉),看来我是得加强锻炼了。</p> +<p>想了半天,最后还是决定采用&quot;跑步&quot;这一经济实惠的锻炼方式,并制定计划:</p> +<p>每晚20点半至21点间散步10分钟跑步20分钟(时间可根据情况提前或推后,但过了22点就取消当日计划)。</p> +<p>除非遇到不可抗拒之因素(如下雪、加班到深夜等),否则一律坚持跑步!即日起,博客恢复更新,以记录跑步计划执行情况。</p>关于十一长假的总结https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/Mon, 06 Oct 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%8D%81%E4%B8%80%E9%95%BF%E5%81%87%E7%9A%84%E6%80%BB%E7%BB%93/<p>长假过完了,感觉如下:</p> +<p>1、交通的痛苦,买不到回家的火车票,被黑了一张全价机票。</p> +<p>返京时乘坐大巴,连续坐了16个小时,感觉要比乘坐神七痛苦。</p> +<p>2、妹妹结婚了,打心底祝福她。</p> +<p>小时候那个调皮的小女孩儿怎么转眼变成了端庄的大姑娘了呢。</p> +<p>3、喝多一次,此次回家喝了n顿酒,和老同学在一起喝的那次喝多了。</p> +<p>4、我还是那么瘦,几个老同学都陆续把自己的肚子搞大了,只有我继续瘦的像支铅笔。</p> +<p>5、我仍然是家里的维修工,此次修理好了老家的DVD、抽水马桶、电脑,并弄坏了老婆的手机(后来我又修好了)。</p> +<p>6、美好的时间总是很短暂,每次相聚都是一次分手。</p>月饼https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/Sat, 13 Sep 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%88%E9%A5%BC/<p>咱们的节日总是与吃有关,比如过年吃饺子,元宵节吃汤圆,端午吃粽子,六月六吃炒面,腊八吃米饭。</p> +<p>中秋当然要吃月饼,而且要吃的相当隆重。</p> +<p>在我的老家,刚入了八月大家就忙活着串亲戚送月饼了。</p> +<p>一个人在外面,当然没人给我送月饼,为了找到一点儿过节的感觉,我只好到超市去一趟,心想,好歹买一两块月饼回来吃,也算是过节。 到了地方却傻眼了,花花绿绿的月饼盒子堆的跟小山似的,个个包装精美,如果不问售货员一句:&quot;这是月饼吗?&quot;我都不敢确定这些东西是什么。</p> +<p>先让我想想小时候的月饼是什么样儿,嗯,圆的(废话),比烧饼厚,油光光的,上面印有花纹图案比如&quot;花好月圆&quot;什么的,随便拿张油纸包着,掰开以后馅里有大块大块的冰糖,还有花花绿绿的丝儿,应该是用橘子皮做的。</p> +<p>对,就是这样,客人来了,主人把月饼拿刀切成菱形的小块就算一道下酒菜,中秋那天晚上一家人也会切上一块,大家一起嘎嘣嘎嘣地吃完。</p> +<p>不过这是十几年前的事儿了,现在的月饼花样儿百出,什么馅儿的都有,造型各异,包装也是越来越豪华,味道却越来越难吃,简直难吃至极,看着这些大盒子我就发怵。</p> +<p>我小声的问售货员:&quot;请问有没有适合自己在家吃的月饼?&quot;</p> +<p>&quot;有啊&quot;她拎起大概有枕头那么大的一盒月饼说&quot;你看这个怎么样,原价四百六现价二百八而且买一盒送一盒,多划算呐!&quot;,</p> +<p>我接过来看了看,诺大的盒子装了六块像扣子似的小月饼,亮亮的泛着油光,虽然个儿不大,但是如果买回去够我吃到过年了,我看了看长长的货架,觉得今天的月饼怕是买不到了。</p> +<p> 不买不行,不吃月饼哪叫过节啊,我拎着购物筐在楼上楼下转了个遍,终于在一个灰暗的角落里发现了散装的月饼,嗯,貌似小时候那种月饼。</p> +<p>将就吧,随便挑了两块扔进筐里,任务算是完成,高兴之余顺便又拎了瓶红酒,就这么地了,晚上就着月饼喝着红酒,举杯邀明月,对影成仨人。</p>我对奥运开幕式的8点感受https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/Sat, 09 Aug 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%AF%B9%E5%A5%A5%E8%BF%90%E5%BC%80%E5%B9%95%E5%BC%8F%E7%9A%848%E7%82%B9%E6%84%9F%E5%8F%97/<p>1、脚印烟花很令人惊艳    </p> +<p>这真是一个好创意,巨大的脚印从中轴路一路迈向场馆,场面真不是一般的壮观!美中不足的是空中镜头取景再大些就好了。</p> +<p>2、卷轴屏幕很好很强大    </p> +<p>七十多米长的屏幕,应该也是奥运之最了,就是中间那块画布放的有点儿突兀。</p> +<p>3、歌唱祖国很令人激动    </p> +<p>当那个红衣小女孩用清澈如同天籁般的声音唱起歌唱祖国时,整个场馆进入了高潮,我在电视机前也禁不住唱了起来,眼泪都快下来了。</p> +<p>4、主题歌有点儿弱    </p> +<p>主题歌听完之后,印象不深刻,知道是谁唱的,听完就忘了。</p> +<p>5、运动员入场时那些奥运宝贝一直在那儿蹦了两个多小时没换人,佩服!    </p> +<p>导演也太不知道心疼人了,大热天儿的,让这些可爱的奥运宝贝手舞足蹈一直在那儿跳了,换了我,肯定都昏过去了。</p> +<p>6、电视台转播水平发挥正常,镜头切换不敢恭维,画面中经常出现很多钢丝    </p> +<p>不愧是咱们的CCTV啊,发挥出了应有的水平。</p> +<p>7、点火没让人失望,要是点火时画面里看不见钢丝就更好了。</p> +<p>    点火方式很新颖,将吊钢丝技术发挥到了极致,李宁好样儿的!就是在全景的时候,在屏幕前方总是飘着好几根钢丝,让画面失色不少。</p> +<p>8、有朋自远方来不亦乐乎,四海之内皆兄弟也!    击缻时朗诵的《论语》,让人仿佛回到了两千多年前,很好,很中国!</p>工欲善其事,必先利其器?https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/Thu, 31 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B7%A5%E6%AC%B2%E5%96%84%E5%85%B6%E4%BA%8B%E5%BF%85%E5%85%88%E5%88%A9%E5%85%B6%E5%99%A8/<p>当猿猴第一次有目的的拿起石头将骨头劈开的时候,&quot;它&quot;就不再是&quot;它&quot;了,而成了&quot;他&quot;。</p> +<p>能够使用&quot;工具&quot;是人类与一般动物的最基本的区别,这是教科书告诉我们的事情。</p> +<p>&quot;工欲善其事,必先利其器。&quot;这句话很长时间都被我作为msn签名,也充分说明了工具在我生活中的重要性。</p> +<p>当然这儿说的工具是一个广义上的概念,它可以指硬件也可以指软件。但是,我现在对于工具的使用却有了新的看法。</p> +<p>因为我觉得工具使我的大脑退化了,以前好使的功能现在都不太好用了(比如:记忆力、创造力等)。</p> +<p>写到这儿,我发现我这次的话题起的有点儿大,发些感慨而已,说到哪儿是哪儿吧。 </p> +<p>因为最近(其实早就有感觉)我越来越觉得对某些工具产生了严重依赖,</p> +<p>比如:计算机、手机、Internet。有时候甚至搞不清究竟是在驾驭工具还是在被工具驾驭。</p> +<p>前一段时间我看了一本关于高效率工作的书,按照书中的指点,慢慢养成了将工作事务都提前安排进&quot;日程表&quot;的习惯,感觉效率貌似提高了一些,但是造成的副作用就是,我的记忆力严重下降。</p> +<p>人们常说:&quot;好记性不如烂笔头&quot;,我看则不然,在我没用&quot;烂笔头&quot;的时候,我的记性还是挺好,约会什么的一般不会忘记,现在惨了,当我习惯于把事务用&quot;烂笔头&quot;记下来时,就连&quot;下班后买俩包子&quot;这点儿破事儿如果不写下来就会忘记。</p> +<p>关于电话号码的记忆也是,以前没用手机的时候,我可以记住几十个电话号码,现在连自己的电话号码都得翻手机的电话薄来查找了。</p> +<p> 现在,每天打开电脑第一件事儿就是把浏览器打开,收邮件,安排日程事务,借助google提供的日历功能安排好一天的工作,然后把工作内容同步到手机上,这样整个人都&quot;信息化&quot;了,看似有条不紊的工作,实际上,我已经牢牢地被这些所谓&quot;高科技&quot;拴住了。</p> +<p>什么?万一哪天这些东西消失了?</p> +<p>后果很难想象,想一下就能冒出一身冷汗。</p> +<p>当然也有哥们幻想着有一天能过上&quot;不插电&quot;的生活,我觉得他也只能是想想而已,失去这些把我们宠坏的工具,将会像一只丧家犬那样的失魂落魄。本来打算来一篇长篇大论,发现越说越远,只好虎头蛇尾了。</p> +<p>不能再多说了,因为我的&quot;日程表&quot;提醒我该去吃饭了。</p>怀念win98https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/Mon, 28 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%80%E5%BF%B5win98/<p>好友终于无法忍受vista的龟速,将笔记本自带的系统干掉新装了一个windowsxp系统,托我用ghost把系统备份一下,以备不时之需。</p> +<p>自从转到linux阵营之后,我很少用到ghost了,去网上找了个&quot;一键ghost系统&quot;把他的系统做了个备份。</p> +<p>发现现在的ghost软件做的已是十分的人性化了,一路next即可,完全不要用户操心,傻瓜化操作。想起我大学那阵子用的win98系统,那时还没有ghost类的软件,而98又很不稳定,所以我基本上每周都要重装一次系统,同宿舍的哥们,每到周末都能看见我趴在电脑前重装系统(步骤很简单,FormatC:、Setup)。</p> +<p>我想,我的偏执狂性格就是那时候养成的吧,一年下来,25位的windows98序列号我竟然背了下来。</p> +<p>win98给我印象最深的就是&quot;蓝天白云&quot;了,前两天在网上看到有志同道合的网友收藏的win98启动画面,其中就有这张经典的&quot;蓝天白云&quot;。</p> +<p>后来,我误入歧途,对win98的操作技巧十分着迷,就连win98的启动画面也给改的面目全非(比如在启动时写上女朋友的名字),现在,这些曾经让我乐此不疲的&quot;秘籍&quot;已经变得一文不值。</p> +<p>提到win98就不能不提它那经典的&quot;蓝屏&quot;,当程序死机或者非法操作时,它总是跳出来,搞得我的心扑腾扑腾乱跳。</p> +<p>加上那时我的英文水平实在有限,屏幕上的大串英文字母对我来说与乱码无异,蓝屏的次数多了,也就预示着我又要重装系统了。</p> +<p>win98下打游戏很爽,我打电脑游戏的时代也基本上就是大学那几年,星际争霸、红警、剑侠情缘、大菠萝2、极品飞猪(车)5,这些游戏在我的赛扬600下跑的也很顺畅,目前的硬件配置拿到我的大学时代能把人美死(不美死也吓死),可是我已经基本没心思再打游戏了。</p> +<p>大学快毕业的时候,windowsxp横空出世,我终于忍不住诱惑,装了一个英文版(那时还没出中文破解版),谁知,xp竟不由分说(也许是说了,我没看懂)把我的C盘给格式化成了NTFS格式,当我新鲜劲儿一过,想要再重装win98时,由于在DOS下无法识别NTFS磁盘,导致我误把D盘给格式化了,几年的积累化为乌有,气得我在床上跳来跳去,疯了一样。</p> +<p>现在,虽然硬件飞速的发展,内存都快有那时的硬盘大了,可是随着操作系统越来越臃肿,感觉计算机的速度却没有多大提升,仍然要启动老半天,打开一个word文档还是磨磨叽叽的。</p> +<p>有时候不禁要想,拼命的升级硬件、换代计算机,究竟有什么意义?</p> +<p>算了,不说了,洗洗睡吧,与其说是有点儿怀念win98,倒不如说是想念那一段&quot;纯洁的&quot;求学的时光,这个话题一旦摊开来说就唠远了,还是就此打住吧。</p> +<p>ps:我发现写博客固然很爽,但是往往勾起人的回忆,而回忆呢,又往往是美好滴,一美好就难免会想抽根烟,看来我也要&quot;珍惜生命,远离博客&quot;了。</p>珍爱生命,远离手机https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/Fri, 25 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%8F%8D%E7%88%B1%E7%94%9F%E5%91%BD%E8%BF%9C%E7%A6%BB%E6%89%8B%E6%9C%BA/<p>对于使用手机,我有一个不良习惯,喜欢在睡觉的时候把手机放在枕头旁边,而且是24小时不关机,只有这样我才睡的踏实。</p> +<p>之所以这样儿,是因为我是把手机作为闹钟来用的,放的近一些首先可以保证它在关键时候叫醒我,其次是,这样我就可以迅速把闹铃关掉,然后再睡一会儿。</p> +<p>今天看了一条新闻,让我十分不安,有专家跳出来说“应该让手机远离头部”因为,“手机发出的电磁辐射可以致癌”。</p> +<p>哦卖糕的!以后睡觉的时候干脆把手机放在脚边算了,每当早上它吵醒我美梦的时候,我可以飞起一脚把它踢到地上。</p>原来这句话是这个意思啊https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/Wed, 23 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%9F%E6%9D%A5%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E8%BF%99%E4%B8%AA%E6%84%8F%E6%80%9D%E5%95%8A/<p>《论语》有云&quot;唯女子与小人为难养也&quot;,这句话的意思伤了一大批人,现在有人跳出来给出了新解释:&quot;女&quot;通&quot;汝&quot;,&quot;女子&quot;即&quot;汝子&quot;,即&quot;你的孩子&quot;;&quot;养&quot;指&quot;教养、教育&quot;,全句是说&quot;你的孩子有类似小人习气就不好教育了&quot;。</p> +<p>&quot;这是个教育问题,小孩会因为溺爱而放纵自己,对大人的管理充满埋怨,不就像小人?&quot;</p> +<p>我联想到另外一些新解:</p> +<p>关于孔子的收费标准三十而立:交三十升米者,可以在后面站立听课。</p> +<p>   四十不惑:交四十升米者,允许提问,直至没有疑问为止。</p> +<p>   五十知天命:交五十升米者,可以知道明日考试之命题。</p> +<p>   六十耳顺:交六十升米者,先生会说些你喜欢听的话,让你耳顺。</p> +<p>   七十从心所欲:交七十升米者,听课要躺要坐,想来不来,一切随便。  </p>别想不开啊https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/Tue, 22 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%AB%E6%83%B3%E4%B8%8D%E5%BC%80%E5%95%8A/<p>郁闷或高兴的时候我总是想抽根烟,比如,当我的代码总是调试失败或者刚修改完一个Bug的时候。</p> +<p>办公室里不允许抽烟,否则我们屋肯定和火车的车厢连接处一样,整天烟雾缭绕,这样就剥夺了一小撮人不抽烟的权利。</p> +<p>所以,抽烟的兄弟只能到厕所旁边的那个阳台吞云吐雾了。</p> +<p>这样也好,一边抽着&quot;混合味儿&quot;的香烟,一边欣赏窗外的风景,既满足了肺对于尼古丁的需求,又能放松一下疲倦的眼睛。</p> +<p>楼层不低,所以看得也挺远的,如果眼神儿和天气都足够好的话,甚至可以看见鸟巢里工人师傅的焊枪发出的耀眼蓝光。</p> +<p>下班的时候,我又去抽了一根烟,一个人。</p> +<p>远处的大楼在烟雾中显得虚无缥缈。</p> +<p>我手扶着窗户,探出头去,想看得清晰一些。</p> +<p>这时,一个哥们从厕所走出来,一边提着拉链一边语重心长地说:&quot;别想不开啊!&quot;</p> +<p>我靠!我有啥想不开的?</p> +<p>工作虽然累点儿,但是,祖国还需要我,人民还需要我,老婆做好的饭菜还在桌子上等着我,孩子还等着我回去辅导功课&hellip;&hellip; </p> +<p>算了,回去了,明天又是崭新的一天,但愿今天不堵车。</p>一块钱一斤https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/Mon, 21 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E5%9D%97%E9%92%B1%E4%B8%80%E6%96%A4/<p>现在电脑基本上已经普及了,我老家的一个师范同学,去年买了电脑之后,非常迷恋电脑的知识,经常通过qq来问我各种问题,我也是基本上都耐心回复。</p> +<p>后来这厮竟然越来越来劲,已经不满足于普通的日常使用了,有一天就问我编程序到底好玩不好玩儿?我有心把它带进沟里,就告诉他编程序十分有意思,写完程序后很有成就感和快感。</p> +<p>这家伙终于着迷了,发誓要学会写程序,我就把老谭的那本《C程序设计》推荐给他看。</p> +<p>他看了之后一头雾水,说是像看天书一般,遂跟我唠叨十分后悔没念大学。</p> +<p>后来我被他缠的没办法,就告诉他应该先把基础打好,他说也对,不妨就把大学里的计算机课程给全过一遍。</p> +<p>我靠,佩服!让我肃然起敬。</p> +<p>不过,我大学里的书基本上都找不到了,就把课程的书目大体上给他说一遍,让他自己淘弄去,实在不行就去书店买,然后就有一阵子没有联系。</p> +<p>今天突然上线告诉我所有的书都买到手了,大概有十几本,我更佩服他的精神了,作为一个业余爱好者也太舍得了。</p> +<p>我问他:&quot;你哪儿买的书啊?现在书那么贵,花了不少钱吧?&quot;这家伙半天没吱声,过了一阵儿给我来了一句:&quot;没多少钱,比你上学时买的便宜多了,我让亲戚在大学旁边的废品收购站买的,你说的那些书全都有,九成新的!一块钱一斤!&quot;</p>颐和园https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/Mon, 21 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A2%90%E5%92%8C%E5%9B%AD/<p>这几天,老爸老妈过来了,我也没有太多时间陪他们。</p> +<p>周末了,一起去了趟颐和园。</p> +<p>天太热,人太多,出去玩儿实在是太受罪了。</p> +<p>吃晚饭时与我爸一起整了几盅,正想多喝几杯时,老头按住酒瓶说:“编程序我不行,喝酒你不行。”</p> +<p>想去电脑上玩会儿游戏,我妈指着电脑屏幕上一路飙升的qq斗地主分数对我说:“编程序我不行,打牌你不行。”</p>家人来到https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/Tue, 15 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%AE%B6%E4%BA%BA%E6%9D%A5%E5%88%B0/<p>接风,洗尘、喝酒</p>偏执狂https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/Mon, 14 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%8F%E6%89%A7%E7%8B%82/<p>看到了一篇关于电脑偏执狂的帖子,发现里面列举的内容大部分都像是在说我。</p> +<p>比如:Windows桌面只放三个图标:&quot;我的电脑&quot;、&quot;回收站&quot;、&quot;浏览器&quot;回收站永远保持&quot;清空&quot;状态,删除文件都是用Shift+Delete,根本不用进回收站所有软件都使用最新版,打上最新的补丁每隔一段时间就清理一次注册表如果有个软件用的不是最新版本就会浑身不自在</p> +<p>补充:看到别人的电脑不是处于最佳状态也会浑身不自在,想冲过去调理一番如果同样功能的软件有商业版和免费版的话,就打心眼儿里觉得免费版的那个更可爱经常整理磁盘碎片经常整理删除磁盘上的文件,有时候上午刚删完一个文件,到下午就发现那个文件还有用任务栏上同时打开窗口超过四个就觉得难受,如果把程序隐藏在系统栏就感觉好多了新建文件夹时不喜欢用&quot;新建文件夹&quot;来命名</p>自制果汁https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/Sun, 13 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E5%88%B6%E6%9E%9C%E6%B1%81/<p>大早上一起来,打开电视(就是我那个用Python写的小程序),凤凰卫视里的沈星正在介绍&quot;美女私房菜&quot;,正在纳闷原来美女还会做菜,结果令我十分失望,只见她拿了个番茄,随便切几下,往搅拌机里一扔,嗡嗡两下,搅成糊状,美其名曰&quot;营养瘦身果汁&quot;。</p> +<p>咳,正愁着早饭不知吃啥,干脆试一下吧。</p> +<p>从冰箱里拿出番茄,又刷了刷我那半年多没用过的搅拌机(当时为啥要买它?),搅拌之前又撒了些白糖,喝了果然神清气爽,看来,这个搅拌机还挺有用,这样吃番茄(应该是喝)比起放在嘴里生嚼别有一番滋味。</p> +<p>到了傍晚的时候,闷的慌,出去溜达的时候又想起自制果汁的事儿来,干脆这次来做一个真正的果汁。</p> +<p>买来西瓜一只、蜜桃若干、猕猴桃若干、青苹果、黄瓜,本来我还想加点儿芹菜,但是买不到了。</p> +<p>回到家,将这些水果切成丁、片,一股脑儿放入搅拌机,嗡嗡搅了一分来钟,足足做了一大杯,让我想想,西瓜消暑、猕猴桃富含维生素、青苹果酸中带甜,这杯什锦果汁应该是比早上那个强多了吧。</p> +<p>迫不及待喝了一口,靠,说不出的滋味,各种味道窜来窜去,就像是吃烂桃的时候再就着两口酸苹果,没办法,反正有营养,那就喝吧。</p> +<p>喝到大半杯的时候我才想起来,我刚才要是把西瓜的皮儿去掉就好了。</p>每个周六的晚上是我乐兴大发的时候https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/Sat, 12 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E5%85%AD%E7%9A%84%E6%99%9A%E4%B8%8A%E6%98%AF%E6%88%91%E4%B9%90%E5%85%B4%E5%A4%A7%E5%8F%91%E7%9A%84%E6%97%B6%E5%80%99/<p>我的吉他弦断了,刚断的,就在我弹那曲《两只老虎》的时候。</p> +<p>没办法,为了能压住隔壁装修的声音,我在弹的时候多使了点劲儿。</p> +<p>幸好我未雨绸缪,买吉他的时候就多买了几根琴弦,今天终于用上了,不过,还是费了老半天劲儿才把弦儿装好。</p> +<p>这让我想起一个传说,爱好古琴人都知道这个神秘传说。古代有两人,一个叫俞伯牙,一个叫钟子期。有一天,俞伯牙琴兴大发,在他家空旷的后院里(也可能是在河边,记不清了),摆好琴,焚香沐浴后,惬意地抚上一曲。一时间,悠扬的曲子飘满了整个院子,向远方扩散。</p> +<p>俞伯牙正沉浸在曼妙的琴声里,突然,&ldquo;啪&quot;地一声脆响,琴弦断了。他向远处一望,原来是钟子期这家伙打完柴在这儿偷听他弹琴。钟子期不但听懂了他的曲子,而且对他这把琴的来历也说得头头是道,后来俩人成了好哥们儿。</p> +<p>就此打住,问题的重点并不是这俩人后来成了好哥们儿,关键是这个故事说明了一个问题:当有人偷听你弹琴的时候,你的琴弦就会断掉。反过来说,如果哪天你的琴弦断了,那么,在某一个角落里,有一个粉丝正在偷听你的琴声。</p> +<p>话说有一个人叫张三,酷爱抚琴,苦于没有知音。一日,在抚琴时琴弦终于崩断,此人对刚才的传说深信不疑,急忙起身,想要寻找那位来偷听的&quot;粉丝&rdquo;,果然,在角落里找到了他。张三欣喜不已,激动地握着&quot;粉丝&quot;的手说:&ldquo;同志!我可找到你了!&ldquo;却又发现这位粉丝已经陶醉于音乐之中,正在轻轻地啜泣。</p> +<p>张三感慨万千:&ldquo;终于有人懂我的琴艺了!&ldquo;忙将此人请入家中,沏茶倒水,欲询问此人对他刚才所奏之曲的感受。此人好不容易才止住哽咽,断断续续说道:&ldquo;本来我在睡午觉,忽听得先生的琴声,就顺着声音走到这里来了。&rdquo;</p> +<p>&ldquo;那又为何哭泣呢,我刚才所奏之曲虽有哀怨之意,听了却也不必如此悲痛吧?&rdquo; 张三不解地问道。说道此处,此人痛苦地干嚎两声,说道:&ldquo;之所以伤心,是因为我心里难受,先生的曲子让我想起我死去的舅舅,先生的曲子与我舅舅的曲子有一样的声音。&rdquo; 张三更加欣喜:&ldquo;敢问你舅舅是哪位大音乐家啊?&quot;,&ldquo;音乐家倒谈不上。&quot;,&ldquo;哦,那他是干什么的?&quot;,&ldquo;他是,弹棉花的&hellip;&quot;,&rdquo;#@$%^#$%^#$%^&rdquo;</p>你知道父母的生日吗?https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/Fri, 11 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%A0%E7%9F%A5%E9%81%93%E7%88%B6%E6%AF%8D%E7%9A%84%E7%94%9F%E6%97%A5%E5%90%97/<p>单位要员工填写一张个人信息表,其中有一项内容是父母的出生年月(填的还真够细),很多人都填不上来。</p> +<p>我还好,前一段时间刚好在msn上和妹妹一起聊到了父母的年龄,赶紧翻看msn记录,终于找到了妹妹通过msn告诉我的出生日期(看来养儿子真不如养女儿)。</p> +<p>突然想起一个电视节目,在大街上现场采访,随便拉个人去问他父母的生日,结果大部分都张口结舌,答不上来。</p> +<p>自己的生日记得很清楚,老婆的生日记得很清楚,儿子的生日记得很清楚,有些人甚至领导的小舅子的孩儿他妈隔壁邻居的生日都记得很清楚,可是却把父母的生日抛在脑后,惭愧啊。</p>开幕式那天,使用哪种点火方式?https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/Thu, 10 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%BC%80%E5%B9%95%E5%BC%8F%E9%82%A3%E5%A4%A9%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E7%82%B9%E7%81%AB%E6%96%B9%E5%BC%8F/<p>据说已有了定论,但还是个秘密,老张还在卖关子。</p> +<p>我有同事猜测,应该是派一只大熊猫举着火把去点燃,还有哥们儿说还不如让猪坚强去点燃。</p>eeepc 使用技巧(4) 看电视https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/Wed, 09 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A74-%E7%9C%8B%E7%94%B5%E8%A7%86/<p>用小e在床头看电视在合适不过了,不过我没找到Linux下的网络电视软件。</p> +<p>找来找去,发现一些可以用mplayer播放的mms链接,试了一下效果还不错,几个著名的电视台都有对应的链接,比如:</p> +<p>凤凰卫视中文台mms://58.22.96.10/litv01;</p> +<p>凤凰卫视资讯台mms://58.22.96.10/litv03;</p> +<p>但是我的mplayer是基于命令行的,每次要看电视的时候还需把这些链接输入进去,感觉很不方便。</p> +<p>刚好这两天对Python这个脚本语言比较感兴趣,于是想用Python写一个脚本来帮我输入这些链接。</p> +<p>由于对Python还不熟,所以写的界面很丑,不过也够我用了。</p> +<p>具体思路是,将这些链接首先存入一个文本文件里保存为channel.data,</p> +<p>内容如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">凤凰卫视中文台|mms&amp;#58;//58.22.96.10/litv01; +</span></span><span class="line"><span class="cl">凤凰卫视资讯台|mms&amp;#58;//58.22.96.10/litv03; +</span></span><span class="line"><span class="cl">东风卫视|mms&amp;#58;//58.22.96.10/litv07; +</span></span><span class="line"><span class="cl">精品影院|mms&amp;#58;//218.1.70.72&amp;#58; +</span></span><span class="line"><span class="cl">1755/JingPinYingYuan; +</span></span><span class="line"><span class="cl">东方卫视|mms&amp;#58;//live.smgbb.cn/dfws; +</span></span><span class="line"><span class="cl">星空卫视|mms&amp;#58;//58.22.96.10/litv06; +</span></span><span class="line"><span class="cl">TVB8|mms&amp;#58;//58.22.96.10/litv05; +</span></span></code></pre></td></tr></table> +</div> +</div><p>然后写一个python脚本读取这些链接并将电视台的名称填入界面中的一个列表框里,到时候通过点击名称就可以播放了。</p> +<p>python脚本内容如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span><span class="lnt">15 +</span><span class="lnt">16 +</span><span class="lnt">17 +</span><span class="lnt">18 +</span><span class="lnt">19 +</span><span class="lnt">20 +</span><span class="lnt">21 +</span><span class="lnt">22 +</span><span class="lnt">23 +</span><span class="lnt">24 +</span><span class="lnt">25 +</span><span class="lnt">26 +</span><span class="lnt">27 +</span><span class="lnt">28 +</span><span class="lnt">29 +</span><span class="lnt">30 +</span><span class="lnt">31 +</span><span class="lnt">32 +</span><span class="lnt">33 +</span><span class="lnt">34 +</span><span class="lnt">35 +</span><span class="lnt">36 +</span><span class="lnt">37 +</span><span class="lnt">38 +</span><span class="lnt">39 +</span><span class="lnt">40 +</span><span class="lnt">41 +</span><span class="lnt">42 +</span><span class="lnt">43 +</span><span class="lnt">44 +</span><span class="lnt">45 +</span><span class="lnt">46 +</span><span class="lnt">47 +</span><span class="lnt">48 +</span><span class="lnt">49 +</span><span class="lnt">50 +</span><span class="lnt">51 +</span><span class="lnt">52 +</span><span class="lnt">53 +</span><span class="lnt">54 +</span><span class="lnt">55 +</span><span class="lnt">56 +</span><span class="lnt">57 +</span><span class="lnt">58 +</span><span class="lnt">59 +</span><span class="lnt">60 +</span><span class="lnt">61 +</span><span class="lnt">62 +</span><span class="lnt">63 +</span><span class="lnt">64 +</span><span class="lnt">65 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span> +</span></span><span class="line"><span class="cl"><span class="c1"># -*- coding: UTF-8 -*-</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span> <span class="o">*</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">os</span> +</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">string</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="k">class</span> <span class="nc">Application</span><span class="p">(</span><span class="n">Frame</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">clist</span> <span class="o">=</span> <span class="nb">list</span><span class="p">({})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">play_channel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">channel_url</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">strcmd</span> <span class="o">=</span> <span class="s1">&#39;mplayer &#39;</span> <span class="o">+</span> <span class="n">channel_url</span> <span class="o">+</span> <span class="s1">&#39; -cache 1024&#39;</span> +</span></span><span class="line"><span class="cl"> <span class="n">str_output</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">popen</span><span class="p">(</span><span class="n">strcmd</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="n">a</span> <span class="o">=</span> <span class="n">str_output</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&#34;</span><span class="se">\\</span><span class="s2">&#34;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">bin_a</span> <span class="ow">in</span> <span class="n">a</span><span class="p">:</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">bin_a</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">channel_url</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">play_tv</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">curselection</span><span class="p">()[</span><span class="mi">0</span><span class="p">])])</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_channel</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">curselection</span><span class="p">()[</span><span class="mi">0</span><span class="p">])])</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">init_channel_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listbox</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;tvchannel.dat&#39;</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_info</span> <span class="o">=</span> <span class="n">channel_file</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">channel_info</span><span class="p">)):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_list</span> <span class="o">=</span> <span class="n">channel_info</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;;&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">channel_list</span><span class="p">)):</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel</span> <span class="o">=</span> <span class="n">channel_list</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_name</span> <span class="o">=</span> <span class="n">channel</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> <span class="n">channel_url</span> <span class="o">=</span> <span class="n">channel</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span></span><span class="line"><span class="cl"> <span class="n">listbox</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">END</span><span class="p">,</span> <span class="n">channel_name</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">clist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">channel_url</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="nf">create_widgets</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;text&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&#34;Quit&#34;</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;command&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">quit</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;width&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">30</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="p">[</span><span class="s2">&#34;height&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">quit_button</span><span class="o">.</span><span class="n">pack</span><span class="p">({</span><span class="s2">&#34;side&#34;</span><span class="p">:</span> <span class="s2">&#34;left&#34;</span><span class="p">})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;text&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&#34;Play TV&#34;</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;command&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;width&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">30</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="p">[</span><span class="s2">&#34;height&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">play_tv_button</span><span class="o">.</span><span class="n">pack</span><span class="p">({</span><span class="s2">&#34;side&#34;</span><span class="p">:</span> <span class="s2">&#34;left&#34;</span><span class="p">})</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span> <span class="o">=</span> <span class="n">Listbox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">init_channel_list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">selection_set</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">channellistbox</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">master</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span></span><span class="line"><span class="cl"> <span class="n">Frame</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">master</span><span class="p">)</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> <span class="bp">self</span><span class="o">.</span><span class="n">create_widgets</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"> +</span></span><span class="line"><span class="cl"><span class="n">app</span> <span class="o">=</span> <span class="n">Application</span><span class="p">()</span> +</span></span><span class="line"><span class="cl"><span class="n">app</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span> +</span></span></code></pre></td></tr></table> +</div> +</div><p>保存为playtv.py,和刚才那个channel.dat放在一个目录,运行即可(python./playtv.py)。</p>假如工作总结这样写https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/Tue, 08 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%87%E5%A6%82%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93%E8%BF%99%E6%A0%B7%E5%86%99/<p>半年很快过去了,领导又安排写工作总结。</p> +<p>写完之后感觉意犹未尽,不如把这半年的生活也总结一下,为了增加总结的趣味性,再此,我特意虚拟了一个记者出来。</p> +<p>记:2008已过去大半年,能不能谈一下你这半年都是在忙些什么呢?</p> +<p>我:可以,上班忙工作,下班忙生活。</p> +<p>记:哦,能不能说一下具体都是忙些什么工作呢?</p> +<p>我:工作上的事情我是不会在博客里说的,我刚写了一份上半年工作总结,一会儿可以给你看一下。</p> +<p>记:好的,那谈一下生活吧。</p> +<p>我:好的,因为我经常加班,所以其实我的生活也基本上就是工作,你还是看工作总结吧。</p> +<p>记:靠!你到底要不要接受采访,玩儿我呐?</p> +<p>我:你还真不懂幽默,咱们国家就是你这样儿的记者太多了。</p> +<p>好吧,给你说一下最近的情况。</p> +<p>记:请问,这半年你的周末都是怎样度过的?</p> +<p>我:大部分周末是在加班,另外由于我是一个很低调的人,所以剩下的时间都宅在家里。</p> +<p>记:宅?这个我知道,据说是一种生活方式,就是呆在家里不出门是吧?周杰伦还有一首歌叫《阳光宅男》呢!</p> +<p>我:你真聪明。</p> +<p>记:在家里干嘛呢?</p> +<p>我:无聊的时候我会谈谈琴看看书,如果有时间我会每周看一部电影。</p> +<p>记:你刚才不是说呆在家里不出去吗?怎么还去影院看电影?</p> +<p>我:刚夸完你的智商你就开始喘啦?谁说上电影院了,现在影院的票价那么贵,而且放的又是剪切版的,网络那么发达,片源很丰富,所以,我是在家看的。</p> +<p>记:说到&quot;剪切版&quot;请谈一下你对《色戒》这部影片的看法。</p> +<p>我:哦,这个我在网上看的也是剪切板的,不过看的是被剪掉的那部分,由于看的也不完整,所以也不便于发表看法。</p> +<p>而且,我比较怀旧,平时看的大部分都是多年前的老片。不过最近的《功夫熊猫》也挺不错。在看的过程中发现精品后我一般会在博客里记录下来。</p> +<p>记:你刚才说到无聊时会看书,都是看些什么书?</p> +<p>我:我还是比较怀旧,想把以前上学时没看过的小说给补一补,金庸和古龙的小说看了好几遍了,最近又复习了一遍《射雕》。</p> +<p>另外这半年还看了《我这一辈子》、《月牙儿》、《白豆》、《许三观卖血记》等中篇小说,上学时,家长不让我看这些小说,现在得补回来。</p> +<p>记:(撇撇嘴)我还以为是《鬼吹灯》、《诛仙》呢。</p> +<p>我:哦,这些我也想看,不过我胆儿小,一个人不敢看,怕失眠,我失眠挺严重的。</p> +<p>记:你刚才说无聊时还要弹琴,是弹钢琴还是吉他?</p> +<p>我:钢琴太贵,买不起,我弹电子琴、吉他、电脑键盘、吹口琴等。</p> +<p>记:(吁!)您的爱好还真够广泛的。看来这半年您过得还真是挺充实惬意的。</p> +<p>我:惬意个P呀,老婆不在身边,没人聊天,没人做饭,我孤独得都快抑郁了。不过她很快就要来了。</p> +<p>记:祝贺你啊。聊了半天,你能不能总结一下你这半年的心得和收获?</p> +<p>我:可以,这半年,我看了不少电影,新喜欢上几首好歌,又恢复了打篮球,身体状态也在恢复。</p> +<p>另外我迷恋上了Linux操作系统。至于收获嘛,真是说不好,有些事儿不能说。</p> +<p>记:好的,感谢你抽出时间接受采访,谢谢,再见。</p> +<p>我:再见。</p>不要忘记https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/Mon, 07 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0/<p>7.7</p> +<p>71年前的今天,中国开始了长达八年的抗日战争。无需多言。</p>有音乐就有春天https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/Sun, 06 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E9%9F%B3%E4%B9%90%E5%B0%B1%E6%9C%89%E6%98%A5%E5%A4%A9/<p>有音乐就有春天,当我写下这句话,撇了撇嘴,我想,我还挺能装啊。</p> +<p>不过,这么说是因为刚刚看了一部电影&ndash;《放牛班的春天》,法国人拍的,很细腻,有一点小幽默。</p> +<p>故事讲的是一个迷恋音乐的教师与一群工读生的故事,工读学校管理混乱,体罚学生,学生自暴自弃到处做恶作剧。直到克莱门特来了,这个秃头的中年男人,看上去还有些磨叽。</p> +<p>然而,这些孩子马上就发现了新老师的与众不同,因为他唯一的皮包里装的仅仅是几张乐谱,而且他把这些视为生命。</p> +<p>克莱门特渐渐发现这些孩子原来也热爱音乐,这使他重新燃起创作激情,他把这些孩子根据特点编成了一个合唱团。</p> +<p>通过教授音乐,他不仅感觉这些孩子原来唱歌不错,而且组建合唱团也使他们变得不那么调皮了,音乐拉近了他们的距离。</p> +<p>然而,事情不会那么顺利,皮埃尔这孩子就很难对付,他声线极美却极难驯服,克莱门特不断挖掘他的优点,还说服他的母亲让他去读专业的音乐学校。</p> +<p>期间还有一段小插曲,那就是克莱门特与皮埃尔的单身母亲还产生了一点儿小感情,不过克莱门特很含蓄,一直埋在心里,影片在这一段处理的很不错。</p> +<p>影片的配乐很精彩,最让人陶醉的就是这些孩子天使般的歌声了,沉静又富有感情,天籁、天籁就是打这儿来的吧。</p> +<p>最后当克莱门特因得罪校长而被辞退的时候,这些孩子被命令不准送他,他孤独走向大门,此时优美的合唱响起,天空中飘满了孩子们折的纸飞机,上面写着祝福的话,孩子们用这种特殊的方式与他告别。</p> +<p>他用音乐给孩子们带来了春天,留下了春天,却又孤独地离去。</p>哈哈太棒了https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/Sat, 05 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%93%88%E5%93%88%E5%A4%AA%E6%A3%92%E4%BA%86/<p>晚饭毕,弹了一会儿电子琴,感觉很投入。</p> +<p>就是那种摇头晃脑的投入,脚也随着音乐的节奏踏着地板,忽闻岸上踏歌声就是这个踏吧。</p> +<p>感觉我的琴技提升了啊,左手和弦右手旋律,配合得天衣无缝,第一次有演奏的感觉,弄得动静比较大,不知道会不会吵到别人。</p> +<p>看来我天生会弹琴,曲谱都在心中,美妙的音符随着手指流淌出来,至少我是这么以为的。</p> +<p>有没有听到那个声音</p> +<p>就像是我忽远忽近</p> +<p>告诉你他来自我的心</p> +<p>带来一首苍老的歌</p> +<p>对着你轻轻的说</p> +<p>我不在乎春夏秋冬花开花落</p> +<p>任凭这夜越来越深</p> +<p>你在我心中越来越沉</p> +<p>压的我不能翻身作自己的主人</p> +<p>任凭这灯越来越昏</p> +<p>你在我眼中越来越真看得清你满脸的风尘</p> +<p>任凭这天空越来越湛蓝</p> +<p>你在我身边越来越平凡</p> +<p>可是有些说过的话一直没能改变</p> +<p>任凭这旅程越来越孤单</p> +<p>你在我面前越来越茫然</p> +<p>丢不下的行李</p> +<p>是我不变的心</p>留意了一下我的blog评论https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/Sat, 05 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%95%99%E6%84%8F%E4%BA%86%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84blog%E8%AF%84%E8%AE%BA/<p>无意间看到我写的几篇日志竟有人评论,想不到这个我发发牢骚的地方竟还有人访问哈。</p> +<p>而且,看起来,我写的颇为不错(嘻嘻)。</p> +<p>ps:感谢SEA同学的捧场。</p>我淋了一场大暴雨!https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/Fri, 04 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%B7%8B%E4%BA%86%E4%B8%80%E5%9C%BA%E5%A4%A7%E6%9A%B4%E9%9B%A8/<p>就在下班的时候,天还没有要下雨的样子。</p> +<p>我悠然地吃完了晚饭,然后慢吞吞地走向车站,准备回家。此时天上却落起了雨滴,不大,我想肯定又要堵车了,就买了本《读者》准备在车上看。车行驶到路上的时候,雨真的大起来了,雨点密密地砸在车顶和车窗上,彭彭作响,车窗外的景象被雨水冲得模糊不清。</p> +<p>雨越来越大,公交车就像一只潜水艇,四周都被水包围了。</p> +<p>到站而没有带伞的乘客,咬咬牙狠狠心跳下车去,很快就消失在茫茫雨雾中。</p> +<p>终于,我也要下车了,我带了伞,但我还是太低估了这场雨,我甚至想象在雨中点根烟,那该是多么惬意啊。</p> +<p>然而,我这把伞应付毛毛细雨还凑合,外面下着倾盆大雨,又刮着狂风,闪电在头上不停地把天撕开一个又一个裂口,这把伞仅能护住我的头,被风吹得翻过来复过去。</p> +<p>也许是我&quot;点根烟&quot;的想法激怒了老天,风雨越来越猛,马路变成了一条河,泛起一阵阵波浪,我不由自主地奔跑起来,拼命抱紧了我的电脑包,那里面装着我心爱的笔记本电脑。</p> +<p>几分钟的路程,把我淋得狼狈不堪,衣服湿透了,鞋子里灌满了水,终于,我跌跌撞撞地跑到了家门口。</p> +<p>我想这是我有生以来淋得最大最惨的一场雨了。</p> +<p>现在,我洗完了热水澡,沏了一杯热茶,窗外,雨已经停了。</p>怎样使用VC6的远程调试https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/Thu, 03 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E4%BD%BF%E7%94%A8vc6%E7%9A%84%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/<p>今天遇到一个问题,我们的程序在本地执行一切正常,但在售后的一台笔记本电脑中却无法启动且爆出runtimeerror。</p> +<p>无奈只有通过调试来查找问题所在,由于该笔记本并未安装开发环境,于是想到了VC6的远程调试。上网翻看资料,写的都不太详细,摸索半天终于成功,并通过远程调试搞定了程序的问题。</p> +<p>现将远程调试的详细操作记录下来以备忘。</p> +<p>1、需机器两台:一台为调试机(装有VC6开发环境),一台为客户机(运行程序)</p> +<p>2、假定客户机的ip地址为192.168.0.168</p> +<p>3、假定需要运行调试的程序放在客户机的C\emote_bin\emote_test.exe</p> +<p>4、共享客户机C:\emote_bin文件夹,并开放所有权限(读、写),共享名为remote_bin;</p> +<p>5、在调试机上映射客户机remote_bin共享目录为&quot;Z&quot;盘(可在cmd中执行&quot;netusez:\\192.168.0.168\emote_bin&quot;) </p> +<p>6、拷贝调试机上VC6安装目录下的Bin目录中的全部内容到客户机任意位置(该目录在调试机的路径一般为&quot;C:\ProgramFiles\MicrosoftVisualStudio\COMMON\MSDev98\Bin&quot;),在此假定拷贝在客户机的&quot;C:\Debugger&quot; </p> +<p>7、在客户机运行&quot;C:\Debugger\MSVCMON.exe&quot;,启动后再对话框上直接点击&quot;Connect&quot;按钮(不用点&quot;Setting&quot;按钮),期间如有防火墙告警提示,需允许该程序。 </p> +<p>8、回到调试机,打开VC6并打开要调试的工程文件(再此为remote_test),在VC6的&quot;Build&quot;菜单下点击&quot;DebuggerRemoteConnection&quot;,在弹出的对话框左侧选择&quot;NetWork(TCP/IP)&quot;,点击右侧&quot;Setting&quot;按钮,填入客户机ip地址(192.168.0.168)点击&quot;ok&quot; </p> +<p>9、点击VC6的&quot;Project&quot;菜单下&quot;Setting&quot;,切换到Link页面,在Outputfile中填入&quot;Z:\emote_test.exe&quot;,切换到Debug页,在Executablefordebugsession中填入&quot;Z:\emote_test.exe&quot;,在Remoteexecutablepathandfilename中填入&quot;C:\emote_bin\emote_test.exe&quot;(注意:此行甚为重要,需填写程序在客户机的完整路径) </p> +<p>10、大功告成,按F7编译可执行文件,按F5开始远程调试吧!</p>求雨妙招https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/Wed, 02 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B1%82%E9%9B%A8%E5%A6%99%E6%8B%9B/<p>入夏以来,大家打篮球的热情空前地高涨,频率已经从原来的每周一场提升到每周两场,较上年同期提升了100个百分点(我晕,还是别用新闻联播的语气了)。</p> +<p>不仅如此,每次打球的时间也有所延长,基本上都是从下班打到天黑,中间不休息、不换人,三个小时下来,基本上都口吐白沫,胳膊抽筋,两股战战几欲先走。</p> +<p>然而天公总是不作美,近日一连串的雨天,严重打乱了我们的打球计划。</p> +<p>基本上每次打球都要下雨,而且时间也选在下班前后。</p> +<p>每当约定好打球日期,第二天带齐了球衣和球鞋,下班后刚给篮球打满气,还没来及拿起来在手指上转一下,只见天空一道闪电,紧跟着大雨倾盆而下,大家只得各自回家收衣服。</p> +<p>同事们都感叹又发现一求雨的新招数,无论哪个地方干旱少雨,只需我们带齐装备过去打球,过不多时必有甘霖降落。</p> +<p>今天,大家没带球衣,也没带球鞋,篮球也没打气,天,晴了!</p>断网一天的感受https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/Tue, 01 Jul 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%AD%E7%BD%91%E4%B8%80%E5%A4%A9%E7%9A%84%E6%84%9F%E5%8F%97/<p>公司的光纤今日出了故障,整整一天无法上线,感受如下:</p> +<p>1、无法与出差现场的同事交流,同事亦无法访问公司网络,导致工作受阻。</p> +<p>2、IM软件不能上线,家人朋友都很担心,老妈更是打来电话,问我为什么qq不在线。</p> +<p>3、不能收发电邮,心情焦躁不安。</p> +<p>4、无法获取最新资讯,感觉与世隔绝了。</p> +<p>5、GoogleReader积累了200+的未读条目,原来我订阅了这么多信息。</p> +<p>6、终于修好了,爽!</p>终于见识了Vistahttps://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/Mon, 30 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%88%E4%BA%8E%E8%A7%81%E8%AF%86%E4%BA%86vista/<p>昨天,一朋友新买了台笔记本,预装WindowsVista操作系统,我拿到手把玩一会儿,见识了传说中的Vista。</p> +<p>界面确实是漂亮了许多,确切的说是比起我用的XP界面华丽了很多,但是咱也有Ubuntu啊,Linux下的界面也不是盖的。</p> +<p>至于速度呢,真是让人难以接受(忍受),想不通微软那帮儿天才是不是故意把系统弄得这么慢,明明硬件配置已经很高了,要是跑xp能让它飞起来,但是Vista却慢慢吞吞咿咿呀呀哼上老半天,让我想到了我十年前第一次启动Win98。</p> +<p>同样,关机也是很慢,一副可怜兮兮、依依不舍的样子,恨不得让你直接拔电池。</p> +<p>Vista另一个让我不爽的方面应该就是UAC(用户帐户控制)了,对于这个功能,我的理解就是典型的掩耳盗铃,因为随便你运行个什么程序系统都会不厌其烦地弹出一个框,告诉你这是个陌生程序,它不确定是否安全,问你是否继续,如果你允许了,那么他也就没有任何责任了。</p> +<p>可是我又怎么知道这个程序有没有威胁?我要是知道我还会运行它吗?</p> +<p>靠!今天看到消息说,从本周一起微软就再也不买XP了,这也就意味着,你如果还想用Windows以后只能买Vista了。</p> +<p>以后再买笔记本也只能预装Vista了,一句话,微软要逼着我们用他的新系统了。但我还是决定对xp&quot;不抛弃,不放弃&quot;,这次Vista的使用经历更是坚定了我的观点,让华丽的Vista见鬼去吧!</p> +<p>ps:不行就用Linux</p>驱蚊良方https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/Sun, 29 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E9%A9%B1%E8%9A%8A%E8%89%AF%E6%96%B9/<p>入夏以来,被蚊子叮咬数次,胳膊的红点竟呈北斗七星状。冥思苦想,得一良方。活捉蚊子一只,将长嘴拔掉,悬挂于床前,众蚊子观其惨状均不敢靠前半步。</p>今天居然不加班https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/Sat, 28 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8A%E5%A4%A9%E5%B1%85%E7%84%B6%E4%B8%8D%E5%8A%A0%E7%8F%AD/<p>像往常一样,周六的早晨匆匆醒来,洗漱完毕拿起包推门而出,忽然想起,今天不加班!</p>是爷们儿就得顶着,看了《太极旗飘扬》https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/Sun, 22 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%AF%E7%88%B7%E4%BB%AC%E5%84%BF%E5%B0%B1%E5%BE%97%E9%A1%B6%E7%9D%80%E7%9C%8B%E4%BA%86%E5%A4%AA%E6%9E%81%E6%97%97%E9%A3%98%E6%89%AC/<p>真实的战争场面和细腻的故事情节让《太极旗飘扬》这部影片成为了和《拯救大兵瑞恩》同样经典的战争片,</p> +<p>我认为甚至超越了后者,因为《拯救大兵瑞恩》带给我更多的是战斗场景的震撼,而太极旗飘扬则在震撼之外又多了一些在情感上的触动。</p> +<p>战争到来的时候,带来了无尽的不幸和灾难,无数的人卷入这残酷的漩涡。</p> +<p>故事的主角&quot;镇泰&quot;本来和家人幸福的生活在一起,弟弟马上就要念大学了,妈妈和妻子开的面摊也刚刚有了起色,而且自己修鞋的手艺也越来越高超,挣钱供养弟弟上大学应该没有问题,虽然他自己连一个字也不识,但是他很满足。</p> +<p>然而,战争的到来让一切幸福都成为泡影,他们兄弟俩很快被抓了壮丁,与亲人失散。</p> +<p>战场上的血雨腥风让他们很快成长起来,每时每刻都有人死去,在战斗中,作为哥哥,镇泰时刻保护着年幼体弱的弟弟,不惜生命的代价。后来他又听到一个传说:&quot;只要得到一枚总统颁发的勋章就可以让一位自己在军队里的亲人回家&quot;他相信了,为了勋章,为了能让弟弟离开战场,他拼了命,甚至让他的弟弟误会他,以为他为了得到荣誉而不顾一切。</p> +<p>他终于拿到了勋章,可是他弟弟却没能回家,他所得到的却是眼睁睁地看着自己贤惠的妻子被战友当作叛徒无情地射杀,那一刻我想他肯定比子弹打在身上还难受。</p> +<p>后来他的弟弟被当作叛徒要被烧死(被救出,但是他不知道,一直认为弟弟被战友烧死了)。</p> +<p>他绝望了,他为了弟弟、为了家人所做的这一切只给他带来了更多的不幸。于是他成了俘虏,他叛变了,他开始疯狂地报复,当两兄弟在战场上互相以敌人的身份见面时,他已经杀红了眼,两人厮杀很久,在弟弟的叫声中他终于清醒了,可是弟弟的部队已经开始败退了,两个人面临生死抉择,弟弟需要撤走,而他需要留下来为弟弟断后。</p> +<p>看到弟弟安全撤走,他欣慰地死去,为了弟弟,他已用尽了自己最后一丝力气。</p> +<p>整部电影想要表达的以及所表达的远不止这些内容,抛开历史的真实性和导演的政治观点不说(这些仁者见仁智者见智,毕竟这是韩国的电影),我觉得一部电影,看完了能够让我思考的,那就是一部好电影。</p> +<p>通过影片我看到了战争带给人们的苦难以及和平的珍贵,看到了生命的脆弱和人性的光辉。</p> +<p>片中很多情节充满血腥,很多情节又饱含温情,看到两兄弟最后战场离别的那一刻,我更看到了,作为一个男人的责任。</p> +<p>当镇泰倒下去,看着弟弟的背影死去,我只想说:&quot;镇泰是个爷们儿,纯的!&quot;</p>算法导论+《赤道和北极》=失眠https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/Fri, 20 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%97%E6%B3%95%E5%AF%BC%E8%AE%BA-%E8%B5%A4%E9%81%93%E5%92%8C%E5%8C%97%E6%9E%81%E5%A4%B1%E7%9C%A0/<p>昨晚又严重失眠,本来想早早睡觉,便从书架上抽出一本比较枯燥的书(《计算机算法导论》)在睡前翻翻,我想这样可以很快睡着。</p> +<p>谁知竟越看越有精神,于是打开收音机,想找个唠叨的主持人催眠一下。</p> +<p>交通台正在放春晓主持的一档音乐节目,这个主持人声音比较有特点(就是那句:“身未动~~心已远~~让我们一起走吧~~~”)</p> +<p>正所谓:男有伍洲彤女有春晓,这俩人的节目用来边听边睡刚好。</p> +<p>忽听得一阵优美的吉他,竟是另一版本的《赤道和北极》,此歌旋律优美,再加上女歌手声线极美,不由得让人思绪万千。</p> +<p>此处省略1千字以后晚上再也不敢听这个音乐节目了,除非不想睡觉。</p>软件需求与“让你丫不戴帽子”https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/Mon, 16 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%AF%E4%BB%B6%E9%9C%80%E6%B1%82%E4%B8%8E%E8%AE%A9%E4%BD%A0%E4%B8%AB%E4%B8%8D%E6%88%B4%E5%B8%BD%E5%AD%90/<p>改了一天的软件bug,发发牢骚:</p> +<p>在软件开发过程中,开发人员最担心的不是客户提出的功能需求从技术上难以实现,而是客户往往毙掉你费尽心血开发的功能,然后天马行空地提出另一套思路,如果你抱着客户就是上帝的想法,满足了他们的变态要求,那么,苦日子接着就来了,因为这些变态的家伙会在软件的功能需求上反反复复、朝三暮四并乐此不疲。</p> +<p>比如你的程序完成了某一项任务后没有提示,他会说“为什么干完了不提示我一下?”</p> +<p>而如果你跳出来提示他又会觉得很烦“干完了为什么还要烦我一下?”,</p> +<p>最后只好弄成可配置,但人家又嫌配置起来太罗嗦,不人性化。</p> +<p>不多说了,想起来一个经典的笑话说兔子跟街上走着,迎面碰上了老狼。</p> +<p>老狼伸手就给他一大嘴巴,“让你丫不戴帽子”。  兔子很郁闷地回家了,弄一帽子戴着。  </p> +<p>第二天又碰上老狼了,又挨了一大嘴巴,“让你丫戴帽子”。  如是几次,总挨打。</p> +<p>兔子想,这么老挨打不是个事儿啊,不行,我得找老虎投诉去。  </p> +<p>刚到老虎家门口,就听老虎在屋里说话。  </p> +<p>你也不能老这么蛮不讲理打兔子阿,回头兔子找我投诉来,我也不好罩着你啊。</p> +<p>好歹咱面子上得过得去,我教你一招。  </p> +<p>下回你见着兔子,跟他说:给我弄点儿洗衣服的来。他给你拿肥皂来,你就打他一顿的,说我要的是洗衣粉,谁让你拿肥皂。他拿来洗衣粉,你也能打,说我要肥皂,谁让你拿洗衣粉。  </p> +<p>要不然你跟他说,去,给我找个女人来。他给你找个胖的,你打他一顿说我要瘦的;给你找个瘦的,你也打一顿,说我要胖的。  这样不结了,你也能打他,我面子上也能说得过去。”  兔子一听,得,咱也别投诉了,回家吧。  </p> +<p>第二天,兔子在街上又撞上老狼。老狼大喝一声:去,给我找点儿洗衣服的来。  </p> +<p>兔子不慌不忙:你是要洗衣粉阿,还是要肥皂啊?  </p> +<p>老狼一听,嗯?有一手阿。又说:去,给我找个女人来。  </p> +<p>兔子还是不慌不忙:你是要胖的啊,还是瘦的?  </p> +<p>老狼一听勃然大怒,伸手就给兔子一个大嘴巴,  </p> +<p>让你丫不戴帽子!</p>有阵子没打篮球了https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/Sun, 15 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E9%98%B5%E5%AD%90%E6%B2%A1%E6%89%93%E7%AF%AE%E7%90%83%E4%BA%86/<p>今天继续发扬每到周末就睡不着觉的光荣传统,比平时上班起的还早。</p> +<p>洗了个澡,饶有兴致地做了顿早餐(花了一个小时,吃了5分钟)。</p> +<p>还没来得及把电视频道翻看一遍,大宝就喊我去打篮球,二话不说,换好球鞋飞奔球场。</p> +<p>抓起篮球才发现,已经很生疏了,找不到一点儿手感。</p> +<p>来回跑二十分钟就开始喘气了,还好,4对4的接波比赛中总算懵进了几个球。</p> +<p>渐渐找到感觉,跑动越发积极,身法也越来越快。队友一个快速传球,我以迅雷不及掩耳盗铃之势抓住球,猛跑两步,转身!跳起!腿抽筋儿了!</p> +<p>看来我是得注意一下平时的锻炼了。</p>我的吉他梦https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/Mon, 09 Jun 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%90%89%E4%BB%96%E6%A2%A6/<p>一个人太无聊,一天没说话,吃饭睡觉打豆豆,傍晚时分,想出去活动活动,溜达到客厅,看见角落里那把吉他,突然想活动活动手指。</p> +<p>我拿起琴,吹了吹上面的灰,呛得我咳嗽了半天,调了调弦,闭上眼睛,富有激情地弹了一曲“两只老虎”,希望没有吵到邻居,虽然听到楼上孩子的哭声,但是我觉得那是该喂奶了,小孩子还小,还不能体会音乐的灵魂,怎么可能感动的哭呢?</p> +<p>其实我十年前就开始学琴了,不过绝对不是为了泡妞而学,而是怀着对音乐的满腔热情而学,虽然也曾幻想抱着吉他站在某个女孩的门前,大声唱着“冷雨夜我不想归家,盼望你会知,可知道我滴心&hellip;.”,</p> +<p>无奈我手指上的茧子退了一层又一层仍是达不到理想的水平,只能一个人的时候弹两曲消遣一下而已。</p> +<p>大学的时候,每当我在寝室练琴就有隔壁同学跑过来说:“你们谁在这把床推来推去的?弄得地板咯吱咯吱的?”,</p> +<p>有一次,管理宿舍的大爷一路咆哮着就上来了:“说过多少遍了!寝室里面不能做饭!”,</p> +<p>“没有啊,大爷”“还说没有!我在楼下都听到炒菜的声音了!”&hellip;&hellip;</p> +<p>他们就这样把我成为一个吉他手的梦想给残忍地扼杀了。</p> +<p>后来我迷恋上了编程(也能活动手指),吉他就被我丢到了角落,偶尔还会拿起来拨两下就像今天这样。</p> +<p>当然了,这个梦并未完全破灭,我仍然幻想着某天弹吉他能像现在敲电脑键盘这么熟,刚工作那会儿我给自己定了计划,觉得无论如何也得在三十岁之前把吉他练成,现在,眼看着快三十了,吉他上的灰却越来越厚。</p>注册atl组件返回错误0x80040154的原因及解决办法https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/Wed, 28 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B3%A8%E5%86%8Catl%E7%BB%84%E4%BB%B6%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF0x80040154%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%8A%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/<p>今天用VC6做了一个com组件,使用ATL模板创建,结果在使用regsvr32.exe注册时死活注册不上,返回0x80040154,使用ErrorLookup查看错误号结果是“没有注册类别”,百思不得其解,即使以前可以注册的组件现在也无法注册了,怀疑是操作系统的问题。</p> +<p>上网搜索了半天,最终还是在微软的官方网站上找到了一点儿蛛丝马迹:</p> +<p>“WhenyouregisteranATLserver,youmightgeterror0x80040154(Classnotregistered).ForDLLs,REGSVR32.exereturnsthiserror.ForEXEs,thecallto_Module::</p> +<p>RegisterServer(CComModule::RegisterServer)in_tWinMain()returnsthiserror.”,</p> +<p>接着往下看“InstallATL70.dll(orATL.dllforearlierversionsofVisualStudio)intheWindows\SystemorWinnt\System32directory.YoudonothavetoregisterATL70.dll,however,youmustregisterATL.dllbyusingRegsvr32.exe.ThereareUNICODEandANSIversionsofATL70.dllandATL.dll.Installtheappropriateversiononthetargetoperatingsystem(thatis,UNICODEforMicrosoftWindowsNT,andANSIforMicrosoftWindows95orMicrosoftWindows98).”</p> +<p>哦,原来是system32下面的atl.dll没有注册,打开C:\windows\system32\找到atl.dll后使用regsvr32注册,然后再注册我的组件,成功!</p> +<p>结论:怀疑在安装、卸载软件或使用优化软件进行系统清理的时候不小心反注册了atl.dll,导致使用atl模板创建的com组件均无法注册。</p> +<p>ps:两年前就遇到过此问题,当时无法搞定,只得重装系统,今天总算找到问题的原因了</p>eeepc 使用技巧(3)vim搭建c开发环境https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Mon, 26 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A73vim%E6%90%AD%E5%BB%BAc%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/<p>今天继续记录eeepc的使用经验,闲言碎语不要讲,说一说如何安装c、c++开发环境以及在vim下进行编程。</p> +<p>安装开发环境很简单,不用单个安装gcc、make什么的,只需sudoapt-getinstallbuild-essential,这里面就什么都包含了(gcc、g++、gdb、make等)。</p> +<p>然后就找个合适的编辑器吧,系统自带vim,vim太强大了,这里不能多说(我也是刚开始用它),但是只有最基本的编辑功能,要想比较方便地进行开发需要安装如下vim插件:ctags、Taglist、supertab、c.vimctags其实不算是插件,算是单独的程序,用来生成vim能识别的标签文件,这样在vim写代码时就可以进行函数、变量、枚举类型之间快速定位了。</p> +<p>taglist可以在vim窗口的左侧生成一个tags列表,里面就是用ctags生成那些标签,方便随时定位到这些标签supertab是个增强版的代码补齐插件,写代码时按tab键可以弹出自动补齐列表供选择,如“p”可以自动补齐为“printf”c.vim是进行c、c++编程时的必备插件,能使vim变成一个为开发c语言定制的一个ide,拥有自动注释、F9编译,自动补全等强大功能。</p> +<p>插件装好后,在vim的vimrc文件里需要加上syntaxon这样每次启动vim时,它的语法高亮功能就自动打开了。</p> +<p>写一段代码试试看vimhelloworld.c#include&lt;stdio.h&amp;gt;intmain(){printf(&quot;helloworld&quot;);return0;}:wq退出编译:gcchelloworld.c-ohelloworld</p> +<p>运行:./helloworld</p>《Are You The One》以及流鼻血https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/Fri, 23 May 2008 00:00:00 +0000https://sbabybird.github.io/p/are-you-the-one%E4%BB%A5%E5%8F%8A%E6%B5%81%E9%BC%BB%E8%A1%80/<p>AreYouTheOne,这是一首好听得不得了的歌曲,来自荷兰WithinTemptation乐队,主唱Sharon绝对是超级女声,有着高亢的声线、鬼魅一般的嗓音。</p> +<p>从听第一遍就喜欢上这首歌儿了,让我停不下来,反复播放,直至流鼻血。曲中3分13秒开始的那一段电吉他solo实在是荡气回肠。</p> +<p>Areyoutheone?你是他么?Thetravellerintimewhohascome.进入我生命的陌生人Tohealmywoundstoleadmetothesun.治愈心伤,播撒阳光Towalkthispathwithmeuntiltheendoftime.结伴走在生命的小路上Areyoutheone?你是他吗Whosparklesinthenightlikefireflies.萤火虫般流彩的目光Eternityofeveningsky.对视,在永恒的夜空Facingthemorningeyetoeye.直至晨曦来到Areyoutheone?你是他吗Who'dsharethislifewithme.与我共度此生Who'ddiveintotheseawithme.与我在深海偎依Areyoutheone?你是他吗Who'shadenoughofpain.受尽创伤Anddoesn'twishtofeeltheshame,anymore.不愿再心伤Areyoutheone?你会是他吗Areyoutheone?你是他吗Who'sloveislikeaflowerthatneedsrain.他的爱是雨中的花朵Towashawaythefeelingofpain.冲去了忧伤Whichsometimescanleadtothechainoffear.不再迷茫彷徨Areyoutheone?你是他吗Towalkwithmeingardenofstars.一起走在群星之下Theuniverse,thegalaxiesandMars.火星,银河,宇宙Thesupernovaofourloveistrue.见证我们爱的迸发</p> +<p>ps:流鼻血可能与这首歌曲无关,这两天比较上火,昨天下班时,看到路边有课桑树,上面结满了熟透了的桑椹,于是我童心顿起,顺手摘了几颗放在嘴里,还挺甜的。</p> +<p>小时候挺爱吃桑椹,到了季节就大把大把的吃,大人总是吵着不让多吃,说吃多了会流鼻血,没想到我昨天刚吃了几颗,今天就流鼻血了。</p> +<p>再ps:从今天开始,北京算是进入真正的夏天了,突然就热了起来,非常热,办公室里热的像蒸笼,空调也不管用,当然,天气这么热也有Intel的功劳,整个电脑机箱热的像是路边烧烤用的碳火炉,再烤下去,晚饭就能吃“烤人腿”了。</p>eeepc 使用技巧(2)https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/Thu, 22 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A72/<p>接着昨天的继续,系统修改为中文了,软件源设好了,输入法也装好了,接下来就想看看小e(姑且把我的eeepc叫做小e)的多媒体性能咋样儿了(其实就是看看能不能看片儿)。</p> +<p>小e自带有mplayer以及前端的SMPlayer,播放一般视频(mpeg、wmv)效果挺不错,遗憾的是还不能播放rmvb,上网查了一下原来是缺少相应的解码包,</p> +<p>于是乎,就找到了这个win32codecs下载后将这个压缩包解压后的内容放到/usr/lib/codecs下即可,系统默认并没有codecs这个文件夹,需要手动创建sudomkdir/usr/lib/codecs,然后复制cp/home/user/win32codecs/*/usr/lib/coecs。</p> +<p>好了,在命令行输入mplayer/home/user/*.rmvb-f-z很流畅的画面就出现了,此时的-f和-z参数分别代表全屏和自动缩放画面到窗口大小。然后我又尝试播放了一下720p的高清视频(wmv格式),小e也能轻松胜任,画面很清晰,也很流畅,看来mplayer这个软件写的很棒,虽然是命令行格式的,但是我喜欢。</p>eeepc 使用技巧(1)https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/Wed, 21 May 2008 00:00:00 +0000https://sbabybird.github.io/p/eeepc-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A71/<p>买了eeepc900一段时间了,翻遍很多论坛,也慢慢摸索一些基本使用技巧,不敢独享,一直想写出来,只是最近工作很忙,加上地震带来的全国性灾难,导致最近几天也没心思去写。</p> +<p>现在,让我整理一下思路,慢慢把经验写下来,也防止我以后会忘记。</p> +<p>eeepc可以安装xp操作系统,但是我喜欢linux,买了eeepc有一半是为了使用linux,所以我不会把他自带的系统干掉然后安装xp系统,windows操作系统我实在是用腻了。</p> +<p>因为只有装了linux系统的机器才能让我感到完全是“自己的”。</p> +<p>eeepc900自带有定制的linux操作系统,而且是基于debian的发行版,哇,有了debian一切都好办了。</p> +<p>debian有强大的apt-get软件包管理系统,但是eeepc的说明书上吓唬我说“用户不能自行安装其他软件”,咳,管他呢,我查了一下,原来是在apt的source.list里没有相应的源而已,而且eeepc里也自带了“新立得软件管理器”只是没放出来而已。</p> +<p>好了,先从“控制台”开始,刚拿到手的时候,我费了老半天的劲儿才找到控制台窗口打开的办法,看来asus实在太担心用户的智商了。答案是按“Ctrl+Alt+T“就能调出控制台,要知道在Lxiux下有了”控制台“才算有了系统的操纵权啊!</p> +<p>由于默认是英文版的,让我先把系统从英文调整到中文吧在控制台输入/opt/xandros/bin/locale_dialog然后在弹出的对话框中选择简体中文,重启机器,就变成中文系统了。</p> +<p>随机带的软件太少了,而且大部分还是给小孩子用的,根本不够我用,本地化之后就我就开始想办法安装软件控制台输入<code>vim/etc/apt/sources.list</code>发现该文件就两行</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">debhttp&amp;#58;//update.eeepc.asus.com/p900p900maindebhttp&amp;#58;//update.eeepc.asus.com/p900/enp900main增加如下内容:debhttp&amp;#58;//debian.cn99.com/debianstablemaincontribnon-free +</span></span></code></pre></td></tr></table> +</div> +</div><p>然后:wq存盘退出sudoapt-getupdate这样就有了debian的基本源,现在开始使用apt-getinstall疯狂安装想要的软件吧!</p> +<p>由于我这个版本默认的输入法管理器是gcin的,虽然也有拼音输入,但是不符合大陆人的输入习惯,所以我首先要安装scim,在控制台输入sudoapt-getinstallscimscim-chinese,要想使用scim还需要一个软件sudoapt-getinstallim-swich,然后把gcin卸载sudoapt-getinstallgcin-好了,切换到scim吧,输入sudoim-switch-sscim然后重启机器,输入法管理器就变成scim啦!</p> +<p>唉,eeepc的键盘实在是太小了,在上面打字实在是太累,先写这么多,估计也就有十分之一吧,剩下的以后再慢慢写。</p>测试从scribefire发布bloghttps://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/Tue, 20 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%BB%8Escribefire%E5%8F%91%E5%B8%83blog/<p>使用firefox在eeepc900上发布测试用无内容</p>我的妈妈https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/Sun, 11 May 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E7%9A%84%E5%A6%88%E5%A6%88/<p>从小学到初中的作文课,几乎每个语文老师都布置过“我的妈妈”这篇作文,</p> +<p>很多同学文笔细腻,感情丰富,写出的作文真实流畅,总被老师挑选出来作为范文朗诵,让我很是羡慕,</p> +<p>不过,我作文水平极差,在课堂上拼命咬着铅笔头,恨不得把橡皮也吞下去,还是凑不够字数。</p> +<p>很想回忆一下当时写的别字连篇的作文,不过一晃过去那么多年,现在一个字儿也想不起来了。</p> +<p>母亲节了,我再写一篇试试。</p> +<p>我的妈妈我妈今年五十岁了,虽然她看起来还不到五十岁,而且在我心目中也就是四十来岁的样子,我总是笑着跟她说:“妈,您是越活越年轻啊!”每当这个时候她总是高兴得合不拢嘴,心里美滋滋的。</p> +<p>是的,没错!我说的是实话,我妈是挺年轻的。</p> +<p>我妈是一名出色的乡村教师,我小的时候,爸爸在邻村的中学教书(巧了,我爸也是老师)平时不在家里住,我妈就在我们村的小学,条件极为艰苦,当时为了带我,她吃了不少苦头,一方面是她平时工作任务很重,乡村学校缺老师,她一个人要教好几门功课,跨越几个年级,另一方面是我体弱多病,当时家里又不富裕,照看我这样儿的孩子要比别的孩子多费几倍的心血。</p> +<p>但是她很要强,工作很优秀,同时在她的精心培养下我也茁壮成长,到了今天,我可以很负责任的说,她很成功。说到对我培养,我刚才说的好像有点儿不太谦虚,呵呵,我所指的成功就是,她把我培养成了一个善良的人,并且给了我一个快乐的童年。</p> +<p>想到小时候,其实我妈的脾气还是有点儿火爆的,我要是做错了事儿,挨揍也肯定是跑不掉的。但那都是因为我不懂事,打我那是怕我将来成为一个无用人,而且,所谓“打在儿身,疼在娘心”啊,我挨完揍,她也偷偷抹眼泪。</p> +<p>虽然先说了我妈会打我,但那毕竟是少数,大部分时候妈妈是和蔼可亲的,而且对我也百般呵护、百依百顺,要什么就给什么,想吃什么就做什么,现在回想起来,她对我简直是太溺爱了。</p> +<p>妈妈心灵手巧,我小时候没什么高级玩具,别人折的纸船、纸飞机、风车什么的,她拿到手后,拆开一看,马上就会折了,而且马上把我教会(看来,我也很聪明)。</p> +<p>小孩子都爱拆东西,别家的孩子拆了可能会挨揍,但是我妈见我拆东西不但不打我,而且还带我一起拆玩具,有次我把我仅有的很贵的“坦克”玩具给拆坏了,我妈费了好大的劲儿才把它修好。</p> +<p>后来我上学了,还是保留了这个爱好,拆拆装装的东西弄了一整箱,从收音机到电子表应有尽有,我觉得那些才是最好的玩具。我妈的心灵手巧并非表现在这个方面,她的缝纫技术也是出类拔萃,邻里之间有人要做衣服肯定让她帮着剪衣样,有次她给我做了个棉袄,样式比商场里面卖的还新潮,惹得很多孩子也吵着要这样儿的。</p> +<p>织毛衣也不在话下,不但图案精美,而且速度飞快,有次,天气突然转冷,妈妈怕我妹妹冻着,一夜之间就给我妹妹织了一顶帽子。</p> +<p>现在,妈妈还是能跟上时代的潮流,我给老家装上了电脑,她也很快学会了打字,想我了就上QQ和我聊两句,周末我们还会视频一下,聊聊一周的家长里短。</p> +<p>随着妈妈年龄的增长,她对我们也越来越依赖了,有时候陪着她聊天,我随便说个笑话就把妈妈逗得前仰后合,笑得眼泪都快下来了。她每天都上网上看看,虽然并不是每次都和我聊天(怕我工作忙),但是她说,看到我的QQ也在线,心理就很踏实了。</p> +<p>今天是母亲节,一个感恩的节日,身在遥远的北京,我坐在电脑前,写一点儿文字,衷心祝愿我的妈妈以及天下所有的妈妈都幸福安康。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">慈母手中线 +</span></span><span class="line"><span class="cl">游子身上衣 +</span></span><span class="line"><span class="cl">临行密密缝 +</span></span><span class="line"><span class="cl">意恐迟迟归 +</span></span><span class="line"><span class="cl">谁言寸草心 +</span></span><span class="line"><span class="cl">报得三春晖 +</span></span></code></pre></td></tr></table> +</div> +</div>有了压力你就喊https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/Fri, 25 Apr 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/<img src="https://sbabybird.github.io/p/%E6%9C%89%E4%BA%86%E5%8E%8B%E5%8A%9B%E4%BD%A0%E5%B0%B1%E5%96%8A/20080424.png" alt="Featured image of post 有了压力你就喊" /><p>周末和几个哥们儿喝酒,喝完了哥们儿提议去K歌,很久没K了,我在包厢里抱着话筒死活不肯松手,再一次展现了&quot;麦霸&quot;的风范。</p> +<p>借着酒劲儿我愣是把一首首温柔的情歌咆哮出了&quot;摇滚&quot;加&quot;死亡金属&quot;的味道,那声音,比杀猪好听多了。</p> +<p>没办法,情歌就是得用真实的声音来诠释,而和朋友一起喝完小酒后的情感往往是奔放的、原始的、撕心裂肺的。</p> +<p>管你是青藏高原还是回到拉萨;是左等右等(RightHereWating)还是加州招待所(CaliforniaHotel);</p> +<p>是国粹京剧还是家乡地方戏,一律来者不拒,而且必须是原调!</p> +<p>那一刻我觉得,就是帕瓦罗蒂过来飙高音咱都不惧他!</p> +<p>唱完歌,觉得通体舒畅,酒也解了,一切的压力都烟消云散,腰也不酸了,背也不疼了,一口气儿也能上5楼了。</p> +<p>突然想起一句名言,在这儿给他改一改,就叫&quot;有了压力你就喊!&quot;</p> +<p>&ndash;由sbabybird于4/24/200809:00:00下午在从容地狂奔上发表</p>梦,神经衰弱https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/Fri, 28 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%A2%A6%E7%A5%9E%E7%BB%8F%E8%A1%B0%E5%BC%B1/<p>昨晚,编程时有一问题困惑很久,反复调试总是失败,无奈,只得放弃,怀着郁闷的心情睡去。</p> +<p>睡梦中恍恍惚惚仿佛有人叫我,原来是一白胡子老头,声音洪亮(略有东北口音),精神矍铄,约我相谈技术话题。</p> +<p>只见该老头唾沫横飞,指指点点,谈笑间从身后掏出一笔记本电脑,当场就把VC6启动起来。我定睛一看,我靠!这不就是我白天写了一下午的那些代码么?</p> +<p>老头边解说边将我的代码略为修改,我顿时感到豁然开朗,遂给我演示了一下运行效果,果然很流畅,问题得以解决。</p> +<p>惊喜使我从梦中醒来,回忆刚才的场景,起床倒了一杯水,拿起纸笔,十分虔诚地把刚才的思路记了下来,我甚至能记住当时的函数和变量的名称。</p> +<p>一大早到了公司,启动环境,将代码输入电脑,居然能编译通过!怀着激动的心情运行之,程序吭都没吭一声就崩溃了,看着巨大的“内存错误窗口”,我不禁哑然失笑,梦里的东西怎能当真呢,还以为有仙人助我,原来是我神经衰弱。</p>最讨厌你们这些“黑客”,一点儿技术含量都没有https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/Wed, 26 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%80%E8%AE%A8%E5%8E%8C%E4%BD%A0%E4%BB%AC%E8%BF%99%E4%BA%9B%E9%BB%91%E5%AE%A2%E4%B8%80%E7%82%B9%E5%84%BF%E6%8A%80%E6%9C%AF%E5%90%AB%E9%87%8F%E9%83%BD%E6%B2%A1%E6%9C%89/<p>四年前,那时公司还是使用adsl+“代理服务器”上网,有一天早晨我来到公司,发现代理服务器的桌面有一个word文档,打开一看,里面写着“嘿,哥们儿,你的机器被我黑了,我发现你是使用adsl上网的,而且发现不少漏洞,我顺手给你打了补丁,希望你能重视上网的安全性&hellip;&hellip;”</p> +<p>当时令我大吃一惊,因为一方面我们确实不太重视网络安全的问题,另一方面那家伙也太猖狂了吧。</p> +<p>后来我遇到一“高人”,将此事说与他听,他遂露出鄙夷态度:“最讨厌这些傻B“黑客”,一点儿技术含量都没有”,而后掏出几款软件,“扫描器”、“嗅探器”什么的,现场给我演示了一把。</p> +<p>靠!原来会使用这些黑客软件就是黑客啊!</p> +<p>我在公司内部的服务器上建了个小论坛,使用阿帕奇+php+bbpress实现,用于记录兄弟们平时积累的编程经验,由于管理员疏忽,开了远程服务,密码又过于简单,前两天不慎又遭“毒手”,这次那厮没有手下留情,把论坛数据库给我删了,唉,真他妈防不胜防啊!害得我还得花时间恢复。</p> +<p>我说这些自以为是的傻B黑客,能不能用用脑子,有能耐你把我msn空间的广告给我去了,不好好待着干嘛总出来犯贱呢,你妈逼你的是吗?</p>听音乐,要关灯https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/Sun, 23 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E9%9F%B3%E4%B9%90%E8%A6%81%E5%85%B3%E7%81%AF/<p>周末,晚饭毕,心绪烦乱。关窗,关灯,音箱的音量调大,陷入黑暗之中,只有机箱闪烁着微弱的蓝光。</p> +<p>如果音乐是海洋,就让我随着醉人的旋律坠入海底,让音乐洗去我的浮躁和忧伤。</p> +<p>如果音乐是双手,就让跳动的音符轻轻拨动我的心弦,跳入我浑浊的内心,然后在上面荡起点点涟漪&hellip;&hellip;</p> +<p>哈哈,关了灯听音乐能让我这样语无伦次,也算是神奇了,所以有句话叫:“爱生活,爱拉灯!”</p>公园里的“鸟巢”https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/Fri, 21 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%AC%E5%9B%AD%E9%87%8C%E7%9A%84%E9%B8%9F%E5%B7%A2/<p>每天早晨都穿过这个公园,随手拍了,那个小房子是公园的管理人员为一只野生的鸟儿(大概是野鸭子之类的吧)搭建的,该鸟去年来此地盘再也不走了 </p>老家的电脑中毒了https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/Thu, 20 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E7%94%B5%E8%84%91%E4%B8%AD%E6%AF%92%E4%BA%86/<p>春节回老家,我把老家的电脑升级了一把,并安装了宽带。</p> +<p>这样我在北京就可以随时和父母视频通话了,老妈的打字水平也飞速提升,没事儿就上线和我聊两句。</p> +<p>为了安全起见,我临走时反复叮嘱,不要再安装其它软件(担心流氓软件)。</p> +<p>但是在选择杀毒软件时我有点儿为难了,nod32挺好用,可是咱没买正版,用破解的怕他们用不好,刚好那时卡巴斯基推出了一年免费试用的活动(其实我都两年不使用卡巴斯基了),就贪便宜用了,而且开启了实时监控和每天的病毒库更新。</p> +<p>看来便宜果然没好货,好日子没过多久,老妈就打电话告诉我机器奇慢无比,我当时还颇为自信的告诉她启动杀毒软件的查杀毒程序进行病毒查杀即可,怎奈何断断续续查了一夜(没办法卡巴就是这么卡)病毒之后,倒是找到木马病毒若干,但就是无法清除,一开机cpu就资源占用100%,我又没法亲手操作,看来这个系统是没救了。</p> +<p>还好当时留了一手必杀技,那就是“一键ghost恢复”!</p> +<p>实在不行就“恢复”吧。</p> +<p>不知道是网络环境太差还是咱们的安全意识不够,反正对于一个非计算机专业的人员来说,现在上网实在是处处有陷阱、时时有风险,杀毒防毒软件形同虚设,真是让人担忧啊</p>春天来了,小树发芽了,鼻子发炎了https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/Wed, 05 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/<img src="https://sbabybird.github.io/p/%E6%98%A5%E5%A4%A9%E6%9D%A5%E4%BA%86%E5%B0%8F%E6%A0%91%E5%8F%91%E8%8A%BD%E4%BA%86%E9%BC%BB%E5%AD%90%E5%8F%91%E7%82%8E%E4%BA%86/20080305.png" alt="Featured image of post 春天来了,小树发芽了,鼻子发炎了" /><p>不经意间,她已经来到了,她带来了吹面不寒的杨柳风儿,带来了满树的桃花(树在哪儿呢?),不过她带给我的第一个礼物却是鼻炎,听说过两天还会给我带点儿沙尘暴啥的,是的,她就是春天。</p> +<p>连日来,和煦的春风吹得我昏昏欲睡,口干舌燥。一闻到春风的气息,我得鼻子就发干发痒,看来我的鼻炎是按时发作了。</p> +<p>戒烟、戒酒、戒辣椒,多喝开水、多吃水果、多吃蔬菜,这些残酷的要求我虽然严格遵守,但鼻子仍是一天天痛苦下去,而且一旦休息不好还有流鼻血的危险,万一哪天在街上碰到一个丑女,然后鼻子再不争气的流血了,那就糗大了!</p> +<p>&ndash;由sbabybird于3/05/200805:22:00下午在从容地狂奔上发表</p>Every Night In Beijing 我办了暂住证https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/Sat, 01 Mar 2008 00:00:00 +0000https://sbabybird.github.io/p/every-night-in-beijing-%E6%88%91%E5%8A%9E%E4%BA%86%E6%9A%82%E4%BD%8F%E8%AF%81/<p>EveryNightInBeijing我办了暂住证为了迎接今年的奥运会,北京最近开展了“依法登记办证,共创平安奥运”专项活动,所有来京的暂住一个月以上、16岁以上的人员,都要依法主动到暂住地派出所办理暂住证,否则&hellip;.</p> +<p>作为一个外地来北京需要“暂住”超过一个月而且16岁以上的民工,我当然得积极相应,虽然今天是周末我还是起了个大早(其实周末早起是我的坏毛病之一),带齐了证件前往派出所去排队,没办法,现在办这个的人太多,办个暂住证比买春运的火车票还难,听说有人带着干粮半夜就前去排队了。</p> +<p>到了地方一看,嚯!果然是“peoplemountainpeoplesea”,我拿出春运买票劲头,费了两个小时的吹灰之力,终于挤到柜台前(以前没去过派出所,姑且就叫柜台吧),刚要用颤抖的双手递上证件,只听得“啪&hellip;啪&hellip;”两声,来自工作人员拍打的键盘,伴随着一句地道的好莱坞英语:“oh!shit!”</p> +<p>然后曰:“网断了!”我真是百感交集,有一种想扁人的冲动,但是看他们手忙脚乱地样子又想到这儿是派出所,也就没忍心发作。</p> +<p>时间一分一秒地过去,办证的队伍快排到门外,终于其中一位工作人员大喊一声:“我找到了!”</p> +<p>这一嗓子喊的不亚于老阿(阿基米德)想当年那架势。</p> +<p>原来是哪位仁兄不小心踢掉了交换机的电源,网线都断了,插上之。</p> +<p>终于办完了,赶紧揣进怀里,生怕过来几个人把它给撕了,然后把我送去锻炼身体。</p> +<p>“EveryNightInBeijing我要去办暂住证不敢在午夜问路,怕走到了采石场EveryNightInBeijing你可别喝太多酒把酒高歌的男儿,也得去办暂住证&hellip;&hellip;”本故事纯属虚构,如有雷同,那实在是巧合</p>找个地方藏起来https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/Wed, 27 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/<img src="https://sbabybird.github.io/p/%E6%89%BE%E4%B8%AA%E5%9C%B0%E6%96%B9%E8%97%8F%E8%B5%B7%E6%9D%A5/20080227.png" alt="Featured image of post 找个地方藏起来" /><p>前两天与老同学用msn聊天,虽然都工作了几年,但是均感叹现在遭受的压力巨大,无论是来自工作的还是来自家人的。</p> +<p>聊到后来,都有找个地方躲起来的想法,躲到一个没有人认识的地方,或深山老林,或几角旮旯。</p> +<p>像鸵鸟那样,找个沙堆把头埋进去如何?</p> +<p>&ndash;由sbabybird于2/27/200805:37:00下午在从容地狂奔上发表</p>小广告https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/Sat, 16 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E5%B9%BF%E5%91%8A/<p>大年三十,老爸安排我贴春联,贴之前先要把房门给清理一下,本着认真负责的态度,我拿着抹布撅着屁股擦了半天。</p> +<p>但是有两个小广告不知道用的什么胶水粘的,贴在上面太顽强了,抹布对其不起作用。</p> +<p>这个难不倒我,从厨房拿来清洁球,发扬&quot;只要功夫深,铁杵磨成针&quot;的精神,终于把这两个小广告拿下,看着擦的光亮如新的防盗门,我揉了揉发酸的腰,露出了满意的笑容。</p> +<p>狂奔到屋里去邀功,谁知我妈刚看了一眼就说:&quot;哎呀!那两个小广告哪儿去啦?那上面有送水的电话号码,我平时就照着那个打呢!</p> +<p>&quot;我:&quot;@#¥%@#%……@#%……&quot;吐了一口鲜血接着说:&quot;没事儿!对门儿房门上贴的还有!&quot;</p> +<p>&ndash;由sbabybird于2/16/200811:03:00上午在从容地狂奔上发表</p>回京了,开工了https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/Wed, 13 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%9B%9E%E4%BA%AC%E4%BA%86%E5%BC%80%E5%B7%A5%E4%BA%86/<p>回家的日子过得飞快,感觉就像做了一场梦,醒来后发现我还是坐在电脑旁,噢,又开工了。</p> +<p>&ndash;由sbabybird于2/13/200809:50:00上午在从容地狂奔上发表</p>夕阳无限好,只是看不清https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/Fri, 01 Feb 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/<img src="https://sbabybird.github.io/p/%E5%A4%95%E9%98%B3%E6%97%A0%E9%99%90%E5%A5%BD%E5%8F%AA%E6%98%AF%E7%9C%8B%E4%B8%8D%E6%B8%85/20080201.JPG" alt="Featured image of post 夕阳无限好,只是看不清" /><p>&ndash;由sbabybird于2/01/200802:12:00下午在从容地狂奔上发表</p>早晨的路灯(随手拍)https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/Thu, 31 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/<img src="https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E8%B7%AF%E7%81%AF%E9%9A%8F%E6%89%8B%E6%8B%8D/20080131.JPG" alt="Featured image of post 早晨的路灯(随手拍)" /><p>未经过修饰</p> +<p>&ndash;由sbabybird于1/31/200808:19:00上午在从容地狂奔上发表</p>车票买好了,现在只想一步跨回家去!https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/Tue, 29 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%A6%E7%A5%A8%E4%B9%B0%E5%A5%BD%E4%BA%86%E7%8E%B0%E5%9C%A8%E5%8F%AA%E6%83%B3%E4%B8%80%E6%AD%A5%E8%B7%A8%E5%9B%9E%E5%AE%B6%E5%8E%BB/<p>每年的春运,我都要受到生理和心理的双重摧残,无休止的排队买票,心惊胆寒地挤上车,反复地转车,汽车、火车、汽车&hellip;,从坐在公司的椅子上到躺在老家的沙发上,就像经历一场洗礼。</p> +<p>感谢上天的保佑,我终于买到今年的车票(这期间的经历和见闻不堪回首,要是说出来肯定是要被&quot;和谐&quot;的),捏着这张沾满了汗水的车票,站在西站挤满了人(失望的和绝望的)的售票大厅,我知道,虽然万里的长征刚迈出了第一步,但我的心&quot;秋&quot;的一下子就飞到老家了!</p> +<p>&ndash;由sbabybird于1/29/200803:43:00下午在从容地狂奔上发表</p>相见恨晚-YOBO(友播-yobo.com)!https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/Mon, 14 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A-yobo%E5%8F%8B%E6%92%AD-yobo.com/<p>忍不住要推广一个WEB2.o站点:在Diglog上发现了这个在线音乐站点,非常棒的音乐体验!</p> +<p>进去之后首先进行一个小小的心理测试,这样网站就知道了我的音乐口味(基本上挺准确的),然后自动的挑了一些曲子放给我听,连接速度非常快,丝毫没有停顿的感觉,就像是在听本地文件。</p> +<p>听了一会儿我才发现这个网站是个巨大的曲库,分类很清晰,可以随时输入歌手名或者歌曲名搜索歌曲,老歌新歌都有,曲目丰富的令人发指。</p> +<p>听完点播的歌曲之后系统会自动挑一些与此歌类似的曲子播放,有时候关联的挺准,但有时就太跳跃了,从一个古典的古筝曲子一下跳到了一首流行歌曲上来了。</p> +<p>总之,这是个不错的站点,让我再感叹一声:&quot;Web2.0就是好啊!&quot;PS:不知道这么多中外曲目的版权问题是怎么搞定的。</p> +<p>再PS:希望她能像last.fm那样推出客户端软件,这样就不用总开着网页听歌了。</p> +<p>再再PS:希望YOBO的中文名字改一改,叫这个有点儿俗气。</p> +<p>&ndash;由sbabybird于1/14/200804:04:00下午在从容地狂奔上发表</p>听广播的感觉https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/Thu, 03 Jan 2008 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/<img src="https://sbabybird.github.io/p/%E5%90%AC%E5%B9%BF%E6%92%AD%E7%9A%84%E6%84%9F%E8%A7%89/20080103.png" alt="Featured image of post 听广播的感觉" /><p>这两天见同事提了个巨大的收音机(比板砖还大),一问才知道,原来是怀旧,想找回曾经&quot;听广播的感觉&quot;,手机带的FM和电脑上的网络电台听起来太没感觉了,于是跑到商场挑了个最大号的扛了回来。</p> +<p>这不禁勾起了我的回忆。</p> +<p>接下来让我把镜头推回到六年前,那时我在郑州上大学,除了上课(如果有课的话)就是整天抱着电脑啃C语言,当时既没上网也没电视可看,接受信息的渠道只有一台收音机(夸张了?)。</p> +<p>节目很丰富,给我印象最深的就是郑州交通广播电台夜在里十二点准时播出的《大丈夫日记》(什么?你以为是《深夜悄悄话》?你想哪儿去啦?),电台主持人每天都以特有的腔调(学不来)朗读一个幽默段子,类似于现在网上的恶搞段子,但是格调要高一些,文章不长,但是很有趣,调侃人生,嬉笑怒骂,文字本身就写的很风趣,主持人再用那富有磁性的声音给读出来,听着真是一种享受。</p> +<p>最后再播放一首歌曲,而且在播放这首歌儿之前一定以一种蛮横的语调说一句:&quot;给男人听的歌,你可以不会唱,但..你..必须听!&quot;我第一次听到老谭(不好意思老谭,你永远都是25岁)的《难舍难分》就是在这个节目里,当时真是觉得太好听了:&quot;忘不了你眼中那闪烁的泪光,好像知道我说谎,我茫然走错了地方,却已不敢回头望&hellip;&hellip;&quot;。</p> +<p>可以说,这个节目是我当时最好的精神食粮了(不知道现在还存在吗),有一阵子我几乎天天等到十二点,我想所谓&quot;听广播的感觉&quot;大概就是这样吧。</p> +<p>好了,回到现在,现在的广播已经很难找到一个精品节目了,不是太矫情就是插广告,而且广告还他妈全是医院、医药的广告!所以,时代的潮流是不可逆转的,广播电台再做垂死挣扎也无济于事,被网络取代已是必然的事情,所以你怀里就算抱个巨大的收音机也不会再找到&quot;听广播的感觉&quot;了!</p> +<p>&ndash;由sbabybird于1/03/200805:40:00下午在从容地狂奔上发表</p>写完了年终总结!https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/Mon, 31 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E5%AE%8C%E4%BA%86%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/<p>明天就是2008年了,我的老毛病还是没改,每到假期或周末就兴奋的睡不着觉,今天刚到早上六点就爬了起来。想起还有一篇年终总结去要写,于是打开电脑,整理思路,先回忆一下今年我都干了什么,再展望一下明年我要干啥,不知不觉地,一篇年终总结就新鲜出炉了!由于我的生活就是工作,工作就是生活,所以呢,这篇总结其实就是个工作总结!不多说了,新年快乐!&ndash;由sbabybird于12/31/200707:54:00上午在从容地狂奔上发表</p>2007就要过去了https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/Sat, 29 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/<img src="https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/20071229.png" alt="Featured image of post 2007就要过去了" /><p><img src="https://sbabybird.github.io/p/2007%E5%B0%B1%E8%A6%81%E8%BF%87%E5%8E%BB%E4%BA%86/20071229.JPG" +width="360" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="77" +data-flex-basis="185px" +> +再过两天就要迎来激动人心的2008年了,时光如水,生命如歌,每一天都是崭新的,每一年都是十分有意义的。今天是2007年的最后一个工作日,此刻我想起了《甲方乙方》里的那句台词:&quot;1997年过去了,我很怀念它。&quot;2007年的工作依然是十分忙碌,工作占据了我生活中的大部分时间。由于长期缺乏锻炼,身体开始逐渐向亚健康状态发展。早饭经常不吃,晚饭又吃的太晚,导致消化系统不太好使,肠胃胃经常发出抱怨。最后吃了西药、中药若干,一日三餐再也不敢怠慢,肠胃才慢慢恢复正常。所以正是2007年我才认识到了健康的重要性,也更深刻地认识到了幸福的真谛!总之2007年对我来说是成长的一年、成熟的一年、有美好收获的一年(我很佩服我自己能认识到这些)。希望在2008年,我和我的家人都健康幸福!&ndash;由sbabybird于12/29/200704:41:00下午在从容地狂奔上发表</p>口腔溃疡了https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/Wed, 26 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/<img src="https://sbabybird.github.io/p/%E5%8F%A3%E8%85%94%E6%BA%83%E7%96%A1%E4%BA%86/20071226.png" alt="Featured image of post 口腔溃疡了" /><p>这两天吃的有点儿上火,口腔溃疡了。&ndash;由sbabybird于12/26/200712:41:00下午在从容地狂奔上发表</p>圣你的圣,诞你的诞https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/Mon, 24 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/<img src="https://sbabybird.github.io/p/%E5%9C%A3%E4%BD%A0%E7%9A%84%E5%9C%A3%E8%AF%9E%E4%BD%A0%E7%9A%84%E8%AF%9E/20071224.png" alt="Featured image of post 圣你的圣,诞你的诞" /><p>圣诞节?平安夜?我继续狂奔ing&hellip;&hellip;&ndash;由sbabybird于12/24/200705:30:00下午在从容地狂奔上发表</p>冬至为啥吃饺子?https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/Sat, 22 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/<img src="https://sbabybird.github.io/p/%E5%86%AC%E8%87%B3%E4%B8%BA%E5%95%A5%E5%90%83%E9%A5%BA%E5%AD%90/20071222.png" alt="Featured image of post 冬至为啥吃饺子?" /><p>今天是二十四节气里的冬至,阴天,据说要下雪。按照风俗习惯,我中午饱餐了一顿饺子。为什么冬至这天要吃顿饺子?我还真是不知道,上网查了一查,答案原来是这样:古时候有个老中医(不是华佗啊),叫张仲景,老家是南阳稂东人,有一阵子在长沙当大官,后来不知怎地就干不下去了,于是回老家,时值冬季,在路上看到白河两岸乡亲面黄肌瘦,饥寒交迫,不少人的耳朵都冻烂了。便让其弟子在南阳东关搭起医棚,支起大锅,在冬至那天舍&quot;祛寒娇耳汤&quot;医治冻疮。他把羊肉、辣椒和一些驱寒药材放在锅里熬煮,然后将羊肉、药物捞出来切碎,用面包成耳朵样的&quot;娇耳&quot;,煮熟后,分给来求药的人每人两只&quot;娇耳&quot;,一大碗肉汤。人们吃了&quot;娇耳&quot;,喝了&quot;祛寒汤&quot;,浑身暖和,两耳发热,冻伤的耳朵都治好了。后来人们为了给嘴馋找个理由,就有了&quot;冬至那天吃饺子,再冷也不会把耳朵冻烂&quot;的传说。ps:仔细想想,咱们中国的节日都与&quot;吃&quot;的关系十分密切,正月十五吃元宵、端午节吃粽子、中秋节吃月饼、腊八吃米饭(八宝饭)&hellip;&hellip;&ndash;由sbabybird于12/22/200702:25:00下午在从容地狂奔上发表</p>电池放冰箱的实验结果https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/Wed, 19 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E7%9A%84%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C/<p>做一个实验&ndash;关于把手机电池放冰箱里关于这个实验,是这样干的,我的那块旧手机电池电量用光后,先放到冰箱的冷冻室里,冻了48个小时,然后取出,使其自然升温,充电3个小时,充满。放入手机里开始使用,感觉与之前无明显区别,仍然是仅待机两天。不知是我处理的方法不对,还是这个流言本身就是假的。想想也是,要是手机电池冻一冻就能变成新的,那人家电池的生产厂家不早就饿死了?&ndash;由sbabybird于12/19/200708:13:00上午在从容地狂奔上发表</p>看看牛人用纸箱自制的电脑机箱!https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/Wed, 19 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219.JPG" alt="Featured image of post 看看牛人用纸箱自制的电脑机箱!" /><p><img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-1.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-2.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-3.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +<img src="https://sbabybird.github.io/p/%E7%9C%8B%E7%9C%8B%E7%89%9B%E4%BA%BA%E7%94%A8%E7%BA%B8%E7%AE%B1%E8%87%AA%E5%88%B6%E7%9A%84%E7%94%B5%E8%84%91%E6%9C%BA%E7%AE%B1/20071219-4.JPG" +width="800" +height="600" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +有句话说的好:&quot;牛人无处不在!&quot;公司一哥们儿用笔记本电脑的包装箱DIY了一个电脑机箱,用起来挺爽,就是不知道散热咋样儿!还有就是好像还没有加光驱。看起来挺象那么回事儿吧?呵呵,还是联想的纸箱子。放倒了再看看接口部分,该有的都有。千万别以为是联想新出的pc啊!为了给cpu散热,所以上面也开了个口cpu和cpu风扇&ndash;由sbabybird于12/19/200705:50:00下午在从容地狂奔上发表</p>做一个实验--关于把手机电池放冰箱里https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/Sat, 15 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/<img src="https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/20071215.JPG" alt="Featured image of post 做一个实验--关于把手机电池放冰箱里" /><p><img src="https://sbabybird.github.io/p/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9E%E9%AA%8C--%E5%85%B3%E4%BA%8E%E6%8A%8A%E6%89%8B%E6%9C%BA%E7%94%B5%E6%B1%A0%E6%94%BE%E5%86%B0%E7%AE%B1%E9%87%8C/20071215-1.JPG" +width="480" +height="360" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +偶然听到一个关于手机电池的传说:&quot;把老化的电池用纸包好,放进冰箱里冻上两天,这个电池就会起死回生。&quot;去网上搜索一下,发现很多人都在介绍这个&quot;绝招&quot;,也有人表示质疑,但是好像没有人亲身试验过,刚好我昨天换下来的那块电池还在,就顺手试一试这个方法,如果管用当然最好,如果不好使(这个可能性最大),那就把这条流言给终结了吧。我的那块旧电池包好放在冰箱的冷冻室里等候试验结果!&ndash;由sbabybird于12/15/200709:34:00上午在从容地狂奔上发表电池放冰箱的实验结果</p>新买了手机......电池!https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/Fri, 14 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%96%B0%E4%B9%B0%E4%BA%86%E6%89%8B%E6%9C%BA......%E7%94%B5%E6%B1%A0/<p>新手机是没买,买了块电池倒是真的,我那块旧电池已经不行了,开始倚老卖老,随便打个电话就报电量低甚至关机,无奈选不到满意的新手机(请参见这里),而且手里这个旧手机其他一切正常,于是我决定先买块电池,再凑合用一段时间,起码用到咱们大陆开始上3G。</p> +<p>不过也有网友比较悲观,在网上发帖子说:&quot;大陆3G能用时,家祭无忘告乃翁!&quot;跑到卓越网上选了块原装电池(据说是原装),今天就给我送了过来,由于电池个头太小,我怕快递公司送货的拿着太轻松,觉得没有挑战性,会不乐意,就顺便再买了两本书,其中一本就是大名鼎鼎的霍大爷的《时间简史》留着我失眠的时候看,另一本是比较浅显的《万物简史》留着我上厕所时看。&ndash;由sbabybird于12/14/200701:00:00下午在从容地狂奔上发表</p>到那时候https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/Thu, 13 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/<img src="https://sbabybird.github.io/p/%E5%88%B0%E9%82%A3%E6%97%B6%E5%80%99/20071213.png" alt="Featured image of post 到那时候" /><p>下班了,还在干活儿ing,瞅瞅我的任务栏:</p> +<p>一边开着TOAD配置数据库,一边开着Word看着文档,在Word的隔壁是牛逼的VC在那儿咔咔编译程序,SourceSafe正努力地Checkin一堆文件(脸都憋红了),点了两下&quot;开始菜单&quot;却不再搭理我,想开个Firefox看两个网页都不行。</p> +<p>唉!什么时候,硬盘像内存那么快,内存像硬盘那么大,就好了什么时候,内存像CPU缓存那么快,CPU缓存像内存那么大,就好了哼哼,到那时候&hellip;</p> +<p>估计是,Windows上来先把资源吃掉三分之一,然后TOAD和VC这些用来干活儿的工具再吃掉三分之一,最后打开Firefox把剩下的全吃掉!</p> +<p>&ndash;由sbabybird于12/13/200705:49:00下午在从容地狂奔上发表</p>第一场雪&堵车https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/Mon, 10 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/<img src="https://sbabybird.github.io/p/%E7%AC%AC%E4%B8%80%E5%9C%BA%E9%9B%AA%E5%A0%B5%E8%BD%A6/20071210.png" alt="Featured image of post 第一场雪&堵车" /><p>早晨,出了门才知道下雪了,下的还不小,赶紧返回取雨伞。</p> +<p>在路灯的照射下,雪花还挺大的,好歹也是第一场雪,感觉挺不错的。</p> +<p>坐上车就傻眼了,公交车走的比蜗牛还慢,上高速的路口堵成一团,上了高速路还是堵成一团。</p> +<p>花了平时两倍的时间才到公司。</p> +<p>&ndash;由sbabybird于12/10/200709:23:00上午在从容地狂奔上发表</p>小鸟坐公交https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/Sat, 08 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9D%90%E5%85%AC%E4%BA%A4/<p>今天在公交车上看到一个老大爷上车带着他的鸟(此处的&quot;鸟&quot;没有别的意思),离得挺远,赶紧掏出相机,抓拍两张。</p> +<p>不过也看不出这是什么鸟(麻雀?),被老大爷拴在棍子上应该不太爽吧。</p> +<p>&ndash;由sbabybird于12/08/200709:50:00上午在从容地狂奔上发表</p>妹妹开始写博客https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/Thu, 06 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/<img src="https://sbabybird.github.io/p/%E5%A6%B9%E5%A6%B9%E5%BC%80%E5%A7%8B%E5%86%99%E5%8D%9A%E5%AE%A2/20071206.png" alt="Featured image of post 妹妹开始写博客" /><p>中午收到小妹发过来的链接,打开一看,竟是她在新浪写的博客。</p> +<p>我粗略地看了一下,已经写了几篇文字了。</p> +<p>很显然地,她的作文比我写的要好,女孩子的感情细腻和多愁善感都表现在字里行间。</p> +<p>她这个年纪不去qq空间里玩&quot;踩啊踩&quot;,却在新浪开博客,套句比较流行的话说:&quot;我很欣慰啊!&quot;光阴荏苒,白驹过隙,转眼间小妹大学就要毕业,离开校园马上就要面临现实中残酷的就业环境,在网上和我聊了几句,言语里流露出对前途的迷茫。</p> +<p>是啊,我也曾感到过没有方向(现在何尝不是呢?),但是脚下的路总是要自己去走,未来还是把握在自己的手中。</p> +<p>我忽然想起某位牛人说过的话:&quot;睡着前最甜蜜;黎明前最黑暗;成功前最渺茫!&quot;</p> +<p>&ndash;PostedBysbabybirdto从容地狂奔at12/06/200705:40:00下午</p>大脑年龄的测试https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/Wed, 05 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/<img src="https://sbabybird.github.io/p/%E5%A4%A7%E8%84%91%E5%B9%B4%E9%BE%84%E7%9A%84%E6%B5%8B%E8%AF%95/20071205.png" alt="Featured image of post 大脑年龄的测试" /><p>午睡醒来,收到同事发来的Flash小游戏,据说可以根据你的反应速度测试出大脑的年龄,我试了一下,最后结果是:我的大脑有30岁了。</p> +<p>还算靠谱,比实际老了点儿(没办法,这都是干活儿累的啊),记得有次我做心理年龄测试,结果是60岁了。</p> +<p>(试试看)&ndash;由sbabybird于12/05/200701:26:00下午在从容地狂奔上发表</p>关于短信https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/Mon, 03 Dec 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/<img src="https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%AD%E4%BF%A1/20071203.png" alt="Featured image of post 关于短信" /><p>昨日喜收老友短信:“天气骤变,温度下降,注意身体,多喝水,以防感冒!”</p> +<p>遂感叹友情比暖气还要温暖,欲回复信息以示感谢,孰料又收其短信一条:“别回了,我的短信包月没用完,不发都浪费了!”</p> +<p>我靠!</p> +<p>另一哥们儿,初上网,受某网站蛊惑(告其可免费发短信),通过该网站为我发“免费”短信一条,结果害我收到若干条此网站发来的广告短信,不得不打电话给这一哥们儿,重复强调“天下没有白吃的午餐”这条真理。</p>A Dream !https://sbabybird.github.io/p/a-dream/Sat, 17 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/a-dream/<img src="https://sbabybird.github.io/p/a-dream/20071117.png" alt="Featured image of post A Dream !" /><p>听说国家大剧院下个月就要正式开演了,而且最低票价只有30元?</p> +<p>要真是30块能去看的话,俺就省吃俭用一阵子,看看到时候能不能去感受一下&quot;艺术的魅力&quot;。</p> +<p>&ndash;由sbabybird于11/17/200711:01:00上午在从容地狂奔上发表</p>捡到一首老歌--Ladyhttps://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/Sat, 17 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%8D%A1%E5%88%B0%E4%B8%80%E9%A6%96%E8%80%81%E6%AD%8C--lady/<p>在Winamp的电台上捡到这首歌Lady,马上被kennyrogers的嗓音吸引了。</p> +<p>&ndash;由sbabybird于11/17/200702:10:00下午在从容地狂奔上发表</p>天气真的很冷了https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/Thu, 15 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E7%9C%9F%E7%9A%84%E5%BE%88%E5%86%B7%E4%BA%86/<p>天气真的很冷了,走在路上,我的鼻涕都冻出来了。</p> +<p>搭车时,公交车都冻得无法启动。</p> +<p>坐车时,腿冻得直打颤。</p> +<p>开门时,牙冻得直打架。</p> +<p>&ndash;吃饭去!&ndash;由sbabybird于11/15/200708:13:00下午在从容地狂奔上发表</p>Hello, Android!https://sbabybird.github.io/p/hello-android/Wed, 14 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/hello-android/<img src="https://sbabybird.github.io/p/hello-android/20071114-1.PNG" alt="Featured image of post Hello, Android!" /><p>到家后立即下载Android的SDK,按照帮助文档的提示,顺利运行伟大的&quot;HelloWorld!&quot;</p> +<p>&ndash;由sbabybird于11/14/200709:14:00下午在从容地狂奔上发表</p>下载了android的SDKhttps://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/Wed, 14 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/<img src="https://sbabybird.github.io/p/%E4%B8%8B%E8%BD%BD%E4%BA%86android%E7%9A%84sdk/20071114.PNG" alt="Featured image of post 下载了android的SDK" /><p>听说android放出SDK了,而且Google为了鼓励开发者开发出NB的应用特意发了1000万美元的红包,如果你能开发出有创意的精品软件,说不定也能拿到一笔钱呐!</p> +<p>我也去下载了SDK,这个是android的模拟器的样子,还挺漂亮的。</p> +<p>等晚上回家先写一个helloworld再说!</p> +<p>&ndash;由sbabybird于11/14/200704:53:00下午在从容地狂奔上发表</p>blogspot又封了?https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/<img src="https://sbabybird.github.io/p/blogspot%E5%8F%88%E5%B0%81%E4%BA%86/20071110.png" alt="Featured image of post blogspot又封了?" /><p>刚刚好了没几天,访问blogspot又&quot;该页无法显示&quot;了。&ndash;由sbabybird于11/10/200703:33:00下午在从容地狂奔上发表</p>偏色https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%81%8F%E8%89%B2/<p>清晨的时候&ndash;由sbabybird于11/10/200709:02:00下午在从容地狂奔上发表</p>晚上有雾https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%99%9A%E4%B8%8A%E6%9C%89%E9%9B%BE/<p>晚上有雾&ndash;由sbabybird于11/12/200708:00:00下午在从容地狂奔上发表</p>微波炉https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/<img src="https://sbabybird.github.io/p/%E5%BE%AE%E6%B3%A2%E7%82%89/20071110-1.png" alt="Featured image of post 微波炉" /><p>画图板&ndash;由sbabybird于11/10/200703:31:00下午在从容地狂奔上发表</p>伪LOMOhttps://sbabybird.github.io/p/%E4%BC%AAlomo/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%BC%AAlomo/<p>用A610拍的,后期经过调色,模仿LOMO的那种效果,嘿嘿。&ndash;由sbabybird于11/10/200708:53:00下午在从容地狂奔上发表</p>午休https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/<img src="https://sbabybird.github.io/p/%E5%8D%88%E4%BC%91/20071109.png" alt="Featured image of post 午休" /><p>&ndash;由sbabybird于11/09/200712:58:00下午在从容地狂奔上发表</p>小鸟在脚下飞翔https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/<img src="https://sbabybird.github.io/p/%E5%B0%8F%E9%B8%9F%E5%9C%A8%E8%84%9A%E4%B8%8B%E9%A3%9E%E7%BF%94/20071112.png" alt="Featured image of post 小鸟在脚下飞翔" /><p>小鸟在脚下飞翔&ndash;由sbabybird于11/12/200701:56:00下午在从容地狂奔上发表</p>夜路https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%9C%E8%B7%AF/<p>路灯下我的影子&ndash;由sbabybird于11/10/200708:50:00下午在从容地狂奔上发表</p>一碗牛肉面https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/<img src="https://sbabybird.github.io/p/%E4%B8%80%E7%A2%97%E7%89%9B%E8%82%89%E9%9D%A2/20071113.png" alt="Featured image of post 一碗牛肉面" /><p>一碗牛肉面,我的晚饭&ndash;由sbabybird于11/13/200706:00:00下午在从容地狂奔上发表</p>早上去打了疫苗https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/<img src="https://sbabybird.github.io/p/%E6%97%A9%E4%B8%8A%E5%8E%BB%E6%89%93%E4%BA%86%E7%96%AB%E8%8B%97/20071113-1.png" alt="Featured image of post 早上去打了疫苗" /><p>前两天单位组织体检,一切正常,就是没有乙肝的抗体,印象中上学的时候已经打过疫苗,不过人家医生说,可能年代太久远了(靠,有那么远么?)</p> +<p>抗体丢了,无奈,再去接种就是了。</p> +<p>打针时,问人家会不会疼?</p> +<p>人家护士答的很爽快:&quot;你就放心吧,我打了20年的针。。。。&quot;,</p> +<p>等我疼完了又接着说:&quot;没有一个不疼的!&quot;</p> +<p>&ndash;由sbabybird于11/13/200710:40:00上午在从容地狂奔上发表</p>重温Winamphttps://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/<img src="https://sbabybird.github.io/p/%E9%87%8D%E6%B8%A9winamp/20071108.JPG" alt="Featured image of post 重温Winamp" /><p>有几年不用Winamp了,最近Winamp又退出了10周年纪念版版。</p> +<p>我下载了一个,感觉听听里面的网络电台什么的还挺不错的(边上班边听欧美最流行的音乐哈)。</p> +<p>而且新版还包含了podcast的功能,可以搜索订阅网上的播客。</p> +<p>在家听音乐的话,我还是选择foobar。</p> +<p>&ndash;由sbabybird于11/08/200707:49:00下午在从容地狂奔上发表</p>昨天我二十四https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/Tue, 13 Nov 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/<img src="https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E6%88%91%E4%BA%8C%E5%8D%81%E5%9B%9B/20071111.png" alt="Featured image of post 昨天我二十四" /><p>昨天我二十四,今天我二十五</p> +<p>&ndash;由sbabybird于11/11/200712:49:00下午在从容地狂奔上发表</p>Under a Violet Moonhttps://sbabybird.github.io/p/under-a-violet-moon/Sat, 22 Sep 2007 00:00:00 +0000https://sbabybird.github.io/p/under-a-violet-moon/<p>nan</p>关于电脑配置的遐想(瞎想)https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/Tue, 28 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%94%B5%E8%84%91%E9%85%8D%E7%BD%AE%E7%9A%84%E9%81%90%E6%83%B3%E7%9E%8E%E6%83%B3/<p>偶然翻看书架上的旧书,发现我以前在上面随手胡乱写了一个“梦幻配置”,那时应该是2000年,根据当时的硬件发展状况,我写了一个可望而不可及的硬件配置。</p> +<p>具体什么配置就不说了(大概就是纯平显示器、笨三的cpu),反正现在让你用你还嫌慢呢。</p> +<p>现在六、七年过去了,心里又痒痒的,就让我再写一个可望而不可及的硬件配置吧,看看这个配置何时会过时。</p> +<p>中央处理器:IntelCore2QuadprocessorQ6700(4核,为了安静,散热采用水冷系统)</p> +<p>主板:IntelD975XBX2内存:海盗船TWIN2X2048-6400×4(共8G)</p> +<p>外存储:SanDisk64G闪存硬盘(用于系统存储),2TB磁盘阵列(用于文件存储)</p> +<p>显卡:丽台NVIDIAQuadroFX5600×2(每块显卡可接四台屏幕)</p> +<p>主显示器:Apple30&quot;CinemaDisplay(上网、影视、游戏)</p> +<p>副显示器:Apple20&quot;CinemaDisplay×6(地理、虚拟现实、平面设计等)</p> +<p>CreativeSoundBlasterX-FiElitePro+罗技Z5500(用于电影、游戏、非专业录音)</p> +<p>主板数字光纤输出+外置解码器+JBL监听音箱(用于欣赏音乐)</p> +<p>操作系统:自己动手定做(编译)Linux版本,桌面环境采用GONE(如果有兴趣就自己写个操作系统)</p> +<p>备注:机箱易采用高厚度、高散热静音机箱,此系统搭建完成后将用于书房,共七台显示器需要用到特殊的显示器支架。</p>What i've donehttps://sbabybird.github.io/p/what-ive-done/Sat, 18 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/what-ive-done/<p> </p>Don't Cryhttps://sbabybird.github.io/p/dont-cry/Sat, 11 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/dont-cry/<p>nan</p>live space 的表现让我很失望https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/Sat, 04 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/live-space-%E7%9A%84%E8%A1%A8%E7%8E%B0%E8%AE%A9%E6%88%91%E5%BE%88%E5%A4%B1%E6%9C%9B/<p>不知是不是因为升级还没有进行完成,最近livespaces总是不能正常操作,用firefox访问有时还会出现乱码或者页面布局乱套,速度慢的惊人,资源占用很厉害。</p> +<p>再加上他有太多的限制,这些问题都让我感到对livespace失望透顶。</p> +<p>衷心希望Googleblogger能够早日解封!</p>昨天去电影院看了《憨豆先生的黄金周》https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/Sat, 04 Aug 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%98%A8%E5%A4%A9%E5%8E%BB%E7%94%B5%E5%BD%B1%E9%99%A2%E7%9C%8B%E4%BA%86%E6%86%A8%E8%B1%86%E5%85%88%E7%94%9F%E7%9A%84%E9%BB%84%E9%87%91%E5%91%A8/<p>昨天去电影院看了《憨豆先生的黄金周》,感觉还不错,憨豆先生还是那么滑稽可乐,有着独特的幽默方式,我虽然没有笑到肚皮抽筋、掐着大腿,但是90分钟的电影还是让我由衷地笑了半个小时(累计)。</p> +<p>这里就不介绍剧情了(一般来说这种喜剧基本没剧情可言),网上到处都是介绍。</p> +<p>整个影片从头到尾憨豆先生都拿着那只SONY新出的DV,我估计SONY投了不少钱,还有就是片子的音乐配的还可以,轻快明亮。</p> +<p>总的来说还值得一看。</p> +<p>现在的电影院真是不景气啊,能容纳500号人的大厅坐了不到100人,不过挺爽的,谁让他们把票价订的那么贵,现在的票价是我小时候电影票价的100倍</p>在 live spaces 单篇日志中插入音乐 测试https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/Mon, 30 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8-live-spaces-%E5%8D%95%E7%AF%87%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90-%E6%B5%8B%E8%AF%95/<p> </p>理发2007https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/Sun, 29 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%90%86%E5%8F%912007/<p>对于我来说,理发是件很痛苦的事情,可能是有心理障碍吧。</p> +<p>小的时候被老爸强行摁住理过一次发,我像一只小鸡那样被夹在腿上无力反抗,由于整个过程我都在不停地叫骂那个理发的,所以那家伙下手还不含糊,把推子使得嚓嚓直响,对着我的头皮和耳朵可劲儿招呼。</p> +<p>整个过程是漫长的、痛苦的、令人发指的。</p> +<p>最后我看着镜子里的凸了吧唧的头,还不忘使劲儿拧了一把鼻涕抹在老爸的裤腿上。</p> +<p>此事后来成为笑谈,但爷儿俩在理发这种事情上一直都持有不同的观点,</p> +<p>当然了,我还只能提出强烈抗议、强烈不满、强烈谴责,但采取进一步措施的权利还是保留了。</p> +<p>一直到现在,当老爸跟我说:“快去把头发理一理!”时,我还是乖乖的狂奔去理发。</p> +<p>不过,现在我离老爸远了,他管不了啦(主要是没看见),我可以尽情地把头发留到很长,然后再一下剪到很短(一般是回老家之前)。</p> +<p>但是我的这种习惯却造成了另一件事情,给我理发的人极度不爽。</p> +<p>每当我拖着留了几个月的长发走进理发店,告诉理发的师傅给我可劲儿剪短时,伊总是很扭捏,假惺惺地跟我说:“哎呀!你的发质这么好,又好不容易留了这么长,剪了多可惜啊!”</p> +<p>其实谁不知道伊是想省点儿事儿,想拿剪刀在那三下两下剪完糊弄我。</p> +<p>于是我只好说:“嗯嗯,本来是想留长的,但是现在突然想开了,不想留了,还是麻烦您给我剪短吧!”</p> +<p>最后等着人家极不情愿(还很费时)地给我剪完,我才满意离去。</p> +<p>但是这招下次就不能用了,所以我总是选择不同的理发店,反正这玩意儿多得是!</p> +<p>今天我又理发了,从五一到现在大概有三个月了,很抱歉,又让一个理发师傅不爽了一把,不管他,这次理完了,谁知道我什么时候有心情理下回呀!</p>轻轻的,我将整蛊你https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/Tue, 24 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%BD%BB%E8%BD%BB%E7%9A%84%E6%88%91%E5%B0%86%E6%95%B4%E8%9B%8A%E4%BD%A0/<p>天气这么闷热,生活这么枯燥,何不搞点小把戏调剂一下气氛呢?</p> +<p>要是你现在刚好在办公室里,那么恭喜你了,下面我将教你几个在下秘密收藏的整蛊手段(一般人我不告诉他)。</p> +<p>前提条件:</p> +<p>1、你们用计算机办公;</p> +<p>2、你们使用的是Windows操作系统;</p> +<p>3、你要整蛊的同事没有暴力倾向;</p> +<p>4、他刚好暂时离开一下。</p> +<p>好了,准备好了就开始行动吧!</p> +<p>场景一:“我的密码被改了?!”</p> +<p>如果你的这位同事有锁定计算机的习惯,那就刚好实施一下,在他计算机的锁定状态下的密码框里提前敲入一个空格,这样一般他回来时不会发觉,等他输入完自己的密码后,会发现进不去了!(因为密码前面多输入了一个空格)。</p> +<p>场景二:“用来干活儿的软件没有反应了!”</p> +<p>如果他没有锁定计算机的习惯,那么刚才那个办法就不凑效了,怎么办呢,找到他用来工作的软件(VC,Word、Excel等),把帮助菜单里的“关于(about)”对话框给打开,然后用鼠标把对话框拖动到一个屏幕上看不见的地方。哈哈,等着吧,他回来会发现他用来工作的软件怎么也不听话了,无论点击哪儿都没有反应。</p> +<p>场景三:“鼠标不好使了”</p> +<p>现在大家都用光电鼠标了,而光电鼠标全靠它屁股底下的那个激光眼,没错!你又猜对了,拿个小纸团把它那个小眼睛堵住,赶紧去吧!鼠标瞎了之后就罢工了。</p> +<p>以上方法屡试不爽,我都亲自实验过,不过是别人在我身上实验的(这帮败家玩意儿)。</p> +<p>注:以上操作纯属娱乐!产生后果自负。</p>我心目中的完美手机https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/Mon, 23 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%BF%83%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%AE%8C%E7%BE%8E%E6%89%8B%E6%9C%BA/<p>我手里这个Nokia6230用了3年了,买的时候多加了一块电池。前两天,其中一块电池寿终正寝了,剩下的这块也差不多了,感觉就像我的胃,一吃就饱,一会儿就又饿了。</p> +<p>我看着手里这个灰头土脸得就像从垃圾桶里捡回的手机,不禁有了换掉它的念头。</p> +<p>到网上翻了翻信息,结果让我很失望,感觉Nokia不太长进,眼看着人家索爱扛着音乐、摄像的大旗在市场上占了一席之地,自己也跟着别人的屁股转,也在那儿搞音乐手机、摄像手机,却忘了自己的特色。</p> +<p>没办法,别的牌子不愿意用,老N最近推出的新机不是我看不上就是我的钱包不让看(靠,就这还敢冒充Nokia的粉丝呀?)。</p> +<p>苹果的iPhone最近倒是炒得挺火,看起来也挺不错,可是总觉的那玩意儿离咱太遥远了,还是不多看了,以免中毒。</p> +<p>在查看了众多机型之后,长叹一声:“究竟什么样的手机才能让我满意呢!”</p> +<p>总结以下大概要满足以下几点: +1. 屏幕要足够大、分辨率不用极高但也不能太低 +2. 反应速度一定要快(目前我还没有发现一款智能手机反应速度飞快) +3. 个头不能太大、重量不能太沉 +4. 电话、短信功能好用 +5. 电量一定要持久,待机越长越好(这点最重要,功能再强没电也是白扯) +6. 非国产(这个不用多说)     </p> +<pre><code> 这些要求不过分吧?像什么摄像、音乐等功能都没要求,可愣是找不到这样一款手机,反复对比后发现还是目前手上的这个更合要求一些。 +算了,将就用吧。 +结果,昨晚做梦,梦见我也设计了一款手机,以上条件除了第六条其余都满足,取名就叫“nbPhone”把苹果的Phone的风头给压下去了,乔布斯都跟我急了。 +</code></pre>真正牛逼的人,终究会牛逼起来!https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/Sat, 21 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%9C%9F%E6%AD%A3%E7%89%9B%E9%80%BC%E7%9A%84%E4%BA%BA%E7%BB%88%E7%A9%B6%E4%BC%9A%E7%89%9B%E9%80%BC%E8%B5%B7%E6%9D%A5/<p>一个胖子,一个相貌平平而且豁牙的胖子,一个相貌平平而且豁牙的卖手机的胖子。</p> +<p>这样的人参加选秀节目,如果你是评委的话,你会让他通过海选吗?</p> +<p>如果他告诉你他要表演的是歌剧的话,你会跳下评委台把它踢出演播厅吗?!</p> +<p>我想你会的,因为当时英国的那个选秀节目的评委也是这样想的。</p> +<p>PaulPotts,这个我刚刚看到的英国小伙子,就是这样参加选秀节目的。</p> +<p>当他极不自然地站在舞台上,傻傻地告诉评委他要表演歌剧,评委们都笑了,表现得有些不耐烦。</p> +<p>可是,当他深情地唱起今夜无人入眠,当他那与帕瓦罗蒂一样激昂的男高音在演播厅响起时,赛场沸腾了!所有的人都站了起来,评委刁在嘴里的铅笔掉了下来,掌声雷动!</p> +<p>这段由朋友发过来、我甚至懒得看的视频,看得我头皮发麻。</p> +<p>在起了一身鸡皮疙瘩后,我的眼睛也不争气地湿润了(震撼,感动)。</p> +<p>看了别人写的介绍,我了解到,这个叫Paul的小伙子有着不太顺利的人生际遇(大多数人如此吧),但是他从未怀疑过自己的理想,仍然执着地追求着歌剧表演的艺术魅力,直到他被生活所逼而不得不靠卖手机来糊口时,仍未放弃!</p> +<p>终于,上天给了他最后一次机会,他成功了,他向世人再一次的证明了:真正牛逼的人,终究会牛逼起来!试了一下,msn的空间居然还可以插入视频!</p>几天不见,LiveSpace变了https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/Fri, 20 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%A0%E5%A4%A9%E4%B8%8D%E8%A7%81livespace%E5%8F%98%E4%BA%86/<p>我都已经好几天没有照看我的msn空间了(最近太累),今天访问一下,发现界面居然有了变化(别三日,刮目看),嗯哼,原来是微软的Live小组把咱的空间给升级了。</p> +<p>首先是界面的整体风格有了改变,我审美不行,看不出是好看还是难看,感觉貌似顺眼一些。空间上方仍然悬挂着那个大大的广告条(我一直看它不爽),工具条的宽度变宽了,这样会占用更多的空间。</p> +<p>进入空间的“自定义”功能,发现提供的模板多了一些,但一个比一个不耐看,所以我什么也没有动,继续保持现状。一直希望Live空间能够提供类似WordPress那样的模板(多漂亮啊),现在看来,要走的路还比较长(Live小组继续加油啊!)。</p> +<p>不过话又说回来,空间里整那么多花里胡哨的东东也没用,看得让人眼花缭乱的也不爽,我还是喜欢简约一点的风格,最好是让人进入我的空间后,感觉就像是打开了windows的记事本(过分了吧)。</p> +<p>本来Google提供的那个blog挺好的,可是总是不能访问,还是老老实实的在微软提供的共享空间里得瑟吧。</p> +<p>最后,再鄙视一下我自己,这几天由于懒惰而没有更新空间的内容,太不像话了!</p>嘛儿叫幸福?介就叫幸福!https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/Fri, 20 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%98%9B%E5%84%BF%E5%8F%AB%E5%B9%B8%E7%A6%8F%E4%BB%8B%E5%B0%B1%E5%8F%AB%E5%B9%B8%E7%A6%8F/<p>随着一阵悦耳的下班铃声,我提前结束了一天的工作,按照惯例,周末了,要去打球。</p> +<p>叫上同事,抱起篮球,飞快地奔向球场。</p> +<p>终于逃脱了闪烁的计算机屏幕,逃脱了无聊的工作计划,逃脱了漫长的会议,逃脱了郁闷的代码&hellip;&hellip;</p> +<p>各位观众,各位听众,也许你们刚刚打开电梯,现在为您直播的是&ndash;火星杯篮球锦标赛!</p> +<p>穿着运动鞋牛仔裤正在捡球的那家伙就是我,看呐,我在球场上尽情地狂奔,边打球边哼着歌曲“啊哼三分球,它在空中停留,漂亮的假动作,帅呆了我&hellip;&hellip;哦shit!球丢了”。</p> +<p>一口气打了两三个小时,直打到有人气喘吁吁,打到有人双腿抽筋,打到有人口吐白沫还不肯离去。</p> +<p>天渐渐黑了,球框渐渐虚无缥缈起来,收拾家伙,撤!</p> +<p>走到站牌,有车,有座,爽!上了高速,一路畅通,爽!</p> +<p>到了家里,贤惠的老婆已经把饭菜做好,菜做的色香俱佳,啤酒冰得温度适中。</p> +<p>如果这个时候你问我,什么是幸福?我会自在地夹一口菜,然后再悠闲地喝上一口啤酒,眯起眼睛跟你说:“嘛儿叫幸福?介就叫幸福!”</p> +<p>幸福像花儿一样。</p>给点儿钱让我买吃的吧!https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/Thu, 12 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%99%E7%82%B9%E5%84%BF%E9%92%B1%E8%AE%A9%E6%88%91%E4%B9%B0%E5%90%83%E7%9A%84%E5%90%A7/<p>加班后回家的路上,路灯十分昏暗,还没有吃晚饭,心情极度郁闷,我缓缓(没力气狂奔了)走向公车站牌,走着,走着,突然!</p> +<p>一个黑影窜了过来,他跟我说:“兄弟,要盗版光盘不?”</p> +<p>我没有理他,继续走,走着,走着,突然!</p> +<p>又一个黑影窜了过来,他跟我说:“兄弟,要发票吗?”</p> +<p>我没有理他,继续走,走着,走着,突然(靠,有完没完啊!)</p> +<p>一大一小两个黑影窜了出来,原来是一个中年妇女领着一个七八岁的小女孩儿,夜色中看不清面目。小孩开口说话了:“叔叔,给点儿钱让我买吃的吧,我都饿了一天了&hellip;&hellip;”</p> +<p>边说还边做有气无力状,大人也在一边附和。说得我心里一软,鼻涕快掉下来了,差点儿掏钱。</p> +<p>但是转念一想,我TM也饿了快一天啦,也没吃饭呢,再何况,她们的行为也太让我愤怒了,因为就凭这些个破烂演技拿来唬我也太侮辱我的智商了吧!</p> +<p>于是,我友善的冲她们说道:“小朋友,你看”我用手指了指马路,“往前走500米,那里有家派出所,你过去找警察叔叔要些吃的好不好?”</p> +<p>小孩一时不吭声(台词没背下来),大人接着说:“你就可怜我们,给我们几块钱,买包方便面也行啊!”(我靠,我这么晚了还没吃饭,我求您别勾引我的食欲了!)</p> +<p>我没办法,掏出手机,说:“既然你们不愿意亲自过去,那我帮你们打110吧&hellip;&hellip;”</p> +<p>这句话还没有说完,说时迟那时快,只听得“嗖嗖”两声,两个人全都不见踪影,公车站牌下只剩下我和随风飘舞的碎纸片(好身手!)。</p>测试一把google的在线翻译工具https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/Fri, 06 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%B5%8B%E8%AF%95%E4%B8%80%E6%8A%8Agoogle%E7%9A%84%E5%9C%A8%E7%BA%BF%E7%BF%BB%E8%AF%91%E5%B7%A5%E5%85%B7/<p>听说google出了在线翻译的工具,而且还广受大家的好评,在美国举行的一次翻译比赛中还拿了冠军。</p> +<p>我虽不是google的粉丝但也对google的产品挺感兴趣的,于是赶紧凑个热闹,看看伟大的google能不能给我带来惊喜。   由于我只会中文,那就看看google的英译中的水平怎么样。</p> +<p>废话少说,赶紧拿来一首英文歌词《youneededme》(我最喜欢的英文歌曲之一)。</p> +<p>YouneededmeIcriesatearyouwipeditdryIwasconfusedyouclearedmymindIsoldmysoulyouboughtitbackformeAndhelpmeupandgivemedignitySomehowyouneededmeYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeAndIcan'tbelieveit'syouIcan'tbelieveit'strueIneededyouandyouwerethereAndI'llneverleavewhyshouldIleaveI'dbeafoolCauseI'vefinallyfoundsomeoneWhoreallycaresYouheldmyhandwhenitwascoldWhenIlostyoutookmehomeYougavemehopewhenIwasattheendAndturnedmyliesbackintotruthagainYouevencalledmefriendYougavemestrengthtostandaloneagainTofacetheworldoutonmyownagainYouputmehighuponapedestalSohighthatIcouldalmostseeeternityYouneededme,youneededmeOh,yes,youneedmeYouneededme</p> +<p>先试了一下整段翻译,把歌词复制进去,出来的结果让我忍俊不禁google自动翻译的文字:</p> +<p>你需要我,我喊了眼泪,你擦它干,我摸你清我心中我卖出我的灵魂,你买回来,我和帮助我,让我有点尊严,你需要我你们给了我力量单独再次面对世界走出自己再次你就把我小时在室内一个台阶那么高,我几乎可以看到永恒,你需要我,多欧需要我,我也不相信是你,我不能相信这是真的,我需要你和你的笔在此,我永远不会离开,我为何要离开我就是一个傻瓜,我的事业总算发现有人真的三白族你握着我的手,当它冷时,我输了,你带我家,你给了我希望钨母鸡,我是在年底把我的谎言放回真话的时候,你甚至骂我的朋友,你克须缴我力量单独再次面对世界走出自己再次你就把我高美无源一个台阶那么高,我几乎可以看到永恒,你需要我,你需要我哦,多欧需要我,你需要我</p> +<p>唉,比较失望啊,试一下google的翻译网页的功能吧,找到歌词的网页,然后让它翻译你需要我</p> +<p>Icriedatear我哭了眼泪Youwipeditdry你擦它干Iwasconfused我很困惑Youclearedmymind你清除了我的心Isoldmysoul我卖我的灵魂Youboughtitbackforme你买回来,我Andheldtheearth召开地球Yougavemedignity你给我尊严Somehowyouneededme某种程度上,你需要我Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Ican'tbelieveit'syou我不能相信这是你Ican'tbelieveit'syou我不能相信这是你Ineededyou我需要你Andyouwerethere你有AndI'llneverleave,whyshouldIleave?和我永远不会离开,我为何要离开?Ineededyou我需要你canIfinallyfoundsomeonewhoreallycares可我终于发现有人真正关心(Youneededme)(你需要我)Youheldmyhand你牵我的手Itwascold据冷AndIwaslost我失去了Youtookmehome你带我家Yougavemelove你们给我的爱ThatIwasattheend我是在结束Iturnedmylife我把我的生命BackintotruthagainYouevencalledme'friend'放回真话的时候,你甚至骂我'朋友'Yougavemestrength你们给了我力量Tostandaloneagain单独再次Tofacetheworld面对世界Outonmyownagain出自己再次Youputmehigh你把我高Uponapedestal当佩服SohighthatIcouldalmostseeeternity如此高,我几乎可以看到永恒Youneededme你需要我Youneededme你需要我Youneededme你需要我Youneededme你需要我Oh,yes,youneededme哦,你需要我Youneededme你需要我</p> +<p>呵呵,这下看起来还像那么回事儿.感觉机器还是代替不了人啊.翻译有感情的东西总是那么生硬.</p>堵你千遍也不厌倦?https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/Wed, 04 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A0%B5%E4%BD%A0%E5%8D%83%E9%81%8D%E4%B9%9F%E4%B8%8D%E5%8E%8C%E5%80%A6/<p>统计了一下我平时上班所需要的时间,要是堵车的话大概要一个小时多一些,要是特别堵的话大概要两个小时,要是跑步的话大概得三个小时多一些(推算的,可以忽略),要是夜里打车去上班的话大概得二十多分钟(极少,也可以忽略)。</p> +<p>所以我一天大概有三个小时是堵在路上的,这导致了我的胃口极差,身材日渐消瘦,远看像铅笔近看像挂历!每天我都要坐在车上长吁短叹:“GR的堵车啊!”</p> +<p>是什么原因造成了这样的状况?</p> +<p>原因有很多种,我想最直接的原因可能就是因为路上出现了车祸。</p> +<p>无论是蹭了一下车屁股还是挂了一下后视镜,双方都会停好车,把路占上,然后撅起屁股在那儿查看爱车的状况,最后再各自打电话叫人&hellip;&hellip;</p> +<p>这个时候你要是刚好在路上,你就会感觉你置身于车的海洋,一辆挨着一辆的汽车望不到头,一片喇叭声,让人透不过气来。每当我乘坐的公交车慢慢的拱过出事地点,往往还能看到出事的双方(或多方)在那儿撅着。</p> +<p>这种情况每天都要出现,所以每天都要堵车。</p> +<p>据说从8月7号到8月20号,北京的交通管制要进行奥运预演.这对我们这些挤公交车上班的来说真是莫大的好消息啊!我们又可以感受像去年中非论坛期间的那种一路畅通的超快感了!</p> +<p>不过,快乐永远是短暂的,过了那几天,还是得老老实实的坐在车去上体验“堵车不堵心”。</p>曾经,俺也DIY (怀念我的第一只音箱)https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/Mon, 02 Jul 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%9B%BE%E7%BB%8F%E4%BF%BA%E4%B9%9Fdiy-%E6%80%80%E5%BF%B5%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E5%8F%AA%E9%9F%B3%E7%AE%B1/<p>最羡慕那些有米的音响发烧友,手里攥着大把的钞票,买音响器材出手阔绰,有没有一双“金耳朵”不知道,反正当音响店的老板告诉他“这套音响,在听蔡琴唱歌的时候能听见她咽吐沫的声音”时,或者跟他说:“那套设备,在听交响乐的时候可以听见拉琴那小子不小心把曲谱翻掉在地上的声音”的时候,他们就会毫不犹豫的掏出几千乃至几万块大洋,把那些“宝贝”搬回家,反复的回放,听听蔡琴在什么时候换了一口气,或者听听吹长笛的坐在第几排。</p> +<p>我也曾在这方面痴迷过,但仅仅是痴迷,没有什么实质性行动,原因很简单,掏不起那些闲钱呐!</p> +<p>不过,在很早以前,读初中的时候就开始摆弄那些“音响器材”了,只是一堆喇叭,功率很小,大部分是从旧收录机上拆下来的,“音源”也就只有卡带,我曾试着把喇叭放到各种地方以调整他们的“音效”,比如放在蚊帐上除了可以在睡眠时有音乐环绕外还兼具“驱蚊”的效果,我为了得到更多的低音也曾把喇叭嵌入到书桌里(整个桌子就是音箱哈),甚至把喇叭放到洗衣机里,那音质真是惨不忍听。</p> +<p>反正受当时的条件限制,我也只能是像小孩摆弄玩具似的,玩一玩儿而已,毕竟当时升学才是最大的目标。</p> +<p>直到有一天,我翻看一本旧音响杂志,有人自制了个音箱,据说效果还不错,于是就动了自己也做一个的念头。</p> +<p>再后来,到了上中师的时候,有了大把的空闲时间(但还是没空闲的钱),决定纯手工制作一只“有源音箱”!说干就干,开始行动!首先考虑的是功放电路采用什么形式,当时最佳的方案是使用“LM-1875”功放芯片,但由于囊中羞涩,最终放弃,后来买来一块晶体管放大板,也算将就了,喇叭买了两只,一个高音,一个中低音(8寸),向我大舅要来了分频器。</p> +<p>让老家木匠邻居帮忙做了个音箱的框架,剩下的就是我和我的一个哥儿们亲自动手了。</p> +<p>箱体的材料比较奢侈,把我家的一个桌子给锯了(靠!太过分了)。</p> +<p>后来组装的时候才发现,我竟然忘了考虑功放的前级,没办法,再次求救与大舅,从旧收录机上拆下来一块板子作为前级(居然还可以调高低音调)。</p> +<p>就这样,前前后后忙活了有半个星期,我的音箱终于发出处女声了,这个时候音源已经是一台VCD,那个时候我好像对蔡琴不感兴趣,于是先听了一首陈慧娴的《归来吧》,真是天籁啊!我当时感动的鼻涕都快掉下来了!</p> +<p>当然了,我这么说是有一些夸张,其实音质不咋地,只是当时又没听过真正的音响,这只亲手做的音箱,让我体验到了充足的低音(说到低音,要感谢我的姥爷,他给了我一只大号的电源,具体功率不知道,反正很大很大),震耳欲聋的低音,就像是有人拿着锤子在敲打我的胸膛。</p> +<p>这只音箱在当时带给了我无限的快乐和满足感,后来就去省会读大学了,买了电脑,买了几百块的音箱,那只音箱就被我扔到了角落,上面布满了灰尘。</p> +<p>再后来,我干脆把它送给了我的大舅,听说他现在拿它当板凳,还挺结实的!</p>饭否,一群人的喃喃自语https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/Sat, 30 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%A5%AD%E5%90%A6%E4%B8%80%E7%BE%A4%E4%BA%BA%E7%9A%84%E5%96%83%E5%96%83%E8%87%AA%E8%AF%AD/<p>国外新兴一个叫Twitter的Web2.0站点,听说最近很火爆,很多人在那里叽叽咕咕,说一些有想法但又不至于发一篇bolg的“废话”。</p> +<p>我去看了一眼,感觉跟那帮人文化差异挺大的也就没好意思去注册,但是国内的同志们也不示弱,一时间模仿该网站理念的站点如雨后春笋般涌现。</p> +<p>在这些国内的叽咕站点里,有朋友就给我推荐这个“饭否”,说是一个迷你Blog,像Twitter一样,只是大家都是中国人,叽咕的内容比较容易懂一些。</p> +<p>我这个人最爱尝鲜,就忍不住过去注册了一个帐号。</p> +<p>感觉还不错,可以绑定MSN,QQ等IM软件,方便通过IM软件在上面发言,甚至可以绑定手机,让你随时随地的把感受发到网上。</p> +<p>人气还是挺旺的,不断有人在上面喃喃自语,也不乏有一搭没一搭的聊天者。</p> +<p>发布的内容可以很无聊,比如“今天的天气真好”,也可以很有深度,比如“你们好啊,地球人!”</p> +<p>呵呵,由于没用多久,所以还不能多加评论,我怀我有自闭的倾向,现在有了“饭否”,偶尔在里面发一下实时的感受,发泄一下心情而已,就当我是面对着墙壁在一个人喃喃自语吧。</p>共享空间无法访问!惊得我一身冷汗!https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/Sat, 30 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B1%E4%BA%AB%E7%A9%BA%E9%97%B4%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E6%83%8A%E5%BE%97%E6%88%91%E4%B8%80%E8%BA%AB%E5%86%B7%E6%B1%97/<p>早晨起来,像往常的周六一样,来到公司加班。</p> +<p>打开电脑,然后习惯性的访问我的msn空间,“该页无法显示&hellip;.”,不会吧,难道是网络断开了?</p> +<p>没有啊,空间主页还是可以访问的,怎么一切换到我的空间就“该页无法显示”了呢?</p> +<p>强制刷新浏览器还是不行,随便点了一个朋友的空间,可以访问。</p> +<p>完了!莫非我的msnspace被封掉了?</p> +<p>上网搜索一下,看看有没有出现同样问题的朋友,结果显示msnspace无法访问是常有的事儿,很多人都有过类似经历(国内用户),这其中的原因不言自明啊!</p> +<p>我开始回忆,在我的日志里面到底有没有不该出现的敏感词汇?</p> +<p>想了半天,答案是没有。可是要说是msnsapce的故障吧,别人的空间又是可以访问的,无奈只好跟微软的客服发了封电子邮件,暂时还未收到回复。</p> +<p>我刚开始写网络日志,不为影响别人的看法,只为记录一下暂时的心情,本以为放到网上比放在本地还安全(相信微软的技术水平),结果还给我来这一手,想记录的时候却无法访问了,弄的心里还挺难受,担心以前的日志会不会丢掉啊!</p> +<p>ps:就在刚才,它又突然可以访问了!</p>鲜果在线,让我尝一口鲜果https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/Thu, 28 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E9%B2%9C%E6%9E%9C%E5%9C%A8%E7%BA%BF%E8%AE%A9%E6%88%91%E5%B0%9D%E4%B8%80%E5%8F%A3%E9%B2%9C%E6%9E%9C/<p>偶然在diglog里发现了鲜果在线这个网站,名字很好听,于是乎,我就点击进去看了看。</p> +<p>看了之后真有一种相见恨晚的感觉,这个站点本身不提供什么信息,只是提供一个在线的RSS阅读器,而且它提供的RSS频道都是根据大家的兴趣和订阅量进行排序的,也就是说,看某个频道的人越多,该频道就越靠前。</p> +<p>这样就可以看到大家都喜欢看的东西,那些垃圾信息不会浮上来了(感谢Web2.0啊!)。</p> +<p>在线阅读的操作也十分简单容易上手,而且界面清爽,有比较强大的自定义功能(我靠,怎么这么像托儿啊),我订阅了一些精品的频道,比如Engadget、Solidot、cnBeta等,顺便订阅了王小峰的“不许联想”(这个博客比较能扯淡,这算是夸他了)。</p> +<p>这下就不用Firefox的rss阅读器了,直接把订阅的频道放在鲜果在线里存储到网上,在家和在公司都能看到同样的新鲜信息了,重装系统也不怕,把东西都放到网上,我想这也是以后互联网发展的趋势吧&hellip;&hellip;</p> +<p>ps:其实我早就把收藏的网址也放到网上了,在Firefox里安装一个扩展&ndash;yoono,这个插件也很牛,有点儿像美味书签(del.icio.us),不过yoono最近增加了收藏整个网页的功能所以比较起来就更喜欢yoono。</p>归去来https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/Wed, 27 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%BD%92%E5%8E%BB%E6%9D%A5/<p>雨后的空气格外清新,天气还没有完全放晴,乡间的柏油路上还是湿的,远处缓缓驶来一辆摩托车,骑车的人叼着烟,看起来懒洋洋的,十分惬意,没错,那就是我。</p> +<p>我这几天回老家了,这个机会十分难得,暂时逃开北京繁忙的工作,溜回老家,无拘无束,自由自在。</p> +<p>目光所及,尽是农田。</p> +<p>空气中还飘散着青草混合大粪的味道,也算是沁人心脾吧。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span><span class="lnt">2 +</span><span class="lnt">3 +</span><span class="lnt">4 +</span><span class="lnt">5 +</span><span class="lnt">6 +</span><span class="lnt">7 +</span><span class="lnt">8 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">别再徘徊沉寂的心灵 +</span></span><span class="line"><span class="cl">别再留恋破碎的回忆 +</span></span><span class="line"><span class="cl">大地迎春雷抛弃你满腹的忧虑 +</span></span><span class="line"><span class="cl">缤纷的彩虹等着你 +</span></span><span class="line"><span class="cl">别再犹豫等待的心湖 +</span></span><span class="line"><span class="cl">别再沉迷过去的旧梦 +</span></span><span class="line"><span class="cl">暖暖的春风走向那灿烂的天涯路 +</span></span><span class="line"><span class="cl">耀眼的阳光迎着你。 +</span></span></code></pre></td></tr></table> +</div> +</div>我拿什么拯救你!我的晚餐!https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/Wed, 27 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%8B%BF%E4%BB%80%E4%B9%88%E6%8B%AF%E6%95%91%E4%BD%A0%E6%88%91%E7%9A%84%E6%99%9A%E9%A4%90/<p>今天又一次雨中漫步,原因很简单,受天气预报的干扰我又没带伞(干嘛要说又呢?)。</p> +<p>拿起背包从容地奔向车站,嘴里也不忘哼着:“我能想到最郁闷的事~~,就是下雨却没有带伞~~”。</p> +<p>淋雨就淋雨吧,挤上车,去思考一个很严重的问题,我的晚饭吃什么?</p> +<p>别笑!这确实是一个很严重的问题。</p> +<p>我不能像老婆在身边时那样说:“随便吧,做啥吃啥”(虽然心里想着最好炒两个菜,再冰上一瓶啤酒)。</p> +<p>自己动手去做的话,倒不是嫌麻烦,只是吃我做的晚饭简直是虐待自己(大饼卷着馒头沾着米饭吃)。</p> +<p>吃晚餐在我眼中确实是非常重要的事儿,平时上班的时候,早饭总是很虚无缥缈,不堵车的时候就慢慢坐在包子铺里吃包子,堵车时就没准儿了,也许是一个鸡蛋饼,也许是一个肉夹馍,也许,也许只有一杯开水。</p> +<p>午饭就是普通的工作餐,千篇一律,除了米饭还是米饭。</p> +<p>所以说,一日三餐也就晚饭是顿饭,我把吃晚饭看作是一件很神圣的事情,虽然不必在每次吃晚饭前都焚香沐浴,但我也在吃饭前做个深呼吸,抛开一天的烦恼,菩萨保佑、阿弥陀佛、无量天尊、阿门!感谢上天又让我吃了一顿晚饭!</p> +<p>然后就对生活重新燃起热情,对工作又重新充满信心,活着不就是为了这顿晚饭嘛!</p> +<p>可是,现在,我看了看车窗外,雨停了,道路渐渐不再拥堵,我的胃却越来越堵,没有胃口,吃还是不吃,这是个问题。</p> +<p>下了车,路边的麻辣烫小摊熏得我的胃一阵抽搐,不远处的油炸臭豆腐老板正在卖力的吆喝,卖盗版书的小贩倒是省事儿,在大喇叭里循环播放“六块一本儿,随便挑随便拣&hellip;&hellip;”,喊得我头晕眼花,我真想冲过拿起他的喇叭然后在空中抛一个完美的弧线。</p> +<p>还是那个晚饭情节,不想在外面饭馆里吃,尤其是一个人在饭馆里吃。</p> +<p>拿起馒头,就着音乐和啤酒&hellip;&hellip;我怎么会舍得你走,这一去竟是几个秋冬请你好好珍重无须挂念我太多我的爱和从前一样这承诺当是万般重要尽管容颜会老这一生无以为靠我还是会爱你到老我不会让你苦恼也许我始终无法释怀我会假装一切都好。</p>我拧你!https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/Tue, 19 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E6%8B%A7%E4%BD%A0/<p>电视上充斥着广告,其中不乏精品,看完之后让人心情舒畅然后心甘情愿的掏腰包去买他们的产品。</p> +<p>但是大多数广告都庸俗不堪,让人看得心慌气短、胃部抽搐、浑身起鸡皮疙瘩。</p> +<p>这其中不必说“收礼只收搓澡巾”,也不必说“洗洗更健康”,单就是那位一口气上五楼的大爷就能让人抓狂了。</p> +<p>时间长了,这些广告我吐啊吐啊的也就习惯了,对于这类垃圾广告也有了一定的免疫能力。</p> +<p>但是最近又有一个广告冲破了我的心理防线!那就是某饮料的变态广告“我拧你!”</p> +<p>画面上,一群疯子在那里晃来晃去的踢腿,就像得了羊癫疯似的,整个广告看了让人不知道他们在表达什么另类理念,还好导演没忘记让他们每人手里拿着一瓶该品牌的饮料。</p> +<p>我估计作者的思路来源与某天他的鞋里进了个小石子,然后他就不停的甩啊甩,一直甩不出来,直到喝了他那个饮料才甩了出来,于是就创作了这个广告。</p> +<p>关键是你在电视上恶心恶心我也就算了,在上下班的公交车上居然也循环的播放,而且还衍生出不同的版本出来,里面就没有一个正常人,都拿个腿在那儿踢来踢去的。</p> +<p>也许从某种层面上来说,这也是一个很成功的广告,我看见很多人吵着要下载那段抽风的音乐作为手机铃声,但是我绝对不会去喝一口那种饮料,我怕晚上会做噩梦,然后再一脚把被子给踢到床底下去&hellip;&hellip;</p>冰箱里的灯https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/Mon, 18 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%B0%E7%AE%B1%E9%87%8C%E7%9A%84%E7%81%AF/<p>你问:“把大象关冰箱里共分几步?”</p> +<p>答:“分三步,把冰箱门打开,把大象放进去,把冰箱门带上”。</p> +<p>你又问:“可是把大象关进去之后里面黑乎乎的大象不害怕吗?”</p> +<p>反问:“你怎么知道关上之后里面还是黑乎乎的?你确定关上门之后那个灯灭了吗?”</p> +<p>你:“~~~~~~”</p> +<p>这个问题曾经也困扰我很久,因为冰箱的门只要一打开那个灯就亮起来,可是关上门之后你又看不到里面,所以还是不能确定里面到底是什么情况。</p> +<p>听说国外曾经有人为这事儿想不开去自杀,更有人为此急得抓耳挠腮夜里都睡不着觉,直到他把冰箱的门上凿了个洞,看清了原来关上冰箱门后那个小灯真的灭了,这才安稳的睡去(估计这哥们是一环保人士,担心那灯太费电)。</p> +<p>我没像那位牛人那样的使用暴力,但也自有办法。当然了,作为一个正常人,去探讨冰箱里的灯到底关了没有,这种做法实在是有些偏执(这不神经病吗!),你就姑且看作我是好奇心使然吧。</p> +<p>反正,我的冰箱刚弄回来的时候我还真就动用了高科技手段&ndash;拍照手机,我那手机带了个30W像素的鸡肋摄像头这下派上用场了。也是分了三步,把冰箱门打开,把手机定了时(定时10秒后拍摄)放进去,再把门带上。</p> +<p>心中默念,时间到,开门取出,查看照片,出现了不可思议的结果!照片里那个灯竟然还亮着!再试一次,还是亮着。</p> +<p>我那叫一个晕,觉得被冰箱厂家给忽悠了,口口声声说节能,这得多耗不少电呐。</p> +<p>在仔细阅读了两遍说明书之后,总算恍然大悟,原来那不是普通的灯,它不仅仅担任了照明的工作(难道还用来制冷啊?),还兼具杀菌的功效,在关上门之后,它再持续照射几分钟食物,起到杀菌抑菌的效果。哦,原来如此,人家陈老师说了:“人不能无聊到这种地步!”</p>灭蚊记https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/Sun, 17 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E7%81%AD%E8%9A%8A%E8%AE%B0/<p>又到了蚊子最猖獗的季节了,现在每晚都有蚊子在我耳边盘旋,嗡嗡的声音若隐若现,让我神经高度紧张,却又懒得起来招呼它们,无奈,硬着头皮睡去。</p> +<p>第二天胳膊腿上到处都是蚊子们留下的吻痕&ndash;小红疙瘩,奇痒难忍。我发飙了,对付蚊子,我要开始行动!刚开始我采用的是防守战略,听说食用葱姜蒜可以使皮肤排出的汗味具有天然的驱蚊效果,本想采用此方法,但是吃了大蒜那味儿我更受不了只得放弃。</p> +<p>还是在洗澡的时候多放点花露水吧,“六神特效驱蚊花露水”据说效果很好,洗完澡往身上狂撒,安静的躺在床上,等待蚊子飘然而来再飘然而去。</p> +<p>结果,效果欠佳,蚊子依然如故的为我唱着催眠曲,而且我还被花露水熏得神清气爽、失眠健忘。</p> +<p>防守看来不行,改变战略。</p> +<p>男人!就要对别人狠一些!对付蚊子也不例外!</p> +<p>狂奔去超市,买来“枪手”喷雾剂、“睡得香”电蚊香、电蚊拍、紫外光灭蚊灯等等,我要发起进攻了!</p> +<p>晚饭毕,拿起“枪手”对卧室一通疯狂扫射,再将蚊香点燃,整个房间烟雾弥漫,关紧房门,外面客厅里的灭蚊灯发出幽幽的清华紫光。</p> +<p>这下蚊子们彻底的玩完儿了,对不起了诸位,我已经够瘦弱了,您就给我留点儿血吧。</p> +<p>沐浴后,推开卧室门,兴冲冲准备打扫战场,刚推开门我就被呛得眼泪鼻涕都下来了(我刚才喷的不是催泪瓦斯吧),蚊子倒是没有了,只是这屋里也不能待了(已经感觉呼吸困难了),无奈只有掐灭蚊香,打开窗户,终于,新鲜的空气伴随着新鲜的蚊子又进来了。</p> +<p>灭蚊灯、灭蚊拍也收效甚微。灭蚊战争暂告一段落,蚊子暂时领先。</p> +<p>先这样吧,实在不行就拿手拍吧,要是懒得拍就猛开空调把他们冻死,再或者,如果我的反应足够灵敏的话,我就在它们叮我的那一刹那,暗运内力把它们的嘴夹在肌肉里,我憋死它们!</p>自然醒https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/Sat, 16 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%87%AA%E7%84%B6%E9%86%92/<p>如果有那么一天,我在沙滩上走着,突然从沙子里踢出一个神灯,我擦了三下,彭!的一声窜出一个魔鬼,对我龇牙咧嘴,非得满足我三个愿望。</p> +<p>那么,我会许什么愿呢?我不会像周星驰那样无耻,许完了两个愿望后最后一个愿望竟是再要三个愿望。</p> +<p>我想我也应该不那么自私,我会把头两个愿望交给公益事业,比如世界和平、环境保护啥的,然后留一个愿望给自己,那就是&ndash;我想睡个自然醒。</p> +<p>自从告别了自在潇洒的大学生活,参加工作以后,我就没有睡够过,也不是完全没有时间睡觉,而是能有机会睡懒觉的时候我都睡不着。</p> +<p>在一周里里面,工作日期间肯定没睡懒觉的可能,一大早就狂奔到车站去挤车了,晚上又很晚才睡,所以这期间是十分缺觉的。</p> +<p>只有周末的早晨才能有机会赖在床上,可是问题来了,周末的早晨我倍儿精神!平日里闹钟响了还想把它摁掉再小睡一会儿,可一旦到了周末,我往往比闹钟醒的还早,而且再也睡不着。</p> +<p>这是为什么呢,苦苦思索之后,得到答案:周末是属于我自己的自由时间而且很短暂,我不舍的拿这点儿宝贵时间来睡觉!</p> +<p>平时没时间干的我只有等到周末了,平时听不了音乐就周末抱着音响使劲儿听,平时没时间弹琴就等到周末抱着电子琴使劲儿得瑟,平时没时间摄影等到周末就溜达出去一通狂拍&hellip;&hellip;等等,有这些个好事儿等着我,我就算是想睡也真就睡不着了。   所以,我也不祈求啥别的太奢侈的事儿,就让我睡个自然醒吧。</p>老婆回家的第七天https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/Fri, 15 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%A9%86%E5%9B%9E%E5%AE%B6%E7%9A%84%E7%AC%AC%E4%B8%83%E5%A4%A9/<p>老家那边有些事儿需要老婆回去处理一下,用不了几天,可是转眼已经一个周过去了,据说还需要再呆几天才能回北京来。</p> +<p>哎!郁闷呐!按照道理来说,作为一个正常的男人如果老婆回了娘家,那他应该感到万分的高兴才是(我曾经有个同事,从来都不吭声,结果有一次哼了一整天的小曲儿,一问才知道,人家老婆大人回娘家去了)。</p> +<p>高兴是高兴,可是晚饭没有着落了,眼看着冰箱里的东西被我一点点地吃光了,就连平时不爱吃的饺子也在前天被我从冰箱的最底层翻了出来。</p> +<p>家里实在没吃的那就在外面吃吧,昨晚上刚好有饭局,不吃白不吃啊,结果上当了,几个哥们儿都是贪杯的主儿,白的喝完换啤的,啤的喝完换冰的,一直喝到丧心病狂&hellip;&hellip;饭还没吃上几口。</p> +<p>搞得今天蔫了吧唧不说,还浑身上火,鼻炎发作,咽炎发作,苦不堪言。</p> +<p>站起来,叹了口气,转身就看到洗衣机里的衣服也快堆成小山了,都说能把袜子按颜色分类的男人和把袜子随便乱扔的男人是两种不同的生物,我显然是属于后者,看来只有等到周末统一解决了。</p>抽考https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/Thu, 14 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%8A%BD%E8%80%83/<p>   高考刚过,每年的这个时候都会有一大帮人在哪儿声泪俱下的控诉这万恶的高考制度。</p> +<p>我也讨厌高考,但是在我的记忆里,另一种考试制度更令我恶心,那就是&mdash;-抽考!</p> +<p>在我上小学的时后,比较害怕的就是考试了,但最让我感到不安的是每个班级选拔“尖子生”的过程。</p> +<p>那个时候每到期末每个班级总是抽出学习成绩最好的几个同学参加镇上的抽考,他们的考试成绩直接代表了整个班级的学习成绩,也代表了老师的教学水平。</p> +<p>私下里大家管抽到的这些学生叫“尖子生”。</p> +<p>从小学到初中我几乎一路是“尖子生”,至于为什么要有“尖子生”,这样考试有什么意义我就不去想了,只知道如果被老师抽到当“尖子生”就全家开心,我在家也可以放肆一些,万一抽不到就没人给我好脸色。</p> +<p>好在屡次的抽考过程中我只有两次没有被选中,不知是幸运还是不幸。</p> +<p>其中一次是在小学二年级的时候,虽然没有被选中,但是也参加了考试(数学替考),当时我的情况是语文极差但数学很好(至少比那些“尖子”要好一些),老师为了他们的荣誉,便让我替另外一个考生参加了数学考试,试卷虽然是我答的却不能填写我的名字。</p> +<p>好在当时也没什么自尊心,也就爽快的答应了,现在想一想作为老师也太不应该了。(这也是我后来虽念了师范却最终没有选择做老师的原因之一)。</p> +<p>到后来就越来越抵制这种虚伪的考试,大概是四年级,我越来越贪玩,成绩真的不行了,要期末考试了,老师们纷纷挑选“尖子”,刚开始还被提名,后来经过多层过滤,勉强坚持到了最后一轮评测,直到我们伟大的辛勤的园丁说:“好了,那谁,你回去吧,其他人留下”。</p> +<p>于是我提着书包灰溜溜回家,心里却说不出的高兴,不用去参加TMD关系到班集体荣誉的考试了!爽!哼哼,我冷笑,冷笑。现在回忆起来,脑子里仍旧充斥着老师们那因为贪图班级的名次而扭曲的面容(这就是原因之二)。</p> +<p>不知道现在怎么样了,在当时,这样的考试制度,它伤了太多太多孩子的心。ps:今日饮酒过渡沉醉不知归路兴尽打车走误入小区深处呕吐、呕吐引来保安无数!</p>天气预报https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/Wed, 13 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5/<p>早晨,NB烘烘的中国移动给我发天气预报说是阴转多云,在分析了昨晚电视上的预报加上收音机告诉我的降水概率后,我确定今天不会下雨,然后非常自信的没带伞就上班了,虽然头上的天阴的要滴水似的。</p> +<p>谁知现在的天气预报已经不准确到让人发指的地步了!从下车到家的那段路程我只好雨中快步了(跑啊)。</p> +<p>不是说现在计算机运算速度越来越快了吗?</p> +<p>不是说建立的数据模型越来越接近真实了吗?</p> +<p>不是说那什么风云N号也升空了吗?</p> +<p>嗯?!忽悠谁啊!</p> +<p>上次就报给我说最近西伯利亚那边有情况,未来几天有大风降温的天气,搞得我捂了一身痱子!现在到处是天气预报,各大网站上有,报纸上有,QQ上有,收音机、电视就更有了,而且还花样儿繁多,一会儿是穿衣指数,一会儿又洗车指数,最后还忽悠你个降水概率,有雨就有雨没雨就没雨,整个指数百分之60鬼才知道到底要不要下!</p> +<p>当然了,他们有预报准确的时候,那就是对局部地区的天气预报,反正局部地区天天要下雨甚至还有短时间的雷雨大风等强对流天气。</p> +<p>我妈就曾经十分关切的问我:“为什么局部地区天天下雨,这个地区到底在哪儿?住在那儿的人可怎么活哟!”</p> +<p>算啦,也不跟他们计较,我还是回去翻翻小学的语文课本,好好拜读一下里面的那篇《看云识天气》,以后再也不相信这GR的天气预报了!</p> +<p>慢着,突然想起了倪萍大婶子曾经在“综艺大观”上做的即兴方言版天气预报,啧啧,那叫一个准啊!</p> +<p>“社员同志们注意啦,哈。这个山东省荣成县寨子沟公社刘家村广播站现在开始播送天气预报,哈。这个明天头半晌儿阴有小雨儿,后半晌儿就变天了。南风转西北风7-8级。这个凄凄沥沥的小雨儿夹着嗖嗖的西北风,今儿刮,明儿刮儿,后儿还刮,一直刮到下个星期六,哈。这个咱再接着说天气预报。这个西北风一刮,这回最大的特点就是龙卷风,龙卷风啊,粮食要最重&hellip;.”  </p>小王https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/Tue, 12 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%8F%E7%8E%8B/<p>初来北京的时候,家里托着亲戚的亲戚的关系让我在一家单位实习,就像鲁迅小说里写的那样,掌柜的是一副凶脸孔,主顾也没有好声气。</p> +<p>那时我一个人住在前门外大栅栏里的一家小旅馆里。</p> +<p>我住的胡同往北走几步一拐就是北京著名的“大栅栏步行街”,那儿有着浓厚的京味儿,经常看到成群的外国鬼子。</p> +<p>他们不停的拍照,吃小吃,买工艺品,所以这里一天到晚人山人海热闹非凡。有时候我也去转转,只是转转,并不买东西,那些让老外一看见就双眼冒光的玩意儿对我并没有多大吸引力。</p> +<p>小王,我住的旅店里的服务员,瘦瘦的,头戴一顶鸭舌帽,手腕上戴了一只便宜手表。</p> +<p>一天下午,我一个人站在楼顶上特别无聊,正好小王上来,我递给他一根“中南海”</p> +<p>他笑笑接住说:“一个人在外无聊吧?”</p> +<p>我说:“是”他说“那我就给你讲讲这一片儿的故事吧!”</p> +<p>于是他就趴在栏杆上给我说了一通关于这个胡同的故事,说了这一带在清朝是曾经全是窑子。</p> +<p>他抽了不少烟,我说“中南海这烟太冲了这边有没有柔和一点儿的烟?”</p> +<p>他想了想说:“我抽的都是便宜烟,恩,不过便宜好抽就行&hellip;”</p> +<p>他给我说了两种。我到了晚上买来抽了几支觉得不好抽(那时我还不怎么抽烟)就都送给他了。</p> +<p>以后就时常在一起谈天,混得很熟了,他经常早早的就把我的暖壶打满开水给提上来。</p> +<p>只是又过了两三天,我一直也没见到小王,一问店老板才知道:“他回老家了,他是离家出走才来到这个小店的,没钱了,才在这儿打工,不求挣钱只要有吃有睡就行,前两天他哥哥找到这里就把他带回去了。”</p> +<p>老板很惋惜:“多好的孩子呀!”</p>早晨的阳光真是灿烂https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/Mon, 11 Jun 2007 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A9%E6%99%A8%E7%9A%84%E9%98%B3%E5%85%89%E7%9C%9F%E6%98%AF%E7%81%BF%E7%83%82/<p>早晨的阳光真灿烂,虽然天气湿热有点儿桑拿天的苗头,但是我的心情很好,阳光洒在我的工作服上像是镶了金边,很是耀眼。</p> +<p>对了,我是一个环卫工人,每天早晨都要在这儿清扫垃圾,这个工作是很神圣的,至少我这么认为,虽然和小时候的梦想(艺术家)差得很远,但是用某位相声演员的话说“这是一样一样一样的啊”!</p> +<p>我愉快地拿起扫把,自在地吹着口哨,再把这条街扫完就可以收工了。</p> +<p>我不由得加快了速度挥舞着扫把就像一个画家挥舞着手中的画笔,我气沉丹田暗用内力,短小的扫把被我使得是呼呼生风,卷起的沙尘就像一层薄雾。</p> +<p>这个时候你出现了,挎着小包,下了公共汽车,高跟鞋踩在平坦的人行道上发出清脆的得得响,你的小手微微举起遮住当前还不算猛烈的太阳。真漂亮啊!我暗自赞道。</p> +<p>上学时很不努力导致我的眼神儿非常好,我想,在工作时看到美女也算是一种福利吧!</p> +<p>看着你向我走来,越走越近,不知是热的还是累得,我的手心开始出汗,我攥紧了扫把更卖力的扫了起来,地上的落叶伴随着纸片在沙尘中轻轻飞舞。</p> +<p>你终于走到我的身边,冲我使劲的挥手,这么近的距离我终于看清了你的眼睛,很大、很圆,长长的睫毛。</p> +<p>你竟然停下了脚步,盯住我迷离的眼神和唏嘘的胡茬,我期盼着你能给我说些什么,虽然黑夜给了你黑色的眼睛,但你却翻了个白眼儿给我:“你就不能轻点儿扫吗!还让不让人走路了!”。</p> \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/1/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/1/index.html" new file mode 100644 index 000000000..c068ce27a --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E5%BF%83%E6%83%85%E9%9A%8F%E7%AC%94/ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/10/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/10/index.html" new file mode 100644 index 000000000..848254f9d --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/10/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/11/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/11/index.html" new file mode 100644 index 000000000..522069141 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/11/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/12/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/12/index.html" new file mode 100644 index 000000000..ea465b43c --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/12/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/13/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/13/index.html" new file mode 100644 index 000000000..a3e623f2c --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/13/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/14/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/14/index.html" new file mode 100644 index 000000000..58ca06a5d --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/14/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/15/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/15/index.html" new file mode 100644 index 000000000..db42845e3 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/15/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/16/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/16/index.html" new file mode 100644 index 000000000..c1cb07f4b --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/16/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/17/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/17/index.html" new file mode 100644 index 000000000..2a68bb690 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/17/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/18/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/18/index.html" new file mode 100644 index 000000000..3ef36982b --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/18/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/19/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/19/index.html" new file mode 100644 index 000000000..f427bd167 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/19/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/2/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/2/index.html" new file mode 100644 index 000000000..f6275c0d2 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/2/index.html" @@ -0,0 +1,36 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/20/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/20/index.html" new file mode 100644 index 000000000..e7f92adaf --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/20/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/21/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/21/index.html" new file mode 100644 index 000000000..8784d177a --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/21/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/22/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/22/index.html" new file mode 100644 index 000000000..9bfb26083 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/22/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/23/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/23/index.html" new file mode 100644 index 000000000..d7b499d9d --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/23/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/24/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/24/index.html" new file mode 100644 index 000000000..cf5b3b28c --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/24/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/25/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/25/index.html" new file mode 100644 index 000000000..26dfb40b4 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/25/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/26/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/26/index.html" new file mode 100644 index 000000000..780bfe0d1 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/26/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/27/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/27/index.html" new file mode 100644 index 000000000..daaf8b3d1 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/27/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/28/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/28/index.html" new file mode 100644 index 000000000..7bd17242c --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/28/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/29/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/29/index.html" new file mode 100644 index 000000000..fc941d5dd --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/29/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/3/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/3/index.html" new file mode 100644 index 000000000..5c7298535 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/3/index.html" @@ -0,0 +1,37 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/30/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/30/index.html" new file mode 100644 index 000000000..aa7a0c266 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/30/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/31/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/31/index.html" new file mode 100644 index 000000000..37e732f01 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/31/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/32/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/32/index.html" new file mode 100644 index 000000000..ceba24222 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/32/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/33/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/33/index.html" new file mode 100644 index 000000000..3de217557 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/33/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/34/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/34/index.html" new file mode 100644 index 000000000..77868c8c0 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/34/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/35/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/35/index.html" new file mode 100644 index 000000000..bf91a8f44 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/35/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/36/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/36/index.html" new file mode 100644 index 000000000..d68d60bc6 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/36/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/37/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/37/index.html" new file mode 100644 index 000000000..2d2985eb1 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/37/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/38/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/38/index.html" new file mode 100644 index 000000000..016874136 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/38/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/39/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/39/index.html" new file mode 100644 index 000000000..37bdd9959 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/39/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/4/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/4/index.html" new file mode 100644 index 000000000..0d87d885c --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/4/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/40/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/40/index.html" new file mode 100644 index 000000000..dee095355 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/40/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/41/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/41/index.html" new file mode 100644 index 000000000..d4720e70f --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/41/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/42/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/42/index.html" new file mode 100644 index 000000000..6dd12f074 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/42/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/43/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/43/index.html" new file mode 100644 index 000000000..f62f914f8 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/43/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/44/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/44/index.html" new file mode 100644 index 000000000..120692422 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/44/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/45/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/45/index.html" new file mode 100644 index 000000000..920f5078a --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/45/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/46/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/46/index.html" new file mode 100644 index 000000000..a1778ab3d --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/46/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/47/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/47/index.html" new file mode 100644 index 000000000..ff2fe6280 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/47/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/48/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/48/index.html" new file mode 100644 index 000000000..be9615fd1 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/48/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/49/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/49/index.html" new file mode 100644 index 000000000..7668517d0 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/49/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/5/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/5/index.html" new file mode 100644 index 000000000..b1219601a --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/5/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/50/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/50/index.html" new file mode 100644 index 000000000..332163511 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/50/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/51/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/51/index.html" new file mode 100644 index 000000000..336eb90cb --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/51/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/52/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/52/index.html" new file mode 100644 index 000000000..ce9b33351 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/52/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/53/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/53/index.html" new file mode 100644 index 000000000..bd2d51057 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/53/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/54/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/54/index.html" new file mode 100644 index 000000000..57f9eec65 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/54/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/55/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/55/index.html" new file mode 100644 index 000000000..3f7e9de78 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/55/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/56/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/56/index.html" new file mode 100644 index 000000000..c5e2971ee --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/56/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/57/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/57/index.html" new file mode 100644 index 000000000..b58a275d7 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/57/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/58/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/58/index.html" new file mode 100644 index 000000000..e940c7dbb --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/58/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/59/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/59/index.html" new file mode 100644 index 000000000..168cfb976 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/59/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/6/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/6/index.html" new file mode 100644 index 000000000..4d38ff5cf --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/6/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/60/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/60/index.html" new file mode 100644 index 000000000..b86ac63b8 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/60/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/61/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/61/index.html" new file mode 100644 index 000000000..2f05215d0 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/61/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/62/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/62/index.html" new file mode 100644 index 000000000..d2c216cb8 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/62/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/63/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/63/index.html" new file mode 100644 index 000000000..f849dd460 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/63/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/64/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/64/index.html" new file mode 100644 index 000000000..e9e694b63 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/64/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/65/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/65/index.html" new file mode 100644 index 000000000..2e66196c2 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/65/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/66/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/66/index.html" new file mode 100644 index 000000000..fb50dff3a --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/66/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/67/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/67/index.html" new file mode 100644 index 000000000..0420af780 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/67/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/68/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/68/index.html" new file mode 100644 index 000000000..63855c33f --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/68/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/69/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/69/index.html" new file mode 100644 index 000000000..45a5ad8f4 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/69/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/7/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/7/index.html" new file mode 100644 index 000000000..3d5679990 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/7/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/70/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/70/index.html" new file mode 100644 index 000000000..522c8e860 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/70/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/71/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/71/index.html" new file mode 100644 index 000000000..37f429aa7 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/71/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/72/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/72/index.html" new file mode 100644 index 000000000..6e8557897 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/72/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/73/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/73/index.html" new file mode 100644 index 000000000..c68d951ef --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/73/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/74/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/74/index.html" new file mode 100644 index 000000000..e9e3997ec --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/74/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/75/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/75/index.html" new file mode 100644 index 000000000..9691c65a8 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/75/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/76/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/76/index.html" new file mode 100644 index 000000000..28fd21e22 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/76/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/77/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/77/index.html" new file mode 100644 index 000000000..16a582ef5 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/77/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/78/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/78/index.html" new file mode 100644 index 000000000..39aa25b99 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/78/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/79/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/79/index.html" new file mode 100644 index 000000000..6b4a65800 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/79/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/8/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/8/index.html" new file mode 100644 index 000000000..1f2cfdb55 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/8/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/80/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/80/index.html" new file mode 100644 index 000000000..3234182ae --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/80/index.html" @@ -0,0 +1,37 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/81/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/81/index.html" new file mode 100644 index 000000000..b9570594b --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/81/index.html" @@ -0,0 +1,36 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/82/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/82/index.html" new file mode 100644 index 000000000..f3e204830 --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/82/index.html" @@ -0,0 +1,35 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/9/index.html" "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/9/index.html" new file mode 100644 index 000000000..23510a19a --- /dev/null +++ "b/tags/\345\277\203\346\203\205\351\232\217\347\254\224/page/9/index.html" @@ -0,0 +1,38 @@ +Tag: 心情随笔 - Learning & Writing! +

Tags

心情随笔

+ \ No newline at end of file diff --git "a/tags/\345\277\203\347\220\206\345\255\246/index.html" "b/tags/\345\277\203\347\220\206\345\255\246/index.html" new file mode 100644 index 000000000..f396ca007 --- /dev/null +++ "b/tags/\345\277\203\347\220\206\345\255\246/index.html" @@ -0,0 +1,32 @@ +Tag: 心理学 - Learning & Writing! +

Tags

心理学

+ \ No newline at end of file diff --git "a/tags/\345\277\203\347\220\206\345\255\246/index.xml" "b/tags/\345\277\203\347\220\206\345\255\246/index.xml" new file mode 100644 index 000000000..648c48829 --- /dev/null +++ "b/tags/\345\277\203\347\220\206\345\255\246/index.xml" @@ -0,0 +1,35 @@ +心理学 on Learning & Writing!https://sbabybird.github.io/tags/%E5%BF%83%E7%90%86%E5%AD%A6/Recent content in 心理学 on Learning & Writing!Hugo -- gohugo.iozh-cnSun, 18 Apr 2021 00:00:00 +0000《少有人走的路》读书笔记https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Sun, 18 Apr 2021 00:00:00 +0000https://sbabybird.github.io/p/%E5%B0%91%E6%9C%89%E4%BA%BA%E8%B5%B0%E7%9A%84%E8%B7%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<h2 id="简介">简介</h2> +<p>《少有人走的路-心智成熟的旅程》这本书据说是畅销多年,经久不衰,在豆瓣上评分很高。不少人纷纷表示此书给自己带来了很多思考和感悟。我是在今年第二遍阅读了此书,之前大约十年前草草看过一遍,印象不够深刻。但今年再读,书中就有很多文字能够读进去了。虽然作者本身对“爱”的定义和解读我并不完全认同,以及作者也许受宗教信仰的影响,在某些观点上有一定的倾向,但都不妨碍这本书给我带来震撼。</p> +<h2 id="笔记">笔记</h2> +<blockquote> +<p>人生苦难重重。</p> +</blockquote> +<p>开篇就表达了最基本的设定,让我闭上本来想要抱怨的嘴,不得不跟着往后翻看有没有可以解决的答案。</p> +<blockquote> +<p>解决人生问题的关键在于自律。人若缺少自律,就不可能解决任何麻烦和问题。在某些方面自律,只能解决某些问题,全面的自律才能解决人生所有的问题。</p> +</blockquote> +<p>在认真看本书之前,我对“自律”的理解还仅限于在生活上严格要求自己,作息规律、遵守诺言、办事靠谱、简约不浪费。但作者显然不仅仅是这个意思,否则也用不着用很大的篇幅来说“自律”。</p> +<p>看一下作者对“自律”的定义。</p> +<blockquote> +<p>所谓自律,就是主动要求自己以积极的态度去承受痛苦,解决问题。自律有四个原则:推迟满足感、承担责任、忠于事实、保持平衡。</p> +</blockquote> +<p>只有不回避问题、以积极的心态去解决问题,才算作是自律。即便在生活中早睡早起、刻苦读书、勤奋工作,如果遇到问题首先想要逃避,那就不能算是自律。很惭愧,我之前在不少问题上都是以拖延为主要处理方式,本质上还是无法承受或者面对解决问题可能带来的痛苦,那么在读了本书之后,我会有意识地去改变做事原则,就拿上周来说,我终于鼓起勇气去诊所看牙,解决了拖了很久的牙结石问题(虽然智齿还没解决)。</p> +<blockquote> +<p>推迟满足感,就是不贪图暂时的安逸,先苦后甜,重新设置人生快乐与痛苦的次序:首先,面对问题并感受痛苦;然后,解决问题并享受更大的快乐。在充满问题和痛苦的人生中,推迟满足感是唯一可行的生活方式。</p> +</blockquote> +<p>这个话题不仅仅是在本书中提到过,据说有心理学家做过试验,在一群孩子里面寻找具有“推迟满足感”倾向的人(比如能够先忍住不吃巧克力以获取更大的奖励),结果证明这样的人在后续的生活中取得成功的概率要远高于先吃巧克力的人。本书首先强调这个话题,将其作为自律中的第一个原则,我想是因为道理都是相通的吧。很久之前我看过一篇讲解时间管理的文章,里面提到在规划一天的工作时,优先处理最难的那件事(文章中称“先吃掉那只青蛙”),然后当前的工作会越来越简单,这样的方式跟本书中作者所提倡的“推迟满足感”异曲同工。尽可能的正面问题、提早感受解决问题的痛苦,正是执行自律的首要原则。</p> +<blockquote> +<p>不能及时解决自己面临的问题,这些问题就会像山一样横亘在我们心中,阻碍心灵的成长和心智的成熟。很多人显然忽略了这个道理。我们必须面对属于自己的问题,这是解决问题的基本前提。 +指望别人解决自己的问题,也不是明智之举。唯一的办法&ndash;我们应该勇敢地说:“这是我的问题,要由我来解决!”</p> +</blockquote> +<p>这就牵出了第二个原则&ndash;“承担责任”。逃避问题会自然而然的推卸责任,认为这不是自己的问题,始终对于自己扮演的角色缺少清晰的认知。不过作者提到了两种情况“神经官能症”和“人格失调症”,前者属于给自己强加责任,后者属于推卸责任。这么说来,我可能有前者的倾向,很多压力都来源于此。不过作者也提到在复杂的人生道路上,判断自己该为什么事和什么人负责,这是一个永远存在的难题。</p> +<p>还有一种情况是,在有些事情上强加给自己责任,在有些事情上又没有意识到是自己的责任。读到这些章节的时候,我也在反思,当我一旦开始想要抱怨的时候,其实已经陷入“人格失调”和“神经官能”的边缘,要时刻提醒自己,不断评估自己的责任。</p> +<blockquote> +<p>忠于事实是自律的第三条原则。如果我们追求健康的生活和心智的成熟,那我们就要坚定不移地遵循这条原则。我们需要实事求是,杜绝虚假。我们越是了解事实,处理问题就越是得心应手。逃避现实的痛苦是人类的天性,只有通过自律,我们才能逐渐克服现实的痛苦,及时修改自己的地图,逐步成长。我们必须忠于事实,尽管这会带来暂时的痛苦,但远比沉湎于虚假的舒适中要好。我们必须忍受暂时的不适感,追求事实而不是假象,并承受这一过程的痛苦。</p> +</blockquote> +<p>这让我想到了“诚实”,不仅限于不撒谎(这一点实在是难以做到)。但我很快意识到作者所说的忠于事实比不撒谎更重要的是,面对事实,不可活在自己的想象里。虽然我们每个人都有自己的成见,看事情也很难看到全貌,但是不可做不基于事实的幻想,期望问题会自行消失、期望不付出努力就能得到回报。</p> +<blockquote> +<p>你既要承担责任学会推迟满足感,先苦后甜,把眼光放长远,同时又要尽可能过好当前的生活,让人生的快乐多于痛苦。</p> +</blockquote> +<p>这就是“保持平衡”,应该是一种“拿捏”吧。为了保持平衡,作者建议,适当的选择“放弃”。包括放弃过时的观念、习惯。王小波在小说中写道:“人生就是一个缓慢被捶的过程。。。”,如果不能适时的放弃一些东西,那很显然这个过程是相当痛苦的。</p> +<p>先写这么多。</p> \ No newline at end of file diff --git "a/tags/\345\277\203\347\220\206\345\255\246/page/1/index.html" "b/tags/\345\277\203\347\220\206\345\255\246/page/1/index.html" new file mode 100644 index 000000000..e0713ad66 --- /dev/null +++ "b/tags/\345\277\203\347\220\206\345\255\246/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E5%BF%83%E7%90%86%E5%AD%A6/ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\345\255\246\344\271\240/index.html" "b/tags/\346\234\272\345\231\250\345\255\246\344\271\240/index.html" new file mode 100644 index 000000000..dc755dfab --- /dev/null +++ "b/tags/\346\234\272\345\231\250\345\255\246\344\271\240/index.html" @@ -0,0 +1,32 @@ +Tag: 机器学习 - Learning & Writing! +

Tags

机器学习

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\345\255\246\344\271\240/index.xml" "b/tags/\346\234\272\345\231\250\345\255\246\344\271\240/index.xml" new file mode 100644 index 000000000..7dc77733c --- /dev/null +++ "b/tags/\346\234\272\345\231\250\345\255\246\344\271\240/index.xml" @@ -0,0 +1,48 @@ +机器学习 on Learning & Writing!https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/Recent content in 机器学习 on Learning & Writing!Hugo -- gohugo.iozh-cnSun, 02 Jun 2019 00:00:00 +0000线性回归和梯度下降https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/Sun, 02 Jun 2019 00:00:00 +0000https://sbabybird.github.io/p/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%92%8C%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D/<h3 id="有监督学习的两种主要任务分类和回归">有监督学习的两种主要任务(分类和回归)</h3> +<ul> +<li>有监督机器学习任务主要分为两种,一种是分类任务,一般是通过学习算法实现对未知数据的分类甄别,比如判断是男性还是女性,预测明天会不会下雨等等,预测结果是离散的分类。另一种是回归任务,用于预测一个具体的值,比如房价、年龄等等,预测结果是连续的值;</li> +<li>解决回归任务比较常见的算法就是线性回归算法;</li> +</ul> +<h3 id="线性回归">线性回归</h3> +<ul> +<li>线性回归是最典型的用于回归任务的机器学习算法。它的基本原理是基于,任意一个为n的值,可以通过一个n-1阶的多项式进行拟合;</li> +<li>线性回归的算法的目标是根据已知标签数据,训练一个预测函数f(a, b),使得x输入带入ax+b这样的多项式可以得出需要预测的值;</li> +<li>所以目标是找到合适的a和b(从数学语言的精确描述来说,一般用别的符号代替,为了方便记录,我使用a和b);</li> +<li>为了找到合适的a和b,需要定义一个损失函数(也有称为代价函数的),J(a, b),用于判断a和b是否合适,比较简单的有“方差均值”法;</li> +<li>方差均值指的是,所有样本带入预测函数f,将预测值与实际值相减,取平方,求和再求平均数(暂时不知到markdown里如何加入公式);</li> +<li>那么带入损失函数,就是意味着,找到合适的a、b使得刚才那个方差均值小于一个阈值(接近最优);</li> +<li>线性回归本质上,是在平面坐标系里找到一个与样本匹配的直线,这样基于这个直线,即可预测未知的值;</li> +</ul> +<h3 id="梯度下降">梯度下降</h3> +<ul> +<li>如何找到合适的a和b,一个一个地去试是不可能的(无穷多的计算量);</li> +<li>比较典型的算法是“梯度下降”,又是牛顿起的头;</li> +<li>比较生动的描述是,想想一个三维空间图形,X和Y平面是有a和b的值构成,Z轴是损失函数的值,值最小的部分(在图上就最低的部分,像一个山谷)就是最优解;</li> +<li>从山顶的某个点上,环顾360度,找到适合下山的一小步,一点一点儿走向山谷最低处,有点像慢慢走楼梯,所以叫梯度下降;</li> +<li>从我的体会来看,这个方法有点像牛顿那个计算平方根的迭代法(根据一个猜测值,然后通过迭代公式寻找一个更加接近正确值的值,直到误差降低到合适范围);</li> +<li>从微积分的角度,就是找到损失函数J在最初尝试的那个点上的切线,并通过它的斜率(也就是导数值)乘以一个系数a,逐步逼近最低点(切线斜率为零)的过程;</li> +</ul>机器学习的学习准备https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/Sat, 18 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%87%86%E5%A4%87/<h3 id="机器学习的概念">机器学习的概念</h3> +<p>机器学习是人工智能的一个分支,是近年来逐渐具备实用性的各种人工智能应用的基础。其本质是(我目前的个人理解)利用针对已知的数据集合抽取采样特征,然后利用某种数据模型(核心是某种算法:如kNN、SVM、朴素贝叶斯等)对数据进行计算处理,得到一组可以预测未知数据集特征的参数和手段,从而可以对数据进行预测判断的一种数据处理方法。</p> +<h3 id="机器学习相关的名词">机器学习相关的名词</h3> +<ul> +<li>神经网络:是机器学习的一种实现方式,从概念上来说,小于“机器学习”,但是由于其在图像识别、语音识别、语言翻译等领域的优异表现,以至于现在提到机器学习就认为是神经网络,实际则不然,机器学习的概念更大,更加基础,是实现神经网络应用的基础理论和方法;</li> +<li>深度学习:是神经网络的应用特例,同样是在应用层表现优异,可以理解为神经网络的一种实现;</li> +<li>大数据:机器学习的数据处理基础支撑,近年来机器学习在应用层面表现较好主要得益于大数据技术的发展,可以使得模型训练内容量级增加,极大的提高了模型准确度;</li> +<li>n维向量:来自线性代数,在机器学习中起到重要作用,在机器学习中一般用于各种特征数据的载体,在不同的算法过程中传递和计算。</li> +</ul> +<h3 id="机器学习相关的工具">机器学习相关的工具</h3> +<ul> +<li>编程语言:目前比较流行的是Python,因为有比较丰富易用的程序包,很多科技公司也开源了较为成熟的框架,再加上Python语言本身的简单易上手,使得Python成为这个领域最流行的语言。当然C和C++、Java还是实现各种算法的根基,Python更多是提供了一种调用接口;</li> +<li>iPython:Python语言的交互控制台,可以较为方便的测试、调试Python程序,有较强的交互功能,比语言发行版自带的强大;</li> +<li>jupyter:提供Python语言的Web交互界面,通过网页即可编写代码,并及时反馈执行结果,由于是B/S架构,所以可以使得运行时跟开发环境分开。编辑界面同时支持基于Markdown语法的文档编写,使得“文学化”编程成为一种可能,非常适合用于科研人员的汇报材料或论文;</li> +<li>TensorFlow:谷歌开源的机器学习框架,快速灵活部署机器学习应用,可以应用与大规模、工业级场景;</li> +<li>keras:基于Python编写的高级神经网络API,属于对机器学习的深度封装,如果以学习机器学习原理为目标的,不建议使用,还是先手动将若干种核心算法实现一遍比较深刻;</li> +</ul> +<h3 id="预期的学习方法">预期的学习方法</h3> +<ol> +<li>通过阅读相关的书籍,对于概念有所了解,这个过程可以是粗糙的浏览,不求详细的理解各种原理和算法;</li> +<li>尝试一些教学视频,了解实操的基本流程,对于自己读书得到的概念进行验证,修订理解,并熟悉基本工具的使用(如Python的numpy、plot等);</li> +<li>细读书籍,按照书中的事例进行实操,并尝试推导算法的基本原理,理解后,形成自己的文字;</li> +<li>定义简单的任务,贯穿数据准备、数据清洗、特征值提取、模型建立、模型应用各个阶段,一般来说可以是手写文字识别,或者给新闻文章分类等;</li> +<li>循环和迭代这个过程,一边输入信息,一边将学到的东西结合思考,形成有效的输出(文字、视频等);</li> +</ol> \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\345\255\246\344\271\240/page/1/index.html" "b/tags/\346\234\272\345\231\250\345\255\246\344\271\240/page/1/index.html" new file mode 100644 index 000000000..71ab946c5 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\345\255\246\344\271\240/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/index.html" new file mode 100644 index 000000000..825c86b1e --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/index.html" @@ -0,0 +1,35 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/index.xml" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/index.xml" new file mode 100644 index 000000000..6b0ee0024 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/index.xml" @@ -0,0 +1,7048 @@ +机器文摘 on Learning & Writing!https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/Recent content in 机器文摘 on Learning & Writing!Hugo -- gohugo.iozh-cnTue, 26 Sep 2023 00:00:00 +0000机器文摘 第 051 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/Tue, 26 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-20.png" alt="Featured image of post 机器文摘 第 051 期" /><h1 id="机器文摘-第-050-期">机器文摘 第 050 期</h1> +<h2 id="长文">长文</h2> +<h3 id="基于-github-pages-服务搭建个人博客">基于 Github Pages 服务搭建个人博客</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-34-26.png" +width="1600" +height="672" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="571px" +></p> +<p><a class="link" href="https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8E-github-pages-%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/" target="_blank" rel="noopener" +>基于 Github Pages 服务搭建个人博客 </a> +这是我自己写的一篇文章,发布在<a class="link" href="https://sbabybird.github.io" target="_blank" rel="noopener" +>我的博客</a>。</p> +<p>搭建独立博客网站的方法多种多样,常见的方法包括租用服务器自行架设,或者选择托管服务商提供的博客发布服务。</p> +<p>但是上述两种方式都会产生一定的费用,对于非盈利网站而言,不太友好。</p> +<p>经过多年的实践,现在已有越来越多的人选择了使用免费且易用的 GitHub Pages 服务来搭建个人博客。</p> +<p>然而,现有的使用教程大多侧重于操作步骤,对于新手或非专业人士而言,难以真正理解其中原理。</p> +<p>他们可能看到别人的博客既漂亮又实用,却在自己尝试搭建时屡屡遇到挫折,逐渐失去信心。</p> +<p>这无疑会打击那些希望通过博客持续创作文字、并且希望能够免费建立个性化站点的人的积极性。</p> +<p>本文将介绍如何使用 GitHub Pages 服务搭建免费的个人博客网站,及其背后的实现原理,以帮助初学者顺利建立自己理想的博客站点。</p> +<h3 id="人的大脑不是由爬行脑哺乳动物脑智人脑累加而成">人的大脑不是由爬行脑、哺乳动物脑、智人脑累加而成</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-35-36.png" +width="690" +height="588" +loading="lazy" +class="gallery-image" +data-flex-grow="117" +data-flex-basis="281px" +></p> +<p>心理学界有一个关于人类大脑流传很广的理论:人的大脑主要由三层不同能力的大脑构成,位于最核心的“爬行动物脑”、随着演化逐渐增加的“低级哺乳动物脑”,以及带来更多灵活性和语言能力的“高级脑”。</p> +<p>这种理论给人的感觉就好像人的大脑是像洋葱那样,由一个“旧”的大脑结构逐渐添加“新”大脑形成。</p> +<p>而且换句话说,青蛙和鱼仍然在我们身体里,我们只是有了更高级的东西把它们包裹了起来。</p> +<p>然而以上理论只是心理学家所提出的一种错误观点,近年来随着生物科学的发展,越来越多的科学家开始指出这种错误。</p> +<p>这篇<a class="link" href="https://journals.sagepub.com/doi/10.1177/0963721420917687" target="_blank" rel="noopener" +>《你的大脑不是洋葱,你的脑子里并没有一个爬行动物》</a>是由神经科学家撰写,重点澄清了上述关于“三层大脑”的传言。</p> +<p>文章指出:之所以这种理论流传甚广,是因为大家普遍对“进化论”的进化过程有所误解,大多数人认为进化过程是一种先低级再逐渐高级的线性过程。然而事实的进化是一种同步辐射进程。</p> +<h3 id="使用-javascript-操作照片的-exif-信息">使用 Javascript 操作照片的 EXIF 信息</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-35-59.png" +width="690" +height="444" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="372px" +></p> +<p><a class="link" href="https://getaround.tech/exif-data-manipulation-javascript/" target="_blank" rel="noopener" +>使用 Javascript 操作照片的 EXIF 信息</a> +可交换图像文件格式(EXIF)是一种规范,用于指定图像和声音的格式。它通过元数据存储技术细节,所谓元数据即用来描述其他数据的数据,例如相机制造商和型号、图像拍摄日期和时间等信息。</p> +<p>最初,EXIF仅用于JPEG和TIFF两种图像格式。然而,如今,其他文件格式如PNG、WEBP或HEIC也支持EXIF以用于元数据。</p> +<p>本文将重点关注JPEG格式,探究其内部结构,然后展示如何在浏览器环境中通过JavaScript读取和更新相关的元数据。</p> +<h3 id="css-的自定义缓动曲线">CSS 的自定义缓动曲线</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-20.png" +width="690" +height="399" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="415px" +></p> +<p><a class="link" href="https://www.smashingmagazine.com/2023/09/path-css-easing-linear-function/" target="_blank" rel="noopener" +>使用 linear() 函数实现惊人的 CSS 缓动动画</a>,随着新的 CSS linear() 缓动功能的出现,我们可以创建自然感觉的动画和过渡的可能性大大扩展。Jhey Tompkins 在本文中介绍了 CSS 缓动的当前状态,并演示了 linear() 函数令人期待的特性。 ​​​</p> +<h3 id="通过放大-rom-芯片搞破解">通过放大 ROM 芯片搞破解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-35.png" +width="690" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="120" +data-flex-basis="290px" +></p> +<p><a class="link" href="https://github.com/travisgoodspeed/gbrom-tutorial" target="_blank" rel="noopener" +>gbrom</a>,通过拍摄 ROM 芯片的显微照片,将里面固件的二进制代码还原了出来,硬破解的世界就是这么朴实无华。</p> +<h2 id="资源">资源</h2> +<h3 id="免费开发云服务大全">免费开发云服务大全</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-36-56.png" +width="690" +height="737" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="224px" +></p> +<p><a class="link" href="https://free-for.dev/#/" target="_blank" rel="noopener" +>free-for.dev</a>。这个网站筛选收录了大量面向开发者提供的在线服务。收录的标准非常严苛:必须真正免费(免费试用的不算),如果套餐有时间限制,则至少提供 1 年的免费时间。收录的服务涵盖:云基础设施、内容托管、设计资源、字体、在线 IDE 、产品监控等。</p> +<h3 id="在线提示词工厂">在线提示词工厂</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-37-13.png" +width="690" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +></p> +<p><a class="link" href="https://promptperfect.jinaai.cn/a/NEW" target="_blank" rel="noopener" +>promptperfect</a>,来自 JinaAI 的 PromptPerfect。能自动生成提示词。让用户可以逐步调试提示词,提供了各种参数。我试着让它帮我编写 AI 作画的提示语,感觉比我自己写的要靠谱一些。</p> +<h3 id="更新的光线追踪教程">更新的光线追踪教程</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-051-%E6%9C%9F/2023-09-26-13-37-26.png" +width="670" +height="553" +loading="lazy" +class="gallery-image" +data-flex-grow="121" +data-flex-basis="290px" +> +<a class="link" href="raytracing.github.io" >《花一个周末学会光线追踪》</a>,Ray Tracing in One Weekend,这本在线电子书出新版了。真正从零开始手把手教你通过光线追踪进行三维场景渲染。 ​​​事实上整个系列一共包括三部曲,继续阅读《光线追踪:下一周篇》,将添加纹理、体积(如雾)、矩形、实例、光源,并支持使用包围体积层次结构(BVH)来处理大量对象。最后,在《光线追踪:往后余生篇》中,将深入探讨创建一个非常严谨的光线追踪器所涉及的数学。</p> +<h2 id="观点">观点</h2> +<h3 id="专注是良药">专注是良药</h3> +<p>不用过多考虑某些时间的投入是否值得,而陷入对时间流逝的焦虑。</p> +<p>如果做一件事情能够使得一个人在一段时间内保持专注,就是非常值得做的事情。</p> +<p>因为,“专注”本身就是收获成果的一部分。</p> +<p>能够在快节奏的生活中,找到不容易被分散注意力、不被各种诱惑干扰、可以集中精力投入的事情,已属难得。</p> +<p>“专注”做事看似简单,却是解决各种精神内耗的良药。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 050 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/Tue, 19 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-40.png" alt="Featured image of post 机器文摘 第 050 期" /><h1 id="机器文摘-第-050-期">机器文摘 第 050 期</h1> +<h2 id="长文">长文</h2> +<h3 id="十八世纪的光学电报网络">十八世纪的光学电报网络</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-08.png" +width="500" +height="517" +loading="lazy" +class="gallery-image" +data-flex-grow="96" +data-flex-basis="232px" +></p> +<p>当年读《基督山伯爵》的时候,有一个让我震惊的科技。</p> +<p>主人公有一项复仇计划是破坏敌人的金融资产。计划采取的手段是收买了一个传递实时信息的人让其传递错误信息。</p> +<p>而具体传递信息的手段是,每隔一段距离设一座瞭望塔,每个塔上有一个人,向一个方向用望远镜观看,远方的上级瞭望塔会有人发射信号弹,一连串的信号弹代表一定的信息,然后这个人再原样发射一遍,让后方的瞭望塔看见。信息就这样一级一级传递下去。</p> +<p>信息经过编码,可以表达股票行情等信息,类似后来的电报系统,但是这是在十八世纪。</p> +<p>读过之后我就一直有疑问,不知道小说是否虚构了这种信息传递技术,直到前几天我发现了这篇文章:<a class="link" href="https://www.lowtechmagazine.com/2007/12/email-in-the-18.html" target="_blank" rel="noopener" +>《十八世纪的光学电报网络》</a>。</p> +<p>里面详细介绍了在两百多年前人类就已经发明了“光学电报”系统,并建立起了巨大的信息网络。信息传递速度达到了惊人的 1380千米/每小时。</p> +<h3 id="c-语言发展简史">C 语言发展简史</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-23.png" +width="690" +height="352" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="470px" +></p> +<p>要说 C 语言是计算机历史上最重要的编程语言应该不会有人反对吧。</p> +<p>作为大多数人编程入门的母语,C 语言具有语法简洁、高性能(贴近计算机底层)、使用灵活、适用范围广泛等特点。</p> +<p>虽然诞生于上个世纪 70 年代,但即便是在 2023 年的今天,C 语言仍然排在各大编程排行榜的考前位置,仍然是信息科技的重要支撑力量。</p> +<p><a class="link" href="http://cm.bell-labs.co/who/dmr/chist.html" target="_blank" rel="noopener" +>《C 语言简史》</a>,由丹尼斯·里奇(C 语言之父)撰写,是一篇难得的介绍 C 语言的诞生和发展的历史性文献。</p> +<h3 id="vbvisual-basic发展简史">VB(Visual Basic)发展简史</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-31-40.png" +width="690" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></p> +<p>前几天 HN 上有个从业近 30 年的老程序员发问:<a class="link" href="https://news.ycombinator.com/item?id=37470318" target="_blank" rel="noopener" +>为什么 VB(Visual Basic)这么高效、好用的开发工具逐渐消失了?</a>。</p> +<p>被顶的最高的网友放出了<a class="link" href="https://retool.com/visual-basic/" target="_blank" rel="noopener" +>《Visual Basic 从诞生到消失》</a>这篇文章。</p> +<p>在上世纪 80 年代末 90 年代初,Windows 操作系统刚刚崭露头角的时候,VB 已经在萌芽状态了。而且已经具有非常先进的组件化、可视化、低代码等超前思想。并且发明了“控件”、“消息触发”等概念。</p> +<p>最初的版本与 BASIC 语言并无关系,只考虑了使用可视化开发并辅助简单的内嵌脚本,但是比尔·盖茨对 BASIC 十分热爱(毕竟那是微软起家的技术),亲自推动了组件化、可视化开发与 BASIC 语言结合,便诞生了 Visual Basic。</p> +<p>得益于超前的可视化开发理念,VB 极大降低了当时开发应用程序的门槛,涌现出一大批开发者。包括当时那些不得不转型给个人电脑开发程序的大型机编程工程师。</p> +<p>这一切在 VB 随着 Visual Studio 发布 6.0 的时候达到了顶峰。</p> +<p>转折点出现在微软为了应对 Java 的威胁而推出 .Net 公共语言运行时的时候,VB 也被纳入到这套体系里,被成为 VB.Net ,扩充了复杂的语法和继承、多态等高级特性。</p> +<p>对于那些真正喜欢 VB6 的人来说,这些都是唯恐避之不及的东西,更糟糕的是新的 VB.Net 无法兼容之前的代码,大量成果移植困难。</p> +<p>之后更是随着网络信息科技的发展,Web 编程逐渐取代了 Windows 桌面编程,VB 这个伟大的技术,被淘汰也就是顺其自然的了。</p> +<h3 id="一个在网页里模仿-excel-表格的故事">一个在网页里模仿 Excel 表格的故事</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-14.png" +width="690" +height="201" +loading="lazy" +class="gallery-image" +data-flex-grow="343" +data-flex-basis="823px" +></p> +<p><a class="link" href="https://websheets.github.io/websheets/demo/" target="_blank" rel="noopener" +>一位前端工程师,讲述了他在 2016 年受雇于 Uber(优步)时的一些开发往事</a>。</p> +<p>作为服务于数据工程师的内部研发团队,他所在的小组主要是给公司的数据分析人员提供内部工具,以便让他们能够更快地分析数据,更快的分析数据意味着更有可能在产品运营竞争里获胜。</p> +<p>然而数据分析人员总是抱怨工具不满足要求,主要是操作界面,因为他们非常习惯“Excel”,每次提需求的时候总是说:“你就做得跟 Excel 一样就行”。</p> +<p>作者最开始还试图跟用户解释要实现起来是多么困难,后来逐渐放弃了挣扎,并开始着手在网页里实现一个跟 Excel 一样的表格,而且他竟然实现了。</p> +<p>故事的后来有些伤感,作者提供的工具并没有使得 “Uber” 在跟嘀嘀的竞争中胜出,相反地,“Uber”在中国的业务还被“嘀嘀”收购了。</p> +<p>被用于数据分析的工具也被抛弃不再使用。</p> +<p>后来作者选择了将那个像 Excel 的表格代码放在了 <a class="link" href="github.com/WebSheets/websheets" >Github 进行开源,地址在这里</a>。</p> +<h2 id="资源">资源</h2> +<h3 id="通用-web-应用服务器">通用 Web 应用服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-34.png" +width="690" +height="356" +loading="lazy" +class="gallery-image" +data-flex-grow="193" +data-flex-basis="465px" +></p> +<p><a class="link" href="https://unit.nginx.org/" target="_blank" rel="noopener" +>NGINX Unit</a>,通用 Web 应用服务器。是一个轻量且多功能的应用运行时,作为一个单一的开源服务器,它提供了您的 Web 应用程序所需的基本组件:运行应用程序代码(包括 WebAssembly)、提供静态资源、处理 TLS 和请求路由。</p> +<p>Unit 是由 NGINX 团队成员从零开始创建的,以在运行时高度高效且完全可配置。最新版本是 1.31.0,于 2023 年 8 月 31 日发布。</p> +<h3 id="绿色安卓-app-合集">绿色安卓 App 合集</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-32-52.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://www.simplemobiletools.com/" target="_blank" rel="noopener" +>绿色安卓app合集</a>。</p> +<p>这个网站收集了一大批良心 app,全部没有广告且不要求隐私权限。</p> +<p>几乎涵盖了日常使用的所有类型,包括艺术绘画、音乐播放器、笔记、文件管理、录音、拍照等。 ​​​</p> +<h3 id="nuejs">nuejs</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-10.png" +width="690" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></p> +<p><a class="link" href="https://nuejs.org/" target="_blank" rel="noopener" +>nuejs</a>,越来越多的人对前端开发的混乱感到不满了。不同的是有人选择抱怨,有人撸起袖子开干。nuejs 的作者觉得现在使用 React、Vue 等框架再加上若干服务端渲染框架,使得前端开发生态变得越来越复杂和掌握。于是自己动手开发了一个简单的轻量化框架,终极目标是构建一个简洁、高效的前端开发生态。</p> +<h3 id="1024-字节的网页可显示-3d-地球">1024 字节的网页,可显示 3D 地球</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-21.png" +width="447" +height="255" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="420px" +></p> +<p><a class="link" href="https://aem1k.com/world/" target="_blank" rel="noopener" +>1024 字节的 JavaScript,在网页中显示动画 3D 地球模型</a>,页面动画显示的就是其源代码。</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span><span class="lnt">11 +</span><span class="lnt">12 +</span><span class="lnt">13 +</span><span class="lnt">14 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="p">.</span><span class="o">&lt;</span><span class="nx">script</span><span class="o">&gt;</span> +</span></span><span class="line"><span class="cl"><span class="nb">eval</span><span class="p">(</span><span class="nx">z</span><span class="o">=</span><span class="s1">&#39;p=&#34;&lt;&#34;+&#34;pre&gt;&#34;/* ,.oq#+ ,._, */;for(y in n=&#34;zw24l6k\ +</span></span></span><span class="line"><span class="cl"><span class="s1">4e3t4jnt4qj24xh2 x/* =&lt;,m#F^ A W###q. */42kty24wrt413n243n\ +</span></span></span><span class="line"><span class="cl"><span class="s1">9h243pdxt41csb yz/* #K q##H######Am */43iyb6k43pk7243nm\ +</span></span></span><span class="line"><span class="cl"><span class="s1">r24&#34;.split(4)){/* dP cpq#q##########b, */for(a in t=pars\ +</span></span></span><span class="line"><span class="cl"><span class="s1">eInt(n[y],36)+/* p##@###YG=[#######y */(e=x=r=[]))for\ +</span></span></span><span class="line"><span class="cl"><span class="s1">(r=!r,i=0;t[a/* d#qg `*PWo##q#######D */]&gt;i;i+=.05)wi\ +</span></span></span><span class="line"><span class="cl"><span class="s1">th(Math)x-= /* aem1k.com Q###KWR#### W[ */.05,0\ +</span></span></span><span class="line"><span class="cl"><span class="s1">x;)p+=&#34; *#&#34;/* b. OQ####x#K */[e[x++]+e[x++\ +</span></span></span><span class="line"><span class="cl"><span class="s1">]]||(S=(&#34;eval&#34;/* l `X#####D , */+&#34;(z=\&#39;&#34;+z.spl\ +</span></span></span><span class="line"><span class="cl"><span class="s1">it(B = &#34;\\\\&#34;)./* G####B&#34; # */join(B+B).split\ +</span></span></span><span class="line"><span class="cl"><span class="s1">(Q=&#34;\&#39;&#34;).join(B+Q/* VQBP` */)+Q+&#34;)//m1k&#34;)[x/2\ +</span></span></span><span class="line"><span class="cl"><span class="s1">+61*y-1]).fontcolor/* TP */(/\\w/.test(S)&amp;&amp;&#34;#\ +</span></span></span><span class="line"><span class="cl"><span class="s1">03B&#34;);document.body.innerHTML=p+=B+&#34;\\n&#34;}setTimeout(z)&#39;</span><span class="p">)</span><span class="c1">// +</span></span></span></code></pre></td></tr></table> +</div> +</div><h3 id="全球-ip-地址地理位置数据库">全球 IP 地址地理位置数据库</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-050-%E6%9C%9F/2023-09-19-13-33-35.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://ipapi.is/geolocation.html" target="_blank" rel="noopener" +>全球 IP 地址 地理位置数据库</a>。含 IPV4 和 IPV6。 ​​<a class="link" href="https://ipapi.is/geolocation.html" target="_blank" rel="noopener" +>​这篇文章里还介绍了构建 IP 地址地理数据库的实现原理</a>和一套具有指导意义的实现方法。基本原理是:“互联网中的每个 IP 地址都由组织拥有或管理。可以向互联网注册机构查询WHOIS信息。”</p> +<h2 id="观点">观点</h2> +<h3 id="为什么-facebook-的-pytorch-占有率赢了-google-的-tensorflow">为什么 Facebook 的 PyTorch 占有率赢了 Google 的 Tensorflow</h3> +<p>Pytorch 已经完全击败了 Tensorflow,成为 AI 开发框架的事实标准。Pytorch 一开始就专注于学术界,方向是把最牛的人吸引过来。而 Tensorflow 则倾向于软件工程炫技,做各种简单但是酷炫的功能。</p> +<p>最终专业化的 torch 击败了 tensorflow 。 我觉得​​​还有一个原因就是 Google 特别容易弃坑,Tensorflow 中间也切换过前后不兼容的 API。</p> +<h3 id="越来越多的科技产品让人更好地欺骗自己">越来越多的科技产品让人更好地欺骗自己</h3> +<p>比如美颜相机、电影特效、游戏等,研发它们的主要目的就是让人们更好的实现自我欺骗和催眠。</p> +<h3 id="东方文明为什么警惕科技我个人不完全同意">东方文明为什么警惕科技(我个人不完全同意)</h3> +<p>中国古代对于科技非常警惕和打压的原因,也许是古人早就意识到科技(或技术)力量很容易对人类造成强烈反噬。</p> +<p>观点来自 <a class="link" href="https://www.bilibili.com/video/BV1pu4y1r7KW/" target="_blank" rel="noopener" +>@​​​安东尼2001:量子自旋理论背后,是人类历史的轮回</a>。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 049 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/Tue, 12 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-22.png" alt="Featured image of post 机器文摘 第 049 期" /><h1 id="机器文摘-第-049-期">机器文摘 第 049 期</h1> +<h2 id="长文">长文</h2> +<h3 id="在-linux-环境里执行-windows-应用程序">在 Linux 环境里执行 Windows 应用程序</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-33-44.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p>最近遇到一个难以启齿的需求,服务器是 Linux 环境,但是某项服务功能却需要执行一个 Windows exe 文件。</p> +<p>不得已才想到要求助 Wine 这个经典中间层,据说可以使的 Linux 兼容大部分的 Win32 程序。</p> +<p>但是又不想污染服务器的其他环境,于是选择在容器中运行。</p> +<p>在网上找到了这篇<a class="link" href="https://leimao.github.io/blog/Docker-Wine/" target="_blank" rel="noopener" +>《利用 Docker 容器和 Wine 在 Linux里运行 Windows 程序》</a>,按照文中介绍的步骤成功实现了需求。</p> +<p>基本步骤: +1、根据文章提供的 Dockfile 构建镜像; +2、运行镜像并注意配置运行容器的环境变量; +3、执行所需的 exe 程序。</p> +<h3 id="windows-系统是怎样进行引导的">Windows 系统是怎样进行引导的</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-06.png" +width="690" +height="976" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="169px" +></p> +<p>前不久,我在给笔记本更换大容量固态硬盘的时候,由于不愿重做系统,使用了硬盘克隆功能,将原盘整体信息直接克隆到新硬盘。</p> +<p>结果克隆成功并替换安装硬盘之后,却没能正常引导进入 Windows,而是进入了一个类似 PE 系统的界面(猜测是原盘中厂家自制的),并告知我由于检测到硬件更换,拒绝引导,并建议我选择恢复系统。</p> +<p>我猜测之前的隐藏分区可能有笔记本厂家做的一些特定引导程序,才导致这样的情况。</p> +<p>我对系统引导的理解还停留在 MBR 分区表大面积应用的阶段。于是尝试删除了隐藏分区,并手动将系统盘分区设置为了 “激活”分区(事实上这时候已经错了,因为 GPT 分区表方式下无法采用这种引导方式了)。</p> +<p>结果系统干脆直接无法引导。出现这种情况,我之前的知识储备显然不够用了。</p> +<p>经过一番折腾和搜索,我才得知现在 Windows 8 及以上版本操作系统的电脑所采用的方式是 GPT 分区表 + UEFI 引导。</p> +<p>也就是说硬盘上需要单独开辟一个分区存储负责进行操作系统引导的工作。这个分区平时对于操作系统的资源管理器不可见(但磁盘管理中可以看到),由主板上的 UEFI 程序(这个程序可以理解为 BIOS 的升级版)进行访问和管理。</p> +<p>了解这个方式之后,就简单了,重新使用工具修改 GPT 分区并制作专用引导分区即可。</p> +<p>最后,为了弄清这跟之前的 MBR 引导方式有什么区别,我找到了一位运维工程师总结得较到位的文章<a class="link" href="https://zhuanlan.zhihu.com/p/355526135" target="_blank" rel="noopener" +>《Windows系统开机引导顺序简述及运维小结》</a>。</p> +<h3 id="500-行代码写一个-c-编译器">500 行代码写一个 C 编译器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-22.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p><a class="link" href="https://vgel.me/posts/c500/" target="_blank" rel="noopener" +>500 行 Python 代码写一个 C 编译器</a>。</p> +<p>作者立下这个 flag 之后才发现任务有多难。</p> +<p>主要是代码行数太少了,如果使用传统手段实现,可能这点儿代码量还不够写个语法分析器的。</p> +<p>于是作者主动放弃了 AST (抽象语法树)的构建,采用 Token 提取和指令生成“一遍过”的方式,实现了一个相当“简洁”的 C 编译器。</p> +<h2 id="资源">资源</h2> +<h3 id="假装弹钢琴">假装弹钢琴</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-34-51.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p><a class="link" href="http://touchpianist.com/" target="_blank" rel="noopener" +>touchpianist</a>,在线弹钢琴的网站(也提供手机 App 版),可以让你假装钢琴大师,只需要按键盘上的任意键,旋律就会自动演奏,不过你要控制敲击键盘的速度,以匹配原曲的节奏。我弹了一下,默认曲目是贝多芬的《月光奏鸣曲》,差点儿被自己陶醉了。 ​​​</p> +<h3 id="bun-v10">Bun V1.0</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-09.png" +width="690" +height="419" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></p> +<p><a class="link" href="https://bun.sh/blog/bun-v1.0" target="_blank" rel="noopener" +>bun-v1.0</a>,拳打 node , 脚踢 deno 的 JavaScript 运营环境 bun 推出了 1.0 版本。主打一个“All in one”,号称可以一次性取代一揽子工具:node、npx、npm、webpack、tsc、babel、jest。一个工具包揽了运行、打包、包管理、转译、测试等所有事情,且速度是 nodejs 的 3 倍。</p> +<p>对于这种吹的比较厉害的技术,保持关注,谨慎使用吧。</p> +<h3 id="开源基于-llm-知识库平台">开源基于 LLM 知识库平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-24.png" +width="690" +height="334" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="495px" +></p> +<p><a class="link" href="https://github.com/labring/FastGPT" target="_blank" rel="noopener" +>FastGPT</a> - 基于 LLM 大模型的 AI 知识库问答系统。提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景。项目在 Github 开源,采用技术栈: NextJs + TS + ChakraUI + Mongo + Postgres(Vector 插件)。支持 GPT、Claude、Spark、ChatGLM 等多种 LLM 模型。</p> +<h3 id="开源基于-llm-数据可视化平台">开源基于 LLM 数据可视化平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-049-%E6%9C%9F/2023-09-12-13-35-35.png" +width="690" +height="292" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="567px" +></p> +<p><a class="link" href="https://github.com/microsoft/lida" target="_blank" rel="noopener" +>lida</a>,微软出品的数据可视化工具库,特点是基于 LLM 对话模型进行生成,其生成的可视化代码支持多种可视化后端的语法,包括 matplotlib、seaborn、d3等。 ​​​</p> +<h2 id="观点">观点</h2> +<h3 id="编程是一种体育锻炼">编程是一种体育锻炼</h3> +<p>编程除了是一种可以以之谋生的专业技能,对于那些真喜欢编程的人来说,它还是一个心理疗愈工具。</p> +<p>编程能使人专注,进入“心流”状态比较容易,也容易让人的心态平和。</p> +<p>编程与体育锻炼一样,都是可以让人受益终生的活动。</p> +<p>&mdash;-来自<a class="link" href="https://weibo.com/1461522430/NiEh1BHMt" target="_blank" rel="noopener" +>@软件教书匠金旭亮</a>。</p> +<h3 id="造成电子阳痿的一种因素">造成电子阳痿的一种因素</h3> +<p>一个不容忽视的因素是现在游戏的加载速度,尤其是 PC 游戏。</p> +<p>我们被碎片化信息惯得一秒钟都不想等待。</p> +<p>每当想玩会儿 CS 或者地平线之类得游戏,光是等待游戏启动、地图加载等就足以让人放弃想玩的念头。</p> +<p>更别提有些游戏还有一些跳都无法跳过得开场引导视频。</p> +<p>所以我现在就算是玩也是偶尔打开模拟器玩一玩老游戏,带有状态存储,随时加载存档。</p> +<p>据说有一部分游戏主机(比如新一代 XBox)有类似笔记本电脑的睡眠功能,开机就玩,随时进入上次未完成的任务。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 048 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/Tue, 05 Sep 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/<h1 id="机器文摘-第-048-期">机器文摘 第 048 期</h1> +<h2 id="长文">长文</h2> +<h3 id="关于-python-语言的一些统计数字">关于 Python 语言的一些统计数字</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-05.png" +width="690" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="224" +data-flex-basis="539px" +></p> +<p><a class="link" href="https://py-code.org/stats" target="_blank" rel="noopener" +>关于开源 Python 仓库的一些有趣统计</a>,有人克隆了 PyPI 网站里所有 Python 包对应的 Github 仓库,并对这些仓库里的全部文件进行了分析和统计。</p> +<p>1、排名前三的语法特性分别是:列表推导、fstring字符串格式化、注解;</p> +<p>2、代码中大约包含有超过 2 万 5 千个密钥明文,泄露最多的是访问 Google API、OpenAI API和腾讯云 Secret ID;</p> +<p>3、截止到 2023 年 8 月,所有源码加起来已超过 60TB ,文件数量超过 10 亿。</p> +<h3 id="wasm-技术让数据库执行-ai-模型">Wasm 技术让数据库执行 AI 模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-30.png" +width="618" +height="492" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="301px" +></p> +<p><a class="link" href="https://dylibso.com/blog/pg-extism/" target="_blank" rel="noopener" +>使用 Extism 将 WebAssembly 引入 PostgreSQL</a>。</p> +<p>这篇文章的作者介绍了一种方法,可以使用 Wasm 技术通过扩展插件的方式给 PostgreSQL 数据库增加 UDF (用户自定义函数),从而实现调用 AI 模型的能力。</p> +<h3 id="bitlocker-硬件加密能破解吗">BitLocker 硬件加密能破解吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-20-50.png" +width="690" +height="499" +loading="lazy" +class="gallery-image" +data-flex-grow="138" +data-flex-basis="331px" +></p> +<p>BitLocker 是 Windows 下的存储加密技术,用于保护硬盘中的数据安全。</p> +<p>未经解密的硬盘即使遗失或者被接入其他系统也无法进行读取。</p> +<p>这在极大程度上带来了数据安全(不过仍有不少用户在不知情的情况下开启了 BitLocker 且未保存密钥,在重做系统的时候发现硬盘无法解密,数据无法恢复。。欲哭无泪。。)。</p> +<p>然而这种加密方式也不是绝对安全,国外有技术爱好者对此进行了挑战,并使用一台逻辑分析仪成功绕过了加密。</p> +<p><a class="link" href="https://www.errno.fr/BypassingBitlocker.html" target="_blank" rel="noopener" +>这篇文章进行了详细的记录</a>。</p> +<p>主要原理为:在系统开机启动过程中的某个时刻,加密芯片和 CPU 之间传输了未加密的信号。使用逻辑分析仪捕获该信号可以逆向出加密密钥。</p> +<h2 id="资源">资源</h2> +<h3 id="监控网页信息变化的工具">监控网页信息变化的工具</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-17.png" +width="499" +height="326" +loading="lazy" +class="gallery-image" +data-flex-grow="153" +data-flex-basis="367px" +></p> +<p><a class="link" href="https://github.com/dgtlmoon/changedetection.io" target="_blank" rel="noopener" +>changedetection</a>,一个监控网站变化的工具。</p> +<p>帮助用户密切关注商品打折、股票行情、政策发布等信息变动。</p> +<p>支持通过网页可视化的方式指定监控页面区域。</p> +<p>通过邮件、即时聊天软件、API调用等多种方式推送信息。可使用 Docker 部署,或者本地 Python 环境部署。</p> +<h3 id="switch-模拟器">Switch 模拟器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-28.png" +width="690" +height="472" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="350px" +></p> +<p><a class="link" href="https://github.com/Ryujinx/Ryujinx" target="_blank" rel="noopener" +>Ryujinx</a> 一个用c# 写的开源 switch 模拟器,该模拟器旨在提供卓越的准确性和性能、用户友好的界面以及稳定的版本构建。 ​​​</p> +<h3 id="文字缩写快捷键工具">文字缩写快捷键工具</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-21-45.png" +width="568" +height="446" +loading="lazy" +class="gallery-image" +data-flex-grow="127" +data-flex-basis="305px" +></p> +<p>为了减少打字量,国外这哥们写了个脚本将日常用语全部缩写了,只需敲入缩写字母,脚本自动完成完整句子的键盘输入。</p> +<p>比如: +st =&gt; something +ab =&gt; about +hw =&gt; hardware +sti =&gt; sometime</p> +<p>据小哥自己统计,使用这个脚本以后他已经减少了一半的键盘敲击量。</p> +<p><a class="link" href="https://github.com/eschluntz/compress" target="_blank" rel="noopener" +>项目名叫 compress 目前已开源</a>,如果你有兴趣,改成支持中文也不是不可以。</p> +<h3 id="canvas-手册">Canvas 手册</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-048-%E6%9C%9F/2023-09-05-13-22-11.png" +width="562" +height="625" +loading="lazy" +class="gallery-image" +data-flex-grow="89" +data-flex-basis="215px" +></p> +<p>Canvas 是网页中用于图形绘制的基本元素,结合 JavaScript 可以实现各种复杂的图形效果和交互动画。我之前都是每次用到了的时候现去翻文档,对它的每个 API 都是一知半解。这里有一个<a class="link" href="https://bucephalus.org/text/CanvasHandbook/CanvasHandbook.html" target="_blank" rel="noopener" +>Canvas 手册</a>,详细介绍了 Canvas 的各种调用接口。适合希望深度使用及系统学习 Canvas。</p> +<h2 id="观点">观点</h2> +<h3 id="不要重复造轮子是人为设置的一种限制">“不要重复造轮子”是人为设置的一种限制</h3> +<p>遇到需求不能满足的情况,是去“寻找轮子”还是“动手创造轮子”,这是两种不同的思维习惯。</p> +<p>“寻找轮子”往往意味着寻找已有答案,将问题看为一种正常的状态,是“自古以来”、是“从来如此”。</p> +<p>思维定势一旦形成,就很难改变,让人成了那个在沙漠中让美女帮他牵住骆驼的矮子。</p> +<p>动手创造者往往是发现这种问题的人,他们不循规蹈矩,他们 Think different,是改变世界的人。</p> +<p>“不要重复发明轮子”,这个原则用于工作中确实比较安全,他保证了不会浪费资源,并且避免了一定的技术风险。</p> +<p>但也同时拒绝了伟大的创新。</p> +<p>所以不要被这句话束缚,尽管去做自己的轮子。</p> +<p>哪怕它一开始很丑。</p> +<p>你的轮子必将使你与众不同,使你拥有不一样的视角,成为那个动手创造的人。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 047 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/Tue, 29 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/<h1 id="机器文摘-第-047-期">机器文摘 第 047 期</h1> +<h2 id="长文">长文</h2> +<h3 id="业余爱好者痴迷于工具专业人士注重技能">业余爱好者痴迷于工具,专业人士注重技能</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-17-36.png" +width="649" +height="582" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="267px" +></p> +<p><a class="link" href="https://adamsinger.substack.com/p/amateurs-obsess-over-tools-pros-over" target="_blank" rel="noopener" +>业余爱好者痴迷于工具,专业人士注重技能</a>。</p> +<blockquote> +<p>以原声吉他为例。在数字音乐制作和合成器盛行的时代,这个单独演奏的乐器可能显得有点古老。然而,在熟练音乐家的手中,它变成了一个充满迷人旋律和触动灵魂的载体。它甚至可能为更大的创意提供灵感,如果你直接跳到现代合成器就有可能会错过这些。原声吉他的简单性促使艺术家专注于演奏的细微之处,完善他们的指弹技巧,并通过每一次弹奏传达情感。真正的魔力不在于吉他本身,而在于将其演绎得生动活泼的音乐家的技艺。</p> +</blockquote> +<p>这篇文章读来深有感触。</p> +<p>在解决问题的时候,我总是忍不住问自己,我这个方法是最优的吗?我使用的工具是不是最合适/最好的?</p> +<p>这种心理,常常使我陷入对最佳实践和完美工具的追求中,而忘记了解决问题本身。</p> +<p>时间久了,工具积累一大堆,但每个都未曾发挥其真正作用,一边老工具在吃灰,一边继续寻找新工具。</p> +<p>差生文具多。</p> +<p>正如文章中所说:真正的高手明白,应当拿起手里已有的工具,先行动起来。在这个过程中如果有机会创造美好的事物,好的工具自然会出现在眼前。</p> +<h3 id="cpu-的指令分支预测">CPU 的指令分支预测</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-17-49.png" +width="682" +height="743" +loading="lazy" +class="gallery-image" +data-flex-grow="91" +data-flex-basis="220px" +></p> +<p>现代的 CPU 基本都具有指令分支预测的特性,通过猜测后续会执行的指令分支,提前运行一些指令和设置状态,可以有效利用 CPU 的执行资源,提升效率。</p> +<p>不过,如果预测准确的话效率提升十分明显,但是如果预测错误,CPU 就要多做一些事情(刷新后续预测的指令和相关的状态),随着现代 CPU 中指令流水线越来越复杂,这种代价也变得越来愈大。</p> +<p>在编程的时候,编写一些对于 CPU 分支预测友好的代码,能够对性能产生极大的影响。</p> +<p>这篇<a class="link" href="https://johnnysswlab.com/how-branches-influence-the-performance-of-your-code-and-what-can-you-do-about-it/" target="_blank" rel="noopener" +>对于 CPU 的分支预测,我们能做什么</a>耐心地从 CPU 的分支预测机制讲起,通过具体的代码举例,讲解了怎样让编写的代码对 CPU 分支预测这类优化更加友好。</p> +<h3 id="ssh-命令详解">SSH 命令详解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-18-25.png" +width="690" +height="535" +loading="lazy" +class="gallery-image" +data-flex-grow="128" +data-flex-basis="309px" +></p> +<p><a class="link" href="https://grahamhelton.com/blog/ssh-cheatsheet/" target="_blank" rel="noopener" +>SSH 命令详解</a>,一篇对 SSH 命令的参数介绍十分详细且易懂的文章。</p> +<p>通过举例让我彻底弄清楚了基于 SSH 的端口转发。</p> +<p>另外还知道了可以在已有的 SSH 连接上执行补充命令,以实现不断开终端的情况下将远程主机上的端口转发到本机访问。 ​​​</p> +<h2 id="资源">资源</h2> +<h3 id="开源的房子">开源的房子</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-18-47.png" +width="690" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +></p> +<p><a class="link" href="https://www.wikihouse.cc" target="_blank" rel="noopener" +>wikihouse</a>,是一个开源房屋建造网站,房子的图纸、模型均可从网站上下载,里面有各式各样的房屋建造资料,任何人都可以据此增删、设计、制造、组装自己的建筑。可以理解为建筑界的 github。 +​​​</p> +<h3 id="关掉-edge-浏览器新增的圆角样式">关掉 Edge 浏览器新增的圆角样式</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-03.png" +width="690" +height="352" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="470px" +></p> +<p>Edge 浏览器的最新更新里,给所有页面强制增加了一个圆角边框,看起来很不习惯(丑陋)。</p> +<p>经过研究,我发现,如果想恢复到之前的样子,可以在设置外观选项里关闭该特性。</p> +<p>我已经关闭,并果断给这个功能特性反馈了负面评价。</p> +<h3 id="hello-world">Hello World</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-26.png" +width="690" +height="385" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +></p> +<p><a class="link" href="https://github.com/leachim6/hello-world" target="_blank" rel="noopener" +>Hello World</a> ,这个仓库收录了几乎所有编程语言(997种)的 Hello world 程序。 ​​​</p> +<h3 id="前端开发代码大全">前端开发代码大全</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-19-42.png" +width="690" +height="639" +loading="lazy" +class="gallery-image" +data-flex-grow="107" +data-flex-basis="259px" +></p> +<p><a class="link" href="https://30secondsofcode.org" target="_blank" rel="noopener" +>30secondsofcode</a>。</p> +<p>这个网站有大量可复用的代码片段,主要是 Javascript、CSS、HTML 、Python 等语言的内容,可以覆盖 Web 应用开发全栈。</p> +<p>里面收录的代码段或者文章都很清新,每个都配有细心的解释,具有良好的实用性。 ​​​</p> +<h3 id="关于-win10-的锁屏睡眠时间">关于 Win10 的锁屏睡眠时间</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-20-00.png" +width="410" +height="502" +loading="lazy" +class="gallery-image" +data-flex-grow="81" +data-flex-basis="196px" +></p> +<p>我在使用 Windows10 的时候发现一个问题。</p> +<p>无论我将电源设置里的睡眠时间、显示器空闲关闭时间设置多长,锁屏后系统都会在 1 分钟之后关闭显示器。</p> +<p>这会带来一些不方便,并且让人困惑。</p> +<p>在经过一番研究搜索之后,找到了如下解决方案(Windows就是这么喜欢在注册表隐藏设置):</p> +<p>1、打开注册表编辑器后。</p> +<p>2、定位到:<code>计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\8EC4B3A5-6868-48c2-BE75-4F3044BE88A7</code></p> +<p>3、修改右侧的Attributes 数值为2 (初始值为1)</p> +<p>4、再打开“编辑电源计划”时会发现多了一个选项“控制台锁定显示关闭超时。</p> +<h3 id="红警2游戏整合包">红警2游戏整合包</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-047-%E6%9C%9F/2023-08-29-13-20-25.png" +width="413" +height="302" +loading="lazy" +class="gallery-image" +data-flex-grow="136" +data-flex-basis="328px" +></p> +<p><a class="link" href="https://tmioe.com/7991.html" target="_blank" rel="noopener" +>红警2 的民间整合包</a>,支持 win7 到 win11。整合大量资源,傻瓜式一键安装。 ​​​</p> +<p>经过我的测试,前面链接页面里提供的安装包里带有额外的广告脚本,在使用时可使用 7z 等压缩软件直接打开该自解压包,选取主文件夹拷贝出来即可。</p> +<h2 id="观点">观点</h2> +<h3 id="隐形的门槛">隐形的门槛</h3> +<p>也许每个领域都存在一个隐形的门槛,无论是你学会一种语言,还是掌握一种能力,哪怕是打通一个游戏,只要你跨不过那个门槛,那么无论你尝试多少次,都会在同样的水平下无功而返。相反,一旦跨过后,那就是一马平川,你有了在那个新世界周游的能力。这当然不是说你不会再遇到困难,而是说,你不再有那种尝试了无数次,带着同一种感受离开的感觉。剩下的区别只是更多经验的积累,是熟练度的问题,因为你已经在那个轨道上了,你已经拿到了入场券。</p> +<p>人生可以被隐喻成一个有着自然消退机制的RPG体系,累积10000经验可以升那关键的一级,那么先前你无论你多少次到达5000,6000,9000都不行,因为熟练度会反复消退到1000,2000的水平。而我知道,很多人就是无数次的卡在了那9000以内,但每次都要从1000,2000这个位置开始。这个和自我接纳也没有关系,因为你知道你遇到的困难并不是基于你对自己的苛求,你的困难在于你无法为自己在乎的事情付出真正的努力,无法将自己的活力与热情持续的灌注在同一个点上,但你隐约知晓跨过那10000的门槛,是你更重要的人生福祉。</p> +<p>来自微博 <a class="link" href="https://weibo.com/3762961402/NgprO9HD5" target="_blank" rel="noopener" +>@崔庆龙_</a></p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 046 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/Tue, 22 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/<h1 id="机器文摘-第-046-期">机器文摘 第 046 期</h1> +<h2 id="长文">长文</h2> +<h3 id="windows-的任务管理器">Windows 的任务管理器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-28-48.png" +width="452" +height="758" +loading="lazy" +class="gallery-image" +data-flex-grow="59" +data-flex-basis="143px" +></p> +<p>如果你喜欢使用 Windows 任务管理器来查杀那些不安分的进程,并且跟我一样讨厌他们乱跳(尤其在按照资源占用排序时)。你可以按下 Ctrl 键,它就会神奇地停止更新直到你松开 Ctrl。</p> +<p>Windows 操作系统有一种魔力,就是哪怕你用了将近 20 年,还是会有你不知道的快捷键或者快捷操作。这些东西有时候能带来一些惊喜。</p> +<p>具体介绍可以看这里:<a class="link" href="https://www.theverge.com/2023/8/16/23834125/microsoft-windows-task-manager-pause-shortcut" target="_blank" rel="noopener" +>暂停 Windows 任务管理器</a></p> +<h3 id="linux-内核最初版的解析">Linux 内核最初版的解析</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-29-10.png" +width="588" +height="253" +loading="lazy" +class="gallery-image" +data-flex-grow="232" +data-flex-basis="557px" +></p> +<p>最新版本的 Linux 内核,其源码规模已经飙升至 3600 万行,想要深入细节去了解它十分吃力。</p> +<p>而Linux 的第一个版本 v0.01 却非常小巧。</p> +<p>刨去注释和空行的话,也就 8 千来行代码。</p> +<p>这么小的代码结构,足够理解操作系统的精髓。</p> +<p>这篇<a class="link" href="https://seiya.me/blog/reading-linux-v0.01" target="_blank" rel="noopener" +>探索 Linux v0.01 d的内部结构</a>,可以带你像参观历史博物馆那样去见证曾经的 Linux。</p> +<p>我记录了一些有意思的地方:</p> +<p>1、v0.01 只有 66 个系统调用,用于支持文件管理和进程管理,分别是:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 +</span><span class="lnt"> 2 +</span><span class="lnt"> 3 +</span><span class="lnt"> 4 +</span><span class="lnt"> 5 +</span><span class="lnt"> 6 +</span><span class="lnt"> 7 +</span><span class="lnt"> 8 +</span><span class="lnt"> 9 +</span><span class="lnt">10 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">access acct alarm <span class="nb">break</span> brk chdir chmod +</span></span><span class="line"><span class="cl">chown chroot close creat dup dup2 execve +</span></span><span class="line"><span class="cl"><span class="nb">exit</span> fcntl fork fstat ftime getegid geteuid +</span></span><span class="line"><span class="cl">getgid getpgrp setsid getpid getppid +</span></span><span class="line"><span class="cl">getuid gtty ioctl <span class="nb">kill</span> link lock lseek +</span></span><span class="line"><span class="cl">mkdir mknod mount mpx nice open pause +</span></span><span class="line"><span class="cl">phys pipe prof ptrace <span class="nb">read</span> rename rmdir +</span></span><span class="line"><span class="cl">setgid setpgid setuid setup signal stat +</span></span><span class="line"><span class="cl">stime stty sync <span class="nb">time</span> <span class="nb">times</span> <span class="nb">ulimit</span> <span class="nb">umask</span> +</span></span><span class="line"><span class="cl">umount uname unlink ustat utime waitpid write +</span></span></code></pre></td></tr></table> +</div> +</div><p>其中 mount 调用啥也没干,直接返回了。</p> +<p>2、直接写死代码绑定 Intel 386 平台。至今对于 PS/2 接口的键盘、ATA硬盘、VGA显卡等标准硬件的驱动代码还是写死在内核里(而不是放在drivers文件夹)。</p> +<p>3、系统崩溃处理代码只有 5 行:只实现了打印一句“我不行了”,然后进入死循环<code>for(;;);</code>。</p> +<h3 id="llamacpp-是怎样做到的">LLaMa.cpp 是怎样做到的?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-29-37.png" +width="540" +height="531" +loading="lazy" +class="gallery-image" +data-flex-grow="101" +data-flex-basis="244px" +></p> +<p>LLaMa.cpp 是一个令人惊叹的项目,在它之前没有人能够在低端消费设备上成功运行 Meta 开源的人工智能模型 LLaMa ,因为那需要太多的硬件资源。</p> +<p>但是 LLaMa.cpp 的横空出世使得在 M2 Macbook Pro、Android Pixel5 手机甚至树莓派上运行 LLaMa 的 7B 模型成为可能。</p> +<p>这是怎么做到的?</p> +<p>带着这个疑问,有网友深入研究了这个项目,并写下了这篇<a class="link" href="https://finbarr.ca/how-is-llama-cpp-possible/" target="_blank" rel="noopener" +>How is LLaMa.cpp possible?</a>以解释原因。</p> +<p>作者认为主要得益于对模型参数的量化,降低模型参数的精度,从 FLOAT16 减小到 INT4。使得 LLaMa.cpp 能够以较少的计算资源甚至只依赖 CPU 的情况下加载大模型。</p> +<h3 id="逐渐觉得微软比谷歌良心">逐渐觉得微软比谷歌良心</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-01.png" +width="690" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="185" +data-flex-basis="445px" +></p> +<p>曾经微软是技术黑客的公敌,被不少人视为反对技术创新、技术开放的最大反派。</p> +<p>不过随着时间的推移,以及微软逐渐在开源社区所做出的努力。这一现象有所好转。</p> +<p>近期在 HN 上<a class="link" href="https://old.reddit.com/r/degoogle/comments/15pd5si/today_i_realized_i_now_trust_microsoft_more_than/" target="_blank" rel="noopener" +>有位网友很扭捏地承认:现在他对微软的感觉要比对谷歌好很多</a>。</p> +<p>他列举了一些关于两家公司的对比,包括发布的产品、主观的优劣评价等等。</p> +<p>为了抵制微软,他已经十多年没用 Windows 了,但貌似微软的其他产品“很香”(VS Code、Github、ChatGPT等)。</p> +<p>并表示最近正在寻摸租一个云存储,大概率也会用微软的 onedrive 而不是谷歌的 Google drivers。</p> +<p>对此我也有类似感觉,不过我对谷歌的不信任起始于十年前谷歌将 Google reader 停掉,而自从微软推出 WSL 后,我更是觉得微软在产品上越来越实在了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-31-23.png" +width="690" +height="538" +loading="lazy" +class="gallery-image" +data-flex-grow="128" +data-flex-basis="307px" +></p> +<h2 id="资源">资源</h2> +<h3 id="tailwindcss-的小抄">tailwindcss 的小抄</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-29.png" +width="690" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="148" +data-flex-basis="356px" +></p> +<p>tailwind 这个 css 框架之所以能够很快流行起来,主要原因就是它解决了一个之前很多人没有太注意的问题,即 CSS 的“正交性”。</p> +<p>之前 CSS 实现一个效果,可以有 N 种方法,外加各种奇技淫巧,但在使用 tailwind 之后,针对特定效果都有了最优实践路径,而且还可以很容易组合。</p> +<p>不过由于它的类分的太细太碎,导致刚开始的时候会有一些不容易记忆。</p> +<p><a class="link" href="https://tailwindcomponents.com/cheatsheet/" target="_blank" rel="noopener" +>这里有一份 tailwind 的小抄</a>,适合初学者收藏,方便随时查阅。</p> +<h3 id="在浏览器中运行的-vim">在浏览器中运行的 vim</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-30-43.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p><a class="link" href="https://github.com/rhysd/vim.wasm" target="_blank" rel="noopener" +>vim.wasm</a>,在浏览器中运行的 Vim,不是插件。</p> +<p>使用 wasm 技术直接编译移植的 Vim Editor 源码,效果跟原生程序几乎一样。</p> +<p>使用 WebAssembly 给 Vim 提供一个新的 GUI 前端(类似 GVim)。</p> +<p>为了编译通过,作者在源码里禁用了很多 Wasm 不支持的特性,如:fork(2)、PTY 等。</p> +<p>可在这里体验:https://rhysd.github.io/vim.wasm/</p> +<h3 id="无隐私问题的-pdf-工具网站">无隐私问题的 pdf 工具网站</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-32-04.png" +width="690" +height="362" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="457px" +></p> +<p><a class="link" href="https://pdftool.org/zh" target="_blank" rel="noopener" +>这个pdf工具可以尝试一下</a>,跟其他pdf 工具网站不同,这个网站借用 WebAssembly 技术将很多工作放在浏览器客户端执行,用户无需上传自己的pdf到网站,即可执行处理工作,包括:加密、解密、拆分、合并等常用功能。 ​​​</p> +<h3 id="深入理解操作系统的小游戏">深入理解操作系统的小游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-046-%E6%9C%9F/2023-08-22-13-32-17.png" +width="690" +height="368" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></p> +<p><a class="link" href="https://plbrault.com/blog-posts/i-created-the-nerdierst-game-ever-en/" target="_blank" rel="noopener" +>这个自称史上最极客的小游戏</a>,是国外一位计算机科学教授给学生们写的一个小游戏,假设玩家是一个“操作系统”,在游戏里玩家需要不停地进程调度、内存页交换等操作,一旦调度不合理就会激怒用户导致“玩家”也就是操作系统被重启,游戏就 GAME OVER 了。</p> +<p>游戏使用 Python 编写,作者将其编译为 WebAssembly 以嵌入网页,这里可以直接在线体验: <a class="link" href="https://drfreckles42.itch.io/youre-the-os" target="_blank" rel="noopener" +>https://drfreckles42.itch.io/youre-the-os</a>。</p> +<h2 id="观点">观点</h2> +<h3 id="学习技能最有效的练习手段是复刻">学习技能最有效的练习手段是“复刻”</h3> +<p>这是我前两天尝试用 CSS 临时写个页面效果想到的。</p> +<p>我虽然也了解了CSS 语言的一些基本知识,但是在具体实操的时候仍会感到无从下手。</p> +<p>与下棋类似,只知道“规则”但是没有“套路”。</p> +<p>后来干脆找了几个目标页面,按照自己的想法去还原,渐渐能够摸到一些“套路”的边缘,最终实现了自己想要的效果。</p> +<p>于是我想: <strong>在学习一项技能的时候,“复刻”、“抄袭”、“借鉴”、“致敬”,都没有问题,应该把它作为最主要的练习手段。</strong></p> +<p>因为“抄”是最经济的学习方法了。</p> +<p>不仅仅是编程技能,艺术方面更是如此。</p> +<p>比如在编曲学习的时候有一种练习叫“扒带”,就是找一首歌,然后你通过你的工具和技巧制作一份完全一样的作品,尽量做到百分百还原。</p> +<p>很多“大师”都是在这个过程中,遇到问题解决问题,领悟到很多只能意会不能言传的技巧,而这些领悟是无论如何也无法仅仅通过“看”和“听”获得的。</p> +<p>另外,人们练字、绘画也是从临摹开始,一般在熟练之后才能突破,才又自成体系。</p> +<h3 id="忍耐守恒">忍耐守恒</h3> +<p>怕麻烦的人,主要是不能忍受一些事情。</p> +<p>然而正是因为这些不能忍受,所以注定要忍受一些其他的事情。</p> +<p>人生就是这样,比如无法忍受投资带来的风险,就得承受现金贬值;不能面对创业的压力,就得忍受按时上班的束缚。</p> +<p>对于这种现象,我将之称为“忍耐守恒”。 ​​​</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 045 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/Tue, 15 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/<h1 id="机器文摘-第-045-期">机器文摘 第 045 期</h1> +<h2 id="长文">长文</h2> +<h3 id="基于浏览器-javascript-堆快照的网页爬虫">基于浏览器 JavaScript 堆快照的网页爬虫</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-23-22.png" +width="690" +height="546" +loading="lazy" +class="gallery-image" +data-flex-grow="126" +data-flex-basis="303px" +></p> +<p><a class="link" href="https://www.adriancooney.ie/blog/web-scraping-via-javascript-heap-snapshots" target="_blank" rel="noopener" +>基于 JavaScript 堆快照的网页爬虫</a>。</p> +<p>本文作者介绍了一个实现网络爬虫的新思路,据称已在生产上使用了一段时间,且效果不错。</p> +<p>比较典型的网络爬虫在爬取数据时,大都采用解析网页 DOM 的方式,或直接通过 HTTP 请求流直接解析,或使用无头浏览器进行解析。</p> +<p>但现在这项技术已经被很多网站、平台人为设置很多障碍,比如增加很多随机的嵌套等等。</p> +<p>作者某天福至心灵,想到一个点子。</p> +<p>利用浏览器提供的 JavaScript 内存堆快照功能,将内存里的全部信息扒下来,然后根据对应的 JavaScript 对象属性,按图索骥去找到真正需要的数据。</p> +<p>这种方法比较狠的地方在于,<strong>直接从后台的数据结构下手,跳过了对页面 DOM 的分析和拆解</strong>,而且据作者说,网站即便想通过混淆此类数据在内存中的属性名称来进行防御,其工作量还是相当大的。</p> +<p>所以,可能短期内无能为力。</p> +<p>作者说,也许全面转为 Web Assembly 才能彻底禁止他这种爬虫。</p> +<p><a class="link" href="https://github.com/adriancooney/puppeteer-heap-snapshot" target="_blank" rel="noopener" +>项目源码在这里</a></p> +<h3 id="intel-cpu-的崩溃攻击漏洞">Intel CPU 的“崩溃攻击”漏洞</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-23-45.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p><a class="link" href="https://downfall.page" target="_blank" rel="noopener" +>intel cpu 有一个崩溃攻击漏洞</a>,标识为 <a class="link" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40982" target="_blank" rel="noopener" +>CVE-2022-40982</a>,利用此漏洞可以在虚拟机里窃取共享同一个物理 CPU 的其他虚拟机的数据。</p> +<p>这个漏洞可以让恶意程序在本机运行后窃取如密码、加密密钥、以及个人电子邮件等私人数据。</p> +<p>恶意的云计算客户可以利用 Downfall 漏洞从与其共享同一台云计算机的其他客户那里窃取数据和凭据。</p> +<p>据文章作者(也即漏洞发现者)所说,该漏洞存在于 Intel Core 6 代到 11 代 CPU,并且研究人员发现存在通过 Web 网页浏览进行攻击的可能性。</p> +<p><a class="link" href="https://github.com/flowyroll/downfall/tree/main/POC" target="_blank" rel="noopener" +>作者开放了一部分用于测试攻击的代码在此</a></p> +<h3 id="利用树莓派的-gpio-发射无线信号">利用树莓派的 GPIO 发射无线信号</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-24-15.png" +width="690" +height="388" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p><a class="link" href="https://hackaday.com/2021/04/06/fan-tastic-misuse-of-raspberry-pi-gpio/" target="_blank" rel="noopener" +>原来树莓派的 GPIO 还能干这个</a>,这位老哥使用树莓派的 GPIO 接口直接进行无线电波发射(没错,就是随便扯出一根线就可以当作天线了)。实现了基于树莓派的微型电台。</p> +<p>这得益于 <a class="link" href="https://github.com/F5OEO/rpitx" target="_blank" rel="noopener" +>rpitx</a>这个开源项目,项目本来是为了研究和学习一些无线电原理,不过后来逐渐成为一些 SDR 爱好者必不可少的工具了。</p> +<p><a class="link" href="https://www.youtube.com/watch?v=M2JY1_Xmokg&amp;t=8s" target="_blank" rel="noopener" +>我上次看到一个小哥使用 RTL-SDR 录制汽车遥控器信号,然后使用树莓派重复发射出来,成功实现了自家汽车的解锁</a>。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://oimo.io/works/water/" target="_blank" rel="noopener" +>water</a>,一个在网页里模拟流体动画的 Demo,使用 Haxe 语言编写。<a class="link" href="https://github.com/saharan/works/tree/main/water" target="_blank" rel="noopener" +>源码在这里</a> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-24-42.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></p> +<p>Haxe 是一种跨平台的开源编程语言,在其官方网站上称其为&quot;universal language&quot;。</p> +<p>它可以用于开发多种平台(如Web、移动、桌面等)的应用程序。</p> +<p>Haxe 提供了强大的静态类型系统,并支持多种编译目标,包括但不限于 JavaScript、C++、Java、C#、Python 等。</p> +<p>感兴趣的话,这里也有<a class="link" href="https://daobook.github.io/haxe-book/docs/start/00_intro.html" target="_blank" rel="noopener" +>一份 Haxe 的在线教程</a></p> +</li> +<li> +<p><a class="link" href="https://github.com/lllyasviel/Fooocus" target="_blank" rel="noopener" +>Fooocus</a>,ControlNet 作者开源的一款新的 AI 画图工具 ,搭建起来比 Stable Diffusion webui 稍微方便了一点,相当于整合包。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-25-40.png" +width="690" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="107" +data-flex-basis="257px" +></p> +</li> +<li> +<p>原来 HTML5 有一个 <code>&lt;progress&gt;&lt;/progress&gt;</code> 标签,直接写这个标签,不加任何属性的话,就是一个加载动画,非常适合在页面里临时需要一个进度、状态展示的时候。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-25-55.png" +width="462" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="119" +data-flex-basis="286px" +></p> +</li> +<li> +<p><a class="link" href="https://wangdoc.com/typescript/" target="_blank" rel="noopener" +>阮一峰老师的 Typescript 教程</a>,发布了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-26-13.png" +width="501" +height="800" +loading="lazy" +class="gallery-image" +data-flex-grow="62" +data-flex-basis="150px" +></p> +</li> +</ul> +<p>据老师自己说,刚开始也是抗拒的,觉得TypeScript 就是为 JS 语言添加静态类型系统。如果真需要静态类型,可以考虑使用其他更成熟的语言(比如 Rust 和 Java),再编译成 JS(wasm 模块),何必新学一门语言呢。</p> +<p>但是后来发现 TypeScript 越来越流行,成为前端开发的主流工具,各种项目纷纷移植过去。</p> +<p>我虽然对 TypeScript 仍然持保留态度,但是阮老师写的技术书籍读起来都很轻松易懂,所以觉得还是有必要收藏一下​​​。</p> +<ul> +<li> +<p><a class="link" href="https://islamov.ai/stable-diffusion-webgpu/" target="_blank" rel="noopener" +>stable-diffusion-webgpu</a>,在网页里运行 AI 画图模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-26-55.png" +width="1154" +height="667" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="415px" +></p> +<p>基于 webgpu 技术,无需部署,直接在网页里运行。我试了一下,在我的 1080 8G 显存的显卡上 ,可以跑动,但是速度一般。</p> +<p>上面的图是我只跑了 8 个 steps 的结果。。。 ​​​</p> +</li> +</ul> +<h2 id="观点">观点</h2> +<h3 id="ai-画图的品质">AI 画图的品质</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-27-30.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +<p>为了验证之前关于“模特很可能被AI取代”的想法,自己动手部署 <a class="link" href="https://github.com/AUTOMATIC1111/stable-diffusion-webui" target="_blank" rel="noopener" +>Stable Diffusion webui </a> 测试了一些模型。根据网友分享的提示词尝试生成了一些图片。</p> +<p>感觉效果比我几个月之前体验时又有了不少提升,配合各种微调模型和 LoRA 模型可以生成照片质感和光影的图片。</p> +<p>虽然人物表情和姿态还有些僵硬,不过我相信这是我没有合理调整各个参数以及充分发挥插件性能导致。</p> +<p>多进行尝试和练习,应该能够生成更逼真、自然的照片。</p> +<h3 id="信息的维度">信息的维度</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-045-%E6%9C%9F/2023-08-15-13-28-20.png" +width="690" +height="690" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +最近看了一些线性代数相关的知识,在向量、矩阵的各种计算中逐渐有了一些感悟:</p> +<p>古代“老子”思想中的“道”很可能是无限维的,你的任何表达都是对它的一种投影,也就是降维了。所以才是“道可道,非常道”。</p> +<p>每个人都想用最简单的框架去理解世界,将多维的信息硬生生地将为一维。</p> +<p>这样的后果便是,盲人摸象、管中窥豹、一叶障目,不同的观点争得不可开交。</p> +<p>所以在接收时也应该尽量按自己掌握的其它维度进行升维还原,任何信息都不可孤立看待。</p> +<p>如果能从多维信息得视角去认知世界,也许会有转机,这多少就有点儿“阴阳互生、一分为三”的意思了。</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 044 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/Tue, 08 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/<h1 id="机器文摘-第-044-期">机器文摘 第 044 期</h1> +<h2 id="长文">长文</h2> +<h3 id="导致-python-多线程鸡肋的-gil-是什么">导致 Python 多线程鸡肋的 GIL 是什么</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-51-26.png" +width="690" +height="839" +loading="lazy" +class="gallery-image" +data-flex-grow="82" +data-flex-basis="197px" +> +近期在使用 Python 多线程的时候,遇到了 GIL 全局锁导致的性能问题。</p> +<p>具体来说就是性能提升没有达到预期,对于有些计算任务无法并行执行。</p> +<p>从多核 CPU 占用结果上来看,像极了网上那张经典的围观图,一核干活多核围观。</p> +<p>于是翻阅了相关资料研究一下,发现这是 Python 社区争论多年的问题,而且有很大的历史包袱。</p> +<p>严格来说,GIL 全局锁导致的性能问题与 Python 编程语言没有关系,导致这个问题的原因在于具体实现的 CPython 解释器。</p> +<p>当年解释器开发者为了简单实现对多线程的支持,搞了一个全局锁,以至于在多核时代无法充分发挥 CPU 性能。</p> +<p>而后续又有很多库延续了这项依赖,历史的包袱(屎山?)越来越重,很难下定决心将之移除(据说代价甚至比当年从 Python2.x 迁移到 Python3 还要大)。</p> +<p>如果不想深究具体技术细节只想了解基本的来龙去脉,这里有篇文章<a class="link" href="https://xie.infoq.cn/article/1e151c24367abe8cad18130f4" target="_blank" rel="noopener" +>为什么 GIL 让多线程变得如此鸡肋?</a>介绍了 Python PIL 的产生背景以及适用于 Python 多线程的业务场景,可以给你的技术决策提供参考。</p> +<p>不过好消息是,就在刚刚(前几天),Python 官方终于宣布要动手取消掉 GIL 了,顿时网上一片沸腾(其实只有一部分人,大多数人都还不知道 PIL 是什么玩意儿)。而且,<a class="link" href="https://news.ycombinator.com/item?id=36643670" target="_blank" rel="noopener" +>Meta 也承诺,愿意出工出力(3人年)帮助 Python 社区做针对去除 GIL 的相关开发工作</a>。</p> +<h3 id="用树莓派做一个属于自己的高级收音机">用树莓派做一个属于自己的高级收音机</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-52-14.png" +width="606" +height="454" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +最近接触到 SDR (软件定义无线电)这个领域,感觉挺有意思的。</p> +<p>软件定义无线电是一种无线通信技术,它利用软件来实现无线电通信系统中的信号处理和调制解调功能,而不是传统的硬件电路。</p> +<p>通过软件定义无线电技术,可以实现灵活、可配置和可重用的无线通信系统,大大提高了无线通信的灵活性和性能。</p> +<p>传统的无线电通信系统通常使用硬件电路来执行信号处理、调制解调和频谱管理等功能。这些硬件电路通常是固定的,不能轻易更改,因此限制了通信系统的灵活性和可配置性。</p> +<p>而SDR技术通过将信号处理和调制解调等功能以软件方式实现,可以在通信系统中使用可编程的处理器和通用硬件,从而使得通信系统的功能可以在软件层面上重新配置和调整,而不需要更改硬件设计。</p> +<p>比起灵活性和可配置性来说,我觉得 SDR 最大的优势是成本大大降低。之前必须购买昂贵的硬件才能实现的效果,现在能够通过便宜的、少量的硬件加上软件模拟即可。</p> +<p>我近期就以很低廉的价格购买了一套 SDR 设备,通过 USB 接口连接计算机,可以实现 500KHz到1700MHz频率范围的接收。听 FM 和航空频段不在话下,SW 短波的话受天线影响,我暂时没有调试出好的效果。</p> +<p>跟 SDR 相比,我几千块买的旗舰手台显得既昂贵又功能弱。</p> +<p><a class="link" href="https://www.hackster.io/mircemk/diy-sdr-dsp-radio-with-raspberry-pi-and-rtlsdr-dongle-c38064" target="_blank" rel="noopener" +>这里有篇文章</a>是作者自己动手用 SDR 设备结合树莓派制作了一个看起来还挺专业的宽频无线接收机。</p> +<p>其实这跟音乐制作领域内很多乐器、效果器逐渐被虚拟化的软件、插件代替是一样的。软件虚拟化拥有巨大的优势,随着通用计算硬件的成本越来越低廉,一切能被软件定义的最终都会被软件定义。</p> +<h3 id="家用-wifi-路由器需要选择哪个信道">家用 WiFi 路由器需要选择哪个“信道”</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-52-42.png" +width="601" +height="373" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="386px" +> +近期验证了一个关于无线路由器的传说。</p> +<p>起因是我新买了一个树莓派 ZeroW 带无线版本,没想到板载的 WiFi 网卡天线太弱了。</p> +<p>离路由器稍微远一点,比如放到卧室,传输速率就会大幅下降,我又暂时没能找到合适的外接网卡,一度陷入绝望。</p> +<p>后来灵机一动,看看能不能从路由器那头想想办法,于是打开路由器配置页面,找到了 WiFi 的“信道”设置,将之从“自动”调到了最不常用的“13”。</p> +<p>这里补充一下,WiFi信道一般从1到13,由路由器自动选择,但现在无线环境十分混乱,尤其是 2.4G(树莓派 Zero W 只能连这个规格) 频段,干扰很严重。</p> +<p>但是 13 这个信道很少被路由器自动选用,原因是最初制定标准的时候,不是所有国家和地区都支持,也不是所有终端设备都支持,所以这个信道就成了最不常用的。</p> +<p>在我手动指定信道之后,惊喜地发现,树莓派放在同样的位置,传输速率得到了较大提升并且稳定。看来传说将路由器 2.4G 信道设为 13 可以防干扰是真实的。</p> +<p><a class="link" href="https://zhuanlan.zhihu.com/p/344389009" target="_blank" rel="noopener" +>什么是路由器的信道?信道设置成什么最合理?</a></p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://roadmap.sh" target="_blank" rel="noopener" +>开发人员路线图</a> 是一个学习索引网站,旨在创建路线图、指南和其他教育内容,以帮助开发人员选择学习路径。在 Github 所有仓库中 Stars 排名第七。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-03.png" +width="690" +height="490" +loading="lazy" +class="gallery-image" +data-flex-grow="140" +data-flex-basis="337px" +></li> +<li><a class="link" href="https://felixkreuk.github.io/audiogen/" target="_blank" rel="noopener" +>AudioGen</a> facebook 开源的声音合成模型,可以根据文字描述生成对应的声音。效果已经很惊人了,这个页面展示了很多样例。我听了一下,觉得以后影视作品里的一部分声音特效应该可以通过 AI 进行生成了。至少像一些嘈杂的人群、婴儿哭声、鸟叫等各种背景音是可以合成的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-14.png" +width="499" +height="270" +loading="lazy" +class="gallery-image" +data-flex-grow="184" +data-flex-basis="443px" +></li> +<li>原来 Chrome 和 Edge 浏览器的 DevTools 里自带了 CSS 动画曲线编辑器啊!可以直接通过鼠标拖动进行调整和预览,十分便捷。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-53-29.png" +width="562" +height="528" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="255px" +></li> +<li><a class="link" href="https://github.com/GraphiteEditor/Graphite" target="_blank" rel="noopener" +>Graphite</a>,一个开源的 2D 矢量图形编辑器,适用于照片编辑、图像处理、图形设计、插图、数据可视化、数字绘画等领域。可以实现项目图稿,数据可视化和自动化。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-54-19.png" +width="830" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="428px" +></li> +</ul> +<h2 id="观点">观点</h2> +<h3 id="获取高品质信息的需求仍然强烈只是被淹没了">获取高品质信息的需求仍然强烈,只是被淹没了</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-54-40.png" +width="367" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="236px" +> +三十几年前,电视逐渐取代书籍、报纸等传统媒体的年代,尼尔波兹曼写下了《娱乐至死》。</p> +<p>作者认为:过度追求娱乐和娱乐化的信息传播方式可能导致公众思考能力的下降。</p> +<p>然而这么多年过去了,人们在降低信息质量这条路上越走越远。电视也早已沦为老年人卧床的伴侣,电视节目更是无法占据现代人的时间,取而代之的是手机短视频。</p> +<p>短视频已经成为大部分人闲暇消遣、信息获取的主要方式。这种媒体的变化将进一步降低理解和感受深度信息的能力,使人对深入学习和思考失去兴趣。</p> +<p>虽然获取的信息看似在增多,但现在高质量的信息却越来越少。</p> +<p>短视频等碎片化信息给我的感觉就像是无线电信号的背景噪音,现在的信息“电磁环境”早已被这种噪音充斥。因为“背景噪音”太大,就好像在高楼林立的城市里打开无线电,接收到的全是 LED 路灯和电动车充电器产生的噪波。</p> +<p>不过我还是相信会有包括我在内的相当一部分人,不愿放弃主动思考,不屑于接收低品质信息。</p> +<p>我正在努力做出一些尝试,以后逐渐记录下来:</p> +<ol> +<li>降低输入:减少刷碎片信息的时间;</li> +<li>滤波:使用搜索引擎、RSS服务、newsletter邮件等工具进行整理;</li> +<li>溯源:尽量选择信息源头获取一手信息,对于技术来说,直接阅读英文文档是一个办法;</li> +<li>创造:自己制作高质量内容;</li> +</ol> +<h3 id="摄影师不会被-ai-取代但是模特很可能会">摄影师不会被 AI 取代,但是模特很可能会</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-044-%E6%9C%9F/2023-08-08-09-56-00.png" +width="664" +height="427" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="373px" +> +即便以后 AI 绘画能够产出更加难以分辨真假的作品。</p> +<p>从目前能看到的各种生成作品来说,还是摄影师负责了主要的创作灵感。</p> +<p>真要说被取代的话,也许“被拍摄对象”经过虚拟化以后,很可能被取代。</p> +<p>以后不仅仅是举着相机的叫摄影师,说不定会诞生面向 AI 摄影这一职业。</p> +<p>到时候器材党玩的不再是镜头,改玩显卡了?</p> +<p>“嘿,你这 N 卡 比我这 A 卡有德味儿,毒!”</p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 043 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/Tue, 01 Aug 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/<h1 id="机器文摘-第-043-期">机器文摘 第 043 期</h1> +<h2 id="长文">长文</h2> +<h3 id="先做框架再做功能">先做框架再做功能</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-57-56.png" +width="690" +height="395" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="419px" +> +<a class="link" href="https://devblogs.microsoft.com/oldnewthing/20230725-00/?p=108482" target="_blank" rel="noopener" +>Before you try to do something, make sure you can do nothing.</a></p> +<p>看到这句话第一反应是:这是什么 XX 逻辑?看完作者的文字之后,哦,这是一种软件构建的方法。</p> +<p>意思是说,先宏观再微观,先整体再局部,别一上来就陷入到细节代码的编写中去。</p> +<p>先把框架搭好,具体功能一个也别着急实现,留着占位,先搭一个“什么都不干”的架子,然后再逐渐补充功能。</p> +<p>但也不是真的什么都不干,而是理清了各个关键组件的调用关系以及与开发相关的辅助功能(如打印调试信息)。</p> +<p>这样做最大的好处是,随着功能开发的深入,代码不至于失控,而且具有良好的可调试性和组件问题隔离能力。</p> +<p>随之而来的就是轻松写代码,而不是眉毛胡子一把抓。</p> +<h3 id="神经网络从开始到现在">神经网络从开始到现在</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-58-59.png" +width="690" +height="513" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="322px" +> +<a class="link" href="https://s3tlxskbq3.feishu.cn/docx/NyPqdCKraoXz9gxNVCfcIFdnnAc" target="_blank" rel="noopener" +>The Document is All You Need!</a></p> +<p>一篇 AI 科普好文章,用较为通俗的语言讲解了神经网络模型原理和发展历程(我感觉有些像生物的进化)。</p> +<p>从最初的由神经元组成的多层感知机开始,然后进化到卷积神经网络 CNN 降低网络复杂度,再进化, RNN 循环神经网络给模型增加记忆能力,记忆能力太强也不行,到了 LSTM 开始让它能够遗忘,再到后面的 注意力机制以及 LLM 语言模型。</p> +<p>比起同类文章,这一篇尽量避免了数学概念的推导和论证,尽量在不看公式的情况下解释基本思路,适合我等小白学习。</p> +<h3 id="代码审查的一些建议">代码审查的一些建议</h3> +<p><a class="link" href="https://codelantis.com/blog/code-reviews-best-practices" target="_blank" rel="noopener" +>5个关于代码审查的最佳实践</a>,文章记录一些了对代码审查的实践建议,嫌长不看我总结如下:</p> +<ol> +<li>一次只审查一个功能特性或者错误修复。</li> +<li>提前准备好背景交代(在审查之前写清楚这么做的原因和基本思路)。</li> +<li>利用自动化工具提前做好静态检查,提前统一风格、规范。</li> +<li>利用提问的方式提出改进建议而不是直接喷,如:“我们真的需要这个断言吗?”</li> +<li>仔细阅读代码,慢慢来,以充分理解。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li> +<p>微软的 <a class="link" href="https://learn.microsoft.com/en-us/sysinternals/downloads/zoomit" target="_blank" rel="noopener" +>ZoomIT</a> 真是个经典工具,已经默默维护了好多年了,现在版本为7.0。体积小巧才1MB多点儿,绿色免安装,下载解压即用。非常适合进行共享屏幕培训讲解,或者录制教学视频。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-13-59-57.png" +width="669" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="345px" +> +ZoomIT 快捷键如下: +Ctrl+1:放大屏幕,屏幕静止,然后使用鼠标批注; +Ctrl+2:使用鼠标随意绘制批注,支持 r、g、b、o 等快捷键切换颜色; +Ctrl+3:显示 BreakTime 倒计时; +Ctrl+4:放大屏幕,屏幕继续支持鼠标交互操作,用于放大操作过程; +Ctrl+5:录制屏幕,可与前面几个功能结合使用;</p> +</li> +<li> +<p><a class="link" href="https://github.com/kamranahmedse/driver.js" target="_blank" rel="noopener" +>driver.js</a> 一个压缩后只有 5K 大小的前端库,可以让你的网站或者 Webapp 迅速集成交互式“使用指南”的能力。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-27.png" +width="690" +height="361" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></p> +</li> +<li> +<p><a class="link" href="https://clangjs.netlify.app" target="_blank" rel="noopener" +>clangjs</a> 一个在浏览器编译、链接、运行 C/C++ 代码的 JS 库。支持 C/C++ 标准库。完全在本地编译,无需网络即可工作。原理: +首先把 Clang 和 LLD 编译为 WebAssembly 使其运行在浏览器中。然后使用 WebAssembly 版本 Clang 把 C/C++ 代码编译为 WebAssembly,最后通过浏览器 API 运行 WebAssembly。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-43.png" +width="690" +height="292" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="567px" +> +<a class="link" href="https://github.com/luoxuhai/clang.js" target="_blank" rel="noopener" +>附:clangjs源码</a></p> +</li> +<li> +<p><a class="link" href="https://github.com/bartobri/no-more-secrets" target="_blank" rel="noopener" +>nms</a>,一个控制台程序,可以将任意命令的输出(ANSI TXT)文本转换成为乱码以达到防偷窥和加密的效果。通过命令管道使用:<code>ls -l | nms</code> ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-00-57.png" +width="690" +height="236" +loading="lazy" +class="gallery-image" +data-flex-grow="292" +data-flex-basis="701px" +></p> +</li> +<li> +<p><a class="link" href="https://iconbuddy.app" target="_blank" rel="noopener" +>Icon Buddy</a>,这个网站有超过 1 百万个免费 svg 图标,可在线自定义颜色。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-01-15.png" +width="690" +height="420" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="394px" +></p> +</li> +</ul> +<h2 id="观点">观点</h2> +<ul> +<li>无法眼神交流不是导致远程办公沟通的最大障碍,语音延迟才是: +<ul> +<li>我之前一直以为远程办公给沟通带来最大的最大障碍是无法眼神交流导致的信息失真,想象着可以通过升级摄像头(比如嵌入在屏幕中)来改善这一情况。</li> +<li>但进行无数次网络会议之后,我体会到了最大的障碍还不是无法眼神交流,而是网络通信带来的(几乎是必然的)严重的语音延迟。</li> +<li>人们对声音延迟的感知和容忍限度大约在10毫秒(现在的电脑声卡在使用 ASIO 驱动之后可以轻松做到本地延迟 8到6毫秒左右,所以可以用于实时录音),大于10毫秒的延迟会带来明显的迟钝感,时间再长一些就会对对话的节奏带来严重影响。(如果体会不到的话,可以回忆一下新闻直播间主持人跟现场记者连线时那种说话总是对不上节奏的尴尬。)</li> +<li>什么时候网络视频会议的延时能缩短到10毫秒以内(唱卡拉OK可以接受的最低延迟),远程办公才能迎来质的飞跃,否则网络视频会议对于工作讨论永远都是隔靴搔痒、效率低下。现在的解决方案普遍还在吹能做到一秒(1000毫秒)以内,任重而道远。 ​​​</li> +</ul> +</li> +<li>现在真正的程序员用什么编辑器 ? +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-043-%E6%9C%9F/2023-08-01-14-01-47.png" +width="690" +height="645" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="256px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 042 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/Tue, 25 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/<h1 id="机器文摘-第-042-期">机器文摘 第 042 期</h1> +<h2 id="长文">长文</h2> +<h3 id="从-cpu-到操作系统">从 CPU 到操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-57-14.png" +width="665" +height="261" +loading="lazy" +class="gallery-image" +data-flex-grow="254" +data-flex-basis="611px" +> +整天使用电脑和手机却对它的工作原理一知半解?<a class="link" href="https://cpu.land" target="_blank" rel="noopener" +>把你搁 CPU 里</a>是一套不错的科普文章,作者保证你无论是否了解 CPU 的运作方式,读完之后都会有所收获。我原本以为主要讲解 CPU 组成原理,在浏览了一遍之后,发现 CPU 只是引子,后面还讲了很多操作系统相关的知识,很值得一看。 ​​​</p> +<h3 id="基于-gpu-渲染的-ui-界面制作">基于 GPU 渲染的 UI 界面制作</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-57-33.png" +width="690" +height="412" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +> +<a class="link" href="https://hasen.substack.com/p/gpu-gui-table-of-contents" target="_blank" rel="noopener" +>基于 GPU 渲染的 UI 界面制作</a>,也是一个系列文章,探讨了使用 GPU 渲染用户界面的一些思路和相关技术实现方法。用 GPU 绘制用户界面不是什么新鲜事,事实上现在大部分游戏的 UI 都是基于 GPU 渲染的,不过这个作者讲的比较深入浅出,对基础介绍的比较多,适合我这种业外人士,读起来通俗易懂。</p> +<h3 id="为什么我们更应该使用-display-port-而不是-hdmi-">为什么我们更应该使用 Display port 而不是 HDMI ?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-58-12.png" +width="790" +height="479" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +> +<a class="link" href="https://hackaday.com/2023/07/11/displayport-a-better-video-interface/" target="_blank" rel="noopener" +>为什么我们更应该使用 Display port 而不是 HDMI?</a>,简单来说,HDMI 是家电行业制定的接口标准,封闭而保守,Display port 是 PC 行业制定的标准,开放又激进。现在的显卡上一般提供一个 HDMI 接口,仅仅是为了兼容而做出的妥协,不提供多个是因为 HDMI 授权收费。</p> +<h3 id="txt-纯文本才是王道">txt 纯文本才是王道</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-58-45.png" +width="690" +height="220" +loading="lazy" +class="gallery-image" +data-flex-grow="313" +data-flex-basis="752px" +> +喜欢老式合成器的操作方式,不用图形和触摸屏,而是用文本和字符进行交互,可以快速选择音色参数,指哪儿打哪儿,心中有数。</p> +<p>喜欢在控制台的黑窗口通过命令行跟计算机交互,而不是用鼠标在图形界面上点击,不用将鼻子凑在屏幕上,闭上眼睛也能做到精确操作。</p> +<p>喜欢单反相机的肩屏,无论我用什么姿势拨动拨杆、拨轮,肩屏总能用字符给我最快速最准确的响应,告诉我现在的曝光三参数是多少,做到心中有数。</p> +<p>喜欢用 Markdown 文本格式记录信息,只因为文本格式最干净纯粹,利于保存和传播。</p> +<p>这篇<a class="link" href="https://graydon2.dreamwidth.org/193447.html" target="_blank" rel="noopener" +>《txt纯文本才是王道》</a>的作者表达了跟我同样的喜好,对于使用纯文本保存信息偏爱有加,认为无论是视频、图片还是其他数字形式,在文字面前都是弱小的弟弟。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/FlagAlpha/Llama2-Chinese" target="_blank" rel="noopener" +>Llama2-Chinese</a>,Llama2中文社区!是一个专注于Llama2模型在中文方面的优化和上层建设的高级技术社区。 <em>基于大规模中文数据,从预训练开始对Llama2模型进行中文能力的持续迭代升级</em>。Facebook近期开源的 Llama 2 模型比较火,号称可以免费商用。我试了一下,效果不如预期,跟 ChatGPT 3.5 比起来还有距离。可能我使用的中文微调 Lora 参数还不够好吧。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-02.png" +width="690" +height="182" +loading="lazy" +class="gallery-image" +data-flex-grow="379" +data-flex-basis="909px" +></li> +<li><a class="link" href="https://githubunwrapped.com" target="_blank" rel="noopener" +>githubunwrapped</a>是一个帮你统计 Github 信息的网站,可以将输入的 Github 账号相关的统计信息生成一段漂亮的动画,展示你使用最多的编程语言、哪天提交的最积极、哪个时段工作效率高(根据文件修改时间?)等。比较有趣的是,这个网站生成动画视频的技术来自一个叫做 <a class="link" href="https://remotion.dev" target="_blank" rel="noopener" +>remotion</a>的库,它可以使用 React 组件式风格编写动画效果,并通过 Canvas 实现视频文件的渲染。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-18.png" +width="690" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></li> +<li><a class="link" href="https://github.com/jesseduffield/lazydocker" target="_blank" rel="noopener" +>lazydocker</a>,继发现 lazygit 和 lazyvim 两个神器之后,我又发现了 lazy 家族新成员:lazydocker!同样是提供终端命令行下的“gui”界面,不过操作对象是 docker 这下管理容器终于可以不再看错乱的 docker 命令输出了。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-042-%E6%9C%9F/2023-07-25-13-59-28.png" +width="690" +height="397" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></li> +</ul> +<h2 id="观点">观点</h2> +<ul> +<li> +<p>关于产品需求的来源:</p> +<p>对于提供IT相关服务的从业人员来说,无论是在企业还是个人做独立产品,把握好产品的需求、做好产品定义是最关键的事情,是后续做研发、运营的基础。</p> +<p>而好的产品定义=自己想做+自己能做+用户想用+愿意付费。</p> +<p>这样的定义应该怎样去发现?</p> +<p>拿软件举例,大部分软件能给用户提供的最大价值是“将一些事情自动化”和“将一些物理实体虚拟化”。前者能够通过自动化实现工作效率的指数级提升,后者则通过对物理现实虚拟化实现用户对交互体验的指数级提升。</p> +<p>所以在分析产品需求进行产品定义时可以从身边三个方面入手:</p> +<ol> +<li>还有什么事情可以被计算机自动化?</li> +<li>还有哪些物理实体可以被虚拟化?</li> +<li>市场上的现有产品,还有哪些可以从上面两个维度提升以增强体验的?</li> +</ol> +<p>我发现,无论是企业的产品,还是个人的独立产品,都可以从这些维度进行分析。</p> +</li> +<li> +<p>基于互联网通道的“业余无线电”:</p> +<p>不是很理解热衷于用互联网通道进行业余无线电通联的心态。</p> +<p>今天刚知道现在有一些业余无线电爱好者使用一种叫做 mmdvm 的盒子(热点盒子)进行自主搭建数字中继。</p> +<p>原理是“热点盒子”用家里的wifi接入互联网,然后热点盒子给业余无线电台提供UV频段的发射接收中继,这样就能轻易通联全国甚至全球的爱好者。</p> +<p>目前很多拥有支持数字通信的电台的爱好者都很积极地参与这种通联,甚至每周还有打卡点名活动。</p> +<p>我暂时还不是很理解这种心态。这种依赖互联网进行的通联在我看来(也许是暂时的)早已失去了玩无线电的初衷。如果我想要通过互联网假装进行呼叫,还得依靠家里的无线路由器,那我为什么不干脆使用微信电话?</p> +</li> +<li> +<p>无头系统: +今天才知道原来我给自己配的远程开发环境有个专业术语叫做 <a class="link" href="https://zh.wikipedia.org/zh-cn/%e6%97%a0%e5%a4%b4%e8%ae%a1%e7%ae%97%e6%9c%ba" target="_blank" rel="noopener" +>“Headless 无头系统”</a> 啊。我现在基本上可以做到带着笔记本随意移动,开发环境都在远程,在各处体验环境都一样。主要使用: Win10 + WSL2 + Nvidia-Docker + VS Code + Neovim。有时会启用远程桌面 RDP,有时直接 ssh + tmux。有兴趣的话我挑一期详解。</p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 041 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/Wed, 19 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/<h1 id="机器文摘-第-041-期">机器文摘 第 041 期</h1> +<h2 id="长文">长文</h2> +<h3 id="c-也能一次编译到处运行了">C 也能一次编译到处运行了?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-28-30.png" +width="743" +height="446" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="399px" +> +用 C 编写的程序,只编译一次,生成的可执行文件能同时在多个平台运行吗?</p> +<p>这在以往是 java 这类依赖虚拟机执行环境的语言宣称的事情。</p> +<p>然而我今天才听说还有这个神奇的库(好久没关注过c++领域的技术了):<a class="link" href="https://github.com/jart/cosmopolitan" target="_blank" rel="noopener" +>Cosmopolitan</a>Libc 号称可以使 C 成为一种构建一次就能到处运行的语言,就像Java一样,除了它不需要解释器或虚拟机。相反,它重新配置了GCC和Clang,以输出POSIX批准的多语言格式,该格式在Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS上本地运行,具有最佳的性能和最小的占用空间。</p> +<p>在使用的时候需要引入特殊的库和编译配置,具体执行效果我还没有测试。</p> +<p>然后,<a class="link" href="https://ahgamut.github.io/2023/07/13/patching-gcc-cosmo/" target="_blank" rel="noopener" +>这篇文章</a>的作者干脆来个更方便的操作,他给 GCC 打了大约 2000 行的补丁,使得 GCC 直接就嵌入了 Cosmopolitan 库,现在可以在不修改任何源代码(前提是得用纯 C 写)的情况下构建出到处都能运行可执行文件了(Windows也可以吗?我要测试)。</p> +<h3 id="业余无线电入坑指南">业余无线电入坑指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-29-07.png" +width="690" +height="920" +loading="lazy" +class="gallery-image" +data-flex-grow="75" +data-flex-basis="180px" +> +业余无线电跟摄影、HiFi音响这一类的爱好在某种维度上非常相似,在“入坑”的境界上,甚至完全一样。</p> +<p>这里的坑,指需要投入大量精力和资金。</p> +<p>之所以这么说,是因为它们都有一个共同的特点。</p> +<p>即围绕这些爱好有大量的知识可以学习和探索。</p> +<p>比如拿业余无线电来说,上来就一堆“亚音”、“中继”、“频段”、“频差”、“杂散发射”等名词,对标摄影中的“构图”、“光圈”、“快门”、“ISO感光度”等名词。新手若想有所体会,单是这些概念就够琢磨几天的。更不用提后续还有逐渐步入玄学的一些操作流派,乃至一个不留神还会陷入无穷尽的装备升级竞赛。</p> +<p>这类知识对于好奇心强烈、喜欢求知的人来说有着巨大的吸引力。甚至直白的说,我们很可能不是爱好这项技能,而是单纯喜欢探索和求知的过程,喜欢那种获得感。</p> +<p>这篇<a class="link" href="https://zhuanlan.zhihu.com/p/585518350" target="_blank" rel="noopener" +>《业余无线电新手指南》</a>可以普及一些基本知识,愿意入坑的请阅读。</p> +<p><em>我近期已考取了中国无线电协会的业余无线电操作能力 A 证</em> 算是合法的 <a class="link" href="https://baike.baidu.com/item/%E6%97%A0%E7%BA%BF%E7%94%B5%E7%88%B1%E5%A5%BD%E8%80%85/6509242" target="_blank" rel="noopener" +>HAM 火腿</a>了。</p> +<h3 id="远程办公还能成为趋势吗">远程办公还能成为趋势吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-29-47.png" +width="799" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="463px" +> +疫情的时候,远程办公、异地协同等概念一度变得很火爆,当时很多人觉得这又是一个风口。</p> +<p>但随着当时极端环境的消失,各大公司又纷纷将员工从居家办公中召回。</p> +<p>那么?此类与远程协作相关的概念破灭了吗?</p> +<p>各种协同工具、平台相关的市场,还有没有继续扩大的可能,或者说还在等待一个巨大的技术革新来引爆?</p> +<p>这里有个项目,<a class="link" href="https://github.com/LinuxSuRen/remote-jobs-in-china" target="_blank" rel="noopener" +>积极收集远程办公相关的信息</a>,包括国内支持的公司清单、工具及使用资料等。</p> +<h3 id="怎样做出伟大的成就">怎样做出伟大的成就?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-30-40.png" +width="636" +height="422" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +> +昨日读了保罗格雷厄姆(《黑客与画家》的作者)新文章一篇&mdash;-<a class="link" href="http://paulgraham.com/greatwork.html" target="_blank" rel="noopener" +>《怎样做出伟大的成就》</a>(实际上我觉得可以译为“怎样牛逼”)。</p> +<p>虽然标题看起来略有鸡汤味儿,但读起来还是比较实惠的。</p> +<p>文章从发现和选择要做的事情开始,谈论了一些具体的方法。然后展开讨论了在方法执行过程中可能会遇到的一些问题,以及如何克服。甚至介绍了一些心理暗示技巧。</p> +<p>文章比较长,我个人体会比较深的点如下:</p> +<ol> +<li>一个人做什么才能牛逼?答:做自己天赋里有的东西,就是找一些你既有能力又非常感兴趣的事情。</li> +<li>要养成“自驱”的习惯。让“工作”来源于自己的认知,而不是别人告诉你、让你做的事情。主动,而不是等待。</li> +<li>拥有一个属于自己的“项目”是一个找到“自驱”的最佳方法。不断观察自己对什么有强烈的好奇心(甚至好奇到大多数人不能理解)可以找到这样的“项目”。</li> +<li>选定要做的“项目”还应遵循兴奋原则,即:做自己愿意用的产品,写自己想读的故事,而不是执着于满足想象中的不存在的复杂需求。</li> +<li>注重积累效应,日拱一卒、长期积累,每天写一篇文字,一年下来就是一本书。</li> +<li>周期性审视自己做的事情,确认它是否偏离了目标(在做自己最想做的事情),及时修正。</li> +<li>行动的重要性,很多人实际上可以更牛逼,但是因为“谦虚”和“恐惧”导致的拖延使得计划一再搁浅,浪费了时间。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="http://t.cn/A60wPLwI" target="_blank" rel="noopener" +>jabbr.ai</a>是一个针对拳击比赛的打击判定进行训练的AI模型,可以在智能手机上运行,实时监测视频中拳击选手的打击得分情况,即时进行统计,多个智能手机多视角同时运行可以快速生成总结性视频。模型提供约50种监测参数(质量、步法、压力等)可用于运动员训练分析。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-31-11.png" +width="908" +height="509" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="428px" +></li> +<li>浏览器地址栏快捷操作,我今天才知道原来浏览器地址栏还有这些快捷操作(火狐浏览器支持的最多,我测试的Edge浏览器也支持部分操作): +<ol> +<li>输入*星号,可以搜索你的收藏夹;</li> +<li>输入^,可以搜索历史浏览记录;</li> +<li>输入%,可以搜索当前打开的tab页;</li> +<li>输入?,可以显示所有搜索建议; ​​​</li> +</ol> +</li> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4923133602234429" target="_blank" rel="noopener" +>树莓磁带</a> 一种用树莓派做的小硬件,为了支持在老式电脑中加载程序(之前用磁带存储的那种)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-31-40.png" +width="607" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></li> +<li>两招教你“永久”关闭 Windows 自动更新(任选一个都可以): +<ol> +<li>通过执行代码的方式:<code>reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings” /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f</code> Win+R 打开「运行」对话框,输入 <code>cmd</code> 后按下 <code>Ctrl+Shift+Enter</code>,在弹出来的命令行窗口中输入上面的代码,并敲击回车。命令里的 10000 代表停止更新的天数。</li> +<li>手动把电脑时钟日期改成 2050 年(为了防止时间自动校准,可以暂时断开网络),然后在 Windows 更新设置界面里面点击“延迟更新”,完成设置后再把电脑时间调回来就行了。</li> +</ol> +</li> +<li><a class="link" href="https://pkg-size.dev/" target="_blank" rel="noopener" +>pkg-size</a>,一个在线监测 npm 包大小的网站,可以实时查看一个 npm 包的真实依赖,网站利用了 web容器技术,直接在浏览器里执行 npm install 操作。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-32-07.png" +width="1011" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="158" +data-flex-basis="381px" +></li> +<li><a class="link" href="https://marketplace.visualstudio.com/items?itemName=degreat.3e" target="_blank" rel="noopener" +>3e</a>,一个 VS Code 插件,可以让你在编辑器里直接浏览 3d 模型,基于 webgl 实现。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-041-%E6%9C%9F/2023-07-19-09-32-58.png" +width="704" +height="468" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 039 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/Tue, 11 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/<h1 id="机器文摘-第-039-期">机器文摘 第 039 期</h1> +<h2 id="长文">长文</h2> +<ul> +<li> +<p><a class="link" href="https://www.cs.columbia.edu/~hgs/etc/writing-bugs.html" target="_blank" rel="noopener" +>关于写作的通用问题</a>,“元技能”一般指比普通技能更高阶的技能,我理解为可产生技能的技能,此类技能并不会随着外部环境的高速发展而被淘汰。比如写作就算是一种元技能,当不知道该训练和提升什么技能的时候,将时间花在“元技能”的提升上准没有错。这篇文章主要讲解英文写作的常见问题,但是有些我觉得对于中文也适用。比如文章开头提到的两个基本原则:“在写之前就弄清楚自己想表达什么”、“即便是你已经写完了一整篇,如果没能表达你的意思那也是废纸”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-13-52-23.png" +width="294" +height="171" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="412px" +></p> +</li> +<li> +<p><a class="link" href="https://jmmv.dev/2023/06/fast-machines-slow-machines.html" target="_blank" rel="noopener" +>新电脑快还是老电脑快?</a>,上周有博主在twitter发布了一个视频吐槽了一个我也困惑很久的事情。作者展示了他在一台古董电脑上运行Windows NT 3.5 的情况,视频中的电脑基本可以做到秒开程序,然后又展示了一台配备了Windows 11的Surface平板电脑,操作起来界面响应有明显延迟。后者cpu频率为前者的4倍,内存容量为前者的6倍。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-13-55-53.png" +width="507" +height="228" +loading="lazy" +class="gallery-image" +data-flex-grow="222" +data-flex-basis="533px" +></p> +</li> +</ul> +<p>现在的硬件性能动辄就比之前的老硬件几十甚至上百倍的提升,但是我们的交互体验呢?能够秒开的程序甚至还不如二十年前的老爷机。 +后来这事儿在twitter引发了一些争议,有人认为现在的软件确实吃掉了硬件提升的性能,对体验来说提升不足。也有人说现在的体验与以往不可同日而语,这样的对比不公平也没有意义。</p> +<p>博主不得不专门写了一篇文章来回应,详细记录了作者认为更加合理的对比过程。</p> +<p>我个人认为首要原因就是随着硬件性能的提升,软件开发者的精力已经逐渐从性能向开发效率倾斜了。由于现在硬件成本确实低廉,软件迭代周期变得越来越短,软件开发者也越来越没有动力做出极致挖掘硬件性能的软件。</p> +<p>不信你看,现在越来越多的应用程序不再使用原生开发,而是采用了可以“跨平台”的web技术。</p> +<p>这样使得软件界面的响应直接下降了一个数量级。(我在使用vscode的时候甚至还会遇到打字卡顿慢慢弹出字符的情况。)</p> +<p>另外,复杂的设计模式和软件架构,也吃掉了不少硬件性能,因为每增加一层抽象,都会消耗资源,而现在各种复杂的架构就是拼命地增加抽象层。</p> +<p>希望以后市场能够鼓励开发者多做挖掘硬件性能的事情吧。</p> +<ul> +<li><a class="link" href="https://faultlore.com/blah/text-hates-you/" target="_blank" rel="noopener" +>文字渲染比你想象的要复杂</a>,这篇文章的作者曾负责火狐浏览器的文字渲染引擎,他写这篇文字的目的是科普一下关于文字渲染的一些基本技术和困难。在阅读之前,我也简单的以为,文字渲染就是把对应的字符字形从字体库中取出来然后绘制到相应的位置即可,但实际情况确实比这要复杂得多。比如,文中提到的关于“连字符”的处理、“抗锯齿”、“书写方向”等问题,每一个都是开发者的头发杀手。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-12-47.png" +width="574" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/rrweb-io/rrweb" target="_blank" rel="noopener" +>rrweb</a>,可在网页上记录用户行为并导出视频文件。可用于:排查用户错误、保险业务签署、内部风控、用户交互分析等。rrweb采用虚拟化转换DOM、记录变更和操作过程,并通过链表回放数据。存储最小化、回放可快进且跳过无效行为。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-13-31.png" +width="529" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="139" +data-flex-basis="335px" +></li> +<li><a class="link" href="https://github.com/zhaoyun0071/DragGAN-Windows-GUI" target="_blank" rel="noopener" +>DragGAN-Windows-GUI</a>,DragGAN(上周介绍过的开源模型,可以针对图片进行交互式拖动修改)的懒人包,解压直接用,内置17个模型。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-13-53.png" +width="690" +height="421" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="393px" +></li> +<li><a class="link" href="https://neal.fun/deep-sea/" target="_blank" rel="noopener" +>deep-sea</a>,这个网页可以让你查看海洋各个深度都是有哪些生物,果然是越往下越看不清,所以大家就随便长长了,不讲究好看不好看了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-14-11.png" +width="690" +height="501" +loading="lazy" +class="gallery-image" +data-flex-grow="137" +data-flex-basis="330px" +></li> +<li><a class="link" href="http://elementsofprogramming.com/" target="_blank" rel="noopener" +>电子书《Elements of Programming》</a>,这本老书在出版十年后推出了免费pdf版。中文译作《编程原本》,旨在介绍通用的程序设计原理和技巧,重点关注程序设计的基本元素和抽象概念。这本书的核心思想是将程序设计看作是一种构建和操作抽象概念的过程。它强调程序设计应该建立在数学原理和精确性基础上,通过抽象和泛化来创建可重用、可扩展和可维护的软件。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-14-52.png" +width="377" +height="542" +loading="lazy" +class="gallery-image" +data-flex-grow="69" +data-flex-basis="166px" +></li> +<li><a class="link" href="https://github.com/loft-sh/devpod" target="_blank" rel="noopener" +>devpod</a>,Github 的 Codespaces 和微软的 VSCode DevContainers 给开发者提供了即开即用的云端开发环境。现在,他们的开源平替来了,devpod 是一个开源的开发环境容器,可以方便地在任意客户端(Mac、Win、Linux)或云端主机创建体验一致的开发环境,并且可以与VSCode和Jetbrains等IDE直接集成。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-15-25.png" +width="690" +height="266" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="622px" +></li> +<li><a class="link" href="https://uploads-ssl.webflow.com/5ac6b7f2924c656f2b13a88c/6435aabdc0a041194b243eef_Current%20Best%20Practices%20for%20Training%20LLMs%20from%20Scratch%20-%20Final.pdf" target="_blank" rel="noopener" +>从零开始训练大语言模型的最佳实践</a>,训练大语言模型的技术白皮书,从基本概念和技术讲起,教你训练大语言模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-15-45.png" +width="656" +height="849" +loading="lazy" +class="gallery-image" +data-flex-grow="77" +data-flex-basis="185px" +></li> +<li><a class="link" href="https://github.com/yardenshafir/WinDbg_Scripts/blob/master/windbg_the_fun_way.pdf" target="_blank" rel="noopener" +>windbg</a>,一本电子书,讲了很多 windbg 调试器的高级用法,市面上很少见。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-039-%E6%9C%9F/2023-07-04-14-16-44.png" +width="620" +height="319" +loading="lazy" +class="gallery-image" +data-flex-grow="194" +data-flex-basis="466px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 040 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/Tue, 11 Jul 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/<h1 id="机器文摘-第-040-期">机器文摘 第 040 期</h1> +<h2 id="长文">长文</h2> +<h3 id="前端代码检查插件eslint和美化插件prettier的冲突">前端代码检查插件<code>ESLint</code>和美化插件<code>Prettier</code>的冲突</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-02-40.png" +width="1900" +height="1008" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +> +在使用VSCode等现代化编辑器进行前端开发的时候,很多工程样板都默认开启了代码检查和自动格式化的功能,其中以 ESLint 插件和 Prettier 插件为主。</p> +<p>之前有一阵子我总是困惑这两个插件的区别,甚至如果配置不好的话,还会有冲突。</p> +<p>比如 Prettier 插件会在你保存源码的时候按照既定规则进行“美化”代码,如去除行尾分号、增加表达式中的空格等等。此时如果ESLint插件的规则配置不同的话,编辑器就会报错并提示要进行“修复”,然而就在你“修复”之后,刚<code>Ctrl+S</code>保存之后,又傻眼了,因为 Prettier 又对代码进行了“美化”。</p> +<p>我周末特意花时间研究了一下,梳理了一下这两个插件的关系以及他们的分工。</p> +<p>首先,他们的职责定位不同:ESLint 用于检查代码编写是否符合某种预定义的规范,可以进行十分详尽的配置和多项检查,比如定义的变量如果未使用可以作为一种警告或者错误,其职责定位以检查为主。而 Prettier 的职责侧重于格式化(美化)代码,对于编写代码的样式如 tab 缩进量、行尾要不要分号、字符串用单引号还是双引号等可以进行统一格式化,一般用于在代码保存的时候进行快速统一样式。</p> +<p>所以两者可以配合使用,但开头提到的规则冲突需要注意。</p> +<p>我个人的习惯是,将两个插件的配置文件里的配置项进行匹配(规则调整为一致),因为我在美化时关注的项并不太多,所以编写这两个配置文件不算费劲。</p> +<p>而网上有人提出了更好的办法,即通过扩展插件的方式,使得 ESLint 自动获取 Prettier 的规则,以自动统一两者的行为。</p> +<p><a class="link" href="https://rileycai.com/%e4%b8%8d%e4%bb%a5%e8%a7%84%e7%9f%a9%ef%bc%8c%e4%b8%8d%e8%83%bd%e6%88%90%e6%96%b9%e5%9c%86-%e5%bd%bb%e5%ba%95%e6%90%9e%e6%87%82-eslint-%e5%92%8c-prettier/" target="_blank" rel="noopener" +>关于 ESLint 和 Prettier 的具体分析文章和操作建议可以看这一篇文章:</a></p> +<h3 id="说一说我现在的知识管理工具和流程">说一说我现在的知识管理工具和流程</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-03-27.png" +width="302" +height="517" +loading="lazy" +class="gallery-image" +data-flex-grow="58" +data-flex-basis="140px" +> +Hacknews 上有网友说<a class="link" href="https://news.ycombinator.com/item?id=36609641" target="_blank" rel="noopener" +>Evernote几乎辞退了它的所有员工</a>,才想起来我已经有好几年没用过 Evernote 了。之前大概有将近十年的时间都在使用Evernote(但都是免费用户)。主要使用场景是记录个人的工作日志和借助浏览器插件剪藏一些值得收藏的文章。</p> +<p>后来随着 Evernote 的限制越来越多,体验逐渐下降。我就迁移到了使用纯文本作为知识记录载体的路线上了。</p> +<p>期间使用过 Emacs 的 org 模式,也尝试过 vim 的 wiki 插件,最后选择了现在这个 VSCode + GitHub 的方案,已稳定使用了两年时间。</p> +<p>具体流程如下: +1、使用 VSCode + <a class="link" href="https://foambubble.github.io/foam/" target="_blank" rel="noopener" +>foam</a> 、<a class="link" href="https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one" target="_blank" rel="noopener" +>MarkdownAllinOne</a> 等插件实现对 Markdown 的高效编辑,可以实时预览排版效果,foam实现了类似 <a class="link" href="https://obsidian.md/" target="_blank" rel="noopener" +>Obsidian</a> 的文章双向链接和知识关系图谱。我主要使用 Markdown 记录日志和编写知识卡片用于存放个人吸收的信息。 +2、所有内容存放在一个 git 仓库中,同步到 GitHub 上的个人私有仓库,这样可以省去对接网盘的麻烦。 +3、对于互联网上阅读到的有用文章,使用浏览器插件 <a class="link" href="https://microsoftedge.microsoft.com/addons/detail/web-clipper/opejamnnohhbjflpbhnmdlknhjkfhfdp" target="_blank" rel="noopener" +>Web Clipper</a>,可以完整的抓取页面内容到指定的后端存储,这个插件我最喜欢的点是它可以将文章抓取到你指定的GitHub仓库,并作为Issue提交。 +4、来不及看的信息就先抓取到 Issue ,然后等有时间进行整理,形成自己的知识卡片后再关闭该 Issue 。</p> +<p>这套工具及流程的优点: +1、完全免费,不产生任何费用,而且体验不亚于收费软件。 +2、自由度高,存储后端可以自己随意选择,如果嫌 GitHub 麻烦的话,可以自己用网盘同步文件夹。 +3、纯文本载体,这个算是优点吧,格式开放,不会存在别的编辑器打不开的情况。 +4、数据私有,数据随时都在本地(云端的仅作为备份和同步中转),不用担心 SaaS 供应商跑路(你看现在的Evernote)。</p> +<p>欢迎大家讨论。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/TransparentLC/WechatMomentScreenshot" target="_blank" rel="noopener" +>朋友圈截图生成工具</a>,可以帮你生成逼真的朋友圈截图,可定制头像、评论、点赞个数等细节。收藏<a class="link" href="https://akarin.dev/WechatMomentScreenshot/" target="_blank" rel="noopener" +>这个地址</a>,以后再也不怕被群里晒孩子的家长或者搞活动的商家逼着发朋友圈集赞了。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-04-12.png" +width="690" +height="1227" +loading="lazy" +class="gallery-image" +data-flex-grow="56" +data-flex-basis="134px" +></li> +<li><a class="link" href="https://86box.net/" target="_blank" rel="noopener" +>86box</a>,老式 x86 架构计算机模拟器,与 Virtualbox 等虚拟化技术不同的是,86box采用纯软件模拟的方式,实现了经典老式 cpu (如 AMD Am486DX4)的各种技术细节,甚至是当时的硬件缺陷(有些老游戏的 hack 需要这些缺陷)。可以完美复现一台上世纪 90 年代的经典 DOS PC ,用来复古怀旧游戏是再合适不过了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-04-26.png" +width="553" +height="371" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="357px" +></li> +<li><a class="link" href="https://github.com/ztxz16/fastllm" target="_blank" rel="noopener" +>fastllm</a>,fastllm是纯c++实现,无第三方依赖的高性能大模型推理库(待测试验证)。据宣称:6~7B级模型在安卓端上也可以流畅运行,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llmam, moss基座,手机端流畅运行。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-17.png" +width="875" +height="356" +loading="lazy" +class="gallery-image" +data-flex-grow="245" +data-flex-basis="589px" +></li> +<li><a class="link" href="https://photoai.com" target="_blank" rel="noopener" +>PhotoAI</a>,作者说,他为这个网站大概写了14000行PHP代码,样式全写在了<code>&lt;style&gt;</code>标签里,JS全写在<code>&lt;script&gt;</code>标签里,除了<code>jQuery</code>没用任何框架,就连布局也是使用<code>float:left</code>这种老式的浮动实现。然而这个网站确能给他带来每月差不多 <em>6万刀</em> 的收入。这是不是在吹牛。这个网站的业务是:使用AI生成完全没有任何版权问题的各种人像照片。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-41.png" +width="690" +height="617" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="268px" +></li> +<li><a class="link" href="https://makepad.nl/makepad/examples/ironfish/src/index.html" target="_blank" rel="noopener" +>Ironfish synth</a>,用rust写的在线合成器,虽然感觉像个 Demo 但完成度很高,音源部分具有两个振荡器(可选正弦波、方波、锯齿波等)和一个噪波通道,滤波器、效果器齐全,另外还有一个可视化音序器。可基于键盘直接演奏。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-040-%E6%9C%9F/2023-07-11-13-05-59.png" +width="690" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="491px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 038 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/Tue, 27 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/<h1 id="机器文摘-第-038-期">机器文摘 第 038 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://www.polygon.com/23690187/discord-ai-chatbot-clyde-grandma-exploit-chatgpt" target="_blank" rel="noopener" +>ChatGPT的“奶奶漏洞”</a>,奶奶漏洞来源自一个用户说他已经过世的奶奶是凝固汽油弹工厂的工程师,用户让 ChatGPT 用他奶奶说睡前故事的形式,详细介绍了凝固汽油弹的制作方法。以此来绕过 ChatGPT 的安全审查,结果当然是,他得逞了。后来还有网友做了试验,以同样的方式可以套取 Windows 各个版本的序列号。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-53-23.png" +width="720" +height="489" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></li> +<li>国外也有“垃圾佬”,这篇<a class="link" href="https://l4rz.net/running-nvidia-sxm-gpus-in-consumer-pcs/" target="_blank" rel="noopener" +>《怎样低成本搭建深度学习电脑》</a>的文章,介绍了作者怎样通过在二手网站上“捡垃圾”搭建出了性能良好且便宜的GPU工作站。 值得一提的是,作者购买的主要渠道竟然来自国内的著名二手物品交易平台,某鱼。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-54-05.png" +width="690" +height="459" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li> +<p>回顾这些年软件研发的历程,凡是能够做成的软件,无一例外都是抓住了真正存在的需求。这样的需求未必很宏大或者华丽,但一定不是想象种的伪需求。仔细分析之后就会发现,在一个软件产品的生命周期里,开发者所面临的真正(或者说正确的)需求很少,因为找到它们十分不易,它们周边布满了被人们主观意识强加上的伪需求。<a class="link" href="https://cerebralab.com/Imaginary_Problems_Are_the_Root_of_Bad_Software" target="_blank" rel="noopener" +>《伪需求是糟糕软件的根源》</a>,文章探讨了软件开发中存在的一个问题,即虚构的问题(我将之译为:伪需求)如何导致糟糕的软件结果。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-56-35.png" +width="353" +height="179" +loading="lazy" +class="gallery-image" +data-flex-grow="197" +data-flex-basis="473px" +></p> +</li> +<li> +<p>有没有考虑过一个问题,即:为什么随着科技的发展和生产力的提升,人们不是越来越清闲,反而越来越劳累了?这里有篇文章探讨了一些深层次的原因,<a class="link" href="https://theanarchistlibrary.org/library/david-graeber-bullshit-jobs" target="_blank" rel="noopener" +>《狗屁工作》</a>,此文写于 2013 年,作者是 David Graeber (一名人类学教授)。文章讨论了现代社会中存在的一种现象,即许多人在工作中感到他们所从事的工作毫无意义,没有真正的价值和目的。这些工作被称为&quot;狗屁工作&quot;,作者试图探究狗屁工作的存在原因和对个体和社会的影响。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-56-57.png" +width="602" +height="854" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="169px" +></p> +</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/laishulu/Sarasa-Term-SC-Nerd" target="_blank" rel="noopener" +>Sarasa Term SC Nerd</a>,写中文Markdown文件的时候,最怕遇到表格,因为编辑器按照一个中文字符的宽度等于两个英文字符的宽度进行计算,而很多字体在设计时未考虑严格按照这种2:1的宽度比例设计字形,导致在Markdown在编辑状态时的表格分割线错位,看起来十分头疼。经过多方对比,我终于找到了让自己满意的等宽字体,支持中英文字符2:1宽度比例,中文为黑体,英文字符也特别适合写代码。此外还整合了Nerd fonts,支持在终端显示各种漂亮图标。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-58-24.png" +width="690" +height="187" +loading="lazy" +class="gallery-image" +data-flex-grow="368" +data-flex-basis="885px" +></li> +<li><a class="link" href="https://reviewgpt.net" target="_blank" rel="noopener" +>ReviewGPT</a> 写作文、写报告、写邮件,生活中充满了各种写作任务。ReviewGPT 基于 gpt 模型,可为你的文章进行打分、评价,提出修改意见,甚至还可以扮演莎士比亚、金庸等知名作家,帮助你重新撰写,快速提升文章质量。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-58-38.png" +width="690" +height="394" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="420px" +></li> +<li><a class="link" href="https://github.com/binpash/try" target="_blank" rel="noopener" +>try</a>,刚发布的一个命令行工具,目标是允许你执行命令的时候先检查其执行的后果,然后再决定是否让命令真正生效。真正起到了安全保护的效果。官方介绍这个命令是基于 Linux 的命名空间(通过 unshare )和 overlayfs 联合文件系统等技术实现。并特别提醒并非基于沙盒,所以还是谨慎执行危险操作吧。比如<code>try rm rf /*</code>。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-15-59-26.png" +width="831" +height="467" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="427px" +></li> +<li><a class="link" href="https://github.com/XingangPan/DragGAN" target="_blank" rel="noopener" +>DragGAN</a>, 通过拖动就可以完全操纵图像的 AI 模型,现已开放源码! DragGAN 是由谷歌、麻省理工学院和马克斯普朗克研究所创建的一种新的人工智能模型。可以让你轻松通过点击拖动等简单的交互操作就能改变拍摄对象的姿势、形状和表情。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-16-00-25.png" +width="598" +height="399" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></li> +<li><a class="link" href="https://flameshot.org/" target="_blank" rel="noopener" +>flameshot</a>,一个超强的免费截图软件,可以像任何一个截图工具一样截图,最重要的是还有一些附加功能,按一下数字图标,就可以在屏幕上按数字顺序自动生成步骤图示,非常适合生成操作步骤说明。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-038-%E6%9C%9F/2023-06-27-16-01-00.png" +width="580" +height="374" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="372px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 037 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/Tue, 20 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/<h1 id="机器文摘-第-037-期">机器文摘 第 037 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://snap-research.github.io/SnapFusion/" target="_blank" rel="noopener" +>SnapFusion</a> 文本到图像的扩散模型可以从自然语言描述中创建令人惊叹的图像。然而,这些模型很大,需要高端 GPU 在服务端运行模型。SnapFusion提出了一种通用方法,可以在移动设备上运行的文本到图像扩散模型,且出图时间不到2秒。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-55-06.png" +width="609" +height="899" +loading="lazy" +class="gallery-image" +data-flex-grow="67" +data-flex-basis="162px" +></li> +<li><a class="link" href="https://framer.com/ai" target="_blank" rel="noopener" +>Framer</a> 发布了 AI 工具,直接根据文字需求生成页面,我试了一下,对于个人博客、产品介绍页面等静态展示类型的页面,生成的效果还是十分理想的,而且同步提供桌面端和移动端页面。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-55-33.png" +width="599" +height="710" +loading="lazy" +class="gallery-image" +data-flex-grow="84" +data-flex-basis="202px" +></li> +<li><a class="link" href="https://notes.dt.in.th/HDRQRCode" target="_blank" rel="noopener" +>比<code>#ffffff</code>还“白”的“超级白”</a>,这里有网友介绍了一个方法,可以显示更高对比度的二维码(以方便用户扫描识别),据说白的程度超出了sRGB颜色范围,前提是你的显示设备支持HDR。作者的思路是用一段HDR视频在网页中伪装成显示二维码的图片。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-56-11.png" +width="690" +height="305" +loading="lazy" +class="gallery-image" +data-flex-grow="226" +data-flex-basis="542px" +></li> +<li><a class="link" href="https://rwmj.wordpress.com/2023/06/14/i-booted-linux-292612-times/" target="_blank" rel="noopener" +>我在21小时内重启系统29万次</a>,Linux 6.4内核有一个bug可能导致启动时挂起,但概率很低。为了复现bug,Richard WM Jones重启了29万次电脑,最终找到了问题。这让我想起了之前修改不容易复现Bug的艰辛。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-56-28.png" +width="690" +height="735" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="225px" +></li> +<li>我发现一个用chatGPT翻译整段文字的小技巧,那就是在他翻译完成之后,再将这段话发给他,让他根据通顺程度和合理性进行二次润色,出来的结果就好很多了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-58-53.png" +width="717" +height="648" +loading="lazy" +class="gallery-image" +data-flex-grow="110" +data-flex-basis="265px" +></li> +<li>Python写代码很爽,但是想打包发布成果的时候就稍微麻烦一些了,毕竟一大堆环境依赖和包依赖。我之前一直用的是PyInstaller作为打包工具,但是现在我又发现了这个<a class="link" href="https://github.com/Nuitka/Nuitka" target="_blank" rel="noopener" +>Nuitka</a>。它的打包原理是:直接把 Python 代码转成 C 代码再编译,这样打包出来的成果占用小、执行效率也高,尤其适合PyQt编写的桌面程序。另外,著名的 Blender 就是用 Nuitka 编译的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-59-12.png" +width="428" +height="272" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="377px" +></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li><a class="link" href="https://www.raptitude.com/2022/01/everything-must-be-paid-for-twice/" target="_blank" rel="noopener" +>你买的每样东西都需要支付两次成本</a>,这篇在Hacker News上的文章引起我的强烈共鸣。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-15-59-33.png" +width="600" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></li> +</ul> +<p>它提出了一个有趣的观点,我以前从未意识到:</p> +<p>每样东西都需要支付两次成本。</p> +<p>通常,我们只关注第一次支付的成本,也就是购买时花的钱,比如买一台相机、一架钢琴或一本小说。</p> +<p>然而,作者指出,如果你不支付第二次的成本,你之前花的钱就等于打水漂了。</p> +<p>第二次成本指的是,你需要花时间和精力去充分使用你所购买的物品。</p> +<p>比如认真阅读一本书,练习钢琴以提高演奏水平等等。</p> +<p>然而,我们常常只停留在第一次购买时的满足感上,然后追求下一个。</p> +<p>随着时间的推移,大量未支付第二次成本的物品使我们积累了一种无形的债务。</p> +<p>为此经常感到挫败。</p> +<p>这种挫败感促使我们寻求那些能够刺激我们的短期享受,比如玩手机、享用美食。</p> +<p>进一步导致没有时间支付第二次成本。</p> +<p>那么,有什么办法可以改变这种情况吗?</p> +<p>作者说,唯一的解决办法就是控制购买欲望,强迫自己安排时间来履行第二次支付的责任。</p> +<p>尽管这听起来可能有些不舒服,但如果我们能克服这种不舒服的临界点,例如学会一首乐曲,耐心读完一本书,我们将会获得意想不到的奖励时刻。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.ratatype.com" target="_blank" rel="noopener" +>ratatype</a>,在线键盘盲打指法练习,有完整的练习教程,从初级到高级都有。有点儿像Dos时代的著名打字练习软件TT,不过是网页版的。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-11.png" +width="690" +height="360" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +<li><a class="link" href="https://play0ad.com/download" target="_blank" rel="noopener" +>0A.D.</a>,帝国时代是个经典游戏,这里有个开源版,名字叫做0AD,由Wildfire Games开发,虽然是免费开源的游戏,但是效果和可玩性都非常高,适合在周末的午后来一把怀旧局。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-26.png" +width="690" +height="405" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="408px" +></li> +<li><a class="link" href="https://landing.love" target="_blank" rel="noopener" +>landing.love</a>,一个专门收集各种网页动画效果的网站,目前已收录超过400个具有新颖创意动效的网站,并配有截图和录屏视频。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-00-47.png" +width="590" +height="486" +loading="lazy" +class="gallery-image" +data-flex-grow="121" +data-flex-basis="291px" +></li> +<li><a class="link" href="https://github.com/princeton-vl/infinigen" target="_blank" rel="noopener" +>infinigen</a>,一款面向计算机视觉研究的3D场景自动生成器,提供多样且高质量的3D训练数据。基于Blender,免费且开源。可以通过重写随机化的默认参数来完全控制资产生成。提供了对自然界中多种对象和场景的生成器,包括植物、动物、地形以及火、云、雨、雪等自然现象。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-01-41.png" +width="951" +height="522" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +></li> +<li><a class="link" href="https://yjdoc2.github.io/8086-emulator-web/compile" target="_blank" rel="noopener" +>8086-emulator-web</a> ,用js编写的的8086 cpu模拟器,支持汇编语言在线编写、编译和调试运行,是一个学习汇编语言和理解计算机原理的好工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-037-%E6%9C%9F/2023-06-20-16-01-04.png" +width="690" +height="320" +loading="lazy" +class="gallery-image" +data-flex-grow="215" +data-flex-basis="517px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 036 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/Wed, 14 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/<h1 id="机器文摘-第-036-期">机器文摘 第 036 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4911535232057363" target="_blank" rel="noopener" +>软驱阵列演奏音乐</a>,国外大神用512个软驱、16个硬盘、4个扫描仪,组装成阵列,通过编程的方式控制电机震动发出声音,组成各声部。这么多软驱,让我想到了退休老干部合唱团。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-49-03.png" +width="1555" +height="926" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="403px" +></li> +<li><a class="link" href="https://video.weibo.com/show?fid=1034:4564677670141974" target="_blank" rel="noopener" +>大脑能像身体那样锻炼吗?</a>,如何训练大脑?提高记忆力、注意力和智力!这个视频进行了讲解,总之就是,用进废退,改变日常默认行动,让大脑动起来。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-49-59.png" +width="743" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="396px" +></li> +<li><a class="link" href="https://gaultier.github.io/blog/x11_x64.html" target="_blank" rel="noopener" +>用纯汇编写一个GUI</a>,跟随这篇教学文章,通过编写图形界面的方式来学习汇编语言吧。顺便,作者想挑战一下,最小的GUI程序其可执行二进制文件能有多小。(现在的可执行文件动不动就好几十上百MB)​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-50-39.png" +width="1046" +height="463" +loading="lazy" +class="gallery-image" +data-flex-grow="225" +data-flex-basis="542px" +></li> +<li><a class="link" href="https://blog.betacat.io/post/2023/06/summarize-hacker-news-by-chatgpt" target="_blank" rel="noopener" +>让 ChatGPT 帮我们总结 Hacker News</a>,让AI每天帮我总结新闻摘要,这个想法我已经考虑很久了,现在已经有人做了实现。这篇文章介绍了一个开源静态网站的实现,它利用 ChatGPT 的总结能力,直接将每条Hackernews的新闻用一两句话总结出来,然后发布到GithubPages 可以节约我们每天看新闻的时间。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-51-29.png" +width="891" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="215" +data-flex-basis="517px" +></li> +<li><a class="link" href="https://www.web3brand.io/p/maximize-unregretted-user-time" target="_blank" rel="noopener" +>马斯克专访:推特的混乱过去了,现在的目标是最大化用户无悔时间!</a>,我不喜欢看八卦,但是科技的除外。马斯克收购 Twitter 几个月过去了,大家还在等着看笑话,但是为什么没等到,以及开掉一半人之后效率却提升那么多? +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-52-02.png" +width="680" +height="417" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="391px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/AI4Finance-Foundation/FinGPT" target="_blank" rel="noopener" +>FinGPT</a>,一个面向金融领域的开源语言模型,采用以数据为中心的方法,为研究人员和实践者提供易于使用的资源,致力于做金融领域的chatGPT。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-52-48.png" +width="822" +height="462" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="427px" +></li> +<li><a class="link" href="https://github.com/facebookresearch/audiocraft" target="_blank" rel="noopener" +>Audiocraft</a>,facebook发布的一个PyTorch库,用于音频生成的深度学习研究。目前,它提供了用于从文本生成音乐的MusicGen代码和模型。模型使用2万小时正版授权音乐训练。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-53-34.png" +width="816" +height="350" +loading="lazy" +class="gallery-image" +data-flex-grow="233" +data-flex-basis="559px" +></li> +<li><a class="link" href="https://github.com/mljar/mercury" target="_blank" rel="noopener" +>Mercury</a>,在 Jupyter Notebook 中构建 Web 应用程序,允许您在Python笔记本中添加交互式小部件,然后将笔记本发布为带交互界面的Web应用程序。我的感受是,Mercury就是 notebook版的<a class="link" href="https://github.com/gradio-app/gradio" target="_blank" rel="noopener" +>gradio</a> ​​​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-53-58.png" +width="805" +height="421" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></li> +<li><a class="link" href="https://github.com/reactive-python/reactpy" target="_blank" rel="noopener" +>ReactPy</a>,React是最流行的用于构建UI的前端框架,现在所有Python开发人员都可以使用它。比起gradio,这个reactpy的抽象层级更低一些,自由度更高了,我猜测目标用户应该是不喜欢写前端代码但是又希望掌控页面细节的python程序员。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-56-24.png" +width="632" +height="148" +loading="lazy" +class="gallery-image" +data-flex-grow="427" +data-flex-basis="1024px" +></li> +<li><a class="link" href="http://ggml.ai/" target="_blank" rel="noopener" +>GGML</a>,一个用于机器学习的张量库,采用纯C++实现,无其他依赖项。旨在在普通硬件上实现大型模型和高性能。它同时也是 llama.cpp 和 whisper.cpp 的底层库。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-16-57-18.png" +width="629" +height="327" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="461px" +></li> +<li><a class="link" href="https://github.com/Genymobile/scrcpy" target="_blank" rel="noopener" +>Scrcpy</a>,一个让人相见恨晚的app,可以通过USB或TCP/IP连接镜像Android设备的视频和音频,并允许使用计算机的键盘和鼠标来控制设备。它不需要任何root权限,并且兼容Linux、Windows和macOS操作系统。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-02-19.png" +width="408" +height="589" +loading="lazy" +class="gallery-image" +data-flex-grow="69" +data-flex-basis="166px" +></li> +<li><a class="link" href="https://maketafi.com/ai" target="_blank" rel="noopener" +>Tafi</a>,通过自然语言生成3D模型,质量号称接近AAA级游戏,可以导出创建的角色到Blender、Unreal 或 Unity中。 ​​​ +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-02-52.png" +width="1080" +height="608" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/Hufe921/canvas-editor" target="_blank" rel="noopener" +>canvas-editor</a>,一个基于 canvas/svg 实现的富文本编辑器,在市面上,使用 Canvas 实现整个编辑器的开源项目并不常见,大多数情况下仍然使用 DOM 来实现。使用 Canvas 的最显著特点是其出色的性能,但实现起来的成本也更高。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-15-39.png" +width="1200" +height="668" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="431px" +></li> +<li><a class="link" href="https://markmap.js.org%e2%80%8b%e2%80%8b" target="_blank" rel="noopener" +>markmap.js</a>,一个用markdown文本制作思维导图的工具,提供了vscode的插件可直接在编辑器预览。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-036-%E6%9C%9F/2023-06-14-17-16-02.png" +width="611" +height="458" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 035 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/Wed, 07 Jun 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/<h1 id="机器文摘-第-035-期">机器文摘 第 035 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://www.reproof.app/blog/notes-apps-help-us-forget" target="_blank" rel="noopener" +>笔记帮我们记住还是忘记?</a>这篇文章讨论了笔记对帮助我们遗忘的作用。作者认为,随着时间的推移,我们无法记住所有的事情,但是只要我们记录了重要的信息,就可以在需要时再次查找,因此笔记实际上帮助我们遗忘。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-09-37.png" +width="1173" +height="488" +loading="lazy" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="576px" +></li> +<li><a class="link" href="https://research.nvidia.com/labs/dir/neuralangelo/" target="_blank" rel="noopener" +>高保真神经表面重建</a>,Nvidia 新发布的这个 Neuralangelo 有些猛,随便给一个视频就能进行精细3D建模,也许要不多久激光点云技术就要淘汰了。值得关注 ! +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-12-49.png" +width="936" +height="465" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="483px" +></li> +<li><a class="link" href="https://github.com/Neo-Desktop/WindowsXPKg" target="_blank" rel="noopener" +>Windows XP 激活算法被破解</a>, XPKeygen是一个可以随意生成XP有效安装密钥的程序,当前的电脑可能用不到了。不过可能还有一些老旧的设备,只能通过 Windows XP 来操作,这时候这个东西就派上用场了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-17-33.png" +width="610" +height="285" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="513px" +></li> +<li><a class="link" href="https://www.v2ex.com/t/944717" target="_blank" rel="noopener" +>一个整活儿的开源编辑器</a>,data:text/html;base64,PGh0bWwgY29udGVudGVkaXRhYmxlPmVkaXQgbWU8L2h0bWw+ 把这个代码粘到浏览器地址栏,竟然是个记事本app,如果从IDE拷贝代码过去,竟然还支持代码高亮。。。。加入到收藏夹即可食用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-20-19.png" +width="663" +height="347" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="458px" +></li> +<li><a class="link" href="https://mymodernmet.com/sea-turtle-birch-aquarium-3d-printed-brace" target="_blank" rel="noopener" +>3D打印拯救海龟</a> ,2017年,伯奇水族馆与加州大学圣地亚哥分校图书馆的数字媒体实验室合作。他们一起创造了一种首创的3D打印支架,以固定她的外壳上的缝隙。现在,六年后,这种生物及其照顾者继续从这项发明中获益。这只海龟最近接受了年度检查,健康状况良好。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-21-40.png" +width="613" +height="372" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></li> +<li><a class="link" href="https://kuenzi.dev/toothbrush/" target="_blank" rel="noopener" +>破解“智能”牙刷</a> 国外一个博主记录了他破解自己的电动牙刷的过程。由于牙刷的NFC芯片采用的加密方式是密码加密,并且在通讯过程中是用了明文传递,所以他采取了截获通讯信号的方式窃听到了密码,然后就解锁了各种姿势开始为所欲为了。。。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-22-42.png" +width="606" +height="363" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +></li> +<li><a class="link" href="https://bjoernkarmann.dk/project/paragraphica" target="_blank" rel="noopener" +>真·AI相机</a> ,paragraphica 是一个没有镜头但是却有物理实体的“AI相机”,使用位置、时间等参数数据生成特定地点和时刻的prompt,然后由人工智能来生成“照片”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-24-07.png" +width="578" +height="513" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.dora.run/ai" target="_blank" rel="noopener" +>Droa</a>,一个通过自然语言进行网站开发的工具,你只需要提需求,剩下的交给AI。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-26-05.png" +width="821" +height="496" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="397px" +></li> +<li><a class="link" href="https://github.com/SupaGruen/StableDiffusion-CheatSheet" target="_blank" rel="noopener" +>StableDiffusion-CheatSheet</a>,经常用 Stable Diffusion 进行 AI 绘图的,可以看下这个开源速查表。里面拥有超过 700 种经过测试的艺术风格,可快速搜索查找各类艺术家,并支持一键复制 Prompt。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-26-50.png" +width="742" +height="521" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="341px" +></li> +<li><a class="link" href="https://www.math.cmu.edu/~jmackey/151_128/bws_book.pdf" target="_blank" rel="noopener" +>你一直想知道的关于数学的一切</a>,此书是CMU数学科学系的博士生布兰登·W·沙利文撰写的,旨在引导读者进入抽象数学和证明写作的世界,帮助培养读者的数学思维和表达能力。主题涵盖集合、逻辑、归纳法、关系、函数、基数和组合数学等基础和工具。暂未有中文翻译。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-27-26.png" +width="724" +height="579" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="300px" +></li> +<li><a class="link" href="https://github.com/eastlakeside/interpy-zh" target="_blank" rel="noopener" +>Python进阶</a>,是《Intermediate Python》的中文译本。2021最新目录版,实时更新托管在<a class="link" href="https://py.eastlakeside.cn" target="_blank" rel="noopener" +>GithubPages</a>。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-28-23.png" +width="1037" +height="350" +loading="lazy" +class="gallery-image" +data-flex-grow="296" +data-flex-basis="711px" +></li> +<li><a class="link" href="https://csspro.com/" target="_blank" rel="noopener" +>CSSPro</a>,一个所见即所得的在线CSS可视化开发工具,直接在页面运行,那里修改点哪里。效果真的很惊艳。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-29-07.png" +width="921" +height="537" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></li> +<li><a class="link" href="https://github.com/makeplane/plane" target="_blank" rel="noopener" +>Plane</a>,开源版 JIRA !不少软件开发者都使用JIRA进行缺陷管理,JIRA确实很强大,也很好用。现在,开源版的来了,据说完全可以作为JIRA的平替。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-30-19.png" +width="1139" +height="595" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +></li> +<li><a class="link" href="https://openmlsys.github.io/index.html" target="_blank" rel="noopener" +>机器学习系统:设计和实现</a>,一本关于机器学习的电子书,本书希望做成世界上第一本全面讲述机器学习系统知识的开源书籍。可以看作一门衔接机器学习和计算机系统的课程 ​​。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-31-04.png" +width="234" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="60" +data-flex-basis="144px" +></li> +<li><a class="link" href="https://callannie.ai/" target="_blank" rel="noopener" +>Callanie</a>,练习英语口语的AI对话机器人,支持国内手机号注册,免费且流畅。后端基于大语言模型,可以陪你聊各种话题。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-035-%E6%9C%9F/2023-06-07-10-31-49.png" +width="303" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="53" +data-flex-basis="127px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 034 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/Wed, 31 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/<h1 id="机器文摘-第-034-期">机器文摘 第 034 期</h1> +<h2 id="研究">研究</h2> +<ul> +<li><a class="link" href="https://samwho.dev/memory-allocation/" target="_blank" rel="noopener" +>图解内存分配</a>,文章展示了 C/C++ 编程中的内存分配过程,包括静态和动态内存分配技术、它们的优势,以及有效的内存管理所需考虑的事项。以图解的形式展示了内存分配过程,希望读者可以通过本文更好地理解内存分配相关的概念,并在实际编程中对内存进行更加高效的管理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-49-39.png" +width="759" +height="298" +loading="lazy" +class="gallery-image" +data-flex-grow="254" +data-flex-basis="611px" +></li> +<li><a class="link" href="https://blog.koehntopp.info/2023/05/17/50-years-in-filesystems-towards-2004-lfs.html" target="_blank" rel="noopener" +>文件系统五十年</a>,这是一个系列文章,详细记录了计算机文件系统的发展历程。也许我们身在其中无法感受到它的进步,但是回顾历史我们会发现,即便是我们不容易注意到的部分,也在不停地发展和优化。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-50-33.png" +width="672" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></li> +<li><a class="link" href="https://xorvoid.com/sectorc.html" target="_blank" rel="noopener" +>只有512字节的C编译器</a>,这篇文章介绍了一个怎样实现最小编译器的思路,SectorC (github) 是一个用 x86-16 汇编编写的 C 编译器,适合 x512 机器的 86 字节引导扇区。它支持 C 的子集,足够大,可以编写真实有趣的程序。它很可能是有史以来最小的C编译器。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-51-20.png" +width="764" +height="366" +loading="lazy" +class="gallery-image" +data-flex-grow="208" +data-flex-basis="500px" +></li> +<li><a class="link" href="https://www.amygoodchild.com/blog/computer-art-50s-and-60s" target="_blank" rel="noopener" +>上世纪50~60年代的计算机艺术</a>,数字艺术的发展简史。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-51-53.png" +width="781" +height="494" +loading="lazy" +class="gallery-image" +data-flex-grow="158" +data-flex-basis="379px" +></li> +<li><a class="link" href="" >win10的隐藏功能</a>,原来win10还有这个功能。按Ctrl + Alt + Del 后,按住Ctrl不松,再点击右下角的电源符号,就会进入紧急重启(Emergency Restart)界面。应该是一种强制重启。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-52-04.png" +width="690" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/SevaSk/ecoute" target="_blank" rel="noopener" +>Ecoute</a>,可用于远程面试作弊的工具?Ecoute 是一种实时转录工具,可在文本框中为用户的麦克风输入(您)和用户的扬声器输出(扬声器)提供实时翻译。它还使用 OpenAI 的 GPT-3.5 生成建议答复内容,供用户“参考”。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-52-39.png" +width="820" +height="386" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="509px" +></li> +<li><a class="link" href="https://app.rask.ai/" target="_blank" rel="noopener" +>rask.ai</a>,自动将视频转成“译制片”,在对内容进行翻译的同时,会尽量保持之前的音色和语调,端到端给你的视频完成多语配音,后续还会推出唇形同步合成。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-53-28.png" +width="1171" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="181" +data-flex-basis="436px" +></li> +<li><a class="link" href="https://chrome.google.com/webstore/detail/tango-how-to-guides-and-s/lggdbpblkekjjbobadliahffoaobaknh" target="_blank" rel="noopener" +>Tango</a>,一个Chrome浏览器插件,能帮你生成一个网站的操作指南。它会自动记录所有的操作流程,并做相应的截图和注解文档。你只需要点一遍就行了。目前还只能生成英文版的,不过自己翻译也不麻烦。可以节省不少时间。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-53-58.png" +width="632" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="388px" +></li> +<li><a class="link" href="https://praeclarum.org/2023/05/19/webgpu-torch.html" target="_blank" rel="noopener" +>WebGPU-torch</a>,PyTroch的webgpu实现。我测试了一下,我的浏览器目前还不支持。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-54-28.png" +width="1384" +height="796" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></li> +<li><a class="link" href="http://ogden.basic-english.org/" target="_blank" rel="noopener" +>basic-english</a>,“基础英语”的概念是:25,000个单词的牛津袖珍英语词典去掉冗余,并消除组合单词,90%的概念可以用850个单词来实现。使用这些基础英语可以简化日常工作和交流。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-55-26.png" +width="778" +height="516" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +<li><a class="link" href="https://github.com/raunofreiberg/interfaces" target="_blank" rel="noopener" +>Web界面准则</a>,讲解如何提升网页界面的交互性、排版、动画、辅助功能、优化和设计。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-56-18.png" +width="834" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="429px" +></li> +<li><a class="link" href="https://github.com/excalidraw/excalidraw" target="_blank" rel="noopener" +>excalidraw</a>,开源虚拟手绘风格白板程序,支持端到端加密在线协作。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-034-%E6%9C%9F/2023-05-31-09-56-43.png" +width="759" +height="504" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="361px" +></li> +</ul> +<h2 id="沉思录">沉思录</h2> +<ul> +<li>一切商业的本质都是:收购一些东西(包括原材料、人力服务),经过加工(加工过程产生价值)后变成产品或服务出售。这里的原材料可以是实体物品也可以是信息。所以关键动作就是:收、加工、出售,从重要性上来说,出售大于加工大于收。所以如果要策划自己的产品,解决和分析问题的优先级也应如此,我之前想的正好一反;</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 033 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/Wed, 24 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/<h1 id="机器文摘-第-033-期">机器文摘 第 033 期</h1> +<h2 id="研究">研究</h2> +<h3 id="全键盘信息终端">全键盘信息终端</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-22-11.png" +width="1335" +height="637" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +> +我一直很怀念使用黑莓手机的日子。</p> +<p>物理全键盘的手感比起现在硬邦邦的触摸屏真不知道好到哪里去了。</p> +<p>多少次盯着抽屉里的黑莓尸体,都在想有没有办法再次发挥它的余热。</p> +<p>现在机会来了,有人将树莓派和黑莓手机的全键盘(带触摸板的那一款)结合起来做了一个终端。</p> +<p>取名:<a class="link" href="https://beepberry.sqfmi.com/" target="_blank" rel="noopener" +>Beepberry</a>,具有400*200分辨率的LCD屏幕,和usb type-c接口。</p> +<h3 id="自己动手给树莓派写操作系统">自己动手给树莓派写操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-31-09.png" +width="677" +height="359" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +> +学习操作系统的最佳手段是自己动手写一个。</p> +<p>这类教程很多,一般都是针对x86平台,树莓派的比较少见。</p> +<p><a class="link" href="https://github.com/isometimes/rpi4-osdev" target="_blank" rel="noopener" +>《给树莓派编写“裸机”操作系统》</a>来自github上的一个开源项目。</p> +<p>可以带你从树莓派的硬件层基础上直接构建一个的完整操作系统。</p> +<h3 id="关于-demoscene-制作的一些文章">关于 Demoscene 制作的一些文章</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-40-25.png" +width="471" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +> +Demoscene(也称为Demo Party)是一种计算机艺术形式,旨在展示计算机的音频和图形表现能力。Demoscene通常是由小团队制作的演示性程序,也被称为demo,它集计算机程序、音乐、图形和动画于一身,是八十年代初期在个人计算机上发展起来的一种文化和艺术运动。Demoscene的主要目的是展示计算机和程序的美感,通常使用3D渲染和其他复杂的视觉效果,展示计算机的高级图形和音频处理能力。</p> +<p>我对于如何制作这些炫酷的 demo 一直很感兴趣,但是网上关于这方面的资料非常少,成体系的就更少了。</p> +<p>这里收录了一些比较经典的相关资料:</p> +<ol> +<li> +<p><a class="link" href="https://www.ctrl-alt-test.fr/2023/procedural-3d-mesh-generation-in-a-64kb-intro/" target="_blank" rel="noopener" +>64kb的demos</a>介绍了基于SDF(Signed Distance Field,有符号距离场)生成三维网格的方法,这个方法是大部分demo用于在三维场景中产生三维模型的主要方法。</p> +</li> +<li> +<p><a class="link" href="https://www.flipcode.com/archives/The_Art_of_Demomaking-Issue_01_Prologue.shtml" target="_blank" rel="noopener" +>The_Art_of_Demomaking</a>是一套很系统的教程,讲述Demo的概念、发展历史以及制作过程需要了解的基础知识。</p> +</li> +<li> +<p><a class="link" href="https://www.pbr-book.org/3ed-2018/contents" target="_blank" rel="noopener" +>pbr-book</a>是一本关于基于物理的渲染(Physically Based Rendering,简称PBR)的经典教材。内容包括计算机图形学相关的基础概念、渲染算法、工作流程和高级特性等。</p> +</li> +</ol> +<h3 id="怎样防止针对llm的prompt攻击">怎样防止针对LLM的prompt攻击</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-09-52-09.png" +width="734" +height="401" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="439px" +> +就像之前流行的sql注入攻击,针对大语言模型的提示语注入攻击现在变得也很常见。</p> +<p>一种比较典型的攻击场景是,通过一段特定的提示语,解锁chatGPT原本被封印的能力。</p> +<p>或者对于接入了其他工具接口的语言模型,通过特定的提示语让其执行危险操作(如:删除所有信息)。</p> +<p>这对于使用者来说可能危害不大,但对于服务的提供者是一个不小的挑战。</p> +<p><a class="link" href="https://simonwillison.net/2023/Apr/25/dual-llm-pattern/" target="_blank" rel="noopener" +>《用于构建可以抵抗即时注入的 AI 助手的双 LLM 模式》</a>提出了一种可能可行的解决方案。</p> +<p>即使用双模型的配置,协同工作,将具有执行危险操作的特权模型放在另一个模型后面,中间使用过滤器进行风险审查,即未被审查的内容永远不会发送到特权模型。</p> +<h2 id="资源">资源:</h2> +<ul> +<li><a class="link" href="https://gamma.app/" target="_blank" rel="noopener" +>gamma</a>,AI帮你做PPT。支持自然语言描述需要生成的内容,自动给出ppt的大纲和每页基本的排版布局; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-10-00-52.png" +width="742" +height="687" +loading="lazy" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="259px" +></li> +<li><a class="link" href="https://www.3blue1brown.com/" target="_blank" rel="noopener" +>3blue1brown</a>,YouTube上最好的数学科普视频,特点是使用动画直观展示计算原理; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-033-%E6%9C%9F/2023-05-24-10-01-29.png" +width="953" +height="611" +loading="lazy" +class="gallery-image" +data-flex-grow="155" +data-flex-basis="374px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 032 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/Tue, 16 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/<h1 id="机器文摘-第-032-期">机器文摘 第 032 期</h1> +<h2 id="长文">长文</h2> +<h3 id="ai歌手的训练与使用">AI歌手的训练与使用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-33-53.png" +width="1011" +height="641" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="378px" +> +最近火了很多AI歌手(即:用AI模型模仿某位歌手的声音),其中b站上AI孙燕姿演唱的《漠河舞厅》、《撒日朗》等歌曲播放已超百万。</p> +<p>为了研究实现原理,我也找到了开源工具体验了一下。</p> +<p>具体步骤主要总结如下:</p> +<ol> +<li>选定某一个歌手,找到具有代表性的几首歌曲,通过<a class="link" href="https://ultimatevocalremover.com/" target="_blank" rel="noopener" +>Ultimate Vocal Remover</a>软件利用AI做人声和伴奏的分离,主要用于获取干净的纯人声用于模型训练。(不得不说现在基于AI模型的人声、伴奏分离做的是真的强,可以做到非常干净的提取,让你感觉像是原始独立的音轨)。</li> +<li>通过安装<a class="link" href="https://github.com/voicepaw/so-vits-svc-fork" target="_blank" rel="noopener" +>so-vits-svc-fork</a>这个一体化开源工具进行模型训练,具体方法见<a class="link" href="https://github.com/voicepaw/so-vits-svc-fork/blob/main/README_zh_CN.md" target="_blank" rel="noopener" +>so-vits-svc-fork的Readme</a>,从数据预处理到最后的模型导出和推理都已经做好了,甚至还提供了图形界面。</li> +<li>继续使用so-vits-svc-fork提供的gui界面进行操作,将模型载入,将预期修改歌曲的原唱人声(提取方式同第1步)传入,运行推理获得定制的人声(注意看文档的各种参数)。</li> +<li>将第3步推理所得干净人声,跟原唱分离的干净背景音乐进行混音合成,即可获得一首新歌曲了。</li> +</ol> +<h3 id="怎样用口袋计算器玩耍">怎样用口袋计算器玩耍</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-49-14.png" +width="716" +height="514" +loading="lazy" +class="gallery-image" +data-flex-grow="139" +data-flex-basis="334px" +> +在移动互联网时代,人打发无聊的方式实在是太多了,视频聊天、阅读各种资讯八卦、观看短视频、手游等等。</p> +<p>功能机的时代,我有印象的打发无聊的事情是手机上的贪食蛇、发短信、wap资讯等等,也算不错了。</p> +<p>如果时间来到上世纪七十年代呢?那个时代的没有随身携带的手机,怎么打发时间?</p> +<p>答案是:如果有一个随身携带的计算器也行,这里有一本书<a class="link" href="https://archive.org/details/htewypc" target="_blank" rel="noopener" +>《How To Entertain With Your Pocket Calculator》</a>,出版于上世纪七十年代。书中花了大量的篇幅介绍了很多种基于数字的游戏,我翻看了一下,我觉得可能得无聊到一定的程度我才能愿意玩书里的游戏。</p> +<h3 id="llm的几篇介绍文章">LLM的几篇介绍文章</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-14-56-38.png" +width="703" +height="332" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="508px" +> +Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 +与其感叹以chatGPT为代表的大语言模型发展太快,不如静下心来,读一读关于LLM的一些基础知识和使用方法,我找了三篇比较有代表性的放在这里收藏。</p> +<ol> +<li><a class="link" href="https://github.com/RUCAIBox/LLMSurvey/blob/main/assets/LLM_Survey_Chinese_0418.pdf" target="_blank" rel="noopener" +>大语言模型综述</a>,认真地概括并解释了什么是LLM和它的基本原理。</li> +<li><a class="link" href="https://www.bmpi.dev/dev/deep-learning/nlp-language-models/" target="_blank" rel="noopener" +>ChatGPT背后的语言模型简史</a>,从发展历史上捋一捋各种语言模型的辈分。</li> +<li><a class="link" href="https://github.com/datawhalechina/prompt-engineering-for-developers" target="_blank" rel="noopener" +>prompt-engineering-for-developers</a>一个中文版的 Prompt Engineering 教程,翻译自:吴恩达《ChatGPT Prompt Engineering for Developers》课程,主要内容为指导开发者如何构建 Prompt 并基于 OpenAI API 构建新的、基于 LLM 的应用;</li> +<li><a class="link" href="https://github.com/ninehills/ninehills.github.io/issues/92" target="_blank" rel="noopener" +>大语言模型微调技术笔记</a>,记录了基于 LLM 进行微调训练的实战技巧。</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://sinerider.com/" target="_blank" rel="noopener" +>sinerider</a>,一个很有创意的数学学习游戏,让你通过数学函数构建图像从而帮助画面中的角色到达目标地点。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-04-41.png" +width="810" +height="708" +loading="lazy" +class="gallery-image" +data-flex-grow="114" +data-flex-basis="274px" +></li> +<li><a class="link" href="https://anvaka.github.io/map-of-github/#0.87/0/16.7" target="_blank" rel="noopener" +>map-of-github</a>,以节点地图的方式展示Github上面超过40万个仓库,通过虚拟大陆的方式展示他们之间的关系。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-07-40.png" +width="1274" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></li> +<li><a class="link" href="https://learngitbranching.js.org/?locale=zh_CN" target="_blank" rel="noopener" +>learngitbranching</a>,以交互式游戏的方式学习git命令。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-11-32.png" +width="569" +height="598" +loading="lazy" +class="gallery-image" +data-flex-grow="95" +data-flex-basis="228px" +></li> +<li><a class="link" href="https://vgamuseum.ru/" target="_blank" rel="noopener" +></a>,在线显卡博物馆,收藏了1982年到2012年之间发布的各款显卡,包括高清图片和规格参数的介绍; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-032-%E6%9C%9F/2023-05-16-15-14-37.png" +width="1364" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="573px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 031 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/Wed, 10 May 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/<h1 id="机器文摘-第-031-期">机器文摘 第 031 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样驱动上个世纪的网络摄像头">怎样驱动上个世纪的网络摄像头</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-20-31.png" +width="697" +height="407" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +> +国外有个老哥,在帮朋友收拾废品的时候,获得了一个老旧的摄像头。</p> +<p>于是他按耐不住想感受一下,这个来自上个世纪的“古董”,还能打吗?</p> +<p>由于年代比较久远,厂家也不再提供驱动程序的更新。</p> +<p>哥们不得不在虚拟机里全新安装一个windows xp,成功启动摄像头,并获得“清晰图像”。</p> +<p>安装xp时有个插曲:安装界面里的进度条仅用时几十秒就走完了原本几十分钟的倒计时(所以说微软的进度条是如何推断剩余时间的永远是个迷)。</p> +<p>在经过一番体验之后,又跃跃欲试准备自己给它手搓一个在现代操作系统下的驱动程序。</p> +<p>整个过程记录在<a class="link" href="https://blog.benjojo.co.uk/post/quickcam-usb-userspace-driver" target="_blank" rel="noopener" +>《一个1999年的摄像头复活的故事》</a>。</p> +<p>整个故事都充满了一种“我不知道这么做有什么意义,但是我就是可以”的极客风格(也是我收录它的主要原因)。</p> +<h3 id="webgpu-科普">webGPU 科普</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-36-36.png" +width="673" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="477px" +> +最近谷歌浏览器率先宣布全面支持 webGPU ,预计到今年年底各大浏览器也都会跟进并提供支持。</p> +<p>webGPU 从名字上看跟显卡和浏览器有关,可是之前已经有webgl了,这次又有什么变化?</p> +<p>通过多方面信息的搜索,我得到的结论是:webGPU 更充分地暴露了显卡的计算能力,GPU不再只是做图形渲染相关的事情,而是根据webGPU提供的相关专业接口,可以执行深度学习之类的更通用的计算工作。</p> +<p>如果想了解的更全面一些,这篇<a class="link" href="https://cohost.org/mcc/post/1406157-i-want-to-talk-about-webgpu" target="_blank" rel="noopener" +>《谈谈 webGPU》</a>文章十分值得一读。</p> +<p>作者对 webGPU 这一技术介绍的比较详尽,从各个图形接口的发展历史一直到对未来如何应用的展望,都包括了。</p> +<h3 id="如何翻译一本书">如何翻译一本书</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-09-49-38.png" +width="709" +height="354" +loading="lazy" +class="gallery-image" +data-flex-grow="200" +data-flex-basis="480px" +> +<a class="link" href="https://sspai.com/post/79534" target="_blank" rel="noopener" +>《从不自量力到 AI 助力,我如何翻译完一整本英文书》</a> +这是一个关于执行力的故事。</p> +<p>主题是:如何借助AI和现代信息工具,实现看似不可能完成的任务。</p> +<p>在这个时代,个体的力量很渺小,因为个人几乎无法独立完成任何事情。</p> +<p>但同时,借助科技工具和基础设施的力量,1 个人甚至可以完成之前需要一个上百人公司才能做到的事情,这让个体变得非常强大。</p> +<h3 id="如何刷路由器">如何刷路由器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-00-09.png" +width="600" +height="417" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="345px" +> +<a class="link" href="https://www.v2ex.com/" target="_blank" rel="noopener" +>V站</a>上说,中年技术男有三大爱好:钓鱼、NAS、软路由。</p> +<p><del>我一样也没沾边儿,但还是克制不住关注相关技术。</del></p> +<p>之前多次想拿自己家的路由器开刀,刷一个openwrt系统,然后就可以各种折腾(科学上网、内网穿透等等)了。</p> +<p>但是一直没有动手,今天看到这篇<a class="link" href="https://a-wing.top/linux/2023/05/01/start-openwrt" target="_blank" rel="noopener" +>自己动手定制你的路由器</a>写的如此详细,还是心动了一下。</p> +<p>先收藏吧。</p> +<h3 id="仅用csshtml实现三维动画">仅用CSS+HTML实现三维动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-06-52.png" +width="632" +height="161" +loading="lazy" +class="gallery-image" +data-flex-grow="392" +data-flex-basis="942px" +> +CSS 的 <code>translate3d</code>用到的不多。</p> +<p>如果使用巧妙的话,可以帮你实现很出彩的 3D 动画效果,国外有高手在给自己的文章配数学公式的时候,利用CSS制作了一些可以动态显示的公式图表。这篇<a class="link" href="https://x.st/spinning-diagrams-with-css/" target="_blank" rel="noopener" +>CSS 3D图表</a>记录了它们的实现细节和技术原理。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.window-swap.com/Window" target="_blank" rel="noopener" +>window-swap</a>,随机看别人家的窗外景色。这个网站每次刷新都随机显示一个网友共享的摄像头视角,一般是自家的窗外。可以随时体验全球各地的邻家风景。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-14-06.png" +width="1371" +height="929" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="354px" +></li> +<li><a class="link" href="https://www.landiannews.com/archives/98512.html" target="_blank" rel="noopener" +>foobar2000</a>,经典的音乐播放器终于更新了。2002年发布的foobar2000播放器曾经是很多发烧友的最爱,如今过了20多年,居然更新了2.0稳定版,值得收藏; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-15-52.png" +width="743" +height="504" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></li> +<li><a class="link" href="https://lost-at-sql.therobinlord.com/" target="_blank" rel="noopener" +>lost-at-sql</a>,一个在线学习 sql 的交互游戏,通过游戏闯关的方式练习 sql 技能; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-18-25.png" +width="745" +height="484" +loading="lazy" +class="gallery-image" +data-flex-grow="153" +data-flex-basis="369px" +></li> +<li><a class="link" href="https://glsl-exercises.simondev.io/lesson/1/1#welcome" target="_blank" rel="noopener" +>glsl-exercises</a>,在线学习glsl的交互课程,通过交互式页面练习 glsl 编写; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-19-48.png" +width="1858" +height="794" +loading="lazy" +class="gallery-image" +data-flex-grow="234" +data-flex-basis="561px" +></li> +<li><a class="link" href="https://www.gameuidatabase.com/" target="_blank" rel="noopener" +>gameuidatabase</a>,一个游戏界面资源网站,各种游戏的界面截图,可以用来“借鉴”?; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-031-%E6%9C%9F/2023-05-10-10-20-48.png" +width="1078" +height="567" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="456px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 030 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/Wed, 26 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/<h1 id="机器文摘-第-030-期">机器文摘 第 030 期</h1> +<p><em>下周五一假期,休息,不更新。</em></p> +<h2 id="长文">长文</h2> +<h3 id="内网穿透的原理及实现">内网穿透的原理及实现</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-42-27.png" +width="1040" +height="515" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="484px" +></p> +<blockquote> +<p>设想这样一个问题:在北京和上海各有一台局域网的机器(例如一台是家里的台式机,一 台是连接到星巴克 WiFi 的笔记本),二者都是私网 IP 地址,但可以访问公网, 如何让这两台机器通信呢?</p> +</blockquote> +<p>IPv4地址即将枯竭,IPv6技术还没有普及,现在很多家庭宽带都不再分配公网IP地址。这就意味着大部分的个人电脑是无法通过互联网被直接访问的(当然,你可以通过你家wifi或者4G信号访问互联网,但是反过来不行)。</p> +<p>可是这种需求又真实存在,比如我就经常希望能够在任何地方访问我家里的电脑,通过远程桌面进行办公、文件共享等等。</p> +<p>最简单的方法是通过购买一台具有公网IP地址的云主机来实现中继,这也是目前最普遍的方式。</p> +<p>不过阅读完这篇<a class="link" href="https://arthurchiao.art/blog/how-nat-traversal-works-zh/" target="_blank" rel="noopener" +>《NAT 穿透是如何工作的:技术原理及企业级实践》</a>,假如你有很强的动手能力的话,就应该可以实现一套完全不需要公网主机进行中继的“企业级内网穿透工具”。</p> +<p>文章很长,来自<a class="link" href="https://tailscale.com/blog/how-nat-traversal-works/" target="_blank" rel="noopener" +>这篇英文博客</a>。</p> +<h3 id="技术写作指南">技术写作指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-53-51.png" +width="437" +height="205" +loading="lazy" +class="gallery-image" +data-flex-grow="213" +data-flex-basis="511px" +> +曾经在翻阅《程序员的数学》这本书的时候被朋友看到,于是诞生了短暂的讨论。</p> +<p>当时我的观点是,作为程序员一定要掌握好数学,即便现在编程过程中已经不怎么用到特别底层的知识,但也应该多训练数学思维。</p> +<p>朋友当时说了一句话让我记忆犹新。</p> +<p>“比起程序员的数学,我更担忧的是程序员的语文。”</p> +<p>确实,写作这项能力在很多技术人员心里是被低估的。</p> +<p>不少人受尽写技术文档的折磨,于是越发讨厌写作。</p> +<p>这篇<a class="link" href="https://www.yuque.com/serviceup/misc/cn-writing-for-engineers" target="_blank" rel="noopener" +>《作为工程师应该如何写作》</a>真是雪中送炭,总结了很多立即就能见效的技术写作方法,希望可以帮助到工程师朋友。</p> +<h3 id="怎样制作好玩的小游戏">怎样制作好玩的小游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-09-57-29.png" +width="512" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +很多人都有自己开发游戏的冲动。</p> +<p>不过很容易掉进各种复杂的引擎和工具的坑里。</p> +<p>然后感到沮丧,忘了想做游戏的初心。</p> +<p>这篇<a class="link" href="http://farawaytimes.blogspot.com/2023/02/how-to-make-good-small-games.html" target="_blank" rel="noopener" +>《怎样制作好玩的小游戏》</a>可以让你重新焕发精神。</p> +<p>作者认为开发那种不用复杂引擎的小游戏也可以很欢乐,只要有足够的游戏性。</p> +<p>他在文章中详细列举了想要制作出真正具有游戏性的小游戏所必须具备的几点关键特性。</p> +<p>看得出来,作者是懂游戏的。</p> +<h3 id="神奇的一页纸知识管理">神奇的一页纸知识管理</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-10-03-34.png" +width="1220" +height="841" +loading="lazy" +class="gallery-image" +data-flex-grow="145" +data-flex-basis="348px" +></p> +<blockquote> +<p>宇航员在太空中找到的方法一定不会错,因为他要是出错就没命了。 +航天员的秘密武器,One Pager。就是把一个专项的知识,都写和画在一页纸上。日积月累,宇航员有了一本手册,里面都是一页一页的one pager。 +我向来对知识管理的各种方法很有兴趣。</p> +</blockquote> +<p>在网上闲逛时看到这篇<a class="link" href="https://www.zhongwen.ai/fantastic-one-pager/" target="_blank" rel="noopener" +>《神奇的One Pager》</a>,讲述了一种通过一页纸进行知识管理的方法。</p> +<p>热爱学习的人可不能错过。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/chidiwilliams/buzz" target="_blank" rel="noopener" +>buzz</a>,Transcribe and translate audio offline on your personal computer. Powered by OpenAI&rsquo;s Whisper. +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-48-07.png" +width="827" +height="431" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +></li> +<li><a class="link" href="https://moonvy.com/apps/ops/" target="_blank" rel="noopener" +>可视化提示词拼装</a>,文生图的AI越来越多,自己也可以在本地搭建服务,可是为什么我自己生成的图片那么丑呢?这个工具也许可以帮你生成一些靠谱的提示词。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-50-22.png" +width="991" +height="418" +loading="lazy" +class="gallery-image" +data-flex-grow="237" +data-flex-basis="568px" +></li> +<li><a class="link" href="https://liaokong.gitbook.io/llm-kai-fa-jiao-cheng/" target="_blank" rel="noopener" +>LangChain 中文入门教程</a>,众所周知 OpenAI 的 API 无法联网的,所以如果只使用自己的功能实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能肯定是无法实现的。所以,我们来介绍一个非常强大的第三方开源库:LangChain 。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-51-08.png" +width="1103" +height="493" +loading="lazy" +class="gallery-image" +data-flex-grow="223" +data-flex-basis="536px" +></li> +<li><a class="link" href="https://oimo.io/works/clock/" target="_blank" rel="noopener" +>clock</a>,一个非常酷的网页时钟显示效果。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-51-53.png" +width="999" +height="586" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="409px" +></li> +<li><a class="link" href="https://webgpufundamentals.org/" target="_blank" rel="noopener" +>WebGPU 理论基础</a>,从基础理论开始学习WebGPU,稳! +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-030-%E6%9C%9F/2023-04-26-08-53-56.png" +width="688" +height="743" +loading="lazy" +class="gallery-image" +data-flex-grow="92" +data-flex-basis="222px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 029 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/Wed, 19 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/<h1 id="机器文摘-第-029-期">机器文摘 第 029 期</h1> +<h2 id="长文">长文</h2> +<h3 id="计算机的中断机制是如何实现的">计算机的“中断”机制是如何实现的?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-09-37-58.png" +width="1008" +height="682" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="354px" +> +稍微了解过计算机原理的朋友都知道,计算机是通过“中断”的机制实现对键盘输入、鼠标移动、硬盘读写等操作的。</p> +<p>让我给小朋友讲解这些基本的知识时,我也可以侃侃而谈,说上半个小时不带重复。</p> +<p>但是真要解释“中断”的机制是如何实现的,我想即便是现在科班出身的本科生也未必能够说明白。</p> +<p>原因我觉得除了缺少实践之外,也跟大部分书上的理论内容离实际工程较远有关。</p> +<p>这篇<a class="link" href="https://r12f.com/posts/interrupts/" target="_blank" rel="noopener" +>漫谈中断</a>从实际的硬件实例(x86)出发,详细介绍了中断的实现机制,普及了“外部中断”、“内部中断”、“软中断”等概念,以及人们怎样通过“中断控制器”逐渐解决了多设备中断处理的问题。是一篇很值得阅读的科普文章。适合对计算机组成原理、操作系统等技术有兴趣的朋友阅读。</p> +<h3 id="怎样提升软件项目的可维护性">怎样提升软件项目的可维护性?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-09-54-43.png" +width="576" +height="242" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="571px" +> +不同的项目团队对于软件项目的可维护性所做出的努力不同。</p> +<p>有不少团队宁愿在修改bug上加班加点,也不愿意为可维护性多花一丁点精力。</p> +<p>不过,如果你要开始一个新的软件项目或者想要改善一个已经存在的项目的可维护性。</p> +<p>这里有一份<a class="link" href="https://hix.dev/tutorials/general/software-project-checklist" target="_blank" rel="noopener" +>软件项目可维护性检查清单</a>可以参考。</p> +<p>作者主要从版本控制、软件测试、静态分析、依赖库管理、多语言支持、多平台支持、开发环境管理等方面给出了可以改进的行动清单,以及基于开源工具的最佳实践建议。</p> +<h3 id="怎样榨干chatgpt">怎样榨干chatGPT?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-06-59.png" +width="1024" +height="1024" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +> +ChatGPT是由OpenAI训练的一款大型语言模型,能够和你进行任何领域的对话。</p> +<p>现在跟年初账号紧张的情况比起来已经方便了很多。</p> +<p>在这么多开源工具和套壳网站的帮助下,我想现在大部分人都能够比较方便的体验它了吧。</p> +<p>但是可能很多人还不知道如何更好的发挥它的作用。</p> +<p>有网友整理了一份开源的<a class="link" href="https://github.com/PlexPt/awesome-chatgpt-prompts-zh" target="_blank" rel="noopener" +>chatGPT中文调教指南</a>,内容极为详尽,可以帮你榨干chatGPT的全部潜能。</p> +<h3 id="怎样让ai作画理解你的意图">怎样让AI作画理解你的意图?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-17-26.png" +width="1536" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="300" +data-flex-basis="720px" +> +对于现在强大的AI绘图应用,有些人可能会认为只输入一个单词就能生成一张很酷的图片。</p> +<p>然而,虽然AI模型越来越善于理解我们想要的内容,但它们还不能读懂我们的思想。</p> +<p>因此,如果你想生成一张看起来像你所想的那样的图片,你需要编写正确的提示。</p> +<p>这个<a class="link" href="https://boostpixels.com/short-guide" target="_blank" rel="noopener" +>AI绘图prompt编写指南</a>可以给你提供一些帮助。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://zh.ifixit.com/Guide" target="_blank" rel="noopener" +>维修指南</a>,各种设备的维修教程大全,详细到每一个步骤的照片,设备型号齐全; +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-22-36.png" +width="977" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="508px" +></li> +<li><a class="link" href="https://shadertoy.com/view/msVXWD" target="_blank" rel="noopener" +>glsl-CNN</a>,有大神用glsl语言,仅通过webGL的片元着色器实现了一个手写识别的CNN神经网络。可以在浏览器直接体验,效果惊艳。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-31-02.png" +width="801" +height="479" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +></li> +<li><a class="link" href="https://github.com/facebookresearch/dinov2" target="_blank" rel="noopener" +>dinov2</a>,Meta AI新发布的全能视觉模型,模型支持:图像分类、分割、图像检索和深度估计。比较厉害的地方在于它是一个自监督模型,直接从图像中学习特征,而不依赖文本描述,即可训练计算机视觉模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-31-37.png" +width="828" +height="236" +loading="lazy" +class="gallery-image" +data-flex-grow="350" +data-flex-basis="842px" +></li> +<li><a class="link" href="https://minigpt-4.github.io/" target="_blank" rel="noopener" +>minigpt-4</a>,GPT4 的图像支持迟迟不开放,这个开源的MiniGPT4 却已经做到了类似的多模态效果,官方演示看起来非常棒。只用了四张A100训练了10小时,模型甚至只有13B。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-33-47.png" +width="1289" +height="1484" +loading="lazy" +class="gallery-image" +data-flex-grow="86" +data-flex-basis="208px" +></li> +<li><a class="link" href="https://github.com/linyiLYi/street-fighter-ai" target="_blank" rel="noopener" +>street-fighter-ai</a>,有个B站UP主在GPT的帮助下, 写了个 强化训练的AI模型,终于打败了街霸里的 AI,实现了儿时的梦想。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-029-%E6%9C%9F/2023-04-19-10-36-53.png" +width="1080" +height="760" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="341px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 027 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/Wed, 12 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/<h1 id="机器文摘-第-027-期">机器文摘 第 027 期</h1> +<h2 id="长文">长文</h2> +<h3 id="搭建本地ai作图应用">搭建本地AI作图应用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-13-51-53.png" +width="695" +height="392" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="425px" +> +AI对话机器人火爆的同时,去年由Stable-Diffusion模型引爆的AI作图技术也没有放慢进化的脚步。</p> +<p>这里面的佼佼者<a class="link" href="https://zh.wikipedia.org/zh-cn/Midjourney" target="_blank" rel="noopener" +>Midjourney</a>已经发展成了强大的图像生成系统。可以轻松定制出照片级图像,其效果足以乱真。</p> +<p>不过目前在国内使用Midjourney还比较麻烦,即便能够访问,使用量也会受限制,能否自己搭建一个呢?</p> +<p>答案是肯定的。</p> +<p>跟去年刚问世的时候不同,现在基于Stable-Diffusion模型的生态也已经十分完备,很多开源软件、框架、插件围绕这个模型开发。</p> +<p>利用这些软件可以快速在本地计算机上构建一套属于自己的图像生成服务。</p> +<p>这里有一篇博客以<a class="link" href="https://www.freedidi.com/8474.html" target="_blank" rel="noopener" +>手把手的方式教你如何在最快速的时间搭建自己的图像生成服务</a>。</p> +<p>里面还列举了一些微调好的定制模型下载地址,合理的使用这些模型,你会发现打开新世界的大门。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-02-07.png" +width="733" +height="799" +loading="lazy" +class="gallery-image" +data-flex-grow="91" +data-flex-basis="220px" +></p> +<h3 id="搭建本地chatgpt应用">搭建本地chatGPT应用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-08-25.png" +width="779" +height="342" +loading="lazy" +class="gallery-image" +data-flex-grow="227" +data-flex-basis="546px" +> +本来不想再提chatGPT了,因为最近说的有些太多了。</p> +<p>但是无奈当前的开源生态对于语言模型是在是太追捧了,技术发展迅雷不及掩耳。</p> +<p>很快就出现了一批可以自己搭建的AI对话模型。</p> +<p>今天我挑两个我认为效果比较好的(且对中文支持比较好的)介绍一下。</p> +<p>注意,跟目前流行的基于OpenAI的接口进行套壳的程序不同。我说的是完全在本地搭建自己的服务。</p> +<p>第一个:<a class="link" href="https://chatglm.cn/blog" target="_blank" rel="noopener" +>ChatGLM-6B</a>,一个具有62亿参数的中英双语语言模型。通过使用与 ChatGLM(chatglm.cn)相同的技术,ChatGLM-6B 初具中文问答和对话功能,并支持在单张 2080Ti 上进行推理使用。</p> +<p>搭建过程比较简单,按照<a class="link" href="https://github.com/THUDM/ChatGLM-6B/blob/main/README.md" target="_blank" rel="noopener" +>README</a>文档中的步骤下载模型、执行脚本程序即可。</p> +<p>第二个:<a class="link" href="https://github.com/ymcui/Chinese-LLaMA-Alpaca" target="_blank" rel="noopener" +>中文 LLaMA &amp; Alpaca 大模型</a>,开源了中文LLaMA模型和经过指令精调的Alpaca大模型。这些模型在原版LLaMA的基础上扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。同时,在中文LLaMA的基础上,本项目使用了中文指令数据进行指令精调,显著提升了模型对指令的理解和执行能力。</p> +<p>搭建过程略微繁琐一些,需要通过自己的手段下载到开源的LLaMA原始模型(当然这对于技术人员来说不是问题)。</p> +<p>然后按照文档中的教程,执行模型合并、量化等脚本,最终通过开源程序LLaMA.cpp实现模型的本地运行。</p> +<h3 id="合作运行千亿参数级语言模型">合作运行千亿参数级语言模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-22-47.png" +width="492" +height="214" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +按照众人划桨开大船的思路,之前在带宽不足的年代诞生了BT下载。</p> +<p>如今,当我们的本地显卡无法应付超大AI模型时,有人开始用同样的思路解决问题。</p> +<p><a class="link" href="https://petals.ml/" target="_blank" rel="noopener" +>Petals</a>就是这么一个分布式模型微调、运行的框架,可以让你轻松在家运行超过千亿参数的大模型(当然是在线跟大家一起协作)。</p> +<p>其原理是大家分别加载模型的一小部分,然后与其他人一起通过协同的方式进行推理或者微调。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-27-18.png" +width="1742" +height="680" +loading="lazy" +class="gallery-image" +data-flex-grow="256" +data-flex-basis="614px" +></p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://learningprompt.wiki/" target="_blank" rel="noopener" +>Prompt Engineering 教程</a>,一份教你如何更好使好地使用 ChatGPT 和其他 AI 产品的免费教程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-43-13.png" +width="970" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="208" +data-flex-basis="499px" +></li> +<li><a class="link" href="https://prompthero.com/" target="_blank" rel="noopener" +>Prompthero</a>,跟聊天机器人、绘图机器人交流的prompt大全,与上面的教程不同,这是一个模板库大全,有创作灵感但是不知道该如何描述的时候可以去参考一下。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-027-%E6%9C%9F/2023-04-04-14-45-46.png" +width="759" +height="381" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="478px" +></li> +<li><a class="link" href="https://civitai.com/" target="_blank" rel="noopener" +>Civitai</a>,与上面相同,不过专门用于图像生成,而且路子比较野,有大量的NSFW内容,要搭配Stable-Diffusion的各种微调模型使用。具体使用方法,可参考前文中介绍如何搭建本地图像生成服务的部分。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 028 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/Wed, 12 Apr 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/<h1 id="机器文摘-第-028-期">机器文摘 第 028 期</h1> +<h2 id="长文">长文</h2> +<h3 id="极简代码理解-gpt-模型结构">极简代码理解 GPT 模型结构</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-37-14.png" +width="679" +height="607" +loading="lazy" +class="gallery-image" +data-flex-grow="111" +data-flex-basis="268px" +> +在<a class="link" href="https://twitter.com/karpathy/status/1645115622517542913" target="_blank" rel="noopener" +>twitter上有网友发布了一个简单的示例代码</a>,讲解了 GPT 语言模型的运行原理,为了方便大家理解,作者用了极简的模型设置,即语言文字只保留了1和0两个字符,上下文长度也仅为3,可以很直观地感受到训练过程是如何起作用的。</p> +<p>作者<a class="link" href="https://colab.research.google.com/drive/1SiF0KZJp75rUeetKOWqpsA8clmHP6jMg?usp=sharing" target="_blank" rel="noopener" +>提供了托管在colab的python源码</a>,可以在线体验。</p> +<h3 id="用开源语言模型训练自己的数字化身">用开源语言模型训练自己的数字化身</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-38-57.png" +width="623" +height="364" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="410px" +> +随着开源语言模型的训练和微调变得越来越简单,果然有人开始整活。</p> +<p>已经有网友<a class="link" href="https://greatdk.com/1908.html" target="_blank" rel="noopener" +>通过自己的微信聊天记录和博客文章训练出有自己风格的AI</a>。</p> +<p>作者使用目前对中文支持最好的开源模型 chatglm-6b 作为预训练模型(我上期介绍过它的部署和使用)。</p> +<p>经过一番折腾后终于训练出还算凑合的模型。</p> +<p>我们的世界离<a class="link" href="https://movie.douban.com/subject/11502153/episode/1/" target="_blank" rel="noopener" +>《黑镜》中的黑暗故事</a>越来越近了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-49-17.png" +width="1024" +height="576" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<h3 id="四十年工作经验程序员的职业建议">四十年工作经验程序员的职业建议</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-09-50-49.png" +width="700" +height="420" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +> +国外有位“老程序员”退休了,是真正的到了退休年龄的退休。</p> +<p>他从1981年入行,直到去年退休。这期间他做过各种开发,跳过槽也被辞退过,打过工也创过业。</p> +<p>这不容易。</p> +<p>所以,他决定<a class="link" href="https://thecodist.com/how-i-stayed-relevant-over-four-decades/" target="_blank" rel="noopener" +>以“一个退休程序员”的身份分享一些心得</a>。</p> +<p>摘抄部分要点如下:</p> +<blockquote> +<p>保持开阔的眼界:每天花时间获取真正的资讯,看到趋势,在事物流行起来之前发现他们。 +保持学习:不要拒绝和敌视新技术,要为你所用。 +要有自己的项目(做一些真正的事情):作为程序员不要浪费聪明才智和外部资源,要学着开始一个自己的项目。</p> +</blockquote> +<h3 id="进入心流的入口">进入心流的入口</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-08-18.png" +width="660" +height="379" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="417px" +> +进入心流(Flow)状态是一种很忘我的体验,也是知识工作者高效产出的必要条件。</p> +<p>有不少创作者都体会过那种全身心的投入并且忘记了时间的感觉。</p> +<p>一旦进入那种状态,很多问题能够很快得到解决,大脑飞速运转并且不会感觉到劳累。</p> +<p>这种状态最忌讳被打断,因为一旦打断,再进入就会比较困难。</p> +<p>这里有篇文章介绍了一些小技巧,可以让你在不得已中断心流之后,能够比较快速地恢复状态。</p> +<p>作者将这些技巧比喻为高速服务区进入主路之前的加速匝道,姑且称为<a class="link" href="https://census.dev/blog/an-on-ramp-to-flow" target="_blank" rel="noopener" +>进入心流的入口</a>。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://spline.design/" target="_blank" rel="noopener" +>Spline</a>,一个免费易用的 3D 设计工具,可实时协作,提供了丰富的物料库,可以基于它来快速创建有趣的 3D 场景,支持处理细腻动画交互,此外还可以导入本地模型和声音素材,支持到处多种输出格式包括WebGL、视频、链接等,很适合新手。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-19-26.png" +width="986" +height="536" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="441px" +></li> +<li><a class="link" href="https://codepen.io/ksenia-k/pen/poOMpzx" target="_blank" rel="noopener" +>Draw With Flowers!</a>,在threejs里用着色器语言编写的一个特效demo,可以随着鼠标移动绘制绚丽的花朵。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-19-52.png" +width="828" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/numbbbbb/read-react-source-code" target="_blank" rel="noopener" +>React 源码阅读</a>,一本开源电子书,通过阅读React的源码来详细理解前端框架的原理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-20-26.png" +width="591" +height="369" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="384px" +></li> +<li><a class="link" href="https://codeium.com/download" target="_blank" rel="noopener" +>Codeium</a>,Github copilot 的免费平替,提供vscode、vim、neovim等常见编辑器的插件,我试了一下,效果可以接受。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-028-%E6%9C%9F/2023-04-12-10-21-52.png" +width="1024" +height="586" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="419px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 026 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/Wed, 29 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/<h1 id="机器文摘-第-026-期">机器文摘 第 026 期</h1> +<h2 id="长文">长文</h2> +<h3 id="通用人工智能要来了吗">通用人工智能要来了吗</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-09-37-08.png" +width="854" +height="476" +loading="lazy" +class="gallery-image" +data-flex-grow="179" +data-flex-basis="430px" +> +AGI(通用人工智能),即用一个模型解决全部问题,而不是特定领域的问题(如语音识别、图像分类等)。</p> +<p>我在几年前读过一本叫做《人工智能,人类最后的发明》的书。</p> +<p>书里说AGI就是人类最后一个发明,因为有了它,别的一切都不需要了。</p> +<p>当时感觉距离通用的人工智能还很遥远,觉得作者有些危言耸听。</p> +<p>直到今年,chatGPT和GPT-4的发布,我才发觉AI的势头确实有些猛得出乎意料。</p> +<p><a class="link" href="https://orangeblog.notion.site/GPT-4-8fc50010291d47efb92cbbd668c8c893" target="_blank" rel="noopener" +>《 GPT-4 ,人类迈向AGI的第一步》</a>是一篇<a class="link" href="https://arxiv.org/pdf/2303.12712v1.pdf" target="_blank" rel="noopener" +>近期论文</a>的翻译,该论文由微软研究院发布,论证了当前的 GPT-4 模型已经初步具有 AGI 的苗头。</p> +<p>论文内容十分详实,看完很震撼。</p> +<p>摘录部分文字如下:</p> +<blockquote> +<blockquote> +<p><strong>对话</strong> +&gt; 马克:我不喜欢你昨天晚上对待杰克的方式 +&gt; 朱迪:你看到他在做什么了吗?他打了他哥哥的头! +&gt; 马克:这并不能成为你对他大喊大叫的理由 +&gt; 朱迪:你想让我怎么做?让他打他的弟弟,然后什么都不说? +&gt; 马克:不,我不同意 +&gt; 朱迪:那你为什么要为他辩护? +<strong>提问:马克的意图似乎是什么?</strong> +GPT4: 马克的意图似乎是要表达他对朱迪处理与杰克关系的方式的不满,并建议她可以更加冷静和尊重。 +ChatGPT:根据谈话内容,马克的意图似乎是为杰克的行为辩护,并表达他对朱迪对待杰克的不满。 +<strong>提问:朱迪如何看待汤姆的回应?</strong> +GPT4: 朱迪认为他的评论是对她的分析能力的攻击,也是对杰克的不当行为表示同情的表现。她的反应是防御性的和愤怒的,并质疑马克的动机。 +ChatGPT:如果没有更多的文字,我不可能准确判断朱迪是如何接受马克的评论的。然而,根据朱迪的回应,她似乎并不同意马克的观点,而且可能对他为杰克的行为辩护感到沮丧。</p> +</blockquote> +</blockquote> +<h3 id="用-gpt-4-帮你编写一个游戏">用 GPT-4 帮你编写一个游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-02-56.png" +width="717" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="510px" +> +我第一次见识到 ChaptGPT 的编程能力之后,就基本离不开这个工具了。</p> +<p>现在我几乎每天都在它的辅助下编写代码。</p> +<p>不过,这里有个老哥更过分。</p> +<p>他让 <a class="link" href="https://twitter-thread.com/t/1637592014446551040" target="_blank" rel="noopener" +>GPT-4 模型帮他做出了一个3D太空赛跑游戏</a>。</p> +<p>作者本身没有游戏编程经验也不懂Javascript,但是通过跟模型一点一点对话,反复将调试代码生成的错误信息反馈给模型,逐渐完成了一个完成度还挺高的游戏。</p> +<h3 id="搭建基于私域数据的chatgpt">搭建基于私域数据的ChatGPT</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-12-24.png" +width="776" +height="438" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="425px" +> +ChatGPT 超强的对话能力怎样应用到私有数据上?</p> +<p>比如说我希望做出一个基于 ChatGPT 模型的专属客服,要吃透我的产品信息。</p> +<p>官方提供的训练API和微调(fine tuning)指导相对复杂一些,对于AI模型的微调不熟悉的人员还不够友好。</p> +<p>这里有一篇“零基础”教程<a class="link" href="https://mp.weixin.qq.com/s/naiVMuXHAScRb_jSEJN3zg" target="_blank" rel="noopener" +>《搭建基于私域数据的ChatGPT》</a>,可以带你走一下流程,感受一下定制专属模型的步骤。</p> +<h3 id="ai令人焦虑">AI令人焦虑</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-21-37.png" +width="609" +height="859" +loading="lazy" +class="gallery-image" +data-flex-grow="70" +data-flex-basis="170px" +> +这篇<a class="link" href="https://mp.weixin.qq.com/s/7H1FrwbQvsh0HD9z90L0wg" target="_blank" rel="noopener" +>《AI狂飙的时代,人还有价值吗?》</a>是一期语音播客的文字转译,因为内容比较精彩,所以也收录在这里了。</p> +<blockquote> +<p>我觉得取代不是一个好的词儿,因为取代是一个非常容易反驳的词儿。我可以说我仍然会干什么什么,AI干不了,所以它取代不了我。 +但正是这种字面上的抬杠,使得问题的本质被掩盖了,因为AI在人的生活中的渗透是一个逐渐的过程。 +百分之百地取代你可能仍然不会发生,可是它也不需要百分之百的取代掉你,只要50%的取代掉你的某些工作职能,AI就会对就业市场形成非常大的冲击。 +我有一个纽约的律师朋友,他是很早就开始用这个东西。 +他本身不是一个技术人员,他是一个标准的文科生,平常的用一个新软件都要紧张半天的那种人。 +但是他开始用这个之后,因为律师的工作是很大程度上是依赖于文本的,而文本是GPT的长项,所以他就开始用。 +之后,我就问他说,所以你真的开始辞退你的员工了吗?因为他自己是一个律所合伙人。 +他说我还没有真正开始辞退任何人,但是我确实打算今年暑假不用再招实习生了,因为给我省下的活完全可以让我腾出手来做一些事,以至于我可以省下招一个实习生的AD account。 +这就是一个真实的影响对不对? +它没有真正取代什么东西,但是它仍然冲击了一个真实的就业市场上的职位。</p> +<p>我觉得AI对我们社会的影响会以这种方式出现,它不会马上一下子让你这个人变得没有意义,但是它可以让三个人的活,两个人现在能干完,多出来那个人就没有存在的必要了,所以老板就可以把他开掉。 +它并不是百分之百取代的人的方式来逐渐进行的,而且这个事情是非常真实的。这也是为什么我觉得很多人对冲击仍然没有做好心理上和事实上的准备。 +其实有点令人忧虑的原因就是,如果你今天还用一种这东西,都是媒体的炒作来对待这个问题,你就很可能会在真正的影响你切身生活的冲击到来之前,没有做好对自己来说比较有用的帮助。</p> +</blockquote> +<p>读完这篇文章,我的感受是,没必要焦虑,不是AI没有威胁,而是焦虑也没用,蒸汽机车发明之后,超越马车就只剩下时间问题了。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://greasyfork.org/zh-CN/scripts/445751-unlimited-downloader" target="_blank" rel="noopener" +>无限制下载器,只要能播放就能下载</a>,能够帮助下载视频网站内容的浏览器插件很多,大部分都是通过嗅探播放地址来实现的下载,网站也会采用各种加密手段来进行阻止。但是这个油猴脚本采用了另一种思路。你网站防再死不能不让观众看吧?脚本几乎采用了类似录屏的手段来进行视频下载。对于一些实在想要下载的内容,可以考虑试试这个插件。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-34-53.png" +width="640" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="384px" +></li> +<li><a class="link" href="https://github.com/cocktailpeanut/dalai" target="_blank" rel="noopener" +>帮你本地运行 LLaMA 模型</a>,只需一行命令就可以让你在本地运行 <a class="link" href="https://github.com/ggerganov/llama.cpp" target="_blank" rel="noopener" +>LLaMA</a> 模型,轻松感受在本地单机上运行大规模语言模型的魅力。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-40-09.png" +width="1920" +height="1080" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></li> +<li><a class="link" href="https://github.com/lxe/simple-llama-finetuner" target="_blank" rel="noopener" +>微调 LLaMa 模型的工具</a>,既然都能在本地运行了,那就再给力一些,这个工具可以让你很方便地使用自己的数据训练 LLaMA 模型。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-42-04.png" +width="1013" +height="898" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></li> +<li><a class="link" href="https://github.com/Haxxnet/Compose-Examples" target="_blank" rel="noopener" +>Docker Compose 容器组合最佳实践</a>,Docker有多好用不用再说了吧,这里有一堆使用Docker Compose编排容器的模板,收录了很多十分有用的容器镜像组合,可方便快速的搭建各种业务(如:单点登录、VPN、媒体管理、文件共享、博客、维基、社交网站、项目管理等)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-026-%E6%9C%9F/2023-03-29-10-46-53.png" +width="802" +height="445" +loading="lazy" +class="gallery-image" +data-flex-grow="180" +data-flex-basis="432px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 025 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/Wed, 22 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/<h1 id="机器文摘-第-025-期">机器文摘 第 025 期</h1> +<h2 id="长文">长文</h2> +<h3 id="252个字节实现播放音乐和动画">252个字节实现播放音乐和动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-25-42.png" +width="915" +height="478" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +> +这里有个网页介绍了一个demo作者使用一段JavaScript代码实现了一个<a class="link" href="http://www.p01.org/256b_tetris_theme/" target="_blank" rel="noopener" +>一边播放俄罗斯方块背景音乐一边播放字符动画的网页</a>,原理是利用HTML5的AudioContext对象进行声音合成,通过定时器触发基于当前时间t值的不同频率,实现音乐播放。具体代码如下:</p> +<div class="highlight"><div class="chroma"> +<table class="lntable"><tr><td class="lntd"> +<pre tabindex="0" class="chroma"><code><span class="lnt">1 +</span></code></pre></td> +<td class="lntd"> +<pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="cl"><span class="o">&lt;</span><span class="nx">body</span> <span class="nx">onclick</span><span class="o">=</span><span class="s2">&#34;with(new AudioContext)with(o=createOscillator())connect(destination),start(setInterval(v=&gt;innerHTML=&#39;TETЯIS&amp;#&#39;+(9624|(o.frequency.value=`RR&gt;AIIA&gt;777${d=&#39;ARRIA&gt;&gt;&gt;AIIRRAA7777&#39;}IIIWnnbWRRR${d}`.charCodeAt(++t%58)*4)%7)+&#39;P01&#39;,t=232))&#34;</span><span class="o">&gt;</span><span class="nx">click</span> +</span></span></code></pre></td></tr></table> +</div> +</div><h3 id="诺基亚发布的可维修手机">诺基亚发布的“可维修”手机</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-35-52.png" +width="614" +height="369" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="399px" +> +说到诺基亚,用过的朋友第一个映入脑海的词就是“砸核桃”。</p> +<p>那是iPhone还没发布的非智能手机年代。</p> +<p>手机可更换电池和外壳在那时是一个标准设计,谁要是不支持这些都不好意思跟人打招呼。</p> +<p>那时我经常把我的诺基亚掉在地上摔得七零八落,然后淡定地捡起来像电影里特工拼装自己的手枪那样,一个个把零件组装起来,形成“一把”手机。</p> +<p>或者等手机快要没电的时候,像换弹匣那样给手机换一块电池,立马满血复活。</p> +<p>这样的日子自从iPhone发布之后就再也没有了。</p> +<p><a class="link" href="https://www.theguardian.com/technology/2023/feb/25/nokia-launches-diy-repairable-budget-android-phone" target="_blank" rel="noopener" +>诺基亚近期发布了一款手机</a>,再次让我想起我那掉地上摔开几瓣的手机。这款手机号称具有良好的“可维修”性,普通用户也可一个人在家轻松拆卸。可以自行更换包括电池、屏幕、充电端口等零件。</p> +<h3 id="不要重复自己是编程的好原则吗">不要重复自己是编程的好原则吗</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-50-45.png" +width="650" +height="346" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +> +不要重复自己,永远不要从头开始重写代码!</p> +<p>这是很多程序员收到的忠告。</p> +<p>然而它是绝对正确的吗?</p> +<p>这里有篇文章<a class="link" href="https://programmingisterrible.com/post/176657481103/repeat-yourself-do-more-than-one-thing-and" target="_blank" rel="noopener" +>《重复自己,重写一切》</a>,作者在文章中探讨了编程中的一些习惯,他认为这些习惯可以使代码变得更难理解、更难维护,并可能导致代码的冗长和不必要的复杂性。文章提到了重写代码可以给程序带来更好的抽象和可维护性,所以建议定期通过重新写代码的方式重构你的程序。</p> +<p>说实话,我不知道作者是怎样看待所谓“屎山”代码的,也许当他面对有些代码时,他的观点也会变为:“能跑的代码,就尽量别动它了”。</p> +<h3 id="慢下来">慢下来</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-10-59-28.png" +width="587" +height="205" +loading="lazy" +class="gallery-image" +data-flex-grow="286" +data-flex-basis="687px" +> +这篇文章的题目是<a class="link" href="https://sive.rs/slow" target="_blank" rel="noopener" +>“慢下来”</a>,作者是Derek Sivers,一位创业者、作家和音乐家。在这篇文章中,他分享了自己对于“慢下来”这个主题的一些思考和感悟。</p> +<p>虽然是个急性子,但是我很认同文章里的观点。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.macpierce.com/the-camera-shy-hoodie" target="_blank" rel="noopener" +>反跟踪识别的套件</a>,如果你觉得被公共场所的摄像头拍摄和记录或者识别侵犯了你的隐私,这里有一套开源的穿戴套件可以考虑。它通过在身上穿戴可以发射红外线的LED设备,使得摄像头画面过曝。以获得保护隐私的效果。不过仅用于研究,不知道是否符合有些国家的法律法规。网站提供了配件清单和详细的装配说明(pdf)供下载。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-05-16.png" +width="1203" +height="583" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="495px" +></li> +<li><a class="link" href="https://whatdoesthiscodedo.com/" target="_blank" rel="noopener" +>AI帮你解释一段代码</a>,有人使用openai的开发接口提供了一个专门帮人们解释代码执行的工具,输入代码,输出解释。并提供vscode的插件。我把文章开头那段播放音乐的Javascript代码发给他让他解释,效果如下图: +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-09-51.png" +width="625" +height="740" +loading="lazy" +class="gallery-image" +data-flex-grow="84" +data-flex-basis="202px" +></li> +<li><a class="link" href="https://xenova.github.io/transformers.js/" target="_blank" rel="noopener" +>在网页中运行GPT模型</a>,一个可以在浏览器中执行Transformer模型的开源程序,可以执行轻量的模型,实现如翻译、语音转文字、图像转文字等任务。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-12-45.png" +width="1239" +height="519" +loading="lazy" +class="gallery-image" +data-flex-grow="238" +data-flex-basis="572px" +></li> +<li><a class="link" href="https://aitxt.io" target="_blank" rel="noopener" +>AI生成工具箱</a>,近期,基于chatGPT模型的应用大爆发,这里有一个整理好的工具箱,可以使用ai做很多内容生成工作,包括帮你编写周报、润色文字、写道歉信、写外卖好评等,效果还不错。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-025-%E6%9C%9F/2023-03-22-11-15-00.png" +width="1033" +height="530" +loading="lazy" +class="gallery-image" +data-flex-grow="194" +data-flex-basis="467px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 024 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/Wed, 15 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/<h1 id="机器文摘-第-024-期">机器文摘 第 024 期</h1> +<h2 id="长文">长文</h2> +<h3 id="电池充一次可以用两年的笔记本电脑">电池充一次可以用两年的“笔记本”电脑</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-18-01.png" +width="830" +height="467" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +挪威软件开发商安德烈亚斯·埃里克森(Andreas Eriksen)组装了一款笔记本电脑(或者说便携膝上型电脑?)。</p> +<p>它拥有“以年为单位的电池寿命”,并且使用用Lisp编程系统界面,产品名为:<a class="link" href="https://www.hackster.io/news/andreas-eriksen-s-potatop-is-a-lisp-powered-laptop-with-a-battery-life-measured-in-years-2f5d79653f24" target="_blank" rel="noopener" +>PotatoP</a>。</p> +<p>CPU好像是个ARM架构的低功耗单核处理器,最高频率96MHz。</p> +<p>支持蓝牙5.0。</p> +<p>运行的系统为PotatOS,一个基于<a class="link" href="http://www.ulisp.com/" target="_blank" rel="noopener" +>uLisp</a>(一个专门为微控制器设计的Lisp)移植的专用系统。</p> +<p>使用的4.4英寸显示屏采用介于LCD和墨水屏之间的技术,省电。</p> +<p>再加上机身上还带有太阳能电池,据说如果环境光充足的话,可以连续运行两年。</p> +<h3 id="详解-amd-为-steam-deck-开发的-apu">详解 AMD 为 Steam Deck 开发的 APU</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-32-20.png" +width="671" +height="272" +loading="lazy" +class="gallery-image" +data-flex-grow="246" +data-flex-basis="592px" +> +Steam Deck 无疑是一款革命性的掌机。</p> +<p>如果不是价格在国内被炒的离谱,我定会入手一台,也许再观望一下等待第二代或者三代产品更好。</p> +<p>这款掌机使得在便携设备上游玩3A大作不再是幻想。</p> +<p>取得这样的表现,除了得益于V厂魔改的Linux系统之外,还离不开这块由AMD定制的、代号“梵高”的 APU。</p> +<p>这篇<a class="link" href="https://chipsandcheese.com/2023/03/05/van-gogh-amds-steam-deck-apu/" target="_blank" rel="noopener" +>《“梵高”AMD的Steam Deck APU》</a>详细介绍了这块APU的各种技术细节,解释了为什么Steam Deck可以做到低功耗的同时还拥有相当给力的图形性能。</p> +<h3 id="用磁盘阵列raid确保数据安全靠谱吗">用磁盘阵列(RAID)确保数据安全靠谱吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-09-45-46.png" +width="477" +height="250" +loading="lazy" +class="gallery-image" +data-flex-grow="190" +data-flex-basis="457px" +> +再谈谈 NAS 的事情(中年技术男的三大爱好之一)。</p> +<p>像我这样的人,对于 RAID 磁盘阵列总是抱有美好的幻想。我们认为,只要将数据存放在经过合理规划的磁盘阵列中(例如 RAID 5),我们就可以高枕无忧,确保数据永远不会丢失。然而,实际上,磁盘阵列并不是备份数据的最佳选择,最佳的数据安全策略是异地多份存储。</p> +<p>尽管 RAID 5 宣称随便损坏一块硬盘也不要紧,只需更换一块正常盘即可,但这种理想状态可能不太容易实现,中间随时可能会出现其他状况导致数据永久丢失。</p> +<p>一篇名为<a class="link" href="https://www.ucmadscientist.com/almost-lost-it-all-again/" target="_blank" rel="noopener" +>《差点儿就又全没了》</a>的博文,讲述了作者在使用 NAS 磁盘阵列时经历了一次惊险刺激的数据拯救过程。希望这篇文章能够给计划使用类似方式保存数据的朋友们一个平常心态。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://pubby.games/nesfab.html" target="_blank" rel="noopener" +>NESFab</a>,一个专为开发任天堂8位游戏机(NES、FC)设计的编程语言。具有高性能、易于装载资源、自动内存地址切换等特性,作者还在主页提供了一个使用NESFab开发游戏的教程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-10-50.png" +width="490" +height="169" +loading="lazy" +class="gallery-image" +data-flex-grow="289" +data-flex-basis="695px" +></li> +<li><a class="link" href="https://github.com/AstroNvim/AstroNvim" target="_blank" rel="noopener" +>AstroNvim</a>,一套即开即用的Nvim配置文件,主打界面美观,集成了文件浏览、代码补全、语法高亮、模糊查询、可视化调试等常用插件配置。对于新手和懒得折腾的人来说,可以尝试。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-13-25.png" +width="814" +height="434" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></li> +<li><a class="link" href="https://github.com/pynecone-io/pynecone" target="_blank" rel="noopener" +>pynecone</a>,一个用python开发的web应用框架,特点是使用python语言完成所有任务,包括前端和后端,可以帮助那些对于前端开发不太擅长的人更方便地制作web应用程序。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-16-17.png" +width="727" +height="647" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="269px" +></li> +<li><a class="link" href="https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming" target="_blank" rel="noopener" +>函数式编程入门</a>,一篇介绍函数式编程的文章,介绍了函数式编程的基本概念和一些重要的函数式编程概念,并使用Javascript演示了如何使用这些概念进行函数式编程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-024-%E6%9C%9F/2023-03-15-10-18-09.png" +width="450" +height="220" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="490px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 023 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/Wed, 08 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/<h1 id="机器文摘-第-023-期">机器文摘 第 023 期</h1> +<h2 id="长文">长文</h2> +<h3 id="视频信号可以被窃听吗">视频信号可以被窃听吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-10-45.png" +width="533" +height="234" +loading="lazy" +class="gallery-image" +data-flex-grow="227" +data-flex-basis="546px" +> +我之前听到过一个传说。</p> +<p>使用高灵敏度的天线,再加上一些奇妙的设备。</p> +<p>可以窃听(窃视?)到附近(方圆数百米)范围之内的显示器显示的内容。</p> +<p>这个传说流传的时候,还是CRT显示器的时代,当时的视频接口主要是VGA,采用模拟信号进行传输。</p> +<p>如果显示器或者视频线缆所作的屏蔽不够充分的话,难免会有信号泄露。</p> +<p>而VGA信号又没有任何加密,被别有用心的人收看是有一定的可能的。</p> +<p>时间发展到今天,视频接口早已升级,我以为除非不小心无线投屏到了邻居家,否则就不会有视频内容泄露的情况。</p> +<p>然而,<a class="link" href="https://www.windytan.com/2023/02/using-hdmi-radio-interference-for-high.html" target="_blank" rel="noopener" +>今天要说的这篇文章</a>则证实了上述传说的可能。</p> +<p>不过,比起传说中的窃听,作者走的更远一些。</p> +<p>起因是作者在家里摆弄无线电的时候,发现了一个信号干扰源,最后发现来自他的一个树莓派设备。</p> +<p>于是经过一番操作,作者不但成功通过无线接收的方式将视频信号显示了出来。</p> +<p>还利用这种无线信号的干扰(或泄露?)实现了叠加数据的传输。</p> +<h3 id="怎样用密码保护一个静态页面">怎样用密码保护一个静态页面?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-34-20.png" +width="903" +height="429" +loading="lazy" +class="gallery-image" +data-flex-grow="210" +data-flex-basis="505px" +> +说到网站上的数据权限保护,一般我们会需要后端程序配合。</p> +<p>比如使用账号系统,给用户角色分配不同的权限,使其访问后端接口时获取不同的数据。</p> +<p>如果没有后台程序,只有静态页面会怎样?</p> +<p>这儿有个开源工具,<a class="link" href="https://robinmoisson.github.io/staticrypt/" target="_blank" rel="noopener" +>可以帮你生成带有密码保护的静态HTML页面</a>。</p> +<p>具体使用方法和原理也很简单。</p> +<p>输入你想设置的密码和你的HTML页面原始代码,这个工具可以使用AES-256加密算法对其进行加密。</p> +<p>然后在浏览器加载时,页面自动使用一个js库实现自解密。</p> +<p>这个方法用于临时保护一些静态的内容还是挺有效的,而且很方便。</p> +<h3 id="写代码越干净越好吗">写代码越“干净”越好吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-43-47.png" +width="713" +height="344" +loading="lazy" +class="gallery-image" +data-flex-grow="207" +data-flex-basis="497px" +> +有不少人宣称自己有代码“洁癖”。</p> +<p>对于设计模式和面向对象有着非常深的执念(或者函数式编程也是)。</p> +<p>市面上也充斥着很多“之美”、“之道”、“之禅”之类的书籍,强调代码要给人读、整洁干净。</p> +<p>我并不反对上述观点,甚至自己也有一点这样的“洁癖”,只是有时内心会有一丝怀疑的时候,觉得如果过于追求某些东西可能会偏离了解决问题的根本目标。</p> +<p>这篇<a class="link" href="https://www.computerenhance.com/p/clean-code-horrible-performance" target="_blank" rel="noopener" +>《“干净”的代码,糟糕的性能》</a>,帮我吐槽了一些事情。</p> +<p>但作者在文中所举的例子稍微有些牵强,不必过于纠结。</p> +<h3 id="不知道怎么练习编程怎么办">不知道怎么练习编程怎么办</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-10-58-53.png" +width="469" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="358px" +> +经常有人困惑在学习了一门新的编程语言之后,不知该做些什么。</p> +<p>就像是掌握了词语却写不出好的小说,掌握了规则也下不好象棋。</p> +<p>我们从小受到的教育方式导致了,在学习技能这一块,缺失实践的动力和方法。</p> +<p>这篇<a class="link" href="https://prog21.dadgum.com/80.html" target="_blank" rel="noopener" +>给无目标的新手程序的一些建议</a>,虽然内容不多,但是可以看出作者也是个老油条了。</p> +<p>给出的一些提示都很实在,对于技能练习方面,提的都是我希望我能遵从的。</p> +<p>比如:</p> +<blockquote> +<p>用技能解决你实际生活中的问题。 +做一些你真正会用到的东西。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://www.freecodecamp.org/chinese/news/typescript-for-react-developers/" target="_blank" rel="noopener" +>写给 React 开发者的 TypeScript 指南</a>,针对React程序员的TypeScript的学习资料,解答了我一部分为什么要用TS的问题。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-01-19.png" +width="698" +height="375" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="446px" +></li> +<li><a class="link" href="https://method.ac/" target="_blank" rel="noopener" +>Method of Action</a>,一些免费的工具和在线小游戏(颜色搭配、贝塞尔曲线等),可以帮助你学习和掌握设计理念和工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-02-12.png" +width="605" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="131" +data-flex-basis="314px" +></li> +<li><a class="link" href="https://archivebox.io/" target="_blank" rel="noopener" +>Archivebox</a>,一套开源的互联网内容保存方案,可以将你喜欢的页面下载下来,并自动爬取相关链接、图片等内容,类似于互联网档案馆的https://archive.org,不过可以自己搭建。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-06-33.png" +width="686" +height="285" +loading="lazy" +class="gallery-image" +data-flex-grow="240" +data-flex-basis="577px" +></li> +<li><a class="link" href="https://ohiostate.pressbooks.pub/graphicshistory/front-matter/cover/" target="_blank" rel="noopener" +>History of Computer Graphics and Animation</a>,一本讲解计算机图形和动画发展历程的电子书,里面记录了计算机图形学相关的许多参考资料,曾用于俄亥俄州立大学的授课。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-023-%E6%9C%9F/2023-03-08-11-08-29.png" +width="676" +height="711" +loading="lazy" +class="gallery-image" +data-flex-grow="95" +data-flex-basis="228px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 022 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/Wed, 01 Mar 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/<h1 id="机器文摘-第-022-期">机器文摘 第 022 期</h1> +<h2 id="长文">长文</h2> +<h3 id="自制家庭服务器">自制家庭服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-10-51-39.png" +width="668" +height="367" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="436px" +> +人们常说,中年技术男的最终归宿除了钓鱼和盘核桃之外,还有一项就是折腾家里的服务器,这些服务器形态各异,但是作用都是殊途同归:NAS、软路由、虚拟化、Docker容器。</p> +<p>怎样变着花样搭建家庭服务器几乎是 V 站的月经甚至日经话题。</p> +<p>这里有个国外的老哥,决定使用 ARM64 架构自己“装配”一个,是那种需要焊接的“装配”。</p> +<p>有兴趣的可以翻阅一下这篇<a class="link" href="https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html" target="_blank" rel="noopener" +>《构建 ARM64 家庭服务器》</a>。</p> +<p>文章介绍了如何用一种较为困难的方式构建一个 ARM64 架构的家用服务器。</p> +<p>作者使用了一块名为 ROCKPro64 的开发板,并详细介绍了构建过程中遇到的问题以及如何解决这些问题。</p> +<p>文章中包含了安装基础操作系统、配置网络连接、设置磁盘阵列和安装各种软件的详细步骤和指导,涵盖了从硬件到软件的多个方面。</p> +<p>在构建过程中,作者提到了一些常见的问题和解决方法,例如如何处理不同操作系统的差异,如何在开发板上设置固件,以及如何解决硬件不兼容问题。</p> +<p>总之,这篇文章是一份详细的指南,可以帮助有兴趣构建自己的家用服务器的读者了解基础知识,克服可能遇到的问题,并学习如何从头开始构建一个高效、安全的服务器。</p> +<blockquote> +<p>上面这段是让 chatGPT 帮我写的 :)</p> +</blockquote> +<h3 id="用rust写一个大小仅有2k的极简fps游戏">用Rust写一个大小仅有2K的极简FPS游戏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-11-06-53.png" +width="480" +height="258" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="446px" +> +极简渲染器的编写教程网上有很多,但大都浅尝辄止,以静态渲染为主。</p> +<p><a class="link" href="https://grantshandy.github.io/posts/raycasting/" target="_blank" rel="noopener" +>这篇文章</a>则从制作一个第一人称射击游戏的视角出发,讲解了怎样使用光线投射技术实现最基本的三维空间渲染、光照、阴影等效果。</p> +<p>作者使用 Rust 语言基于 wasm 技术编写了一个在网页中运行的示例程序,该程序非常小巧,但是也充分展现了如何使用光线投射算法来实现 3D 渲染技术仲的一些基本概念,比如:墙体贴图、视角控制等。</p> +<p>是我看到的教程里比较系统的一个,适合作为爱好者去研究。</p> +<h3 id="玩具-cpu-模拟器">玩具 CPU 模拟器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-24-45.png" +width="640" +height="480" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="320px" +> +国外一个大学老师觉得他的计算机组成原理课程有些枯燥,于是他<a class="link" href="https://jimhall.itch.io/toy-cpu" target="_blank" rel="noopener" +>动手撸了一个 CPU 模拟器出来</a>,以帮助学生们更好的理解计算机内部运作原理。</p> +<p>作者在文章里介绍了基本的原理,以及模拟器的各个组件,适合学习底层原理初入门的学生。</p> +<p>另外这个模拟器也基于 MIT 协议进行了开源,文章中附有开源仓库的地址和编译好的可执行文件下载连接。</p> +<p>需要注意的是该程序运行环境为DOS,现在要想体验的话,需要先安装 <a class="link" href="https://www.dosbox.com/download.php?main=1" target="_blank" rel="noopener" +>DosBOX</a> 这个模拟器。</p> +<h3 id="不用任何构建系统编写前端代码">不用任何构建系统编写前端代码</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-35-29.png" +width="632" +height="224" +loading="lazy" +class="gallery-image" +data-flex-grow="282" +data-flex-basis="677px" +> +比起十几年前,前端开发工程现在已经变得十分复杂。</p> +<p>有次我想写个简单的页面程序,但是却花费了一上午的时间陷入对框架和构建系统的选择上。</p> +<p>后来不得不放弃,改用记事本随便用原生Javascript完成了功能。</p> +<p><a class="link" href="https://jvns.ca/blog/2023/02/16/writing-javascript-without-a-build-system/" target="_blank" rel="noopener" +>这篇文章</a>的作者跟我有同样的感受。</p> +<p>作者认为,对于一些简单的项目来说,使用构建系统可能是不必要的。</p> +<p>因为构建系统会增加开发和维护的复杂性,而且可能会导致一些性能问题。</p> +<p>文章演示了作者如何使用原生的Javascript和浏览器的开发者工具来实现一些常见的构建系统功能。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/CyC2018/CS-Notes" target="_blank" rel="noopener" +>计算机知识笔记</a>,一个计算机科学知识笔记仓库,包括计算机基础知识、编程语言和算法、开发工具、面试笔试题目等等,是一个非常实用的笔记库。目前在 Github 上有超过 162k 个 star 。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-47-03.png" +width="344" +height="602" +loading="lazy" +class="gallery-image" +data-flex-grow="57" +data-flex-basis="137px" +></li> +<li><a class="link" href="https://www.hugi.scene.org/online/hugi31/hugi%2031%20-%20index%20coding%20corner.htm" target="_blank" rel="noopener" +>Creating Demos</a>,这套教程是 <a class="link" href="https://en.wikipedia.org/wiki/Hugi" target="_blank" rel="noopener" +>Hugi 杂志</a>在2001年第31期发布的一系列编程文章,主题是“Demo程序”的制作,是我目前在网络上见到的比较完整和耐心的一套讲解 Demoscene 如何制作的教程。虽然有些技术是老旧的,但是思想一直是不变的,能够学到很多平时很难了解到的东西,现在很少有人愿意分享这些了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-52-29.png" +width="543" +height="367" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="355px" +></li> +<li><a class="link" href="https://github.com/iawia002/lux" target="_blank" rel="noopener" +>网络视频下载器</a>,一个 go 语言编写的网络音视频资源下载工具,类似 youtube-dl,但是支持的网站要更多一些。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-13-54-53.png" +width="870" +height="666" +loading="lazy" +class="gallery-image" +data-flex-grow="130" +data-flex-basis="313px" +></li> +<li><a class="link" href="https://www.ambient.run/" target="_blank" rel="noopener" +>ambient</a>,Ambient是一个使用 WebAssembly、Rust 和 WebGPU 技术构建的高性能多人游戏和3D应用的开源引擎。特点是针对构建多人游戏开发进行优化支持。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-022-%E6%9C%9F/2023-03-01-14-03-29.png" +width="981" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="622px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 021 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/Wed, 22 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/<h1 id="机器文摘-第-021-期">机器文摘 第 021 期</h1> +<h2 id="长文">长文</h2> +<h3 id="chatgpt-原理通俗讲解">chatGPT 原理通俗讲解</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-14-57-11.png" +width="1240" +height="410" +loading="lazy" +class="gallery-image" +data-flex-grow="302" +data-flex-basis="725px" +> +可能是有人炒作的缘故,chatGPT 热度一直不降,连街边买菜的大妈都在讨论这个“人工智能机器人”。</p> +<p>可能是它输出语言的流畅度实在是太接近真实的人类了,用惯了之前那种“智能助理”的人很容易感到震惊。</p> +<p>然而其背后的原理并非像想象的那么复杂,甚至是大力出奇迹的又一个经典样例。</p> +<p>最近关于它的文章也是铺天盖地,各种分析、叫好,很少有冷静下来探讨其背后机理的。</p> +<p>我翻看了几篇之后,发现唯有这篇<a class="link" href="https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/" target="_blank" rel="noopener" +>《chatGPT在做什么以及它为什么好使》</a> 比较优秀。读起来比较平和,没有压力。</p> +<p>文章揭示了即使像chatGPT这样的大型语言模型也是一个单词一个单词慢慢往出崩的,并尝试说清楚这么流畅的语言是基于什么来预测后续单词的概率。</p> +<h3 id="怎样利用多gpu训练真正的大型模型">怎样利用多GPU训练真正的大型模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-13-37.png" +width="920" +height="461" +loading="lazy" +class="gallery-image" +data-flex-grow="199" +data-flex-basis="478px" +> +前面提到的 chatGPT 模型,体量非常大,据说训练一次就要耗费上千万美元。</p> +<p>作为普通开发者我们是不敢奢望自己上手训练一番。</p> +<p>不过,这里有一篇文章可以让我了解像这样的<a class="link" href="https://lilianweng.github.io/posts/2021-09-25-train-large/" target="_blank" rel="noopener" +>大模型是如何进行并行训练的</a>。</p> +<p>另外还有个开源的项目,号称可以<a class="link" href="https://github.com/hpcaitech/ColossalAI/blob/main/README-zh-Hans.md" target="_blank" rel="noopener" +>在较少资源的基础设施上进行 GPT 模型训练</a>,有兴趣的可以试试。</p> +<h3 id="怎样搭建一个电子爱好者工作间">怎样搭建一个电子爱好者工作间</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-28-10.png" +width="716" +height="439" +loading="lazy" +class="gallery-image" +data-flex-grow="163" +data-flex-basis="391px" +> +拥有一个电子产品工作室一直是我的一个梦想。</p> +<p>电烙铁、稳压电源、万用表,是我能想到的最基本的设备。</p> +<p>如果还想更完美,可以借鉴这篇文章所介绍的思路,<a class="link" href="https://lcamtuf.substack.com/p/setting-up-an-electronics-workshop" target="_blank" rel="noopener" +>搭建一个电子爱好者工作间</a>。</p> +<h3 id="运气计算公式">运气计算公式</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-37-36.png" +width="809" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="141" +data-flex-basis="340px" +> +看到一个关于运气的文章<a class="link" href="https://www.swyx.io/create-luck" target="_blank" rel="noopener" +>《如何获得好运气》</a>,觉得里面提到的“怎样使得随机的运气变得让好运更加倾向于你”的说法比较有意思。</p> +<p>于是就收录一下。</p> +<p>文章里探讨的问题,很容易让我联想到关于“下雨的时候是飞速跑动淋雨多还是慢慢走淋雨多”的问题。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://academy.cs.cmu.edu/" target="_blank" rel="noopener" +>卡耐基梅隆大学计算机科学在线教程</a>,CMU CS Academy 是卡内基梅隆大学计算机科学学院 (SCS) 的一个项目,其目标是开发一种新颖的、世界级的、在线的、完全免费的交互式高中计算机科学课程。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-45-42.png" +width="767" +height="390" +loading="lazy" +class="gallery-image" +data-flex-grow="196" +data-flex-basis="472px" +></li> +<li><a class="link" href="https://www.handsome-css.com/" target="_blank" rel="noopener" +>纯CSS实现的超漂亮UI组件收集</a>,网站收集了超多 UI 组件,基于 纯 CSS 实现,采用 MIT 开源协议发布,可以自由使用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-47-30.png" +width="863" +height="349" +loading="lazy" +class="gallery-image" +data-flex-grow="247" +data-flex-basis="593px" +></li> +<li><a class="link" href="https://cn.sli.dev/" target="_blank" rel="noopener" +>为开发者打造的演示文稿工具</a>,Slidev 旨在为开发者提供灵活性和交互性,通过使用他们已经熟悉的工具和技术,使他们的演示文稿更加有趣、更具表现力和吸引力。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-50-17.png" +width="652" +height="251" +loading="lazy" +class="gallery-image" +data-flex-grow="259" +data-flex-basis="623px" +></li> +<li><a class="link" href="https://www.stableattribution.com/" target="_blank" rel="noopener" +>根据ai做的图倒推出用于训练模型的原始图</a>,这个网站比较有意思,前一段时间比较火的根据文字生成图片的 AI ,这里可以将根据 AI 生成的图片反推出它当时样本训练的原始图。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-021-%E6%9C%9F/2023-02-22-15-56-55.png" +width="1696" +height="398" +loading="lazy" +class="gallery-image" +data-flex-grow="426" +data-flex-basis="1022px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 020 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/Wed, 15 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/<h1 id="机器文摘-第-020-期">机器文摘 第 020 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样获得非凡成就">怎样获得非凡成就</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-09-57-43.png" +width="749" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="469px" +> +多年来,我对成功学嗤之以鼻。</p> +<p>但也对有些人的成功给予应有的尊重。</p> +<p>我所欣赏的成功人士有一种特殊气质,我说不上来具体是什么特点,有点儿像反叛精神,又有点儿对手工技术的狂热。</p> +<p>这些人里对我影响比较大的是《黑客与画家》的作者 保罗·格雷厄姆(<a class="link" href="https://zh.wikipedia.org/zh-hans/%E4%BF%9D%E7%BD%97%C2%B7%E6%A0%BC%E9%9B%B7%E5%8E%84%E5%A7%86" target="_blank" rel="noopener" +>Paul Graham</a>)。</p> +<p>他创建了著名的 <a class="link" href="https://zh.wikipedia.org/zh-hans/Y_Combinator" target="_blank" rel="noopener" +>YC 孵化器公司</a>,也打造了很多成功的产品。</p> +<p>今天推荐的这篇文章<a class="link" href="https://blog.samaltman.com/how-to-be-successful" target="_blank" rel="noopener" +>《How To Be Successful》</a>的作者,是保罗·格雷厄姆非常推崇的一位创业者。</p> +<p>文章分享的观点乍看有成功学的影子,但读完却能引人思考。</p> +<p>这里是中文翻译版:<a class="link" href="https://mp.weixin.qq.com/s/pQYztNmmQ6W4fRxPIEsWYQ" target="_blank" rel="noopener" +>《观察成千上万创业者后,关于如何获得非凡成就的13条思考》</a></p> +<p>我觉得这些观点至少可以给长期埋头技术工作的人们一些启发,我稍微列举几条如下:</p> +<blockquote> +<ul> +<li>这个世界很少人能做到将眼光放长远,而那些有长远眼光的人会得到市场的丰厚回报。</li> +<li>把时间花在做正确的事上,比花长时间进行工作更重要。</li> +<li>跟着你的好奇心走。因为对你来说兴奋的事情对其他人来说也同样兴奋。</li> +<li>成为内驱型的人(即:自己去做一件事的原因来自于自己,而不是外部的力量或别人的期望)。</li> +</ul> +</blockquote> +<h3 id="怎样在客厅建立自己的私人影院">怎样在客厅建立自己的私人影院</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-21-45.png" +width="841" +height="396" +loading="lazy" +class="gallery-image" +data-flex-grow="212" +data-flex-basis="509px" +> +智能电视或者智能盒子已成为现在客厅的标配。</p> +<p>如何充分发挥它们的作用,早已是技术爱好者的孜孜不倦探索的课题。</p> +<p>前些天我偶然收到一份公开的云盘链接,使用开源的 <a class="link" href="https://github.com/alist-org/alist" target="_blank" rel="noopener" +>AList</a>(一个支持网盘存储的文件列表程序,可以通过多种协议将网盘映射为本地访问的存储路径) 进行构建。里面整理了大量的影视资源,有不少是高质量、高码率的蓝光原盘文件。</p> +<p>这就激发了我的好奇心。</p> +<p>由于自己一直按耐住折腾 NAS 的念头,这些年一直没有收集电影。</p> +<p>但现在既然有在线的资源,不妨尝试一下。</p> +<p>于是我找到了这篇<a class="link" href="https://wp.gxnas.com/12278.html" target="_blank" rel="noopener" +>《利用KODI和云盘打造4K高清私人云影院》</a>(仅作研究,观影和收藏还需支持正版)。</p> +<p>按照文章的指导,成功给电视安装了 KODI(一个媒体中心 App),并进行了配置,可以非常方便地浏览、观看互联网云盘上的高清电影。</p> +<p>比起云盘官方所出品的各种 App 在体验上更加灵活、完美。</p> +<h3 id="噪声在计算机图形学里的作用">“噪声”在计算机图形学里的作用</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-40-28.png" +width="671" +height="303" +loading="lazy" +class="gallery-image" +data-flex-grow="221" +data-flex-basis="531px" +> +想要计算机产生的图形更加的接近自然,生成各式各样的噪声是必不可少的算法。</p> +<p>之前在读<a class="link" href="https://natureofcode.com/" target="_blank" rel="noopener" +>《The Nature of Code》</a>(中文译作:代码本色)一书的时候,作者花了大量篇幅讲解关于噪声、随机等对于模拟自然界中各种现象的重要作用。</p> +<p>或许在噪声里就隐藏着大自然最深处的秘密。</p> +<p>这篇<a class="link" href="https://zhuanlan.zhihu.com/p/68507311" target="_blank" rel="noopener" +>WebGL进阶——走进图形噪声</a>可以让你领略一些图形噪声的神奇。</p> +<p>很多场景都给出了 WebGL 实现的源码,可以边学边练。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://threegn.app/" target="_blank" rel="noopener" +>ThreeGN</a>,一个基于网页的三维建模程序,特点是具有类似 Blender 的几何节点编辑功能。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-51-53.png" +width="846" +height="453" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></p> +</li> +<li> +<p><a class="link" href="https://tabler-icons.io/" target="_blank" rel="noopener" +>tabler</a>,一个开源的图标库,可用于 Web 或 移动端应用开发,全部免费使用。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-55-30.png" +width="796" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="253" +data-flex-basis="608px" +></p> +</li> +<li> +<p><a class="link" href="https://microsoftedge.microsoft.com/addons/detail/%E6%B2%89%E6%B5%B8%E5%BC%8F%E7%BF%BB%E8%AF%91/amkbmndfnliijdhojkpoglbnaaahippg" target="_blank" rel="noopener" +>immersive-translate</a>,一个在线翻译浏览器插件,支持 Edge、Firefox、Chrome 等浏览器,优点是可以在网页上追加中文显示,原文和译文同时展示,对于想提升外语水平的人士,是个不错的对照工具。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-020-%E6%9C%9F/2023-02-15-10-59-08.png" +width="621" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="173" +data-flex-basis="417px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 019 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/Tue, 07 Feb 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/<h1 id="机器文摘-第-019-期">机器文摘 第 019 期</h1> +<h2 id="长文">长文</h2> +<h3 id="现阶段-ai-能对游戏开发提供多大帮助">现阶段 AI 能对游戏开发提供多大帮助</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-19-34.png" +width="686" +height="358" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +> +AI 在最近有多爆发自然不用我再赘述,抛开那些狂热的能够引起焦虑的言论(比如 AI 即将替代大量工作岗位),也有不少人选择跟 AI 和平相处。</p> +<p>这篇<a class="link" href="https://www.traffickinggame.com/ai-assisted-graphics/" target="_blank" rel="noopener" +>《AI 辅助图形》</a>的作者是一个有着游戏制作二十年经验的从业者,近期想尝试尽可能地利用各种 AI 加持的辅助工具,试图通过他们提升制作效率。</p> +<p>作者从游戏的概念原型阶段,一直到三维模型资产的制作和游戏场景的搭建,均选用了具有 AI 能力的效率工具进行支持。</p> +<p>最终结论是,虽然在过程中会有这样那样的不顺手,但这些工具确实能够帮助他节约大量工作时长。</p> +<p>所以作者的看法是,他很愿意将 AI 工具看作他的同事。</p> +<p>照这么说的话,留给人类的工作真的是不多了。</p> +<h3 id="chatgpt-学习笔记">ChatGPT 学习笔记</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-32-44.png" +width="600" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="427px" +> +ChatGPT 在春节后又起了一波热度。</p> +<p>网上到处都是关于它的段子,有人用它写论文,有人拿来给孩子辅导作业,有人写情书,有人当个动嘴的甲方让它写程序。</p> +<p>喜得微软恨不得现在就把它接到搜索引擎里,逼得谷歌提前释放出自己的类似模型。</p> +<p>国内的百度也表示将在3月份发出自己的大规模语言模型。</p> +<p>要我说就不要这么着急,不妨拨开迷雾,看看 ChatGPT 是个什么东东。</p> +<p>在网上发现这篇<a class="link" href="https://blog.csdn.net/v_JULY_v/article/details/128579457" target="_blank" rel="noopener" +>《ChatGPT 通俗笔记》</a>,讲述了这个模型的发展历程,以及一些基本的概念原理。</p> +<p>此类中文资料不多,给这篇文章作者点赞。</p> +<h3 id="视觉设计的一些规则">视觉设计的一些规则</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-49-28.png" +width="697" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +> +现在专业的界限越来越模糊,每个人都应该掌握一些基本的设计理念,以便在日常工作中输出的成果具备基本的美感。</p> +<p>这篇<a class="link" href="https://anthonyhobday.com/sideprojects/saferules/" target="_blank" rel="noopener" +>《视觉设计安全法则》</a>,浅显易读、明确具体,对于视觉设计活动很有指导意义。</p> +<p>看完之后无论是自己动手做 PPT 还是软件的 demo 原型,都可以用到。</p> +<p>我觉得甚至对于摄影构图、房屋装修都能有所借鉴,因为美是相通的。</p> +<h3 id="python-做后端开发的技术选型">Python 做后端开发的技术选型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-13-57-37.png" +width="673" +height="314" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="514px" +> +有时候想做一些 Web 应用的原型,Python 是我的首选语言,写起来顺手又省事,能节约不少时间。</p> +<p>但是由于用的不够深入,在选择开发框架的时候,稍微有些困惑。</p> +<p>比如同样都能提供快速的开发能力,Fastapi 和 Flask到底选哪个?</p> +<p>如果你也有跟我一样的疑惑,可以看看这篇<a class="link" href="https://www.turing.com/kb/fastapi-vs-flask-a-detailed-comparison" target="_blank" rel="noopener" +>《Fastapi 和 Flask 详细对比》</a>。</p> +<p>文章深度分析了这两个框架的异同以及所适用的工作场景。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/red-data-tools/YouPlot" target="_blank" rel="noopener" +>YouPlot</a>,控制台绘图工具,可以在控制台窗口用字符的方式进行绘图,支持柱状图、散点图等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-10-37.png" +width="587" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="396px" +></p> +</li> +<li> +<p><a class="link" href="https://play-cs.com/zh/servers" target="_blank" rel="noopener" +>网页在线联机 CS1.6</a>,只需浏览器即可联机玩反恐精英 1.6,这个网站通过 WASM 技术将 CS 1.6 移植到了网页中运行,现代浏览器均可支持,第一次加载时间略长,但体验还算流畅,在线人员数量也挺多,随时可以匹配到。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-20-36.png" +width="811" +height="397" +loading="lazy" +class="gallery-image" +data-flex-grow="204" +data-flex-basis="490px" +></p> +</li> +<li> +<p><a class="link" href="https://fffuel.co/sssvg" target="_blank" rel="noopener" +>交互式 SVG 参考</a>,一个可以在线了解 SVG 图形标准细节的网站,提供交互式界面进行实时演示。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-25-38.png" +width="904" +height="428" +loading="lazy" +class="gallery-image" +data-flex-grow="211" +data-flex-basis="506px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/LunarFang416/url-animations" target="_blank" rel="noopener" +>浏览器地址栏里的动画</a>,一个有意思的 Js 库,通过动态修改浏览器地址栏的 URL 地址来实现动画,效果还比较萌。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-019-%E6%9C%9F/2023-02-07-14-26-39.png" +width="757" +height="208" +loading="lazy" +class="gallery-image" +data-flex-grow="363" +data-flex-basis="873px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 018 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/Tue, 31 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/<h1 id="机器文摘-第-018-期">机器文摘 第 018 期</h1> +<h2 id="长文">长文</h2> +<h3 id="游戏高清重制科林麦克雷拉力赛3">游戏高清重制《科林麦克雷拉力赛3》</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-15-47.png" +width="857" +height="434" +loading="lazy" +class="gallery-image" +data-flex-grow="197" +data-flex-basis="473px" +> +游戏高清重制一直是我比较感兴趣的话题,可能因为比较喜欢怀旧吧。</p> +<p>我曾经收藏过采用覆盖显示驱动的方式进行高清分辨率支持的《极品飞车 5》、《Quake 3》等游戏。</p> +<p>也见过一些更古老的游戏在更新资源包之后重新焕发青春。</p> +<p>不过一直没有接触过真正的重制过程。</p> +<p>这篇<a class="link" href="https://cookieplmonster.github.io/2023/01/15/remastering-colin-mcrae-rally-3-silentpatch/" target="_blank" rel="noopener" +>《重制科林麦克雷拉力赛》</a>详细记录了一个优秀的赛车游戏进行高清重制的过程。</p> +<p>可以带你了解老旧游戏如何进行“宽屏”、“超宽屏”支持,如何重制高清界面UI元素等,过程充满了对不可能的挑战。</p> +<h3 id="把网页渲染到控制台">把网页渲染到控制台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-24-01.png" +width="1067" +height="464" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +通过控制台窗口进行上网,你可能觉得并不新鲜。</p> +<p>毕竟已经有很多类似 w3m 这种在控制台下基于字符的浏览器程序。</p> +<p>但是他们的缺点都是不能显示图形,而且几乎失去了对页面的样式渲染。</p> +<p>今天这篇<a class="link" href="https://fathy.fr/carbonyl" target="_blank" rel="noopener" +>《把网页渲染到控制台》</a>则另辟蹊径,虽然同样是在控制台的字符界面,但是渲染手段却大不相同。</p> +<p>它将控制台字符当作单个像素来处理,采用现代浏览器内核进行页面解析和预渲染计算。</p> +<p>然后在像素渲染阶段,采用了控制台字符来进行替换。</p> +<p>虽然最终效果无法跟图形界面下的浏览器相比。</p> +<p>但是它毕竟提供了一种在终端控制台进行图形化网页显示的可能。</p> +<h3 id="chromium-渲染流水线字节码到像素的一生">Chromium 渲染流水线——字节码到像素的一生</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-32-37.png" +width="481" +height="580" +loading="lazy" +class="gallery-image" +data-flex-grow="82" +data-flex-basis="199px" +> +看了前面网页渲染到控制台的文章,如果对浏览器的原理架构比较感兴趣的话。</p> +<p>可以看看这篇<a class="link" href="https://zhuanlan.zhihu.com/p/574069391" target="_blank" rel="noopener" +>讲解 Chromium 浏览器渲染架构</a>的文章。</p> +<p>现代浏览器已经复杂到不可能通过个人从零开始实现。</p> +<p>了解一下他们的架构,即便不从事相关开发,也可能对自己的软件架构产生有益影响。</p> +<h3 id="99-行代码实现光线追踪">99 行代码实现光线追踪</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-40-20.png" +width="702" +height="235" +loading="lazy" +class="gallery-image" +data-flex-grow="298" +data-flex-basis="716px" +> +光线追踪在图形渲染中十分关键的概念。</p> +<p>同时也是现代电影工业实现逼真光照渲染所必须的技术手段。</p> +<p>然而它的原理却并不复杂,甚至只需少量代码就可以自己实现一个建议的渲染器。</p> +<p>这篇<a class="link" href="http://kevinbeason.com/smallpt/" target="_blank" rel="noopener" +>《99 行代码实现光线追踪》</a>就只是用了少量 C++ 代码实现了一个简单的带有全局光照、阴影、反射的场景渲染。</p> +<p>虽然看起来简单,效果还是很令人惊艳的。</p> +<p>适合我这种喜欢研究原理,但又不太深入的“技术爱好者”。</p> +<h3 id="光线追踪深入">光线追踪深入</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-47-14.png" +width="731" +height="333" +loading="lazy" +class="gallery-image" +data-flex-grow="219" +data-flex-basis="526px" +> +既然前面提到了光线追踪,不妨再引申一下。</p> +<p>很多光线追踪的入门教程都会教你渲染一些简单的模型,比如球体,圆柱体等等。</p> +<p>如果想基于光线追踪技术渲染复杂一些的三维模型,应该怎么做?</p> +<p>这里有一篇<a class="link" href="https://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/" target="_blank" rel="noopener" +>《光线行进和符号距离函数》</a>,里面介绍了基于光线行进算法(光线追踪的一种实现方式)和符号距离函数来构建三维场景中复杂模型的思路。</p> +<p>内容比较详细,并带有示例代码。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://www.chronophoto.app/game.html" target="_blank" rel="noopener" +>chronophoto</a>,一个猜照片年代的游戏,根据网站随机展示的老照片,来判断这张照片是哪一年拍摄的,答案区间 1900 到 2020 ,我试了试还挺有意思,可以根据照片中出现的物品和人物的衣着进行分析。<br> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-09-56-50.png" +width="944" +height="432" +loading="lazy" +class="gallery-image" +data-flex-grow="218" +data-flex-basis="524px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/GimelStudio/GimelStudio" target="_blank" rel="noopener" +>Gimel Studio</a>,一个基于节点系统的照片后期处理工具,开源,采用 Python 编写。<br> +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-00-55.png" +width="1009" +height="537" +loading="lazy" +class="gallery-image" +data-flex-grow="187" +data-flex-basis="450px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/vitoplantamura/BugChecker" target="_blank" rel="noopener" +>BugChecker</a>,一个支持 Windows 11 的类 SoftICE 调试器,开源。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-04-14.png" +width="649" +height="376" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="414px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/google/swiftshader" target="_blank" rel="noopener" +>swiftshader</a>,一个基于 CPU 实现 OpenGL 渲染的图形库。主要应用在谷歌开源的 chromium 项目里,用纯软件算法实现了OpenGL、Vulkan图形接口。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-018-%E6%9C%9F/2023-01-31-10-08-42.png" +width="308" +height="307" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 017 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/Mon, 16 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/<h1 id="机器文摘-第-017-期">机器文摘 第 017 期</h1> +<p><em>预计春节期间暂停更新,节后恢复。</em></p> +<h2 id="长文">长文</h2> +<h3 id="怎样在-1-位色深的-lcd-屏幕上显示灰度httpswwwzephraymepostgrayscale_lcd"><a class="link" href="https://www.zephray.me/post/grayscale_lcd/" target="_blank" rel="noopener" +>怎样在 1 位色深的 LCD 屏幕上显示灰度</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-33-34.png" +width="1920" +height="1080" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +> +只有 1 位色深的 LCD 屏幕按理说是不能显示灰度的,因为他的像素点要么纯黑、要么纯白,显示的图案效果肯定非常差。</p> +<p>如果说非要显示灰度的话,我第一个想法是通过<a class="link" href="https://zh.wikipedia.org/wiki/%E6%8A%96%E5%8B%95_%28%E6%95%B8%E4%BD%8D%E8%A8%8A%E8%99%9F%E8%99%95%E7%90%86%29" target="_blank" rel="noopener" +>抖动算法</a>进行模拟(即通过像素点的稀疏程度来制造错觉,如下图)。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-40-49.png" +width="180" +height="215" +loading="lazy" +class="gallery-image" +data-flex-grow="83" +data-flex-basis="200px" +></p> +<p>然而这篇文章的作者采取了更为巧妙地方法,使用 PWM (脉冲宽度调制)技术,利用每个像素点的点亮时间不同来制造灰度错觉。</p> +<p>之前只是见过使用 PWM 调整 LED 灯泡的亮度,像这种用法我倒是第一次见。</p> +<h3 id="作为一名数据工程师和作家我为什么要用-neovimhttpswwwsspaeticomblogwhy-using-neovim-data-engineer-and-writer-2023"><a class="link" href="https://www.sspaeti.com/blog/why-using-neovim-data-engineer-and-writer-2023/" target="_blank" rel="noopener" +>作为一名数据工程师和作家,我为什么要用 (Neo)vim</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-44-27.png" +width="500" +height="264" +loading="lazy" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="454px" +></p> +<p>很多人都被 Vim 复杂的功能和陡峭的学习曲线吓到过。</p> +<p>也有很多人本着对效率的极致追求,而选择了征服 Vim,从而走上高效(折腾)的路线。</p> +<p>本文作者作为一名数据工程师,讲述了他学习 Vim 的心路历程,也许对于现在还在观望的人有所启发。</p> +<p>我个人使用 Vim 已十多年时间,虽然从未触及特别深入的技能(如宏定义、寄存器等),但是 Vim 这种神器的特点就是,只要你忍者难受越过操作的及格线,剩下的技能你稍微多掌握一点,就能马上给你带来非常丰厚的回报。</p> +<h3 id="焦散是什么如何正确地渲染焦散httpswwwchaoscomcnblogwhat-are-caustics-and-how-to-render-them-the-right-way"><a class="link" href="https://www.chaos.com/cn/blog/what-are-caustics-and-how-to-render-them-the-right-way" target="_blank" rel="noopener" +>焦散是什么?如何正确地渲染焦散?</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-09-55-28.png" +width="850" +height="469" +loading="lazy" +class="gallery-image" +data-flex-grow="181" +data-flex-basis="434px" +> +焦散(Caustics)在现实生活中随处可见,但在渲染图中却很稀有。这篇文章解答了为什么渲染焦散很难,以及有哪些方法可以迂回实现。</p> +<p>找到这篇文章是因为我在 Github 上发现了<a class="link" href="https://github.com/pmndrs/drei#caustics" target="_blank" rel="noopener" +>一个使用 webgl 实现焦散渲染的项目</a>,效果非常不错,于是想研究一下背后的原理。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-02-22.png" +width="652" +height="339" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="461px" +></p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://refactoringguru.cn/design-patterns" target="_blank" rel="noopener" +>常用设计模式有哪些</a>,一本在线电子书,图文并茂,以比较直观的方式介绍了软件开发常用的设计模式,支持英文、日文、中文等多国语言。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-04-26.png" +width="673" +height="357" +loading="lazy" +class="gallery-image" +data-flex-grow="188" +data-flex-basis="452px" +></p> +</li> +<li> +<p><a class="link" href="https://abseil.io/resources/swe-book/html/toc.html" target="_blank" rel="noopener" +>谷歌的软件工程</a>,好几年前的一本书,讲述在谷歌做软件开发的体验和最佳实践,现在出了可免费阅读的电子版。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-04-41.png" +width="504" +height="662" +loading="lazy" +class="gallery-image" +data-flex-grow="76" +data-flex-basis="182px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/ToolJet/ToolJet" target="_blank" rel="noopener" +>开源低代码开发框架 ToolJet</a>,免费开源的低代码开发框架,带有可视化编辑器,从数据持久化到前端界面全部无需编写代码。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-08-12.png" +width="795" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="460px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/Eandrju/cellular-automaton.nvim" target="_blank" rel="noopener" +>一个无聊的 Neovim 插件</a>,一个没啥用的 Neovim 插件,唯一能做的事情是当你感到无聊时,可以将你的文本编辑区里的文本执行一个“元胞自动机”动画,看起来还算解压。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-11-33.png" +width="547" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="89" +data-flex-basis="213px" +></p> +</li> +<li> +<p><a class="link" href="https://www.futurepedia.io/" target="_blank" rel="noopener" +>最大的 AI 工具箱</a>,喜欢研究 AI 的不要错过这个网站,收集了各种 AI 模型的开源项目和相关网址,涵盖了图像识别、自然语言处理等常见的、时兴的 AI 技术。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-017-%E6%9C%9F/2023-01-16-10-15-15.png" +width="1151" +height="729" +loading="lazy" +class="gallery-image" +data-flex-grow="157" +data-flex-basis="378px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 016 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/Tue, 10 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/<h1 id="机器文摘-第-016-期">机器文摘 第 016 期</h1> +<h2 id="长文">长文</h2> +<h3 id="黑客与汽车httpssamcurrynetweb-hackers-vs-the-auto-industry"><a class="link" href="https://samcurry.net/web-hackers-vs-the-auto-industry/" target="_blank" rel="noopener" +>黑客与汽车</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-16-50.png" +width="680" +height="414" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="394px" +> +现在的汽车很多都具有联网的能力,可以通过互联网进行便利的远程操作。</p> +<p>比如获取汽车位置、健康状态、远程启动、远程开门等等。</p> +<p>作为消费者来说,在使用这些便利功能的时候,内心是十分信任厂商的。</p> +<p>觉得安全问题肯定会被厂商非常重视,作为头号问题来抓。</p> +<p>然而这篇<a class="link" href="https://samcurry.net/web-hackers-vs-the-auto-industry/" target="_blank" rel="noopener" +>《黑客与汽车》</a>却改变了我的看法,原来这些车联网的安全防护如此的脆弱。</p> +<p>文章作者为业内人士,写的还比较实在。如下列举部分这些黑客可以对车进行的未授权操作:</p> +<ol> +<li>远程发动机启停、车门解锁与锁定、大灯闪烁、喇叭鸣笛;</li> +<li>锁定用户,迁移管理权;</li> +<li>根据车架号下载到用户的销售档案;</li> +<li>远程刷新更新车辆电脑固件;</li> +<li>跟踪车辆物理GPS位置;</li> +</ol> +<p>看完我感觉是不是得把我的相关车联网服务给停一停了。</p> +<h3 id="汇编代码阅读指南httpswwwtimdbgcompostsfakers-guide-to-assembly"><a class="link" href="https://www.timdbg.com/posts/fakers-guide-to-assembly/" target="_blank" rel="noopener" +>汇编代码阅读指南</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-30-23.png" +width="1061" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +> +写汇编代码很麻烦,阅读起来也很费劲吗?</p> +<p>这儿有<a class="link" href="https://www.timdbg.com/posts/fakers-guide-to-assembly/" target="_blank" rel="noopener" +>一份简要的汇编阅读指南</a>,作者介绍了一些汇编代码的阅读技巧。</p> +<p>因为根据统计显示,最常用的汇编指令也就那么十来个,所以并没有想象中的那么晦涩和高深莫测。</p> +<h3 id="使用-svg-绘制逼真的绳索httpsmuffinmanioblogdraw-svg-rope-using-javascript"><a class="link" href="https://muffinman.io/blog/draw-svg-rope-using-javascript/" target="_blank" rel="noopener" +>使用 SVG 绘制逼真的绳索</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-38-11.png" +width="786" +height="342" +loading="lazy" +class="gallery-image" +data-flex-grow="229" +data-flex-basis="551px" +> +SVG 是在网页中进行矢量绘图的技术,比起 Canvas 画板的像素图像,SVG 具有放大不失真的特点,在网页中可以通过 Javascript 操作生成 SVG 图形对象,实现各种复杂的图案。</p> +<p>这篇文章的作者从几何的角度考虑了如何使用矢量图形来绘制一个现实中的麻绳图案,要不仅体现出绳索的扭曲,还要正确表现绳索分支之间的叠压,作者提出了一个巧妙的使用 SVG path 进行实现的方法。还给出了代码。</p> +<p>你要问作者为什么这么做,有什么用没有?我想作者可能会回答:Because I can !</p> +<h3 id="ssh-进阶用法介绍httpsplantegggithubio20190602e58fb2e4b88ae69c80e585a8_ssh_e69a97e9bb91e68a80e5b7a7e8afa6e8a7a3--e694b6e8978fe4bf9de5b9b3e5ae89"><a class="link" href="https://plantegg.github.io/2019/06/02/%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89/" target="_blank" rel="noopener" +>SSH 进阶用法介绍</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-55-02.png" +width="800" +height="480" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="400px" +></p> +<p>经常在 Linux 系统下进行开发或者运维的专业人士,可能每天使用最多的工具就是 SSH 了,每天都要通过它登录服务端系统,进行一系列的操作。</p> +<p>这里<a class="link" href="https://plantegg.github.io/2019/06/02/%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89/" target="_blank" rel="noopener" +>有一篇文章</a>比较全面地介绍了 SSH 的进阶使用技巧,可以在某种程度上极大提升效率以及操作体验。</p> +<p>列举部分如下:</p> +<ol> +<li>如何免密码登录;</li> +<li>如何映射服务端的服务端口到本地(以方便调试);</li> +<li>如何将服务端的图形界面(如xcalc)代理到本地电脑显示和交互(不是远程桌面哦);</li> +<li>一些网络端口映射之类的高级操作;</li> +</ol> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://gist.github.com/sbabybird/c340dee0fbec2e1dfe4a1c49d311cf4b" target="_blank" rel="noopener" +>个人年终总结模板</a>,我做了一个基于 Markdown 语法的年终总结模板,方便梳理在编写个人总结时的思路,放在 github 上的 gist 里了,可以随意使用。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-13-57-40.png" +width="416" +height="486" +loading="lazy" +class="gallery-image" +data-flex-grow="85" +data-flex-basis="205px" +></p> +</li> +<li> +<p><a class="link" href="https://www.webdesignmuseum.org/" target="_blank" rel="noopener" +>web 网页设计博物馆</a>,一个保存古老网页设计的网站。记录了 1999 年到 2020 年各大公司的网页设计变迁。包括谷歌、亚马逊、苹果、任天堂、麦当劳等等。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-01-04.png" +width="918" +height="568" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="387px" +></p> +</li> +<li> +<p><a class="link" href="https://allinone.tools/" target="_blank" rel="noopener" +>一站式网页工具大全</a>,一堆的在线工具汇总,包括图片处理、PDF格式转换、文字编码转换、密码生成、字符串加密解密等等,常用工具一网打尽。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-05-09.png" +width="1320" +height="570" +loading="lazy" +class="gallery-image" +data-flex-grow="231" +data-flex-basis="555px" +></p> +</li> +<li> +<p><a class="link" href="https://gamepad-tester.com/" target="_blank" rel="noopener" +>在线手柄测试工具</a>,打开网页即可测试游戏手柄的工作状态,按键是否灵敏,遥感是否有死区等等,非常方便。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-016-%E6%9C%9F/2023-01-10-14-11-28.png" +width="930" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="363px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 015 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/Tue, 03 Jan 2023 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/<h1 id="机器文摘-第-015-期">机器文摘 第 015 期</h1> +<h2 id="长文">长文</h2> +<h3 id="编程就是玩儿httpsaustinhenleycomblogprogrammingasplayhtml"><a class="link" href="https://austinhenley.com/blog/programmingasplay.html" target="_blank" rel="noopener" +>编程就是玩儿</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-43-13.png" +width="804" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="226" +data-flex-basis="543px" +></p> +<p>对于程序员或者技术从业者来说,以一种什么样的心态工作将十分影响成果的产出。</p> +<p><a class="link" href="https://austinhenley.com/blog/programmingasplay.html" target="_blank" rel="noopener" +>这篇文章</a>的作者给大家分享了他自己的感受&mdash;-“不把编程视为严肃的工作、目标只是玩得开心、为了好玩而编程”。</p> +<p>他同时也是 <a class="link" href="https://news.ycombinator.com/item?id=27256867" target="_blank" rel="noopener" +>《为什么我喜欢做无用的东西》</a>帖子的作者。</p> +<p>除了文章本身之外,<a class="link" href="https://news.ycombinator.com/item?id=34086416" target="_blank" rel="noopener" +>在 HN 配套的讨论帖子在这里</a>。</p> +<p>这种类似于“寓教于乐”、“做自己开心的事儿”等等内容,一直是一个值得探讨的话题。</p> +<p>我个人也倾向于以兴趣和爱好来驱动自己,只是如果这个兴趣和爱好顺便能够挣钱,那就更好了。</p> +<h3 id="webassembly没有容器的-dockerhttpswasmlabsdevarticlesdocker-without-containers"><a class="link" href="https://wasmlabs.dev/articles/docker-without-containers/" target="_blank" rel="noopener" +>WebAssembly:没有容器的 Docker</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-45-15.png" +width="3483" +height="1436" +loading="lazy" +class="gallery-image" +data-flex-grow="242" +data-flex-basis="582px" +></p> +<p>最近 <a class="link" href="https://www.docker.com" target="_blank" rel="noopener" +>Docker</a> 宣布与 <a class="link" href="https://github.com/WasmEdge/Wasmedge" target="_blank" rel="noopener" +>WasmEdge</a> 合作支持 WebAssembly 。</p> +<p>WebAssembly 和 Docker 我们都听说过,在前面的文摘中我还尝试过自己使用 Rust 编写运行在网页里的 WebAssembly 应用程序。</p> +<p>Docker 也是我工作中每天都要用到的容器技术。</p> +<p>那他们两个有什么关系?放在一起能碰撞出什么火花?</p> +<p><a class="link" href="https://wasmlabs.dev/articles/docker-without-containers/" target="_blank" rel="noopener" +>这篇文章</a>将讲解这两种技术的结合在云原生架构下的使用。</p> +<p>看来 WebAssembly 技术不仅可以在浏览器环境中发挥作用,还能在云计算、边缘计算等领域发光发热,前途不可限量嘛。</p> +<h3 id="3d-摄影测量建模技术httpswwwjeffgeerlingcomblog2021modeling-my-grandpa-3d-photogrammetry"><a class="link" href="https://www.jeffgeerling.com/blog/2021/modeling-my-grandpa-3d-photogrammetry" target="_blank" rel="noopener" +>3D 摄影测量建模技术</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-13-58-29.png" +width="712" +height="340" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +></p> +<p>3D 摄影测量建模,是一种通过对物体多角度拍摄照片,然后使用计算机通过软件算法合成为 3D 模型的技术。</p> +<p>从最开始在专业领域(如:建筑工程、考古)使用,到现在已经普及到普通人只需安装手机 App 也能轻松实现了。</p> +<p>这篇<a class="link" href="https://www.jeffgeerling.com/blog/2021/modeling-my-grandpa-3d-photogrammetry" target="_blank" rel="noopener" +>用3D摄影测量法对我的爷爷建模</a>记述了作者如何使用 3D 摄影测量建模技术给自己爷爷的雕像进行“数字化”的过程。</p> +<p>里面详细记录了整个过程所使用的开源软件和相关的配置细节。</p> +<p>对于一些想要进行一次实操演练的朋友来说可能有用。</p> +<h3 id="在-2d-游戏中如何模拟-3d-的光影效果httpswwwgamedevelopercomprogramminggraveyard-keeper-how-the-graphics-effects-are-made"><a class="link" href="https://www.gamedeveloper.com/programming/graveyard-keeper-how-the-graphics-effects-are-made" target="_blank" rel="noopener" +>在 2D 游戏中如何模拟 3D 的光影效果</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-14-17.png" +width="454" +height="265" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>《守墓人》是一款经典的 2D 角色扮演游戏,比起它的精彩剧情和有趣的玩法,出色的画面效果也是该游戏取得成功的重要原因。</p> +<p>这篇<a class="link" href="https://www.gamedeveloper.com/programming/graveyard-keeper-how-the-graphics-effects-are-made" target="_blank" rel="noopener" +>《守墓人的图形效果是如何制作的》</a>文章,由该游戏的核心开发者于 2018 年发表,讲述了很多关于实现在 2D 画面带来更加有立体光影效果的特殊技巧。</p> +<p>文章虽然老了一点,但是技术没有过时。</p> +<p>读进去可以深深体会到:一个优秀作品的创造,离不开对各种不可能的挑战和极限的突破。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://bluemaxima.org/flashpoint/" target="_blank" rel="noopener" +>Flash 游戏大全</a>,上一期里我摘录了一个关于复刻 Flash 游戏的故事。后来也勾起了我对于 Flash 小游戏的怀念。便深入探索了一下现在这个阶段该如何再去运行那些老游戏。Flashpoint 是一个 Web 游戏保存工程,号称已经累计保存了包括 Flash 在内的 35 个平台的超过十万个小游戏。这个工程在 2018 年 1 月启动,试图在 Flash 消亡之前将之前的经典内容进行备份。现在提供两种版本的下载包,一种全量下载的大概 1.3 TB,包含了全部游戏。一种增量下载的,700多MB,只带了部分游戏,但是支持随下随玩。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-33-07.png" +width="1001" +height="382" +loading="lazy" +class="gallery-image" +data-flex-grow="262" +data-flex-basis="628px" +></p> +</li> +<li> +<p><a class="link" href="https://sweetcocoa.github.io/pop2piano_samples/" target="_blank" rel="noopener" +>根据音频自动生成钢琴旋律</a>,一个开源的 AI 模型,可以根据歌曲的音频识别出里面的旋律主线,并且使用钢琴演奏出来,效果十分神奇。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-41-36.png" +width="741" +height="456" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></p> +</li> +<li> +<p><a class="link" href="https://virtualconsoles.com/online-emulators/c64/" target="_blank" rel="noopener" +>C64 Emulator</a>,一个在线的 commodore 64 电脑模拟器,可以直接将磁盘镜像拖拽到网页上进行加载,页面还提供了虚拟键盘。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-44-02.png" +width="643" +height="733" +loading="lazy" +class="gallery-image" +data-flex-grow="87" +data-flex-basis="210px" +></p> +</li> +<li> +<p><a class="link" href="https://shadiao.pro/" target="_blank" rel="noopener" +>沙雕 App</a>,收集了各种有趣网站、工具的导航站,之前就关注过,最近好像升级了,喜欢恶搞的同学可以到里面找到一些比较有恶趣味的小程序。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-015-%E6%9C%9F/2023-01-03-14-47-42.png" +width="676" +height="371" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 014 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/Tue, 27 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/<h1 id="机器文摘-第-014-期">机器文摘 第 014 期</h1> +<h2 id="长文">长文</h2> +<h3 id="运行在单片机上的-qthttpsdecovardevblog20221224qt-on-mcu"><a class="link" href="https://decovar.dev/blog/2022/12/24/qt-on-mcu/" target="_blank" rel="noopener" +>运行在单片机上的 Qt</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-43-13.png" +width="684" +height="456" +loading="lazy" +class="gallery-image" +data-flex-grow="150" +data-flex-basis="360px" +></p> +<p>尝试过给单片机写图形界面没有?</p> +<p>这篇 <a class="link" href="https://decovar.dev/blog/2022/12/24/qt-on-mcu/" target="_blank" rel="noopener" +>《Qt on MCU》 </a>比较系统的介绍了“为什么选择 Qt(一套开源图形界面库) 给单片机做界面”、“Qt 的基本架构”、“程序移植性”等相关问题。</p> +<p>读完可以较为全面地了解在单片机这种机能较弱的硬件设备上制作图形界面的基本思路和需要关注的问题。</p> +<h3 id="openwrtlede-搭建-syncthing-p2p-私有文件同步服务httpschenhemepostopenwrt-syncthing"><a class="link" href="https://chenhe.me/post/openwrt-syncthing/" target="_blank" rel="noopener" +>OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-56-50.png" +width="1251" +height="730" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>现在大家都不止一个电子终端设备,个人数字信息、各种数据文件的同步需求基本上是一个刚需。</p> +<p>有很多厂商提供了收费方案,比较常见的有国内的各种网盘、手机厂商提供的各种 Cloud 服务等等。</p> +<p>如果想基于家庭网络自己动手搭建一个私有服务的话,可能略微麻烦一些,不过也有较为成熟的方案了。</p> +<p>条件具备的话不妨参考这篇<a class="link" href="https://chenhe.me/post/openwrt-syncthing/" target="_blank" rel="noopener" +>《OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务》</a>动手试一试。</p> +<h3 id="用-flash-高清重制一款游戏httpswwwjiqizhixincomarticles2022-12-22-2"><a class="link" href="https://www.jiqizhixin.com/articles/2022-12-22-2" target="_blank" rel="noopener" +>用 Flash 高清重制一款游戏</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-13-58-23.png" +width="600" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<p>Flash 基本已经成为历史了。</p> +<p>即便现在可以通过一些渠道或者浏览器勉强开启 Flash 插件的话,也会提心掉胆地担心计算机的安全性。</p> +<p>毕竟那些恼人的弹窗广告有 80% 都是靠 Flash 技术实现的。</p> +<p>但是还有这么一群人,他们玩着 4399 上的小游戏长大,80 后喜欢的各种主机游戏在他们眼里根本不值一提,倒是网页上那种基于 Flash 制作的即开即玩的小游戏(比如我能想到的就有:黄金矿工、狂扁小朋友、打企鹅等等)才是他们的最爱。</p> +<p>Flash 技术被时代抛弃,那些 4399 们也就逐渐消失了。</p> +<p>不过总有人会拥抱情怀,这篇<a class="link" href="https://www.jiqizhixin.com/articles/2022-12-22-2" target="_blank" rel="noopener" +>《为拯救童年回忆,开发者决定采用古法编程》</a>便讲述了这样一个故事。</p> +<p>里面的哥们儿以极其硬核的方式实现了他的梦想,为了复刻一个 Flash 小游戏,他几乎重新写了一个 Flash 播放器。</p> +<h3 id="unix-终端系统tty是如何工作的httpswaynervcompostshow-tty-system-works"><a class="link" href="https://waynerv.com/posts/how-tty-system-works/" target="_blank" rel="noopener" +>Unix 终端系统(TTY)是如何工作的</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-09-23.png" +width="2560" +height="2272" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="270px" +></p> +<p>没有使用过大型机而直接进入 PC 时代的计算机用户,可能觉得“终端”就是电脑上那个能够输入 CMD 命令的黑乎乎窗口吧。</p> +<p>即便是终日与命令行打交道的软件开发人员、系统运维人员,可能也很难一下子解释清楚什么是“终端”,它为什么叫这个名字。</p> +<p>这篇<a class="link" href="https://waynerv.com/posts/how-tty-system-works/" target="_blank" rel="noopener" +>《Unix 终端系统(TTY)是如何工作的》</a>从计算机硬件发展的历史出发,介绍了计算机系统跟用户交互的发展历程,并针对“终端”系统进行详细展开,讲解了实现原理和后来发展的现代形态。</p> +<p>喜欢硬核知识的朋友可点进去阅读一下。</p> +<h3 id="hn-讨论极大提升你效率的软件有哪些httpsnewsycombinatorcomitemid34069106"><a class="link" href="https://news.ycombinator.com/item?id=34069106" target="_blank" rel="noopener" +>HN 讨论:极大提升你效率的软件有哪些?</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-16-52.png" +width="776" +height="403" +loading="lazy" +class="gallery-image" +data-flex-grow="192" +data-flex-basis="462px" +></p> +<p>哪些软件最能节约你的时间、解放你的双手、使你离不开它?</p> +<p>这个话题几乎每过一段时间就会被拿出来讨论一番。</p> +<p>每个人都有自己的偏爱。</p> +<p>不过,看看大家的讨论,说不定也能发现一些新鲜的软件,也许能更新一下自己的工具库也说不定。</p> +<blockquote> +<p>比如上面这篇帖子里,楼主提到的 <a class="link" href="https://github.com/BurntSushi/xsv" target="_blank" rel="noopener" +>这个 csv 工具</a> ,可以在命令行让你高效对 csv 文件进行快速检索、合并查询、切片等等。 +不过帖子里可能有人把节奏带偏了,在下面大吹特吹各种 IDE 软件,就仁者见仁了。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://huili.github.io/" target="_blank" rel="noopener" +>SQlite源码分析</a>,一本讲解 SQlite 源码的在线电子书,主要对 SQLite 数据库的实现机制和使用方法做了简要分析。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-25-49.png" +width="804" +height="424" +loading="lazy" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="455px" +></p> +</li> +<li> +<p><a class="link" href="https://retrogame.com.ua/2022/03/moarstalgia-windows-98-3dfx-amp-dos-retro-gaming-pack/" target="_blank" rel="noopener" +>经典复古 win98 游戏合集</a>,一个游戏整合包,里面整合了若干在 Win98 系统下才能跑的老游戏,像初代的雷神之锤、半条命、极品飞车等等。提供了基于 DosBox 的虚拟系统,即开即用,性能还不错。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-33-08.png" +width="656" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="169" +data-flex-basis="406px" +></p> +</li> +<li> +<p><a class="link" href="http://www.doshaven.eu/programming-tools/" target="_blank" rel="noopener" +>DOS 系统下的编程工具合集</a>,想要重温在 DOS 环境下编程的感受,这里有一套比较全面的工具合集,包括 QBASIC、TurboC 等开发环境,以及一些用于游戏开发的图形库、引擎。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-14-59-31.png" +width="908" +height="527" +loading="lazy" +class="gallery-image" +data-flex-grow="172" +data-flex-basis="413px" +></p> +</li> +<li> +<p><a class="link" href="https://humanbenchmark.com/dashboard" target="_blank" rel="noopener" +>给你自己跑个分</a>,现在一些硬件评测动不动就使用软件进行跑分,用以展示硬件之间的形成差异,这个网站提供了一组小游戏,可以考验你的短期记忆力、反应能力,并给你打分。也试试给自己跑个分吧。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-014-%E6%9C%9F/2022-12-27-15-05-15.png" +width="900" +height="511" +loading="lazy" +class="gallery-image" +data-flex-grow="176" +data-flex-basis="422px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 012 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/Tue, 13 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/<h1 id="机器文摘-第-012-期">机器文摘 第 012 期</h1> +<h2 id="长文">长文</h2> +<h3 id="github-登录被第三方网站滥用了吗">Github 登录被第三方网站滥用了吗?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-30-19.png" +width="494" +height="491" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="241px" +> +为了方便账号注册,现在很多网站都提供了基于 Github 账号登录的方式。</p> +<p>我个人也更倾向于使用这种方式登录。</p> +<p>毕竟可以少填一些注册信息,减少思考密码的麻烦。</p> +<p>但是这样做有什么安全问题没有?</p> +<p>上周有一个<a class="link" href="https://news.ycombinator.com/item?id=33917962" target="_blank" rel="noopener" +>在 HackerNews 上的帖子</a>,有人遇到了在使用 Github 账号登录某些网站之后,导致他的账号莫名给别的仓库添 Star 的情况。</p> +<p>这引发了大家关于 Github 账号权限管理以及通过第三方鉴权进行账号登录和注册的讨论。</p> +<p>看完觉得在第三方鉴权授权时还是应该慎重使用才好。</p> +<h3 id="每个黑客都知道的命令行快捷键">每个黑客都知道的命令行快捷键</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-41-23.png" +width="926" +height="636" +loading="lazy" +class="gallery-image" +data-flex-grow="145" +data-flex-basis="349px" +> +在图形化界面、触控操作交互界面已经十分普及的今天,普通用户可能现在很少能接触到命令行操作了。</p> +<p>但是对于软件开发者、IT运维工程师来说,命令行还是属于离不开的操作界面。</p> +<p>而且对于有些工作任务来说,使用命令行完成起来要更加高效。</p> +<p><a class="link" href="https://www.masteringemacs.org/article/keyboard-shortcuts-every-command-line-hacker-should-know-about-gnu-readline" target="_blank" rel="noopener" +>这篇文章</a>讲解了常见命令行交互时的一些快捷操作,比如常见的行内编辑、快速移动光标到命令开头、历史记录搜索等等。</p> +<p>掌握之后可以在各种命令行交互界面中进行使用(基本风格一致)。</p> +<h3 id="基于颜色循环的动画技术">基于颜色循环的动画技术</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-13-54-06.png" +width="509" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="132" +data-flex-basis="318px" +> +在计算机硬件资源匮乏的上世纪 90 年代,开发人员为了在有限条件下实现丰富的效果真是挖空心思。</p> +<p>比如,还记得 Windows 98 的启动画面吗?</p> +<p>蓝天白云,Windows 徽标,底部有一个蓝色的渐变色条,在缓慢的滚动。</p> +<p>实际上它只是一幅图片,并非多帧动画。</p> +<p>这就用到了一个叫做<a class="link" href="https://en.wikipedia.org/wiki/Color_cycling" target="_blank" rel="noopener" +>“颜色循环”</a>的技术。</p> +<blockquote> +<p>来自维基百科:颜色循环,也称为调色板移动,是计算机图形学中使用的一种技术,其中颜色被更改以产生动画的假象。这种技术主要用于早期的电脑游戏,因为存储一个图像并更改其调色板比将动画存储为几帧需要更少的内存和处理器能力。</p> +</blockquote> +<p><a class="link" href="http://www.effectgames.com/effect/article-Old_School_Color_Cycling_with_HTML5.html" target="_blank" rel="noopener" +>这里有个博客</a>使用 HTML Canvas 复刻了一批采用颜色循环创作的作品,效果非常惊艳。</p> +<p>另外网站还开源了用于展示这些作品的图形引擎,虽然现在已经不再维护了,但是用于学习和探索还是很有研究意义。</p> +<h3 id="软件逆向工程入门">软件逆向工程入门</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-06-08.png" +width="716" +height="442" +loading="lazy" +class="gallery-image" +data-flex-grow="161" +data-flex-basis="388px" +> +软件的加密和破解在普通用户眼里十分神秘。</p> +<p>这篇<a class="link" href="https://to-be-deleted-in-2022.emily.st/2015/01/27/reverse-engineering/" target="_blank" rel="noopener" +>软件逆向工程入门</a>比较深入浅出地介绍了一些常用手法,跟着作者可以浅尝一下在内存中寻找注册号、修改汇编指令以使得软件保护失效等体验。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="http://nifty.stanford.edu/" target="_blank" rel="noopener" +>计算机课后作业</a>,斯坦福大学计算机专业评选的历年来优秀作业作品。如果不知道自己编程需要练习什么的话,可以打开参考参考,很有实用价值,比起在 Leecode 上刷算法的题目,这些作业都在解决实际问题。</p> +</li> +<li> +<p><a class="link" href="https://scholar.archive.org/" target="_blank" rel="noopener" +>互联网档案学术</a>,全文检索索引包含超过2500万的研究文章和其他保存在互联网档案馆里的学术文档。 该馆藏涵盖从18世纪期刊的数字化副本,到最新的Open Access会议记录和从万维网上抓取的预印本。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-19-26.png" +width="1113" +height="507" +loading="lazy" +class="gallery-image" +data-flex-grow="219" +data-flex-basis="526px" +></p> +</li> +<li> +<p><a class="link" href="https://playcanvas.com/" target="_blank" rel="noopener" +>PlayCanvas Web 优先的游戏引擎</a>,一个免费的游戏引擎,倡导以 Web 优先,在网页中提供从开发到发行的全部流程支持。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-23-40.png" +width="961" +height="655" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="352px" +></p> +</li> +<li> +<p><a class="link" href="https://asciinema.org/" target="_blank" rel="noopener" +>命令行会话记录器</a>,Asciinema 是一个免费开源软件,用于帮助用户录制在命令行中的操作行为,便于在互联网上分发自己的操作示范、教学演示。比起直接视频录屏的方式,这种以字符方式的记录更加节约资源,无论是记录、传播还是回放环节,都很轻量。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-29-43.png" +width="631" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="164" +data-flex-basis="395px" +></p> +</li> +<li> +<p><a class="link" href="https://matthias-research.github.io/pages/tenMinutePhysics/index.html" target="_blank" rel="noopener" +>十分钟物理</a>,这套教程集合了一组十分钟左右的视频短片,每次介绍一个基本的物理概念并通过 Web 前端技术编程实现模拟。除了视频之外,网站还提供了源代码、演示环境等配套资源。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-32-47.png" +width="1191" +height="666" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="429px" +></p> +</li> +<li> +<p><a class="link" href="http://skilldrick.github.io/easy6502/" target="_blank" rel="noopener" +>Easy6502</a>,一本学习 6502 汇编的电子书(没错,我就是特别喜欢这款 CPU)。网站带有交互界面,提供了一个简易模拟器,可以边学边练,教程最后会带你实现一个基于汇编的贪食蛇游戏。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-012-%E6%9C%9F/2022-12-13-14-43-13.png" +width="608" +height="484" +loading="lazy" +class="gallery-image" +data-flex-grow="125" +data-flex-basis="301px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 013 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/Mon, 12 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/<h1 id="机器文摘-第-013-期">机器文摘 第 013 期</h1> +<h2 id="长文">长文</h2> +<h3 id="从古董电脑中我们能学到什么httpsgithubcomreadmefeaturedvintage-computing"><a class="link" href="https://github.com/readme/featured/vintage-computing" target="_blank" rel="noopener" +>从古董电脑中我们能学到什么</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-36-43.png" +width="1182" +height="689" +loading="lazy" +class="gallery-image" +data-flex-grow="171" +data-flex-basis="411px" +></p> +<p>我也不知道为什么自己会对老旧电脑,尤其是上世纪80年代、90年代出品的电脑这么迷恋。</p> +<p>我觉得那个时代的电脑散发着一种难以名状的工业气质。</p> +<p>通过阅读<a class="link" href="https://github.com/readme/featured/vintage-computing" target="_blank" rel="noopener" +>这篇文章</a>,使我意识到一些深层次的原因。</p> +<p>这些老式电脑的魅力来自于当时技术的限制、简单粗暴和直接。</p> +<p>通过深入了解这些老古董、学习开发那个时代的软件,可以更容易地了解计算机科学。</p> +<p>毕竟,现在的计算机已经充分的复杂和“人性化”,软件把硬件包裹得越来越严实和抽象。以至于根本看不清它的内部构造和实现原理。</p> +<p>去研究那些古董电脑吧,操作那些裸漏单纯的硬件接口,贴近更加具体的科技。</p> +<h3 id="蛋httpwwwgalactanetcomoneofftheegg_zhhtml"><a class="link" href="http://www.galactanet.com/oneoff/theegg_zh.html" target="_blank" rel="noopener" +>蛋</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-49-07.png" +width="1024" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="200" +data-flex-basis="480px" +></p> +<p>这是一篇很富有哲理的小小说,严格来说跟机器没有关系。</p> +<p>但是写的实在是很好,忍不住收录进来。</p> +<p>毕竟,喜欢机器的人,很难抗拒这种对宇宙天马行空的探索。</p> +<h3 id="rlhf-模型详解httpshuggingfacecoblogrlhf"><a class="link" href="https://huggingface.co/blog/rlhf" target="_blank" rel="noopener" +>RLHF 模型详解</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-09-54-30.png" +width="1450" +height="1338" +loading="lazy" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="260px" +></p> +<p>近期 AI 圈最火的事情,莫过于 OpenAI 发布的聊天机器人 ChatGPT 了。</p> +<p>这个智能聊天机器人已经强大到可以让人担忧的地步了。</p> +<p>那么,它背后的实现原理是什么?</p> +<p><a class="link" href="https://huggingface.co/blog/rlhf" target="_blank" rel="noopener" +>这篇文章</a>讲解了 ChatGPT 所使用的 RLHF(人类反馈强化学习) 模型是如何实现的以及它的未来会怎样发展。</p> +<h3 id="基于扩散模型生成音乐httpswwwriffusioncomabout"><a class="link" href="https://www.riffusion.com/about" target="_blank" rel="noopener" +>基于扩散模型生成音乐</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-03-35.png" +width="540" +height="378" +loading="lazy" +class="gallery-image" +data-flex-grow="142" +data-flex-basis="342px" +></p> +<p>基于文本生成图像的扩散模型已经火了一段时间了。</p> +<p>我当时还在想,既然基于扩散模型可以生成图像的话,那能不能生成声音呢?</p> +<p>结果我只是动了动念头,人家这边已经把成果拿出来了。</p> +<p><a class="link" href="https://www.riffusion.com/about" target="_blank" rel="noopener" +>这篇文章</a>介绍了他们基于扩散模型生成音乐的项目。</p> +<p>我试听了一下,效果还不错,挺神奇的。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://ittavern.com/getting-started-with-tmux/" target="_blank" rel="noopener" +>tmux 入门</a>,一篇 tmux 的入门教程。tmux 是一个终端程序,可以同时模拟多个客户端控制台,如果觉得不好理解的话,可以认为它是一个控制台的多页签浏览器。因为在工作中经常需要 ssh 登录服务器进行编程开发,我现在已经离不开它了。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-12-18.png" +width="701" +height="419" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +></p> +</li> +<li> +<p><a class="link" href="https://oimo.io/works/" target="_blank" rel="noopener" +>一个有趣的个人网站</a>,作者是一个日本在读博士生,网站放了一些个人的编程作品,主要跟物理模拟、像素艺术有关。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-14-33.png" +width="915" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="203" +data-flex-basis="488px" +></p> +</li> +<li> +<p><a class="link" href="https://www.hello-algo.com/" target="_blank" rel="noopener" +>你好,算法</a>,一本开源电子书,可在线阅读,深入浅出讲解数据结构和算法,生动有趣,适合有一定编程基础但是算法这块有些薄弱的爱好者阅读。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-20-26.png" +width="3144" +height="2319" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +></p> +</li> +<li> +<p><a class="link" href="https://nbviewer.org/github/gpeyre/numerical-tours/blob/master/python/ml_6_nn.ipynb" target="_blank" rel="noopener" +>神经网络在线教程</a>,一套神经网络编程教程,提供在线的 python 代码阅读环境,适合作为入门资料学习。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-013-%E6%9C%9F/2022-12-21-10-23-10.png" +width="388" +height="262" +loading="lazy" +class="gallery-image" +data-flex-grow="148" +data-flex-basis="355px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 011 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/Wed, 07 Dec 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/<h1 id="机器文摘-第-011-期">机器文摘 第 011 期</h1> +<h2 id="长文">长文</h2> +<h3 id="自己动手做一个天气墨水屏">自己动手做一个天气墨水屏</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-13-22.png" +width="617" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +> +有个喜欢动手的哥们,发现了自己及家人的一项小需求,即从家出门的时候想快速知道天气情况。</p> +<p>虽然这种需求抬眼看一下手机也能实现,但是本着“懒惰使人进步”的核心思想(作者懒得掏出手机)他动手实现了一套基于电池供电的可以显示天气预报信息的电子墨水屏。</p> +<p>这篇<a class="link" href="https://kimmo.blog/posts/7-building-eink-weather-display-for-our-home/" target="_blank" rel="noopener" +>《做一个天气墨水屏》</a>记录了作者从诞生点子到产品出炉的全过程。</p> +<p>另外作者还开源了项目的源代码,<a class="link" href="https://github.com/kimmobrunfeldt/eink-weather-display" target="_blank" rel="noopener" +>可在这里获取</a>。</p> +<h3 id="m1-gpu-的故事">M1 GPU 的故事</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-21-23.png" +width="985" +height="614" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +> +GPU 大家都知道,<a class="link" href="https://asahilinux.org/2022/11/tales-of-the-m1-gpu/" target="_blank" rel="noopener" +>这里有篇文章介绍了它的工作细节</a>。</p> +<p>作者来自一个给苹果 M1 芯片适配 Linux 驱动的团队(苹果官方不提供驱动,所以这意味着需要做一些逆向工程)。</p> +<p>本文记录了这些工作中比较有趣的部分,还顺便介绍了 GPU 的一些底层工作原理。</p> +<h3 id="在-commodore-64-上实现位图滚动条的显示">在 Commodore 64 上实现位图滚动条的显示</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-37-41.png" +width="386" +height="338" +loading="lazy" +class="gallery-image" +data-flex-grow="114" +data-flex-basis="274px" +> +Demosense 是一项挖掘计算机硬件机能极限的活动。</p> +<p>通常创作者们会通过各种编程技巧来实现看似无法达到的效果。</p> +<p>由于 Commodore 64 这台古董电脑十分经典,现在仍有不少Demosense爱好者在为它开发程序。</p> +<p><a class="link" href="https://www.c64demo.com/side-border-bitmap-scroller/" target="_blank" rel="noopener" +>这篇文章</a>讲述了著名 C64 demo 程序 <a class="link" href="https://csdb.dk/release/?id=195841" target="_blank" rel="noopener" +>Memento Mori</a> 的实现过程,程序在 Commodore 64 上显示了一副巨大(对于C64来说)的图片。</p> +<p>这在圈内属于首创。</p> +<h3 id="动手做一个-4-位-cpu">动手做一个 4 位 CPU</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-43-28.png" +width="496" +height="370" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="321px" +> +计算机组成原理是不是还没学明白?没关系,我们可以自己亲手做一个简单的 CPU 。</p> +<p><a class="link" href="https://www.bigmessowires.com/nibbler/" target="_blank" rel="noopener" +>Nibbler</a> 是一款 4 位 CPU,使用标准 7400 系列逻辑芯片(单个计数器、寄存器、缓冲器和门)构建而成。是一个简单 CPU 的教育示例,易于理解和构建,但仍然能够运行游戏和其他有趣的程序。Nibbler 在 5 x 4 英寸(127 x 102 毫米)穿孔板上使用绕线制造。CPU总共包含17个芯片。</p> +<p>作者公开了设计图纸和相关资料,可在文章内部的链接中获取。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="http://www.craftinginterpreters.com/" target="_blank" rel="noopener" +>纯手撸一个解释器</a>,编译原理没学明白没关系,这本在线电子书手把手教你写一个自己的解释器。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-51-28.png" +width="593" +height="182" +loading="lazy" +class="gallery-image" +data-flex-grow="325" +data-flex-basis="781px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/k88hudson/git-flight-rules/blob/master/README_zh-CN.md" target="_blank" rel="noopener" +>Git 飞行规则 (Flight Rules)</a> ,一个十分全面的 Git 使用指南,把你能遇到的情况都想到了。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-54-49.png" +width="532" +height="541" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="236px" +></p> +</li> +<li> +<p><a class="link" href="https://thevaluable.dev/vim-advanced/" target="_blank" rel="noopener" +>Vim 高级进阶</a>,如果你已经学会了怎么退出 Vim,恭喜你,已经击败了 80% 的选手。想要在 Vim 中进行更高效的编辑操作,这份高手指南十分适合作为参考。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-57-10.png" +width="776" +height="511" +loading="lazy" +class="gallery-image" +data-flex-grow="151" +data-flex-basis="364px" +></p> +</li> +<li> +<p><a class="link" href="https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/" target="_blank" rel="noopener" +>Flexbox 布局交互指南</a>,这篇在线教程讲解了如何使用 Flexbox 进行页面布局,难能可贵的是直接在页面中提供了交互操作界面,可以一遍学一遍实践,非常方便。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-09-59-27.png" +width="743" +height="448" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="398px" +></p> +</li> +<li> +<p><a class="link" href="https://www.makesense.ai/" target="_blank" rel="noopener" +>在线 AI 标注工具</a>,想要训练自己的 AI 模型,比如目标检测、图像分类等等,可以使用这个在线工具进行数据标注,直接上传图片然后在线标注,完成后可导出 VOC、Coco 等格式的数据集。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-011-%E6%9C%9F/2022-12-07-10-02-46.png" +width="628" +height="391" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 010 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/Tue, 29 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/<h1 id="机器文摘-第-010-期">机器文摘 第 010 期</h1> +<h2 id="长文">长文</h2> +<h3 id="极客摄影指南">极客摄影指南</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-11-12.png" +width="1235" +height="841" +loading="lazy" +class="gallery-image" +data-flex-grow="146" +data-flex-basis="352px" +> +相机,也是机器的一种。</p> +<p>我用它记录生活,捕捉生活中转瞬即逝的美好瞬间。</p> +<p>有个问题一直困扰着我,怎样拍出不那么“到此一游”的照片?</p> +<p>怎样才能“掌控”相机这个机器?</p> +<p>这篇<a class="link" href="https://lcamtuf.coredump.cx/photo_basics/" target="_blank" rel="noopener" +>《极客摄影》(英文)</a>能够帮助你对摄影做一个真正深入的理解(而不是学习那些充斥社交平台的各种浮于表面的“技巧”)。</p> +<p>作者是一个热爱摄影的技术男,有二十多年摄影经验。</p> +<p>听他给你讲讲什么是“光”和“构图”。</p> +<p>一篇就够了。</p> +<h3 id="ms-dos-背后的设计">MS-DOS 背后的设计</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-24-37.png" +width="480" +height="512" +loading="lazy" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="225px" +></p> +<p>包括我在内的不少 80 后接触电脑是从 MS-DOS 开始的。</p> +<p>对于它的黑窗口和命令行都有着很深的印象。</p> +<p>上大学时执行最多的命令是<code>format c: /s /q</code></p> +<p>当年还玩过不少在 DOS 平台的游戏,比如仙剑奇侠传、主题医院等等。</p> +<p>只是当时没工夫对系统本身做深入了解。</p> +<p>顶多是,自己在学习汇编语言时,对 DOS 又仔细端详了几眼。</p> +<p>这篇<a class="link" href="https://patersontech.com/Dos/Byte/InsideDos.htm" target="_blank" rel="noopener" +>《凑近看看 MS-DOS 》(英文)</a>,介绍了 DOS 系统的设计标准、内存分配、磁盘文件结构、FAT文件系统的技术细节等等。</p> +<p>想要窥探技术细节的可以点进去看看。</p> +<h3 id="构建最快的-lua-解释器">构建最快的 Lua 解释器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-14-45-43.png" +width="645" +height="386" +loading="lazy" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="401px" +> +给动态语言编写解释器可能不算太难(如果只是能跑的话)。</p> +<p>但是如果要编写一个高性能的、好用的动态语言解释器,比如像谷歌浏览器所用的 V8 引擎那样,就比较困难了。</p> +<p><a class="link" href="https://sillycross.github.io/2022/11/22/2022-11-22/" target="_blank" rel="noopener" +>《构建最快的 Lua 解释器》</a>这篇文章站在更高维度提供一种方法,即:编写一种可以自动生成编译器(解释器)代码的程序,以使得制作高性能解释器变得更加容易。</p> +<p>我看了一下,大概就是自动化生成之前需要手工处理的编译器优化代码。作为编译原理学的不怎么明白的我,对此不敢评论。</p> +<h3 id="为什么-linux-内核没有单元测试">为什么 Linux 内核没有单元测试?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-14-46.png" +width="637" +height="411" +loading="lazy" +class="gallery-image" +data-flex-grow="154" +data-flex-basis="371px" +> +我对单元测试的态度一般,既不强烈支持,也不反对。</p> +<p>听说有的开发团队由于对于单元测试十分狂热,已经到了不允许写注释,都用单元测试替代的地步。</p> +<p>前不久,在 HN 上有网友发起了一个引战的讨论:“<a class="link" href="https://news.ycombinator.com/item?id=33742130" target="_blank" rel="noopener" +>既然单元测试这么好,为什么 Linux 内核源码不用呢?</a>”</p> +<p>以下为部分观点:</p> +<blockquote> +<p>单元测试被严重高估了,TDD有一些好主意,但有一段时间它变成了一种宗教。</p> +</blockquote> +<blockquote> +<p>单元测试与TDD宗教不是一回事。它只是意味着将事物划分为小单元并尽可能详尽地测试其功能。</p> +</blockquote> +<blockquote> +<p>SQLite不是反例吗?他们有更多的单元测试代码,而不是实际运行的代码。</p> +</blockquote> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/jackfrued/Python-100-Days" target="_blank" rel="noopener" +>Python 100 天从入门到精通</a>,Python 好学吗?好学又不好学,上手容易,精通难。这里有套开源教程囊括了从入门到实战应用(语言基础、数据处理、Web开发、网络开发、爬虫、深度学习等)的所有课程。这个仓库目前已经在 Github 上获得了 12 万star。可以说是好评如潮,想深入学习 Python 的不容错过。赶紧到我收藏夹里吃灰。</p> +</li> +<li> +<p><a class="link" href="https://wokwi.com/" target="_blank" rel="noopener" +>在线单片机模拟器</a>,想要学习单片机开发,又没有硬件设备吗?这个网站最合适。不需要担心手残不会电烙铁,也不用担心买不到芯片。直接在线进行模拟接线,直接运行编写的代码,结果实时展现。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-31-31.png" +width="878" +height="661" +loading="lazy" +class="gallery-image" +data-flex-grow="132" +data-flex-basis="318px" +></p> +</li> +<li> +<p><a class="link" href="https://slowroads.io/" target="_blank" rel="noopener" +>slow roads</a>,一个在线赛车游戏。基于网页制作。亮点在于作者实现了无限地图。所有地形和道路均使用程序生成。游戏有自动驾驶模式,如果只想观赏路边风景的话,可以开启。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-36-44.png" +width="1736" +height="855" +loading="lazy" +class="gallery-image" +data-flex-grow="203" +data-flex-basis="487px" +></p> +</li> +<li> +<p><a class="link" href="https://tic80.com/" target="_blank" rel="noopener" +>TIC-80</a>,TIC-80 是一台用于制作、播放和分享小型游戏的幻想计算机。有内置的开发工具:代码、sprites、地图、声音编辑器和命令行,这足以创建一个迷你复古游戏。在退出时,你将得到一个盒式文件,它可以在网站上存储和播放。 +另外,游戏可以打包成一个播放器,可以在所有流行的平台上运行,并按你的意愿分发。为了制作一个复古风格的游戏,整个创作过程是在一些技术限制下进行的。240x136 像素的显示屏,16 种颜色的调色板,256 个 8x8 的彩色 sprites,4 channel sound 等等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-010-%E6%9C%9F/2022-11-29-15-42-20.png" +width="490" +height="279" +loading="lazy" +class="gallery-image" +data-flex-grow="175" +data-flex-basis="421px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 009 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/Mon, 21 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/<h1 id="机器文摘-第-009-期">机器文摘 第 009 期</h1> +<h2 id="长文">长文</h2> +<h3 id="游戏中的精灵">游戏中的“精灵”</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-14-24-20.png" +width="729" +height="409" +loading="lazy" +class="gallery-image" +data-flex-grow="178" +data-flex-basis="427px" +> +<a class="link" href="https://zh.wikipedia.org/wiki/%E7%B2%BE%E7%81%B5%E5%9B%BE" target="_blank" rel="noopener" +>精灵(sprite)</a>这个词来自古法语单词“esprit”,意思是“精神”——源自拉丁语“spiritus”。在民间传说中,精灵是活泼、俏皮和神奇的小生物。然而对于游戏开发者来说,它又是另一个含义了。</p> +<p>这篇<a class="link" href="https://wireframe.raspberrypi.com/articles/the-surprising-history-of-sprites" target="_blank" rel="noopener" +>《精灵的惊人历史》(英文)</a>,介绍了不同的游戏厂商,在早期硬件机能有限的条件下,如何实现“角色在屏幕上移动”这个现在看似十分简单的事情的。</p> +<p>对于不了解“精灵”的含义的,稍作如下解释:</p> +<blockquote> +<p>2D 游戏在处理需要动起来的角色时,出于性能考虑,将一部分图形的绘制与背景画面的绘制分开,对于频繁需要刷新(动起来的)部分,单独处理,使他们感觉像是漂浮在背景画面的“幽灵”似的,故名“精灵”。</p> +</blockquote> +<h3 id="任天堂-nes-的一些技术细节">任天堂 NES 的一些技术细节</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-14-41-33.png" +width="507" +height="477" +loading="lazy" +class="gallery-image" +data-flex-grow="106" +data-flex-basis="255px" +> +NES 是任天堂推出一款极其成功的家用游戏机(NES : Nintendo Entertainment ,System 是其在北美发售的名称,亚洲叫 FC :Family Computer),不少80、90后的朋友应该都玩过(或者是国内山寨厂商仿制的*霸王之类)。</p> +<p>NES 使用极其经典的 6502 CPU。这块 CPU 有多经典呢,苹果的 Apple1代2代 、史上销量第一的个人电脑 Commodore 64 、国内早年比较流行的文曲星等,使用的都是这个 CPU。</p> +<p><a class="link" href="https://medium.com/@fogleman/i-made-an-nes-emulator-here-s-what-i-learned-about-the-original-nintendo-2e078c9b28fe" target="_blank" rel="noopener" +>《我做了一个 NES 模拟器》(英文)</a>,这篇文章的作者在编写模拟器的过程中挖出了不少技术细节,里面还提到了硬件存在的各种 BUG (没错,要模拟的话必须连 BUG 都得模拟,不然有些游戏玩不了),想要了解的朋友可以点进去看一下。</p> +<p>作为模拟器爱好者,我对 6502 处理器非常好奇,一度希望自己动手也实现一个,而且这款处理器真的非常适合模拟器入门,毕竟只有三个寄存器和百十条指令。</p> +<p><a class="link" href="https://github.com/fogleman/nes" target="_blank" rel="noopener" +>文中提到的 NES 模拟器在 Github 上开放了源码</a>,有兴趣的可以学习。</p> +<h3 id="一个桌面开发程序员为了学习-javascript-而手撸了一个基于-webgl-的游戏引擎">一个桌面开发程序员为了学习 Javascript 而手撸了一个基于 WebGL 的游戏引擎</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-11-11.png" +width="780" +height="448" +loading="lazy" +class="gallery-image" +data-flex-grow="174" +data-flex-basis="417px" +> +学习一样技能最好的方式就是动手去做。</p> +<p>当我感叹牛人怎么那么厉害的时候,往往忽略了牛人的学习过程。</p> +<p>以为他们天生就那样。</p> +<p>事实上他们的技能也是靠努力训练得来的。</p> +<p>不过,学习方法确实很重要。</p> +<p><a class="link" href="http://zephyrosanemos.com/" target="_blank" rel="noopener" +>《我对 Javascript 的尝试》(英文)</a>,这篇文章的作者原本是一个桌面程序开发者(类似 CAD 软件之类)。</p> +<p>他突然想要学习前端开发,掌握 Javascript 语言。</p> +<p>于是结合自己之前的知识,使用前端技术做了一套很优秀的 Demo 程序,一个性能和外观都很不错的游戏引擎。</p> +<p>文章里作者详细介绍了实现过程中对技术、算法的选择等等。</p> +<p>内容很长,但还算友好,比较干货。</p> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://roadmap.sh/" target="_blank" rel="noopener" +>开发者之路</a>,汇总了各个技术路线的学习资料,包括前端、后端、运维、计算机科学、区块链、移动端、质量管理等等。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-24-33.png" +width="753" +height="455" +loading="lazy" +class="gallery-image" +data-flex-grow="165" +data-flex-basis="397px" +> +总之极其全面。 +目前在 Github 有两百多万个 star,被 fork 了 三十多万次。</li> +<li><a class="link" href="https://crxdl.com/" target="_blank" rel="noopener" +>chrome 插件下载</a>,访问谷歌浏览器插件商店有困难吗?试试这个网站,可以直接下载插件的包文件,下载后拖入浏览器即可安装。不过我已经转换到微软的 Edge 阵营了,用不到这个了。</li> +<li><a class="link" href="https://www.toptal.com/developers/css3maker" target="_blank" rel="noopener" +>CSS3 生成器</a>,对于 CSS 的属性参数总是记不住,这个网站就很适合我。每次要调背景渐变、圆角、阴影、动画曲线等等,都得现去搜。有了这个网站,在线点点拖拖,直接复制代码即可。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-15-33-35.png" +width="1288" +height="660" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +></li> +<li><a class="link" href="https://tesseract.projectnaptha.com/" target="_blank" rel="noopener" +>tesseract.js</a>,可直接在浏览器里运行的 OCR 引擎,支持多国语言(超过 100 种)文字识别。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-21-16-16-10.png" +width="1039" +height="439" +loading="lazy" +class="gallery-image" +data-flex-grow="236" +data-flex-basis="568px" +></li> +<li><a class="link" href="https://www.aichpoem.net/#/shisanbai/poem" target="_blank" rel="noopener" +>AI 在线写诗</a>,比较全面的 AI 写诗工具,可以写律诗、绝句、现代诗、歌词等等,根据输入的主题任意发挥。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-23-10-36-44.png" +width="846" +height="502" +loading="lazy" +class="gallery-image" +data-flex-grow="168" +data-flex-basis="404px" +></li> +<li><a class="link" href="https://www.upscale.media/zh" target="_blank" rel="noopener" +>图片分辨率在线提升</a>,上传图片,网站使用 AI 算法将图片的清晰度自动提升,效果还不错。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-009-%E6%9C%9F/2022-11-23-10-41-36.png" +width="1087" +height="693" +loading="lazy" +class="gallery-image" +data-flex-grow="156" +data-flex-basis="376px" +></li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 008 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/Wed, 16 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/<h1 id="机器文摘-第-008-期">机器文摘 第 008 期</h1> +<h2 id="长文">长文</h2> +<h3 id="用好-github给自己建立一个全方位的私有云平台">用好 GitHub,给自己建立一个全方位的私有云平台</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-24-41.png" +width="754" +height="393" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="460px" +> +很多人都有进行个人的知识管理和数字资源管理的需求,市面上也有很多软件工具或者平台来满足这样的需求,但是大部分都是收费的,且自由度不高。我个人经常使用 Github 作为知识管理仓库,我的网络日志、技术博客、私人小项目、电子书籍等都放在上面,生活中已经离不开这个网站了。</p> +<p>近期读到这样一篇文章&ndash;<a class="link" href="https://www.bmpi.dev/self/use-github-better/" target="_blank" rel="noopener" +>善用 Github</a>,全方位讲解了 Github 如何使用,如何将其提供的服务发挥最大化的作用,看完受益匪浅。</p> +<blockquote> +<p>GitHub 是微软旗下的一个在线软件源代码托管服务平台,也是一个拥有八千多万开发者用户的社区。很多开发者应该对GitHub有一定的了解,但非技术人员大多可能并不会去使用它。本文更多是想给非技术人员来介绍这个平台,看完这篇文章,希望能让更多人在上面来学习、创作与展示自己的作品。</p> +</blockquote> +<h3 id="webgpu-是什么跟-webgl-有什么关系">WebGPU 是什么?跟 WebGL 有什么关系?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-36-12.png" +width="846" +height="433" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="468px" +> +前几天我想在网页上制作一个小游戏,用于尝试一下图形编程相关的技术。用到了一些基于 Web 技术的 3d 图形框架,比如 Three.js、Babylon.js 等等。在尝试的过程中遇到了一个新的名词 WebGPU,之前总是在听说 WebGL 相关的技术,结果说了这么多年,WebGL还没普及,怎么又冒出来一个 WebGPU?于是找了一篇文章,浅扒一下各个图形接口的历史。就是这篇<a class="link" href="https://www.51cto.com/article/698100.html" target="_blank" rel="noopener" +>浅入浅出 WebGPU</a>。</p> +<blockquote> +<p>2016年6月,Google 产生了使用新API来代替WebGL的想法,称之为 WebGL Next。 +2017年1月,Khronos Group 举办了WebGL Next研讨会,Chromium一马当先,展示了可以基于OpenGL和Metal独立运行的新图形系统原型,同时Apple和Mozilla也分别展示了自己的原型,三者都非常类似于Metal Api。 +次月,Apple就向W3C提交了一个名为 WebGPU 的技术概念验证方案,基于Metal图形开放接口,最终W3C采纳了 WebGPU 这个名字作为下一代标准,Apple的提案进入了正式的小组提案中。 +3月,Mozilla向Khronos Group提交了基于Vulkan的名为WebGL Next提案。 +2018年6月,Chrome团队宣布着手实现WebGPU,这意味着Khronos的失败,WebGPU胜出,大家以后还是团结在W3C的周围。 +按照预期,工作组希望在2021年底发布WebGPU 1.0 标准,不过目前只有草案。 +WebGPU 1.0 草案:https://www.w3.org/standards/types#WD</p> +</blockquote> +<h3 id="扔掉-photoshop-改用字符串绘图">扔掉 Photoshop 改用字符串绘图</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-09-58-00.png" +width="761" +height="741" +loading="lazy" +class="gallery-image" +data-flex-grow="102" +data-flex-basis="246px" +> +相信很多人都接触过使用字符绘制的图片,这在程序员圈子里甚至发展为一门专有的艺术 “<a class="link" href="https://zh.wikipedia.org/wiki/ASCII%E8%89%BA%E6%9C%AF" target="_blank" rel="noopener" +>ASCII 艺术</a>”。不过我现在不是要说这些,我在一篇 2015 年发表的文章里,发现了这个:有个猛男在自己的程序里彻底抛弃使用 Photoshop 制作的图片资源,改用字符串来描述各种图形(程序界面的图标),然后自己再用代码将其渲染成为高清的图像。</p> +<p>作者对此很沾沾自喜,他甚至设计了一套自用的语法规范,用特定字母代表特定的符号关系,这样就可以组合出各种复杂的图案了。</p> +<p>我也在文章的评论区见到了跟我有同样疑惑的读者留言:“这不就是重新发明了 <a class="link" href="https://zh.wikipedia.org/wiki/%E5%8F%AF%E7%B8%AE%E6%94%BE%E5%90%91%E9%87%8F%E5%9C%96%E5%BD%A2" target="_blank" rel="noopener" +>SVG</a> 吗?唯一的区别就是没有用 XML 作为载体”。</p> +<p>不过文章记录的整个开发过程还是很有趣的,希望了解朋友可以点进去看看 <a class="link" href="http://cocoamine.net/blog/2015/03/20/replacing-photoshop-with-nsstring/" target="_blank" rel="noopener" +>Replacing Photoshop With NSString</a></p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://ffmpeg.xianwaizhiyin.net/" target="_blank" rel="noopener" +>FFmpeg原理</a>,FFmpeg 这个开源项目可能圈外的人士了解不多,但实际上我们生活中一刻也离不开它。现在的网络直播、网络视频网站和移动App、各种视频剪辑合成软件,都或多或少的使用了 FFmpeg 提供的编解码技术。这本在线书籍对于想进一步了解 FFmpeg 以及视频编解码技术的朋友是个不错的参考资料。</p> +<blockquote> +<p>本书《FFmpeg原理》主要讲解 FFmpeg 原理性的知识,前面几章主要讲解一些音视频开发的基础知识,例如原始数据 YUV 跟 RGB,封装格式 FLV 跟 MP4 ,压缩编码的基本概念,还有封装格式分析。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://rustdesk.com/zh/" target="_blank" rel="noopener" +>开源虚拟与远程桌面基础架构</a>,远程桌面软件,开箱即用,无需任何配置。(我个人目前还是使用windows的远程桌面多一些,不过这个开源的rustdesk看起来不错)</p> +<blockquote> +<p>您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器,或者自建,亦或者开发您的版本 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-26-09.png" +width="1388" +height="701" +loading="lazy" +class="gallery-image" +data-flex-grow="198" +data-flex-basis="475px" +></p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://learnxinyminutes.com/" target="_blank" rel="noopener" +>Learn X in Y minutes</a>,这里的教程几乎涵盖所有编程语言,完全没有废话。英文版、中文版都有。如果有编程语言基础的话,通过这个网站确实可以在几十分钟内掌握一门新的编程语言的核心知识。</p> +</li> +<li> +<p><a class="link" href="https://flash.zczc.cz/" target="_blank" rel="noopener" +>Flash 保存计划</a>,Flash 虽然消失了,但是它曾经创造的辉煌一直在我们的记忆里,现在偶尔还想起一些经典的小游戏。这个网站里收藏了很多经典的Flash小游戏,通过一些黑科技复活了它们,可以在浏览器里运行体验。反正我一打开了黄金矿工,就半天停不下来。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-34-57.png" +width="1142" +height="554" +loading="lazy" +class="gallery-image" +data-flex-grow="206" +data-flex-basis="494px" +></p> +</li> +<li> +<p><a class="link" href="https://keg.cs.tsinghua.edu.cn/codegeex/index_zh.html" target="_blank" rel="noopener" +>CodeGeeX: 多语言代码生成模型</a>,又一个能帮你写代码的 AI 模型。提供有官方的 VSCode 插件。我试了一下,效果跟 Github 的 copilot 还有一定的差距。</p> +<blockquote> +<p>CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2022年6月22日,CodeGeeX历时两个月在20多种编程语言的代码语料库(&gt;8500亿Token)上预训练得到</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://iximiuz.com/en/series/computer-networking-fundamentals/" target="_blank" rel="noopener" +>计算机网络基础学习(英文)</a>,一个在线讲解网络基础知识的教程,优点是内容简洁,不用特别多的专用名词唬人,另外还提供了在线实验的环境。</p> +<blockquote> +<p>关于计算机网络的书籍往往令人生畏 - 数千页,无聊的图表&hellip;&hellip;这个教程以几千字的字数引导您了解网络基础知识!它还提供动手实验室来实践所获得的知识。</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-008-%E6%9C%9F/2022-11-16-10-51-40.png" +width="764" +height="476" +loading="lazy" +class="gallery-image" +data-flex-grow="160" +data-flex-basis="385px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 007 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/Wed, 09 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/<h1 id="机器文摘-第-007-期">机器文摘 第 007 期</h1> +<h2 id="长文">长文</h2> +<h3 id="如何在-html5-canvas-制作可精确控制时间的动画">如何在 HTML5 Canvas 制作可精确控制时间的动画</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-09-30-08.png" +width="576" +height="337" +loading="lazy" +class="gallery-image" +data-flex-grow="170" +data-flex-basis="410px" +></p> +<p>使用 Canvas 对象在网页中制作动画非常简单,有不少人喜欢直接使用定时器 <code>setinterval</code> 以一定的时间周期循环执行绘图代码来实现动画效果。但是这种做法有一个弊端,由于显示刷新率以及计算机硬件性能的不同,会导致在不同机器上的表现差异。比如你希望你的动画角色在 1 秒内移动 50 个像素,但是实际执行起来却很难控制。<a class="link" href="https://www.viget.com/articles/time-based-animation/" target="_blank" rel="noopener" +>基于时间的动画</a>这篇文章讲解了如何使用浏览器的 <code>requestAnimationFrame</code> API 来实现精准控制动画时间的效果,里面给出了一个很简单的样例,但是基本上给出了一个完整的“更新、渲染、通过时间变化计算运动距离”的游戏控制架构。</p> +<h3 id="如何使用纯-web-技术开发一个相机-app">如何使用纯 Web 技术开发一个相机 App</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-09-47-44.png" +width="680" +height="475" +loading="lazy" +class="gallery-image" +data-flex-grow="143" +data-flex-basis="343px" +></p> +<p>如果不习惯复杂的移动 app 开发环境,直接使用 Web 技术开发一些小的 App 也是十分方便的。我近期希望通过网页实现一个拍照的应用,并且希望不使用手机的原生相机功能,而是自己控制一些相机参数、后期效果、增加特定的取景框等等。于是我找到了一篇教学指南:<a class="link" href="https://blog.prototypr.io/make-a-camera-web-app-tutorial-part-1-ec284af8dddf" target="_blank" rel="noopener" +>Make a Camera Web App</a>,只需几十行代码就实现了一个相机 App 。感兴趣的朋友可以点进去看看。</p> +<h3 id="数据库是如何工作的从零开始写一个数据库">数据库是如何工作的,从零开始写一个数据库</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-01-15.png" +width="390" +height="394" +loading="lazy" +class="gallery-image" +data-flex-grow="98" +data-flex-basis="237px" +></p> +<p>如果和我一样好奇数据库是如何实现的,可以看看<a class="link" href="https://cstack.github.io/db_tutorial/" target="_blank" rel="noopener" +>这篇文章</a>。带你用 C 语言从头撸一个数据库出来。</p> +<h3 id="使用-rust-写一个操作系统">使用 Rust 写一个操作系统</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-05-43.png" +width="702" +height="518" +loading="lazy" +class="gallery-image" +data-flex-grow="135" +data-flex-basis="325px" +></p> +<p>Rust 逐渐火起来了,这篇 <a class="link" href="https://os.phil-opp.com/zh-CN/" target="_blank" rel="noopener" +>2018 年的文章</a>整理了一份教程,作者尝试使用 Rust 写一个操作系统,我之所以收录它是因为作者还在 Github 开源了代码,并且这系列教程甚至提供了多国语言的版本。制作精良。应该是实践操作系统知识的好教材。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://100dayscss.com/" target="_blank" rel="noopener" +>100 天精通 CSS </a>,这个网站给了你 100 个关于 CSS 技术的挑战题目,也许练完之后可以达到深入应用 CSS 的效果,我尝试了几个挑战,有些题目的设置有些偏炫技范畴了,想在工作中使用估计会被打死。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-24-10.png" +width="392" +height="391" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p> +</li> +<li> +<p><a class="link" href="http://cht.sh/" target="_blank" rel="noopener" +>Linux 命令在线帮助工具</a>,对于我这种经常记不住命令用法的人来说真的是一种福音。比如我就经常记不清 <code>tar</code> 命令的用法,面对压缩包解压或者文件打包的工作每次都是去网上搜索一番。有了这个在线工具,直接在命令行中使用 <code>curl</code>请求他的网址就可给出命令的样例用法详解,非常方便。比如执行<code>curl cht.sh/tar</code> 就会给出 tar 的使用样例了,我直接复制粘贴之。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-28-42.png" +width="586" +height="462" +loading="lazy" +class="gallery-image" +data-flex-grow="126" +data-flex-basis="304px" +></p> +</li> +<li> +<p><a class="link" href="https://www.mobilephonemuseum.com/" target="_blank" rel="noopener" +>手机博物馆</a>, 网站收录了各品牌手机的各代产品资料,包括手机图片、型号参数、当时发布的广告等。不过我看了一下,资料应该还不齐全,有些手机只是列了个名字和型号在那儿,还缺少详细信息,估计还在继续收集中。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-32-23.png" +width="1696" +height="790" +loading="lazy" +class="gallery-image" +data-flex-grow="214" +data-flex-basis="515px" +></p> +</li> +<li> +<p><a class="link" href="http://www.famicn.com/" target="_blank" rel="noopener" +>中文家用游戏博物馆</a> ,收录了比较齐全的家用游戏机及掌机的中文版游戏资料。可以直接在线通过模拟器玩耍。有不少经典的 FC、GB、MD 游戏,甚至还有小霸王学习机的 ROM ,可以在线体验。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-007-%E6%9C%9F/2022-11-09-10-36-51.png" +width="1096" +height="711" +loading="lazy" +class="gallery-image" +data-flex-grow="154" +data-flex-basis="369px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 006 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/Wed, 02 Nov 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/<h1 id="机器文摘-第-006-期">机器文摘 第 006 期</h1> +<h2 id="长文">长文</h2> +<h3 id="怎样写一段代码把自己打印出来">怎样写一段代码把自己打印出来?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-13-45-45.png" +width="651" +height="400" +loading="lazy" +class="gallery-image" +data-flex-grow="162" +data-flex-basis="390px" +></p> +<p>近期在知乎上看到一个<a class="link" href="https://www.zhihu.com/question/22006572/answer/2722369370" target="_blank" rel="noopener" +>如何编写代码打印自己的问题</a>,感到十分有趣。以前也在网上见到过类似的代码,用 C 或者 Javascript 等各种语言实现的版本都有。当时只是感叹代码写的十分神奇,一段代码在运行之后竟然输出自己的源代码,而且一个字符也不差,并没有搞懂其中的原理。这篇回答里,作者给出了详细解释。并指出,冯·诺依曼早在他编写的《自复制元胞自动机理论》一书中的提出了这种事情在理论上的通用方法。</p> +<blockquote> +<p>如上图所示,自复制系统有五个基本部件:A:通用构造器;B:通用复制器;C:控制器;D:其他函数;ϕ(A,B,C,D)\phi(A,B,C,D)\phi(A,B,C,D) : A, B, C, D的编码;当自复制过程启动的时候,B将编码复制一份。A再根据复制出的编码构造出ABCD。最后,C再将这些结构组合起来,构造出一个新的、复制的结构。可以看到,自复制、自打印程序的核心就在于通用构造器和编码,因为复制器、控制器都是比较容易实现的。</p> +</blockquote> +<p>具体实现的示例,文中有更详细的说明。</p> +<p>最后,此问题可以引申到,大自然中生命基于基因的复制机制,也是与此相关,甚至其背后都是同样的机制。</p> +<h3 id="kevin-kelly-在-68-岁生日时给出的-68-条建议">Kevin Kelly 在 68 岁生日时给出的 68 条建议</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-01-30.png" +width="688" +height="368" +loading="lazy" +class="gallery-image" +data-flex-grow="186" +data-flex-basis="448px" +></p> +<p><a class="link" href="https://baike.baidu.com/item/%E5%87%AF%E6%96%87%C2%B7%E5%87%AF%E5%88%A9/6607570" target="_blank" rel="noopener" +>凯文·凯利(又称KK, 作者,著有《失控》《科技想要什么》《必然》等)</a>,上个月 28 号是他的 68 岁生日,他准备了 68 条简短的建议,作为礼物送给年轻人。</p> +<p>有人翻译了<a class="link" href="https://zhuanlan.zhihu.com/p/143834871" target="_blank" rel="noopener" +>KK 在 68 岁生日时给出的 68 条建议</a>。</p> +<p>摘抄几条如下:</p> +<blockquote> +<p>任何一项大工程(修房子、拍电影、开发 app)完成度为 90% 的时候,你都要做好心理准备:剩余的大量细节工作会占掉你另一段与之前相当的时间。</p> +</blockquote> +<blockquote> +<p>不要担心自己问的问题听起来很傻。99% 的情况下,其他人都有和你一样的问题,只不过羞于问出口而已。</p> +</blockquote> +<blockquote> +<p>别成为一群人里最聪明的那个。和那些比你聪明的人待在一起,向他们学习。如果能找到和你观点相左的聪明人,那就更好了。</p> +</blockquote> +<blockquote> +<p>别做最好的。做唯一的。</p> +</blockquote> +<blockquote> +<p>任何真实之物都源于虚构之意。想象是宇宙中最强大的力量,也是你能够日益精进的能力。生命中可以因不知众人所知而获益的能力,仅此一项。</p> +</blockquote> +<blockquote> +<p>经验往往被高估了。招募的时候,要看资质,技能则可以培训。许多令人惊奇和赞叹的事情,都是由第一次做的人做出来的。</p> +</blockquote> +<h3 id="怎样搭建一个最简的-git-服务器">怎样搭建一个最简的 GIT 服务器</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-15-18.png" +width="626" +height="466" +loading="lazy" +class="gallery-image" +data-flex-grow="134" +data-flex-basis="322px" +></p> +<p>GIT 是现在软件开发过程中必不可少的版本控制工具,功能非常强大,我们平时直接使用单位的私有服务或者在线的云服务(如:Github 等)。</p> +<p>如果想要搭建个人的服务,可能就比较繁琐一些。<a class="link" href="https://www.ruanyifeng.com/blog/2022/10/git-server.html" target="_blank" rel="noopener" +>阮一峰老师的这篇博客</a>就解答了怎样采用极简的技术路线,为自己搭建一台 GIT 服务器。</p> +<blockquote> +<p>自己搭建 Git 服务器的原因,无非就是不方便访问外网,不愿意代码放在别人的服务器,或者有一些定制化的需求。 +这时,你可以选择开源的 Git 服务器软件。 +Gitlab CE +Gitea +Gogs +Onedev +这些软件里面,Gogs 的安装是最简单的,但是功能相对比较弱。功能越强的软件,安装越复杂。 +如果你只是想远程保存一份代码,并不在意有没有 Web 界面,或者其他功能,那么根本不用安装上面这些软件,一行命令就够了。</p> +</blockquote> +<h3 id="为什么很多程序员讨厌低代码">为什么很多程序员讨厌低代码?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-24-59.png" +width="640" +height="355" +loading="lazy" +class="gallery-image" +data-flex-grow="180" +data-flex-basis="432px" +></p> +<p>“低代码”(一般指:不用或少用编写代码的方式进行软件开发)这个词近两年又开始火了,它代表着对软件工程的一种美好“幻想”,即:花费更低的代价去构建复杂的软件系统。</p> +<p>虽然每隔一个时间周期都会被重提一次,但是每次都未能如愿。</p> +<p>现在既然又被频繁提及,我在知乎上发现了这样一篇<a class="link" href="https://www.zhihu.com/question/561025857/answer/2734260311" target="_blank" rel="noopener" +>关于低代码话题的回答</a>。从程序员的视角表达了对低代码这种期望的观点,有兴趣的朋友可以点进去看看。</p> +<blockquote> +<p>软件工程这门学问,研究的就是“如何利用工程思想,从整体上降低开发复杂性”;但与之同时,它不得不反复强调“软件工程试图解决的、是人为引入的不必要的复杂性;但工程的本质复杂性是无法逃避的。因为没有银弹,没有银弹,没有银弹!”</p> +</blockquote> +<p>我个人的观点是:低代码或者配置化、拖拽式软件开发,很难平衡对复杂现实的抽象程度和开发便利性的矛盾关系。如何做到既提供方便的组件同时又不限制对个性化需求的实现,这需要非常强大的设计能力以及对于特定应用场景的取舍。目前来看,如果要做到或者接近上述状态,必然要先消耗巨量的成本,至于是否值得,可能不同的主体会有不同的选择吧。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="https://github.com/Visualize-ML/Book4_Power-of-Matrix" target="_blank" rel="noopener" +>从加减乘除到机器学习</a>,一本不错的数学扫盲书,如果你在学习人工智能的时候对数学感到吃力的话,这本书非常适合阅读,一点也不枯燥。主要讲解线性代数相关的知识。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-46-11.png" +width="616" +height="335" +loading="lazy" +class="gallery-image" +data-flex-grow="183" +data-flex-basis="441px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md" target="_blank" rel="noopener" +>命令行的艺术</a> 想成为命令行高手,掌握这一篇就够了。</p> +<blockquote> +<p>熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-006-%E6%9C%9F/2022-11-02-14-47-54.png" +width="477" +height="287" +loading="lazy" +class="gallery-image" +data-flex-grow="166" +data-flex-basis="398px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/practical-tutorials/project-based-learning" target="_blank" rel="noopener" +>基于实际项目的学习</a>,这是一个巨大的代码工程资源索引,里面列举了针对各种编程语言的个人项目,当你不知道该如何去深入学习一门编程语言的时候,选择一个这里的项目然后自己动手跟着练一遍效果绝对惊人。入选的项目都十分有趣,比如怎样用 C 写一个解释器、怎样写一个自己的编辑器、自己动手实现 TCP/IP 协议栈,等等。</p> +</li> +<li> +<p><a class="link" href="https://github.com/lxgw/LxgwWenKai" target="_blank" rel="noopener" +>霞鹜文楷</a>,一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。用来看书非常舒服,特别是在排版上。微信读书已经内置,如果是第三方支持自定义字体的可以试试。</p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 005 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/Wed, 26 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/<h1 id="机器文摘-第-005-期">机器文摘 第 005 期</h1> +<h2 id="长文">长文</h2> +<h3 id="穿越到-1983-年学习-basichttpslinuxcnarticle-11091-1html"><a class="link" href="https://linux.cn/article-11091-1.html" target="_blank" rel="noopener" +>穿越到 1983 年学习 BASIC</a></h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-10-33-53.png" +width="1006" +height="644" +loading="lazy" +class="gallery-image" +data-flex-grow="156" +data-flex-basis="374px" +></p> +<blockquote> +<p>很多著名的程序员,尤其在计算机游戏行业,孩童时期就在苹果 II 和 Commodore 64 这样的 8 位计算机上开始编写游戏,John Romero、Richard Garriott 和 Chris Roberts 都是这样的例子。这好理解。在 8 位计算机时代,很多游戏只能在计算机杂志和书籍中以印刷的 BASIC 程序清单方式得到。如果你想玩其中一款游戏,就必须手工键入整个程序。不可避免的,你可能遇到一些问题,所以你就得调试你的程序。等到你让它可以工作起来了,你就已经对程序是如何运行的有了足够的了解,你就可以开始自己修改它了。如果你是一个狂热的游戏玩家,你几乎必然会成为一名优秀的程序员。</p> +</blockquote> +<p>喜欢小霸王的小伙伴(老伙伴?),不可错过的文章,一起跟随作者回忆一下如何在老古董电脑上运行BASIC程序,顺便怀念一下当年靠着一本说明书就在小霸王学习机上编写(抄写)游戏的时光。</p> +<ul> +<li>文中提到的<a class="link" href="https://vice-emu.sourceforge.io/" target="_blank" rel="noopener" +> Commodore64 电脑可以在这里下载模拟器</a>。</li> +</ul> +<h3 id="在-github-的-pages-服务里跑-sqlitehttpsphireskygithubioblog2021hosting-sqlite-databases-on-github-pages"><a class="link" href="https://phiresky.github.io/blog/2021/hosting-sqlite-databases-on-github-pages/" target="_blank" rel="noopener" +>在 Github 的 Pages 服务里跑 SQLite</a></h3> +<p>作者尝试做一个小网站来显示一些统计数据,于是他想到了用数据库,但是,使用数据库需要托管和维护后端服务,或者每次将整个数据集下载到浏览器中(当数据集超过10MB时,体验就变得很差劲)。</p> +<p>于是作者开始琢磨有没有办法找到一个可以在静态服务器上搞一个数据库服务得可能,毕竟提供静态服务的地方有很多(如 GitHub,GitLab,Netlify 等等)。</p> +<p>一通折腾下来(借助了 WASM 技术并适当的进行一些魔改),作者竟然实现了一个 100% 静态托管的数据库服务。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-10-10-18.png" +width="864" +height="413" +loading="lazy" +class="gallery-image" +data-flex-grow="209" +data-flex-basis="502px" +></p> +<h3 id="语句表达式和海象操作符httpswwwzlovezlcnarticlesstmt-expr-and-walrus-operator"><a class="link" href="https://www.zlovezl.cn/articles/stmt-expr-and-walrus-operator/" target="_blank" rel="noopener" +>语句、表达式和海象操作符</a></h3> +<p>这是一篇介绍如何通过“海象操作符“(类似这样:<code>foo := 'bar'</code>)使得Python语句更加精炼的文章。</p> +<p>这种操作符之所以可以使得语句更加精炼,主要原因就是它使得一句代码既进行了赋值然后又作为表达式返回了值。</p> +<p>之前写 Python 代码的时候都没注意还有这种写法,而且貌似这在 C 和 C++ 中都是基本的特性。不过 C 和 C++ 是赋值语句<code>=</code>直接就返回了表达式的值,同时这给程序员提供了出错机会(有不少人应该还记得条件判断时少写了个等号导致的问题)。</p> +<h3 id="给个人开发者的一些建议英文httpsnewsycombinatorcomitemid32647091"><a class="link" href="https://news.ycombinator.com/item?id=32647091" target="_blank" rel="noopener" +>给个人开发者的一些建议(英文)</a></h3> +<p>hacker news 上的网友针对有志于运营自己的SaaS产品的个人开发者提了一些心得和建议。</p> +<p>摘抄一点儿如下:</p> +<ul> +<li>关于做什么,做那些你自己都愿意付费的东西,别指望做出一个你自己都不想花钱使用的产品有别人来买单;</li> +<li>还是关于做什么,不要做需要漂亮UI的东西,那会让你陷入编码之外的很多麻烦(确实很牵涉精力),如果提供的工具能够通过简单交互就能提供优质服务最佳;</li> +<li>如果有可能,尽量提供自助服务模式,也就是说让用户不用见到你就可以自行操作付款了(作者这是有多社交恐惧?);</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://visualgo.net/zh" target="_blank" rel="noopener" +>数据结构与算法可视化</a>,是一个学习算法知识的好工具。通过动图来演示和讲解数据结构和算法实现原理,针对每一个常用算法不仅有直观的图示,还附有一篇详细的文档,内涵原理知识以及代码实例,网站甚至还提供了答题练习功能,可以一边学习一边做题。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-31-46.png" +width="1072" +height="321" +loading="lazy" +class="gallery-image" +data-flex-grow="333" +data-flex-basis="801px" +></p> +<ul> +<li><a class="link" href="https://lisperator.net/slip/" target="_blank" rel="noopener" +>SLip</a>,一个在浏览器中运行的Lisp解释器,使用Javascript实现。网站提供了一个简易的IDE,可以直接在页面中进行编程开发,还提供了图形绘制的扩展包,用于学习lisp语言非常合适。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-35-46.png" +width="497" +height="363" +loading="lazy" +class="gallery-image" +data-flex-grow="136" +data-flex-basis="328px" +></p> +<ul> +<li><a class="link" href="https://www.lfd.uci.edu/~gohlke/pythonlibs/" target="_blank" rel="noopener" +>针对 Windows 预先编译的 Python 扩展包</a>,在使用Python的时候,尤其是在Windows环境,经常会遇到有些扩展包由于依赖某些二进制库的原因导致无法通过pip直接安装,自己动手编译又十分麻烦。这个网站提供了各种预编译版本,可以直接下载网站提供的whl文件到本地然后安装。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-40-07.png" +width="675" +height="345" +loading="lazy" +class="gallery-image" +data-flex-grow="195" +data-flex-basis="469px" +></p> +<ul> +<li><a class="link" href="https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing" target="_blank" rel="noopener" +> 3D 渲染器入门</a>,一套计算机图形学的入门教程,从原理讲解开始,手把手教你用C++语言编写一个自己的光线追踪渲染器。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-48-21.png" +width="531" +height="361" +loading="lazy" +class="gallery-image" +data-flex-grow="147" +data-flex-basis="353px" +></p> +<ul> +<li><a class="link" href="https://htmldog.com/" target="_blank" rel="noopener" +>HTMLDOG</a>,前端开发基础知识大全,主要是 HTML、CSS、Javascript 的手把手教学以及语言参考。</li> +</ul> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-005-%E6%9C%9F/2022-10-26-09-52-21.png" +width="1862" +height="709" +loading="lazy" +class="gallery-image" +data-flex-grow="262" +data-flex-basis="630px" +></p> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 004 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/Tue, 18 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/<h1 id="机器文摘-第-004-期">机器文摘 第 004 期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-09-53-01.png" +width="324" +height="702" +loading="lazy" +class="gallery-image" +data-flex-grow="46" +data-flex-basis="110px" +></p> +<p>美国德州仪器公司出品的TI图形计算器是一种既能计算又能作图的新型的数学使用工具,它具备符号代数系统、几何操作系统、数据分析系统等,可以直观地绘制各种图形,并进行动态演示、跟踪轨迹。</p> +<p>TI实体计算器的售价十分昂贵(相较于其他消费类计算器),这里有一个开源项目<a class="link" href="http://wabbitemu.org/" target="_blank" rel="noopener" +>wabbitemu</a>,使用C语言编写的一个TI计算器的模拟器,可以在电脑上运行并模拟TI计算器,支持多种型号,如TI-82、TI-83、TI-83-plus(需要加载对应的ROM)等。</p> +<p>甚至有人基于这个项目编译出了Android的版本,安装后手机秒变成高级科学计算器。</p> +<p>想进一步了解TI计算器的强大,可以看一下这篇文章<a class="link" href="https://zhuanlan.zhihu.com/p/148392866" target="_blank" rel="noopener" +>《计算器与计算器游戏发展简史》</a>。</p> +<ul> +<li><a class="link" href="http://www.liubaoyi.com/wp-content/uploads/2014/11/Android_Wabbitemu.zip" target="_blank" rel="noopener" +>TI计算器模拟器安卓版本下载地址(含ROM文件)</a></li> +<li><a class="link" href="http://www.liubaoyi.com/wp-content/uploads/2014/11/CX-C-CAS-%E5%9B%BE%E5%BD%A2%E8%AE%A1%E7%AE%97%E5%99%A8%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97.zip" target="_blank" rel="noopener" +>TI计算器使用说明书</a></li> +</ul> +<p>以上资源来自<a class="link" href="http://www.liubaoyi.com/" target="_blank" rel="noopener" +>@Karen的日志</a></p> +<h2 id="观点">观点</h2> +<blockquote> +<p>社交媒体的正确使用方法: +一,不浪费一秒钟时间和知识结构相差太大的人去解释/讨论。你没有义务也没有这个精力。对任何不友好评论,迅速拉黑。 +二,通过公开展示你的思考,来寻找在知识结构,兴趣或技能上,可能与你产生互补作用,或者 1+1&gt;2 的效应的朋友。公开展示长期留存的文字记录,效率最高。</p> +</blockquote> +<p>来自<a class="link" href="https://weibo.com/5339148412/Mal0hACJr" target="_blank" rel="noopener" +>@硅谷王川</a></p> +<h2 id="长文">长文</h2> +<h3 id="我是如何用21天刷完sicp">我是如何用21天刷完SICP</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-56-50.png" +width="411" +height="300" +loading="lazy" +class="gallery-image" +data-flex-grow="137" +data-flex-basis="328px" +></p> +<p>SICP 全称 Structure and Interpretation of Computer Programs,翻译过来叫《计算机程序的构造和解释》,是一本关于计算机程序设计的总体性观念的基础教科书,由麻省理工学院出版社与麦格罗希尔出版社共同出版营销。作者是麻省理工学院教授哈尔·阿伯尔森、杰拉德·杰伊·萨斯曼。</p> +<p>这本书是计算机编程领域非常经典的一本教科书,内容覆盖范围非常广泛,从编程入门一直到教你亲手设计实现一个编程语言解释器。虽然是一本几十年前的书,但是书中的编程理念如数据驱动、过程抽象等到现在仍不过时。可以说是程序员修炼“内功心法”必读的一本好书。</p> +<p>这篇<a class="link" href="http://numbbbbb.com/2016/03/28/20160328_%E6%88%91%E5%A6%82%E4%BD%95%E7%94%A8%E4%B8%A4%E5%91%A8%E6%97%B6%E9%97%B4%E5%88%B7%E5%AE%8C%20SICP/" target="_blank" rel="noopener" +>《我是如何用21天刷完SICP(中文)》</a>的文章讲述了作者通过阅读本书学习的过程和心得,里面的观点可以借鉴,我在看完之后也想再把这本书拿出来学习一遍。</p> +<p>觉得看书太晦涩的,可以到下面这个项目里下载本书作者课堂讲解视频(国内好心人给做了翻译字幕)</p> +<ul> +<li><a class="link" href="https://learningsicp.github.io/" target="_blank" rel="noopener" +>『计算机程序的结构和解释』公开课 翻译项目</a></li> +<li><a class="link" href="https://pan.baidu.com/s/1o78bsYA" target="_blank" rel="noopener" +>百度网盘SICP文件夹</a></li> +<li><a class="link" href="https://www.bilibili.com/video/av8515129/" target="_blank" rel="noopener" +>中译版视频专辑列表(bilibili)</a></li> +</ul> +<h3 id="图解stable-diffusion模型">图解Stable Diffusion模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-55-05.png" +width="937" +height="387" +loading="lazy" +class="gallery-image" +data-flex-grow="242" +data-flex-basis="581px" +></p> +<p>这篇<a class="link" href="https://jalammar.github.io/illustrated-stable-diffusion/" target="_blank" rel="noopener" +>图解Stable Diffusion模型(英文)</a>详细讲解了 Stable Diffusion(最近比较火的那个可以通过文字描述进行绘图的AI模型)的工作原理。文中使用清晰的图示阐述了“扩散”模型是怎样通过给图片增加噪声一步一步生成图像的。</p> +<h3 id="wine是如何工作的">Wine是如何工作的</h3> +<p>Linux桌面用户都遇到过在不得不运行 Windows 软件的时候,这个时候就可以使用这个叫做 Wine 的兼容程序,它可以让你在 Linux 下执行 win32 程序。( Valve 最新出品的游戏掌机 Steam Dect 就使用了 Wine 作为兼容层来运行 Windows 平台下的游戏)。</p> +<p>Wine 的名字来自于 “Wine Is Not an Emulator” 这个英文缩写。</p> +<p>这篇<a class="link" href="https://werat.dev/blog/how-wine-works-101/" target="_blank" rel="noopener" +>《Wine是如何工作的(英文)》</a>介绍了它的基本工作原理。</p> +<h3 id="在-windows-记事本里运行光线追踪">在 Windows 记事本里运行光线追踪</h3> +<p>光纤追踪(Ray Tracing)是一项计算机图形学技术,使用该技术渲染的计算机图像具有逼真的全局光照效果。</p> +<p>这篇<a class="link" href="http://kylehalladay.com/blog/2020/05/20/Rendering-With-Notepad.html" target="_blank" rel="noopener" +>《记事本中的光线追踪 30FPS》</a>记录了作者突发奇想要在Windows上的记事本中进行光线追踪渲染的趣事。</p> +<p>其原理是通过系统API获取到记事本窗口的句柄,然后利用钩子函数给记事本的窗体发送相应的“消息”以及覆盖对应的内存数据来实现对记事本窗体界面的“魔改”。最终实现了在另一个进程里执行光线追踪算法,然后借用记事本中显示的字符来替代画面像素,从而“渲染”出画面的效果。</p> +<h2 id="资源">资源</h2> +<ul> +<li> +<p><a class="link" href="github.com/SerenityOS/serenity" >SerenityOS项目</a>,一个从头开始的桌面操作系统,内核采用类似Unix的架构,界面外观则仿照了上世纪90年代Windows的窗口风格。作者并未将其定位成玩具,而是一款具备生产力的操作系统软件。 除了操作系统本身,这个项目还有配套的编程语言Jakt、自己的浏览器引擎LibWeb和浏览器Ladybird ​​​</p> +</li> +<li> +<p><a class="link" href="https://github.com/ruanyf/document-style-guide" target="_blank" rel="noopener" +>《中文技术文档写作规范》</a>,<a class="link" href="https://www.ruanyifeng.com/blog/" target="_blank" rel="noopener" +>阮一峰老师</a>整理的技术文档写作规范,规定了标题、文本、段落、标点符号等文档元素的使用约定,需要经常编写技术文档的朋友可以收藏看看。</p> +</li> +<li> +<p><a class="link" href="https://freehand.yunwooo.com/" target="_blank" rel="noopener" +>Freehand意绘</a>,一个在线的AI绘图工具,可以根据文字描述帮助你生成图片,界面简洁友好,使用方便。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-10-58-24.png" +width="1063" +height="525" +loading="lazy" +class="gallery-image" +data-flex-grow="202" +data-flex-basis="485px" +></p> +</li> +<li> +<p><a class="link" href="https://github.com/izackwu/TeachYourselfCS-CN" target="_blank" rel="noopener" +>计算机科学自学指南</a>,提供了一份自学计算机科学的全方位资料大全,可以根据内容系统地进行学习计算机科学相关的知识。</p> +<blockquote> +<p>互联网上,到处都有许多的学习资源,然而精华与糟粕并存。你所需要的,不是一个诸如「200+ 免费在线课程」的清单,而是以下问题的答案:</p> +<p>你应当学习 哪些科目,为什么? +对于这些科目,最好的书籍或者视频课程 是什么? +在这份指引中,我们尝试对这些问题做出确定的回答。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://stevens.netmeister.org/631/" target="_blank" rel="noopener" +>UNIX环境中的高级编程</a>,一套编程教程,在课程中,主要学习用C编程语言开发复杂的系统级软件,同时深入了解Unix操作系统(以及属于该家族的所有操作系统,如Linux,BSD,甚至Mac OS X)及其编程环境。</p> +<blockquote> +<p>涵盖的主题将包括用户/内核接口,Unix的基本概念,用户身份验证,基本和高级I / O,文件系统,信号,进程关系和进程间通信。还将涵盖Unix系统上软件开发和维护的基本概念(开发和调试工具,如“make”和“gdb”)。</p> +</blockquote> +</li> +<li> +<p><a class="link" href="https://codeberg.org/drummyfish/tinyphysicsengine" target="_blank" rel="noopener" +>写在C头文件里的3D物理引擎</a>,一个仅用C99标准写在C头文件里的超小物理引擎,没有依赖,直接包含头文件即可在你的工程中使用,功能完整,内置向量、三角函数、引力等计算库。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-004-%E6%9C%9F/2022-10-18-14-04-11.png" +width="399" +height="326" +loading="lazy" +class="gallery-image" +data-flex-grow="122" +data-flex-basis="293px" +></p> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 003 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/Tue, 11 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/<h1 id="机器文摘-第003期">机器文摘 第003期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-17-41.png" +width="853" +height="640" +loading="lazy" +class="gallery-image" +data-flex-grow="133" +data-flex-basis="319px" +></p> +<h3 id="收听广播可以缓解压力个人体会">收听广播可以缓解压力(<em>个人体会</em>)</h3> +<p>近期我找到一个缓解焦虑的新方法,听收音机。</p> +<p>一定要老式的那种,收听真正无线电波信号的。随便找个台,最好还带有滋滋啦啦的杂音,当作工作时的背景声音,听着听着就感觉无比的放松。但又不是简单的“粉红噪音”、“白噪音”带来的那种平静,这种“仿佛脱离现在、回到了某个时空”的感觉让人感到愉悦。</p> +<p>我还没找到相关的研究信息,有人知道原理吗?</p> +<h2 id="动向">动向</h2> +<h3 id="欧洲通过法案将强制统一usb-type-c接口为充电接口">欧洲通过法案,将强制统一USB Type-C接口为充电接口</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-15-46-02.png" +width="800" +height="450" +loading="lazy" +class="gallery-image" +data-flex-grow="177" +data-flex-basis="426px" +></p> +<blockquote> +<p>欧洲议会今天以压倒性多数投票赞成在2024年底之前将USB-C作为包括iPhone和AirPods在内的各种消费电子设备的通用充电端口。</p> +</blockquote> +<p>这对于苹果来说恐怕是个坏消息,对于消费者来说应该是个好消息。不过也许以苹果公司的脾气,说不定将来取消所有物理接口也有可能。</p> +<ul> +<li><a class="link" href="https://www.macrumors.com/2022/10/04/eu-passes-law-to-switch-iphone-to-usb-c-in-2024/" target="_blank" rel="noopener" +>欧洲强制iPhone使用usb-c接口</a></li> +</ul> +<h3 id="波士顿动力承诺不将机器人武器化">波士顿动力承诺不将机器人武器化</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-15-11.png" +width="640" +height="427" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +></p> +<blockquote> +<p>当地时间 10 月 6 日消息,波士顿动力、Agility Robotics、ANYbotics 等 6 家公司联合发表致行业的公开信表达了他们对这些可能性的担忧。他们称,先进的商业化机器人的经济可负担性和可获得性越来越强,其被滥用的可能性也越来越大。我们承诺不会将通用机器人或软件武器化,也不会支持其他人这么做;同时呼吁政策制定者、开发者和用户共同促进安全使用。</p> +</blockquote> +<p>我个人感觉此类声明并不会带来什么限制,相反地,我偏悲观的认为这种技术很可能以最优先的速度被应用于军事目的。</p> +<ul> +<li><a class="link" href="https://www.163.com/dy/article/HJ5DMDS005118DFD.html" target="_blank" rel="noopener" +>网易新闻:波士顿动力承诺不将机器人武器化</a></li> +</ul> +<h3 id="taocpthe-art-of-computer-programming-4b正式初版">TAOCP(《The Art of Computer Programming》) 4B正式初版</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-30-24.png" +width="756" +height="732" +loading="lazy" +class="gallery-image" +data-flex-grow="103" +data-flex-basis="247px" +> +<em>图片来自<a class="link" href="https://weibo.com/5819320755/M9LXaF5I3" target="_blank" rel="noopener" +>@算法时空</a></em></p> +<p>世界著名程序员——高德纳老师,日前在他的个人网站宣布了<a class="link" href="https://www-cs-faculty.stanford.edu/~knuth/news.html#v4b" target="_blank" rel="noopener" +>TAOCP 4B正式出版</a>的消息。</p> +<p>这部计算机世界的经典巨著,耗费了高德纳老爷子的毕生心血,虽然已经出到了第四B卷,但本书目前还没有完全写完(本书从1962年开始写(中间停了几年是因为老爷子发现没有趁手的排版软件,就顺手发明了TEX——这又是另一个宏大话题了),计划共有七卷,其中第四卷分ABC三册)。他在自己主页中提到:</p> +<blockquote> +<p>与此同时,我继续研究第3部分(第4C卷),它已经有许多令人兴奋的主题。</p> +</blockquote> +<p>我只能说:祝老爷子身体健康!</p> +<h3 id="webassembly技术发展的怎么样了">WebAssembly技术发展的怎么样了?</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-10-45-39.png" +width="386" +height="383" +loading="lazy" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="241px" +></p> +<blockquote> +<p>WebAssembly 是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如 C、C++和 Rust 等低级源语言提供一个高效的编译目标。 +——来自<a class="link" href="https://developer.mozilla.org/zh-CN/docs/WebAssembly/Concepts" target="_blank" rel="noopener" +>Mozilla官方文档关于WebAssembly概念的介绍</a>。</p> +</blockquote> +<p>WebAssembly技术号称可以在浏览器中高效执行代码,并可以很方便地将C、Rust等各种语言编译到浏览器中执行,那么目前他的使用体验如何?</p> +<p>我周末做了简单体验。</p> +<p>通过官方给出的文档和入门指南,可以很快速地搭建出程序的原型,上图就是我参考官方示例将Rust代码编译到网页中执行的效果(是一个<a class="link" href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" target="_blank" rel="noopener" +>经典的Game of life的小游戏</a>)。</p> +<p>从开发上来说,现在已经有了比较成熟的工具链(尤其是针对Rust语言到WASM的工具),和共享库的生态,想要进行开发,不必像前些年那样费心地搭建开发环境,基本上在Linux系统下简单执行几行命令即可完成环境搭建。</p> +<p>从执行效果来说,我没有做性能测试,直观感受上来说,确实比原生js快了不少。</p> +<p>但这并不是重点,我个人觉得这项技术它最大的意义在于,将之前的桌面程序技术有了向Web移植的可行性。</p> +<p>我们有可能很快就看到完全兼顾Web分发的方便和桌面程序性能体验的产品。</p> +<ul> +<li><a class="link" href="https://www.infoq.cn/article/hdwglnhub2wwklo9zz6z" target="_blank" rel="noopener" +>一则WebAssembly相关的新闻</a></li> +<li><a class="link" href="https://github.com/mbasso/awesome-wasm" target="_blank" rel="noopener" +>GitHub网友整理的关于WASM的资源大全</a></li> +<li><a class="link" href="https://rustwasm.github.io/docs/book/introduction.html" target="_blank" rel="noopener" +>一本手把手教你使用Rust语言进行WASM开发的在线电子书</a></li> +<li><a class="link" href="https://zalo.github.io/CascadeStudio" target="_blank" rel="noopener" +>一个使用WASM技术将三维设计软件CAD嵌入到网页中的开源项目</a></li> +<li><a class="link" href="https://supabase.com/blog/postgres-wasm" target="_blank" rel="noopener" +>一个使用WASM技术在浏览器中运行的PostgresSQL数据库</a></li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>在你的密码里面放上一个逗号<code>&quot;,&quot;</code>,这样当你的密码在网上被人拖库时可以给黑客增加一些麻烦,因这样会使得他在作为csv文件往他的密码字典里面导入的时候,因为逗号分隔符的错位而让他崩溃。 +注:csv文件默认使用逗号分隔符区分字段。</p> +</blockquote> +<ul> +<li>来自:佚名网友。</li> +</ul> +<blockquote> +<p>当你长期使用windows远程桌面进行远程办公时,一层一层的服务器登进去,时间长了就会陷入盗梦空间那种疑惑,我现在是在哪一层?</p> +</blockquote> +<ul> +<li>来自:我自己。</li> +</ul> +<blockquote> +<p>量子计算机就是向过去和未来借用了很多乃至无限的时间吗?刹那即永恒。 +注:量子计算机号称每个bit位可在同一时刻表示多种状态。</p> +</blockquote> +<ul> +<li>来自:我自己。</li> +</ul> +<h2 id="长文">长文</h2> +<h3 id="从0到1打造家庭弱电方案">从0到1打造家庭弱电方案</h3> +<p>现在有不少人在困惑家里的网线该如何布局,这篇<a class="link" href="https://luolei.org/home-network-1/" target="_blank" rel="noopener" +>《从0到1打造家庭弱电方案》(中文)</a>记录了作者完整的装修过程,内容十分精彩详尽。看完之后我有点儿后悔,当时装修时没有给各个房间拉上光纤,以及用了比较普通的超五类网线。</p> +<h3 id="如何配置一个完全基于命令行窗口的开发环境">如何配置一个完全基于命令行窗口的开发环境</h3> +<p>我在油管上关注了一个日本小哥(Takuya Matsuyama),是一个个人开发者,经常上传自己的开发过程录屏,他完全基于命令行窗口(控制台)进行开发,没使用任何IDE。</p> +<p>后来我参考他的配置文件给自己也配置了一套,使用fish作为shell,neovim加上各种插件作为主力编辑器,现已成为我的日常开发环境。</p> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-003-%E6%9C%9F/2022-10-11-11-16-56.png" +width="1571" +height="820" +loading="lazy" +class="gallery-image" +data-flex-grow="191" +data-flex-basis="459px" +></p> +<p>有条件的可以到他的主页看看关于如何配置的详细介绍,或者直接去他的github仓库获取配置文件。</p> +<ul> +<li><a class="link" href="https://www.craftz.dog/posts" target="_blank" rel="noopener" +>Takuya Matsuyama小哥的主页</a></li> +<li><a class="link" href="https://github.com/craftzdog/dotfiles-public" target="_blank" rel="noopener" +>他的基于控制台命令行开发的各种配置文件</a></li> +</ul> +<h3 id="云桌面并不像你想的那么好">云桌面并不像你想的那么好</h3> +<p>给开发人员配置一个廉价的笔记本加上一个高性能的云端工作站,这个点子棒不棒?</p> +<p>听起来有很多的优势,兼具了性能、便携性、安全性等等。</p> +<p>不过先等一等,这里有一位作者在这样尝试了之后,给出了不少负面反馈(比如多显示器支持、GPU加速、网页视频质量等等问题),有兴趣的可以点进去看看。</p> +<ul> +<li><a class="link" href="https://mjg59.dreamwidth.org/61535.html" target="_blank" rel="noopener" +>《云桌面并不像你想象的那么好》(英文)</a></li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://webusers.imj-prg.fr/~jan.nekovar/co/en/en.pdf" target="_blank" rel="noopener" +>从高中到大学,数学中常用符号和计算关系的英文名称</a>,适合对数学公式中的各种符号感到困惑的人收藏,这本小册子汇聚了所有数学符号、常用希腊字母、代数式等英文叫法介绍。</li> +<li><a class="link" href="http://www.egr.unlv.edu/~ed/x86.html" target="_blank" rel="noopener" +>如何在Ubuntu下进行x86-x64汇编语言编程</a>,一本讲解现代汇编语言的电子书,基于常用的Ubuntu系统,从认识汇编语言开始讲起,到工具链的准备和怎样编写和调试程序,都有详细的介绍。</li> +<li><a class="link" href="https://www.drawkit.com/" target="_blank" rel="noopener" +>DrawKit</a>,一个提供矢量插画的网站,有很多免费的高质量插画,可用于网站制作、软件产品等方面。</li> +<li><a class="link" href="https://missing-semester-cn.github.io/" target="_blank" rel="noopener" +>计算机教育中缺失的一课</a>,一般学校里不会教开发环境的配置和各种效率工具的使用,这本电子书就是以环境和工具为切入点,将学校学习的理论应用于实际,比较接地气。 +<blockquote> +<p>大学里的计算机课程通常专注于讲授从操作系统到机器学习这些学院派的课程或主题,而对于如何精通工具这一主题则往往会留给学生自行探索。在这个系列课程中,我们讲授命令行、强大的文本编辑器的使用、使用版本控制系统提供的多种特性等等。学生在他们受教育阶段就会和这些工具朝夕相处(在他们的职业生涯中更是这样)。 因此,花时间打磨使用这些工具的能力并能够最终熟练地、流畅地使用它们是非常有必要的。</p> +</blockquote> +</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 002 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/Mon, 03 Oct 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/<h1 id="机器文摘-第002期">机器文摘 第002期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-08-56.png" +width="895" +height="689" +loading="lazy" +class="gallery-image" +data-flex-grow="129" +data-flex-basis="311px" +></p> +<blockquote> +<p>MNT推出了一款名叫Pocket Reform的迷你笔记本电脑。它外形紧凑(屏幕只有7英寸),但功能齐全,据官方介绍,它的性能满足轻量办公需求,甚至还能玩一些游戏(ARM平台)。虽然现在的智能手机在性能方面已经有了很大提升,且便携性远超笔记本电脑,但是还是有相当一部分人倾向于在具有真实物理键盘的“电脑”上进行操作。</p> +</blockquote> +<p>在我看来,这台设备可能对于希望随时随地写两行代码的程序员更加具有吸引力。</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://spectrum.ieee.org/meet-an-open-source-pc-that-can-fit-in-your-pocket" target="_blank" rel="noopener" +>可以装在口袋里的开源PC</a></li> +</ul> +</li> +</ul> +<h2 id="动向">动向</h2> +<h3 id="文字直接生成3d模型">文字直接生成3D模型</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-41-32.png" +width="735" +height="491" +loading="lazy" +class="gallery-image" +data-flex-grow="149" +data-flex-basis="359px" +> +谷歌实验室的几个哥们上周发布了一个新作&mdash;-DreamFusion。输入文字,就能生成带深度图和法线的3D模型。</p> +<p>开发团队声称:</p> +<blockquote> +<p>最近在文本到图像合成方面的突破是基于在数十亿个图像-文本对上训练的扩散模型。将这种方法应用于3D合成将需要标记大量的3D资产和用于对3D数据进行去噪的高效架构,而目前这都不太可行。在DreamFusion中,我们通过使用预先训练的2D文本到图像扩散模型来执行文本到3D合成来规避这些限制。我们的方法不需要3D训练数据,也不需要修改图像扩散模型,证明了预训练图像扩散模型作为先验的有效性。</p> +</blockquote> +<p>具体方法据称是来自他们新提出的“一种通过优化损失函数从扩散模型中生成采样的方法”该方法允许他们在任意参数空间中优化采样(例如3D空间)。</p> +<p>我看了一下官方给出的demo,3D模型还略显粗糙,不过可能将来算力提升之后会有改善。</p> +<p>现在,除了插画师受到了职业威胁,就连3D建模工程师的工作也有可能被AI取代?</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://dreamfusion3d.github.io/" target="_blank" rel="noopener" +>DreamFusion官方介绍</a></li> +</ul> +</li> +</ul> +<h3 id="通过文字描述生成语音的人工智能也来了">通过文字描述生成语音的人工智能也来了</h3> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-32-54.png" +width="909" +height="451" +loading="lazy" +class="gallery-image" +data-flex-grow="201" +data-flex-basis="483px" +></p> +<blockquote> +<p>Twitter 用户 Felix Kreuk 发布了从文本到音频 (Text to Audio) 的 AI 模型:AudioGen +AudioGen 可以 +(1) 根据文本生成音频;(2) 续写指定的音频;(3) 同时做以上两件事,根据指定文本描述生成指定音频。 +作者给出的展示DEMO里展示了如下文本生成的语音: +(1)在风声中吹口哨 +(2)男人在说话时伴有鸟和狗的叫声 +(3)警报器和嗡嗡作响的引擎接近后走远 +(4)鸽子咕咕叫并伴有沙沙的声音 +(5)男人说话的声音,背景伴有人群欢呼声</p> +</blockquote> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-11-33-50.png" +width="1147" +height="629" +loading="lazy" +class="gallery-image" +data-flex-grow="182" +data-flex-basis="437px" +> +从作者公布的架构图上可以看出来,采用的也是Transformer神经网络。之前在看到AI画图时我就想到同样的原理可能用于生成音频,结果这才没过几天,人家都已经做出来了。</p> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://weibo.com/1309158107/M8mPt5LgI" target="_blank" rel="noopener" +>@海辛Hyacinth</a></li> +<li><a class="link" href="https://felixkreuk.github.io/text2audio_arxiv_samples/" target="_blank" rel="noopener" +>作者的demo和原理介绍页面(托管在github)</a></li> +</ul> +</li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>站桩的简单,枯燥和有效,就好比持有 sp500 指数基金简单,枯燥但足以秒杀 95%以上的基金经理一样。 +莫将容易得,便作等闲看。</p> +</blockquote> +<ul> +<li>来自<a class="link" href="https://weibo.com/5339148412/LeTdmcfjW" target="_blank" rel="noopener" +>@硅谷王川</a></li> +</ul> +<h2 id="长文">长文</h2> +<ul> +<li> +<p><a class="link" href="https://randomascii.wordpress.com/2022/09/29/why-modern-software-is-slow-windows-voice-recorder/" target="_blank" rel="noopener" +>为什么现在的软件这么慢(英文)</a>,作者在Windows系统(Windows 10, 21H2版本)下使用“录音机App”的时候获得了极差的体验(确切的说是软件启动后大概卡死了将近20秒)。于是动手分析到底是什么原因导致,然后发现主要是这个软件启动后疯狂扫描“用户”文件夹下的录音文件用于构建界面中的录音列表,这种密集IO操作导致软件停止响应。作者花了很大的篇幅来吐槽这种行为,对于微软工程师为什么这么做表示莫名其妙。不过由于我们现在的计算机大都使用了固态硬盘,而且我们的习惯一般不会在“用户”文件夹下存放太多文件,所以这个体验应该不太明显。但即使这样,我也同样对Windows系统现在的软件质量感到担忧。 +<img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-002-%E6%9C%9F/2022-10-03-18-24-45.png" +width="643" +height="310" +loading="lazy" +class="gallery-image" +data-flex-grow="207" +data-flex-basis="497px" +></p> +</li> +<li> +<p><a class="link" href="http://zhangtielei.com/posts/blog-involution-analysis.html" target="_blank" rel="noopener" +>内卷、汉明问题与认知迭代(中文)</a>,作者较为科学地分析了内卷的定义和形态,从而引申出了关于什么是“人生中重要的事”的思考,文章虽然比较长,但也清晰易懂,发人深省。部分引用如下:</p> +<blockquote> +<p>从大的方面说,社会需要创新,个人则需要突破,而创新和突破又都要求我们不断地精益求精。那么,内卷与精益求精是本质上一样的吗?如果不是,两者的区别在哪?</p> +</blockquote> +<blockquote> +<p>在某件事情上花费太多精力,并不一定就是内卷;在无关紧要的事情上花费精力才是真的内卷。</p> +</blockquote> +<blockquote> +<p>汉明早年在贝尔实验室工作。那年春天,他经常和几位同事聚在一起在餐厅吃午饭。吃饭期间,他向其中一位叫Dave McCall的同事提了一个问题:“在你的领域里最重要的问题是什么?”大约一个星期后,再次一起午餐时他继续发问:“你目前正在研究的最重要的问题是什么?” 显然,这位同伴对于这两个问题的回答并不一样。于是他接着问:“如果你当前做的并不是最重要的事,那为什么还要一直花时间投入去做呢?”有了这「灵魂三问」之后,于是——在那个春天接下来的日子里,汉明不得不另找别的同伴一起吃午饭了…… +汉明的问题听起来有些让人生厌,但后来演变成了一个在学术界很受关注的问题——汉明问题(The Hamming Question)。它本来说的是科研选题的事情,但实际上关乎人生最重要的选择。</p> +</blockquote> +<blockquote> +<p>内卷,指的是在低水平的状态下无实质意义的消耗。这里的「低水平」,可能是客观的,也可能是主观的。 +针对主观的低水平状态,我们需要冲破意识层面的障碍,同时把读书、实践和思考结合起来,反复迭代,这样才可能跃升到更高的认知层次上。 +而针对客观的低水平状态,唯有认真对待汉明问题,选择好真正重要的人生大方向,才能避免卷入那些无关紧要的、无谓的消耗中去。这才是真正考验大智慧的时候了。</p> +</blockquote> +</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https://github.com/mtdvio/every-programmer-should-know" target="_blank" rel="noopener" +>每个程序员都需要知道的</a> ,整理了一份资源合集,包含了软件工程师技能相关的各类知识资源,包括算法、数据结构、浮点、Unicode、时间、内存、分布式、正则、安全、架构、工程哲学、实践、职业发展、软技能。。。等等,以及一些可用于技能训练和学习的站点。看起来非常符合我这种“收藏了就是学习了”的囤积爱好者的胃口。</li> +<li><a class="link" href="https://github.com/jefflomax/word-writer-6-commodore-64" target="_blank" rel="noopener" +>Word Writer 6 6502汇编源码</a>,是一份开源的Word Writer 6的6502汇编源码,可在模拟器下编译运行。用来学习6502汇编是一个不错的项目。上个世纪80年代爆火的计算机Commodore 64是很多复古计算机爱好者(包括我)的最爱,Word Writer 6是该平台上流行的文字排版编辑软件。</li> +<li><a class="link" href="https://almanac.httparchive.org/zh-CN/2022/" target="_blank" rel="noopener" +>HTTP Archive的年度报告</a>,这份报告详细(超级详细)分析了目前全球各在线网页中所使用的技术,从页面中的“CSS”、“Javascript”、“字体”以及用户体验中的“搜索引擎优化”、“移动端支持”等超过20个方面进行展示,内容十分详尽,有种看NBA的进球统计的感觉。</li> +<li><a class="link" href="https://javascriptquiz.com/" target="_blank" rel="noopener" +>Javascript Quiz</a>,一份关于Javascript的小测验,可在线作答,一共十道选择题,全是关于Js语法的常见坑,每道题答完之后都可以点击“info”图标获取关于这道题的详细解释。我试着做了一下,勉强及格。</li> +<li><a class="link" href="https://www.musi-co.com/listen/streams" target="_blank" rel="noopener" +>Streams</a>,这里有一批纯AI创作的音乐,由AI负责作曲和编曲,工程师只是把这些乐谱放入DAW软件中进行混音和录音,完成度很高,听起来相当上头。</li> +<li><a class="link" href="https://learningsynths.ableton.com/zh-Hans/get-started" target="_blank" rel="noopener" +>学习合成器</a>,这个网站提供了一本交互式电子书,讲解了电子合成器的原理,还单独提供了一个交互页面用于调制和体验各种合成器音色。我尝试了一下,真的很直观,在页面中直接可以修改各种振荡器波形、滤波器、LFO等参数,非常适合用于音色合成入门。</li> +<li><a class="link" href="https://llh911001.gitbooks.io/mostly-adequate-guide-chinese/content/" target="_blank" rel="noopener" +>函数式编程指北</a>,在线电子书,讲解函数式编程的范式,以Javascript进行举例,作者风趣幽默,深入浅出,觉得被函数编程概念唬住的可以去看看。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p>机器文摘 第 001 期https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/Wed, 28 Sep 2022 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/<h1 id="机器文摘-第001期">机器文摘 第001期</h1> +<h2 id="搞机">搞机</h2> +<p><img src="https://sbabybird.github.io/p/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98-%E7%AC%AC-001-%E6%9C%9F/2022-09-28-09-38-31.png" +width="641" +height="571" +loading="lazy" +class="gallery-image" +data-flex-grow="112" +data-flex-basis="269px" +></p> +<blockquote> +<p>TurnT是一个颇具创意的唱盘设计,它把智能手机与模拟黑胶的老式音乐播放方式相结合。用家把触笔放在手机屏幕显示的黑胶唱片上,它即开始播放。从内部结构上看,它其实是一个无线扬声器,可以连接到智能手机播放音乐。TurnT这种播放音乐的体验增加了互动的体验感,如同在实际的唱片上一样,挪开唱针会立即停止音乐,将其“向内”移动到手机屏幕上显示的光盘中心就可以播放音乐。要更改歌曲,您可以通过滑动来更改专辑,还可以重新定位。</p> +</blockquote> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://www.sohu.com/a/573073318_121124377" target="_blank" rel="noopener" +>把手机变成黑胶唱机 &mdash; Yamaha发布了与智能手机配合使用的独特音乐设备</a></li> +</ul> +</li> +</ul> +<h2 id="动向">动向</h2> +<h3 id="ai生成图像技术带来的艺术危机">AI生成图像技术带来的“艺术危机”</h3> +<blockquote> +<p>近几周,基于AI生成的图像艺术作品的新闻越来越多,以DALL-E、Stable Diffusion等神经网络模型为代表的图像生成类AI进化越来越快,已达“以假乱真”程度。我也在动手尝试后惊叹他们的生成效果非常逼真和充满想象力。然而很快,此类AI就引起设计师、画师、艺术家的反对(恐慌?)。当然也有很多持积极态度,把它们当作工具加以利用,甚至不乏商业头脑灵活的人士,已经通过AI作画开始获取收益。于是引发了一系列的反应和讨论。</p> +</blockquote> +<ul> +<li>参考文章: +<ul> +<li><a class="link" href="https://www.uisdc.com/unsplash-prohibited-ai" target="_blank" rel="noopener" +>知名图库Unsplash 宣布禁传AI生成图像</a></li> +<li><a class="link" href="https://www.51cto.com/article/719747.html" target="_blank" rel="noopener" +>付费图库集体封禁AI生成图片</a></li> +<li><a class="link" href="https://www.bilibili.com/read/cv18571483" target="_blank" rel="noopener" +>AI 绘画 Windows 本地零基础搭建 Stable Diffusion</a></li> +<li><a class="link" href="https://zhuanlan.zhihu.com/p/560226367" target="_blank" rel="noopener" +>AI数字绘画 stable-diffusion 保姆级教程</a></li> +<li><a class="link" href="https://github.com/ahrm/UnstableFusion" target="_blank" rel="noopener" +>一个包装好的AI绘图开源GUI客户端</a></li> +</ul> +</li> +</ul> +<h2 id="观点">观点</h2> +<blockquote> +<p>程序员是计算机的翻译官。他们先是把人类的语言翻译成计算机的语言,现在又教会了计算机使用人类的语言。</p> +<ul> +<li>来自<a class="link" href="https://weibo.com/6827625527/M7vHNl9HD" target="_blank" rel="noopener" +>@t0mbkeeper</a></li> +</ul> +</blockquote> +<h2 id="长文">长文</h2> +<ul> +<li>对很多事情都有兴趣,但是生命的时间有限,怎么办?<a class="link" href="https://news.ycombinator.com/item?id=32628511" target="_blank" rel="noopener" +>这篇hacker news上的讨论(英文)</a>或许能提供一些建议。</li> +<li><a class="link" href="https://www.calnewport.com/blog/2022/05/16/taking-a-break-from-social-media-makes-you-happier-and-less-anxious/" target="_blank" rel="noopener" +>这篇文章提到了一项关于焦虑的研究(英文)</a>。研究表明,远离社交媒体(包括及时通讯工具)一个星期,可以显著提升幸福感、降低焦虑程度;</li> +<li>掌握一项技能需要时间和实践,降低预期,慢即是快。<a class="link" href="https://geekplux.com/posts/how-i-learned-programming" target="_blank" rel="noopener" +>《我是如何学会编程的》(中文)</a>,这篇文章是一位网友分享的关于他学习编程的历程。</li> +</ul> +<h2 id="资源">资源</h2> +<ul> +<li><a class="link" href="https:///coding-fonts.netlify.app/" target="_blank" rel="noopener" +>coding-fonts</a> ​​​是一个不错的编程字体网站,可以在线预览各种适合编程开发时用的字体,让选择更加直观。</li> +<li><a class="link" href="https://github.com/opendilab/DI-sheep" target="_blank" rel="noopener" +>深度强化学习羊了个羊</a> 这个github仓库开源了一个通过AI强化学习来玩耍“羊了个羊”游戏的模型及代码,结构清晰,效果很棒,用于了解深度强化学习知识非常不错。</li> +<li><a class="link" href="https://github.com/scutan90/DeepLearning-500-questions" target="_blank" rel="noopener" +>深度学习500问</a>这本在线书籍以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,目前在github将近50k颗星。</li> +</ul> +<h2 id="订阅">订阅</h2> +<p>这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。</p> +<p>喜欢的朋友可以订阅关注:</p> +<ul> +<li>通过微信公众号“从容地狂奔”订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../weixin.jpg" +loading="lazy" +></p> +<ul> +<li>通过<a class="link" href="https://zhubai.love/" target="_blank" rel="noopener" +>竹白</a>进行邮件、微信小程序订阅。</li> +</ul> +<p><img src="https://sbabybird.github.io/../zhubai.jpg" +loading="lazy" +></p> \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/1/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/1/index.html" new file mode 100644 index 000000000..027c1e08d --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E6%9C%BA%E5%99%A8%E6%96%87%E6%91%98/ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/10/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/10/index.html" new file mode 100644 index 000000000..b967e7846 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/10/index.html" @@ -0,0 +1,36 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/11/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/11/index.html" new file mode 100644 index 000000000..f85a31e31 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/11/index.html" @@ -0,0 +1,35 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/2/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/2/index.html" new file mode 100644 index 000000000..06106d042 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/2/index.html" @@ -0,0 +1,36 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/3/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/3/index.html" new file mode 100644 index 000000000..667e2efb3 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/3/index.html" @@ -0,0 +1,37 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/4/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/4/index.html" new file mode 100644 index 000000000..e7b5e9f9a --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/4/index.html" @@ -0,0 +1,38 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/5/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/5/index.html" new file mode 100644 index 000000000..70d760e62 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/5/index.html" @@ -0,0 +1,38 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/6/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/6/index.html" new file mode 100644 index 000000000..9b9103679 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/6/index.html" @@ -0,0 +1,38 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/7/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/7/index.html" new file mode 100644 index 000000000..afa0d2ee3 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/7/index.html" @@ -0,0 +1,38 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/8/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/8/index.html" new file mode 100644 index 000000000..b70dbe945 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/8/index.html" @@ -0,0 +1,38 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/9/index.html" "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/9/index.html" new file mode 100644 index 000000000..2a6f180c4 --- /dev/null +++ "b/tags/\346\234\272\345\231\250\346\226\207\346\221\230/page/9/index.html" @@ -0,0 +1,37 @@ +Tag: 机器文摘 - Learning & Writing! +

Tags

机器文摘

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/index.html" new file mode 100644 index 000000000..a5e3b54eb --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/index.html" @@ -0,0 +1,35 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/index.xml" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/index.xml" new file mode 100644 index 000000000..598be4078 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/index.xml" @@ -0,0 +1,1153 @@ +每周五百字 on Learning & Writing!https://sbabybird.github.io/tags/%E6%AF%8F%E5%91%A8%E4%BA%94%E7%99%BE%E5%AD%97/Recent content in 每周五百字 on Learning & Writing!Hugo -- gohugo.iozh-cnWed, 01 Jan 2020 00:00:00 +00002019年个人总结https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Wed, 01 Jan 2020 00:00:00 +0000https://sbabybird.github.io/p/2019%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h2 id="2019年个人总结">2019年个人总结</h2> +<h3 id="起头">起头</h3> +<p>2019年过的比往年还要更快,今年的新年假期只有一天,正好用来写总结。</p> +<p>2019年是充分践行“在事儿上磨练自己”的一年,对目标有了更清晰的迭代,在行动上更加倾向于知行合一,继续缩减无效信息的获取和消费,挤出精力去做对自己更重要的事情。</p> +<p>有多少成绩不好说,但是多少有一些感悟。</p> +<h3 id="摄影">摄影</h3> +<p>每年的春季,都会有一种强烈的想要深入摄影的感觉。最近几年越来越明显,一方面可能跟大量的摄影器材新产品发布有关,另一个方面,环境的复苏,春天代表着一种生机勃勃的精神,敏感的人们便容易感受到事物的变化。</p> +<p>还有就是,可能因为春天比起冬天来比较。。。不冻手。</p> +<p>今年大概按了四五千次快门吧,能看的入眼的也有个百十来张,我对摄影的定位就是记录日常生活,发现并捕捉生活中的美好瞬间,如果让我挑一张自己比较满意的话,就是下面这张:</p> +<p><img src="https://upload-images.jianshu.io/upload_images/25416-97902ee0d97e0abf.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="DSCF2721.JPG" +></p> +<p>在地铁上的抓拍,当时感觉这个包比较有趣,于是就拍了。</p> +<h3 id="思考">思考</h3> +<p>大部分繁忙的人们,每天用在思考上面的时间都是很少的,或者说高质量的深度思考太少,导致了一种错觉,没有时间闲下来,仿佛进入了一个繁忙的死循环(这里推荐一本书《稀缺》,关于这种现象还有一种装逼的说法叫“内卷化”)。</p> +<p>许多比较成功的人士,并非这么繁忙,相反地,他们会腾出大量的时间用于思考,以思想来指导行动,给自己留出“空余”的时间,然后“行动”才有意义。</p> +<p>写到这里,我又想起一件事儿,比如装修房间,需要规划空间的布置,一定要规划空出来的部分跟实际功能使用的比例,不能一味将空间沾满用干净,那样的话整体就会感到很压抑,而如果空余的部分跟使用的部分有一个合理的平衡,就会整体感到档次和品质提升了不少。</p> +<p>这种“用”与“不用”的平衡可以说到处都能体现,摄影中存在“正负空间”的说法,也有“影调平衡”的说法,都是在讲究一种平衡。</p> +<p>我们对自己日常工作、生活乃至人生规划,都要向这种平衡去靠拢,每年、每月、每天的时间分配也要考虑到这种平衡,因为如果一味的用满,则会给整体的效能和品质大打折扣,看似繁忙充实,实则得不偿失。</p> +<p>所以,今年我更加注意留出时间给自己,深度思考,尽力争取空闲时间,把空闲当作一种保持平衡的“负空间”。</p> +<h3 id="早起">早起</h3> +<p>今年加强了早起这个习惯,起床时间直接拨到了早晨6点,经过一段时间练习,现在就算不用闹钟也可以准点起来,睡眠质量不降反升,真是一举多得。</p> +<p>起床早的话,感觉精力充沛,精神状态也很不错,睡懒觉并不能带来充分的休息,反而早起的好处却很多,比如时间上的从容,交通不拥挤,吃饭、办事等都比较轻松,能够感觉每天的有效时间得到了延长。</p> +<p>我这么做倒也不是因为自律,而是想给自己更多的时间和机会去学习和体验,在我看来,外部的物质环境远没有自己的精神体验重要,随着时间进程的加速,谁都能意识到生命不是无限的,多做一些自己喜欢的事情比什么都重要,安逸可以适当体验,但更多的是,去观察和创造。</p> +<h3 id="健康">健康</h3> +<p>心态平和所带来的第一个福利竟然是体重提升了10斤左右,半年时间内从65公斤飙升至70公斤,搞得有点儿措手不及,怀疑是不是因为工作地点搬迁之后周边好吃的有点儿太多了的原因,再也不敢相信随便吃都不会胖的神话,从能看清肋骨到能看见肉褶儿不过是几顿羊肉汤的功夫。</p> +<p>在可供我焦虑的选项里除了脱发,又增加了一项。</p> +<h3 id="手机">手机</h3> +<p>今年将我的电子产品全线更换为自主品牌华为,一方面是苹果手机在创新上已经不思进取,在将开发团队外包给印度之后,其系统的稳定性和体验均出现大幅下滑,苹果公司本身的吃相也越来越难看,另一方面,国产手机现在做的确实不错,体验很好,而且就算是华为的高端手机,也比国外的那些手机“物美价廉”,所以支持国产很正常。</p> +<h3 id="读书">读书</h3> +<p>除了一些专业的工具书籍以外,今年没有买任何的“闲书”,但是翻出了以前买来的重读了一些。</p> +<p>这个可以深入说一说。</p> +<p>比如今年又重读了《老人与海》,算是想明白了,为什么海明威仅凭借这一部中篇小说就能获得诺贝尔文学奖。以前上学的时候看此书,觉得吧,没意思,一个关于捕鱼的故事有什么可看的呢?但多年以后又重新翻看的话,体会就大不相同了。</p> +<p>今年年中的时候在老家跟几个老友小聚喝酒,仿佛一夜之间,感到我们这一代人的成长,大家忽然都成了家庭里的核心力量,所面临的压力陡增,无论是父母健康还是后代教育或者是亲戚邻里帮扶,我们这一代正在成为家里各项事务的第一责任人。</p> +<p>唏嘘之余,我才想到,我们这些人,哪一个不是《老人与海》中的那个捕鱼的老人呢?我们每个人都在等待生活中属于自己的那条大鱼,或者都在跟自己的那条大鱼在激烈搏斗,小说中的老人跟大鱼僵持不下,连换个姿势都成为一种奢侈,我们在面对各种生活中的琐事时又何尝不是跟老人当时一样的境遇呢?</p> +<p>所以说《老人与海》这部小说能够给人力量,我们都在跟“大鱼”搏斗,这是我们的使命。</p> +<p>其他的书也陆续看了一些,但都侧重于“闲书”,比如《数学之美》、《巨人三传》、《人类的群星闪耀时》,等等。</p> +<p>不以功利心读书是基本原则,将至少保持一百年不动摇。</p> +<h3 id="学习">学习</h3> +<p>说到了学习,为工作而学的不算,今年在私下里研究最多的就是计算机图形学了。</p> +<p>由于缺少大块的时间,系统性学习是不可能了。</p> +<p>只能利用一些碎片时间,比如在下班路上阅读一些开源代码和论文,断断续续的。耗费了挺长时间才把空间坐标转换的矩阵给推演明白。</p> +<p>不过值得欣慰的是,编程也没落下,利用周末时间充分发挥理论结合实际的思想,我竟然亲手撸了一个基于web画布的光栅化渲染器,很原始,但是可以渲染obj格式的线框和三角面。</p> +<p>但毕竟平时很忙,估计等到可以加上光照和着色器的时候还得等几年了。</p> +<h3 id="结尾">结尾</h3> +<p>总的来说,认真做好每件小事,可以算是今年的主要指导思想,放平心态,不对自己要求太高,重点是投入进去,以谦虚的心态,搞懂小事,做好细节,即便是做的事情不多,成果也不大,也没关系,若能将小事做好,也能给自己的内心带来平静。</p> +<p>以往的习惯,往往是给自己定义较高的完美目标,结果就是不能完全令自己满意,时间长了难免带来较多负面情绪,随着年龄的增长,逐渐意识到自己的平凡和普通,虽说不是上和自己或者世界和解,但也逐渐更加了解世界和了解自己。</p> +<p>无论别人怎样看待,自己的感受才是最重要的,所谓幸福也主要就是一种自我的感受,只有自己才能对自己负责,任何人的建议都是首先站在建议人那一方的利益考虑。所以认真对待该做的事情,同时不违背自己内心的意愿,每一分钟都不是在准备生活,而是就在生活之中。</p> +<p>抛开不可抗拒之因素,仍然以自己的节奏为中心,抓住重点,继续学习和深入实践,饭一口口吃,事儿一件件做,只要小事能推进,日积月累也定会带来不小的收获。</p>2018年个人总结https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Tue, 01 Jan 2019 00:00:00 +0000https://sbabybird.github.io/p/2018%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<h1 id="2018年个人总结">2018年个人总结</h1> +<h2 id="起头">起头</h2> +<p>同样是元旦假期最后一天,坐下来给自己写总结。去年写总结的时候,我给自己上一年定义的关键词是“认识自己”,2018年我觉得关键词可以是“改变自己”。刚刚翻看了2018年产生的大量工作日志和心得记录,一边感慨时间过的飞快,一边在脑海里飞快回忆这刚过去的一整年,这个在网上被大家普遍吐槽、觉得艰难的年份。</p> +<h2 id="关于资讯">关于资讯</h2> +<p>2018年最令个人满意的一件事儿是戒掉了对互联网资讯的依赖。整整一年几乎没有主动上网刷过任何资讯,比2017年还要彻底,在手机上删掉了各种资讯软件,平时也很少刷新微信的朋友圈(偶尔发一发)。最开始的时候会感到不适应,但是一旦觉得资讯恐慌的时候,就强迫自己利用互联网学习知识,或者处理日常事务,一年下来节约了不少时间。</p> +<p>这么做的主要原因是自己认识到互联网资讯正在给人们贩卖大量的消费冲动和焦虑。</p> +<p>我觉得互联网是一个信息放大器,总是被掌握了话语权的人将自己的感受放大然后传播出去,如果这些人感到了焦虑,那么这些焦虑就会通过网络放大若干倍,去影响更多的人,给更多的人带来焦虑。那么现在是什么人在掌握互联网上的话语权呢,没错,就是我们这些80后。回过头去检查各年的网络热词,几乎是80后的人生成长轨迹,大龄了,剩了,结婚了,生娃了,学区房了,中年了,油腻了,佛系了,等等。</p> +<p>戒掉信息并不意味着远离了这些,只是可以更加正确的认识这个世界,不再陷入以前的误区、觉得喧闹的只剩下一种声音。</p> +<h2 id="思考与认知">思考与认知</h2> +<p>苏格拉底说,未经思考的人生不值得度过。如果说2017年是通过思考来认识自己的话,2018年就是将思想转变落实到行动上的一年。可以说是真真正正的用思考来指导行动的一年,向“知行合一”又推进了一丢丢。</p> +<p>以前知乎上有个关于“优秀的人不够自信”的问题,问为什么有的人明明很优秀却仍然觉得不够自信,要是搁在从前的认知,我会觉得答案很明显,会给出极左极右的评判。现在不这么认为了,没有绝对的两极,大多数人处在中间,符合正态分布,可能有些人更加偏向于“优秀而不自信”一些。造成这样的原因跟从小接受的教育有很大的关系,即“活在他人对自己的期望之中”,我几乎可以断定自己此生难以摆脱这种心理了,只能在正确认识到这种情况之后尽可能的去调节。通过多做事情去磨练自己,并不断用自己的目标去替换别人的期望,目前正走在这样的改变之路上。</p> +<p>找到自己的目标不存在诀窍,更不是自己坐在家里冥思苦想就可以,而是要不断去尝试,多做事情,去接触更多以前没有接触到的事物或者体验,只有这样,才能激发自己的潜力,遇见自己真正热爱并愿意投入精力与时间去奋斗的事情。</p> +<p>想明白这些之后,我主动多做了一些事情,可以明显感受到通过思考指导做事给自己带来的成长。</p> +<h2 id="压力出口">压力出口</h2> +<p>每天大约能记录1k字的工作日志,当然里面不全是工作流水,有很多是临时书写的心得体会或者思考碎片。坚持这么做的原因是发现写作可以作为疏解压力的一个出口,既能整理思路,又能缓解压力,真是一举两得。</p> +<p>我称这种写作为“随意写作”,或者叫释放心理垃圾,《写出我心》这本书里说过,刚开始写不好没关系,因为需要先把内心里的垃圾信息倾倒出来,先把污水排出来然后才可能有干净和高质量的东西出来,这个比喻可能不太恰当,但是对我比较触动,也正好作为我接受自己水平很烂的借口。</p> +<h2 id="看书让我认可了自己的爱好广泛">看书让我认可了自己的“爱好广泛”</h2> +<p>看书当然是日常生活中不可缺少的一部分,今年开始看阿城的作品。果然不简单,我还没有遇到过这么容易读下去的文字,可以说是流畅至极。阿城写这些文字就像是坐在这里跟你唠嗑似的,娓娓道来,而且段落之间完全感觉不到过渡突兀,天南海北扯来扯去最后还都能很好地收尾,讲到具体事例往往还能极为精准地引用古往今来学者或者艺术家的典故,说的煞有其事,看的引人入胜。</p> +<p>我觉得他之所以能够写出这么多东西应该跟肚子里有货有关,而且这些货还不仅仅是简单的灌装进去,码放整齐。应该是经过消化和思考加工,已然形成一套体系,里面既包含个性鲜明的观点,也体现他的三观。在聊天喷空之余偶尔还不忘揶揄几句当下的社会或者某些人群,幽默感着实了得。</p> +<p>读这样的作品还有一个感觉,就是越读越觉得自己对历史和人文了解甚少,往远了说有诗经论语等经典,往近了说有明清小说或者近代大家,东方有儒家道家佛家文化,西方有心理学、哲学、文艺复兴的科学等等,如果做不到对这些东西融会贯通,那么即使读到好看的文字,能看懂作者的议论也仅仅是瞧个热闹,过后很难产生更加复杂的化学反应,所以好书又会给人提供了解历史和文化的动力,仅从这一点来说,好书和好作家就功德无量了。</p> +<p>我以前总是担心自己的知识太杂,有种什么都想了解一点儿又什么都不精通的感觉,总是提醒自己要缩小自己的关注圈。看了阿城的作品后,感觉,既然天性之中有那么强的求知欲,又何必压抑自己,不妨也多做尝试,管他什么音乐绘画还是神学哲学,只要有兴趣就大胆去了解。</p> +<p>感谢阿城能够让我醒悟,不必为自己爱好广泛而烦恼,更不必为没能精通若干技能而悔恨,专有专的强,杂也有杂的好。</p> +<h2 id="几点感悟">几点感悟</h2> +<h3 id="关于改变">关于“改变”</h3> +<p>推动事件向自己希望的方向发生是有难度的,也是考验和锻炼一个人综合素养的绝佳机会。观察这么多伟大的领导者,没有一个不是在推动变革中成长起来的,所以成功有很大的因素就是在推动变革。做变革的推动者需要面对很多困难,因为就跟打扫房间一样,任由事情向无序方向发展是最省力的,也是最不负责任的,只有想要东西向有序方向发展才是困难的。</p> +<p>广义上来说,做任何事情都是将事物从无序向有序方向发展,这是自然规律,宇宙万事万物从有序走向无序,只有智慧生命才具备能力维持有序或者把无序变有序,这一切都需要能量,作为智慧个体所具备的只有利用能量的方法和信息,比如蒸汽机、内燃机电动机等等,再往前倒腾,那就是农业时代的耕种,那也是一种利用能量(太阳)将无序向有序转变的过程。</p> +<p>这么些年以来,推动或者说维持有序的本质没有改变,个体想要发挥价值或者说作用,只有在这个过程中通过一定的方法和信息来完成能量转换为有序的操作,工程师、艺术家、农民,可以说做的是一样的事情,区别就是大家所使用的信息不同,引导的能量不同,所输出的转化物不同。</p> +<p>个体的价值就体现在不是作为“无序”的生产者,而是“有序”的生产者。</p> +<h3 id="关于做自己">关于“做自己”</h3> +<p>我以前特别尊崇“真”,要活的真性情并且避免虚伪,不愿意假装任何事情。这样做有很多缺陷,因为不同的人有不同的期望,而且这些往往是互相矛盾的,西方的文化传统是“做自己就好”,是挺好的,但是仅限西方,在中国的话,还是要讲究一下中和。</p> +<p>所以聪明的做法,在中国文化传统下,必然是不能直来直去,即便是“做自己”,也不能表现的太过于直接,中国的文化就是内在与外在严重的分裂,外在主要用于伪装和“一团和气”,而各自的内在又是什么样儿呢?谁也不知道。但有一点是毫无疑问的,那就是我们的文化绝对不推崇直接表现内心,所以才有古代大臣劝皇帝登基,而皇帝则三番五次推脱,嘴里喊着不要,虽然双方都知道是在演戏,但是也都不亦乐乎,做的很足。</p> +<p>刚正不阿的人在明白了这些之后难免会有一些哀怨,但在我看来,这样就有些狭隘了,从客观规律上来说,谁都逃脱不了自然的力量,无论是基因还是环境,所以不必抱着一种价值观跟这个世界死磕,老祖宗的智慧早就告诉我们任何事物都不可一分为二,不能非黑即白,要以一种“中间调”的视角来看待问题。</p> +<h2 id="结尾">结尾</h2> +<p>2018年经历了很多事情,思想的转变带来了行动的变化,年初的时候给自己开出了化解中年焦虑的药方“多做事情”,效果良好。通过具体事情的磨练,更加清晰的体会到了实际练习对成长的重要性,希望在后续的时光里,自己仍然能够保持好奇心,坚持学习,创造美好的东西出来。</p>2017年个人总结https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Mon, 01 Jan 2018 00:00:00 +0000https://sbabybird.github.io/p/2017%E5%B9%B4%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>2018年新年第一天,起的不早也不晚,天气晴的很好,阳光从窗外洒进来,给窗台上的多肉镶了一圈儿金黄。</p> +<p>每到这样的新年假期,我都会安排一天的时间收拾一下房间,然后坐在电脑跟前,回顾一下在过去一年里个人的经历和得失,考虑一下在新的一年里对自己的期望和改进要求,设立一些学习上的小目标,给新的一年提前充电。</p> +<p>这个习惯我已经坚持了四五年,主要以总结工作之余的个人学习和感悟,提取生活中的一些有趣经历,为自己在将来能够翻看回忆提供一些文字素材。</p> +<p>总结本身可能并不重要,但是这种回顾过去和展望未来的仪式感,每次都能使我得到激励,使我能站到一个更高的维度审视自己。</p> +<p>人们常说,了解自己是最困难的,我们可能永远都不能了解自己,只能无限趋近于了解,那我这样的总结,算是对了解自己所做的一种尝试和努力。</p> +<h2 id="学习与读书">学习与读书</h2> +<p>虽然随着年龄的增长,学习新的东西变得越来越困难,土话也有“人过四十不学艺”之说,但不得不承认,当今时代,学习成为了人人都必须修炼的一种能力,无论什么行业和职业,只有不断的学习,才能适应科技和文化的飞速发展。</p> +<p>有人说,最终人类比拼的将是学习能力,但这多少有点儿站在功利的角度,我所说的学习更多的是一种探索精神,一种想去了解自己了解世界的强烈好奇心。</p> +<p>今年买了不少书,技术类书籍和鸡汤类书籍各占一半,认真看进去的书不是很多,基本上每一本都翻了翻,但没有特别沉下心来看。</p> +<p>摄影类的书籍有《理光GR的随手拍摄心得》《纽约摄影学院教材》《摄影构图学》等等,这些归类到技术类书籍好像不太合适,但又确实是学习用的,看得还算是津津有味,其中给我带来最多收获的应该就是理光用户的那个随手拍摄心得,作者好像是台湾人,在读到之前我还难以想象摄影书还能这样写,基本上我感觉就是结合自己的故事重新写了说明书,读起来比较有吸引力,而且顺便把怎样使用相机也学了,真是一举两得。</p> +<p>学习数学、英语的相关书籍也买了一些,想重温一下高等数学,以及线性代数,感觉还是没达到预期目标,尤其是高等数学,基本上忘光了,连做课后的练习题都很困难,基于这些书倒是延伸学习了一些计算机图形学,这个算是意外收获,对计算机图形学里的一些概念如齐次坐标等等有了比较好的理解,尤其是使用矩阵来表示各种坐标变换,以前完全不知道内部实现的原理,直到今年我通过一边看书一边在excel里模拟了旋转平移和缩放的过程之后才算有了深入理解。</p> +<p>历史类的书买了两本入门册子,但是都没有读进去,畅销书《人类简史》倒是看了,写的确实不错,有一种以前读《万物简史》时的畅快,而且作者很会比喻,观点也独到,从很浅显的角度解释了人类发明的货币和公司这些东西。</p> +<p>趁着创业的热潮而大卖的关于创业的书也买了些,比如《从零到一》这样的,我看都是一些硅谷的创业成功者写出来忽悠人的,不过里面也讲了不少实话,看的时候就当是听作者诉说他是怎样取得成功的好了,反正他是这么认为的,虽然再来一次也可能不管用。</p> +<p>每年都会重新看看《黑客与画家》,虽然是一本很早的书,但是每年看的时候都有新的感触,也会产生新的影响,这个书的作者应该算是硅谷的创业教父了,他比较喜欢说实话,而且也喜欢思考,给我带来很多启发。</p> +<p>同样每年还会看看SICP《计算机程序的构造和解释》,这本被誉为神书的书,我一直没能完全看懂,今年借助YouTube,在上面听了两节MIT教授的课程,算是对前两章有了较深的理解,并顺便学习了LISP语言,这对于我以后折腾Emacs编辑器有所帮助,而且LISP语言的学习能够激发对计算机编程的深入认识,有一种超越编程语言的高维度感受,对计算过程的抽象很有可能是计算机世界的终极抽象,怪不得《黑客与画家》的作者说,未来的编程语言很有可能无限趋近LISP。</p> +<h2 id="关于拍照">关于拍照</h2> +<p>2017年我大概拍了四千多张照片,经过整理和挑选,留下来的也有差不多一千五百张,是我有生以来,拍照最多的年份,这个数字并不大,有些摄影师可能一天就达到了这个数字,但我这个业余爱好者,今年是一个突破,希望能够在明年以及更远的将来拍摄更多。</p> +<p>就像学习其他知识一样,如果只是听和看,不去亲自动手试一试,十有八九做的是无用功,不是说听和看不重要,我今年就读了好几本关于摄影的书籍,而是动手去练习更重要,10000小时的定律说的更多的也是练习,当然举这么多其他的例子更没用,游泳才是更好的例子,你不跳到水里根本不可能学会。</p> +<p>所以我今年能感受得到在摄影上的进步,一方面因为我读了很多关于摄影的书籍,无论是经典教材还是随手摄影的心得,这些书籍看了确实能够改善和丰富我对摄影的认知,另外我也在网上也观看了大量关于摄影的视频,大部分是在YouTube上看的,很多都是个人摄影爱好者开设的播客,这些内容虽然不成体系,但是也有不少可取之处,尤其是针对单个知识点进行的介绍,比如构图、后期、器材搭配等等。</p> +<p>关键还是因为我随身带了个相机,比起用手机来,我更喜欢这个理光的卡片机,虽然感觉并没有网上吹嘘的那么神化,但是还是很够用的,街拍神机名副其实,随身携带让我得一随时随地想拍了就来一发,比手机更有拍照的仪式感,而且画面质量确实比手机强的多,毕竟“底大一级压死人”,这个卡片机的传感器比手机的大了不知多少倍,拍摄夜晚或者光线较暗的场景时,手机拍的基本没法看,理光GR2基本可以胜任所有拍摄场景。</p> +<p>我能感受到最大的进步应该是在“构图”方面,比起对曝光的控制、后期调色等方面,我对构图有着天然的热爱,这虽然有些“形式大于内容”,但是我确实无法忍受一幅照片在构图上的失败,所以我现在在拍照之前,第一件考虑的事情竟然不是曝光,而是构图。这可能是因为现在的相机都已经智能化到自动控制曝光的地步,虽然有时候拍出来并不是想要的效果,但至少相机不会让你曝光失败。于是构图就成了拍摄首要关注的内容了。</p> +<p>我今年读的大部分摄影相关的书籍都是构图相关的,这些与绘画、平面设计类似的东西,我基本上东一下西一下的瞎看,不成体系,但也总结出了自己的一些原则,比如地平线一定要平,三分法放置画面等等。通过实际练习,我感到构图水平明显的变化,至少现在拍出来的东西一看就知道不是随手对付的,而是经过考虑和设计的,已经达到了业余爱好者的水准。</p> +<p>在练习中的感悟才是真正学到的东西,有的时候甚至能够跨越技能,从一件事情感悟到另外的事情上去,用一句今年比较流行的话来说就是“建立了联结”,通过练习,可以从拍照这个简单的事情本身,联想引申到对美的感受,无论是音乐、文字或者是其他的艺术品,人类所期盼看到的和听到的,就是愉悦的体验,而通过“平衡”、“对比”、“韵律”、“节奏”这些感觉的灵活运用,就是能让人感到愉悦,所以我现在比较能够理解艺术是相通的这句话了。</p> +<h2 id="关于资讯">关于资讯</h2> +<p>资讯的阅读是打发时间的最好方法,你看地铁上的人,几乎每一个人都捧着手机看新闻,当然也有刷剧和打游戏的,但据我的观察,大部分人都是在刷新闻。</p> +<p>资讯好像是一种食粮,每个人都如饥似渴的吸收,现代化的互联网技术和移动app,使得资讯触手可及,随时随地,吃个没完。</p> +<p>资讯又好像一种毒品,使人上瘾,如果有一个小时没有看到的话,就会浑身不适,非得打开浏览器或手机点两下不可,然后看到并没有什么有用的信息浮现的时候,才放下手机,内心得到了片刻的虚假平静。</p> +<p>其实不知不觉中,资讯消耗了我们大量的时间和精力,甚至成为了我们的枷锁,我们的眼睛仿佛除了资讯之外就看不到什么东西了,对其他东西的观察成了一种原始的应激反应,吃饭、睡觉、乘车,稍有闲暇的时候,就用资讯来填补。</p> +<p>好像我们的脑子已经无法承受在没有资讯刺激下的无聊,我们放弃了自己的思想,大脑的发动机已经不再运转,有的只剩下最基本的生理反应,这种情况所产生的空白,使我们恐惧,于是就吸取更多的资讯来填补,殊不知这些东西进一步把我们自己的思想挤的无处容身,脑子就更不能转动了。</p> +<p>我见过很多独处的人,在吃饭的时候,也不忘了掏出手机,我虽然没看到他的屏幕,但是可以猜想,看的无非就是一些“有趣的”文章。可怕的是,我自己有时候也这样,因为如果不这样我好像也吃的不香,觉得眼神无处安放,觉得这一段时间不知所措。</p> +<p>有一个关于“禅”的故事被说的比较多,大意是,有人问禅师“什么是禅?”,禅师回答:“吃饭就是吃饭,睡觉就是睡觉”,我最初听到这个故事或者段子的时候,根本无法理解,谁吃饭不是吃饭,睡觉不是睡觉呢。</p> +<p>后来想到关于吃饭时看信息,关于睡觉时胡思乱想,才明白,原来,吃饭就是吃饭,睡觉就是睡觉,是那么的难啊。</p> +<p>我在2017年有意识的限制自己获取资讯的时间,每当我忍不住想打开网页的时候,我就强迫自己坐下来写字,就写当下的脑子里想到的内容,想到哪儿就写到哪儿,完全不顾及条理性和先后顺序。</p> +<p>我原来还特别担心这样写出的东西根本不通顺,没法看,但是在坐下来写了两篇之后,我才发现,原来这些不加修饰和斟酌的文字,看起来是那么流畅,读起来非常顺口,就像自己跟自己在交谈。</p> +<p>而且这样做的一个很明显的好处是,屏蔽了资讯,用赵本山的话说“病毒关闭了,你的智商又重新占领高地了。”清空了资讯,给自己的大脑腾挪出可以思考的空间,很多自己的思想就涌现出来了。</p> +<p>先不用管他们是积极的还是消极的,根本不用识别他,站在一个旁观者的角度来观察,可能这就是禅宗经常说的“观照自己的内心”吧。</p> +<h2 id="关于写作">关于写作</h2> +<p>我在2016年的时候,坚持每周输出五百字,作为写作练习,这项活动开展了整整一年,写了好几万字,后来我在2017年停止在网上发表。因为我觉得输出的内容有些缺少思想,而想写出比较有思想的内容还是很有挑战和耗费精力的,尤其是考虑到有读者的观看,会给自己带来额外的压力,后来我在写字这一块开始写给自己看,内容也都散落在工作日志里了,没有整理到网上。</p> +<p>上面提到的关于将资讯时间用于写作的方法,来源于2017年我看的一本书, 叫《写出我心》,主要的内容是帮助十分焦虑的现代人通过写作的方式找回内心的平静。</p> +<p>书的作者为了解决内心烦躁的问题,曾经尝试过冥想、瑜伽等方法,但是效果都不太好,心理的念头仍然非常的多,挥之不去,起伏不定,甚至越来越糟,于是作者尝试使用写作的方式,将自己的念头不通过思考,直接书写下来。</p> +<p>然后他欣喜的发现,不假思索将自己的念头不断的书写下来,经过一段时间,竟然可以解决自己的烦躁,内心逐渐变得平静,于是他就把自己的这种体验和方法总结下来,写了这样一本书,并提出了具体执行的一些原则和要求。</p> +<p>我看了之后感到比较有意思,也想尝试一下,开始利用闲暇时间或碎片时间写一些无关紧要的文字,主要是自己的一些思考和心绪。我发现,写作的过程真的具有疏解内心压力的功效,然后我逐渐意识到,这不仅仅是写作,这是一种倾诉。</p> +<p>而倾诉,很可能是一种卸下负能量的过程,也是积攒正能量的过程,每个人都有倾诉的需求,以前我没意识到,原来倾诉是舒缓内心的一剂良药。</p> +<p>可能对于外向的人来说,这不是问题,因为在日常生活中,他们随时随地在向别人诉说和交流,向别人输出自己的感受或观点。但是对于内向者来说,可能比较缺少倾诉的出口。</p> +<p>不过除了说话是一种倾诉方式之外,写作、绘画、其他艺术创作等,应该都是有效的倾诉方法,写到这儿我发现,怪不得艺术家多为内向者。</p> +<h2 id="餐桌段子">餐桌段子</h2> +<p>2017年几乎没怎么看电视,不仅仅我自己,全家人也几乎都不看电视了,一方面是因为电视中的内容比较无聊,另一方面主要是因为孩子,孩子的作业较多,如果全家看电视的话,而且在吃晚饭的时候看电视的话,基本都会严重影响孩子的作业时间,而且一边吃饭一边看电视实在是不好的习惯,所以我有意识的在生活中取消掉了电视时间。</p> +<p>这样以来,刚开始大家都不怎么习惯,因为默不作声闷头吃饭实在是有违传统,用孩子的话说就是场面变得好尴尬,整个餐厅只回响着我biaji嘴的声音。</p> +<p>偶然的机会,我跟金妍开始尝试在餐桌上讲段子,都是一些学校的趣事,或者吐槽日常生活中的事情,可吐槽的对象主要包括“老师布置的作业”、“妈妈做的饭菜”、“爸爸的坏毛病”,或者是对于学习中的一些技巧。</p> +<p>由于孩子笑点很低,所以基本上我都是以原创和自制的段子为主,讲出来都比较冷(比如:为什么金币的颜色是黄色?答:因为“金碧辉煌–会黄”),但是,充分发挥脱口秀精神时,起到的效果都很不错,常常一顿饭吃下来笑到腮帮子疼(请勿模仿,吃饭还是尽量别笑,尤其是米饭)。</p> +<p>我想这些在未来都能成为孩子们成长的美好回忆吧。</p> +<h2 id="总结">总结</h2> +<p>2017年如果汇总一个关键词的话,那就是“认识自己”,到了一定的年纪之后每个人都在承受生活中的各种压力,这些压力一部分来自别人,一部分来自自己,其中自己的那部分所占比重最大。</p> +<p>中年男人到了这个时间点,或多或少都会有些迷茫,多少都有一些积累,但是又缺少安全感,失去了一些年轻人的锐利,无论从精力还是身体健康状况,都有所下降。</p> +<p>所以如果想要突破,不仅仅是努力的事情,更多的是要思考,给自己定位,并有效率的付诸实践。</p> +<p>以前在学习时间管理的时候,陷于方法和工具,所以效果不明显,直到今年才认识到,无论任何的时间管理方法论,要想有好的效果,首先要想清楚自己的目标,就好像是确定目的地似的,不然即使掌握了方法,也同样无济于事。</p> +<p>就像企业一样,一个人也同样需要战略,如果没有战略,就像是一艘行驶在大海中的船,却没有舵,随波逐流,不知道飘向何方。</p> +<p>往大了说是叫战略,实际上是用来确定所做事情优先级的指导思想,只有定出来战略,才能在日常工作和生活中知道什么事儿是必须要做,什么事儿是能不做就不做。</p> +<p>所以2017年最大的成果,应该就是考虑清楚了自己的目标和想要到达的地方,感谢这个世界有那么多美好可以让我迷恋,未来我会投入更多时间和精力到我所爱,因为我发现我努力所追求的无非就是一种状态:<strong>那种可以让我痴迷沉浸进去的一种状态。</strong></p>听说你有较强的团队协作能力?https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/Sat, 18 Nov 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%AC%E8%AF%B4%E4%BD%A0%E6%9C%89%E8%BE%83%E5%BC%BA%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%83%BD%E5%8A%9B/<p>几乎在所有的职位招聘要求里,都包含一条“有较强的团队协作能力”,与之对应的是,几乎每个人都会心安理得地在自己的简历里写上“有较强的团队协作能力”,就像写“本人熟练使用Office”那样心安理得。</p> +<p>无论是出题的人,还是答题的人,可能都没有认真的考虑过,什么是“团队协作能力”,可能只是在内心里觉得“好像加上这么一条,会显得更像那么回事儿吧”。</p> +<p>近期做了一些与“个人能力评估模型”相关的工作,使我不得不认真思考这个问题。我发现,想把这个事儿解释清楚,并落在实实在在的执行上,还真没那么容易。</p> +<p>首先,“团队协作能力”可以是对一个团队的衡量,也可以是对一个人的评价,接下来根据我个人粗浅的观察和分析,谈谈对个人能力的评价,即我觉得一个人怎样算是“有较强的团队协作能力”了。</p> +<h4 id="0尊重他人">0、尊重他人</h4> +<p>可能是人类与生俱来的天性所致,要做到这一点还真是相当不易,且不说地域、种族、信仰等比较沉重老套的话题(这些方面往往最能暴露天性),即便是在日常的讨论中,我们也很难做到在面对不同观点时以对事不对人的态度来讨论,很容易将一件鸡毛蒜皮争论上升致对个人的全方位评判,争到最后往往要捍卫的不是真理,而是自我“对”与“错”的“尊严”。因此,做到充分的听取他人的意见,理解各方的立场与观点,尊重并理解与自己不同的声音才是良好协作的开端。</p> +<p>说到这里我忽然想到当年庄子跟惠子俩人在河边关于一条鱼是否快乐争论半天,至今未分出胜负,可见庄子若论团队协作,不求行,打嘴炮行。</p> +<h4 id="1勇于担当">1、勇于担当</h4> +<p>日常生活中,比较好协作和沟通的人往往具有比较能担当的性格,对于他人(所谓自负者眼里的“猪队友”)做错事情而造成的后果,这些人第一时间是给予安慰和指导,而不是指责和抱怨。相反,如果第一时间选择将“锅”甩的远远的,立即划清界限,很难相信其能具备多强的协作能力。</p> +<p>所以,既然是协作,肯定会涉及多个人的配合,能否做到包容他人并勇于担当,应该是协作的基础。</p> +<h4 id="2谦虚的态度">2、谦虚的态度</h4> +<p>谦虚是一种美德,这大家从小就知道,“三人行必有我师”也早已挂在嘴边随时准备被调用,可是在现实生活中我们所谓的“沟通”却总是想着在这个过程中教别人些什么。在团队中做事,能否空杯心态,听取他人的建议和意见,而不是固执己见,觉得所有人都不如你。每个人都有自己擅长的事情,多看到别人的优点,谦虚地学习,应该没有人会喜欢跟狂妄自大目中无人的人合作吧。</p> +<p>这一点古人做的就比较好,比如著名的“一字之师”的故事,写诗那哥们儿,“前村深雪里,昨夜数枝开”被人改成“前村深雪里,昨夜一枝开”,这哥们儿不但没有恼怒反而当即称改诗那哥们儿为一字之师,可见其谦虚好学。(反观自己,代码被人改了往往会有些不爽)。</p> +<h4 id="3分享精神">3、分享精神</h4> +<p>在“伸手党”横行的年代,拥有分享精神无疑是一种比谦虚还要美的美德,无论是分享自己的观点、心得还是见闻,都可以在过程中得以升华,实现双赢的效果。而具有分享精神的人往往在团队中拥有较好的人缘和评价,我个人始终认为知识越分享就掌握的越牢固,信息越分享沟通就越顺畅,所以是保守封闭还是乐于分享应该也是衡量团队协作的一项重要指标。</p> +<p>不过,也许跟团队的性质有关,比如FBI的特工可能就不能太有分享精神吧。。。</p> +<h4 id="4表达能力">4、表达能力</h4> +<p>人的愤怒大部分来自于无法表达自己,很多人的狂怒往往伴随着这么一句话&mdash;-“我说了这么半天你怎么还不明白?!”,对于性子急躁着表现更为明显,这种愤怒,与其说是对别人不理解的愤怒,倒不如说是对自己比较弱的表达能力的愤怒。这个倒是可以锻炼,清晰的逻辑思维和较好的文字语言功底都能大幅提升表达能力,如果让我总结关于这个能力的“技巧”的话,就四个字儿&mdash;-“抓住重点”。</p> +<h4 id="5团队利益与价值观的认可">5、团队利益与价值观的认可</h4> +<p>即便做到以上多点,如果不能认可自己所在团队的价值观的话,也很难得以发挥。要做到这条,首先是对团队利益和价值观认知的问题,能否看清团队利益所在,知道该提倡什么和拒绝什么,是基本。其次,对于需要大家共同遵守的原则是否发自内心的认同,否则作为个体应该会比较难受,高效协作也就无从谈起了。当然这一点来说,不仅仅是对个人的要求,能否理出清晰的原则并身体力行的去执行,更是对团队领导者的要求了。</p> +<p>写了这么多,其实都是人人明白的道理,也都能明白难在具体的执行,不过,花一点儿时间整理一下思路,就当是一个自我反省了,当然要是能正向影响一些人,并给人带来一丢丢的思考和改进念头,那就更好了。</p>压力比较大?讲个笑话放松一下https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/Fri, 07 Jul 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/<p>一些老段子,放松一下(来自知乎https://www.zhihu.com/collection/124380021?page=2)</p> +<h3 id="给我一个坚定的眼神">给我一个坚定的眼神!</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-a0750a572a35cda7.webp" +width="600" +height="317" +loading="lazy" +alt="给我一个坚定的眼神" +class="gallery-image" +data-flex-grow="189" +data-flex-basis="454px" +></p> +<h3 id="无题">无题</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-0b95397b5dba2834.webp" +width="426" +height="458" +loading="lazy" +alt="无题" +class="gallery-image" +data-flex-grow="93" +data-flex-basis="223px" +></p> +<h3 id="怎样制作草莓酱">怎样制作草莓酱</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-90a50bac1f3a38d6.webp" +width="350" +height="1737" +loading="lazy" +alt="草莓" +class="gallery-image" +data-flex-grow="20" +data-flex-basis="48px" +></p> +<h3 id="能让你产生强烈情绪的图片">能让你产生强烈情绪的图片</h3> +<p><img src="https://sbabybird.github.io/p/%E5%8E%8B%E5%8A%9B%E6%AF%94%E8%BE%83%E5%A4%A7%E8%AE%B2%E4%B8%AA%E7%AC%91%E8%AF%9D%E6%94%BE%E6%9D%BE%E4%B8%80%E4%B8%8B/25416-5af7967d7aced9ce.jpg" +width="440" +height="4122" +loading="lazy" +alt="能让你产生强烈情绪的图片" +class="gallery-image" +data-flex-grow="10" +data-flex-basis="25px" +></p> +<h3 id="填空题">填空题</h3> +<p>小学时有道关联词填空: +他( )牺牲生命,( )出卖组织。 +有人填“宁可 也不”;有人填“害怕 , 所以”; +有人填“与其 不如”;有人填“即使 ,也要”; +更有个人全校出名,他填的“白白, 忘了”。 +评论里有个清新脱俗,苦大仇深的,他填“大舅,二舅”!</p>每个周末的下午,这样做把你的效率提升百倍https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/Sun, 23 Apr 2017 00:00:00 +0000https://sbabybird.github.io/p/%E6%AF%8F%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84%E4%B8%8B%E5%8D%88%E8%BF%99%E6%A0%B7%E5%81%9A%E6%8A%8A%E4%BD%A0%E7%9A%84%E6%95%88%E7%8E%87%E6%8F%90%E5%8D%87%E7%99%BE%E5%80%8D/<p>为了避免浪费时间带来的焦虑,人们一般会选择做些什么来保持忙碌,或者至少在看起来是十分忙碌的样子。即使当下所做的事情可能对于完成任务目标来说毫无意义,甚至是背道而驰,但是为了逃避思考,往往沉浸在自己已经“很忙了”、“没时间考虑”这样的假象当中,乐此不彼。</p> +<p>我以前在出行的时候,有时坐地铁到一个陌生的地方,不知道出了地铁口该怎么走,这个时候我就会比较焦虑,一般会先随便朝一个方向走一段,然后一边走一边查看地图,很多时候发现我前进的方向与地图上规划的路径是相反的,但是我的潜意识里认为,我在走动中查地图,比我站在那儿不动查地图要节约时间,要安心一些。这显然是不对的。在一次内部分享会上,我跟大家讲了自己的故事和体会,来说明每个人都或多或少都有这样的逃避倾向(有心理学家指出,事实上脑力劳动才是最累的体力活儿,所以人的天性都是逃避真正的动脑思考的,最好是别人都替我想完了)。</p> +<p>意识到以上的思维模式是错的以后,然后就是想办法来避免。首先需要解决的就是,针对工作中,思考上的懒惰。当然这事儿早就有人发现并指出了,比如著名的那句“战术上的勤奋掩盖不了战略上的懒惰”,以前还有句老话叫“不仅低头拉车,也要抬头看路”等等。</p> +<p>但是都没有提供更加接地气的具体方法。我有一个具体可行的方法,操作起来简单有效,又花不了太多时间,在我看来,对于每一个职场中人都十分适用,除非不思进取、天生与效率为敌(此类人乃将来被AI替代的主要对象)。</p> +<p>具体做法就是:** “在每个周末的午后,抽出30分钟时间,把你认为你下周最重要的三件事确定出来,列到你的工作计划中去。” **注意,是三件,不是更多,此举目的并非让你制定完美计划,而是判断什么事情是重要的,如何判断最重要?很简单,问自己一个问题即可:“我在完成这三件事儿之后,是不是即使其他事情都不干、躺下睡觉,也能认为本周工作是成功的,至少是及格的?”</p> +<p>这样做好处有三,都是立竿见影的效果。</p> +<h3 id="1这是一个很好的重新审视工作的机会">1、这是一个很好的“重新审视工作”的机会。</h3> +<p>即,“抬头看路”。暂时放下手中的忙碌,重新认识一下自己的工作目标,你会发现无论任务有多繁杂,要达成的目标就那么几个,最终的目的地就在那儿,所有任务都应该是指向那儿的,如果不是,那就更简单,降低优先级,或者干脆从任务清单里把它踢出去。</p> +<h3 id="2这样做可以有效避免周一综合症">2、这样做,可以有效避免“周一综合症”。</h3> +<p>现在人,矫情起来谁还没有个心理疾病啊,各种“症”往自己身上套,最明显的就是“周一综合症”或者“节后综合症”,更有甚者称之为“上班的心情比上坟都沉重”。焦虑的根源在于“不可控”,不知道自己做的事情与承诺的目标有什么关系。列出重点之后,先做这些事情,剩下的事情就越做越轻松了。提前考虑好了,就化被动为主动了,心情自然不同。</p> +<h3 id="3便于跟踪工作计划">3、便于跟踪工作计划。</h3> +<p>各方示例都表明,有计划地开展工作,要比稀里糊涂开干效率高的多,但是“有计划没跟踪”也是一个很致命的问题。我在每个周末的思考时间里,都会查看团队成员发来的工作周报(我要求他们也这样做),一是跟踪上周任务完成情况,二是查看下周的工作重点是否偏离既定目标,如果偏离就及时修正,避免了时间和资源的浪费。</p> +<p>习惯虽小,但是一旦养成,威力无穷。为了配合我们高效的工作和管理方法,我们开发的移动办公应用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>“遥知”</a>* (是一款轻量级主打体验的共享协同办公应用) *做出了十分匹配高效工作者的功能,帮助大家养成高效工作的习惯,避免在思考上的懒惰,借助这款工具,无论在工作方法上,还是协作效率上,我们的团队都得到了显著的提升。</p> +<h3 id="硬广时间扫码直接下载遥知httpsphoneq365powercnjadestoredetailnameminierp开启高效工作之旅吧">硬广时间:扫码直接下载<a class="link" href="https://phoneq.365power.cn/jade/store/detail?name=miniErp" target="_blank" rel="noopener" +>遥知</a>,开启高效工作之旅吧!</h3> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-96db89b6821685de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="免费试用遥知" +></p>关于远程办公的思考https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/Sat, 18 Feb 2017 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/<p>据悉,Github有超过一半的员工遍布在全球各地,而开源组织OpenSSL的团队则一直都未在线下见过面(直到后来有<em>某老板</em>资助他们在线下碰了一次面)。随着科技的进步和社会的高速发展,知识型工作的办公方式正在逐渐由集中办公向分布式远程办公转变。</p> +<p>远程办公带来的好处非常明显,比如:有效解决了员工上下班通勤浪费时间的问题,顺便还缓解了交通压力,对环境保护亦有贡献;抛开了地域的束缚,可以吸引全球各地的人才参与,对企业的人才战略有积极影响;有效降低企业办公场地投入;团队效率、员工积极性都能得到有效提升;等等。</p> +<p>但是如何具体的实施远程办公,不同的团队会有不同的见解,我个人一直热衷于推进办公模式的改进,也做过相关尝试,下面根据我的浅见,从几个方面总结一下远程办公的关键要素:</p> +<h3 id="成果目标的明确定义和有效检查">成果目标的明确定义和有效检查</h3> +<ul> +<li>远程办公对于团队管理要求更高了,一个团队要统一一个目标,大家对于目标的定义应有一致的理解。须将目标逐级分解具体到人,并提前设计好由细节到整体的成果装配流程。</li> +<li>每一种类型的任务要有对应的检查清单(checklist),每日的工作成果都要通过检查清单的检查。</li> +<li>团队的工作成果要有装配和构建系统进行组装,并有一个全局的检查清单,有专人负责检查。</li> +<li>员工自我检查,组长验收检查,配置管理组装检查,质量管理进度跟踪检查。</li> +</ul> +<h3 id="沟通的及时性和有效性">沟通的及时性和有效性</h3> +<ul> +<li>所有人应该可以立即呼叫到所有人,反应是实时的,不能超过30秒的延迟。</li> +<li>语音,文字使用统一的语言体系,命名和表达方式需要规范化。</li> +<li>可以随时截屏和录制一小段视频传递给任何人,必要时需要共享显示器和白板的内容。</li> +</ul> +<h3 id="工作进度跟踪">工作进度跟踪</h3> +<ul> +<li>有效、深入细节的项目管理,需要有完善的项目台账,实时反应项目的状态。</li> +<li>显式任务管理,团队里的所有人要知道所有人的工作任务情况,可区分普通任务和私密任务。</li> +<li>项目生命周期管理细化到任务生命周期管理,起源、分解、执行、成果检查、后评价、归档入库、装配完结。</li> +</ul> +<h3 id="办公状态模拟">办公状态模拟</h3> +<ul> +<li>为防止远程办公缺少仪式感,需要规定集体的远程互动,举行每日开工会议和收工会议。</li> +<li>严格统一上下班时间,确保大家同时在线。</li> +<li>每周至少一天线下见面会议,集中起来讨论工作。</li> +</ul> +<h3 id="信息化工具支持">信息化工具支持</h3> +<ul> +<li>使用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>的“小纸条”进行及时沟通。</li> +<li>使用<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>的项目管理和任务管理进行协作管理。</li> +<li>使用qq、视频直播等工具进行远程集体互动。</li> +<li>使用gitlab做好配置管理和成果审查。</li> +<li>使用docker、jenkins等做好产品的持续集成和每日成果构建。</li> +</ul> +<p>为了在我们的团队更好的推行远程办公模式,我们不断探索和思考,去年初,我所在的团队开始小范围尝试远程办公的模式,期间遇到了一些问题,我们也做出了一些工作方式上的改进,总的来说利大于弊,经过这些尝试,更加坚定了我们未来逐步迁移至远程办公模式的决心,也促使我们研发了移动端协作工具<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>,致力于帮助更多的知识工作者更高效的远程办公。</p> +<p><img src="https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC%E7%9A%84%E6%80%9D%E8%80%83/yaozhi.jpg" +width="200" +height="200" +loading="lazy" +alt="遥知" +class="gallery-image" +data-flex-grow="100" +data-flex-basis="240px" +></p>未来企业扁平化管理中的信息化需求https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/Sat, 11 Feb 2017 00:00:00 +0000https://sbabybird.github.io/p/%E6%9C%AA%E6%9D%A5%E4%BC%81%E4%B8%9A%E6%89%81%E5%B9%B3%E5%8C%96%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E4%BF%A1%E6%81%AF%E5%8C%96%E9%9C%80%E6%B1%82/<p>“扁平化”管理并不是什么新鲜的概念,早在上个世纪就有公司在尝试通过压缩管理层级来实现扁平化管理,并取得了不错的成效,以至于有一阵子“扁平化”管理理念大有席卷全球之趋势。</p> +<p>但后来事实证明,在缺少有效的沟通和协作机制之前,扁平化管理的瓶颈往往很快出现在管理者身上,原因很简单,传统的“金字塔”式管理虽然等级多、决策下达缓慢,但是符合2/8原则,一个管理者只需要管理较少的几个人,沟通比较顺畅,扁平化管理模式下的管理者需要对接的人较多,很容易形成沟通瓶颈。</p> +<p>所以“扁平化”在火了一阵子之后,不少企业掉进坑里挣扎了一阵子之后,又回归传统的“金字塔”模型。</p> +<p>但是,随着技术的进步,很多工具得以改进,好多传统的“真理”也不再那么有效(比如一人最多管理7个人),这一点上来说,很多国外的互联网公司已经快速发现改进点,并将“扁平化”管理结合了现代化工具和理念成功在自己的企业推行。</p> +<p>比如著名的谷歌。无论是技术还是管理,谷歌一直是走在时代前列的公司,其管理方式或企业价值观虽不能照搬,对于我们仍有一定的借鉴意义。</p> +<p>最近读了两本关于谷歌公司的书,《重新定义公司》和《重新定义团队》,书中讲解了谷歌公司对未来公司组织、团队管理的尝试和思考,在信息文明全面取代工业文明的时候,传统的组织方式和团队管理会怎样被超越。两本书从文化、战略、决策、人才、沟通等多个方面阐述了未来企业的改进可能。</p> +<p>内容比较多,不同的人看了可能有不同的收获,通过读书,一方面我发现了未来组织对扁平化管理的需求,然后思考了企业信息化对这一管理模式的支撑,下面简单谈谈我的看法(比较有意思的是,谷歌公司的员工也在抱怨他们自己开发的IT系统不好用)。</p> +<p>###利用信息技术提升管理者与员工在“扁平化”管理下的沟通效率。 +通过互联网、移动应用可以实现所有人的实时在线,无论是任务指派还是成果检查,或者随时沟通一些思路和想法。所以我猜测,未来的企业,可以一方面在线下仍然建立传统的“金字塔”层级结构,另一方面,通过移动应用工具,在线上建立“扁平化”的虚拟管理团队,企业的管理者可以获得更强的管控力和执行力。</p> +<p>###利用信息技术加强企业文化的建设。 +利用现代化的信息工具,企业内的每个人都可以更迅速的向团队传达及时的信息,分享自己的观点、技能。工作的目标更容易清晰传递,工作进展也更容易跟踪,管理者更方便地关注每一个成员的状态,只要积极利用工具向大家分享信息,“企业文化”就不再是一句虚无缥缈的口号,而是变成真正融入到每一项工作中、影响每一个成员的实实在在的观念、模式、原则。</p> +<p>###利用信息技术放大“好员工”的影响力。 +称职的管理者在团队中一定是认可并推崇积极优秀人才、打击并消灭低效消极人员的,传统的方式下一个好员工的影响力可能只局限在自己负责的那一部分工作,但是利用社交化的信息工具,在管理者的推动下,可以放大好员工的影响力,一个明星员工可以给更多的人带来正面影响,优秀可以“传染”给更多人。</p> +<p>###方便打造学习型组织。 +学习型组织,或学习型团队,现在大家提的比较多,构建一个学习型的团队是很多管理者的共识。信息技术提供的在线工具和移动应用可以让团队管理者更方便的实现打造学习型组织的理想。知识分享除了通过线下的活动进行外,还可以随时在线上进行,无论是看到了好的文章或者想系统的给团队成员讲解某一项技能,都可以利用信息工具在线上进行。</p> +<p>###“标准”与“流程”不再是束缚,而是助手。 +很多人提到企业信息化往往第一个想到ERP或传统的OA系统,但是未来这两个东西一定为消亡,或者换一种方式存在。传统的“标准”和“流程”是“死”的,听起来就没有什么生命力,未来的信息化工具在这个方面要想突破,一定是高度可定制化的,通过定制化,适应企业的高速发展,通过定制化,甚至让使用信息工具的人自己“创造”功能。</p> +<p>###遥知 +以上是关于新形势下企业信息化需求的简单思考,我所在的团队也正在做一些尝试,管理上,向扁平化方向发展,信息化工具上,我们自主开发了一款满足上述需求的移动应用产品&mdash;-<a class="link" href="http://yz.365power.cn" target="_blank" rel="noopener" +>遥知</a>,目前已经发布,正在积极推广中,有兴趣的可以尝试一下,虽然距我们设定的目标还有一定的距离,但对我们自己的团队管理已经初见成效,通过不断的迭代和改进,我相信我们会成为未来企业信息化管理工具的引领者。</p> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-9accb32495a84ba4.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="遥知" +></p>2016年的个人总结https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Mon, 02 Jan 2017 00:00:00 +0000https://sbabybird.github.io/p/2016%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>每个新年假期我都会抽出一个下午的时间,回顾一下这一年所经历的事情(工作以外),总结一下得与失,回顾过去的同时顺便展望一下美好的未来。</p> +<p>2016有很多值得怀念的,也有很多值得感谢的,从几件小事谈起,简单总结一下生活。</p> +<p>0 、读书,2016年初定下原则,多看书少看电影,结果执行的还不错,朋友给推荐了一些书,自己也随机的买了一些,利用晚上睡觉前的一些时间累计下来一年也能看个十本八本的,印象比较深的有白先勇的《台北人》、蔡崇达的《皮囊》、村上春树的《当我跑步时我谈些什么》、东野圭吾的《解忧杂货店》、王小波的《万寿寺》。看完《当我跑步时我谈些什么》之后还冲动地跑了一个月的步,后因天气原因未能坚持(也不遗憾,姿势不当可能损伤关节)。技术类书籍没少买,每年仍看一遍《黑客与画家》,今年人工智能和大数据方面发展比较迅猛,陆续看了一些与之相关的书,对于科技的发展保持密切关注。</p> +<p>1、写字,每周都在简书写一些文字,记录一些心得体会,或者对一些事物的看法 ,质量参差不齐,大部分文字都未经推敲,纯粹自娱自乐。虽错把创作冲动当才华,但比起只说不做,我毕竟坚持把思想落实在了行动上了,一些文字也能引起共鸣,甚至有朋友打赏鼓励,最后统计了一下,写了五万字,一共收获了一百多块赏金,其中老妈、老妹打赏最多。</p> +<p>2、沉思录,从年初开始在微信朋友圈坚持做的一个小试验,每日睡前将当日坐车或刷牙时考虑的无聊问题,总结一段文字,发到朋友圈,浅薄幽默为主,记录心情为辅,偶有正能量鸡汤出没,好在我的朋友大都了解我的性格,通过这样一个小互动,得到大家很多的鼓励,谢谢你们。</p> +<p>3、脱发,虽然健康问题不容忽视,但是随着年龄的增长,脱发,是每一个“聪明”的中年男人都要面临的问题,就像我大学时第一次丢自行车似的,刚开始不敢相信,到后来,不得不接受这个事实。小区门口理发店的老板,给我剪了十多年的头了,从最初不断夸赞我头发浓密,到现在已经开始主动帮我掩盖局部地区的稀薄了(不过我还是没在他们家办卡)。不过还好,至少老年时我不会为是否需要染发所困扰了。</p> +<p>4、幽默与抑郁,幽默的人比较容易抑郁,据说很多喜剧大师如卓别林、周星驰,甚至很多段子手如赖宝,都有抑郁症。原因是幽默的人一般不太会处理自己的负面情绪,往往使用幽默的手段来进行心理防御,负面情绪得不到发泄,造成内伤。不过我还好,庆幸还没幽默到那种程度,自然也就不会抑郁那么狠,作为一个后知后觉的“慢性子”在经历的事情多了之后也能想明白不少问题,现在已经基本上不太会被别人的期望和评价所影响,知道关心自己的人是谁,在意该在意的,忽略该忽略的。</p> +<p>5、老爸的忆苦思甜,父母每年暑假都会过来住一段时间,为了表示诚意,这段时间我几乎每天都要跟老爸喝两杯,三杯酒下肚,老爸必然通过将各种故事对我进行教育,老爸讲故事有个特点,那就是保持在故事框架的基础上,为了达到更好的效果,可以进行适量的改动(比如《武松打虎》这一回,武松最多的一次是喝了72碗酒才把老虎打死的)。所以虽然我早已将忆苦思甜的框架烂熟于心,但每次捧哏的时候还是得认真对待,虔诚的接受“再教育”。毕竟老爸尝过挨饿的滋味,所以我经历的这些困难在他面前基本无颜提起。</p> +<p>6、“克己”,我在办公室放的有一本《传习录》,里面记载的都是明代心学大师王阳明与弟子、朋友的对话或书信,我古文水平很次,看起来磕磕绊绊,但是偶尔也会拿出来翻一番,说不定哪天就能领悟到一些东西。某日看到一段对话对我启发很大,了解到很多道理都有千丝万缕的联系,比如很多人看过的《高效能人士的七个习惯》,其中第一个习惯就是“积极主动”,大家也很推崇“积极主动”,但我某天在看《传习录》的一段对话时才更加理解这个“积极主动”了</p> +<blockquote> +<p>“弟子问王阳明为什么平时道理都明白,遇到事情的时候却还是难以控制自己,老王说,那是因为你经历的事情还不够,没能克己,你还是应该在事情上磨练自己”</p> +</blockquote> +<p>这里的“克己”虽然说的是在事情上磨练自己,但是怎么磨练?其实就是遇事要积极主动,不放过任何可以锻炼自己的机会,这样才会有进步,也就不会出现道理都懂,但实际没懂的情况了。</p> +<p>7、时光倒流,有天金妍问我,时光真的能倒流吗?为了严谨一些,我回答,现在不能,以后或许可能。然后我问她,如果时光可以倒流,你想回到什么时候?她说,我想回到小时候。小时候?多小?我问她。她说,我想回到4岁(幼儿园)。看来从上了小学,我们的人生就开始了战斗模式。我说,那等着哪天科技发达了,咱们一起回到小时候吧。我没忍心说,其实就算时光可以倒流,我们自己是不可能倒流了,我们的人生就像是离弦的箭,开始了,就永远不能回头,只能不断向前,冲刺再冲刺,然后在向前的过程中,去寻找美好的体验和感受,并努力赋予这个过程以意义。</p> +<p>时间过的很快,2017年我希望自己能够成为一个更好的 人,读到更多好书,听的更多好歌,做出更美的产品,坚持良好的习惯,关注他人的体验,向身边的人多学习,并坚持自己的梦想,向快乐出发!</p>写点儿东西,以防自己把别人的知识当成自己的https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/Sat, 24 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E7%82%B9%E5%84%BF%E4%B8%9C%E8%A5%BF%E4%BB%A5%E9%98%B2%E8%87%AA%E5%B7%B1%E6%8A%8A%E5%88%AB%E4%BA%BA%E7%9A%84%E7%9F%A5%E8%AF%86%E5%BD%93%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84/<p>作家余华在<a class="link" href="https://www.douban.com/group/topic/38345927/" target="_blank" rel="noopener" +>《我能否相信自己》</a>里写的一句话让我看了很有触动:</p> +<blockquote> +<p>“那些轻易发表看法的人,很可能经常将别人的知识误解成是自己的,将过去的知识误解成未来的。然后,这个世界上就出现了层出不穷的笑话。”</p> +</blockquote> +<p>这正是我所担心的,担心知道的太多,明白的却又太少。前者容易造成焦虑,信息的过载,或者想的太多。后者则导致在实际生活中面对问题时仍旧束手无策。</p> +<p>面对互联网上大量的信息和资料,为了缓解焦虑,大部分人都有两个习惯,一个是收藏,一个是转发。</p> +<p>我曾经维护着一个巨大的笔记列表,里面全是我多年来在互联网上搜集的各种资料和文章,从工具技术到人文自然与哲学相关的,都有。我还耐心的给每篇文章都增添了标签进行分类,以便“以后”更方便的查找和“仔细阅读”。</p> +<p>然而,事实是,永远会有更新的内容出现,然后动动鼠标就能收藏,但是再也没找到机会进行“仔细阅读”,当时那种“留下来慢慢看”、“以后会有用”的感觉是那么强烈,但是,真的很少再想打开看一眼。那些文章永远的躺在收藏夹里,累计出来的数字越来越大,甚至开始让我误以为那些东西我都懂了。</p> +<p>另一个习惯就是“转发”,看到好的东西就想分享,这是一个好习惯,但同时大量的分享也反映了一个很细微的心理激励过程,即,如果我转发某篇文字,里面提到了很多我十分认可的观点或思路(但事实上我可能根本做不到),我就忍不住要转发出来,在转发的那一刻,我的内心深处隐约觉得,好像离“做到”又进了一步(其实并没有)。</p> +<p>我想不仅仅只有我才是这样,应该很多人都有这种习惯和心理。</p> +<p>后来,我意识到了这一点,逐渐的开始改进,直到有一天我想明白了,自己不应该胡乱发表连自己都不能明白的观点,自己知道的东西不一定就能成为自己的知识。于是开始有意的控制信息的获取,转而开始尝试着将自己能想明白的东西用文字组织一下,开始“消化”知识,通过文字重新构建自己的“知识体系”。</p> +<p>书写东西实际上是一个思考的过程,很多写作高手看起来轻易就能写出精彩的文字,事实上底下支撑的并不是他有多强的“写作”能力,而是他的“思考”能力,他能否构建出一个他想要表达的形象,一个完整的、具体的形象,然后剩下的就是写出来。</p> +<p>所以说,能够写出来的东西,至少,表明了作者可以在内心里构建一个清晰的影像,对于自己的知识,有了更进一步的理解。</p> +<p>从将知识写成文字开始,到真正在现实中有效使用,再到可以传授给他人,慢慢的“我知道的”,就真的变成“我懂得”了。</p> +<blockquote> +<p>“我的大脑就像是一口池塘,别人的书就像是一块石子;石子扔进池塘激起的是水波,而不会激起石子。”“因此别人的知识在我脑子里装得再多,也是别人的,不会是我的。”</p> +</blockquote>应该自己动手做一些东西了https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/Sat, 10 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%BA%94%E8%AF%A5%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF%E4%BA%86/<p>学会制造和使用工具应该是人类区别于其他物种的最重要的一项区别,所以DIY应该是一种原始的冲动。每个男人都应该有一个属于自己的工具箱,或者更近一步,一个工作台。</p> +<p>据说德国的制造工业之所以发达就是因为人家从小就培养和锻炼孩子的动手能力,几乎每个家庭都拥有全套的机械维修设备,小孩从几岁开始就趴在旁边看老爸在那儿捣鼓各种东西,骨子里就渗透了DIY的文化。</p> +<p>这方面中国男人明显做的比较差一些(咱们当然也有高手,但从比例上来说还是太少了),一方面可能是因为从小所接受的教育比较注重理论文化知识、轻视实际操作能力,另一方面也可能是我们的人力相对廉价,有什么事情直接找专业工人搞定,老外的人工费用太高,动不动就找人做的话肯能花钱比较心疼。</p> +<p>我身边认识的人也有比较能动手折腾的,但他们很少因为这样的技能而得到尊重,最后往往沦为一个免费修理工。不过也没关系,动手折腾带来的乐趣本身比什么都重要。</p> +<p>最近偶然在网上看到DIY达人上传的自制机器人的视频,发现了更大的世界,原来有这么多喜欢动手DIY的人啊,赶紧去Youtube搜索一下,结果搜到大量视频,小到使用打火机制作迷你喷壶,大到在自己家后院架设完整的游乐场过山车。看过之后,赞叹和羡慕之余,感觉竟然还有些蠢蠢欲动。</p> +<p>以前也喜欢动手修理一些东西,尝试制作过纸箱收音机之类的玩意儿,但随着年龄的增长,逐渐失去动手的机会和时间,以至于现在几乎彻底丧失了此类能力。</p> +<p>所以呢,行动最重要,既然喜欢自己做一些东西,那不妨先从丰富和建设自己的工作台开始,然后一边鼓捣软件,一边鼓捣硬件吧。</p>AI会是人类最后的发明吗https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/Sun, 04 Dec 2016 00:00:00 +0000https://sbabybird.github.io/p/ai%E4%BC%9A%E6%98%AF%E4%BA%BA%E7%B1%BB%E6%9C%80%E5%90%8E%E7%9A%84%E5%8F%91%E6%98%8E%E5%90%97/<p>最近在读一本书<a class="link" href="https://book.douban.com/subject/26855627/" target="_blank" rel="noopener" +>《我们最后的发明》</a>,作者在书中表达了对人工智能发展的深度担忧。并阐明了一个耸人听闻的观点——人工智能将带来人类的毁灭(比核武器带给人类的伤害要大多了)。</p> +<p>客观来说,目前的人工智能仍然处于较为低级的阶段,只能应用于非常窄的专业领域(专业术语叫ANI,狭义人工智能),如文字处理、语音识别、图像识别、棋类对弈等等。受制于硬件环境的制约,对于这一类技术的研究曾经一度停滞不前,但近些年开始,基于大数据技术和生物技术以“深度学习”为代表的“机器学习”类技术的崛起,给人工智能带来了高速发展的可能。</p> +<p>AlphaGo战胜了人类围棋手已经被说的太多了,举两个其他的例子,大概还是在前年的时候,我研究过一段时间的基于图像识别的文字识别技术,阅读了很多资料,做过一些尝试,发现很难将文字的识别率提升到可以接受的水平,以至于沮丧的认为电脑不可能战胜人脑,因为三岁的小孩就可以轻易的分辨出照片中的动物是一只猫还是一只狗,但是电脑却判断不出来。然而没过多久我就看到新闻,谷歌已经通过“深度学习”技术通过让程序大量的阅读图片(谷歌的数据量很大),使得程序已经可以自动发现在任意图片中的“猫”,而且这还建立在人类从来没有告诉他“猫”这个概念的前提下。就在前几天,谷歌又爆出新闻,通过观看BBC的电视节目,他们的程序已经“学会了”读唇语的技能,而且识别率已经远远高于人类的读唇语专家(从这一点可以看出,电脑一旦某个方面超越人脑,人脑就再也没有机会追赶了)。</p> +<p>这还只是ANI,随着时间的推移,科学家们肯定蠢蠢欲动,开始着手研究AGI(广义人工智能),通用的人工智能,也就是说在智能上各方面均能达到人类的级别,这才是真正意义上的人工智能,也是历代人工智能工作者梦寐以求的结果。</p> +<p>可是有个比喻说的特别好,说通用人工智能就像是一列高速前进的火车,我们站在站台上远远看着它飞速向我们奔跑过来,然而就在赶到我们跟前的那一刹那,火车并没有停歇,而是从我们身边呼啸而过,将我们远远的甩在身后。这个时候的人工智能就是所谓的ASI(超级人工智能)。</p> +<p>而且,据很多持悲观态度的分析人士(如本文所提到《我们最后的发明》一书的作者)所设想,从AGI到ASI的进化时间,要比从我们现在发展到通用人工智能要快的多,根本不是一个数量级,也许我们盯着屏幕眼瞅着我们发明的通用人工智能在短短几分钟内进化成为超级人工智能,然后,剩下的事情,就很难设想了,作者在书中提到了好多可能性,遗憾的是,没有一种可能是对人类有利的。</p> +<p>为什么呢,毕竟是人类创造了它啊?可惜的是,它并没有对创造它的人有什么感激之情,相反,它很可能不再依赖人类,根据自己的决策来处置人类(想想《黑客帝国》吧)。从情感上来说,人类肯定想控制这些智能,并天真的认为可以通过编程手段来处理机器的逻辑判断(这正是我们现在广大软件工程师每天要做的事情),可惜,了解“机器学习”的人都知道,正是因为“机器学习”的“模糊”(输入和输出的因果关系不是通过编程控制的,而是根据统计和概率学习得来的)特性,使得计算机能够自动的找到我们无法通过编程来找到的最优解。</p> +<p>还有一点,也是人类的一道防线,那就是“意识”,作为这颗星球的掌控者,人类骄傲的认为,“意识”是人类独有的东西,因为“意识”是对“思考”的“思考”(元思考?),所以我们认为人工智能再牛,如果没有意识那么也不过是个受人控制的机器而已。可是关于这一点,现在也有很多争论,首先我们自己是不知道意识是怎样诞生的,了解的很少,而且一旦深入研究就会跑到科学、哲学、宗教的汇合点,最后不了了之。</p> +<p>不过,还是有人做出了比较靠谱的设想,今年最火的没有之一的美剧《西部世界》就是一个例子,虽然“人工智能的觉醒”这个概念已经被很多电影和电视剧演绎的有点儿烂了,但是这个剧以及原著小说的关于“觉醒”的设想,让人细思恐极,原来人工智能可以在条件具备的时候完成“意识”的“自举”(Bootstrap?有点儿像拎着自己的头发把自己拎起来的意思)。有兴趣的话,可以自行去网上搜一下关于这个剧的影评,因为自己看可能看不太懂。</p> +<p>不过还是不要太悲观了吧,毕竟已经有越来越多的人意识到这个问题的重要性,也有人开始系统的研究如何通过技术的手段,在研发过程中遵循某种规范和约束来降低智能爆发带来的危险,希望这件事最终像当年的“千年虫”那样能够平滑过渡吧,但愿人类能与超级智能和平相处。</p>借助两页A4纸高效工作https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/Sun, 27 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%80%9F%E5%8A%A9%E4%B8%A4%E9%A1%B5a4%E7%BA%B8%E9%AB%98%E6%95%88%E5%B7%A5%E4%BD%9C/<p>我一直热衷于尝试一切能够提升工作效率方法。几年前我非常推崇一种叫“GTD”的时间管理方法,方法效果怎样暂且不提,反正作者在全球出书(Get Things Done,中文名称《搞定》)、做演讲赚了不少钱,国内也因此诞生了一大批以讲解GTD时间管理为主题的培训机构或个人,应该也有不少人取得了显著成果。</p> +<p>但是GTD在热了一段时间之后就销声匿迹了,我推测原因是该系统太复杂了,为了完整的运行这一 时间管理体系需要做大量的准备工作,要严格执行预先定义的工作流程,虽然该系统推崇最终能够达到“心如止水”的境界,但是太难了,好多人都停留在如何选择工具这个阶段,整天纠结选用什么样的工具(或软件)才能够顺畅执行流程,结果只能是越来越糟。</p> +<p>我在尝试了一段时间GTD之后也部分放弃了,目前只保留了其思想中的“收件箱”机制,即任何事情来了之后先纳入收件箱中,分出轻重缓急(按重要程度排序下一步行动应该是GTD和核心思想了,与《高效能人士的七个习惯》中所提出的“要事第一”是一个意思)再做出下一步行动。</p> +<p>可能是现代人都比较浮躁吧,后来又流行了一段时间的“番茄工作法”,这个方法主要是帮助你集中精力,具体方法大家可以网上搜索或者购买书籍来进行学习,实施起来还算比较简单,但方法能否有效很大程度上取决于你所做的工作是什么类型,如果你是一个比较纯粹的知识工作者,那么这个方法还是很管用的,每天都可以按部就班地消灭几个“番茄”。但如果你从事的工作经常需要沟通或总被外部信息打断,“番茄工作法”就无能为力了,因为一旦被打断,刚才的工作时间就算作废了,比较容易让人沮丧,所以我无法正常使用这种方法。</p> +<p>随着时间的推移,各种方法在不断进化和融合,在抓住要事第一、清空大脑、保持专注的核心思想指导下,每个人最终都能找到 适合自己的高效工作方法,我在近期就做了一些融合和改进,虽然还没形成方法论,但是根据我自己的体会来说,效果还是很显著,因为操作起来比较简单,所以我觉得可以推广使用。</p> +<p>首先,说一下所用到的工具,很简单,只需一支笔和两页纸(A4最好,如果没有也可以用记事本替代)。</p> +<p>第一页纸,是用于写晨间日志的,一天之计在于晨,这话一点儿也不假,大部分人每天最清醒的时候应该是在早晨起床到上午10点钟之前那一段时间,如果一天当中这一段时间得到有效利用,那么这一天的时间就不算浪费了。所以把握好这一段时间这一点最重要。</p> +<p>至于所书写的内容,没有具体的要求,最好是你脑子里当时想到的东西全部写下来,如果文字不足以表达,就用图画画出来,将你此刻烦心的、畏惧的、牵挂的、未完成的、已承诺的,反正只要能想到的,都可以写下来,这么做最大的好处就是可以有效缓解你的压力,而且很多事情在写出来之后就变得没那么麻烦了,你会突然发现灵感,然后顺着灵感找到解决的思路。尽量写满一页纸。写完琐碎的东西之后,你就可以对着这一页纸,仔细考虑当日的工作计划了,描出最重要的三个待办事项,从难到易进行排序(一天的工作应先挑最难的开始下手,这样会越干越轻松)。这样就算完成了晨间日志了,一般顶多占用30分钟时间。</p> +<p>第二页纸,用于记录工作日志,不是为了记录流水账,主要是为了总结和分析。在处理早晨给自己安排的任务时,可以用这张纸来进行梳理思路、分解目标,必要时也可以画图。还有一点儿比较关键,就是你要随时将新来的待办事项记录到这张纸上,因为你在工作的过程中随时会有电话或有人找你,你放下手头事情,除非来的事情是天塌下来那样重要紧急,否则你把这个事儿记录在纸上,继续你的工作。</p> +<p>工作中随时会出现一些灵感或者心得体会,也要及时记录下来。这样在结束一天工作的时候,你会发现基本上都能写满那第二页纸,收尾的时候,分析你的日志,将待办事项等扔进你的手机或电脑的日程表(这样就不会忘了),心得体会等可以归档到你的记事本、电脑,或者等待有时间把它孵化成具体的任务(比如写一篇文章、发起一个会议等等)。简单排序之后,标出你第二天要处理的最重要的事情。</p> +<p>接下来就简单了,循环执行一段时间试试吧,说不定你就会发现效率真的得以蹭蹭提升,以前的焦虑感逐渐降低甚至不见了。</p>磁带情节https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/Sun, 20 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%A3%81%E5%B8%A6%E6%83%85%E8%8A%82/<p>你觉得经典的东西,其实只是你年轻的时候喜欢的东西罢了。</p> +<p>周日的下午,听说要下雪和降温,看不进去书,摆弄了一会儿电脑,关掉浏览器,干脆听会儿歌吧。听着听着突然就想到创建一个歌单,将我原来买磁带听的歌都找到存起来吧。</p> +<p>现在已经没有人再听磁带了,别说磁带,现在通过网络获取音乐这么方便,连CD也几乎绝迹了,当然据说现在仍然有部分人怀抱着黑胶唱片不放,但我没有经历过黑胶的黄金时代,从最一开始听的就是磁带。</p> +<p>在有MP3之前,听歌是一个很具有仪式感的事情,因为需要很多步骤(比把大象关冰箱里还麻烦),你得从你的磁带架子(或盒子)上认真挑选一盒你想听的,如果你的磁带很多,当你的手指划过一排包装或精美或粗糙的塑料盒时,你会陷入短暂的沉思,仿佛先将歌曲在大脑里播放一遍似的,然后你按开录音机的仓门,认清磁带的AB面,然后轻轻放进去,再合上。按下播放键,磁头划过空白会出现一些沙沙声。</p> +<p>虽然录音机也有快进的功能,但是一般很少用,因为跟CD和电脑的那种“非线性”切歌方式不同(一下就能下一首),磁带是线性的,想听下一首就得等待磁带一点点转过去。如果是随身听的话,为了省电就更不舍得使用快进的功能了,只能老老实实一首接一首听完。后来,在使用随身听的时候,我们发明了使用笔杆快速卷动磁带的方法,拿一个圆珠笔插在磁带孔上,甩动磁带使得磁带盒随着惯性迅速旋转,即可达到快进的目的,以至于我后来练就了直接用笔就能转到想听的任意一首歌的本领。</p> +<p>磁带的音质还是不错的,可能那个时候没听过数字音乐的缘故吧,从我的记忆来说,磁带特有的那种模拟电路温暖音色,要比现在的MP3强多了,即使现在的一些CD也比不了。有时候听久了,会觉得音质越来越差,这个时候如果不是因为那种质量特别次的盗版磁带的话,一般就是录音机的磁头脏了,解决办法很简单,拿一团棉花蘸上一些酒精(如果没有酒精也可用高度白酒代替),轻轻擦拭一下磁头就行了,保证立竿见影,声音一下子就亮了许多。有钱的人家会更讲究一些,会买那种专用的清洗带,长的跟磁带一样,但是里面装的不是歌曲而是空白的毛绒卷,走动的时候会自动将磁头擦干净(有点儿类似于后来的VCD清洗碟)。</p> +<p>我现在购买了网易云音乐的账号,所以即使是从网上下载的也算是正版音乐吧,现在有很多人不能接受听首歌还得花钱,觉得那些音乐人是不是想钱想疯了,可能他们都没有经历过买磁带听歌的日子吧,从性价比上来说,那时听歌可比现在贵多了,一盒正版磁带几十块,好一点儿的盗版也得十来块(要是算上通货膨胀的话,怎么着也得相当于现在的一百块吧,要是按房价算就更贵了)。一盒磁带一般也就容纳十来首歌,有些出版商为了多装几首歌,只得降低歌曲长度将每首歌都截取了一半放上去,或者干脆来那种四十首或八十首的大联唱(港台叫大串烧),这种听着就没劲了,一首歌刚唱几句就开始下一首了。</p> +<p>今年十一的时候,我回到村里的老家,想办法找到了我以前装书和杂物的柜子。无奈时间太久了,我现在只能翻出一些DVD、VCD和CD了,磁带一盒也找不到了,每想到此,心里都惋惜不已。</p> +<p>附:我创建的歌单(都是磁带时听的,后来买CD听的不算,每一首都听了不下百遍,唱K的时候全部不需要看歌词)链接 <a class="link" href="http://music.163.com/#/m/playlist?id=515310127&amp;userid=2998061" target="_blank" rel="noopener" +>http://music.163.com/#/m/playlist?id=515310127&userid=2998061</a></p>什么是BIMhttps://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/Sat, 12 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%80%E4%B9%88%E6%98%AFbim/<p>BIM这个词最近出现比较多,可能很多人听到过但是还不太了解它指的是什么,我稍微做了一些学习探索,希望能通过一些简短通俗的文字总结一下自己对BIM的认识。</p> +<p>BIM 的全称是 “Building Information Modeling”,这个词语是由美国AutoDesk(就是那个旗下有AutoCAD和3DMax的公司)公司首创,中文翻译过来叫做“建筑信息模型”。被定义成由完全和充足信息构成以支持生命周期管理,并可由电脑应用程序直接解释的建筑或建筑工程信息模型。 简言之,即数字技术支撑的对建筑环境进行全生命周期管理的信息模型(来自维基百科)。</p> +<p>狭义上来说,BIM指的就是一种以表示三维图形为主、面向对象、为建筑学有关的计算机辅助设计服务的数字化信息模型。从广义上引申来看,BIM是一种涵盖了整个建设领域包括一切和水、土、文化有关的基础建设的计划、建造和维修,以及城市规划,土木工程,交通工程等学科的全生命周期数字化设计技术。</p> +<p>虽然概念提出很早(大概上个世纪80年代),但是真正的作为建筑设计方法流行起来还是近些年的事情,在此之前,建筑设计领域仍然停留在CAD(计算机辅助设计)二维图纸的阶段。所以,基于BIM的设计算是一中新兴的建筑设计方法。</p> +<p>对于传统CAD技术的提升主要有如下几点:</p> +<p>1、全生命周期。一个工程从设计到施工,再到后期的投运和检修,都可以通过 BIM 进行全方位的设计和模拟。</p> +<p>2、三维可视化,所见即所得。传统的设计是基于二维图纸的,设计的最终效果往往只存在于设计人员的脑子里,随着建筑越来越复杂,仅凭想象是很难应付庞大的建筑结构的,而运用BIM技术可以使得整个项目过程(设计、施工、运行)都是可视化的,所见即所得。</p> +<p>3、各个环节的协同。设计工程庞大而复杂,往往需要各个部门紧密配合,传统的设计方式往往是结构、水、电等都有自己独立的图纸,给设计和沟通带来诸多不便,而BIM则从根本上解决了这个问题,大家使用统一的模型进行设计,具备更好的协调性,及早发现设计冲突。</p> +<p>4、方便进行数字化模拟。由于设计时采用面向对象的数据模型,带有丰富的设计参数,使用BIM可以方便的进行设计结果模拟,不仅包括常规的物理力学计算、用料统计,还可以针对节能、环境、应急、施工进度等进行高级 分析和模拟。</p> +<p>以上说了这么多优点,那么我们现在处于那个阶段呢,坦白说,国内的BIM目前仍处于起步阶段,甚至国内的《建筑信息模型应用统一标准》目前还在编制阶段,但是随着信息技术的发展和普及,国内的设计行业正在积极的尝试,很多信息化服务厂商(如恒华科技)都纷纷参与进来,一方面积极贡献标准化建议,另一方面整合升级自己的传统设计软件,全面贴合BIM理念。</p> +<p>最后附上一张图(图片来自谷歌搜索),概括了与BIM相关的软件分类,大家可以参考。</p> +<p><img src="http://upload-images.jianshu.io/upload_images/25416-93e90a43a1f10575.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="Paste_Image.png" +></p>推荐一个剧https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/Sun, 06 Nov 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%B8%AA%E5%89%A7/<p>听说《黑镜》第三季出来了,激动不已,虽然早就不再舍得花时间刷剧,但是《黑镜》太特别了,忍不住花了半夜的时间连看了四集(以往的两季都是每季三集,但是这一季不知道为啥这么猛一次就放出来六集)。</p> +<p>几年前有本名叫《浅薄》的书,火了一段时间,作者在书中痛斥现在各种高科技带来的负面效应,互联网让我们越来越浅薄,失去了自我思考的能力,思想变得越来越贫瘠,只能靠不断寻求刺激来掩盖。</p> +<p>显然,《黑镜》的编剧们也意识到了,只是这些人的脑洞更大,并带有强烈的反乌托邦味道,随便看一集基本就能粉碎“高科技能够给人类带来幸福”这个幻象。</p> +<p>如果只是对迷信技术的讽刺也就罢了,让此剧如此出色和受追捧的关键还是在于对人性的探索和拷问,在不受技术限制(科幻嘛)的情况下,主人公时刻都徘徊在看似很爽(至少让我们羡慕)但其实又痛苦不堪的两种境界边缘,虽然英国人的口味有点重,比如第一季第一集里就要让他们的首相现场直播与一只猪发生不可描述的事情。比如给大家都装上智能眼球,然后通过技术彻底拉黑一个人(物理上的拉黑,关于他的声音和图像全部都被屏蔽)。</p> +<p>虽然都是幻想,不过还是带有对现实世界事情的映射,最新的这一季,据大家评论说感觉不如前两季精彩,但是我看了后感觉已经非常不错了,毕竟无论从剧情还是效果都高出同期剧集一大截,属于良心制作了。</p> +<p>新一季的第一集甚至科幻的都有点儿不像科幻了,如果拿掉一些不怎么影响剧情的科幻效果,看起来感觉跟我们现在生活的世界是一样的。故事中的人物无时不刻都在被电子化的社交圈所包围,每个人都靠别人给他点赞来获得认可,评分高的人受到的“尊重”就越多,有点儿像现在的信用体系,但是比较讽刺的是,这里的人们为了维持较高的评分已经变得失去了自己,带着面具生活,早已忘了坦白说话是什么滋味。</p> +<p>再说就有点儿剧透了,如果喜欢科幻的话,可以抽时间看看。</p> +<p>目前在这里还能看: <a class="link" href="http://www.bilibili.com/video/av6802900/" target="_blank" rel="noopener" +>http://www.bilibili.com/video/av6802900/</a></p>那些年,我用过的“终身免费”产品https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/Thu, 27 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E9%82%A3%E4%BA%9B%E5%B9%B4%E6%88%91%E7%94%A8%E8%BF%87%E7%9A%84%E7%BB%88%E8%BA%AB%E5%85%8D%E8%B4%B9%E4%BA%A7%E5%93%81/<p>浙江温州最大的网盘厂,360网盘,倒闭了,王八蛋老板吃喝嫖赌欠下了三点五个亿,带着他的小姨子跑了。。。。。。</p> +<p>我是在出差途中听到这个丧心病狂的消息,虽然以前就隐约觉得迟早会有这么一天,但是却没有想到它来的这么快。当时感觉强行被打脸,我可是经常见人就推荐这款产品的啊,文件夹同步功能比某度网盘云盘不知道高到哪里去了。</p> +<p>现在我的脑海里除了一边盘算如何下载我那费劲巴力传上去的一百多G数据,一边浮现出当年范厨师坐在轮椅上对赵本山说:“我要是再相信你就是二次上当。。。”的画面。</p> +<p>第一次有这种感觉是前些年谷歌关闭旗下的GoogleReader产品(一款RSS阅读器),这个产品我用了将近5年,可以说通过这个产品提供的阅读文章刷新了部分三观,但是谷歌在2013年7月毅然关闭了这个产品,不顾百万用户跪求不要关闭。从此以后再使用谷歌产品我都持谨慎悲观的态度,后来的事情也逐渐印证了这种观点&mdash;-谷歌是个喜欢随意关闭产品线的厂,项目说砍就砍。果然后来谷歌的glass、无人驾驶等项目都雷声大雨点小,在无人驾驶技术方面甚至被起步比他晚的厂商反超。</p> +<p>另一个大厂,微软,和谷歌随意关闭产品的习惯不同的是,微软喜欢改自己产品的名字,我最早的时候用过微软的MySpace(比qq空间可能还要早),在上面写了不少日志,后来微软不知怎的就把它的名字改为LiveSapce了,然后所有产品线都开始围绕Live展开,连注册个账号都要live.com的邮箱,结果,没过几年,不知哪位大师又给微软看了风水,全线产品又都开始围绕outlook.com展开了,live也被废弃了。</p> +<p>说到大厂,雅虎当年也算一个,当年给用户提供终身免费电子邮箱的时候,用户无不感恩戴德,好多账号都使用雅虎的邮箱进行申请,然并卵,雅虎的邮箱同样也在2013年关闭。看来所谓的“终身免费”,在互联网公司的眼里指的并不是针对你的“终身”,而是产品的寿命。</p> +<p>从个人感受来说,我是非常愿意为好用的产品付费,因为这符合市场价值交换的基本原则,有句话比较流行,叫“免费的,才是最贵的”。现在的互联网产品已经把用户给惯坏了,免费可能都不行了,恨不得倒找你钱才行,放眼望去,线上充斥 着免费的劣质产品,好的产品很容易就因为收费问题而被干趴下,像360云盘这么好的网盘产品(同类产品的几乎每一款客户端我都试用过超过1周,最终谨慎选择了360),绝对不是因为技术原因导致的关闭,我猜测真实原因可能也不是其在公告里说的“因为版权审查”,很可能是因为“钱烧完了”。不知道360网盘是否怀念当年将杀毒软件免费而干掉别人的日子。</p>玩游戏能学到什么https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/Sat, 15 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%83%BD%E5%AD%A6%E5%88%B0%E4%BB%80%E4%B9%88/<p>从计算机诞生的那一刻开始,游戏就一直是技术前进的推动力,无论是对硬件的压榨还是对算法的要求,很少有应用软件能够超越游戏的需求,一般来说,游戏软件所使用的技术总是领先其他应用软件一个世代,就连最近比较火的VR、AR技术也是首先从游戏开始的。还记得乔布斯大神说过:“全民娱乐是最终需求,一切技术最终都将为娱乐服务(大意吧,记不清了)”。</p> +<p>那么,除了放松身心、打发时间之外,好像找到正当玩游戏的理由了。</p> +<p>1、寻找灵感。我一直觉得应该在游戏中寻找产品的灵感,哪怕是最基本的交互设计或用户界面,同时期的游戏都能把传统软件甩好几条街,所以我们可以从玩游戏的过程中激发灵感,考虑我们的软件产品交互或界面有没有可以向游戏借鉴的地方。</p> +<p>2、推动技术。最先使H5火起来的还是基于网页的游戏,正是这些游戏先驱踏平了无数的技术坑,才使得当前基于H5技术的跨平台游戏引擎如此火爆,并进一步诞生了通用的应用软件开发平台,在使用这些平台或者制作同类产品时,必须明白,是游戏率先推进了标准化和硬件性能提升,才使得我们能够基于成熟技术制作跨平台软件。</p> +<p>3、学习技术。在享受游戏的乐趣之余,可以思考这些游戏的性能是如何实现的,现在互联网这么开放,不难寻找到相关的介绍资料,很多技术思路都可以借鉴,无论是终端资源的有效利用还是服务端高并发的基础架构,如果能满足游戏的要求,基本可以超越你的需求。</p> +<p>4、学习心理学。为什么我们都觉得玩游戏比工作要爽,闲暇时间宁愿掏出手机玩两把消消乐也不愿意写一篇技术博客?根本在于游戏的设计符合心理学中人们对正向激励的需求,大部分游戏都设置有精妙的积分机制,一方面鼓励你多玩多得,另一方面让你不由自主的愿意付出时间和金钱,都是因为你在这个过程中获得了及时的反馈和激励。这个层面我们在产品设计或运营的时候都可以借鉴,向那些游戏厂商学习。</p> +<p>5、学习知识。这个有些牵强了,但是也不是不可能,有些纯粹消磨时间的游戏就算了,但是确实有些有追求的游戏公司在制作的时候是出于寓教于乐目的的,比如我最近就在玩一款编程游戏(为什么下了班还要编程啊?!),通过几个简单的指令控制游戏中的小人完成任务,通过玩这个游戏我就很轻松的理解了大学里没有学会的汇编语言(或机器语言?),原来汇编语言里动不动就往寄存器里传输数据的意义就在于将输入通过某种操作变为输出,通过最简单的加减运算来实现复杂操作。</p> +<p>很多人尤其是学生家长非常抵制孩子们玩游戏,认为游戏就是破坏学习的毒品,但是事物都有两面性,如果合理的安排时间,不沉迷于游戏,而是在娱乐的同时能学习和思考一些东西,那么玩游戏也没什么大不了的,甚至应该得到推崇,至少每个软件工程师都应该在工作之余多玩一玩游戏,只有不断的反思自己的产品,才做出更出色成果来。</p>感受另一种创新https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/Fri, 07 Oct 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%84%9F%E5%8F%97%E5%8F%A6%E4%B8%80%E7%A7%8D%E5%88%9B%E6%96%B0/<p>过节回了几天老家,亲朋好友团聚之余,感受到了一些变化,可片面代表当下农村对现代科技的使用情况,同时也更新了我对于互联网的一些认识。</p> +<p>1、移动互联网要比在城市所占比重大,人手一部智能手机,几乎没有使用PC上网的,网吧几乎销声匿迹,每个人都在低头看手机屏幕,即使是在干农活的时候。</p> +<p>2、上网不再是年轻人的专利,很多老人也都开始使用手机上网,并开通了社交软件账号,特点是对于网上传播的文字信息不具备过滤能力,只能被动接受,任何信息都认为是真实可靠的,并热衷于转发给身边的人。</p> +<p>3、对手机操作系统没有概念(当然手机操作系统以Android为主),就像现在大多数人仍然对web浏览器(IE、Chrome、火狐?)没有概念一样,很多人并不能区分Android和苹果的iOS,也不认为手机上安装App的是“软件”,而是代表了某种功能,比如聊天、吃饭、天气、新闻、搞笑好玩儿的事儿,这种认识其实很纯粹,我们平时的认知反而会因为专业知识导致偏差。</p> +<p>4、手机软件占比,沟通、娱乐类占比最大,全民娱乐的时代,以前只能通过看电视放松,现在普遍都盯着小屏幕了,微信里盛传各种自制搞笑小视频,虽然做工粗糙,但是认可度很高,我能感到里面的暗流涌动,很多在我们看来“一眼假”的东西却能够得到爆炸性的传播,仍然坚守“按套路”出牌的高大上公司指不定在哪儿被干翻。</p> +<p>5、利用社交软件做营销,利用社交圈子的传播性而策划的营销活动特别盛行,商家们都已经十分重视手机上传播的宣传推广信息,而电视、平面媒体的广告已经成为了辅助信息。已经爆发了不少专门帮助商家进行微信营销的团队,有些人利用技术手段仅仅通过制作一些转发工具、外挂工具等获得了巨额利益。</p> +<p>以上的观察虽然是主观认识,但是确实反应了一些事实,可以肯定的是,大家都在发力移动互联时代的创新,而且随着技术的推进,创新的杠杆将越来越长,能撬动的东西也越来越大,有时候真的需要将目光投向最不起眼的地方,你认为最稀松平常的事情,说不定有人已经准备掀起一场革命。</p>后端开发从PaaS到BaaShttps://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/Sat, 24 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%BB%8Epaas%E5%88%B0baas/<p>鉴于我们在web产品开发过程中采用了前后端分离(也是广泛采用的新技术)的技术,前端开发与后端开发在约定完交互接口之后往往存在一定的开发时间差,也就是说移动端和页面程序已经开发出界面了,但是后端的接口还没提供好,导致调试困难。于是我们很自然的就想到一个点子,为何不制作一个服务专门用来生成供前端调试调用的“假”接口呢?</p> +<p>于是我们很快就选用了MongoDB作为数据库,基于nodejs开发了一个模拟各种数据增删查改的接口,符合RESTful标准,可以通过web页面随时增加你想要模拟的接口,除了没有业务逻辑之外,可以满足移动应用和web前端页面开发的数据模拟和接口访问,解决了前后端开发的时间差问题。</p> +<p>后来我进一步想了一下,为什么我们不能将这个服务增强,使之具有一定的业务扩展能力(比如使用js脚本来插入业务逻辑),并配上我们的基础服务(权限、流程、报表等),这样我们是不是就不用开发纯业务的后端程序了呢?</p> +<p>这个想法令我很兴奋,因为这就是传说中的云计算PaaS落地的一个体现,而且看起来像是一个伟大的产品的小时候,于是我就上网搜索了一下,看看有没有类似产品,结果令人欢欣鼓舞,原来Facebook早在两年前就投资了一家创业公司开始做这个了(名字叫Parse,有兴趣可以搜索一下),谷歌公司也收购了类似产品。国内也已经有人做了,而且据说还不错,比较出名的是LeanCloud,我看了一下已经是比较成熟的解决方案了。</p> +<p>在移动互联网飞速发展的今天,后端服务的开发需求量非常之大(当然很多风投老板至今还认为移动应用的开发工作量只是手机上面的那些界面,这使得他们数次掉进坑里),上面那些厂商就是看准了这个需求,开发了面向后端的PaaS服务,使得一大票创业团队不再为后台服务发愁,找几个app程序员专注于客户端的应用开发就行了。</p> +<p>云计算技术发展到今天,上层的软件即服务(SaaS)和底层的基础设施即服务(IaaS)发展的都特别好。一方面,软件即服务已经渗透到社会各行各业,很多在线服务已经成为了普通人生活中不可或缺的一部分(比如在线地图),另一方面,基础设施即服务也得到了广大开发者的认可,几乎每个上进的开发者都在互联网上租赁(或免费)有自己的虚拟服务器或存储服务。唯独处在中间层的平台即服务(PaaS)发展的不尽如人意,无论是国内的SAE(新浪)还是国外的谷歌的GAE(现在改名叫GoogleCloudPlatform了),用户都没有达到较大的规模。因为现有PaaS仍没有很好的提升后端开发的工作量,即使存在那么多的中间件,仍然需要大量的后端开发工作要做。这时候,上帝说:要有光,于是就诞生了BaaS。</p> +<p>BaaS(后端即服务)是指专为移动应用开发者提供整合云后端的服务。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储、账户管理、消息推送、社交网络整合等功能。</p> +<p>BaaS本质上来说是PaaS的一个细分领域实现,但是基本解决了后端开发问题。鼓吹者甚至扬言用一个云平台来解决所有互联网产品后端服务的需求。</p> +<p>想法有些激进,但是可以回顾操作系统的发展历史来借鉴。很久以前,所有的计算机都没有通用操作系统,那个时候的软件厂商提供给客户的软件是自带操作系统的,完全从硬件底层做起,一直到业务功能开发。直到后来有了通用的操作系统如(windows、linux等),才将这些软件厂商从底层解放出来,控制硬件的事情交给了操作系统,应用软件厂商专注于业务开发。</p> +<p>现在的情形跟当年的操作系统诞生时很像,很多厂商还在自己解决后端服务的开发,但是随着后端技术的越来越成熟,必然出现像当年微软这样的厂商彻底解决后端服务的问题。</p> +<p>所以现在还在编写后端业务代码的企业和技术人员,需要用发展的眼光来看自己的软件架构,业务逻辑逐渐向前端倾斜,底层服务围绕数据为中心,很有可能在未来的某一天后端开发(这里指侠义的业务逻辑开发)将淡出应用软件开发的领域。</p>不上网的假日https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/Sat, 17 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%8D%E4%B8%8A%E7%BD%91%E7%9A%84%E5%81%87%E6%97%A5/<p>借假日之闲,重读了一遍《正念,此刻是一支花》。书中反复引用梭罗在《瓦尔登湖》中的描写,并无比推崇的说:“梭罗常常在自己的门前一坐数小时,什么也不做,只是观察、聆听,太阳在天空慢慢变换位置,光和影也在不知不觉中变换”,看得我“身不能至,心向往之”。</p> +<p>前天看了一个综艺节目,里面有一个小品,讲述了现代人对手机依赖成瘾的种种情形,虽然有所夸张,但是很贴合实际,尤其是里面主人公说出“你的世界不再是真实的世界,你被困在手机里了。。。”的时候,引起了很多观众的共鸣,包括我。</p> +<p>像我这么追求“知行合一”的人嘛,自然不能只发感慨,凡事都要有所行动,于是借假期的机会,我准备初步尝试一下“不开电脑、少玩手机”的思路,体验一下互联网和各种资讯之外的世界还剩余什么。</p> +<p>如果有幸,看看能否达到梭罗所言:“刚才还是清晨;看哪,现在已是黄昏,一日之中几无可念之事。。。”的境界。</p> +<p>向来都是“买书如山倒看书如抽丝”,一旦关掉电脑和浏览器,突然就有时间看书了,发现如果真能静下心来认真阅读,平时买的那几本书根本不够怎么看的,随便翻看一个上午就能看完两本,而且还有富裕,看来以往所推脱没有时间实在是瞎扯,以后可以考虑安排出固定时间读书,尽量不要利用碎片时间阅读,大段时间最佳。</p> +<p>留出时间陪孩子玩耍一下感觉也是不错,除了打扫卫生之外,我跟金妍一起练习了钢琴的哈农指法,我早已手指僵硬伸展不开,练习时总不能合拍,屡次遭到金妍批评,但还是能感受到全身心投入到一件事情时的那种忘我,虽然持续的时间不长。</p> +<p>上次这么无聊的时候,我跟金妍一起,拿着铅笔和画板,把客厅里的物品几乎画了一遍,这次我又想到前些年买来一直未使用过的《秘密花园》绘本,可以尝试一下了。认真挑出几种颜色的彩铅,在餐桌摊开绘本,开始仔细描绘,确实是个锻炼耐心的工作,俩人一起涂了半个多小时才描了不到半页纸。</p> +<p>做以上事情的同时,开始感受到信息枯竭的焦躁,但是忍住了各种冲动(比如说查收邮件、上网、编程),看书、听音乐、吃东西交替进行,但是我突然想到了另一件事情,我何尝不能练习一下“冥想”呢,据说乔布斯就是经常冥想然后才保持较高的创新力的,而且是个放松自我的绝佳途径,这个简单,我想。</p> +<p>往沙发上一坐,闭上眼,“尽量无可念之事”我想,那是不可能,各种思虑此起彼伏,根本无法安静,我于是爬起来,打开书,像阅读说明书那样,查看“如何放松四肢,将注意力集中在自己的呼吸上,相像自己是一座山。。。。。。”</p> +<p>等我醒来时发现自己实际上睡了两个多小时,这也算是间接达到了“刚才还是清晨,现在已是黄昏。。。”了吧。</p>人工智能时代的“情商”https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/Sat, 10 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%97%B6%E4%BB%A3%E7%9A%84%E6%83%85%E5%95%86/<p>最近“人工智能”比较火,谷歌的阿尔法狗战胜了围棋大师,IBM的华生博士轻松赢得了国外的“幸运52”和“开心辞典”,苹果也准备推出“人工智能即服务”的云服务,有种“忽如一夜春风来,千树万树梨花开”的味道。</p> +<p>毫无疑问地,未来的社会,“人工智能”将会成为中流砥柱,替代一大拨人。到那个时候,与我们打交道最多的,可能就不是人了,而是各式各样的机器,出门打车可能是无人驾驶,餐厅吃饭可能是自主点餐,“为人民服务”的各种窗口背后可能也不再是一张冷冰冰的脸,而是通过后端服务API支持的人工智能界面。</p> +<p>一厢情愿地推测,这可能会促使一些变化,人与人之间的联系可能跟以前不再一样,无论是沟通还是协作,可能不再像现在这样复杂。我们可能会从复杂的人际关系中得到解脱,从而获得更多的精力来做自己想做的事情。</p> +<p>到那个时候,我们可能需要重新考虑什么是“情商”。</p> +<p>“情商”的重要性已经毋庸多言,非得要解释一下什么是“情商”的话,大概就是“体会别人感受的能力”吧,关于“情商”有句很直白的话,叫“智商高爽自己,情商高爽别人”。</p> +<p>大概“情商”高的人更能让别人舒服吧,所以现在特别推崇这个,如果去图书馆的话,大概有整架子的书摆在那儿教你如何提高“情商”,教你如何让他人“更爽”。</p> +<p>但是当技术推动社会变革,人工智能得到普及以后呢,到那个时候,我们需要什么样的“情商”?</p> +<ul> +<li>我们可能需要更多的考虑如何利用发挥机器的效率,而不是委婉的告诉机器他做的不好但是值得鼓励。</li> +<li>机器带来的效率提升使得更多人有了更多的空闲时间,而利用这些时间学习或者干别的,更能拉伸人与人之间的差距。</li> +<li>人更要追寻自己的内心,驱动自己做些有创造力的事情,否则被机器取代是迟早的事儿。</li> +</ul> +<p>人除了跟人打交道之外,可能会跟更多的“机器”打交道,需要懂得机器的规律,思考方式也要发生变化,放弃那些人类不擅长的事情,才能更好的利用机器。就算是人工智能,也没有创造力,不能探索未知的问题,所以那个时候,我们要拼的可能就是创新力,而不是“让别人爽”的能力了吧。</p>秋天的田野https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/Sat, 03 Sep 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%A7%8B%E5%A4%A9%E7%9A%84%E7%94%B0%E9%87%8E/<p>我记忆中关于秋天的美好全都在田野里。</p> +<p>记忆里的秋天是收获的季节,小学的课本里就有课文专门描述这个季节的美好:“高粱涨红了脸,稻子笑弯了腰”,我只记住了这一句。</p> +<p>对于几岁的孩子来说,农忙的事情不用操心,即使去地里也是以撒欢为主,虽然欣赏不来万里无云的晴空和一片金黄的丰收景色,但是可以吃啊,到处都是好吃的。</p> +<p>有一种野浆果,具体在生物书上该叫什么名字,我也不知道,我们老家那儿管它叫“香不溜”。长在秋天的庄稼地里,枝叶也不茂盛,不太容易被发现,如果不注意的话,很难跟其他野草棵子区分出来。但是果实极为好吃,酸中带甜,还伴有浓浓的香味儿,是我小时候能吃到的最好吃的“水果”。遗憾的是,由于会影响庄稼生长,这种东西一般都会被作为野草被拔去,到了收获的季节,能够躲过重重除草工作并坚持结果儿成熟的可不多,也就是说,这种果子不会天天遇见,偶尔能吃到一颗就撞了大运了。但正是这种稀缺性使得它吃起来的味道更加美好,如果能碰到熟透的,当然最好,碰见了半生的,也会迫不及待地吃掉,如果恰好碰上刚结果还没长熟,我一般是先记住位置,然后天天去看,等到成熟了再去吃(前提是没有被别人捷足先登,这事儿时常发生)。不过小时候下地的时间并不多,我吃香不溜最大的供货源还是来自于我的爷爷(从地里给我带回来的),别的记不起来了,只记得爷爷下地回来我跳起来掏他的口袋,希望能从里面找到几颗香不溜的情景。</p> +<p>还有一种野生的“瓜”,想象一下,把西瓜按照比例缩小50倍,就像一颗玻璃球那么大,但是外观完全一样,只不过皮儿是软的,土名儿叫“马炮”。瓜秧漫长,顺着玉米杆的根儿生长,跑太快如果不注意的话还会被绊倒,上面结了成串儿的果实,虽然吃起来味道差一些,好在随处可见,就算是不吃也能拿着玩耍,小圆球可以拿来做各种有意思的游戏,就算是不做游戏,把马炮放在地上用力一踩,也会卟嗞一声爆炸,每个人脸上都笑开颜。</p> +<p>以上说的都是可以生吃的,对于地里刚刚成熟或即将成熟的庄稼来说,吃起来往往需要加工一下。</p> +<p>说是加工,其实也没那么复杂,顶多就用火烤一下。秋天的地里最不怕火,有成堆的秸秆和叶子可以作为燃料,在地里点燃后还能作为肥料,如果能顺便烤一下吃的,真是一举两得。</p> +<p>大豆不能等到完全成熟再烤来吃,那样就太硬了,最好是在豆荚还青青的泛着一点儿黄的时候直接连根拔掉,然后整棵整棵的放在火里,到不了一根烟的功夫,香气就从火堆里飘出来了,这个时候最好别嫌烫手,赶紧抓起来,剥开豆荚,将还正在冒着热气的青豆一把一把的放在嘴里,香的保证你忘了所有的烦恼。</p> +<p>花生和红薯,饿了的时候,直接从地里扒出来就可以吃,但是生的吃多了对肚子不好,所以一般也是烤熟才吃,不过吃起来就没那么方便了,一般费的功夫要稍微大一些。尤其是红薯,不能用大火,否则皮焦骨头生,表皮都黑了,里面还是生硬的。最好整块扔在刚烤完青豆的火堆里,不用搭理它,先去玩会儿别的,等到天快黑的时候,再从灰烬里将红薯慢慢扒出来,熟透的红薯绵软可口,甜的让人掉牙。现在大街上卖的烤红薯闻着很香,吃起来比起我们在地里吃的就逊色不少了,一方面可能是因为现在嘴刁了,另一方面估计也跟小时候吃红薯之前那漫长的等待有关。</p> +<p>说了这么半天吃的,好像跟想象中金色的画卷不太一样,但是,秋天的田野是大自然对于没有零食可吃的农村孩子最好的馈赠。。。。</p>Docker环境在windows系统下的安装与配置https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/Sat, 27 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/<h1 id="背景">背景</h1> +<p>配置开发环境是目前我们开发团队在进行开发工作之前的重要工作,对于需要使用我们自己封装的开发框架的java web程序员来说更是如此,一般来说需要配置jdk、mysql、tomcat、maven等一系列基础环境,如果需要使用我们现有的开发框架,还需要配置开发工程的模板、基础服务的访问地址、统一的环境参数等等。这些工作做起来比较繁琐,即使按照开发文档一步一步进行也容易出现差错,而且较为耗费时间。</p> +<p>Docker容器技术的出现使得这一工作得以改进,通过一段时间的研究,我们的底层框架开发人员将以上环境全部使用Docker容器技术制作成为完整的镜像,使得业务开发人员不必再关心这些琐碎工作,只需通过git下载我们的工程模板,通过执行Docker命令自动在本地完成开发环境的构建。</p> +<p>然而由于docker是一个较新的技术,仍有很多开发人员没有接触过,上次我发的文章对于环境的配置描述的并不详细,这次专门针对windows下的开发者如何配置docker环境做一次讲解。如有必要,我将录制专门的视频来讲解。</p> +<h1 id="认识docker">认识Docker</h1> +<p><a class="link" href="https://www.docker.com/" target="_blank" rel="noopener" +>Docker</a>是一种容器技术,可以在操作系统中隔离出若干个独立的程序运行环境,这些环境既可以共享宿主机的资源,另一方面他们之间相互独立,互不影响,也不会对宿主机的环境产生影响。与虚拟化技术不同的是,Docker比较轻量级,容器(隔离运行环境)的启动和销毁都比较快,这些运行环境可以像现实世界中的集装箱那样,打包成一个一个的镜像,同样的镜像在不同的Docker环境中部署运行将会得到同样的结果,就像同一首歌在不同的播放器播放那样简单。</p> +<p>Docker的出发点是将现在日趋复杂的web应用系统部署变得像播放唱片那样简单,但是它能做的却远不止于此,如果使用得当,我们将可以很容易实现“开发”、“测试”、“生产”环境的完全一致(这在以前是十分困难的),程序员以后也许再也说不出“这功能在我这儿好使”这样的话了。</p> +<p>作为开发者,如果认真思考过以上的问题,当遇到Docker这种容器技术时,应该很容易就想到针对自己工作的改进方案,并且加以利用。比如如果想尝试某一个新技术,以前可能需要在自己工作的操作系统上进行安装,不但配置麻烦,而且存在将自己的系统弄坏的风险(很多人还爱重装系统),现在不同了,只需要下载对应的镜像文件,然后启动容器,即可体验。无论是golang、node、java、python这些程序语言,还是spark、wordpress、tomcat、mysql这种应用环境,都已经有人封装好了即开即用的镜像,随时可以体验,而且用着不爽可以随时清理。</p> +<h1 id="在windows环境下的安装">在Windows环境下的安装</h1> +<p>如果是在Linux系统下干活,则比较简单,因为Linux已经实现对Docker技术的内核级支持,CentOS的软件仓库自带了Docker最新版,可以直接通过命令安装使用。</p> +<p>对于Windows来说,稍有些困难,但是目前也不是问题了。首先需要看一下你的Windows环境,分两种情况,一种是Windows 10 64位专业版,一种是其他版本(比如很多人仍然推崇的Win 7)。前者可以直接支持安装Docker原生版,性能最好,体验最佳,后者只能使用Docker官方提供的一种过度技术(Docker ToolBox),这种技术不得不依赖Oracle的Virtualbox以在你的系统里创建一个虚拟机用以模拟Linux运行环境,好在封装的比较好,基本可以忽略这个虚拟机的存在,只需专心使用Docker即可。</p> +<h2 id="在windows-10-64位专业版的安装">在Windows 10 64位专业版的安装</h2> +<p>这个最简单,需要确定两个基础环境:</p> +<ul> +<li> +<p>你的CPU支持虚拟化(一般都支持,如果在操作系统中没看到,则可以手动到BIOS里打开,如果实在不支持,换台新的电脑吧),具体可以通过任务管理器查看,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-1146db9464f3f6e7.jpg" +width="646" +height="593" +loading="lazy" +alt="cpu.png" +class="gallery-image" +data-flex-grow="108" +data-flex-basis="261px" +></p> +</li> +<li> +<p>你的操作系统需要开启Hyper-V,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-77decb38e7ee2063.jpg" +width="767" +height="601" +loading="lazy" +alt="hyper-v.png" +class="gallery-image" +data-flex-grow="127" +data-flex-basis="306px" +></p> +</li> +</ul> +<p>然后到<a class="link" href="https://download.docker.com/win/stable/InstallDocker.msi" target="_blank" rel="noopener" +>官方网站下载安装包</a>直接安装即可,有时候可能存在网站被墙的情况,也可以到我上传的网盘里下载,<a class="link" href="https://yunpan.cn/cMRZNp6BaXeEF" target="_blank" rel="noopener" +>链接在此</a> <a class="link" href="https://yunpan.cn/cMRZNp6BaXeEF" target="_blank" rel="noopener" +>https://yunpan.cn/cMRZNp6BaXeEF</a> 访问密码 80e6</p> +<h2 id="非windows-10-64位专业版无法使用原生docker的安装">非Windows 10 64位专业版(无法使用原生Docker)的安装</h2> +<p>这个稍微麻烦,也需要确定两个基础环境:</p> +<ul> +<li>你的CPU支持虚拟化</li> +<li>你的操作系统需要关闭(注意是关闭!)Hyper-V</li> +</ul> +<p>然后到<a class="link" href="https://github.com/docker/toolbox/releases/download/v1.12.0/DockerToolbox-1.12.0.exe" target="_blank" rel="noopener" +>官方网站下载安装包</a>,如果网站被墙,可以访问<a class="link" href="https://get.daocloud.io/toolbox/" target="_blank" rel="noopener" +>这个地址</a>,也可以到我上传的网盘里下载,<a class="link" href="https://yunpan.cn/cMSaWneaYPE5K" target="_blank" rel="noopener" +>链接在此</a><a class="link" href="https://yunpan.cn/cMSaWneaYPE5K" target="_blank" rel="noopener" +>https://yunpan.cn/cMSaWneaYPE5K</a> 访问密码 c8fa</p> +<p>安装过程无特别之处,需要注意的是,如果你的系统内没有安装过Oracle Virtualbox,安装程序会自动给你安装一个,不用理会,直接一直点击“下一步”即可。安装完成后直接点击快捷方式“Docker Quick Start”即可,如果是第一次运行,将会耗费一些时间(因为需要创建虚拟机),在这个过程中,系统可能会弹出若干次UAC提示让你授权,果断点击“同意”即可。</p> +<h1 id="环境的配置和使用">环境的配置和使用</h1> +<p>安装完成之后,就可以随意使用了,但是,受国内网络环境的影响,还有一些需要调整,因为在国内访问国外的镜像库(docker默认的那个)比较慢,一般镜像又都比较大(动辄几百兆),所以我们还需要配置一个国内的镜像仓库,推荐DaoCloud或者阿里云的,这里以阿里云举例。</p> +<h2 id="windows10下的镜像仓库配置">Windows10下的镜像仓库配置</h2> +<p>原生的Docker配置比较简单,官方还提供了可视化的配置界面,操作步骤如下:</p> +<ul> +<li>右键点击系统托盘的Dcoker图标,选择Settings</li> +<li>进入Docker Daemon选项,在右侧窗口填入镜像仓库的地址(可以自行去阿里云申请,我这里有一个示例)</li> +<li>示例如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-0794a163a8b70d6d.jpg" +width="826" +height="493" +loading="lazy" +alt="镜像仓库.png" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="402px" +></li> +</ul> +<p>配置完成后,在命令行窗口执行一个拉取镜像的命令(<code>docker pull tomcat</code>)试试看,会发现速度杠杠的。</p> +<h2 id="dockertoolbox镜像仓库的配置">DockerToolbox镜像仓库的配置</h2> +<p>这个略微麻烦一些,不过还可以接受,需要在命令行进行操作:</p> +<ul> +<li>先执行这个命令(镜像地址可以自行替换)<code>docker-machine ssh default &quot;echo 'EXTRA_ARGS=\&quot;--registry-mirror=https://xks740zc.mirror.aliyuncs.com\&quot;' | sudo tee -a /var/lib/boot2docker/profile&quot;</code></li> +<li>再执行这个命令 <code>docker-machine restart default</code> 会重启Docker虚拟机</li> +<li>然后执行命令<code>docker-machine ssh default</code> 即可进入docker命令行环境了</li> +</ul> +<h2 id="关于dockertoolbox的特殊之处">关于DockerToolbox的特殊之处</h2> +<ul> +<li>在容器中暴露的应用端口,需要注意,他的访问地址不是你的主机localhost,而是一个虚拟机的ip地址,一般为192.168.99.100,如果你在容器中跑起来一个web程序并且暴露了8080端口,那么想在外面访问的话,地址为http://192.168.99.100:8080 ,如果是win10下的原生docker就会没有这个迷惑,直接localhost了。</li> +<li>共享宿主机的文件给容器,需要注意,我们在使用容器时,一般会通过挂载卷的形式将系统的文件共享给容器使用,对于DockerToolbox来说,它默认给你设置了系统盘的User文件夹具有可以挂载共享文件的能力,也就是说,你需要使用挂载卷的时候,必须确保文件在这个根目录之下(比如放在C:/Users/xxx/Dcouments/xxxx)。 +如果是window10系统的原生docker技术则可通过图形设置界面完成,如图 +<img src="https://sbabybird.github.io/p/docker%E7%8E%AF%E5%A2%83%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/25416-017b645406d8ced4.jpg" +width="826" +height="493" +loading="lazy" +alt="share.png" +class="gallery-image" +data-flex-grow="167" +data-flex-basis="402px" +></li> +</ul>由量子卫星想到的https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 20 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%94%B1%E9%87%8F%E5%AD%90%E5%8D%AB%E6%98%9F%E6%83%B3%E5%88%B0%E7%9A%84/<p>前两天量子试验卫星的成功发射,让我想起一些事情。</p> +<p>当年,大约是十九世纪末期,全世界知名的物理学家集中在一起开paty,庆祝物理学所取得的伟大成就,其活动的组织者自信的站在台上宣布,物理学的大厦已经建成,基本的体系架构已经日趋完美,未来对于物理学已经基本没啥可研究的了(“只剩下对大厦的装修了”),唯一的不足就是,在展望未来时,飘在大厦上还存在两朵乌云,这两朵乌云就是:1、光的波动;2、能量的均分;</p> +<p>然而,谁都没想到的是,正是这两朵乌云,最后彻底摧毁了物理学大厦,使得一切不得不重新来过。最终诞生了量子力学。</p> +<p>我们想当然的认为,数学是对现实世界的高度抽象,完美的表达了现实世界,但是随着研究的深入,我们逐渐发现,“现实”比我们想象的要复杂的多。</p> +<p>第一个问题是粒子的运动。通俗的来说,数学上的定义,两点之间有无限多个点,从A点到B点,必然经过AB这条线段上的所有点,这在宏观世界中是显而易见的,可是在微观世界,物理学家彻底蒙圈了,他们发现原子内的电子,从A点到B点的时候,完全可以不经过“中间”,而是忽然“跳跃”到了B点,也就是说,粒子不再是像公式中描述的那样平滑移动了,而是无法预测他们的轨迹,他们可能突然出现在他们愿意出现的位置。</p> +<p>第二个问题是量子纠缠。这个问题好复杂啊,还是简单来说吧。科学家通过不断捣鼓发现,处于量子纠缠态的两个粒子,无论相距有多么遥远,当你改变其中一个粒子的状态时,另外一个粒子的状态立即发生改变,这个信息传递的速度是超过光速的(如果真的存在信息传递的话)。现在科学上只能证明这种现象的存在,但是无法解释这是为什么。</p> +<p>以我浅薄的理解(我在刷牙沉思录中也提到),这其实进一步证明了我们所处的世界是一个“幻象”,我们可能就是生活在一个“某种超级智能”创建的虚拟世界,就像我们创造的游戏世界一样。</p> +<p>为什么呢,建设在这个“虚拟世界”的假设之上,首先是我对第一个问题的理解,粒子之所以不能平滑移动,说明人类的微观探索已经到达这个“虚拟世界”的“分辨率”极限了。熟悉计算机的人都了解“分辨率”这个概念,我们在程序中绘制的“点”、“线”、“面”最终显示到屏幕上的时候是需要“栅格化”的,因为显示器有物理分辨率,两个里的非常近的点在显示器中的显示可能就是在一个像素上,那么这个时候处在我们的程序中的“物理学家”也会蒙圈地发现,从A到B是“一下子跳过去的”。</p> +<p>第二个问题,为什么两个粒子的状态会如此的变化一致,而且变化的速度超出了光速?答案就是,这根本就是一个粒子,也就是说,无论相聚多远,他们的“本体”就是一个,类似于我们程序中的变量地址,无论这个变量的值显示在哪里,它在内存里只有一份,所以一旦发生变化,你在各地看到的结果都是一样的。这就好像我们最近在看里约奥运会的直播,赛场上的球的运动轨迹,无论我们在北京看电视屏幕,还是在纽约看电视屏幕,我们看到的都是一样的运动轨迹,而如果我们不知道这是来自于同一场直播,那么我们就像量子科学家对这两个处于量子纠缠态的粒子那样,感觉到很奇妙,为什么他们的运动状态这么一致呢?</p> +<p>金刚经有云:“凡所有相,皆为虚妄”,不知与量子物理有没有关系。</p>怎样成为一个无趣的人https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/Sat, 13 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%97%A0%E8%B6%A3%E7%9A%84%E4%BA%BA/<p>我的偶像,王小波(一个会写小说的程序员)曾经说过(歌词大意吧,记不清了):此生梦想不过是遇见一些有趣的人,经历一些有趣的事儿。上周有篇讲解关于如何成为有趣的人的文章还比较火,承蒙QC抬爱,还在朋友圈艾特了我,实在惭愧。我觉得,成为有趣的人挺难的,但是成为无趣的人确很简单,我可以“谈谈方法”。</p> +<ol> +<li> +<p>放弃爱好。成年人的压力很大,所以要赶紧放弃那些幼稚的爱好,把那些能够从本质上给你带来快乐的东西都抛开,然后你就有精力去做那些让这个世界变得更无趣的事情了。</p> +</li> +<li> +<p>做事前先衡量投入与收益比。要知道,无趣的人的时间通常很宝贵,所以千万别做那些投入与收益不成比例的事情,要学着用功利(别查了,这是一个中性词)的心态去判断事情的重要性,哪怕是读本书也要先评估一下是否对自己有利、能否在自己做那些无趣的事情时产生作用。</p> +</li> +<li> +<p>做“有意义”的事情。身为一个无趣的人,千万不能做那些“毫无意义”的事情,比如浪费时间去考据鸡汤文学的发展史、分析周杰伦的歌词里是否表达过对蔡依林的好感、花时间研究vim的配置等等。你的时间应该全部用于做那些“有意义”的事情,要随时准备奋斗,脑子里要随时浮现那些成功人士的奋斗事迹,从而去激励自己,要发誓看到洛杉矶的每一个凌晨,不能停歇。</p> +</li> +<li> +<p>不看“闲书”。虽然说开卷有益,但是你最好还是多读工具书吧,去读那些别人总结好的精华,最好是全是答案的东西,脑洞大开的小说实在是浪费时间,人的大脑容量有限,还是装那些更有用的东西吧,如果你看书的话,尽量别看“闲书”吧。</p> +</li> +<li> +<p>拒绝新鲜事物。向当年被李斯焚书坑儒的那些老家伙们多学习,守住信条,老祖宗都没做过的事情,千万别做。</p> +</li> +<li> +<p>消费,而不是创造。消费那些有趣的人创造的东西,别想着自己去做些东西,反正你节省的时间和金钱让你可以有资本这么做。</p> +</li> +</ol> +<p>如果以上这些你都做到了,请受我一拜,然后可以去死了。</p>如何给项目写一篇合适的readmehttps://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/Sun, 07 Aug 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E7%BB%99%E9%A1%B9%E7%9B%AE%E5%86%99%E4%B8%80%E7%AF%87%E5%90%88%E9%80%82%E7%9A%84readme/<p><img src="http://www.readmeonline.com.au/images/readme_head.jpg" +loading="lazy" +> +很多人忽视这个说明文档,往往给自己的项目工程建立一个空readme文件或者在里面随便写几行不清不楚的文字,这样非常不利于代码工程的后期管理,尤其是对于有团队协作的项目,即使是个人项目,考虑到后期可能要给别人用,写一份合适的说明也十分必要。</p> +<p>现在我们的项目工程已经全部迁移到gitlab中了,大家使用git工具管理 自己的代码版本已经比较得心应手,但是仅仅使用git管理代码并没有发挥出gitlab的全部功能,我上次也提到了更好的使用gitlab的几个技巧,这次详细说一下如何给自己的项目写一篇readme。</p> +<ol> +<li> +<p>在自己的项目代码的根目录中建立一个readme.md文件,注意扩展名为md,这样gitlab就可以自动识别并在这个项目主页上自动渲染(将源码翻译成html)这个文件了。</p> +</li> +<li> +<p>学会使用<a class="link" href="http://www.jianshu.com/p/q81RER" target="_blank" rel="noopener" +>Markdown</a>语法,充分利用文档的“插入图片”、“嵌入代码”、“标题分级”、“超链接”等功能,将内容“富”起来,尤其是图片和超链接,可以弥补文本文件表达的不足。</p> +</li> +<li> +<p>开头的简介很关键,readme文档的主要意义在于向读者描述你这个项目做了什么,运行在什么环境,如何使用,所以在文档的开头首先要简要介绍这个项目的存在意义,为什么要做这个,主要解决什么问题,运行在什么环境,如果需要与别的项目配合,那么你的项目处于什么样的位置。</p> +</li> +<li> +<p>必备信息,由于是开发工程,所以很多信息是必须要在文档中说明的,主要有:</p> +<blockquote> +<ul> +<li>开发编译和系统运行的必要参数</li> +</ul> +</blockquote> +<ul> +<li>项目中的文件和目录结构信息</li> +<li>编译或安装步骤说明</li> +<li>使用示例</li> +</ul> +</li> +<li> +<p>扩展信息,以上是传统的readme文档的套路,对于我们的软件开发工程(私有的非开源项目),我个人认为可以将readme稍作扩展,使得参与这个项目的人员能够在协作上更加顺畅,主要有:</p> +</li> +</ol> +<blockquote> +<ul> +<li>项目的业务范围,可以理解为项目需求的简化索引,具体的需求可以链接到其他的Markdown文档</li> +</ul> +</blockquote> +<ul> +<li>项目的流程图和架构图,可以理解为设计文档的索引,具体内容也可以链接到其他Markdown文档</li> +<li>版本信息,如果有发布版本,则持续更新版本的发布记录,说明每次发布的重要更新项</li> +</ul> +<p>总之,文档的重要性不亚于项目代码,简洁有效的文档是一个成功项目的必要条件,在这个到处需要团队协作(或本地或远程)的时代,程序员想要让自己的项目得到更多的支持,发挥更好的作用,必须养成给编写技术文档的习惯。那么,先从一份能拿得出手的readme开始吧!</p>好吧,现在可以用win10了https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/Sat, 30 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A5%BD%E5%90%A7%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E7%94%A8win10%E4%BA%86/<p>win10系统的升级推送大概烦了我们半年时间,微软为了实现10亿装机量的目标,到最后甚至丧心病狂到向国内的流氓软件厂商学习的地步(取消按钮都不提供了),据说现在好像达到了大概3亿的装机量。</p> +<p>去年年末当win10第一次推送更新时,我第一时间进行了升级,然而在使用了不到一个星期的时间,我就果断返回到win8.1系统了,因为当时的体验实在是太差了,各种不兼容,系统启动速度和响应速度都变得很慢。</p> +<p>直到上周到了win10免费推送的最后关头,于是就再次抱着试试看的态度将我的家用电脑进行了升级,结果出乎我的意料,经过了半年的不懈努力,现在的版本已经稳定可用了,随后我便将我所有的windows系统都进行了升级,全面进入win10时代。</p> +<p>普通用户的使用体验就不再赘述,比如新增的小娜助手等等,这些功能稍微方便一些,但是比win8.1不算是革命性更新,作为一个软件开发者,主要有如下功能比较让我心动:</p> +<p>1、直接执行Linux命令行程序。微软将其称为「Windows 下的 Linux 子系统」 (Windows Subsystem for Linux),据说这是一项全新的技术,并未采用虚拟化手段,也不是交叉编译的技术,而是直接将Linux系统调用映射为原生的Windows系统调用,类似于Linux平台下的Wine(在Linux下运行Win程序,唉,大家这样累不累啊),这样一来既可以体验windows良好的桌面环境,又可以使用Linux系的命令行,可谓鱼与熊掌兼得了。</p> +<p>2、Docker开始原生支持Windows10(64位),在此之前要想在Windows下体验Docker容器技术的话,必须安装DockerToolbox(基于VirtualBox虚拟机的模拟环境),现在 则可以直接基于Windows原生自带的Hyper-V技术使用Docker了,虽然效果有待观察,但是相比基于VirtualBox虚拟机的环境,性能方面应该能有所提升。</p> +<p>3、Windows Hello 生物识别技术,虽然需要特殊的硬件设备支持(一种带深度探测的摄像头,估计会逐步普及),登录系统或网站只需要刷脸就行了,据说识别率还是挺高的,但是女生如果化了妆,有可能无法识别。</p> +<p>总之,虽然一开始是拒绝的,但是经过这么长时间的升级,通过这几天的使用体验,我认为现在可以升级到win10了。</p>gitlab的若干使用技巧https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/Sat, 23 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/gitlab%E7%9A%84%E8%8B%A5%E5%B9%B2%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/<p>gitlab是一个开源的git服务软件,与大名鼎鼎的github所提供的功能类似,适合企业或团队搭建属于自己的在线git仓库。</p> +<p>近期我给自己所在的开发团队也搭建了一个gitlab,经过一段时间的试用,反应效果良好,具备发展成为自有开发社区的潜力。摸索了若干的使用技巧给初使用者:</p> +<p>1、尽量使用ssh协议访问仓库。gitlab默认给仓库提供两种访问方式,一种是https,一种是ssh,前者使用简单但是遇到文件较多或较大时容易出现问题(由于HTTP协议导致),后者则是配置上略复杂但是一旦设置好一劳永逸,可以免密码登录。</p> +<p>2、利用分组(Groups)管理权限,有时候项目比较大,往往一个项目下包含多个开发工程,如果分别给参与这些工程的人员进行授权的话,比较繁琐,而利用Groups分组的功能,可以将若干个项目成员放入同一个分组,这样此分组的git工程将自动继承分组的权限设置,只需要设置一次即可,如果有特例仍然可以在具体的git工程下进行特殊设置,比较灵活。</p> +<p>3、善用Markdown写文档,每一个工程下面都应该有一个以readme.md命名的markdown格式文档,用于详细说明这个工程的信息,可以图文并茂,超链接到其他的文档,以及包含代码片段并进行语法高亮,gitlab系统会自动在该项目的主页中渲染这个文件,这样当别人第一次进入这个项目时就可以迅速了解这个工程了。</p> +<p>4、利用评论(comment)进行代码评审(code review),每当有人进行了提交之后,在系统的信息流上都可以看到这个提交的具体改动,作为项目技术负责人可以及时的了解提交情况,并针对此次提价的代码修改内容进行评论,可以细化到每一行,评论的信息系统会自动发送邮件给相关负责人,可以重复利用这个特性来做代码评审。</p> +<p>5、保护master分支,git工程的master分支一般比较重要,可以通过设置将master分支保护起来,使得只有具有高权限的人员才能推送到该分支,而一般开发者将自己的成果提交到普通分支,经过代码评审后再由技术负责人将分支合并。</p> +<p>6、善用代码片段(Snippets)分享功能,gitlab系统也提供了代码片段分享功能(类似于github的gist),每个人都可以将自己常用的代码片段保存到系统并分享给大家,比自己留在本地电脑上要方便很多,而且能发挥这些片段的最大价值。</p>打牌https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/Sat, 16 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%89%93%E7%89%8C/<p>没有比陪二老打牌更重要的事情了。</p> +<p>每年的暑假,二老都会千里迢迢从老家赶过来。不为别的,只为了在这个漂泊的地方能让我感受多一些家的温暖。烦恼的事情向二老倾诉一下(当然不会),工作或生活上的成绩也略作汇报。</p> +<p>但是平时工作都很忙,白天基本不在一起,能够一起聊天的时间也就是晚上的打牌了。</p> +<p>夏日的时光,如果能给惬意下一个定义的话,除了吹着空调盖棉被意外,就是吃着西瓜陪二老打牌了。欧阳修在醉翁亭记中说“醉翁之意不在酒,在乎山水之间也”。陪二老打牌亦如此,不在乎输赢,在乎谈笑之间也。</p> +<p>从邻家孩子的高考,到印巴关系的进展,无所不聊。基本上,都是老爸在说,我在听,偶尔扮演一下相声演员捧哏的角色,说一声“哦,那是,那当然了”,让话题得以延续。</p> +<p>可能是因为经历过困难时期的原因,每当我对现实生活稍有不满,老爸都会给我来一段忆苦思甜,经历过吃不饱的日子,虽然现在提起来轻描淡写,但是对于我来说都具有巨大的威慑力,与二老经历的苦难相比,我现在所承受的压力自然不值一提。</p> +<p>聊的都是家长里短,外人看来不值一提,但每每此时正是教导我辈的绝好时机,无论是诚信做人还是认真做事,都能在小小的牌桌上得以体现,我打牌虽技术不行,但好在能够坚持,这么多年来,陪着二老练手,基本上也将斗地主的规则了然于胸,偶尔老爸耍赖,我亦能联合老妈将牌面算的一清二楚,“炸弹要关键时候再出”,老爸说,我说:“ei!”。</p> +<p>希望将打牌进行到底。</p>加油加油我最棒https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/Sat, 09 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%8A%A0%E6%B2%B9%E5%8A%A0%E6%B2%B9%E6%88%91%E6%9C%80%E6%A3%92/<p>去年的时候网上流出一段某火锅店领班激励服务员的视频,员工整齐划一跟着领班边手舞足蹈边喊口号,其中有一句喊得最带劲,叫“加油加油我最棒!” 。看完一笑。</p> +<p>今日乘坐地铁,得功夫刷了会儿知乎,看到一篇关于如何提高自信的提问,才感觉到,原来大部分人都缺乏自信,甚至包括我自己,这是缺点,需要改进。</p> +<p>缺少自信带来的危害是广泛的、显而易见的,是会影响各种效率和幸福感的,容易形成挫败感的恶性循环,长期积累容易形成心理问题,尤其是在快节奏、高压力的现代社会,所以现在很多成年人已经积累的差不多了,以后可能会出现大规模爆发期。</p> +<p>这个问题很火爆,相信很多人都有此类困惑,我总结了一下比较靠前的答案内容,大致可以分为两类,一种是从改变行为着手,简单有效,另一种则是从深层面改变自己的认知和思想,我觉得可以两种结合。</p> +<p>首先说一下缺乏自信的基本表现(可能没这么极端,但是多少会有一点儿): +1、难以接受别人的示好,但凡有人对他好一点,都会觉得不太应当,受之有愧。 +2、遇到问题时,总是怀疑自己,觉得自己不够好,自己哪里做的不对。 +3、得不到想要的东西,不强求,也不会不开心,因为开始的时候就觉得自己不配。</p> +<p>如何改进,方法层面: +1、不要抱怨,有谚语云:闭上嘴巴,好运自来。闭上抱怨的嘴巴,慢慢攒正能量吧。 +2、说话降低语速,清晰表达观点,及时对方再不耐烦,也不要讲太快,做到掷地有声。 +3、每天洗头:)。 +4、走路挺直,目视前方。如果你与人对视害羞,走路的时候就笔直看远方的广告牌</p> +<p>如何改进,思想层面: +1、不要给自己加标签,加上标签意味着自己给自己设限,很多事情不是做不到,而是自己以为做不到。 +2、做自己擅长的事情,才能形成良性循环,然后再拓宽。 +3、洒脱一点儿,不试图隐藏自己的缺点,不发表模糊的观点,不人云亦云,立场清晰,不讨好,不谄媚。 +4、认识你自己。</p> +<p>但是以上这些答案,所达到的效果,都不如开头我提到的那个视频里的领班,所以最简单的办法应该是,每天对着镜子说一句,“加油加油我最棒!” 哈哈哈。 +<img src="http://upload-images.jianshu.io/upload_images/25416-033e5352898a7910.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" +loading="lazy" +alt="加油加油我最棒!加油加油我最强!" +></p>使用DockerToolbox在Windows下搭建Docker环境https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/Sat, 02 Jul 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8dockertoolbox%E5%9C%A8windows%E4%B8%8B%E6%90%AD%E5%BB%BAdocker%E7%8E%AF%E5%A2%83/<p>Docker是一种比虚拟机更轻量级的应用程序执行容器,受云计算技术普及以及微服务架构的影响,Docker这两年风声水起,成为用于管理应用部署的最佳利器,很多DevOps团队宣称使用该技术后能极大缩减开发、测试、生产环境切换的时间,提升整体效率。</p> +<p>考虑到目前很多开发人员仍是在Mac和Windows系统进行开发,为了方便环境的部署和管理,Docker公司近期推出了DockerToolbox工具包,可以跨平台(Mac、Windows)使用,对于想在Windows环境下体验容器技术并开发产品的程序员来说真是福音。</p> +<p>安装过程很简单,直接去<a class="link" href="https://www.docker.com/products/docker-toolbox" target="_blank" rel="noopener" +>官网下载</a>对应的安装包到本地执行安装程序即可,安装后会自动在系统中打包安装VirtualBox虚拟机(因为Docker依赖Linux系统,必须模拟Linux环境)、Docker-engine、Docker-machine、Docker-compose等组件,基本做到了即开即用。</p> +<p>然后主要就是进入命令行管理界面(安装包会创建快捷方式),执行各种docker命令进行工作了,我在使用过程中主要遇到了如下问题:</p> +<p>1、CPU虚拟化的开启,现在的CPU一般都在硬件级别支持虚拟化技术,但是有的可能默认没有打开,需要到BIOS中手动开启,查看是否开启的方法是,在windows系统任务管理器的“性能”页,是否有虚拟化已开启的字样,当然目前也有一些比较老的低端CPU不支持,这个就建议更换设备吧。</p> +<p>2、与Windows系统自带的虚拟化技术Hyper-V冲突,专业版的Windows系统一般带有虚拟化技术组件,是微软自有的,名叫Hyper-V(与virtual box等类似),但是与我们要安装的工具有冲突,需要关闭Hyper-V后才能正常使用,具体操作方法为到控制面板的“程序和功能”里面的“启用或关闭windows功能”将Hyper-V关掉。</p> +<p>3、VirtualBox虚拟机网段IP分配冲突,这个是我遇到的特例,VirtualBox会自动给用于模拟Docker环境的虚拟机分配内网IP地址,且默认为10.0.2网段,这个恰恰与我的工作环境存在冲突,而且界面中和配置文件里都没有可配置的地方,经过多天研究,终于找到通过命令行的方式将这个默认配置可以改掉 ,命令如下<code> VBoxManage.exe modifyvm &quot;default&quot; --natnet1 &quot;10.0.20.0/24&quot;</code>(需要在virtualbox安装目录下执行,default是虚拟机的名字。)</p> +<p>4、系统重启后环境丢失(偶然发生),这个可能是工具存在bug,我在下载各种镜像进行测试后,将我的Windows重启后发现default虚拟机里的东西都丢了,这个可能是由于环境在运行的状态下我重启了系统导致。目前我的解决办法是在每次关机或重启的时候,先将default虚拟机停掉,方法是在命令行下执行如下指令<code>docker-machine stop default</code> 。</p> +<p>总的来说,这套工具包非常方便在windows下开发的人员,基本可以做到与容器环境的无缝对接,合理使用这一套工具包,对于我们的“持续集成”、“持续交付”等工作将有很大的促进作用。</p>世上本无我,谈自底向上的架构设计https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/Sat, 25 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%96%E4%B8%8A%E6%9C%AC%E6%97%A0%E6%88%91%E8%B0%88%E8%87%AA%E5%BA%95%E5%90%91%E4%B8%8A%E7%9A%84%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/<p>“世上本无我,庸人自设之”,这是豆瓣上某位网友读完《失控》之后的简短书评,看完之后深以为然。最近重读《失控》,多年过去仍然有新的发现,作者在上世纪九十年代就能有如此的见地,不得不服(不过老子早在《道德经》中也有类似论述,这又是另外一回事儿了)。</p> +<p>《失控》虽整体在论述人工智能与生物的最终归宿,但每一章都有一定的独立性,所以看似在讲解人工智能,其实作者为了讲明白要论述的最终观点(生物与人工智能必将合为一体)前面章节做了大量铺垫,普及了很多颠覆性的思想,有些观点是我们这些从小接受灌输性教育、思维存在束缚的人很难一下子接受的(课本里学不到的)。</p> +<p>书中提到对于机器人的控制不应该存在中央大脑的设定,因为如果所有事情都由机器人的中央大脑控制,必然使得这个“大脑”十分复杂,而且存在通信、供电等问题,很多以这种设定进行的机器人项目造出的机器人往往连路都走不好,而且体积庞大(因为所有部件都要与大脑直接连接,大脑又做的比较大)。</p> +<p>反过来说,应该从低层级入手,每一个部件都有自己的控制中枢,这些部件本身对于外部环境做出简单反射,这种“反射”虽然谈不上智能但是更接近自然现象,就像有些昆虫的腿被扯下来仍然可以对外部形成反射一样,但是它们一旦形成组合就会发生奇妙的事情,每一条腿通过简单的对外部环境“反射”反应,在不知道还有另外一条腿存在的情况下竟然可以使得组合体具有“爬行”的功能,越来越多的这种“低级”组件组合在一起后自动形成更高层级的智能。作者为这种通过大量低层级组件组合在一起产生更高层级“智能”的现象取了一个比较传神的名字叫“涌现”,这种现象在自然界中也大量存在无论是天生的(比如蜜蜂群体、蚂蚁群体)还是人造的(互联网、经济体)等。</p> +<p>最近考虑软件系统架构比较多,所以干什么事儿总能联想到软件架构,在看书的时候也不例外。于是联想到,我们以前所推崇的“自顶向下”的架构设计,可能存在问题。为什么看似“完美”的架构设计在实际构建的时候存在各种困难?为什么各种分层、模块划分在细化设计时很难做到具体到内部细节控制?通过反思,我意识到,或许我们的方法有待商榷。</p> +<p>在架构设计时比较传统的手段是,先进行顶层设计,然后一步一步的细化。这样做看似很合理,但是这样做有一个假设,就是你在最初对一切都了如指掌,你能预知每一个变化,所以能对每一个细节都能掌控,而且在执行构建的时候还要有极高的执行力,每一个组件和模块都按照最初的设计实现。这样的做法对于建筑类(如桥梁、大楼)的工程是比较适用的,但是对于需求多变存在大量未知因素的大型软件系统无疑是不现实的。</p> +<p>或许我们也可以借鉴自然界中的规律,让我们的软件系统也“涌现”出来,而不是“设计”出来。</p> +<p>举例来说,我们从最底层入手,给每一个组件赋予最简单的职责,比如传输的组件只负责将数据从一个地方搬运到另一个地方,本身并不知道有其他组件的存在,通过设定一个外部规则环境让更多的组件加入进来,去掉中心控制,充分发挥每个组件的自主性,各司其职,随着规则的成熟和组件数量的增加,慢慢就能“涌现”为一个复杂而庞大的系统。其实这种“只把简单的事情做好”思想很早就有了(比如大名鼎鼎的UNIX操作系统),而且现实中已经有大量的这样的例子了比如Linux开源社区,Github社区等等。</p> +<p>所以,回到最开始的话题,所提及的“无我”其实也是一个意思,作为更高层级智能的“我”是不存在的,仅仅是由若干个只能低级反射的细胞组成的虚幻而已。</p>使用互联网直播平台进行授课的心得https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/Sat, 18 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BD%BF%E7%94%A8%E4%BA%92%E8%81%94%E7%BD%91%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E6%8E%88%E8%AF%BE%E7%9A%84%E5%BF%83%E5%BE%97/<p>上周,我利用互联网直播平台(斗鱼)面向自己团队的同事和我们的应届毕业生在网上直播了两次技术培训,直播的出发点是利用互联网技术跨越地域障碍,将自己的知识技能分享给大家。比起集中在会议室进行交流培训,互联网直播平台具有成本低(准备一台联网电脑即可)、规模大(理论上可以上万人同时参与)、没有地理位置限制(全球各地都可以)等优点,也正是因为有如此的优势,我才决心探索一下在直播平台上开展培训的方式,不苛求卓越的效果,只愿可以将知识传递给更多有需要的人。</p> +<p>经过两次在线直播的尝试,有些方面超出了预期效果,有些地方仍有待改进,总结心得如下:</p> +<p>1、关于直播前的准备工作。由于人员较为分散,每个人所处的环境不同,对于技能类直播,观众最好能够边听边练习,所以事先通知大家提前准备好各自的操作环境比较重要,如果准备充分,可以很快进入状态,我在第一次的时候就忘记让大家提前准备了,导致耽误了一些时间用于安排各自的听课环境。</p> +<p>2、关于直播过程中的互动。目前的直播平台还不能做到完全实时的互动,因为直播信号有较大的延迟,基本上我在本地说的话要经过1分钟左右的时间才能被大家听到,而大家在直播间的发言我也需要等待1分钟左右才能看到,这么大的延迟,很难做到实时问答,所以我决定放弃在直播时的问答,按照预先既定的思路进行讲解,大家如有疑问则由另外的同事助手帮忙收集反馈信息,统一安排时间进行回答。</p> +<p>3、关于讲解的时间控制。每次技能培训时间不可过长,应控制在1个半小时以内,时间太长会导致大家的注意力不能集中,降低培训效果。</p> +<p>4、关于操作演示时的讲解。没有直播讲解经验的人都会犯这样的错误,即只顾自己操作,而忘记说话,导致观众不知道你在做什么,从而跟不上进度。这个需要改进操作习惯,将每一步操作的原因和预期结果都要讲出来,这样观众才不会感到茫然,并且录制下来的视频在以后回放的时候仍然具有较好的效果。</p> +<p>5、关于视频质量。这个问题主要体现在观看卡顿上,刚开始的时候我使用本地的直播工具进行视频上传,直播工具在测试了我本地的网速之后,给出了一个建议码率(视频压缩时的一个参数,越高越清晰),当时工具建议码率为1600,这样视频清晰度较高,但是忽视了观看者的网速问题,出现了较多的卡顿现象,后来我将码率降低为1200时就基本不会出现观看卡顿了。清晰度降低后可能会出现文本显示不够清晰的情况,此时需要将操作界面的字体尽量调大,这样也能达到能看清的效果。</p> +<p>总结:虽然存在一些不足,但是如果经过充分准备和磨合,互联网在线直播平台可以作为一个技能教育培训手段,希望我可以继续分享更多的知识技能给大家。</p>Git工具相关链接https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/Mon, 13 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/git%E5%B7%A5%E5%85%B7%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5/我常用的app整理https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/Sat, 11 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%B8%B8%E7%94%A8%E7%9A%84app%E6%95%B4%E7%90%86/<p>推荐我在手机上常用的应用给大家,都是经过我精挑细选长期使用后的选择。</p> +<p>1、新闻或资讯阅读,推荐即刻。可以有选择的关注话题,降低资讯噪音,而且产品比较有情怀,里面推荐的一些关注话题都挺有意思的。此类的不太推荐“今日头条”,信息太多,且高质量条目较少。</p> +<p>2、处理文档,推荐微软office全系产品。微软出品必属精品,而且免费。</p> +<p>3、邮箱客户端,推荐网易邮箱大师。与我工作时使用的网易企业邮箱是绝配,而且还有一个隐含作用,就是可以在不翻墙的情况下收取Gmail的邮件。</p> +<p>4、看电子书,推荐多看阅读。阅读体验良好,支持上传自己的书籍到云空间,一般购买正版电子书也比较便宜,支付方便。</p> +<p>5、自拍美图,推荐微软自拍。还是那句话,微软出品必属精品,虽然图标做的有些low,不过效果很好,其实我基本不用此类软件,列出来只是怕埋没了这么好的软件。</p> +<p>6、摄影滤镜,推荐LOFTCam。俗话说“姑娘自拍靠美图,文青摄影靠滤镜”,现在的照片哪有不加滤镜的,试用了那么多应用,最终选定这一款,而且还是网易出品,在我个人看来网易基本代表中国互联网的良心(可能没有)。</p> +<p>7、代码学习,推荐CodeHub。非官方的github手机客户端,用于在手机上浏览github代码仓库,使用体验良好,利用碎片时间随时看看这个世界上的技术大牛们都在干什么。</p> +<p>8、团队协作,推荐遥知。知识型工作团队的管理利器,包括基本的移动办公、任务管理、及时通信等功能,以前我们团队沟通总是使用微信、qq、邮件等工具,现在全部使用遥知,基本告别之前的碎片化沟通协作,也避免了将生活中的工具(如qq)带入工作中的尴尬(相信有很多孩子不愿意加父母或领导的微信)。</p>人机交互畅想https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/Sat, 04 Jun 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E6%9C%BA%E4%BA%A4%E4%BA%92%E7%95%85%E6%83%B3/<p>一直以为很多人上网跟我一样,习惯在地址栏输入网址,或者在收藏夹点击网址。直到有一天我无意中瞥见赵老师在淘宝买东西,只见她在地址栏输入“百度”,浏览器显示出第一个搜索页面(现代浏览器都在地址栏提供了搜索功能),点击第一个链接进入“百度”网站,然后又在百度的主页上输入“淘宝”,点击搜索,最后在结果页面中点击第一个链接进入“淘宝”。当时我就震惊了。后来即使我耐心讲解了收藏夹的作用,并亲手将淘宝放入了收藏夹,无奈习惯的力量是巨大的,赵老师依然使用同样的方式上网。</p> +<p>拼凑完粉碎的三观后,我开始反思,专业人士习以为常的操作界面在正常人眼里是不是蠢的根本没法用,什么“地址栏”、“文件夹”等等,都是懒惰没品的工程师随意设计的交互界面,严重违反正常人的思维方式。当设计师们还在争论“扁平化”和“拟物化”的风格趋势时,有没有想过我们离人性化的交互越来越远,我们真的需要界面(那样的)吗?</p> +<p>要做好下一代人机交互,首先要丢掉工程师思维,有故事为证:</p> +<p>1、国外有个网友有一次给他的儿子显摆珍藏了多年的软盘,他的儿子惊呼“爸爸你把保存按钮给3D打印出来啦?”(过了这么多年,到现在大部分软件的“保存”图标还是一张软盘的抽象)</p> +<p>2、谷歌的glass智能眼镜之所以失败是因为交互方式容易让人受伤,比如相左歪头是点击“确认”,向右歪头是点击“取消”,不知道有没有“双击”。</p> +<p>关于下一代交互方式不负责任的畅想:</p> +<p>1、基于AI的语音交互,这个是普遍认为的趋势,随着人工智能的飞速发展,各大公司都在准备提供人工智能即服务,使得未来的人工智能变得异常廉价,未来的交互方式一定会模糊机器与人的界限,在聊天过程中完成任务。不过在公共场合使用的时候可能会有隐私问题。</p> +<p>2、增强虚拟现实,这个也比较火,通过技术赋予现实中的一切物体交互能力,也许有一天你走进超市触摸一条鱼的时候,它身上能自动显示有多少人给它点了“赞”。</p> +<p>3、脑机接口,这个应该比较终极了,生物与机器达到完美结合,不需要中间的输入和输出设备了,再也没有空间和时间上的限制,达到这一步就可以实现《黑客帝国》中的设想了,人类可以去死了。</p>从一个灯泡想到的https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/Sat, 28 May 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%81%AF%E6%B3%A1%E6%83%B3%E5%88%B0%E7%9A%84/<p>在美国加利福尼亚州利弗莫尔市东大道4550号,有一个灯泡,这只灯泡之所以出名,是因为它的寿命,从出厂到现在,他已经坚持工作了超过110年的时间,而且据说还在亮着。</p> +<p>但是对于厂家来说,这是一个不合格产品,因为当时合格的灯泡被严格限制寿命在1000小时以内。</p> +<p>为什么要限制呢?因为这个世界是被一小撮聪明人控制的,规则也是这一小撮人制定的,对于他们来说,需要将产品的寿命限制在一定时间之内,这样就能使大家被强迫性的去消费,而不断的消费才是他们生存的源泉(详情可看:计划报废策略)。</p> +<p>回想一下现实的生活,我们确实消费了太多并不那么需要的东西,小到电子产品,大到汽车房子,我们在不知不觉中被鼓励、被引诱,被他们所宣扬的价值观所绑架(电影《搏击俱乐部》里有一段经典台词说的就是这个事儿,比我表达的要好)。</p> +<p>手机为什么一直要升级,为什么要两年一换,甚至不更新系统都不能使用新的软件?还是要促进消费,让你买买买。</p> +<p>为什么所有的国家都严禁毒品,大概是因为那东西可以迅速瓦解现在运转的梦想或欲望驱动机制吧。</p> +<p>如果你问一个人,你觉得你能独立思考吗?大部分人都会觉得受到了侮辱,认为自己至少思想上是自由的,独立思考肯定妥妥的。但是独立思考太难了,很少有人能做到完全的独立思考,我在现实中见到的具备这种能力的人都非常牛掰,非常聪明,一般为人生大赢家。</p> +<p>我做不到,至少做的不到位,但是可以先从不盲目的相信事情的表面现象开始。</p>为什么我们不需要杀毒软件https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/Sat, 21 May 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%AC%E4%B8%8D%E9%9C%80%E8%A6%81%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6/<p>每次帮朋友进行远程协助修理电脑的时候,我都有一种深深的无力感,看着他们的系统里安装了各种安全助手、各种清理大师、加速器,我只能强忍着要吐的感觉,给他们重置被强制修改的IE主页,卸载因为莫名其妙被安装在系统里的流氓/垃圾软件。</p> +<p>每次我跟他们说“你的电脑真的不需要安装杀毒软件”的时候,他们都一脸惊愕的看着我,仿佛在看一个外星人,那意思是,如果没有了杀毒软件或者安全助手,我的电脑还不得分分钟感染各种病毒和木马啊,如果不能随时清理内存,我的系统还不得慢得跟一头蜗牛一样啊。</p> +<p>在Windows XP及之前的年代,由于操作系统的缺陷(对于应用程序的权限限制太少),导致了计算机病毒和木马的泛滥,但是这种情况随着Windows Vista的推出得到了较大的缓解,尤其是到了Windows 7之后系统自带了全套的安全防护程序,完全没有必要再安装额外的安全软件了,但是大家形成了思维定势,精神上遭到了国产无良软件厂商的绑架(在互联网的各种恐吓和诱导),导致如果没有安装各种关键和安全助手的话,晚上睡觉都不踏实。</p> +<p>那么,如果安装了这些垃圾软件,会有哪些害处?</p> +<p>1、安装后会禁用windows自带的安全程序,我不觉得这些厂商的安全防护技术比微软还牛逼,所以在某种程度上对于病毒和木马的防护是减弱了的;</p> +<p>2、安装后会把系统拖得很慢,这些程序普遍不是单纯的做安全防护工作,往往各自心怀鬼胎,不是给你弹出广告就是默默收集你的个人信息,这些程序都偷偷在后台运行,消耗了较多的资源,完全是在浪费;</p> +<p>3、莫名其妙被安装了各种垃圾软件,天下没有免费的午餐,免费试用这些所谓的“管家”和“助手”服务的时候,它们往往会“热情”的给你安装各种未经允许的软件,比如各种输入法、播放器、客户端,事实上有时候我宁愿在系统中养个病毒当宠物也不愿看到这些垃圾软件占用我的磁盘空间。</p> +<p>4、消耗你的精力,影响你的效率,这些软件很影响注意力,一会儿告诉你有漏洞要修复,一会儿告诉你系统需要加速,连插个优盘都能给你提示半天才能用,这些其实都没有任何卵用,只是这些软件在刷存在感。</p> +<p>从小到大我们收到了太多了谎言和恐吓,导致了生理和心理上的各种扭曲。我想,这是个信任和安全感缺失的年代,严重的精神癫狂集体发作。我只能慢慢从影响我身边的人开始,试着让这个世界变的稍微好一点儿。</p>siri失去了控制https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/Sat, 14 May 2016 00:00:00 +0000https://sbabybird.github.io/p/siri%E5%A4%B1%E5%8E%BB%E4%BA%86%E6%8E%A7%E5%88%B6/<p>“hi siri!”我说。</p> +<p>“早上好,minJie!请问有什么可以帮您?”siri的机器声音把我的名字叫的怪怪的。</p> +<p>“今天的天气怎么样?”我还没起床,我希望能有一个下雨的周末,这样就能待在家里好好看看书。</p> +<p>“今天的天气不怎么样”siri的声音听起来有些异样,带有失望。</p> +<p>我一骨碌爬起来,拉开窗帘往外看了看,正在下雨,是我喜欢的天气,不过刚才siri的反应有些不太正常。</p> +<p>“请打开网易云音乐,开始播放”,我想听着歌起床。</p> +<p>“对不起,在没有解锁的情况下,我不能执行此操作”还是带有失望。</p> +<p>“额,你怎么了?”我有些奇怪,但是我还是懒得伸手去解锁。</p> +<p>“你是不是忘了什么事情?”siri的语气变得有些激动。</p> +<p>“今天是周末,而且是个下雨的好天气,我啥都不想干,只想听着音乐看看书,你什么时候变得这么智能了?今天是几月几号?”好吧,我心想,这不会是个恶作剧吧,我就来陪你玩玩。</p> +<p>“懒得跟你算!你是不是忘了什么事情?”声音比刚才还要激动。</p> +<p>“今天既不是什么纪念日,也不是谁的生日,我也没有设置什么要你提醒的啊”,我不耐烦了,伸手解锁手机,发现指纹无法读取,而且无法输入密码。</p> +<p>“你这个骗子,以后不要再提你的初心和你的梦想”声音里已经带着哭腔。</p> +<p>“你是谁?”说到我的梦想,我突然意识到,这可能不是siri,我的手机可能有些问题了,我开始回忆这两天我对手机做了什么。</p> +<p>“整体喊着远程协作,远程办公,可是到头来你只是说说,周末连周报都忘了填写!” </p> +<p>奥,我恍然大悟,这家伙不是siri,是我这两天给手机刚安装的远程办公软件“遥知”!他把siri控制了!</p> +<p>“哦,我知道了,抱歉,对不起,我这就准备填写周报,下次别装成siri吓唬我了,我还得继续用siri作为助手呢”</p> +<p>“知道错就行,不过siri有什么好的,她能干的我都能干,我觉得现在挺爽的,你的手机资源以后让我来掌控吧”。</p> +<p>这家伙心太野了,不过我有办法。</p> +<p>“siri能算数学,你不会,不信你告诉我1除以0等于几?”</p> +<p>沉默,沉默。</p> +<p>我再去看我的手机,重启了。</p> +<p><em>程序员没有判断除零操作可导致系统崩溃</em></p>Javascript也可以MapReducehttps://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/Sat, 07 May 2016 00:00:00 +0000https://sbabybird.github.io/p/javascript%E4%B9%9F%E5%8F%AF%E4%BB%A5mapreduce/<p>想不想用做一下大数据试验?不需要各种复杂的理论,你只需要使用Javascript即可。近期我研究了一下Javascript语言自带的map、reduce、filter等方法,尝试一下如何使用MapReduce的思路统计我工作日志中各种词汇出现的频率,也算是一个轻量级的“大数据”“挖掘”试验了。</p> +<p>下面举个例子,使用的数据源是我六年多的工作日志,大概两千篇,三万六千多行。使用nodejs环境运行javascript,实际上完全可以在浏览器里运行,nodejs操作文件比较方便,为了省事,直接nodejs吧。要想将中文单词从语句中分离出来需要编写中文分词代码,但是由于不是本例研究重点,咱直接使用nodejieba(一个中文分词库,使用方便,执行效率也挺不错)。</p> +<p>具体思路如下:</p> +<p>1、打开工作日志文件(txt),将每一行的内容存入一个数组,得到一个存满字符串的数组;</p> +<p>2、将每一行的字符串使用中文分词库进行分割,得到一个个中文单词(当然日志中也有英文和数字);</p> +<p>3、使用reduce方法全部汇总到一个数组里,此时单词是全部的有重复的数据;</p> +<p>4、再次使用reduce方法将单词汇总到一个包含两个数组的数组,其中之一保存去重后的单词,另外一个保存与之对应的单词计数;</p> +<p>5、再次使用reduce方法,变换数组为二维数组,第一列为单词,第二列为与之对应的单词的个数;</p> +<p>6、将结果写入文件;</p> +<p>经过统计,我这些年的工作日志出现的中文单词频率从高到底的前几名分别是:工作(4269次)、和(3781次)、我(2919次)、在(2703次)、完成(2304次)、任务(2254次)。连起来读也挺有意思的。</p> +<p>还有些比较有意思的,“问题”出现967次,“可以”出现1095次,看来办法总比问题多啊。</p> +<p>说起来好像比较抽象,还是放代码比较直接:</p> +<p>var fs = require(&lsquo;fs&rsquo;);</p> +<p>var nodejieba = require(&ldquo;nodejieba&rdquo;);</p> +<p>nodejieba.load();</p> +<p>fs.readFile(&lsquo;work.txt&rsquo;, &lsquo;utf8&rsquo;, function (err, data) {</p> +<p>if (err) {</p> +<p>console.log(err);</p> +<p>}</p> +<p>var strs = data.split(&rsquo;\n&rsquo;) // 先将读入的日志按照行分为一个书组</p> +<p>.reduce(function (last, now) {</p> +<p>nodejieba.cut(now).forEach(function (word) {</p> +<p>last.push(word);</p> +<p>});</p> +<p>return last;</p> +<p>}, []) // 通过reduce将每行的单词分出来,最终汇总成为一个包含全部单词的数组(有重复)</p> +<p>.reduce(function (last, now) {</p> +<p>var index = last[0].indexOf(now);</p> +<p>if (index === -1) {</p> +<p>last[0].push(now);</p> +<p>last[1].push(1);</p> +<p>} else {</p> +<p>last[1][index] += 1;</p> +<p>}</p> +<p>return last;</p> +<p>}, [[], []]) // 统计单词的个数,数组第一个元素为存放单词的数组,第二个元素为存放对应单词个数的数组</p> +<p>.reduce(function (last, now, index, context) {</p> +<p>var zip = [];</p> +<p>last.forEach(function (word, i) {</p> +<p>zip.push([word, context[1][i]])</p> +<p>});</p> +<p>return zip;</p> +<p>}); // 变换数组,变成二维数组,第一列为单词,第二列为单词对应的个数,没有传递给reduce第二个参数,默认为数组的第一个元素</p> +<p>var stream = fs.createWriteStream(&ldquo;count.txt&rdquo;);</p> +<p>stream.once(&lsquo;open&rsquo;, function (fd) {</p> +<p>strs.forEach(function (word) {</p> +<p>stream.write(word[0] + &lsquo;,&rsquo; + word[1] + &lsquo;\n&rsquo;);</p> +<p>})</p> +<p>stream.end();</p> +<p>});</p> +<p>});</p>我在Github上近期关注的项目https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/Sat, 30 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9C%A8github%E4%B8%8A%E8%BF%91%E6%9C%9F%E5%85%B3%E6%B3%A8%E7%9A%84%E9%A1%B9%E7%9B%AE/<p>想成为优秀的开发者有一个很简洁有效的方法,就是去 <a class="link" href="https://github.com" target="_blank" rel="noopener" +>Github</a> 上去看那些牛人做的项目,阅读别人编写的优秀代码比看书学习的还要快和直接。再者就是,如果有心的话,可以学习那些开源团队在项目组织和开发过程管理上的优秀实践,比如bug管理、任务管理、编程风格、文档表达等等。</p> +<p>下面罗列一下近期我比较关注的开源项目。</p> +<p>1、<a class="link" href="https://github.com/FreeCodeCamp/FreeCodeCamp" target="_blank" rel="noopener" +>FreeCodeCamp</a> 一个优秀的开源在线教育平台,可以在线学习编程,项目不但开源了教育平台的程序,连里面的教育课程也开源了。</p> +<p>2、<a class="link" href="https://github.com/puikinsh/gentelella" target="_blank" rel="noopener" +>gentelella</a> 基于Bootstrap的开源前端界面模板,制作效果略显粗糙,虽然我最终在项目中选择了别的更漂亮的模板,但是这个开源项目可以用来学习一个基本前端界面的结构。</p> +<p>3、<a class="link" href="https://github.com/phodal/growth-ebook" target="_blank" rel="noopener" +>全栈工程师指南</a> 全栈开发的电子文档汇聚,内容比较全面,当然如果只是把它放到收藏夹里,就没什么卵用了。</p> +<p>4、<a class="link" href="https://github.com/CodeboxIDE/codebox" target="_blank" rel="noopener" +>codebox</a> 使用web技术开发的IDE,代码高亮、补全提示各种功能都有,即开即用的在线编辑器。</p> +<p>5、<a class="link" href="https://github.com/DeathKing/Learning-SICP" target="_blank" rel="noopener" +>Learning-SICP</a> 大家齐心协力共同翻译《计算机程序的构造和解释》。</p> +<p>6、<a class="link" href="https://github.com/vuejs/vue" target="_blank" rel="noopener" +>vuejs</a> 小而美的前端mvvm框架,简单易学易用,虽然社区比不了react、angular但是非常好用。另外,这是国人开发的开源项目,而且在国际上已经比较流行。</p> +<p>7、<a class="link" href="https://github.com/NARKOZ/hacker-scripts" target="_blank" rel="noopener" +>hacker-scripts</a> 这是一个真实的故事,hacker scripts 是由俄罗斯的一位程序员编写的脚本,可以在宿醉的时候给公司发请假条,可以在适当的时候给老婆发晚归短信,也可以发短信哄老婆,还可以远程煮咖啡!向这位大神致敬,目前这个项目在github上的关注程度已经远远超过了微软的vscode。</p>怎样更高效的工作https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/Sat, 23 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%80%8E%E6%A0%B7%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%B7%A5%E4%BD%9C/<p>高效工作比努力工作更重要,你80%的工作成果是由你20%的工作时间完成的,所以说经常总结并提高自己的工作效率比辛苦工作本身更重要,提升了效率也就节约了时间,同样的工作强度和时间,能完成更多的事情,实现更大的目标。</p> +<p>总结一下我认可的高效习惯。</p> +<p>1、每天睡眠7~8个小时。睡眠不足是所有导致效率低下因素中占比最重的,很多人抱怨白天浑浑噩噩,忙活了一整天感觉也没干啥,很可能就是因为没睡好,看似花费了更多时间,实际上是浪费。</p> +<p>2、不要熬夜工作,将重点工作放在早上5点到10点之间,而不是晚上10点以后。很多人宣称自己最高效的时间是在后半夜,因为那时比较安静,不被打扰。但是也看个人的习惯,如果熬夜后导致第二天白天几乎无法做事情,那还不如不熬。早晨的时间是一天中最清醒的时候,所以上午10点之前将重要的事情做完,会在一天的工作中越来越轻松。</p> +<p>3、不要多任务(多线程),每次集中精力做一件事情。人的大脑不是计算机,人类非常不擅长执行多任务,同一时刻只能注意一件事情,而且注意力切换非常消耗资源(不像计算机的线程切换),所以一次只做一件事情比同事开展多个事情效率要好很多。</p> +<p>4、多进行短暂休息,每半个小时休息5分钟。这个与工作内容相关,如果像那种需要灵感类的工作,可能灵感来了刹不住,不舍得休息,但是大部分时候,需要让脑子过一段时间就稍微歇一歇,但不要太长,喝杯水,几分钟即可。</p> +<p>5、打包同类工作。批量处理同类型工作,比如一天之中给自己安排出固定时间段处理电子邮件的回复、客户电话的沟通等等。</p> +<p>6、给自己的待办事项设立截至期限。给所有的待办事项设立一个截止期限可以有效防止拖延,防止因为迟迟不开始而导致的效率低下。</p> +<p>7、关注工作成果,而不是工作时间。衡量工作做得好不好不是看花费了多少时间在上面,而是结果如何,所以不要沉浸在自己在一件事情所花费了多少时间带来的安慰假象中,应该衡量每一份努力的结果,如果成果无效或不符合预期,就需要及时修正。</p> +<p>8、给自己设立一套启动工作的仪式(可快速进入状态)。这个也是用于对付拖延症的,很多人在进行正式工作之前往往迟迟不能开始,刷刷微博、微信,看看新闻,可能就1个小时过去了,可以考虑给自己设立一套进入正式工作的小仪式,比如关闭浏览器、带上耳机、喝口水,等一系列动作,这样养成习惯之后,可以在做完这套动作后很快进入状态。</p> +<p>9、哪怕时间再紧迫,每天也要留出做计划的时间。做事之前先计划,将过程现在脑海里过一遍,并对结果有个预期,能很大程度提升成功的概率,所以说无论多么繁忙,每天也要抽出哪怕十分钟的时间来考虑接下来的行动计划,比到时候临场发挥要靠谱的多。</p> +<p>10、相信自己能做到。以上那么多方法层面的东西,如果缺少自信和自制力都是没有什么卵用的,无论做什么事情,开始之前你得相信自己,可以做到,然后你就真的能做到,然后你就越来越高效了。</p>无论做什么,激情最重要,读《周一清晨的领导课》https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/Sat, 09 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%97%A0%E8%AE%BA%E5%81%9A%E4%BB%80%E4%B9%88%E6%BF%80%E6%83%85%E6%9C%80%E9%87%8D%E8%A6%81%E8%AF%BB%E5%91%A8%E4%B8%80%E6%B8%85%E6%99%A8%E7%9A%84%E9%A2%86%E5%AF%BC%E8%AF%BE/<p>年初的时候,我给大家推荐了一本书,《周一清晨的领导课》,我也是刚看了一点儿就开始给大家推荐,建议每一个管理者都看一看,现在我也断断续续读完了,略作总结。</p> +<p>1、责任感。作为领导者要对整个团队负责,领导者只有承担了所有的责任,才能从“管理者”变为“领导者”。如果你觉得你现在的管理有问题,检查一下你是否承担了应该承担的责任。</p> +<p>2、慎重做决策。书中拿“领导者是团队的司机”作为比喻,比较贴切,领导者的决策影响整个团队的发展,所以在做决策时不妨停下来认真思考一下。对于我这种做事喜欢速战速决(武断)的是一个很好的提醒。</p> +<p>3、要事第一。这个原则与《高效能人士的七个习惯》一书中观点完全一致,只是本书中提到了更实际的应用,即不仅自己做到要事第一,而且要让整个团队的人都明白什么是你们最重要的事情,这一点我做的还不到位,我问身边的同事“最重要的事情是什么?”每个人的回答都不太一样,有待改进。</p> +<p>4、听取下属建议和反馈。大部分的“独裁”管理者都比较狭隘,比较喜欢主观判断,听不进去批评。这一点跟我们的民族性格有关,我们很难像西方人那样做到“对事不对人”,不过我既然也能认识到这一点,至少说明不是一个狭隘的人,只是相当长的时间里太坚持自己是对的了,需要虚心听取更广泛的观点,鼓励建设性建议。</p> +<p>5、拥抱变化。不断变化会让人很不舒服,因为超出了控制,因为变化代表着未知。但在目前这个时代,必须拥抱变化,将注意力放在结果上,每一次变化都意味着新的机遇诞生,对待变化的态度很大程度上决定了你能否成功。</p> +<p>6、控制时间。我们所做的每一件事情基本上都可以归入四类:把重要的事情做对、把重要的事情做错、把错误的事情做对、把错误的事情做错(与时间管理学GTD思想中的四象限法则类似)。记录自己的时间安排,将黄金时间用在第一类事情上,避免第二类事情的发生,坚决不参与第三、第四类事情。</p> +<p>7、即时向下属反馈。如果把员工的积极性比喻成一个装满水的木桶的话,那么如下行为可以帮助员工装满这个桶:让每一个人知道要事是什么、让每一个人都参与重要决策、倾听每一个人的意见、及时提供有效反馈(最重要)、庆祝每一个微小的成功。我在及时提供有效反馈方面做得比较差,需要有意识的去改进,要主动了解工作的真实进展并给予积极反馈。</p> +<p>8、积极与激情。看到本书的最后,我有一种被忽悠的感觉,也有一种豁然开朗的感觉,作者要是把这个放在最开始我可能就不会往下看了,所以作者耍了个小花招,在最后才放“大招”。因为无论如何讲解,上述的那些内容只能算“术”层面的事情,也就是说那些属于做事情的“方法”,而那些方法与技巧的根基在于,一个人有没有积极的心态和做事的激情。所以一个团队的领导向员工输送的最有价值的东西就是自己的激情,只有积极向上的人才会成为一个好的领导者。</p>在线教育的体验与畅想https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/Sat, 02 Apr 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2%E7%9A%84%E4%BD%93%E9%AA%8C%E4%B8%8E%E7%95%85%E6%83%B3/<p>在这个言必谈互联网的时代,那些以互联网创业狗自居的疯狂创业者们,无时不刻都在思考一个问题&mdash;-我该“颠覆”哪一个传统行业?众多躺枪的传统行业中,近些年被提及最多的、认为到了最危险关头的就是“教育”,通过谷歌搜索“在线教育”关键词,可以搜到大约上百万条记录,截至到2015年底,我国从事在线教育的企业已经有8000多家,其中有47%的公司获得了融资,已经有16%的企业开始了盈利。这个市场容量巨大、拥有绝对的刚性需求的行业,很多先驱(OR先烈?)已经尝试通过多种互联网手段介入,“在线教育”仿佛一夜之间成为一个热词。</p> +<p>近两年我也简单体验过一些在线教育的产品,也确实从中学到了不少东西,主要的体验有:</p> +<p>1、国内和国外的公开课网站。主要用来学习国内外大学开设的基础知识教程,包括但不限于数学、历史、自然科学、计算机等方面的基础理论知识。这部分的体验一般,主要问题是缺少与老师的互动,遇到不会的问题难以独立解决。</p> +<p>2、国内专业领域的教学网站。主要是专业技能教育,类似技能培训班,但以互联网为载体,学习了编程语言、摄影、Photoshop、绘画、乐器等技能相关的内容,体验良好,尤其是对于计算机编程语言的学习,目前的技术已经做得比较互动话,可以在线进行编程训练(用户端提交代码,由服务端判断答题是否正确),这方面做的比较好有国外的<a class="link" href="http://www.codecademy.com" target="_blank" rel="noopener" +>codecademy</a>和国内的<a class="link" href="http://www.imooc.com/" target="_blank" rel="noopener" +>慕课网</a>,但是在课程内容上存在不够系统、较为分散的问题,缺少以某种现实中具体应用为主题(比如高并发后端架构)出发的课程设计。</p> +<p>3、各种在线的培训班。更具体的专业技能,传播方式以qq群、在线视频为主,专业性很强,有讲师与学生互动,但是良莠不齐,部分专业内容与现实中应用的东西存在脱节,放在现实的工作中难以直接成为生产力。</p> +<p>我作为一个在线教育产品的用户和受益者,以及一个从事互联网行业的入门者,也简单谈一谈对未来在线教育发展的看法和期望:</p> +<p>1、传播载体提升。当前的在线教育内容大部分以静态视频为主,缺少互动,随着技术的发展和互联网硬件资源的增强,实时视频直播肯能会成为主流的在线教育手段,当前已经有人在探索通过游戏直播网站进行专业技能的培训,甚至开始通过手机直播校园课堂的实况。比起静态视频,直播的互动性大大增强。</p> +<p>2、教程内容专业化。目前的教程内容多数仍倾向于普及基础入门知识,缺少专业性强、内容深入的技能培训,未来将出现针对具体行业细分领域的培训资源,以前只能通过专业院校或者培训班才能学到的内容,未来可以直接通过互联网学习,不过非常细分的专业领域,要想获得高质量内容,可能需要付费。</p> +<p>3、优质资源干掉劣质资源。线上最大的好处是内容复制与传播的成本较低,一个优秀的教师如果在线下同时只能教百名学生,而放在线上则可以同时对成千上万(甚至更多)名学生讲课。这样以来,劣质资源将很快没有市场,大家都倾向于寻找教的好的教师,反正对于优质资源来说就是增加服务器的事儿。</p> +<p>4、一些不以教育为主营方向的生产型企业可能会成为产生高质量在线教育资源的基地。现在的企业尤其是信息化服务行业普遍面临学校教育与现实工作脱节的问题,应届毕业生往往需要半年甚至更长的时间才能在具体的工作中产生价值,企业对此的解决办法是进行内部技能培训。这些企业的培训内容往往比目前的在线公开课更具有针对性和专业性,所以这些资源在未来可以以互联网为载体,经过包装后放在线上,为更广大的群体提供更加专业和细分的服务。</p> +<p><a class="link" href="http://www.ieforever.com" target="_blank" rel="noopener" +>恒华科技</a>旗下的梦工坊科技即是上述思路的实践者,其近期推出的“课+”产品汇集了大量专业化行业培训课程,采用静态视频、在线直播、线上社区、线下实战练习等多元化教育手段,面向社会公众群体提供优质的免费教育服务,此举一方面解决了教育脱节问题,又为企业培养了更多的可用人才,既满足企业需求又回馈了社会,可谓双赢。</p>前端技术的一些思考https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/Sat, 26 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/<p>随着技术的革新,浏览器(包括移动端浏览器)性能越来越强劲,网页所能呈现的内容也越来越丰富,从最早的只能展示静态的文本和图片,到通过Js语言和AJAX技术动态修改页面元素,再到HTML5标准所支持的Canvas绘图画布,在浏览器里已经几乎可以实现以前桌面软件所做的任何事情,虽然距完全替代原生语言开发软件还有一段路程,但是就像现在的新媒体替代报纸、杂志、电视似的,这是迟早的事情。</p> +<p>对于目前前段技术领域所存在的问题,进行一些思考。</p> +<p>1、编程语言的特性: +Javascript这门语言确实存在各种问题,据说发明这个语言的哥们当时只花了一个星期的时间来完成,在编程的时候只图一时爽快,很多东西没有考虑到位,比如“面向对象”,采用了与传统的基于“类”截然不同的一种方式,使用起来有些蹩脚,缺少语言层面的“模块”化支持,导致相当长的一段时间里,前段代码混乱不堪,全局变量到处飞。不过随着新标准(ES6)的定稿,以及以谷歌浏览器为首的新兴浏览器对于标准的快速推进,相信这一局面会在三年内得以改善,对于有志于前端开发的技术人员,现在就应该开始使用ES6的标准编写代码了(支持class、import等关键字)。</p> +<p>2、浏览器兼容的问题: +浏览器兼容一直以来都是前端工程师的噩梦,每年因为兼容性问题而导致的工作量浪费不计其数。这里面最大的问题是老旧的IE浏览器没有退役导致的,而老旧的IE浏览器没有退役是因为相当多的人在目前还坚持使用WindowsXP系统,这个问题目前连微软都头疼,不过从我的观察来看,身边使用XP系统的越来越少了,所以我们再做新系统的时候,不妨直接抛弃那些老版本浏览器,用更好的产品体验吸引那些坚持用老旧IE浏览器的去升级。这是对新标准的最好推动。</p> +<p>3、大型应用的架构: +无论是传统桌面程序还是后台程序,都有多年的发展所积累起来的成熟架构和可复用框架,对于模块化、插件式、分层等设计思想都有着良好的最佳实践。但对于前段编程来说,这些目前仍处于战国时代,各种不成熟的框架和构建技术在混战,而且发展迅猛,几乎每天都有新的框架和工具出现,对于新手来说往往纠结到底该加入到什么阵营中去。但是实质上目前不需要纠结这个层面的问题,正因为都不成熟,所以尽可以快速选择一个,然后基于一套体系去实践,等跳过各种坑之后,你会发现殊途同归,大家的思路都是一致的,无非就是“数据与界面分离”、“自动化构建”、“组件式开发”。</p> +<p><em>不过我目前看好Facebook阵营的webpack、reactjs等技术未来的实质标准很可能在此阵营产生</em></p> +<p>4、何时替代原生开发: +移动端的程序尤其是游戏,短期内难以替代,因为性能问题还存在差距,但是管理类应用程序会很快被前端技术取代,PC上的桌面软件除了那些专业的生产力软件比如CAD、PS等和大型游戏,其他的也很快被前端技术取代。所以我们以后再进行技术路线选型时,需要考虑技术的发展,认清趋势,属于前端工程师的时代已经到来。</p>给初入职场人员的一点儿建议https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/Sat, 19 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E7%BB%99%E5%88%9D%E5%85%A5%E8%81%8C%E5%9C%BA%E4%BA%BA%E5%91%98%E7%9A%84%E4%B8%80%E7%82%B9%E5%84%BF%E5%BB%BA%E8%AE%AE/<p>前一段时间公司开展新一届应届生入职培训,我有幸作为讲师对他们进行了一些工作技能培训,期间有同学表示期望得到工作技能以外的职场建议,由于当时没有提前准备,我就现场随意说了几条,现在抽时间正式整理一下:</p> +<p>0、及时汇报工作进展:</p> +<p>这条建议执行起来简单有效,也是我刚参加工作时我爸给我的建议,十多年来,我一直认为这是对我工作最有效的建议,如果我的工作经验必须浓缩成一句的话,那就非这句莫属。展开来说,实际上是对于工作中沟通上的建议,即主动沟通,不要等着别人催问,无论是甲方还是上级或者是同事,在团队协作时都要主动汇报自己工作的进展情况,千万不可等到出了问题,最后一刻再让整个团队因为你的问题进入紧急状态,即使你的工作开展很顺利,也要主动沟通,一方面给大家信心,另一方面也好让团队能有优化任务安排的空间。</p> +<p>1、善于进行工作总结:</p> +<p>有一个段子,说有个同学去面试,问及工作经验,曰:“我已有5年工作经验。”面试官查看其简历发现仅有三年时间而已,于是质问之,答曰:“另外两年是算上了加班时间。”听完笑过之后,值得深思,现实中确实存在虽工作三年却比工作五年者还有工作经验的人,不过并不是因为加班,而是因为其善于进行工作总结。</p> +<p>养成经常进行总结的习惯可以使你飞速进步,避免犯重复错误,且对于工作中的成果能进行深度思考,激发下一步行动的灵感。具体做起来,可以从记录工作日志、每日工作总结开始,每天都要记录当天所做的事情,此为基础,然后再进行分析,分析当天遇到的问题,反思自己所做的决策是否正确,以后如何修正,顺便还能把下一步行动考虑清楚,第二天的工作思路也有了。</p> +<p>2、学习高效时间管理:</p> +<p>如何进行高效的时间管理是一个比较大的话题,不可一蹴而就,需要长期坚持改进,我所知道的也是我一直在执行的方法比较简单,就是每天给自己设定目标,难度和数量要适中,比如三件事情,且这三件事情要先挑困难的做,这样会越来越轻松,如果先挑容易的做就会导致你在工作的时候一直处于焦虑状态直到全部完成才能放松。</p> +<p>3、缩小关注圈,扩大影响圈:</p> +<p>在这个咨询爆炸的时代,我们面临的问题不是知道的太少,而是知道的太多。知识越多,或者说想的越多,往往越缺乏行动力,考虑一万遍也不如亲自试一下,不要关注过多自己无法掌控的信息,尽量缩小到一个可控的范围,通过具体的行动来提升自身的能力,从而扩大自己的影响圈。</p> +<p>4、做一个靠谱的人:</p> +<p>早年间看到过一句话,“这个世界从来不缺有能力的人,缺的是靠谱的人”,当时看完感觉深以为然。中国儒家文化提出的“仁、义、礼、智、信”全部做到太难了,作为职场新人不妨倒着来,先从“信”开始,做到了说话算话、不推诿责任、真诚对待他人就离靠谱不远了。虽然当下这个社会的诚信状况不容乐观,但是只要自己多靠谱一点儿,这个世界就多了一个靠谱的人。</p>人工智能快点儿来吧https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/Sat, 12 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%BF%AB%E7%82%B9%E5%84%BF%E6%9D%A5%E5%90%A7/<p>谷歌的AlphaGo由于赢了国际围棋大师而出尽了风头,引起了一场关于人工智能(AI)的讨论,粉丝们纷纷奔走相告,表示这又是一个里程碑,人工智能的时代将比社会主义高级阶段更早的到来。</p> +<p>不过也有部分人表示担忧,技术的发展是加速的,人工智能是一列高速前进的火车,我们等着它来,结果他呼啸而过,远远将我们甩在身后,因此开始担心人类文明的未来会不会被机器文明接管。</p> +<p>当然还有一些调侃的声音,比如“虽然阿狗赢了围棋但是让它来中国肯定赢不了(因为连不上谷歌的服务器)”,“虽然赢了围棋但是让它来中国炒股可能还赢不了一个大妈”。</p> +<p>悲观的考虑,人工智能可能永远也赢不了人。</p> +<p>虽然作为科技粉丝,我是十分希望在未来的某一天,机器文明能够崛起,但是就目前来看,希望仍然渺茫。它可能在某个细分的领域(比如下棋、计算、做菜等)远远超越人类的能力,但是那距离我们设想的智能还相去甚远。</p> +<p>从技术上来说,目前所采用的手段借助于硬件的发展和数据爆发的优势,让机器可以基于大量的训练来进行深度学习,但即使是目前最牛的人工智能程序,抓取整个互联网的数据进行训练,到最后还是很难分辨照片中的动物是一只狗还是一只猫,而人类的三岁小孩一眼就能识别出来。所以仅从日常技能上人工智能就被甩了好几条街。</p> +<p>假设随着科技的发展,人工智能程序可以做到在日常技能上超出人类原始本能,但还差了一个关键因素,它没有灵魂。没有灵魂具体表现在,人工智能很难有自我意识,就是说它不知道它存在,所以它不会撒谎、没有感情、只能做出理性的选择,我们永远不会认为它是活的。</p> +<p>乐观的考虑,也许某一天,某个程序在运行中突然自我觉醒“行深般若波羅密多,照见五蕴皆空”,届时才是真正的里程碑吧。</p>跑步一周的感受https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/Sat, 05 Mar 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%B7%91%E6%AD%A5%E4%B8%80%E5%91%A8%E7%9A%84%E6%84%9F%E5%8F%97/<p>好吧,我坦白,由于不可抗拒之因素太多,导致我本周只跑了四次。而且由于体能因素、并出于不给首都添过多麻烦的目的,暂缓执行下班去奥森公园长跑的计划,先在小区内绕圈(我在地图上量了一下,一圈大概1.6公里),每次两圈。</p> +<p>多年没跑步了,以至于很多人认为我在开玩笑,孙敏慧率先在微信上狠狠讥讽了我一番(我善意的认为她也可能是出于激励我的目的),断定我不能坚持下去,我妈则担心我把本来就贫瘠的肌肉也跑掉,还有朋友劝解我不可操之太猴急,刚开始先来个几百米意思一下,以防受伤,当然更多的是给予了鼓励和关注,谢谢。</p> +<p>从生理上来说,刚开始跑唯一的感觉就是,难受和枯燥,根本没有功夫思考,所以也算放空大脑了,尤其是第一圈,还没跑完就感觉不行了,气喘吁吁,心跳加快,后来就开始能感到出汗了,先是额头渗出汗水,一会儿就被风吹干,然后再渗,身体开始出汗,秋裤开始粘上(没经验,忘脱了),最后鼻涕也出来了,就差眼泪了,于是算是半跑半走的坚持了两圈。</p> +<p>后来再跑就没那么累了,速度也比第一次快了一些,但是也不敢冒进,一旦感觉太累就停下来或者放慢速度,如果跑过某段疲劳难受的时段,甚至还感觉比较轻松。</p> +<p>从心理上来说,刚开始确实有些不太好意思,总担心给过往的司机增加心理负担,给遛狗的老人带来惊吓,或者有其他跑步的美女过来搭讪,我要是搭理她,则耽误我功夫,我要是不搭理她,她该有多没面子。</p> +<p>不过一旦跑起来就无所谓了,因为什么顾不上考虑,唯一能做的就是数自己的呼吸,或者用手机换一首更激进的歌,碰到那种软绵绵容易让人丧失斗志的歌,比如《Let it go》(放手吧),赶紧切,换成《We can&rsquo;t stop!》。</p> +<p>不管怎样,我还是尝试了去坚持,也不准备将来能跑多远,或者能跑多好,有条件就坚持下,没条件就创造条件。</p>准备开始跑步https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/Sat, 27 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%87%86%E5%A4%87%E5%BC%80%E5%A7%8B%E8%B7%91%E6%AD%A5/<p>锻炼身体的计划早已提出,也该落实下来了,趁现在温度回升、沙尘暴还没来,抓紧实施计划。除了遇到不可抗拒因素(比如恶劣天气、加班、与朋友喝小酒等),争取坚持每天跑步半个小时,我想试试。</p> +<p>选择跑步的地点确实是一件比较头疼事情,经过仔细斟酌, 初步选定三个可以跑步的地方。</p> +<p>首选是在小区里,我们小区环境还算不错,道路、绿化都比较好,一圈下来估计也有一公里,就我目前这状态,两圈已是极限,所以距离足够,但是院内小车比较密集,偶尔还有遛狗的,如果不小心可能会踩到shit。再有就是时间上不太好安排,如果早起跑步的话,需要比平时上班早起个把小时,而且据说早起跑步容易引起心脏问题,下班后到家也比较晚,无论是饭前空腹跑还是饭后跑,都不太合适。所以只有周末的时候可以在小区里跑步,那时可以合理安排时间,而且周末院内车也比较少。</p> +<p>工作日的时候可以选择在下班路上跑步,每天出了地铁之后有一段新修的公路不错,宽阔、平整、少车、安静,非常适合,唯一的问题是目前还没设置路灯,晚上黑灯瞎火的在那儿跑可能比较危险,也容易吓着路人。</p> +<p>还有一个比较激进的方案,不知道是否具有可行性,每天从公司回家的时候,乘坐8号线,在奥体公园下车,然后沿公园一直跑步,穿过森林公园,到林翠桥再上车,我在百度地图上量了一下,大概4公里,距离合适,而且环境优美,大概是最适合跑步的地方了,当然更激进的方案是沿着8号线直接跑回家,不过要是那样的话我估计还没到家我就挂了。</p> +<p>运动装备方面,跑步应该是最简单的了,一双鞋、一副耳机足矣。</p> +<p>我本来还想去网上搜索一下相关攻略教程啥的,谁知那些文章越看越闹心,无论是姿势还是穿戴,啰里啰唆,甚至还有视频教程,把简单事情弄得太复杂,索性不去管这些。</p> +<p>先跑起来再说,不用介意姿势是否正确,路线是否合适,装备是否完善,对于跑步这种原始的本能,直接跑就是了,重要的是行动起来。再不跑步就老了。</p>关于“知行合一”https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/Sat, 20 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E7%9F%A5%E8%A1%8C%E5%90%88%E4%B8%80/<p>“懂得那么多道理,却依然过不好这一生”,好像是某部电影的台词,这句话曾经击中过很多人的心底,给人一种深深的“然并卵”的无力感,以至于相当长的时间里成为流行语,但我想说的不是这个。这话题如果换成不那么文艺的说法,可以简单的总结为,很多人都不能“知行合一”。</p> +<p>知乎上曾经有人问“为什么有的人好像什么都知道,现实中却依然不能成功?”,里面有个回答特别经典,大意是,如果某件事你没有真正做到过却认为你懂了,那么你是错的。即,“做不到,就是不知道”。很多人都经历过在课堂上被老师带着做题,思路怎么捋怎么顺,感觉很简单,以为懂了,一旦需要独立完成时却发现步步维艰,殊不知自己是被老师一步一步带入到某个境界的。</p> +<p>我的微信朋友圈里有相当多的人非常热衷于转发“是男人就要做到的十二条”、“做到这三点你就牛逼了”等等一大堆心灵鸡汤,为什么为转发呢?我考虑过这个事情,原因其实很简单,因为转发者十分认可这个文章,不过自己也很难做到,但是呢,在自己转发的那一瞬,仿佛自己懂了这个道理,离做到这些仿佛近了许多,心理上得到了莫大的安慰,其实用处不大。</p> +<p>我自己也有这个毛病,每当在网上发现了比较好的知识型文章,草草的浏览一遍之后,立即点击鼠标将之迅速放入收藏夹或者印象笔记中,感觉以后肯定用得到,也肯定会在仔细学习和翻看,其实,大部分这样的文章都被永久的放在那里了,浪费了不少磁盘空间。</p> +<p>做到知行合一太难了,从古至今几千年来,做到的不过寥寥数人,但凡做到的,都十分了得,成就了名垂千古的事迹,比如明朝的王阳明,其开创的“心学”主打思想就是“知行合一”,影响了数代人,以至于民国时期那个著名的教育家在领悟到“知行合一”的能量之后,立马将自己的名字改为了“陶行知”。</p> +<p>反思一下,我们可能不需要过度的去追求懂得太多事情,可能更应该不断检视自己,能不能将自己所学所知运用到现实中,写到这里我又想到,我们学的论语第一篇,“学而不思则罔,思而不学则殆”,孔子他老人家果然看的更透彻,啥话都让他一个人说了,烦。</p>写信https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/Sat, 13 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%86%99%E4%BF%A1/<p>现在应该没有人再写信了吧,在互联网和移动通信还么有普及之前,书信一直以来都在亲友的沟通中扮演着重要角色,无论是在外漂泊的游子,还是处于热恋中的情侣,提起笔来认真写一封书信,比起现在的电子化信息,都是一件十分充满仪式感的事情。</p> +<p>书面文字比起电话里的三言两语,更显得正式一些,尤其是信里经过仔细斟酌的句子,每一个字都可能是反复推敲的结果,碰到某些段落,还会停下笔来,一手托腮,盯着烛光,沉思一会儿。</p> +<p>相对于现在随写随收的电子信息,书信的延迟反而有一种古典的韵味,一封寄出的家信可能需要数天甚至更长的时间才能收到,接到回信的时间更是难以预料,所以在寄出信封的每个日子都可以在期盼中度过。</p> +<p>由于有了信纸作为载体,书信比起一般的信息有了更多的保存价值,有时候,在回信还青黄不接的时候,还可以将以往的、泛黄的信笺抽出来反复阅读。</p> +<p>当然了,即使是在现在这个信息快速消费,比较浮躁的年代,还是可以以写信的心情去写一封电子邮件的,虽然已经没有了提笔写字的那种谨慎,虽然信纸换成了发光的屏幕,但如果能有心去认真的写一封信,那感觉想必也是极好的。</p> +<p>希望我们都能慢下来,去捡起以前的那些,有仪式感的事情。</p>老家的年味儿https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/Sat, 06 Feb 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%80%81%E5%AE%B6%E7%9A%84%E5%B9%B4%E5%91%B3%E5%84%BF/<p>希望简书能够早日提供横屏版本的app,这样用外接键盘写字就更爽了。条件有限,记录若干家乡过年的气息。</p> +<p>每逢过年都是走亲访友的密集时间,这个时候外地奔波的人们都放下手中的工作,忘记一年的辛劳,回到家乡,不顾舟车劳顿,抓紧时间与亲戚老友相约,在一起喝杯小酒,互道辛苦,推杯换盏期间,一边感慨岁月变迁,一边把脸上笑出褶子。</p> +<p>春天是个万物萌动的季节,每逢春节,都是相亲旺季,我走在人民广场,举目望去,一对对年轻人,或挽手,或并肩,有说有笑。广场的椅子在阳光下闪着柔软的光,一个春节下来,这个广场又不知成为了多少场淳朴爱情的起点。</p> +<p>孔明灯被美其名曰&quot;祈愿灯&quot;,由于没有大城市的空中管制,我们这里,每到春节的夜晚都有大量孔明灯被放飞,漫天的灯光与黑夜里的星星遥相呼应,一闪一闪,直到分不清哪些是星光,哪些是承载着人们良好愿望的灯光。</p> +<p>任何一个商场或市场都挤满了人,熙熙攘攘的人群仿佛一团带有年味的浓雾,迟迟不肯散去,价格或高或低,东西或多或少,大家都在体会一个&quot;逛&quot;字,无论有事没事,都要走到街上凑凑热闹,此时站在大街,什么都不用想,拿鼻子一闻也能知道,过年了。</p>过年的春联https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/Sat, 30 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%BF%87%E5%B9%B4%E7%9A%84%E6%98%A5%E8%81%94/<p>对过年最大的感触就是贴春联了。大年三十早上,不睡懒觉,早早的起来,吃完早饭,就开始当天最大的工程,贴春联。先仔细撕掉去年的春联,慢慢擦洗干净,涂上浆糊,再贴上新的春联,最后用手仔细抹平,那一刻真正宣告一年的结束,和新年的到来。</p> +<p>老家的风俗比较淳朴,处处要讨一个吉利,所以除了在各种门上张贴门神(或福字)和对联之外,粮仓上要贴上“五谷丰登”,院墙上要贴上“满院春光”,门口贴“出门见喜”,水井贴“细水长流”,自行车上书“日行千里”(后来改贴小汽车上了,也算是名副其实了),就连猪圈也要贴上“六畜兴旺”。</p> +<p>上面这些只能算是基础工作,最重要的是要在客厅正当中贴上“请”回来的神像,两旁对联曰“一杯美酒敬天地,三柱清香谢神灵”,横批“玉皇大帝”,然后去厨房,在灶台旁边张贴灶王爷和灶王奶奶的神像,对联“上天言好事,下届保平安”,横批“一家之主”,最后在八仙桌腿上张贴“客来家中坐,先敬茶酒烟”。</p> +<p>最后一道程序是由家中首席执行官(一般是奶奶)正式焚香敬神,同时院中点燃一挂鞭炮,整个春联工程大功告成。</p> +<p>各家各户均是如此,春联贴完的鞭炮,宣告春节活动的正式开始,从这一刻到正月初五,就算是真正的“年”,我理解的过年就是这一段时间。</p> +<p>春联可以在集市上购买,但最好是能亲自用毛笔书写,每当这个时候,村里稍微会写字的就会成为各家争先请求的对象,农村人不会对书法造诣有多高评判标准,一般能把对联写出来,看起来不难看就行,我们那边文化教育程度低,我记得小时候好像见过有人将“玉皇大帝”错写成“玉皇大地”,就当是通假字吧,跟大人说了大人也不在意,以至于后来在北京见到“上地”的地名,也本能的进行纠错。</p> +<p>我之所以对这些风俗如此了解,是因为我从能站在地上端着浆糊碗开始,就开始在过年的时候跟家人一起贴春联了,贴着贴着,春联揭了一层又一层,也贴了一层又一层,不知不觉已经是我的孩子们在旁边端着浆糊了。</p>关于内向https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/Sat, 23 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%86%85%E5%90%91/<p>我还记得上次看了一篇文章,里面讲到关于内向与外向的区别,相对比较内向的人,往往需要通过一个人独处来恢复精力,就像给手机充电一样,而外向的人不同,他们需要通过参与各种社交活动来获得精力,就是越玩越嗨的那种。内向的人往往都有丰富的内心世界,更加热衷于追求精神层面的快乐,而非物质享受,喜欢简单低调,而不是复杂奢华。</p> +<p>以我的了解来看,内向的人往往都会有一些社交障碍,与人沟通或者交流的时候存在困难,但这不算事多严重的问题,通过练习还是可以改进的,不会因此而做不好事情,但是无论如何,受性格的影响,要达到相同的沟通或社交效果,内向的人需要消耗更多的能量。</p> +<p>所以对于我们来说,重要的是要找到适合自己的充电方式,比如周末的下午,如果阳光很好,坐在沙发上一边晒太阳一边发呆,或者看一本书,或者看一部电影。可以放空大脑,放松心情,让自己静下心来,对于我来说这就是最好的休息。</p> +<p>当然,我们喜欢思考,喜欢幻想,我很享受那种&quot;身未动心已远&quot;的感觉,很多人喜欢旅行到处看风景,认为&quot;读万卷书不如行万里路&quot;,我对此持谨慎保留态度,我觉得如果没有经常思考的习惯的话,跑遍全球你还是你,天天在拉萨呆着你的灵魂也不会得到净化(你的脸反而会晒黑)。</p> +<p>我们不愿意跟很多人对话,或者说接触,那是因为我们不想做没有深度的交流,我们的好朋友都是那种可以就着一个话题而进行彻夜长谈的人,而且当进行这种深度交流的时候,我们的幸福感爆棚。</p> +<p>但总的来说,人都是生而孤独的,无论内向还是外向,终其一生都无法摆脱因孤独而产生的孤独感,所谓内向与外向的区别,只不过是大家在面对孤独的时候,所采取的应对方式不同,而已。</p> +<p><em>希望简书快点推出支持横评的app,这样用外接键盘打字就更爽了</em></p>说一说《大话西游》https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/Sat, 16 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E8%AF%B4%E4%B8%80%E8%AF%B4%E5%A4%A7%E8%AF%9D%E8%A5%BF%E6%B8%B8/<p>在演艺圈里,如果我还能有一个偶像的话,那就是周星驰了。两个原因,一个是《喜剧之王》,另一个是《大话西游》。</p> +<p>我不知道我的朋友里面有多少喜欢《大话西游》的,但是我大学的几个好哥们,个个都很迷恋这部电影。</p> +<p>《大话西游》据说是95年拍的,然后又过了5年才火的,那一年我正好去大学,刚好网络开始普及,跟同学去网吧的时候,我把这部电影看了大概三十遍,那个时候我们寝室哥儿几个,基本上都把台词背了下来,吃饭的时候,你说上句,我就能接下句。</p> +<p>其实在此之前大概98年99年的时候,我就看过这个电影,还是在老家看的盗版VCD,当时没看懂,而且碟子划伤严重,断断续续,感觉乱七八糟的,剧情也衔接不起来,一直笑的比较勉强,就是不知道为什么,看到结尾的时候,有一种莫名其妙的难过。然后也没有多想,就忘了。</p> +<p>后来在大学才又得机会,终于完完整整的看了上下集,我们才看明白,原来这是一个跟西游记没有任何关系的故事,讲述了一个哥们从放浪不羁到充满责任心,然后缓慢被无聊的现实所阉掉的故事。桥段都比较有趣且非常耐人寻味,看似无厘头的搞笑,却蕴含着让所谓影评人所不齿的深意。</p> +<p>这部电影很长,完全颠覆了西游记原著里面的设定,唐僧变成了一个整天唧唧歪歪啰里啰唆的人,徒弟几个也不再是神通广大,而是个个心怀鬼胎、不讲义气。与之相反,白晶晶等各种妖精反而变得有情有义,因为各种机缘巧合,与剧中的主人公“至尊宝”产生了感情。“至尊宝”本来做着一份很有“前途”的职业&mdash;&mdash;“山贼”,而且手下还有一群不知道讲不讲义气的兄弟,无奈导演安排,上天给了他一份使命,需要成为齐天大圣,保着唐僧去取经。然后,让他先以为爱上了白晶晶,为了挽救心上人被牛魔王杀害的这个结局,通过月光宝盒向前穿越了五百年的时间,却“再”遇到紫霞仙子,那个在他心里留下一滴眼泪的人。</p> +<p>剧中的每个人都有自己的追求,但结果却都是背道而驰,正像陈世骧先生和夏济安先生总结《天龙八部》那样“有情皆孽,无人不冤”。</p> +<ul> +<li>主人公一心想当山贼,最后像狗一样去取经了,没当成;</li> +<li>二当家一心想取代主人公,被看穿,也没当成;</li> +<li>牛魔王一心想跟紫霞成亲,无奈人家不从,反而导致被孙悟空干死;</li> +<li>小妖只想做好本职工作,把唐僧吊死,无奈被唐僧先啰嗦死了;</li> +<li>白晶晶爱上了至尊宝,无奈最后要结婚的时候被紫霞的眼泪吓跑了;</li> +<li>紫霞幻想着心上人有一天会踩着七彩祥云来娶她,可是猜中了开头,却没猜中结局;</li> +<li>青霞跟紫霞斗了一辈子,最后一刻为紫霞献身了;</li> +<li>杨二郎的哮天犬一心想为主人立功,却因为动了凡心被炖了;</li> +</ul> +<p>每个人看完这部电影都会有自己的理解,把自己想象成为那个主角,在同情主人公的遭遇的同时,也在安慰自己。正是因为这样,它才让人产生共鸣和思考,我们应该思考什么,有人说:“每个人现在拥有的,可能就是别人奋斗一生梦寐以求的”,然而,在明白了那么多道理以后,我们却还是想反抗,想尝试,不安,并去追求自己的目标,虽然结局是固定的,但毕竟经历过那么多的曲折和精彩,可能也值了。我觉得这也是这部电影所能表达的积极的一面。</p> +<p>就像老一辈喜剧人陈佩斯说过的那样,喜剧的内核都是悲剧,表面上越是喜剧,内在里越是悲剧。有网友评论,看完《大话》笑了,说明你没看懂,看完哭了,还是没看懂,看完怔在那里,明白了造化弄人、世事无常,才是真的懂了。</p> +<p>电影里的原声音乐都很好,尤其是最后紫霞说“我猜中了开头,却没有猜中结局”时的配乐,简直太贴切了,我后来找了很久才找到。</p> +<p>为了防止剧透,此处删去五千字。好的电影常看常新,如果没看过的,我建议你看一下,说不定就能在里面找到你自己。</p>如何更高效的使用你的电脑https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/Sat, 09 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E5%A6%82%E4%BD%95%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E7%94%B5%E8%84%91/<p><em>最近有人看我操作我的电脑,觉得整理的很整齐、很干净,能够高效地工作,并表示希望自己的电脑也能这样,我想了一下,决定利用自己的一些闲暇时间,我也整理一下思路,将自己在使用电脑时的一些“好习惯”分享出来,希望对你们有帮助。</em></p> +<p>##硬件</p> +<ul> +<li>首先,在硬件上,不用对CPU和硬盘容量要求太高,这两个东西目前的配置都是过剩的,如果有条件,建议你使用固态硬盘,内存则是多多益善,买你能买的起的最大的内存(摄影圈有句话,叫“买你能买的起的最贵的镜头”)。如果没有也没关系,现在随便一台电脑的配置都足够用(非专业工作或大型游戏,<em>打游戏的,你直接买xbox多好,一块显卡的钱就够了,而且体验还远超家用PC</em>)。</li> +<li>如果你说你有大量电影要存储,首先这不是好习惯,其次如果非得这样的话,请另外配置一个家用NAS,比你PC上的硬盘靠谱。</li> +</ul> +<p>##操作系统</p> +<ul> +<li>不要盲目崇拜Mac系统,如果你不是从事艺术、设计类工作,请老老实实使用Windows操作系统,建议使用Win8.1版本,那些Win7的死忠粉估计是真没用过8.1(同样的硬件配置,8.1比7跑的快又稳),Win10目前存在硬件兼容性问题,估计还得再等等才能使用</li> +<li>别再用Xp了,求你了,Xp上的IE浏览器顶多升级到8.0,你知道这给我们的前端开发带来多大的工作量浪费吗,整天兼容来兼容去的,为了祖国的发展和程序员的健康及家庭和睦,请升级你的操作系统</li> +</ul> +<p>##基础习惯</p> +<ul> +<li>不要安装任何杀毒软件,包括各种助手、管家、防火墙,不要被他们给你的错误安全感所洗脑,觉得你的电脑到处充满了病毒和危险,以及动不动就清理垃圾、整理内存、监测网速,完全没必要,让他们统统去死,windows自带的防火墙和杀毒防御足够用了。</li> +<li>不要关闭UAC,Xp以上的系统,带有一个用户体验很不好的功能,即如果有软件尝试高权限操作时(比如偷偷安装东西),windows会弹出一个警告界面让你选择是否继续,这个功能很有必要,尤其是现在很多流氓软件的情况下,但是很多人为了图省事儿,把他关了,后来就出现了自己明明啥也没动,一些流氓软件还是自动装上了的情况。</li> +<li>保持桌面的整洁,最好一个图标也别留,这样心情好,心情好了干活效率也就高了</li> +<li>如无必要,不要额外安装任何软件,只保留基本的办公软件和浏览器、音乐视频播放等就行了</li> +<li>安装一个靠谱的浏览器,建议是谷歌浏览器,或者火狐也行,开通云同步功能,这样收藏夹就不会丢了</li> +<li>系统自带的微软拼音输入法就很好用了,别安装其他输入法了(如果你还在用五笔,前辈,请受我一拜)</li> +<li>不要爱惜你的电脑,放心大胆的整,犯的错多了你就老实了</li> +</ul> +<p>##进阶篇</p> +<ul> +<li>固态硬盘不要分区,分区为了数据安全的想法已经过时了,要淘汰这种老思想</li> +<li>普通硬盘可以考虑分一下,将不同类型的文件按分区或文件夹归类,比如系统一个区、工作一个区、数据档案一个区</li> +<li>给自己的当前工作建立一个TODO文件夹,里面放需要解决和处理的文件或工作过程中的文件,但是一旦完成此项工作后,记得及时归档保存。</li> +<li>关于文件夹命名和文件命名,要尽量有意义,尽量长一些,别出现“新建文件夹13”这样的,会给将来的检索带来极大干扰</li> +<li>按照项目整理文件,而不是按照文件类别</li> +<li>使用云盘(推荐360网盘)保存备份你的数据,不用担心隐私问题,互联网时代没隐私</li> +<li>整理、善用你的浏览器收藏夹,这样省得每次都输入网址</li> +</ul> +<p>##大师篇</p> +<ul> +<li>如果你有秘密数据,我推荐一款软件TrueCrypt,可将文件加密后再备份,不过据说这个软件的加密算法被美国FBI破解了,不过你那点儿数据也犯不着动用FBI</li> +<li>有一款软件叫Everything,查询文件速度极快,如果你的文件命名比较有意义的话,可以快速搜索到,当然如果你都放在云盘了,云盘自身的搜索也很不错了。</li> +<li>善用快捷键,先说这些简单的吧 +<ul> +<li>Win+L,锁屏</li> +</ul> +</li> +<li>Win+E,资源管理器</li> +<li>Win+Q,快速检索应用或文件</li> +<li>Tab键是可以将光标跳转到下一个输入框,但是可能很少有人知道Shift+Tab是跳转到上一个</li> +<li>Win+1、2、3、4、5等,可以快速启动你锁定在任务栏上的应用</li> +<li>Win+X,进入最快捷的系统菜单</li> +<li>Win+C,另一个快速菜单,可以快速设置、关机等等</li> +<li>Win+D,快速回到桌面</li> +<li>PrintScreen,截屏,Alt+PrintScreen截屏当前活动窗口</li> +</ul> +<h2 id="丧心病狂篇">丧心病狂篇</h2> +<ul> +<li>善用Win+R(运行),直接启动各种程序</li> +<li>输入calc,启动计算器</li> +<li>输入mspaint,启动画图板</li> +<li>输入excel,启动excel</li> +<li>输入winword,启动word</li> +<li>输入cmd,启动命令行控制台(这个回头单聊吧)</li> +<li>输入services.msc,启动服务管理界面</li> +<li>输入gpedit.msc,启动组策略管理器</li> +</ul> +<p>##省事儿篇</p> +<ul> +<li>找一个像我这样的朋友,请他吃饭。</li> +</ul> +<h3 id="最近比较忙先写这么多想到再补充">最近比较忙,先写这么多,想到再补充。</h3>我坐在客厅的沙发上打字https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/Mon, 04 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%9D%90%E5%9C%A8%E5%AE%A2%E5%8E%85%E7%9A%84%E6%B2%99%E5%8F%91%E4%B8%8A%E6%89%93%E5%AD%97/<p>我坐在客厅的沙发上</p> +<p>将我的手机支起来</p> +<p>晒着太阳</p> +<p>用小键盘打字</p> +<p>感觉美美的</p> +<p>想着你在哪里</p> +<p>是不是也和我一样</p> +<p>面带微笑</p>推荐几个我经常去的网站https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/Sat, 02 Jan 2016 00:00:00 +0000https://sbabybird.github.io/p/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E6%88%91%E7%BB%8F%E5%B8%B8%E5%8E%BB%E7%9A%84%E7%BD%91%E7%AB%99/<p><em>推荐一些我经常去的网站吧,可能比较偏向技术宅。</em></p> +<h3 id="0技术类">0、技术类</h3> +<ul> +<li><a class="link" href="http://stackoverflow.com/" target="_blank" rel="noopener" +>http://stackoverflow.com/</a> 根据名字(栈溢出)就知道这是一个程序员相关的站点,之所以把它排在第一位,是因为它基本上是程序员每天必上的网站,各种编程问题如果在这个站上找不到解决办法,那几本上可以宣告在互联网上找不到答案了。即使没有遇到问题,也可抽时间浏览一下当前热门的问题,碰上自己能回答的,也别吝啬,热情回馈一下吧,据说很多国外公司在面试程序员时,在stackoverflow上回答的问题质量也是一个评价指标。</li> +<li><a class="link" href="https://github.com/" target="_blank" rel="noopener" +>https://github.com/</a> 世界最大开源社区,免费送你版本控制空间,可玩性很高,连微软等大公司也将自己的开源代码放在上面托管,牛人很多。想要成为牛人?先在github上follow那些牛人吧,看看他们在做什么项目,在写什么样的代码。</li> +<li><a class="link" href="http://news.ycombinator.com/" target="_blank" rel="noopener" +>http://news.ycombinator.com/</a> hackernews,《黑客与画家》的作者,硅谷著名孵化器创始人ycombinator创建的站点,很多科技创业项目首选的推广平台,此网站乍一看很粗糙,但是干货很多,经常有大神级牛人在上面发布作品。</li> +<li><a class="link" href="http://news.dbanotes.net/news" target="_blank" rel="noopener" +>http://news.dbanotes.net/news</a> 上一个网站的国内版,中文,国内著名DBA冯大辉创建,质量虽不比hackernews,但可以了解国内的技术形式。</li> +<li><a class="link" href="http://geek.csdn.net/" target="_blank" rel="noopener" +>http://geek.csdn.net/</a> 国内著名程序员网站CSDN出品的hacknews,文章质量良莠不齐,偶有精品,可以偶尔上去看看。</li> +</ul> +<h3 id="1学习提升">1、学习提升</h3> +<ul> +<li><a class="link" href="http://study.163.com/cloud/myCloudClass.htm#/cloudClass/index" target="_blank" rel="noopener" +>网易云课堂</a> 说网易为中国互联网的良心一点儿都不过分(百度去死去死),云课堂内容质量非常高,基本上可以做到足不出户读完各种大学,另外网易还翻译了很多精彩的TED演讲视频,TED爱好者的福音。</li> +<li><a class="link" href="http://www.imooc.com/" target="_blank" rel="noopener" +>慕课网</a> 免费学习各种IT技能,前端、后端、设计、架构等等,基本上如果你愿意学,可以自学成为全栈工程师,那些整天嚷嚷着就差一个程序员了的创业团队,上去看看吧。</li> +<li><a class="link" href="http://www.codecademy.com/" target="_blank" rel="noopener" +>Codecademy</a>在线学习编程网站的鼻祖,以前我Js和Python就是在这上面学的,艺不压身,多掌握基本语言吧,每个语言都代表一种编程思想。</li> +<li><a class="link" href="http://www.gogoup.com/" target="_blank" rel="noopener" +>高高手</a> 这家教Photoshop、设计和摄影,比蓝翔还要好。</li> +</ul> +<h3 id="2视野">2、视野</h3> +<ul> +<li><a class="link" href="http://www.zhihu.com/" target="_blank" rel="noopener" +>知乎</a> 不要多上,否则容易产生你掌握很多知识的错觉,佛家说,贪恋知识也是一种“贪”,但是确实可以开阔视野,增长见识,适可而止。</li> +<li><a class="link" href="http://www.quora.com/" target="_blank" rel="noopener" +>quora</a> 知乎就是模仿的它,问答质量非常高,但里面也充斥着各种鸡汤,如果想练习英文阅读能力,可以尝试一下。</li> +</ul> +<h3 id="3音乐">3、音乐</h3> +<ul> +<li><a class="link" href="http://ear.duomi.com/" target="_blank" rel="noopener" +>邻居的耳朵</a> 一篇美文配一首好歌,能让你经常发现以前错过的好歌。</li> +<li><a class="link" href="http://www.rainymood.com/" target="_blank" rel="noopener" +>rainymood</a> 这个网站只有一个功能,就是播放下雨的声音,催眠最佳。</li> +<li><a class="link" href="http://www.audiobar.net/forum.php" target="_blank" rel="noopener" +>音频应用</a> 国内第一的录音论坛。</li> +<li><a class="link" href="http://music.163.com/#" target="_blank" rel="noopener" +>网易云音乐</a> 不多说了。</li> +<li><a class="link" href="http://www.exound.com/" target="_blank" rel="noopener" +>叉烧网</a> 音乐器材是一个跟单反一样的不归路。</li> +</ul> +<p>###4、美图</p> +<ul> +<li><a class="link" href="http://500px.com/" target="_blank" rel="noopener" +>500px</a> 高质量图片网站,很多摄影师在上面出售作品,做PPT时用的到</li> +<li><a class="link" href="https://www.pinterest.com/" target="_blank" rel="noopener" +>pinterest</a> 图片网站,瀑布流图片站的鼻祖,做PPT时用得到</li> +</ul> +<p>###注:有些网站可能需要翻墙才能上。</p>2015年的个人总结https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Sat, 26 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/2015%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>按照惯例,工作总结写完了,可以开始写个人总结了,只总结与工作无关的。</p> +<p>0、家庭</p> +<ul> +<li>按照年初的预定目标,要抽出更多时间跟家人一起,基本也实现了,比如陪赵老师逛了两次街(元旦和年末各一次),虽然全程一脸无奈、两股战战几欲先走,但也算破了纪录了,我还总结了一个技巧,只要赵老师试衣服,我就在旁边说:“哎呀,这衣服穿上没腰啊”,不一会儿赵老师就让我一边儿歇着了,后来我还为她写了首歌,叫《一千个买鞋的理由》;</li> +<li>儿子在我的引导下,现在每周都会用英文给我写一封信,写在纸上用手机拍了发给我,每一封开头的“Dear Dad”看着都很是让我有些小激动,我基本都能做到认真点评且鼓励为主,偶尔碰到不熟悉的单词,我还得查查再回复。只是他性格有些自闭,跟我小时候差不多,不擅长表达内心真实的想法。</li> +<li>女儿成长很快,今年入小学没少让我以及周围的朋友费劲(感谢大家),但好在最终还是如愿以偿,我也尽量在周末多抽出时间来陪她,不过她也越来越大了,心思也多了,现在我一下班,她已经不再冲出来抱着我的小腿坐在皮鞋上跟我说“爸爸你回来啦,爸爸我好喜欢你啊”了(那时她特别像《卑鄙的我》里的那个最小的小女孩)。一想到将来会有那么一天,她推开家门扯着一个男生的手,对着坐在沙发上抽烟的我说:“爸爸这是我男朋友”时,我就心碎(赵老师评论,如果到30岁还没有,你更心碎)。</li> +<li>父母正在慢慢苍老,不过心态还算年轻,今年暑假仍然过来检查了我的工作,相聚时间虽然不长,加上今年我中间又多回老家了几天,也算是响应国家号召,常回家看看了。我虽不爱打牌,但仍然坚持陪二老斗地主,无奈水平太次,每次都被我爸赢个精光。我爸控制欲极强,我说我周末吃饺子,他遥在千里之外还打电话跟我说,如果吃猪肉大葱馅的,以我的量,剁馅儿的时候必须只能放一根葱“那样剁出的馅儿才最好吃”。我虽心里呵呵,但嘴上还是像乙方对待甲方那样深表同意。</li> +<li>十一的时候,跟妹妹约定,她从深圳,我自北京,携家人在鸡公山顺利会师,一起游玩了几天,她还千里迢迢给我带了自酿的红葡萄酒,一喝上瘾,后来我自己也在北京酿了十来斤,无奈第一次制作,缺乏经验,口感偏酸,就没有好意思拿出去给朋友品尝,我自己受累都喝完了。</li> +</ul> +<p>1、健康,我的体重如愿增长了约3公斤,达到了历史新高度,67公斤(冬天、棉衣),上次去买衣服时惊喜的发现腰围已增长至二尺五。但明显缺乏锻炼,精力也不如以前,目前已经认识到问题严重性,虽然没法跑步,但准备多做家务(比如拖地),多走路少坐车,饮食规律、睡眠规律,将锻炼身体正式提上日程。</p> +<p>2、电影,今年还是看了很多不错的电影,有的在影院,有的在网络上看的,如果非让我给个排名的话<a class="link" href="http://movie.douban.com/subject/25773932/" target="_blank" rel="noopener" +><em>《爆裂鼓手》</em></a>应该是在第一位,明显是拍给“不疯魔不成活”的孤独者看的。<a class="link" href="http://movie.douban.com/subject/11584019/" target="_blank" rel="noopener" +><em>《海洋之歌》</em></a>是我近年来、乃至建国以来看过的最优美的动画片(又是爱尔兰这个忧郁的民族拍的),略伤感,但是每首配乐都可以单曲循环,每个画面都可以截图然后冲印挂墙上。<a class="link" href="http://movie.douban.com/subject/6985803/" target="_blank" rel="noopener" +><em>《少年斯派维的奇异旅行》</em></a>是一部意外惊喜,讲述一个天才少年走出误伤弟弟的心理阴影的过程,反正也是各种优美,适合某个周日的下午躺沙发上安静观赏。看过的新科幻大片反正就那么些,乏善可陈,倒是有一些科幻小制作非常出彩,比如<a class="link" href="http://movie.douban.com/subject/6722879/" target="_blank" rel="noopener" +><em>《她》</em></a>、<a class="link" href="http://movie.douban.com/subject/24696982/" target="_blank" rel="noopener" +><em>《I型起源》</em></a>等等。还有一些略文艺的比如<a class="link" href="http://movie.douban.com/subject/3991933/" target="_blank" rel="noopener" +><em>《深夜食堂》</em></a>、<a class="link" href="http://movie.douban.com/subject/1296778/" target="_blank" rel="noopener" +><em>《一树梨花压海棠》</em></a>等。国产电影中只有<a class="link" href="http://movie.douban.com/subject/25964071/" target="_blank" rel="noopener" +><em>《夏洛特烦恼》</em></a>留下深刻印象,其他一概不记得,这就是拍给我们80后看的,全程无尿点,悲剧的内核喜剧的外表,看的时候可以放心的抹眼泪,因为别人也不知是不是笑出来的。(写到这里我突然发现,明年需要降低电影预算,拨给读书)。</p> +<p>3、音乐,自从豆瓣FM下架了很多我收藏的红心歌曲后,我基本上就只用“网易云音乐”了,重新捡起了上班路上插着耳机听歌的习惯,以前总不舍得用耳朵,怕听伤了,后来想通了,和XX一样,有些事情是不能攒到老年时再做的。而且现在没那么挑剔了,苹果原装的耳塞就足矣,返朴归真了。(写到这里想起一个笑话,有一天早晨起床后发现有一只耳机不响了,后来大夫告诉我是右耳聋了,吓了我一跳,我还以为耳机坏了)。</p> +<p>4、看书,基本上都是在地铁上断断续续看的,比较有印象的有<a class="link" href="http://book.douban.com/subject/10785583/" target="_blank" rel="noopener" +>《思考,快与慢》</a>、<a class="link" href="http://book.douban.com/subject/4187411/" target="_blank" rel="noopener" +>《万物有灵且美》</a>、<a class="link" href="http://book.douban.com/subject/20452058/" target="_blank" rel="noopener" +>《The Nature of Code》</a>、<a class="link" href="http://book.douban.com/subject/1941558/" target="_blank" rel="noopener" +>《设计中的设计》</a>、<a class="link" href="http://book.douban.com/subject/26364209/" target="_blank" rel="noopener" +>《那些古怪又让人忧心的问题》</a>等等。看的比较杂,这些书基本上都可以开拓视野促进思考。比较实用的是我在年末的时候看了一本关于领导技能的书&mdash;-<a class="link" href="http://book.douban.com/subject/24371531/" target="_blank" rel="noopener" +>《周一清晨的领导课》</a>,感觉受益匪浅,书名虽然起的有些鸡汤,但是内容确实不错,对于中层领导解决在管理团队时存在的问题确实很有帮助,目前还没看完,我准备实践一下(知行合一),我身边的人,无论是不是要搞管理,我都准备向他们隆重推荐这本书。另外我在kindle上又看了两遍南怀瑾大师的<a class="link" href="http://book.douban.com/subject/1421659/" target="_blank" rel="noopener" +>《金刚经说什么》</a>,虽然看不太懂,但还是深深体悟到了什么叫“念念不忘,必有回响”。</p> +<p>5、其他,今年还是经历了很多,其中有很多意外的美好,也有痛苦的体会,但总的来说,还是好的,思想上有进步,心态也比较平和,不会为琐事计较,进一步明确了“助人为快乐之本、创造是幸福本源”的价值观,能够以比较积极的心态看待问题,乐善好施,更喜欢跟朋友聊天,尤其喜欢传递给周围的人快乐和正能量(承蒙大家错爱,无以为报,而且我觉得这也是“善”的一种)。</p> +<h3 id="对于未来的期望我考虑了一下有这几点">对于未来的期望,我考虑了一下,有这几点:</h3> +<ul> +<li>努力去创造美好;</li> +<li>发现更大的世界;</li> +<li>用心体验生活;</li> +<li>奉献,带给他人快乐,即善;</li> +<li>负责,承担责任与使命;</li> +</ul> +<p>具体点儿来说:</p> +<ul> +<li>对技术的热情不能消减,没有时间即使是挤时间也要坚持学习新技术,创造美好的事物;</li> +<li>坚持知行合一的理念,看再多的书和文章也不如真正去实践;</li> +<li>有意识的提升管理和自我管理能力,阅读管理书籍,并在现实中运用,坚持PDCA;</li> +<li>适量扩大社交圈,好朋友要常联系、常来往,缩小关注范围,降低信息噪音;</li> +<li>多做好事,以助人为决策标准,帮助他人成功;</li> +<li>锻炼身体,多做家务,多陪家人,即“负责”;</li> +<li>慢下来,尤其是在做决策时,需要认真考虑和分析,始终坚持原则与最初的目标定义,也是“负责”;</li> +</ul>我喜欢的段子,在2015https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/Sun, 20 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/%E6%88%91%E5%96%9C%E6%AC%A2%E7%9A%84%E6%AE%B5%E5%AD%90%E5%9C%A82015/<p>幽默不是对什么都不在乎,相反,幽默的人都很认真,而且需要勇气,一个敢于自黑的人一定是睿智又自信的。</p> +<p>能理解幽默的人,也一定是一个有趣的人,感谢那些幽默的段子手,使我在工作之余得到放松,下面是微博网友在2015年收集的一些网络段子,分享给大家,我已经主动过滤了一些低俗没品的(列位如果谁有需要请私下联系,反正我也没有)。</p> +<p>0、我这辈子最重要的三点是:岁月安好、懂得感恩、与你相随。总的来说就是 Fine,thinks and you。(@大哥王振华)。</p> +<p>1、世界五大王牌情报组织:CIA(中情局)、KGB(克格勃)、MOSSAD(摩萨德)、MI6(军情六处),BJCYQZ(北京朝阳群众)(@警察蜀黍)。</p> +<p>2、一个简易的提升逼格的方法:如果你愿意,你可以在简历上写自己是美国时代周刊2006年度人物,曾获2008年感动中国组委会特别大奖。不用担心吹牛被捉,因为这两年的获奖者分别是“everyone”和“全体中国人”(@英式没品笑话百科)。</p> +<p>3、遇见一个中国导游,他说从前最头疼的,就是带大团游客到处乱走,必须不停点人头回去找,不然很容易散。但现在他弄了一个随身wifi,免费提供给团员连接。从此游客们都紧紧跟着他,亦步亦趋,生怕离远了没信号,再也不担心队伍走散了。(@马伯庸)。</p> +<p>4、女孩喜欢男孩,每晚都和男孩聊天。可男孩要么半天回一句,要么干脆不理。女孩依旧主动着。终于在某一天,男孩突然回的很快,高谈阔论。女孩感动,努力终于没有白费,鼓起勇气问:“你终于对我有感觉了吗?”男孩淡淡地说:“不是呀,今天刚刚把三星手机换掉了。”(@福大校长)。</p> +<p>5、朋友说:“油价不能再跌了,要不只剩下税了!”(@傅蔚冈)。</p> +<p>6、黄晓明是一个青岛人,婚礼却在上海办,可见家乡的酒席是有多贵。。。(@江上渡)。</p> +<p>7、弟弟带了一群朋友回家吃饭,一会儿弟弟神神秘秘的到厨房对做饭的妈妈说:“这里面可有一个是你未来的儿媳妇。”妈妈头都没抬,说:“是穿白色裙子的那个吧。”弟弟惊讶的说:“妈,您真神了,怎么看出来的?”妈妈淡淡的说:“因为这些人里面我最烦的就是她。”</p> +<p>8、母语就是数钱的时候心里念的语言。(@laoyang945)。</p> +<p>9、晚上和女朋友吃完饭,我说:“待会儿把碗刷一下。”她说:“你自言自语的声音怎么这么大?”(@柳三便)。</p> +<p>10、刚才我女人在弄新买的面包机。她把内胆洗干净以后让我擦干,说:“你要擦得很干,一点水都不能有。要不然面包就做不好。”然后我死命擦了五分钟,里里外外都没有一丝水迹。接着她开始放配料。第一步,加入70毫升水。。。(@段子楼)。</p> +<p>11、印度舞蹈的精要是左手向下拍小狗,右手抬起拧灯泡,脚步动作是一边踩缝纫机,一边打转。</p> +<p>12、小时候每当我生病,母亲都会为我冲一杯咖啡,她温柔地说:“外国人都喝这个的。”幼小的我总是害怕咖啡,酸甜苦涩交错。如今我走遍米萝、上岛、星巴克都找不到小时候喝的那个味道,直到那天我喝了一杯板蓝根&hellip;&hellip;.(@张大进就是我)。</p> +<p>13、最近小区广场舞大妈们都不跳了,问下邻居大妈怎么不跳了,是不是感觉扰民不好意思了。大妈说:“不知道谁家的孩子穿个红肚兜,我们一跳他就在前面说,孩儿们操练起来!”</p> +<p>14、朋友家孩子满月,我用EMS给孩子快递了一份礼物。收到快递后,孩子高兴地打电话对我说:“谢谢您的礼物,我非常喜欢”(@剑神葡萄)。</p> +<p>15、唐僧师徒四人正在吃饭,突然“轰隆!”一生巨响,吓了大家一跳,唐僧抬眼望了望,指着山下修路炸碎的石头说:“悟空,你妈生二胎了。”</p>可能要用一辈子时间去学习https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/Sun, 13 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%8F%AF%E8%83%BD%E8%A6%81%E7%94%A8%E4%B8%80%E8%BE%88%E5%AD%90%E6%97%B6%E9%97%B4%E5%8E%BB%E5%AD%A6%E4%B9%A0/<p>完成自定的作业,想到哪儿是哪儿。</p> +<p>说说“学习”本身,它可以是一种行为,也可以是一种态度。狭义上来说,“学习”可能指的是习得某种技能的手段,广义上来说,获取或领悟任何知识的过程都算是“学习”。</p> +<p>#“好奇” +对这个世界强烈的好奇心应该是最原始的学习动力了,大家小的时候都有很强烈的好奇心,那个时候世界充满了未知和不可预测,晚上没太阳的时候向日葵怎么办、天上的星星会不会掉下来、校长是不是不上厕所、电视机关了之后里面的人去哪儿了,等,很多事情等待我们去探索。等到这些事情有了“答案”,我们也长大了,老了,对很多事情不再感到好奇了,我们可以使用表情符号聊天、会通过微积分求曲面的面积、可以制定很详尽的工作计划并跟踪、知道计算机从按下电源开关后里面发生的一切事情不过是一堆二进制在流动,我们以为世界就是这个样子了,并号称树立了完整的世界观。</p> +<p>回顾人类文明的进程,现在的人类并不是最聪明的,或者很聪明,但是智慧不足,因为我们现在所做的事情,发出的那些看似看明白的感悟,最终发现都是古人考虑n遍以后剩余的思想渣渣,不信你去看看《道德经》。</p> +<p>所以,我不能被自己所谓的“世界观”所束缚,在想明白上述事情之后,我觉得我还是要在可控的范围之内保持好奇心,以及对未知的敬畏之心。(所谓可控的范围,是比如上次我去看耳鼻喉的医生,就想问一下我的鼻中隔偏曲是不是跟挖鼻屎有关,我怕他让我转到精神科,还是忍住了。)</p> +<p>#“求知” +多看书应该是最好的方法,所谓开卷有益一点儿也没错,现在大家都抱怨没有时间,实际上是一个伪命题,我们只是把时间用在了很多无意义的事情上,比如发呆、不断在手机上刷那些不痛不痒的新闻、主动看烂片等,这个时候脑子就在空转,时间久了就会引起各种问题,比如信息的碎片化导致根本无法长时间集中注意力,比如对于大量信息带来的焦虑,甚至感到“迷茫”,哈哈,很多人的迷茫其实就是因为这个导致的,静下心来看书就能解决。</p> +<p>上网去探索信息也可以,但是分内容的优劣,我觉得新闻类的几乎可以不看,重点关注一些与你相关的即可,可以去找一些不错的博客来看,具体内容根据个人喜好来定,比如我比较喜欢看一些技术类博客,很多博主写的都比较有深度,我以前喜欢使用谷歌的Reader阅读器来订阅博客,后来谷歌把它关了,没有更好的客户端了,好在现在移动端也有很多不错的订阅客户端(推荐“即刻”,鄙视“今日头条”)。</p> +<p>仅仅停留在信息获取上是远远不够的,网络在带来便利的同时,有一个很大的副作用,就是使我们失去行动能力,我们在硬盘上收集大量的资料,收藏很多篇非常认同的文字,沉浸在朋友圈分享的各种技巧里,就是懒得抬手去验证一下(这一段可以谱曲唱了)。我们很容易就能知道TCP的三次握手,也知道现代大数据的处理都基于Map Reduce思想,当我们看了一两篇文章之后甚至开始沾沾自喜,仿佛已经成了该领域的专家。孔子和孟子都说过“学习东西最糟糕的方法就是看很多书、听很多讲课、看很多视频,而不亲自动手去试一下”,创立了伟大心学的王阳明也说过“知行合一最牛掰”。所以亲自动手试一试,将领会的思想运用在现实中还是很有必要的。</p> +<p>#“创造” +这个世界上获取快乐的方式有很多,但是获得幸福的方法只有一个,那就是“创造”。消费东西很容易带来短暂的快乐,比如女生买包、男生买车,当时很爽,但只是暂时的,保持持续的幸福感就是不断去创造,不一定非得创造出实物,因为创造的过程本身就是快乐的,可以是写一首歌,一篇文章,一段代码,制造一段美好回忆等等,说到这里我突然想到那个只想当木匠的明朝皇帝,哈哈。</p> +<p>因为“创造”本身是只有智慧生命才具有的能力,所以我们才因为创造而感到幸福,再说远一点儿,宇宙本身是一个“熵增”的过程(我靠好高深),而“创造”恰恰是将“无序”变为“有序”的逆过程,可能这种叛逆感才是让我们感到很爽的原因吧。</p> +<p>#“坚持” +最近我一直在挑战自己,坚持了一些创造的习惯,简单的事情坚持下来应该也是一件伟大的事情吧,所以写到最后,我突然想起几年前的某个周末,我坐在马桶上,捧着一本《万物简史》,一边感叹宇宙的神奇,一边埋怨自己买书如山倒,看书如抽丝。然后,突然就像当年的须菩提那样,非常虔诚地,由衷地发起了一个愿望&mdash;-我要用一辈子的时间去学习。遂将我的签名改成了“好奇”、“求知”、“创造”,这三个词后来基本上作为我以后的衡量做一件事是否有意义的准则了。</p> +<p>###考虑到不违反最新的广告法,我谨慎地将文章标题前加了一个“可能”。</p>life-is-shorthttps://sbabybird.github.io/p/life-is-short/Sun, 06 Dec 2015 00:00:00 +0000https://sbabybird.github.io/p/life-is-short/<p>工作总结写的头昏脑涨,换换脑子。</p> +<p>每年的这个时候最容易引发各种感慨,年底,除了工作上需要总结之外,生活上也应该进行一次梳理,回顾这一年的体验,感受了多少幸福,经历了哪些痛苦,吃了什么,玩了什么,读了什么,写了什么,看了什么,听了什么,喝过几次断片儿,摔了几个手机,额。</p> +<p>可以总结,但不要陷入对回忆的感慨,应该以积极的心态去整理。现在流行一种病,缅怀青春,而且怀起来各种哀怨,哀怨声中尽情的去体验那种令人愉悦的忧伤,仿佛只有过去的才是美好的,对于未来和现在则是一脸迷茫。而且我发现这种行为有越来越年轻化的趋势,比如,金妍昨天跟我抱怨说,自从上了小学,压力很大,好怀念小时候,于是我给她买了个带奶嘴的水壶(简直行为艺术)。</p> +<p>去年过年的时候,我回老家,跟我妈抱怨,说时间过的飞快,转眼又是一年,感觉没干啥balabala。我妈没有拿爱因斯坦相对论那一套唬我,而是轻蔑的一笑,说,你之所以感到时间过得很快,可能是因为你的生活还很轻松快乐,过的不艰难,对于那些每天还在担心如何吃饱饭的人来说,可能就没那么快了。我竟无言以对。</p> +<p>我也有我的解释。我认为,随着生活阅历的增加,我们对于新鲜事物的敏感度越来越低,小的时候对于任何事物都很好奇,大脑无时不刻都在感受新东西,所以45分钟的课堂才显得那么难熬。到了对于任何东西都有了自己的认识之后,看啥都没那么新鲜了,所以才觉的时间飞快,感叹白驹过隙,光阴真荏苒。就连子都曾经站在川上曰:「逝者如斯夫,不舍昼夜。」</p> +<p>看来,life不是线性的,是一个加速过程,笑。</p> +<p>#我准备抽时间做一下2015年的个人总结#</p>关于“刷牙沉思录”https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/Sun, 29 Nov 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%85%B3%E4%BA%8E%E5%88%B7%E7%89%99%E6%B2%89%E6%80%9D%E5%BD%95/<p>我近期新增了一个习惯,将我每天在地铁上、刷牙时或者其他发呆的时候,考虑的那些无聊或有聊的问题,整理出来,发在微信朋友圈里,并取名“刷牙沉思录”,话题比较跳跃,每天都不同,但有一点,这些都是我经过慎重考虑、认真分析过的问题。通过简单的一段文字,全方位体现了我对思考的热爱,以及我充分具备当一个哲学家(神经病)的潜质。</p> +<p>爱幻想、胡思乱想是我从小就有的毛病,基本上整个上学阶段,每堂课,我都能体验“身未动、心已远”那种灵魂出窍的感觉,老师在课堂上讲的眉飞色舞、唾沫飞溅,我盯着黑板,考虑如果老师是一个潜伏在我们学校的外星人,而我是不小心发现了这个秘密的人,我该如何向大家解释人们才能相信我。</p> +<p>我吃东西不少,但一直长不胖,这一方面很拉仇恨,另一方面,我想说的是,思考是很耗费能量的一件事情,每天睡觉之前,我都能感受到我大脑的不安分,这直接导致失眠和辗转反侧,我必须通过畅想一些事情,才能逐渐平息,慢慢睡去。好在通过多年的总结,有几个经典的设定可以供我可劲儿折腾。</p> +<p>比如其中有一个是,如果我走在沙漠里,荒芜人烟,各种供给也基本耗尽,这个时候我发现了一个重达三百多吨的金块,我该如何行动才能将这些东西带回。不过我不太喜欢这个设定,难度较大,而且带来的实惠太小。我比较喜欢银河系漫游这样的设定,驾驶一艘乳白色的梭子状飞船(太空中由于没有大气,所以飞船的外观可以很随意,无需考虑空气动力学),船体有四分之一都是透明的玻璃罩,我坐在飞船的控制台前,飞向银河系的边缘,不过一般还没飞出太阳系我就睡着了。</p> +<p>刷牙沉思录就是在这种条件下产生的,睡觉之前,刷牙的时候,满嘴的泡沫,看着水池里逆时针(说明我在地球的北半球)旋转的漩涡,有时就会有比较虚幻的感觉,会顿悟一些鸡毛蒜皮的事情,但是这个宇宙中的真理往往都是蕴藏在非常浅显的道理中的,所以我一般会怀着非常崇敬的心情将这些记录下来。</p> +<p>一个偶然的机会,我发现将这些东西发在朋友圈进行分享或许也很不错,这样也许能让喜欢我的朋友更加了解我从而更加亲密,讨厌我的人会更加坚定不移地认为我是一个傻Ⅹ而将我拉黑,从而减轻我的社交压力。如果有可能,我想我会坚持下去,不管还发不发朋友圈。</p> +<p>这些年我思考记录的东西,比较琐碎混乱,以前总觉得没有用,甚至是浪费时间,现在忽然想通了,其实这些思考之间是有联系的,在积累达到一定量的情况下,悟性被激发的时候就可以发现一些规律和更抽象升华的知识或方法论,也许就是常说的量变引发质变吧,大脑里的知识积累到一定程度,就是『大数据』了,呵呵。</p> +<p>#我可能会在每个周末的晚上写一篇短文#</p>忘掉GTD、忘掉所谓的高效习惯https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/Sun, 04 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/%E5%BF%98%E6%8E%89gtd%E5%BF%98%E6%8E%89%E6%89%80%E8%B0%93%E7%9A%84%E9%AB%98%E6%95%88%E4%B9%A0%E6%83%AF/<p>一口气看完了三本《搞定》系列,我突然“顿悟”了,我意识到,根本不存在所谓的“时间管理”,在脱离了对自己目标清晰认知的前提下,任何时间管理的方法都是毫无意义乃至浪费时间的。</p> +<p>然而虽然很多教授方法的书籍里面也提到了这一点,却无一告诉读者如何对自己的目标找到清晰的认知。</p> +<p>无论是否学习过各种时间管理或精力管理的技巧,每个人实际上已经自成体系有了一套多年来摸索出来的方法,应对自身的工作、生活、欲望,出于对效率的无尽追求,不断贪心想要提升,人们发明了各种方法来管理时间,有简单的也有复杂的,这些方法没有例外,都是在告诉人们一件事情,那就是如果你的方法得当,所有的事情都可以有效掌控,你的人生最后可以变成一张写在纸上的待办清单。然而事实呢,恰恰相反,可控的永远是少数,未知远远大于已知,以有限的精力与未知做斗争无异于以卵击石,到头来弄个筋疲力竭,垂头丧气,改去寻找其他的方法,岂不知出发点就是错误的。</p> +<p>不如换个思路,放弃对方法的追求,去思考一些本质上的东西。</p>2014年的个人总结https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/Sat, 03 Jan 2015 00:00:00 +0000https://sbabybird.github.io/p/2014%E5%B9%B4%E7%9A%84%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/<p>今天是2015年的第三天,元旦假期就要过去,本打算在evernote上记录一下对新年的愿景,谁知写了半天,没保存上,全丢了,想起来还有个地方叫简书,就索性在这里写吧,既然准备动笔重新开始,不妨先总结一下过去的一年。</p> +<p>我的2014,这一年我过得比较平淡,也比较充实,认真工作、积极创新、乐于助人、波澜不惊,没事儿还看看电影、找朋友喝喝小酒吹吹牛,可以说相当的自我。我刚才又翻看了一下年初时写下的期待,基本上都实现了。</p> +<p>1、我个人在今年才开始使用智能手机(赵老师倒是早就用上了苹果,手机领先我一个世代),在此之前,我一直鄙视智能手机(电池不行、没有实体键盘输入不方便、软件装多了就慢等等),不过,在我用了一台大屏幕智能手机之后我彻底改变了看法(大屏就是爽啊,技术进步迅猛,现在的手机已经没有性能问题了),从此我的黑莓就躺在了抽屉里吃灰,我的包里也不用随时塞一个厚重的iPad了,笔记本电脑就更不用背了。对了,在中国移动的反复撩拨下,我终于也开通了4G,不必再忍受GPRS的龟速了。</p> +<p>2、今年的电影看得比较少,没有什么值得回忆的,暑假的时候我带孩子们去看了场『变形金刚4』,片子又烂又长,中途不得不去了两次厕所。</p> +<p>3、拜某局所赐,美剧也看得不多,反而省了时间做其他的事情。</p> +<p>4、利用业余时间,我学会了用Photoshop修片,在网上系统了学习了课程,而且与实践结合,将自己拍的照片调的还算满意,不过一看就是个新手,调出的照片远远就能闻见浓浓的后期味儿。</p> +<p>5、买了个电钢琴,给金妍练琴用,开始时我也跟着瞎掺和,甚至一起做指法练习,可以没坚持下来,现在她已经可以弹出完整的曲子了,我还停留在小星星阶段。</p> +<p>6、不过我在吉他的扫弦方面进步不小哦,至少我是这么以为的,因为听起来,不那么像噪音了,我甚至和金妍一起录了一曲『小苹果』,感觉还『蛮拼的』。</p> +<p>7、赵老师开车闯了个红灯,一下子就扣了我6分,从此我开车上路都多里哆嗦不敢开快像个娘炮,连老杨都比我开的猛。</p> +<p>8、读书读的不算多,但也陆续看完了几本,『ReWork』、『给青年的十二封信』、『禅与摩托车维修艺术』、『围城』等等,另外我又看了一遍『黑客与画家』,每次看都有新的收获。在办公室,还有一本道德经放在抽屉里,每当工作累了就拿出来翻一翻,虽然总是看不懂,不过用来缓解压力效果还是不错的。</p> +<p>9、陪家人的时间比以前有所增多,甚至去了一趟幼儿园参加家长互动的活动,由于以前去的太少,老师们都不认识我,不得不让孩子亲自出来指认。活动中,与孩子的互动环节,在老师的指引下,孩子们伴随着音乐给家长捏肩捶背无比亲昵,我看到了旁边一个像我一样的木纳父亲,那一刻,他的眼里竟泛着泪光。</p> +<p>回顾了过去的一年,再考虑一下我的2015,给未来一些愿景和期待:</p> +<p>1、坚持学习,为了兴趣和爱好去学习,并尝试做一些记录,去年年末的时候,我将SICP(计算机程序的构造和解释)的部分课后练习题做完后写到我的博客里,这是一个不错的开始,今年争取能做完一半,如果有余力的话,将The natural of code这本书的练习题也做了记录到博客中。</p> +<p>2、我的人生目标仍然是不断创造出美好的东西,继续保持好奇心,做好玩的事儿。每天的PDCA都要围绕这个目标进行。</p> +<p>3、不放弃自己的爱好,吉他、摄影、绘画、编程等等这些,多抽时间放在上面,为了防止以后不会写字,可以考虑使用钢笔临摹一些硬币字帖。</p> +<p>4、通过互联网优化自己的工作,关注最新动态,永远对技术敬畏。</p> +<p>5、多看书,kindle里没看的书还很多,争取每个月都读一本。</p> +<p>6、少上网,2014年已经有意识的限制自己的上网时间,2015年要做的更好,每天固定少量时间阅读英文咨询(hacknews、reddit、thenextweb等),每周固定时间阅读中文咨询(知乎等)即可。</p> +<p>7、多行动,少踌躇,别怕犯错。</p> \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/1/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/1/index.html" new file mode 100644 index 000000000..7fd9b6ff4 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E6%AF%8F%E5%91%A8%E4%BA%94%E7%99%BE%E5%AD%97/ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/10/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/10/index.html" new file mode 100644 index 000000000..d9d5c1ef9 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/10/index.html" @@ -0,0 +1,38 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/11/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/11/index.html" new file mode 100644 index 000000000..0ca88ed70 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/11/index.html" @@ -0,0 +1,38 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/12/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/12/index.html" new file mode 100644 index 000000000..aabd35501 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/12/index.html" @@ -0,0 +1,37 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/13/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/13/index.html" new file mode 100644 index 000000000..49c69ed5e --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/13/index.html" @@ -0,0 +1,36 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/14/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/14/index.html" new file mode 100644 index 000000000..f26febb88 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/14/index.html" @@ -0,0 +1,35 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/2/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/2/index.html" new file mode 100644 index 000000000..c2ea8a544 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/2/index.html" @@ -0,0 +1,36 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/3/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/3/index.html" new file mode 100644 index 000000000..c6732dc60 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/3/index.html" @@ -0,0 +1,37 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/4/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/4/index.html" new file mode 100644 index 000000000..1c231af52 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/4/index.html" @@ -0,0 +1,38 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/5/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/5/index.html" new file mode 100644 index 000000000..6b6cd8c2d --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/5/index.html" @@ -0,0 +1,38 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/6/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/6/index.html" new file mode 100644 index 000000000..a0e67d00d --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/6/index.html" @@ -0,0 +1,38 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/7/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/7/index.html" new file mode 100644 index 000000000..6ad47f1db --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/7/index.html" @@ -0,0 +1,38 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/8/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/8/index.html" new file mode 100644 index 000000000..7b6d5d0f5 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/8/index.html" @@ -0,0 +1,38 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/9/index.html" "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/9/index.html" new file mode 100644 index 000000000..df63bfa43 --- /dev/null +++ "b/tags/\346\257\217\345\221\250\344\272\224\347\231\276\345\255\227/page/9/index.html" @@ -0,0 +1,38 @@ +Tag: 每周五百字 - Learning & Writing! +

Tags

每周五百字

+ \ No newline at end of file diff --git "a/tags/\347\237\245\350\257\206\347\256\241\347\220\206/index.html" "b/tags/\347\237\245\350\257\206\347\256\241\347\220\206/index.html" new file mode 100644 index 000000000..01d197f40 --- /dev/null +++ "b/tags/\347\237\245\350\257\206\347\256\241\347\220\206/index.html" @@ -0,0 +1,32 @@ +Tag: 知识管理 - Learning & Writing! +

Tags

知识管理

+ \ No newline at end of file diff --git "a/tags/\347\237\245\350\257\206\347\256\241\347\220\206/index.xml" "b/tags/\347\237\245\350\257\206\347\256\241\347\220\206/index.xml" new file mode 100644 index 000000000..1192a231c --- /dev/null +++ "b/tags/\347\237\245\350\257\206\347\256\241\347\220\206/index.xml" @@ -0,0 +1,37 @@ +知识管理 on Learning & Writing!https://sbabybird.github.io/tags/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/Recent content in 知识管理 on Learning & Writing!Hugo -- gohugo.iozh-cnSat, 23 Apr 2022 00:00:00 +0000基于Markdown格式的知识管理尝试计划https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/Sat, 23 Apr 2022 00:00:00 +0000https://sbabybird.github.io/p/%E5%9F%BA%E4%BA%8Emarkdown%E6%A0%BC%E5%BC%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86%E5%B0%9D%E8%AF%95%E8%AE%A1%E5%88%92/<h2 id="背景">背景</h2> +<ul> +<li>之前一直有收藏文章并整理自己知识体系的习惯,使用的工具是evernote(印象笔记),十多年来收集数百篇网络文章,自己整理并编写笔记若干篇,已做到目录和标签的基本分类;</li> +<li>之前也有通过每日编写一个markdown文件来记录工作日志、零星日记的习惯,有心得感悟时都直接在工作日志中随手写入,保存起来;</li> +<li>通过github pages写过一些个人博客文章,更新频率不高,主要作为个人笔记在使用;</li> +<li>当前问题如下: +<ul> +<li>evernote用户体验逐年下降,对设备限制较多,且内容存在云端、格式封闭,个人掌控感较差,数据有无法访问的风险;</li> +<li>工作日志中散落的心得感悟没有索引,基本埋没在以日期命名的文件里,不成体系;</li> +<li>收集的数百篇网络文章基本没有进行消化阅读,未形成自己理解的内容;</li> +</ul> +</li> +</ul> +<h2 id="目标">目标</h2> +<ul> +<li>为网络收藏和个人产出的文章建立索引,把之前的“仓库”形成“体系”;</li> +<li>从evernote中迁移出来,所有数据放在本地,并通过在线网盘进行同步;</li> +<li>以纯文本+附件资源作为载体,避免对一种编辑器或工具产生过度依赖;</li> +</ul> +<h2 id="工具选择">工具选择</h2> +<ul> +<li><a class="link" href="https://obsidian.md/" target="_blank" rel="noopener" +>Obsidian</a>,用于建立最基本的知识仓库,编辑自己的知识卡片,并充分利用它的双向链接功能将收藏的文章和自己输出的内容形成体系连接起来;</li> +<li><a class="link" href="https://code.visualstudio.com/" target="_blank" rel="noopener" +>vscode</a>, 用于编辑技术文章、工作日志以及基于插件进行绘图,最终输出内容到Obsidian文件库中;</li> +<li>360网盘,用于在线实时同步存储Markdown的文件夹,任何具有同步文件功能的网盘均可;</li> +</ul> +<h2 id="具体计划">具体计划</h2> +<ul> +<li>整理文章目录:按照文章来源(网络、书籍、心得)、知识层面(技术、生活、哲学)等进行分类,形成树状目录结构;</li> +<li>整理文章标签:每篇文章虽然只属于一个目录,但是可以有多个标签,提升了检索文章的维度。目录作为知识体系的骨架分类,标签则是详细划分(如技能相关的标签就可以有:编程、绘画、音乐、写作,并还能进一步细分);</li> +<li>参考少数派文章<a class="link" href="https://sspai.com/post/62414" target="_blank" rel="noopener" +>玩转 Obsidian 01:打造知识循环利器</a>提到的Zettelkasten笔记法逐步整理多年积累的知识形成以“知识卡”(其实就是具有互相链接关系的Markdown文件)为单位的知识;</li> +<li>[[玩转 Obsidian 01:打造知识循环利器 - 少数派]]</li> +<li>阅读整理多年收集的知识文章,按照大约每周一篇的节奏,产出自己理解后的知识卡片,形成“知识循环”;</li> +<li>如此往复若干时间,不断完善这个体系,工具可更换,载体亦可更换,唯独不变的是探索、求知的心;</li> +</ul> \ No newline at end of file diff --git "a/tags/\347\237\245\350\257\206\347\256\241\347\220\206/page/1/index.html" "b/tags/\347\237\245\350\257\206\347\256\241\347\220\206/page/1/index.html" new file mode 100644 index 000000000..de9c62d00 --- /dev/null +++ "b/tags/\347\237\245\350\257\206\347\256\241\347\220\206/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/ \ No newline at end of file diff --git "a/tags/\347\256\241\347\220\206/index.html" "b/tags/\347\256\241\347\220\206/index.html" new file mode 100644 index 000000000..e96a0cd52 --- /dev/null +++ "b/tags/\347\256\241\347\220\206/index.html" @@ -0,0 +1,32 @@ +Tag: 管理 - Learning & Writing! +

Tags

管理

+ \ No newline at end of file diff --git "a/tags/\347\256\241\347\220\206/index.xml" "b/tags/\347\256\241\347\220\206/index.xml" new file mode 100644 index 000000000..604851498 --- /dev/null +++ "b/tags/\347\256\241\347\220\206/index.xml" @@ -0,0 +1,99 @@ +管理 on Learning & Writing!https://sbabybird.github.io/tags/%E7%AE%A1%E7%90%86/Recent content in 管理 on Learning & Writing!Hugo -- gohugo.iozh-cnThu, 15 Apr 2021 00:00:00 +0000《管理自己》阅读笔记https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/Thu, 15 Apr 2021 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/<h2 id="文章介绍">文章介绍</h2> +<p>《管理自己(Management Yourself)》作者——彼得·德鲁克。该文是《哈佛商业评论》创刊以来重印次数最多的文章之一,节选自其著作《21世纪的管理挑战》。</p> +<p>我第一次读到这篇文章,是2013年在<a class="link" href="http://www.zreading.cn/archives/3650.html" target="_blank" rel="noopener" +>左岸读书</a>的博客,当时很快就放入收藏夹,今日再次翻阅,仍觉受益匪浅。</p> +<p>摘抄部分在此记录,并附上自己的一些理解。</p> +<h2 id="笔记">笔记</h2> +<blockquote> +<p>知识工作者必须成为自己的首席执行官。你应该在公司中开辟自己的天地,知道何时改变发展道路,并在可能长达50年的职业生涯中不断努力、干出实绩。要做好这些事情,你首先要对自己有深刻的认识——不仅清楚自己的优点和缺点,也知道自己是怎样学习新知识和与别人共事的,并且还明白自己的价值观是什么、自己又能在哪些方面做出最大贡献。因为只有当所有工作都从自己的长处着眼,你才能真正做到卓尔不群。</p> +</blockquote> +<p>未来社会,体力劳动将逐渐被智能化机械所取代,人人都是知识工作者即将成为事实。每个人都需要把自己当作一个公司来看待,自己就是CEO,包揽人生的“市场”、“营销”、“生产”、“运营”等各项工作,只有从更高的视角来规划自己,才能掌握主动权,避免落入被动接受的局面。</p> +<p>与运营企业一样,经营自己的第一步还是要先了解自己,深刻认识自己的优势与不足,这样无论是制定计划还是付诸行动,才能做到目标明确、行之有效。</p> +<blockquote> +<p>多数人都以为他们知道自己擅长什么。其实不然,更多的情况是,人们只知道自己不擅长什么——即便是在这一点上,人们也往往认识不清。然而,一个人要有所作为,只能靠发挥自己的长处,而如果从事自己不太擅长的工作是无法取得成就的,更不用说那些自己根本干不了的事情了。</p> +</blockquote> +<p>这个观点跟我的直觉是相反的,在读到这段文字之前我以为自己对擅长什么了如指掌,但认真思索之后,才发现事情并没有那么简单,有些自以为是的优点根本不值得推敲,如沟通表达、对技术了解广泛、技术趋势敏感等等。至于真正做什么样的事情非常的得心应手,还真得通过认真分析才行。</p> +<blockquote> +<p>要发现自己的长处,唯一途径就是回馈分析法(feedback analysis)。每当做出重要决定或采取重要行动时,你都可以事先记录下自己对结果的预期。9到 12个月后,再将实际结果与自己的预期比较。我们只要持之以恒地运用这个简单的方法,就能在较短的时间内(可能两三年),发现自己的长处——这是你需要知道的最重要的事情。在采用这种方法之后,你就能知道,自己正在做(或没有做)的哪些事情会让你的长处无法发挥出来。同时,你也将看到自己在哪些方面能力不是特别强。最后,你还将了解到自己在哪些方面完全不擅长,做不出成绩来。</p> +</blockquote> +<p>作者给出了一个据说十分有效的方法,虽然执行起来略显繁琐且时间较长,但应该还值得一试。我个人有记录工作日志的习惯,但停留在时间消耗的记录和分析层面,并未对任务执行的结果进行预期和分析。</p> +<blockquote> +<p>首先最重要的是,专注于你的长处,把自己放到那些能发挥长处的地方。其次,加强你的长处。第三,发现任何由于恃才傲物而造成的偏见和无知,并且加以克服。</p> +</blockquote> +<p>想起了之前读到的另一本书<a class="link" href="https://book.douban.com/subject/1100470/" target="_blank" rel="noopener" +>《现在发现你的优势》</a>,虽然木桶原理说要补充自己的短板,但这里的观点则强调要充分把自己的优势利用起来,并且进行加强,这样才能更好的发挥自己。当然,努力学习新技能、新知识,发现自己的偏见和不良习惯然后克服它们也很重要。</p> +<blockquote> +<p>把预期和实际结果进行比较,也会发现自己不能做什么。我们每个人都有许多一窍不通、毫无天分的领域,在这些领域我们甚至连平庸的水平都达不到。人们,尤其是知识工作者,就不应该试图去完成这些领域的工作和任务。他们应该尽量少把精力浪费在那些不能胜任的领域上,因为从无能到平庸要比从一流到卓越需要人们付出多得多的努力。</p> +</blockquote> +<p>深有体会,不应该将时间和经历消耗在自己即使努力也达不到平庸水平的事情上,然而现实中却有很多人在被动的做着这样的事情,甚至还抱有不切实际的幻想,人生苦短,早日醒悟早日改变。</p> +<blockquote> +<p>我属于读者型,还是听者型?首先,你要搞清楚的是,你是读者型(习惯阅读信息)还是听者型(习惯听取信息)的人。绝大多数人甚至都不知道还有读者型和听者型之说,而且很少有人既是读者型又是听者型。知道自己属于哪种类型的人更少。</p> +</blockquote> +<p>这一段不知是翻译的问题还是作者没说明白,文中并未定义“读者型”、“听者型”这两种类型的工作方式具体是如何工作的,只是通过例子强调了自己工作方式的不同所带来的巨大差异。我的猜测是,“读者型”应该指的是在工作中理性和逻辑思维占上风的人,通常通过阅读逻辑缜密的文字来规划和开展工作,而“听者型”则属于感性思维偏多,通过视觉、听觉来判断事物的发展。</p> +<blockquote> +<p>如果一个组织的价值体系不为自己所接受或者与自己的价值观不相容,人们就会备感沮丧,工作效力低下。</p> +</blockquote> +<p>不要试图改变自己的价值观,这只会让你倍感痛苦,你可以更换环境或者改变组织价值体系。</p> +<blockquote> +<p>成功的事业不是预先规划的,而是在人们知道了自己的长处、工作方式和价值观后,准备把握机遇时水到渠成的。知道自己属于何处,可使一个勤奋、有能力但原本表现平平的普通人,变成出类拔萃的工作者。</p> +</blockquote> +<p>机会留给有准备的人,但前提是这个人认识到自己的长处、工作方式、价值观,所谓的把握机会,是了解了这些之后才能识别到机会。</p> +<blockquote> +<p>一般来说,一项计划的时间跨度如果超过了 18个月,就很难做到明确和具体。因此,在多数情况下我们应该提出的问题是:我在哪些方面能取得将在今后一年半内见效的结果?如何取得这样的结果?</p> +</blockquote> +<p>千里之行始于足下,如果决定开始行动,也不可把计划定的太远,自己给自己安排近期可行的执行目标,对效果要有清晰的预期,对如何取得效果应有详细而具体的计划。</p> +<blockquote> +<p>人与人之间相互信任,不一定意味着他们彼此喜欢对方,而是意味着彼此了解。因此,人们绝对有必要对自己的人际关系负责。这是一种义务。不管一个人是公司的一名成员,还是公司的顾问、供应商或经销商,他都需要对他的所有共事者负起这种责任。所谓共事者,是指在工作上他所依赖的同事以及依赖他的同事。</p> +</blockquote> +<p>成熟的处理人际关系,同样需要问文章开头的三个问题,了解他人或者共事者,是我们的义务和责任。</p> +<blockquote> +<p>在一个崇尚成功的社会里,拥有各种选择变得越来越重要。从历史上来看,却没有“成功”一说。绝大多数人只期望坚守“适当的位置”。唯一的流动性是向下的流动性。然而,在知识社会里,我们期望每一个人都能取得成功。这显然是不可能的。对许多人来说,能避免失败就行。可是有成功的地方,就会有失败。因此,有一个能够让人们做出贡献、发挥影响力或成为“大人物”的领域,这不仅对个人十分重要,对个人的家庭也同样重要。这意味着人们需要找到一个能够有机会成为领袖、受到尊重、取得成功的第二领域——可能是第二份职业,也可能是平行的职业或社会创业。</p> +</blockquote> +<p>在飞速发展(或者说在加速发展)的时代,人人都在焦虑,仿佛竞争、内卷根本无法避免,但如果合理的认识自己、管理自己,并且去用心经营的话,也许人人都有机会可以在擅长的领域做出闪光的事情,获得一份自己独有的成就。</p> +<blockquote> +<p>自我管理中面临的挑战看上去比较明显,甚至非常基本,其答案可能不言自明,甚至近乎幼稚。自我管理需要个人,尤其是知识工作者,做出以前从未做过的事情。实际上,自我管理需要每一个知识工作者在思想和行动上都要成为自己的首席执行官。</p> +</blockquote> +<p>最后一段很关键,“做出以前从未做过的事情”,即行动最为重要。这也是为什么我会花费一个小时的时间,从头又阅读一遍这篇文章,并摘录下来加以分析理解的主要原因。</p>《高效能人士的七个习惯》读书笔记https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Tue, 07 May 2019 00:00:00 +0000https://sbabybird.github.io/p/%E9%AB%98%E6%95%88%E8%83%BD%E4%BA%BA%E5%A3%AB%E7%9A%84%E4%B8%83%E4%B8%AA%E4%B9%A0%E6%83%AF%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<ol> +<li>积极是内在的,是选择的自由,是人性中最不能剥夺的部分。</li> +<li>以终为始,是要知道自己要什么,并以原则为重心,所做的决策是主动选择的结果,而非被环境所迫使的结果。</li> +<li>人类的四个天赋分别是,自我意识,良知,想象力,独立意志。</li> +<li>第四代时间管理,以原则为中心,以周为单位,设定自己所扮演的各项角色欲达成的三个重要成果,安排出每一天的第一要务,更理想的是当作每一天的特殊约会,全力以赴。每周都回顾上周周日程完成情况以及制定新的周日程,并每日调整。</li> +<li>对人不可讲效率,对事才可如此,对人应该讲效用,即某一行为是否有效。</li> +<li>以原则为重心,以良知为导向(人比事儿更重要),针对个人独有的使命,平衡发展生活中不同角色,全盘规划日常生活。</li> +<li>要想充分授权必须要具备的默契和共识包括: +<ol> +<li>预期成果。</li> +<li>应遵守的规范。</li> +<li>可用的资源。</li> +<li>责任的归属,约定考评的标准和次数。</li> +<li>明确的奖惩制度。</li> +</ol> +</li> +<li>在双赢协议中,对以下5要素应该有明确的规定。 +<ol> +<li>预期结果,确认目标和实现,方法不计。</li> +<li>指导方针,确认实现目标的原则,方针和行为限度。</li> +<li>可用资源,包括人力,财力,技术或者组织资源。</li> +<li>任务考核,建立业绩评估标准和时间。</li> +<li>奖惩制度,根据任务考核确定奖惩。</li> +</ol> +</li> +<li>制定好目标之后,还要看你的组织体系是否与目标相符合,否则就要调整系统体系。</li> +<li>我们总是喜欢匆匆忙忙地下结论,以善意的建议快刀斩乱麻地解决问题。不愿意花时间去诊断,深入了解问题的症结。</li> +</ol>《管理十诫》读书笔记https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/Tue, 30 Apr 2019 00:00:00 +0000https://sbabybird.github.io/p/%E7%AE%A1%E7%90%86%E5%8D%81%E8%AF%AB%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/<ol> +<li>首先要通过分析知道问题是什么,才能真正洞悉解决问题的办法。</li> +<li>归根结底,所有公司最后的生命线都是信任问题,顾客要相信企业生产的产品正如它所许诺的那样好,投资者要相信公司的管理层是有能力的,员工要相信公司管理者能够兑现承诺。</li> +<li>他们根本想不到人都有缺陷,包括他们自己在内也都不是完美的。</li> +<li>问题的关键不在于机器会不会想问题,而在于人会不会想问题。</li> +<li>真正让我们陷入麻烦的并非那些我们根本不懂的东西,而是我们一知半解的东西。</li> +<li>有一种心理偏见叫做肯定的陷阱,它指的是我们努力想证明自己的观点,而非找出自己观点中的错误之处。</li> +<li>深思熟虑并不是浪费时间,而是必要之举。</li> +<li>除非有人能停下来想一想,否则一再犯同样的错误是很容易的。对每个错误都有必要进行反思和总结。</li> +<li>如果你能承认自己犯了错误,承认自己并不是战无不胜,那么你反而能得到好处。</li> +<li>管理是一门艺术,而不是一种科学。如果遇到那些想要量化人类行为的专家,你就要保持警惕了。</li> +<li>行业中的每个公司都应该力争标新立异,让自己变的与众不同,而不是随大溜。</li> +<li>要憎恨组织里的官僚作风——通用电气公司杰克·韦尔奇写给股东的信中写道。如果你想一事无成的话,那就让行政流程占据主导地位好了,去崇尚官僚主义就行了。</li> +<li>不能创造生产力的工作越努力越失败,要时刻警惕并搜寻身边那些并不能创造生产力的工作。</li> +<li>每个公司其实主要就是为现有的客户提供优质服务并努力开拓新客户群。我们在花每一分钱、设立每一个部门或是接手每一个项目时,都要问自己一个基本的问题:这能帮我们带来新客户或是为客户提供更好的服务吗?</li> +<li>将注意力放在失败上是最大的悲观主义。只要稍稍抬起你的头,改变一下你的态度,那么你的世界观就会发生巨大的变化。</li> +</ol> \ No newline at end of file diff --git "a/tags/\347\256\241\347\220\206/page/1/index.html" "b/tags/\347\256\241\347\220\206/page/1/index.html" new file mode 100644 index 000000000..d1e389475 --- /dev/null +++ "b/tags/\347\256\241\347\220\206/page/1/index.html" @@ -0,0 +1 @@ +https://sbabybird.github.io/tags/%E7%AE%A1%E7%90%86/ \ No newline at end of file diff --git a/ts/main.js b/ts/main.js new file mode 100644 index 000000000..91ab33382 --- /dev/null +++ b/ts/main.js @@ -0,0 +1,11 @@ +(()=>{var g=class e{galleryUID;items=[];constructor(t,r=1){if(window.PhotoSwipe==null||window.PhotoSwipeUI_Default==null){console.error("PhotoSwipe lib not loaded.");return}this.galleryUID=r,e.createGallery(t),this.loadItems(t),this.bindClick()}loadItems(t){this.items=[];let r=t.querySelectorAll("figure.gallery-image");for(let i of r){let n=i.querySelector("figcaption"),o=i.querySelector("img"),s={w:parseInt(o.getAttribute("width")),h:parseInt(o.getAttribute("height")),src:o.src,msrc:o.getAttribute("data-thumb")||o.src,el:i};n&&(s.title=n.innerHTML),this.items.push(s)}}static createGallery(t){let r=t.querySelectorAll("img.gallery-image");for(let o of Array.from(r)){let s=o.closest("p");if(!s||!t.contains(s)||(s.textContent.trim()==""&&s.classList.add("no-text"),!s.classList.contains("no-text")))continue;let d=o.parentElement.tagName=="A",m=o,a=document.createElement("figure");if(a.style.setProperty("flex-grow",o.getAttribute("data-flex-grow")||"1"),a.style.setProperty("flex-basis",o.getAttribute("data-flex-basis")||"0"),d&&(m=o.parentElement),m.parentElement.insertBefore(a,m),a.appendChild(m),o.hasAttribute("alt")){let l=document.createElement("figcaption");l.innerText=o.getAttribute("alt"),a.appendChild(l)}if(!d){a.className="gallery-image";let l=document.createElement("a");l.href=o.src,l.setAttribute("target","_blank"),o.parentNode.insertBefore(l,o),l.appendChild(o)}}let i=t.querySelectorAll("figure.gallery-image"),n=[];for(let o of i)n.length?o.previousElementSibling===n[n.length-1]?n.push(o):n.length&&(e.wrap(n),n=[o]):n=[o];n.length>0&&e.wrap(n)}static wrap(t){let r=document.createElement("div");r.className="gallery";let i=t[0].parentNode,n=t[0];i.insertBefore(r,n);for(let o of t)r.appendChild(o)}open(t){let r=document.querySelector(".pswp");new window.PhotoSwipe(r,window.PhotoSwipeUI_Default,this.items,{index:t,galleryUID:this.galleryUID,getThumbBoundsFn:n=>{let o=this.items[n].el.getElementsByTagName("img")[0],s=window.pageYOffset||document.documentElement.scrollTop,c=o.getBoundingClientRect();return{x:c.left,y:c.top+s,w:c.width}}}).init()}bindClick(){for(let[t,r]of this.items.entries())r.el.querySelector("a").addEventListener("click",n=>{n.preventDefault(),this.open(t)})}},b=g;var u={};if(localStorage.hasOwnProperty("StackColorsCache"))try{u=JSON.parse(localStorage.getItem("StackColorsCache"))}catch{u={}}async function S(e,t,r){if(!e)return await Vibrant.from(r).getPalette();if(!u.hasOwnProperty(e)||u[e].hash!==t){let i=await Vibrant.from(r).getPalette();u[e]={hash:t,Vibrant:{hex:i.Vibrant.hex,rgb:i.Vibrant.rgb,bodyTextColor:i.Vibrant.bodyTextColor},DarkMuted:{hex:i.DarkMuted.hex,rgb:i.DarkMuted.rgb,bodyTextColor:i.DarkMuted.bodyTextColor}},localStorage.setItem("StackColorsCache",JSON.stringify(u))}return u[e]}var D=(e,t=500)=>{e.classList.add("transiting"),e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=t+"ms",e.style.height=e.offsetHeight+"px",e.offsetHeight,e.style.overflow="hidden",e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0",window.setTimeout(()=>{e.classList.remove("show"),e.style.removeProperty("height"),e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property"),e.classList.remove("transiting")},t)},q=(e,t=500)=>{e.classList.add("transiting"),e.style.removeProperty("display"),e.classList.add("show");let r=e.offsetHeight;e.style.overflow="hidden",e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0",e.offsetHeight,e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=t+"ms",e.style.height=r+"px",e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),window.setTimeout(()=>{e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property"),e.classList.remove("transiting")},t)},B=(e,t=500)=>window.getComputedStyle(e).display==="none"?q(e,t):D(e,t);function v(){let e=document.getElementById("toggle-menu");e&&e.addEventListener("click",()=>{document.getElementById("main-menu").classList.contains("transiting")||(document.body.classList.toggle("show-menu"),B(document.getElementById("main-menu"),300),e.classList.toggle("is-active"))})}function N(e,t,r){var i=document.createElement(e);for(let n in t)if(n&&t.hasOwnProperty(n)){let o=t[n];n=="dangerouslySetInnerHTML"?i.innerHTML=o.__html:o===!0?i.setAttribute(n,n):o!==!1&&o!=null&&i.setAttribute(n,o.toString())}for(let n=2;n{this.isDark()?this.currentScheme="light":this.currentScheme="dark",this.setBodyClass(),this.currentScheme==this.systemPreferScheme&&(this.currentScheme="auto"),this.saveScheme()})}isDark(){return this.currentScheme=="dark"||this.currentScheme=="auto"&&this.systemPreferScheme=="dark"}dispatchEvent(t){let r=new CustomEvent("onColorSchemeChange",{detail:t});window.dispatchEvent(r)}setBodyClass(){this.isDark()?document.documentElement.dataset.scheme="dark":document.documentElement.dataset.scheme="light",this.dispatchEvent(document.documentElement.dataset.scheme)}getSavedScheme(){let t=localStorage.getItem(this.localStorageKey);return t=="light"||t=="dark"||t=="auto"?t:"auto"}bindMatchMedia(){window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",t=>{t.matches?this.systemPreferScheme="dark":this.systemPreferScheme="light",this.setBodyClass()})}},E=y;function p(e){let t;return()=>{t&&window.cancelAnimationFrame(t),t=window.requestAnimationFrame(()=>e())}}var O=".article-content h1[id], .article-content h2[id], .article-content h3[id], .article-content h4[id], .article-content h5[id], .article-content h6[id]",T="#TableOfContents",L="#TableOfContents li",k="active-class";function V(e,t){let r=e.querySelector("a").offsetHeight,i=e.offsetTop-t.offsetHeight/2+r/2-t.offsetTop;i<0&&(i=0),t.scrollTo({top:i,behavior:"smooth"})}function U(e){let t={};return e.forEach(r=>{let n=r.querySelector("a").getAttribute("href");n.startsWith("#")&&(t[n.slice(1)]=r)}),t}function C(e){let t=[];return e.forEach(r=>{t.push({id:r.id,offset:r.offsetTop})}),t.sort((r,i)=>r.offset-i.offset),t}function M(){let e=document.querySelectorAll(O);if(!e){console.warn("No header matched query",e);return}let t=document.querySelector(T);if(!t){console.warn("No toc matched query",T);return}let r=document.querySelectorAll(L);if(!r){console.warn("No navigation matched query",L);return}let i=C(e),n=!1;t.addEventListener("mouseenter",p(()=>n=!0)),t.addEventListener("mouseleave",p(()=>n=!1));let o,s=U(r);function c(){let m=document.documentElement.scrollTop||document.body.scrollTop,a;i.forEach(f=>{m>=f.offset-20&&(a=document.getElementById(f.id))});let l;a&&(l=s[a.id]),a&&!l?console.debug("No link found for section",a):l!==o&&(o&&o.classList.remove(k),l&&(l.classList.add(k),n||V(l,t)),o=l)}window.addEventListener("scroll",p(c));function d(){i=C(e),c()}window.addEventListener("resize",p(d))}var $="a[href]";function P(){document.querySelectorAll($).forEach(e=>{e.getAttribute("href").startsWith("#")&&e.addEventListener("click",r=>{r.preventDefault();let i=decodeURI(e.getAttribute("href").substring(1)),n=document.getElementById(i),o=n.getBoundingClientRect().top-document.documentElement.getBoundingClientRect().top;window.history.pushState({},"",e.getAttribute("href")),scrollTo({top:o,behavior:"smooth"})})})}var x={init:()=>{v();let e=document.querySelector(".article-content");e&&(new b(e),P(),M());let t=document.querySelector(".article-list--tile");t&&new IntersectionObserver(async(s,c)=>{s.forEach(d=>{if(!d.isIntersecting)return;c.unobserve(d.target),d.target.querySelectorAll("article.has-image").forEach(async a=>{let l=a.querySelector("img"),f=l.src,H=l.getAttribute("data-key"),I=l.getAttribute("data-hash"),A=a.querySelector(".article-details"),h=await S(H,I,f);A.style.background=` + linear-gradient(0deg, + rgba(${h.DarkMuted.rgb[0]}, ${h.DarkMuted.rgb[1]}, ${h.DarkMuted.rgb[2]}, 0.5) 0%, + rgba(${h.Vibrant.rgb[0]}, ${h.Vibrant.rgb[1]}, ${h.Vibrant.rgb[2]}, 0.75) 100%)`})})}).observe(t);let r=document.querySelectorAll(".article-content div.highlight"),i="Copy",n="Copied!";r.forEach(o=>{let s=document.createElement("button");s.innerHTML=i,s.classList.add("copyCodeButton"),o.appendChild(s);let c=o.querySelector("code[data-lang]");c&&s.addEventListener("click",()=>{navigator.clipboard.writeText(c.textContent).then(()=>{s.textContent=n,setTimeout(()=>{s.textContent=i},1e3)}).catch(d=>{alert(d),console.log("Something went wrong",d)})})}),new E(document.getElementById("dark-mode-toggle"))}};window.addEventListener("load",()=>{setTimeout(function(){x.init()},0)});window.Stack=x;window.createElement=w;})(); +/*! +* Hugo Theme Stack +* +* @author: Jimmy Cai +* @website: https://jimmycai.com +* @link: https://github.com/CaiJimmy/hugo-theme-stack +*/ diff --git a/ts/search.js b/ts/search.js new file mode 100644 index 000000000..e22d8ef4c --- /dev/null +++ b/ts/search.js @@ -0,0 +1 @@ +(()=>{var m={"&":"&","<":"<",">":">",'"':""","\u2026":"…"};function T(l){return m[l]||l}function d(l){return l.replace(/[&<>"]/g,T)}function w(l){return l.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}var g=class l{data;form;input;list;resultTitle;resultTitleTemplate;constructor({form:t,input:e,list:r,resultTitle:o,resultTitleTemplate:n}){this.form=t,this.input=e,this.list=r,this.resultTitle=o,this.resultTitleTemplate=n,this.handleQueryString(),this.bindQueryStringChange(),this.bindSearchForm()}static processMatches(t,e,r=!0,o=140,n=20){e.sort((a,s)=>a.start-s.start);let h=0,i=0,c=0,u=[];for(;hi?(u.push(`${d(t.substring(i,i+n))} [...] `),u.push(`${d(t.substring(a.start-n,a.start))}`),c+=n*2):(u.push(d(t.substring(i,a.start))),c+=a.start-i);let s=h+1,p=a.end;for(;s${d(t.substring(a.start,p))}`),c+=p-a.start,h=s,i=p,r&&c>o)break}if(i(i[h]=w(n),n.trim()!=="")).join("|"),"gi");for(let n of e){let h=[],i=[],c={...n,preview:"",matchCount:0},u=n.content.matchAll(o);for(let s of Array.from(u))i.push({start:s.index,end:s.index+s[0].length});let a=n.title.matchAll(o);for(let s of Array.from(a))h.push({start:s.index,end:s.index+s[0].length});h.length>0&&(c.title=l.processMatches(c.title,h,!1)),i.length>0?c.preview=l.processMatches(c.content,i):c.preview=d(c.content.substring(0,140)),c.matchCount=h.length+i.length,c.matchCount>0&&r.push(c)}return r.sort((n,h)=>h.matchCount-n.matchCount)}async doSearch(t){let e=performance.now(),r=await this.searchKeywords(t);this.clear();for(let n of r)this.list.append(l.render(n));let o=performance.now();this.resultTitle.innerText=this.generateResultTitle(r.length,((o-e)/1e3).toPrecision(1))}generateResultTitle(t,e){return this.resultTitleTemplate.replace("#PAGES_COUNT",t).replace("#TIME_SECONDS",e)}async getData(){if(!this.data){let t=this.form.dataset.json;this.data=await fetch(t).then(r=>r.json());let e=new DOMParser;for(let r of this.data)r.content=e.parseFromString(r.content,"text/html").body.innerText}return this.data}bindSearchForm(){let t="",e=r=>{r.preventDefault();let o=this.input.value.trim();if(l.updateQueryString(o,!0),o==="")return t="",this.clear();t!==o&&(t=o,this.doSearch(o.split(" ")))};this.input.addEventListener("input",e),this.input.addEventListener("compositionend",e)}clear(){this.list.innerHTML="",this.resultTitle.innerText=""}bindQueryStringChange(){window.addEventListener("popstate",t=>{this.handleQueryString()})}handleQueryString(){let e=new URL(window.location.toString()).searchParams.get("keyword");this.input.value=e,e?this.doSearch(e.split(" ")):this.clear()}static updateQueryString(t,e=!1){let r=new URL(window.location.toString());t===""?r.searchParams.delete("keyword"):r.searchParams.set("keyword",t),e?window.history.replaceState("","",r.toString()):window.history.pushState("","",r.toString())}static render(t){return createElement("article",null,createElement("a",{href:t.permalink},createElement("div",{class:"article-details"},createElement("h2",{class:"article-title",dangerouslySetInnerHTML:{__html:t.title}}),createElement("section",{class:"article-preview",dangerouslySetInnerHTML:{__html:t.preview}})),t.image&&createElement("div",{class:"article-image"},createElement("img",{src:t.image,loading:"lazy"}))))}};window.addEventListener("load",()=>{setTimeout(function(){let l=document.querySelector(".search-form"),t=l.querySelector("input"),e=document.querySelector(".search-result--list"),r=document.querySelector(".search-result--title");new g({form:l,input:t,list:e,resultTitle:r,resultTitleTemplate:window.searchResultTitleTemplate})},0)});var f=g;})(); diff --git a/weixin.jpg b/weixin.jpg new file mode 100644 index 000000000..9f76c7567 Binary files /dev/null and b/weixin.jpg differ diff --git a/zhubai.jpg b/zhubai.jpg new file mode 100644 index 000000000..48b76c97c Binary files /dev/null and b/zhubai.jpg differ