2013年9月5日木曜日

Vagrantをインストールしたり

さて、たまには技術的なことを書こうかな。
ということで、なにかと話題のVagrantをいんすこしてウェヒヒっと遊ぼうという記事です。何かの役に立つことを祈って。
本当はMacとかに入れて「うはwww俺おしゃれwwwww」ってできればいいんだけど、MacBook AirのSSDに64GBを選択した俺になんの選択の余地もなくWindowsです。
ドットインストールを見てもらえれば万事解決だけど、それじゃ面白みも無いので細かく。
手順としては以下の通り。
  1. VirtualBoxのインストール
  2. Vagrantのインストール
  3. Boxを入れる
  4. 仮想マシンを立ち上げる
  5. なにやら入れる
では始めます。

VirtualBoxのインストール

Oracleさんのサイトに行ってカカッと落としてインストールして下さい。
仮想ネットワークとかポンポン入れるのでそのつもりで。

Vagrantのインストール

Vagrantの公式サイトからダウンロードしてきます。Versionは2013/09/04現在最新の1.2.7でいいと思います。
今回はWindowsなのでVagrant_1.2.7.msiですね。
Vagrantのインストールが終わったら、コマンドプロンプトを開き以下のコマンドを打ち、バージョンが表示されることを確認します。

> vagrant --version
Vagrant version 1.2.7

Boxを入れる

Vagrantbox.esというスンバらしい非公式サイトがあるので、そこから好みの環境を選択します。今回は自分は「CentOS 6.4 x86_64 Minimal」を選択しました。
http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
をコピーしておきます。
再度コマンドプロンプトを開き、以下のコマンドを打ちます。

> vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

centos64の部分はわかりやすい識別名だと思ってもらえばいいかと思います。
で、コマンドが完了したら以下のコマンドを打ち、CentOS6.4が追加されたことを確認します。

> vagrant box list
centos64 (virtualbox)

仮想マシンを立ち上げる

そのままコマンドを打って立ち上げることもできますが、(デフォルトだと)C:\Users\USERNAME\がとっ散らかるので、フォルダを作ってその中で作業をします。 C:\Users\USERNAME\vgr_centos\を作ったとして話を進めます。
以下のコマンドを打ちます。

> cd C:\Users\USERNAME\vgr_centos
> vagrant init centos64

ひとまずコレで設定完了です。あとは、C:\Users\USERNAME\vgr_centos

> vagrant up

とすれば仮想マシンが立ち上がります。
仮想マシンにログインするには以下のコマンドを打ちます。

> vagrant ssh

仮想マシンからコマンドプロンプトに戻るにはlogoutやら、ctrl+Dで抜けて下さい。
仮想マシンの止め方は、

> vagrant halt

です。
仮想マシンを破棄する場合は、仮想マシンが止まっている状態で以下のコマンドを。

> vagrant destroy

大体、こんな感じ。

なにやら入れる

仮想マシンにApacheとPHPを入れます。とりあえず自分的にそれだけあれば十分なので…。他のものが欲しい場合はググったりしてください><
さて、仮想マシンにログインします。

> vagrant up
> vagrant ssh

とりあえずApacheを入れます。
RHEL系を使ったことのある人ならお馴染みのyumを使います。

$ sudo yum -y install httpd

インストールが終わったら起動してみます。この時、iptablesが邪魔なので切っておきます。

$ sudo service iptables stop
$ sudo chkconfig iptables off
$ sudo service httpd start
$ sudo chkconfig httpd on

chkconfig on/offというのは仮想マシンを再起動したときにサービスを同時に立ち上げるかどうかという設定です。
さて、これでWEBサーバーは立ち上がってるはずです。
仮想マシンのプライベートIPアドレス(192.168.xxx.xxx)を調べます。

$ ifconfig

上記コマンドを打って、出てきたIPがそうです。inet addrという項目がそうです。
ホストマシン(VirtualHostを立ち上げてるPC)でブラウザを立ち上げ、先ほど調べたIPをアドレス欄に打ちます。すると以下の画面が表示されると思います。
SamplePage
よし、おk。次はPHPだ。

$ sudo yum -y install php

これでPHPのインストールは完了しているはず。
確認しましょう。
以下のコマンドを打ちます。

$ sudo service httpd restart
$ cd /var/www/html
$ sudo touch info.php
$ sudo chmod 666 info.php
$ sudo echo "<?php phpinfo() ?>" > info.php

各行のコマンドを説明すると、
1行目はPHPをインストールしたので、念のためApacheを再起動しています。Noobなのでこの辺はっきりしない。。。
2行目は/var/www/htmlというパスに移動しています。ここがウェブから見た時に表示されるデフォルトディレクトリです。
3行目はinfo.phpというファイルを作成しています。 4行目は、info.phpファイルに書き込み権限を与えています。詳しくはこちらを参照して下さい。
5行目にPHPがちゃんとインストールできたか確認するための命令をinfo.phpに書き込んでいます。
さてさて、ここまで終わったら再度ホストマシンから仮想マシンにアクセスしてみましょう。
自分の仮想マシンのIPアドレスが192.168.33.10なので、コレを例として仮想マシンに作成したinfo.phpにアクセスするには192.168.33.10/info.phpをブラウザのアドレス欄に入力して下さい。
そして、以下のような画面が表示されればOKです。
phpinfo()

というわけで、何故かところどころ説明口調で書いてきましたが、コレでPHP開発環境は整ったって感じです。
自分もまだ基本的な使い方しかわかっていませんが、LAMPをインストールした状態とかのものでBOXを作っておけば、あれこれ試せていい感じっぽいので、ほどほどにガンガン使っていこうと思います。
とりあえずはPHP5.5をインストールしよう…。サクッと書くつもりが意外と長くなってしまった。。

2013年9月4日水曜日

2013/09/04のGunosy

2013/09/03なんてなかった!

以下SmartNews


2013年9月3日火曜日

2013/09/02のGunosy

昨日のを今日まとめる感じ…!

以下、SmartNews


2013年9月2日月曜日

2013/09/01のGunosy

ネット回線がある田舎に引きこもりたい。

以下SmartNews


2013年9月1日日曜日

2013/08/31のGunosy

有頂天家族おもしろい。

以下SmartNews



GunosyとかSmartNewsとか関係ないけど、自分のアルゴリズムの無さに絶望したのでちょっと調べてみた。

以上、今日はいつもよりちょっと長めでした。

2013年8月31日土曜日

2013/08/30のGunosy

わたし、まとめます。

今日はSmartNewsありません。

2013年8月29日木曜日

2013/08/29のGunosy

今日はGunosyがいい記事がなかったです。。
というわけでSmartNewsのみです。

2013/08/26-28のGunosy

サボり^q^
という訳で2日分です。ちょっとした解説や自分の意見もありません。また、GunosyとSmartNewsとで被ってるのもあると思います。

なんか妙にPHPやらJSやらが増えてるような…。
以下、SmartNews


2013年8月26日月曜日

2013/08/25のGunosy

今日は超少ない & 適当だわさ。

  • プログラマ格言(2006)

    あるあるネタが多く面白かったので。

  • モダンPHPチュートリアル (LLまつり版)

    PHPerは低レベルとか、PHPは分かりにくいとか、セキュリティが、とかいろいろあると思うけど、私はそこそこ好きです。 CakeやらZendやらのフレームワークとか使ったことないけどな!
    しかし、mysql_connectって廃止予定なのか…。

本日、SmartNewsは見てる時間なかったのでありません。

2013年8月24日土曜日

2013/08/24のGunosy

連続記録目指して頑張る。イチロー並みに頑張る。

以下SmartNews


2013/08/23のGunosy

日をまたいでしまったけど、今日もまとめてくぜ。


以下SmartNews

2013年8月22日木曜日

2013/08/22のGunosy+a

今日もまとめるぜ~


番外編
iPhoneアプリのSmartNewsを最近始めまして、そちらもまとめていこうかなと。
さらっと見出しだけ。

10000hours

1万時間ってどんなもんだろう?と思って業務時間ベースでてきとーに計算してみた。

365d * (5d / 7d) ≒ 260d
260d * 8h = 2080h

ってことは、業務中ひたすらコードかいてりゃ5年弱か
でも実際そんな長い間コード書いてる時間なんて無いし、上の計算には休暇や休日が入ってないから倍以上かかるんだろうな~。

2013年8月21日水曜日

2013/08/21のGunosy

いぇーい、みてるぅ?


フラットデザイン的なアプリを作るときの参考に。他にもこういうサービスあるけど、Gunosyに乗っていたので。

昨日載せてしまったので…。つかっt(ry

日本市場を意識した場合、有料アプリは難しいよ!というお話。海外市場も結局グラフィックがものをいう感じだしね。。

Androidでも使えるかしら?というわけで、調べてみた
使えるっぽいね。

ナ ナンダッテー!!
Ω ΩΩ

長いので読んでない(ドンッ)

Written with StackEdit.

2013年8月20日火曜日

2013/08/20のGunosy

内輪向けに書いている覚書をつらつら書いていこうと思います。
基本的には自分のGunosyから抽出しています。また、マークダウン記法で記述しているため、見にくい箇所があるやもしれません。

  • raymarching for games

    ポリゴンなくても綺麗な描画ができるよ!それをゲームで使おうぜ、っていう記事。WebGLとかイミフだわ


  • Bootstrap 3 released

    やったねタエちゃん、Bootstrap3.0だよ!使ったことねーけど。


  • Pro Git

    なにこのすばらしいさいと

2013年8月11日日曜日

[Android] findViewByIdでNullPointerException

久々の投稿がAndroid
最近始めましたAndroid
わからないことだらけです。

その中の一つ、表題の件です。
以下の様な構成です。

<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/TableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="*"
    tools:context=".MainActivity" >

</TableLayout>

public class MainActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SetLayouts layouts = new SetLayouts(this);
        layouts.SetButtons(WIDTH, HEIGHT);
        layouts.setListView(WIDTH);
    }
}

public class SetLayouts extends MainActivity {
    private Context context;

    public SetLayouts(Context context){
        this.context = context;
    }

    public void SetButtons(int x, int y) {
        TableLayout layout = (TableLayout) findViewById(R.id.TableLayout1);
        :
        :
    }

概略としてはこんなかんじです。
テーブルレイアウトに動的にボタンを配置して、ちょめちょめする感じですが、SetButtons()初っ端のfindViewById()でNullPointerExceptionが発生していました。
R.id.TableLayout1は取れてるし、MainActivityのonCreateでfindViewById()すると当然取れるし…。でしばらく悩んでいました。

んで、自分が出した解法は以下の様な感じです。

public void SetButtons(int x, int y) {
        TableLayout layout = (TableLayout) ((Activity) context).findViewById(R.id.TableLayout1);
        :
        :
    }

これで一応取れるし、まー、いいかな~。
と思いつつもっとスマートに取れないものかとも思い中。
ご意見あれば、どうぞお願いします。

2013年3月9日土曜日

Google I/O 2013のイースターエッグ

Google I/Oの予約サイトが面白いことに via ITmediaニュース

ちょっと調べてみた。
全然何書いてあるか読めなかったけど、とりあえず隠しモードは以下の12種類っぽい。
  • Cat
  • Space
  • Pong
  • Bacon
  • Simone
  • Eight Bit
  • Song
  • Synth
  • Ascii
  • Bowling
  • Rocket
  • Burger
// 2013.3.9 2:30頃 追記
ぼーっとソース眺めてたらいくつか実装されてないのがあるみたい。
Donutとか、Metaballとか
// ここまで

あとはどういう判定をしてるのかがわかればいいんだけども…。

あ、実際に入力しないといけない項目はほかのサイトで見てねw

2013年3月8日金曜日

【備忘録】tailfの実装

http://www.rather.puzzling.org/~tconnors/soft/specialkeyboard/tailf.c

ふと気になったので。
さっくりは読んだんだけど、tailf()で何やってるのかわからん。。。

メジャーなブラウザでhtml5test.comしてみた

仕事中ふと最近のブラウザの対応率が気になったので調べてみました。
on MacintoshなのでIEないです。
あとChrome、Safari、Firefox、Operaしかやってません。

Chrome 25


Safari


Opera


Firefox


メジャーブラウザでは圧倒的な対応っぷりを見せるのがやっぱりChromeちゃん。
4種の中でダントツですね。
ついでOpera、Firefox、Safariの順です。

※ってかこんなことしなくても普通にhtml5test.comで見れた…

2013年3月6日水曜日

フリーランスになりたい

【ショートコラム】一生食べ続けられるフリーランスの条件 via ガジェット通信

いつかはフリーランスになりたいと世の中の95割のプログラマが思ってると思ってます。
もちろん私もその一人^o^

Titanium Studio 3を導入しました

何このUIデザインしにくいツール…。AndroidとiPhoneで表示が違いすぎる…。
何か方法があるのかしら?
明日はその辺を調べようかね。

でもまあ今の段階として、Javaをボリボリ書くよりちょっとでもわかってるJS書いたほうがいいという判断で、やっていこうと思います。

あ、それから、このブログはこういう技術系なものを書いて行きたいと思います。
今更ながらw

昨日まで書いていたようなものは別の姉妹ブログに書くことにしましたので、よろしくお願いします。

2013年3月4日月曜日

マックのポテトを買うと無料券がついてくるキャンペーンを計算してみる

マクドナルド、ポテトやナゲットを1個買うと1個無料だー! via ねとらぼ

3月8日〜14日はポテトを買うとポテトの無料券がつくそうです。3月15日〜21日はチキンナゲットが、3月22日〜28日はポテトと、朝マックのハッシュポテトにそれぞれ無料券がついてくるそうです。

やったー!無料だー!と喜んだけれど、定価じゃないとダメそうなので、マッククーポンでその週にポテトの割引が来るのかな?
仮にクーポンが来たとして、SMLどれでも150円だったら、うちの近所の場合、Lが290円なので

一個無料の場合:290 + (290 - 290) = 290
クーポン使用の場合:150 * 2 = 300

となって定価で1個買って、1個もらったほうが10円お得という計算。

…意外とお得感がない!


ただし、上記は値段ランクA以下の場合なので、値段ランクSだった場合、

一個無料:310 + (310 - 310) = 310
クーポン:150 * 2 = 300

となる。
……あれ?

2013年3月2日土曜日

GitHub登録してみた

超今更感が半端無いけど、GitHubに登録してみました。
どういうメリットがあるのかわからないけど、まぁいいじゃんw

んで、使い方詳しい人とかこの記事を見たら手取り足取り教えてくれるとありがたいです…!
GItHub for Macの使い方とかわからん。。
他の人のリポジトリは見れないのか…?

2013年3月1日金曜日

今日のGoogle Doodle


Google
今日のDoodleは芥川龍之介生誕記念日ってコトで羅生門みたいやね。

Doodleの頻度もっとあがれー

2013年2月28日木曜日

自分にあった情報を届けてくれるサービス「Gunosy」

今日みかけて登録しようと思ってたら、丁度Android版がリリースされたとのこと。
入れてみるぜ。

Android版「Gunosy」(グノシー)遂にリリース! 使い勝手も良好です

初めてのAndroidアプリケーション


作ってみました。
超貧相なUIと機能ですがめっちゃ時間かかった…。Javaは慣れない。

作りとしては簡単な計算アプリですね。
「割引前価格」に割引前のお値段を入れて、「割引率」にパーセント単位で割引率を入れて、「計算する」を押下すると20%引きの価格とかが簡単に見れますよ、っていうよくある感じのやつです。
エラーチェックとか細かいところは全然手を入れてないので、落ちまくると思いますが、公開しておきます。
これを元にどんどん更新する予定。多分更新したら投稿すると思います。
また、ソースがほしいという稀有な人がいらっしゃったら言ってください。公開します。

アプリはこちらから落としてね。

2013年2月27日水曜日

初めてのAndroidアプリ作成

思い出したかのようにAndroidアプリを作ってみました。
手元に超初歩的なこと(だけ)を教えてくれる本があるので、それを参考にコードをポチポチ入力。
するとエラー、というか警告が。

キャプチャ撮ってないのでざっくりどんなエラーかっていうのを書くと、「String使うならString.xml使えよ」ってエラーでした。
ぐぐってみると案の定おんなじ警告で悩んでる人がいたので参考にして解決。
先人の方、お疲れ様です。。

Hello WorldからつまづいたAndroid入門 via gmtr1234の日記

Opera on WebKit

Operaの中身をWebkitにしたものを実際に動かすデモムービー公開中 via GIGAZINE

Operaが来るぞぉ!
すっごいサクサク動いとる。Opera最強伝説は失われてなかったな…。

2013年2月26日火曜日

みなみけ8話

なんだったんだ、今回のはw
前半はまぁ、保坂が気持ち悪いで終わったけど、後半はまるで世にも奇妙な物語だった…。
でも、今回みたいな保坂が活躍する回なら、ウェルカムですよ。

ネタがない

初めてまだ数日なのにネタがないw
というわけで、ネタがないのをネタに更新。

ブログネタを思いつかないときの20の方法 via Webサイト運営ブログ

なるほど、やっぱりネタがないのをネタにするのはやっぱり有用なのねw
これからもどんどん使っていくぜ!w

2013年2月25日月曜日

Nexus7と物理キーボード

本日、MacBook Airでクラムシェルモードをする手はずで買った青歯のKBとマウスですが、クラムシェルモードでの字の小ささに目がしょぼしょぼするので、しばらくはクラムシェルモードをつかうことはないでしょうw
ってか無理して買う必要もなかったんだけどね。TVとつないでも普通にトラックパッドとキーボード使えたし。。
そんな訳で、若干の無駄遣い感が否めないKBとマウスは、Nexus7用になるかなーと。
というわけで、このエントリーはNexus7 + BlueToothKB + BT Mouseで書いてみました。

購入したKBは、BuffaloのBSKBB03WH。今のところNexus7向けとしてはいい感じかと。膝に置いて使っちゃだめねw
ただ、Nexus7の処理が悪いのか、KBが悪いのかわからないけど、打ってる文字が詰まることが。連続して同じ文字が入ってしまうって感じです。そこが解消されれば一本満足。
マウスの方は、これまたBuffaloのBSMMBB10N。BlueLEDだからどこでもポインタが動くし、こちらもまぁまぁいいものではないかなと。
ほかのを知らない俺がお伝えしました。

2013年2月24日日曜日

石鹸屋

石鹸屋の新譜、アウェイクを聞きながら何気なく検索してたら石鹸屋、2012年のCount Down Japan出てたのねww
全然知らなかったよw

ちょこちょこ必要になりそうなものを導入(予定)

とりあえずSyntax Highlighterを導入。
<pre class="brush: 色付けしたい言語">
コードを記述
</pre>
とすればいいらしいです。
<>←このへんの記号はここを参照して入力すればいいみたい。
もうちょい楽な方法ないのかね…。

情報元:net3

やぁ

こんにちわ。

さてさて、久方ぶりのブログだが、何を書いたらいいんでしょうね。
何かTwitterに書くのはあれかなって言うことを書くことにしますかね。