2012年12月30日日曜日

ウォーキングマシーンの購入

千葉真子の推薦のウォーキングマシン(ルームマーチウォーク)を購入しました。冬になると雪が降って外に散歩にでるのがおっくうになるので、このマシンで室内で運動することができます。なお、約30分間、動作すると自動的に止まります。
また保証期間は半年 間です。


http://www.youtube.com/watch?v=hkEKutLEYLc



なお、以下の商品は、値段が上のものよりは安いのですが、同じものなのか違うものなのかよくわからないです。

2012年12月29日土曜日

C# でExcelからチャートを作成


C# でExcelファイルからチャートを作成するサンプルです。
予め、chart1 という名前のチャートコントロールをフォームに配置しておきます。\temp.xls というExcelファイルのシート名6954の領域B1~D250に表が作成されている状態で実行します。(1行目の領域B1~D1には、hiduke,svalue,hvalue などのフィールド名が記述されています。実際の数値は領域B2~D250に記述されています。)





2012年12月27日木曜日

2.0TB のハードディスク(HDD)を購入

2.0TB のハードディスク(HDD)をアマゾンで購入しました。またこのHDDは、SATAですが、SATA → IDE変換アダプタ(コネクタ)(変換名人)を合わせて購入しました。パソコンが古いので、SATAではなくてIDEのケーブルがついており、これに接続するためです。接続して問題なくハードディスクが認識できたので安心しました。ただし変換名人のIDE側のコネクタのほうがきつくて、いったん差し込むとなかなか抜けません。





WD Green 3.5inch IntelliPower 2.0TB 64MBキャッシュ SATA3.0 WD20EZRX/N

http://www.amazon.co.jp/gp/product/B009QWUF6M/ref=oh_details_o01_s00_i00




TFTEC JAPAN SATA → IDE変換アダプタ(コネクタ) IDE-SATAZD2(変換名人)

http://www.amazon.co.jp/gp/product/B004R9KPMI/ref=oh_details_o01_s00_i01

2012年12月26日水曜日

iPod用のイヤホンを買った


iPod用に使っていたイヤホンが壊れた(右側が聞こえなくなった)ので、新しいものをアマゾンで発注しました。1,000円ぐらいするかと思っていたのですが、安いのがあったので、思わずポチってしまいました。(242円でした。)カスタマープレビューでは「安いのに高音質」という評価だったので、どんなものが届くか楽しみでした。100円ショップで買えるものよりはよいものであればぐらいに思って少し期待していました。実際に届いてみると雑音が少なく音は確かにきれいだと思いました。あとはどれだけ長持ちするかだと思います。
発注した242円のもの

PLANEX iPhone4s/iPod/スマートフォン対応 ステレオイヤホン PL-EP01

http://www.amazon.co.jp/dp/B0052BPKL6/ref=pe_302852_34649732_3p_dp_1



参考まで

Apple iPodイヤフォン(2006) MA662G/B

http://www.amazon.co.jp/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB-MA662G-B-Apple-iPod%E3%82%A4%E3%83%A4%E3%83%95%E3%82%A9%E3%83%B3/dp/B000IK250U/ref=cm_cr_pr_product_top



2012年12月25日火曜日

Perl でAccessデータベースに接続するサンプル(その2)

Perl でAccessデータベースに接続するサンプル(その2)

以下のサンプルでは、C:\mdb\book.mdb というAccessデータベースに接続して,book というテーブルの中の title と isbn というフィールドの値を表示しています。ADODB.Connection をnew するところと、クエリーを実行するところでエラー発生時にメッセージを表示できるように、' or die ~'の句が挿入されています。


-------------------------------------


use strict;
use Win32::OLE;
use utf8;

my $conn = "Provider=Microsoft.Jet.OLEDB.4.0;";
$conn .= "Data Source=c:\\mdb\\book.mdb;";
my $db = Win32::OLE->new("ADODB.Connection") or die "CreateObject: $!";
$db->Open($conn);

my $query = "select * from book;";
my $result = $db->Execute($query) or die join ' ', map { $db->Errors->Item($_)->Description } (0 .. $db->Errors->Count - 1);

while (!$result->EOF) {
    print $result->Fields('title')->Value . " " . $result->Fields('isbn')->Value . "\n";
    $result->MoveNext;
}

$result->Close();
$db->Close();


------------------------------------

2012年12月24日月曜日

Accessのパスワードを忘れてしまった

数年前に作成したAccessのデータベースにパスワードをかけていたのですが、そのパスワードを忘れてしまい開けなくなっていました。以下のサイトを参考にさせて頂き、忘れていたパスワードを調べることができました。


http://pucyan.blog77.fc2.com/blog-entry-46.html


http://www.everythingaccess.com/downloads.asp



使用したのは、Access Password Retrieval Lite (FREEWARE) というツールです。このツールではAccess95/97/2000/2002(XP)/2003 をサポートしています。




Perl で Accessデータベースに接続

Perl スクリプトで Access データベース(mdb)に接続して、テーブルの内容を表示するサンプルです。access2007 のデータベースで試しました(どうもaccess97のmdbデータだとうまく動作しないようです。)




以下のサイトを参考にさせて頂きました。
http://www.tryhp.net/OLE.htm

2012年12月20日木曜日

C# でCSV形式のテキストファイルを読み込む

C# でCSV形式のテキストファイルを読み込むサンプル(テキストファイルはc:\mdb\zzz.txt)参照の追加でMicrosoft VisualBasic を追加しておく必要があります。

C#で 2か月前の日付の文字列を得る

C#で今日の日付と2か月前の日付の文字列を得るサンプル


string kyounohiduke = DateTime.Today.ToString("yyyy/MM/dd");
string nikagetsumae = DateTime.Today.AddMonths(-2).ToString("yyyy/MM/dd");

C# でAccessデータベースをチャート化

C# でAccessデータベースの内容を取り出してチャートを表示するサンプルです。 予めAccessのmdbに、株価のデータを格納しておきます。(データベース名は、c:\mdb\stock_mdb.mdbです。テーブル名は、stock_mdb です。フィールド名は、meigara,hiduke,evalue,hvalue などです。) また予めフォームにチャートコントロールを張り付けておきます。引数として、code と miniYを与えます。 code は銘柄コードでテーブルのmeigara に相当します。miniYはチャートの表示の下限を表します。

2012年12月19日水曜日

C# で Excel のセルを読み書き


C# (Visual Studio 2012 express)で Excel ファイルのA1セルを読み書きする処理
参考にさせてもらったサイト
http://code.msdn.microsoft.com/office/C-Excel-Sheet-5037d251

2012年12月16日日曜日

C# でAccessデータベースに接続(コンソールプログラム)

C# でAccessデータベースに接続してテーブルのフィールドを表示するサンプルプログラム
以下のサイトを参考にさせて頂きました。
http://www.dscripts.net/2009/01/20/connect-to-microsoft-access-mdb-database-using-csharp/

以下のサンプルではc:\mdb\stock_mdb.mdb というAccessデータベースに接続してmeigara というテーブルのフィールドを表示しています。

2012年12月15日土曜日

C# で Accessのmdb に接続

C# で Accessのmdb に接続してテーブルの中のフィールドの値を表示するサンプル。 以下のサイトを参照させて頂きました。 http://sunaolabo.blog32.fc2.com/blog-entry-38.html

C# でExcelファイルに書き込む


C# でExcelファイルに書き込むサンプルです。

参考にさせて頂いたサイト
http://www.ipentec.com/document/document.aspx?page=csharp-save-excel-new-file-and-write&culture=ja-jp

読み込むサンプルは以下です。
http://chaos-fractal.blogspot.jp/2012/12/c-excel.html

C# でExcelファイルにアクセス


C# でExcelファイルにアクセスするサンプル
 なお予めExcelのCOMコンポーネントへの参照をプロジェクトに追加する必要があります。これには[参照の追加]ウィンドウで[COM]タブを選択し、「Microsoft Excel 15.0 Object Library」(Excel 2013の場合。Excel 2007の場合は「Microsoft Excel 12.0 Object Library」を選択します)。

以下を参考にさせていただきました。 http://www.atmarkit.co.jp/fdotnet/dotnettips/717excelfile/excelfile.html

2012年12月13日木曜日

c 言語 で時間を表示する

c言語 でその時点での時間を表示するサンプル。なお11:32~12:28の間であれば1を返し、それ以外は0を返します。

2012年12月12日水曜日

Visual Studio 2012 Express for Windows Desktop


マイクロソフトのサイトでVisual Studio 2012 Express for Windows Desktop 日本語 をダウンロードしました。

http://www.microsoft.com/visualstudio/jpn/downloads#d-express-windows-desktop


























ダウンロードが終了すると、VS2012_WDX_JPN.isoというファイルができているのでこれをダブルクリックしてドライブにマウントします。(Windows8からは、isoファイルをダブルクリックすると自動的にドライブにマウントされるようになりました。)

できたドライブの中にwdexpress_full.exeというファイルがあるので、これをダブルクリック。次の画面で「ライセンス条項に同意する」のチェックをいれて「インストール」をクリックするとインストールが始まりました。 


その後アップデートをインストールしてVisualStudioが使用できるようになりました。

除雪作業


これで、3日間 連続で除雪作業を行っている。明日はどうなるだろうか?

2012年12月11日火曜日

Perl でyahooのページから株価を取得する

perl でyahooのページから株価を取得するサンプル(以下のサンプルでは、東京電力の株価を取得して表示) 以前にもWeb::Scraperを使った似たような内容の投稿を書いています。
http://chaos-fractal.blogspot.jp/2011/12/perl.html

Windows8のために

Windows8を購入する前にメモリを増設しハードディスクも新しく買ってWindows8 Enterprise90日間評価版をインストールしてみました。

 


それに、DSP版Windows7 Home Premiumも購入しました。(アマゾンで9,750円)
Windows8Proを1,200円で購入したのは事実ですがそれ以前にWindows8のためにそれなりに投資したのだなと自分でも思います。

2012年12月8日土曜日

Office Professional 2013 プレビュー


Office Professional 2013 プレビューをインストールしました。インストール元は以下のサイトです。



http://www.microsoft.com/ja-jp/office/preview/office2013.aspx



なお、LibreOfficeのWriterで、文章を作成して、Office2013のWordで開いたところ、最後の行が表示されないことがありました。最後の行の後ろに改行をいくつかいれると表示されるようになりました。

USBメモリ8GBを買う

昨日 imation 社(台湾)のUSB Flash Drive(USBメモリ)8GBを購入しました。360°回転式キャップがついているのが特徴です。

imation  NANO-f   8GB NATURAL ORANGE 

ジョーシンで税込780円でした。


Unetbootin をダウンロード

ダウンロードしたisoファイルをUSBメモリに書き込んで、USBメモリからブート出来るようにするためのツールとしてUnetbootinをダウンロードしました。


ダウンロード元はこちら
http://unetbootin.sourceforge.net/



日本語の説明はこちら
http://myusuke-plus.jp/archives/1162






2012年12月6日木曜日

Windows8を使った感想


Windows8はやっぱりデスクトップにスタートボタンがないので慣れるまでは使いにくいですね。始めは電源を落とすのはどうしたらよいの?コントロールパネルを出すには?コマンドプロンプトはどうやって?という感じでした。

マウスを画面の右上か右下に持っていくとメニューが右から出てくるのでそこから始まりです。「設定」を選ぶと電源を落としたりコントロールパネルに移動したりできます。

Windows8は使いにくいのですが、前にそのPCで使っていたWindowsVistaに比べれば早くなったなあという感じです。いったんデスクトップに入れば以前のWindowsに近い感じで使えます。

画面の左下で右クリックするとコマンドプロンプトなどが使用できるメニューがでてきます。

今いる画面を閉じて元の画面に戻るには、Alt+F4キーを使うと便利です。

Windows8に慣れるために、ハードディスクを新規に購入してWindows8Enterprise90日間評価版というのをインストールして使用しました。


参考URL

Windows 8はマウス・キーボードでも操作できるの?
http://extras.jp.msn.com/windows8/win8gimon/article.aspx?cp-documentid=251088647



Windows8 のショートカットキー4つ
http://d.hatena.ne.jp/Shingi/20121025/1351174736

2012年12月1日土曜日

Ubuntu 12.10 で wine

Windows上で動作するプログラムを、Ubuntuでも動作させることのできる wine というプログラムを使用しています。

はじめは コマンドラインから wine と入力すると以下のように入力するように求められますのでそのとおりに入力するとwine プログラムは使用できるようになりました。


sudo apt-get install wine1.4-i386


私の場合には、SecMail.exe というWindowsプログラムを使用するのでそのプログラムをホームディレクトリに配置した上で以下のように入力して起動します。

wine SecMail.exe


また、このSecMail.exeというファイルに実行権をつけると、wine と入力しなくてもそのまま起動できるようになります。


chmod a+x SecMail.exe       (実行権をつける)

./SecMail.exe      (このコマンドだけで起動できるようになる)      

英会話学習用Podcast

英会話の学習用Podcast としてよく聞いているのは以下の二つ

 


Gaba G Style English~シチュエーション別英会話~

By Gaba

https://itunes.apple.com/us/podcast/id168407898





ECC 英会話 Podcasting 知ってる単語でこんなに話せる!

By ECC


https://itunes.apple.com/podcast/ecc-ying-hui-hua-podcasting/id124528617?mt=2

2012年11月30日金曜日

Ubuntu12.10 にDropbox をインストール

Ubuntu12.10 にDropbox をインストールするには

以下のサイトへ行って、指示とおりにする。

https://www.dropbox.com/install?os=lnx




1.以下のように入力(32-bitの場合:)

$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
        


2.すると以下のような画面表示となる。


$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
--2012-11-30 18:34:36--  https://www.dropbox.com/download?plat=lnx.x86
www.dropbox.com (www.dropbox.com) をDNSに問いあわせています... 199.47.216.171, 199.47.217.170, 199.47.217.171, ...
www.dropbox.com (www.dropbox.com)|199.47.216.171|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 FOUND
場所: https://dl-web.dropbox.com/u/17/dropbox-lnx.x86-1.6.2.tar.gz [続く]
--2012-11-30 18:34:37--  https://dl-web.dropbox.com/u/17/dropbox-lnx.x86-1.6.2.tar.gz
dl-web.dropbox.com (dl-web.dropbox.com) をDNSに問いあわせています... 184.73.223.62, 23.23.136.122, 174.129.27.95, ...
dl-web.dropbox.com (dl-web.dropbox.com)|184.73.223.62|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 18847990 (18M) [application/x-tar]
`STDOUT' に保存中

100%[======================================>] 18,847,990   574K/s   時間 28s  

2012-11-30 18:35:08 (647 KB/s) - stdout へ出力完了 [18847990/18847990]




3.次に以下のように入力


$ ~/.dropbox-dist/dropboxd
        


Windows8 優待購入プログラムが登録できない

DSP版Windows7を購入して、Windows8 優待購入プログラムにより、Windows8Proアップグレードを1200円で購入できると思っていたのだが.....


以下のサイトからWindows8優待購入プログラムへ登録できるはずである。

http://windowsupgradeoffer.com/ja-JP



 ところがどうもWindows8 優待購入プログラムが通らない。個人情報を入力したあとでプロダクトキーを入力すると以下のようなメッセージが表示されてしまう。


 お客様のプロダクト キーはライセンス認証されていません。 このプログラムに登録するには、Windows 7 製品のライセンス認証を行い、お客様の情報を再送信してください。


気を取り直して、Windows7のライセンス認証を済ませてからもう一度、やっても同じメッセージが表示されてしまった。さらにもう一度、やろうとすると今度はプロダクトキーを入力する前に以下のようなメッセージが表示されてしまった。


残念ながら、登録時にご提供いただいた内容では、プログラムへの参加資格が確認できませんでした。 


ちなみに「登録状況」のところで、参照IDを入力してみると以下のようなメッセージが表示されてしまう。


あなたのアカウントへのアクセスが中断されています。



マイクロソフトのサポート(0120-70-2077)に電話連絡して事情を説明すると、名前、電話番号、Windows7のプロダクトキーなどを聞かれたあと「調べるのに1週間程度かかる。結果は電子メールで連絡する」との返答だった。


ちょうど一週間後に、マイクロソフトから「登録確認」の連絡とプロモーションコードが電子メールで送付されてきた。それ以外に以下の内容のメールも届いた。


先日、お知らせいただきましたプロダクトキーをお調べした結果、
Windows 8 優待購入プログラムの対象として問題なくご登録できる事が確認とれましたので当事務局にて登録手続きを行いました。  お客様にはご登録したメールアドレス宛に件名『Windows 8 優待購入プログラム への登録確認』のメールをお送りしておりますのでお時間があります際にご一読くださいませ。




届いたプロモーションコードを使って1,200円で、無事にWindows8Proアップグレードを購入することができた。(なお購入する場合にはクレジットカード又はVプリカが必要だった。)


なお、はじめ登録できなかったのは、Windows7のライセンス認証をする前にWindows8優待購入プログラムを登録しようとしてしまったからだと思う。いったんエラーになるとロックがかかってしまい後からラインセス認証してやり直しても通らなかったのだと思う。たぶん。



2012年11月29日木曜日

Microsoft Office2010 Home&Student 日本語対応『並行輸入品』を購入した


AmazonでMicrosoft Office2010 Home&Student 日本語対応『並行輸入品』【プロダクトキー】を購入しました。値段は2,870円でした。これには、以下の4つが含まれています。

Word
Excel
Powerpoint
OneNote

非商用目的という制限がありますが、MicrosoftのOfficeがこれだけの値段で手に入れられれば安いものです。届いたのは中国語のパッケージに入ったプロダクトキーのみで媒体はありませんでした。Microsoftのバックアップのサイトから英語版のOffice2010 Home&Student をダウンロードしてWindows7のパソコンにインストール後に、日本語化しました。その後、電話でライセンス認証しました。(このあたりの作業は、アマゾンのカスタマーレビューに書いてあったのを参考にしました。はじめから日本語ではないという点と、電話でライセンス認証しなくてはならないという点が手間ですが、安いのだからと我慢できます。ただしOfficeを起動すると「非商用目的」と表示されます。)


Microsoftのバックアップのサイト
http://office.microsoft.com/ja-jp/products/FX101828860.aspx



日本語化するときには以下のサイトから、日本語化のためのプログラムをダウンロードしました。正規のオフィスラインセンスを持っている限り、アクティベーション不要で使用できるようなことが英語で書いてあります。なぜフリーなのかよくわからないのですが、使用される場合には自己責任でお願い致します。(注意 残念ながら以下のサイトは、現在はなくなってしまったようです。平成25年5月3日

http://www.mydigitallife.info/office-2010-language-packs-free-official-direct-download-links/




心配なのは、例えばハードディスクがクラッシュした時などこれを再インストールするとライセンス認証はうまくいくのだろうかということです。これはやってみないとわからないのですが、もしダメだったらと思うと怖くて試すことができません。


なお、以下の商品は、3台まで、インストールできるタイプのものです。





また以下の商品は、以前は 次期Office2013への無償アップグレード対象となっていましたが、現在はその記述がなくなってしまっています。??






例えばExcelを起動すると、以下のように「Microsoft Excel 非商用目的」と表示されます。






















2012年11月21日水曜日

ubuntu コマンドラインからシャットダウンするには

ubuntu でコマンドラインからシャットダウンするには、以下のように入力します。すぐにシャットダウンが始まります。

sudo shutdown -h now


例えば、5分後にシャットダウンしたい場合には、以下のように入力します。

sudo shutdown -h +5


20時54分ににシャットダウンしたい場合には、以下のように入力します。

sudo shutdown -h 20:54


ubuntu コマンドライン画面(コンソール)と端末

ubuntu では、Ctrl+Alt+F1 を押すことにより、コマンドラインの画面(コンソール)に移ることができます。また、F1の代わりにF2~F6のキーを押してもそれぞれのコマンドラインの画面(コンソール)に移ることができます。


コマンドラインの画面では、ls や cd や vi などのいわゆるコマンドを使うことができます。

コマンドラインの画面から、もとのグラフィックの画面に戻るためには、Ctrl+Alt+F7 を押します。

またグラフィックの画面で、Ctrl+Alt+T を押すことにより、いわゆる「端末」(terminal)を呼び出すことができます。端末上でも、いわゆるコマンドが使用できます。


私の環境(ubuntu12.10)では、コンソール上では、日本語の表示ができません。端末上だと日本語の表示ができます。以下は端末の画面です。



ビデオチップを確認するには(dxdiag)

ビデオチップを確認するには、「ファイル名を指定して実行(R)」のところで dxdiag  と入力します。DirectX診断ツールが表示されますので、「ディスプレイ」タブをクリックします。(WindowsVistaの場合)


2012年11月20日火曜日

WindowsXP が起動しなくなった時のための覚え書き

WindowsXP が起動しなくなった時に役に立つかもしれない覚え書き


通常はCドライブ直下にある、boot.ini ファイルの中身を見てみる。(boot.iniは通常は非表示になっているので要注意)


回復コンソールに入って、使うコマンド(ただし、以下のコマンドを使ってしまうとリカバリできなくなる場合もあるので要注意とのことです。)


fixboot
fixmbr
bootcfg /rebuild



回復コンソールをあらかじめインストールしておく方法
    Dドライブにディスクが入っているとして
    D:\i386\winnt32.exe /cmdcons


私の場合には、外付けハードディスクにも、WindowsXPをインストールしようとして失敗して、その後、今まで起動できていた内蔵ディスクからも起動できなくなってしまいました。回復コンソールに入って fixboot をやってみましたが駄目でした。bootcfg /rebuild を実行したところ、いくつかの質問が表示され、それに答えて入力したところ、その後、起動できるようになりました。原因は、boot.ini ファイルの内容がおかしくなっていたためでした。はじめに、boot.ini ファイルの内容を確認してみればよかったのですが、気がつきませんでした。

Windows 7 Enterprise 評価版


以下のサイトから、Windows 7 Enterprise 評価版をダウンロードすることができます。90日間の評価のための使用をすることができます。ダウンロード有効期限は 2012 年 12 月 30 日とのことです。


http://technet.microsoft.com/ja-jp/evalcenter/cc442495.aspx


(インストールしてから10日以内にライセンス認証することが必要です。ライセンス認証が終わるとその時点から90日間使用できるらしいです。)

Windows 8 Enterprise 評価版

以下のサイトから Windows 8 Enterprise 評価版をダウンロードすることができます。この評価版は90日間使用することができます。


http://technet.microsoft.com/ja-JP/evalcenter/hh699156.aspx


私は、ここで、ダウンロードしたiso ファイルをDVDに焼いてインストールディスクを作成しました。

このディスクからブートできるようになっているはずですが、私の持っているデスクトップPCでは、0x0000005D のエラーコードが表示されて、ブートしませんでした。

また、いったんPCをWindowsXPで起動させてから、このDVDを挿入して、インストールしようとしたところ、途中でエラーが発生してインストールに失敗しました。

理由はCPU(Pentium4 2.4GHz)がWindows8に対応していないためでした。


なお、一方で私の持っているノートPCでは、上記のエラーが出ることはなく、正常にインストールできました。


このように、Windows 8 Enterprise 評価版は、PCがWindows8に対応しているかどうかを調べる目的で使用することができます。



Windows7 のisoファイルのダウンロード



Windows7のiso ファイルがダウンロードできるそうです。どこのサイトからダウンロードすればよいかは以下のサイトからわかります。ただし、既にこれはライセンスを持っている人が、自分用のインストールディスクを作成するためのもののようです。(またたぶん英語版です。)



http://www.mydigitallife.info/windows-7-iso-x86-and-x64-official-direct-download-links-ultimate-professional-and-home-premium/

(注意)このサイトは、残念ながら現在はなくなってしまったようです。(平成25年5月3日)代わりに以下のサイトからダウンロードサイトにたどり着けます。



http://kentayx.neofig.com/2012/05/windows-7-iso.html

http://techpp.com/2009/11/11/download-windows-7-iso-official-direct-download-links/






Windows 7はWindows Vistaと同様にアクティベーションキーなしでも最大120日間使用出来るそうです。

マイクロソフトが新規ユーザ向けの「猶予期間」と呼ぶ、この30日間の限定試用期間の最終日にcmdからコマンドラインコードslmgr -rearmを入力するとこの試用期間が新たに30日延長されます。これは3回まで行うことができるので、30x3+最初の30日の合計120日間は問題なく使える計算になります。なお、コマンドラインからslmgr -dlv と入力するとあと何回延長できるかわかるそうです。(Windows7の場合)
 
http://www.lifehacker.jp/2009/08/090824windows_7120.html


http://technet.microsoft.com/ja-jp/library/bb490216.aspx


なお、アクティベーションキーなしで、30日を経過して、この slmgr -rearm というコマンドを入力しないでいると以下のサイトで記述されているような状態になります。(平成25年7月2日)


http://chaos-fractal.blogspot.jp/2013/07/windows7-30.html





●上記のことから、ラインセンスキーがなくても、120日ごとにWindows7をインストールし直せば永久にWindows7 を使えるのはないかと考えた人もいらっしゃるでしょう。実は私もそう考えました。しかしながら、120日ごとにインストールし直しするというのは結構めんどうなことです。しかもWindwos7の上で動作するアプリケーションもやはりそれぞれインストールし直しをしなくてはなりません。テスト機ならともかく、そのやり方は実用には耐えないように思います。


●なお、アクティベーションなしで、1年間使用する方法?が見つかりました?。以下のサイトでご紹介しています。(平成25年7月26日)
http://chaos-fractal.blogspot.jp/2013/07/windows-vista-windows71.html


●ウイルス対策ソフトとして Micorsoft Security Essentials を使用している場合、slmgr -rearm を使って期限延長していると、Windows7 が正規品ではないというメッセージが表示されることがあります。

http://chaos-fractal.blogspot.jp/2013/08/microsoft-security-essentials-windows7.html


Microsoft Office 2010 評価版を最大6ヵ月間利用する

2012年11月現在、マイクロソフトのサイトからOffice2010をダウンロードすることができます。そうしてインストール時に、評価版用のプロダクトキーを入力することにより、60日間使用できます。


http://www7.buyoffice.microsoft.com/jpn/default.aspx?cache=-1919362408



この60日間の評価期間を最大6ヵ月まで、延長する方法が書いてあるサイトを見つけました。



ツールを使う方法
http://masaf129.blog56.fc2.com/blog-entry-1935.html


コマンドラインからコマンド入力する方法
http://tamba-yu.blog.eonet.jp/eoblog/2012/02/office-2010-ff4e.html



コマンドプロンプトの管理者として実行を選択します。
\Program Files\Common Files\Microsoft Shared\OfficeSoftwareProtectionPlatform
に移動します。 (cd \----)
メモ: 
Windows 64 ビット版に Office 2010 32 ビット版をインストールした場合、このパスは
\Program Files (x86)\Common Files\Microsoft Shared\OfficeSoftwareProtectionPlatform
になることがあります。
コマンド プロンプトで、ospprearm.exe と入力します。

Windows7 を最大120日間使用する方法



Windows7のインストールでは、プロダクトキーなしでもできるそうです。プロダクトキーなしの場合には、30日間の評価版となるそうです。さらに、この30日間という評価期限を3回まで延長できるそうです。(コマンドラインから、slmgr -rearmと入力する)結果として120日間は評価で使用できることになります。詳しくは以下のサイトをご覧ください。

http://www.lifehacker.jp/2009/08/090824windows_7120.html

(英語)
http://www.pcworld.com/article/170492/windows_7_will_run_120_days_for_free.html

2012年11月19日月曜日

Ubuntu で iso ファイルからブートする

Ubuntu12.10がリリースされたのでisoファイルをダウンロードしました。このisoファイルを、普通はDVDに焼いてブートさせるのですが、HDDに置いてあるisoファイルからブートさせる方法があります。以下のサイトに書いてありましたので試してみました。

http://blog.livedoor.jp/vine_user/archives/51561790.html?1269852308




また、isoファイルをUSBに書き込んで、USBからブートさせる方法もあります。この場合にはUbuntuに用意されている、「スタートアップ・ディスクの作成」を使用します。


DELLのPCでファンが壊れた

持っているDELLのPCで、起動時に以下のようなメッセージが表示されるようになりました。なお、ファンの回る音がしなくなりました。

Alert! previous fan failure
Strike the F1 key to continue, F2 to run the setup utility

ここでF1 キーを押すと起動するのですが、しばらくすると、電源が落ちてしまいます。ファンが壊れているのだと思い、後ろから扇風機の風を送るようにすると落ちるまでの時間が長くなります。
DELLのサポートに連絡したところ、やはりファンの異常により、内部に熱がたまり それを検知して電源が落ちているのだそうです。修理が必要ですが、2~3万円かかり、現在は4万円で新品が買えるので、新品を買ったほうがよいですと言われました。



半年後に続く

2012年11月13日火曜日

プロダクトキーを調べる

Magical Jelly Bean Keyfinder というプログラムをダウンロードしました。このプログラムでは、パソコンにインストールされているWindowsOSやOfficeなどのソフトウエアのプロダクトキーを表示したり、ファイルに保存したりする機能があります。私の場合には、WindowsVistaやOffice2007などのやや古い製品なので、このプログラムで取り出すことができました。ただし、Windows7やOffice2010などの新しい製品のプロダクトキーを取り出すには、有料版のプログラムのほうを使う必要があります。

Magical Jelly Bean Keyfinderのホームページ
http://www.magicaljellybean.com/



Adware ?に感染

ダウンロードサイトから、あるファイルをダウンロードしようとしたら、その後、ブラウザの始めに表示されるホームページが変わってしまい、YourFileDownloader というソフトがメモリに常駐するようになりました。「なんか怪しいソフトだな。スパイウエアかもしれない。」と思って、spybot でスキャンしたところ、案の定Adware? と判明しました。
spybot で削除しました。




2012年11月10日土曜日

Windows8にアップグレードできない

●Windows8にアップグレードできない

10月26日にWindows8が発売されましたが、WindowsXP で使用している家のパソコンをWindows8にアップグレードできるかどうか調べてみました。もしOKなら、3300円を払えばWindows8proにアップグレードできることになります。結果はNGでした。Windows8アップグレードのサイトへ行ってパソコンがWindows8に対応しているかどうか調べるアップグレードアシスタントというプログラムをダウンロードして実行してみたところ、メモリが足りないというメッセージが出ました。Windows8を起動するために必要なメモリは1ギガですがこのPCは、512メガしかありません。調べるために実行したプログラムは以下です。

   Windows8-UpgradeAssistant.exe

そこでメモリを十分積んだ別のマシンでこのプログラムを実行してみました。





今度は、CPUが対応していないということがわかりました。Windows8を動作させるためには、CPUがNX(またはXD)という機能をサポートしている必要があります。以下のサイトからダウンロードできる資料の中にでてくるCoreinfo.exeというプログラムでNXがサポートされているかどうか調べることができます。

http://msdn.microsoft.com/ja-jp/library/windows/hardware/hh975398.aspx

結果はNXのところが、*ではなくて-が表示されてしまい「サポートされていない」ということがわかりました。CPUは、Pentium4(2.4GHz)ですが駄目なようです。これでは、3,300円出しても、Windows8を動作させることができません。残念です。




●Windows8 が駄目なら Windows7に


それではWindows8が駄目だとするとせめてWindows7が動作しないかどうかを検討していました。
CPUがPentium4 2.4GHz のPCですが、最近メモリを2Gに増設したばかりのため、まだ捨てるのはもったいないと思っています。

Windows7は、使いやすく、完成度が高いと聞いています。なお、Windows7のサポート期限は、2020年です。それまでPCの寿命を延ばすことができると考えています。

 Windows8Proにはダウングレード権がついているという話を聞いたことがあります。3,300円出してWindows8Proを購入し、その後ダウングレード権を行使して、Windows7proにできないだろうかと思いつきました。WindowsXPから3,300円でWindows7proにアップできれば安い買い物です。Windows7のDVDはありませんが以下でisoファイルのダウンロードサイトがわかります。

http://www.mydigitallife.info/windows-7-iso-x86-and-x64-official-direct-download-links-ultimate-professional-and-home-premium/


ところがインターネットでよくよく調べてみると、3,300円のアップグレード版Windows8Proには、ダウングレード権はついていないようなことが書いてありました。これまた残念です。

2012年10月6日土曜日

Ubuntu 12.04  で SQLite をODBC登録

UbuntuのLibreOffice のBaseから、SQLiteのデータベースに接続するために、ODBCを経由する方法があります。そのためには、Ubuntu上でSQLiteデータベースをODBC登録する必要があります。

まず、Synapticなどで、libsqliteodbc をインストールします。(unixodbc unixodbc-binもインストールする必要があるかもしれません。

sudo ODBCManageDataSourcesQ4  (もしくはsudo ODBCCreateDataSourceQ4) を実行します。(Ubuntu11.10では sudo ODBCConfig だったのがUbuntu12.04 ではsudo ODBCManageDataSourcesQ4 に変わったようです。)


Addbボタンを押して、DSNを登録していきます。登録した結果は/etc/odbc.iniに記録されます。またドライバー情報は、/etc/odbcinst.iniに記録されます。なお、以下は私のマシンでの/etc/odbcinst.ini の内容です。


[MySQL ODBC Driver]
Description             =
Driver          = /usr/lib/i386-linux-gnu/odbc/libmyodbc.so
Setup           = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so
UsageCount              = 1
CPTimeout               =
CPReuse         =

[SQLite]
Description             = SQLite ODBC Driver
Driver          = /usr/lib/odbc/libsqliteodbc.so
Setup           = /usr/lib/odbc/libsqliteodbc.so
UsageCount              = 1

[SQLite3]
Description             = SQLite3 ODBC Driver
Driver          = /usr/lib/odbc/libsqlite3odbc.so
Setup           = /usr/lib/odbc/libsqlite3odbc.so
UsageCount              = 1





参考サイト

MySQLへのODBC経由の接続
http://chaos-fractal.blogspot.jp/2011/11/mysql-odbc.html


Ubuntu でLibreOffice からMySqlに接続する。


http://chaos-fractal.blogspot.jp/2012/09/ubuntu-libreofficemysql.html




SQLite Database Browser をダウンロードした

●以下のサイトから、SQLiteのデータベースの内容を確認できるブラウザー(sqlitebrowser)をダウンロードしてみました。(Windows版)


http://sourceforge.net/projects/sqlitebrowser/





●Ubuntu12.04の場合には、コマンドラインから以下のように入力することで使用できるようになるようです。

sudo apt-get install sqlitebrowser





●SQLite の内容をGUIで見ることのできるプログラムは他にもいくつかあるようです。以下はそのうちのひとつです。

http://www.forest.impress.co.jp/article/2008/09/04/pupsqlite.html


(2014.7.8)
この pupSQLite というソフトウエアを Windows7 上で走らせてみました。
http://chaos-fractal.blogspot.jp/2014/07/windows-pupsqlite.html

2012年10月5日金曜日

LibreOffice データベースのサンプル

LibreOfficeのBaseでデータベースをつくったり、簡単な入力フォームを作ったりしたいのだが、何かサンプルのようなものはないだろうかと探したところ、英語ですが以下のようなページが見つかりました。2番めのリンクでサンプルデータベースをダウンロードできるようになっています。




http://ask.libreoffice.org/question/389/where-can-i-find-sample-databases-for-base/

http://www.computeractive.co.uk/ca/download-review/2107781/track-books-dvds-libre-office-base-database

grub2 でデフォルトの起動OSを変更するには

Ubuntuをインストールすると、起動時にOSを選択できるメニューが表示されます。Windowsとデュアルブートにしてある場合に、デフォルトの起動OSの選択をWindowsにしておきたい場合などがあると思われます。そのような場合のデフォルトの起動OSを変更する方法をメモしておきます。Ubuntu12.04 で動作確認しました。


1.デフォルトにしたいOSがメニューの何番目に表示されるか確認しておきます。

2.sudo gedit /etc/default/grub  を実行します。

3.GRUB_DEFALUT=0 となっているところを変更します。
   例えばメニューの6番めをデフォルトにしたい場合にはGRUB_DEFALUT=5とします。

4.sudo update-grub  を実行します。



2012年10月4日木曜日

Perl から ODBC経由でAccessデータベースへ接続

以下はPerl から ODBC経由でAccessデータベースへ接続するサンプルです。(Windows上で動作)あらかじめODBCの登録を行っておく必要があります。以下のサンプルでは、DSN="passwd" としています。

Ubuntu で github

githubについて忘れないようにするためのメモ

●リポジトリを作成するには

-自分のgithub のwebページでリポジトリを作成(Create)する。リポジトリ名をStockDbとする。

-ローカルのマシンで以下のように入力
     mkdir  StockDb

-    cd StockDb

-    touch README.md

-    git init

-    git add README.md

-    git commit -m "first commit"

- github のユーザ名をcofearabiとすると以下のように入力
     git remote add origin https://github.com/cofearabi/StockDb.git

-    git push -u origin master

 

●github のリポジトリのクローンをローカルに作成するには例えば以下のように入力する

-    git clone https://github.com/cofearabi/StockDb.git



参考にさせていただいたサイト

https://help.github.com/articles/fork-a-repo





PHP でMysql のテーブルの内容を表示 

PHP でMysql のテーブルの内容を表示するcgiプログラムです。stock_dbというデータベースのstockというテーブルの内容を表示しています。フィールド名やフィールドの数などはプログラム内部で調べています。

2012年10月1日月曜日

LibreOffice のマクロからAccessデータベースに接続(CreateObject とADO)

以下のサンプルでは、LibreOffice3.5.6.2(Windows) のマクロからAccess2003データベースに接続しています。CreateObject とADOを使用しています。c:\passwd.mdb" というAccessデータベースには、password というテーブルがあってkeyword,password,dateなどのフィールドが存在します。Excelのマクロとしても動作するはずです。




sub adodb

 Set conn = CreateObject("ADODB.Connection")
 Set rs = CreateObject("ADODB.Recordset")
    
   conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\passwd.mdb"
    
    rs.Open "select * from password", conn ,3,3

    msgbox rs.fields.Count
    msgbox rs.recordcount

    rs.movefirst
    rs.MoveNext

    MsgBox "--" & rs.Fields.Item("keyword")
    
 rs.Addnew
 rs.Fields.Item("keyword")="AAAAA"
     rs.Fields.Item("password")="GUESS"
     rs.Fields.Item("date")="2012/10/01"
 rs.Update
  
    rs.Close
    conn.Close
    
msgbox "end"

end sub






参照させていただいたサイト
http://www.w3schools.com/ado/ado_ref_recordset.asp

2012年9月28日金曜日

Perl で sscanf

Perl で例えば 2012年9月1日 のような日付を、2012/09/01 のような形式に変換したい場合があります。以下はそのための、sscanf を使ったサンプルです。



use String::Scanf;

   my $hiduke0 = "2012年9月1日";
   my ($a,$b,$c)=sscanf('%d年%d月%d日',$hiduke0);
   printf('%4d/%02d/%02d'. "\n" , $a,$b,$c);


2012年9月26日水曜日

LibreOffice のマクロで、MySqlに接続する

LibreOfficeではマクロが使用できます。使用したのは、Unix(Ubuntu12.04)上で動作するLibreOfficeのバージョン3.5.4.2です。
以下はMySQLに接続して、レコードを挿入するサンプルです。ユーザ名とパスワードは'root'でデータベース名は、stock_dbでテーブル名は、stock です。



sub main7 

Dim DatabaseContext as object
Dim DataSource as Object
Dim Connection as Object
Dim Statement as Object
Dim sSQL as String

Dim oResultSet as Object
Dim nDlgResult As Integer

Dim sURL as String
Dim oProps(2) as new com.sun.star.beans.PropertyValue
' ***** データベースのコネクション  *****
DatabaseContext=createUnoService("com.sun.star.sdbc.DriverManager") 
sURL = "jdbc:mysql://127.0.0.1:3306/stock_db?useUnicode=true&characterEncoding=UTF-8"
oProps(0).Name = "user"
oProps(0).value = "root"
oProps(1).Name = "password"
oProps(1).value = "root"
oProps(2).name = "JavaDriverClass"
oProps(2).value = "com.mysql.jdbc.Driver"

Connection = DatabaseContext.getConnectionWithInfo(sURL, oProps())

' ***** SQLの実行  *****
Statement = Connection.createStatement()
 nResult = Statement.executeUpdate("INSERT INTO stock (code,hiduke,jikoku,price )" & _ 
  "VALUES (1003, '2012/09/24','15:00',12400)")

' oResultSet = Statement.executeQuery("SELECT * FROM stock;")
' oResultSet.Next
' Msgbox(oResultSet.getString(1))

' ***** データベースを閉じる  *****
Statement.Close()
Connection.Close()
Connection.Dispose()

end sub 


OpenOffice(LibreOffice)からAccessデータベースに接続

OpenOfficeでAccessのデータベースへ接続することができます。Accessを持っていなくてもテーブルの中身を見ることができるので便利です。Windows版のOpenOffice3.4.1を使用しました。Windows版LibreOffice3.5.6.2でも試したところ同様に見ることができました。Access2003のmdbファイルの中身を見ることができました。


Java から Access の mdb に接続する

以下は、JavaでAccessのmdbにODBC経由で接続して、テーブルの中身を表示するサンプルです。WindowsXPを使用しています。あらかじめコントロールパネルの管理ツールで、ODBCデータソースを設定しておきます。サンプルではデータソース名は、passwdでテーブル名はpasswordです。テーブルの中には、uniq_id,keyword,password,dateというフィールドが存在します。日本語が文字化けする場合があります。


import java.sql.*;

public class password {

 public static void main(String[] args) {
  try{
  //
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  //
  Connection con=DriverManager.getConnection("jdbc:odbc:passwd");
  //
  Statement stmt = con.createStatement();
  //
  String sql = "SELECT * FROM password";
  //
  ResultSet rs = stmt.executeQuery(sql);
  //
   while(rs.next()){
    //
    int uniq_id = rs.getInt("uniq_id");
    //
    String keyword = rs.getString("keyword");
    //
    String password = rs.getString("password");
    //
    String date = rs.getString("date");
    
    //
    System.out.println(uniq_id + " " + keyword + " " + password + " " + date);
   }
  stmt.close();
  con.close(); 
  }catch(Exception e){
   e.printStackTrace();
  }
  
  
 }

}






(2014.7.9)この方法は、 Java 8 になってからは使用できなくなりました。

http://chaos-fractal.blogspot.jp/2014/07/java-access-jdbc-odbc.html





2012年9月25日火曜日

Perl からMySqlに接続する


以下のサンプルは、インターネットのどこかに載っていたのをほとんどそのまま使用しています。(感謝)cgi として動作するようになっているはずです。ユーザ名とパスワードは'root'としています。またデータベース名はstock_db、   テーブル名はstock としています。



#!/usr/bin/perl

use DBI;

$dbuser="root";
$dbpass="root";
$dbname="stock_db";
$sql="select * from stock";

$dsn = "DBI:mysql:$dbname";
$dsh = DBI -> connect ( $dsn, $dbuser, $dbpass , { RaiseError => 0 } );
$sth = $dsh->prepare($sql);
$sth->execute;
$num_rows = $sth->rows;

print "Content-type: text/html\n\n";

print <<HTML_HEAD;


HTML_HEAD

if ($dsh) {
    print "successfully connected to the database<br>\n";
} else {
    print "fail to connect to the database<br>\n";
}

print "number of records : $num_rows <br>\n";

for ($i=0; $i<$num_rows; $i++) {
    @a = $sth->fetchrow_array;
    print "code=$a[0], hiduke=$a[1] ,jikoku=$a[2] ,price=$a[3]<br>\n";
}

print <<HTML_TAIL;


HTML_TAIL

$sth->finish;
$dsh -> disconnect;

exit(0);





PHP から MySql に接続する

PHP から MySql に接続して、テーブルの内容を表示するサンプルです。ユーザー名とパスワードは'root'にしてあります。データベース名は、'stock_db'でテーブル名は、'stock'です。




-------------------------------------------------------------------

<html>
<head>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
</head>

<?php
$server    = '127.0.0.1';
$username  = 'root';
$password  = 'root';

$link = mysql_connect($server, $username, $password);
if (!$link) {
    die('can not connect : ' . mysql_error());
}
echo 'successfully connected';

$db_selected = mysql_select_db('stock_db',$link);
if (!$db_selected){
    die('fail to select database'.mysql_error());
}

$result = mysql_query('SELECT * FROM stock');
if (!$result) {
    die('query fail'.mysql_error());
}

$numFields = mysql_num_fields($result);
print("<br>num of fields:");
print($numFields);

$nameFields = array();
for($i=0;$i<$numFields;$i++){
$nameFields[] = mysql_field_name($result, $i);
}


    print("<br>");
    print("<table border=1>");
    print("<tr>");
for($j=0;$j<$numFields;$j++){
    print("<td>");
    print($nameFields[$j]);
    print("</td>");
}
    print("</tr>");

while ($row = mysql_fetch_assoc($result)) {
    print("<tr>");
    for($j=0;$j<$numFields;$j++){
        print("<td>");
        print($row[$nameFields[$j]]);
        print("</td>");
    }
    print("</tr>");
}
    print("</table>");
mysql_close($link);
?>

</html>


-------------------------------------------------------------------

2012年9月22日土曜日

Ubuntu でLibreOffice からMySqlに接続する。


使用したバージョン

Ubuntu 12.04
LibreOffice 3.4.5.2





Ubuntu のLibreOfficeのBaseからMySqlに接続する方法は3とおりあるようです。ODBC、JDBCを使う方法と、ダイレクト(直接)に接続する方法です。




●ODBCを使用するには、以下を実行してからsudo ODBCConfig で設定を行ないます。(ただし、Ubuntu12.04ではODBCConfigがコマンドが見つかりませんとなってしまい実行できません。
代わりに sudo ODBCManageDataSourcesQ4 を実行し、ODBC設定を行ないます。)

sudo apt-get install unixodbc unixodbc-bin libmyodbc 



ドライバーの情報およびODBC登録した結果は/etc/odbcinst.ini および/etc/odbc.ini に記録されます。以下は、私のマシンでの/etc/odbcinst.ini の内容です。

[MySQL ODBC Driver]

Description             =
Driver          = /usr/lib/i386-linux-gnu/odbc/libmyodbc.so
Setup           = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so
UsageCount              = 1
CPTimeout               =
CPReuse         =

以下のサイトを参照しました。

http://sourceforge.jp/magazine/07/02/28/0121236




●JDBC経由でMySqlに接続しようとして、はじめはうまくいきませんでしたが、以下のサイトを参照してできるようになりました。

http://maxolasersquad.blogspot.jp/2011/03/connect-to-mysql-database-from.html

準備として以下を実行する必要があるようです。

sudo apt-get install libmysql-java



●ダイレクトに接続する方法としては、以下のサイトを参照しました。

http://ns.uchb.net/os/libreoffice.html


Synapticパッケージマネージャから"openclipart-libreoffice"をインストールします。



●参考
MySQLへのODBC経由での接続
http://chaos-fractal.blogspot.jp/2011/11/mysql-odbc.html


OpenOfficeからSQLiteに接続する
http://www.serendip.ws/archives/5250



Javaでコマンドラインから入力を促し文字列を取得する。



コマンドラインから入力してもらった文字列を取得したい場合があります。以下のサンプルでは、コマンドラインから名前を入力してもらい、それを取得して表示します。

import java.io.*;



public class ReadLine{

 public static void main(String[] args){

  try{
   BufferedReader bf = new BufferedReader
   (new InputStreamReader(System.in));
   System.out.print("Enter your name:");
   String yourname = bf.readLine();
   System.out.println("helo:" + yourname);
  } catch(Exception e){
   e.printStackTrace();
  }
 }
}





2012年9月21日金曜日

Java プログラムでMySqlを操作する

以下のサイトを参照させてもらいました。



http://www.roseindia.net/jdbc/jdbc-mysql/index.shtml


以下はemployeeテーブルの内容を表示するJavaサンプルプログラムです。

import java.sql.*;

public class GetAllRows{
  public static void main(String[] args) {
  System.out.println("Getting All Rows from a table!");
  Connection con = null;
  String url = "jdbc:mysql://localhost:3306/";
  String db = "employee_db";
  String driver = "com.mysql.jdbc.Driver";
  String user = "root";
  String pass = "root";
  try{
  Class.forName(driver).newInstance();
  con = DriverManager.getConnection(url+db, user, pass);
  try{
  Statement st = con.createStatement();
  ResultSet res = st.executeQuery("SELECT * FROM  employee");
  System.out.println("code: " + "\t" + "employee: ");
  while (res.next()) {
  int i = res.getInt("id");
  String s = res.getString("employee");
  System.out.println(i + "\t\t" + s);
  }
  con.close();
  }
  catch (SQLException s){
  System.out.println("SQL code does not execute.");
  }  
  }
  catch (Exception e){
  e.printStackTrace();
  }
  }
}



2012年9月18日火曜日

Java 時刻を表示

以下はサンプル


import java.util.Calendar;


public class checktime{

 public static void main(String[] args) {
  
  String Timedate = checkTime();
  System.out.println(Timedate);
  

 }

 private static String  checkTime(){
        
     String modori;
     Calendar cal1 = Calendar.getInstance();  

     int year = cal1.get(Calendar.YEAR);        
     int month = cal1.get(Calendar.MONTH) + 1;  
     int day = cal1.get(Calendar.DATE);         
     int hour = cal1.get(Calendar.HOUR_OF_DAY); 
     int minute = cal1.get(Calendar.MINUTE);    
     int second = cal1.get(Calendar.SECOND);    

     StringBuffer dow = new StringBuffer();
     switch (cal1.get(Calendar.DAY_OF_WEEK)) {  
       case Calendar.SUNDAY: dow.append("日曜日"); break;
       case Calendar.MONDAY: dow.append("月曜日"); break;
       case Calendar.TUESDAY: dow.append("火曜日"); break;
       case Calendar.WEDNESDAY: dow.append("水曜日"); break;
       case Calendar.THURSDAY: dow.append("木曜日"); break;
       case Calendar.FRIDAY: dow.append("金曜日"); break;
       case Calendar.SATURDAY: dow.append("土曜日"); break;
     }

     
     modori =String.format("%04d/%02d/%02d%s%02d:%02d:%02d"
       ,year,month,day,dow,hour,minute,second);

     return modori;
     
     
     }
}


2012年9月17日月曜日

Java でExcel ファイルを作成する。(JExcelApi)(2)

Java でExcel ファイルを作成するサンプルです。(動作は無保証です。) 先日の「Excelファイルを編集する」と同様にJExcelApiを使用しています。


import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Locale;

import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.write.Label;
//import jxl.write.Number;

import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;




public class ExcelWrite {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

 try{ 
  
  WorkbookSettings settings = new WorkbookSettings();
     settings.setLocale(new Locale("ja", "JP"));
     settings.setEncoding("Windows-31J");
     
     OutputStream os = new FileOutputStream("output.xls");
     WritableWorkbook workbook = Workbook.createWorkbook(os, settings);
     
     // シートの新規作成
     WritableSheet sheet = workbook.createSheet("sheet1", 0);
     
     // ※ここからシートの書き込み処理を記述する
     Label label = new Label(0, 0, "サンプル");
     sheet.addCell(label);
     
     // 終了処理
     workbook.write();
     workbook.close();

 }catch(Exception ex){
  System.err.println("失敗しました.:" + ex.toString());
 }finally{

  System.out.println("終了しました.:");

  ;
  
 }
 


 }

}




Java でExcel ファイルを作成する。(JExcelApi)

Java でExcel ファイルを作成するサンプルです。(動作は無保証です。) 先日の「Excelファイルを編集する」と同様にJExcelApiを使用しています。



import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Locale;

import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.write.Label;
import jxl.write.Number;

import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

/*
import java.io.File; 
import java.util.Date;
*/ 
import jxl.*; 
import jxl.write.*; 



public class ExcelWrite {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

  
  
  WritableWorkbook workbook=null;
  
  String outputFileName = "output.xls";

try{  
  workbook = Workbook.createWorkbook(new File(outputFileName));

  WritableSheet sheet = workbook.createSheet("Sheet1", 0);
//  WritableSheet sheet = workbook.createSheet("First Sheet", 0);
 
 


  Label label = new Label(0, 2, "サンプル"); 
  sheet.addCell(label); 

  Number number = new Number(3, 4,12800); 
  sheet.addCell(number);
 
 
  workbook.write(); 
  workbook.close();
}catch(Exception ex){
 System.err.println("失敗しました.:" + ex.toString());
}finally{

 System.out.println("終了しました.:");

 ;
 
}


 }

}



2012年9月15日土曜日

Java でファイルにappendする

以下は既にあるファイルの最後に行を追加するサンプルです。
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

class FileAppend{
   public static void main(String args[]){
      
      try{
       File file = new File("test.txt");

         FileWriter filewriter = new FileWriter(file, true);

         filewriter.write("この行を追加します1\n");
         filewriter.write("この行も追加します2\n");

         
         filewriter.close();
     }catch(IOException e){
       System.out.println(e);
     }
    
    
   }
}   
   
   

2012年9月14日金曜日

Ubuntu 12.04 でcrontab の設定

以下のように入力して、ファイルを編集する。
crontab -e

 以下は java -jar /home/excelwrite3.jar > /dev/null 2>&1 というコマンドを月曜日~金曜日、8時~15時台、5分おきに実行する場合の例です。


例) */5 8-15 * * 1-5 java -jar /home/excelwrite3.jar > /dev/null 2>&1

2012年9月13日木曜日

Java でファイルを1行づつ読み込み配列に格納する

サンプルプログラム(以下のサンプルでは、zzz.txtというファイルの中身を1行づつ読み出してstrarray[]という配列に格納しています。)

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;


public class FileRead {

 public static void main(String[] args) {
          
  String[] strarray = new String[1000];
      
       
  int i = 0;
       
       
  try{
       File file = new File("zzz.txt");

       BufferedReader br = new BufferedReader(new FileReader(file));

       String str= null;
       i=0;
       while((str = br.readLine()) != null){
           System.out.println(str);
              
           strarray[i]=str;
           i = i +1;
              
       }

       br.close();
       
              
  }catch(FileNotFoundException e){
        System.out.println(e);
  }catch(IOException e){
        System.out.println(e);
  }
 }

}


2012年9月12日水曜日

Java でExcelファイルを編集する。(JExcelApi)

JavaでExcelファイルを弄る方法としてPOIを使用する方法もあるようですがこの例ではJExcelApiを使用します。JExcelApiはhttp://sourceforge.net/projects/jexcelapi/files/ からダウンロードできます。(ダウンロードしたファイルを解凍すると、jxl.jarというファイルがありますので、それをクラスパスに通します。)

参考にさせていただいたサイト
http://homepage3.nifty.com/anny/index.html
http://vapour.s22.xrea.com/javadojo/index.php?Java%A4%C7Excel
http://jexcelapi.sourceforge.net/


サンプル 


import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;


public class ExcelEdit {

 public static void main(String[] args) {


  int line = 8;
    
        Workbook workbook = null;
       
        try {
              
          WorkbookSettings ws = new WorkbookSettings();
            ws.setGCDisabled(true);
      workbook = Workbook.getWorkbook(new File("output.xls"), ws);

    } catch (BiffException e) {
          e.printStackTrace();
    } catch (IOException e) {
          e.printStackTrace();
    } finally {
          if (workbook != null) {
               ;
          }
  }

       
  File outputFile= new File("output.xls");
    
    
  WritableWorkbook workbook1=null;
    
  try {
   System.out.println(outputFile + "ブックを新規作成");
   workbook1 = Workbook.createWorkbook(outputFile,workbook);
    if (workbook1 == null) {
     System.err.println(outputFile 
       + "ブック作成に失敗");
     }
    } catch (IOException ex) {
     System.err.println(ex.toString());
    }
    WritableSheet sheet = workbook1.getSheet(0);
    if (sheet == null) {
     System.err.println(outputFile 
       + "シート設定に失敗");
    }
    
    

    Label label = new Label(1, line, "サンプル");
    try {
     sheet.addCell(label);
    } catch (WriteException ex) {
     System.err.println("セルの書き込みに失敗" 
                + ex.toString());
    }

    Number number = new Number(0, line, 12800);
    try {
     sheet.addCell(number);
    } catch (WriteException ex) {
     System.err.println("line セルの書き込みに失敗" 
                + ex.toString());
    }
    
    
    System.out.println("日付セルを新規作成");
    SimpleDateFormat format 
    = new SimpleDateFormat("yyyy/MM/dd");
    String dateStr = format.format(new Date());
    Label label2 = new Label(2, line, dateStr);
    try {
     sheet.addCell(label2);
    } catch (WriteException ex) {
     System.err.println("セルの書き込みに失敗" 
                           + ex.toString());
    }
   
   
    try {
     workbook1.write();
    } catch (IOException ex) {  
     if (workbook1 != null) {
     
     System.err.println(outputFile 
       + "ブックの書き込みに失敗"
       + ex.toString());
    
     }
     
     }
    
    try {

     workbook1.close();
     workbook.close();

    } catch (Exception ex) {
     System.err.println(outputFile 
       + "ブックのクローズに失敗"
       + ex.toString());
    }
        
       
      }

  

}


2012年9月2日日曜日

JAVA jsoup で株価を取得する


JAVAのプログラムで、Yahooのサイトから株価を取得してみました。jsoupを使用しました。以下のサンプルプログラムでは、東京電力(9501)の株価を取得しています。jsoupはhttp://jsoup.org/download からダウンロードして使用しました。



サンプルプログラム
--------------------------------------


import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;


public class GetPrice {
    public static void main(String[] args) throws IOException {

    String url = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=9501.T";

        Document doc = Jsoup.connect(url).get();
        Elements stoksPrices=doc.select("td[class=stoksPrice]");
       

        for (Element stoksPrice : stoksPrices){
            System.out.println(stoksPrice.text());

        }  
       
    }

}

2012年5月31日木曜日

Ubuntu のApache のcgi-bin の配置場所

Ubuntu のApache のcgi-bin の配置場所は、usr/lib/cgi-bin のようです。/var/www の配下にcgi-ginというディレクトリを作成していたがどうもうまくいかないと思っていました。以下は、Mysqlサーバに接続してテーブルの中身を表示するサンプルのcgiプログラム(rubyで記述)です。






#!/usr/bin/ruby

require "cgi"
require "mysql"


  no = 9

sql = "select id, pass ,comment from pass "
m = Mysql.new('localhost','user_name','password','database_name')
res = m.query(sql)

print "Content-type: text/html\n\n"
print <<EOF
<html>
<body>

Gaitou Kensuu #{res.num_rows} Ken<br>

EOF


i = 0
no_a = [0]
name_a = [0]
res.each do |a|
    no_a[i] = a[0]
    name_a[i] = a[1]
    puts a[0]+" =>"+a[1]+"<br>"
    i += 1
end
print <<EOF
</body>
</html>
EOF
m.close


2012年5月25日金曜日

PHP でファイルの中身を表示するには


以下のサンプルでは、ファイルの中身を1行づつ配列に格納した後に、行頭に行番号をつけて表示します。


<?php



function showLines($f){

     $lines = @file($f) or exit('*can not read file');

     for($i = 0; $i < count($lines); $i++)

         echo ($i+1) . ": " . $lines[$i];

}



echo "ファイル名を入力input file name:";

$a = trim(fgets(STDIN));

showLines($a);



?>



以下のサンプルでは、ファイルを読み込んで表示します。



<?php
echo "input file name:";
$a = trim(fgets(STDIN));
readfile($a);
?>









PHP でファイルの属性を得る


ファイル名を入力すると、ファイルのサイズ、更新日付などを表示します。





<?php



function showInfo($path){

    echo "Path: " . realpath($path) . "\n";

    echo "Type: " . filetype($path) . "\nSize: " . filesize($path) . "\n";

    echo "Modified: " . date('Y-m-d H:i:s',filemtime($path));

    echo "\nAccessed: " .date('Y-m-d H:i:s', fileatime($path));

}



echo "input file name:";

$a = trim(fgets(STDIN));

showInfo($a);



?>



2012年5月23日水曜日

PHP でファイルに保存する


以下の例では、標準入力から読み込んだ行をsave.txtというファイルに追記しています。



<?php

echo "input text:";
$a = trim(fgets(STDIN));
saveText($a);
echo "\n";
readfile('save.txt');

function saveText($str){
  $f = @fopen('save.txt','ab') or exit('fail to access to file.');
  fputs($f,$str . "\n");
  fclose($f);
}
?>


PHPで乱数を発生させる


<?php

/*

   乱数を得るには



*/



   echo "整数を入力:";

   $a = trim(fgets(STDIN));

   for($i = 0;$i < 100;$i++) echo rand(0,$a) . " ";

?>


------------------------------------------------------------------------

その他のPHPの技はhttp://chaos-fractal.blogspot.jp/2011/12/php.html



2012年5月17日木曜日

ruby でExcel を読み書き

こちらでも記載しています。
●Excelから読み込む場合のサンプル1


require 'rubygems'
require 'spreadsheet'

xls = Spreadsheet.open('tests.xls', 'rb') #Excelファイルの読み込み
sheet = xls.worksheet(0) #0番目つまり1番始めのsheetを読み込む

#読み込みの開始が'0'から始まる。
print sheet[0,1] #実際のExcelでは、1行目の2列目の値を読み込み
print "\n"

#行単位で読み込む事も出来ます。
row = sheet.row(2) #3行目のデータを読み込み
print row[2] #3行目の3列目のデータを読み込み
print "\n"


●Excelから読み込む場合のサンプル2

require 'rubygems'
require 'parseexcel'
#Open the excel file passed in from the commandline
workbook = Spreadsheet::ParseExcel.parse(ARGV[0])

#Get the first worksheet
worksheet = workbook.worksheet(0)

#cycle over every row
  j=0
worksheet.each { |row|
# j=0
  i=0
  if row != nil
  #cycle over each cell in this row if it's not an empty row
  row.each { |cell|
    if cell != nil
      #Get the contents of the cell as a string
      #contents = cell.to_s('latin1')
      contents = cell.to_s('utf-8')
      puts "Row: #{j} Cell: #{i}> #{contents}"
    end
    i = i+1
  }
  end
  j = j+1
}



●Excelへ書き込む場合のサンプル1

$KCODE = 'utf-8'

require 'rubygems'
require 'spreadsheet'

Spreadsheet.client_encoding = 'UTF-8'

workbook = Spreadsheet::Workbook.new
worksheet = workbook.create_worksheet(:name => 'test1')

# worksheet[行番号,列番号] で書き込める
worksheet[0, 0] = "hello"
# 行を纏めて書き込むには,worksheet.row(行番号).replaceにArrayを叩き込む
worksheet.row(1).replace ["Matz", "Guido", "Larry"]
# セル内改行もできます
worksheet[2, 0] = "日本語\nです"

workbook.write('tests.xls')



●Excelへ書き込む場合のサンプル2


require 'rubygems'
 require 'axlsx'
#// A Simple Workbook

  p = Axlsx::Package.new
  p.workbook.add_worksheet do |sheet|
    sheet.add_row ["First", "Second", "Third"]
    sheet.add_row [1, 2, 3]
  end
  p.serialize("example1.xlsx")



●Excelへ書き込む場合のサンプル3

require 'rubygems'
 require 'axlsx'
p = Axlsx::Package.new
 wb = p.workbook
 black_cell = wb.styles.add_style :bg_color => "FF000000", :fg_color => "FFFFFFFF", :sz=>14, :alignment => { :horizontal=> :center }
 blue_cell = wb.styles.add_style  :bg_color => "FF0000FF", :fg_color => "FFFFFFFF", :sz=>14, :alignment => { :horizontal=> :center }
 wb.add_worksheet do |sheet|
   sheet.add_row ["Text Autowidth", "Second", "Third"], :style => [black_cell, blue_cell, black_cell]
   sheet.add_row [1, 2, 3], :style => Axlsx::STYLE_THIN_BORDER
 end
 p.serialize("example4.xlsx")


2012年5月9日水曜日

Perl で ファイルの読み込み時にエラーを出すには

Perl  でファイルの読み込み時にエラーが出たときにメッセージを出力するには


例1


$filename = "data2.txt";
if( ! open FH , $filename ){
      print $filename . "  open error\n"; 
}



例2

$filename = "./data2.dat";
open( FH , "$filename" ) || die "Error: $filename $!\n";



2012年5月8日火曜日

Ubuntu 12.04 で Avira AntiVir (挫折)

Avira antivir について
Ubuntu 12.04 上で動作する無料のウイルスチェッカAvira-AntiVirをインストールしようとしたが、dasukoFSのインストールができないので、挫折してしまいました。

antivir-workstation-pers-3.1.3.5-0
  • avupdate-guard
  • avscan
  • dazuko がインストールされていなくてもオンデマンドスキャンだけならできる。

antivir-workstation-pers-3.0.2-5
  • sudo /usr/lib/AntiVir/avupdate --product=Guard ( no valid license )
  • dazukoFS 3.14 のインストールで挫折

2012年5月5日土曜日

Ubuntu でGRUBが消えてしまった

私は、Ubuntu12.04 と WindowsXPのデュアルブートで使用している。PCを起動するとGRUBメニューがでてきて、Ubuntuを起動するかWindowsを起動するか選択できるようになっている。CD-ROMを使用してWindowsXPのリカバリを行なおうとしたところ、その後このGRUBメニューが出てこなくなってしまった。PCを起動すると、すぐにWindowsの起動の画面になってしまい、Ubuntuを起動することができなくなってしまったーと思ってインターネットで調べたところ、対処法がいろいろ書かれてあったので、それにしたがってGRUBメニューを復旧したので、その方法を簡単にメモしておく。
  1. 以下のサイトにしたがって、SUPER GRUB2 DISKをダウンロードして、CD-ROMに焼く。 GRUB2が壊れて起動できない時に、らくちんに修復する!転ばぬ先の「Super Grub Disk」
  2. 上記で作成したCD-ROMを使ってPCを起動させる。起動できるOSの一覧を表示させて、Ubuntu12.04に相当するのを選択するとUbuntuが起動した。
  3. Ubuntuが起動したところで、以下のコマンドを入力する。/dev/sda の部分は環境によって異なる可能性があり。(sudo fdisk -l で調べる)
    sudo /usr/sbin/grub-install /dev/sda


注意事項 今回は、SUPER GRUB2 DISK を使用したが、別の方法で起動することもできる。
  • LiveCDを入れて起動する途中、黒い画面から赤紫色の画面になったところで,F6キーを押してメニュー表示させる。F6キーを押すと、起動オプションを変更することができるようになるため、「boot=casper」となっているところを「root=/dev/sda5」などに変更してEnterすると、起動する。(sda5の部分は使用環境によって異なる。)私の環境では、このやり方で起動すると、なぜかマウスカーソルが動かなくなってしまった。理由は不明。
  • PuppyLinuxなどのLiveCDでは、起動時に、GRUB4DOSなどを選択することができるようになっている。これを使ってGRUBのコマンドを入力して起動させる。以下は、sda5にUbuntuが入っている場合の入力例

    GRUB>root (hd,4)
    GRUB>kernel /boot/vmlinuz-3.2.0-24-generic root=/dev/sda5
    GRUB>initrd /boot/initrd.img-3.2.0-24-generic
    GRUB>boot

Ubuntu 12.04 で BitDefender をインストールした

インストールのやり方は以下のサイトを参照
List of Free Antivirus Software for Ubuntu 12.04


  • 以下のコマンドによりダウロードしてくる。
    wget http://download.bitdefender.com/SMB/Workstation_Security_and_Management/BitDefender_Antivirus_Scanner_for_Unices/Unix/Current/EN_FR_BR_RO/Linux/BitDefender-Antivirus-Scanner-7.6-4.linux-gcc4x.i586.deb.run
  • ダウンロードしたファイルを実行可能にする。
    sudo chmod +x BitDefender-Antivirus-Scanner-7.6-4.linux-gcc4x.i586.deb.run
  • 実行してインストールを行う。
    sudo ./BitDefender-Antivirus-Scanner-7.6-4.linux-gcc4x.i586.deb.run
  • BitDefenderのサイトより1年間のフリーラインセンスを取得する。
    ScannerLicense

使用法
bdscan ←コマンドラインからのスキャン
bdgui ←GUIによる操作


手順書は以下
Docs

Ubuntu 12.04 で AVGをインストール

Ubuntu 12.04 で動作する無料のウイルススキャナAVGをインストールしました。ダウンロードは以下のサイトから。
AVG ANTI-VIRUS FREE EDITION FOR LINUX 2011
やり方は以下を参照
AVG Anti-Virus Free Edition for Linuxとは?
  • 表示される一覧の中からAVG Free Edition for Linux を選択。
  • 拡張子がdebのファイル(avg2012flx-r1786-a4748.i386.deb)がダウンロードされるので以下のように入力してインストールを実行。
    dpkg -i avg2012flx-r1786-a4748.i386.deb
    注意!.debファイルをダブルクリックするとソフトウエアセンターが自動的に起動して、そこからもインストールできるかのようだが、私の環境では「ハンドルできないエラーが発生しました」のエラーメッセージがでてできなかった。
  • その後,Ubuntuを再起動。
  • sudo avgupdate ←データベースをアップデート
  • avgscan /home/hoge ←スキャン

2012年5月3日木曜日

Ubuntu 12.04 で Avast をインストールした。

Ubuntuで使用できるウイルスチェッカとして、Avastをインストールしました。

やりかた

1.以下のサイトから、.debファイルをダウンロードします。(avast4workstation_1.3.0-2_i386.deb)またregistration form というところを押してライセンスキーを取得しておきます。ライセンスキーはメールで届きます。
linux-home-edition
http://forum.avast.com/index.php?topic=91145.0

2.ダウンロードしたavast4workstation_1.3.0-2_i386.debファイルをダブルクリックします。するとUbuntuソフトウエアセンターが起動します。
3.インストールを行ないます。(「パッケージの品質が悪いです」というメッセージが表示されましたが「無視してインストールする」を押しました。)
4.コマンドラインから、avastgui と実行するとライセンスキーの入力を求められるので、取得したライセンスキーをコピーペーストします。
私の環境では、update database ボタンを押すとエラーが発生しました。以下のサイトを参考にして対処を行ないました。
avastのLinux版のアップデートエラーを直す
Ubuntu 日本語フォーラム
Ubuntu 日本語フォーラム