2011年10月15日 星期六

在 Ubuntu 中使用 Java 連接 MySQL

首先必須要有 java 對 mysql 的連接器,並設定環境變數,安裝方法:

sudo apt-get install libmysql-java

#取得 mysql java 連接器



CLASSPATH=$CLASSPATH:/user/share/java/mysql.jar

#設定自訂變數 CLASSPATH



export CLASSPATH

#將自定變數  CLASSPATH 設為環境變數



mysql connector 都安裝好了之後,就可以寫點小程式來測試一下啦!

JDBCMySQL.java


import java.sql.*;

public class JDBCMySQL {
    public static void main(String[] args) {
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/phpbb";
        String user = "root";
        String password = "5.ru8ck6";
        try {
            Class.forName(driver);
            Connection conn =
               DriverManager.getConnection(url,
                                  user, password);

            if(conn != null && !conn.isClosed()) {
                System.out.println("資料庫連線測試成功!");
                conn.close();
            }

        }
        catch(ClassNotFoundException e) {
            System.out.println("找不到驅動程式類別");
            e.printStackTrace();
        }
        catch(SQLException e) {
            e.printStackTrace();
        }
    }
}


參考資料:
https://help.ubuntu.com/community/JDBCAndMySQL
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/ConnectDB.htm


Ubuntu 11.10 (Oneiric Ocelot)發佈囉!

跟11.04的桌面有著全新的不同體驗!讚~下載位置:http://www.ubuntu.com/download

#以下轉自 ptt.cc Linux 板:
作者 hayatoman (小小的改變是,成功的開始) 看板 Linux

標題 [分享] Ubuntu 11.10正式發佈

時間 Fri Oct 14 09:59:39 2011

───────────────────────────────────────

Ubuntu 11.10(Oneiric Ocelot)如約正式發佈了,這是Ubuntu的第15個重大版本發佈,

桌面版和服務器版都有18個月的生命週期。Ubuntu 11.10包括以下版本:桌面版、服務器

版、Ubuntu Cloud、Kubuntu、Xubuntu、Lubuntu、Edubuntu、Mythbuntu、Ubuntu

Studio。

Ubuntu 11.10元件:

— Unity 3D界面4.22;

— Unity 2D界面4.12;

— 桌面環境GNOME 3.2.0;

— Linux kernel 3.0.4;

— X.Org 7.6;

— Xorg Server 1.10.4;

— Upstart 1.3;

— GCC 4.6 toolchain;

— Python 2.7.2;

— Compiz Fusion 0.9.6。



Ubuntu 11.10新特性:


— 完善了桌面體驗;

— 3D界面和2D界面兩種登錄方法,均屬Unity界面;

— 全新的LightDM登錄畫面;

— 新的Alt+Tab快捷鍵切換;

— 14張新壁紙;

— 默認的Ambiance主題進行了完善;

— 全新的Ubuntu Software Center軟件中心;

— 默認瀏覽器:Mozilla Firefox 7.0;

— 默認郵件客戶端:Mozilla Thunderbird 7.0;

— 混合CD/USB ISO鏡像:支持將ISO鏡像直接寫入USB;

— 完善了對32位和64位系統的兼容性;

— 服務器版本支持ARM架構;

— 引入了Juju雲端服務;

— 新的音樂播放器連接至Banshee;

— 支持更多腳本語言,包括日語、中文和韓語;

— DVD鏡像更小,包括所有你需要的應用程序。

Ubuntu 11.10官方下載頁面:


http://www.ubuntu.com/

http://cdimage.ubuntu.com/releases/11.10/release/





2011年10月14日 星期五

Rework - 工作大解放



前陣子就有聽聞這本書獨到的見解,剛好在退伍前一天,趁著放假的空閒,去書局帶了這本書回來。看完這本書我只能說,真的是大解我多年來的心頭之惑。一直以來都想著該如何創業、如何起手,讀完這本書會一掃我心中思考已久的疑惑。

作者是著名的 37signals 創辦人,述說著他們如何從網頁設計公司轉型成為軟體公司,秉持著與 MBA 大相逕庭的理念,不主張擴張,遵循著解決自己問題的原則來開發產品,與現存大部分的軟體公司,老想著如何解決別人問題、迎合別人來規劃開發新產品的作法,是完全不同。他們不做計畫、不當工作狂、不逞英雄、不訂長遠的目標,因為訂定太大、大遠的目標只是一種猜測,猜測事情的發展會發生無法預料的後果,並教導如何靠著經營客戶來經營自己的品牌,而不是透過廣告行銷,一些大費周章卻得不到成效的白工。書中還講了好多好多很棒的內容,讀完會讓我有種恍然大悟的感覺,很久以前就一直在尋找這類的書籍,沒想到真的出版了!

這本書中許多的專案管理理念和原則,跟我最近在讀的人月神話有許多相似的地方,最近真的是瘋狂愛上了這類的書籍...無法自拔!!


2011年10月13日 星期四

Linux 上 chmod 只修改檔案或是資料夾的權限

資料夾:
find . -type d -exec chmod 775 {} \;



檔案:
find . -type f -exec chmod 664 {} \;




在 phpBB 上安裝 Share On 模組

Share On 是 phpBB 官方認可的模組,安裝完之後可以在文章上看到大多數社群網站的分享按鈕,安裝的方法非常的簡單,照個官方的指示一步一步做就可以了。

模組名稱:Share On 1.2
官方介紹頁面:http://www.phpbb.com/customise/db/mod/share_on/


安裝完之後,會發現其實有個小 bug 需要修正。未登入的使用者,會看不到 share on 模組的語言字串 SO_SELECT,如這篇所示:


http://www.phpbb.com/customise/db/mod/share_on/support/solved_%7B_so_select_%7D-t_94654



網址內所提的方法是在 viewtopic.php 內加上:
$user->add_lang('mods/info_acp_shareon');


但我認為這並不是正確的修正方式,而是應該在 /phpbb/language/{lang}/common.php 再多加上:
'SHARE_ON_SELECT' => 'Share on',


並修改 /phpbb/styles/prosilver/template/viewtopiv_body.html 將:
SO_SELECT 改成 SHARE_ON_SELECT


另外,竹貓星球有提供中文化檔:http://phpbb-tw.net/phpbb/viewtopic.php?t=54283

使用 Java 進行 AES 加密

前天投了一家處理資安的公司,沒想到很快就回覆我了,而且還夾帶了一個小小的程式撰寫測驗!

----

程式寫作測驗:
請寫一個檔案加密的程式,輸入檔名,讀取內容,加密後輸出成另一加密檔。
請交原始碼、編譯環境相關檔案,可參考或使用現成的加密函式RSA, AES, DES…或者基本的XOR。
評分標準:
基本項目
1. coding style (Source Code)
2. 完成度(exe檔 或 JAR檔)


加分項目
1. 可以的話用不同語言(C++, Java)撰寫
2. 不同作業系統程式 (project or make file)
3. 視窗介面(console, Windows 或 手機)

----

加密的東西其實還蠻常用到的,像是 PHP 的使用者密碼都是會經過加密在儲存到資料庫,只是用 Java 到還是頭一遭!稍微做了點功課,發現大家比較推薦的加密演算法是 AES,而且在 Java 的官網就可以找到教學文章 ,所以就寫了一個簡單的 AES 加密、解密器。

核心程式碼如下:

AESEncrypter.java

package joujiahe.encrypt.AES;

import java.security.NoSuchAlgorithmException;

import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;

// AES Encrypt core
public class AESEncrypter {

 private SecretKeySpec skeySpec;
 private Cipher cipher;
 
 public AESEncrypter() throws NoSuchAlgorithmException, NoSuchPaddingException{
    // Get the KeyGenerator
    KeyGenerator kgen = KeyGenerator.getInstance("AES");
    kgen.init(128); // 192 and 256 bits may not be available
 
 
    // Generate the secret key specs.
    SecretKey skey = kgen.generateKey();
    byte[] raw = skey.getEncoded();
    this.skeySpec = new SecretKeySpec(raw, "AES");
 
 
    // Instantiate the cipher
    this.cipher = Cipher.getInstance("AES");
 }
 
 // output encrypted bytes
 public  byte[] encrypt( byte[] original ) throws Exception{
   
    this.getCipher().init(Cipher.ENCRYPT_MODE, skeySpec);
    byte[] encrypted = cipher.doFinal(original);
    
    return encrypted;
 }

 // output decrypted bytes
 public  byte[] decrypt( byte[] original ) throws Exception{
    
    this.getCipher().init(Cipher.DECRYPT_MODE, skeySpec);
    byte[] decrypted = cipher.doFinal(original);
    
    return decrypted;
 }

 // getter and setter
 public SecretKeySpec getSkeySpec() {
  return skeySpec;
 }

 public void setSkeySpec(SecretKeySpec skeySpec) {
  this.skeySpec = skeySpec;
 }

 public Cipher getCipher() {
  return cipher;
 }

 public void setCipher(Cipher cipher) {
  this.cipher = cipher;
 }
 
}


參考資料:Using AES with Java Technology

2011年10月7日 星期五

Ubuntu 11.04 安裝 phpMyAdmin

phpMyAdmin 是一套用 php 開發,來管理 MySQL 的軟體。安裝的方法非常簡單:

sudo apt-get install phpmyadmin


之後在修改 /etc/apache2/httpd.conf 加上:

Include /etc/phpmyadmin/apache2.conf


Ubuntu 11.04 安裝 ImageMagick

剛剛要試著在 Ubuntu 上安裝 ImageMagick 的時候,發現 tw.achive.ubuntu.com 掛掉了!查了一下,好像已經掛了一陣子了。解決的方法也很簡單,只要:

1. Synaptic > 設定 > 套件庫,將"位於臺灣的伺服器"改成"主要伺服器",

或是到 /etc/apt 下,

2. 修改 source.list 裡面的 tw.achive.ubuntu.com 成 achive.ubuntu.com 。


最後,再執行一次指令就安裝完成了!

sudo apt-get install imagemagick


2011年10月6日 星期四

Ubuntu 11.04 安裝 Epson EPL 6200L

原本以為在 Ubuntu 上安裝印表機會像 Windows 7 一樣簡單、順利,沒想到安裝了之後列印,印表機一動也不動。

感謝廣大的 Ubuntu 社群,讓我 Google 一下就找到解決方法了。只要按照下面的指令作就行了,基本上就是自己抓驅動程式來安裝:


cd /usr/src
sudo tar zxvf  /download/epsoneplijs-0.4.1.tgz
cd epsoneplijs-0.4.1/
sudo ./configure
sudo make
sudo make install
sudo mkdir -p /usr/share/cups/model/foomatic-ppds/Epson/
sudo cp -av ../foomatic_PPDs/Epson-EPL-*-cups.ppd.gz   /usr/share/cups/model/foomatic-ppds/Epson/
sudo cp foomatic/driver/epl6200l.xml    /usr/share/foomatic/db/source/driver/
sudo cp foomatic/opt/epsonepl-*   /usr/share/foomatic/db/source/opt/
sudo cp foomatic/printer/Epson-EPL-6200L.xml  /usr/share/foomatic/db/source/printer/
sudo cp ijs_server_epsonepl /usr/bin/
sudo /etc/init.d/cups restart


資料來源:http://ubuntuforums.org/showthread.php?t=1558950