2011年4月2日土曜日

節電アイディア4

究極の省エネ電球を買ってみた。

普通の5WぐらいのLED電球より、さらに省エネ。

LED電球 常夜灯 3灯 白 AT-03W
なんと、0.5W。
省エネ過ぎる。

100W電球の1/200

ありえない省エネ。

でも、・・・・ やっぱり暗い。

最低限の明かりってところかな。

ナツメ球なので、これが刺さるソケットがないと意味無いけど。

ちなみに普通のナツメ球だと、LED電球と同じくらいの消費電力なので、省エネじゃない。
夜真っ暗だと寝れない人だったら、ぜひこれに換えるべし。

2011年3月27日日曜日

節電アイディア3

ふたたび炊飯での節電。

普通に電気炊飯器を使って炊飯するときでも、
いくらか節電できる。

十分に水に浸したあと、
内釜をとりだし、
ガスコンロで沸騰するまで加熱する。

沸騰したら炊飯器に入れる(やけど注意)。
あとは、普通に炊飯。
問題なく炊ける。いつも通りの味。

こうすることで、水から熱湯にするという大きなエネルギーが節約される。

炊飯器によってはダメな機種もあるかもしれんが、たぶん大丈夫。

2011年3月25日金曜日

節電アイディア2

オーブントースターもそれなりに電気を食う。
基本的に熱がでるものは電気を多く消費すると考えてよい。

そこで、フライパンで食パンを焼く。
もちろん、テフロン加工が良い。

結構火が強くてすぐに焼ける。
すぐにこげた感じになる。
特にミミが直接フライパンに当たるので注意。
すぐに真っ黒になってしまう。

気になるなら、ミミを切り落として焼けばよいかな。

炊飯もそうだが、スイッチを入れて放っておけばよい電機とは違って、
ちょとメンドクサイ。

あと、一枚ずつしか焼けないのが残念。

2011年3月23日水曜日

節電アイディア1

お鍋とガスコンロでご飯を炊く

なんか世の中こんな状態だし、節電に努めねばならん。
そこで、何回かに渡って、いくつか効果的なアイディアを具体的に説明したいと思う。

炊飯器ってかなり電気を食う。
メシ時に電気が足りなくなるのはこいつのせいだろうか?

そこで節電。

昔、米国に居たとき、お鍋でご飯をよく炊いてたのを思い出した。
お鍋はテフロン加工でフタがあるものがよい。

  1. 鍋に洗った米と水を目分量で入れる。
  2. ガスコンロで強火で沸騰させる。
  3. 火を弱めて煮る。
  4. 水気がなくなったらフタをする。
  5. 10分ぐらい蒸らす。
※水の分量は炊飯器で入れるときの分量を思い出して適当に入れてたが、炊飯器が手元にあるだろうから、それを利用して適量を計るとよい。


こんな感じ。結構適当にやってもそれなりに美味い飯になる。
私のやり方はこんな感じだったが、検索するとちょっと違うやりかたもあるっぽい。

そう言えば、その頃買ってたカルフォルニア米は、小麦粉の紙袋みたいなのに入って売ってたなぁ。

2010年6月30日水曜日

iBooksのブックカバー

iBooks の本棚に並ぶ本には視認性のよさや並べた満足感もあり、ブックカバーが欲しいところ。
これには2つの方法がある。

一つは、iTunesで本を選んでプロパティに画像を貼ること。これは音楽のレーベルと同じ方法。
これだと、作成時に常に一体化しないので利便性が悪い。
もう一つの方法は、epub形式のxmlにメタファイルで cover= を設定すること。
こっちのほうが、epub としては当たり前の設定らしい。
しかし、使ってるepub編集ソフト Sigil だと、coverの設定が分からない。
help で cover を検索しても出てこないし・・・。
もしかして機能がないのかも。
困った困った。

エディタで書き加えるのはメンドイ。

2010年6月27日日曜日

Web漫画を保存する

Web漫画はネット上にいっぱいあって、まだまだ、収集は終わらない。
どんどん、iBooks化して、iPadに溜め込んでるけど、ぜんぜん終わらない。
漫画によって置き方がバラバラで、それぞれ手を入れないとなかなか上手くいかないから。

で、今回はちょっとしたテクニックの紹介。

Web漫画はイロイロな形でページに置かれる。種類はだいたいこんな感じ。
  1. html に画像が貼ってあるだけ。
  2. JavaScript プログラムで画像だけ表示切替え。
  3. Flashを使ってヴューワーを起動して画像を表示。
  4. Flashを使ってビューワーを起動してストリーミングで画像を表示。
  5. Flashを使った謎のプログラム。
1がほとんどだけど、企業サイトとはは、4と5が多い。これは簡単にコピーされないようにするため。
そういったものは画面に表示されているときに画像キャプチャソフトで撮るしかない。
3の場合はフラッシュとして保存すれば、画像を吸い出すことができるツールがあったりする。

で、「画像一括ダウンロード!」っぽいソフトの類は1しか画像のゲットはできない。
2以降はリンクがhtmlに埋め込まれてないから。

で、2の場合は、表示された画像をエクスプローラにドラッグすればコピーできるけど、全部のページでそれをやるのは面倒だし、漏れがないか気になるし、それに画像にリンクがあるとファイル名がリンク先になってしまうので困る。

そこで、コミックスクリプトという良く使われるスクリプトの場合だけだけど、簡単に保存できる方法を説明する。

コミックスクリプトは、ファイル名がかならず、1.gif ~ 32.gif みたいな感じで単純な数字の連番になっている。
gif だったり、pngだったり画像形式は決まってないみたいだけれど。

さて、画像ファイルがどこに入っているのか見てみよう。

IEのだと、最初のページを表示させた状態で、画像を右クリックして表示されるメニューから「プロパティ」を選ぶと、ダイアログが表示されて、アドレス(url)が表示される。

Chrome だと、右クリックメニューから「画像URLをコピー」でURLがクリップボードに入るのでどこかにペーストして見てみるといい。

ここに画像が連番で入っている。

で、こいつらファイルをローカルの HTMLファイルで表示させる。

次の HTMLファイルをローカルに作る。

<html>
 <body>
  <script>
  tpage = 1; // 最初のページ番号
  epage = 32; // 最後のページ番号
  url = "http://xxxxxx.net/xxxxxx/ep1/" ; // 画像が置いてあるURL

  for( i=tpage; i<=epage; i++ ){
   document.write("<div>" );
   document.write("<img src='" + url + i + ".jpg'>" );
   document.write("</div>" );
  }
  </script>

 </body>
</html>

ファイル名は何でもいい。拡張子は ".html"で。

さっき見たURLから最後のファイルのところだけ削って、url = のところに書く。
ページを開くと最後のページ番号が書いてあるので、それを epage = のところに書く。
.jpg になっている画像の拡張子は、必要ならば正しいものに書き換える。

次に、このファイルを保存してブラウザで開く。
そうすると、全部の画像が一つの画面に表示される。

あとは、これをブラウザの機能を使って画像ごとファイルに保存する。
そうすると、画像だけ新しいフォルダに全部入る。

と、こんな感じでゲットする。
章ごとに分かれてフォルダに入っていることが多いので、それぞれのフォルダごとにこのファイルを作って保存する。

あとは、これらの画像を使って epub 形式に作るのだ。

2010年6月13日日曜日

Web漫画と著作権

Web漫画の収集は続く。

公開されているWeb漫画を収集してファイルにし、自分のPCとかで見るのは著作権的には限りなく白に近いグレーっていうか、法的には白。

タダで公開しているWeb漫画の著作権は作者さんたちに帰属されるのは当然だが、そもそもPCで見れている段階でそのイメージはキャッシュに読み込まれているわけで、それを別のフォルダに移してしまうだけで違法だというのはおかしい。

しかし、作者さんたちからすると、たしかに気分的には良くないかもしれない。
そして、そのファイルをそのまま断りもなく公開してしまうのはグレー。さらにそれを売ってしまったら完全に黒だわな。
でも、引用なら、引用なら、法律内だ! ・・・・めんどうだからやらないけど。

というわけで、たくさん収集はしてますが、ここでそれを公開なんてなことはしませんぞ。

epub(iPadのiBooksで読める形式) 化して欲しいっていう作者さんがいたらやってもイイですけど。

ちなみに商用サイトのWeb漫画とかはシステム的にコピーしにくいように作ってはありますが、画面に表示されている段階でコピーできる。
画面をキャプチャして、あとはカッティングすればよい。

なので、カッティングのプログラム作ってみた。
C#ってなんてプログラミングが楽なんだろう。

コマンドラインのプログラムなのは、バッヂファイルとして実行できるようにするため。

C> imgcut imputfilename xOffset yOffset width height outputfilename

こんな感じで実行する。

で、ソースはこれ。エラー処理が甘いけどまぁいいや、面倒だし。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;

namespace Imagecut
{
    class Program
    {
        static void Main(string[] args)
        {

            if (args.Length != 5 && args.Length != 6)
            {
                Console.WriteLine("use: imgcut imputfilename xOffset yOffset width height [outputfilename(png)]");
            }
            else if (System.IO.File.Exists(args[0]))
            {
                try
                {
                    Bitmap bmpSrc = new Bitmap(args[0]);            // ファイルを読み込む
                    Bitmap bmpNew;

                    int xOffset = int.Parse(args[1]);
                    int yOffset = int.Parse(args[2]);
                    int width = int.Parse(args[3]);
                    if (bmpSrc.Width < xOffset + width)
                    {
                        width = bmpSrc.Width - xOffset;
                    }
                    int height = int.Parse(args[4]);
                    if (bmpSrc.Height < yOffset + height)
                    {
                        height = bmpSrc.Height - yOffset;
                    }
                    string newFilePath;

                    Rectangle rect = new Rectangle(xOffset, yOffset, width, height);

                    bmpNew = bmpSrc.Clone(rect, bmpSrc.PixelFormat);
                    // 出力ファイル名
                    if (args.Length == 6)
                    {
                        newFilePath = args[5];
                        if (System.IO.File.Exists(args[5]))
                        {
                            newFilePath = args[5].Substring(0, args[5].Length - 4) + "00.png";
                        }

                    }
                    else
                    {
                        newFilePath = args[0].Substring(0, args[0].Length - 4) + "00.png";
                    }
                    Console.WriteLine(newFilePath);
                    bmpNew.Save(newFilePath, ImageFormat.Png);   // ファイルを保存

                    bmpNew.Dispose();   // リソースを解放
                    bmpSrc.Dispose();   // リソースを解放
                }
                catch
                {
                }
            }
            else
            {
                Console.WriteLine("file not found");
            }
        }
    }
}