<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8373179628199315729</id><updated>2024-10-24T10:44:54.092-07:00</updated><category term="心情"/><category term="文章分享"/><category term="Ｃ語言"/><category term="python"/><category term="C語言"/><category term="Libev"/><category term="android"/><category term="apache"/><category term="ev_async"/><category term="libev thread"/><category term="linux"/><category term="openswan"/><category term="proxy"/><category term="vpn"/><category term="創新革命"/><category term="程式設計文章"/><title type='text'>Chi&#39;s programming</title><subtitle type='html'>程式設計的瘋人院</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-1638174097957346525</id><published>2014-09-04T21:20:00.002-07:00</published><updated>2014-09-04T22:41:44.566-07:00</updated><title type='text'>製作 MSI 檔案 (make msi file from exe)</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
一般我們編譯完程式 &amp;nbsp;在windows 底下常見的就是 exe安裝檔&lt;br /&gt;
透過exe安裝檔我們就可以執行安裝 為何要轉換成 MSI呢?&lt;br /&gt;
&lt;br /&gt;
目前kaga 所遇到 需要轉換成 MSI檔的原因就是 配合AD server 派送安裝&lt;br /&gt;
由於AD server 只能使用MSI檔進行派送安裝&lt;br /&gt;
所以勢必得轉換過去&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #223f51; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;&quot;&gt;&amp;gt; MSI檔案是主要與Windows Installer File (Microsoft Corporation)相關的雜項檔案。&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #223f51; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: blue; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; line-height: 21px;&quot;&gt;&lt;b&gt;Step1 : 事前準備&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 環境&lt;br /&gt;
這邊Kaga 十分建議 使用VM 的環境來建構MSI檔&lt;br /&gt;
由於 在製作MSI檔 有點類似 比對安裝前安裝後 整個系統檔案的差異&lt;br /&gt;
所以越乾淨的環境 製作的速度比較快 也比較好處理&lt;br /&gt;
&lt;br /&gt;
*kaga 使用的是 VM windows 7 32bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 工具&lt;br /&gt;
WinINSTALL-LE (好像也有 PRO 版本 但這版本 已經足夠應付我的工作)&lt;br /&gt;
&lt;a href=&quot;https://drive.google.com/file/d/0B96kg9peCiO5Z0tNMEZiYUhZUm8/edit?usp=sharing&quot;&gt;備份檔&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;Step2 : &amp;nbsp;掃描環境變數&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;***建議使用 Administrator 執行 這攸關你MSI檔權限問題~&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwhpHHkeaqzvKa1hERtI1wTxR8Q7c39Vkftj8E6r9Tej2dOzbw45py4C-Fl-Tdz_nM5EIujtfWl7TD1-kcfiViNG5Lx8nK7gACzeHeioxQ2zI7pbYGZKvy-MwSUHa5P288gpmz3-HGKKs/s1600/%E6%9C%AA%E5%91%BD%E5%90%8D.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwhpHHkeaqzvKa1hERtI1wTxR8Q7c39Vkftj8E6r9Tej2dOzbw45py4C-Fl-Tdz_nM5EIujtfWl7TD1-kcfiViNG5Lx8nK7gACzeHeioxQ2zI7pbYGZKvy-MwSUHa5P288gpmz3-HGKKs/s1600/%E6%9C%AA%E5%91%BD%E5%90%8D.png&quot; height=&quot;271&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
執行winINSTALL 程式&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-9WsZJR9AvZa-42jiz5axTaGlPdcxaH-pujo8zv8sFH1ai8x2QC8rNJkmJorFIECX_oQotIeHHKkiPI1HJaycqUXSXSESmedlZmp-1e3RBjqKNxAUqm3Mz_z-PCr5f7IdPHwJAUcFDb4/s1600/scan1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-9WsZJR9AvZa-42jiz5axTaGlPdcxaH-pujo8zv8sFH1ai8x2QC8rNJkmJorFIECX_oQotIeHHKkiPI1HJaycqUXSXSESmedlZmp-1e3RBjqKNxAUqm3Mz_z-PCr5f7IdPHwJAUcFDb4/s1600/scan1.png&quot; height=&quot;378&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
點選 Windows Installer Packages 後 左上方會出現一個放大鏡圖示 點選它&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Run Discover 開始掃描未執行exe安裝檔前 的環境&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPM_Wq_HAj38NDrUrnKfy2XFviJhRvfD8S1YC4HVLwaCp-WFHnh-Avbjkc6oiI-71rHDMA9pGfZI_Nn_AMPiLXm4WCYp5KnEI4jRn516ldomyrYcYJ8EvZEbB3TelnlvO7IU5qFQPmKA8/s1600/scan2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPM_Wq_HAj38NDrUrnKfy2XFviJhRvfD8S1YC4HVLwaCp-WFHnh-Avbjkc6oiI-71rHDMA9pGfZI_Nn_AMPiLXm4WCYp5KnEI4jRn516ldomyrYcYJ8EvZEbB3TelnlvO7IU5qFQPmKA8/s1600/scan2.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
在 Arguments 可以帶參數 kaga使用目前都直接空白&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
詳細的參數設定&amp;nbsp;可以參考文末的PDF 說明檔&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQzzG_ZTw7_KHQnbCDkzO5uWfo584einXdvMK7Nd3WKABAg6VpOyqZkukgmiqKgmA2Q6fM-lezEJaihCWy9EmDxYK7KPpsVJRVtftYcBIZX2dQPeqTh8RncaFnr1wBwz9X3q8HVtQd2GY/s1600/scan3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQzzG_ZTw7_KHQnbCDkzO5uWfo584einXdvMK7Nd3WKABAg6VpOyqZkukgmiqKgmA2Q6fM-lezEJaihCWy9EmDxYK7KPpsVJRVtftYcBIZX2dQPeqTh8RncaFnr1wBwz9X3q8HVtQd2GY/s1600/scan3.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;首先要建立專案的名稱 可以幫你產生資料夾&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-GK4EOg4JnUNEPM1tPS3lQk2jPF_gJ7EMHQrSwifRjYjRpXcqKV8mGbT_fO63v_zZIVwbx2QXRT-avkC5fAbJbGcoKLYP8qogXSEmrW8GZHeMzH9zIcQQjkguLaigEPB0PbdIUR9IAP8/s1600/scan4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-GK4EOg4JnUNEPM1tPS3lQk2jPF_gJ7EMHQrSwifRjYjRpXcqKV8mGbT_fO63v_zZIVwbx2QXRT-avkC5fAbJbGcoKLYP8qogXSEmrW8GZHeMzH9zIcQQjkguLaigEPB0PbdIUR9IAP8/s1600/scan4.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
這邊是要你指定 它所產生暫存檔案要存放在哪個空間&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
一般就直接選擇C 就可以了&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2mSQbFfC_cl0L7Wqp3VekBryoZrMm_gybWrlYKVOGZbodTkN6Rbo9m5VPGrtHKCwTwVmSEjjGP3EbgMp5u4sA9DU3oYow0ITDst2MbTNA8FaqJd2uHIw_HDZ3WbKDnI9yzG7cUtRiY5g/s1600/scan5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2mSQbFfC_cl0L7Wqp3VekBryoZrMm_gybWrlYKVOGZbodTkN6Rbo9m5VPGrtHKCwTwVmSEjjGP3EbgMp5u4sA9DU3oYow0ITDst2MbTNA8FaqJd2uHIw_HDZ3WbKDnI9yzG7cUtRiY5g/s1600/scan5.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
選擇 要掃描的空間,可以選多個&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
看你的exe安裝檔 安裝後檔案會需要存取於那些空間&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
接下來 會出現 各種系統檔案與資料夾的列表&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
主要讓你 可以篩選需要掃描的檔案是否移除或者增加&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
這邊kaga 就沒特別截圖了 通常都直接下一步&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red; font-size: large;&quot;&gt;掃描ing.......&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #e69138; font-size: x-small;&quot;&gt;PS:掃描的速度跟你的選取使用空間有關 檔案越多掃得越久&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 所以環境越單純越好&amp;nbsp;切記&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_3n-rkDo5HNaHmvHofFtcc59OpNFIFA6i_iDb6NtWcYyyGneeG5h5wHjdEx6ZoGV-tO4yFOlm-G_ouuickh5pKoXR4V-piP1PbfFg4HcL3I3OaIadIgmx35kRRbicMeobWAjlMoJMMN8/s1600/scan6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_3n-rkDo5HNaHmvHofFtcc59OpNFIFA6i_iDb6NtWcYyyGneeG5h5wHjdEx6ZoGV-tO4yFOlm-G_ouuickh5pKoXR4V-piP1PbfFg4HcL3I3OaIadIgmx35kRRbicMeobWAjlMoJMMN8/s1600/scan6.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
最後會跳出這個視窗 問你是否直接執行 exe安裝檔&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
這只是方便你直接操作 如果按取消再去執行安裝 也可以的&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;Step3 : 安裝exe檔案 &amp;nbsp;... 就執行你的EXE檔麻&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
*** 如果你的程式會需要跑服務類型 建議可以在安裝後重新開機一次 再繼續下面的步驟&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;這樣可以存取到比較正確的 執行權限&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;Step4 : 再次掃描環境變數&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt; &amp;nbsp;再次打開 winInstall &amp;nbsp;一樣點擊 放大鏡圖示 Run Discover&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCuEb7N-cI0aCrsdBm5ArCaqyKMufl7nDphdIHxc8PmK9NN9I0il5qBVl4iQ088MC14Z8pkytD-TyndFN2kacHSnBYYAK8V303x4Pd3MH_3QJvJ76JJ27Nsu4qv55FGYInUTsrDqsT0eA/s1600/scan8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCuEb7N-cI0aCrsdBm5ArCaqyKMufl7nDphdIHxc8PmK9NN9I0il5qBVl4iQ088MC14Z8pkytD-TyndFN2kacHSnBYYAK8V303x4Pd3MH_3QJvJ76JJ27Nsu4qv55FGYInUTsrDqsT0eA/s1600/scan8.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
第二次運行 discover ,會出現不一樣的選單 第一個就是&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
你已經掃描過一次要進行第二次的差異比對&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
如果你選了第二個 則會當成第一次 掃描&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; color: blue; font-weight: bold; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;Step5 : 修改 第一次產生的MSI檔&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-weight: bold;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 通常我們 第一次產生的MSI檔 不建議直接使用&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 因為其中會包含不少 跟我們安裝不相關的內容 是需要經過調整的&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ex: 剛好在掃描後 才打開skype 就會連 skype 的暫存檔都被認為有變更而被帶進來MSI檔&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;color: blue; font-weight: bold; margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4oRupWlq6XqHwYFUpHvU-NNp6MS087sQWMs2UywYAXtY-n84yCDduWdgIz9MIfoNToSgytPn7n-tRWoNLGR4vTdcpiB8ZYA3hSe9fp5-MUeWeiHIwYHfrWcmExRCqaQH25cSVDI7AQF4/s1600/scan9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4oRupWlq6XqHwYFUpHvU-NNp6MS087sQWMs2UywYAXtY-n84yCDduWdgIz9MIfoNToSgytPn7n-tRWoNLGR4vTdcpiB8ZYA3hSe9fp5-MUeWeiHIwYHfrWcmExRCqaQH25cSVDI7AQF4/s1600/scan9.png&quot; height=&quot;365&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: black; font-weight: normal;&quot;&gt;這次點擊資料夾圖示 選擇你建立專案資料夾內的 MSI檔&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;color: black; font-weight: normal;&quot;&gt;建議勾選Copy Package Source Files&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: black; font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: black; font-weight: normal;&quot;&gt;不小心玩壞了 還可以再來一次&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; color: blue; font-weight: bold; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHS52RDtf1QTtiRFERi_pu3zxAULGlV4TkxabBQO6QvSr8TW_r0-zWTWDjRbQ503mjNkBCQwEy0BGx6wSglnVu3uAHpz5FHAzKtnckCbosbfCxLCyHhb6goW5hR6qSBB1m-A0KwFfeNpA/s1600/scan7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHS52RDtf1QTtiRFERi_pu3zxAULGlV4TkxabBQO6QvSr8TW_r0-zWTWDjRbQ503mjNkBCQwEy0BGx6wSglnVu3uAHpz5FHAzKtnckCbosbfCxLCyHhb6goW5hR6qSBB1m-A0KwFfeNpA/s1600/scan7.png&quot; height=&quot;365&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
此時就會產生一個新的 MSI 專案&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
點擊專案 會出現 一堆可以設定的東西&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
這邊kaga 只簡單介紹幾個有用到的設定&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
因為可以調整的地方真的很多&amp;gt;&amp;lt; 就要看各自需求了&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipIsEEUOoQ2xbq2VPgVcUIEs_Ny76Y7Veygxzzr5Rh3pu9NvcbuBmTaqVf6Sc-mi-SW4LYaAXtDQis3ZEKiPSyFa1ZTPVDLkAT4AcY2ak1WjSFbEzVZlq17bvlcyj9cjjovH4Y2pOePW8/s1600/scan10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipIsEEUOoQ2xbq2VPgVcUIEs_Ny76Y7Veygxzzr5Rh3pu9NvcbuBmTaqVf6Sc-mi-SW4LYaAXtDQis3ZEKiPSyFa1ZTPVDLkAT4AcY2ak1WjSFbEzVZlq17bvlcyj9cjjovH4Y2pOePW8/s1600/scan10.png&quot; height=&quot;370&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
右上角的ARP 也就是這個安裝檔 出現在 控制台/新增移除&amp;nbsp;裡面的圖示&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
當然你也可以不勾選 也就不會顯示了&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBWNwAujUTiMuEsNILJLdl1HsioQtcbi3lh-CC51H74NKMl6JV0rxyNnV1LLpawE3xiDm8Er0B7wN9uGBff598xvDaE0V2zEGyB0D6nmzmiA5c5U33MrbCHatZl2QEGtmB8HQTYEPEKu4/s1600/scan11.png&quot; imageanchor=&quot;1&quot; style=&quot;font-size: medium; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBWNwAujUTiMuEsNILJLdl1HsioQtcbi3lh-CC51H74NKMl6JV0rxyNnV1LLpawE3xiDm8Er0B7wN9uGBff598xvDaE0V2zEGyB0D6nmzmiA5c5U33MrbCHatZl2QEGtmB8HQTYEPEKu4/s1600/scan11.png&quot; height=&quot;365&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
這個地方的設定有點類似 我們有些安裝完後會問user&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
安裝是for user 還是這台電腦都可以使用&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
下方的 Offer to reset .... 指的是是否要求使用者安裝後重開機!&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
其他檢查重點&lt;br /&gt;
&lt;div&gt;
1. Files &amp;gt; &amp;nbsp;這邊包含整個MSI檔 包含的路徑與檔案 以及 移除檔案也有&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 需要仔細查看 避免不小心 安裝後改變了 原本電腦的東西&lt;/div&gt;
&lt;div&gt;
2. Registry &amp;gt; &amp;nbsp;這邊也要檢查是否 它裡面新增的註冊檔 跟你的程式有關&lt;/div&gt;
&lt;div&gt;
3. Service &amp;gt; &amp;nbsp;如果需要新增服務的 這邊可能也要設定&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;Step6 : 產生MSI檔&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
其實 新的MSI專案 在上面這些動作 並還沒有產生MSI檔&lt;br /&gt;
此時已經設定完後 需要產生MSI檔&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig1aj9TsVd4YCk_RzfqDyYtkHvMURNkOuvpCQJ_dcModdeyV8iVtg-Yl32g0IxX_ktehL3oqV1aNURPvIgR2JvHYnAOq95J-NDam0OCFNA5KgrK4CGJraRdXnyWjrYTrEOtpn_kLmyb5c/s1600/scan12.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig1aj9TsVd4YCk_RzfqDyYtkHvMURNkOuvpCQJ_dcModdeyV8iVtg-Yl32g0IxX_ktehL3oqV1aNURPvIgR2JvHYnAOq95J-NDam0OCFNA5KgrK4CGJraRdXnyWjrYTrEOtpn_kLmyb5c/s1600/scan12.png&quot; height=&quot;504&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
在專案名稱案又建 Compress 跳出視窗後按確定 完成!&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
後續只要在&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
C:\Program Files\Scalable\WinINSTALL\Packages\testProgram\&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
就會看到 正確的 MSI 檔囉!&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;---------------------------------------------------------------------&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
以上步驟 即可將你的 exe安裝檔 轉換成 msi 來使用&lt;br /&gt;
建議後續還是多個平台安裝看看&lt;br /&gt;
如果遇到程式無法產生檔案 或者讀取不到其中某幾個程式&lt;br /&gt;
建議 將一些呼叫的路徑檢查是否為&quot;&lt;b&gt;絕對路徑&lt;/b&gt;&quot;&lt;br /&gt;
另外就是執行的權限在重新檢視一下&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
winInstall 電子說明書 有包含 關於 dicover 的參數設定&lt;br /&gt;
&lt;a href=&quot;https://cs.uwaterloo.ca/twiki/pub/CF/WindowsPackaging/GettingStartedWinstall.pdf&quot;&gt;https://cs.uwaterloo.ca/twiki/pub/CF/WindowsPackaging/GettingStartedWinstall.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;style&gt;
pre.code {
  display: block;
  overflow: auto;
  min-height:50px;
  max-height:800px;
  padding: 2 2 0 20px;
  border: 1px solid #ccc;
  background: #0f0f0f url(https://sites.google.com/site/klcintwimages/Code_BG.gif) left top repeat-y;
}
code.prettyprint {
  line-height: 1.2em;
  margin: 1px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/1638174097957346525/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2014/09/msi-make-msi-file-from-exe.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1638174097957346525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1638174097957346525'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2014/09/msi-make-msi-file-from-exe.html' title='製作 MSI 檔案 (make msi file from exe)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwhpHHkeaqzvKa1hERtI1wTxR8Q7c39Vkftj8E6r9Tej2dOzbw45py4C-Fl-Tdz_nM5EIujtfWl7TD1-kcfiViNG5Lx8nK7gACzeHeioxQ2zI7pbYGZKvy-MwSUHa5P288gpmz3-HGKKs/s72-c/%E6%9C%AA%E5%91%BD%E5%90%8D.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-1897355331837947159</id><published>2014-08-28T20:17:00.000-07:00</published><updated>2014-08-28T20:17:25.232-07:00</updated><title type='text'>迷路的程式 Path with process~</title><content type='html'>最近被自己之前設計的程式搞瘋了&lt;br /&gt;
popen 在windows 底下似乎有點詭異&lt;br /&gt;
&lt;br /&gt;
1. 採用相對路徑 .\test\sqlite3.exe&lt;br /&gt;
發現 當kaga把其他程式 一起打包成MSI檔 在其他環境 沒有辦法正確執行&lt;br /&gt;
&lt;br /&gt;
2. 採用絕對路徑 C:\desktop\tests\qlite3.exe&lt;br /&gt;
好像可以了 結果....&lt;br /&gt;
當在其他環境 路徑中 出現空格... 就會fail&lt;br /&gt;
&lt;br /&gt;
目前採用 雙引號 包起來&lt;br /&gt;
就正常哩~~~&lt;br /&gt;
&lt;br /&gt;
在windows 底下 的路徑 還是盡量採用絕對路徑&lt;br /&gt;
也要注意到路徑可能的命名問題&lt;br /&gt;
&lt;br /&gt;
由於這個程式 有的跑系統服務&lt;br /&gt;
有的跑在 user space&lt;br /&gt;
當彼此呼叫 有時候也滿多 麻煩的 &amp;gt; &amp;lt;&lt;br /&gt;
&lt;br /&gt;
另外下一篇打算來&lt;br /&gt;
PO 一下製作MSI檔的流程吧~&lt;br /&gt;
&lt;br /&gt;
See you next time~&lt;br /&gt;
&lt;style&gt;
pre.code {
  display: block;
  overflow: auto;
  min-height:50px;
  max-height:800px;
  padding: 2 2 0 20px;
  border: 1px solid #ccc;
  background: #0f0f0f url(https://sites.google.com/site/klcintwimages/Code_BG.gif) left top repeat-y;
}
code.prettyprint {
  line-height: 1.2em;
  margin: 1px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/1897355331837947159/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2014/08/path-with-process.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1897355331837947159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1897355331837947159'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2014/08/path-with-process.html' title='迷路的程式 Path with process~'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-253663678649192874</id><published>2014-08-26T09:08:00.000-07:00</published><updated>2014-08-26T23:22:21.687-07:00</updated><title type='text'>HITCON 2014</title><content type='html'>這是 kaga 第一次參加 hitcon&lt;br /&gt;
以前常聽到 但覺得似乎離自己有點遠(不單單只是距離)&lt;br /&gt;
&lt;br /&gt;
官網 :&amp;nbsp;&lt;a href=&quot;http://hitcon.org/2014/&quot;&gt;http://hitcon.org/2014/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
打從工作後 開始對於資訊安全 hacker, 開始有了些了解與興趣&lt;br /&gt;
今天 剛好又是 hitcon 十周年&lt;br /&gt;
下定決心 給他衝個一次&lt;br /&gt;
&lt;br /&gt;
聽說這票不好買 (有分商業場 跟 社群場 價差就... kaga 自費參加也只能選社群場 = =|||)&lt;br /&gt;
第一次買就乖乖守在電腦前搶票拉&lt;br /&gt;
門票搞定後 就是等待拉~&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWDbovny17zlTcr5D8_C-kHhFm-ytyHm3F8M_oeNJ6-0JL3Q_MmEB2Z_v-rRY-3_E4vUUvRxLAOqDWIdFR4XACoSMJ9XjabLGI_VV3zH0pFV6yVPDSYiRVRbIOQR151-yPZ02KoN1iqdY/s1600/Screenshot_2014-08-26-22-26-40.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWDbovny17zlTcr5D8_C-kHhFm-ytyHm3F8M_oeNJ6-0JL3Q_MmEB2Z_v-rRY-3_E4vUUvRxLAOqDWIdFR4XACoSMJ9XjabLGI_VV3zH0pFV6yVPDSYiRVRbIOQR151-yPZ02KoN1iqdY/s1600/Screenshot_2014-08-26-22-26-40.png&quot; height=&quot;320&quot; width=&quot;179&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
七月 一整個很忙碌&lt;br /&gt;
但不單純只是工作 忙著東奔西跑&lt;br /&gt;
出差去日本 回來 一個禮拜 又去日本玩 &amp;gt;&amp;lt;&lt;br /&gt;
說真的 出去玩 還真的比上班累阿 @@&lt;br /&gt;
&lt;br /&gt;
特地請了兩天假 微出國去&lt;br /&gt;
同事都一直在猜我到底請假去哪玩&lt;br /&gt;
我感覺也很懶得解釋 就很簡單的說去參加活動研討會之類的&lt;br /&gt;
主題就....資訊安全 吧&lt;br /&gt;
我想應該也沒差太多吧 XD&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOWa_iYHN1q3b7LouRUjAlax19_cB1NmKQ4IX2teSABaTywW4xD_mvdzX0TrAirzWvoBRlRjOPrhFvmDwSoi3SSFtTxAHLiLqMH5MlklDdgKCfkJ2-Ycd1sC1QwhTqM84k94G1XEkE3mQ/s1600/IMG_20140821_082747.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOWa_iYHN1q3b7LouRUjAlax19_cB1NmKQ4IX2teSABaTywW4xD_mvdzX0TrAirzWvoBRlRjOPrhFvmDwSoi3SSFtTxAHLiLqMH5MlklDdgKCfkJ2-Ycd1sC1QwhTqM84k94G1XEkE3mQ/s1600/IMG_20140821_082747.jpg&quot; height=&quot;320&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;第一天的早上 8:30~ 9:30 報到&lt;br /&gt;
坐捷運到 南港展覽館 原本都看好要搭什麼公車&lt;br /&gt;
後來有上FB 發現 原來有接駁車&lt;br /&gt;
不過很奇妙的是 這訊息當天早上才發的@@&lt;br /&gt;
有看有賺到~&lt;br /&gt;
直接載到會場一整個省時又省力阿&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
快九點進到會場 應該很OK才對&lt;br /&gt;
但其實並不然~&lt;br /&gt;
一走進會議廳 幾乎滿滿的 只好坐到超後面的 = =&lt;br /&gt;
再慢一點大概就坐地板了...&lt;br /&gt;
因此隔天 我硬是起了個大早 才搶到 前面兩排位置&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXAzR9vDwc8IZA8iMnQJp6iOhx3bdTBCTIpS8dpnigjqN0P7mGV2B_1euEfRd3TOLoU53JMkNimy-pqKTnja5IG_g3e1I9Im-iCr7hvIL76AEULtZaFM6F4g0R9i1Eg78AQAhdR3M5lIo/s1600/IMG_20140821_085311.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;img alt=&quot;test&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXAzR9vDwc8IZA8iMnQJp6iOhx3bdTBCTIpS8dpnigjqN0P7mGV2B_1euEfRd3TOLoU53JMkNimy-pqKTnja5IG_g3e1I9Im-iCr7hvIL76AEULtZaFM6F4g0R9i1Eg78AQAhdR3M5lIo/s1600/IMG_20140821_085311.jpg&quot; height=&quot;320&quot; title=&quot;test&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;很有質感的識別證!&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVj-OsOPDXU4ELzsSdEXXrg0NPf_k1eslDNcLi0zvVV4WiauC5brbbj6P9hiHnajKpHvCo6idx7qJmk9PthFLuis8-L6NUMw1aDR2pwecStn4oV715Ugbm-xJxjCSPhIr3vSBGRqfgEKw/s1600/IMG_20140821_093717.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVj-OsOPDXU4ELzsSdEXXrg0NPf_k1eslDNcLi0zvVV4WiauC5brbbj6P9hiHnajKpHvCo6idx7qJmk9PthFLuis8-L6NUMw1aDR2pwecStn4oV715Ugbm-xJxjCSPhIr3vSBGRqfgEKw/s1600/IMG_20140821_093717.jpg&quot; height=&quot;240&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Hitcon 2014 Start!&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;兩天的課程 真的有深有淺&lt;br /&gt;
&amp;nbsp;我記得第一天的第一堂 是個韓國team&lt;br /&gt;
&amp;nbsp;整場英文 我整個傻了...&lt;br /&gt;
&amp;nbsp;雖然大會有即時翻譯 但.....&lt;br /&gt;
&amp;nbsp;kaga的老兵arcs 不能聽阿 = = (後來研究了很久 原來下載 &amp;nbsp; &amp;nbsp;XiiaLive 就可以)&lt;br /&gt;
&amp;nbsp;只能看著投影片很努力地看他們在幹嘛~&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;每個時段 會有三場不同的主題內容&lt;br /&gt;
&amp;nbsp;可以自由選擇&lt;br /&gt;
&amp;nbsp;但我幾乎都在R0&lt;br /&gt;
&lt;br /&gt;
至於本次 kaga 所吸收到的重點&lt;br /&gt;
大概可以歸納這幾項吧&lt;br /&gt;
*android 手機 ADB繞過各種漏洞&lt;br /&gt;
*遠端桌面的後門&lt;br /&gt;
*APT 各種 fail&lt;br /&gt;
*破解悠遊卡新版與舊版難易度&lt;br /&gt;
&lt;br /&gt;
其實這次去有不少 主題內容的真的不是那麼懂&lt;br /&gt;
但可以感覺到 如果有涉及相同領域的話 應該會收益滿多的&lt;br /&gt;
&lt;br /&gt;
有人問kaga 都聽不懂 這樣幹嘛去 ?!&lt;br /&gt;
其實現場不只是聽聽演講而已&lt;br /&gt;
周邊也有不少活動 像是&quot;算命攤&quot;&lt;br /&gt;
雖然我去沒幾次 不過也滿多人會聚在那邊&lt;br /&gt;
不只是聊有關hacker議題&lt;br /&gt;
什麼雜七雜八都可以 &amp;nbsp;可以認識很多人&lt;br /&gt;
也是滿特別的&lt;br /&gt;
&lt;br /&gt;
在來就是會議廳主場內建聊天模式&lt;br /&gt;
會議廳裡會有兩個投影 一個是講師上課的簡報&lt;br /&gt;
另一個 就是 IRC 上大家聊天的內容&lt;br /&gt;
就這樣直白白的給他show在上面哩&lt;br /&gt;
可以在上面發現很多有趣的內容&lt;br /&gt;
可能是針對講師 或者 同時段其他廳的演講內容等等&lt;br /&gt;
也算是這個活動滿重要的一環喔!!!&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWHqxBpYPoxYdOoJp6DOJZ_GrDCJd-xZ7ARQRvKpV9TZJzHTQYpDX5jocfkJqcXtEQd7-uMsfWWec2-N7OmKMyqvZtd_ePQ8PMQHH5uS8VGdm4ivkkClWF6tJiGDQCU8y7VQbzi6k99T8/s1600/IMG_20140821_153258.jpg&quot; height=&quot;320&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; width=&quot;240&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;打卡送冰淇淋~&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7oVqDoHmZM5Vw-eQAP9oEG2ilhS6GIGurUcbCWafa1MGhyphenhyphenb6wOFgKtB075jw_YcXVUNxgltkRFh42PZtgDLaytFWKzXAOYsISRbX_VidMSXvJTChEabga45nbfDs4vVm9NZ7mSRJeJFw/s1600/IMG_20140821_142130.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7oVqDoHmZM5Vw-eQAP9oEG2ilhS6GIGurUcbCWafa1MGhyphenhyphenb6wOFgKtB075jw_YcXVUNxgltkRFh42PZtgDLaytFWKzXAOYsISRbX_VidMSXvJTChEabga45nbfDs4vVm9NZ7mSRJeJFw/s1600/IMG_20140821_142130.jpg&quot; height=&quot;320&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;這是點心~&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWHqxBpYPoxYdOoJp6DOJZ_GrDCJd-xZ7ARQRvKpV9TZJzHTQYpDX5jocfkJqcXtEQd7-uMsfWWec2-N7OmKMyqvZtd_ePQ8PMQHH5uS8VGdm4ivkkClWF6tJiGDQCU8y7VQbzi6k99T8/s1600/IMG_20140821_153258.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp;一整天的吃喝都幫你準備的很豐盛&lt;/div&gt;
早上有點心 下午也有點心&lt;br /&gt;
大概就中午的便當 要靠運氣看抽到什麼了&lt;br /&gt;
我兩次都沒拿到雞腿便當 這真的是Random&lt;br /&gt;
&amp;nbsp;&amp;gt; &amp;lt;!?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtnBTvuWeLm75jmaDPc3F7Qck6Nu9JQNuq98qYqzaOOWjuyoQUfGIWBDFu0IARMvOcimOczA9LZZImwaWZ50FeF3OQtGNdWkE3RGv7VWIFSYu-vXsBLn2XxdPsIwJHp2kwhNXJGTqsDKY/s1600/IMG_20140821_125454.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtnBTvuWeLm75jmaDPc3F7Qck6Nu9JQNuq98qYqzaOOWjuyoQUfGIWBDFu0IARMvOcimOczA9LZZImwaWZ50FeF3OQtGNdWkE3RGv7VWIFSYu-vXsBLn2XxdPsIwJHp2kwhNXJGTqsDKY/s1600/IMG_20140821_125454.jpg&quot; height=&quot;320&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;旁邊的工作人員 滿正的 &amp;gt; &amp;lt;!&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi1VmyfQGIOZCYWsyhnR6JE5igaeQPYmpmxZLsqrBdR1TWr2J71_4OL3rE-VK6eca01u0Umd5rIascQ1xuokLUvVYoiAkG4kktN-yHV0QmqZQzd7jAuU0sf1-Djekg3n4VRpfKQ5-pCgE/s1600/IMG_20140821_124636.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi1VmyfQGIOZCYWsyhnR6JE5igaeQPYmpmxZLsqrBdR1TWr2J71_4OL3rE-VK6eca01u0Umd5rIascQ1xuokLUvVYoiAkG4kktN-yHV0QmqZQzd7jAuU0sf1-Djekg3n4VRpfKQ5-pCgE/s1600/IMG_20140821_124636.jpg&quot; height=&quot;240&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;桌遊觸控板遊戲&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
另外周邊還有 自拍大頭貼 各種裝扮 會產生一組QRcode 讓你下載&lt;br /&gt;
(後來機台下面貼了一張 請不要踹IP 這種場合真的是什麼都能玩阿XD)&lt;br /&gt;
以及桌遊的 觸控板遊戲 kaga 下去玩所以也不是很了解玩法&lt;br /&gt;
應該就有點像遊戲王血量歸0的輸~ 只是變化比較簡單一點~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4_X-AJT0Ur77mllCMPUSAT0XF4cywXZ7kCflInncMbb_bhBqdO7SBJ4b2LKcZGrm00AQfh_sFyFkqbyqVrlj8au-h1sEuoeqmtpPtt5oDhDPFg1u1Xy1lkkmvLnMP4PKNVkika-YDCpE/s1600/IMG_20140821_201411.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4_X-AJT0Ur77mllCMPUSAT0XF4cywXZ7kCflInncMbb_bhBqdO7SBJ4b2LKcZGrm00AQfh_sFyFkqbyqVrlj8au-h1sEuoeqmtpPtt5oDhDPFg1u1Xy1lkkmvLnMP4PKNVkika-YDCpE/s1600/IMG_20140821_201411.jpg&quot; height=&quot;200&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHDFmZkP_pHFxsSRuVCjUUZgZmwbri162VUCTDBVAySknJdEnSyIsS8pi_O12ooda8-AI87b6gkghRcuTbf5JRaMwYivb1rHRKS6oOmoZmDDA4eQzI0wzws1d96zCnSNwkna3ih6-kfeM/s1600/IMG_20140821_201717.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHDFmZkP_pHFxsSRuVCjUUZgZmwbri162VUCTDBVAySknJdEnSyIsS8pi_O12ooda8-AI87b6gkghRcuTbf5JRaMwYivb1rHRKS6oOmoZmDDA4eQzI0wzws1d96zCnSNwkna3ih6-kfeM/s1600/IMG_20140821_201717.jpg&quot; height=&quot;150&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj67moGgHzzSLGfVHZkMnz8ZXZBOMtfFGqF2tJy1dfz-KKUvFe8QxRc5JdYUJTtWO1ns96IGhIuK-l-pdsKDmR_DecbhsfpRHhHGn0m8rPDSAm9MRsdJBjACr9VgaW4Pb_BuMHbuYhyphenhyphenDh0/s1600/IMG_20140821_201835.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj67moGgHzzSLGfVHZkMnz8ZXZBOMtfFGqF2tJy1dfz-KKUvFe8QxRc5JdYUJTtWO1ns96IGhIuK-l-pdsKDmR_DecbhsfpRHhHGn0m8rPDSAm9MRsdJBjACr9VgaW4Pb_BuMHbuYhyphenhyphenDh0/s1600/IMG_20140821_201835.jpg&quot; height=&quot;200&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
本次大會另一個賣點 就是創新的桌遊!!! MIT的喔&lt;br /&gt;
遊戲的玩法結構 其實有點像七大奇蹟 搶資源分數類型!&lt;br /&gt;
BGG:&lt;a href=&quot;http://www.boardgamegeek.com/boardgame/163963/league-hackers&quot;&gt;&amp;nbsp;http://www.boardgamegeek.com/boardgame/163963/league-hackers &lt;/a&gt;&lt;br /&gt;
可能之後一般市面上也會舖貨吧&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDoQ8Xi7mHPpSjFxm3LKpfjscPgE5bOgd6QxY62NTdpJC6HZtOR_K9CgEXB0mcmUnq8d_M6QriXfllvrQ9hi002Osqc2pGuYiCzheVxDpiLY34mNJ9-IcXctoeuunEp9YusJVv8-gATko/s1600/IMG_20140822_162941.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDoQ8Xi7mHPpSjFxm3LKpfjscPgE5bOgd6QxY62NTdpJC6HZtOR_K9CgEXB0mcmUnq8d_M6QriXfllvrQ9hi002Osqc2pGuYiCzheVxDpiLY34mNJ9-IcXctoeuunEp9YusJVv8-gATko/s1600/IMG_20140822_162941.jpg&quot; height=&quot;300&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
第二天的ENDING~&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
看到台上滿滿的工作人員 原來這個活動背後&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
還是要有這麼多人協助與參與的~&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
大家辛苦了~&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
也期待明年的 HITCON 2015&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;style&gt;
pre.code {
  display: block;
  overflow: auto;
  min-height:50px;
  max-height:800px;
  padding: 2 2 0 20px;
  border: 1px solid #ccc;
  background: #0f0f0f url(https://sites.google.com/site/klcintwimages/Code_BG.gif) left top repeat-y;
}
code.prettyprint {
  line-height: 1.2em;
  margin: 1px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/253663678649192874/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2014/08/hitcon-2014.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/253663678649192874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/253663678649192874'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2014/08/hitcon-2014.html' title='HITCON 2014'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWDbovny17zlTcr5D8_C-kHhFm-ytyHm3F8M_oeNJ6-0JL3Q_MmEB2Z_v-rRY-3_E4vUUvRxLAOqDWIdFR4XACoSMJ9XjabLGI_VV3zH0pFV6yVPDSYiRVRbIOQR151-yPZ02KoN1iqdY/s72-c/Screenshot_2014-08-26-22-26-40.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-9121383926855865490</id><published>2014-02-27T01:19:00.003-08:00</published><updated>2014-02-27T01:21:25.014-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="心情"/><category scheme="http://www.blogger.com/atom/ns#" term="程式設計文章"/><title type='text'>目標</title><content type='html'>很久沒寫文章了&lt;br /&gt;
很像我離開這個圈子似的...&lt;br /&gt;
&lt;br /&gt;
說實在的 &amp;nbsp;最近 確實有一點這樣的感覺~&lt;br /&gt;
&lt;br /&gt;
總覺得自己 一直在追求著什麼&lt;br /&gt;
原本只是霧霧的一團&lt;br /&gt;
&lt;br /&gt;
現在慢慢散開後 一整個霧裡看花&lt;br /&gt;
迷茫了起來&lt;br /&gt;
&lt;br /&gt;
公司裡每個人 來來去去&lt;br /&gt;
工作 需要負擔的 總一直來&lt;br /&gt;
&lt;br /&gt;
我這個人 不怕忙不怕累&lt;br /&gt;
&lt;br /&gt;
最怕就是 看不到岸&lt;br /&gt;
走在霧裡的感覺&lt;br /&gt;
&lt;br /&gt;
讓我最近 失去了不少動力&lt;br /&gt;
只好在工作之餘 找找其他方向&lt;br /&gt;
&lt;br /&gt;
所以 跑去買了本 unity3D的書 回來摸摸~&lt;br /&gt;
自己在家玩了一下 確實輕鬆 愉快很多~ 哈&lt;br /&gt;
&lt;br /&gt;
最近一樣在 一堆封包中 打滾&lt;br /&gt;
&lt;br /&gt;
有空 再把最近 封包的解析 重組 等等心得 再整理一下好了~&lt;br /&gt;
&lt;br /&gt;
&lt;style&gt;
pre.code {
  display: block;
  overflow: auto;
  min-height:50px;
  max-height:800px;
  padding: 2 2 0 20px;
  border: 1px solid #ccc;
  background: #0f0f0f url(https://sites.google.com/site/klcintwimages/Code_BG.gif) left top repeat-y;
}
code.prettyprint {
  line-height: 1.2em;
  margin: 1px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/9121383926855865490/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2014/02/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/9121383926855865490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/9121383926855865490'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2014/02/blog-post.html' title='目標'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-1698718340661702983</id><published>2013-10-29T21:16:00.002-07:00</published><updated>2023-02-13T19:14:48.363-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C語言"/><category scheme="http://www.blogger.com/atom/ns#" term="ev_async"/><category scheme="http://www.blogger.com/atom/ns#" term="Libev"/><category scheme="http://www.blogger.com/atom/ns#" term="libev thread"/><title type='text'>multi thread in libev</title><content type='html'>Libev 是一個事件的library(&lt;span style=&quot;color: #3d85c6;&quot;&gt;event loop library&lt;/span&gt;)&lt;br /&gt;
透過loop與monitor的方式來做事件的處理&lt;br /&gt;
觸發不同的事件來執行不同的 callback


&lt;br /&gt;
&lt;a href=&quot;http://software.schmorp.de/pkg/libev.html&quot;&gt;Libev 官方網站&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
這算是我工作上第一個遇到的新工具~&lt;br /&gt;
一開始看官方文件 還是霧煞煞~&lt;br /&gt;
不過 實際去RUN個幾次 你就會懂他的 邏輯與方式了~&lt;br /&gt;
&lt;br /&gt;
這次要回頭處理 原本的ev 事件程式&lt;br /&gt;
想測試看看用 multi thread 來提升 處理效能&lt;br /&gt;
&lt;br /&gt;
使用libev 如果希望工頭(主程序)隨時身邊都有工人(thread)待命,一有事情就派工人處理&lt;br /&gt;
但要讓工人處於待命狀態,而且又要聽命於工頭&lt;br /&gt;
其中&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;ev_async&lt;/span&gt;&lt;/b&gt;&amp;nbsp;是很重要的一個&quot;秘書&quot;,可以幫忙與其他工人溝通&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code prettyprint&quot;&gt; &lt;span style=&quot;color: white;&quot;&gt; ev_async async_watcher;
  ev_loop thread_loop;
  ev_io main_event;
  EV_P;

  int main()
  {
    loop = ev_default_loop(0);
    thread_loop= ev_loop_new(0);

    pthread_t thread;

    ev_async_init(async_watcher, async_cb);
    ev_async_start(thread_loop ,async_watcher);

    pthread_create(&amp;amp;thread, NULL, pthread_function, NULL);

    ev_io_init(&amp;amp;main_event, cb_main_callback, fd, EV_READ);
    ev_run(EV_A_ 0);
  }

  void *pthread_function(void *ptr)
  {
    ev_run(thread_loop, 0);
    pthread_exit(0);
    return NULL;
  }

  void cb_main_callback(EV_P_ ev_io *w, int revents)
  {
    if(ev_async_pending(&amp;amp;mthread[thread_count].async_watcher) == 0)
    {
      async_watcher.data = (void *)&quot;Test Multi Thread&quot;;
      ev_async_send(thread_loop , &amp;amp;async_watcher);
    }
  }

  void async_cb(EV_P_ ev_async *w, int revents)
  {
    char * msg;
    msg = (char *)w-&amp;gt;data
    printf(&quot;%s\n&quot;,msg);
  }
&lt;/span&gt;
&lt;/pre&gt;
擷取程式中 部分程式碼說明一下 ev_async的 運作流程&lt;br /&gt;
首先主程序 在執行 ev_run(EV_A_ 0); 之前&lt;br /&gt;
註冊了一個 async_watcher 並指定 callback async_cb()&lt;br /&gt;
並啟 ev_async_start(thread_loop ,async_watcher);&lt;br /&gt;
在pthread_create() 的時候讓 thread_loop 運作 此時因為&lt;br /&gt;
有註冊async_watcher &amp;nbsp;所以不會&amp;nbsp;thread_loop&amp;nbsp;&amp;nbsp;直接結束掉&lt;br /&gt;
&lt;br /&gt;
再來重點在於 主程序 進到 cb_main_callback() 中&lt;br /&gt;
ev_async_pending() 這個動作 要跟 ev_async_send()&lt;br /&gt;
一起講會比較清楚&lt;br /&gt;
在ev_async_send()在 thread_loop 做個標記 此時會可以讓loop&lt;br /&gt;
去進到async_cb() 而此時會把&amp;nbsp;ev_async_send()所做的標記重置&lt;br /&gt;
而&amp;nbsp;ev_async_pending()&amp;nbsp;到底有啥作用呢&lt;br /&gt;
有人可能從字面上覺得 是在看是否呈現等待狀態&lt;br /&gt;
但實際的運作是&lt;br /&gt;
當已經被ev_async_send()標記 但loop並未觸發,則會回傳非0的值&lt;br /&gt;
所以我們必須判斷&amp;nbsp;ev_async_pending()等於0&lt;br /&gt;
才能再進行一次&amp;nbsp;ev_async_send()&lt;br /&gt;
&lt;br /&gt;
通常在使用會遇到一個問題 就是 我需要帶資料或變數改怎麼處理&lt;br /&gt;
可能比較常看到 是使用 全域的變數 使用 lock 的方式&lt;br /&gt;
而其實 ev 事件 的monitor的struct 都會有一些變數可以使用&lt;br /&gt;
可以很方便在不同的callback傳遞&lt;br /&gt;
&lt;span style=&quot;color: white;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;pre class=&quot;code prettyprint&quot;&gt;&lt;span style=&quot;color: white;&quot;&gt;  struct ev_async {
    sig_atomic_t volatile sent;
    int active;
    int pending;
    int priority;
&lt;b&gt;    void* data;&lt;/b&gt;
    void (*cb)(struct ev_loop *loop, struct ev_async *w, int revents);
  };
&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
更多範例 可以在搜尋關鍵字 &lt;b&gt;&lt;span style=&quot;color: orange;&quot;&gt;&quot;libev thread&quot; , &quot;ev_async&quot;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
下面連結是 網路上的範例 自己有稍微修改測試了一下~&lt;br /&gt;
&lt;a href=&quot;https://drive.google.com/file/d/0B96kg9peCiO5eFIyWGdUb1ZORWs/edit?usp=sharing&quot;&gt;&lt;strike&gt;example ev_thread.c&lt;/strike&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
參考連結&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/&quot;&gt;&lt;/a&gt;&lt;span id=&quot;goog_215813392&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_215813393&quot;&gt;&lt;/span&gt;&lt;strike&gt;&lt;a href=&quot;http://www.codeday.net/?p=68&quot;&gt;http://www.codeday.net/?p=68&lt;/a&gt;&amp;nbsp;&lt;/strike&gt;(libev 一些struct 結構)&lt;br /&gt;&lt;a href=&quot;http://stackoverflow.com/questions/14621261/using-libev-with-multiple-threads&quot;&gt;http://stackoverflow.com/questions/14621261/using-libev-with-multiple-threads&lt;/a&gt;&lt;br /&gt;
&lt;style&gt;
pre.code {
  display: block;
  overflow: auto;
  min-height:50px;
  max-height:800px;
  padding: 2 2 0 20px;
  border: 1px solid #ccc;
  background: #0f0f0f url(https://sites.google.com/site/klcintwimages/Code_BG.gif) left top repeat-y;
}
code.prettyprint {
  line-height: 1.2em;
  margin: 1px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/1698718340661702983/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2013/10/multi-thread-in-libev.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1698718340661702983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1698718340661702983'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2013/10/multi-thread-in-libev.html' title='multi thread in libev'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-8317642851981404676</id><published>2013-09-12T23:26:00.000-07:00</published><updated>2013-09-12T23:32:59.709-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><title type='text'>Apache allow,deny rule</title><content type='html'>這幾天 有個新功能 用到了 &amp;nbsp;apache 相關的設定&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;lt;Location /server-status&amp;gt;
    SetHandler server-status
    Order Allow,Deny
    Deny from  192.168.16.100
    Allow from 192.168.16.0/24
&amp;lt;/Location&amp;gt;&lt;/code&gt;&lt;/pre&gt;
設置網段後 又想獨立設定網段中某一個IP&lt;br /&gt;
也就是說 小範圍的設定 會優先於大範圍的&lt;br /&gt;
ex: 我想在 192.168.16.0/24 網段中 全部通過 但 只想其中某個 16.100 阻擋&lt;br /&gt;
此時該怎麼設定呢&lt;br /&gt;
上面這個設定 是可以達到這目的&lt;br /&gt;
&lt;br /&gt;
一開始沒弄懂 他實際的條件與規則&lt;br /&gt;
想破頭都想不出該怎麼辦&lt;br /&gt;
&lt;br /&gt;
後來才看到 上面這樣的寫法&lt;br /&gt;
但通常 我們會用 deny from all&lt;br /&gt;
他怎麼沒有擋 這樣好像怪怪的&lt;br /&gt;
&lt;br /&gt;
後來又翻到下面這個表~~~&lt;br /&gt;
其中 Order Allow,Deny &amp;gt; 意指先比 允許的 在比 拒絕的&lt;br /&gt;
但他看的是最後比到的為主喔~&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;&quot;&gt;Match      | Allow,Deny result   | Deny,Allow result
-------------------------------------------------------
Allow only | Allowed             | Allowed
Deny only  | Denied              | Denied
No match   | Default: Denied     | Default: Allowed
Match both | Final match: Denied | Final match: Allowed&lt;/pre&gt;
才恍然大悟阿~~~&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
預設是全部deny&lt;br /&gt;
狀況1 : &amp;nbsp; ip-deny,subnet-allow&lt;br /&gt;
&amp;gt;&amp;gt; 就等同第一個圖的方式&lt;br /&gt;
&lt;br /&gt;
狀況2: &amp;nbsp;ip-allow,subnet-allow&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;lt;Location /server-status&amp;gt;
    SetHandler server-status
    Order Allow,Deny
    Allow from 192.168.16.100
&amp;lt;/Location&amp;gt;&lt;/code&gt;&lt;/pre&gt;
突然想到&lt;br /&gt;
其實 只要把加入的ip 去比對 目前允許的subnet 如果在其中才額外加deny就可以了&lt;br /&gt;
&lt;br /&gt;
不過 沒有很詳細研究&lt;br /&gt;
因為不是我擅長的領域阿 ~ 只是碰到插個花&lt;br /&gt;
請多多指教囉~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/8317642851981404676/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2013/09/apache-allowdeny-rule.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/8317642851981404676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/8317642851981404676'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2013/09/apache-allowdeny-rule.html' title='Apache allow,deny rule'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-5305035918468497768</id><published>2013-09-06T04:19:00.003-07:00</published><updated>2013-09-12T23:32:35.744-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="心情"/><title type='text'>認真比偷懶更糟糕</title><content type='html'>最近都沒寫程式的文章&lt;br /&gt;
因為......&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;font-size: large;&quot;&gt;一堆客服問題 瘋狂地打斷寫程式的興致啊 &amp;gt;&amp;lt;!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
慢慢的會有越來越多 程式之外的事情需要我去了解 處理&lt;br /&gt;
也沒有排斥 但會影響到寫程式的效率 也是真的~~&lt;br /&gt;
&lt;br /&gt;
長越大 越來越發現 自己好像不太能一心二用&lt;br /&gt;
或許因為這樣 對單一事物的專注力十分的強&lt;br /&gt;
不是不能被打擾 而是你打擾不了我 ㄎㄎ&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;==== 跳一下 &amp;nbsp;進入主題 ===&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
說道職場文化 我想就台灣目前的工作環境來說&lt;br /&gt;
似乎 都還是悲觀居多~&lt;br /&gt;
&lt;br /&gt;
就像我今天也分享了一篇文章 (&lt;a href=&quot;http://www.chinatimes.com/realtimenews/%E6%89%8D%E4%B8%8D%E6%98%AF%E5%A4%A2%E5%B9%BB%E5%B7%A5%E4%BD%9C%EF%BC%81Facebook%E9%81%AD%E8%B8%A2%E7%88%8616%E4%BB%B6%E6%85%98%E6%A1%88-20130905002500-260412&quot;&gt;才不是夢幻工作！Facebook遭踢爆16件慘案&lt;/a&gt;)&lt;br /&gt;
自己覺得 不管你在多厲害多大間的甚至是 夢幻工作等等&lt;br /&gt;
多少 一定還是有 你看不慣的文化 或者 令人詬病的人事物&lt;br /&gt;
&lt;br /&gt;
最近莫名的有點感觸&lt;br /&gt;
當上頭覺得 有人不夠認真 對公司貢獻的太少時&lt;br /&gt;
第一時間 我們總是會想說 有嗎?! 我很認真應該不是 說我吧...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;但其實 最認真的你 對公司或對你自己來說 是更糟糕的情況&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;蛤 為啥?!!!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
當一個公司大到一個規模 管理者可能已經沒有辦法 對屬下一個一個去監督&lt;br /&gt;
每天仔細地審視你做什麼&lt;br /&gt;
只能看成效 甚至可能用主觀的意識來評分你的表現&lt;br /&gt;
&lt;br /&gt;
如果 我因為偷懶 被發現 表現不好&lt;br /&gt;
很簡單 就不要偷懶 認真一點 發揮100% 搞定!&lt;br /&gt;
&lt;br /&gt;
對公司來說 要讓妳走也很好下決定 因為你偷懶麻!!!&lt;br /&gt;
再來就用一些獎逞制度 來強迫你認真點 &amp;nbsp;搞定!&lt;br /&gt;
&lt;br /&gt;
=*=&lt;br /&gt;
&lt;br /&gt;
當你已經很認真 那真的糟糕了&lt;br /&gt;
也許 是你的能力 已經不符合 這間公司的要求 Over&lt;br /&gt;
&lt;br /&gt;
對公司來說 不管你做什麼改變 這個人就只能這樣了&lt;br /&gt;
默默鼻子 想想 根本投資錯人了 Over&lt;br /&gt;
&lt;br /&gt;
當然還有很多因素 不一定是能力的問題&lt;br /&gt;
但在職場上的一些經驗讓我感覺&lt;br /&gt;
&lt;br /&gt;
反而最難處理的 卻是 大家都很好 很認真 很盡責&lt;br /&gt;
卻沒辦法 達到 要求時&lt;br /&gt;
&lt;br /&gt;
到底是 哪個層級的問題?!&lt;br /&gt;
管理制度上 產生的問題嗎?&lt;br /&gt;
公司規模 跟要求程度的問題嗎?&lt;br /&gt;
真的用香蕉請到猴子了嗎?!&lt;br /&gt;
&lt;br /&gt;
很複雜 ... 很難搞 = =|||&lt;br /&gt;
&lt;br /&gt;
總結&lt;br /&gt;
&lt;br /&gt;
盡我所能 多跟自己計較 &amp;nbsp;而不是別人&lt;br /&gt;
重點~ 學習才是王道!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;style&gt;
pre.code {
  display: block;
  overflow: auto;
  min-height:50px;
  max-height:800px;
  padding: 2 2 0 20px;
  border: 1px solid #ccc;
  background: #0f0f0f url(https://sites.google.com/site/klcintwimages/Code_BG.gif) left top repeat-y;
}
code.prettyprint {
  line-height: 1.2em;
  margin: 1px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/5305035918468497768/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2013/09/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/5305035918468497768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/5305035918468497768'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2013/09/blog-post.html' title='認真比偷懶更糟糕'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-466434315558711689</id><published>2013-08-29T00:52:00.002-07:00</published><updated>2013-08-29T23:23:13.438-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="心情"/><title type='text'>發呆型 程式設計</title><content type='html'>很久 沒在這寫心情了&lt;br /&gt;
颱風康芮 正在用颱風尾 騷擾台灣中&lt;br /&gt;
害得我 必須在風雨中上班 = =|||&lt;br /&gt;
雖說來上半 但心裡懸念著 電競的新歷史&quot;小巨蛋的戰役&quot; XD&lt;br /&gt;
&lt;br /&gt;
最近對於寫程式 似乎沒有像以前那麼拼命了&lt;br /&gt;
有了幾次的經驗&lt;br /&gt;
慢慢的發現 有時候 停下來 多想一下&lt;br /&gt;
其實可以減少很多 不必要的問題與時間&lt;br /&gt;
&lt;br /&gt;
有時候甚至 我花了 2.3個小時都在思考與查詢&lt;br /&gt;
在別人眼裡 可能跟發呆沒兩樣吧 XD&lt;br /&gt;
至於 真的寫程式碼的時間 可能不到一個小時吧~&lt;br /&gt;
&lt;br /&gt;
此時 腦袋寫程式的功力 真的也很重要&lt;br /&gt;
現在我已經不隨便下手&lt;br /&gt;
以前都是 想到哪 就先動手 可能經過了好一段時間才發現&lt;br /&gt;
可能在前幾個步驟 就有問題&lt;br /&gt;
又得花時間去改 去修&lt;br /&gt;
&lt;br /&gt;
但不少人 被時程追著跑&lt;br /&gt;
甚至寫程式也要有&quot;業績&quot;&lt;br /&gt;
每天都得擠出那幾行的程式碼來交差&lt;br /&gt;
&lt;br /&gt;
環境麻!也不一定是自己能改變的~&lt;br /&gt;
&lt;br /&gt;
不過&lt;br /&gt;
至少可以改變自己的心態吧&lt;br /&gt;
不奢求變成武林的高高手&lt;br /&gt;
但遇到問題 都還是願意抱著熱血往前衝&lt;br /&gt;
享受過五關斬六將的快感 -.-&lt;br /&gt;
&lt;br /&gt;
開心地寫程式吧!! ^^!&lt;br /&gt;
&lt;style&gt;
pre.code {
  display: block;
  overflow: auto;
  min-height:50px;
  max-height:800px;
  padding: 2 2 0 20px;
  border: 1px solid #ccc;
  background: #0f0f0f url(https://sites.google.com/site/klcintwimages/Code_BG.gif) left top repeat-y;
}
code.prettyprint {
  line-height: 1.2em;
  margin: 1px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/466434315558711689/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2013/08/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/466434315558711689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/466434315558711689'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2013/08/blog-post.html' title='發呆型 程式設計'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-373421211839698305</id><published>2013-08-19T23:31:00.000-07:00</published><updated>2013-08-20T20:45:05.185-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="openswan"/><category scheme="http://www.blogger.com/atom/ns#" term="proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="vpn"/><title type='text'>openswan 問題 cc1: error: -Werror=cpp: No option -Wcpp</title><content type='html'>突然想來架設 一個 &amp;nbsp;ipsec的 vpn server&lt;br /&gt;
找到文章&lt;br /&gt;
&lt;a href=&quot;http://phorum.study-area.org/index.php?topic=58837.0&quot;&gt;http://phorum.study-area.org/index.php?topic=58837.0&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blog.xuite.net/misgarlic/weblogic/41607364-L2TP%2FIPSec&quot;&gt;http://blog.xuite.net/misgarlic/weblogic/41607364-L2TP%2FIPSec&lt;/a&gt;&lt;br /&gt;
作參考&lt;br /&gt;
其中 需要安裝 opneswan&lt;br /&gt;
&lt;br /&gt;
結果安裝時發現&lt;br /&gt;
出現以下訊息&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code prettyprint&quot;&gt;make[3]: Entering directory `/PGRAM/openswan-2.6.39/OBJ.linux.i386/programs/pluto&#39;

cc -g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security 

-Werror=format-security -D_FORTIFY_SOURCE=2 &amp;amp;nbsp;-DGCC_LINT &amp;amp;nbsp;
-I/PGRAM/openswan-2.6.39/ports/linux/include &amp;amp;nbsp;
-I/PGRAM/openswan-2.6.39/ports/linux/include &amp;amp;nbsp;
-I/PGRAM/openswan-2.6.39/ports/linux/include &amp;amp;nbsp;
-I/PGRAM/openswan-2.6.39/programs/pluto/linux26 
-I/PGRAM/openswan-2.6.39/include 
-I/PGRAM/openswan-2.6.39/lib/libcrypto 
-I/PGRAM/openswan-2.6.39/linux/include &amp;amp;nbsp; &amp;amp;
nbsp;-DPLUTO_SENDS_VENDORID -DUSE_KEYRR &amp;amp;nbsp;
-DDYNAMICDNS -DNETKEY_SUPPORT 
-DKERNEL26_HAS_KAME_DUPLICATES -DPFKEY -DX509_PLUTO &amp;amp;nbsp;
 -DPLUTO -DKLIPS -DHAVE_UDPFROMTO -DPFKEY &amp;amp;nbsp; 
-DKLIPS_MAST &amp;amp;nbsp; -DBUILDER=\&quot;root@L7base\&quot;
-DDEBUG -DUSE_AES -DUSE_3DES -DUSE_SHA2 -DIKE_ALG 
-DKERNEL_ALG -DAGGRESSIVE -DXAUTH -DMODECFG -DMODECFG_DNSWINS
&amp;amp;nbsp;-DNAT_TRAVERSAL 
-DI_KNOW_TRANSPORT_MODE_HAS_SECURITY_CONCERN_BUT_I_WANT_IT &amp;amp;nbsp; 
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;
-DUSE_MODP_RFC5114 -DHAVE_NM -DSHARED_SECRETS_FILE=\&quot;
/etc/ipsec.secrets\&quot; -DPOLICYGROUPSDIR=\&quot;
/etc/ipsec.d/policies\&quot; -DPERPEERLOGDIR=\&quot;
/var/log/pluto/peer\&quot;
-g -Wall -W -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast 
-Wcast-qual -Wmissing-declarations -Wwrite-strings -Wstrict-prototypes
&amp;amp;nbsp;-Wno-error=cast-qual -Wno-error=cpp -DALLOW_MICROSOFT_BAD_PROPOSAL &amp;amp;nbsp;
-c /PGRAM/openswan-2.6.39/programs/pluto/connections.c

cc1: error: -Werror=cpp: No option -Wcpp

make[3]: *** [connections.o] Error 1

make[3]: Leaving directory `/PGRAM/openswan-2.6.39/OBJ.linux.i386/programs/pluto&#39;

make[2]: *** [programs] Error 1

make[2]: Leaving directory `/PGRAM/openswan-2.6.39/OBJ.linux.i386/programs&#39;

make[1]: *** [programs] Error 1

make[1]: Leaving directory `/PGRAM/openswan-2.6.39/OBJ.linux.i386&#39;

make: *** [programs] Error 2
&lt;/pre&gt;
&lt;br /&gt;
&lt;div&gt;
=========================&lt;/div&gt;
&lt;div&gt;
關鍵問題在 &lt;b&gt;cc1: error: -Werror=cpp: No option -Wcpp&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
疑似因為 使用的參數 我 gcc 版本似乎沒有支援&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
後續到網路上查看到相同的問題&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://lists.openswan.org/pipermail/users/2013-July/022536.html&quot;&gt;https://lists.openswan.org/pipermail/users/2013-July/022536.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
原因是 gcc的版本較舊 新版本的參數指令無法編譯&lt;br /&gt;
&lt;br /&gt;
到下面這個連結 &amp;nbsp;即可看到 修正的 Makefile 內容 (可自己動手改或直接覆蓋~)&lt;br /&gt;
&lt;span style=&quot;background-color: #e6f1f6; color: #213f4d; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 18px; font-weight: bold; line-height: 25px;&quot;&gt;[Only use -Wno-error=cpp when GCC&#39;s version is &amp;gt;= 4.6]&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/xelerance/Openswan/commit/31e261a07a1aa6b9de1491e8f6053189aff5554b&quot;&gt;https://github.com/xelerance/Openswan/commit/31e261a07a1aa6b9de1491e8f6053189aff5554b&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
以下步驟即可搞定!&lt;/div&gt;
&lt;div&gt;
================&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
有兩個地方的 &amp;nbsp;&quot;Makefile&quot; 使用到 造成問題的command&lt;br /&gt;
&lt;br /&gt;
(1)lib/libopenswan/Makefile&lt;br /&gt;
(2)program/pluto/Makefile&lt;br /&gt;
&lt;br /&gt;
在上面兩個檔案中找到這行 :&lt;br /&gt;
&lt;pre class=&quot;code prettyprint&quot;&gt;&amp;nbsp;&quot;CFLAGS+= -Wno-error=cpp&quot;
&lt;/pre&gt;
&lt;br /&gt;
替換成 :&lt;br /&gt;
&lt;pre class=&quot;code prettyprint&quot;&gt;# Check if GCC&#39;s version is recent enough

GCC_VERSION_GE_46:=$(shell test `gcc -dumpversion | sed &#39;s/^\([0-9]\)\.\([0-9]\).*/\1\2/&#39;` -ge 46 &amp;amp;&amp;amp; echo true || echo false)

ifeq ($(GCC_VERSION_GE_46),true)

&amp;nbsp;CFLAGS+= -Wno-error=cpp

endif
&lt;/pre&gt;
將會依照你的gcc版本 去判斷是否執行此段程式碼~&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;style&gt;
pre.code {
  display: block;
  overflow: auto;
  min-height:50px;
  max-height:800px;
  padding: 0 0 0 20px;
  border: 1px solid #ccc;
  background: #0f0f0f url(https://sites.google.com/site/klcintwimages/Code_BG.gif) left top repeat-y;
}
code.prettyprint {
  line-height: 1.2em;
  margin: 1px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/373421211839698305/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2013/08/openswan-cc1-error-werrorcpp-no-option.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/373421211839698305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/373421211839698305'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2013/08/openswan-cc1-error-werrorcpp-no-option.html' title='openswan 問題 cc1: error: -Werror=cpp: No option -Wcpp'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-4198702417974379484</id><published>2012-09-20T19:10:00.001-07:00</published><updated>2013-08-20T20:45:15.113-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ｃ語言"/><title type='text'>[C]讀取指定路徑下檔案清單</title><content type='html'>最近寫C 突然需要去擷取 路徑下的檔案目錄&lt;br /&gt;
就隨手在網路上 搜尋了一下&lt;br /&gt;
&lt;br /&gt;
來源: http://www.cnblogs.com/beauty/archive/2010/09/09/1822535.html&lt;br /&gt;
&lt;br /&gt;
主要是 使用 dirent 這個 struct&lt;br /&gt;
但讀出來的 檔案路徑 會包含 &quot;.&quot;,&quot;..&quot;等隱藏檔的路徑&lt;br /&gt;
簡單說會等於在linux底下&quot; ll -a &quot;輸出&lt;br /&gt;
&lt;br /&gt;
如不需要此隱藏內容 則 記得處理&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code prettyprint&quot;&gt;
#include&lt;dirent .h=&quot;.h&quot;&gt;

struct dirent *ent = NULL;

DIR *pDir;
 
if(EQ(pDir = opendir(file_path),NULL))
{
    LOG(LOG_INFO, &quot;error&quot;);
    return 0;
}
 
chdir(file_path); //如要讀取目錄下檔案 記得切換至當前目錄

while(NEQ(ent = readdir(pDir),NULL))
{
    strcpy(file_name,ent-&amp;gt;d_name);

    if(EQ(*file_name,&#39;.&#39;)) //遇到 隱藏檔 則略過
    {
      continue;
    }
  
    if(NEQ(stat(file_name,&amp;amp;st_file),0))
    {
      LOG(LOG_INFO, &quot;Read header file error&quot;);
      return 0;
    }
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;style&gt;
pre.code {
  display: block;
  overflow: auto;
  min-height:50px;
  max-height:800px;
  padding: 0 0 0 20px;
  border: 1px solid #ccc;
  background: #0f0f0f url(https://sites.google.com/site/klcintwimages/Code_BG.gif) left top repeat-y;
}
code.prettyprint {
  line-height: 1.2em;
  margin: 1px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function() {
  /* dynamically load prettify.js */
  try {
      prettyPrint();
  } catch (e) {
      var prettifyScriptId = &quot;prettifyScript&quot;;
      if (document.getElementById(prettifyScriptId) == null) {
          var scriptElement = document.createElement(&quot;script&quot;);
          scriptElement.id = prettifyScriptId;
          scriptElement.src = &quot;https://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js&quot;;
          scriptElement.onload = function () { prettyPrint(); }
          document.getElementsByTagName(&quot;head&quot;)[0].appendChild(scriptElement);
      }
  }

  /* dynamically load sunburst.css */
  var prettifyStyleId = &quot;prettifyStyle&quot;;
  if (document.getElementById(prettifyStyleId) == null) {
      var linkElement = document.createElement(&quot;link&quot;);
      linkElement.id = prettifyStyleId;
      linkElement.rel = &quot;stylesheet&quot;;
      linkElement.type = &quot;text/css&quot;;
      linkElement.href = &quot;http://google-code-prettify.googlecode.com/svn/trunk/styles/sunburst.css&quot;;
      document.getElementsByTagName(&quot;head&quot;)[0].appendChild(linkElement);
  }
})();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/4198702417974379484/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/09/c.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/4198702417974379484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/4198702417974379484'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/09/c.html' title='[C]讀取指定路徑下檔案清單'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-1998690765238330246</id><published>2012-09-19T01:16:00.001-07:00</published><updated>2013-05-20T17:57:35.390-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>Django &amp; Python3 </title><content type='html'>前陣子 終於把 良葛格 &lt;b&gt;python&lt;/b&gt; 的教學文看完了&lt;br /&gt;
&lt;br /&gt;
也跟著實作一些小範例&lt;br /&gt;
&lt;br /&gt;
昨天就想說 要來做些 大一點的 可以看到成品的&lt;br /&gt;
&lt;br /&gt;
沒想到 悲劇的正要開始&lt;br /&gt;
&lt;br /&gt;
找到 django 網路上說 可以很輕鬆愉快的架設部落格&lt;br /&gt;
&lt;br /&gt;
載完安裝檔&lt;br /&gt;
&lt;br /&gt;
發現!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;  &amp;gt;&amp;gt;django-admin.py startproject KAGA
  Traceback (most recent call last):
  File &quot;django-admin.py&quot;, line 2, in &lt;module&gt;
    from django.core import management
  File &quot;C:\Python32\lib\site-packages\django\core\management
            \__init__.py&quot;, line 54

    except ImportError,e:
                      ^
SyntaxError: invalid syntax
&lt;/module&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
竟然發生錯誤了&lt;br /&gt;
&lt;br /&gt;
後來查詢了一下 發現&lt;br /&gt;
&lt;br /&gt;
原來&lt;br /&gt;
&lt;br /&gt;
&lt;strike style=&quot;color: red; font-size: x-large;&quot;&gt;django &amp;nbsp;還不支援 &amp;nbsp;Python3&lt;/strike&gt;&lt;span style=&quot;color: #444444;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;5/21更新 已可支援 django&lt;/span&gt;&lt;span style=&quot;font-size: large;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: red; font-size: large;&quot;&gt;&lt;strike&gt;&lt;br /&gt;&lt;/strike&gt;&lt;/span&gt;
&lt;br /&gt;
GG &amp;nbsp;~&quot;~|||&lt;br /&gt;
&lt;br /&gt;
順便也分享一個網頁 關於 目前 各大套件支援&lt;b&gt;Python3&lt;/b&gt;的狀況&lt;br /&gt;
&lt;a href=&quot;http://python3wos.appspot.com/&quot;&gt;http://python3wos.appspot.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/1998690765238330246/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/09/django-python3.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1998690765238330246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1998690765238330246'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/09/django-python3.html' title='Django &amp; Python3 '/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-8486821721395038656</id><published>2012-09-04T20:22:00.003-07:00</published><updated>2012-09-04T20:34:34.439-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="文章分享"/><title type='text'>Google正在污染網路</title><content type='html'>來源 : http://www.lihpao.com/?action-viewnews-itemid-101330&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
節譯■葉興台&lt;br /&gt;
根據英國衛報的一篇評論，Google這家廣告公司已壟斷和搞亂人類史上最大的圖書館，並將之商業化，該公司沒有從根本再思考數位時代知識組織的方式，其所引發的資訊政變將產生深遠的後果。&lt;br /&gt;
Google原先的構想是免費的搜尋引擎，12年前該公司的創辦人佩吉（Larry Page）和布林（Sergey Brin）在首份公開文件中警告，廣告將會污染搜尋引擎。佩吉和布林寫道：「我們預期廣告資助的搜尋引擎，在本質上就會偏向廣告商，偏離消費者的需求。」他們譴責將搜尋結果頁面的上方位置出售給廣告商會帶來未知的危害。Google現在卻擁護這種作法。&lt;br /&gt;
&lt;br /&gt;
在Google執行長施密特（Eric Schmidt）的統治下，Google目前的營收幾乎都來自於兩位創辦人原先所厭惡的作法。在2007年以31億美元收購DoubleClick後，Google已成為全球最大的線上廣告公司。Google占據所有網站的85％廣告空間，98％的營收來自於以商業訊息所污染的網路知識。施密特喜孜孜地說道：「Google現在是一家廣告公司，不僅是一個搜尋引擎，而是網路上最有力量的商業化力量。」&lt;br /&gt;
&lt;br /&gt;
每個時代都相信其組織知識的方式很完美，把先前的系統視為愚蠢。美國大學的圖書館使用衍生於培根（Francis Bacon）在17世紀將各種知識區分為想像、記憶和理性的主題分類方式，但今日除了一兩個例外，有誰會用幾種類型來組織知識？對於被訓練來使用Google的世代而言，這個方法似乎已經過時、不合邏輯或不可能，但透過索引（index）而非分類來運作的現代搜尋引擎，顯然有很多瑕疵。&lt;br /&gt;
3百年前，愛爾蘭作家斯威夫特（Jonathan Swift）就預見仰賴索引來組織知識的文化危機，他相信索引學習會導致思考膚淺。司威夫特所言甚是，越來越多老師和公共知識分子漸漸瞭解到，搜尋引擎會鼓勵略讀、輕讀和淺思。但主題分類會創造和諧和鼓勵意外發現事物的本領，索引會將知識片斷化，讓我們變笨。拜Google之賜，索引學習的膚淺，正在污染我們的文化、社會和文明。&lt;br /&gt;
發明索引的並非Google，得歸功於在1230年編纂首部聖經索引的聖塞爾（Hugh of St. Cher）所領導的5百名會士。第一個想將人類所有知識索引化的也不是Google，惠特利（Henry Wheatley）早在1902年就有編纂「萬用索引」（universal index）的念頭。Google也不是第一個將廣告擺進搜尋引擎所引的第一人。讓Google與眾不同的是，該公司在完全沒有察覺到後果的情況下，藉著把組織知識來商業化，從中謀利的程度。&lt;br /&gt;
網路這個巨大的圖書館充斥了如此多的廣告，很多網路用戶表示，根本沒有注意到這些廣告。廣告貼在搜尋結果頁面的上方和右側，也貼在Gmail的電子郵件旁邊，在我們喜歡的部落格上，以及在反企業抗爭的報導旁邊。如多數網路用戶無法分辨廣告和內容這個悲哀事實所顯示的，這種商業疲勞轟炸將對文化造成衝擊。&lt;br /&gt;
&lt;br /&gt;
網路廣告的無所不在，限制我們思考的水平。羅馬哲學家小西尼加（Seneca The Younger）告誡要過簡樸的生活，我們的生活卻被商業所包圍，鋪天蓋地的商業訊息讓我們深陷在市場裡，難怪現在幾乎很難想像一個沒有消費主義的世界，廣告已變成我們觀看世界時那個扭曲的框框。&lt;br /&gt;
任何組織知識的體系步可能不帶來社會、政治和文化後果，完全不偏不倚的組織原則也不可能出現，問題是今日很少人瞭解這點。我們以研究員自滿，懶於作為思想家。我們太過信任一家公司、一家廣告公司、單一組織知識的方式、自動關鍵字索引（automated keyword indexing）。&lt;br /&gt;
讓一家廣告公司控制人類知識索引的危險明顯到無法忽視。萬用索引是人類共享的遺產，應屬於每一個人，任何企業和國家都沒有權利將這個索引私有化、商業化，審查他們不喜歡的內容，或將搜尋排名拍賣給最高得標者。我們擁有公共圖書館，我們也需要公共的搜尋引擎。&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #fce5cd; color: red;&quot;&gt;========================================================================&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
看到這篇文章 有些想法與感觸....&lt;br /&gt;
&lt;br /&gt;
Google 已經慢慢與現代人的生活結合&lt;br /&gt;
&lt;br /&gt;
甚至無時無刻都可能接收到 google所提供的訊息資訊&lt;br /&gt;
&lt;br /&gt;
而文中的作者認為 當google提供免費的服務後&lt;br /&gt;
你正開心使用著甚至分享其好處&lt;br /&gt;
而就在不自覺的狀況下 置入了 許多商業利益的事物&lt;br /&gt;
&lt;br /&gt;
這樣的行為 太卑鄙了吧 !&lt;br /&gt;
&lt;br /&gt;
是這樣嗎? 仔細想想 為何不覺?&lt;br /&gt;
在旁人跟你講說google的作為之前 你可曾發現?&lt;br /&gt;
&lt;br /&gt;
人有過濾資訊的能力!!!&lt;br /&gt;
&lt;br /&gt;
我只想看A 你丟出了 A,B,C 真的會注意到 B,C&lt;br /&gt;
我認為不是多數 不過 也可能他逼你不得不注意&lt;br /&gt;
但也不一定表示 你會了解到 B,C 內容放了什麼&lt;br /&gt;
&lt;br /&gt;
不只是google 這樣的手法&lt;br /&gt;
我想網路上 有太多太多 置入性的行銷手法&lt;br /&gt;
&lt;br /&gt;
譬如說:&lt;br /&gt;
我只是看個影片 &amp;nbsp;為什麼要出現廣告 還要我等?!&lt;br /&gt;
&lt;br /&gt;
此時 你有選擇的權利 我要等嗎? 我等待的時間 一定得乖乖看著廣告嗎?&lt;br /&gt;
&lt;br /&gt;
網路的好處也是最大的壞處&lt;br /&gt;
&quot;過猶不及&quot;&lt;br /&gt;
資訊無所不在 無奇不有,甚至可以說是如洪水般的氾濫著&lt;br /&gt;
&lt;br /&gt;
所以在這個時代的人們 是該培養 資訊過濾的能力&lt;br /&gt;
甚至擁有 判斷 這些網路資訊的 可性度&lt;br /&gt;
明顯地去表達出 對於那些非相關或者錯誤資訊的厭惡&lt;br /&gt;
&lt;br /&gt;
作者這樣的表達 並沒有不當&lt;br /&gt;
因為這可以讓 google 了解 使用者不喜歡什麼 喜歡什麼&lt;br /&gt;
當我已經吶喊著 我不要&lt;br /&gt;
你卻硬來 那大不了選擇轉頭就走...&lt;br /&gt;
&lt;br /&gt;
我常講一句話&lt;br /&gt;
&quot;你不能控制別人 但你可以改變自己&quot;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/8486821721395038656/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/09/google.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/8486821721395038656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/8486821721395038656'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/09/google.html' title='Google正在污染網路'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-863056776446567820</id><published>2012-09-04T00:21:00.001-07:00</published><updated>2012-09-04T00:21:26.942-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>[linux]移除文章中的^M</title><content type='html'>&lt;br /&gt;
在網路上 看到 我之前一直遇到的問題&lt;br /&gt;
原來是有更快的解決方法&lt;br /&gt;
&lt;br /&gt;
來源:&lt;a href=&quot;http://arenmmmm.blogspot.tw/2008/05/m.html#links&quot;&gt;http://arenmmmm.blogspot.tw/2008/05/m.html#links&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;有時候linux上的文字檔裡面的內容，每一行的結尾會出現^M，該如何消除咧??&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;利用vi下置換命令&quot;％s/(要被置換的字串)/(改成這個字串)/g(g表示global)&quot;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;:%s/^M//g&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;^M 的輸入法為 先按Ctrl-V 再按 Ctrl-M&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;然後記得要存檔&lt;/b&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/863056776446567820/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/09/linuxm.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/863056776446567820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/863056776446567820'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/09/linuxm.html' title='[linux]移除文章中的^M'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-2308023579968382407</id><published>2012-09-03T17:46:00.002-07:00</published><updated>2012-09-03T17:46:29.420-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>[Python]排版的錯誤</title><content type='html'>昨日心血來潮又複習了一下 python的語法&lt;br /&gt;
寫了幾行程式&lt;br /&gt;
結果發現 &amp;nbsp;怎麼一直出現下面的錯誤&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;TabError: inconsistent use of tabs and spaces in indentation&lt;br /&gt;
&lt;br /&gt;
我在linux 底下 使用 mc 編輯 發現&lt;br /&gt;
一行中 使用一個 tab 不會發生錯誤&lt;br /&gt;
但當使用兩個以上時 就開始發生 上述的錯誤&lt;br /&gt;
&lt;br /&gt;
後來改用 空白鍵 取代 反而沒問題了</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/2308023579968382407/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/09/python.html#comment-form' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/2308023579968382407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/2308023579968382407'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/09/python.html' title='[Python]排版的錯誤'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-2610057169645890961</id><published>2012-08-29T03:56:00.003-07:00</published><updated>2012-08-29T03:56:51.367-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="創新革命"/><title type='text'>義賊購物網</title><content type='html'>　　詭異的天秤颱風來襲 ，主要在屏東出現許多災情，原以為僅此而已，不過就在昨天傳出蘭嶼的災情更為嚴重，天秤的回馬槍，一出手簡直把蘭嶼翻了過來，怵目驚心的照片慢慢的在網路上轉發著，很快地看到當地居明對外界求援，因為颱風而被孤立的島嶼急需生活物資，而我和同事們十分迅速的決定寄送泡麵過去，多少出點心力。&lt;br /&gt;
　　不過身為上班族的我們，根本沒空去完成挑貨、包裝、寄送這些動作，我想出了極佳的方式，而且可以用最快的速度完成這些步驟，那就是＂&lt;span style=&quot;color: #cc0000;&quot;&gt;網路購物&lt;/span&gt;＂！&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
　　也真的不用幾秒鐘，四十幾箱的泡麵訂單就開始出貨了，拜網路科技之所賜，現在連做愛心都可以快狠準。這次舉動，讓我突發奇想：＂&lt;span style=&quot;color: #cc0000;&quot;&gt;義賊購物網&lt;/span&gt;＂，如果這些網路購物的網站，能夠主動在其頁面上有這些相關的捐款物資等等的訊息，甚至給予優惠，我想這會是買賣方以及等待物資的災民都極為有利的設計方針。&lt;br /&gt;
&lt;br /&gt;
　　從消費者來說，我可以省去很多不必要的麻煩，甚至加快對於愛心捐助的行動，也或許因為去繁從簡，會有更多的捐物資的消費者出現，如果剛好又有折扣優惠，身消費者可能會更為大方出手做愛心。&lt;br /&gt;
　　過去會擔心募集物資是否屬實，甚至有人的愛心被詐騙走了，如果購物網本身提供了，捐款單位相關的訊息，並直接在下訂單後寄送的地址都直接鎖定，除了減少詐騙問題，也會增加消費者對於捐物資的意願以及信任。&lt;br /&gt;
&lt;br /&gt;
　　再從商家來說，提供捐物資的訊息並不會多花什麼成本，反倒可以透過這樣的廣告手法，多獲得一點買氣，如能祭出優惠，對於社會來說更是一種公益行為。在運貨部分更可以使用定時或者定量出貨，讓消費者知道出貨時間或是還差多少量可以出貨，減少貨運成本，提高效益，更可以掌握所捐款的物資數量，可以提供給收集物資的單位做評估，甚至在必要的時候告知消費者物資的缺乏數量是否滿額。&lt;br /&gt;
&lt;br /&gt;
　　對於等待物資的災民來說，最希望的就是快速取得物資，如果願意捐物資的民眾都是去商場買完再去快遞寄送，我想不會比在網路上點幾下，會有專業的物流公司撿貨出貨來的快，現在網路十分的普及，只要有網路就可以做愛心，如讓它變成舉手之勞，可以更輕易的收集滿物資；對於災民另一個困擾的問題來了，就是過多的物資造成極大的不便與浪費，購過購物網可以提供捐助物資的相關訊息，避免災民又得面臨另一項災難。&lt;br /&gt;
&lt;br /&gt;
　　當然，一定有人會覺得講的都很好，為什麼購物網站公司不自己捐就好了，講這麼多還不是為了利益，沒錯，我想購物網可不是慈善團體，大多數不可能願意做賠錢生意，但是如果有利可圖又能便民利民，我想何樂而不為，利用優惠折扣換成變相的捐助，把原本捐款的成本轉換成折扣，誘引出更多的消費者一起參與不是更好嗎？&lt;br /&gt;
&lt;br /&gt;
　　也許會覺得購物網這樣做就像賊，在這些愛心里偷偷賺取利益，你可以說他賺災難錢其實也沒錯，甚至引誘來購物網站做消費捐助，但從不同角度卻也是提供了一個便利有效率的管道，受災的民眾更快取得更多的物資，如能做到這樣的賊，是否也算是個＂&lt;span style=&quot;color: #cc0000;&quot;&gt;義賊&lt;/span&gt;＂&lt;span style=&quot;color: #cc0000;&quot;&gt;？！&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/2610057169645890961/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/08/blog-post_29.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/2610057169645890961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/2610057169645890961'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/08/blog-post_29.html' title='義賊購物網'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-1653476506207218839</id><published>2012-08-29T02:46:00.001-07:00</published><updated>2012-08-29T02:46:41.333-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="文章分享"/><title type='text'>沈芯菱〉11歲就投入公益， 用鍵盤和滑鼠改善世界</title><content type='html'>分享來自&amp;nbsp;
&lt;a href=&quot;http://www.gvm.com.tw/Boardcontent_20529_3.html&quot;&gt;遠見雜誌2012年8月號 第314期&lt;/a&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; id=&quot;Scontext&quot; style=&quot;background-color: white; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-width: 0px 0px 1px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; letter-spacing: 1px; line-height: 20px; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-align: start; width: 100%px;&quot;&gt;&lt;tbody style=&quot;border: 0px; list-style: none; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;
&lt;tr style=&quot;border: 0px; list-style: none; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;td bgcolor=&quot;#F1F1F1&quot; height=&quot;0&quot; style=&quot;border: 0px; list-style: none; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; font-size: 15px; font-weight: bold; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
出生∕1989年&lt;br /&gt;
學歷∕斗六高中、清大人文社會系，目前為台大新聞所研究生&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&lt;span id=&quot;page1&quot; style=&quot;border: 0px; list-style: none; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; p=&quot;&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;今年剛從清華大學畢業的沈芯菱，才22歲，就已是家喻戶曉的「公益小魔女」。在各地演講的她，常搭高鐵趕行程，有次被推餐車經過的服務員認出，還找同事一起來要簽名。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;當同齡學生們煩惱暑假要上哪玩？該換哪款最炫手機？或沉迷虛擬世界而無法自拔時，她卻已長達11年投入公益活動。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;來訪這天，記者一起聆聽了她在新竹六家國小的演講。負責邀請的周主任表示，沈芯菱很搶手，「四個月前就要跟她敲好，不然搶不到！」&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;當天聽眾是即將畢業的上百名小學六年級學生。散場後還聚集幾十位搶著要簽名、合照。「你們要幫助人，不用等長大喔！」她對滿場的小朋友說。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;問她創造改變的能量從何而來？答案出乎意料的平淡，就是青年都有的基本能力：活用網路、社群傳播、善用免費科技。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;若比出身背景，很多人的人生起跑點，都比沈芯菱領先。從小，她就跟著擺攤的爸媽到處跑，遊走各鄉鎮。當同齡孩子在幼稚園無憂無慮地唱歌、玩耍時，她得在市場攤子幫忙叫賣，或趴在地上學寫注音符號。5歲那年的生日願望，是吃根雞腿。7歲的願望，則是坐一次火車。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;老天爺雖然沒給沈芯菱富有的家境，卻給了她聰明的腦袋，及運用資訊的天賦。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;小學四年級開始接觸電腦，老師常稱贊沈芯菱有天分。媽媽知道了，便到處向親友借貸，還變賣玉珮，籌到2萬多元買了部二手電腦，從此改變一家人的命運。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;開啟資訊技能後，沈芯菱幫家裡的服裝店架設網站，還對外接案、寫程式，一步步改善家境。至今累積快40張證照。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;此後，她幫助銷售滯銷的農產品、替弱勢學生辦教學營、辦藝術創作展覽、架設免費教學網站等。以一己之力投入多項公益活動，貢獻超過500萬。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;她最想改變的，是「貧窮世襲」。早在2002年就架設「安安免費教學網站」，分享數十萬筆國中小學教材，幫助弱勢學子提升成績，至今累積逾460萬人次上網。&lt;/div&gt;
&lt;br style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; letter-spacing: 1px; line-height: 20px; list-style: none; margin: 0px; outline: 0px; padding: 0px;&quot; /&gt;
&lt;span class=&quot;text6-g&quot; style=&quot;background-color: white; border: 0px; color: #4f3821; font-family: Arial, Helvetica, sans-serif; font-size: 15px; font-weight: bold; letter-spacing: 1px; line-height: 20px; list-style: none; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;b class=&quot;text6&quot; style=&quot;border: 0px; color: #298bce; letter-spacing: 0.5px; list-style: none; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;動力來自憤怒，恨不公不義&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;「其實我的很多行動，都是來自憤怒！」長相清純、舉止溫和的她，看上去跟一般女學生沒啥不同。不過對不公不義的社會現象，卻保有敏銳的感覺。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;background-color: white; border: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; letter-spacing: 1px; line-height: 24px; list-style: none; outline: 0px; padding: 8px 0px;&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;記得小學五年級中秋節，看到爺爺種的文旦堆滿倉庫，阿公阿嬤整天愁眉苦臉，她非常不捨。心想，「阿公阿嬤每天去田裡勞動，卻沒有相對的回報！」於是每天都在想，可以怎麼幫忙？&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;不久，她架設了文旦產銷網，並上網蒐集企業聯絡名單，擬好一封促銷信瘋狂轉寄，三天後，訂單開始湧入，創下農產用網路直銷的先例。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;國二時，她投書報紙，呼籲政府重視柳丁價格崩跌，隔天農委會發文反駁，但她沒有退讓，跟媽媽兩人到處拍照舉證，並上網公開，最後農委會提高收購價。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;而七年前一個放學午後，路邊一對母子對話，也深深震撼了她。一位媽媽教訓哭泣的孩子說，「你再不用功念書，以後就跟那些人一樣，沒出息！」她順著手勢望過去，是一群在鷹架上揮汗工作、皮膚晒得通紅的勞工。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;她驚覺的地方有二。一是那位媽媽的音量之大，毫不在乎對方是否聽到。二是，連在雲林鄉下，對底層勞工的歧視都如此嚴重。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;她認為該做些什麼來改變這一切，於是一人騎車環島，走遍全台上千村落，用相機拍下每個遇到的面孔。至今累積超過30萬張照片，發表「草根台灣臉譜」影像網站，吸引近2000萬瀏覽人次。&lt;/div&gt;
&lt;br style=&quot;border: 0px; font-size: 13px; line-height: 20px; list-style: none; margin: 0px; outline: rgb(0, 0, 0); padding: 0px; text-align: start;&quot; /&gt;
&lt;span class=&quot;text6-g&quot; style=&quot;border: 0px; color: #4f3821; font-weight: bold; line-height: 20px; list-style: none; margin: 0px; outline: rgb(0, 0, 0); padding: 0px; text-align: start;&quot;&gt;&lt;b class=&quot;text6&quot; style=&quot;border: 0px; color: #298bce; letter-spacing: 0.5px; list-style: none; margin: 0px; outline: rgb(0, 0, 0); padding: 0px;&quot;&gt;需要的不是運氣，是勇氣&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;採訪過她的主播沈春華便說，她驚訝的不是沈芯菱的電腦長才，而是小小年紀便擁有「用鍵盤打造知識公益、用滑鼠彌平社會斷層」的遠大格局。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;儘管光環耀眼，但沈芯菱坦承，一路走來的挫折與外界質疑從沒斷過，甚至笑她太年輕。為了證明那些聲音是錯的，她陸續克服「太年輕」「零經驗」「零資源」等困難。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;媽媽許麗娟觀察，沈芯菱常一人承受壓力，看到她眼裡的血絲、還有跟年紀不相稱的白髮，總是不捨。唯一能做的就是在她熬夜趕工時，替她泡杯溫牛奶，或在她心情沮喪時，為她打氣。&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;回顧經驗，沈芯菱期勉同世代的年輕人，「真的，每個人都有能力，讓世界往『美好』更靠近一點！」她始終認為，失落的一代需要的不是運氣，而是勇氣！&lt;/div&gt;
&lt;br style=&quot;border: 0px; font-size: 13px; line-height: 20px; list-style: none; margin: 0px; outline: rgb(0, 0, 0); padding: 0px; text-align: start;&quot; /&gt;
&lt;span class=&quot;text6-g&quot; style=&quot;border: 0px; color: #4f3821; font-weight: bold; line-height: 20px; list-style: none; margin: 0px; outline: rgb(0, 0, 0); padding: 0px; text-align: start;&quot;&gt;&lt;b class=&quot;text6&quot; style=&quot;border: 0px; color: #298bce; letter-spacing: 0.5px; list-style: none; margin: 0px; outline: rgb(0, 0, 0); padding: 0px;&quot;&gt;公益小魔女&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;對社會不公不義特別敏銳&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;幫助別人，不必等到長大&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;相信年輕人需要的是勇氣而非運氣&lt;/div&gt;
&lt;div align=&quot;justify&quot; class=&quot;text5&quot; style=&quot;border: 0px; list-style: none; outline: rgb(0, 0, 0); padding: 8px 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/1653476506207218839/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/08/11.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1653476506207218839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1653476506207218839'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/08/11.html' title='沈芯菱〉11歲就投入公益， 用鍵盤和滑鼠改善世界'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-3864716215850109111</id><published>2012-08-29T02:43:00.001-07:00</published><updated>2012-08-29T02:43:26.855-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="心情"/><title type='text'>Start !</title><content type='html'>終於 要開始寫有關程式設計的網誌了&lt;br /&gt;
&lt;br /&gt;
平時工作需要 都是接觸&lt;span style=&quot;color: blue;&quot;&gt;C &lt;/span&gt;比較多&lt;br /&gt;
&lt;br /&gt;
不過 也有學了一陣子&lt;span style=&quot;background-color: white; color: blue;&quot;&gt;java&lt;/span&gt; 好久沒用哩&lt;br /&gt;
&lt;br /&gt;
最近跳進&lt;span style=&quot;color: blue;&quot;&gt;android&lt;/span&gt;的黑洞 &amp;nbsp;還在摸索中&amp;gt; &amp;lt;!&lt;br /&gt;
&lt;br /&gt;
不一定能申論些什麼技術&lt;br /&gt;
&lt;br /&gt;
不過 可以記錄一下 這程式學習之旅 的點點滴滴囉&lt;br /&gt;
&lt;br /&gt;
也希望各位過客 &amp;nbsp;能夠給小弟 多點指教了&lt;br /&gt;
&lt;br /&gt;
^^!&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/3864716215850109111/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/08/start.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/3864716215850109111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/3864716215850109111'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/08/start.html' title='Start !'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-5998213213142917359</id><published>2012-08-29T02:43:00.000-07:00</published><updated>2012-08-29T02:43:14.951-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ｃ語言"/><title type='text'>[C語言]HTTP GZIP 壓縮與解壓縮</title><content type='html'>最近工作上的需求&lt;br /&gt;
在蒐集 有關 網頁 GZIP的壓縮的資訊&lt;br /&gt;
&lt;br /&gt;
想要透過C語言 來進行解壓縮 以及壓縮&lt;br /&gt;
&lt;br /&gt;
後來有找到一個 zlib 這個函式庫&lt;br /&gt;
官方網頁&amp;nbsp;&lt;a href=&quot;http://zlib.net/&quot;&gt;http://zlib.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
看了好多 文章 但是 有看到程式碼&lt;br /&gt;
但是 通常都沒看到詳細的解釋&lt;br /&gt;
只能用模仿的方式去使用 但沒有很了解原理與用法&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/5998213213142917359/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/08/chttp-gzip.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/5998213213142917359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/5998213213142917359'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/08/chttp-gzip.html' title='[C語言]HTTP GZIP 壓縮與解壓縮'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-6308363380818175606</id><published>2012-08-14T08:32:00.003-07:00</published><updated>2012-08-14T08:32:33.700-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="心情"/><title type='text'>[心情]暈頭轉向~</title><content type='html'>這幾天 寫程式有點暈頭哩&lt;br /&gt;
總是一不小心 掉進去程式碼的坑洞裡&lt;br /&gt;
回過神來的時候 時針都跳了好幾格&lt;br /&gt;
&lt;br /&gt;
可能最近也比較晚睡&lt;br /&gt;
感覺精神不佳... = =&lt;br /&gt;
&lt;br /&gt;
唉壓~~~~ &amp;nbsp;寫程式最重要的就是要集中精神&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
呼~~~~~~~~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
深呼吸....&lt;br /&gt;
&lt;br /&gt;
繼續拼下去...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/6308363380818175606/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/08/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/6308363380818175606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/6308363380818175606'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/08/blog-post.html' title='[心情]暈頭轉向~'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-1359675799846458195</id><published>2012-08-11T19:34:00.000-07:00</published><updated>2012-08-29T02:43:03.945-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="文章分享"/><title type='text'>[好文分享]在 Google, 我們堅持的只是一種價值觀</title><content type='html'>&lt;span style=&quot;color: #134f5c; font-size: xx-small;&quot;&gt;又到了週末哩 &amp;nbsp;昨天加班了一整天....&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;看著外頭 炎熱的天氣 只想躲在家裡&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;漫步於網路中....&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;其實平常我就有 閱讀有關軟體程式文章的興趣&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;有些文章 除了能看到同樣在資訊領域 卻能有不一樣的想法&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;一些工作上的甘苦談 往往也能產生不少共鳴&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;所以有時候工作疲憊時 我會去看看 一些文章&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;或許他會讓你 重新注入希望....&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;-------------------&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;分享 一篇 我很喜歡的文章&lt;br /&gt;但 先聲明 這也是我從網路上轉載來的 會附上轉載的網址&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;如有侵犯到任何著作權 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;可以通知我作處理&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 12px; line-height: 18px;&quot;&gt;
來源 &lt;a href=&quot;http://f.pil.tw/thread-887128-1-1.html&quot;&gt;http://f.pil.tw/thread-887128-1-1.html&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 12px; line-height: 18px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;strong style=&quot;background-color: yellow;&quot;&gt;在 Google, 我們堅持的只是一種價值觀&lt;/strong&gt;&lt;br /&gt;
我是 Google 的軟體工程師, 在 Google 的生涯即將邁入第五個年頭, Google 最近遭遇到來自各方的挑戰, 包括競爭者的的崛起, 還&lt;br /&gt;
&lt;br /&gt;
有各國政府的牽制, 整個公司的氛圍和多年前已經有很多不同, 少了點輕鬆, 多了點戰戰兢兢, 環境不容易, 沒有人能置身事外.&lt;br /&gt;
&lt;br /&gt;
Google 是我的第一份工作, 這家公司帶給我相當多的震撼, 他的管理制度, 創新方式, 對人才的尊重等等, 都讓我大開眼界, 但是最讓我印象深刻的, 還是 Google 的價值觀.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Google 一直以來有句座右銘: &lt;/span&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;Do no evil.&lt;/span&gt;&lt;br /&gt;
我今天不是要來頌揚這一句話, 因為那太虛偽了, 尤其是我一直以來都覺得, 好與壞的定義, 邪惡與正義的定義, 在每個人身上都不一樣, 甚至於在每個時代都是不一樣的, 太過於把討論聚焦在這一句話上面, 並無太大意思.&lt;br /&gt;
&lt;br /&gt;
Google 創造了許多產品: 搜尋, 地圖, Android, Gmail, 這些產品在被發明出來的時候, Google 完全沒有從這些產品賺錢的方式, 這些產品完全免費, 只要可以上網, 所有人都可以用&lt;br /&gt;
&lt;br /&gt;
「了不起啊? 免費就是大爺嗎?」 有些人或許會這樣覺得.&lt;br /&gt;
&lt;br /&gt;
完全錯了, 我們不是為了傲慢而發明這些東西, 有人會為了傲慢而去發明創新的嗎?&lt;br /&gt;
&lt;br /&gt;
我們發明這些東西, 是因為我們相信這些東西可以改善人們的生活&lt;br /&gt;
&lt;br /&gt;
那麼這些東西真的改善了人們生活了嗎? 我們相信是&lt;br /&gt;
&lt;br /&gt;
到了今天, 獲取資訊不在是少數人的專利, 無論你想查詢任何資訊, 只要在 Google 輸入關鍵字, Google 可以在彈指間給你答案; 有了 Google Maps, 所有人可以查想去的地方, 在地圖上做各式各樣的創新應用, 甚至還有開車路線, 大眾運輸的資訊; 有了 Gmail 的過濾機制, 大家每天可以過濾掉成千上萬的垃圾郵件, 省去多少不必要的麻煩. 有了 Android, 智慧型手機有了新的生態, 新的產業, 使用者不再被手機業者綁架, 軟體開發者可以自由在 Android 上面創造應用程式, 並且獲得可觀的報酬.&lt;br /&gt;
&lt;br /&gt;
Google 是一家超過兩萬人的巨大公司, 也許大家會發現, Google 成功的產品也不過就是這幾樣罷了&lt;br /&gt;
&lt;br /&gt;
是的, Google 有成千上萬的專案, 真正成功的, 大家認識的, 不過就是那麼幾個&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: yellow;&quot;&gt;因為要創造一個好軟體, 是一件極端困難的事情, 所以身為軟體工程師, 我們每天都在解決非常困難的軟體問題, 我們挑燈夜戰, 獨自一人默默地面對電腦螢幕, 苦思不已, 然後享受終於解決一個 bug 的小小成就感, 自己興奮地對著螢幕, 握拳說聲 yes. 這種喜悅, 對於其他人一點都不重要, 我們只能自己暗爽, 沒有什麼好分享的&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;. 因為我們相信自己做的事情, 有一天會造福使用者, 而自己也許會獲得一些相應的報酬, 但這是其次.&lt;/span&gt;&lt;br /&gt;
所以在討論任何工程問題時, 我們常常會自問: 「這對使用者來說是最好的嗎?」&lt;br /&gt;
&lt;br /&gt;
我們從來沒有一個討論是以 「我們可以因此從使用者身上撈到多少錢?」 來當做出發點, 這代表了 Google 以解決工程問題為導向的一種文化和價值觀&lt;br /&gt;
&lt;br /&gt;
是的, 身為一個人, 我們偶爾都想有狠撈一筆的機會, 寫出改變世界的軟體, 寫出把源源不絕的鈔票帶進我們口袋的軟體, 但身為工程師的同時, 大多數的時候我們打屁完了, 笑一笑, 重新再從解決問題的角度出發. 發財的事情偶爾做做白日夢就好. 真的, 賣雞排賣得好真的賺得比較多. 只要你不亂加塑化劑, 不會出什麼大事的.&lt;br /&gt;
&lt;br /&gt;
我一直覺得工程師是很了不起的一群人, 他們選擇了創造, 但是從創造的那一刻起, 他們也選擇了為自己的成品負責, 有的時候東西失敗了, 他們必須接受辱罵, 甚至於嚴重一點的, 會有法律的制裁. 他們當初大可以選擇簡單一點的路走, 從掠奪別人的財富為出發點, 不必為任何的成品負責, 什麼都好, 何必吃力搞出一個自己需要對別人負責的東西? 我很喜歡東罵西罵, 應該算是相當憤世嫉俗的一個人, 但我從來不批評工程師, 因為這群人選擇了一條難走的路, 而且大部分的時候, 鎂光燈並不屬於他們, 甚至於金錢的報酬大部分也不屬於他們, 他們大部分的人, 終其一生都是一群不太能言善道的人, 在今天還常常被詐騙, 被人嫌呆, 嫌宅, 嫌臭, 嫌與社會脫節&lt;br /&gt;
&lt;br /&gt;
但是他們在我眼中, 是最務實的一群人. 我以身為一個工程師為榮.&lt;br /&gt;
&lt;br /&gt;
而 Google 很珍惜這樣的一群人, 所以事事以工程的務實角度出發, 我們彼此互相尊重, 從不惡言相向, 大家只是專心地討論問題, 解決問題. Google 犯了很多錯, 推出很多爛產品, 被使用者罵到臭頭, 被政府調查, 然後關掉這些爛產品. 我們知道, 走在科技尖端, 想要改善人類的生活, 這是一定會遇到的挑戰和爭議, 在過程中, 有的人受益, 有的人受了傷. 有的人見獵心喜, 拿著棍棒, 等著給我們好看.&lt;br /&gt;
&lt;br /&gt;
但我們能做的, 就是盡力去改善, 並且堅持自己工程師務實的價值觀, 相信自己寫出來的一行一行程式碼, 終有一天會幫助到使用者, 這些使用者是誰, 我們並不知道. 但身為工程師, 我們知道自己並不是麻木不仁, 只是還需要一點時間來解決問題. 只是還需要學習更多的工程技巧, 來改善產品. 遇到任何再小的爭議, 我們都會花上好幾倍的時間, 來討論對大家最好的辦法, 常常我們的會議會因為解決方案的一點小瑕疵, 而討論時間拖得太長, 不得不擇期再審, 直到我們找出大家都能接受的好方案. 有的時候常常因為這樣延遲了產品上市的時程, 失去先機. 這是工程師文化的堅持. 所以 Google 很多產品都是掛著 「beta」, 因為一個大型軟體不可能完美.&lt;br /&gt;
&lt;br /&gt;
Google 不是一個完美的存在, 從來都不是, 但我們尊重使用者, 相信科技能夠改善人們的生活. 我也相信大部分的 Googler, 和我堅持的是同一個價值觀.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 12px; line-height: 18px;&quot;&gt;「相信科技能夠改善人們的生活」 聽起來很老套, 很假, 很像洗腦用語, 但是我們這群人真的透過自己的雙手, 一點一滴去實現它, 我們知道這家公司沒有騙人, 因為我們就是那些執行者, 我們寫程式.&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;----------&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c; font-size: xx-small;&quot;&gt;這篇文章 聽聞是在 google 在台灣停止販售android軟體後出現的&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c; font-size: xx-small;&quot;&gt;但我也沒去查證過&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c; font-size: xx-small;&quot;&gt;或許有人會覺得&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c; font-size: xx-small;&quot;&gt;這篇文章都是在宣揚google這間公司的感覺&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c; font-size: xx-small;&quot;&gt;但我從程式設計師的角度來看&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c; font-size: xx-small;&quot;&gt;google 我並不把他當重點看 (無視 XD)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c; font-size: xx-small;&quot;&gt;我看到的是 身為一個工程師 對於這個職務的想法與態度&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c; font-size: xx-small;&quot;&gt;以及可以賦予的價值~~~~&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;程式設計師 也許是一個可以改變世界的魔術師&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b style=&quot;background-color: white;&quot;&gt;你今天也在變魔術了嗎 ?&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/1359675799846458195/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/08/google.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1359675799846458195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1359675799846458195'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/08/google.html' title='[好文分享]在 Google, 我們堅持的只是一種價值觀'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-6602312083512969300</id><published>2012-08-10T10:25:00.000-07:00</published><updated>2012-08-10T10:25:25.646-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ｃ語言"/><title type='text'>[C語言] memove,memcpy 差異</title><content type='html'>&lt;span style=&quot;font-size: x-small;&quot;&gt;　&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;　&lt;span style=&quot;font-weight: normal;&quot;&gt;平常工作都在用C ，C語言最好用但是也是最難用的就是&lt;u&gt;記憶體的管理，&lt;/u&gt;如果用得好，可以減少記憶體的使用或是增加執行效能，但我常聽到一句話 &quot;空間換時間&quot;，&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;最近慢慢開始感受到這句的意思了。&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;看一下memmove 與 memcpy這兩個 founction就會大概了解哩！！&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;-----------&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;color: red; font-size: xx-small;&quot;&gt;[Founction]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;span style=&quot;background-color: #f4cccc; color: #444444;&quot;&gt;void *&lt;span class=&quot;highlight&quot;&gt;memmove&lt;/span&gt;(void *dest, const void *src, size_t n);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;span style=&quot;background-color: #f4cccc; color: #444444;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f4cccc; color: #444444;&quot;&gt;void *&lt;span class=&quot;highlight&quot;&gt;memcpy&lt;/span&gt;(void *dest, const void *src, size_t n);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #444444; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;兩個都是可以複製記憶體空間&lt;br /&gt;但最大的差異就在於&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;memmove : 可以同一個配置空間上複製;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;memcpy : 如在同一個配置空間複製則會出現 ERROR;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;有人會想說 &quot;當然是用功能限制少的阿!!!&quot;&lt;br /&gt;NoNoNo~~&lt;br /&gt;這可是需要付出代價的&lt;br /&gt;因為 使用 memove的速度 會慢很多~~~~~~~&lt;br /&gt;而&lt;b&gt;memcpy 效率就快很多&lt;/b&gt; 因為他直接排除掉 在同一個空間複製的問題&lt;br /&gt;(網路上也有查到原始碼 memmove 發現不是在同一空間複製時 會直接帶入memcpy的founction)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;[&lt;/span&gt;&lt;a href=&quot;http://blog.csdn.net/zht_304/article/details/4627928&quot; style=&quot;font-size: small;&quot;&gt;原始碼&lt;/a&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;在這也舉一個 讓人困擾的例子&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;[案例]&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;一個配置好的記憶體空間 裡面放滿字串&lt;br /&gt;如果要在中間多加一段字串進來 該如何設計比較快呢&lt;br /&gt;(如果都是一般字串String處理也行拉 暫時先不以這為主 因為也是有可能遇到 不能用的時候)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #666666;&quot;&gt;1.malloc一個足夠的大小 逐次的使用memcpy放入字串&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #666666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #666666;&quot;&gt;2.重新將原本大空間realloc,以及malloc可以放後半段字串的空間,&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #666666;&quot;&gt;　使用memcpy直接加進去新字串,再把後半段memcpy回來&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #666666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #666666;&quot;&gt;3.重新將原本大空間realloc,使用memmove將後半段字串往後移動,空出要加入的　字串空間,&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #666666;&quot;&gt;再memcpy進來新字串&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code&quot; style=&quot;background-color: white; padding: 0px 2em 0px 0px;&quot;&gt;&lt;/pre&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;呵呵 有空可以試看看 到底哪個速度會比較快...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt; &lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;如果你有更快的方法 拜託!!! 一定要告訴我喔!!!&lt;/span&gt;!!!!&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; &lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: 12px;&quot;&gt;
&lt;/span&gt;
&lt;pre class=&quot;code&quot; style=&quot;background-color: white; font-size: 12px; padding: 0px 2em 0px 0px;&quot;&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/6602312083512969300/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/08/c-memovememcpy.html#comment-form' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/6602312083512969300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/6602312083512969300'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/08/c-memovememcpy.html' title='[C語言] memove,memcpy 差異'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8373179628199315729.post-1837971067291541710</id><published>2012-08-09T18:01:00.000-07:00</published><updated>2012-08-09T18:01:23.640-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><title type='text'>[android]INSTALL_FAILED_MEDIA_UNAVAILABLE 錯誤</title><content type='html'>&lt;br /&gt;
這幾天又開始玩 android&lt;br /&gt;
之前都是用模擬器使用&lt;br /&gt;
不過真的慢~~~~~~~~~~~~~~~~&lt;br /&gt;
到不行 ~&quot;~|||&lt;br /&gt;
&lt;br /&gt;
所以決定來用看看 我手機哩&amp;nbsp;[sony arc s]&lt;br /&gt;
&lt;br /&gt;
結果一直沒辦法跑 出現下面這錯誤訊息&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;INSTALL_FAILED_MEDIA_UNAVAILABLE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
搜尋了一下終於發現問題點了 @@!&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
此錯誤發生 多為資料存取位置問題 可能手機上設定將軟體存於SD卡中&lt;br /&gt;
但是 當手機接上USB連接電腦時 手機本身是無法偵測到SD卡的&lt;br /&gt;
所以在程式上加上下面這段 可以指定存取的位置&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;background-color: #eeeeee;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #666666; font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; line-height: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #666666; font-family: Consolas;&quot;&gt;&amp;lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;
&lt;span style=&quot;color: #666666; font-family: Consolas; font-size: xx-small;&quot;&gt;&amp;nbsp;android:installLocation=&quot;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Consolas; font-size: xx-small;&quot;&gt;auto&lt;/span&gt;&lt;span style=&quot;color: #666666; font-family: Consolas; font-size: xx-small;&quot;&gt;&quot;
&amp;gt;&amp;lt;/mainfest&amp;gt;&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-family: 新細明體, serif; font-size: 10pt;&quot;&gt;如果使用&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size: 10pt;&quot;&gt;auto&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-family: 新細明體, serif; font-size: 10pt;&quot;&gt;可能&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-family: 新細明體, serif; font-size: 10pt;&quot;&gt;手機設定存在記憶卡&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-family: 新細明體, serif; font-size: 10pt;&quot;&gt;可能還是會錯誤&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #7f007f; font-size: 10pt;&quot;&gt;android:installLocation&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; font-size: 10pt;&quot;&gt;=&lt;/span&gt;&lt;i style=&quot;color: #666666;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #2a00ff; font-size: 10pt;&quot;&gt;&quot;internalOnly&quot; &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-family: 新細明體, serif; font-size: 10pt;&quot;&gt;強制使用內部記憶體&lt;/span&gt;&lt;/i&gt;&lt;i style=&quot;color: #666666;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #2a00ff; font-size: 10pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas;&quot;&gt;
&lt;/span&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;color: #666666;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kagachipg.blogspot.com/feeds/1837971067291541710/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kagachipg.blogspot.com/2012/08/androidinstallfailedmediaunavailable.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1837971067291541710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8373179628199315729/posts/default/1837971067291541710'/><link rel='alternate' type='text/html' href='http://kagachipg.blogspot.com/2012/08/androidinstallfailedmediaunavailable.html' title='[android]INSTALL_FAILED_MEDIA_UNAVAILABLE 錯誤'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>