オタクのブ。

〜 オタクが発信する(たまには)役に立つ情報とオタク観察日記 〜

スポンサーサイト

スポンサードリンク

一定期間更新がないため広告を表示しています

スポンサードリンク
- | permalink | - | -

Pythonで行こう

プログラム開発をしていると、何かと動作確認の手間が気になってくる。というか、プログラムを書いている時間よりも、書いたものの確認やテスト、テストに至るまでの時間などの方が明らかに長い(このことは、プログラムを書かない人には不思議なことかもしれないが、、)。

世の中に銀の弾丸が存在しないことは証明されたのかはわからないが、何もしないわけにもいかないので、最近流行りの軽量プログラミング言語について試してみようと思う。どの言語も基本的にスクリプト言語なので、コンパイルが不要であり動作確認が楽というメリットがある。また、オブジェクト指向に対応しているのでそれなりに大きなプログラムも作れるというメリットが有る。

言語は?

最初に悩ましいのはRubyで行くか、Pythonで行くか、JavaScriptで行くかということだ(ぉぃ)。まあ、本来何をどうやって作りたいかに寄るので言語を先に考えるというのはナンセンスなのだが、プログラミング言語を学ぶというのは学習コストがかかる。

いろいろ調べていたが、そもそも学習コストがかかるから言語を固定するという事自体が余計な考えな気もしたので、あまり根拠もなくPythonで行ってみることとした。一応の理由付けだが、最初に見てみようと思ったのは、最近のソフトウェアではオートメーション用の言語でPythonが使えるものがいくつかあるのと、GoogleではJavaやPythonを使っていると聞いたことがあったからだ。

どこから?

まずは、簡単なところから勉強をしてみます。参考にしてるのは以下のサイトです。

Python入門

とてもわかりやすい!です。また、DjangoによるWeb開発の内容もあるので、多少実用的なことも試せるかなと期待しています。開発環境の構築でPython 3のインストーラの図が立ち上がっていましたが、互換性などを考えて私は2.7.5をインストールしました。

どこでハマる?

初めてすぐにいくつかハマったので、これから始める方のためにまとめておきます。

まずは、括弧の意味がわかりにくかった。[1,2,3]、(1,2,3)、{1,2,3}とか。。インタプリタでtype()を使うと確認できます。

>>> a=[1,2,3]
>>> b=(1,2,3)
>>> c={1,2,3}
>>> type(a)
<type 'list'>
>>> type(b)
<type 'tuple'>
>>> type(c)
<type 'set'>

あと、タプルって何者?ってGoogleで検索したらわかりやすいサイトを見つけました。

Pythonにおけるタプルの存在意義

私がここまでの知識にたどり着けるんのはいつなのかわかりませんが、プロトタイプなどすらすら書くようになったら、使ってみたいです。

 

長くなりそうなので、今日はいったんここまで。

システム開発 | permalink | comments(0) | trackbacks(0)

エキスパートPythonプログラミング

たまには、技術系の本でも読もうかと買ってきたのが、Python本でした。日本ではあまり情報が、、、と言われてた言語ですが、こういう気合いの入ったものが読めるようになったというのはありがたいことです。

キーボードをカタカタ打ちながら、味わってみます。

 

続きを読む >>
システム開発 | permalink | comments(0) | trackbacks(0)

[解決]なんか勝手にクリック音がするんですが、、、

自宅のPCでWEBを見ていたら、自分がクリックしていないのにどこからともなくクリック音がする。。。

おいおい、ウィルスか?と思いながら無視しようとも思いましたが(ぉぃ)、自分が操作しているウィンドウがアクティブにならないようで、キーボードでスクロール中とかわざわざウィンドウをクリックしなおさないといけないなど、面倒くさい。

ウィルスチェックソフトはすでに入っていたので、なんだろうなとタスクマネージャを見ていたら、SkydriveLogin.exeとやらみなれないプロセスがなどか立ち上がっている。完全に一致しているわけではないが、クリック音がしたときとSkydriveLogin.exeのCPU使用率があがったときが関係しそうなのでGoogleで調べてみた。

Gladinet?

SkyDriveLogin.exe starts randomly and causes clicking sound
http://www.gladinet.com/forum/Default.aspx?g=posts&t=1323

そういえば、オンラインストレージの利用のためにGladinetインストールしていたっけ、、と思って、使ってなかったのでアンインストールしたら解決しました。

システム開発 | permalink | comments(0) | trackbacks(0)

[iTunes Library]ファイルを保存できません。十分なアクセス権がないので、この操作を実行できません。

iTunesでCD-ROMから音楽ファイルを読み込み終わってから、そのままiTunesを立ち上げたままWindowsをサスペンドして戻ってきたら、iTunesを利用するたびに「[iTunes Library]ファイルを保存できません。十分なアクセス権がないので、この操作を実行できません。」とメッセージが表示されるようになりました。

いろいろ調べて試したものを以下にログってますが、結局のところ、iTunesフォルダの「Temp File.tmp」というファイルが別のプログラム(私の場合はバックアップソフト)で開かれていることが問題でした。以下の2の方法でファイルのロックを解除することで改善しました。

1.普通にサポートサイトの情報を試します(ちなみにOSはWindows 7のHome Premiumです)

iTunes に曲を追加したり、オーディオ CD を読み込んだりするときに問題が生じる
http://support.apple.com/kb/TS1387?viewlocale=ja_JP

⇒iTunesのフォルダのプロパティを表示してセキュリティタブの[詳細設定]をクリック、アクセス許可タブの[アクセス許可の変更]をクリックするとiTunesのセキュリティの詳細設定プロパティが表示されます。ここで、[子オブジェクトのアクセス許可すべてを、このオブジェクトからの継承可能なアクセス許可で置き換える]をオンにして、[OK]をクリックする。

image

⇒残念ながら改善しません。エラーメッセージがまだ出ます。。

2.iTunesフォルダのTemp File.tmpを消してみる

これはBBSなどを検索していた時に、削除してみたらという書き込みを見つけたからです。iTunesを終了して削除しようと思ったら権限が足りず削除できません。ファイルの所有権の取得なども試しましたが駄目でした(そもそも管理者権限のユーザなので、この操作ができないことが通常ありえないのですが)。

というわけで、ファイルの操作ができなくなったときの常套手段ですが、Unlockerを試します。以下のサイトのリンクから最新版1.9.0が公開されている本家サイトに移動できます。このソフトは何か別のプログラムがファイルを開いたりしてロックしていることを検出したり、そのロックを解除できます。

指定フォルダ以下のロックファイルリストからロックを解除できる「Unlocker」
http://www.forest.impress.co.jp/article/2005/05/10/unlocker.html

インストールしてiTunesフォルダのTemp File.tmpファイルをエクスプローラで右クリックし[Unlocker]からのロック解除を試したところ、バックアップソフトのプロセスがファイルをつかんでいました。解除したところ、問題のエラーは発生しなくなりました。

image

コメントでウィルスチェックのソフトで同様の問題があったという情報がありました。特にログインユーザを変えたりファイルの権限を変えていないのに、このエラーがでたときは、ウィルスチェックソフトやバックアップソフトを一時的に停止したり終了してから、iTunesを起動しなおすといいかもしれません。

システム開発 | permalink | comments(11) | trackbacks(0)

Windows 7:Caps LockキーとCtrlキーの変更

Windows 7の入ったノートPCを購入した。いつもCtrlキーの位置に慣れようと頑張るのだが、UNIXのころからCtrlキーはAキーの左というのが慣れてしまっていて、デフォルトの位置だと左小指がつりそうになる。

結局、キーの配置を変えることとした。 変更方法はツールなどを入れる方法があるが、Windows 7に対応しているかどうか不安があったのでレジストリを変更する方法として以下のサイトを参考に設定した。

cles::blog「windows7でctrlとcaps lockを入れ替える」
http://blog.cles.jp/item/3433

レジストリファイル実行後に、マシンを再起動して、無事いつもの使いやすい環境になりました。

システム開発 | permalink | comments(0) | trackbacks(0)

SJC-P勉強 一巡

ポール・サンヘラ
翔泳社
コメント:基礎的な知識の要点がまとまっています。問題集を別途購入すればなお良し。
この本の価値は模擬試験にあり
問題集とあわせて勉強すれば合格可能
Java初心者にはちょっと・・・・

紫本と青本を一通り読んで、わからないところは、コードを書いて、ようやく自信がついてきた。

最近はJAVAのコードもすんなり頭に入るようになってきた気がする。気のせい?まあ、基礎の基礎という感じだか、実践のトレーニングは別に必要だ。このまま、書籍の模試をがしがしやって、一気に試験合格を狙うという手もあるが、もうちょっとJAVAを実際に使えるようにトレーニングするようにしようかなということも考えている(受かっちゃったら勉強しなくなるとか。。ぉぃ)。

せっかくだから、SJC-Dを狙った勉強をしながら、もう少しコーディングをやってみようかしら。

お勧めのオンラインストレージDropbox(無料アカウントで2GBまで利用可能)。登録は以下のリンクから 〜 紹介リンクになっていて、登録者(あなた)と紹介者(私)に250MBのボーナス容量が追加されます。
https://www.dropbox.com/referrals/NTI5MjIxODk5
システム開発 | permalink | comments(1) | trackbacks(0)

フランクリンプランナー ウィークリーリフィル ポケットサイズ

忙しくて、今年度の新しい手帳をまだ購入できていないのでさっさと決めて購入したいのだが、なかなか決めることができていない。毎年同じ手帳でもいいんだけど、普段使っているとそれなりの不満や欲求があり、なかなか考えることが多い。

前年度は、フランクリンプランナーのユニバーサルデイリーリフィルを使っていた。サイズはポケットサイズで、これはサイズ、重量を重視した仕様だ。ユニバーサルリフィルは、オリジナルリフィルに比べてお30%ぐらい紙の厚みが薄いとのことで、手帳の厚みを抑えて重さも改善できた。ただ、もともとポケットサイズでリング径も12mmだったので、やはりリフィルを挟み込めるのは最大でも3ヶ月だし、これだけ詰め込むと他のノートなどを入れる余裕はほとんどなかった。

今年の手帳だが、フランクリンプランナーを継続してみようかなと思う。サイズや重さという面では閉じ手帳がいいとは思うんだが、やはりバインダがしっかりしているフランクリンプランナーの安定感が気に入っている。リフィルはさらに軽量化を進めるために、オリジナルウィークリーリフィルにしようと思う。ウィークリーリフィルは以前にも利用したことがあり、手帳にはさむリフィルの量はデイリーリフィルに比べて圧倒的に少なくなる。ただ、毎日の書き込みできる量はその分少なくなるので利用方法に工夫が必要だ。デイリーリフィルではプロジェクトや一時メモに使うノートは、ウィークリーリフィルでは活躍する。ある意味リング式のバインダを最大限活用できる使い方なのかなと思う。
システム開発 | permalink | comments(0) | trackbacks(0)

SCJ-P Threadの勉強

Threadクラスで主に出題されるメソッドは、以下のメソッドみたいなのでそれをつかったサンプルプログラムを作ってみました。

void start()
void join()
static void sleep(long millis)
static void yield()

●TestThread.java
package study;

public class TestThread extends Thread {
enum THREAD_MODE{SLEEP, YIELD, NONE, NONE2};

THREAD_MODE mode= THREAD_MODE.NONE;

public TestThread(THREAD_MODE _mode){
mode=_mode;
}

public static void main(String[] args){
System.out.println("Main thread Started");
try {

Thread t2 = new TestThread(THREAD_MODE.YIELD);
t2.start();
Thread t1 = new TestThread(THREAD_MODE.SLEEP);
t1.start();
Thread t3 = new TestThread(THREAD_MODE.NONE);
t3.start();

// Join TestTread
t1.join();
t2.join();
t3.join();
} catch (InterruptedException e) {
e.printStackTrace();
}

System.out.println("Main thread Finished");
}

public void run(){
System.out.println("Test thread Started " + mode);

try {
for(int i=0;i<10;i++)
{
switch(mode){
case SLEEP:
Thread.sleep(1); break;
case YIELD:
Thread.yield();break;
default:
break;
}
System.out.println(mode);
}
} catch (InterruptedException e) {
e.printStackTrace();
}

System.out.println("Test thread Finished " + mode);
}

}


●実行結果
Main thread Started
Test thread Started YIELD
YIELD
Test thread Started SLEEP
Test thread Started NONE
NONE
NONE
NONE
NONE
NONE
NONE
NONE
NONE
NONE
NONE
Test thread Finished NONE
SLEEP
YIELD
YIELD
SLEEP
YIELD
SLEEP
YIELD
YIELD
YIELD
SLEEP
YIELD
SLEEP
YIELD
YIELD
Test thread Finished YIELD
SLEEP
SLEEP
SLEEP
SLEEP
SLEEP
Test thread Finished SLEEP
Main thread Finished

●メモ
sleepは、少なくとも設定したmilisecondの間、スレッドをsleep状態(実行不可能)にする。
yield()は、スレッドを実行可能状態に戻す。別のスレッドで同じ優先度のものがあればそれが実行されるかもしれない。でも再び同じスレッドが実行されることもある。
スレッドのtime slicingの時間は、JVM?稼働環境?依存、スレッドがどのように実行されるかも処理系やタイミング依存なので、それに依存しないコードを書かないといけない。
サンプルプログラムは、YIELDのスレッドが先に実行しているがいったんスレッドを実行可能状態に戻しているため、NORMALのスレッドが先に実行されている。
システム開発 | permalink | comments(0) | trackbacks(0)

SJC-Pの難易度

Sunテキスト Sun Certified Programmer for Java2 Platform 5.0
Exam[310-055]をやってみて、あー、このままじゃ絶対受からないだろうなと、確信した(笑)。

基本的に言語仕様の試験なので暗記すればいいと思っていたのだが、それだけではなさそうだ。暗記についても楽ではなく、メソッドが出す例外の種類や、クラスにある一般的によく使われるメソッドなど記憶しないといけない範囲が広い。また、問題で出されるプログラムが、一見変数型の問題と見えながら文法の問題だったりと、JAVAのプログラムの全体的な知識やそれを判断する能力も必要となる。

自分はあまりJAVAの経験がないのでやはり難しいと感じるのは、SUN教科書 Javaプログラマ(SJC-P) 5.0・6.0
両対応では高度なJAVAプログラミングの第3部にある内容です。この章の内容は、ある程度コンセプトなどを理解しないといけないということと、JAVA特有のクラスやメソッドなどについて、使い方を憶えてその上で問題を解かないといけないため難しく感じる(他の制御構文や変数などもJAVA特有のものもあるのだが、自分はC++やVB.NETの経験があるのでその差分のみを憶えればよいのでそれほど難しく感じなかった)。

SUN教科書 Javaプログラマ(SJC-P) 5.0・6.0 両対応より、第3部の内容は以下のとおりです。
第3部 高度なJava プログラミング
・第7章 例外とアサーション
・第8章 Javaにおける入出力処理
・第9章 文字列、フォーマッター、ラッパー
・第10章 コレクション、ジェネリックス
・第11章 Java のスレッド

このまま、教科書の暗記や問題集の暗記では限界があるのと、実際にJAVA言語を使えるようになるという目的にも合致しない。自分が難しいと感じた部分について簡単なプログラムなどを作ってみて、APIなどの使い方を学習しようと思う。
JUGEMテーマ:コンピュータ


システム開発 | permalink | comments(0) | trackbacks(0)

SJC-P受験勉強

普段仕事をしていると、今まで使っていたからとかすぐに使える環境があったからなどと、とても現実的な開発環境を提案&採用することが多いですが、それだけでは他の環境のメリットとかを見過ごしてしまっているわけかもしれないわけで、今年はちょっとJAVAでも触ってみようかなということで勉強をしています。いまさらJAVA?という感もありますが、、個人的にはJAVAはあまり余計なことができないようになっていて、もっとも好きな言語のひとつです。興味があったので、簡単なプログラムをつくったぐらいのことがあるのですが、ほとんど初心者のレベルだと思います。

さて、勉強の仕方ですが、なんとなくプログラムを作ってみてもいいのですが、せっかく勉強するには体系的な勉強をしておきたいのと、IT関連の資格取得のネタを探していた時期でもあったのでSJC-Pの勉強をしながらJAVA言語の習得をしてしまおうということにしました。

目標
・JAVA言語を業務で使いこなせるようなレベルになる
・SJC-Pに一発合格する

今のところ、以下の勉強方法で進めてみようと思います。
・EXAM PRESSを一通り読んで、各章末の問題をやる
・実際にサンプルプログラムを作って、動作を確認する
・EXAM PRESSの模試試験をやる(310-055、310-065)
・他に問題集を買ってやる

紫本と呼ばれているEXAM PRESSですが問題が一番難しいもので複数選択回答ですが、WEBなどで調べてみた限り実際の試験では出題方法はD&Dとか、記述式のものもあり難易度が高いらしいです。ちょっと、EXAM PRESS以外に問題集が必要かなぁと思いました。

続きを読む >>
システム開発 | permalink | comments(0) | trackbacks(0)
 1/13PAGES >>