顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


主題 - dark

頁: [1] 2 3 ... 8
1
代碼: [選擇]
# df -h
Filesystem       Size     Used    Avail     Use%      Mounted on
/dev/sdc1      459G    436G         0     100%      /datas/c
# df
Filesystem                Size              Used    Avail     Use%      Mounted on
/dev/sdc1     480719056    456958620         0     100%     /datas/c

其實還沒滿 , 459-436= 能再塞東西進去

[root@localhost doc]# df -h /datas/c
Filesystem      Size       Used      Avail      Use%      Mounted on
/dev/sdc1       459G    440G           0      100%      /datas/c
[root@localhost doc]# df /datas/c
Filesystem        1K-blocks             Used    Available       Use%         Mounted on
/dev/sdc1      480719056    460410976              0       100%         /datas/c

再看 inode , 沒滿
[root@localhost doc]# df -i /datas/c
Filesystem       Inodes            IUsed             IFree     IUse%      Mounted on
/dev/sdc1      61063168       38591     61024577          1%      /datas/c

從沒把大容量硬碟塞滿過
若不是資料分批移入 , 心裡有的底
不然可能看到 0% 就換下一顆了

不知道 df 怎麼計算的 ?

不知道跟 MBR GPT 有沒有關? ... 這點 , 最後一顆 500G 來回搬多一次
用 parted 重切看看



(正準備空出一顆 2T 硬碟 , 好準備救 4T ...
還有 , 插 usb 快捷線的硬碟明顯比較燙耶 ... )

2
Linux 討論版 / MBR GPT 轉換問題
« 於: 2017-07-31 18:07 »
各位認為幾T的硬碟最合適呢 ?
(http://phorum.study-area.org/index.php/topic,71425.0.html)
那篇 , 不知道問題是不是 ... 請大大們幫忙判斷一下 ...

快兩個月沒見到那顆了 ... 昨天拔下來想在 win7 使用 ext2fsd 來檢視
但 ext2fsd 掃那顆 , win7 就會瞬間就藍屏並重開 , 能看到有些位址等資訊

因此猜想 , 恐怕是我使用 fdisk 割單槽 4T 緣故吧 ?
不知是否有像我一樣 , 硬用 fdisk 切割者 ?

另外 .. 回想推論
1. 這顆目前應該使用 2T 多
2. 記得當初 mkfs.ext4 做了兩三次才成功
3. 使用USB外接盒 , 在 win7 用 vmware 給 centos6.9_live_cd 掛載
外接A: 顯示 4T -> 但讀取時卻說硬碟不存在
外接B : 顯示 1.8 T -> super block error

加上 win7 軟體想掃這顆 , 可能造成溢位
不知是否因為磁區表在 MBR 緣故 ?

(可是 ... inode 跟 MBR 有關嗎 ?)


3
程式討論版 / 請問 "例如權限" 程式的計算
« 於: 2017-05-02 12:47 »
像 linux 檔案權限 777 , 755 ...
是將三種狀態 (rwx) 互相搭配的聰明表示法

以此觀念 , 小弟把 5 種資料欄位是否有值 , 以一個數字代表
那就是
資料a = 1 = 2^0
資料b = 2 = 2^1
資料c = 4 = 2^2
資料d = 8 = 2^3
資料e = 16 = 2^4

若值為 13 => 1+4+8 => a , c , d 有資料

0~31 種搭配 , 可能看久了像檔案權限一樣 , 一眼就有答案
今天想程式化
想半天卻想不出 程式 / 數學 上 , 怎麼判斷 13 包含 4

不知哪位能提供一下答案 , 謝謝!!

4
很久沒用 iproute2 了
但印象中 , 不是每個版本 OS 中 "ip rule add" 都會實際生效

小弟剛來此論壇時 , redhat7.3 可以 (作成精簡 image 一直使用中)
而小弟的多數 OS => centos4.4  centos 5.5 都不行

不知有使用 route 分流的各位
使用 OS 都是哪些版本 ?


這能省去抓光碟+測試時間
謝謝!!

5
Linux 討論版 / 分享 watch script
« 於: 2017-03-10 23:55 »
常用 watch 指令
偏偏 watch 不能顯示中文
剛剛終於決定狠心寫一個 script

想想對 watch 的不滿 , 還有 ..
1. clear 完 , 資訊總在螢幕最上方 => 所以改最下方且不 clear
2. 過多資訊總是 head 前幾行 -> 塞指令為什麼不加 tail => 不管 ... 加個 tail
3. 因為要捕捉 ctrl-c , 第?次再看很難的 trap 指令 , 這次只瞄幾秒 , 突然覺得好簡單

這決心是聯想到上此討論 head 與 tail 中斷是誰決定
所以 script 中那行
while true ;do echo ;done | head -$maxn
算是起點吧 ...

代碼: [選擇]
#!/bin/bash
# 中文

hhelp(){
echo $(basename $0)'
-n 幾秒循環
-head 超過螢幕用 head 取樣
-tail 超過螢幕用 tail 取樣

-h|-help|--help
'
exit
}

HT=/usr/bin/head
sec=1
while [ "$1" != "" ] ; do
case $1 in
-n)
sec=$2
shift 2
;;
-head)
HT=/usr/bin/head
shift
;;
-tail)
HT=/usr/bin/tail
shift
;;
-h|-help|--help)
hhelp
;;
*)
cmd=$cmd' '$1
shift
;;
esac
done

trap 'tput cup $(tput lines) 0;echo exit;exit' 1 2 3 15

echo '-------------------------------------------------------------'
echo '執行 '$cmd' / 每 '$sec' 秒'
echo '-------------------------------------------------------------'

maxn=0
while true;do
monitor=$(tput lines)
l=$(($monitor-3))
ans=$(eval "$cmd" | $HT -$l)
n=$(echo "$ans" | wc -l)
if [ $n -ge $maxn ] ; then maxn=$n ; fi

mysc=$(($monitor-$maxn-1))

while true ;do echo ;done | head -$maxn
tput cup $mysc 0
for((i=$mysc;i<$monitor;i++));do
tput cup $i 0
tput el
done

tput cup $mysc 0
echo "$ans"
tput cup $monitor $(tput cols)
sleep $sec
tput cup $mysc 0
done


6
database 討論版 / 請問 sqlite ROWID 問題
« 於: 2017-03-03 09:40 »
因為常用 VACUUM
使得刪除行後 , 所有資料都往前靠齊

若想某筆資料插入到某一行位置
不知該麼做 ?

謝謝!!

目前重寫新 table 解決

7
Linux 討論版 / 時間_絕對秒數_心得
« 於: 2016-10-17 22:48 »
發問過兩篇有關時間的問題
http://phorum.study-area.org/index.php/topic,71853.msg343960/topicseen.html#msg343960
http://phorum.study-area.org/index.php/topic,69998.msg340076.html#msg340076

以下整理兩篇文章的心得
將一些之前錯誤的觀念更正

若觀念中 , 還有錯誤 , 還請多多指教


一、先來結論跟文獻觀念:

GMT=Greenwich Mean Time=格林威治標準時間
太陽(天文)測量計算(倫敦)

UTC=Coordinated Universal Time=國際協調時間
原子共振頻率 (兩千年誤差一秒鐘) , 1980 起
以上兩縮寫是 "方法"

時區代號(其餘)
CST=Central Standard Time=中原標準時間
CST=GMT+8=UTC+8

PST=Pacific Standard Time=太平洋標準時間
PST=GMT-8=UTC-8


1. linux 下 : /etc/sysconfig/clock
ZONE="Asia/Taipei"
UTC=true
其中 ZONE 參數只是給人看的 。 UTC , GMT 即在此定義
而 date 參考的 "資料庫" 則是 /etc/localtime
範本在 /usr/share/zoneinfo/ (注1)

2. 絕對秒數又常被稱 unix time
=> linux 下其實不是 年-月-日 時:分:秒 在記錄 , 而是只有這個絕對秒數在跑
=> 任何時區下 date +%s 的值 , 都是相同值 => 寫資料時直接取絕對秒數即可 , 不需考慮時區

3. 台灣 = UTC+8
所以 , 台灣時間-8小時 = 地球(格林威治地點)的時間



二、 linux 指令 /bin/date
1. -u = utc (此參數很多餘) help 中是指使用 UTC , 實際作用翻譯成 "瞬間移動到倫敦"
=> date +%F_%T => 請問系統 , 現在日期時間 ?
=> date -u +%F_%T => "瞬間移動到倫敦" , 再 .. 請問系統 , 現在日期時間 ?
=> date --date="2016-10-17 21:00:00 10 min ago" +%F_%T  => 請問這時間是?
=> date -u --date="2016-10-17 21:00:00 10 min ago" +%F_%T  => "瞬間移動到倫敦" , 再請問這時間是?

2. --date (info 中提到 ago 用於計算過去時間)
=> 若只單純 -2 day 或只有 -2 hour , 這時負號不至於出錯
但在 --date="2016-10-17 10:00 -2 hour" 有指定時間時 , 使用負號會出錯


三、日光節約 , 注1 , 舊版 date , 實驗


舊版指的是 , 舊系統中找到的 : date 2.0.11 (附件) , date 4.5.3


日光節約
1945-05-01 1946-05-01 1947-05-01 1948-05-01 1949-05-01 1950-05-01 1951-05-01
1952-03-01 1953-04-01 1954-04-01 1955-04-01 1956-04-01 1957-04-01 1958-04-01
1959-04-01 1960-06-01 1961-06-01 1974-04-01 1975-04-01 1979-06-30
這些日期會出錯 :
[root@newsys]# date --date="1979-06-30" +%F
date: invalid date ‘1979-06-30’
加上 -u 則不會 (因為瞬間移動到倫敦了)
[root@newsys]# date -u --date="1979-06-30" +%F
1979-06-30

這是因為 :
[root@newsys]# for i in {1..4} ; do date --date="1979-06-29 23:59:57 $i sec" +%F_%T_%s; done
1979-06-29_23:59:58_299519998
1979-06-29_23:59:59_299519999
1979-06-30_01:00:00_299520000
1979-06-30_01:00:01_299520001
=> 1979-06-30 這天小時沒有0 , 而 --date="1979-06-30" 其實是 --date="1979-06-30 0:0:0"
=> -u 瞬間移動到倫敦才問 , 那時區的資料庫中 , 是節約其他小時的

到舊版系統中 :
[root@oldsys]# for((i=1;i<5;i++));do date --date="1980-06-29 23:59:57 $i sec" +%F_%T_%s; done
1980-06-29_23:59:58_331142398
1980-06-29_23:59:59_331142399
1980-06-30_01:00:00_331142400
1980-06-30_01:00:01_331142401
=> 修正秒數在一年後
=> 同樣是 Asia/Taipei 的資料庫 , 但 10 年前的系統 , 卻是在 "滿現象一年" 做修正
=> 此萬年曆 , 並非 "方程式" , 所以將來也會依宇宙的改變而改變


證明:
1. 將舊版 date , 複製到新版系統使用
[root@newsys]# for i in {1..4} ; do date_2.0.11/bin/date --date="1979-06-29 23:59:57 $i sec" +%F_%T_%s; done
1979-06-29_23:59:58_299519998
1979-06-29_23:59:59_299519999
1979-06-30_01:00:00_299520000
1979-06-30_01:00:01_299520001
=>相同資料庫 , 節約的小時相同

2. 在新系統中 , 改變時區資料庫
[root@newsys]# cp /usr/share/zoneinfo/America/Chicago /etc/localtime
[root@newsys]# date --date="1979-06-30" +%F_%T_%s
[root@newsys]# 1979-06-30_00:00:00_299566800

3. 舊版防呆 , 體貼設計 :
將時區還原台北
[root@newsys]# date_2.0.11/bin/date --date="1979-06-30" +%F_%T_%s
1979-06-30_01:00:00_299520000
此為 version 2.0.11 的防呆設計 , 直接跳到沒刪除節約的時間

[root@newsys]# date_2.0.11/bin/date --date="1979-06-$((30+90))" +%F_%T_%s
1979-09-28_00:00:00_307292400
舊版自動運算的體貼設計



特地找到舊版 , 因為自動運算消失後 , 曾適應一段時間 (懷念)

而小弟之前那兩篇 , 正因不了解 -u 與絕對秒數
一些主機會登入下指令的 , 就被我偷換 /bin/date 成 -u

不過舊版 date 日光節約的防呆也真的很實用

請問 :
如附件壓縮檔 , 是 32bit 系統程式 , cp 到 64 bit 可用 , /lib/ 下也沒有那兩個 lib 衝突 , 是否真不會影響原 64bit 其他程式 ?

是否有發現哪個 unix-like 64 bit 的 date 有此防呆設計 , 或有 source code 可用 ?


(附件超過 512 k , 分兩檔)
bin/date

lib/libc.so.6
lib/ld-linux.so.2

8
雜七雜八 / 請問絕對秒數 unix time
« 於: 2016-10-11 01:41 »
小弟有些資料會多加 unix time 欄位
雖一直沒用到 , 但今天發現
這些欄位有些 +8 hour , 也些沒有 -> 即 +0 hour

思考了很久 , 到底是該不該 +8 小時了 ?


只知
絕對秒數是從 1970-01-01 00:00:00 算起
有分時區嗎 ?

謝謝 !!



睏了 ... 差點貼錯版 ...  :P

9
如下 bash , 連續寫入約 10 秒

w10s.sh
代碼: [選擇]
#!/bin/bash

rm -f tmp.db3

sqlite3 tmp.db3 'create table tmptb(f01, f02, f03)'

for i in {1..999} ; do
    sqlite3 tmp.db3 "insert into tmptb values($(date +%s),$(date +%N),'xx')"
done

sqlite3 tmp.db3 "select f01 from tmptb" | wc -l

r10.sh
代碼: [選擇]
#!/bin/bash
sleep 3
for i in {1..10};do
    sqlite3 tmp.db3 "select f01 from tmptb limit 1" > /dev/null
done
echo $0 end



將 w10s.sh 丟背景執行 , 並執行 r10.sh
代碼: [選擇]
# sh w10s & sh r10.sh
[1] 6342
Error: database is locked
Error: database is locked
Error: database is locked
r10.sh end
# 997
[1]+  Done                    sh w10s.sh

由上可知 , 就算只有讀取 , 仍會 lock
造成寫入少了 3 行

請問 sqlite3 若只有讀取 , 該如何不 lock 呢 ?


10
雜七雜八 / 又來發牢騷了
« 於: 2016-05-27 07:58 »
這幾天很有衝動想買隻滑鼠
但就不知該怎麼買

其實觀察市面上滑鼠已經超過三個月了
(忍受三個多月來滑鼠突然沒回應要重開)
其實滑鼠壽命很長 , 手上的滑鼠都超過 5 年

滑鼠很難選 ...

1. 滾輪要光柵 .. 但就買過一隻微軟竟然是機械
聽說現在羅技也有一些使用機械滾輪 ... 但不拆怎知阿

2. 四項滾輪 .. 小弟習慣右邊 shift 左邊 enter
無論羅技或微軟 , 都是常駐程式擷取這兩鍵動作
基於兩家都只吃自己的產品 ...
... 是的 , 思考不同廠牌中 , 但常駐程式用那麼多很煩

3. 其實小弟手很小 , 市面上常見較小 9.5 cm 都略嫌大一點
而羅技與微軟大小樣式一直都沒亮眼的 ...
小弟手上問題羅技 , 買來可是拔軟膠 , 銼刀砂紙磨小 , 再噴紫色漆

4. 3 號電池 , 因為小弟電池都小改造過
但內部空間要改變不容易

另外 , 看對岸的滑鼠都好亮眼 ... 還有鋼琴鏡面烤漆 (目標)
但亮眼歸亮眼 , 不是光柵滾輪的機率更高

滑鼠的好壞 , 使用上心情真的差很多 ...
滑鼠可是跟狗一樣忠誠的好朋友阿 ..... 雖然我不喜歡狗

真悶 ...

11
雜七雜八 / 網路品質又下降了
« 於: 2016-05-15 17:36 »
記得多年前也曾經明顯感覺到

尤其各大入口網站(除了 google)
額外的連結一跑
到全部結束至少要花 10 秒以上

不過凌晨 4 ~ 6 點就超快

推想 ...
1. 手機的網路使用量耗費太多 internet 頻寬
2. 各網站外部連結太多 , 又疏於管理
(如 pagead2.googlesyndication.com 已被我加入 hosts 中)


前幾天想線上改個圖
還要檢視 dom 中刪除廣告元件 , 來讓頁面可視空間變大

在想 ...
不知有什麼技術 , 可以在前端就檢視網頁原始碼
把不想要的區塊直接刪掉

不知道有沒有智能型的 proxy


12
Linux 討論版 / 請問 utf8 的 "有" 字
« 於: 2016-05-08 15:45 »
使用 putty
當進入 "有" 字的資料夾 (如 "有事" , "沒有" ...)
就會在行首跳一個亂碼
每按一下 enter 就噹一聲  >:(

這個 "有" 字是哪裡不同 ?
還有哪些字也有這問題嗎 ?

謝謝!!


13
Linux 討論版 / linux 系統的文字編碼問題
« 於: 2016-04-26 01:59 »
掛硬碟的系統
LANG="zh_TW.Big5"
samba
dos charset = CP950
unix charset = BIG5

請問 1. samba 看得懂 cp950=big5 嗎 ? 或是一個已經失效 ?
請問 2. 少了 display charset , 那這值這時是什麼 ?



周圍 linux 都是 LANG="zh_TW.utf8"
而且文字檔內容一定是 linux 的 utf8 格式
如 linux_client01 有個 script
#!/bin/bash
cat /allmnt/日期檔

請問 3. 很奇怪 , 執行結果都沒錯
但這時周圍 linux 的 "日期檔" 在 utf8 文件中應該是 9 字元 , 而掛過來的應該只有 6 字元吧?
所有電腦都是掛載網路磁碟 , 在執行 /allmnt/自己IP/go
當初編寫一段執行一段的 , 當然會跑的程式就會跑 ... 只是很奇怪

而所有 xp , linux , win7 都掛網路磁碟存到這
請問 4. 很想 convmv 一口氣全換成 utf8 檔名
不知道哪些機器可能會出錯 ?


謝謝 !!





14
Linux 討論版 / 請問音軌聲道 + 求檔
« 於: 2016-04-20 15:38 »
據 google 資料知 , 儘管多 4, 5.1聲道 , 也存在同一 wav 檔中
使用 ffmpeg

# ffmpeg -i wav.wav
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, wav, from 'wav.wav':
  Duration: 00:52:54.55, bitrate: 2116 kb/s
    Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s32, 2116 kb/s
At least one output file must be specified

find 找到的都是顯示 stereo

請問如何辨識多聲道檔案呢 ? 能用 ffmpeg 嗎 ?

哪裡有 5.1 wav 提供一個小檔案測試看看




15
Linux 討論版 / sort 指令奇怪的問題
« 於: 2016-04-10 10:59 »
原以為中文字 , utf8 之類問題 , 但這些欄位都刪了
看來是遇到欄位使用逗號分隔的 bug 吧

編輯一個文字檔 mm
代碼: [選擇]
0,0,0,0,10,0,0,0,0,0,0,
0,0,0,0,0,0,383,0,0,0,0,
14,17,1,2,25009,2,11307,2,2,17,1,
520,520,520,520,1,486,61,286,865,545,520,
0,0,0,0,0,585,0,386,1070,0,0,
0,0,0,0,0,685,0,66,1170,0,0,
0,0,0,0,0,785,0,76,1270,0,0,
想以數字排列第 7 欄 (直接管線交 cut 檢察排對了沒)

代碼: [選擇]
# sort  -t ',' -k 7 -n mm | cut -d ',' -f7
0
383
0
0
0
11307
61
錯誤
代碼: [選擇]
#sed 's/,/a/g' mm | sort  -t 'a' -k 7 -n | cut -d 'a' -f7
0
0
0
0
61
383
11307
正確
代碼: [選擇]
# cut -d ',' -f 1-8 mm | sort  -t ',' -k 7 -n | cut -d ',' -f7

0
383
0
0
0
11307
61
錯誤

代碼: [選擇]
# cut -d ',' -f 1-7 mm | sort  -t ',' -k 7 -n | cut -d ',' -f7
0
0
0
0
61
383
11307
正確


代碼: [選擇]
# rpm -qf /bin/sort
coreutils-8.4-16.el6.x86_64

# sort --version
sort (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

由 Mike Haertel 和 Paul Eggert 編寫。

16
雜七雜八 / 海量資料的疑問
« 於: 2015-12-09 18:34 »
小弟猜想 ..
目前網路上的空間 (如百度等)
所存放的檔案依據 MD5 編碼做為索引
抓 BT 或別人檔案就只是加入 link

應該是如此吧 ?

那是否有不同檔案類型的分類呢 ?
(如文件放在文件主機/壓縮磁區 .. 如此猜測不知對否 ?)


若以上猜測正確 ...
那 MD5 雖不可逆 , 但卻可能發生碰撞
目前全球的資料量 , 理當超過 16^43 了吧 ?

就算加上檔案標頭辨識 ... 光只純文字檔 , 有天也會達標吧 ?


有點杞人憂天 ... 但 , 冥王星近照不也花九年  ;)

17
雜七雜八 / 各位認為幾T的硬碟最合適呢 ?
« 於: 2015-10-05 21:41 »
小弟目前認為是 4 T 硬碟較佳
因為 5 6 T 單碟都是 1T 硬塞 , 且氦氣技術不知跑空氣進去會不會掛

而 8 T 以上多冷儲存技術 , 以範圍磁區為單位進行寫入
似乎有點浪費空間且效能未必好的感覺(反正還很貴)


因為剛剛一顆 wd 4T 綠標突然就消失了
奇怪的是 umount 說 device busy , 但 fdisk -l 卻沒出現這顆
因為尚有 guest os 須工作到凌晨 , 所以不能重開機
但半小時候 , 突然又出現了 ... 真奇妙

所以不禁思考 , 選 4 T 對嗎 ?  是否該再買一顆 ?
裡面雖然是布袋戲 , 七龍珠 , 海賊王 ...
理當歸類成 "重要文件" , 但備份似乎 ...  :-\

18
請問
代碼: [選擇]
a(){
while true ;do 想事先多做些事 ;done
}

a &

while true;do
 做事1 &
 做事2 &
...

 wait
done

如上架構
若多出 a() 想執行 , 此時 wait 會因為 a() 而一直等

是否有辦法讓 a() 變為不是此 script 的子程序呢 ?

謝謝!!

19
Linux 討論版 / 秒數數字判斷錯誤
« 於: 2015-07-10 10:38 »
請問以下問題 , 小弟想不出為何 08 09 錯誤 ...
代碼: [選擇]
for i in {0..60} ; do
  date +%S
  if [ $(($(date +%S)%10)) -eq 0 ] ;then
    echo ya
  fi
  sleep 1
done
if [ 08 -eq 8 ] ;then echo ya ; fi
08 09 秒時會出現錯誤而中止
-bash: 08: value too great for base (error token is "08")
-bash: 09: value too great for base (error token is "09")

其餘秒數皆不會
為什麼只有 08 09 秒有錯 ?


20
代碼: [選擇]
<script src="jquery-1.7.1.min.js"></script>
<script>

aaa="a,x={'b1':'b1v'},c";

data=aaa.split(",");
data[1]=eval(data[1]+";");


var output='data:<br>';
$.each(data, function( key, value ) {
output+=key+"="+value+"<br>";
});
document.write(output);

var output='<br><br><br>data[1]:<br>';
$.each(data[1], function( key, value ) {
output+=key+"="+value+"<br>";
});
document.write(output);
</script>

執行結果
代碼: [選擇]
data:
0=a
1=[object Object]
2=c



data[1]:
b1=b1v

如上:
請問 x 去哪了 ?


謝謝!!

21
Computer 討論版 / 請問 GPU 跟顯示卡的關係
« 於: 2015-06-04 00:48 »
小弟只知目前顯示卡內是 GPU 不依靠 CPU 的獨立運算
但上網看顯示卡 , 都只說是 GPU , 但沒說這 GPU 有幾顆

又聽說有跑運算程式 , 可以交由 GPU 來運算
是怎樣丟給顯示卡跑的呢 ?
不知又會達到什麼程度呢 ?

謝謝!!

22
程式討論版 / 請問排序的相反
« 於: 2015-05-23 07:51 »
大家早 ...
先分享一下 : 根據研究 , 睡夢中的思考能力比醒著時快
小弟是深信不疑 ... 只可惜一覺醒來 , 還是想不出好辦法
(不知道是不是英國研究的 ... 小弟個人是滿喜歡英國研究的報導)

 :P

一物件中許多雜湊 , 依 t=絕對時間 排序著:
t=1,資料=...
t=1,資料=...
t=2,資料=...
t=3,資料=...
.....

若希望順序是上下的 t 值不相等 , 即
t=1,...
t=2,...
t=1,...
t=3,...
(許多種答案之一種即可)

若某值如 t=2 超過半數時 , 寧可塞 t=null,null,null...(有 1970 年以前的資料)
例如

t=1,...
t=2,...
t=2,...
t=2,...
t=2,...
t=3,...
變成
t=2,...
t=1,...
t=2,...
t=3,...
t=2,...
t=null,null,...
t=2,...

1.
不能一開始就塞 t=0
這樣雜湊長度就變太長了

2.
處理速度是首選 , 目前也還不知什麼方法最快
另外也一邊思考著會不會太耗記憶體 (純程序邏輯)
或需不需要暫存檔 (借由 linux 的 join paste 或不同程式語言)


思考
代碼: [選擇]
while (count(old_array)>0){
    list (old_array){
        if (t不同) 移動到 tmp_array
        else 移動到底部
    }
}

但資料多時 , 這樣的純程序
恐怕不比 linux 指令 split 切一半 , 兩檔合併 (又有過半數問題)

目前想到這裡 ... 所以上來請教
不知有沒有 unsort 這類指令或函數 ?
或有比較有效率的邏輯 ?


謝謝!!

23
前天資料整理一半就熱當 ...昨天把 NB 風扇清一清
早上起來我的筆電 z360 還活著 ...
... 沒辦法 ... 我更怕熱 ... 要吹冷氣

但只要室溫超過 25 度 , 即使有散熱墊
背面蓋上使用半小時一樣會到 七八十度

不知道大家有沒有散熱好方法呢 ?
... 最好有 "懶人不清風扇法"

思考了一天 , 真該抱怨一下 .. 筆電散熱機制怎這麼差
... 不過實際原因恐怕不知哪些原件老化 , 阻抗變大 , 更易發熱

... 廢話太多

想問一下 ..
1. 有電烙鐵溫度高於 1000 度的嗎 ? (鋁的熔點 900 多 , 有人自製過散熱片嗎 ?)

2. 如筆電風扇 , 風向由正上方(垂直面)吹向側面
有側面吹向側面的風扇嗎 ? (想把傳導機制改為對流)


24
網頁技術 / 分享給還在用舊版千千靜聽
« 於: 2015-04-21 18:38 »
天阿 ... 50 行不到 ... 花了我 4 小時


應該去年千千靜聽 (我用 5.7 版) 抓歌詞就漸漸錯誤了
可能是大陸越來越不注意台灣流行音樂
所以較新的歌都沒歌詞 , 甚至抓到歌名相近卻不同首的大陸流行樂

小弟就把自動下載歌詞關掉
手動編輯 lrc 檔

先給建議 ..
1. 至少把 "下載後自動覆蓋" 關閉 , 小弟沒把握抓到是正確
使用手動搜尋歌詞 , 若舊檔存在 , 就另外命名檔案
再使用 "歌詞關聯" 決定留不留

2.
findlrc01 使用 google 搜尋歌手+歌曲 , 從 mojin (魔鏡歌詞網) 抓
原本想先代替去把 (hosts 位置) 站裡的資料 file 回來確認 ...
寫到最後 , 乾脆 google + 完直接貼 bash (吃飯時間近了)
可增加其他方法 findlrc02 ... findlrc03



以下解法 .. (須有自己的 web server)
1.
將聽歌的桌機 hosts 檔增加
代碼: [選擇]
192.168.8.80 ccnc.qianqian.com
192.168.8.80 cct2.qianqian.com
192.168.8.80 ttlrccnc.qianqian.com
192.168.8.80 ttlrcct.qianqian.com

2.
php.conf 增加 php 副檔名 dll (我是 8.80 web server 那台)
代碼: [選擇]
AddHandler php5-script .php .dll
AddType text/html .php .dll

3. 將底下 php 檔存成 /var/www/html/dll/lyricsvr.dll
代碼: [選擇]
<?php
session_id
("lrcdirtmp");
session_start();


function 
unicode_decode($strs){
$restr='';
for($i=0;$i<strlen($strs);$i+=4){
$tmpstr=substr($strs,$i,4);
$tmpstr=chr(base_convert(substr($tmpstr,0,2),16,10)).chr(base_convert(substr($tmpstr,2,2),16,10));
$tmpstr=iconv('UCS-2''UTF-8'$tmpstr);
$restr.=$tmpstr;
}
return $restr;
}

function 
findlrc01($name,$song){
// 魔鏡歌詞網
$tmpstr='LANG=zh_TW.UTF-8;lynx --dump "$(lynx '."--dump 'http://www.google.com.tw/search?q=$name+$song+歌詞&gws_rd=ssl' | grep mojim | ".'head -1 | awk "{print \$1}")" | sed "s/^[ \t]*//g" | grep -E "^\\[ti:|^\\[ar:|^\\[al:|[00-59]:[00-59]" ';
system($tmpstr);
}

if(@
$_GET['dl?Id']!=""){
findlrc01($_SESSION['a'][$_GET['dl?Id']]['歌手'],$_SESSION['a'][$_GET['dl?Id']]['歌名']);
}else{
$tmpstr=time();

$_SESSION['a'][$tmpstr]['歌手']=iconv("BIG5","UTF-8",iconv("gb2312","BIG5",iconv("UTF-8","gb2312",unicode_decode($_GET['Title']))));
$_SESSION['a'][$tmpstr]['歌名']=iconv("BIG5","UTF-8",iconv("gb2312","BIG5",iconv("UTF-8","gb2312",unicode_decode($_GET['sh?Artist']))));

echo '<?xml version="1.0" encoding="UTF-8" ?>
'."\n";
echo '<result>'."\n";
echo ' <lrc id="'.$tmpstr.'" artist='.$_SESSION['a'][$tmpstr]['歌手'].' title="'.$_SESSION['a'][$tmpstr]['歌名'].'"></lrc>'."\n";
echo '</result>'."\n";

}



$oldist=array_keys($_SESSION['a']);
$nowtimeu=time();
for($i=0;$i<count($oldist);$i++){
if($nowtimeu-$oldist[$i]>600){
unset($_SESSION['a'][$oldist[$i]]);
}
}


?>




ps ..
千千靜聽發出查詢
http://ttlrccnc.qianqian.com/dll/lyricsvr.dll?sh?Artist=E180875B015A&Title=3172315C2F66&Flags=0&ci=6111756532545c3a5316101c0219106c5622292758564444141c464808425c5353011d01
千千靜聽發出要檔
http://ttlrccnc.qianqian.com/dll/lyricsvr.dll?dl?Id=783662&Code=163128925&ci=6111756532545c3a5316101c0219106c5622292758564444141c464808425c5353011d01


剛發現一個問題
當抓下來的魔鏡網頁中 , 同時有兩首以上歌詞
全抓存檔 , 但千千靜聽視 "第一首歌歌詞=[時間值]" + "最後一首歌標題=[標籤值]" 有效


25
代碼: [選擇]
#!/bin/bash

hhelp(){
echo '標準差
'$(basename $0)' 數列
echo 數列 | '$(basename $0)
exit
}
if [ "$(echo "$1 " | grep -Ei '\--help|-h ')" != "" ] ; then hhelp ; fi

##### 問題在這裡 : -t 秒數
nums=($(while read -t 1 x;do
echo $x | sed 's/ /\n/g'
done | grep -Ev '^$|[^0-9\.]'))

if [ "$nums" = "" ] ; then nums=($(echo $@ | sed 's/ /\n/g' | grep -Ev '^$|[^0-9\.]')) ;fi


#echo ${nums[*]}

#  ____________________________
# √ [(N1-MA)²+(N2-MA)²+...] /n         (兩個迴圈)
#echo ${nums[*]} | awk 'BEGIN{ma=0;total=0}{for(i=1;i<=NF;i++){ma=ma+$i}ma=ma/NF;for(i=1;i<=NF;i++){total=total+($i-ma)*($i-ma)};printf "%.2f", sqrt(total/NF)}'

#  _________________________
# √ (N1²+N2²+...)/n  -  MA²              (一個迴圈)
echo ${nums[*]} | awk 'BEGIN{ma=0;total=0}{for(i=1;i<=NF;i++){ma=ma+$i;total=total+$i*$i}ma=ma/NF;printf "%.2f\n",sqrt((total/NF)-(ma*ma))}'


數列 nums 的取值方式如上
while read 比 預設變數 $@ 優先

執行方式可以
[root@MDS77 tmp]# mymath_sd 1 2 3 4 5
1.41
[root@MDS77 tmp]# echo 1 2 3 4 5 | mymath_sd
1.41

while read -t 1 x , 等待秒數是為了讓使用預設變數輸入時可用 (原本 -t 0)

------------------------------------------------
但多次引用 mymath_sd 時 , 例如
[root@MDS77 tmp]# while true;do
> mymath_sd $(for i in {1..10};do echo {1..10}$RANDOM | mymath_sd ; done)
> done
39204.39
43584.46
awk: (FILENAME=- FNR=1) fatal: division by zero attempted
31496.08
awk: (FILENAME=- FNR=1) fatal: division by zero attempted
34499.85

找到原因是 while read -t 時間太短 , 子程序來不及讀
測試不同台 linux , cpu 慢的好像還比較不會錯 =.=


不知除了 read , 是否有其他指令能從管線 pipe 取得資料呢 ?
謝謝!!


26
雜七雜八 / /bin/date 處理 79-06-30
« 於: 2014-08-11 08:28 »
剛剛從 log 看到
代碼: [選擇]
date: invalid date ‘79-06-30 +11 year’
date: invalid date ‘81-02-29 +11 year’
date: invalid date ‘85-02-29 +11 year’

這應該是民國轉西元的動作
date --date="85-02-29 +11 year" +%F
85-02-29 不存在 ... 那 79-06-30 呢 ?

手動打了
date --date="79-06-30" +%F
結果
date: invalid date ‘79-06-30 ’



27
PHP程式設計討論區 / php session 行為變了嗎?
« 於: 2014-05-22 23:11 »
<?php //a1.php
session_start();
$_SESSION['a']="aa";
?>
<a href="b2.php">b2</a>

<?php //a2.php
echo $_SESSION['a'];
?>

第一個視窗開 a1.php , 再進入 a2.php 會出現 echo
再另外新開第二個視窗 , 直接連 a2.php 理當不會出現 echo
理當這才是 session 觀念吧 ...

但今天怎麼試 , 第二新開視窗都像繼承了第一個視窗一樣
查詢 cookies 中的 PHPSESSID 也都沒變
(當然不同瀏覽器正常)


是 session 行為變了 , 還是 browser 行為變了 ?
(ps: 以前使用 session 的確第二視窗會不同 session id 阿)


另外 ..
以前沒使用 cookies 習慣
而以前的印象 , 一個網站可以用 5 個 cookies ?
但剛剛稍微 google 了一下 , 有人說 n 個的 ... 就是沒看到 5 個的
但也還沒找到第二個 cookies 怎麼用 ?

1.
而目前小弟想試試一個 a.php -> b.php 的變數傳遞有哪些方法
不知這樣能不能兩個以上 cookies 同時使用

2.
單就 a -> b  , 能使用兩個 session (在 server 端)
... 理當換一下 session_id() 就好吧 ?

以上 "用途" , "可行性" , "做法" 都還在思考中

不知各位是否有利用 session 或 cookies 做過特別手法的傳遞數值 ?
還請多多指教 , 謝謝!!

28
不少程式編輯軟體都有個功能
function abc(){
......
}

在這兩行前就有 + - 符號
可以縮起來隱藏

if , 迴圈 ... 等都有


假設程式碼 30 ~ 50 行 , 想要視為一區段
有能讓這範圍 "縮起來" 的辦法嗎 ?


以往都是在前後行 /* # 顯眼的標示 # */
但若遇到千行程式 , 滑鼠滾輪都抗議了 ...

因此挑選上了 Aptana 作為編輯器 (正在熟悉中)
且正在思考是否有 "什麼記號或功能"
能將自訂範圍縮起來

不知各位如何處理此類困擾呢 ?

謝謝!!

29
在 linux 指令列目前只知道 ldapsearch 列出使用者資訊

有指令能達到如 php
ldap_bind($ldapconn,"uid=".$帳號.",ou=users,dc=dark,dc=lab",$密碼)
輸入帳號密碼 , 得知此密碼正確的指令嗎 ?



另外 acl 預設中
"database config" , "database monitor"
搜尋到的文件中似乎都沒用到 , 這兩行是必要嗎 ?
代碼: [選擇]
database config
access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
        by * none

database monitor
access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
        by dn.exact="cn=Manager,dc=my-domain,dc=com" read
        by * none

30
Linux 討論版 / 臨時寫的 chroot 方便 script
« 於: 2014-01-04 00:04 »
今天跟同事說明 chroot
臨時寫了一隻方便用的 script
寫完講完滿開心的 ... 因為竟然都沒出錯

但直覺應該有例外 ... 哪有 check lib 就全過的
一定是今天拿來舉例的指令都太幸運了


1. 建立 script 在想 chroot 的目錄下
2. # sh thissh (第一次不代參數,會建立資料夾跟 bash )
3. # sh thissh 指令 (建立想支援的指令與所需 lib)
代碼: [選擇]
#!/bin/bash

[ ! -d "bin" ] && {
        mkdir bin lib
        ln -s lib lib64
}
export thisdir=$PWD

supcmd(){
        errmsg=$(echo $1 | chroot $thisdir 2>/dev/stdout)
        if [ "$(echo "$errmsg"|grep -i error)" = "" ] ; then
                return 0
        else
                cp $(whereis $(echo "$errmsg" | awk 'BEGIN{FS=": "}{for(i=1;i<NF;i++)print $i}' | grep -vE ' |/') | sed 's/ /\n/g' | grep '^/lib') lib
                supcmd $1
        fi
}

if [ "$1" = "" ] ; then
        scmd=bash
        if [ ! -f "bin/bash" -o "$(ls lib)" = "" ] ; then
                cp /bin/bash bin
                cp $(find /lib* | grep ld-linux) lib
        fi
else
        scmd=$(basename $1)
fi

if [ ! -f "bin/$scmd" ] ; then
        cp $(whereis $scmd | sed 's/ /\n/g' | grep bin | head -1) bin
fi
supcmd "$scmd"
echo 'it is support '$scmd' in # chroot '$PWD

頁: [1] 2 3 ... 8