タグ:IT ( 16 ) タグの人気記事

はじめてのGit

最近の景気の影響で、3月中からずっと忙しいというのはおおよそ想像ついてたけど、ここまで忙しくなるとはちょっと思わなかったので、ついつい更新が滞りがちでしたが、やっと先週で一段落したこともあって、この週末は久しぶりにたっぷりと時間が確保できたように思うので、さっきまで、近所のカフェで勉強してました。

勉強していたのは前から手をつけようと思っていたけど心理的なカベを感じていてなかなか取りかかれなかったGitというツールのお勉強。

このツール自体は、基本的にはプログラマーの人が使うもので、こんな感じ↓

terminal

いったいこれを使うとどんなうれしいことがあるかっていうと、自分が作成した文書について、いつ、誰が、どういう変更を施したのかをしっかり管理してくれて、いちいち
xxxx.bak
とか
xxxx-ver1.html

のように手作業でファイルのバックアップをしなくてもいいのは当然のことながら

「ちょっと前につくったxxxx.cssの3行目から12行目までは残しつつちょっと違ったテイストのやつを試したい」
「2つ前につくったxxx.htmlでやっぱりやり直したい」

というようなことも、(慣れてくれば)簡単お手軽にできるようです。

この類いのツールは他にも昔から存在していて、もちろんそれらも一時期チャレンジしたのですが、なんで今回、心理的なカベを超えられたのかっていうと、過去になんどか挫折した経験が少しはベースとして蓄積されていて、こういうツールでそもそも何が出来るのかというのは知っていたからっていうのと、最近でたWEB+DB PRESS Vol.50のはじめてのGitという特集記事がとても読み易かったからというのがその理由かなぁ。

Git以外にもちょっと気になっている事があるのでそれらを中心に勉強する予定
WEB+DB PRESS Vol.50
WEB+DB PRESS Vol.50
posted with amazlet at 09.04.26
WEB+DB PRESS編集部
技術評論社
売り上げランキング: 111

[PR]
by h5y1m141 | 2009-04-26 18:03

あと、もうちょっとで完成しそう

RIMG0137

写真と本文が全く関係ない話題になるけど、何が完成しそうかっていうと、時間を見つけてはここ最近ずっとプログラムを書いています。(今回はそういうネタなので、以下興味ない人はスルーしてください)

WindowsのWSH上でPrototype.jsを利用するやり方がわかったので、普段の仕事を効率化させるツールがあともうちょっとで完成しそうなんだけど、いままでコツコツ勉強していたおかげかもしれないけど、急に視界が開けた感じがしてて、イイ感じに機能毎に分ける事が出来てきた。

sendMail.js :メール送信のみを担当する
ManageSQLLists.js : 実行したいSQL文を管理するためのクラス
staff.js : ユーザ情報を管理するためのクラス
memo.js : ユーザ情報にひもづく詳細情報を管理するクラス
dummy.js :Prototype.js をWSH上で利用するためのおまじない(?)が唱えてあるクラス
prototype.js: 説明するまでもないとても大切なやつ

というのがあって、 main.wsf というファイルを準備して、上記ファイル群を読み込むようにしておいた上で

var myStaff = new Staff();
var sql = new ManageSQLLists();
var staffinfo = myStaff.search(sql.getStaffInfoByRegisterDate());

というおまじないを唱えると欲しいユーザ情報が取得出来てさらに

var objMail = new sendMail();
var MsgBox = new InputBox();
var MailSubject = 'テストメール';
var MailBody = '総数' + staffinfo.length +'\n\n' + staffinfo.map(
function(p) {
return tpl.evaluate(p) + '\n';
}).join('\n') + '\n';
var MailFrom = 'xxxx@xxxxxx';
var MailTo = 'xxxx@xxx.xxx.xxx';
var LoginPasswd = MsgBox.prompt();
objMail.send(MailFrom, MailTo, MailSubject, MailBody,LoginPasswd );

ってやると、取得したユーザ情報が、指定されたメールアドレスに送信できるっていうのが、出来たよー

何の事やらさっぱりわかんない内容でごめんなさい。

でも、自分としてはここ1ヶ月ほどちょこちょこ勉強してきた事が一気に繋がった(特にmap(function(o){ WScript.Echo(o.name);})って記法がスラッとイメージできるようになった)感じがしていて、とってもうれしくてつい書いてしまいました。

メール送信する仕組みだけではなく、ついでなので、取得した情報を奇麗なUIで見れるようにWebの画面も今作り込んでいて、そうすれば

・更新情報については、メールで簡単にチェック
・全体を眺めて、各ユーザ情報についてはWebの画面でチェック

っていう感じの使い分けができるのと、あと別の仕組みも作っている(Amazonのレコメンドの機能を参考にしたやつ)ので、それが加わると、とりあえず最強なツールになるけど、あと2ヶ月くらいでそこまで持っていきたい。

※ただここまで書いといてなんだけど、今動いているプログラムのリファクタリングもしたいし、そもそもしっかりとしたテストを書いてないから、JSUnit の仕組みも入れたいし、今書いた一部のクラスの似たメソッドがいくつかあって、モヤモヤしているので、そこもどうにか手を入れたいし...と色々気になる事があるなぁ。
[PR]
by h5y1m141 | 2009-03-02 21:22

.emacsのバックアップ

a0033832_21254752.jpg

技術ネタですみません。

emacsというエディタの設定ファイルを何故かうっかり上書きしてしまい、しかもバックアップしていなかったから、今までの設定していた内容がすべて吹き飛んだ。。。

これを機会に再度設定をやりなおしたので、自分用にメモ


;; PATH
(setq exec-path (cons "/opt/local/bin" exec-path))
(setenv "PATH"
(concat '"/opt/local/bin:" (getenv "PATH")))
;; ロードパス
(setq load-path (cons "~/elisp" load-path))

;;Shiftと矢印キーで移動できる
(windmove-default-keybindings)

;; js2-mode
(autoload 'js2-mode "js2" nil t)
(add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))

(if (eq window-system 'x)

(progn

(define-key function-key-map [backspace] [8])

(put 'backspace 'ascii-character 8)

))

(global-set-key "\C-h" 'backward-delete-char)
(global-set-key "\177" 'delete-char)


;;fullscreen,color,alpha
(if window-system
(progn ()
(toggle-scroll-bar nil)
(tool-bar-mode)
(setq mac-autohide-menubar-on-maximize t)
(mac-toggle-max-window)

(setq default-frame-alist
(append (list
'(height . 47)
)))

(require 'color-theme)
(color-theme-initialize)
(color-theme-dark-laptop)

(set-frame-parameter nil 'alpha 80 )
)
)

;;リージョンをハイライト表示
(setq-default transient-mark-mode t)
;;フォントの種類と大きさ設定変更
(if (eq window-system 'mac)
(progn (require 'carbon-font)
(fixed-width-set-fontset "hirakaku_w3" 12)))

;;動的略語展開
(define-key global-map "\C-o" 'dabbrev-expand)

[PR]
by h5y1m141 | 2008-09-10 21:32

オープンソースなソフトウェアで町おこし

a0033832_20431197.jpg

今朝は本来ならばデッサンの勉強しなければいけないけど、Rubyの勉強にはまっているために今日はデッサンの勉強はお休み

やっと初めてのRubyも半分近くまで読み進めて、現在は文字列の所やっているけど、今まで自分がもってない概念の「シンボル」が新鮮だったので自分なりの理解をちょっとまとめ。

シンボルっていうのは、文字列と性質が似ているらしいけど、文字列の場合には内容が同じでもオブジェクトは同一にならないのに対して、シンボルは、内容が同じであれば必ず同一のオブジェクトになるそうです。

例として、文字列だと
str1 = "ruby"
str2 = "ruby"
となっている場合に、以下は内容は同じなので、true
p str1 == str2
ただ、オブジェクトの比較をした場合には、これはfalseになる
p str1.equal? str2

一方、シンボルの場合には
symbol1 = :ruby
symbol2 = :ruby
となっている場合に、以下は内容は同じなので、true
p symbol1 == symbol2
オブジェクトの比較をした場合に文字列での結果とことなりこれはtrueになる
p symbol1.equal? symbol2

こんな性質があるようで、シンボル同士は文字列同士に比べて高速に同値性を判定できるそうで、さらにハッシュのキーの利用に適してるそうで、実際にRuby on Railsに代表される現在のRubyコードでは多用されているとのこと。

言われてみると、symbol1 = :ruby のような記法は見たことがあるような気もするけどその時はあんまり意味がわかんなかったので、ちょっとわかったような気がする。

で、こんなコードばっかり書いていて、肝心のタイトルについて触れると、昨日の日経新聞で三鷹にある株式会社まちづくりで、三鷹の地方自治体向けIT事業の特集記事が出ており、Rubyを使って自治体向けに図書館管理システムの受注が出来るように各自治体めぐりをしてるという内容を読みました。

10万から20万人規模の自治体向けの図書館管理のシステムだと従来数千万の予算がかかっていたそうだけど、Ruby(正確にはRuby on Railsを使った)開発だとそこまでの予算投資しなくても済むという見積もりのもとこれから営業かけるそうですが、従来は大手が独占していた所に風穴をあけるという意気込みらしい。

Rubyを使っているかどうかという以前に、単純に大手以外の選択肢が増えることで、従来通りに大手に発注するという自治体もあれば、他の選択肢があるならば、そちらを選ぶ自治体も登場したりと何らかの変化が生じるのかなぁーと思っています。

「自治体なんてどこも横並びだろうから、そんな虫のよい話は無理でしょ」

という意見もありそうですが、自分が知っている限り、意外と進んでいる自治体もあって、たしか福島県会津若松市の方では公的な文書フォーマットとして、ODF というものを使うというリリースが出ていますが、これはどこかの会社(マイクロソフトとか)に依存してしまうと、その会社の都合で今後長期的にその文書フォーマットが利用できる保証がなく、ここのお偉いさんはその点がきちんとわかっているらしく、このODFというフォーマットの採用を決めたそうで、オープンソースを活用した町おこしっていうのが生じるかもしれませんね。
[PR]
by h5y1m141 | 2008-07-22 20:43

Subversionにトライ

WordやExcelなどの文書作成をする場合に、最初に作成したファイル(仮に1版)があったとして、そこから何か編集なり追記なりして、2版を作った際にありがちなのが、報告書-ver2.docのような形で別にファイルを作成していくと思います

こういう版管理をうまく支援してくれるツールというのは、たぶん色々あると思うのですが、プログラマーの方が使うものとして、一昔前は、CVS(まぎらわらしけどcsvではありません)がスタンダードらしかったのですが、最近はSubversionというのがメジャーっぽいのですが、使い方がイマイチわからなくって、利用をさけていたのですが重い腰をあげて、トライしてみました。

参考にした情報源としては、少し古いですがSoftware Design の2006年12月号の「Subversion+Tracでできるバージョン管理&バグトラッキング」という特集記事を参考にしてやってみました。

バージョン管理という概念を理解するのはそれほど難しくはなかったのですが、リポジトリとかチェックイン/チェックアウトというそれぞれの言葉が具体的に何をさすのか、すぐに理解できず、これが利用をさけていた要因の1つだったので特に、リポジトリを作成する(コマンドだとsvnadmin create xxx)っていう作業の必要性がすぐに理解できず混乱して、頭の中で???という状態がしばらく続きました。

その後記事を読んでいて、リポジトリっていうのが、これから管理するものを入れる器であるという説明でぼんやりと理解できたが、その後に、この器であるリポジトリに、ファイルを追加する作業(svn import . svn://localhost/xxx)のやり方がわからずに苦戦した。

苦戦した理由なのですが、svnadmin create xxxした後にできあがった xxx/conf/以下の

passwd
svnserve.conf

を編集しわれていたのと、svn import する際に、インポートしたいモノがあるカレントディレクトリに移動していなかったりと、単純なミスをいくつか重ねたために、苦戦したけれど、やっとできました!
[PR]
by h5y1m141 | 2008-05-04 12:23

ちょっとOpera使い始めてみました

うちのMacBook上でFirefox使って、エキブロの投稿をする際に、文字の装飾をしようとおもって、テキストを選択して、太字にしようとおもって該当のアイコンをクリックすると、なぜか、選択したはずのテキストの場所にではなく、最後の文字の箇所にHTMLのタグが挿入されるという状況がまえっからあって、色々と原因を探ってみたけど、結局原因がわからない。。

結局それは諦めていたのですが、ふと、最近違うブラウザつかったらどうなるのかなぁと思って、Operaをダウンロードして試したら、普通に投稿することができました!

これで、うちの環境でのメインブラウザは、Operaにしようかなぁーと思ったんだけど、Googleカレンダーが対応をしていないみたいで、一部レイアウトが崩れ気味だったり、Google Docs & Spreadsheetsも
申し訳ありませんが、このブラウザはウェブ ワープロに対応していません。

以下で、Google Docs & Spreadsheetsをお試しいただくようお勧めします:
Mozilla FireFox: 1.0.5 以降
Mozilla SeaMonkey: 1.0 以降
Camino: 1.0a1 以降
これらはすべて無料で、簡単に使うことができます。
ということで表示すらできませんでした。。

やっぱりブラウザ毎のJavaScriptの実装が異なるからかこういうことになっているのかなぁと思ったけど、用途毎に使い分ければいいかなぁと思って、しばらくうちの環境両方のブラウザを使っていくことにしました。
[PR]
by h5y1m141 | 2007-04-22 21:34

個々の関連性がわかった!

フレンチトースト
昨年末から引き続き、中途入社の人&今年の新卒入社の人向けに勉強会の講師をやっているのですが、講師をやっていて、みんながどういうことがわからないのかがわからないってなんだか変な日本語ですが、本当に、その辺りが掴めていないために、毎回どのように説明していいのかに困ってます。

そんな風に感じている中で、今日勉強会をやっていて、サーバーの構築というのをお題に1時間ほど説明していたのですが、参加している人から

「なんだか今までモヤモヤしていたのが、今日の説明ですっきりした」

という、教えている立場からすると、とってもありがたい言葉をもらえました。具体的にどういうことかを訪ねた所

「今までは、技術用語が色々あってそれぞれが何を指しているのか、なんとなくモヤモヤしながらわかったような感じになっていたけど、個々の関連性のようなものがわかった」

ということでした。技術屋さんでない人でも、イメージをもってもらうために、Windows vs Linuxで、同じapacheの設定をするというのを例にしました。

Windowsの場合には、GUI で比較的簡単にインストール等ができるというのを、このサイトを題材にし、一方で、Linuxはこちらのサイトをつかって、ソースからのインストールという意図的に難しさを誇張した形で説明しました。

Windowsの場合には、とっつきやすそうな反面、仮に100台同じ設定を行う場合には、GUIベースなので、1つづつ設定しなければいけないというデメリットが生じるかもしれない一方で、Linuxの場合には、コマンドラインからの設定でとっても敷居が高いと感じるけど、コマンド1つ1つは、わりとシンプルなものからできあがっているので、100台同じ設定をするとなった場合に、ネットワークの設定が終わりさえすれば、シェルスクリプトというプログラミングの能力があれば、作業ミスもないし、1つづつ設定しなくても済むので、そういう所がLinux系のメリットというような話をしました。

特に、みんなの中では、キーワードとして、シェル という言葉を聞くけど、それが何で実際に必要なのかという結びつきがとってもわかりづらかったそうで、実際にありそうな題材を含めて話したら、イメージできたとのこと。

本当は、実際に設定画面を見せながら話したかったけど、会社のPCはアプリケーションのインストールが禁止されているので、自宅のPCで環境作ってとかって考えて、X-22にdebian 入れたんだけど、X の設定でハマってしまって結局準備できなかった。。

そんなことは、さておき、昨年末から、合計で30時間以上、業務終了後に勉強会でしゃべりつづけてきた効果が、ちょっとづつ現れてきたかなぁと思うと、ちょっとだけうれしいなぁ
[PR]
by h5y1m141 | 2007-02-20 21:47

ヘルプデスクの仕事をしてる人が、目指す次のステップは?

a0033832_22183516.jpgなぜかしらないけど、アクセス解析みたら、ヘルプデスクの仕事というキーワードでうちのブログに来ている人がいるみたいなので、今までの自分の経験&今後の業界的な展望を踏まえつつちょっとそれがらみのネタを。

ヘルプデスクの人の次のステップを考えた場合に、今まで積み重ねてきたベーススキルを生かしつつとなった場合に、(今の所、日本では知名度がないですが)デスクトップエンジニアという役割の仕事が目指す方向性になるかなぁと。

そもそも知名度がない業務なので、どんな業務をするのか、イメージしづらいと思うので、いくつかピックアップすると
-(Ghostのような)PC環境のマスターイメージを作成して、それをベースにして、社内で利用されるPCのセットアップをするだけではなく個別のユーザ事の細かい設定を、人手を極力つかわずに、VBScriptなどのスクリプトを活用して、自動化処理をさせたりする。

- これから世の中に出てくる新しいアプリケーション(例えばOffice2007)の機能検証したり、それが実際のビジネスの中でどの程度有効かというレポートをまとめて、意思決定を上長に仰ぐ。

- クライアント上で利用するアプリケーションに明らかな障害がみつかった場合に、その原因の追求&再現性を見つけて、ソフトウェアベンダーにエスカレーションして、解決策を協力して見つけ出す

というような感じで、こちらの英語の求人情報だと

# Engineer and automate desktop image creation and deployment; Ensure the desktop is hardened to maintain security within the environment; Manage processes and technologies to produce comprehensive and integrated deployments.
# Customize and package core enterprise and supplemental applications
# Test applications for compatibility with Windows XP and 2000 standard images and mitigate any compatibility issues discovered during the process
というように書かれています。

今の所、日本ではこの業務は、サーバ管理者が片手間にやっているような所が多かったり、あるいは全く、手が付いていない状況かもしれないけれど、近いうちにJ-SOX法施行が見込まれていて、それに伴って、社内のIT環境をより厳格に管理する必要がでてきて、その一環で、デスクトップエンジニアの仕事が少しは認知されてもいいかなぁって思っています。

大ざっぱに必要なスキルとしては以下のようなものだと思うので、何かの参考にしていただければと。

- なんらかのスクリプト言語(この業務に限れば、VBScript が情報量としては一番オススメかも。最近だともしかしたら、.NET系でもよいのかな?)
- Windows2000以降のOSについての深い知識(ブルースクリーンとかになったら、ダンプファイルのチェックして、おおよその原因のあたりがつけられるくらいは最低できないときついかも。あとはregmonつかって、アプリケーションの挙動の確認作業ができたりとか)
- 英語の技術情報が辞書などを極力使わずに読める程度の英語力

デスクトップエンジニアの情報については、残念ながら日本語での情報で良いサイトを知らないのですが、英語だったら、そのものずばりのDesktopEngineer.comというのがポータルサイトとしてはかなりまとまっているので、よかったらみてみてください。

P.S.
私は前職で、このデスクトップエンジニアの仕事をしていたおかげで、それなりの知識の広さ&深さについて、ネットワークインフラだけではなく、色々な自動化処理のために、VBScript中心に色々な言語の勉強をしてアプリケーションの部分の方もそれなりに知ることができました。
[PR]
by h5y1m141 | 2006-12-19 21:55

ITエンジニアの意識

社内のかたから、とある会社が実施した、ITエンジニアの意識調査のようなアンケート結果を見させてもらったのですが、興味深かったのが、現在不安に思っているという解答欄。

全部をきちんと読み込んだわけではないけど、大抵の方が、常に最新技術についていかないといけないという不安感を感じているようで、そのための勉強&スキルアップというものにかなり追われているみたいです。

あと上記以上に興味深かったのが、人材会社を選ぶ際に重視するポイントで、トップ3の項目として
 1.対応が決め細やかである
 2.担当コンサルの人柄、能力
 3.ITエンジニアの仕事への理解

1,2は、対人という意味においては、ある意味当然の結果かと思ったけど、3.の部分については、この業界特有のものなのかなぁ・・

っていうのも、私は、元々ITエンジニアとして仕事をしていたから苦にならないけど、非経験者からすると、IT系の仕事ってなんだかよくわかんないし、特にネットワークインフラについては、目に見えづらいというのもあって、その仕事の価値というものは、その業界の経験がないと正直よくわかりづらいと思うから、お互い、つまり、ITエンジニア側も、人材会社の担当コンサルタントもお互いに共通の言葉で話しが出来ずに苦労しているので、ITエンジニア側として3番目にこの回答がはいったような気がするんだけどね。

ちなみに、回答数は、数百人以上あるので、それなりの信頼性はあるかなぁと。
[PR]
by h5y1m141 | 2006-06-16 20:57

インプレスキャリア

別のBLOGの方で、JANES-Way  サン・マイクロシステムズというエントリーを書きましたが、そこで
テクノロジーだけではダメで、その上にある、コミュニティーが良質であったりすると、色々な広がりが期待できそうで、そういう意味では、良質なコミュニティーを育てるような仕組みっていうのも今後のキーポイントになりそうな感じがしました。

ということを書きました。必ずしもこの話とは一致しないけど、IT系のニュースサイトのImpressWatchを運営しているインプレスキャリアというITエンジニアを対象とした人材紹介、派遣会社を設立されるみたい。

ImpressWatchは、私はほとんどチェックしていないけど、ある程度有益なコンテンツを元々持っていて、そこを日頃からチェックしているITエンジニアは一定数存在しているのと、おそらく自社サイトにどのようなジャンルのエンジニアが来ていて、どういうページをチェックして、そこからどういうページに推移しているかは、専用ツール入れているから、把握しているだろうから、あとはそういう人たち同士の横のつながりが気づけるコミュニティーがImpressWatchの中で出来ると、かなり手強くなりそう。。。

詳細はニュースリリース
[PR]
by h5y1m141 | 2006-06-14 20:50