tedshd's DevNote

Develop & Design Note by Ted

Maker - apws96 winkeyless 96 keyboard

Maker - apws96 winkeyless 96 鍵盤自組紀錄

來源

淘寶 - 比比外設

引言

其實當初對 60% 以外最有興趣的大概就是像 96 鍵盤的 layout 了

因為幾乎所有的常用的按鍵都有因為緊密的配置, 所以體積也不會太大

當初買了 cm quick fire tk 借給別人用, 對方也覺得不佔空間也不太會影響使用習慣(當然方向鍵模式和數字鍵模式切換還是有點不便)

但是當年出這種配置的鍵盤不多

但是現在有不少可以自組的方案就有這種配置, 且更彈性的可以配置 layout 更棒

software update firmware

這塊板子最大的好處是已經有 Mac & Windows 的 client 可以配置 layout 和設定 RGB Led

還可以設定 fn layer 與 macro

更可以把設定存起來

非常得強大

winkeyless 的網站提供的軟體就可以刷了

Firmware Installing and Setting Winkeyless Store

但打開後發現裡面的矩陣配置是板子上的硬體的矩陣配置, 並非對應鍵盤的 layout 配置

所以需要花時間一一對應

但我這邊有整理需要對應的幾個按鍵了

剩下的其實用預設的 keymap 就可以對了

先附上預設的 keymap 的檔案

link

所以不用在那邊找半天了 XD

最後上一下圖

PHP - Geoip 設定 隨手紀錄

PHP - Geoip 設定 隨手紀錄

之前有依照 php.net 中的文章設定

http://php.net/manual/en/book.geoip.php#117240

但在某次 php 升版後有點問題

所以放棄該用法

改採用 GeoIP2-php 這套件來處理

這是一個 MAXMIND 的服務出的套件, 也有其他程式語言的套件

其實 php.net 那方法是 MAXMIND 舊的方法, geoip2 是他們現在新的用法與服務

這服務有做 GeoIP 和 欺詐檢測 的服務

具體欺詐檢測有做啥我就沒研究了

官網

過程我就不詳細介紹了

因為文件都有

這邊會介紹一些要注意的地方

主要是用 composer 安裝

然後用 autoload 載入

這流程應該 php 開發者會比較清楚, 反正也有 step by step 的教學與 sample code 可以看

<?php
require_once 'vendor/autoload.php';
use GeoIp2\Database\Reader;

// This creates the Reader object, which should be reused across
// lookups.
$reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb');

// Replace "city" with the appropriate method for your database, e.g.,
// "country".
$record = $reader->city('128.101.101.101');

print($record->country->isoCode . "\n"); // 'US'
print($record->country->name . "\n"); // 'United States'
print($record->country->names['zh-CN'] . "\n"); // '美国'

print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota'
print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN'

print($record->city->name . "\n"); // 'Minneapolis'

print($record->postal->code . "\n"); // '55455'

print($record->location->latitude . "\n"); // 44.9733
print($record->location->longitude . "\n"); // -93.2323

這有個關鍵點

相信有玩過 GeoIP 的都清楚其實他就是個查表的行為, 會需要查 ip 對應的國家或城市

那這套當然也需要個 database

他有兩種 database 的格式 mmdbcsv

我是用 mmdb, 文件也建議用 mmdb

資料分兩種

  1. geolite2 - 免費

    geolite2

  2. geoip2 - 付費

    geoip2

當然不用我說明應該也知道付費的會有更齊全的資料

所以這段

$reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb');

就改成下載下來的 datebase file 的位置即可

當前(2.7.0) names 的語言還沒支援繁中, 只有簡中, 所以忽視它吧

他也有文件說明要如何呈現哪些資料

http://maxmind.github.io/GeoIP2-php/

GeoIP2 PHP API v2.7.0

稍微用了一下這套還不錯

如果只是測試有另一個服務叫 ip-api

有 api 可以用

http://ip-api.com/json

也支持 jsonp

http://ip-api.com/json?callback=geoip

所以前端可以直接用

但建議測試就好

php - loop directory

php - loop directory

Sometime need use php loop directory list all file in this directory

$directory = scandir('./js');
foreach($directory as $file) {
    if ($file === '.' || $file === '..') {
        continue;
    }
    echo $file;
    echo "\n";
}

php - 比對時間

php - 比對時間

記錄一下比對時間的方式(利用 timestamp)

time() > strtotime('2017-11-13 23:59:59');

web - mobile web on iPhone X first preview

web - mobile web on iPhone X first preview

Intro

On 2017 9/12.

Apple published iPhone X.

And this device has so special screen.

So many web & iOS developer worry about some case like.

(form Apple)

OMG!

It can effect app show on full screen.

So Apple has provide guideline about iPhone X.

iPhone X - Overview - iOS Human Interface Guidelines

It is great change for web & iOS developer.

For web developer, we need this design guideline

Designing Websites for iPhone X | WebKit

Apple provide new CSS function handle this problem.

And it is in W3C working group

Preview iPhone X

But we can preview iPhone X in Xcode.

  1. Update your Xcode to Xcode 9.

  2. Open a new Project and set build iOS simulator as iPhone X.

  1. Xcode > Open Developer Tool > iOS Simulator

  1. we can use Safari test web now.

Result

Some case

Safari App has handle safe area & follow iPhone X design.

So we maybe don't worry about this problem on Safari.

But maybe we need worry about chrome on iOS and other webview in App.