EragonJ – A humble navigator

About EragonJ | About this blog

Archive for the ‘PHP’ tag

[Ruby] Get started

leave a comment

最近因為一些實務上的需求(真的嗎),所以不得不試著嘗試用RoR來開發程式,但是因為萬事起頭難,最困難的就是在一開始,所以就先試著了解Ruby這個語言的特性,再來往下階段做開發。

因為說實在的,不知道為什麼國內Ruby相關的資源很少,在網路上都沒有找到什麼比較淺顯易懂的書,所以就隨性上網找到了一本名為「The Ruby Programming Language」的書,就拿它來當cookbook吧。

因為我是從PHP跑來這邊玩沙,所以說實在的我還真的有點很不習慣,先看一下PHP在Wiki上的介紹:

『PHP 原本的簡稱為 Personal Home Page[4],是Rasmus Lerdorf 為了要維護個人網頁,而用c語言開發的一些CGI工具程式集,來取代原先使用的 Perl 程式。最初這些工具程式用來顯示 Rasmus Lerdorf 的個人履歷,以及統計網頁流量[5]。他將這些程式和一些表單直譯器整合起來,稱為 PHP/FI。』– From Wiki

PHP當初是延用了C的風格,再加上一些自有的特色,使得其多了一些較彈性的設計(如使用變數時可以不需要宣告型態)。但是,當我看到Ruby之後,反而讓我有種很難上手的感覺,因為它好精簡,讓我有種當初在寫Perl的感覺(雖然我沒有寫好,對不起c9s XD)。

好啦,廢話不多說,現在就來看看我看這本書時的一些小重點。

3.2.1.4 Arbitrary delimiters for string literals

還記得剛剛為什麼我說它讓我覺得好像Perl嗎,因為它也有支援Syntax Sugar,來看看它是怎麼做到的:

還真的是很簡單,只要在前面要加個”%”就可以了(Perl 只要 q就好了呀!!!)

下面還說到要怎麼在使用Syntax Sugar時再跳脫那些用來當標記的符號,我覺得如果真的還要這樣子就有點本末倒置了吧…

3.2.1.5 Here documents

這邊再把上面的Syntax Sugar做個延伸,是借用Unix shell的語法,叫做 Here documents,它後面的註解很有趣,它說「因為這個文件就在個原始碼內,而不是存在於外部的檔案」,真是有夠白痴,有講和沒講不是一樣XD。

來看個小Example。

“<<"和"<<-"的差別就差在後者的close tag的前面可以有空白,但是前者的不行,就這樣子而已。還有個特別強調的地方,就是close tag的後面不能插入comment,插了就會出現一堆錯誤!!這個東西在PHP也有,通常是用來存放HTML的部分,這樣就不用一直一行一行的輸出,算是把View分離的方法,範例如下。

1st part 就覺牛刀小試一下到這邊啦。

Written by EragonJ

January 28th, 2010 at 11:24 pm

Posted in Ruby

Tagged with , , , ,

[Hax4] Rainbow

leave a comment

測試頁面:在這、專案資訊:在這


這幾天因為心血來潮,想說來練習一下pure javascript,所以就都不用jQuery來做事情(雖然最後還是有用,不過我只用來做特效而已XD)。這個Idea其實是源於我以前做的一個很爛的liu-translator,它只能單方面做字根對字的轉換,所以就想說利用Ajax的概念來實作一個線上的IME,因此我就去找了之前Luke的網蝦米來研究他的UI介面。


研究了一下後就開始著手動工整個JS的架構,邊看深入淺出Ajax邊試著實作他說的一些思惟,像是要怎麼寫的很MVC,所以就開始學著把程式切成粗略的「資料」、「模組」、「樣式」三類,雖然之間還是有些耦合性,但是比較以前的我,這次的實作算是很成功的分離了。


之後又想到行易公司的練習嘸蝦米的打字程式一直沒有跨平台,只支援該死的M$,所以為何不幫他們設計一個Cross Platform的Web Application?反正只要解決Cross Browser的問題就可以了,雖然我在Cross Browser這條路上只是一個剛入門的新手,但總比Cross Platform好多了吧…因此就把分離完的架構再修改,改成有點像是遊戲的小程式。


原本已經接近完工的狀態了,但是Bu因為是「大新倉頡」的愛好者,所以就給個建議要我加入的其字根對應表,去擴充可支援的輸入法,就又經過了一場編碼和正規表達式的戰爭後,終於把切換輸入法的功能也加上了,這完全要歸因於先前的MVC架構,讓我能夠在很短的時間完成這個動作。


最後一個也是最重要的啦,為了提高遊戲性,我設計了一段可以自動去抓使用者給定URL的頁面回來,把該頁面上所有符合UTF-8繁體中文的字全部抓下來當成題目,這又比起以前行易公司設計的那些題目多了一些趣味。多了這個設計,你還可以邊看Yahoo!奇摩新聞邊練打字咧!!

附上程式截圖:




§2010/05/13 補上程式的Demo連結,原來我都沒有放出來= = ,舊的在這,新的在這

§2011/02/05 更新連結、圖片、介紹。

Written by EragonJ

January 27th, 2010 at 2:18 am

[Mac] How to enable GD lib ?

leave a comment

意外找到這個開發者寫的pkg檔,真的是一裝就Happy Ending了,省下不少時間,

以下是該pkg檔的特色,記下來給以後有需要的人!!

連結

  • the MySQL and PostgreSQL databases
  • the cURL library for various communications protocols
  • the GD image creation library (with PNG, JPEG, PostScript Type 1 and TrueType font options).
  • the expat XML parser and WDDX support
  • XSLT transformations
  • LDAP access
  • the IMAP client library
  • mcrypt encryption functions
  • GNU gettext

Written by EragonJ

January 19th, 2010 at 12:31 am

Posted in PHP

Tagged with , , ,

[PHP] phpMyAdmin #2002 error

leave a comment

Environment :

Mac OSX 10.5.8
PHP 5.2.10
Mysql 5.0.82
phpMyAdmin 3.1.3

Error:

#2002 – The server is not responding (or local MySQL server’s socket is not correctly configured)

Solution



Written by EragonJ

September 17th, 2009 at 5:08 am

Posted in PHP

Tagged with , , , ,

[PHP] Wxetch bot 三連發

leave a comment

昨天意外的看到一個討論串 , 就在那邊寫了一個新的 Wxetch Tricker 寫到三點…原因是因為有些地方一直卡住才卡這麼晚 , 囧…

A – Wxetch Tricker

是能夠用中花電信的 proxy server 來做到 cheating 的作用


<?php
if(isset($_POST['url'])){

$cookie = 'cookie.txt';
$url = trim($_POST['url']);
$pattern = "/www.wretch.cc/blog/(.*)/i";

if((preg_match($pattern,$url,$last))==TRUE){
$url = $last[1];
}
for($i=0;$i<25;$i++){
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"www.wretch.cc/blog/$url");
curl_setopt($ch,CURLOPT_PROXY,"proxy.hinet.net");
curl_setopt($ch,CURLOPT_PROXYPORT,80);
curl_setopt($ch,CURLOPT_TIMEOUT,5);
curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie);
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_exec($ch);
curl_close($ch);
}
}else{
echo '
<html>
<head>
<title>Wxetch Tricker</title>
</head>
<body>
<form method="post" action="tricker.php">
請輸入Wxetch帳號:<input type="text" name="url" value="">
<input type="submit" name="click" value="click">
....default: 50 times
</form>
<div align="right">Author: EragonJ</div>
</body>
</html>
';
}
?>

因為這個要是中花電信的用戶才能使用他們的proxy server , 不過台灣還蠻多用戶的ISP都是他 , 所以應該都可以做到就是了!

我一直在想 , proxy server 不過就是個中繼站嗎? 那這樣子的話是怎麼可能做到cheating的功效 , 如果我推論沒錯的話 proxy.hinet.net:80 這是主要的server , 其下還有很多子server可以供主server 發佈命令去做中繼的動作 , 所以就可以做到cheating的功用 ,因為是由各個子proxy server去和Wxetch做接觸的!!

就算是小量cheating的動作就是了..

B – Wxetch Observer

有兩個版本 , 一個是Full size version
而另一個是Short cut version

這兩個都是可以直接去抓取相簿圖片的小程式 , 但是該死的IE6用右鍵會抓不到圖 , 但FF就沒有這個問題 , 可以來用用看FF3呀XD~ 真的是現在都用這個了~ 超好用 , 又有很多add-ons

大概就是這三個啦 , 下次還有什麼有趣的東西再放出來~

Written by EragonJ

February 10th, 2009 at 4:36 am

Posted in PHP

Tagged with , ,