2011年9月20日火曜日

chrome extensions の Shortcut Manager用Script

chrome extensions の Shortcut Manager用Scriptをちょっとメンテナンス
気付いたらnicovideofireのサービスが終わってて使えなくなってたので

var url;
url = document.URL;
if (url.match("http://www.nicovideo.jp/watch/sm") || url.match("http://www.nicovideo.jp/watch/nm"))
{
/*
window.open(url.replace("nicovideo","nicovideofire"),"_self","");
*/
    window.open(url.replace("nicovideo.jp/watch","nicomimi.net/play"),"new1","");
    window.open(url.replace("www.nicovideo.jp/watch","nicosound.anyap.info/confirm"),"new2","");
}else {
    alert("このページは変換できねーよm9(^Д^)");
}

2011年9月14日水曜日

Windows7の環境まわり

Windows7使い始めてぼちぼち1年位経つか
長年XP使ってたから7の環境周りがよくわからん

アプリケーション開発者向け Microsoft® Windows 7 対応アプリケーションの互換性
http://msdn.microsoft.com/ja-jp/windows/dd882533.aspx

ってMSがまとめてある情報ページ
そのつどつど調べるのめんどいからメモ

2011年8月12日金曜日

行単位で持っているデータを列として出力するSQL

ひとつの id に対して複数の val を行単位で保有するテーブル (表1)
から、ひとつの id に対して複数の val を列単位で抽出 (表2) するSQLのメモ
表2の取得は2種類
 その1.列として出力する内容を固定で定義
 その2.列として出力する内容が可変でもOKなように

テスト用テーブル作成するSQL と 表1の取得
-- テスト用テーブル作成するSQL:
if exists (
    select * from tempdb.dbo.sysobjects
    where id = object_id('tempdb.dbo.#hoge')
    )
begin
     drop table #hoge
end
select * into #hoge from (
select 'a' id,'o' val union all
select 'a','x' union all
select 'a','-' union all
select 'a','+' union all
select 'a','/' union all
select 'b','o' union all
select 'c','x')t


-- 表1の内容を出力するSQL:
select * from #hoge

表2の内容を出力するSQL その1
-- 表2の内容を出力するSQL:
--  列として出力する内容が固定
select id
    ,   max(case row_num when 1 then val else '' end ) val1
    ,   max(case row_num when 2 then val else '' end ) val2
    ,   max(case row_num when 3 then val else '' end ) val3
    ,   max(case row_num when 4 then val else '' end ) val4
    ,   max(case row_num when 5 then val else '' end ) val5
from (
    select id, val, row_number() over (partition by id order by id) row_num from #hoge
    ) a
group by id

表2の内容を出力するSQL その2
-- 表2の内容を出力するSQL:
--  列として出力する内容が可変
declare @cntLoop int
    ,   @cntColumn int
    ,   @variableColFields as varchar(8000)
    ,   @variableColumnName as varchar(10)
set @cntLoop = 1
set @variableColFields = ''
set @variableColumnName = 'val'

select @cntColumn = max(rownum) from (
    select row_number() over (partition by id order by id) rownum
    from #hoge
    ) a

while @cntLoop <= @cntColumn
begin
    if @cntLoop > 1
    begin
        set @variableColFields = @variableColFields + ','
    end

    
    set @variableColFields = @variableColFields
        + ' max(case row_num when ' + convert(varchar,@cntLoop) 
        + ' then val else '''' end ) ' + @variableColumnName + convert(varchar,@cntLoop) + char(13) + char(10)
    set @cntLoop = @cntLoop + 1   
end


exec ('select id ,' + @variableColFields + '
from (
    select id, ' + @variableColumnName + ', row_number() over (partition by id order by id) row_num from #hoge
    ) a
group by id')

2011年8月8日月曜日

ネットワークドライブ上のXLSファイルを開くのが遅い

タイトルの通り WIndows7 X Office2007(Excel) の環境で旧Excelファイル(xls)開くのが遅い。
とにかく遅い。原因はよくわからないけどxlsファイル開くときだけが半端なく重いので
拡張子「xls」を開くときの挙動を見て不要な機能のせいで重いのなら無効化にしてやろう
と思って、下記参考。
Windows 7にてファイルの関連づけを編集したい - Microsoft Answers
Windows VistaやWindows 7では、OSの機能として、関連付けに関する詳細設定はできなくなりました
ってことで却下。

じゃあ自前PCなのでOfficeのHotfixとかで出てないかな、で下記参考。
An Office program is slow or may appear to stop responding (hang) when you open a file from a network location
When you try to open a file from a network location in one of the Microsoft Office programs listed in the "Applies To" section of this article, the Office program may run very slowly or may appear to stop responding (hang).
ってことでよさげ。実際hangってこたぁないけど
ちょっと時間ないからコレで今日半日使ってみてどうかな、と

<2011/08/09 追記>
たぶん解決した。Excelブック開くのが5分の1位になったよっと。
最初のMicrosoft Fix it 50637 消さないと。

全然違うことで下記ページをみてて当たり前のことに気がついた
マイクロソフト セキュリティ アドバイザリ (2501584): Microsoft Office 向けの Microsoft Office ファイル検証機能の公開
セキュリティの設定が影響してるんだ たぶん。
セキュリティ云々より開くのがクソ遅いと仕事にならないので
Excelリボンのオフィスボタン?(正式名所知らん)から
Excelのオプション→セキュリティセンター→セキュリティセンターの設定→信頼できる場所 の設定で
「プライベートネットワーク上にある信頼できる場所を許可する(推奨しません)」にチェック入れて
社内のネットワークドライブを場所に追加。
コレで早くなったよ

2011年6月16日木曜日

今更、SQL Server Management Studio 2008 R2 SP1

SQL Server 2008 Service Pack 1 で修正される問題の一覧
SQL Server 2008 で、SQL Server Management Studio を使用して SQL Server 2008 より前のインスタンスに接続すると、対応するかっこの強調表示機能が動作しません。
これのせいでちょっと時間無駄にした。

と思ったらこれは誤爆。2008R2のSPじゃなくて。2008のサービスパックだった。
バージョン的には2008R2>2008SP1なのに かっこの対応付け強調表示がONになってないんだけど
これは取り敢えず保留。orz

chrome extensionsメモメモ

ウェブ開発者必携のGoogle Chromeの15の拡張機能 | コリス
CSSの制作・検証に役立つChromeの機能拡張のまとめ | コリス

2011年4月21日木曜日

RAM Diskとかもやってみる

SSD買ったし32bitOSにはメモリあまっちゃうんで

OS:Windows7 Professional
搭載メモリ:2GB
主記憶:HDD(詳細は今のところ不明

買ったもの
メモリ:4GB
主記憶:SSD

こんな状態だので
HDDで普段使いのツールインストールしてからRAM Diskセットアップして
そっからSSDにまるごと引越ししようかと計画中。
約2GBをRAM Diskとして使える計算だけどどんなもんかなー。
よさげだったらメモリ4GBさらに買い足して8GBにしようかとも思い中。

2011/04/30追記

Gavotte Ramdisk まとめWIKI - トップページ
とりあえずChromeが高速化するかテスト

rem Google Chorome用
rd /S /Q "%userprofile%\AppData\Local\Google\Chrome\User Data\Default\Cache"
mkdir R:\ChromeCache
mklink /d "%userprofile%\AppData\Local\Google\Chrome\User Data\Default Cache" "R:\ChoromeCache"


2011/05/27追記
家で使ってるGavotte RAMDisk 1.0.4096. 4 (2008-01-25) がアップローダから消えてて見つからなかったので
違うバージョンを入れてみる
Gavotte Ramdisk - Freeware - EN - Download.CHIP.eu
これだとram4g.regが含まれていないものだったので「32bitOSで4GBを使う」為の設定が必要になる
設定1.レジストリ(XPもWin7も共通)。
設定2.bootのPAE設定(XPの場合はC:\boot.iniに追記する)がWindows7でどのように設定するのか不明だったけど
下記サイトで説明されてた。BDCEDITコマンドを使うようです。
How to use full 4GB RAM in Windows 7 32 Bit (Gavotte RAMDisk in Windows 7) | Homepage of Jens Scheffler

2011/06/20追記
色々試行錯誤して今のところ安定稼働してる会社PCでのRamDiskのWindows開始時に起動する
初期化用Batファイルをメモ
FORMAT /FS:NTFS /V:RamDisk-PAE /A:512 R: /Q /Y >bootload.log
rem rem