cocos2dでなんかゲームでも作ろと思って、開発環境整えたり、
「cocos2d-xではじめるスマートフォン開発」などの参考書を購入して見たりしましたが、
サンプル1つ作って、もう、息切れです(笑)
ゲーム作りってやることが多いです(汗)
サウンドや画像素材を集めたり作ったりと。。。
Unityの方がアセットストアがある分楽そう。。。
オリジナリティーが出るのか?
なんて疑問もありますが。
さて、そんなゲーム作りに挫折中の中、
なんか、覚えたいな~と思い、
目をつけたのが、androidアプリ開発。
androidアプリ開発もピンキリだとは思うけど、
お手軽さでは、ゲーム開発よりは上なはず。
と言うことで、皆さんご存知の~
ドットインストールで「Androidアプリ開発入門 」(全10回)をやってみました。
全10回やってみて、良かったので更に「Androidレイアウト入門 」(全8回)をやろうとしたら、
オッと!
こちらプレミアム会員のみとなっておりました。
ちょっと悩んだけど、android入門の全講座こなしたら、
そこそこできるようなるのでは?と思い、1カ月間プレミアム会員になることにしました。
とりあえず、次は「Androidリストビュー入門 」(全21回)、21回の長編です。
期間は、1カ月しかないので(延長可能だけど、目標1カ月で終わらせる)テキパキと終わらせて見せる!
ちなみに、「Ruby on Rails入門」(無料)の講座やってみたけど、こちらも良かったです。
終了時には、タスク管理アプリができます。
2015年3月3日火曜日
2015年2月1日日曜日
cocos2d-xでサンプルゲーム作ってみたけどキツイな
「cocos2d-xではじめるスマートフォンゲーム開発」と言う本を去年の年末に購入して、やっとサンプルのゲームが1本できました(笑)
サンプルゲームは、あと2本あるんだけど、果たしてやり遂げられるのか?!
1本目のサンプルゲームは、1ステージのみのシンプルな果物キャッチゲームでしたが、結構、いろいろコードを書かなければならなくてつらかったです。
怠け者の自分としては、unityの方が簡単に作れそうなので、unityに気持ちが揺らぎそうです^^;
MainSceneファイルにずらずら書いていく形式で、できれば、クラス分割した管理の手法で書いてくれた方がとっつきやすい気がしました。
とにかくソースが長くなりeclipseで画面スクロールするのがきついです(笑)
サンプルゲーム自体は、爆弾フルーツやボーナスフルーツの出現頻度を変えたり、細かい演出もよくできてると感動しましたよ。
うーん、よくできている(笑)
果たして、自分で考えたときにここまでのものが作れる気がしません(笑)
サンプルゲームは、残り2本!
横スクロールのアクションものと、パズルゲーム。
難しそうだし、心おれそうですが、「cocos2d-xではじめるスマートフォンゲーム開発」本の元を取り返したいので、このままcocosでゲーム作りは続行です。
オリジナルのゲーム作りは、やっぱりハードルが高い。
画像素材や音声素材も集めなきゃだし、コーディング自体もかなりの量を書かないとダメみたい。
早く、サクサクとゲームが作れるようになりたいものです。
サンプルゲームは、あと2本あるんだけど、果たしてやり遂げられるのか?!
1本目のサンプルゲームは、1ステージのみのシンプルな果物キャッチゲームでしたが、結構、いろいろコードを書かなければならなくてつらかったです。
怠け者の自分としては、unityの方が簡単に作れそうなので、unityに気持ちが揺らぎそうです^^;
MainSceneファイルにずらずら書いていく形式で、できれば、クラス分割した管理の手法で書いてくれた方がとっつきやすい気がしました。
とにかくソースが長くなりeclipseで画面スクロールするのがきついです(笑)
サンプルゲーム自体は、爆弾フルーツやボーナスフルーツの出現頻度を変えたり、細かい演出もよくできてると感動しましたよ。
うーん、よくできている(笑)
果たして、自分で考えたときにここまでのものが作れる気がしません(笑)
サンプルゲームは、残り2本!
横スクロールのアクションものと、パズルゲーム。
難しそうだし、心おれそうですが、「cocos2d-xではじめるスマートフォンゲーム開発」本の元を取り返したいので、このままcocosでゲーム作りは続行です。
オリジナルのゲーム作りは、やっぱりハードルが高い。
画像素材や音声素材も集めなきゃだし、コーディング自体もかなりの量を書かないとダメみたい。
早く、サクサクとゲームが作れるようになりたいものです。
2014年12月31日水曜日
「cocos2d-xではじめるスマートフォン開発」と言う本を購入したけど、Android Studioでつまづいた
先日、「2Dーム作りたいんだけどcocos2dxかunityどっちを採用しようか?」と言う記事を書いたので、早速、書店で「cocos2d-xではじめるスマートフォン開発」という本購入しました。
↓↓↓ 購入したやつ
この本を選んだ理由は、cocos2d-xの使い方はもちろんだけど、2dゲームを作るときのツールの紹介や一般的なゲーム制作の基礎が理解できそうだったから購入してみました。
早速、開発環境を構築しようとしてみると。。。
ADT(Android Developer Tools)のところで早速つまづきました(汗)
ADTのダウンロードサイト
http://developer.android.com/sdk/index.html
に行くと、なにやらSDK(Software Development Kit)ではなく、Android Studioなるものをダウンロードすることになっている。
Android Studioは、eclipseとUIとか同じなのだろうか。。。
せっかく、本を購入したのになんとしたことか。
などと、途方に暮れていると
http://giginet.hateblo.jp/entry/2014/12/30/103724
こちら筆者(たぶん)のサイトにAndroid Studio問題の回答項目ががありました。
年明けにサポートページを開設してくれるらしい。
待ってられねー!
と言う人は、上記のサイト内にADT環境がダウンロードできるURLが記述されているので、そこからダウンロード!
と言うことでとりあえず、自分もADT環境をダウンロードしたので本日の作業は終了(笑)
↓↓↓ 購入したやつ
この本を選んだ理由は、cocos2d-xの使い方はもちろんだけど、2dゲームを作るときのツールの紹介や一般的なゲーム制作の基礎が理解できそうだったから購入してみました。
早速、開発環境を構築しようとしてみると。。。
ADT(Android Developer Tools)のところで早速つまづきました(汗)
ADTのダウンロードサイト
http://developer.android.com/sdk/index.html
に行くと、なにやらSDK(Software Development Kit)ではなく、Android Studioなるものをダウンロードすることになっている。
Android Studioは、eclipseとUIとか同じなのだろうか。。。
せっかく、本を購入したのになんとしたことか。
などと、途方に暮れていると
http://giginet.hateblo.jp/entry/2014/12/30/103724
こちら筆者(たぶん)のサイトにAndroid Studio問題の回答項目ががありました。
年明けにサポートページを開設してくれるらしい。
待ってられねー!
と言う人は、上記のサイト内にADT環境がダウンロードできるURLが記述されているので、そこからダウンロード!
と言うことでとりあえず、自分もADT環境をダウンロードしたので本日の作業は終了(笑)
2014年12月25日木曜日
2Dーム作りたいんだけどcocos2dxかunityどっちを採用しようか?
今年の春ぐらいから勉強を始めたRuby on Railsですが、仕事でRuby on Railsを使って開発をしているので、さすがに飽きてきましたw
とりあえず、プログラミングで何かコンテンツを作れないか考えてみると、やはり、ゲームあたりでしょうか?
以前、JAVAでシューティングゲームを作ったことがあるんだけど、作るの結構めんどくさかったわ(笑)
1ステージでも大変だったのにそれが何ステージもあると考えると、やはりゲームを作るのは大変だと思えてしまう。
近頃は、3DゲームならUnity、2Dゲームならcocos2dxなるフレームワークとかを使うみたいだが、実際のところゲーム作りが楽になるのだろうか?
非常に興味があります。
自分の場合は3Dゲームにはあまり惹かれないんだけど2DでアクションゲームやRPGなんぞを作りたいと考えております。
実際、cocos2dxでなんかゲームを作ろうと思って環境を作ったのですが、
環境構築で1週間ほどかかってしまいました(汗)
(ちゃんと集中してやれば半日くらいで出来るよ。。。多分)
cocos2dxの他にeclipse、cygwin、java、android sdk、android ndk pythonとかいろいろインストールしなければならなっくって大変でした。
環境変数にパスを通したりしないとならないしハードル高い感は感じました。
cocos2dxの環境構築のサイトはたくさんあるんだけど、みんな環境が違うので戸惑ってしまいます。
一方でUnityはexeファイルを実行するだけらしいのでお手軽構築です。
Unityの使用言語はC#、一方cocos2dxはC++(JavaScriptも使えるけど実行速度を考えるとC++でやりたい)。
個人的にはC#の方が覚えやすいと思う。
C++はチョット難解。
C言語はやったことあるんだけど、それでも苦手意識が。。。
なんか、グダグダ書いてしまったけど、Unityの方が2Dゲーム作るにしてもcocos2dxより開発が簡単そうに思える。
しかし、cocos2dxを使いこなせてせればUnityの学習はかなり楽になるのではなかろうか?
とりあえず、cocos2dxという、いばらの道でゲームでも作ろうかな。
とりあえず、プログラミングで何かコンテンツを作れないか考えてみると、やはり、ゲームあたりでしょうか?
以前、JAVAでシューティングゲームを作ったことがあるんだけど、作るの結構めんどくさかったわ(笑)
1ステージでも大変だったのにそれが何ステージもあると考えると、やはりゲームを作るのは大変だと思えてしまう。
近頃は、3DゲームならUnity、2Dゲームならcocos2dxなるフレームワークとかを使うみたいだが、実際のところゲーム作りが楽になるのだろうか?
非常に興味があります。
自分の場合は3Dゲームにはあまり惹かれないんだけど2DでアクションゲームやRPGなんぞを作りたいと考えております。
実際、cocos2dxでなんかゲームを作ろうと思って環境を作ったのですが、
環境構築で1週間ほどかかってしまいました(汗)
(ちゃんと集中してやれば半日くらいで出来るよ。。。多分)
cocos2dxの他にeclipse、cygwin、java、android sdk、android ndk pythonとかいろいろインストールしなければならなっくって大変でした。
環境変数にパスを通したりしないとならないしハードル高い感は感じました。
cocos2dxの環境構築のサイトはたくさんあるんだけど、みんな環境が違うので戸惑ってしまいます。
一方でUnityはexeファイルを実行するだけらしいのでお手軽構築です。
Unityの使用言語はC#、一方cocos2dxはC++(JavaScriptも使えるけど実行速度を考えるとC++でやりたい)。
個人的にはC#の方が覚えやすいと思う。
C++はチョット難解。
C言語はやったことあるんだけど、それでも苦手意識が。。。
なんか、グダグダ書いてしまったけど、Unityの方が2Dゲーム作るにしてもcocos2dxより開発が簡単そうに思える。
しかし、cocos2dxを使いこなせてせればUnityの学習はかなり楽になるのではなかろうか?
とりあえず、cocos2dxという、いばらの道でゲームでも作ろうかな。
2014年9月29日月曜日
Rails4で複数モデルのトランザクションについて調べてみた
仕事で最近rais4を使って開発してるんだけど、トランサクションについてわからんのでちょっと調べてみた。
必要な仕様としては、インサートする配列があって、どこかでインサートがこけたらrollbackして成功していたインサートもなかったことにする。
自分これ系の仕様嫌いなんだけど。。。
しょうがないからやってみた。
まず、バルクインサートさせるために「activerecord-import」を使う。
Gemfileに下記を記述して
gem 'activerecord-import'
bundle update
で、mysqlでテーブル3つ用意。
foodsテーブル
order integer not null
name string
jobsテーブル
order integer not null
name string
likeテーブル
order integer not null
name string
どれも構成はおんなじ。
ネーミングセンスはテストなので気にしないでちょ(汗)
データはあらかじめ入れておくよ。
簡潔にテストしたいのでスタティックなコントローラに下記を記述。
orderはnot nullなのでorderのところに「nil」を入れておいて、わざとエラーにさせる。
コントローラに書くコードは下記のコード。
p '------------------------'
ng=[
{ :order => 10, :name => 'ああああ'},
{ :order => 11, :name => 'えええ'},
{ :order => nil, :name => 'いいい'},
{ :order => 13, :name => 'ううう'},
{ :order => 14, :name => 'おおお'},
]
ok=[
{ :order => 10, :name => 'ああああ'},
{ :order => 11, :name => 'えええ'},
{ :order => 12, :name => 'いいい'},
{ :order => 13, :name => 'ううう'},
{ :order => 14, :name => 'おおお'},
]
j = []
ng.each do |i|
j << Job.new(i)
end
f = []
ok.each do |i|
f << Food.new(i)
end
begin
Job.transaction do
Food.import f
Job.import j
a = Like.where(Like.arel_table[:order].lteq(10))
a.update_all({:name => 'きゃー'})
end
rescue ex
p '----------- error -------'
p ex.messages
end
どっかの記事でRails(4)は複数のトランザクションをサポートしない。。。
みたいな記事を見たんだけど、構わず無作為にピックアップしたモデルを使ってトランザクションしてみる。
実行してみた結果、クエリがこけたときは見事rollbackされることが確認できた。
どのテーブルも更新されませんでした。
念のため、Food, Job, Likeでそれぞれこけさせてみたが、結果は同じ更新されてませんでした。
もちろん、成功時は三つのテーブルに更新がかかっているのも確認ができた。
モデル.transaction doで複数のモデルの更新管理ができることはわかったけど、Rails自身がバージョンアップしたら動かなくなる可能性もあるので注意かも?
必要な仕様としては、インサートする配列があって、どこかでインサートがこけたらrollbackして成功していたインサートもなかったことにする。
自分これ系の仕様嫌いなんだけど。。。
しょうがないからやってみた。
まず、バルクインサートさせるために「activerecord-import」を使う。
Gemfileに下記を記述して
gem 'activerecord-import'
bundle update
で、mysqlでテーブル3つ用意。
foodsテーブル
order integer not null
name string
jobsテーブル
order integer not null
name string
likeテーブル
order integer not null
name string
どれも構成はおんなじ。
ネーミングセンスはテストなので気にしないでちょ(汗)
データはあらかじめ入れておくよ。
簡潔にテストしたいのでスタティックなコントローラに下記を記述。
orderはnot nullなのでorderのところに「nil」を入れておいて、わざとエラーにさせる。
コントローラに書くコードは下記のコード。
p '------------------------'
ng=[
{ :order => 10, :name => 'ああああ'},
{ :order => 11, :name => 'えええ'},
{ :order => nil, :name => 'いいい'},
{ :order => 13, :name => 'ううう'},
{ :order => 14, :name => 'おおお'},
]
ok=[
{ :order => 10, :name => 'ああああ'},
{ :order => 11, :name => 'えええ'},
{ :order => 12, :name => 'いいい'},
{ :order => 13, :name => 'ううう'},
{ :order => 14, :name => 'おおお'},
]
j = []
ng.each do |i|
j << Job.new(i)
end
f = []
ok.each do |i|
f << Food.new(i)
end
begin
Job.transaction do
Food.import f
Job.import j
a = Like.where(Like.arel_table[:order].lteq(10))
a.update_all({:name => 'きゃー'})
end
rescue ex
p '----------- error -------'
p ex.messages
end
どっかの記事でRails(4)は複数のトランザクションをサポートしない。。。
みたいな記事を見たんだけど、構わず無作為にピックアップしたモデルを使ってトランザクションしてみる。
実行してみた結果、クエリがこけたときは見事rollbackされることが確認できた。
どのテーブルも更新されませんでした。
念のため、Food, Job, Likeでそれぞれこけさせてみたが、結果は同じ更新されてませんでした。
もちろん、成功時は三つのテーブルに更新がかかっているのも確認ができた。
モデル.transaction doで複数のモデルの更新管理ができることはわかったけど、Rails自身がバージョンアップしたら動かなくなる可能性もあるので注意かも?
2014年8月23日土曜日
Ruby on Railsチュートリアルを終えた後の感想
今回は、以前、「Ruby on Railsプラクティス」というタイトルで記事を書いていた
内容の続きです。
「Ruby on Rails チュートリアル:実例を使って Rails を学ぼう」のチュートリアルをやっと完了させました(汗)
今年の3月からダラダラ続けて5か月。。。
やらなかった期間の方が長かったかもしれないが、
ようやく終わりました。
このRailsのチュートリアルを終わらせると
ユーザー登録付きの簡単な掲示板サンプルとと
結構、複雑な機能があるtwitterのようなサンプルができます。
twitterサンプルは、現役プログラマーである自分も手こずる程の内容でした。
(完璧に勉強不足ですね(汗))
しかし、このサンプルは実際に仕事で必要とされるセキュリティ面の機能とか、
テストの実装も実装していて、なかなかのクオリティーになっています。
正直なところ、このチュートリアルは、プログラム初心者には、
ハードルが高いんじゃないかなと感じました。
しかし、逆の意味でこのチュートリアルの内容をすべて理解して、
このtwitterのようなサンプルの機能改良なり拡張ができれば、
もうRails初心者じゃないし、「Ruby on Railsできます」と言って問題ないレベルだと思う。
「Ruby on Rails チュートリアル:実例を使って Rails を学ぼう」をやったみた感想でした^^
内容の続きです。
「Ruby on Rails チュートリアル:実例を使って Rails を学ぼう」のチュートリアルをやっと完了させました(汗)
今年の3月からダラダラ続けて5か月。。。
やらなかった期間の方が長かったかもしれないが、
ようやく終わりました。
このRailsのチュートリアルを終わらせると
ユーザー登録付きの簡単な掲示板サンプルとと
結構、複雑な機能があるtwitterのようなサンプルができます。
twitterサンプルは、現役プログラマーである自分も手こずる程の内容でした。
(完璧に勉強不足ですね(汗))
しかし、このサンプルは実際に仕事で必要とされるセキュリティ面の機能とか、
テストの実装も実装していて、なかなかのクオリティーになっています。
正直なところ、このチュートリアルは、プログラム初心者には、
ハードルが高いんじゃないかなと感じました。
しかし、逆の意味でこのチュートリアルの内容をすべて理解して、
このtwitterのようなサンプルの機能改良なり拡張ができれば、
もうRails初心者じゃないし、「Ruby on Railsできます」と言って問題ないレベルだと思う。
「Ruby on Rails チュートリアル:実例を使って Rails を学ぼう」をやったみた感想でした^^
2014年7月27日日曜日
Ruby on Railsプラクティス 頓挫中(笑)
今回は、以前の「Railsを再び勉強するぞ!」の中間報告です。
と言ってもそんなのまったく興味ないと言われそうですね(笑)
そもそもこのブログに人が来ることも稀ですが。。。
このブログに来る人は、森に迷って小屋にたどり着いた旅人のようなモノです(笑)
Ruby on Railsはウェブで動かすプログラムです。
「ゲーっ!プログラムなんて縁もないし興味ない」と言う方。。。
サヨウナラ。。。
以前、Ruby on Railsを再び勉強し始めたころは、勢いもあって
「Ruby on Railsプラクティス vagrantでlocalhost:3000にアクセスできない問題」
「Ruby on Railsプラクティス rvmとかRailsのインストール」
なんぞと言うRails導入時にハマったことについて記事を書かけたんですが、
「Ruby on Rails チュートリアル:実例を使って Rails を学ぼう」
でサンプルアプリを作り始めると、結構大変なことが判明。
内容をキャッチアップするので精いっぱいでとてもじゃないが記事なんぞ書けん(汗)
チュートリアルの内容は、小規模サンプルと中規模程度のサンプルアプリの作り方。
そしてTDD(test driven development)テスト駆動開発。
もちろんRubyについての簡単なレクチャーもあります。
現在、チュートリアルも残すところ、あと2章まで来たんですが、これまでの感想は結構、厳しかった。
自分は、仕事でウェブプログラミングをしているのですがそれでもキビシイ(汗)
TDDの部分は覚えるべきところなんですが、TDDの部分が自分の学習速度を遅らせています。
と言うのは、自分はプログラミングするときtry & errorに慣れ過ぎてしまっているからでしょう。
とりあえず、Railsチュートリアルはあと2章。
TDDも含めてやり通します!
Railsチュートリアルをやり終えたら、今度はTDDには触れずにサンプルアプリをtry & errorで作り直します。
ここまで出来たら、RubyもRailsもモノにした感じですかね!
とりあえず、Ruby on Railsプラクティス 頓挫報告でした(笑)
と言ってもそんなのまったく興味ないと言われそうですね(笑)
そもそもこのブログに人が来ることも稀ですが。。。
このブログに来る人は、森に迷って小屋にたどり着いた旅人のようなモノです(笑)
Ruby on Railsはウェブで動かすプログラムです。
「ゲーっ!プログラムなんて縁もないし興味ない」と言う方。。。
サヨウナラ。。。
以前、Ruby on Railsを再び勉強し始めたころは、勢いもあって
「Ruby on Railsプラクティス vagrantでlocalhost:3000にアクセスできない問題」
「Ruby on Railsプラクティス rvmとかRailsのインストール」
なんぞと言うRails導入時にハマったことについて記事を書かけたんですが、
「Ruby on Rails チュートリアル:実例を使って Rails を学ぼう」
でサンプルアプリを作り始めると、結構大変なことが判明。
内容をキャッチアップするので精いっぱいでとてもじゃないが記事なんぞ書けん(汗)
チュートリアルの内容は、小規模サンプルと中規模程度のサンプルアプリの作り方。
そしてTDD(test driven development)テスト駆動開発。
もちろんRubyについての簡単なレクチャーもあります。
現在、チュートリアルも残すところ、あと2章まで来たんですが、これまでの感想は結構、厳しかった。
自分は、仕事でウェブプログラミングをしているのですがそれでもキビシイ(汗)
TDDの部分は覚えるべきところなんですが、TDDの部分が自分の学習速度を遅らせています。
と言うのは、自分はプログラミングするときtry & errorに慣れ過ぎてしまっているからでしょう。
とりあえず、Railsチュートリアルはあと2章。
TDDも含めてやり通します!
Railsチュートリアルをやり終えたら、今度はTDDには触れずにサンプルアプリをtry & errorで作り直します。
ここまで出来たら、RubyもRailsもモノにした感じですかね!
とりあえず、Ruby on Railsプラクティス 頓挫報告でした(笑)
2014年3月8日土曜日
windowsとvagrant間のファイル共有はsambaを使う
vagrantには、もともとファイル共有する場所「/vagrant」というディレクトリが用意されているけど、リンク這ったりするとプロトコルエラーになって使いづらいし、ファイルが1000以上になるとパフォーマンスが落ちるらしい
vagrant docs(英語)そんなようなことが書いてあるので、もし、よろしければ読んでみてはいかがか?
http://docs-v1.vagrantup.com/v1/docs/nfs.html
自分の作業環境はwindows + vagrantなのでファイルサーバーはsambaを使うことにしました
とりあえず、ルート権限でyum経由でsambaをインストールです
yum install samba
ここからは「Futurismo」というサイトを参考にさせていただきました
sambaユーザーの登録
pdbeditコマンドはsambaをインストールすると入るみたい
pdbedit -a linuxのローカルユーザー名
※ローカルユーザーは「/home」以下のユーザー
smb.confの設定
オリジナルを取っておく
cp -p /etc/samba/smb.conf /etc/samba/smb.conf_org
smb.confの中身を空に
cp /dev/null /etc/samba/smb.conf
smb.confの変更(Futurismoさんのsmb.confまんまですが。。。 ipはvagrant用に変更してあります)
vi /etc/samba/smb.conf
#======================= Global Settings ==================
[global]
# 文字コード設定 CentOS
unix charset = UTF-8
# 文字コード設定 Win
dos charset = CP932
display charset = UTF-8
# ----------------------- Network Related Options ----------
# Widnows グループの設定 コンピュータのプロパティから調べる
workgroup = WORKGROUP
# Allow within local network
# Vagrantfile に設定してあるIP(192.168.33.10)
hosts allow = 192.168.33. 127.
#============================ Share Definitions ==============
[homes]
comment = Home Directories
# ホームディレクトリをSAMBAで共有する
path = %H
browseable = no
writable = yes
Samba/NMBの起動
/etc/init.d/smb start
/etc/init.d/nmb start
vagrant起動時にsambaを起動する設定
chkconfig smb on
chkconfig nmb on
windowsからアクセスするためにiptableを変更
「# samba」のところを追加
vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# browser port 3000
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT
# samba
-A INPUT -p tcp --dport 139 -j ACCEPT
-A INPUT -p udp --dport 137 -j ACCEPT
-A INPUT -p udp --dport 138 -j ACCEPT
-A INPUT -p tcp --dport 445 -j ACCEPT
# samba end
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptabeを再起動
/etc/init.d/iptables restart
※SELinuxを有効にしている場合は「setsebool -P samba_enable_home_dirs on」を実行、今回は、SELinuxが無効になっているので必要なし
windowsからのアクセス方法
windows上でフォルダを開き、アドレスバーに「\192.16.33.10\ローカルユーザー」でアクセス可能
これでvagrant上のファイルをwindows上の慣れているテキストエディタでガンガン編集できるようになるんだけど一つだけ問題点があって、windowsで.bashrcとか編集するとパーミッションが変わってしまうので、注意が必要ですw
vagrant docs(英語)そんなようなことが書いてあるので、もし、よろしければ読んでみてはいかがか?
http://docs-v1.vagrantup.com/v1/docs/nfs.html
自分の作業環境はwindows + vagrantなのでファイルサーバーはsambaを使うことにしました
とりあえず、ルート権限でyum経由でsambaをインストールです
yum install samba
ここからは「Futurismo」というサイトを参考にさせていただきました
sambaユーザーの登録
pdbeditコマンドはsambaをインストールすると入るみたい
pdbedit -a linuxのローカルユーザー名
※ローカルユーザーは「/home」以下のユーザー
smb.confの設定
オリジナルを取っておく
cp -p /etc/samba/smb.conf /etc/samba/smb.conf_org
smb.confの中身を空に
cp /dev/null /etc/samba/smb.conf
smb.confの変更(Futurismoさんのsmb.confまんまですが。。。 ipはvagrant用に変更してあります)
vi /etc/samba/smb.conf
#======================= Global Settings ==================
[global]
# 文字コード設定 CentOS
unix charset = UTF-8
# 文字コード設定 Win
dos charset = CP932
display charset = UTF-8
# ----------------------- Network Related Options ----------
# Widnows グループの設定 コンピュータのプロパティから調べる
workgroup = WORKGROUP
# Allow within local network
# Vagrantfile に設定してあるIP(192.168.33.10)
hosts allow = 192.168.33. 127.
#============================ Share Definitions ==============
[homes]
comment = Home Directories
# ホームディレクトリをSAMBAで共有する
path = %H
browseable = no
writable = yes
Samba/NMBの起動
/etc/init.d/smb start
/etc/init.d/nmb start
vagrant起動時にsambaを起動する設定
chkconfig smb on
chkconfig nmb on
windowsからアクセスするためにiptableを変更
「# samba」のところを追加
vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# browser port 3000
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT
# samba
-A INPUT -p tcp --dport 139 -j ACCEPT
-A INPUT -p udp --dport 137 -j ACCEPT
-A INPUT -p udp --dport 138 -j ACCEPT
-A INPUT -p tcp --dport 445 -j ACCEPT
# samba end
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptabeを再起動
/etc/init.d/iptables restart
※SELinuxを有効にしている場合は「setsebool -P samba_enable_home_dirs on」を実行、今回は、SELinuxが無効になっているので必要なし
windowsからのアクセス方法
windows上でフォルダを開き、アドレスバーに「\192.16.33.10\ローカルユーザー」でアクセス可能
これでvagrant上のファイルをwindows上の慣れているテキストエディタでガンガン編集できるようになるんだけど一つだけ問題点があって、windowsで.bashrcとか編集するとパーミッションが変わってしまうので、注意が必要ですw
2014年3月4日火曜日
Ruby on Railsプラクティス vagrantでlocalhost:3000にアクセスできない問題
現在、vagrantを使ってrailsの勉強を再び始めたんですが、いきなり問題が発生しました(汗)
rvm、ruby、railsのインストールが終了して、railsでプロジェクトを作成
初期画面を確認しようとブラウザでlocalhost:3000にアクセスしたら。。。
あれま!
「localhost:3000 のサーバへの接続を確立できませんでした。」になっちゃいましたw
Vagrantfileのネットワーク部分とサーバー側のiptableを修正したらlocalhost:3000でアクセスできるようになったので、手順をザクッと書きました
Vagrantfileのネットワーク部分を修正
hostonlyの設定はしなくてダイジョブ、むしろ設定しようとすると怒られた(笑)
config.vm.network :forwarded_port, guest:3000, host:3000
vagrant upでの起動ログ
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 3000 => 3000 (adapter 1) ★ 設定が反映されている
windowsのダイアログが表示されるので許可ボタンを押してport3000のアクセスを許可しておく
起動したサーバー側のipテーブルを変更
vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT ★ 追加
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptableの再起動をお忘れなくw
/etc/init.d/iptables restart
localhost:3000でアクセスできました^^
apacheやnginxとかウェブサーバーの時にもこの手順必要になるのかな?
rvm、ruby、railsのインストールが終了して、railsでプロジェクトを作成
初期画面を確認しようとブラウザでlocalhost:3000にアクセスしたら。。。
あれま!
「localhost:3000 のサーバへの接続を確立できませんでした。」になっちゃいましたw
Vagrantfileのネットワーク部分とサーバー側のiptableを修正したらlocalhost:3000でアクセスできるようになったので、手順をザクッと書きました
Vagrantfileのネットワーク部分を修正
hostonlyの設定はしなくてダイジョブ、むしろ設定しようとすると怒られた(笑)
config.vm.network :forwarded_port, guest:3000, host:3000
vagrant upでの起動ログ
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 3000 => 3000 (adapter 1) ★ 設定が反映されている
windowsのダイアログが表示されるので許可ボタンを押してport3000のアクセスを許可しておく
起動したサーバー側のipテーブルを変更
vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT ★ 追加
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptableの再起動をお忘れなくw
/etc/init.d/iptables restart
localhost:3000でアクセスできました^^
apacheやnginxとかウェブサーバーの時にもこの手順必要になるのかな?
2014年3月3日月曜日
Ruby on Railsプラクティス rvmとかRailsのインストール
「挫折したRuby on Railsの勉強をやり直そうと決めた」の記事から第一回目のRuby on Railsのお勉強
Ruby on Railsの勉強関連は「Ruby on Railsプラクティス」とタイトルに入れようと決めました^^
何となくそれっぽい感じがします(笑)
今回は、rvm、RubyとRailsのインストールです
まずは、環境を作らなければなりません
昔は、linuxのルート権限で開発に関係するライブラリ(Rubyの場合はgem)をばかばかインストールしていましたが、RubyとRailsはバージョンアップが激しいので、ローカルユーザーでrvmというものを使って管理しようと思います
rvmはruby version managerと言ってRubyとgemのバージョンを簡単切り替えることができます
書き忘れていましたが、自分の開発環境はwindow8.1上にvagrantでCentOS 6.4を起動して作業してます
文章にするのが難しいのでメモ的に書いていきます
yumのリポジトリとパッケージを追加
※ルートユーザーで実行
■yumリポジトリepelの追加
wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
■Rubyインストールに必要なlinuxパッケージをインストール
yum install gcc-c++ patch readline readline-devel
yum install zlib zlib-devel libffi-devel
yum install openssl-devel make bzip2 autoconf automake libtool bison
yum install gdbm-devel tcl-devel tk-devel
yum install libxslt-devel libxml2-devel
yum install --enablerepo=epel libyaml-devel
rvmをインストール
■rvmダウンロード
curl -L https://get.rvm.io | bash -s stable
rvmのパスを読み込ませるために一度サーバーからログアウト
■rvmのインストール確認
rvm -v
rvm 1.25.19 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
インストール成功!!!
rubyのインストール
rvm install 1.9.3
※現在、Rubyの最新バージョンは2.1.1なんだけどチュートリアルではRails3を使用しているのでRubyは1.9.3をインストール
ワーニングが出るけど無視
チュートリアル用にgemsetを作っておく
rvm use 1.9.3@rails3tutorial2ndEd --create --default
作成したgemの確認
rvm gemset list
gemsets for ruby-1.9.3-p545 (found in /home/pr_rails/.rvm/gems/ruby-1.9.3-p545)
(default)
global
=> rails3tutorial2ndEd
作られている
ドキュメントのインストールをスキップする
vi .gemrc
install: --no-rdoc --no-ri
update: --no-rdoc --no-ri
Railsのインストール
gem install rails -v 3.2.14
インストール確認
rails -v
新規プロジェクトの作成
rails new project名
rails s でrailsを起動するとエラーになるので
Gemfileの下記の部分をコメントアウト
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', :platforms => :ruby
bundleコマンドを実行
bundle install
再びrailsコマンドでrailsを起動
rails s
rvmコマンドメモ(おまけ)
使用中のrubyを調べる
rvm list
rvm rubies
=> ruby-1.9.3-p545 [ i686 ]
* ruby-2.1.1 [ i686 ]
# => - current
# =* - current && default
# * - default
切り替えるにはバージョンを指定
rvm ruby-2.1.1
rvmでのrubyの削除
rvm remove ruby-2.1.1
今日はここまで。。。
Ruby on Railsの勉強関連は「Ruby on Railsプラクティス」とタイトルに入れようと決めました^^
何となくそれっぽい感じがします(笑)
今回は、rvm、RubyとRailsのインストールです
まずは、環境を作らなければなりません
昔は、linuxのルート権限で開発に関係するライブラリ(Rubyの場合はgem)をばかばかインストールしていましたが、RubyとRailsはバージョンアップが激しいので、ローカルユーザーでrvmというものを使って管理しようと思います
rvmはruby version managerと言ってRubyとgemのバージョンを簡単切り替えることができます
書き忘れていましたが、自分の開発環境はwindow8.1上にvagrantでCentOS 6.4を起動して作業してます
文章にするのが難しいのでメモ的に書いていきます
yumのリポジトリとパッケージを追加
※ルートユーザーで実行
■yumリポジトリepelの追加
wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
■Rubyインストールに必要なlinuxパッケージをインストール
yum install gcc-c++ patch readline readline-devel
yum install zlib zlib-devel libffi-devel
yum install openssl-devel make bzip2 autoconf automake libtool bison
yum install gdbm-devel tcl-devel tk-devel
yum install libxslt-devel libxml2-devel
yum install --enablerepo=epel libyaml-devel
rvmをインストール
■rvmダウンロード
curl -L https://get.rvm.io | bash -s stable
rvmのパスを読み込ませるために一度サーバーからログアウト
■rvmのインストール確認
rvm -v
rvm 1.25.19 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
インストール成功!!!
rubyのインストール
rvm install 1.9.3
※現在、Rubyの最新バージョンは2.1.1なんだけどチュートリアルではRails3を使用しているのでRubyは1.9.3をインストール
ワーニングが出るけど無視
チュートリアル用にgemsetを作っておく
rvm use 1.9.3@rails3tutorial2ndEd --create --default
作成したgemの確認
rvm gemset list
gemsets for ruby-1.9.3-p545 (found in /home/pr_rails/.rvm/gems/ruby-1.9.3-p545)
(default)
global
=> rails3tutorial2ndEd
作られている
ドキュメントのインストールをスキップする
vi .gemrc
install: --no-rdoc --no-ri
update: --no-rdoc --no-ri
Railsのインストール
gem install rails -v 3.2.14
インストール確認
rails -v
新規プロジェクトの作成
rails new project名
rails s でrailsを起動するとエラーになるので
Gemfileの下記の部分をコメントアウト
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', :platforms => :ruby
bundleコマンドを実行
bundle install
再びrailsコマンドでrailsを起動
rails s
rvmコマンドメモ(おまけ)
使用中のrubyを調べる
rvm list
rvm rubies
=> ruby-1.9.3-p545 [ i686 ]
* ruby-2.1.1 [ i686 ]
# => - current
# =* - current && default
# * - default
切り替えるにはバージョンを指定
rvm ruby-2.1.1
rvmでのrubyの削除
rvm remove ruby-2.1.1
今日はここまで。。。
2014年3月1日土曜日
挫折したRuby on Railsの勉強をやり直そうと決めた
自分は、ウェブプログラマーとして仕事をしているんだけど、プログラミングの情報とかウトい方で、普段、あまり勉強しません(汗)
PHPを始めにPerl、JavaとCぐらいしかわかりません
正直、JavaとCは、ほとんど忘れましたけど。。。
フレームワークはCake、Symfony、Catalystを少々やったことがあるくらいです
動的サイト作りを簡単にできないものかと、以前、Railsに手を出したんだけど挫折しました
プログラム言語のRuby自体はそんなに難しくない印象でしたがRailsのテンプレート関連でダメだこりゃ。。。と感じ、Railsの勉強を止めてしまいました
が、最近、自分のプログラミング熱が上がってきたので、いまだに人気のあるRuby on Railsを懲りもせず、再チャレンジしようと決めました
何か刺激がほしくなったのです(熱)
Pythonとかアンドロイドアプリとかもやりたいんですが、ここはとりあえずRuby on Railsです
Ruby on Railsは押さえておきたい気がする。。。
そこで、今回参考にするサイトは「Ruby on Rails チュートリアル実例を使ってRailsを学ぼう」です!!
このサイトは、Ruby on Railsのチュートリアルでボリュームも結構あるみたいです(汗)
少なくとも、1日でこなせるボリュームではないですね
vagrantを使ってちょこちょこチュートリアルをこなしていこうと思います
以前、書いたvagrantについての記事です
「俺も私もRuby on Rails勉強したい」という方は、是非、読んでやってください
vagrantを使うとレンタルサーバーを借りなくてもwindows上にlinuxサーバーが作れてlinuxも覚えられるのでイイですよ^^
「レンタルサーバーを借りる前にvagrantを使ってwindowsでlinuxに慣れよう!(前置き)PC」
「レンタルサーバーを借りる前にvagrantを使ってwindowsでlinuxに慣れよう!(インストール編)PC」
「レンタルサーバーを借りる前にvagrantを使ってwindowsでlinuxに慣れよう!(接続編)PC」
PHPを始めにPerl、JavaとCぐらいしかわかりません
正直、JavaとCは、ほとんど忘れましたけど。。。
フレームワークはCake、Symfony、Catalystを少々やったことがあるくらいです
動的サイト作りを簡単にできないものかと、以前、Railsに手を出したんだけど挫折しました
プログラム言語のRuby自体はそんなに難しくない印象でしたがRailsのテンプレート関連でダメだこりゃ。。。と感じ、Railsの勉強を止めてしまいました
が、最近、自分のプログラミング熱が上がってきたので、いまだに人気のあるRuby on Railsを懲りもせず、再チャレンジしようと決めました
何か刺激がほしくなったのです(熱)
Pythonとかアンドロイドアプリとかもやりたいんですが、ここはとりあえずRuby on Railsです
Ruby on Railsは押さえておきたい気がする。。。
そこで、今回参考にするサイトは「Ruby on Rails チュートリアル実例を使ってRailsを学ぼう」です!!
このサイトは、Ruby on Railsのチュートリアルでボリュームも結構あるみたいです(汗)
少なくとも、1日でこなせるボリュームではないですね
vagrantを使ってちょこちょこチュートリアルをこなしていこうと思います
以前、書いたvagrantについての記事です
「俺も私もRuby on Rails勉強したい」という方は、是非、読んでやってください
vagrantを使うとレンタルサーバーを借りなくてもwindows上にlinuxサーバーが作れてlinuxも覚えられるのでイイですよ^^
「レンタルサーバーを借りる前にvagrantを使ってwindowsでlinuxに慣れよう!(前置き)PC」
「レンタルサーバーを借りる前にvagrantを使ってwindowsでlinuxに慣れよう!(インストール編)PC」
「レンタルサーバーを借りる前にvagrantを使ってwindowsでlinuxに慣れよう!(接続編)PC」
2013年12月25日水曜日
今まで知らなかったvimの便利な使い方
仕事上、linuxサーバー上で直にvimでファイルを編集することも結構あるんだけど、そういうときでも、何とか秀丸エディターでやってきたんだけど、さすがに、そろそろ面倒になってきましたw
特に、複数ファイルを扱うときに自分は、1ファイルづつターミナルのタブで開いて作業していたんだけど。。。
もうやめようと思う
今回vimの操作で出来るようになりたい項目はこちら
以上の操作をvimでこなせるようになりたい!
ちょっと調べればわかることばかりですけど^^;
一括インデントを入れる
vimで開いたソースコードのインデントを直すとき、自分はそこのブロックを秀丸にコピーしてインデントを直して、vimに貼りなおしていたんだけど、コピペミスが起こる恐れがあるのでvimで一括インデント操作できた方がいい
インデントのスペース数を決める(インデントスペース2の時)
:set shiftwidth=2
ctrl + vで縦にインデントを入れる場所を選択
shift + > でインデント
shift + < インデント削除
2スペース動く
文字列置換(ファイル全体)
awkとかsedで事足りるんだけどvimを一度、閉じないといけないのでvimの置換方法も覚えておこうと思う
:%s/変更/変更した/g
※後方参照は:%s/\(.*\)\.jpg/\1\.jpg/g
複数ファイル分割表示
冒頭でも書いたんだけど、作業ファイルの数だけターミナルのタブを開くので本当にめんどくさいし、ネットワークが悪い環境だとタブを開きすぎると、ターミナルが落ちることもあるので、スッキリさせたいw
:sp ファイル名・・・上下分割
:vp ファイル名・・・左右分割(できなかった)
ファイル間の移動 ctrl + w
vimでファイルを開いたままファイルを実行
vimでファイルを編集していて、ちょっと実行結果が見たい時に覚えておくと便利
:! php hoge.php
以上、これらのちょっとしたことで、vim操作の効率が上がると思うので、これからは積極的に使ってみることにしましたw
特に、複数ファイルを扱うときに自分は、1ファイルづつターミナルのタブで開いて作業していたんだけど。。。
もうやめようと思う
今回vimの操作で出来るようになりたい項目はこちら
- 一括インデントを入れる
- 文字列置換
- 複数ファイル分割表示vimでファイルを開きつつ、ファイルの実行
以上の操作をvimでこなせるようになりたい!
ちょっと調べればわかることばかりですけど^^;
一括インデントを入れる
vimで開いたソースコードのインデントを直すとき、自分はそこのブロックを秀丸にコピーしてインデントを直して、vimに貼りなおしていたんだけど、コピペミスが起こる恐れがあるのでvimで一括インデント操作できた方がいい
インデントのスペース数を決める(インデントスペース2の時)
:set shiftwidth=2
ctrl + vで縦にインデントを入れる場所を選択
shift + > でインデント
shift + < インデント削除
2スペース動く
文字列置換(ファイル全体)
awkとかsedで事足りるんだけどvimを一度、閉じないといけないのでvimの置換方法も覚えておこうと思う
:%s/変更/変更した/g
※後方参照は:%s/\(.*\)\.jpg/\1\.jpg/g
複数ファイル分割表示
冒頭でも書いたんだけど、作業ファイルの数だけターミナルのタブを開くので本当にめんどくさいし、ネットワークが悪い環境だとタブを開きすぎると、ターミナルが落ちることもあるので、スッキリさせたいw
:sp ファイル名・・・上下分割
:vp ファイル名・・・左右分割(できなかった)
ファイル間の移動 ctrl + w
vimでファイルを開いたままファイルを実行
vimでファイルを編集していて、ちょっと実行結果が見たい時に覚えておくと便利
:! php hoge.php
以上、これらのちょっとしたことで、vim操作の効率が上がると思うので、これからは積極的に使ってみることにしましたw
2013年9月17日火曜日
プログラミング初心者はjavascriptから始めた方が良い3つの理由
何度かこのブログでお話ししているのですが、自分、とあるIT企業でプログラマーなんぞしているのですが、うちの会社は毎年インターンの学生が各部署に配属されるんですよ。
そして休憩中にあるインターン(部署違う)の人がプログラミングに興味があるんだけど、どの言語から始めればいいのかわからないと質問されました。
ということで今回は、プログラミング初心者に勧める言語について書こうと思います^^。
プログラミング初心者におすすめする言語はタイトルで書いたようにjavascriptが良いと思います!
特にウェブ系は。。。
なぜかというと、、、
理由その1
作業環境を準備する必要がない
javascriptはプログラムを実行させる環境を必要としないのでテキストエディタとウェブブラウザがあればとりあえずjavascriptは実行できます。
C言語とかJAVAだとコンパイラーというものをwindow上にインストールしてパスを通しておかなければならない。
C言語とかJAVAの学習サイトがウェブ上にたくさんありますが、説明している人のパソコンの環境と学習者の環境が異なったりして、そこで挫折してしまう人もいます。
PHP, Ruby, Perlなどもwindows上で実行できますが、これらもパスを通す必要があります。
まぁ、出鼻をくじかれるリスクが低いと言いますかw
理由その2
結果が見た目で分かるので感動がある。
javascriptは描画をHTMLとCSSで表現するので実装が簡単でサンプルも画面で動いたり、消消えたりして面白いと感じる(もちろん、地味なやつもたくさんありますが^^)。
今どきの学生さんは、HTMLぐらいは学校で習っていると思うので、その辺も学習コストを削減できると思います。
C言語とかJAVAはコマンドラインを使用して学習することが多く、値や文字列を出力するものが多いので、あまり面白いとは感じないと思います。
理由その3
Titanium Mobileを使うとスマホアプリも作れる(1つのコードでiphone android対応)。
しかし、重いらしいので今後に期待。
覚えたい言語が特になく、とりあえず、プログラミングをやってみたいというのであれば、javascriptでカレンダーとかシューティングゲームを作って見るといいと思います。
解説付きサンプルコードもネット上にたくさんありますよ^^
それらのコードの中には、プログラミングのもっとも基本になる
変数
配列
連想配列
多次元配列
文字列の扱い
制御文
演算式
ループ
時間処理
という処理が当たり前のように記述されているはずです。
これらは、どの言語でも変わりません(書き方は、変わることもありますが)。
どの言語の参考書を見ても第一章は、この辺の説明からはいります。
スンマセン、その前に環境構築が大体ありますねw
なので、たぶん第二章くらいからかな~♫
javascriptでもゲームは作れるし、node.jsというものを使えばある程度のphpやrubyのようなサーバーサイドのプログラムも書けるし、今、流行のスマホアプリも作れる。
ウェブ系プログラミングでは、早かれ遅かれ、覚える必要がありますw
とにかくプログラミングを始めてみたいという方は、今日、javascriptの『alert('Hello World');』のプログラムを書いてみてはいかが?
そして休憩中にあるインターン(部署違う)の人がプログラミングに興味があるんだけど、どの言語から始めればいいのかわからないと質問されました。
ということで今回は、プログラミング初心者に勧める言語について書こうと思います^^。
プログラミング初心者におすすめする言語はタイトルで書いたようにjavascriptが良いと思います!
特にウェブ系は。。。
なぜかというと、、、
理由その1
作業環境を準備する必要がない
javascriptはプログラムを実行させる環境を必要としないのでテキストエディタとウェブブラウザがあればとりあえずjavascriptは実行できます。
C言語とかJAVAだとコンパイラーというものをwindow上にインストールしてパスを通しておかなければならない。
C言語とかJAVAの学習サイトがウェブ上にたくさんありますが、説明している人のパソコンの環境と学習者の環境が異なったりして、そこで挫折してしまう人もいます。
PHP, Ruby, Perlなどもwindows上で実行できますが、これらもパスを通す必要があります。
まぁ、出鼻をくじかれるリスクが低いと言いますかw
理由その2
結果が見た目で分かるので感動がある。
javascriptは描画をHTMLとCSSで表現するので実装が簡単でサンプルも画面で動いたり、消消えたりして面白いと感じる(もちろん、地味なやつもたくさんありますが^^)。
今どきの学生さんは、HTMLぐらいは学校で習っていると思うので、その辺も学習コストを削減できると思います。
C言語とかJAVAはコマンドラインを使用して学習することが多く、値や文字列を出力するものが多いので、あまり面白いとは感じないと思います。
理由その3
Titanium Mobileを使うとスマホアプリも作れる(1つのコードでiphone android対応)。
しかし、重いらしいので今後に期待。
覚えたい言語が特になく、とりあえず、プログラミングをやってみたいというのであれば、javascriptでカレンダーとかシューティングゲームを作って見るといいと思います。
解説付きサンプルコードもネット上にたくさんありますよ^^
それらのコードの中には、プログラミングのもっとも基本になる
変数
配列
連想配列
多次元配列
文字列の扱い
制御文
演算式
ループ
時間処理
という処理が当たり前のように記述されているはずです。
これらは、どの言語でも変わりません(書き方は、変わることもありますが)。
どの言語の参考書を見ても第一章は、この辺の説明からはいります。
スンマセン、その前に環境構築が大体ありますねw
なので、たぶん第二章くらいからかな~♫
javascriptでもゲームは作れるし、node.jsというものを使えばある程度のphpやrubyのようなサーバーサイドのプログラムも書けるし、今、流行のスマホアプリも作れる。
ウェブ系プログラミングでは、早かれ遅かれ、覚える必要がありますw
とにかくプログラミングを始めてみたいという方は、今日、javascriptの『alert('Hello World');』のプログラムを書いてみてはいかが?
2013年7月6日土曜日
nginxでメンテナンス画面を表示する
どうも、タローポチです
自分、ウェブプログラマーしているんですが、今度、サイトをメンテナンスするためサーバーを止めないといけないのですが、そのためのメンテナンス画面に切り替えるメモを書きます
使用しているウェブサーバーはnginxです
仕様は静的html(メンテナンス画面)maintenance.htmlをnow_maintenance.htmlにコピーすると画面がメンテナンスに自動的に切り替わる
特定のIPアドレスからは通常のサービス画面が表示される
now_maintenance.htmlを削除すると通常のサービス画面が表示される
上記が仕様です
メインのnginx.confファイルは書き換えない
nginx.conf内にインクルードされているファイルを書き換える
/etc/nginx/conf.d/app.inc nginx.confにインクルードされているアプリコンフ
/etc/nginx/conf.d/maintenance.inc を作成
# /etc/nginx/conf.d/app.inc
# 常時maintenance.inc読み込み
include maintenance.inc
# URLに maintenanceが含まれていたらトップではなくmaintenanceディレクトリ内を表示
location ~ ^ /maintenance/(*).html$ {
alias /home/pochi/app/maintenance/$1.html
}
# /etc/nginx/conf.d/maintenance.inc
# メンテナンス画面通常非表示
set $maintenance "false";
# maintenanceディレクトリ内にnow_maintenance.htmlがあるときはメンテナンス画面を表示
if (-f /home/pochi/app/maintenance/now_maintenance.html) {
set $maintenance true;
}
# 画像、CSSは表示
if ($request_uri ~ .*\.(jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO)){
set $maintenance "false";
}
# 自分自身はサービスアクセス可能
if ($remote_addr ~ ^192\.168\.0\.1 ) {set $maintenance "false";}
# メンテナンス画面へリダイレクト
if ($maintenance = true) {
rewrite ^ /maintenance/now_maintenance.html;
}
こんな感じですw
自分、ウェブプログラマーしているんですが、今度、サイトをメンテナンスするためサーバーを止めないといけないのですが、そのためのメンテナンス画面に切り替えるメモを書きます
使用しているウェブサーバーはnginxです
仕様は静的html(メンテナンス画面)maintenance.htmlをnow_maintenance.htmlにコピーすると画面がメンテナンスに自動的に切り替わる
特定のIPアドレスからは通常のサービス画面が表示される
now_maintenance.htmlを削除すると通常のサービス画面が表示される
上記が仕様です
メインのnginx.confファイルは書き換えない
nginx.conf内にインクルードされているファイルを書き換える
/etc/nginx/conf.d/app.inc nginx.confにインクルードされているアプリコンフ
/etc/nginx/conf.d/maintenance.inc を作成
# /etc/nginx/conf.d/app.inc
# 常時maintenance.inc読み込み
include maintenance.inc
# URLに maintenanceが含まれていたらトップではなくmaintenanceディレクトリ内を表示
location ~ ^ /maintenance/(*).html$ {
alias /home/pochi/app/maintenance/$1.html
}
# /etc/nginx/conf.d/maintenance.inc
# メンテナンス画面通常非表示
set $maintenance "false";
# maintenanceディレクトリ内にnow_maintenance.htmlがあるときはメンテナンス画面を表示
if (-f /home/pochi/app/maintenance/now_maintenance.html) {
set $maintenance true;
}
# 画像、CSSは表示
if ($request_uri ~ .*\.(jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO)){
set $maintenance "false";
}
# 自分自身はサービスアクセス可能
if ($remote_addr ~ ^192\.168\.0\.1 ) {set $maintenance "false";}
# メンテナンス画面へリダイレクト
if ($maintenance = true) {
rewrite ^ /maintenance/now_maintenance.html;
}
こんな感じですw
登録:
投稿 (Atom)
