Docker eclipse on Ubuntu Desktop

看到越來越多人在往雲端開發的方向在玩, 比較終極的做法當然就是把 Browser 變成 IDE , 不過就目前看來, 技術上還沒有一個比較領先的做法, 只好先找比較無痛的方向來玩玩…hehehe 今天嘗試了一個新的做法, 在 Ubuntu Desktop 上面裝 docker , 在 docker 裡面跑 eclipse 來開發, 這樣做的目的是要讓本機的開發環境不要裝太多雜七雜八的東西, 先看一下成功的畫面吧! 基本上就是先建一個 eclipse 的 container , 跑起來之後再用 ssh 連進去執行 eclipse , 需要 ssh 的原因是為了要把本機的 X11 forwarding 過去, 本來還有 google 到用 mount 的的辦法去達成 X11 forwarding , 不過試了一陣子都搞不定, 只好先暫時放棄了。

Maven settings notes

設定 Local Nexus 來快取 central 的套件 ~/.settings.xml <settings> <mirrors> <mirror> <id>nexus</id> <name>Local Nexus</name> <url>http://localhost:8080/nexus-2.7.1-01/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> </settings>

Eclipse Gradle Plugin

每次要裝都要 google 老半天 直接記下來好了… http://dist.springsource.com/release/TOOLS/gradle

GateIn Skin Trick

建立新的 Skin 直接 copy gatein-sample-skin 改 web.xml 這邊的名字一定要跟放到 tomcat 上的 project name 一樣,我花了好幾個小時 trace code 才知道有這個限制…>”< <display-name>My-skin</display-name> 改 gatein-resources.xml 這邊的名字是顯示在 GateIn 管理介面上的名字 <skin-name>MySkin</skin-name> 客製化 /skin/Stylesheet.css

OpenSSL Notes

無 CA 產生 SSL 憑證 openssl genrsa -out server.key 512 openssl req -new -x509 -days 3650 -key server.key -out server.crt 建立 CA 修改 /etc/ssl/openssl.cnf 建立目錄結構 md demoCA demoCA/newcerts demoCA/private touch demoCA/index.txt echo 01 > demoCA/serial 產生 CA 私鑰 openssl genrsa -out demoCA/private/cakey.pem 4096 自行簽發 CA 證書 openssl req -new -x509 -days 3650 -key demoCA/private/cakey.pem -out demoCA/cacert.pem 用 CA 簽發 Server 證書 在 Server 上 產生 Server 私鑰 openssl genrsa -out

NetBeans Config Notes

UTF-8 netbeans/etc/netbeans.conf netbeans_default_options -J-Dfile.encoding=UTF-8 慣用參數設定 Start Page Show On Startup = false Options Editor Formatting Expand Tabs to Spaces = false Tab Size = 4 Right Margin = 128 Continuation Indentation Size = 4 On Save Language = All Languages Reformat = All Lines Remove Trailing Whitespace From = All Lines Language = Java Remove Unused Imports = true Organize Imports = true Keymap Show Code Completion Popup = Alt+SLASH

Java LDAP Notes

/** * AD LDAP 登入認證 * * @param ldap_url like ldap://x.x.x.x:389/DC=mydomain,DC=com * @param account like mydomain\\username * @param password * @return String[] array 0 :0 success,1 fail,2 LDAP connect fail,3 unknow */ public String[] LDAP_AUTH_AD(String ldap_url, String account, String password) { String[] returnStr = new String[2]; Hashtable<String, String> env = new Hashtable<String, String>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, ldap_url); env.put(Context.SECURITY_PRINCIPAL, account); env.put(Context.SECURITY_CREDENTIALS, password); LdapContext ctx = null; try { ctx = new InitialLdapContext(env, null); /* // search * String searchUser = "USERNAME"; * SearchControls constraints = new SearchControls(); * constraints.setSearchScope(SearchControls.SUBTREE_SCOPE); * String[] attrIDs = {"distinguishedName", "sn", "givenname", "mail", "telephonenumber"}; * constraints.setReturningAttributes(attrIDs); * String searchFilter = String.format("(&(objectClass=user)(sAMAccountName=%1$s))", searchUser); * NamingEnumeration answer = ctx.search("", searchFilter, constraints); * if (answer.hasMore()) { * Attributes attrs = ((SearchResult) answer.next()).getAttributes(); * System.out.println(attrs); * } */ returnStr[0] = "0"; returnStr[1] = ""; } catch (javax.naming.AuthenticationException e) { // invalid user account returnStr[0] = "1"; returnStr[1] = e.toString(true); } catch (javax.naming.CommunicationException e) { // Can't connect to ldap server!