以前使っていたPCがお亡くなりになったとはいえ、故障箇所は電源周り。
HDDは無事なので、それを外付けHDDとして蘇らせることにした。
まずはヨドバシでSATA→USB変換のHDDケースを買ってくる。
箱の中はこんな感じ。
ケースの蓋を開けると、こんな感じ。
亡くなったPCのご遺体から、HDDを摘出する。
無事、成功。
カバーが邪魔だな…。
外すとこうなる。
摘出したHDDをケースに入れる。
蓋を閉めると、外付けHDDの完成!
無事に認識した。
当ブログはamazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。
2011年1月17日月曜日
2011年1月16日日曜日
【初めてのMac】Rubyを1.9にするの巻
MacBook Airにお勉強環境をつくろうと思う。
MacOS XにはデフォルトでRubyとRailsが入っているが、最新Verではないのでそれを適用することに。
RailsのVerUpはgemがあるので超簡単だったが、Rubyでちょっと手こずった。
まずはhttp://www.ruby-lang.org/ja/downloads/から「ruby-1.9.2-p136.tar.gz」をダウンロード。続いてターミナルでコマンドを実行する。
$sudo tar xvzf ruby-1.9.2-p136.tar.gz
解凍されたディレクトリに移動し、さらにコマンド実行!
$sudo ./configure
するとエラーになった!?
no acceptable C compiler found in $PATH
あー。gcc入ってないのかー。
RedHat系のLinuxは割と良く触ってたので、その感覚でデフォルトで入ってるのかと思ってた。
いろいろ方法はあるが、せっかくなのでxcodeを入れることにする。
Mac Dev Centerからダウンロードし、インストール。実はこのインストールも1時間経ってもダイアログが一行に進まないということがあり、プロセス強制終了 & OS再起動という荒業で切り抜けた。Macにもう少し慣れてきたら、この辺の原因も探りたいのだけど。
無事にxcodeのインストールが完了し、コマンド実行!
$sudo ./configure
$sudo make
$sudo make install
と順調に進み、めでたくRubyは1.9系になったとさ。
MacOS XにはデフォルトでRubyとRailsが入っているが、最新Verではないのでそれを適用することに。
RailsのVerUpはgemがあるので超簡単だったが、Rubyでちょっと手こずった。
まずはhttp://www.ruby-lang.org/ja/downloads/から「ruby-1.9.2-p136.tar.gz」をダウンロード。続いてターミナルでコマンドを実行する。
$sudo tar xvzf ruby-1.9.2-p136.tar.gz
解凍されたディレクトリに移動し、さらにコマンド実行!
$sudo ./configure
するとエラーになった!?
no acceptable C compiler found in $PATH
あー。gcc入ってないのかー。
RedHat系のLinuxは割と良く触ってたので、その感覚でデフォルトで入ってるのかと思ってた。
いろいろ方法はあるが、せっかくなのでxcodeを入れることにする。
Mac Dev Centerからダウンロードし、インストール。実はこのインストールも1時間経ってもダイアログが一行に進まないということがあり、プロセス強制終了 & OS再起動という荒業で切り抜けた。Macにもう少し慣れてきたら、この辺の原因も探りたいのだけど。
無事にxcodeのインストールが完了し、コマンド実行!
$sudo ./configure
$sudo make
$sudo make install
と順調に進み、めでたくRubyは1.9系になったとさ。
2011年1月15日土曜日
MacBook Airで書いた初ブログ
もうかれこれ5年ほど使っていたGatewayのノートPCが、ACアダプタを認識しなくなってしまった。
つまり、バッテリーを使い果たしてしまったら二度と立ち上がらないということ。事実上お亡くなりになったということだ。ショップで見てもらうと、基盤交換になるので5万円ほどかかりますとのこと。去年一度HDDが壊れて交換しているし、5万円もかけて修理したところでいつまでもつかも分からない。なので新しく買い換えることにした。
で、何を買うかと考えたときに、写真やドキュメントなど、結構主だったデータはEvernoteだったり、Googleだったり、オンライン上にアップデートされているので、OSとか実質あまりこだわらなくてもいいのかな、という気がしてきた。事実、いろいろなデータをインターネットを介してPC、iPad、スマートフォンとで共有していたりするわけだ。
そこで思い切ってMacを買うことにした。
MacBook Airである。
ただ、やはり仕事でWindowsを使うわけだし、Visual Studioなどのお勉強環境は確保したいので、BootCampでWindows7を導入。Macで動くWindowsというのはなかなかにシュールなものである。
故障した先代のPCがバッテリーを完全に使い果たし、そこから新しいMacが届くまでに2週間ほどかかったのだが、その期間をPC無しで過ごしてみて気づいたことがある。
iPadを手に入れてから、PCを起動する機会が減った。携帯をスマートフォンにしてからはその傾向がさらに進んでいる。自宅でのPC用途のほとんどは、メールのチェックであったり、ウェブブラウズだったりするので、iPadがあればそれだけで事足りてしまうのである。
プログラムや開発環境の勉強などを除くと、PCが無くても別に困らないんじゃないかな、と考えたこともある。
しかし、いざPCのない生活をしてみると、やはりとてつもなく不便なことに気づいた。
iPadやスマートフォンは、アウトプットに向いていない。TwitterやFacebookにPOSTする程度なら気にならないのだが、ブログなど少し長い文章を書こうとするととてつもないストレスがかかってしまう。
確かにiPadのソフトウェアキーボードは携帯などと比べると圧倒的に入力しやすいのであるが、長文を打つのはやはりしんどい。打鍵感覚がないので、タッチタイピングができないのだ。
今、こうしてPCを使って快適なタイピングを満喫しながら。あらためてそう思った。
つまり、バッテリーを使い果たしてしまったら二度と立ち上がらないということ。事実上お亡くなりになったということだ。ショップで見てもらうと、基盤交換になるので5万円ほどかかりますとのこと。去年一度HDDが壊れて交換しているし、5万円もかけて修理したところでいつまでもつかも分からない。なので新しく買い換えることにした。
で、何を買うかと考えたときに、写真やドキュメントなど、結構主だったデータはEvernoteだったり、Googleだったり、オンライン上にアップデートされているので、OSとか実質あまりこだわらなくてもいいのかな、という気がしてきた。事実、いろいろなデータをインターネットを介してPC、iPad、スマートフォンとで共有していたりするわけだ。
そこで思い切ってMacを買うことにした。
MacBook Airである。
ただ、やはり仕事でWindowsを使うわけだし、Visual Studioなどのお勉強環境は確保したいので、BootCampでWindows7を導入。Macで動くWindowsというのはなかなかにシュールなものである。
故障した先代のPCがバッテリーを完全に使い果たし、そこから新しいMacが届くまでに2週間ほどかかったのだが、その期間をPC無しで過ごしてみて気づいたことがある。
iPadを手に入れてから、PCを起動する機会が減った。携帯をスマートフォンにしてからはその傾向がさらに進んでいる。自宅でのPC用途のほとんどは、メールのチェックであったり、ウェブブラウズだったりするので、iPadがあればそれだけで事足りてしまうのである。
プログラムや開発環境の勉強などを除くと、PCが無くても別に困らないんじゃないかな、と考えたこともある。
しかし、いざPCのない生活をしてみると、やはりとてつもなく不便なことに気づいた。
iPadやスマートフォンは、アウトプットに向いていない。TwitterやFacebookにPOSTする程度なら気にならないのだが、ブログなど少し長い文章を書こうとするととてつもないストレスがかかってしまう。
確かにiPadのソフトウェアキーボードは携帯などと比べると圧倒的に入力しやすいのであるが、長文を打つのはやはりしんどい。打鍵感覚がないので、タッチタイピングができないのだ。
今、こうしてPCを使って快適なタイピングを満喫しながら。あらためてそう思った。
2011年1月1日土曜日
プログラム言語で書初めしてみた。
皆さん。明けましておめでとうございます。
今日はお正月らしく、書初めをしようと思います。しかし、書初めと言っても半紙とか硯とか筆とか持っていないので、プログラマらしく「無いなら実装すれば良い」とのスタンスで、プログラムで書初めをします。
使用する言語はC#。それでは書初めスタート!!
※遊びでやってるので、ところどころ変な実装や設計があっても大目に見てください。
■美しい実装は美しい設計から
いくらビールを飲みながらとはいえ、いきなりコーディングを開始するほどわたしも愚かではありません。まずは設計です。クラス図をきちんと書いてから、実装を始めましょう。
書初めは日本の伝統的な行事であります。したがって、クラス図も日本のソフトウェア業界における伝統的なツールである、「Excel方眼紙」に書くとしましょう。
クラス図ができあがったところで早速実装です。
■いよいよ実装!!
まずは筆クラスから始めましょう。
こんな感じになりました。
最初の列挙型「FudeStatus」は筆に墨がついているかどうかの状態を表現するために作りました。そして「_status」が筆の状態です。
「InkApplied()」が筆にすみをつけるという振る舞い。「IsInk()」は筆に墨がついているかを検査するメソッドです。
さてさて、続いては半紙クラス。
「_wittenString」は半紙に書かれている文字を表現する属性。「WriteString()」で筆を使って文字を書きます。筆に墨がついていないと文字が書けないので、筆クラスのIsInk()がFalseを返した場合はエラーとしましょう。Exceptionの派生クラスであるNoInkExceptionを実装し、それをThrowすることにします。
「GetWrittenString()」で何が書かれているかのお披露目です。
そして最後にわたしこと粕谷クラスの実装です。
わたしは今年一年も永続的に元気でいたいので、そういう思いを込めてstaticで実装しました(笑)。
「Kakizome()」で書初めをして半紙クラスを返します。筆と半紙を用意(インスタンス生成)し、筆に墨をつけて書初めをします。
あとはわたしの振る舞いをMain()に書いて実行しましょう!
みごと、書初め完了です!!
今日はお正月らしく、書初めをしようと思います。しかし、書初めと言っても半紙とか硯とか筆とか持っていないので、プログラマらしく「無いなら実装すれば良い」とのスタンスで、プログラムで書初めをします。
使用する言語はC#。それでは書初めスタート!!
※遊びでやってるので、ところどころ変な実装や設計があっても大目に見てください。
■美しい実装は美しい設計から
いくらビールを飲みながらとはいえ、いきなりコーディングを開始するほどわたしも愚かではありません。まずは設計です。クラス図をきちんと書いてから、実装を始めましょう。
書初めは日本の伝統的な行事であります。したがって、クラス図も日本のソフトウェア業界における伝統的なツールである、「Excel方眼紙」に書くとしましょう。
Excel方眼紙の枠線が邪魔なので、これも消しちゃいましょう。
オプションの「枠線」のチェックボックスを外すと、枠線が消えます。もうお馴染みですよね。
そうして出来上がったクラス図が下記の通りです。
硯も実装しようと思ったのですが、「墨をする」という振る舞いをどう実装するか悩んだ結果、面倒なのでやめました。まあ、お正月のお遊びですから、簡単で良いでしょう。
クラス図ができあがったところで早速実装です。
■いよいよ実装!!
まずは筆クラスから始めましょう。
こんな感じになりました。
namespace ConsoleApplication1
{
public class Fude
{
private enum FudeStatus {ExistInk, NoneInk}
private FudeStatus _status = FudeStatus.NoneInk;
public void InkApplied()
{
_status = FudeStatus.ExistInk;
}
public bool IsInk()
{
return _status == FudeStatus.ExistInk;
}
}
}
最初の列挙型「FudeStatus」は筆に墨がついているかどうかの状態を表現するために作りました。そして「_status」が筆の状態です。
「InkApplied()」が筆にすみをつけるという振る舞い。「IsInk()」は筆に墨がついているかを検査するメソッドです。
さてさて、続いては半紙クラス。
namespace ConsoleApplication1
{
public class Hanshi
{
private string _writtenString = string.Empty;
public void WriteString(Fude f, string s)
{
if (!f.IsInk())
{
throw new NoInkException();
}
_writtenString = s;
}
public string GetWrittenString()
{
return _writtenString;
}
}
}
「_wittenString」は半紙に書かれている文字を表現する属性。「WriteString()」で筆を使って文字を書きます。筆に墨がついていないと文字が書けないので、筆クラスのIsInk()がFalseを返した場合はエラーとしましょう。Exceptionの派生クラスであるNoInkExceptionを実装し、それをThrowすることにします。
「GetWrittenString()」で何が書かれているかのお披露目です。
そして最後にわたしこと粕谷クラスの実装です。
namespace ConsoleApplication1
{
public static class Kasuya
{
public static Hanshi Kakizome()
{
Fude f = new Fude();
Hanshi h = new Hanshi();
f.InkApplied();
h.WriteString(f, "一富士二鷹三茄子");
return h;
}
}
}
わたしは今年一年も永続的に元気でいたいので、そういう思いを込めてstaticで実装しました(笑)。
「Kakizome()」で書初めをして半紙クラスを返します。筆と半紙を用意(インスタンス生成)し、筆に墨をつけて書初めをします。
あとはわたしの振る舞いをMain()に書いて実行しましょう!
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Hanshi h = Kasuya.Kakizome();
Console.WriteLine(h.GetWrittenString());
}
}
}
みごと、書初め完了です!!
皆さん、今年もよろしくお願いします。
2010年12月31日金曜日
【108番目のきのこ】「学び」は楽しい
プログラマとは、常に勉強を欠かすことができない仕事です。他の仕事でも「学ぶこと」は当然必要なのでしょうが、進化の早いコンピュータの世界を相手にするプログラマは、やはり多くの勉強が必要な職業であると思います。しかし、中には勉強というものに抵抗を感じ、職務中に得た知識のみで仕事をしている人も少なくありません。少し厳しい言い方をしますが、そのような人々とは一緒に仕事をしたくないな、と思ってしまいます。
わたしのプログラム歴は、COBOLからスタートしました。COBOLという言語には、汎用機を使って仕事をしていた人々が長年培ってきたノウハウがいろいろあります。わたしが最初に教わったコーディングのお作法は、「自分のやりたい処理と似たような処理をしているプログラムを探し出し、それをコピーして改変しろ」というものでした。わたしは何もこのやり方を批判しているわけではありません。それが、汎用機でCOBOLという言語を使ってプログラムをする際の、ベストプラクティスだったのです。
そのようなお作法でプログラムを書いているプログラマであれば、確かに職務中に得た知識のみで仕事をしていても良かったのかもしれません。しかし、DRY(Don't repeat yourself)原則が重視される昨今のプログラムの世界において、かつてのCOBOLのようなコピペ駆動開発は一切通用しません。より美しいコードを書くためのお作法は、様変わりしてしまいました。そしてそれは今、この瞬間も進化し続けています。
コーディングのお作法だけではありません。クライアントアプリケーションとWebアプリケーションでは考え方がまったく異なります。アプリケーション間の通信はSOAPで行うのか、RESTfulにするのか。データはRDBに保存されるのかそれともNoSQLなのか。マルチコアプロセッサが主流となっている今後は、並列処理に関するノウハウの蓄積がより深まっていくでしょう。
わたしたちは、こういったすべての変化に対して、対応していかなければならないのです。そしてそのためには、職務中に得た知識だけでは不充分なのです。自分の時間を使って、日々勉強しなければいけません。
勉強と聞くとツラいイメージを抱く人が多いでしょうが、そんな事はありません。学生時代の試験勉強とは違うので、誰もあなたの勉強に口を出したり、叱られたりすることはありません。勉強は自分の世界を拡げる行為です。新たに得た知識は、あなたの着想にそれまでとは異なる息吹を吹き込みます。あなたの書くコードは日に日に美しくなり、品質も向上します。勉強した結果、得られるものは素晴らしい世界です。
IT勉強会カレンダーなどを参考に、気になる勉強会に参加してみても良いでしょう。知識だけでなく、人脈を拡げることもできます。自分の師匠となる人物に出会うこともあるかもしれません。さらには、あなたが誰かから刺激を受けるのと同じように、あなたが別の「誰か」に良い刺激を与えることもあるでしょう。
「学ぶ」という事は楽しいものです。自分の世界を拡げ、新たな友人を生み出し、そしてキャリアにより良い影響を与えるものです。とりあえず、気になる言語のSDKをダウンロードするところからまずは始めてみましょうか。
皆さんもどんどんきのこを増やしていきましょう!!
「108番目のきのこを生やす会」:http://atnd.org/events/11274
2010年12月24日金曜日
いろいろな言語でメリクリ!!
いろいろなプログラム言語でメリークリスマス!!
Ada:
BASIC:
C:
C#:
COBOL:
Java:
Ruby:
Scala:
SQL:
PHP:
Ada:
with Ada.Text_Io; use Ada.Text_Io;
procedure Xmas is
begin
Put_Line ("Merry Christmas!!");
end Xmas;
BASIC:
10 PRINT "Merry Christmas!!" 20 END
C:
#include#include int main (int argc, char **argv) { puts ("Merry Christmas!!") ; return EXIT_SUCCESS ; }
C#:
class XmasApp
{
static void Main()
{
System.Console.WriteLine("Merry Christmas!!");
}
}
COBOL:
IDENTIFICATION DIVISION. PROGRAM-ID. XMAS. PROCEDURE DIVISION. DISPLAY "Merry Christmas!!". STOP RUN.
Java:
public class Xmas{
public static void main(String[] args){
System.out.println("Merry Christmas!!");
}
}
Ruby:
puts "Merry Christmas!!"
Scala:
object Xmas extends Application {
println("Merry Christmas!!")
}
SQL:
SELECT 'Merry Christmas!!' FROM dual;
PHP:
<?php echo 'Merry Christmas!!'; exit; ?>
2010年12月7日火曜日
ライトニングトークをやってきた。
先日の土曜日に、エンジニアライフのオフ会に参加し、ライトニングトークをしてきた。その模様を少しお届け。
会場は今回のイベントに快く場所を提供くださった、「神戸情報大学院大学」さん。
プレゼンの達人がお出迎え。
会場の様子
LTに使ったスライド。
他の録画はこちら:http://www.ustream.tv/channel/lits2010winter
登録:
投稿 (Atom)