私もやりたい!芸能人ダイエット
V2C目当てで来た方はとりあえずwiki
このブログに書いてあることはほぼ網羅、かつコンパクトに纏められています。
その上で記事見る方はこちらへ。V2C関連全記事
Tipsを流し読みする感じをご要望ならこちらへ ちょっと便利な使い方

2012年10月23日

U24AをSSDへ換装。USBメモリ(メモステ)からブートでリカバリ。

ASUSのノートPC、U24Aを買いました。そして今流行のSSDにしてみようかと思ったら色々問題が。
このノートは光学ドライブがついてない上に外付け光学ドライブ持ってないので困った。

しかし、USBメモリがあればリカバリできるという情報を発見し、ようわからんままググって集めた情報を元に挑戦したら特にトラブルもなく成功(してると思う)。
環境をバックアップ→リストアだと面倒なことに巻き込まれたという報告があるみたいですが、リカバリの場合は特にそういったことはないようですね。
ただ、欲しい情報がドンピシャですぐ見つかったわけでもないので、同じことで悩む人の助けになれば、というわけでまとめてみます。

シチュエーションは以下の通り

  • 外付け光学ドライブ持っていない
  • 16GBのUSBメモリやSDカードなら持っている(リカバリイメージが8GB超えになったので8GBではたぶん足りない)
  • 環境の移行ではなく、リカバリ(工場出荷状態)でのSSD換装
  • フリーソフトだけでなんとかする

  • リカバリしたいノートPCでの作業のみでリカバリ可能です。

    SSDはPX-256M5Sにしました。
    選んだ理由は、なんか評判よさそうだったから。つまり適当。
    Intelの330が一番安そうだったんだけど、色々と危なっかしい噂もあり、初心者な自分は回避したのでした。
    で、+1000円だったM5Sを選択したというわけです。
    U24AのHDDは9.5mmらしいので、同じだったら大丈夫だろうってのもあります。SSDの厚さって7mmと9.5mmがあるんですってね。

    さて、とりあえずリカバリ後のベンチ結果。

    crystaldiskinfo.pngcrystaldiskmark.png

    こんなもんでしょうかね。


    さて、リカバリですが、実は16GBのUSBメモリもってない…
    おお、しかしメモステなら16GB持ってる。
    しかしカードリーダ持ってねえし…メモステProDuo用のアダプタも持ってない…
    仕方なく、PSPをU24AにUSB接続してそこからブートという何やら貧乏くさいやり方になりました。

    手順的にはまったく同じやり方でUSBメモリやSDカードでもできるはずです。
    PSPとメモステでやろうという人はさすがに相当少ないと思うので、「USBメモリ」という表現でいきます。

    ではまず大まかな手順
    1. U24AでリカバリディスクのISOイメージを作成する
    2. Windows7に付属のdiskpartを使ってUSBメモリをブート可能なものにフォーマット
    3. ISOファイルの中身をUSBメモリにコピー
    4. HDDを外してSSDを取り付け
    5. USBメモリからブートしてリカバリ
    では詳細な手順

    1.U24Aでリカバリディスク用のISOを作成する

    AI Recoveryを起動し、
    「BD用の容量でISOファイルを作成する。」
    を選択してバックアップを開始します。保存先は別にどこでもいいかな。
    「BD1.iso」というファイルが作成されるはずです。
    iso.png

    USBメモリにISOの内容をぶち込むのでDVDの容量(ISOが3つになる)で作成する必要はないでしょう。
    逆に、DVDの容量で作成すれば容量の小さいUSBメモリでもファイルをとっかえひっかえしながらリカバリできるかもしれませんが、試してないのでわかりません。

    2.Windows7に付属のdiskpartを使ってUSBメモリをブート可能なものにフォーマット
    ここを参考にしました。
    http://www.atmarkit.co.jp/fwin2k/win2ktips/1155diskpart/diskpart.html
    自分が実行したコマンドは以下のものです。

    DISKPART> list disk
    DISKPART> select disk 1
    DISKPART> clean
    DISKPART> create partition primary
    DISKPART> select partition 1
    DISKPART> active
    DISKPART> format quick fs=ntfs
    DISKPART> assign
    DISKPART> exit

    2行目を間違えて作業を進めると下手したらHDDのデータが消えるらしいので注意!
    list diskでリストアップされるデバイスを見て、USBメモリの番号をきちんと確認してください。
    細かい操作法はリンク先を見てください。わかりやすく載ってます。
    自分の場合、他のデバイスは付けていなかったので0がHDD,1がUSBメモリとなりました。

    また、7行目のformatのところを少し変えています。
    リンク先とまったく同じにするとFAT32でフォーマットされてしまいます。
    BD用のイメージ容量がFAT32の制限を超えてるのでこれだとコピーできないです。

    しかもquickをつけないとやたらフォーマットに時間がかかります。
    自分の場合、一発目はコマンドをそっくりそのまま使ったため、時間をかけてFAT32でフォーマットするという無駄時間を消費しました。
    再度フォーマットしなおした訳ですが、またあの時間待つのはあほらしかったのでクイックフォーマットにしました。

    きちんとフォーマットしたいという方は
    DISKPART> format fs=ntfs
    でもよいでしょう。
    exitまで進んだらここの手順は終了です。

    ちなみに、リンク先の記事中にある
    TIPS「Windows 7のインストールUSBメモリを作る(Windows 7 USB/DVD Download Tool編)
    を使うと、全自動で3.までやってくれるぽいんだけど、自分の場合ISOコピー時にエラーが出たので諦めました。


    3.ISOファイルの中身をUSBメモリにコピー
    ISOファイルをそのままコピーしても意味ないので注意。ISOファイルの「中身」です。
    U24Aだと、作成したISOダブルクリックで「ISOビューワー」とやらが立ち上がり、そのまま中が見えます。
    (別環境でそういったソフトが入ってないという場合は、適当に探してきてインストールしましょう。)

    では、1.で作成したファイルをダブルクリックしましょう。
    中はこんな感じでした。
    isoの中身.png
    これをそっくりそのまま2.でフォーマットしたUSBメモリにコピーします。
    「ISOビューワー」の場合は、これらファイルを全選択して、「ファイルの抽出」でファイルを取り出せます。
    ただし、USBメモリに直接保存するとエラーが出て途中で停止してしまいました。
    どちらにせよ抽出したファイルはまた使うかもしれないのでHDDに保存する方がいいと思います。
    HDDに抽出したらそれらをエクスプローラのD&DでUSBメモリへコピー。

    これでUSBメモリの準備は完了。

    4.HDDを外してSSDを取り付け
    HDDを取り外してマウンタをプラスドライバで分離し、SSDの方に取り付けます。
    と、ここで、外したHDDと買ったM5Sのコネクタの形が明らかに違うのでビビりました。
    よくみたらHDD側のコネクタにアタッチメントのようなものがついてて外れるようになっており、これをM5Sに装着して取り付けできました。

    また、衝撃吸収用であろうスポンジがHDDに接着されていました。
    うまくはがしてSSDの方に貼りなおせないかとがんばってみましたが、ものの見事に失敗したので、家にあった似たようなもの(たぶん100均で買った)をSSDに貼っておきました。

    気になる方は作業開始前にHDDを取り外して確認し、必要そうなものを入手しておくといいでしょう。
    装着したら元通り裏蓋を取り付けましょう。

    5.USBメモリからブートしてリカバリ
    USBメモリを挿して電源ボタンを押し、U24Aを立ち上げてすかさずESCを連打。
    どこからブートするか選択肢がでるので、USBメモリと思われるものを選択します。
    うまくいけば何やら読み込みが開始され、しばらくすると「リカバリしますか?」的なことを聞かれるので、後は言われた通りにしてくとリカバリ終了です。

    途中、リカバリ先を聞かれます。
    私は1パーティションにリカバリする設定を選択。考えてなかったんで適当。
    その後何度も勝手に再起動を繰り返します。
    普通にWindowsが立ち上がってるように見えたりしますが
    「今作業してるから触らず待て」的なことが英文でうっすら見えるのでとにかく放置。

    そのうち、工場出荷状態で電源入れると最初に出てくる画面(IME設定してPC名付けたりするアレ)になるので、リカバリ完了。
    パーティション構成はこんな感じになってました。
    パーティション.png


    取り出したHDDは外付けケースにでも入れて使いますか。
    タグ:ssd
    【windows7の最新記事】
    posted by sarasate at 00:58 | Comment(5) | TrackBack(0) | windows7 | このブログの読者になる | 更新情報をチェックする

    2011年11月17日

    V2Cスクリプト作成メモ

    2011/11/19更新

    スクリプト作成に関するメモ。
    自分がハマったり分からなかった事などを書いていきます。
    「JavaScriptとか知らなかったけど、とりあえず基本的な事は理解してある程度は書けるようになったぜ!」というレベルの人向けです。
    同じようなハマり方する人がいるかもしれないので、そんとき検索に引っかかってくれればいいなと。
    書きたいことが増えたらそのまま追記してく予定です。更新日は本記事の最初に書くようにします。
    本当はwikiに書きたいところだけど、こっちの方が気楽に書けるので・・・だもんでwikiへの転載は大歓迎。
    後、もし嘘書いてたら教えてください。

    参考サイト:V2Cスクリプトのリファレンス
    http://v2c.s50.xrea.com/manual/script.html
    最初何書いてるかほとんどわからなかったけど、スクリプトスレのサンプル弄りながらちょっとずつ勉強してったらわかるようになってきました。


    注1:V2CのスクリプトはRhinoらしいですが、以降「JavaScript」と表現します。
    注2:本記事に張り付けられているコードは基本的にスクリプトスレに貼られた物を流用させて頂いてます。


    ・thとかresってなんぞ?
    V2C使用法では特に解説なく変数として出てきたりしますが、基本的に下記のものです。
    1. th:スレッドオブジェクト。v2c.context.threadやv2c.getThread(u)で取得できる。
    2. res:レスオブジェクト。v2c.context.resやth.getRes(i)で取得できる。
    3. bd:板オブジェクト。th.board等で取得できる。
    他にもあると思いますが、よく出てくるのはこれくらい。
    これらオブジェクトで何ができるかってのは、V2C使用法を「th」とか「res」で検索するといいかも。

    また、これに加えてスクリプトスレでよく使われてる変数名としては
    1. u→URL(URI)
    2. vcx→v2c.context
    3. arg,args→v2c.args
    これくらいですかね。
    本記事でもこれ以降これら表現を使っています。

    ・V2Cが返す文字列はJavaScriptではなく、Javaの文字列らしい
    「V2Cが返す文字列」とは、具体的にはv2c.context.res.messageとかv2c.context.thread.board.keyとか。
    v2cが頭についてて文字列を返してくるものは大体あてはまるんじゃないかと。
    単純に表示したりするだけなら同じものとして扱っても問題ないと思いますが、文字列の比較なんかは
    if (th.board.key == 'software')
    じゃなくて
    if (th.board.key.equals('software'))
    としなければいけないらしい。
    見事にハマりました。(参考:http://www.tohoho-web.com/java/string.htm)

    後、
    var key = th.board.key + '';
    if (key == 'software') {〜}
    みたいにすると、keyにはJavaScriptの文字列で格納されるのでうまく判定できます。
    スクリプトスレ見てると結構こう書いてある物があるんだけど、「なんの意味があるんだろ」とか思ってました。キャストの意味あいがあったんですね。

    ・res.id等、resの情報は必ず取得できるわけではない
    res.idはIDがない板だと当然取得できないんですが、意外とそのことを忘れてコーディングしてしまったり。
    注意しといた方がいいであろう仕様を、気づいた範囲で列挙してみると
    • IDがない板もある(res.idはnull)
    • IDはあるけどsageるとIDが???になる板もある
    • IDは携帯の"O"やPCの"0"等、通常のIDの末尾のみが表記される板もある
    • IDある板でもあぼーんされたレスはnullになる
    てなのがあります。なので処理する場合は面倒でも
    if (res.id) {〜}
    みたいな感じで弾いた方が無難かも。「???」とか「末尾のみ」も弾くなら、
    if (res.id && res.id.length() >= 8) {〜}
    でいいのかな?8文字未満のIDがなければ、の話ですが。
    (res.idは「Javaの文字列」なので文字列長はJavaScriptの文字列にある"length"というプロパティはなく、"length()"というメソッドで取得するようです)

    ちなみに、あぼーんの時res.dateはどうなるんだろと思って試してみたら「あぼーん」が格納されてました。res.timeは0。
    この辺りも注意しておく必要がありそう。

    ・resを処理するときは非表示(NG)レスのことも考えた方がいいと思う
    レスを抽出したり数えたりしようとする場合
    for (var i = 0;i < th.localResCount; i++) {
     var res = th.getRes(i);
     if (res) {
      ~~~~~
     }
    }
    みたいな処理をすることがほとんどだと思います。
    で、自分はレスのNGってほとんど使わないので気づかなかったんですが、NGレスまで考慮する必要があるシーンてのはほとんどないと思うのです。
    だもんで、例えばこの例だと
    if (res) {
    ではなく
    if (res && !res.ng) { // resがNGされている場合、res.ngはtrueを返す
    とした方がいいんじゃないか、という訳です。
    まぁ「レスの中にはNGされてるものもある」ってのだけ覚えとけばいいでしょうかね。

    ・デバッグするとき
    実行途中の変数の内容を覗き見たい、とかそういう場合は
    var hoge = "テスト";
    v2c.println(hoge);
    みたいな感じで書けば、スクリプトコンソールに"テスト"と表示されます。
    スクリプトコンソールはV2Cメニューの「表示」→「スクリプトコンソール」から表示できます。
    当たり前のことかもしれませんが、自分はこれ知らなくて最初はv2c.alert(hoge)とかやってました。面倒くさいったらありゃしない。

    ・ファイルをv2c.readFile(s)等で読み込む場合の注意点
    ファイル読み込みというか、ファイルパスを書く場合の注意点です。
    var txt = v2c.saveDir+'\\script\\hissi_menu.txt'; 
    のような書き方をすると、Windows以外の環境で実行されたときにエラーが出る可能性があります。
    Windowsだとパスの区切りは\だけど、環境によってはそうとは限らないらしい。
    この場合は、
    var fs = java.io.File.separator; 
    var txt = v2c.saveDir+fs+'script'+fs+'hissi_menu.txt';
    または
    var txt = new java.io.File(new java.io.File(v2c.saveDir,'script'),'hissi_menu.txt'); 
    のような書き方をすれば回避できます。

    ちなみに、元はスクリプトスレの作者殿のレスです。
    http://yy61.60.kg/test/read.cgi/v2cj/1252074124/96

    ・prototypeは弄っちゃダメ?
    wikiのスクリプトFAQでも触れられてますが、JREのVersion 6 Update 29から
    String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
    }
    こういった記述をするとエラーが出るようになったようです。
    まぁデバッグしてりゃ気づくとは思いますが・・・
    書き換えるとしたら
    function trimEx(s) {
    return s.replace(/^\s+|\s+$/g, "");
    }
    として、使用部分ではs.trim()をtrimEx(s)に書き替える、くらいですかねぇ…

    ・外部サイトの情報を取得したい
    twitterやyoutubeのURLからその内容をポップアップするといったタイプのスクリプトで主に使われている機能ですね。
    外部サイトのhtmlを文字列として取得するだけなら簡単
    var sr = v2c.readURL(u); //uはURL
    if (!sr) {
    v2c.alert('ページを取得できませんでした。');
    }
    でsrにhtmlが文字列として格納されます。

    POSTしたり、レスポンスコード(404とか)も取得したいとなるとHttpRequestオブジェクトを使う必要があります。
    細かいことは抜きにして使い方だけ。(細かいことはリファレンスに書いてあります。)
    var hr = v2c.createHttpRequest(u);
    var sr = hr.getContentsAsString();
    if (!sr) {
      v2c.alert('ページの取得に失敗しました: '+hr.responseCode+' '+hr.responseMessage);
    }
    でsrにhtmlが文字列として格納されます。
    404が返ってきたら、hr.responseCodeに"404"が入ってるはずです。503だったらメッセージを変える、みたいな処理がしたい場合はこちらを使うことになります。
    1行目で格納されるのではなく、2行目のhr.getContextsAsString()を実行した後に格納されます。

    ちなみに、元はスクリプトスレの作者殿のレスです。
    http://yy61.60.kg/test/read.cgi/v2cj/1252074124/75

    ・JRE7では挙動が変わる?
    細かいことはよく分かりませんが、あるみたいです。
    まず、上の方で「V2Cが返す文字列はJavaScriptではなく、Javaの文字列らしい」と書きましたが、それは配列にも言えるようです。
    具体的にはres.refResIndex(resを参照してるレスのインデックスが格納された配列)なんかがそうで、これで取得できるのはJavaのArrayのようです。
    例えば、
    var a = [1,2,3];
    var l = res.refResIndex;
    a.concat(l);
    とすると、[1,2,3]の後ろに配列が連結されるのではなく、4番目にlという配列がそのまま格納されるようです。
    なので、連結したい場合は
    var l = res.refResIndex;
    if (l) {
      for (var j=0; j<l.length; j++) {
         a.push(l[j]);
      }
    }
    のように書く必要があるようです。
    将来的にJRE7に移行するでしょうし、素直にforループ使う方がよさそうです。

    ちなみに、元はスクリプトスレの作者殿のレスです。
    http://yy61.60.kg/test/read.cgi/v2cj/1304861674/197

    ・v2c.contextやcv2c.context.threadが取得できない場合もある?
    きちんと調べた訳ではありませんが、システム系スクリプトでは使えなかったりするようです。
    例えば、ステータスバーに文字列を表示させる場合
    v2c.context.setStatusBarText(s)
    を使いますが、システム系スクリプト内で使用するとエラーが出る場合があります。(v2c.contextがnullになる)
    他にも、スクリプトによるポップアップ内の文字列を選択状態にし、その右クリックから起動したスクリプトでは、v2c.contextは取得できてもv2c.context.threadやv2c.context.resがnullになるといった仕様もあり、注意する必要があります。

    ・意外と簡単に使えるJavaのオブジェクト
    V2CのスクリプトではJavaのオブジェクトが使えます。Javaなんぞ知らなくてもただコピペするだけで使えます。
    JavaScriptだけだと面倒くさいコードを書く必要がある処理でも、Javaのオブジェクトを使うことによって楽に実装できたりします。
    自分はJavaなんぞ知らないので、とりあえずスクリプトスレにあったものを紹介。

    1.時刻を指定したフォーマットの文字列に変換する
    細かいことは抜きにしてやり方。
    var pd = new Date();
    var jpd = java.text.SimpleDateFormat("現在の日付[yyyy/MM/dd] 時刻[HH:mm:ss]").format(pd);
    こうするとpdには現在時刻が格納され、jpdには
    "現在の日付[2011/02/10] 時刻[11:22:33]"
    というような文字列が格納されます。
    "現在の日付[yyyy/MM/dd] 時刻[HH:mm:ss]"
    の個所を変更すれば好きなように書式を変更できます。
    具体的にどう書けばどう変換されるんだってのは下記参照。
    http://java.sun.com/javase/ja/6/docs/ja/api/java/text/SimpleDateFormat.html

    ちなみに、元はスクリプトスレの作者殿のレスです。
    http://yy61.60.kg/test/read.cgi/v2cj/1252074124/12

    2.文字列の連結
    文字列を連続して連結する場合、
    var s = 'a';
    s += 'b';
    s +='c';
    とするよりも、
    var sb = new java.lang.StringBuilder();
    sb.append('a');
    sb.append('b');
    sb.append('c');
    とする方が速いらしい。
    他にもいろいろ便利なメソッドがついてるのでこっちの方がいい気がします。
    参考:http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/StringBuilder.html

    3.GUIを付ける
    javax.swing.JDialog等を利用して、GUI機能を付けたりすることも可能なようです。自分はjavaを全く知らんのでよく理解できておらず解説はできませんが、とりあえずサンプルみると雰囲気は掴めるんじゃないでしょうか。
    wikiに登録されているスクリプトだとclock.jsがそうです。
    http://www39.atwiki.jp/v2cwiki/pages/99.htmlからダウンロードどうぞ。

    ちなみに、他のほとんどのスクリプトではこの方法は使わず、HTMLで画面を作って
    v2c.context.setPopupHTML(s);
    で表示し、ボタンが押されたらテキストボックスやチェックボックスの値を
    formSubmitted(u, sm, sd)
    で受け取る、という事をやっているようです。
    Java知ってる人なら前者の方が楽そうに見えますが…部分的にはデザイナで設計できそうですし。(やったことないから分かんないですが)
    posted by sarasate at 21:10 | Comment(1) | TrackBack(0) | V2C | このブログの読者になる | 更新情報をチェックする

    2010年08月22日

    新型「StreamingPlayer3」キター

    専ブラと組み合わせるとすごい威力を発揮するStreamingPlayerが、今度は配布サイトも引っさげて登場!
    http://blizzardkite.sakura.ne.jp/streamingplayer/

    前はhtaでしたが今回はexeを起動するようになりました。
    まだベータ版なんで中のドキュメントに目を通すことを忘れずに。
    みんなでベータテストに参加してバグ報告しましょう。

    後、旧版に上書きしないように。当分は旧版と共存させて使うことになるでしょう。
    いつも通りStreamingPlayer3フォルダをJaneのフォルダ(V2Cなら保存用フォルダ)に解凍すればOK。


    取り敢えず以前のバージョンと同じように専ブラから呼びだすだけで使ってみてますが普通に使えてます。


    旧バージョンから進化した機能
    • 連続再生機能、視聴履歴、お気に入りや検索結果、動画リストから連続再生可能(対応しているものは自動送りもあり)
    • お気に入りの管理(ツリーでお気に入りの管理、自由にフォルダの作成も可能、追加もしやすく)
    • プラグイン毎に細かな設定が可能
    だそうです。
    既存の機能に関しても(履歴とか)格段に使いやすくなってますね。
    本格的に専ブラと連携させるだけじゃ勿体ないソフトになってきました。


    見た目はこんな感じ。前と似てますがボタン類が前と比べて分かりやすくなってます。
    WS000070.png


    こういった画面もあります。
    普通に単体で動画ビューワとして使えちゃいますよこれ。
    WS000071.png


    まだ対応サイトが少ないですが、その場合は旧StreamingPlayerを使えばいいだけ。
    さらに、これに同梱されてるURLExec.datを使うならそれすら気にする必要なし。
    対応サイトだけ新型で、それ以外は旧型で開くようになってます。

    ただしちょっと注意点!


    http://blizzardkite.sakura.ne.jp/bbs/test/read.cgi/streamingplayer/1282460445/3
    >URLExec.datの最後の二行を今までコメントアウトして配布していましたが
    >今回からは有効な状態で配布したいと思います
    >不必要な人や不具合でる人はご自身で削除してください
    だそうです。
    旧設定では、ImageViewURLReplace.datにより画像化したURLは拡張子が画像でなくてもビューワで開いていましたが、この設定だとそんな事は関係なしに拡張子が画像でないURLは外部ブラウザで開くようになります。

    現状V2CだとTwitterのTL等もこのルールに引っかかって外部ブラウザで開いてしまうので注意が必要。
    気に入らない方は今まで通り最後の2行はコメントアウトするか、twitterのURLを除外する必要があります。
    除外に関しては

    Amazonのリンククリックでビューワが開いちゃうのを阻止する

    に書いたので、このページを「twitterのURLは弾く」とでも検索してください。


    V2C上でのTwitterは外部板に通ずるところがあるので、URLExec.datの設定は無視するのが仕様として正しいのでは…と思いましたが、それだとURLExec.datで柔軟に動作設定できるというメリットを潰してしまうのでこのままの方がいいでしょうね。
    posted by sarasate at 18:47 | Comment(1) | TrackBack(0) | 2ch | このブログの読者になる | 更新情報をチェックする
    ×

    この広告は1年以上新しい記事の投稿がないブログに表示されております。