用網芳管理手機檔案 Android samba server

用網路芳鄰管理手機檔案 Android samba server

    主要目的是為了備份手機或平板的檔案,因為我喜歡用 FastCopy  來作同步,它可以只複製新增或有修改過的檔案,並保留檔案及目錄的日期。原本是手機裝個 samba server 就可以解決的,但非root手機只能用非標準的port,Windows又只能連標準的 samba 139,445。
這邊用一個迂迴的方式來達成:
Windows <-samba-> Ubuntu <-sftp-> Android
使用萬能的 Linux 來作轉換,
首先是手機裝上 sftp server,我是使用這個

android sftp server
設定好帳號跟目錄後就可以啟動

可以先使用 FileZilla 來測試連線是否正確,就備份的角度來看,FileZilla 已經可以作到,只是我們想要的是讓Windows檔案總管可以使用。
下一步,安裝一個 Ubuntu Server,獨立機器或VM都可以,這邊假設只有一台PC,
使用VirtualBox安裝,想要省記憶體的可以裝 Server 版,預設是沒有桌面的。
http://releases.ubuntu.com/16.04.4/ubuntu-16.04.4-server-i386.iso
啟用兩張網卡,第一張安裝時用NAT安裝完成後用Bridged,第二張網卡用Host-only

VirtualBox nic bridged host-only

Ubuntu 安裝軟體
sudo apt-get update
sudo apt-get install openssh-server samba sshfs

設定 samba server

sudo nano /etc/samba/smb.conf
#################################
[global]
hosts deny = ALL
hosts allow = 127. 192.168.0.0/16
unix extensions = no

[homes]
comment = Home Directories
browseable = no
read only = no
valid users = %S
follow symlinks = yes
wide links = yes
#################################
新增/設定 samba user password
sudo smbpasswd -a alex
重啟
sudo /etc/init.d/samba restart

設定網路
sudo nano /etc/network/interfaces
#################################
auto enp0s3
#iface enp0s3 inet dhcp
iface enp0s3 inet static
address 192.168.0.88
netmask 255.255.255.0

auto enp0s3:1
iface enp0s3:1 inet static
address 192.168.1.88
netmask 255.255.255.0

auto enp0s8
iface enp0s8 inet static
address 192.168.56.88
netmask 255.255.255.0
#################################
sudo /etc/init.d/networking restart

網卡如果是後來才新增的,可以先查看網卡名字
dmesg | grep eth
[    2.289998] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 08:00:27:71:36:fc
[    2.290612] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection
[    2.709290] e1000 0000:00:08.0 eth1: (PCI:33MHz:32-bit) 08:00:27:92:d3:27
[    2.709857] e1000 0000:00:08.0 eth1: Intel(R) PRO/1000 Network Connection
[    2.711572] e1000 0000:00:03.0 enp0s3: renamed from eth0
[    2.714426] e1000 0000:00:08.0 enp0s8: renamed from eth1

測試連線
ssh -p46234 alex@192.168.0.4
Unable to negotiate with 192.168.0.4 port 46234: no matching host key type found. Their offer: ssh-dss
如果出現上面這個訊息是因為手機ssh server的加密方法太舊,預設已不再使用,可以修改設定檔後使用
nano ~/.ssh/config
#################################
Host 192.168.0.*
  HostKeyAlgorithms=+ssh-dss
#################################

利用 sshfs 掛載手機目錄
mkdir myphone
sshfs -o allow_other -o idmap=user -o uid=1000 -o gid=1000 -o reconnect -o compression=no -p46234 alex@192.168.0.4:/ myphone/

如果連線正確,目錄下就是手機的檔案
ls myphone/
acct                   factory_init.rc       meta_init.rc
advanced_meta_init.rc  fstab                 mnt
cache                  init                  proc
...

如果要結束連線,可以用這個指令
fusermount -u myphone/


回到 Windows Explorer,在路徑打上
\\192.168.56.8\alex\myphone

Windows samba to android
完成。
可存取的目錄可能隨著手機不一樣,這台是放在  sdcard/ 之下,
這樣管理檔案方便多了。


補充1:
上面那個 sftp 軟體似乎太舊沒有權限存取新手機裡的實體SD卡目錄,所以又試用了另一個,

SSH Server SD Card
User 設定那邊加了兩個目錄,一個是 SD 卡的目錄 001D-5686/,一個是手機內部儲存的目錄 0/,SD 卡目錄的名稱是磁碟的序號,是格式化的時候產生的,理論上每張卡都不一樣。
掛載的方式為,先產生兩個目錄,

mkdir myphone/sdcard/
mkdir myphone/sandisk32/

然後再分別掛載上去。
sshfs -o allow_other -o idmap=user -o uid=1000 -o gid=1000 -o reconnect -o compression=no -p2222 alex@192.168.0.8:/0/ myphone/sdcard/
sshfs -o allow_other -o idmap=user -o uid=1000 -o gid=1000 -o reconnect -o compression=no -p2222 alex@192.168.0.8:/001D-5686/ myphone/sandisk32/




Arduino oscilloscope 22kHz bandwidth

  簡易 Arduino 示波器

    Arduino 的 ADC 是很好用的東西,可以用來測量電壓轉成數位資料,而示波器就是把隨著時間變化的電壓畫成圖形表示出來,利用 arduino 的 ADC 加上電腦的繪圖能力,作成了一個簡易示波器。

Arduino oscilloscope - flashlight waveform
做了一下功課,已經有人作了Arduino 示波器 (不靠其的的元件,只用 arduino)
窮人的示波器 - 使用 arduino 透過序列埠傳到到電腦,然後用 Processing 程式作繪圖。
Arduino – Poor Man’s Oscilloscope
http://randomnerdtutorials.com/arduino-poor-mans-oscilloscope/

arduino 接上電腦後用 Processing IDE 執行他的程式,可以看到由右往左一直捲動的波形,我有一台示波器了 :)。用10k電阻加光敏電阻做了一個測試電路來觀察波形,用手電筒的光照射產生電壓變化,得到了以上的波形,手電筒有五檔變化:強光、中光、弱光、爆閃、SOS,可以看到中光和弱光是用PWM來調整亮度的。

Arduino oscilloscope photo resistor test circuit

可惜的是原來的程式算了一下每秒大約更新 400 個點,對一個示波器來說最重要的參數就是頻寬,除了看到變化,更希望能看到細節。看了一下程式作了一些改進,首先是 Serial 的速度從 9600 提高到了115200 bps,然後每個點原來是送3個byte,改成只送1個byte,犧牲了解析度換取速度,這樣從每秒 400 個點提高到了每秒約 8300 個點,原以為這樣就是極限了,但還有更好的方式,待續 ...



LM317 8.4V Li-ion Battery Charger

自製 9V 鋰電充電器  
因新電表太耗電所以買了9V 充電電池,但某南孚環高充電器質量實在太差,沒法停止充電,只好想到自己作一個充電器
LM317 8.4V Li-ion charger 1.jpg
LITELONG 力特朗 9V 650mAh li-ion 鋰離子 充電電池 充電中 

LM317 8.4V Li-ion charger 2.jpg
9V battery plug 是從舊電池拆下來的

LM317 8.4V Li-ion charger 3.jpg
主要零件 LM317 voltage regulator

LM317 8.4V Li-ion charger_board.jpg
LM317 8.4V  li-ion battery charger circuit

LM317 8.4V  li-ion battery charger schematic


關鍵零件用的是 LM317 可調式線性穩壓器
LM317.png

http://goods.ruten.com.tw/item/show?21403122108813

LM317 用兩個電阻來調整輸出電壓(Vout=1.25V(1+R2/R1)+IadjR2),跟據datasheet 的範例 R1 的範圍從 240Ω~1.2kΩ,假設選定 R1=1k, Vout = 8.4V, 則R2 = R1(Vout - 1.25) / (1.25 + Iadj R1) = 5.296kΩ,因為手邊只有 50k 可變電阻,所以拿它與 6.8k 並聯成 為 R2,電阻範圍從 0Ω~ 5.99kΩ,

VR 5.99.png
6.8k與50k可變電阻並聯

得到可調電壓 Vout 從 1.25V 到 8.733V,完成後可以用電表測量,調整輸出電壓在 8.3V~8.4V左右。


鋰電池充電需要的是定電流及定電壓,
constant current constant voltage.jpg

Current Limited 6V Charger.png















參考datasheet範例,利用一個NPN電晶體及電流感測電阻,設定電流為0.6/R,當電流增大,使得電阻上的電壓大於0.6時,使得電晶體導通,ADJ 電位下降導致 Vout 下降,然後電流就可以維持在設定的範圍內。照片上目前只放了一個5Ω電阻,所以輸出是 120mA功率為 0.6V * 0.12A = 0.072W,所以 1/4 瓦的電阻還夠用


電源指示燈
LM317 有最小負載電流的需求用來維持晶片的運作,約 3.5~10mA,一般是利用設定電壓電阻來順便達成(例:R1 選用 240 Ω),這裡因為選用的電阻較大R1=1k, R2=5.29k,  8.4V / 6.29k = 1.33 mA,所以在輸出上加一個LED燈,剛好維持住最小負載電流。
http://electronics.stackexchange.com/questions/18524/resistors-values-to-use-with-lm317


充電電流指示燈
利用二極體及電阻的分流達成了在充電一開始時較亮,然後隨著充電電流變小時慢慢變暗,在電流小於10mA左右熄滅,就可以得知充電完成

散熱
如果長時間輸出 120mA 以上的話,LM317 最好要有散熱片

超便宜測量電感的方法 Inexpensive measuring inductance with arduino

   一般要量測電感需要專用的 LCR 電錶或是用示波器,都不便宜,在網路上找到這篇
https://reibot.org/2011/07/19/measuring-inductance/ ,
使用 arduino 加上一個極簡單的電路達成,
關鍵的元件只有三個:
一個電壓比較器或 op amp、
兩個 1uF 無極性電容、
以及一台 arduino 相容板。

我用的是 LM393P 低功耗電壓比較器 $2
http://goods.ruten.com.tw/item/show?21403134960362

陶瓷電容 1uF(105) $0.8
http://goods.ruten.com.tw/item/show?21439300127596
或是用較小的並䏈
陶瓷電容 0.1uF(104) $8
http://goods.ruten.com.tw/item/show?21601579393657


電路圖

Measuring inductance with arduino
程式
// resonant frequency counting for inductance measuring
#define chargePin 13
#define pulsePin 11
void setup() {
  Serial.begin(115200);
  pinMode(pulsePin, INPUT);
  pinMode(chargePin, OUTPUT);
  Serial.println("LC Meter");
}
double pulse, frequency, inductance;
void loop() {
digitalWrite(chargePin, HIGH); // charge LC circuit.
delay(5);
digitalWrite(chargePin, LOW);
//
pulse = pulseIn(pulsePin, HIGH, 1000); //returns 0 if timeout
if (pulse > 0.1) {
 const double capacitance = 1.89E-6; // ~2 uF
 frequency = 1E6 / (2 * pulse);
 inductance = 1E6 / ( 4 * 3.1415926535 * 3.1415926535 * capacitance * frequency * frequency );
 Serial.print( int(pulse) );
 Serial.print(" uS, ");
 Serial.print( frequency );
 Serial.print(" Hz, ");
 Serial.print( inductance );
 Serial.println(" uH");
}
delay(480);
}
// end

原理:
當LC電路放電時,會震盪產生一個頻率,叫 resonant frequency
f = 1/(2π√LC)
https://en.wikipedia.org/wiki/LC_circuit

已知電容和頻率就可以算出電感
L =  1 / (4C π^2 f^2)

arduino 測量頻率的方法:
LC 的信號經過比較器後變成 0~5V 的方波(大於零變5V 小於零變 0V)
arduino 的 pluseIn() 可以測量信號在 HIGH 的時間

所以 頻率 f = 1 / ( 2 * pluseIn() 時間)

我的兩個1uF電容量測起來約 ~1.89 uF,使用較小的電容時因為頻率會上升,
arduino 的限制無法量到更小的時間 (10^-6),如果要量較小的電感,需要較大的電容,
用 1.89uF 實測可以量到 10 uH 以上。




Li-ion emergency light circuit with low voltage cutoff protection

Emergency light circuit with low voltage protection.


Emergency light and low voltage cutoff circuit 

Using forward voltage drop of LED to protect lithium ion battery from getting too low.
The light will be cutoff around 3 volts.
The upper limit voltage of eight chip LED is higher than battery, no need to add current limit resistor.



Emergency Light NPN PNP 1W LED Low Voltage Protection

Emergency light npn pnp perfboard



Emergency light npn pnp usb power two led


Emergency light npn pnp 18650 li-ion two led ON


Emergency light circuit


Emergency light circuit using NPN transistors & 1W LED

Emergency light circuit  NPN
1W 300~350mA LED  (or multiple LEDs in parallel)
Cell phone Li-ion battery 3.7V
USB 5V power
S8050 NPN  20V 700mA transistor control LED current
Adjustable brightness
Charge current indicator LED
Minimum standby current



Emergency light circuit
Simplified version

Choice of R1 for LED
20mA  40k
40mA  20k
60mA  13.3k
80mA  10k
100mA 8k
200mA 4k
300mA 2.6k


Emergency light circuit PNP





Raspberry Pi 3 on SSD


  在 Raspberry Pi3 測一下 MicroSD 的速度 ,感覺比 Pi2 還差,
同樣的 SD 卡 在 Pi2 可以達到 18 MB/s,
在 Pi3 上只有 14.6 MB/s 。
Kingston 32G Pi 3 Benchmark

















SD 卡太慢來試一下 USB 開機:

參考文章
http://www.instructables.com/id/Boot-the-Raspberry-Pi-from-USB/

SD 卡還是須要用來引導開機,用文字編輯 /boot 下的  cmdline.txt 更改 root 指向的磁碟

cmdline.txt
dwc_otg.lpm_enable=0 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline rootwait quiet splash

我是用  Clonezilla  + 讀卡機 來複製 Pi 的分割區 
直接用最高級的組合 USB to SATA 快捷線 + SSD (Micron Crucial MX100 256G)

Pi3 boot from USB to SATA SSD Benchmark






















Read 36.6 MB/s
Write 36.6 MB/s

看來 Pi3 USB 的極限在 36M :-)


Raspberry Pi 3 vnc

在 Raspberry Pi 3 安裝 vnc

作業系統安裝
Ubuntu MATE for Raspberry Pi 3


遠端桌面在Linux系統上有很多選擇,選 x11vnc 的原因是它與螢幕輸出的畫面是同步的。

安裝 x11vnc
sudo apt-get install x11vnc

設定密碼檔
sudo x11vnc -storepasswd /etc/x11vnc.pass

編輯檔案
sudo nano /lib/systemd/system/x11vnc.service
填入以下內容
#-----------------------------------------------
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -display :0 -allow 192.168.0.,192.168.1.2 -auth guess -forever -loop -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -noipv6 -no6

[Install]
WantedBy=multi-user.target  
#-----------------------------------------------
-allow 後面是允許連入的 IP, 請依需求更改。

最後啟動 service
sudo chmod u+x /lib/systemd/system/x11vnc.service
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service


重開,測試。


想測試命令參數時可以用下列單行指令
sudo /usr/bin/x11vnc -display :0 -allow 192.168.1.2 -auth guess -forever -loop -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -noipv6 -no6

參考:
http://manpages.ubuntu.com/manpages/wily/man1/x11vnc.1.html

ZyXEL NAS326 Transmission torrent download

  NAS326 可以透過安裝套件,自動下載torrent檔案,


從主畫面選管理員


套件-->安裝/升級-->啟用 Transmission


上傳torrent檔案,或是直接給torrent URL

下載還蠻快的 (檔案是為 Raspberry Pi 3 準備的 Ubuntu Mate 15.10.3)

ZyXEL 合勤 NAS326 簡易測試

  今天下班回家時,怎麼踢到一個箱子。啊,不對是PChome在我下訂之前就送來的NAS。


包裝是樸素的紙盒

   
前面                                   後面


打開面板運作中

前面板不好開,看了說明書才知道是向左滑。
硬碟托盤卡楯是要往下壓而不是往上,結果我往上拉了半天,可以加個Push字樣比較好,
托盤的硬碟螺絲孔是橡膠設計可以防止一些硬碟的震動。

接上分享器後,打開電源在瀏覽器打上 http://nas326/
就可以進入管理頁面,預設帳密是 admin 1234

加入第一個硬碟重開後,硬碟一直有動作,讀寫燈一直在閃,不知在作什麼,過了一個多小時後就停止了。

在檔案總管上面打上 \\nas326\
就可以進入分享的目錄。

簡單作一下測試:
硬碟 Hitachi Deskstar 7K2000  2T 7200 rpm
Ethernet 1G 網路
將網芳目錄掛成網路磁碟機 N:
CrystalDiskMark3_0_1b, atto 3.24



Read 107.4 MB, Write 102.1 MB
有 Giga 網路的水準


ZyXEL NAS326 atto 測試

詳細功能請參考官網:
https://www.zyxel.com/tw/zh/products_services/nas326.shtml

Move bluestacks logs to ramdisk


  BlueStacks log 對一般使用者沒什麼用,但會一直產生寫到硬碟裡,消耗SSD的寫入次數,
因為找不到關掉的方法,只好把它導到 RamDisk 裡。

junction 是個有趣的功能,可以讓目錄連結到不同的磁碟空間去。

下載 junction
http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
放到  C:\ProgramData\BlueStacks

從命令提示字元執行以下指令

cd C:\ProgramData\BlueStacks
sc stop BstHdDrv
rmdir /s /q Logs
rmdir /s /q UserData\Logs
junction.exe Logs Z:\TEMP
junction.exe UserData\Logs Z:\TEMP
sc start BstHdDrv


執行範例:

神魔之塔查看掉落

need root

用任一文字編輯器
https://play.google.com/store/apps/details?id=com.jecelyin.editor&hl=zh_TW
將下面 script 內容存成 loot.sh

---------------------------------------
#!/system/bin/sh
cat /data/data/com.madhead.tos.zh/shared_prefs/com.madhead.tos.zh.xml | grep FLOOR_WAVES | sed 's/\"//g; s/,[A-Za-z]*:0//g; s/,[A-Za-z]*:null//g; s/cardId:0,//g; ' | sed 's/alert/\nalert/;s/.*\n//; s/alert:false,enemies:/\n\n/g; s/lootItem:/\nlootItem:/g' | sed 's/},{$//g; s/}]<\/string>//g'
---------------------------------------

使用終端機
https://play.google.com/store/apps/details?id=jackpal.androidterm&hl=zh_TW

執行
su
sh loot.sh

結果範例:

u0_a122@android:/data/kinmenalex # sh loot.sh

[{monsterId:80,level:17,
lootItem:{type:monster,card:{monsterId:80,level:2}}},{monsterId:60,level:17}]

[{monsterId:80,level:17},{monsterId:60,level:17,
lootItem:{type:monster,card:{monsterId:60,level:2}}},{monsterId:248,level:17}]

[{monsterId:60,level:17},{monsterId:60,level:17},{monsterId:80,level:17},{monsterId:60,level:17,
lootItem:{type:monster,card:{monsterId:60,level:2}}}]

[{monsterId:60,level:17},{monsterId:60,level:17},{monsterId:60,level:17,
lootItem:{type:monster,card:{monsterId:60,level:2}}},{monsterId:80,level:17}]

[{monsterId:70,level:17},{monsterId:70,level:17},{monsterId:80,level:17,
lootItem:{type:monster,card:{monsterId:80,level:2}}},{monsterId:80,level:17}]

[{monsterId:70,level:17},{monsterId:60,level:17},{monsterId:70,level:17},{monsterId:70,level:17}]

[{monsterId:47,level:28,
lootItem:{type:money,amount:1000}}]


VirtualBox 設定螢幕解析度

在裝了 Guest Additions 之後,預設 guest 無法設超過 host 的螢幕解析度,
可以用下面的指令更改

VBoxManage setextradata global GUI/MaxGuestResolution any
VBoxManage controlvm "guest" setvideomodehint "1680" "1050" "32"


Reference:
Configuring the maximum resolution of guests when using the graphical frontend


ssh auto login

ssh 免密碼登入

使用 putty 完整包 http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip

1. PUTTYGEN.EXE Generate Key


public@MyServer:~$ mkdir .ssh
public@MyServer:~$ cd .ssh
public@MyServer:~/.ssh$ vim authorized_keys
public@MyServer:~/.ssh$ chmod 600 authorized_keys


2. Putty Configuration Session Auto-login username
建立一個 Putty Session,並設定 Auto-login username


3. PAGEANT.EXE add Key
建立 PAGEANT.EXE 捷徑,並把 Key 加入參數


之後就可執行 PAGEANT.EXE 捷徑,然後使用 PAGEANT 來登入。

參考:ssh 免密碼

在 Ubuntu USB 開機隨身碟加入再生龍 Clonezilla

Add Clonezilla to Ubuntu USB startup disk

1. 製作一個 Ubuntu USB 開機隨身碟。
http://www.pendrivelinux.com/creating-an-ubuntu-live-usb-from-cd/

2. 下載 Clonezilla zip 檔
http://clonezilla.nchc.org.tw/clonezilla-live/download/sourceforge/

3. 建立 /cloneusb/686/ 目錄,將 Clonezilla zip 解開到裡面,
注意 live/ 目錄要存在 /cloneusb/686/live/ 這個位置。

4. 編輯 /syslinux/txt.cfg, 加入以下內容

#-----------------------------------------------------------
label clonezilla-live-1.2.9-19-i686-pae
MENU LABEL clonezilla-live-1.2.9-19-i686-pae (To RAM)
kernel /cloneusb/686/live/vmlinuz
append initrd=/cloneusb/686/live/initrd.img boot=live config noswap nolocales edd=on live-media-path=/cloneusb/686/live/ nomodeset noprompt ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="NONE" ocs_live_batch="no" ocs_lang="zh_TW.UTF-8" vga=788 toram=filesystem.squashfs ip=frommedia nosplash
#-----------------------------------------------------------

5. 完成,在 USB 開機時任按一鍵啟動選單。

=================================================================================
放到已安裝好 Ubuntu 的硬碟中執行也可以
Add clonezilla to grub menu

1. 安裝一份 Ubuntu

2. 下載 Clonezilla zip 檔

3. 建立 /clonehd/686/ 目錄,將 Clonezilla zip 解開到裡面,

4. 編輯 /etc/grub.d/40_custom, 加入以下內容

#-----------------------------------------------------------
menuentry "clonezilla-live-1.2.9-19-i686 (To RAM)" {
search --set -f /clonehd/686/live/vmlinuz
linux /clonehd/686/live/vmlinuz boot=live config noswap nolocales edd=on live-media-path=/clonehd/686/live/ nomodeset noprompt ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="NONE" ocs_live_batch="no" ocs_lang="zh_TW.UTF-8" vga=788 toram=filesystem.squashfs ip=frommedia nosplash
initrd /clonehd/686/live/initrd.img
}
#-----------------------------------------------------------

5. 然後作 sudo update-grub 完成,在開機時由選單啟動。

Windows 7 Firefox ClearType rendering mode

一直覺得 Windows 7 下 ClearType 再怎麼調,Firefox 的字都糊糊的,
找了很久,終於看到 Firefox 6.0 有我想要的解法。

以下測試為先用 Windows 7 控制台調整好 ClearType
(控制台\所有控制台項目\顯示\調整 ClearType 文字)

然後在 Firefox about:config 篩選條件:cleartype

然後只改 rendering_mode 的值
gfx.font_rendering.cleartype_params.rendering_mode

0 = Default, 1 = Aliased, 2 = GDI Classic, 3 = GDI Natural,
4 = Natural, 5 = Natural Symmetric

個人覺得 2 或 3 最好看, Y方向的像素不會糊。



rendering_mode = 0



rendering_mode = 1



Silicon-Power 廣穎電通 Blaze B10 16G USB3.0 速度測試

Silicon-Power 廣穎電通 Blaze B10 16G USB3.0 烈燄碟

先說明這是抱怨文
跟人團購買了這一支 USB3.0 的隨身碟,而且之前有看同事用過。
買回當然要先測一下速度,插入電腦,看一下磁碟機內容,
(圖是裝了東西後才抓的,但總容量不變)

疑!容量不太對,仔細算一下,這是一支 16G 的隨身碟所以

16,000,000,000 / (1024*1024*1024) = 14.9G 而不是 14.4G

整整少了 500M,這也偷太多了吧,再看一下同事之前買的為什麼他的就是 15.4G,
前後差了 1G。

同一批共買了3支,結果每支的大小居然可以不一樣,甚至還更少的 XD


寄了下封信給廣穎電通以及打電話到客服尋問結果, 得到以下說明:

--------------------------------------------------------------
在8/1號前後出貨的為不同的產品, 新的產品有挪用部份空間來做
隨身碟保護動作, 以期能延長壽命, 所以看到的會比理論值14.88GB
再少一些。
如果無法接受, 可以為我們進入消費者訴訟。
--------------------------------------------------------------

對,如果以後 flash 的壽命更差,所以決定拿一半的空間來作保護,
那買了標示為 16G 的隨身碟但只能用 8G 那也是正常的。 凸

螢幕亮度設定程式 BrightControl

    看影片時候要把螢幕調到最亮,可是瀏覽網頁這種亮度又太刺眼,如果你經常要配合不同的應用調整螢幕亮度,而你的螢幕又不是EIZO的話,那這個程式可以幫你做到單鍵調整螢幕亮度,省去按螢幕OSD調整亮度的麻煩。

   

下載: MFC Static Library 版本 BrightControl.zip 
3231542282B33385960CB6B95F6A0056 

Share Library 版本 BrightControl0.32.zip  
E9A45AC37C028403D23748F0D63DAAE6 

如果你要自己寫一個的話,以下是參考資料及程式片段,我是用VS2008兜出來的。 
SetMonitorBrightness Dxva2.lib // Minimum supported client Windows Vista 
它應該是用 DDC 來控制螢幕的,不過這些 API 只有在 Vista 以上提供,我自己是在Windows7上使用。 

#include<HighLevelMonitorConfigurationAPI.h>

int CMonConfDlg::SetMonitorBright(HWND hWnd , DWORD cBrightness)
{
HMONITOR hMonitor = NULL;
DWORD cPhysicalMonitors;
DWORD minb=0;
DWORD curb=0;
DWORD maxb=0;
LPPHYSICAL_MONITOR pPhysicalMonitors = NULL;
// Get the monitor handle.
hMonitor = MonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY);

// Get the number of physical monitors.
BOOL bSuccess = GetNumberOfPhysicalMonitorsFromHMONITOR(
hMonitor, &cPhysicalMonitors);

if (bSuccess)
{
// Allocate the array of PHYSICAL_MONITOR structures.
pPhysicalMonitors = (LPPHYSICAL_MONITOR)malloc(
cPhysicalMonitors* sizeof(PHYSICAL_MONITOR));
if (pPhysicalMonitors != NULL)
{
// Get the array.
bSuccess = GetPhysicalMonitorsFromHMONITOR(hMonitor, cPhysicalMonitors, pPhysicalMonitors);

int n = 0;
do {
bSuccess = GetMonitorBrightness(pPhysicalMonitors->hPhysicalMonitor , &minb, &curb, &maxb);
if( !bSuccess ) {
dbg_printf("GetMonitorBrightness, n = %d, bSuccess = %d\r\r\n", n, bSuccess);
        GetErrorMessage(TEXT("GetMonitorBrightness"));
Sleep(RETRY_SLEEP);
}
n++;
} while( !bSuccess && n < MAX_RETRY);

if( bSuccess ) {
if( curb != cBrightness && minb <= cBrightness && cBrightness <= maxb ) {
int n = 0;
do {
bSuccess = SetMonitorBrightness(pPhysicalMonitors->hPhysicalMonitor , cBrightness);
if( !bSuccess ) {
dbg_printf("SetMonitorBrightness, n = %d, bSuccess = %d\r\r\n", n, bSuccess);
        GetErrorMessage(TEXT("SetMonitorBrightness"));
Sleep(RETRY_SLEEP);
}
n++;
} while( !bSuccess && n < MAX_RETRY);
dbg_printf("SetMonitorBrightness(%d), bSuccess = %d\r\r\n",cBrightness, bSuccess);
}
}

// Close the monitor handles.
        bSuccess = DestroyPhysicalMonitors( cPhysicalMonitors, pPhysicalMonitors);
// Free the array.
free(pPhysicalMonitors);
}
}
return curb;
}

我買到的 GA-880GMA-UD2H

20101011
在欣亞組的新電腦

中央處理器 AMD Athlon II X4-640四核心/3.0GHz/95W/45nm/512KB*4
主機板 技嘉 GA-880GMA-UD2H AMD880G+SB850/4*DDR3/USB3.0
記憶體 Kingston 金士頓 DDR3-1333 2GB (代理商盒裝) *2
內接式硬碟 Hitachi 1TB 3.5吋 SATAII 硬碟
電源供應器 全漢 藍晶鑽 II 400W 80+/PFC/日系電容/12cm溫控風扇/五年保

Dropbox 雲端硬碟

Dropbox 可以用來作不同電腦間的檔案分享及同步,Ubuntu 也可以用,而且使用很方便,不同帳號間可以透過分享資料夾來傳遞檔案,可以試用看看。

邀請連結
http://www.dropbox.com/referrals/NTEyMjE4MTQyOQ

設定好後邀請別人彼此可增加 250MB 空間 ( 最多可加到 8G )不過邀請和被邀請的人不可以在同一台電腦上,要用兩台電腦或虛擬電腦來玩。

--
如何增加 Dropbox 空間到 10G (2 + 8)

1. 使用 VirtualBox + Ubuntu Live CD 開機
2. 用裡面的 Firefox 開啟邀請的連結然後建立新帳號 (帳號用的 email 可以不是真實的)
3. 下載 Dropbox client 並安裝,然後用剛開的帳號進入 (這時邀請的人應該收到容量增加的通知了)
4. 關機,然後更改 VirtualBox 設定值--> 網路 --> 進階 --> Mac 位址 。

重複以上步驟,每次可增加 250M enjoy :)

(好像攻項會被檢查,所以不要加滿所有的名額,還有一天不要加太多個)
--

看來 Dropbox 有用 hash 值來管理所有人的檔案,當你要上傳的檔案曾經有人上傳到 Dropbox 過,同步就會立即完成,因為不須要上傳就可以得到一模一樣的檔案,這對分享熱門檔案來說真是方便。

--
容量加倍,擁有學網 .edu帳號 email 的人可以在下面送出認證的信,
https://www.dropbox.com/edu
所有邀請貢獻變 500MB ,上限變 16G
--