自動MP3搜集播放器
作者:wbc 日期:2009-09-28
n年沒發貼,今日就多post幾個啦。。
個標題實在難聽,也想不到個順口的,隨便啦。。。
相信很多人都沒有對本站那破爛的music player起眼,但各位又有無發現本站荒廢幾世紀,但player裏面的歌曲卻不停在添加?理論上來說,本人是不會那麼勤勞天天加音樂的。
年初,本人無聊之際,自己喜歡聽歌,但比較懶,於是寫了該自動獲取并添加音樂的播放器。
工作流程如下:
設定了一個主論壇URL (音樂都來自論壇,常update,有描述)
讀取論壇某版的所有帖子的列表
分別進入每個文章,尋找MP3 URL, 并截取文章標題作為MP3音樂的名稱
測試MP3 URL的可用性,如果可用則將標題轉為繁體,并將URL寫入Database(XML),同時記錄該版面ID,防止以後重複獲取
設定更新Application參數: 每日
執行后輸出:document.write('69 new music found,21 are valid!')
有興趣的就下載去玩玩
歡迎傳播及繼續開發...
程式:ASP.net(VB.net)
點擊下載此文件
個標題實在難聽,也想不到個順口的,隨便啦。。。
相信很多人都沒有對本站那破爛的music player起眼,但各位又有無發現本站荒廢幾世紀,但player裏面的歌曲卻不停在添加?理論上來說,本人是不會那麼勤勞天天加音樂的。
年初,本人無聊之際,自己喜歡聽歌,但比較懶,於是寫了該自動獲取并添加音樂的播放器。
工作流程如下:
設定了一個主論壇URL (音樂都來自論壇,常update,有描述)
讀取論壇某版的所有帖子的列表
分別進入每個文章,尋找MP3 URL, 并截取文章標題作為MP3音樂的名稱
測試MP3 URL的可用性,如果可用則將標題轉為繁體,并將URL寫入Database(XML),同時記錄該版面ID,防止以後重複獲取
設定更新Application參數: 每日
執行后輸出:document.write('69 new music found,21 are valid!')
有興趣的就下載去玩玩
歡迎傳播及繼續開發...
程式:ASP.net(VB.net)
點擊下載此文件
Excellent & free WPF/Silverlight Chart control
作者:wbc 日期:2009-09-28
http://www.visifire.com/silverlight_charts_gallery.php
請稍等,圖片正在下載中...
Visifire is Dual Licensed
顯示被隱藏內容
請稍等,圖片正在下載中...
Visifire is Dual Licensed
顯示被隱藏內容Open Source License
Visifire is available under Open Source GPL 3.0 license. This license is suitable for:
Integrating Visifire in your Open Source software.
Personal and educational use of Visifire.
Integrating Visifire in commercial software, complying with Open Source GPL 3.0 license terms.
Commercial License with Support
...
Visifire is available under Open Source GPL 3.0 license. This license is suitable for:
Integrating Visifire in your Open Source software.
Personal and educational use of Visifire.
Integrating Visifire in commercial software, complying with Open Source GPL 3.0 license terms.
Commercial License with Support
...
Tags: wpf silverlight control
DotNet的一個奇怪問題:IsNumeric
作者:wbc 日期:2009-04-03
昨天發現一個bug,在我自己的機(vista)不會死,其他電腦,任何系統都會出現問題。
話說以下代碼應該很合理,也符合邏輯:
但導致bug 的就是上面這段代碼的 pointerX賦值這句:
提示錯誤是 arithmetic error overflow (something like that)
(實際數據內的數字沒可能超過1萬)
msgbox一看,發現xml.SelectSingleNode("//itemlist/pointer/x").InnerText的值是"NaN"...Not a Number....
但IsNumeric 卻是True...是否有點自相矛盾?
剛剛再一輪測試,
奇怪了。。。
.InnerText的Type根本就是String...
還硬要再轉一次?...
話說以下代碼應該很合理,也符合邏輯:
- If IsNumeric(xml.SelectSingleNode("//itemlist/pointer/x").InnerText) Then
- poniterX= CInt(xml.SelectSingleNode("//itemlist/pointer/x").InnerText)
- End If
但導致bug 的就是上面這段代碼的 pointerX賦值這句:
提示錯誤是 arithmetic error overflow (something like that)
(實際數據內的數字沒可能超過1萬)
msgbox一看,發現xml.SelectSingleNode("//itemlist/pointer/x").InnerText的值是"NaN"...Not a Number....
但IsNumeric 卻是True...是否有點自相矛盾?
剛剛再一輪測試,
- IsNumeric ("NaN") False
- IsNumeric(xml.SelectSingleNode("//itemlist/pointer/x").InnerText) True
- IsNumeric(xml.SelectSingleNode("//itemlist/pointer/x").InnerText.ToString()) False
奇怪了。。。
.InnerText的Type根本就是String...
還硬要再轉一次?...
各大數據庫隨機選取n條數據的SQL語句
作者:wbc 日期:2009-04-02
Select a random row with MySQL:
Select column FROM table
orDER BY RAND()
LIMIT 1
Select a random row with PostgreSQL:
Select column FROM table
orDER BY RANDOM()
LIMIT 1
Select a random row with Microsoft SQL Server:
Select TOP 1 column FROM table
orDER BY NEWID()
Select a random row with IBM DB2
Select column, RAND() as IDX
FROM table
orDER BY IDX FETCH FIRST 1 ROWS ONLY
Thanks Tim
Select a random record with oracle:
Select column FROM
( Select column FROM table
orDER BY dbms_random.value )
Where rownum = 1
Select column FROM table
orDER BY RAND()
LIMIT 1
Select a random row with PostgreSQL:
Select column FROM table
orDER BY RANDOM()
LIMIT 1
Select a random row with Microsoft SQL Server:
Select TOP 1 column FROM table
orDER BY NEWID()
Select a random row with IBM DB2
Select column, RAND() as IDX
FROM table
orDER BY IDX FETCH FIRST 1 ROWS ONLY
Thanks Tim
Select a random record with oracle:
Select column FROM
( Select column FROM table
orDER BY dbms_random.value )
Where rownum = 1
Tags: sql
C 中常用的函數
作者:wbc 日期:2009-02-24
<string.h> ——常用字符串處理函數
int strlen(const char* a) 字符串的長度
int strcmp(char* a,char* b) 比較字符串
int strncmp(char * a,char *b,int n) 比較字符串的前n個字符
int strcpy(char* a,char* b) 將b複制到a
int strncpy(char* a,char* b,int n) 將b的前n個字符複制到a
int strcat(char* a,char* b) 將b連接到a後面。
int strncat(char* a,char* b,int n) 將b的前n個字符連接到a後面。
char* strstr(const char* a,const char* b) 在a中尋找第一次出現b的位置
char* strupr(char* a) 將a中所有字母轉為大寫。
char* strlwr(char* a) 將a中所有字母轉為小寫。
char* strset(char* a,char x) 將a中所有元素替換為x。
char* strnset(char* a,char x,int n) 將a中前n個元素替換為x。
char* strrev(char* a) 使a反轉
void * memset(void * buffer,int c,size_t num) 用字符c填充buffer指定的num字節存儲區域。
void* memcpy(void *dest, const void *src, size_t n)
...
int strlen(const char* a) 字符串的長度
int strcmp(char* a,char* b) 比較字符串
int strncmp(char * a,char *b,int n) 比較字符串的前n個字符
int strcpy(char* a,char* b) 將b複制到a
int strncpy(char* a,char* b,int n) 將b的前n個字符複制到a
int strcat(char* a,char* b) 將b連接到a後面。
int strncat(char* a,char* b,int n) 將b的前n個字符連接到a後面。
char* strstr(const char* a,const char* b) 在a中尋找第一次出現b的位置
char* strupr(char* a) 將a中所有字母轉為大寫。
char* strlwr(char* a) 將a中所有字母轉為小寫。
char* strset(char* a,char x) 將a中所有元素替換為x。
char* strnset(char* a,char x,int n) 將a中前n個元素替換為x。
char* strrev(char* a) 使a反轉
void * memset(void * buffer,int c,size_t num) 用字符c填充buffer指定的num字節存儲區域。
void* memcpy(void *dest, const void *src, size_t n)
...
Tags: C
條形碼製作-Barcode Generator : Code128,Code39,Code93Ext
作者:wbc 日期:2009-02-16
上星期搞定了條碼的識別,有了那些經驗及資源,不做generator似乎有點浪費。
於是昨天開始,動手寫條碼的輸出,最先搞定了Code128ext的輸出,因為想做得更優化(發揮code128ext的優勢),儘量將條碼最短化,因此寫得較為麻煩。今日回家,在明天2800 Quiz的威脅下,放棄溫書,繼續寫code39和93ext的輸出, code39非常容易(無checksum),利用昨天寫好的function,幾分鐘就搞定了。輪到code 93ext,也不是太複雜,只是checksum那裡,寫錯數,ext是46,45,44,43這幾個數,我忘記了,卻從39開始數了。。結果計算出的checksum總是出錯。。。。好在查返spec,搞定。
如果明天有時間,做成online service。希望有用啦。
下一步當然希望玩2D barcode啦,不過今日check過下,發現Datamatrix的specification只有ISO.org才有,要400幾法郎。。真是搶錢。聽說有成200版,如果我真download到,我都不知有無勇氣睇落去。。。
show下今日個結果先~~
請稍等,圖片正在下載中...
於是昨天開始,動手寫條碼的輸出,最先搞定了Code128ext的輸出,因為想做得更優化(發揮code128ext的優勢),儘量將條碼最短化,因此寫得較為麻煩。今日回家,在明天2800 Quiz的威脅下,放棄溫書,繼續寫code39和93ext的輸出, code39非常容易(無checksum),利用昨天寫好的function,幾分鐘就搞定了。輪到code 93ext,也不是太複雜,只是checksum那裡,寫錯數,ext是46,45,44,43這幾個數,我忘記了,卻從39開始數了。。結果計算出的checksum總是出錯。。。。好在查返spec,搞定。
如果明天有時間,做成online service。希望有用啦。
下一步當然希望玩2D barcode啦,不過今日check過下,發現Datamatrix的specification只有ISO.org才有,要400幾法郎。。真是搶錢。聽說有成200版,如果我真download到,我都不知有無勇氣睇落去。。。
show下今日個結果先~~
請稍等,圖片正在下載中...
Smartshoot OMR Solution - 醒順改卷系統
作者:wbc 日期:2009-02-15
Smartshoot是一個OMR(Optical Mark Recognition 光學標籤識別)為主,用於分析調查問卷,考試選擇卷,投票選票等等,通過光學識別,讀取數據,最終則可輸出報表。用戶可以靈活設計不同的問卷模板,模板製作支援:全自動定位及傾斜校正,大大解決了問卷由於油印或掃描時的移位而造成與原模板不符合出現的錯誤。特別的人手改錯模式可大大提高改卷效率及準確度。Smartshoot還支援條形碼讀取(Code128,Code39,Code93,Code93 Extended);報表的輸出彈性大,可根據用戶不同的要求做出不同的設定......
請稍等,圖片正在下載中...
詳細信息:
http://www.ssomr.com/
請稍等,圖片正在下載中...
詳細信息:
http://www.ssomr.com/
Tags: Smartshoot
JSP 連接 MS SQL & MySQL
作者:wbc 日期:2009-02-14
Code93 & Code93 Extended
作者:wbc 日期:2009-02-09
前兩天完成了code 39和code128,學了不少知識。但barcode的種類繁多,因此希望smartshoot能支援更多類型。今日選擇了code93。
將code93的編碼transform過後,發現和code128極度相似,都是由6個digit組成;由於標準的code93只能表示43個可視字符+一個開始/停止字符,於是後來出現code93 Extended,在原本的基礎上,加上了4個特殊字符:($),(%),(/),(+),用過這4個特殊字符和原有的43個字符組合,就可完整表達 ASCII 0-127的所有字符。比如:(+)A = a 以及 /A =!
插曲:由於在wikipedia查code93的資料,wiki里有一個code39 的sample barcode,我寫完程序,識別他的barcode的時候,竟然發現解碼后是 "Wilipedia" 和他圖片(http://en.wikipedia.org/wiki/File:Code93.png)上顯示的有出入,我懷疑是我自己的dataset出了問題(有checksum,都正確),但檢查后,似乎不是我的問題,於是人眼decode!111141112122.......
結果依然是 Wili..... 不解,圖片出錯了?
詳情請看下表:
彩色區域表示是特殊碼和標準碼組合對應的新編碼
請稍等,圖片正在下載中...
下載XLS文件
將code93的編碼transform過後,發現和code128極度相似,都是由6個digit組成;由於標準的code93只能表示43個可視字符+一個開始/停止字符,於是後來出現code93 Extended,在原本的基礎上,加上了4個特殊字符:($),(%),(/),(+),用過這4個特殊字符和原有的43個字符組合,就可完整表達 ASCII 0-127的所有字符。比如:(+)A = a 以及 /A =!
插曲:由於在wikipedia查code93的資料,wiki里有一個code39 的sample barcode,我寫完程序,識別他的barcode的時候,竟然發現解碼后是 "Wilipedia" 和他圖片(http://en.wikipedia.org/wiki/File:Code93.png)上顯示的有出入,我懷疑是我自己的dataset出了問題(有checksum,都正確),但檢查后,似乎不是我的問題,於是人眼decode!111141112122.......
結果依然是 Wili..... 不解,圖片出錯了?
詳情請看下表:
彩色區域表示是特殊碼和標準碼組合對應的新編碼
請稍等,圖片正在下載中...
下載XLS文件









