Pages

ホワイトクリスマスに合わせて Whitespace のインタプリタをリリースしようと思ったらクリスマスが終わってた

2013年12月26日木曜日
ホワイトクリスマスにちなんで素敵なプログラミング言語の「Wihitespace」のインタプリタをリリースしようと思ったら、こんな時間になってしまいました。

Whitespaceって?

半角スペースとタブと改行(LF)を使って書くプログラミング言語です。
詳しくは、Wikipedia を参照して頂ければと。

なんで作ったの?

ksnctfにあるとある問題を解くのにWhitespaceの仕様を読んでいたら、
Whiteつながりで、クリスマスに作るか?と思い作りました。


使い方

githubからソースをダウンロードして実行してください。

go run wspace.go <-h | -d> <run | text | char> <whitespaceのソースパス>
 run 指定されたwhitespaceのファイルを実行します
 text 命令文に置き換えます
 char 半角スペースを'S'、タブを'T'、改行(LF)を'L'に置き換えたソースを表示します
 -d スタックやヒープの中身を表示します(一部のみ実装)
 -h ヘルプもどきを表示します

コンパイルするときは

 go build space.go
wspace <-h | -d> <run | text | char> <whitespaceのソースパス>

問題点

ひと通り実装してみたものの、ソースが読みやすくないのでおいおい改良するつもりです。
目的の問題を実行してみたら、うまく動かなかったのでどこかの実装に誤りがあります。
おいおい修正します。

Read more ...

GMO VPNにJenkins環境を構築したときのメモ

2013年10月26日土曜日

はじめに

環境構築に使ったサーバーは次のとおりです。
契約したサービス:GMO VPN マイクロ(月々980円)
OS:Ubuntu 12.04
その他オプション:一切なし(既に持っていたドメインくらい)
※文中<>でくくった文字が出てきますが、自分の好きなものに読み替えてください。

rootパスワード変更

# passwd

OSアップデート

# apt-get update
# apt-get upgrade

ユーザー追加

# adduser <xxxx>
# adduser <xxxx> sudo

確認

作成後、sshから作成したアカウントでログインできることの確認を忘れずに…
ssh xxxx@xxx.xxx.xxx.xxx

注意
以降、作成したアカウントでログインする

Git インストール

$ sudo apt-get install git-core


Jenkinsインストール

$ sudo apt-get install jenkins

Jenkins設定変更

/etc/default/jenkins の最後にJAVA_ARGSを追加
$ sudo vi /etc/default/jenkins
  JAVA_ARGS="-Dfile.encoding=utf-8"

Apacheインストール

$ sudo apt-get install apache2
$ sudo touch /etc/apache2/conf.d/jenkins
$ sudo vi /etc/apache2/conf.d/jenkins

Apache関連モジュールインストール

$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo service apache2 restart
※ここで一旦確認

$ sudo a2dissite default
$ sudo service apache2 restart

Jenkinsアップデート

$ cp /usr/share/jenkins/jenkins.jar $HOME
$ sudo rm /usr/share/jenkins/jenkins.jar
$ cd /usr/share/jenkins
$ sudo wget http://updates.jenkins-ci.org/download/war/1.509.4/jenkins.war
$ sudo service jenkins restart
Read more ...

Raspberry Pi にCoderをインストールして遊んでみた part 3

2013年9月23日月曜日
前回は、日本語対応について書きました。
第3回は、ディスクサイズの拡張とGUIの起動設定、オーバクロックの設定について書きたいと思います。

作業の流れ

5ステップ構成になっております。
※太字の番号は、パート1に書きました。
  1. Coder image のダウンロード
  2. SDカードに書き込み
  3. Raspberry Pi のセットアップ
  4. 無線LANの設定(有線のときは不要)
  5. Coderの利用

用意するもの

  1. Raspberry Pi
  2. SDカード(推奨は4GB)
  3. ディスプレイ
  4. キーボード
  5. マウス
  6. 電源アダプタ(スマホの充電器で代用可能)
  7. 無線LAN(有線で使用する場合は不要)
  8. SDカードに焼き込むパソコン(Macbook Pro OSX 10.8.5)

ステップ3 Raspberry Piのセットアップ(その2)

ディスクサイズの拡張

この設定は、通常4GBより大きいSDカードにイメージを書き込んだときに使用します。
ダウンロードしてきたイメージは、認識できるディスクサイズが4GBで構築されています。そのまま使おうとすると空きディスク領域が1GBしかありません。
空きディスク領域が足りないなと思う方はこの設定を行ってください。

メインメニューから「1 Expand Filesystem」を選択
<Ok>を選択

GUI起動モード

初期設定では、コマンドラインベースのインターフェースCUI(Character-bases User Interface)を使う設定になっています。
Windowsのようにマウスを使ったインターフェースGUIGraphical User Interface)を使いたいんだ!という方は、この設定を行い、GUIで起動できるように設定してください。
なお、CUIでもログイン後、コマンドラインに「startx」と入力することで、GUIの画面を使うことができるようになります。

メインメニューから「3 Enabled to Desktop」を選択
<Yes>を選択


オーバークロックの設定

オーバークロックは、Raspberry Pi 毎に耐えられる周波数が異なるようです。(詳細解らず)
僕のRaspberry Piでは、Turboモードで動きましたが、もしかすると動かなくなる可能性もありますので、自己責任でお願い致します。

メインメニューから「7 Overcrock」を選択

「<Ok>」を選択

どの程度オーバークロックするのか選択
※最初は、「Medest」から始めてひとつずつ設定を変えることをおすすめします。

「<Ok>」を選択

「<Ok>」を選択
1分時程で設定が完了し、メインメニューに戻ります


設定を反映させるには…

メインメニューから「<Finish>」を選択

自動で再起動しないときは、「reboot」と入力後、Enterを押します。



以上で、Raspberry Pi の初期設定が完了となります。
今回説明しなかった設定項目は、そのうち調査して書きます。
次回は、Raspberry Pi でWLANを使う方法について、書きたいと思います。

Read more ...

Raspberry Pi にCoderをインストールして遊んでみた part 2

2013年9月23日月曜日
前回は、Coderの概要とSDカードにOSを書き込むところまでの手順を書きました。
第2回は、Raspberry Pi の設定について書こうと思います。
ただし、説明が長くなってしまうので、今回は、「日本語対応」のみ書きます。

次回は、Raspberry Pi のセットアップ(その2)として、ディスクの拡張とオーバークロックの設定について書きます。

作業の流れ

5ステップ構成になっております。
※太字の番号は、パート1に書いております。
  1. Coder image のダウンロード
  2. SDカードに書き込み
  3. Raspberry Pi のセットアップ
  4. 無線LANの設定(有線のときは不要)
  5. Coderの利用

用意するもの

  1. Raspberry Pi
  2. SDカード(推奨は4GB)
  3. ディスプレイ
  4. キーボード
  5. マウス
  6. 電源アダプタ(スマホの充電器で代用可能)
  7. 無線LAN(有線で使用する場合は不要)
  8. SDカードに焼き込むパソコン(Macbook Pro OSX 10.8.5)

ステップ3 Raspberry Piのセットアップ(その1)

ディスプレイや、マウスなどなど、必要なモノをRaspberry Piに接続して電源を接続。
しばらくすると Raspberry Pi の設定画面が起動します。

表 メインメニュー
1 Expand Filesytem Coderで使えるディスクの領域を最大まで増やします。 この作業をしないとディスクサイズが4GBまでしか認識されなくなります。
2 Change User Password ログインのパスワードを変更します。
3 Enable Boot to Desktop 起動したとに表示する画面モードを設定します。
4 Internationalisation Options 使用する言語やキーボード配列などを設定します。 起動直後は、設定が英語になっているので、日本語で使いたい場合はこちらの項目で設定変更が可能です。
5 Enable Camera カメラを有効にします。
6 Add to Rastrack RastrackというRaspberry Piの普及状況を調査するツールらしいのですが、詳しは分かりません。
公式サイトがあるのでこちらを参照お願い致します。
7 OverClock Raspberry Pi をオーバークロックします。 オーバークロックって何?という方はWikipediaを参照して頂ければと思います。
8 Advanced Options コンピュータ名の変更や、SSHを有効にするなどの設定をします。
9 About respi-config 設定画面の説明が書かれています。

言語設定

メインメニューから「4 Internationalisation Options」を選択
「I1 Change Locale」を選択

言語の一覧が表示されるので「ja_JP.UTF-8 UTF-8」にカーソルを合わせてスペースキー
「*」マークが付いていることを確認して<Ok>(TABキーで移動)

「ja_JP.UTF-8」を選択
数分時間がかかりますが、設定が完了するとメインメニューに戻ります


タイムゾーン設定

タイムゾーンの設定を変更して、Raspberry Piの時刻を日本時間に設定します。

メインメニューから「4 Internationalisation Options」を選択
「I2 Change Timezone」を選択

「Asia」を選択

「Tokyo」を選択
1分程すると設定が完了し、メインメニューに戻ります

キーボードレイアウトの設定

キーボードのレイアウトを日本語に変更します。
初期設定では、英語になっているので@や-、=などの記号の入力方法が異なります。
※キーボードレイアウトを変更する前にパスワード変更している場合は注意してください。

メインメニューから「4 Internationalisation Options」を選択
「I3 Change Keyboard Layout」を選択

自分が使っているキーボードを選択
(僕は、Microsoft Comfort Keyboard 2000を使っているので同じものを選択)

最初は英語のみの表示となっているので「Other」を選択 

「Japanese」を選択

 「Japanese」を選択

「The default for the keyboard layout」を選択

「No compose key」を選択

 「No」を選択
数分程すると設定が完了し、メインメニューに戻ります


ここまでが、日本語に対応する方法です。
part3では、オーバクロックの設定方法と、ディスクサイズ拡張の方法について書きます。
Read more ...

Raspberry Pi にCoderをインストールして遊んでみた part 1

2013年9月23日月曜日
最近、TwitterなどのSNSで見かける「Coder」をセットアップしてみたのでメモ

Coder とは?

Google Creative Labsの新しいプロジェクトだそうで、教育者や親が子供たちに「ウェブ開発の基礎」を教えることを目的にしているらしい。
→記事はこちら

子供たちにウェブ「ウェブ開発の基礎」を教えるとは?
まずは、当たってみねばと思い、
早速手持ちのRaspberry Pi にインストールをしました。

作業の流れ

5ステップ構成になっております。
  1. Coder image のダウンロード
  2. SDカードに書き込み
  3. Raspberry Pi のセットアップ
  4. 無線LANの設定(有線のときは不要)
  5. Coderの利用

用意するもの

  1. Raspberry Pi
  2. SDカード(推奨は4GB)
  3. ディスプレイ
  4. キーボード
  5. マウス
  6. 電源アダプタ(スマホの充電器で代用可能)
  7. 無線LAN(有線で使用する場合は不要)
  8. SDカードに焼き込むパソコン(Macbook Pro OSX 10.8.5)

ステップ1 CoderImageのダウンロード

Coderのサイトからzipファイルに圧縮されたImageファイルをダウンロードすることができます。
ダウンロードしたら好きな場所に解凍しておきます。


ステップ2 SDカード

解凍して作成されたフォルダ内の「rasi.img」をSDカードに書き込みます。

デバイスの確認

diskutilコマンドを使ってSDカードのデバイスを確認し、アンマウントしておきます。
diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:                  Apple_HFS Time Machine バッ...    2.0 TB     disk2s2
/dev/disk3 ← SDカードのデバイス
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *8.0 GB     disk3
   1:                 DOS_FAT_32 PIDORA                  8.0 GB     disk3s1

diskutil umountDisk /dev/disk3 ← 自分の環境では disk3 でした


SDカードへのイメージ書き込み

 Download ディレクトリに解凍しました。
cd Downloads/coder_v0.4
sudo dd if=raspi.img of=/dev/disk3 bs=1m


長くなるので、今回はここまでにします。
Read more ...

第伍回 CoderDojo Sendai 活動報告

2013年9月4日水曜日
8月31日に開催したCoderDojoの1場面!
初めて参加の子が3人、常連が2人。満員参加ありがとうございました!

参加してくれたお子さん達がめちゃめちゃアクティブであまりのうれしさに自分がしゃべりすぎるという失態をおかしたものの。覚えがいいので、予定の倍の事が説明出来ました。(次回は何をしようか…

常連メンバーにもそろそろ別の事を説明して、表現の幅を広げて欲しいので嬉しい悩みが付きない1日となりました。

東京でもらってきたプレゼントも子供たちに見せることができました。
どんくらいすごいのかは、大きくなったら理解ると思うので、そのときまでは、Scratchを楽しんでください。

Read more ...

Twitterのアプリを作るときに認証やツイート処理で困ったことメモ

2013年7月18日木曜日
Twitter で認証するときにやツイートするプログラムを作るときにハマったことをメモって置くことにします。
サンプルをコピペしても動かないぞ?という方の参考になればと思っております。
なお、この記事でプログラミング言語は一切出て来ません。
認証の処理と、ツイートの処理するときにTwitter側の設定が不足したことが原因で問題が発生したメモですので、ご了承ください。


さて、Twitterのアプリを作るときにハマったことの1つ目。

OAuth認証時 PINコード入力を回避させたいときにハマる!

どんな問題?

TwitterがOAuth認証を行うと指定したURLにアクセスして、認証した結果を返してくれます。(オプション設定)
初めてアプリの登録をしたとき、このCallback設定がオプションなので、ついつい空で登録してしまうと思います。
ですが、ここに値を設定しておかないとAndroidやiPhoneでPINコードの入力を回避したい!というときにハマってしまう例です。(現に自分がかなりハマりました。)

回避するには?

下図の赤枠のところになんでもいいのでURLを入力するだけで問題が解決しました。
「http://nothingdomain.com」


ユーザーにツイートさせたいときにハマる!

どんな問題?

認証が一段落し、適当なメッセージ「ほげほげ」をツイートしようとしたときにハマってしまいました。
最初は、コーディングミスかと思ったのですが、どこをどうやっても「エラー401」で返ってきてしまいます。
原因を調べたところ、Twitterの初期設定で権限が読み取り専用になっているからでした。

回避するには?

自分のアプリケーションの設定画面から「Settings」タブを選択して画面中頃にある「Application Type」を下図のように設定します。


※ 自分の環境では、この設定の後に「Details」→「Create My Access Token」でアクセストークンを作ってあげないとうまくプログラムが動作しませんでした。


以上。サンプルコードもなしにですが、自分がハマってしまったことをまとめたメモでした。

Read more ...

UP by JAWBONE の電源が1時間くらいで切れる現象が発生したのでメモ 2

2013年6月20日木曜日
UP by JAWBONE の電源が1時間くらいで切れる現象が発生したのでメモのその後について

ソフトウェアリセットとハードウェアリセット両方を行いまた。

結果は、1時間で電源が切れていたものが3時間に変わり少し改善?しました。

さすがに実用性が悪いので改めてサポートセンターに連絡したところ、いくつの情報と、壊れてしまったUPバンドを送ることですぐに変わりのUPバンドを送ってくれるとのこと!

早速、問い合わせのあった情報を送ります。

  1. 氏名
  2. 送付先住所(UPバンドを送ってもらうところ)
  3. 電話番号
  4. UPバンドの色とサイズ
  5. UPバンドのシリアル番号
  6. 保証書の画像(今回は、iPhoneで撮影)
  7. 購買日を確認できるレシートの画像(今回は、iPhoneで撮影)
これらの情報をメールで返信しました。


サポートセンターで確認が取れると壊れてしまった機器を送り先の住所を教えてくれます。

指定された住所にUPバンドを送ると1週間ほどで代わりのUPバンドが送られてまいりました。
※送るものはUPバンドのみでOKだということで箱などの不要なもの捨ててしまった自分にはとても助かりました。




丁寧にサポートして戴き、無事ライフログを再開できるようになりました。
Read more ...

CORON01 を見学して

2013年6月16日日曜日
本日、CORONA01を見学してきました。

CORONA01は、参加した人達がチームをいくつかの組み決まった時間の中でゲームを作り上げるというイベントです。

IGDA東北が主催となって、仙台では初の開催だそうです。
伺ったときは、参加者は22人。4チームに別れてゲーム作成しておりました。

企画者、プログラマ、イラストレーターが自分の得意な領域でチーム一丸となって、1つの作品を作る。
学生も参加できるそうなので、定期的に開催されるといい企画だと思いました。

enchantjs」ずっと話しに聴いていたのですが、今回4チームすべてで使っていらっしゃったので、触発されて僕も使ってみました。

くまさんタッチ
※走って逃げるくまを片っ端から叩いて遊ぶ。

たくさんの方から話しに聴いていたとおり、あっという間にブラウザゲームが作れてしまうので、正直驚きました。

今後、ちょっとしたゲームやアニメーションを作る機会があれば、積極的に使っていきたいと思いました。


さて、このCORONA01ですが、8月2日に福島で開催される「福島GameJam 2013」のプレ企画だそうです。
南相馬市と郡山市の2箇所で同時開催されるそうなので、ゲームが作ってみたい!という方は、これを機会に挑戦してみてください。
参加まで時間もあるので enchantjs に挑戦してみるのもいいかもしれないですね。

Read more ...

UP by JAWBONE の電源が1時間くらいで切れる現象が発生したのでメモ

2013年6月5日水曜日
先月、購入した「UP by JAWBONE」の電源が突然入らなくなってしまった…
※正確には、電源を満タンに充電しても1時間くらいで電源が切れ、使えなくなってしまう。

これでは、困るのでサポートセンターに電話をかけ、対処方法を教えてもらった。


まずは、電話番号の調査
公式サイトにあるので、簡単に見つけることができた

早速、電話
→2コールくらいで音声案内があり、その後、サポートセンターに繋がる
 ※問い合わせが少ないのか、サポートのラインが充実しているのか某大手のように待たされなかったのはとても良かった

担当者の方に電話が繋がり、状況を説明
→ソフトウェアリセットとハードウェアリセットを試して様子をみて欲しいとのこと
 
担当者にメールアドレスと名前を伝える
→10分ほどでリセット方法が書かれたメールが送られてくる。

ソフトウェアリセットに挑戦
→フル充電し、様子もみるも改善されず。

ハードウェアリセットに挑戦 ← イマココ
これでも改善しないときは、もう一度サポートセンターに連絡してみようかと思います。

〜どうでもいいけど、くやしかったこと〜
どこのサポートセンターかけても必ず2回は聞き返される自分の苗字。
メールの宛先が「イソゴ」になっていたときは、自分の発音の悪さをうらんだ…

リセット手順

それぞれのリセット方法は、こんな感じでした。

ソフトリセット 


  1. バンドに充電器(USBケーブル)を差し込む
  2. バンドのボタンを長押ししながら、パソコンのUSBポートに充電器を差し込む
  3. 太陽マークのステータスライトが虹色に点滅 
  4. 点滅したらバンドのボタンを離す 
  5. バンドを充電器から外す 
  6. バンドのボタンを1回押す
太陽マークのステータスライトが小刻みに点滅し停止すると、ソフトリセットの完了

ハードリセット 


  1. バンドのボタンを10回押す(10回目は長押し)
  2. 太陽マークが赤色に点灯するまで押し続ける
しばらくすると点滅するこれでハードリセットの完了
Read more ...

Scratch Day in Tokyo 2013 に参加して

2013年5月26日日曜日
1周間が経過しましたが、先週5月19日に開催された Scratch Day in
Tokyo 2013 に参加して来ました。

Kinect で Scratch を操作したり、Leap Motion で Scratch を操作したり、Scratch の 命令ブロックを元にしたプログラミングがあったりとたった一日だけなのに仙台に持ち帰ってやってみることが増えた一にになりました。


Kinect を使った Scratch ゲーム

Leap Motion を使って Scratchを操作するゲーム

甥っ子がもう少し大きくなったら、プレゼントしようと思ったOLPC
余計な機能がついていないし、丈夫な作りなので子供に持たせるのにいいかなっと

Scratch の命令ブロックを模したブロック
ブロックを組み合わせると実際にパソコン内の車が動きました
(→リンク)

Scratchで作ったゲームを懐かしのコントローラーで操作
作ったのは、中学生とのこと

ちなみに CoderDojo Kashiwa の高校生と一緒に LT(Lightning Talk)もして参りました。
内容は、今年から始めたCoderDojo Kashiwa と CoderDojo Sendai について



Read more ...