顯示具有 程式設計 標籤的文章。 顯示所有文章
顯示具有 程式設計 標籤的文章。 顯示所有文章

2016年7月21日 星期四

[Wordpress] A Method for combining both of plain and custom URLs

In Wordpress, we usually set the custom URLs for the purpose of SEO.
For the old plain URLs which are previously published to other sites, we should maintain them by redirecting to the new custom URLs.

The htaccess setting can simply do the redirection to a static page, such as response 404 not found or see other new site. Sometimes, we don’t know how many old plain urls are published. It cannot fulfill our needs for mapping the old plain URLs to the corresponding new URLs. For example, we want to create the following rules of redirections:

redirect http://example.com/?p=123 to http://example.com/custom/link

redirect http://example.com/?p=456 to http://example.com/the/other_links

There may be more old URLs we don’t be aware of are published. A general soluton is to keep both of the plain and custom URLs.

In this case, we use add_filter function provided by Wordpress.
Navigate your directory of currently used theme and find functions.php and put a piece of codes as follows:

function compatible_link( $postlink, $redirect) {
    $id = get_query_var('p', -1);
    if($id !== -1 && is_numeric($id)) {
        return get_permalink($id);
    }
    return $postlink;
}

add_filter('post_type_link', 'compatible_link', 10, 2);

Done! Enjoy your website.

REFERENCE:

  1. Rewriting URLs in WordPress: Tips and Plugins. URL: http://www.hongkiat.com/blog/wordpress-url-rewrite/
  2. Wordpress的Hook機制與原理. URL: http://www.mrmu.com.tw/2011/10/10/wordpress-hook/
  3. Custom post type with post_id in permalink structure. URL: https://wordpress.org/support/topic/custom-post-type-permalink-structure
  4. Custom Login Url with plain permalink format. URL: https://wordpress.org/support/topic/custom-login-url-with-plain-permalink-format
  5. Function Reference/get query var. URL:https://codex.wordpress.org/Function_Reference/get_query_var
  6. CREATING CUSTOM PERMALINKS IN WORDPRESS. URL:http://wp-events-plugin.com/tutorials/creating-custom-permalinks-in-wordpress/

2015年11月24日 星期二

Solve the problem of Causing IIS Express Slow Down

[Chinese/中文]
最近我的Visual Studio 2013內建的IIS Express 實在跑太慢了,而且常常回報無服務回應的錯誤。根據此條目,看起來像是logger元件出問題。
為了解決此一問題,我們可以嘗試以下步驟:
1. 用系統管理員權限開啟命令提示字元視窗 (cmd console)
2. 輸入以下指令
  (1) cd  %systemroot%\system32\inetsrv\
  (2) appcmd set config /section:urlCompression /doStaticCompression:True
  (3) appcmd set config /section:urlCompression /doDynamicCompression:False
  (4) appcmd set config /section:httpLogging /dontLog:True

[English]
Recently, my Visual Studio 2013's built-in IIS Express runs too slower and it often reports errors about no service response.
According to the thread, it seems logger component of IISExpress broken.
To fix the problem, we can try the following steps:
1. Open a cmd console with Administrator permission.
2. Type the subsequent commands:
  (1) cd  %systemroot%\system32\inetsrv\
  (2) appcmd set config /section:urlCompression /doStaticCompression:True
  (3) appcmd set config /section:urlCompression /doDynamicCompression:False
  (4) appcmd set config /section:httpLogging /dontLog:True

Reference

  1. Mike Volodarsky, "Getting Start with Appcmd.exe", Microsoft Developer Network. URL: http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe
  2. "VS 2013 Professional - Web Dev Server (IIS Express) is very slow", Microsoft Developer Network. URL: https://social.msdn.microsoft.com/Forums/en-US/8e42baa5-38c7-4fef-b120-b0dd22ba8228/vs-2013-professional-web-dev-server-iis-express-is-very-slow?forum=visualstudiogeneral

2015年5月30日 星期六

Resource Scheduler , Calculator, Short-Circuit in Hadoop YARN and HDFS

In order to execute the next-year plan, I search the research topics and technologies in Hadoop YARN and HDFS, then make a note as follows:

Since Hadoop YARN was proposed, the new generation technology are continusly discussed. For knowing the work of YARN, please refer to the post [1].
The capacity scheduler of YARN[2][3] provides a default capacity scheduler, org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler [4], to let hadoop eco-system manipulates its’ resources. It also provides resource calculator, org.apache.hadoop.yarn.util.resource.DefaultResourseCalculator [5], to calculate the memory usage, the disk usage and the cpu usage of each compute node.
For those system administrators and developers who are curious about the operations of resource allocation and the scheduler, please see the reports [6], [7] and [8].
In scientific area, Project HaSTE [9] proposed a new Hadoop YARN scheduling algorithm, which aims at efficiently utilizing the resources for scheduling map/reduce tasks in Hadoop YARN and improving the makespan of MapReduce jobs.

On the other hand, HDFS [10] is a usually used file system in Hadoop. However, it needs TCP socket connection to read/write data. Due to this reason, the IO performance will be lower than directly reading from local disk without network connection. Therefore, HDFS provides a function called HDFS Short-Circuit Local Reads [11] and also provides a native libaray to directly access the HDFS file system. According to the report [12], the I/O performance of using Short-Circuit is better than TCP.
ps. The other tricky technology to improve the I/O performance of HDFS is to use CombineFileInputFormat [13][14]. But I don’t think this method is better than using Short-Circuit.

Reference
  1. Karthik Kambatla, Wing Yew Poon, and Vikram Srivastava, “How Apache Hadoop YARN HA Works,” Cludera. Available: [Online] http://blog.cloudera.com/blog/2014/05/how-apache-hadoop-yarn-ha-works/
  2. Hadoop, “Haddop MapReduce Next Generation – Capacity Scheduler”, Apache Hadoop. Available: [Online] http://hadoop.apache.org/docs/r2.5.2/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html#Configuration
  3. skyWalker_ONLY, “Hadoop-2.4.1学习之容量调度器”. Available: [Online] http://blog.csdn.net/skywalker_only/article/details/41351147
  4. GrepCode, “CapacityScheduler”, GrepCode.com. Available: [Online] http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-yarn-server-resourcemanager/2.6.0/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java/
  5. GrepCode, “ResourceCalculator”, GrepCode.com. Available: [Online] http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-yarn-common/2.6.0/org/apache/hadoop/yarn/util/resource/DefaultResourceCalculator.java/
  6. Vinod Kumar Vavilapalli, “Resource Location in YARN: Deep Dive,” Hortonworks. Available: [Online] http://hortonworks.com/blog/resource-localization-in-yarn-deep-dive/
  7. SEQUENCEIQ, “YARN Schedulers demystified – Part 1: Capacity.” Available: [Online] http://blog.sequenceiq.com/blog/2014/07/22/schedulers-part-1/
  8. SEQUENCEIQ, “YARN Schedulers demystified – Part 2: Fair.” Available: [Online] http://blog.sequenceiq.com/blog/2014/09/09/yarn-schedulers-demystified-part-2-fair/
  9. Bo Sheng, “Project HaSTE: Hadoop YARN Scheduling Based on Task-Dependency and Resource-Demand,” The 7th IEEE International Conference on Cloud Computing, Anchorage, AK, June 2014.  Available: [Online] http://www.cs.umb.edu/~shengbo/research/haste.html
  10. Hadoop, “HDFS User Guide,” Apache Hadoop. Available: [Online] http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html#Related_Documentation
  11. Hadoop, “HDFS Short-Circuit Local Reads,” Apache Hadoop. Available: [Online] https://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/ShortCircuitLocalReads.html
  12. Colin McCabe, “How Improved Short-Circuit Local Reads Bring Better Performance and Security to Hadoop,” Cloudera. Available: [Online] http://blog.cloudera.com/blog/2013/08/how-improved-short-circuit-local-reads-bring-better-performance-and-security-to-hadoop/
  13. Dhruba Borthakur, “HDFS block replica placement in your hands now!” Available: [Online] http://hadoopblog.blogspot.de/2009/09/hdfs-block-replica-placement-in-your.html
  14. Hadoop, “Class CombineFileInputFormat<K,V>”. Available: [Online] http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/lib/CombineFileInputFormat.html

2015年5月21日 星期四

Process SequenceFile without Enabling Hadoop Platform

Recently I got a requirement for reading Hadoop’s SequenceFile without enabling Hadoop Platform. However, most examples introduce the read/write SequenceFile with Hadoop Platform. How do I read such files without hadoop?
There’s a tricky solution in this case.
1. Download Hadoop binary file from hadoop site. For Linux/Unix please directly download it; for Windows, there’s pre-built archive file – hadoop-common-2.2.0-bin (source code is here) , created by Abhijit Ghosh.
2. Set environment variable HADOOP_HOME by the directory path (suppose the directory is /usr/local/hadoop in Unix ; or C:/hadoop-common-2.2.0-bin in Windows)
3. Append $HADOOP_HOME/bin to the end of environment variable PATH. ( i.e. /usr/local/hadoop/bin in Unix ; or C:/hadoop-common-2.2.0-bin/bin in Windows
4. Write your program like this (Notice that you have to download hadoop-common-2.2+):

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLEncoder;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.util.ReflectionUtils;

public class ProcessSequenceFile {

public static void readSequenceFile(String sequenceFileName) throws IOException, URISyntaxException {
Configuration conf = new Configuration();
String directoryPath = "file:///";
directoryPath = URLEncoder.encode(directoryPath, "UTF-8");
FileSystem fs = FileSystem.get(new URI(directoryPath),conf);
Path file = new Path(fs.getUri().toString() + sequenceFileName);
@SuppressWarnings("deprecation")
SequenceFile.Reader reader = new SequenceFile.Reader(fs, file, conf);
Text key = (Text) ReflectionUtils.newInstance(reader.getKeyClass(), conf);
Text value = (Text) ReflectionUtils.newInstance(reader.getValueClass(), conf);
while(reader.next(key,value)) {
System.out.println("Key:" + key);
System.out.println("=================");
System.out.println(value);

}

}

public static void main(String[] args) {
try {
// If args[0] is the SequenceFile we need to read.
readSequenceFile(args[0]);
} catch (IOException | URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

Enjoy it!

Reference:
1. Gnosis Runmination, “WIN7下运行hadoop程序报:Failed to locate the winutils binary in the hadoop binary path.” Available: [Online] http://www.cnblogs.com/zq-inlook/p/4386216.html
2. StackOverFlow, “Running Apache Hadoop 2.1.0 on Windows”. Available: [Online] http://stackoverflow.com/questions/18630019/running-apache-hadoop-2-1-0-on-windows
3.  Abhijit Ghosh, "ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path," SrcCodes.com. Available: [Online] http://www.srccodes.com/p/article/39/error-util-shell-failed-locate-winutils-binary-hadoop-binary-path
4. Hadoop, “Native Libraries Guide.” Available: [Online] https://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/NativeLibraries.html#Native_Hadoop_Library

Allen查字典故障一事

各位使用者好。上架許久的Allen查字典外掛,最近好像故障了。我目前著手修正中,看能不能趕在周六以前修正完畢,請耐心等候。謝謝!

2015年5月3日 星期日

Print output while Processing HTML/XML data in Jsoup Project

Currently, I encountered one problem while retrieving XML data from one website. In my case, assume that the original XML document is like
<result>
<device />
<name>Allen's device</name>
</result>

If I use Jsoup.parse(File, “UTF-8”); without additional options, the returned document object will be like:
<result>
<device>
<name>Allen's device</name>
</result>

The weired result is <device> is just an open tag but without close tag here. Howevver, if you process <size /> tag in this example, the program will produce the same tag <size />.

That’s because Jsoup adds some initial tags which can be viewed as an open tag but don’t attach a close tag. In this condition, <device /> can be first derived as an open tag <device> and jsoup will create an empty tag at line 204 from org.jsoup.parser.HtmlTreeBuilder.insertEmpty(Token.StartTag) method. Since <device /> is an self-closing tag, this procedure will go through line 205 ~ 210 of insertEmpty.

The program will go into line 205. The reason is that <device /> is one of known tags. The definitions of known tags are initialized since line 257 (the all known tags’ definition can be found in line 221 ~ line 253) of org.jsoup.parser.Tag and will be called by line 29 of org.jsoup.nodes.Document. Due to this insertEmpty procedure run into line 206, it called a boolean operation here then return element <device>. Notice that this insertEmpty methodis called by org.jsoup.parser.HtmlTreeBuilderState.process (Token, HtmlTreeBuilder).

After that, while reading close tag </device>, the procedure will call anyOtherEndTag(t, tb) in line 746 of HtmlBuilderState. Then, that procedure will call HtmlTreeBuilder.generateImpliedEndTags(String) in line 765. Significantly, the procedure uses popToStack() to pop out </device> element from a stack here.

However, it doesn’t perform true closing tag operation. That means, HtmlTreeBuilder leaves an open tag- <device> in its’ HTML Tree after executing line 206 of insertEmpty method, but doesn’t handle </device> tag to complete closing tag operation in anyOtherEndTag.

2015年4月16日 星期四

How to fast calculate ( I mod N)?

Given integer I and an integer N which is power of 2, how does it work faster to calculate "I mod N"?
OpenJDK's java.util.HashMap.indexFor method gives us a best solution for it.
It simply calculates " I (bitwise AND) (N-1) ".

Reference

1. “HashMap.” Available: [Online] http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/java/util/HashMap.java#HashMap.indexFor%28int%2Cint%29

2. “HashMap implementation in Java. How does the bucket index calculation work?” Stackoverflow. Available: [Online] http://stackoverflow.com/questions/10879302/hashmap-implementation-in-java-how-does-the-bucket-index-calculation-work

2015年3月19日 星期四

The Problem of Ternary Operators in PHP

How do you think of the ternary operators in PHP? Recently, I’’ve used the code written as below:
echo (1?"Y":0?"N":"");

The code returns “N” but not “Y”. How does it work?

It shoud be like:

echo ((1?"Y":0)?"N":"");

Finally, please follow the advice from PHP docs:
It is recommended that you avoid "stacking" ternary expressions. PHP's behaviour when using more than one ternary operator within a single statement is non-obvious.
Then you will make better code in PHP.

Reference

1. Mac Taylor, “Stacking Multiple Ternary Operators in PHP, “ stackoverflow [Online]. Available: http://stackoverflow.com/questions/5235632/stacking-multiple-ternary-operators-in-php

2014年2月22日 星期六

[PHP] Be discreet to use crypt function

Recently, the PHP’s crypt function crashed in my designed new system. In fact, in my database design, the length of password field is 64. It ran fine at CentOS 5.5 with PHP 5.2.x. However, when I moved this system to Debian 7.3.0 with PHP 5.4.x, it was failed to generate the password.

In CentOS 5.5, it used MD5 as default crypt function and the php’s crypt also did (CRYPT_MD5). The MD5 hash generates 34 characters including 12 prefix salt characters like “$1$ … $”and 22 hashed characters in base64 encoding (128 digits / 6 bits_per_characters := 22 characters ), so the legnth of hashed password is enough with the field size = 64.

Unfortunately, the new operating system uses SHA512 crypt function as default crypto scheme and PHP’s crypt function also accepts the crypto scheme as default. In the default setting, the SHA512 hash function generates 102 characters including 16 prefix salt characters like “$6$…$” and 86 hashed characters in based64 encoding (512 digits / 6 bits_per_characters := 86 ). Therefore, it has no extra data length to save whole 102 characters because of the default field size is 64. Finally, the password verifier is also failed. :(

REFERENCE

  1. PHP: crypt function.[Recommend]
  2. Wiki: MD5
  3. Linux Programmer’s Manual : Crypt (3) [Recommend]
  4. What is the output length of PHP crypt()?

2014年2月6日 星期四

Lucene中文斷詞

如果要使用Lucene的斷詞程式,最好看一下

1. Lucene介紹投影片 (推薦)

2. Lucene簡介 (推薦)

3. 當前幾個主要的Lucene中文分詞器的比較

4.  Lucene 3.0的中文分詞系統 (推薦)

5. Lucene 最新版4.6.1 內建的Smart中文斷詞 (推薦)

6. IKAnalyzer for Lucene 4.x版本

目前的Lucene斷詞系統都以支援簡體中文為先,如果要用繁體的話,就是用繁體轉簡體的API來製作。

JCC: A Java Chinese Covertor

懶得研究這麼多的話,可以直接使用Solr (基於Lucene實現的一個production)

1. Apache Solr 介紹(有寫說怎麼設定使用Solr斷詞,但還是以簡體字為主)

2013年12月18日 星期三

艾倫查字典

筆者原本開發的「Yahoo字典查詢器」,因有商標權的問題,被強制下架。

不過這次記取教訓,把logo與名稱換掉,改名為「艾倫查字典」,

並修掉一些裡面codes不合理的地方。

宣傳連結請見我的網站介紹:

http://www.allenworkspace.net/2-uncategorised/14-2013-12-17-17-25-26

2013年12月6日 星期五

I-List: Create Your Own Lists of Links

I-List is a very helpful links share platform to share your collected links.

It provides an user friendly interface to you for sharing some kind of links.

I’ve found that there are two collections which is very helpful for some people whose subjects are for studying and implementation in statistics, accounting and computer science.

1. List of Free Accounting Software : For business/accounting area.

2. List of Free Statistical Software : For statistics area.

2013年10月11日 星期五

XPATH, MapReduce and SAX

  1. SAX Create XPath
  2. XPath4Sax
  3. SPEX: XPath Evaluation against XML Streams
  4. Apache MRQL: MRQL is a query processing and optimization system for large-scale, distributed data analysis, built on top of Apache Hadoop, Hama, and Spark.

2013年9月29日 星期日

收穫滿滿的Hadoop Taiwan 2013

此次參加2013 Hadoop Taiwan Conference,收穫很多。(以下是手動隨便寫寫,請勿拘泥writing format)

業界方面的進展比學界又更加跨出一大步,也代表著我們之後如果要發表雲端相關運算的論文或是發展技術,

要特別小心注意這類工具。

由於Big Data時代的來臨,現在的雲端運算處理偏重於「即時」運算,而非「批次」運算。

我們目前所學的hadoop map/reduce只能算是非常基本而已。

對於即時運算的需求恐怕還不太夠(Hive/Pig 也不例外)。

Google先看到這個嚴重情形,繼2009年以來,陸續發表Google Caffeine (for indexing),

可繪製大量網路資訊彼此對應關係的圖表資料庫「Pregel」,

2010年7月發表Google Dremel (for real-time analysis),號稱可完全打敗Hadoop在即時運算處理上的不足。

Google在報告中明確指出,「過去MapReduce需要分多次查詢的資料,Dremel可同時處理,並大幅縮短運算時間」,

因此是為了real-time query而設計的。

此次參加Hadoop Taiwan,聽人家介紹才知道原來有這個強力的project可用。因此,Apache也仿照這個概念,

提出Drill platform.

為了real-time處理夠快,也會導入Message Queue System,例如:

Apache Kafaka: The message queue system for increasing the I/O performance but not provide transmission assurance.

Storm: The real-time message queuing system; but it consume too much more CPU time. (From the HBase initiator said…)

 

而Samza則是結合了Hadoop, Kafaka等技術整合而成的distributed stream processing framework (Hbase起草作者推薦的)。

Data Indexing: NGData project use much more hbase indexing to handle Big data problem.

Log collection for data auditing: Splunk is the recommended free project by Trend Micro.

In memory computing techniques: 柏克萊大學開發Spark/Shark Open Source Project來進行Machine Learning工作,由於所有計算工作都在Memory,號稱比Hadoop快20倍。

Impala:由Cloudra公司發表的Open source軟體,也是用Apache hadoop解即時處理的問題。

Graph Mining Tool : Pegasus

這套是因為資策會資安組跟卡內基美濃大學合作,CMU後來開發這個解決他們在graph-mining問題,

因為他們主要處理節點攻擊與病毒擴散模擬運算。他們資安組真的很強,mining工具用得很熟,

而不是只有寫寫數學式子發論文而已,是真的有拿這些Mining工具去做分群、分類、社群網路分析等。

此外,資安組也提到由於攻擊手法可能會長達每月或是每年才發動一次,

所以Rule based (主要偵測以分或者小時為單位的發動模式)可能無法運作。

註:

1. Google研究團隊及其合作學校(卡內基美濃大學、MIT等每年都到處發表論文,他們發表的論文都公告在 http://research.google.com/index.html

2. 這次來做presentation的廠商:Etu (精誠集團子公司),有真正專門處理Big Data問題的工程師到場,他們上述工具都非常嫻熟,

也提到每一版impala的技術細節,非常厲害。也有發表推薦系統產品,我有詢問他們一些推薦系統實做細節,
不過他們因商業機密,不告訴我就是了…。他們也有現場徵才,不過限制是擁有Hadoop/Linux等相關程式開發經驗2年以上。

2013年9月17日 星期二

Differences in each hadoop version

Hadoop 2.x is developed from hadoop-1.x, with the significant features over hadoop-1.x:

  • HDFS HA for NameNode (manual failover)
  • NextGen MapReduce (YARN)
  • HDFS Federation
  • Performance
  • Wire-compatibility for both HDFS and YARN/MapReduce (using protobufs)

Hadoop 0.23.x is a trunk which contains:

  • HDFS Federation
  • NextGen MapReduce (YARN)

Hadoop 1.x is developed from hadoop 0.20-security code support for:

  • security
  • HBase (append/hsynch/hflush, and security)
  • webhdfs (with full support for security)
  • performance enhanced access to local files for HBase
  • other performance enhancements, bug fixes, and features

2013年9月15日 星期日

Google表單自動寄信給填表人

2013/09/15 updated: 由於sheet的API呼叫跟Form的呼叫API不同,這邊加入Google表單的範例。
2015/02/27 updated: Google Docs的API改版了,筆者已經發布新版的寫法,請移駕至此。

現在網路上教的Google Docs問卷,都只有填表格功能,難道沒有讓使用者填寫完資料後,寄一份資料到使用者信箱的功能嗎?因為我們有時候需要製作收據系統之類的…。

答案是有的!我們只要動幾根手指頭,依照下列步驟,就可以輕易開發出這個功能喔!請依照以下步驟一步一步跟著我做即可。
請注意,如果是直接用Google表單的話,請注意第三步驟有些不同。

2013年8月14日 星期三

[Windows] Port 80被佔用導致Apache無法啟動

我們在Windows上使用AppServ架設網頁服務時,有時候會發現Port 80被佔用,導致無法啟動的狀況。

面對這樣子的窘境,可以參照以下步驟來執行:

  1. 開啟命令提示字元視窗,輸入以下指令:netstat –ano ,找出佔用Port 80的程式PID
  2. 開啟「工作管理員」,到「處理程序」標籤,按上方的「檢視」→「選擇欄位」,把PID選項勾選起來。
  3. 看看是哪一個Service佔用了80 Port? 就處理處理一下吧。

一般而言,最常發生Skype佔用80 Port的狀況,若發生此狀況,請參考這邊的解決辦法。

    倘若發現PID = 4,且來源是NT Kernel佔用的話,請別急著把它砍掉。

    請下達以下指令:

  1. net stop http
  2. Sc config http start= disabled   
    (注意,這一行請完整複製,大小寫與空格都有差異)

完成後,最好重新開機一下,這樣子問題應該就解決了。

參考資源

  1. Getting Apache to run on port 80 on Windows 7
  2. [問題排除] 80PORT被佔用? 如何查出佔用PORT的方法
  3. Skype 佔用了 port 80

2013年8月12日 星期一

AngularJS: The framework of JS based on MVC

在許多Javascript MVC的framework中,除了ExtJS、Backbone.js、YUI、EmberJS以外,AngularJS 也是目前最被熱烈討論的Javascript MVC framework之一。他除了有Google大神的支持以外,也使用MIT授權協議,逐漸成為商業產品的熱門選擇。

如果各位有興趣的話,可以先看以下Slides介紹,再搭配Will保哥的介紹文服用。

相關連結:

  1. AngularJS: Overview
  2. 前端工程的極致精品: AngularJS 開發框架介紹
  3. AngularJS中文電子書 (推薦)

2013年7月14日 星期日

Use the CURL Library in Code::Blocks on Windows Platform

In current days, our college students meet the problem while compiling the CURL library in Code:: Blocks on Windows(i.e. Windows 7) platform.

I noted the process that how to write the sample program with CURL library and compile it successfully. There are some steps which we should do: (This is a simple example run on Windows 7 64bits, Code:: Blocs 12.11 and CURL 7.31.0 )

2013年6月7日 星期五

[Security] The SHA3 Slide

In this semester, I’ve participated in one information security course. The professor asigned me to report the new hash algorithm (i.e. the new NIST’s standard): SHA3.

The following is one of my prepared slides.