2012年9月20日 星期四

[C]讀取指定路徑下檔案清單

最近寫C 突然需要去擷取 路徑下的檔案目錄
就隨手在網路上 搜尋了一下

來源: http://www.cnblogs.com/beauty/archive/2010/09/09/1822535.html

主要是 使用 dirent 這個 struct
但讀出來的 檔案路徑 會包含 ".",".."等隱藏檔的路徑
簡單說會等於在linux底下" ll -a "輸出

如不需要此隱藏內容 則 記得處理


#include

struct dirent *ent = NULL;

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

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

    if(EQ(*file_name,'.')) //遇到 隱藏檔 則略過
    {
      continue;
    }
  
    if(NEQ(stat(file_name,&st_file),0))
    {
      LOG(LOG_INFO, "Read header file error");
      return 0;
    }
}

2012年9月19日 星期三

Django & Python3

前陣子 終於把 良葛格 python 的教學文看完了

也跟著實作一些小範例

昨天就想說 要來做些 大一點的 可以看到成品的

沒想到 悲劇的正要開始

找到 django 網路上說 可以很輕鬆愉快的架設部落格

載完安裝檔

發現!!!!!!!!!


  >>django-admin.py startproject KAGA
  Traceback (most recent call last):
  File "django-admin.py", line 2, in 
    from django.core import management
  File "C:\Python32\lib\site-packages\django\core\management
            \__init__.py", line 54

    except ImportError,e:
                      ^
SyntaxError: invalid syntax


竟然發生錯誤了

後來查詢了一下 發現

原來

django  還不支援  Python3(5/21更新 已可支援 django)


GG  ~"~|||

順便也分享一個網頁 關於 目前 各大套件支援Python3的狀況
http://python3wos.appspot.com/



2012年9月4日 星期二

Google正在污染網路

來源 : http://www.lihpao.com/?action-viewnews-itemid-101330


節譯■葉興台
根據英國衛報的一篇評論,Google這家廣告公司已壟斷和搞亂人類史上最大的圖書館,並將之商業化,該公司沒有從根本再思考數位時代知識組織的方式,其所引發的資訊政變將產生深遠的後果。
Google原先的構想是免費的搜尋引擎,12年前該公司的創辦人佩吉(Larry Page)和布林(Sergey Brin)在首份公開文件中警告,廣告將會污染搜尋引擎。佩吉和布林寫道:「我們預期廣告資助的搜尋引擎,在本質上就會偏向廣告商,偏離消費者的需求。」他們譴責將搜尋結果頁面的上方位置出售給廣告商會帶來未知的危害。Google現在卻擁護這種作法。

在Google執行長施密特(Eric Schmidt)的統治下,Google目前的營收幾乎都來自於兩位創辦人原先所厭惡的作法。在2007年以31億美元收購DoubleClick後,Google已成為全球最大的線上廣告公司。Google占據所有網站的85%廣告空間,98%的營收來自於以商業訊息所污染的網路知識。施密特喜孜孜地說道:「Google現在是一家廣告公司,不僅是一個搜尋引擎,而是網路上最有力量的商業化力量。」

每個時代都相信其組織知識的方式很完美,把先前的系統視為愚蠢。美國大學的圖書館使用衍生於培根(Francis Bacon)在17世紀將各種知識區分為想像、記憶和理性的主題分類方式,但今日除了一兩個例外,有誰會用幾種類型來組織知識?對於被訓練來使用Google的世代而言,這個方法似乎已經過時、不合邏輯或不可能,但透過索引(index)而非分類來運作的現代搜尋引擎,顯然有很多瑕疵。
3百年前,愛爾蘭作家斯威夫特(Jonathan Swift)就預見仰賴索引來組織知識的文化危機,他相信索引學習會導致思考膚淺。司威夫特所言甚是,越來越多老師和公共知識分子漸漸瞭解到,搜尋引擎會鼓勵略讀、輕讀和淺思。但主題分類會創造和諧和鼓勵意外發現事物的本領,索引會將知識片斷化,讓我們變笨。拜Google之賜,索引學習的膚淺,正在污染我們的文化、社會和文明。
發明索引的並非Google,得歸功於在1230年編纂首部聖經索引的聖塞爾(Hugh of St. Cher)所領導的5百名會士。第一個想將人類所有知識索引化的也不是Google,惠特利(Henry Wheatley)早在1902年就有編纂「萬用索引」(universal index)的念頭。Google也不是第一個將廣告擺進搜尋引擎所引的第一人。讓Google與眾不同的是,該公司在完全沒有察覺到後果的情況下,藉著把組織知識來商業化,從中謀利的程度。
網路這個巨大的圖書館充斥了如此多的廣告,很多網路用戶表示,根本沒有注意到這些廣告。廣告貼在搜尋結果頁面的上方和右側,也貼在Gmail的電子郵件旁邊,在我們喜歡的部落格上,以及在反企業抗爭的報導旁邊。如多數網路用戶無法分辨廣告和內容這個悲哀事實所顯示的,這種商業疲勞轟炸將對文化造成衝擊。

網路廣告的無所不在,限制我們思考的水平。羅馬哲學家小西尼加(Seneca The Younger)告誡要過簡樸的生活,我們的生活卻被商業所包圍,鋪天蓋地的商業訊息讓我們深陷在市場裡,難怪現在幾乎很難想像一個沒有消費主義的世界,廣告已變成我們觀看世界時那個扭曲的框框。
任何組織知識的體系步可能不帶來社會、政治和文化後果,完全不偏不倚的組織原則也不可能出現,問題是今日很少人瞭解這點。我們以研究員自滿,懶於作為思想家。我們太過信任一家公司、一家廣告公司、單一組織知識的方式、自動關鍵字索引(automated keyword indexing)。
讓一家廣告公司控制人類知識索引的危險明顯到無法忽視。萬用索引是人類共享的遺產,應屬於每一個人,任何企業和國家都沒有權利將這個索引私有化、商業化,審查他們不喜歡的內容,或將搜尋排名拍賣給最高得標者。我們擁有公共圖書館,我們也需要公共的搜尋引擎。

========================================================================

看到這篇文章 有些想法與感觸....

Google 已經慢慢與現代人的生活結合

甚至無時無刻都可能接收到 google所提供的訊息資訊

而文中的作者認為 當google提供免費的服務後
你正開心使用著甚至分享其好處
而就在不自覺的狀況下 置入了 許多商業利益的事物

這樣的行為 太卑鄙了吧 !

是這樣嗎? 仔細想想 為何不覺?
在旁人跟你講說google的作為之前 你可曾發現?

人有過濾資訊的能力!!!

我只想看A 你丟出了 A,B,C 真的會注意到 B,C
我認為不是多數 不過 也可能他逼你不得不注意
但也不一定表示 你會了解到 B,C 內容放了什麼

不只是google 這樣的手法
我想網路上 有太多太多 置入性的行銷手法

譬如說:
我只是看個影片  為什麼要出現廣告 還要我等?!

此時 你有選擇的權利 我要等嗎? 我等待的時間 一定得乖乖看著廣告嗎?

網路的好處也是最大的壞處
"過猶不及"
資訊無所不在 無奇不有,甚至可以說是如洪水般的氾濫著

所以在這個時代的人們 是該培養 資訊過濾的能力
甚至擁有 判斷 這些網路資訊的 可性度
明顯地去表達出 對於那些非相關或者錯誤資訊的厭惡

作者這樣的表達 並沒有不當
因為這可以讓 google 了解 使用者不喜歡什麼 喜歡什麼
當我已經吶喊著 我不要
你卻硬來 那大不了選擇轉頭就走...

我常講一句話
"你不能控制別人 但你可以改變自己"

[linux]移除文章中的^M


在網路上 看到 我之前一直遇到的問題
原來是有更快的解決方法

來源:http://arenmmmm.blogspot.tw/2008/05/m.html#links

有時候linux上的文字檔裡面的內容,每一行的結尾會出現^M,該如何消除咧??

利用vi下置換命令"%s/(要被置換的字串)/(改成這個字串)/g(g表示global)"

:%s/^M//g

^M 的輸入法為 先按Ctrl-V 再按 Ctrl-M
然後記得要存檔

2012年9月3日 星期一

[Python]排版的錯誤

昨日心血來潮又複習了一下 python的語法
寫了幾行程式
結果發現  怎麼一直出現下面的錯誤

 TabError: inconsistent use of tabs and spaces in indentation

我在linux 底下 使用 mc 編輯 發現
一行中 使用一個 tab 不會發生錯誤
但當使用兩個以上時 就開始發生 上述的錯誤

後來改用 空白鍵 取代 反而沒問題了

2012年8月29日 星期三

義賊購物網

  詭異的天秤颱風來襲 ,主要在屏東出現許多災情,原以為僅此而已,不過就在昨天傳出蘭嶼的災情更為嚴重,天秤的回馬槍,一出手簡直把蘭嶼翻了過來,怵目驚心的照片慢慢的在網路上轉發著,很快地看到當地居明對外界求援,因為颱風而被孤立的島嶼急需生活物資,而我和同事們十分迅速的決定寄送泡麵過去,多少出點心力。
  不過身為上班族的我們,根本沒空去完成挑貨、包裝、寄送這些動作,我想出了極佳的方式,而且可以用最快的速度完成這些步驟,那就是"網路購物"!

------------------------------------------------------------------------------------------------------------

  也真的不用幾秒鐘,四十幾箱的泡麵訂單就開始出貨了,拜網路科技之所賜,現在連做愛心都可以快狠準。這次舉動,讓我突發奇想:"義賊購物網",如果這些網路購物的網站,能夠主動在其頁面上有這些相關的捐款物資等等的訊息,甚至給予優惠,我想這會是買賣方以及等待物資的災民都極為有利的設計方針。

  從消費者來說,我可以省去很多不必要的麻煩,甚至加快對於愛心捐助的行動,也或許因為去繁從簡,會有更多的捐物資的消費者出現,如果剛好又有折扣優惠,身消費者可能會更為大方出手做愛心。
  過去會擔心募集物資是否屬實,甚至有人的愛心被詐騙走了,如果購物網本身提供了,捐款單位相關的訊息,並直接在下訂單後寄送的地址都直接鎖定,除了減少詐騙問題,也會增加消費者對於捐物資的意願以及信任。

  再從商家來說,提供捐物資的訊息並不會多花什麼成本,反倒可以透過這樣的廣告手法,多獲得一點買氣,如能祭出優惠,對於社會來說更是一種公益行為。在運貨部分更可以使用定時或者定量出貨,讓消費者知道出貨時間或是還差多少量可以出貨,減少貨運成本,提高效益,更可以掌握所捐款的物資數量,可以提供給收集物資的單位做評估,甚至在必要的時候告知消費者物資的缺乏數量是否滿額。

  對於等待物資的災民來說,最希望的就是快速取得物資,如果願意捐物資的民眾都是去商場買完再去快遞寄送,我想不會比在網路上點幾下,會有專業的物流公司撿貨出貨來的快,現在網路十分的普及,只要有網路就可以做愛心,如讓它變成舉手之勞,可以更輕易的收集滿物資;對於災民另一個困擾的問題來了,就是過多的物資造成極大的不便與浪費,購過購物網可以提供捐助物資的相關訊息,避免災民又得面臨另一項災難。

  當然,一定有人會覺得講的都很好,為什麼購物網站公司不自己捐就好了,講這麼多還不是為了利益,沒錯,我想購物網可不是慈善團體,大多數不可能願意做賠錢生意,但是如果有利可圖又能便民利民,我想何樂而不為,利用優惠折扣換成變相的捐助,把原本捐款的成本轉換成折扣,誘引出更多的消費者一起參與不是更好嗎?

  也許會覺得購物網這樣做就像賊,在這些愛心里偷偷賺取利益,你可以說他賺災難錢其實也沒錯,甚至引誘來購物網站做消費捐助,但從不同角度卻也是提供了一個便利有效率的管道,受災的民眾更快取得更多的物資,如能做到這樣的賊,是否也算是個"義賊?!


沈芯菱〉11歲就投入公益, 用鍵盤和滑鼠改善世界

分享來自  遠見雜誌2012年8月號 第314期
出生∕1989年
學歷∕斗六高中、清大人文社會系,目前為台大新聞所研究生
     今年剛從清華大學畢業的沈芯菱,才22歲,就已是家喻戶曉的「公益小魔女」。在各地演講的她,常搭高鐵趕行程,有次被推餐車經過的服務員認出,還找同事一起來要簽名。
     當同齡學生們煩惱暑假要上哪玩?該換哪款最炫手機?或沉迷虛擬世界而無法自拔時,她卻已長達11年投入公益活動。
     來訪這天,記者一起聆聽了她在新竹六家國小的演講。負責邀請的周主任表示,沈芯菱很搶手,「四個月前就要跟她敲好,不然搶不到!」
     當天聽眾是即將畢業的上百名小學六年級學生。散場後還聚集幾十位搶著要簽名、合照。「你們要幫助人,不用等長大喔!」她對滿場的小朋友說。
     問她創造改變的能量從何而來?答案出乎意料的平淡,就是青年都有的基本能力:活用網路、社群傳播、善用免費科技。
     若比出身背景,很多人的人生起跑點,都比沈芯菱領先。從小,她就跟著擺攤的爸媽到處跑,遊走各鄉鎮。當同齡孩子在幼稚園無憂無慮地唱歌、玩耍時,她得在市場攤子幫忙叫賣,或趴在地上學寫注音符號。5歲那年的生日願望,是吃根雞腿。7歲的願望,則是坐一次火車。
     老天爺雖然沒給沈芯菱富有的家境,卻給了她聰明的腦袋,及運用資訊的天賦。
     小學四年級開始接觸電腦,老師常稱贊沈芯菱有天分。媽媽知道了,便到處向親友借貸,還變賣玉珮,籌到2萬多元買了部二手電腦,從此改變一家人的命運。
     開啟資訊技能後,沈芯菱幫家裡的服裝店架設網站,還對外接案、寫程式,一步步改善家境。至今累積快40張證照。
     此後,她幫助銷售滯銷的農產品、替弱勢學生辦教學營、辦藝術創作展覽、架設免費教學網站等。以一己之力投入多項公益活動,貢獻超過500萬。
     她最想改變的,是「貧窮世襲」。早在2002年就架設「安安免費教學網站」,分享數十萬筆國中小學教材,幫助弱勢學子提升成績,至今累積逾460萬人次上網。

動力來自憤怒,恨不公不義
     「其實我的很多行動,都是來自憤怒!」長相清純、舉止溫和的她,看上去跟一般女學生沒啥不同。不過對不公不義的社會現象,卻保有敏銳的感覺。
 記得小學五年級中秋節,看到爺爺種的文旦堆滿倉庫,阿公阿嬤整天愁眉苦臉,她非常不捨。心想,「阿公阿嬤每天去田裡勞動,卻沒有相對的回報!」於是每天都在想,可以怎麼幫忙?
     不久,她架設了文旦產銷網,並上網蒐集企業聯絡名單,擬好一封促銷信瘋狂轉寄,三天後,訂單開始湧入,創下農產用網路直銷的先例。
     國二時,她投書報紙,呼籲政府重視柳丁價格崩跌,隔天農委會發文反駁,但她沒有退讓,跟媽媽兩人到處拍照舉證,並上網公開,最後農委會提高收購價。
     而七年前一個放學午後,路邊一對母子對話,也深深震撼了她。一位媽媽教訓哭泣的孩子說,「你再不用功念書,以後就跟那些人一樣,沒出息!」她順著手勢望過去,是一群在鷹架上揮汗工作、皮膚晒得通紅的勞工。
     她驚覺的地方有二。一是那位媽媽的音量之大,毫不在乎對方是否聽到。二是,連在雲林鄉下,對底層勞工的歧視都如此嚴重。
     她認為該做些什麼來改變這一切,於是一人騎車環島,走遍全台上千村落,用相機拍下每個遇到的面孔。至今累積超過30萬張照片,發表「草根台灣臉譜」影像網站,吸引近2000萬瀏覽人次。

需要的不是運氣,是勇氣
     採訪過她的主播沈春華便說,她驚訝的不是沈芯菱的電腦長才,而是小小年紀便擁有「用鍵盤打造知識公益、用滑鼠彌平社會斷層」的遠大格局。
     儘管光環耀眼,但沈芯菱坦承,一路走來的挫折與外界質疑從沒斷過,甚至笑她太年輕。為了證明那些聲音是錯的,她陸續克服「太年輕」「零經驗」「零資源」等困難。
     媽媽許麗娟觀察,沈芯菱常一人承受壓力,看到她眼裡的血絲、還有跟年紀不相稱的白髮,總是不捨。唯一能做的就是在她熬夜趕工時,替她泡杯溫牛奶,或在她心情沮喪時,為她打氣。
     回顧經驗,沈芯菱期勉同世代的年輕人,「真的,每個人都有能力,讓世界往『美好』更靠近一點!」她始終認為,失落的一代需要的不是運氣,而是勇氣!

公益小魔女
     對社會不公不義特別敏銳
     幫助別人,不必等到長大
     相信年輕人需要的是勇氣而非運氣


Start !

終於 要開始寫有關程式設計的網誌了

平時工作需要 都是接觸C 比較多

不過 也有學了一陣子java 好久沒用哩

最近跳進android的黑洞  還在摸索中> <!

不一定能申論些什麼技術

不過 可以記錄一下 這程式學習之旅 的點點滴滴囉

也希望各位過客  能夠給小弟 多點指教了

^^!

[C語言]HTTP GZIP 壓縮與解壓縮

最近工作上的需求
在蒐集 有關 網頁 GZIP的壓縮的資訊

想要透過C語言 來進行解壓縮 以及壓縮

後來有找到一個 zlib 這個函式庫
官方網頁 http://zlib.net/

看了好多 文章 但是 有看到程式碼
但是 通常都沒看到詳細的解釋
只能用模仿的方式去使用 但沒有很了解原理與用法

2012年8月14日 星期二

[心情]暈頭轉向~

這幾天 寫程式有點暈頭哩
總是一不小心 掉進去程式碼的坑洞裡
回過神來的時候 時針都跳了好幾格

可能最近也比較晚睡
感覺精神不佳... = =

唉壓~~~~  寫程式最重要的就是要集中精神


呼~~~~~~~~





深呼吸....

繼續拼下去...


2012年8月11日 星期六

[好文分享]在 Google, 我們堅持的只是一種價值觀

又到了週末哩  昨天加班了一整天....

看著外頭 炎熱的天氣 只想躲在家裡 


漫步於網路中....


其實平常我就有 閱讀有關軟體程式文章的興趣 


有些文章 除了能看到同樣在資訊領域 卻能有不一樣的想法


一些工作上的甘苦談 往往也能產生不少共鳴


所以有時候工作疲憊時 我會去看看 一些文章


或許他會讓你 重新注入希望....


-------------------
分享 一篇 我很喜歡的文章
但 先聲明 這也是我從網路上轉載來的 會附上轉載的網址 

如有侵犯到任何著作權  可以通知我作處理



在 Google, 我們堅持的只是一種價值觀
我是 Google 的軟體工程師, 在 Google 的生涯即將邁入第五個年頭, Google 最近遭遇到來自各方的挑戰, 包括競爭者的的崛起, 還

有各國政府的牽制, 整個公司的氛圍和多年前已經有很多不同, 少了點輕鬆, 多了點戰戰兢兢, 環境不容易, 沒有人能置身事外.

Google 是我的第一份工作, 這家公司帶給我相當多的震撼, 他的管理制度, 創新方式, 對人才的尊重等等, 都讓我大開眼界, 但是最讓我印象深刻的, 還是 Google 的價值觀.

Google 一直以來有句座右銘: Do no evil.
我今天不是要來頌揚這一句話, 因為那太虛偽了, 尤其是我一直以來都覺得, 好與壞的定義, 邪惡與正義的定義, 在每個人身上都不一樣, 甚至於在每個時代都是不一樣的, 太過於把討論聚焦在這一句話上面, 並無太大意思.

Google 創造了許多產品: 搜尋, 地圖, Android, Gmail, 這些產品在被發明出來的時候, Google 完全沒有從這些產品賺錢的方式, 這些產品完全免費, 只要可以上網, 所有人都可以用

「了不起啊? 免費就是大爺嗎?」 有些人或許會這樣覺得.

完全錯了, 我們不是為了傲慢而發明這些東西, 有人會為了傲慢而去發明創新的嗎?

我們發明這些東西, 是因為我們相信這些東西可以改善人們的生活

那麼這些東西真的改善了人們生活了嗎? 我們相信是

到了今天, 獲取資訊不在是少數人的專利, 無論你想查詢任何資訊, 只要在 Google 輸入關鍵字, Google 可以在彈指間給你答案; 有了 Google Maps, 所有人可以查想去的地方, 在地圖上做各式各樣的創新應用, 甚至還有開車路線, 大眾運輸的資訊; 有了 Gmail 的過濾機制, 大家每天可以過濾掉成千上萬的垃圾郵件, 省去多少不必要的麻煩. 有了 Android, 智慧型手機有了新的生態, 新的產業, 使用者不再被手機業者綁架, 軟體開發者可以自由在 Android 上面創造應用程式, 並且獲得可觀的報酬.

Google 是一家超過兩萬人的巨大公司, 也許大家會發現, Google 成功的產品也不過就是這幾樣罷了

是的, Google 有成千上萬的專案, 真正成功的, 大家認識的, 不過就是那麼幾個

因為要創造一個好軟體, 是一件極端困難的事情, 所以身為軟體工程師, 我們每天都在解決非常困難的軟體問題, 我們挑燈夜戰, 獨自一人默默地面對電腦螢幕, 苦思不已, 然後享受終於解決一個 bug 的小小成就感, 自己興奮地對著螢幕, 握拳說聲 yes. 這種喜悅, 對於其他人一點都不重要, 我們只能自己暗爽, 沒有什麼好分享的. 因為我們相信自己做的事情, 有一天會造福使用者, 而自己也許會獲得一些相應的報酬, 但這是其次.
所以在討論任何工程問題時, 我們常常會自問: 「這對使用者來說是最好的嗎?」

我們從來沒有一個討論是以 「我們可以因此從使用者身上撈到多少錢?」 來當做出發點, 這代表了 Google 以解決工程問題為導向的一種文化和價值觀

是的, 身為一個人, 我們偶爾都想有狠撈一筆的機會, 寫出改變世界的軟體, 寫出把源源不絕的鈔票帶進我們口袋的軟體, 但身為工程師的同時, 大多數的時候我們打屁完了, 笑一笑, 重新再從解決問題的角度出發. 發財的事情偶爾做做白日夢就好. 真的, 賣雞排賣得好真的賺得比較多. 只要你不亂加塑化劑, 不會出什麼大事的.

我一直覺得工程師是很了不起的一群人, 他們選擇了創造, 但是從創造的那一刻起, 他們也選擇了為自己的成品負責, 有的時候東西失敗了, 他們必須接受辱罵, 甚至於嚴重一點的, 會有法律的制裁. 他們當初大可以選擇簡單一點的路走, 從掠奪別人的財富為出發點, 不必為任何的成品負責, 什麼都好, 何必吃力搞出一個自己需要對別人負責的東西? 我很喜歡東罵西罵, 應該算是相當憤世嫉俗的一個人, 但我從來不批評工程師, 因為這群人選擇了一條難走的路, 而且大部分的時候, 鎂光燈並不屬於他們, 甚至於金錢的報酬大部分也不屬於他們, 他們大部分的人, 終其一生都是一群不太能言善道的人, 在今天還常常被詐騙, 被人嫌呆, 嫌宅, 嫌臭, 嫌與社會脫節

但是他們在我眼中, 是最務實的一群人. 我以身為一個工程師為榮.

而 Google 很珍惜這樣的一群人, 所以事事以工程的務實角度出發, 我們彼此互相尊重, 從不惡言相向, 大家只是專心地討論問題, 解決問題. Google 犯了很多錯, 推出很多爛產品, 被使用者罵到臭頭, 被政府調查, 然後關掉這些爛產品. 我們知道, 走在科技尖端, 想要改善人類的生活, 這是一定會遇到的挑戰和爭議, 在過程中, 有的人受益, 有的人受了傷. 有的人見獵心喜, 拿著棍棒, 等著給我們好看.

但我們能做的, 就是盡力去改善, 並且堅持自己工程師務實的價值觀, 相信自己寫出來的一行一行程式碼, 終有一天會幫助到使用者, 這些使用者是誰, 我們並不知道. 但身為工程師, 我們知道自己並不是麻木不仁, 只是還需要一點時間來解決問題. 只是還需要學習更多的工程技巧, 來改善產品. 遇到任何再小的爭議, 我們都會花上好幾倍的時間, 來討論對大家最好的辦法, 常常我們的會議會因為解決方案的一點小瑕疵, 而討論時間拖得太長, 不得不擇期再審, 直到我們找出大家都能接受的好方案. 有的時候常常因為這樣延遲了產品上市的時程, 失去先機. 這是工程師文化的堅持. 所以 Google 很多產品都是掛著 「beta」, 因為一個大型軟體不可能完美.

Google 不是一個完美的存在, 從來都不是, 但我們尊重使用者, 相信科技能夠改善人們的生活. 我也相信大部分的 Googler, 和我堅持的是同一個價值觀.

「相信科技能夠改善人們的生活」 聽起來很老套, 很假, 很像洗腦用語, 但是我們這群人真的透過自己的雙手, 一點一滴去實現它, 我們知道這家公司沒有騙人, 因為我們就是那些執行者, 我們寫程式. 

----------
這篇文章 聽聞是在 google 在台灣停止販售android軟體後出現的
但我也沒去查證過
或許有人會覺得
這篇文章都是在宣揚google這間公司的感覺
但我從程式設計師的角度來看
google 我並不把他當重點看 (無視 XD)
我看到的是 身為一個工程師 對於這個職務的想法與態度
以及可以賦予的價值~~~~

程式設計師 也許是一個可以改變世界的魔術師


你今天也在變魔術了嗎 ?




2012年8月10日 星期五

[C語言] memove,memcpy 差異

  平常工作都在用C ,C語言最好用但是也是最難用的就是記憶體的管理,如果用得好,可以減少記憶體的使用或是增加執行效能,但我常聽到一句話 "空間換時間",最近慢慢開始感受到這句的意思了。看一下memmove 與 memcpy這兩個 founction就會大概了解哩!!

-----------

[Founction]

void *memmove(void *dest, const void *src, size_t n);

void *memcpy(void *dest, const void *src, size_t n);


兩個都是可以複製記憶體空間
但最大的差異就在於


memmove : 可以同一個配置空間上複製;memcpy : 如在同一個配置空間複製則會出現 ERROR;

有人會想說 "當然是用功能限制少的阿!!!"
NoNoNo~~
這可是需要付出代價的
因為 使用 memove的速度 會慢很多~~~~~~~
memcpy 效率就快很多 因為他直接排除掉 在同一個空間複製的問題
(網路上也有查到原始碼 memmove 發現不是在同一空間複製時 會直接帶入memcpy的founction)

[原始碼]

在這也舉一個 讓人困擾的例子


[案例]
一個配置好的記憶體空間 裡面放滿字串
如果要在中間多加一段字串進來 該如何設計比較快呢
(如果都是一般字串String處理也行拉 暫時先不以這為主 因為也是有可能遇到 不能用的時候)


1.malloc一個足夠的大小 逐次的使用memcpy放入字串

2.重新將原本大空間realloc,以及malloc可以放後半段字串的空間, 使用memcpy直接加進去新字串,再把後半段memcpy回來


3.重新將原本大空間realloc,使用memmove將後半段字串往後移動,空出要加入的 字串空間,再memcpy進來新字串



呵呵 有空可以試看看 到底哪個速度會比較快...

如果你有更快的方法 拜託!!! 一定要告訴我喔!!!!!!!

2012年8月9日 星期四

[android]INSTALL_FAILED_MEDIA_UNAVAILABLE 錯誤


這幾天又開始玩 android
之前都是用模擬器使用
不過真的慢~~~~~~~~~~~~~~~~
到不行 ~"~|||

所以決定來用看看 我手機哩 [sony arc s]

結果一直沒辦法跑 出現下面這錯誤訊息

INSTALL_FAILED_MEDIA_UNAVAILABLE

搜尋了一下終於發現問題點了 @@!

---------------

此錯誤發生 多為資料存取位置問題 可能手機上設定將軟體存於SD卡中
但是 當手機接上USB連接電腦時 手機本身是無法偵測到SD卡的
所以在程式上加上下面這段 可以指定存取的位置


 <manifest xmlns:android="http://schemas.android.com/apk/res/android"

 android:installLocation="auto" ></mainfest>

如果使用auto可能 手機設定存在記憶卡 可能還是會錯誤

android:installLocation="internalOnly" 強制使用內部記憶體