三支小程式

幫朋友寫的作業,題目不刁鑽,強調趣味性,但若要找出複雜度低的演算法,其實很具挑戰,我那時候接近期中考,時間不多,就每個都厚顏地暴力解了。聽說後來讓助教測試程式的時候,其中一題的進階測試數據跑了十分鐘還沒跑出結果,囧在當下,哈哈。

以下便列這幾個程式題目和我的跛腳實作。

[轉貼]前置處理器的預設變數

存放一些編譯時的訊息,挺有意思的。

轉貼自 http://taichunmin.pixnet.net/blog/post/32540994

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>

using namespace std;

int main()
{
    cout << __LINE__ << endl; // 這一行的行號
    cout << __FILE__ << endl; // 原始檔的檔名
    cout << __DATE__ << endl; // 編譯時的日期
    cout << __TIME__ << endl; // 編譯時的時間
    cout << __cplusplus << endl; // 可以使用C++函式
    cout << __STDC__ << endl; // 可以使用C函式
    cout << __func__ << endl; // 顯示現在所在的函式
    cout << __FUNCTION__ << endl; // 顯示現在所在的函式
    cout << __PRETTY_FUNCTION__ << endl; // 顯示現在所在的函式宣告

    return 0;
}

The Secret of Kells (2009)

SecretOfKel_cover_2SecretOfKel_cover

2D動畫與電影齊壽,電影發明當初,2D動畫這項技術便開始應用並商業化。這一百年來,我們看得到改進,但時至今日,該發揮的都發揮得差不多了,2D動畫還有哪些可能呢?

就在二零零九年,兩位愛爾蘭裔的動畫家Tomm Moore和Nora Twomey以一部名為《The Secret of Kells》的動畫作品,向世人宣稱,2D動畫在畫面上還有精進空間,而這,就是他們的精進成果;藉此,他們從靈魂深處發出吼聲:2D動畫不死!

《Soredemo Machi wa Mawatteiru》的影像風格

shot0053

這部作品播出前便已引起我的注意,石黑正數的原作風格樸實清新,台詞逗趣且具個人特色,其中可以欣賞到很多精采的對話交鋒,有如雙口相聲一般,簡而言之,它是一部清新小品、一部優質佳作。現在問題是,這些亮點能否如法炮製,在螢幕上依然展現風采?很多作品做不到,但也有很多作品不僅做到了,還超越原著,更上一層樓。很多因素決定一部作品的成敗,不過在這邊,我只討論擔任全軍總指揮的那位要角——是的,正是導演。

[圖記]線西圖書館

一眼望去,滿街的遊記、食記,那麼抽個空寫寫圖記,也不是什麼稀奇的事吧。

至於為何會先選擇線西這塊地方,完全是個巧合,那天只是因為久沒看海,心裏癢得不得不驅車前往傳說中距離彰化市最近的海邊景點——肉粽角,說穿了就是彰濱工業區的沿岸地區。在那裡我看到海,也看到巍峨的風車,而海風拂在臉上的感覺,依然是那樣痛快,哈哈。心情挺好,於是想說既然都已經來到這裡,時間也還早,乾脆去逛逛他們的圖書館好了。


Monty Python and the Holy Grail (1975)

Los_Caballeros_De_La_Mesa_Cuadrada_Y_Sus_Locos_Seguidores-Caratula

過去以為,Edgar Wright是英國影壇極其稀有、前不見古人,後不見來者、橫空出世的喜劇奇才,但看過這片之後才發現,原來早在七零年代,已有Terry Gilliam這麼一位後現代喜劇的先行者,僅以單單一部電影,便足以在喜劇名人堂中留下大名了。

痛並痛快著——《打鬼》

MWSnap_031 2010-06-30, 23_45_09MWSnap_030 2010-06-30, 23_44_20

好,開門見山,這部《打鬼》(台譯:黃昏特攻隊)是近期最讓我印象深刻的漫畫,雖然在閱讀過程中並不總是愉悅的,甚至有點緊繃、有點糾心,但確實令人難以忘懷,不論是其中的人物、情節和場景,都在腦中久久徘徊不去。很久沒這種感覺了,所以在下面我會仔細討論它。

GTK+ && Glade2.6簡易實作

MWSnap_029 2010-06-30, 08_59_50

本來Glade2.12用得順手,但換電腦後想下載來用,卻在網路上遍尋不著,而Glade3又只提供介面而沒有幫忙輸出制式程式碼,不太方便。所以又繼續埋頭找,但最終也只找到Glade2.6版的安裝檔,不甚滿意,但還能接受。

下載點http://sourceforge.net/projects/gladewin32/files/

聊聊山姆雷米和劉鎮偉

operation_pink_squad_2_poster_01crimewave

1987年,在美國影壇和香港影壇都有部看似惡俗低劣,但卻值得記上一筆的電影問世,前者是山姆雷米(Sam Raimi)所導演的《鬼玩人》(Evil Dead II),後者則是劉鎮偉的初出茅廬之作,《猛鬼差館》。

製作Qt Runtime安裝檔

官方沒有提供Qt runtime,或許是因為Qt每個版本的dll檔都略有差異,使用上一個版本的dll檔,可能會讓程式產生部分錯誤,所以才乾脆讓開發者自己想辦法。

在未安裝Qt開發環境的電腦中執行Qt程式其實不難,辦法有三個:

Qt習作之簡易圖像瀏覽器 v0.1

怒犯天條 (Dogma, 1999)

應該算是上一篇顯示圖片練習的延伸,透過這次實作,更進一步了解Qt的事件處理方式。不像GTK+每個事件只能傳遞一個指標,Qt可以透過Class的data member來傳遞資料,要多少有多少,而不用像GTK+總要費勁把全部要傳的資料都塞在一個struct裏,再迂迴地套指標來使用。

Qt習作之圖片顯示

押切蓮介__黃昏特攻隊

照例,練習GUI Framework都先從顯示圖片開始著手。

稍微碰了一下Qt,感覺上很多細節都很人性化,譬如說不用指定window,一個label或一個pushButton都可以自己形成視窗,所以一個最簡單的Hello World可以只有短短四行程式碼,的確正如廣告說的,需要輸入的程式碼變少了。

所編繹出來的檔案大小也夠精練,小程式都可控制在100k以內,與GTK+相比不遑多讓,執行速度更比GTK+快上許多,兼具精簡與效能,難怪會成為目前GUI Framework中的大熱門,名氣得來一點都不僥倖。

目前對Qt的印象非常良好,以後就專門拿它來練習C++。

若真的要挑剔,那大概只能說Qt的Signal/Slot機制並沒有那麼直覺,其中Signal的程式碼還需要qmake生成才能順利編譯。相比於GTK+簡單明瞭的callback函式,實在複雜許多。當然這只是一時的感想,之後若更進一步認識,或許就會改變看法了。

這支小程式實作過程中,參考了Qt4學習筆記其中的幾個範例程式,真的得說,這個教學網站對我幫助很大,若沒有它,恐怕沒辦法這個快理出頭緒來,感謝哪。

建立Qt4 + Dev C++的開發環境

 QT-4.61

執行環境:
安裝Qt runtime(檔名:qt-runtime-4.x.x-full-setup.exe),安裝完即可執行。

開發環境:
1.請至http://ftp3.ie.freebsd.org/pub/trolltech/pub/qt/source/ 下載適合版本(檔名:qt-win-opensource-4.x.x-mingw.exe)並安裝。
PS:我的版本是4.3.3,安裝目錄為D:\Qt\4.3.3,若與我的版本或目錄不同,需修改以下相關參數內容。

四皇?四寇?

Water_Margin_001

最近在看胡適的書,恰好看到胡適所作的《水滸傳考證》,裡面內容很有意思,指出金聖嘆眉批的缺點,說他有過時的八股選家氣,也有迂腐的理學先生氣,更過度詮釋本文,顛弄作者的原意,這些部分都不足取。所以他建議一般讀者初次碰《水滸傳》,應該先從未標註金聖嘆眉批,且加入新式標點符號的版本開始看起。直接從原文去感受水滸傳的魅力。

而後他更蒐集許多《水滸傳》相關史料,開始胡適最擅長也最熱衷的考據工作。

兩則關於C指標的小常識

對於指標一直是模模糊糊,剛翻書看到這兩段,釐清我之前一些錯誤觀念,趕緊抄錄起來,並順手寫個簡單範例作為應証。

《憨第德》各翻譯版本

candidecandide_comic

憨第德是一本哲理小說,乃伏爾泰的傳世名作。雖說是經典文學作品,問世至今也已過兩百多年,但難得的是一點都不枯燥,它既是睿智與狡黠的結晶,同時還相當平易近人,字裡行間,瀰漫著輕挑又厚重的喜劇色彩,很難不叫人喜歡。

流浪地球

stray_01stray_02

一部劇情充滿漏洞的電影,可以靠著幾位演員揮去頹勢,撐起一番嶄新的局面;而一本細節禁不起推敲的小說,同樣可以靠著作家的如花妙筆來感動讀者。

圖片檔名流水號格式化小程式

只是一支兩百行左右的小程式,沒什麼技術含量。主要用於漫畫圖檔,因為有時候檔名若沒做好格式化,看圖軟體便會判斷失誤,像是4.jpg會排列在39.jpg和40.jpg之間。有點麻煩,之前我的辦法是用批次檔,不過每次都要稍作修改,所以乾脆寫個萬用型。雖然還沒研究怎麼操作unicode檔名,但處理起一般的檔名應該都沒問題。

程式以純C撰寫,主要是因為考量到編譯後的實品大小。以C-free編譯後只占5Kb(核心也是gcc,但不曉得是使用哪些參數,總是能編譯出最迷你的程式檔),而以正規gcc編譯加上icon圖示資源檔也只占18Kb,比之隨便include個C++頭文件便一兩百kb,要精簡多了。

wxWidget實作之圖片顯示

wxWidget_show_image
稍微碰了一下wxWidget,感覺它在設計menu或一些系統內建元件上比較方便,譬如說menu可以直接以文字定義快捷鍵,而無須另寫event;狀態列也可以直接對應元件操作而做出個別不同的輔助說明。

wxWidget編譯出來的是原生(Native)程式,不知道是不是因為這個緣故,使得它在繪圖上的設定幾乎與Windows API一樣難搞。雖然圖片已經更換,但畫面仍未改變,除非縮下再放大,或拖曳一個視窗在它前面晃過,才能顯示出來。實在不夠直覺,而我目前也還未想到方法可以徹底解決這個問題。麻煩,還是再回頭玩GTK+好了。

建立wxWidget開發環境

以Dev-C++作為開發平台,幾乎不用設定,只要先安裝以下幾個DevPak檔。版本不一樣沒關係,google都找得到可以下載的地方。

  • imagelib-2.DevPak
  • libjpeg-6b_4-1spec.DevPak
  • libpng-1.2.8-1spec.DevPak
  • libtiff-3.6.1_2-1spec.DevPak
  • zlib-1.2.3-1spec.DevPak

DevPak檔安裝步驟:開啟Dev-C++ ->工具 -> Package Manager –> Install  -> 選擇DevPak檔。

接著到http://www.upcase.de/devpack.html,下載以下三個檔案:

  • wxWidgets version 2.6.0 - DevPak (about 8.8 MB)
  • wxWidgets ver. 2.6.0 - Contributions (about 1.6 MB)
  • wxWidgets ver. 2.6.0 - Samples (about 2.0 MB)

一併安裝了,便大功告成。

GTK實作之記事本 v1.0

notepad_2
主要倚賴了Glade,否則這麼標準(繁複)的版面,一個字一個字慢慢刻上可是會死人的。

此簡單小程式擁有記事本的基本功能,文件的開啟、修改和儲存;剪貼簿的剪下、複製和貼上;還有挺陽春的搜尋和取代功能。雖然這些都很基本,但還是花了不少時間,且經常陷入瓶頸,不得不說,網路上的幾份技術文件真的幫了大忙,尤其是http://www.bravegnu.org/gtktext,多虧他的幾份有關複製貼上和搜尋的解說和完整程式範例,否則真不之從何下手。感謝Vijay Kumar!

GTK+ Programming with Glade and Dev C++

glade_01
Glade是GTK+的一套RAD工具,可直接拉出大部分的視窗元件,並有詳細的調整和訊號對應,對於初學者來說應該相當適用。

基本的使用教學可參考這篇Glade 入門介紹

只是因為Glade不一定跟Dev C++的DevPak相吻合,所以在使用Dev C++編譯前可能需要作點修改。以下便簡單示範幾個修改步驟,必須先說,這只是我個人的即興作法,不符標準,也不求準確,只求能編譯、能執行。所以參考價值恐怕不怎麼高,看看即可。

GTK實作之倉庫番 v1.0

box_world
早前有一陣子熱衷倉庫番,整天拿著手機把玩。之後雖然熱情消卻,但依然覺得倉庫番是一款簡潔又深邃的內涵遊戲。規則簡單、卻也能複雜得讓人難以駕馭,這種東西最適合以電腦的暴力演算法進行破解了。眼下想寫個倉庫番演算法來求得最佳走法。不過遊戲的大概還是要先做出來,所以就簡單做了這個,算是先行版本。看起來寒酸,不過基本功能都有,雖然只有內建六張地圖(挪用自SuperPirate Lai撰寫的經典倉庫番,感謝這位前輩),不過以後還可擴充,並不急於一時。

GTK實作之踩地雷 v1.1

Bomb_Sweeper1.1

增加功能:

  1. 顯示目前未知地雷數,可與旗標對應。
  2. 計算遊戲時間,並在遊戲結束後結算。
  3. 可從下拉式選單直接更改預設地雷數目。
  4. 不同數字以不同顏色顯示。

GTK實作之踩地雷 v1.0

Bomb_Sweeper 雖然是簡易小遊戲,看起來也一點都不花俏,但還是花了我不少時間進行實作。而且為了求簡求快,還用了很多笨方法和討厭的全域變數。唉,只能說,真的還有很大很大的進步空間‧‧‧‧‧‧

還可以加強的地方:
  1. 旗標和炸彈改以圖片表示。
  2. 增加修改長度、寬度和炸彈總數的選項,且在視窗中及時反應。
  3. 添增背景圖片(不曉得可不可行)。
  4. 計算遊戲時間,並進行排行。

GTK顯示圖片的測試小程式

修改自良葛格學習筆記的範例程式。
http://caterpillar.onlyfun.net/Gossip/GTKGossip/GtkFileChooserButtonFileChooserDialog.html
還另外參考了GTK+ Reference Manual(沒有它不行啊!) http://library.gnome.org/devel/gtk/stable/

[MV] John Kricfalusi作品集

z-john-k-w-r-s200605221535

John Kricfalusi,或稱John K,加拿大動畫家,曾與Ralph Bakshi共事,一起創作知名作品《Mighty Mouse: The New Adventures》,之後獨自製作《The Ren and Stimpy Show》,震撼一時,已成當代經典。他風格近似於Ralph Bakshi,作品中充斥大量的暴力與性暗示,且創作理念極其固執,即便被電視台炒魷魚、作品相繼被腰斬,仍堅持走成人路線,是一相當有個人特色的動畫人。而在他的創作生涯中,共製作了四支動畫音樂錄影帶,支支精彩,以下便簡單概述之。

建立GTK開發環境

轉貼自 呢喃者物語 http://163.32.57.3/blog/63/read.php?2

1.下載並安裝Dev-C++。

2.到  GTK.alkia.org 下載GTK+相關檔案,原網頁是法文的,可以點選上面頁框中的「Translate into English」變成英文網頁後再下載。

(1)下載並安裝「GTK+ runtime for Windows」。
(2)下載並安裝「GTK+ package for Dev-C++」 -> 開啟Dev-C++ ->工具 -> Package Manager -> Install -> 選擇gtk_dev_gtk_x.xx.xx.DevPak。

3.到控制台->系統->進階->環境變數,將「系統變數」的PATH變數,加入「D:\Program Files\Common Files\GTK\2.0」。

4.開啟Dev-C++ -> 建立新專案 -> GUI -> C專案 -> 即可開始進行GTK+ programming。

5.如果是要使用C++進行設計,需在工具列中「專案」->專案選項->參數,將編譯器額外命令選項的內容全數複製到C++編譯器中。

[JQuery實戰手冊]附錄A 你可能還不知道的JavaScript

1
2
3
4
ride.make ;
ride['make'] ;
ride['m' + 'a' + 'k' + 'e'] ;
var p = 'make' ; ride[p] ; 

上列四行均相等。

異族與歷史的枷鎖——《七夕之國》

Tanabata no Kuni_01Tanabata no Kuni_02

岩明均的作品少,但除了早期的《風子のいる店》和幾部短篇外,其餘多半有被東立代理進來,不過若說集數較長且較具知名度的,則僅有《寄生獸》、《七夕之國》和《歷史之眼》這三部作品。

打鬼戰士系列 (Zombie Survival Guide & World War Z)

b09baea2列印

對一個僵尸迷而言,這兩本書無疑是近年來最棒的文字娛樂品!閱讀它,會讓人仿若置身於一個僵尸橫行的寫實情境,別人因懼怕而瘋狂,但僵尸迷卻反而無可自拔地陷入某種狂喜狀態,因為作者麥克斯.布魯克斯所打造的世界,處處挑逗我們的敏感神經,時時刺激我們的挑剔胃蕾。這是一場筵席,一場血與肉的瘋狂饗宴!

奧斯卡最佳動畫電影提名之票房一覽表

persepolis-poster1Les Triplettes De Belleville

奧斯卡最佳動畫電影這個獎項,開辦至今也已經過九屆,雖說它銅臭味重,但仍具有一定的公信力,至少一般人都這麼相信著。不過實質上,最佳動畫電影卻與最佳電影一樣,票房是一大關鍵,甚至比後者更為注重票房數據,票房最高的作品,往往能挾其聲勢,號招影迷們為它搖旗吶喊,最後順利奪得金色獎盃。

九屆以來,奪得最佳動畫電影的作品,只有《快樂腳》、《超人特攻隊》和《神隱少女》不是當年度的動畫電影票房冠軍,這意味著什麼?

那就是——別對奧斯卡太過認真了。

 

Mary and Max (2009)

除《第十四道門》(Coraline)之外,2009年其實還有另一優秀的黏土動畫電影,即這部《巧克力情緣》(Mary and Max)。

大家都知道黏土動畫製作不易,費時又費工,是一件很磨性子的差事。不過也因為黏土動畫便宜親民,且具有某種特殊的質感,讓不少動畫創作者著迷於此,如英國的Nick Park和Peter Lord、美國的Henry Selick,還有捷克的Jan Svankmajer等人都相當熱衷此道。而一般來說,黏土動畫易學難用,控制人物簡單的動作容易,但若要再往上做出變化,如一些尋常卡通片中的誇張表現,那就困難得緊了。

[翻譯][WIKI]權威漫畫準則(Comics Code Authority)

此漫畫認證印章由DC Comics圖標設計者暨封面設計者Ira Schnapp所製作。

權威漫畫準則(Comics Code Authority,簡稱CCA)隸屬於漫畫雜誌協會(Comics Magazine Association of America,簡稱CMAA),創立目的在於規範美國漫畫書的內容。會員出版社將漫畫交付給CCA審查,審核通過便可授權使用印上CCA圖標的封面。CCA在漫畫業界舉足輕重,乃一有實質權炳的檢查機關。

公主與青蛙 The Princess and the Frog (2009)

princess_and_the_frog_ver2princess-and-the-frog

在觀賞這部電影當下,我的眼框不時泛著淚光,多久了?多久沒這種感動了?彷彿又回到兒時,那個美好、純真的年代,《白雪公主》、《愛麗絲夢遊仙境》、《美女與野獸》、《小姐與流氓》、《阿拉丁》、《小美人魚》等等經典傑作的片段,如幻燈片般,又再度縈繞於心。即便如今已二十多歲,早已沒有當初的純真,但迪士尼的回歸之作依然深深地感動了我,主題是一環,情境營造是一環,但最主要的,還是那久別的歌舞場景。

USATODAY's Top 150 Best selling manga

USA TODAY在每一週會放出當週銷售前一百五十名的書單排行榜,以下是日本漫畫的上榜概況:

USATODAY's Top 150 Best selling comic

USA TODAY在每一週會放出當週銷售前一百五十名的書單排行榜,以下是美國漫畫的上榜概況:

骷髏魔導師 by 情終流水

152_357178_bdff49495c968ff_2152_357178_c010736b0194578_2

前陣子發現這部推出沒多久的小說,對它有點好奇,但並沒有很強烈的閱讀慾望,因為過去拜讀過作者的前作《超級骷髏兵》,雖說前期很吸引人,讓人一股腦跌入不死骷髏的奇幻世界中。不過我這個人什麼都有一些,就是獨缺耐心與恆心,典型的三分鐘熱度,所以這部《超級骷髏兵》大概看到中間的部分,感覺套路開始有些重覆,也開始讓人有點不耐,便索性撒手擱著,把它塵封於布滿灰塵與蜘蛛網的硬碟深處,等待哪一天心血來潮,重啟封印,再次回到那熟悉卻也陌生的書中世界。

[翻譯][WIKI]好姑娘藝術 (Good Girl Art)

8bh6wxiexecutiveassistantiris0

好女孩藝術(Good girl art,簡稱GGA)通常意指不論主題或情況?何,都特別注重畫中女孩魅力的圖像。GGA的概念,在漫畫、流行雜誌和偵探小說中受到廣泛的應用。

GGA一詞,主要描述那些在插畫上塑造性感女郎形象的藝術風格,它是「好」的藝術,而非著眼於女孩。對此,流行文化歷史學家Richard A. Lupoff做如下定義:封面或插圖描繪具吸引力的年輕女子,通常身穿輕薄或緊身的衣物,營造性感與情色的視覺體驗。此一專有詞彙並不適用於道德上的「好女孩」,反而往往用於gun moll(註1)、tough cookie(註2)或邪惡的妖婦。

[翻譯][WIKI]Marvel的分級系統

Marvel的分級系統(Marvel Rating System) 是將漫畫依內容作區隔,就適宜的年齡層分門別類。在2001年,Marvel Comics退出權威漫畫準則(Comics Code Authority),並建立一套自家專用的分級系統。今天我們可以在漫畫的UPC Code上找到此一評分內容[1]