2018年12月28日星期五
android 藍芽入門
1. 三篇文章
https://blog.csdn.net/huangliniqng/article/details/82185983
https://blog.csdn.net/huangliniqng/article/details/82187966
https://blog.csdn.net/huangliniqng/article/details/82189735
2. Discovery bluetooth device example
https://blog.csdn.net/zhangphil/article/details/77896924
3. 配對 :
private void pairDevice(BluetoothDevice device) {
try {
Method method = device.getClass().getMethod("createBond", (Class[]) null);
method.invoke(device, (Object[]) null);
} catch (Exception e) {
e.printStackTrace();
}
}
參考 : http://www.londatiga.net/it/programming/android/how-to-programmatically-pair-or-unpair-android-bluetooth-device/
2018年12月26日星期三
android get wifi ssid
WifiManager wifi; String mssid; @Overrideprotected void onCreate(Bundle savedInstanceState) {
..................
//get your WiFi's SSID //下面三行是取得你當前連線到的wifi的SSID
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifi.getConnectionInfo(); mssid = wifiInfo.getSSID(); Log.i(TAG, "mssid : "+mssid)
2018年12月6日星期四
2018年11月20日星期二
Spring Security
spring security 4 &5 可以用的sample:
https://www.boraji.com/spring-security-5-custom-userdetailsservice-example
other;
https://ithelp.ithome.com.tw/users/20072603/ironman/951
2018年11月1日星期四
jUnit & Spring
1. Override default Spring-Boot application.properties settings in Junit Test
@TestPropertySource(locations="classpath:test.properties")
test.properties放在:/src/test/resources/
2. 其他相關:
Testing in Spring Boot
2018年10月24日星期三
Spring Boot访问MySQL8那些小坑
MySQL升到8.x.x, spring boot遇到的問題:
=================================
第一个坑是mysql的jdbc驱动的版本,mysql的版本必须与mysql驱动的版本一致,在下选用的是mysql-8.0.11-winx64-GA,因此与之匹配的
驱动的maven依赖为:
第二个坑是SpringBoot JPA配置中的Hibernate的dialect的配置,很多教程上都没有这一项的配置,但这是不可缺少的,配置为:
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
第三个坑是采用的如此版本的数据库和驱动,会产生一个时区错误,导致应用无法启动,解决办法是修改spring.datasource.url连接串为:
spring.datasource.url=jdbc:mysql://localhost:3306/springboot2018?useUnicode=true&characterEncoding=UTF-8&characterSetResults=utf8&serverTimezone=GMT
第四个小坑是,MySql8的jdbc的driver-class是com.mysql.cj.jdbc.Driver,而不是com.mysql.jdbc.Driver。
---------------------
作者:davylee2008
来源:CSDN
原文:https://blog.csdn.net/DavyLee2008/article/details/81007954
版权声明:本文为博主原创文章,转载请附上博文链接!
2018年10月23日星期二
Generating entities from tables
已經有database的table, 如何快速產生entities的java file?
- 可以使用eclipse內建的功能,步驟參考以下網址:
http://www.eclipse.org/webtools/dali/docs/3.2/user_guide/tasks006.htm
- JBoss Tools into Eclipse
https://o7planning.org/en/10125/using-hibernate-tools-generate-entity-classes-from-tables
2018年10月8日星期一
2018年9月8日星期六
Maven 打包报“java.lang.StackOverflowError”错解决办法
Maven 打包报“java.lang.StackOverflowError”错解决办法
在IDEA集成开发工具中执行:
setting->maven->runner->VM Options中添加“-Xss4096k”
setting->maven->runner->VM Options中添加“-Xss4096k”
2018年8月28日星期二
HBaseConfiguration的一些使用方式
Configuration config = HBaseConfiguration.create();
config的設定有找到以下幾種(應該不只):
- zookeeper
- 使用xml
參考
- cluster
Configuration conf = HBaseConfiguration.create();
Cluster cluster = new Cluster();
| ||
2018年8月22日星期三
2018年8月13日星期一
Relay 與認證機制
當你需要 MTA 幫你將信寄送到下一部 MTA 去時,這個動作就稱為郵件轉遞 (Relay)
通常設定 Relay 的方法有這幾種:
- 規定某一個特定用戶端的 IP 或網段,例如規定內部 LAN 的 192.168.1.0/24 可使用 Relay;
- 若用戶端的 IP 不固定時 (例如撥接取得的非固定 IP) 可以利用認證機制來處理。
- 將 MUA 架設在 MTA 上面,例如 OpenWebMail 之類的 web 介面的 MUA 功能。
認證機制上面常見的有 SMTP 郵件認證機制,以及 SMTP after POP 兩種,不論是哪一種機制, 基本上都是透過讓使用者輸入認證用的帳號與密碼,來確定他有合法使用該 MTA 的權限,然後針對通過認證者開啟 Relay 的支援就是了。
方式:
自動偵測及封鎖使用者認證異常的來源IP,提供使用者認證方式包含使用 SMTP(SASL) / POP3 / IMAP / SMTPS / POP3S / IMAPS 協定登入認證。
E-mail 發信流程
- MUA (Mail User Agent) -> MTA (Mail Transfer Agent) -> MDA (Mail Delivery Agent)
- 參考下圖:
- Protocol : SMTP (Simple Mail Transfer Protocol, 簡單郵件傳輸協定)
- Port : 25
2018年8月8日星期三
子網域能有不同的mail server
不錯的文章
=================
- 重點摘要如下:
Q :
假設我註冊了一個abc.com的網域, 我也新增了taipei.abc.com, beijing.abc.om, paris.abc.com 三個子網域, 我想把這三個子網域分別給三家公司, 由他們自己去維護, 有自己的mail server, 如何設定?
Ans:
DNS Server上設定好三組的sub-domains對應到不同的IP
DNS正向對應
taipei.abc.com, 192,168.0.1, 主機(A)
beijing.abc.com, 192,168.0.2, 主機(A)
paris.abc.com, 192,168.0.3, 主機(A)
DNS正向對應
taipei.abc.com, 192,168.0.1, 主機(A)
beijing.abc.com, 192,168.0.2, 主機(A)
paris.abc.com, 192,168.0.3, 主機(A)
taipei.abc.com, 192,168.0.1, MX
beijing.abc.com, 192,168.0.2, MX
paris.abc.com, 192,168.0.3, MX
beijing.abc.com, 192,168.0.2, MX
paris.abc.com, 192,168.0.3, MX
準備三台Mail Server,將IP設定好
Server1 的mail server設定值 taipei.abc.com-->IP192,168.0.1
Server2 的mail server設定值 beijing.abc.com-->IP192,168.0.2
Server3 的mail server設定值 paris.abc.com-->IP192,168.0.3
Server1 的mail server設定值 taipei.abc.com-->IP192,168.0.1
Server2 的mail server設定值 beijing.abc.com-->IP192,168.0.2
Server3 的mail server設定值 paris.abc.com-->IP192,168.0.3
=================
- 以上資料來源:
=================
- 其他用途:
1. 上面的例子是三個子公司,其實也可以用在不同的部門或者不同的功能
例如:
一個mail sever負責一般的mail
另外一個mail server專門負責發送電子報(因為數量龐大所以與其他mail區隔)
2. 另外,不同mail server對應的IP,除了是自家的IP,也可以改用其他第三方的IP(例如:Mail託管)
=================
- 其他參考資料:
DNS http://linux.vbird.org/linux_server/0350dns/0350dns-centos4.php
Mail Server http://linux.vbird.org/linux_server/0380mail.php#whatmail_work
Mail Server http://linux.vbird.org/linux_server/0380mail.php#whatmail_work
2018年7月16日星期一
Anguler + Spring boot 整合(測試or Deploy)
- Anguler 以及 Spring boot 可以分開兩個 project 開發 , 整合測試或者Deploy可以分開放
- 如果要放在一起的時候,可以參考以下的作法 :
- Step 1 :
"outputPath": "dist/Angular6SpringBoot"
例如改為:
"outputPath": "D:\\SpringRestMySQL\\src\\main\\resources\\public",
- Step 2 :
/src/main/resources/static/
/src/main/resources/public/
/src/main/resources/resources/
/src/main/resources/META-INF/resources/
- Step 3 :
ng build
- 然後,可以在Spring boot的專案裡面找到ng build之後的檔案 :
- 參考範例 : 我是用以下的範例做測試與修改
2018年7月3日星期二
Initialization Demand Holder (IoDH)的 Singleton
饿汉式Singleton不能实现延迟加载,不管将来用不用始终占据内存;懒汉式Singleton线程安全控制烦琐,而且性能受影响。
有没有一种方法,能够将两种单例的缺点都克服,而将两者的优点合二为一呢?答案是:Yes!下面我们来学习这种更好的被称之为Initialization Demand Holder (IoDH)的技术。
https://quanke.gitbooks.io/design-pattern-java/%E7%A1%AE%E4%BF%9D%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%94%AF%E4%B8%80%E6%80%A7%E2%80%94%E2%80%94%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F%20%EF%BC%88%E5%9B%9B%EF%BC%89.html
2018年7月2日星期一
IE 11 不支援 console.log
同事遇到 --> IE 11 不支援 console.log
解決方案1 --> console.dir
window.console.log(PM); //Undefined
window.console.dir(PM); //Works
解決方案2 --> jquery的log
$.log
範例:
// log 會記錄時間跟事件 $.log(new Date(e.timeStamp) + " 點擊了按鈕" + e.target.id);
2018年6月27日星期三
2018年6月13日星期三
Base 64
RFC2045中有规定:
The encoded output stream must be represented in lines of no more than 76 characters each.
Base64一行不能超过76字符,超过则添加回车换行符。
结合前面博客说的“有回车符,导致JSON格式不符合要求”,那就明白了,对附件进行Base64编码,因为超过76字节,所以要添加回车换行符,后台解析带有回车换行符的JSON字符串就出现“ net.sf.json.JSONException : Unterminated string ”。
问题根源就是回车换行符,那删除就行了,谷歌后又发现一问题,原来“回车换行符(\r\n)”是在Windows才有,而Linux只有换行(\n),Mac只有回车(\r)。
再搜索了一下找到了解决办法,调用字符串对象的replaceAll方法替换掉\r和\n,代码如下:
字符串对象.replaceAll("\r|\n", "");
这样就兼容了不同平台。
參考以下:
https://blog.csdn.net/jifengwan/article/details/45460695
AES
筆記如下:
1. AES線上工具請參考 : https://www.devglan.com/online-tools/aes-encryption-decryption
2. 密钥长度问题
https://blog.csdn.net/jack85986370/article/details/51423188使用HttpServletRequest , 取得POST JSON
沒有辦法使用request.getParameter方式拿到JSON
目前改用以下方式:
StringBuffer jsonReq = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null)
jsonReq.append(line);
} catch (Exception e) { /*report an error*/ }
2018年2月24日星期六
人工智慧:機器學習和神經網路的應用與挑戰
- 优化器 Optimizer 加速神经网络训练 (深度学习) Speed up neural network training process (deep learning)
https://www.youtube.com/watch?v=UlUGGB7akfEStochastic Gradient Descent (SGD);
Momentum; AdaGrad; RMSProp; Adam.
- CNN :
https://brohrer.mcknote.com/zh-Hant/how_machine_learning_works/how_convolutional_neural_networks_work.html
- 机器学习-简介系列 播放列表: https://www.youtube.com/playlist?list...
- 不錯的講座
人工智慧:機器學習和神經網路的應用與挑戰
https://www.youtube.com/watch?v=ka2zIxLePcM
2018年2月22日星期四
Add local jar to maven project -2/2
将jar文件加到Maven的local repository中
对于Maven项目来说,日常使用的多数第三方java库文件都可以从Maven的Central Repository中自动下载,但是如果我们需要的jar文件不在Central Repository中,那么我们就需要手动将自己下载的jar文件加入到Maven的local reposotory中了,此时我们需要向Maven提供用于识别jar文件(可能多个)的groupId, artifactId和version等信息
<dependency>
<groupId>com.hitrust.acl.util</groupId>
<artifactId>hitrustUtil</artifactId>
<version>1.0</version>
</dependency>
2. install jar to local maven
2.1執行以下指令: (下面紅字部分,請改為你筆電的目錄路徑)
mvn install:install-file
-Dfile=D:\eclipse\workspace\AccLinkSocketServer\lib\hitrustUtil-1.0.jar
-DgroupId=com.hitrust.acl.util -DartifactId=hitrustUtil
-Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
2.2說明
2.3範例:
mvn install:install-file -Dfile=D:\Obank\dev1211\eclipse\workspace\AccLinkSocketServer\lib\hitrustUtil-1.0.jar -DgroupId=com.hitrust.acl.util -DartifactId=hitrustUtil -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
4. java -jar target\{yourJarFileName}.jar
訂閱:
留言 (Atom)





