去日本必裝APP
NTT的無線上網APP. 註冊可用90天沒用會被回收帳號
https://play.google.com/store/apps/details?id=com.nttbp.jfw
NAVITIME for Japan Travel
https://play.google.com/store/apps/details?id=com.navitime.inbound.walk&referrer=utm_source%3Dfrom_ntt%26utm_medium%3Dpc
Free Wifi
http://flets.com/freewifi/tw/spot.html
地鐵轉乘APP
https://play.google.com/store/apps/details?id=jp.co.jorudan.NrKjGree
2014年11月29日 星期六
2014年11月8日 星期六
linux mount USB DISK (NTFS)
0.安裝 NTFS : sudo apt-get install ntfs-3g
1.查看所有 DEVICE 的狀況: fidks -l
2.查看所有 mount 資料: df -aTh
3.解除原本系統自動MOUNT 上來的東西
umount /media/AABBCCDDEE
4.重新mount 自己要的東西.
mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/usbhdd
5.去 nano /etc/fstab
增加一行
/dev/sda1 /media/usbhdd ntfs-3g uid=pi,gid=pi 0 0
注解:
-t vfat' tells the mount command that your drive has a fat32 file system. If your drive is formatted with NTFS, you should use '-t ntfs-3g' instead. The '-o uid=pi,gid=pi' part of the command means that the disk will be owned by user pi. You can use this command to unmount the disk:
1.查看所有 DEVICE 的狀況: fidks -l
2.查看所有 mount 資料: df -aTh
3.解除原本系統自動MOUNT 上來的東西
umount /media/AABBCCDDEE
4.重新mount 自己要的東西.
mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/usbhdd
5.去 nano /etc/fstab
增加一行
/dev/sda1 /media/usbhdd ntfs-3g uid=pi,gid=pi 0 0
注解:
-t vfat' tells the mount command that your drive has a fat32 file system. If your drive is formatted with NTFS, you should use '-t ntfs-3g' instead. The '-o uid=pi,gid=pi' part of the command means that the disk will be owned by user pi. You can use this command to unmount the disk:
2014年11月7日 星期五
重設 owncloud 密碼
OwnCloud 密碼忘了..
1先找出 owncloud.db 的存方地.
sudo find / -name "owncloud.db"
/var/www/owncloud/data/owncloud.db
2.先產生一組新的密碼
echo -n "1234567" | sha1sum
201231asdfafwerq913132412341412341 <=等下要UPDATE 密碼用的
3.進到1 的目錄中
cd /var/www/owncloud/data
4.進sqlite
sqlite3 owncloud.db
5. 先看看 owncloud 中 oc_users table 欄位的名稱
pragma table_info(people);
回傳
uid|varchar(64)||||
displayname|varchar(64)||
password|varchar(255)|||
6. Update使用者密碼.
update oc_users set password='201231asdfafwerq913132412341412341' where uid='user id'
OK
1先找出 owncloud.db 的存方地.
sudo find / -name "owncloud.db"
/var/www/owncloud/data/owncloud.db
2.先產生一組新的密碼
echo -n "1234567" | sha1sum
201231asdfafwerq913132412341412341 <=等下要UPDATE 密碼用的
3.進到1 的目錄中
cd /var/www/owncloud/data
4.進sqlite
sqlite3 owncloud.db
5. 先看看 owncloud 中 oc_users table 欄位的名稱
pragma table_info(people);
回傳
uid|varchar(64)||||
displayname|varchar(64)||
password|varchar(255)|||
6. Update使用者密碼.
update oc_users set password='201231asdfafwerq913132412341412341' where uid='user id'
OK
2014年10月28日 星期二
AquaData Studio ORACLE OCI 8.1i
AquaData Studio 中如果要去使用 OCI 方式去連ORACLE 8I DB時他會出現.一些錯誤.
說目前 ADS 是使用 10 版的如要 請自己修改ORACLE 版本.
以下網址供參考.
https://www.aquaclusters.com/app/home/project/public/aquadatastudio/wikibook/Documentation12/page/Oracle-JDBC-Drivers/Oracle-JDBC-Drivers#oracle_jdbc_driver_location_8i
STEP1: 刪除 ADS 原本的ORACLE DRIVER. 我沒作.我用的是舊版的.
STEP2: 由 C:\oracle\ora81\jdbc\lib COPY
nls_charset12.zip classes12.zip到
C:\Program Files\Aqua Data Studio 7.5 - 32bit\lib\drivers 目錄下.
並修改副檔名 .ZIP to .jar
STEP 3: 進ADS ->HELP-> about -> JDBC Driver 可看到 ..oracle.jdbc.driver.OracleDriver =1.0
OK
說目前 ADS 是使用 10 版的如要 請自己修改ORACLE 版本.
以下網址供參考.
https://www.aquaclusters.com/app/home/project/public/aquadatastudio/wikibook/Documentation12/page/Oracle-JDBC-Drivers/Oracle-JDBC-Drivers#oracle_jdbc_driver_location_8i
STEP1: 刪除 ADS 原本的ORACLE DRIVER. 我沒作.我用的是舊版的.
STEP2: 由 C:\oracle\ora81\jdbc\lib COPY
nls_charset12.zip classes12.zip到
C:\Program Files\Aqua Data Studio 7.5 - 32bit\lib\drivers 目錄下.
並修改副檔名 .ZIP to .jar
STEP 3: 進ADS ->HELP-> about -> JDBC Driver 可看到 ..oracle.jdbc.driver.OracleDriver =1.0
OK
2014年7月21日 星期一
使用ORACLE 10I 以上,來解 BOM 表與求需求量
TIPTOP ERP ORACLE BOM QTY
/*正解*/
select bmb01, bmb03, level, bmb06,
LTRIM(sys_connect_by_path(bmb01, '->'), '->') fpath,
LTRIM(sys_connect_by_path(bmb06, '->'), '->') ausage,
str_mult(sys_connect_by_path(bmb06, '*')) quate
from bmb_file
start with bmb01 like '01DS102200G%'
connect by prior bmb03=bmb01
/*或是使用 olap 內建的FUNCTION, 因為我的環境沒安裝這東西所以無法使用*/
select bmb01, bmb03, level, bmb06,
LTRIM(sys_connect_by_path(bmb01, '->'), '->') fpath,
LTRIM(sys_connect_by_path(bmb06, '->'), '->') ausage,
dbms_aw.eval_number(ltrim(sys_connect_by_path(bmb06, '*'), '*')) quate
from bmb_file
start with bmb01 like '01DS102200G%'
connect by prior bmb03=bmb01
CREATE OR REPLACE FUNCTION GWH.str_mult(p_str IN VARCHAR2) RETURN NUMBER
AS
l_str VARCHAR2(1000):=p_str||'*';
l_n NUMBER;
l_data NUMBER:=1;
BEGIN
IF instr(l_str,'*')=1 THEN
l_str:=SUBSTR(l_str,2);
END IF;
LOOP
l_n:=instr(l_str,'*');
EXIT WHEN (NVL(l_n,0)=0);
l_data:=l_data*TO_NUMBER(SUBSTR(l_str,1,l_n-1));
l_str:=SUBSTR(l_str,l_n+1);
END LOOP;
RETURN l_data;
END;
/*正解*/
select bmb01, bmb03, level, bmb06,
LTRIM(sys_connect_by_path(bmb01, '->'), '->') fpath,
LTRIM(sys_connect_by_path(bmb06, '->'), '->') ausage,
str_mult(sys_connect_by_path(bmb06, '*')) quate
from bmb_file
start with bmb01 like '01DS102200G%'
connect by prior bmb03=bmb01
/*或是使用 olap 內建的FUNCTION, 因為我的環境沒安裝這東西所以無法使用*/
select bmb01, bmb03, level, bmb06,
LTRIM(sys_connect_by_path(bmb01, '->'), '->') fpath,
LTRIM(sys_connect_by_path(bmb06, '->'), '->') ausage,
dbms_aw.eval_number(ltrim(sys_connect_by_path(bmb06, '*'), '*')) quate
from bmb_file
start with bmb01 like '01DS102200G%'
connect by prior bmb03=bmb01
CREATE OR REPLACE FUNCTION GWH.str_mult(p_str IN VARCHAR2) RETURN NUMBER
AS
l_str VARCHAR2(1000):=p_str||'*';
l_n NUMBER;
l_data NUMBER:=1;
BEGIN
IF instr(l_str,'*')=1 THEN
l_str:=SUBSTR(l_str,2);
END IF;
LOOP
l_n:=instr(l_str,'*');
EXIT WHEN (NVL(l_n,0)=0);
l_data:=l_data*TO_NUMBER(SUBSTR(l_str,1,l_n-1));
l_str:=SUBSTR(l_str,l_n+1);
END LOOP;
RETURN l_data;
END;
2014年5月27日 星期二
informix table lock
select unique
dbsname db,
tabname ,
--zt02,
case
when type="S" then "shared lock"
when type="IS" then "intent shared lock"
when type="SIX" then "shared intent excl lock"
when type="XS" then "shared key value by RR"
when type="IX" then "intent excl lock"
when type="X" then "exclusive lock"
when type="XR" then "excl key value by RR"
when type="U" then "update lock"
when type="B" then "byte lock"
else
"unknown lock type"
end lock_type,
lpad(owner,5) ses_id,
lpad(waiter,5) wait_id
from sysmaster:syslocks
-- left outer join ds:zt_file on zt01=tabname
where tabname != 'sysdatabases'
找出 wait_id 有值的.代表他在等某一個東西 release.
nstat -g ses | grep 88999 (note ses_id)
find session id to query processs id 再去KILL 他.
dbsname db,
tabname ,
--zt02,
case
when type="S" then "shared lock"
when type="IS" then "intent shared lock"
when type="SIX" then "shared intent excl lock"
when type="XS" then "shared key value by RR"
when type="IX" then "intent excl lock"
when type="X" then "exclusive lock"
when type="XR" then "excl key value by RR"
when type="U" then "update lock"
when type="B" then "byte lock"
else
"unknown lock type"
end lock_type,
lpad(owner,5) ses_id,
lpad(waiter,5) wait_id
from sysmaster:syslocks
-- left outer join ds:zt_file on zt01=tabname
where tabname != 'sysdatabases'
找出 wait_id 有值的.代表他在等某一個東西 release.
nstat -g ses | grep 88999 (note ses_id)
find session id to query processs id 再去KILL 他.
2014年5月6日 星期二
informix table extent 相關
Informix DB:
create table 時 informix 會先allocate 一個空間給這個TABLE 使用. 如果空間不夠時. informix 會再allocate 一個空間來使用.如果這二個空間剛好都是連在一起,在Informix 中我們叫他為一個 extent,資料庫長時間使用下有可能使得TABLE的EXTENT 值變大.大過一定值(200以上?) 會出現錯誤.這時我們就要重新規劃了.
先用以下命令去找.所有資料庫table extent與他的SIZE
select
dbsname,
tabname,partnum,
count(*) num_of_extents,
sum(pe_size) total_size
from
systabnames, sysptnext
where
partnum = pe_partnum
and partnum > 99
and dbsname <> "sysmaster"
and dbsname <> "sysutils"
and tabname <> "TBLSpace"
group by 1,2,3
order by 1,5 desc ;
我查出我的MYTABLE001 他空用有201個EXTENT 共 771400 KB ,
這時我要先建一個TABLE 內容與原TABLE 名稱多加個_TEMP 並同時給他初始大小與增大大小(KB)
CREATE TABLE tiptop.mytable001_temp (
imk01 CHAR(20),
imk02 CHAR(10),
imk03 CHAR(10),
imk09 DECIMAL(15,3)
)
EXTENT SIZE 921600 NEXT SIZE 61440
LOCK MODE PAGE
之後再把資料insert 到Temp table
insert into mytable001_temp select * from mytable001
再把原TABLE DROP, 再把temp table rename 到原table
drop table mytable001
RENAME TABLE mytable001_temp TO mytable001
經過這次的轉換後.沒問題了.
注意.要先把原來的 trigger, index 相關語法備份下來喔
create table 時 informix 會先allocate 一個空間給這個TABLE 使用. 如果空間不夠時. informix 會再allocate 一個空間來使用.如果這二個空間剛好都是連在一起,在Informix 中我們叫他為一個 extent,資料庫長時間使用下有可能使得TABLE的EXTENT 值變大.大過一定值(200以上?) 會出現錯誤.這時我們就要重新規劃了.
先用以下命令去找.所有資料庫table extent與他的SIZE
select
dbsname,
tabname,partnum,
count(*) num_of_extents,
sum(pe_size) total_size
from
systabnames, sysptnext
where
partnum = pe_partnum
and partnum > 99
and dbsname <> "sysmaster"
and dbsname <> "sysutils"
and tabname <> "TBLSpace"
group by 1,2,3
order by 1,5 desc ;
我查出我的MYTABLE001 他空用有201個EXTENT 共 771400 KB ,
這時我要先建一個TABLE 內容與原TABLE 名稱多加個_TEMP 並同時給他初始大小與增大大小(KB)
CREATE TABLE tiptop.mytable001_temp (
imk01 CHAR(20),
imk02 CHAR(10),
imk03 CHAR(10),
imk09 DECIMAL(15,3)
)
EXTENT SIZE 921600 NEXT SIZE 61440
LOCK MODE PAGE
之後再把資料insert 到Temp table
insert into mytable001_temp select * from mytable001
再把原TABLE DROP, 再把temp table rename 到原table
drop table mytable001
RENAME TABLE mytable001_temp TO mytable001
經過這次的轉換後.沒問題了.
注意.要先把原來的 trigger, index 相關語法備份下來喔
2014年4月29日 星期二
Raspberry keyboard layout problem.
sudo vi /etc/default/keyboard
change XKBLAYOUT= "gb" to "us"
save and reboot .
change XKBLAYOUT= "gb" to "us"
save and reboot .
2014年1月7日 星期二
DD-WRT 用Telnet 進去 清空所有設定.
參考:
http://www.dd-wrt.com/wiki/index.php/Factory_Defaults#From_the_Command_Line_.28Telnet_or_SSH_or_Web_GUI.29
因為restore 錯的設定所以WEB 起不來.只好回復成最初值.
用telnet 登入 ddwrt
mtd erase nvram;
reboot
之後就可以用 root/admin 來登入系統了.
http://www.dd-wrt.com/wiki/index.php/Factory_Defaults#From_the_Command_Line_.28Telnet_or_SSH_or_Web_GUI.29
因為restore 錯的設定所以WEB 起不來.只好回復成最初值.
用telnet 登入 ddwrt
mtd erase nvram;
reboot
之後就可以用 root/admin 來登入系統了.
2014年1月3日 星期五
aspnet membership 忘記密碼.
這方式只能選用一個已知的密碼 用他的密碼來改寫到別的使用者上
假如我知到 webadmin 這個密碼為 XXXXX 我可以以下的語法來得知密碼的相關值.
SELECT password, passwordformat, passwordsalt
FROM aspnet_membership am
INNER JOIN aspnet_users au ON (au.userid = am.userid)
INNER JOIN aspnet_applications aa ON (au.applicationId = aa.applicationid)WHERE au.username = 'webadmin'
AND aa.applicationname = '/'
h9GkIbUU2XOA+uDdHFJqBFmz6Qs= 1 nRbbbGybfWjhcG3iseVRrQ==
依以上的值再執行storeprocedure 來對其他使用者修改密碼.
DECLARE @changeDate datetime
SET @changeDate = getdate()
EXEC aspnet_Membership_setPassword '/',
'webuser001',
'h9GkIbUU2XOA+uDdHFJqBFmz6Qs=',
'nRbbbGybfWjhcG3iseVRrQ==',
@changeDate,
1
改完後. webuser001 就可以用 xxxx (原webadmin)的密碼來登入了.
假如我知到 webadmin 這個密碼為 XXXXX 我可以以下的語法來得知密碼的相關值.
SELECT password, passwordformat, passwordsalt
FROM aspnet_membership am
INNER JOIN aspnet_users au ON (au.userid = am.userid)
INNER JOIN aspnet_applications aa ON (au.applicationId = aa.applicationid)WHERE au.username = 'webadmin'
AND aa.applicationname = '/'
h9GkIbUU2XOA+uDdHFJqBFmz6Qs= 1 nRbbbGybfWjhcG3iseVRrQ==
依以上的值再執行storeprocedure 來對其他使用者修改密碼.
DECLARE @changeDate datetime
SET @changeDate = getdate()
EXEC aspnet_Membership_setPassword '/',
'webuser001',
'h9GkIbUU2XOA+uDdHFJqBFmz6Qs=',
'nRbbbGybfWjhcG3iseVRrQ==',
@changeDate,
1
改完後. webuser001 就可以用 xxxx (原webadmin)的密碼來登入了.
訂閱:
文章 (Atom)