2016-09-16

解決HOVER彈出的輸入選單,因瀏覽器的「自動填入」功能而又消失的問題

今天閒來無事,幫網友解決的一個小問題,

https://jsfiddle.net/xefavar6/

這問題不能單純的用hover,而是要拆成 mouseenter 跟 mouseleave 二個事件來處理,

加上事件發生時,判斷 e.target 的不同,就能解決了,說破不值錢。

其實這些都是對DOM及event的基本概念是否熟悉的問題,還談不上什麼技巧。

可惜願意好好練基本功的我看過的真的沒幾個,屈指可數。

2016-09-14

MAC上安裝EZ100PU晶片讀卡機

相信EZ100PU這型號,或說EZ系列的晶片讀卡機很多人用,

官方也一直有在更新MAC版本的DRIVER,蠻感心的:

https://www.castlestech.com/zh-hant/%e6%aa%94%e6%a1%88%e4%b8%8b%e8%bc%89/

像我自已的是用了好幾年的EZmini型號,跟EZ100PU的驅動是共用的。

以往在mac安裝驅動程式時,就是直接解壓縮並執行抓下來的mpkg,

裡面會自動幫你裝好OpenSC、pcsc-lite跟EZ系列的driver,

不過在我新安裝的OSX 10.11.6上,卻發生驅動程式安裝錯誤的問題,

安裝程式也沒提示說是什麼錯誤,只叫我聯絡軟體開發商(?

於是打開mpkg來看,發現會不會是隨附的pcsc-lite有問題?

結果先用homebrew裝了最新的pcsc-lite:

brew install pcsc-lite

然後再裝一次驅動程式,嗯,好了!

不過說實在要跨平台用的讀卡機的話,最好是買有支援CCID通用協定或ACS CCID開源驅動的(相容CCID),像我這種需要跨平台開發讀卡機相關程式的人就可以省很多麻煩。
像代理香港ACS的創群科技,他們出的讀卡機在每個平台都可以即插即用,不用煩惱驅動問題(就算有問題開源驅動裝上去一般就OK了),平價機型有ACR38、ACR39等,網路或一般3C通路也蠻好買到的,像辦公室好幾年前給的讀卡機ACR38,跨三種平台都能即插即用。

2016-09-06

tomcat 8.5 在 netbeans上無法正常運作 (netbeans無法得知tomcat已啟動)

今天在mac上跑tomcat 8.5遇到很雷的事,
在netbeans上設定tomcat 8.5後,過一陣子netbeans會報tomcat start fail,
但實際上server log是顯示有正常啟動tomcat的,
後來發現是Server header的問題,因此從8.5後開始,必須手動在server.xml加一個「server="Apache-Coyote/1.1"」的attribute:



然後…然後就好了。真的很雷。

ref:
http://stackoverflow.com/questions/22225764/starting-of-tomcat-failed-from-netbeans

2016-08-30

TOMCAT伺服器無回應!

今天一大早進辦公室就在救火,原因是人事系統掛掉了...

掛的方式很奇怪,一開始重啟會維持幾分鐘的正常,之後就無回應了,

仔細點說,就是TCP/IP有成功連線到TOMCAT,但沒有回應字串,直到TIMEOUT。

這種半路就死的反而是最難找原因的,

於是大家就開始猜了,防火牆、資料庫、connection pool.....開始找原因,

最後還把application乾脆移到新的tomcat主機,還是會死掉。

後來我在application的context.xml加了一個設定:


...

...


讓server log 十秒以上沒反應的程式,結果發現是一個syslog程式作怪,把那段程式移除就好了。

(但沒移除之前也活得好好的呀...超怪)

ref:
http://stackoverflow.com/questions/7145131/tomcat-request-timeout
http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Stuck_Thread_Detection_Valve

2016-06-29

在Ubuntu安裝Sublime Text 3及支援中文輸入

1.安裝 sublime text 3

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

2.建立sublime-imfix.c

2016-06-06

Macbook PRO MBP 2014 & MACOS OS X El Capitan 10.11.5 安裝 BOOTCAMP WINDOWS 7 SP1 遇到雷之解法


之前OS X 10.9 利用 BOOTCAMP 安裝WINDOWS 7 SP1很順,沒啥問題,

直到昨天手殘玩壞分割區,修復試過也沒用,只好重灌WINDOWS,但過程很雷啊...APPLE真是越做越回去了。

網路上利用BOOTCAMP安裝WINDOWS的教學很多,我就不贅述,大概就如下過程:

1.利用BOOTCAMP + WINDOWS ISO檔,製作WIN7 USB開機碟
2.若是安裝WIN7,需手動下載BOOTCAMP WIN DRIVER並放到USB開機碟
3.重新分割出WIN磁區,分割完會自動重新用USB開機安裝WIN7

以上最重要的是,要「一氣呵成」,不能只做前二個步驟,然後第三步驟用別的工具去分割,

不然USB開機碟內會沒有必要的驅動程式而抓不到MAC的輸入裝置(你會以為畫面凍結了,實際上是鍵盤滑鼠抓不到...),這樣也灌不成(APPLE這種作法真的很神邏輯...)。

之後進到WINDOWS安裝畫面,要開始安裝時,會遇到「遺失必要的CD/DVD磁碟裝置驅動程式」這問題,

這是因為找不到WINDOWS安裝光碟,所以要叫你裝一下DVD或USB的驅動程式來找看看WIN光碟在哪(都能開機了跟我說找不到...微軟真是讓我醉了 囧,不過也可能是BOOTCAMP動到了光碟內資料結構的關係)

有的人說這是USB 3.0的問題,改用USB 2.0隨身碟就好,但在OSX 10.9使用BOOTCAMP時並沒有這個問題,而且之前和現在這次我用的隨身碟也確定是USB 2.0的。

所以解法就是,請準備二隻隨身碟,一隻就是上述用BOOTCAMP製作的,一隻則是直接將WINDOWS光碟做成USB開機碟

當畫面進入到詢問驅動程式在哪時,此時插入WINDWOS USB碟,

並將驅動程式路徑指向BOOTCAMP USB開機碟的「$WinPEDriver$\IntelxHCISetup\Drivers\HCSwitch\Win7\x64」
或「$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64」(二個都試試,這是USB3驅動程式)

不行就再重來,多試幾遍即可。

update: 2015版本的macbook pro安裝windows已經不需要usb隨身碟了,會直接在硬碟先暫時做出一個8G大小的partition做為開機安裝碟,安裝完windows重開該暫時磁區便會消失!所以你要準備的就是直接把windows iso先複製到mac內即可!

2016-05-04

讓 Android Studio 2.1 支援 Lambda expression & Stream API & ButterKnife依賴注入框架


要讓 Android Studio 2.1 能支援java 8的Lambda expression & Stream API & ButterKnife依賴注入框架,
請先安裝JDK8,並修改專案gradle設定檔如下:

gradle.build (Project):

buildscript {
    repositories {
        jcenter()
        //加入套件來源maven
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
        // 加入dependency (gradle-retrolambda 外掛)
        classpath 'me.tatarka:gradle-retrolambda:3.2.5'
        // 加入dependency (android-apt 外掛)
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

repositories {
    //加入maven 
    mavenCentral()
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}