<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[鋼の鍊魔術師]]></title>
  <link href="http://dd.deep.tw//atom.xml" rel="self"/>
  <link href="http://dd.deep.tw//"/>
  <updated>2011-12-22T19:03:54+08:00</updated>
  <id>http://dd.deep.tw//</id>
  <author>
    <name><![CDATA[pct]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Fix Cydia Crash The Hard Way]]></title>
    <link href="http://dd.deep.tw//blog/2011/12/22/fix-cydia-crash-the-hard-way/"/>
    <updated>2011-12-22T18:32:00+08:00</updated>
    <id>http://dd.deep.tw//blog/2011/12/22/fix-cydia-crash-the-hard-way</id>
    <content type="html"><![CDATA[<p>After I upgrade my iphone to 5.0.1, I cannot use it easily as usual.</p>

<p>Today I&#8217;ve tried some ways to fix it and I finally let cydia could install apps now.
I bought <code>PhoneDisk</code> and mount my iphone, then just saw what file caused Cydia crashed.
And I found if I delete <code>/var/lib/apt/lists/apt.saurik.com_dists_ios_675.00_main_binary-iphoneos-arm_Packages</code> then Cydia would not crash.
So I just edit <code>apt.saurik.com_dists_ios_675.00_main_binary-iphoneos-arm_Packages</code> and left <code>openssh</code> and its deps packages only and use Cydia to install it.
Then:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ ssh (to my iphone)
</span><span class='line'>$ fetch debs from http://apt.saurik.com/cydia/debs/ and send to iphone (I use `PhoneDisk` to mount iphone)
</span><span class='line'>$ dpkg -r cydia-lproj cydia ; dpkg -i cydia-lproj_1.1.0_iphoneos-arm.deb cydia_1.1.1_iphoneos-arm.deb # yes, it still crashes eachtime
</span><span class='line'>$ dpkg -i apt_1\:0-23_iphoneos-arm.deb gettext_0.17-6_iphoneos-arm.deb libsigc++_2.2.3-4_iphoneos-arm.deb apt7-ssl_0.7.25.3-3_iphoneos-arm.deb curl_7.19.4-6_iphoneos-arm.deb berkeleydb_4.6.21-4_iphoneos-arm.deb 
</span><span class='line'>$ apt-get update; apt-get dist-upgrade</span></code></pre></td></tr></table></div></figure>


<p>But Cydia would still crash when you using <code>search</code> or <code>add source</code>, so I just keep searching in Cydia <code>All Packages</code> myself or I just <code>ssh access</code> to it and use <code>apt-get install &lt;packages&gt;</code>.</p>

<p>That&#8217;s it.</p>

<p>I got <code>SBSettings</code> back and also some useful tools.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Using Email to Convert PDF to AZW and Sync to your Kindle Device]]></title>
    <link href="http://dd.deep.tw//blog/2011/12/19/using-email-to-convert-pdf-to-azw-and-sync-to-your-kindle-device/"/>
    <updated>2011-12-19T14:15:00+08:00</updated>
    <id>http://dd.deep.tw//blog/2011/12/19/using-email-to-convert-pdf-to-azw-and-sync-to-your-kindle-device</id>
    <content type="html"><![CDATA[<p>I&#8217;ve tried some methods to use amazon service to convert my <code>PDF</code> files to <code>AZW</code> and sync to my kindle device.</p>

<p>The right way is as follows.</p>

<p>Just send your <code>PDF file as attachment</code> to your kindle account (@kindle.com or @free.kindle.com) and the <code>Email Subject</code> must be <code>convert</code> or <code>convert.</code> then it will be converted to AZW format.</p>

<p>Then, just wait 1 or 2 minutes and check your kindle device, you will see new file syncing to it.</p>

<p>Update:</p>

<ol>
<li><p>The file size of each attached personal document should be <code>less than 50MB</code> (before compression in a ZIP file)</p></li>
<li><p>The email submitted <code>should not contain more than 25 attached personal documents</code></p></li>
</ol>


<p>And the <code>Amazon Kindle Support team</code> says:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>The Kindle Personal Document Service can convert and deliver the following types of documents:
</span><span class='line'>Microsoft Word (.doc, .docx)
</span><span class='line'>Rich Text Format (.rtf)
</span><span class='line'>HTML (.htm, .html) 
</span><span class='line'>Text (.txt) documents
</span><span class='line'>Archived documents (zip , x-zip) and compressed archived documents
</span><span class='line'>Mobi book
</span><span class='line'>
</span><span class='line'>Images that are of type JPEGs (.jpg), GIFs (.gif), Bitmaps (.bmp), and PNG images (.png).
</span><span class='line'>Adobe PDF (.pdf) documents are delivered without conversion to Kindle DX, Second Generation and Latest Generation Kindles.
</span><span class='line'>
</span><span class='line'>Adobe PDF (.pdf) can be converted to Kindle format and delivered on an experimental basis.
</span><span class='line'>
</span><span class='line'>If the document that failed belonged to one of the above document types, please ensure the document is not password protected or encrypted. Note that the Latest Generation Kindles support password protected PDFs.
</span><span class='line'>
</span><span class='line'>Helpful tips for personal document attachments:
</span><span class='line'>The file size of each attached personal document should be less than 50MB (before compression in a ZIP file)
</span><span class='line'>The email submitted should not contain more than 25 attached personal documents
</span><span class='line'>
</span><span class='line'>You can learn more about transferring personal documents to your Kindle in our help pages:
</span><span class='line'>http://www.amazon.com/kindlepersonaldocuments/</span></code></pre></td></tr></table></div></figure>



]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Symfony2 nginx virtualhost config]]></title>
    <link href="http://dd.deep.tw//blog/2011/12/12/symfony2-nginx-virtualhost-config/"/>
    <updated>2011-12-12T01:57:00+08:00</updated>
    <id>http://dd.deep.tw//blog/2011/12/12/symfony2-nginx-virtualhost-config</id>
    <content type="html"><![CDATA[<p>Symfony2 nginx virtualhost settings:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>server {
</span><span class='line'>    listen       80;
</span><span class='line'>    server_name symfony2.dev;
</span><span class='line'>    root    /path/to/your/symfony2/web/;
</span><span class='line'>
</span><span class='line'>    index app_dev.php;
</span><span class='line'>
</span><span class='line'>    location ~ /\.git {
</span><span class='line'>        deny  all;
</span><span class='line'>    }
</span><span class='line'>
</span><span class='line'>    location / {
</span><span class='line'>        if (!-e $request_filename) {  
</span><span class='line'>            rewrite ^/(.*)$ /app_dev.php?q=$1 last;  
</span><span class='line'>        } 
</span><span class='line'>    }
</span><span class='line'>
</span><span class='line'>    location ~ \.php$ {
</span><span class='line'>        fastcgi_pass    unix:/tmp/php-fpm.sock;
</span><span class='line'>        fastcgi_index   app_dev.php;
</span><span class='line'>        include         fastcgi_params_production;
</span><span class='line'>    }
</span><span class='line'>}</span></code></pre></td></tr></table></div></figure>


<p>And the fastcgi_params_production is:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>fastcgi_param  QUERY_STRING       $query_string;
</span><span class='line'>fastcgi_param  REQUEST_METHOD     $request_method;
</span><span class='line'>fastcgi_param  CONTENT_TYPE       $content_type;
</span><span class='line'>fastcgi_param  CONTENT_LENGTH     $content_length;
</span><span class='line'>
</span><span class='line'>fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
</span><span class='line'>fastcgi_param  REQUEST_URI        $request_uri;
</span><span class='line'>fastcgi_param  DOCUMENT_URI       $document_uri;
</span><span class='line'>fastcgi_param  DOCUMENT_ROOT      $document_root;
</span><span class='line'>fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
</span><span class='line'>fastcgi_param  SERVER_PROTOCOL    $server_protocol;
</span><span class='line'>
</span><span class='line'>fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
</span><span class='line'>fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
</span><span class='line'>
</span><span class='line'>fastcgi_param  REMOTE_ADDR        $remote_addr;
</span><span class='line'>fastcgi_param  REMOTE_PORT        $remote_port;
</span><span class='line'>fastcgi_param  SERVER_ADDR        $server_addr;
</span><span class='line'>fastcgi_param  SERVER_PORT        $server_port;
</span><span class='line'>fastcgi_param  SERVER_NAME        $server_name;
</span><span class='line'>
</span><span class='line'># PHP only, required if PHP was built with --enable-force-cgi-redirect
</span><span class='line'>fastcgi_param  REDIRECT_STATUS    200;</span></code></pre></td></tr></table></div></figure>


<p>refer: <a href="http://sebwebdev.posterous.com/51840968">http://sebwebdev.posterous.com/51840968</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Symfony2 Initial Project Script]]></title>
    <link href="http://dd.deep.tw//blog/2011/12/12/symfony2-initial-project-script/"/>
    <updated>2011-12-12T01:27:00+08:00</updated>
    <id>http://dd.deep.tw//blog/2011/12/12/symfony2-initial-project-script</id>
    <content type="html"><![CDATA[<p>This script use recommanded steps on symfony2 official site, just save it as <code>symfony2_init.sh</code> and <code>chmod +x symfony2_init.sh</code>, then you could start using <code>./symfony2_init.sh &lt;project_name&gt;</code> to built each of your symfony2 project.</p>

<p>Note: you must change <code>SYMFONY_VERSION</code> if you want to use new version of symfony2.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>#!/bin/sh
</span><span class='line'>if ! test $# -eq 1
</span><span class='line'>then
</span><span class='line'>    echo 'Usage: ./symfony2_init.sh &lt;project_name>'
</span><span class='line'>    exit
</span><span class='line'>fi
</span><span class='line'>
</span><span class='line'>PROJECT_NAME=$1
</span><span class='line'>SYMFONY_VERSION=2.0.7
</span><span class='line'>
</span><span class='line'># 1. fetch symfony
</span><span class='line'>curl http://symfony.com/get/Symfony_Standard_$SYMFONY_VERSION.tgz -o symfony.tgz
</span><span class='line'>
</span><span class='line'># 2. extract and rename
</span><span class='line'>mkdir $PROJECT_NAME
</span><span class='line'>tar xvf symfony.tgz -C $PROJECT_NAME
</span><span class='line'>cd $PROJECT_NAME
</span><span class='line'>mv Symfony/* .
</span><span class='line'>rmdir Symfony
</span><span class='line'>
</span><span class='line'># 3. add .gitignore
</span><span class='line'>echo '/web/bundles/
</span><span class='line'>/app/bootstrap*
</span><span class='line'>/app/cache/*
</span><span class='line'>/app/logs/*
</span><span class='line'>/vendor/
</span><span class='line'>/app/config/parameters.ini' > .gitignore
</span><span class='line'>
</span><span class='line'># 4. keep default setting samples
</span><span class='line'>cp app/config/parameters.ini app/config/parameters.ini.dist
</span><span class='line'>
</span><span class='line'># 5. git init
</span><span class='line'>git init
</span><span class='line'>git add .
</span><span class='line'>git ci -m 'Initial commit'
</span><span class='line'>
</span><span class='line'># 6. download vendor libraries
</span><span class='line'>php bin/vendors install</span></code></pre></td></tr></table></div></figure>


<p>refer: <a href="http://symfony.com/doc/current/cookbook/workflow/new_project_git.html">http://symfony.com/doc/current/cookbook/workflow/new_project_git.html</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Change RVM to rbenv]]></title>
    <link href="http://dd.deep.tw//blog/2011/12/11/change-rvm-to-rbenv/"/>
    <updated>2011-12-11T17:52:00+08:00</updated>
    <id>http://dd.deep.tw//blog/2011/12/11/change-rvm-to-rbenv</id>
    <content type="html"><![CDATA[<p>I use <code>RVM</code> for days but I don&#8217;t really like it. Someday I found there is a replacement called <code>rbenv</code> and I just give it a try.</p>

<p>It&#8217;s really simple with the following steps.</p>

<ul>
<li>Clean your <code>RVM</code> environment:</li>
</ul>


<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ rm -rf ~/.rvm</span></code></pre></td></tr></table></div></figure>


<ul>
<li><p>Please remove the following line from your <code>Zsh</code> or <code>Bash</code> environment.
<code>[[ -s "$HOME/.rvm/scripts/rvm" ]] &amp;&amp; . "$HOME/.rvm/scripts/rvm" # Load RVM function</code></p></li>
<li><p>Quit your current terminal and open new one.</p></li>
</ul>


<p>(Or just <code>source ~/.zshrc</code> or your refresh your bash settings at the same console.)</p>

<ul>
<li>Install <code>ruby-build</code>:</li>
</ul>


<p>(Because <code>ruby-build</code> has <code>rbenv-install</code> command)</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ cd; git clone git://github.com/sstephenson/ruby-build.git; cd ruby-build; ./install.sh</span></code></pre></td></tr></table></div></figure>


<ul>
<li>Intsall <code>rbenv</code>:</li>
</ul>


<p>(You must change <code>.zshrc</code> to <code>.bash_profile</code> if you use bash. Also, bash has no <code>rehash</code> command, you must use <code>rbenv rehash</code> to rehash your shell environment)</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
</span><span class='line'>$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
</span><span class='line'>$ echo 'eval "$(rbenv init -)"' >> ~/.zshrc
</span><span class='line'>$ source ~/.zshrc
</span><span class='line'>$ rbenv-install 1.9.2-p290
</span><span class='line'>$ rehash
</span><span class='line'>$ rbenv global 1.9.2-p290
</span><span class='line'>$ gem install rails # just for test</span></code></pre></td></tr></table></div></figure>


<p>refer and learn more rbenv commands:</p>

<ol>
<li><a href="https://github.com/sstephenson/rbenv">https://github.com/sstephenson/rbenv</a></li>
<li><a href="https://github.com/sstephenson/ruby-build">https://github.com/sstephenson/ruby-build</a></li>
</ol>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Use rake preview without generate all posts each time]]></title>
    <link href="http://dd.deep.tw//blog/2011/12/11/use-rake-preview-without-generate-all-posts-each-time/"/>
    <updated>2011-12-11T17:36:00+08:00</updated>
    <id>http://dd.deep.tw//blog/2011/12/11/use-rake-preview-without-generate-all-posts-each-time</id>
    <content type="html"><![CDATA[<p>I use octopress <code>rake generate</code> command each time after create or modify a post.
But I found <code>rake preview</code> seems works as the same result but it just generate the changed files?</p>

<p>So, I&#8217;ll just use <code>rake preview</code> and create posts for these days to check if it works as I think it should.</p>

<p>Update: I saw <code>Rakefile</code> and it just runs <code>jekyll</code> at background, so it could just save your time from typing <code>rake generate</code> command only.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Create a blog in 2 minutes by FuelPHP]]></title>
    <link href="http://dd.deep.tw//blog/2011/12/11/create-a-blog-in-2-minutes-by-fuelphp/"/>
    <updated>2011-12-11T16:29:00+08:00</updated>
    <id>http://dd.deep.tw//blog/2011/12/11/create-a-blog-in-2-minutes-by-fuelphp</id>
    <content type="html"><![CDATA[<p>You must have your apache/nginx + php + mysql environment built ready.</p>

<p>Install FuelPHP <code>oil</code> command:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ curl get.fuelphp.com/oil | sh</span></code></pre></td></tr></table></div></figure>


<p>MySQL:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ mysqladmin -u root create fuel_dev</span></code></pre></td></tr></table></div></figure>


<p>Config:
modify <code>fuel/app/config/development/db.php</code> with correct settings</p>

<p>Use <code>oil</code> command:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ oil create blog
</span><span class='line'>$ cd blog
</span><span class='line'>$ oil g scaffold posts title:string content:text author:string
</span><span class='line'>$ oil g scaffold comments name:string email:string comment:text
</span><span class='line'>$ oil g migration add_postid_to_comments postid:int
</span><span class='line'>$ oil refine migrate</span></code></pre></td></tr></table></div></figure>


<p>Then, browse <code>http://your_blog_path/posts</code> for posts and <code>http://your_blog_path/comments</code> for comments</p>

<p>And you could also see your fuel_dev database has the following structure:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>mysql> desc posts;
</span><span class='line'>+------------+--------------+------+-----+---------+----------------+
</span><span class='line'>| Field      | Type         | Null | Key | Default | Extra          |
</span><span class='line'>+------------+--------------+------+-----+---------+----------------+
</span><span class='line'>| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
</span><span class='line'>| title      | varchar(255) | NO   |     | NULL    |                |
</span><span class='line'>| content    | text         | NO   |     | NULL    |                |
</span><span class='line'>| author     | varchar(255) | NO   |     | NULL    |                |
</span><span class='line'>| created_at | int(11)      | NO   |     | NULL    |                |
</span><span class='line'>| updated_at | int(11)      | NO   |     | NULL    |                |
</span><span class='line'>+------------+--------------+------+-----+---------+----------------+
</span><span class='line'>6 rows in set (0.02 sec)
</span><span class='line'>
</span><span class='line'>mysql> desc comments;
</span><span class='line'>+------------+--------------+------+-----+---------+----------------+
</span><span class='line'>| Field      | Type         | Null | Key | Default | Extra          |
</span><span class='line'>+------------+--------------+------+-----+---------+----------------+
</span><span class='line'>| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
</span><span class='line'>| name       | varchar(255) | NO   |     | NULL    |                |
</span><span class='line'>| email      | varchar(255) | NO   |     | NULL    |                |
</span><span class='line'>| comment    | text         | NO   |     | NULL    |                |
</span><span class='line'>| created_at | int(11)      | NO   |     | NULL    |                |
</span><span class='line'>| updated_at | int(11)      | NO   |     | NULL    |                |
</span><span class='line'>| postid     | int(11)      | NO   |     | NULL    |                |
</span><span class='line'>+------------+--------------+------+-----+---------+----------------+
</span><span class='line'>7 rows in set (0.07 sec)</span></code></pre></td></tr></table></div></figure>


<p>refer: <a href="http://thinklikearobot.com/2011/fuelphp/fuelphp-blog-tutorial-part-1/">http://thinklikearobot.com/2011/fuelphp/fuelphp-blog-tutorial-part-1/</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[重讀 iWoz 雜感]]></title>
    <link href="http://dd.deep.tw//blogs/iwoz-notes"/>
    <updated>2011-10-01T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/172</id>
    <content type="html"><![CDATA[<p><strong>前言</strong></p>
<p>很抱歉，標題跟我的人一樣沒有譁眾取寵。</p>
<p>跟以往一樣，這是廢文一篇，建議你離開，否則別怪我沒提醒你浪費時間。</p>
<p>這篇原本希望在別的地方發表的，但我想法很多，不知不覺篇幅超過太多，加上我覺得這本 2007 年出版的書，大家應該都有看過，所以，我想發表另一篇，介紹另一本書，來表達我的看法。</p>
<p><strong>我的背景</strong></p>
<p>我從小生長在農村，爺爺奶奶總希望我考個公務人員。在決定到台北讀大學之前，我也覺得，我的人生就那樣了吧。儘管我現在可以大聲說，我每天都在寫 code。試圖改變世界，至少改變我的人生。</p>
<p>我大學室友是個國中就在幫師長處理電腦疑難雜症的電腦神童，那時候我秉持著「自己用的電腦自已修」，以及跟他學著組裝電腦、使用電腦，那時也剛好在學校的 <span class="caps">BBS</span> 上認識現在的老婆。後來系上發生一些事情，加上我不知何時看待事情的角度變成「如果這東西我不做的話，就別奢望別人會去做了」，讓我認識了我這一生最想貢獻的電腦作業系統 ── FreeBSD。</p>
<p><strong>沃茲尼克</strong></p>
<p>然後我們開始來談沃茲尼克這位前輩──具有 Hacker 精神，矽谷唯一公認的好人。<br />
（很抱歉我必須先提我的經歷，因為這樣才是最真實的共鳴）。</p>
<p>以前的媒體跟現在的一樣，所以不管你是不是蘋果電腦的愛用者，你會知道賈伯斯是誰，但沒聽過沃茲尼克 ── 另一位蘋果電腦共同創辦人。我四年前看到這本書時，真的心裡一直悸動，尤其是第一章開頭，就點明了「工程師可以改變世界，改變很多人的生活方式」。</p>
<p>中間的章節我有點忘了，或是我覺得那只是一直在闡述沃茲尼克這個人的一些特殊行徑，以及從家庭教育看來，如何讓他有這樣的想法以及可以任意發揮。直到最後幾個章節，開始一些收尾：</p>
<ul>
	<li>蘋果電腦「公司」，是賈伯斯跟沃茲尼克共同創辦，但最初幾部蘋果「電腦」，都是沃茲尼克獨自開發。不管那些媒體（儘管是華爾街日報），也都報導著符合著你想像中的樣子，沒錯，那一切都是賈伯斯金童的功勞。</li>
</ul>
<ul>
	<li>人生目標：「有意識地檢視自己想成為怎麼樣的人，過什麼樣的生活，參與構建什麼樣的社會」，原文如下：</li>
</ul>
<blockquote><p>I felt these were really mighty goals in life: looking<br/>conscious at the sort of person you want to be, the sort of life <br/>you want to live, the sort of society you want to help build.</p></blockquote>
<p><strong>時間不夠，來草率結尾</strong></p>
<p>如果你覺得不想花時間讀完這本書，請讀第 1 章、第 19~20 章，因為其他的我在四年過後的今天卻已沒力拿起來翻閱。（我不是推銷書籍，我也不是寫推薦序，你可以選擇相信。）</p>
<p>對我而言，喜歡用 FreeBSD，不足以讓我去學寫程式；一定要幫 FreeBSD 做些事，最直接的方式就是去學寫程式。於是我這樣做了，你看到的，現在的我，就開始了「寫 code 人生」。</p>
<p>沃茲尼克從年少到現在的人生真的比我相對精采很多，但那不是我可以去羨慕的，我正在過看似屬於我自己的人生；我想要逐步掌握自己的人生，創造東西，改變世界。</p>
<p>我不過是個不務農的農家子弟；只是剛好成為碼農而已。我會好好看著自己往什麼地方走去，即使前面的道路總如他人說的，看似佈滿荊棘。</p>
<p>P.S. 這篇文章是用 vim + <a href="https://github.com/honza/writer.vim" title="writer.vim" target="_blank">https://github.com/honza/writer.vim</a> 寫成，感謝 open source，儘管我現在還沒為 open source 貢獻過什麼。</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[一直都不算認真讀書的我，居然像極失去信念般地丟掉那些雜誌]]></title>
    <link href="http://dd.deep.tw//blogs/forget-what-they-say-and-keep-going-by-myself"/>
    <updated>2011-05-07T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/166</id>
    <content type="html"><![CDATA[<p>我對自己說，我一直是靠日本卡通勵志的。GUNDAM <span class="caps">SEED</span>, <span class="caps">FULL</span> <span class="caps">METAL</span> <span class="caps">PANIC</span>, 史上最強弟子兼一。</p>
<p>2007 年，25 歲的我在超商偶然買了《30 雜誌》，我是為了和民居食屋的「渡邊美樹」社長介紹一文而買的。</p>
<p>不達目的絕不罷休的渡邊社長在那篇報導被標註的重點有：</p>
<ul>
	<li>母親去世、父親公司倒閉，因為「憤怒」，他誓言一定要當上社長！</li>
	<li>喝酒抱怨絕不會發生在他身上，他認為與其花同樣時間，不如用來解決問題。</li>
	<li>他會用「要成為世界上蒐集最多感謝的集團」，來勉勵自己千萬別認輸。</li>
	<li>勇敢找自己喜歡的工作，如果找不到，就自己創造！</li>
</ul>
<p>渡邊美樹的記事本，為夢想訂定實現日期；工作、家庭、休閒、健康、財富、進修等，六項夢想兼顧。特別在他遇到困難的時候，就會拿出那些自己曾經寫下的夢想字句，逐一朗讀，不斷自我想像。</p>
<p>不相信世界上會有這種事情發生？不相信會有  λ(Lambda)-Driver？那就去相信吧！就去做吧！</p>
<p>然後呢？這本雜誌今天我就要把它拿去回收了；陸陸續續零散地閱讀了幾期，我再也沒有發現它值得我收藏的地方，自從那些採訪內容我不再感興趣之後。</p>
<p>我不是企業要的接班人，我不是 CEO，我沒有競爭力，更不具有那些報導中的幾大成功的關鍵能力。我也絕不是媒體會喜歡的人。</p>
<p>我是我自己，看似睥睨一切卻又沒有想法的我自己。</p>
<p>成功有很多種，等你成功後媒體就會來接近你，然後世界又會多一種成功方法；屆時的你會貴為老師、大師、前瞻者，你還可以引領潮流；你一下子就會成為洞悉未來的人，你的一言一語會被稱作神諭，你再也不會為錢煩惱，錢對你來說只是存簿上的數字。你一說奈米，所有產品技術都說自己用了奈米；你一說雲端，大家就飄在雲端。即使那些少到看不見的壞蛋們總是批評婚姻專家都離婚收場；但你別理他們，我說了，他們都是壞蛋，謗神謗佛者，都是壞蛋。</p>
<p>那自己覺得成功，但還沒有媒體來採訪時該怎麼辦呢？君不見業配新聞天天有，大師高手何其多？</p>
<p>成功的人，不會像我在此時浪費時間寫廢文；小時候的夢想已離我遠去，中學的我說要服務人群，看來我也沒有達成。</p>
<p>假裝聰明很難，我當實際上的笨蛋，過得其實還算開心。</p>
<p>29 歲的我，在此時喪失自己的信念，我是永遠的社會邊緣人，反社會性格的我，決定就這樣繼續苟活下去。</p>
<p>對了，最近戲劇《犀利人妻》很紅，也很好看；我要學劇中的謝安真，對自己說：「不要怕。」未來不管發生什麼事情，我都決定苟活了，所以，不要怕。</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[溫習過年學的 Lua]]></title>
    <link href="http://dd.deep.tw//blogs/learn-lua-at-chinese-new-year"/>
    <updated>2011-04-29T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/161</id>
    <content type="html"><![CDATA[<p>過年期間因為想要抄近路寫東西所以去學了 Lua， 不過後來發現還是用原汁原味的語言比較能讓使用者有美好的體驗。</p>
<p>但是，沒錯，我「又」改觀了；所以又開始來溫習一下 Lua。</p>
<p><a href="http://deep.tw/others/lua/beginning-lua-programming.html" title="過年寫的 Lua 筆記" target="_blank">過年寫的 Lua 筆記在此</a>。</p>
<p>我已經忘記的部分有：</p>
<ul>
	<li>不等於，要用 ~=</li>
	<li>用 nil</li>
	<li>串接用 ..</li>
	<li>計算長度可以用 string.len(字串) 或是 #字串</li>
	<li>if then end</li>
	<li>while do end</li>
	<li>for do end</li>
	<li>repeat until</li>
	<li>pairs, ipairs</li>
	<li>使用 tables 做到物件導向</li>
	<li>select 取值</li>
	<li>撰寫 module</li>
	<li>require &#8216;strict&#8217;</li>
</ul>
<p>很好，看似我全部忘光光了，但是我還沒練成太極拳啊 Orz&#8230;<br />
感謝自己過年前有認真寫筆記，現在寫完 Blog 已經又複習一次了 :D</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[開始同步到社群網站]]></title>
    <link href="http://dd.deep.tw//blogs/sync-to-social-network"/>
    <updated>2011-04-29T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/159</id>
    <content type="html"><![CDATA[<p>雖然一直都沒在經營部落格，但是看著諸多神人們每天都留下自己的神蹟，我也想開始同步一些廢話到各個網站去。</p>
<p>誠如宗董說的，「廢話的定義：聽起來好像很具體，實際上是很空洞的話，看起來好像講到問題的徵結了，實際上是在迴避所有的答案，所以這段話聽起來很流暢，但是他註定是要作廢的。」</p>
<p>是的，這是一篇註定作廢的廢文。</p>
<p>而這樣的廢文，我還要同步到社群網站去，實在是很浪費地球資源啊。</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[嘴砲工程師？]]></title>
    <link href="http://dd.deep.tw//blogs/I-want-to-code-and-not-just-talk"/>
    <updated>2010-05-01T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/147</id>
    <content type="html"><![CDATA[<p>我發現自己已經很少寫 code，反倒一直看很多程式的書。(該檢討)</p>
<p>昨天與 Mat 及另一位朋友(就不具名了:P)聚餐，我覺得我愈來愈容易去講出一些不知道對不對的道理；整場下來就屬我最為聒噪。<br />
我根本不想走向嘴砲工程師的道路，也不知道自己是不是正在走；我只知道，如果我不寫  code，我就距離自己要完成的夢想愈來愈遠。</p>
<p>書裡教的東西，很容易被我拿出來講，但是我自己也知道盡信書不如無書；只是，像我這樣沒經驗的人，如果不大量吸取經驗，我要怎麼有機會去聽懂傳說中的大大講出來的深奧道理？再一知半解下去，我只會愈來愈容易被路邊史萊姆包圍，而沒辦法謁見傳說中的魔王。</p>
<p>說要寫  code，但是又寫著什麼 code  都沒有的 blog；我還真是個糟糕的人啊:p 這就是邁向嘴砲工程師之路，我要設法避開才行。</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[你不用吵，我本來就會給你糖吃，而且我早就準備好禮物要給你]]></title>
    <link href="http://dd.deep.tw//blogs/be-good-to-people"/>
    <updated>2010-03-24T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/143</id>
    <content type="html"><![CDATA[<p>我這輩子最糟糕的一點，就是我不想說服你，反轉你；我只會讓自己朝著這樣的理想邁進。所以，以下那些話，對別人而言，也只能聽聽就算。</p>
<p>今天搭乘某公司航班，因為飛機停飛所以造成我們這群旅客的不便；某小姐舉出相同公司在日本的實例，是二話不說馬上賠償，而且還規劃好航班讓你安心搭機，不需要亂轉機&#8230;但是我們在台灣遇到的處理方式卻是客服人員急著讓你去飯店等候隔一天的班機，然後就這樣結束。</p>
<p>嗯，隔一天的班機，返回時間又沒辦法有那隔一天的班機座位；然後再聽到大家各自聽到的，由個別確認，到集體確認的謊言。嗯，這真是個「深刻體驗」逆向公關，或是不稱職客服等相當寶貴的一課。</p>
<p>我們一行人，沒班機可搭的一行人，從互不相識，到整合各自的聲音，到統一發聲，同一堅持，最後終於有滿意的結果，得到可以接受的賠償；不過當然還是要說一下：台灣，並沒有比別的國家 Low，「君君、臣臣、父父、子子」，只要做得比客戶想得更多，去傾聽客戶的聲音，去累積經驗，去學習用不同的視野看世界&#8230;我相信，我們本來就是可以是世界頂級。</p>
<p>絕對不要讓客戶覺得自己很 Low，需要主動來要求賠償、要求滿意的服務，要求在損失造成後的處理補足。</p>
<p>「你不用吵，我本來就會給你糖吃，而且我早就準備好禮物要補償你的損失」我希望我可以做到這一點。不管我現在是員工、主管、老闆，還是其他身分，我由衷希望自己千萬不要忘記這一刻。在平常就多為其他角色的人多做一些，多想一些，即使出了紕漏，還是有挽救的餘地。</p>
<p>大學時，以及現在，我還是喜歡公關以及危機處理；事實上，把事情妥善做好，把怨氣怒言處理好，不就是公關？不就是品牌？不就是大公司的氣度？就算你身處的不是大公司，我覺得如果大家都這樣做，早也已經是大公司了。</p>
<p>我希望我永遠不會忽視客戶實際的聲音，最底層真正做事人的聲音；以及，傾聽自己內心深處認為何者為善的聲音。</p>
<p>「在外商公司福利好、日本服務很好」我相信台灣自己的公司本來就可以，我們一直都可以做到，不是嗎？我們服務顧客的心，對應希望託付自己、接收服務的心，加上「信任」的建立，不是本來就是企業與服務對象的基礎嗎？那就是了。</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[勇者大人，謝謝你！]]></title>
    <link href="http://dd.deep.tw//blogs/thanks-for-the-super-man"/>
    <updated>2010-03-20T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/141</id>
    <content type="html"><![CDATA[<p>以前跟隨勇者大人揮劍砍魔王的時候，我知道自己充其量也只是戰場上撿石頭丟向魔王而已，根本發揮不了什麼作用；甚或魔王呼氣一下，我就要躲在背後仰賴勇者大人給的屏障；勇者大人這種一手被縛一手作戰的方式，就彷彿麥克阿瑟將軍在二次大戰的英勇戰績一樣。</p>
<p>昨天手無寸鐵迎戰史萊姆時，才終於發現自己的心魔&#8230;不，那只是千萬隻心魔的其中之一而已，而且那種全心全意對上的感覺，讓我一回到家累到倒頭就睡；今天好險順利打倒古早遺留下來的系統、資料庫、程式等三合一複合蟲型史萊姆了，而且沒有耗費多少時間就綁住史萊姆&#8230;這是自身 Level up 的體驗(現在等級是被標註為 Lv 1.000000000000000002)，我相信，且知道這就是 Level up 的磨練。</p>
<p>在這 Lv1 的戰場上，幾乎無時無刻就是史萊姆來襲，要不就是你要買裝備、技能書練等級；當戰士的兒子、法師的兒子、魔法學校的畢業生已經在 Lv99 打怪的時候，我剛丟掉手上的筆，踏上這戰場，而且身上沒有補血補魔的藥水；如果當時沒有勇者大人提供的庇護，我想我早就是路邊自動消失的枯骨。</p>
<p>勇者大人，謝謝你。</p>
<p>我會主動前往黑暗森林裡練功，也會存錢去城鎮購買好的裝備及武器；我會珍惜路上遇到的路人、或是傳說中的賢者給的建議；如果我這一生只能向魔王丟石頭，我也會開始著手打造投石器。</p>
<p>我還活著，在這戰場上。我沒有辦法戰到剩下一兵一卒，因為我就只有隻身一人；刀與劍也許不是我所能拿起的武器，但是木棍與繩索將成為我的摯友；傷痕便是這路途上的印記，史萊姆吐出的汁液，將一層又一層染深我的外衣。</p>
<p>勇者大人，我還活著！謝謝你！</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[前輩之所以是前輩，完全是因為我自己不夠努力]]></title>
    <link href="http://dd.deep.tw//blogs/work-hard-and-I-will-be-stronger"/>
    <updated>2010-03-09T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/137</id>
    <content type="html"><![CDATA[<p>可以怪命運，可以怪際遇，但是怪不了自己不夠努力。</p>
<p>不是南北拳的問題，是我的問題。</p>
<p>加油！！</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[囫圇吞棗-《軟件隨想錄》-分解時間、追蹤時間，預見未來，將任務切細再切細]]></title>
    <link href="http://dd.deep.tw//blogs/joel-on-software-note-5"/>
    <updated>2010-03-06T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/135</id>
    <content type="html"><![CDATA[<p>我從另一本勵志書看到了個小故事：有人訪問了連續好多屆都得到馬拉松冠軍的選手，問他成功的撇步是什麼？他說：「我原先也跟大家一樣，覺得終點線就在漫漫長路的彼端，常常跑不到中途就覺得沒希望了；後來我習慣在正式比賽前一天，沿路繞過一遍，將長程的路途切分成很多小目標，沿路做記號；我所要努力的就是沿途逐步達到這些小目標，等到這些小目標一段段都完成了，那麼終點線就在眼前了。」</p>
<p>我還是覺得，寫 code 即生活；寫 code 就是砥礪心志。</p>
<p>摘錄、改寫：</p>
<ul>
	<li>如果每個日程規劃是以天為單位，我就認定那是沒用的；你必須將日程規劃先分解成一個個非常小的任務，以小時為區段，確認這些單一任務不能超過 16 小時；實際上，就是要強迫你自己把程式命名這種細微的片段都要想過；你沒想過你要做哪些功夫才能完成程式，你的程式要完成就可能遙遙無期。</li>
</ul>
<ul>
	<li>詳細填寫工作時間記錄表 (TimeSheet)，久而久之，將有助你把自己完成目標的預估時間愈估愈準；多數估計的時間總是會失準，因為估算時常常沒有考慮到修正錯誤、小組開會、喝咖啡的時間等，更何況有些 PM 會三不五時來問你工作進度，也打斷你的工作時間。</li>
</ul>
<p>你可別以為只要把每項任務預估的時間都加總起來就是程式做完的時間，系統要調參數，工作就要調時數；多做幾個專案，你就會知道自己預估好後，還要加上多少時間才是真正做完的時間。</p>
<ul>
	<li>別管老闆多會打擾你，工作時間表訂出來，按照原先訂立的工作時數去做 (看到這裡你的老闆應該會翻臉)，不過相信我，這會讓你實際完成任務以及日程規劃達到最佳效果</li>
</ul>
<p>那些建議：</p>
<ul>
	<li>只有第一線的程式員才能提出完成日期的估算值</li>
	<li>一發現錯誤就立即修正，並將花費的時間也計算進去</li>
	<li>防止管理層向程式員施加壓力，或要求他們加快開發速度</li>
	<li>水杯裝滿了，就無法再倒水進去了；不是先把水倒出來，再加水進去，就是維持原樣</li>
</ul>
<p>所堅持要做完的功能不一定是對的；尤其是當你在開發下一版時，應該就會發現。不過誰知道呢？就在東刪西減中，把成果以完整為優先要務吧。</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[囫圇吞棗-《軟件隨想錄》-寫作、用英文寫作、學 C、瞭解個體經濟學]]></title>
    <link href="http://dd.deep.tw//blogs/joel-on-software-note-1"/>
    <updated>2010-03-05T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/131</id>
    <content type="html"><![CDATA[<p>寫作，表達自己的想法，讓自己的程式有機會給別人使用；而不是放到 SourceForge 或 google code 後，就彷彿石沈大海，乏人問津。</p>
<p>摘錄、改寫：</p>
<ul>
	<li>一個普通程式員以及優秀程式員的區別，不在於他們懂的程式語言誰多誰少，也不在於他們使用的是 Java 或 Python，而在於他們能否與他人交流思想；如果你能寫出清晰的註釋以及技術規格說明書，其他程式員就可以瞭解你的 code，並且在自己的 code 中使用，而不必重造輪子。</li>
</ul>
<ul>
	<li>為什麼要學 C 語言？你一定要花時間來瞭解機器原理才能寫出高效能的 code；要不你將無法開發 Compiler 以及 OS。<br />
我還是要重申，我並不是看了這段話，才堅決要寫 C；我只是希望有朝一日自己的 code 可以被放到某大學開發的 OS 裡。所以學 C、機器原理，都不是為了高人一等(我這種頭腦只能囫圇吞棗、做個追隨者)，而是剛好這條道路上要學會並且寄予重視的標的而已。</li>
</ul>
<p><a href="http://zh.wikipedia.org/zh-tw/%E5%BE%AE%E8%A7%82%E7%BB%8F%E6%B5%8E%E5%AD%A6">個體經濟學（Microeconomics），有時也被稱為價格理論（Price Theory），主要研究個體消費者，企業，或者產業的經濟行為，及其生產和收入分配。</a></p>
<ul>
	<li>你必須知道什麼叫做個體經濟學，也只有這樣，你才能知道為什麼現在的生意是這麼做的</li>
</ul>
<p>如果中文世界通用；那麼請不必理會用英文寫作這句話。</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[囫圇吞棗-《軟件隨想錄》-在貝爾通信研究所工作，最美好的事就是這裡的人]]></title>
    <link href="http://dd.deep.tw//blogs/joel-on-software-note-2"/>
    <updated>2010-03-03T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/127</id>
    <content type="html"><![CDATA[<p>你當然知道，也想像過在知識的殿堂裡，每個人都在跟他人談論著知識。你也知道，在員工下班後，到底會聚在一起討論老闆的缺點，還是這裡的每個同事是多麼地美好。</p>
<p>摘錄、改寫：</p>
<ul>
	<li>你要不斷提醒自己，當你公司的求職者回到家裡，他們必須決定到哪裡工作；如果他們在你公司遇到的每個人都面色憂鬱，他們絕對對你的公司不會有什麼好印象。</li>
	<li>我公司原先招募新人的理念是：聰明、能完成工作；但真正開始運行時，我們馬上意識到要加入第三點；不收怪人。誰願意在一家需要忍受怪人的公司裡工作呢？</li>
	<li>程式員希望自己之所以被雇用，是因為自己的技能；希望被別人當成專家那樣對待，有權力在自己的專業領域中做出決定。</li>
	<li>大多數的程式員工作不是為了謀生，他們要的不是一份朝九晚五的工作，他們要的是工作所能帶給他們的意義。他們想要認同他們的公司。年輕的程式員尤其會被有理想有抱負的公司所吸引──許多公司與 open source 或自由軟體都有一些聯繫，這使得他們可以吸引那些有理想主義傾向的程式員。</li>
</ul>
<p>讀這篇時，不自覺以為自己在抄書；我完全同意作者的看法。程式設計以及其他行業一樣，我所理解的程式世界，即是待人處世之道。</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[囫圇吞棗-《軟件隨想錄》-追蹤優勝者，並且設法結識他們]]></title>
    <link href="http://dd.deep.tw//blogs/joel-on-software-note-3"/>
    <updated>2010-03-02T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/122</id>
    <content type="html"><![CDATA[<p>在寫這篇文章之前，我必須要對我的朋友（如果認識我，並且覺得我很厚臉皮去結識你）說，我從來不是因為看了什麼書，而跟著做；我只是單純想要認識你──更何況，我今天才買到這本書。</p>
<p>如果你之後被我厚臉皮地去認識，然後不小心看了這篇文章&#8230;朋友，我要告訴你，我想認識你，不是我工於心計，我只是一個單純想要學寫程式的人而已。請教我寫程式！以及，由於這個出發點，我一定會認識更多人，這絕對是自然形成的路，而非人為刻意。</p>
<p>摘錄、改寫：</p>
<ul>
	<li>追蹤優勝者，並且設法結識他們</li>
	<li>你要不，就走出去。（參加他們會去參加的聚會）</li>
	<li>你要不，就找實習生。（在優秀人才還在當學生的時候，你就要出手了！）</li>
	<li>你要不，就建立自己的社群！（例如程式討論區；一堆優秀人才在你需要人手的時候，早就在你周圍候選了）</li>
</ul>
<p>實習生沒經驗？拜託！我遇到的實習生每個都比我厲害！我絕對是當時我老闆用的最笨的一個人（現在也還是），所以我才能知道自己的不足。</p>
<ul>
	<li>一些真正優秀的程式員，往往從 10 歲就開始編程；當其他同齡孩子在用腳踢一個被稱作球的圓形物體時，他們卻在爸爸的書房裡試著編譯 Linux 的內核<br />
我看到很多人的確就是這樣；不是說踢球不好，而是說踢球踢 10 年，你也會變成足球大師；請奮起，並努力不懈！</li>
</ul>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[囫圇吞棗-《軟件隨想錄》-他的手裡拿著你寫的規格說明書！]]></title>
    <link href="http://dd.deep.tw//blogs/joel-on-software-note-4"/>
    <updated>2010-03-02T00:00:00+08:00</updated>
    <id>http://dd.deep.tw//blogs/119</id>
    <content type="html"><![CDATA[<p>我永遠相信每個人都希望自己的才能受到老闆重視。</p>
<p>摘錄、改寫：</p>
<ul>
	<li>「他手裡拿著你寫的規格說明書！」</li>
	<li>「說明書空白處，他還仔細寫了評語！」</li>
	<li>「說明書每一頁的空白處，他都寫了評語！」</li>
	<li>「天哪！他居然從頭看到尾，還在空白處寫了評語！」</li>
	<li>「我明明是在 24 小時之前才拿給他的！所以他一定是在昨天晚上看的！」</li>
</ul>
<p>比爾●蓋茲真是個好老闆。老闆要帶技術員的心，絕對不是讀讀 <span class="caps">MBA</span> 就可以。</p>]]></content>
  </entry>
  
</feed>

