Feeds:
文章
迴響

Archive for 2014 年 12 月

參考 https://snipt.net/restrada/python-selenium-workaround-for-full-page-screenshot-using-chromedriver-2x/

測試代碼

執行結果

test

Read Full Post »

Python+WMI 修改 IP 設定

今天看到藍色部落格要關閉,相關精華文章要移到藍色小舖精華區,於是看到這篇"使用 WMI 更改IP、子網路遮罩、閘道、DNS“, 剛好之前有靜態 IP 和 DHCP 要切換需求,所以用 Python 搭配 WMI 模組改寫,如下

Read Full Post »

這是困擾許久可是一直被擱置的問題,直到今天又遇到這個問題,再次尋找終於找到解法,問題簡單的描述,

架構

Browser –> Apache –> php-fpm

基於效能考量每個階段都會被緩衝(buffer),因此對於下面這種程式

<?php

for($i=1;$i<=3;++$i){
    echo $i;
    sleep(5);
}

?>

你只會一次看到 “123″, 而不會每隔 5 秒印出一個數字,解法我最早在[1]找到,不過沒有寫原因,後來又找到[2]有專屬討論這個問題,簡單的改法如下:

<?php

   header('Content-Type: text/HTML; charset=utf-8');
   header('Content-Encoding: none;'); // 關閉 apache 壓縮
   ini_set('output_buffering', 'Off'); // 關閉 php 輸出緩衝
   @ini_set('zlib.output_compression',0); // 關閉 zip 壓縮
   @ini_set('implicit_flush',1); // 啟用自動 flush
   @ob_end_clean(); // 清除緩衝區資料
   ob_implicit_flush(1); // 啟用自動 flush
   for($i=1;$i<=3;++$i){
        echo $i;
        flush(); 
        echo str_repeat(' ',1024*64); // 填滿緩衝區,導致強制輸出
        sleep(5);
   }

 

 

參考資料

[1] https://github.com/Eugeny/ajenti-v/issues/84

[2] http://stackoverflow.com/questions/4706525/php-flush-not-working

Read Full Post »

[NDK] fplutil v1.0.0 測試

== 環境 ==
1. Windows XP
2. Android SDK
3. Android NDK r10d
4. Python 2.7
5. fplutil 1.0.0
6. Apache Ant 1.8.4
7. JDK 1.7

== 環境設定 ==
## Android SDK, NDK, Ant, Java 新增到 PATH 環境變數
SET PATH=%PATH%;D:\sdk\android\adt-bundle-windows-x86\sdk\tools;D:\sdk\android\android-ndk-r10d;D:\sdk\apache-ant-1.8.4\bin;C:\Program Files\Java\jdk1.7.0_07;c:\Python27;C:\WINDOWS\system32

== fplutil 目錄結構 ==

+---autobuild
|       build_android
|       build_android.cmd
|       build_android.py
|       
+---bin
|       android_ndk_perf
|       android_ndk_perf.cmd
|       android_ndk_perf.py
|       build_all_android
|       build_all_android.cmd
|       build_all_android.py
|       
+---buildutil
|   |   android.py
|   |   android.pyc
|   |   android_test.py
|   |   common.py
|   |   common.pyc
|   |   common_test.py
|   |   linux.py
|   |   linux_test.py
|   |   __init__.py
|   |   __init__.pyc
|   |   
|   \---__pycache__
|           __init__.cpython-33.pyc
|           
+---dependencies
|   \---googletest
|                   
+---disttools
|       config.json
|       push_package.py
|       __init__.py
|       
+---docs
|               
+---examples
|   +---buildutil_example
|   \---libfplutil_example
|                                                               
+---libfplutil
|   +---include
|   |   \---fplutil
|   |           main.h
|   |           print.h
|   |           version.h
|   |           
|   +---jni
|   |       Android.mk
|   |       Application.mk
|   |       
|   +---src
|   |       main.c
|   |       print.c
|   |       print_cxx.cc
|   |       
|   \---tests
|               
\---perf
    +---bin
    |   +---android-16
    |   +---android-17
    |   +---android-18
    |   \---android-19
    |               
    +---build
    |           
    \---tools
        |   LICENSE
        |   
        \---telemetry
            \---telemetry
                \---core
                    \---platform
                        \---profiler
                            \---perf_vis
                                    d3.v3.min.js
                                    jquery-1.11.0.min.js
                                    LICENSE-d3.v3.min.js.txt
                                    LICENSE-jquery.txt
                                    LICENSE-sammy.js.txt
                                    perf-vis
                                    perf-vis-template.html
                                    perf-vis.cmd
                                    perf-vis.py
                                    perf_to_tracing_json
                                    perf_to_tracing_json.cmd
                                    perf_to_tracing_json.py
                                    sammy-latest.min.js
                                    sequences.js

== 編譯內建範例 ==
## libfplutil_example
# 自動編譯, 打包, 安裝, 執行
#
cd libfplutil_example
..\..\bin\build_all_android -T debug -i -r
# 執行結果目錄結構

|   AndroidManifest.xml
|   build.xml
|   local.properties
|   main.c
|   proguard-project.txt
|   project.properties
|   
+---apks
|       example-debug.apk   ; 打包的 app
|       
+---bin
|   |   AndroidManifest.xml     ; 從 /AndroidManifest.xml 複製過來
|   |   AndroidManifest.xml.d
|   |   build.prop
|   |   example-debug-unaligned.apk
|   |   example-debug-unaligned.apk.d
|   |   example-debug.apk
|   |   example.ap_
|   |   example.ap_.d
|   |   
|   \---res
+---jni
|       Android.mk
|       Application.mk
|       
+---libs
|   +---armeabi-v7a
|   |       gdb.setup
|   |       gdbserver
|   |       libfplutil_example.so   ; 
|   |       
|   \---local
|       \---armeabi-v7a
|           |   libandroid_native_app_glue.a
|           |   libfplutil_example.so
|           |   libfplutil_main.a
|           |   libfplutil_print.a
|           |   
|           \---objs-debug
|                                                       
+---obj
\---res

## 手動編譯
# 切到 libfplutil_example 目錄
cd libfplutil_example

# 編譯
ndk-build.cmd
android update project –path . –target android-17 –name libfplutil_example
ant debug

# 安裝
adb install bin/libfplutil_example-debug.apk

# 測試
adb shell am start -S -n com.google.fpl.libfplutil.example/android.app.NativeActivity

參考資料
http://google.github.io/fplutil/libfplutil_example.html

Read Full Post »

使用 ssh client 登入 boot2docker

一般可透過 boot2docker.exe ssh 直接登入

可是操作上不習慣,想用自己熟悉的 ssh client 工具

首先 boot2docker 的 ssh key 存放在 %HOMEPATH%\id_boot2docker.pub

一般預設 ssh port 為 2022, 如不行開啟 VirtualBox 確認

20141213-1

boot2docker 的預設帳密為 docker / tcuser

20141213-2

20141213-3

參考資料

http://stackoverflow.com/questions/25858086/ssh-client-into-boot2docker

Read Full Post »

MinGW 升級 gcc

依據[1] 描述只要

c:

cd \mingw\bin

mingw-get update

mingw-get upgrade

可是對於 Win32 似乎只能升到 4.8.1

其他支援 gcc 4.9.1 的好像只有 64 位元版

參考資料

[1] stackoverflow.com/questions/9865319/how-to-update-gcc-in-mingw-on-windows

Read Full Post »

Go 1.4+WinXP(32Bits) 交叉編譯

網路很多建立交叉編譯的文章,這裡僅簡單描述建立和測試過程

(之前文章"Go 交叉編譯輸出 Android (ARMv7) 和 Windows x86 可執行檔“)

目錄結構

c:\

  • / go
    • /bin
      • – bukav2.go  ; 測試用
    • /src
    • /pkg
      • linux_386 ; 編譯產出
      • linux_arm ; 編譯產出
      • linux_amd64; 編譯產出
      • windows_amd64; 編譯產出
      • windows_386
      • /tool
        • windows_386
          • 8a/8c/8g/8l
          • 6a/6c/6g/6l   ; 編譯產出 for amd64
          • 5a/5c/5g/5l   ; 編譯產出 for arm
  • /mingw
    • /bin

建立 Linux 386和 Linux Arm 編譯環境

SET PATH=c:\mingw\bin

SET GOROOT=c:\go

SET GOPATH=c:\go\

:: 產出 linux_arm

SET GOARCH=arm

SET GOOS=linux

c:

cd \go\src

make.bat –no-clean

:: 產出 linux_386

SET GOARCH=386

make.bat –no-clean

:: 產出 linux_amd64

SET GOARH=amd64

make.bat –no-clean

 :: 產出 windows_amd64

SET GOOS=windows

make.bat –no-clean

產出布卡萃取器 for Linux 386/ARM, Windows 386 版本

cd \go\bin

:: Linux/32Bits [下載]

SET GOOS=linux

SET GOARCH=386

go build -o buka-linux-386-v2.3 bukav2.go

:: Linux/ARM

:: adb push buka-linux-arm-v2.3 /data/local/tmp

:: adb shell chmod 777 /data/local/tmp/buka-linux-arm-v2.3

:: adb shell /data/local/tmp/buka-linux-arm-v2.3

SET GOARCH=arm

SET GOOS=linux

go build -o buka-linux-arm-v2.3 bukav2.go

:: Linux/64 Bits  [下載]

SET GOARCH=arm

SET GOOS=linux

go build -o buka-linux-amd64-v2.3 bukav2.go

 :: Windows 64 位元  [下載]

SET GOARCH=amd64

SET GOOS=windows

go build -o buka-windows-amd64-v2.3 bukav2.go

Read Full Post »

Older Posts »