網頁

2014年12月29日 星期一

How to execute a MySQL command from a shell script?

反正常遇到,不如寫下做個紀錄,以後直接複製貼上。

整個重點在於-p和密碼中間有沒有空格。當有空格時,mysql是使用互動式,要你填入密碼;如果沒有空格,mysql就直接使用-p後面的字串來登入。
指令:
$ mysql -h Server_name -u your_account -pPassword database_name < file.sql

若-p和密碼中間有空格,會出現下列情況:

$ mysql -h Server_name -u your_account -p Password database_name < file.sql
Enter password: 
ERROR 1049 (42000): Unknown database 'Password'

閱讀全文...

2014年12月12日 星期五

如何正確匯出Subversion 控制的專案[並刪除 Subversion 專用的隱藏目錄]

Subversion是許多人推薦的版本控制軟體,應該是我不太會用,所以我快被Subversion搞到抓狂,雖然很靈活,非強制鎖定,看來似乎不錯,但是多人協同作業,只要有人忘了步驟,程式就會莫名變來變去,原版已經寫完的東西,有時就會被蓋掉不見了 @@

最後我決定把版本控制和我在開發的環境錯開,免得一直重複重樣的問題。至於要怎麼把已經掛到Subversion匯出,其實還蠻簡單的,匯出時要先用滑鼠右鍵「拖曳」該目錄到本目錄或其他目錄,然後放開後才會出現 SVN Export to here 與 SVN Export all to here 功能,這兩個差別在於:
SVN Export to here: 將該目錄最新版本匯出
SVN Export all to here: 將該目錄中所有檔案匯出

另外還查到另一種作法,就是把Subversion的工作副本(Working Copy)目錄裡都會有隱藏的目錄 .svn 或 _svn,裡面儲存了關於此目錄中所有檔案的版本資訊與變更狀態等這些資訊全部刪除,網路流傳一段用註冊檔的方式來處理刪除的動作
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /k \"TITLE Removing SVN Folders in %1 && FOR /r \"%1\" %%f IN (.svn _svn) DO RD /s /q \"%%f\" \""

只要將上面語法儲存成.reg檔,點擊註冊完成後,以後就可以在想要刪除Subversion版本控制的目錄按右鍵,選擇Delete SVN Folders,就可以快速地將Subversion版本控制資訊全刪掉,只是越方便,風險就越高,不小心按到就爽了。


閱讀全文...

How to startup eclipse use specifing JVM

討厭的Oracle java更新,每次更新後,都會在環境變數加上它的java目錄,這舉動就會造成我機器上的eclipse無法啟動會出現下面錯誤。


為了一勞永逸,只好在把之前用過的 方式 再拿出來使用,在eclipse 直接設定 vm。
-vm
c:\jre\bin\javaw.exe

閱讀全文...

2014年12月11日 星期四

How to Fix Missing TortoiseSVN File Status Icons in Windows

同樣的軟體為什麼別人用都好好的,在我的機器上就是有一些小問題。
TortoiseSVN是蠻多人用來控制版本的軟體,當版本一致時,在檔案總管應該會有個綠色的打勾來顯示,簡單明瞭,BUT......
這綠色的打勾圖示就這樣上演失蹤記,千呼萬喚都不出現。
經過一番的搜尋後,原來問題點在於 windows 對於這種 Overlay Icons 的數目是有限制的,以前 32 bit 的最大數目為 15,現在 64 bit 最大數目為 11,但是像 SkyDriver, Dropbox..這類的程式都會新增屬於它們的 Overlay Icons,所以裝的軟體越多,ICON也就越多。
解決的方式就是打開 regedit.exe ,找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers

然後把不想要的刪除,確保 TortoiseSVN 的項目能排到前11個裡面,修改完後記得重開機,開機完後,應該就可以在檔案總管內看到那個綠色的打勾圖示了。
閱讀全文...

2014年10月16日 星期四

[CentOS] CentOS 7 啟動服務方式的改變

新裝完 CentOS 7 後,遇到了兩個新改變,一是以前啟動服務的方式已經無法使用,另一個是防火牆iptables不見了,似乎用了另外的方式來管理防火牆。
底下先說明啟動服務的方式異動。

舊的方法一:
/etc/init.d/servicename restart

舊的方法二:
serice servicename restart

新的方式要透過 systemctl
常用指令:
systemctl start|stop|restart|is-active|status|enable|disable servicename.service
start:啟動服務
stop:停止服務
restart:重啟服務
is-active:查看服務是否有效的
status:查看服務狀態
enable:將服務設定成系統啟動時自動啟動服務
disable:將服務設定成系統啟動時不啟動服務

另外以前的reboot, halt, poweroff似乎也變成
systemctl halt
systemctl reboot
systemctl poweroff

閱讀全文...

2014年9月29日 星期一

Fix ShellShock : bash vulnerabilities CVE-2014-6271 and CVE-2014-7169

前兩天收到一個 bash 漏洞警示,提醒要趕快更新 bash ,來解決透過環境變數的代碼注入攻擊。新的 bash 版本,確保命令結束後面,無法再執行一個 bash 函數。

測試方式:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

如果畫面上顯示
vulnerable
this is a test

這表示,您的作業系統需要更新 bash 。
更新方式:
1. CentOS, RedHat, Fedora
yum -y update bash

2. Debian, Ubuntu
sudo apt-get update && sudo apt-get install --only-upgrade bash

更新完後,請重新測試,如畫面顯示如下
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

即表示漏洞以修補完成。

參考來源: shellshocker.net
閱讀全文...

2014年9月3日 星期三

用 Window resizer 模擬不同解析度的視窗尺寸來調整網頁

最近常常遇到,網頁排版在筆記型電腦上顯示是完整的,但是用投影機投射影像後,畫面就跑掉了,只好把筆記型電腦的解析度調低來排版,只是每次解析度調來調去也挺煩的,只好尋找有沒有解決的方式,意外發現Window Resizer這個Google Chrome的擴充套件,可以用來模擬各種不同解析度的視窗尺寸,就裝來試試看。

安裝:
1. Tools -> Extensions 進入擴充套件葉面


2. 直接搜尋 Window Resizer ,找到後,按 +Free ,直接安裝


3. 確認頁面,按 Add 繼續


4. 顯示安裝完成


5. 安裝完成後,瀏覽器的右上角會多個按鈕,後續就可以透過此按鈕來選擇不同解析度來模擬個視窗尺寸



試用後,感覺蠻方便的,唯一的缺點,解析度改變後,有可能會按不到頁面最下方的按鈕,此時只要切換回原尺寸即可,畢竟調整排版而已,功能各解析度都可以試。

閱讀全文...

2014年9月2日 星期二

How to automatically log console output with putty?

You can set up like this:
1. start putty.exe
2. Go to Session -> Logging
3. Select "Printable output"
4. Choose the folder, where you want the log file to be placed
5. Append a file name like &H_&Y&M&D_&T.log (&H: host, &Y: year, &M: month, &D: day, &T: time)
6. Save the profile as default setting (Session -> Default Setting -> Save)


閱讀全文...

How to automatically login Putty with password?

使用版本: Putty.exe version 0.63
測試成功的指令為:
putty.exe -ssh host -l user -pw password
NOTE:如果沒使用ssh,直接把-ssh拿掉就行了。

寫成windows bat file:
start putty.exe -ssh host -l user -pw password
NOTE: 沒加入 start ,會開啟一個 DOS 視窗,一個 PUTTY 視窗。
閱讀全文...

2014年8月29日 星期五

[blogger]利用 Google Code Prettify 顯示程式碼

另一個在網頁顯示程式碼的方式,透過 Google Code Prettify ,程式碼顯示變成簡單又美觀。

主要參考官網的 Getting Started 這篇文章,只要載入必要的 CSS 和 javascript ,就會自動尋找 <pre>, <code>, <xmp> ,處理美化程式碼。

Blogger 透過[版面配置]/[新增小工具]/[Html/JavaScript],加入底下程式碼。
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js></script>

還可以指定參數加入 skin 或 lang (skin=sunburst&lang=js),支援的外觀可以在 Gallery of themes for code prettify 找到。

NOTE:在 script 標籤中指定語言會套用到所有的網頁,因此 Google Code Prettify 也支援利用 class 屬性 lang-* 的方式,來指明程式語言。
<pre class="prettyprint lang-java">
public class HelloWorld {

    public static void main (String[] args) {
        System.out.println("Hello, world!");
    }
}
<pre>

或採用 html5 ,在 code 標籤以 language-* 的 class 屬性,指明程式語言。
<pre class="prettyprint"><code class="language-java">
public class HelloWorld {

    public static void main (String[] args) {
        System.out.println("Hello, world!");
    }
}
</code><pre>

如要顯示行號,要在 class 加上 linenums:no ,no表示要從第幾行開始,可不指定。
<pre class="prettyprint linenums:168">

和 CSS BLOCK 搭配
public class HelloWorld {

    public static void main (String[] args) {
        System.out.println("Hello, world!");
    }
}

閱讀全文...

[Blogger]在網頁用 CSS BLOCK 來顯示程式碼

以前在 blogger 利用其修改範本的功能,針對顯示程式碼的部分,做了一些改進,後來都是顯示的蠻好的,不知道何時開始,改變的設定似乎無效了,造成顯示都會跑掉,只好搜尋有無新的改進方式,來改善這問題。

底下是新找到的方式,紀錄一下,免得忘記了。
1. 利用「新增小工具」的功能,選擇 HTML/JavaScript ,然後插入底下程式碼,就可以避免直接修改 HTML 範本
<style>
.post .mycode {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 10pt;
overflow:auto;
background: #f0f0f0 url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAASwCAYAAAAt7rCDAAAABHNCSVQICAgIfAhkiAAAAQJJREFUeJzt0kEKhDAMBdA4zFmbM+W0upqFOhXrDILwsimFR5pfMrXW5jhZr7PwRlxVX8//jNHrGhExjXzdu9c5IiIz+7iqVmB7Hwp4OMa2nhhwN/PRGEMBh3Zjt6KfpzPztxW9MSAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzB8HS+J9kUTvzEDMwAAAABJRU5ErkJggg==) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
max-height:800px;
line-height: 1.2em;
}
</style>

其中的 mycode 就是class name,用來搭配pre或div使用。
如下面這段程式
<pre class='mycode'>
public class HelloWorld {

    public static void main (String[] args) {
        System.out.println("Hello, world!");
    }
}
</pre>

顯示的效果為:
public class HelloWorld {

    public static void main (String[] args) {
        System.out.println("Hello, world!");
    }
}

NOTE:程式碼中有 < 或 > 會影響到網頁顯示,可透過 HTMLEncode 這網站來進行轉換。
閱讀全文...

2014年8月19日 星期二

[Html]How to display alt text for an image in chrome

今天在寫文件和html簡單頁面時,發現在chrome的圖片有用alt來顯示訊息,卻顯示不出來,拜讀估狗大神,發現似乎是 webkit bug ,底下是我試出的解決方式,須新增3個attribute: height, width, title,這樣就可以正確顯示訊息。

原本:
<img src="xxx.png" alt="test" />

修改後:
<img height="90" width="90" src="xxx.png" alt="test" title="test" />
閱讀全文...

2014年7月6日 星期日

五色線金剛結手環


好久沒編了,還好沒忘記。


閱讀全文...

[紙模]歐亞水獺

I'm from Kinmen. 歐亞水獺保護棲地大作戰。

看到這紙模就馬上下載來做做看。有幾個小缺點,頭部那樣的黏貼邊不是很好黏,身體的底部設計過小,容易皺皺彎曲,且會變成頭重腳輕,很容易倒,所以我把尾吧稍微捲一下好站穩。
整體設計的蠻可愛的。

閱讀全文...

2014年4月29日 星期二

使用 NotePad++ 免安裝版本,並整合滑鼠右鍵選單

相信很多人都有這困擾, Windows 自帶的記事本開些大檔案很慢很容易卡住,用 Ultraedit 又是一筆費用,於是就上網找免費又好用的替代軟體,本來在 PSPAD 和 Notepad++ 兩者中抉擇,最後選用了 Notepad++ 。

Notepad++ 此時最新的版本為 6.6.5 ,可至官網 免費下載使用,我選擇的是 Notepad++ 7z package : Don't want to use installer? 7z format. 免安裝版本,解開即可使用,只是有個小缺點,用安裝的版本,預設有整合滑鼠右鍵選單(即點檔案按右鍵可點選"使用 Notepad++ 開啟"來打開檔案),免安裝的版本就要自己增加這功能。

官網討論區有提供相關說明及指令,底下是簡略的步驟:
1. 首先要下載 NppShell.dll(64位元用 NppShell64.dll),可由此處下載。下載後,將檔案解開放置 Notepad++ 的目錄內(壓縮檔裡面有兩個檔案請放置到 Notepad++.exe 同一目錄內)。
2. 執行指令 regsvr32 /s /i NppShell.dll (OS如果是64位元請使用 NppShell64.dll)後,會顯示如下面畫面


請確認勾選[Add context menu item],也可以在[Menu text]輸入自己喜歡的說明,最後按[OK]即可完成設定。

閱讀全文...

2014年4月3日 星期四

Characterset problem when inserting into mysql database from java

哈,又是編碼問題。本來用 WebSphere 和 DB2 的環境,資料新增至資料庫中文都沒問題,怎麼一換到 tomcat 和 MySQL 這組合就中文新增到資料庫時就變成了問號。

最後試驗的結果,需在 connection string 加上 useUnicode=true&characterEncoding=utf8 這段設定,這樣中文新增到資料庫就會正常了,不會再是?字元。

JDBC use like
String conString = "jdbc:mysql://host/database?useUnicode=true&characterEncoding=utf8";

DataSource resource url like
url="jdbc:mysql://host/database?useUnicode=true&amp;characterEncoding=utf8"

閱讀全文...

[DB2]How to drop index in db2

use command:
drop index index_name
閱讀全文...

2014年4月2日 星期三

[DB2] How to adding columns to an existing table

To add columns to an existing table using the command line, enter:
ALTER TABLE table_name ADD column_name data_type null_attribute

EX:
ALTER TABLE MyTable
ADD COLUMN1 VARCHAR(5) NOT NULL WITH DEFAULT
ADD COLUMN2 CHAR(3)
閱讀全文...

[DB2] How to change the primary key for already existing table?

1. drop the existing primary key, use
ALTER TABLE Table_Name DROP PRIMARY KEY;

2. add new primary key, use
ALTER TABLE Table_Name ADD PRIMARY KEY (Column1, Column2, ...);
閱讀全文...

2014年4月1日 星期二

3G行動上網再次淪陷

之前行動上網到期,直接就去中華電信解除合約,想說在家有WIFI,在公司有WIFI,這東西就不必了;BUT.......沒想到最近這專案到客戶那駐點了好一陣子,完全沒網路,測試又得從中華電信那邊發過來,每次都打電話麻煩其他同事幫發交易一下,要不然就是一早去公司發交易,然後再殺去客戶那看結果,有夠Orz.........SO,今天又辦了3G上網,免得測試綁手綁腳的,應該流量不會超過才對。

設定好之後,將行動數據打開卻一直無法連上網,最後是重開機才可以......
閱讀全文...

2014年3月4日 星期二

How to allow only numeric (0-9) in HTML5 inputbox

以前在網頁上要限制只能輸入數字都要 javascript 來輔助,查了一下網上的資料 html5 有提供 <input type="number"> 這簡便的方式來處理,BUT.....實驗之後,發現我又回去找以前的 javascript 來用了。
Input Type: number
The number type is used for input fields that should contain a numeric value.
Use the following attributes to specify restrictions:
max - specifies the maximum value allowed
min - specifies the minimum value allowed
step - specifies the legal number intervals
value - Specifies the default value

我用下面的 sample 試了一下
<!DOCTYPE html> <html> <body> <form action="demo_form.aspx"> Quantity (between 1 and 5): <input type="number" name="quantity" min="1" max="5"> <input type="submit"> </form> <p><b>Note:</b> type="number" is not supported in Internet Explorer 9 and earlier versions.</p> </body> </html>

當我輸入超過5或是其他英文字,一切如船過水無痕,什麼檢測都沒發生..........
閱讀全文...

2014年2月23日 星期日

Exception starting filter struts2 Unable to load configuration. - bean

原本在 WebSphere 跑得好好的程式,怎麼換到 Tomcat 又出問題了?
2014/2/23 下午 09:30:16 org.apache.catalina.core.StandardContext filterStart 嚴重的: Exception starting filter struts2 Unable to load configuration. - bean - jar:file:/D:/WebServer/tomcat-7.0.33/webapps/1qrcardadm/WEB-INF/lib/struts2-core-2.3.15.1.jar!/struts-default.xml:53:178 at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:502) at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) ... 19 more Caused by: Unable to load configuration. - bean - jar:file:/D:/WebServer/tomcat-7.0.33/webapps/1qrcardadm/WEB-INF/lib/struts2-core-2.3.15.1.jar!/struts-default.xml:53:178 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490) ... 20 more Caused by: Unable to load bean: type:org.apache.struts2.dispatcher.multipart.MultiPartRequest class:org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest - bean - jar:file:/D:/WebServer/tomcat-7.0.33/webapps/1qrcardadm/WEB-INF/lib/struts2-core-2.3.15.1.jar!/struts-default.xml:53:178 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:245) at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:102) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:226) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) ... 22 more Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadBase$SizeLimitExceededException at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getDeclaredConstructors(Class.java:1836) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:235) ... 25 more Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) ... 29 more


最後從 Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload 看出個大概,將 commons-fileupload-1.3.jar 丟到 lib 去,問題解決。
閱讀全文...

Connect to MySQL with JDBC driver

目錄
1. Connection to database with Java
2. MySQL JDBC Driver
3. Java JDBC connection example

1. Connect to database with java
在 java 要連接到資料最簡單就是使用各資料庫提供的驅動程式,透過 JDBC 提供的接口來使用和操作資料庫。

2. MySQL JDBC Driver
從 Java 要連接到 MySQL ,你必須使用 MySQL JDBC 驅動程式。最新版的驅動程式可以從 MySQL 官網 下載,要下載此驅動程式需要有 Oracle Web 的帳號(沒有,可以註冊一個新的)。
NOTE: 安裝過程完全沒顯示會裝在哪,直接會裝在系統槽,如C:,目錄則為 C:\Program Files\MySQL\MySQL Connector J ,目錄中一拖車的東西,其實所需要的只有 mysql-connector-java-版號-bin.jar 這個檔案。

3. Java JDBC connection example
NOTE:請記得將驅動程式的 jar 加到 classpath 中。
import java.sql.DriverManager; import java.sql.Connection; import java.sql.SQLException; public class MySQLJDBC { public static void main(String[] argv) { System.out.println("========== MySQL JDBC Connection Testing =========="); try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("MySQL JDBC Driver Registered!"); Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/YourDB","UserAcct", "UserPwd"); System.out.println("Database connected!"); } catch (ClassNotFoundException e) { System.out.println("Where is your MySQL JDBC Driver?"); e.printStackTrace(); } catch (SQLException se) { System.out.println("Connection Failed! " + se.getMessage()); se.printStackTrace(); } } }

閱讀全文...

[紙模]烈火武者鋼彈

歷經的十個月,有空時就抓緊時間一個零件一個零件的完成,我最想做的紙模終於整個完成了,現在擺在家裡的櫃子裡。
這兩天老爸從金門來台灣,看了看,說這支很不錯,做大隻一點更好。













閱讀全文...

[紙模]烈火武者鋼彈-武器

原本的武器有兩把,做得太順手,沒拍過程,成品也只拍了一支,最後一把長刀,要先把完成品的圖傳給設計者就會拿到。



閱讀全文...

[紙模]烈火武者鋼彈-手部

手部的小零件更多了,每根手指頭,一個一個黏。


製作過程:











組合:

閱讀全文...