星期五, 六月 01, 2007

判斷某月某日的大小介於關係

判斷 x月y日 是否在 p月q日 ~ r月s日 之間

分別用月日去判斷會很麻煩,可是將 月 x 100 + 日,就有很漂亮的順序

101
102
103
...
131
201
202
....
1230
1231
判斷跨年也很容易(例如12月25日 ~ 1月15)

以前好像沒真的寫過,可是有想過,但是不知道蠢哪國,都會用月日分別判斷的想法....Orz

作者 JiaYun ( Programming ) :: 迴響 (7):: 靜態連結網址:: 引用 (0)

星期一, 四月 16, 2007

OSDC 2007 第二天感想

第二天議程 我聽了這些

Perl 5.10

感覺一些新的 regular expression 語法變態強,原本麻煩的一些 case 好像都會很好處理

Microformats

跳得有點快,聽完還是不怎麼了解 microformats,也不知道要怎麼用

Google Data API

present 風格滿悶的,我也就沒集中注意力 XD

Perldoc, Kwiki 2.0 and Zhingy döt Net

搞怪到先把自己變 2.0,還滿歡樂的一場 XD

Asynase - The missing links between servers and clients

印象最深的是 JavaScript 的 ActiveRecord - AsynapseRecord,厲害

Lightening talk

沒想到會見到高橋征義 present,驚喜


兩天裡也看到其他滿多只知道名字、看過 blog 或相片,但沒見過的人,不過我沒有幾個認識的 XD

另外還拿到 Google 小玩具,會閃光的徽章 XD 而且可以換電池....

Google 的小姐還說我的喵T很可愛(其實是喵polo),害我很害羞 XD

OSDC 2007 第一天感想

簡單寫一下第一天議程我聽的場次的感想

Test Driven Python

最慘的一場,明明是「Test Driven Python」,可是聽到的是一堆「Test」和「Test Driven」,「Test Driven Python」不知道有沒有五分鐘,我聽到後來已經整個不耐煩....

Jifty

最享受的一場,很有趣笑點也不少,聽完真的會很想玩玩看。Audrey rocks!

svk: version control without the headaches then pushmi

其實我早該要用 svk 才對,因為 Commons4E 我一直都手動同步本機和 BerliOS 上的 svn repository,不過因為是只有一個 developer 的小東西,還是沒去用

The Value of Everything But the Cost of Nothing -- a Tutorial to Haskell

還不錯,只是聽完之後,範例裡的一些語法還是有點看不懂 XD Haskell 對我來說還是天書....

The furture of the Ruby on Rails :REST

講者開頭和最後都各說一次他看不懂 Roy T. Fielding 的東西,所以我沒辦法信任他.... 有力氣還是要自己看一次才是....

星期四, 四月 20, 2006

「Linux程式設計教學手冊(第三版)」實在翻得不太好

Beginning Linux Programming, 3rd Edition 是本不錯的書,不過中譯本 Linux程式設計教學手冊(第三版) 翻譯得不太好,只要看到中文句子怪怪的地方,對照原文都會發現是譯者沒譯對原文的意思。底下用「原文」、「中譯」、「我覺得比較合適的翻譯」並列方式,舉一些比較誇張的例子(頁碼採用中譯本頁碼)︰

9-18
: or by typing the end of file character, usually Ctrl+D.
: 或者在檔案字元的結尾輸入 Ctrl + D
: 或者輸入檔案結束字元,通常是 Ctrl + D

9-33
: Sometimes (all too often)
: 有時候(不常見)
: 有時候(太常見)

9-41
: The RPM system expects the sources to be located in the SOURCES directory as a tarball. (There are other options; this is the simplest.) SOURCES is just one of the directories expected by the RPM system. The RPM system expects the five directories in this table:
: RPM 系統期望原始碼放在 SOURCES 目錄,而且是個 tarball。當然還有其他選項,不過這是最簡單的。不過,RPM 系統只希望使用 SOURCES 目錄。 RPM 系統希望有以下五個目錄,如下表︰
: RPM 系統要求程式碼要以 tarball 方式放在 SOURCES 目錄裡。(還有其他選擇,但這是最簡單的。)SOURCES 只是 RPM 系統要求的目錄之一。 RPM 系統要求要有下表所列的五個目錄︰

9-46
: We are now ready to build the RPM package.
: 我們現在已經準備完成一個 RPM 套件。
: 我們現在已經準備好要建立我們的 RPM 套件。

12-5
: Multithreaded programs don't get much simpler than this!
: 多重執行緒的程式跟這個範例差不多
: 多重執行緒程式不會有比這簡單太多的了

14-3
: because you can’t express in C, C++, or almost any conventional programming language the need to make a single, atomic operation of the test to see whether the variable is true, and if so change the variable to make it false.
: 因為您無法在 C、C++ 或幾乎任何程式語言中,表達您要進行一個單獨、獨占性的動作,這個動作就是檢查這個變數,看它的數值為 true 還是 false。
: 因為您無法在 C、C++ 或幾乎任何傳統程式語言中,表達您要進行一個單一且完整不可分割的動作,這個動作就是檢查這個變數,看它的數值是否為 true,如果是,則將它設為 false。

懶得列太多了,不過我實在看到不知道自己是在看書還是在校譯....

Update: 為了公平點,還是補上一句「跟另一個人翻得不知所云的第一版比起來,這本還算好多了....」

Update2: 翻譯部分我給它 3 分 (滿分 5)

作者 JiaYun ( Linux, Programming, Reading ) :: 迴響 (4):: 靜態連結網址:: 引用 (0)

星期三, 十二月 07, 2005

pass by reference & pass by value

在什麼語言都要『炒』好幾次?

http://thread.gmane.org/gmane.comp.lang.ruby.rails/33148

作者 JiaYun ( Programming, Ruby ) :: 迴響 (0):: 靜態連結網址:: 引用 (0)

星期一, 十一月 28, 2005

[WTF] 轉十六進位

不管用什麼語言寫數值輸出成十六進位顯示

寫成十六個值一一 if else 或 switch 判斷的,請給自己一巴掌....

Update: 補上兩個例子(手上剛好有很多....)

  switch (value)
  {
    case 0:
      return '0';
    case 1:
      return '1';
    case 2:
      return '2';
    case 3:
      return '3';
    case 4:
      return '4';
    case 5:
      return '5';
    case 6:
      return '6';
    case 7:
      return '7';
    case 8:
      return '8';
    case 9:
      return '9';
    case 10:
      return 'A';
    case 11:
      return 'B';
    case 12:
      return 'C';
    case 13:
      return 'D';
    case 14:
      return 'E';
    case 15:
      return 'F';
    }

  if (value == 15)
    temp[i++] = 'F';
  if (value == 14)
    temp[i++] = 'E';
  if (value == 13)
    temp[i++] = 'D';
  if (value == 12)
    temp[i++] = 'C';
  if (value == 11)
    temp[i++] = 'B';
  if (value == 10)
    temp[i++] = 'A';
  if (value == 9)
    temp[i++] = '9';
  if (value == 8)
    temp[i++] = '8';
  if (value == 7)
    temp[i++] = '7';
  if (value == 6)
    temp[i++] = '6';
  if (value == 5)
    temp[i++] = '5';
  if (value == 4)
    temp[i++] = '4';
  if (value == 3)
    temp[i++] = '3';
  if (value == 2)
    temp[i++] = '2';
  if (value == 1)
    temp[i++] = '1';
  if (value == 0)
    temp[i++] = '0';

作者 JiaYun ( Programming ) :: 迴響 (3):: 靜態連結網址:: 引用 (0)

星期四, 九月 01, 2005

Array Slice

這幾天在看 Programming Ruby (2nd. Ed.)

看到 Array 部分時,好奇試了這些個東西

a = ["a", "b", "c", "d", "e"]
a[3, -2]
a[3..1]
a[-1..1]
a[-1..-3]
結果
a[3, -2] => nil
a[3..1] => []
a[-1..1] => []
a[-1..-3] => []
我想要是我來設計,大概會給它弄成這樣
a[3, -2] => ["d", "c"]
a[3..1] => ["d", "c", "b"]
a[-1..1] => ["e", "d", "c", "b"]
a[-1..-3] => ["e", "d", "c"]
因為既然負的 index 是由最後往前數(a[-1] => "e"),我會覺得取好幾個也要有由後往前取的功能 :P

作者 JiaYun ( Programming, Ruby ) :: 迴響 (3):: 靜態連結網址:: 引用 (0)

星期日, 五月 22, 2005

原來匈牙利命名法被誤解得那麼深

從這兩篇提到 Hungarian notation 的部份還有相關的連結可以了解

http://www.joelonsoftware.com/articles/FogBugzIII.html

http://www.joelonsoftware.com/articles/Wrong.html

作者 JiaYun ( Programming ) :: 迴響 (0):: 靜態連結網址:: 引用 (0)

星期二, 十月 12, 2004

目錄名稱含有 # 符號 MonoDevelop 開不出檔案

好奇裝了 Mono 玩,我下載的是 Fedora Core 2 mono-all.zip

需要的 RPM 都在裡面,只另外裝一個缺少的 RPM,再把壓縮檔裡的 RPM 都裝起來,就能用了

MonoDevelop 也有附在裡面,結果一開始用就遇到 這個 bug

因為玩 C# 嘛,很自然開了一個 c# 目錄 :P

但是由於 gnome-vfs 的問題,造成名稱含有 # 符號的目錄,裡面的檔案沒辦法被 MonoDevelop 開在自己的編輯器裡,而是用其他程式打開

弄好久才發現是 # 造成的,後來搜尋了 bug 資料,找到上面那個別人回報的內容

作者 JiaYun ( Programming ) :: 迴響 (0):: 靜態連結網址:: 引用 (0)

星期一, 六月 07, 2004

gcc + gprof 做 profiling

之前用 C++ 寫個練習的小程式,結果不夠快,丟在那好幾天

昨天知道 gcc 可以在編譯時下參數讓程式產生 profile 資料

試了之後,把最耗時間的地方改了一下就夠快了

編譯時加上 -pg
g++ -pg -o test test.cc

編好後執行程式會產生 gmon.out 檔案

然後 gprof 接執行檔名,就會在螢幕印出分析資料
gprof test

或者導進檔案
gprof test > profile.txt

gcj 也能玩,只是好像要用靜態連結,不然沒辦法產生分析資料
gcj -static -pg --main=Test Test.java

作者 JiaYun ( Programming ) :: 迴響 (0):: 靜態連結網址:: 引用 (0)