Archive for the ‘ Coding ’ Category

[轉載]學程式設計的人不能不看的好文章

轉載自: http://www.vcroad.net/ (棗子原創 wutao8@263.net)


看了下面的這篇文章,深有感觸,棗子碰到的問題也是我們大多數程式設計師的通病,也許我們大多數人都只是在做一些比較小型的軟件,對軟件運行的效率不在乎,就算對速度和效率在乎的也可能是一些在資料庫操作方面的。大家看完了,也許會有很多感想,但這只是我同意棗子的個人觀點。

做為一名大四的學生,我面試過不少的單位,有成功的也有失敗的,但是對我來說所有的失敗在某種意義上都是一種成功,特別是我下面寫的這些,寫這篇文章的時候,我已經簽了南京的一家軟件公司,但是想起今年 2 月 21 日我面試蘇州台灣的IT公司的經歷聯想到我們現在學習程式設計的一些情況我真的深有感觸,這次面試使我深深的體會到了失敗但也收穫了很多。

我要說的將分成三部分:

  1. 是我面試的具體經過
  2. 是由面試想到的
  3. 現今我應該做的

當然這些話很大程度上是我個人的意見,不可能完全得到大家的贊同,所以在某些觀點上如果哪位朋友覺得跟我的有很大出入,請不要介意,也不要對我攻擊,就當我沒有說過,歡迎和我聯繫共同探討這些問題!
Read more

PHP 的圖表繪製模組

[轉載]軟體工程師縮短工時

轉載自: CNet


微軟軟體設計工程師Adam Barr最近常和家人共用晚餐。但以前可不是如此。90年代末期,Barr忙於工作,往往無法準時下班,和妻子小孩共用晚餐,那時每週平均工作50至60小時,若碰到截止日期逼近,加班更是家常便飯,有時甚至一連數週每週工作70小時。

現在Barr固定早上8:30上班,5點下班。他說:「對這種朝九晚五的上班模式,微軟已能睜隻眼閉隻眼,不跟員工計較。以前絕非如此。」

Barr能更常和家人一起享用晚餐,凸顯軟體界工作形態出現變化:越來越多員工不再超時賣命工作。根據美國勞工部的統計,軟體出版界員工(多半是電腦專家)去年平均每週工作36.4小時,低於2001年的41.4小時。

原因之一可能是靠達康(dot.com)致富的誘因大幅褪色,再者是工程師願意更用心經營工作之外的生活。當然軟體公司漸漸學會如何提升專案管理的效率也 是其一。其實一些軟體業者坦言,員工日以繼夜超時工作反而有損產能。Atlantic System Guild的顧問Tom DeMarco說:「經常加班的公司,往往浪費許多正規上班時間。正常上下班之所以優於加班,在於工作產能高。」

Read more

Flash Bar Code 1.0 - Flash 條碼產生器 *

檔案下載

這是一個簡單好用一維條碼產生器,使用 Flash 設計而成,程式使用的條碼格式是 "EAN-13" ,前三碼為國碼 (台灣為471) + 四碼廠商碼 + 五碼資料碼 + 一碼檢查碼,只要在設計網頁時,將 "Code" 參數傳給 "FBC10.swf" 就可以了。
Read more

[轉載]資料庫表單及欄位命名規則實例

轉載自: Neo’s Blog


今天大概把幾種常見的資料庫命名方式給整理了一下。

1.資料庫表單(Table)名稱:

單複數皆有人使用,如 products、product。

美國人命名比較喜歡依照口語習慣來用複數命名,知名的 OpenSource 軟體像 phpBB、OSCommerce、In-Link、pLog 皆是以複數命名。而 Moveable Type 則是少數使用單數名命的軟體,台灣人也是單數命名居多。

2.資料庫欄位名稱:

使用 MySQL 的 Opensource 軟體比常見整批性的加前綴(Prefix) 在欄位裡面,如 products 表單中的「產品名稱」,可能就會命名為「products_name」而 Microsoft SQL Server 則是以純欄位名稱居多,如產品名稱就直接取叫「name」了。

前綴的命名有「語意導向」跟「實用導向」二種,所謂語意導向以口語的習慣來命名,像 products 是產品的集合(複數),裡面的每個產品是單數,所以用產品名稱為例就是「product_name」。

而實用導向常見的就是以表單名稱做為前綴,如前例在 products 裡的產品名稱欄位就會命名為「products_name」,如此做的好處是程式會非常清楚每個欄位是從哪個表單抓出來的。但是缺點是在程式裡面語意不清,看起來會很不習慣。

然而大部份的欄位前綴字元還是以語意導向為主,若要使用實用導向,最好表單名稱採用單數(如 Moveable Type),否則像 OSCommerce 的全員複數,感覺程式在用名字就很奇怪,如程式明明就是只抓一筆產品名稱出來,看到 products_name 就覺的既不是複數,而且文法上也不通,意義上反而比較像 product’s name。

3.大小寫:

Microsoft 的命名方式喜歡單字第一個字母大寫,如 OrderDetail。而 MySQL 比較常見全部小寫,單字中間加底線的命名方式,如 order_detal。這跟資料庫的字元大小寫敏感度預設值有關,MS SQL Server 預設是大小寫不分,MySQL 則是大小寫視為不同欄位,所以統一小寫比較不容易出錯。

[轉載]PHP 對於文件鎖定的處理方式

轉載自: 中文 PHP 資訊站


一般個人免費主頁空間都不會提供mysql支援,就是提供也很苛刻,所以尋找也個良好的替代方案很重要哦!

PHP的文件處理功能很強大,所以可以用文件的存取來代替來!(要知道沒有資料庫的時候,什麼都是用文件組織的哦!呵呵!),其中個資料項目用特殊符號分割,我採用的是"||",方便通過explode()函數讀取單個記錄

其實這裏資料庫的思想還是可以用到的!象資料庫的索引!所以必須先做個索引文件!(這樣說也並不正確)

Read more

如何建立與 Outlook 相容的 IMap 目錄(PHP)

我們公司的郵件伺服器是用 IMap 協定來讀取電子郵件 (因為 IMap 的郵件是放在伺服器上,不怕用戶的電腦中毒,就算用戶的硬碟毀了,郵件也都還在),因為這個原因,所以我必須要找一個可以支援 IMap 的 Webmail。
Read more

如何建立與 Outlook 相容的 IMap 目錄(Perl)

原因

請參考這一篇

Read more

如何得知輸入的字串是否為 UTF-8 編碼 (PHP)

使用下列函數,如果傳回值為 true,表示輸入的字串為 UTF-8 編碼:

// Returns true if $string is valid UTF-8 and false otherwise.
function is_utf8($string) {
    return preg_match('%^(?:
        [\x09\x0A\x0D\x20-\x7E]             # ASCII
        | [\xC2-\xDF][\x80-\xBF]            # non-overlong 2-byte
        | \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
        | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
        | \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
        | \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
        | [\xF1-\xF3][\x80-\xBF]{3}         # planes 4-15
        | \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
    )*$%xs', $string);
}

參考網頁

 

如何得知輸入的字串是否為 UTF-8 編碼 (Perl)

使用下列函數,如果傳回值為 1,表示輸入的字串為 UTF-8 編碼:

#Returns 1 if $text is valid UTF-8 and 0 otherwise.
sub is_utf8 {
    my $text = shift;
    if( $text =~ m/^(
        [\x09\x0A\x0D\x20-\x7E]             # ASCII
        | [\xC2-\xDF][\x80-\xBF]            # non-overlong 2-byte
        | \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
        | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
        | \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
        | \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
        | [\xF1-\xF3][\x80-\xBF]{3}         # planes 4-15
        | \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
    )*$/x ){
        return 1;
    }
    else{
        return 0;
    }
} #sub is_utf8

參考網頁

return top