Categories

  • Android開発
    android marketで目指せ億万長者(ウソ)
  • cocos2d
    pythonでも使えるゲームフレームワーク
  • Google
    ここには未来を開くためのAPIがたくさん用意されている。
  • GoogleAppEngine
    どこまでもスケールアウトするクラウドサービス。使いこなすのが大変
  • Hack
    様々な電子機器を本来の用途とは別の用途に使ってみる。
  • iPhone開発
    app storeで目指せ億万長者(ウソ)
  • python
    LightWeightLanguageで一番難しいがLispにも通じるところがある面白い言語。
  • TIPS
    覚えておくともしかしたら役に立つかもしれないチョットしたこと。
  • うまくいきません
    やってみたけど、うまくいかなかった失敗記事
  • ネット世界
  • 夢見るソフトウェア
    こんなのいいな、できたらいいな、いつかつくろう
  • 開発環境
    開発するまえに環境を整えた記録、次に同じことをするためめの忘備録
無料ブログはココログ
My Photo

開発環境

開発するまえに環境を整えた記録、次に同じことをするためめの忘備録

October 08, 2015

GMOのクラウドサービスがいっぱいあるが、今のところConoHaがおすすめ

GMOインターネットはいろんなサーバーの会社を買収しただけあって、GMOクラウド、とかGMOアプリクラウドとか共食いじゃないかと心配してしまう。

ちょっとサーバーを立ててイベントの時だけサービスを提供したいとか、動画のエンコードとかの時間のかかる作業をしたいときとか、linuxのソフトを試したいけど手元にマシンを作るのはめんどくさいといった時にはクラウドがいい。
 1時間単位の課金であれば、すごく安く使える。
AmazonとかDigitalOceanとかさくらとか、いろいろ試したけど起動するまでが長い。手軽に使いたいのに使えるまで待つのはどうかと思う。料金を節約するために、使っていないときはこまめにシャットダウンするのがクラウドの基本だが、立ち上げが長いと面倒でつけっぱなしにしがち。これだと全然安くないから。
ConoHaは今まで試した中では、サーバー作成ボタンを押してから実際に使えるまでの時間が最も短い。SSDが効いていると思われる。
紹介のリンクから登録すると無料クーポンがもらえるのだが、検索した限り見つからなかったので直接登録した。もし試したい人がいれば以下のリンクから登録すると無料クーポンがついてくる。
クーポンを使いきってさらに2000円分を使った時には私にも2000円分のクーポンがもらえるらしいけど、そこまで使わない予感。4GBで1時間4.8円だし。
ちなみに、登録時は2段階認証だが、ここは迷わず音声による認証を選んでおきたい。

March 02, 2015

AngularJS はやばい、なぜ俺のやりたいことを知っている

Javascriptは、prototype.js からのjQueryNode.jsとかあってからAngularJSですよ。

ほんと、1週間に1時間程度趣味でいじるにはあまりにも量が多くて何一つマスターできてません。
でも、AngularJSは友達になれそうな気がします。
まず、テンプレートがhtmlなので直接的です。PHPとかそもそもテンプレート言語だったのに、気が付けばSmartyとかテンプレートhtmlを読み込んで表示するようになり文法が増えて、さらにキャッシュとかの機構がデバッグを著しく難しいものにします。
 ダブル大かっこではさめば変数が表示されるのと、data in datas でforeach的にループして表示するのがあれば十分でしょ。
次に,ngResourceによるサーバーとのオブジェクト同期、基本的なところがデフォルトで作られているため、ほとんどコードを書かなくてもいいです。
 お前の欲しいのは、データーの一覧を表示して、必要なところを書き換えて、必要に応じてデータを追加して、いらなくなったデータを消す。という一連のオブジェクト操作だろう。ぐぬぬ、見透かされてるがその通りだ。
ということでドットインストールのAngularJS講座を終了して、js STUDIO のAngularJSを読み始めたところ。いやー面白いわ。
サーバーのAPIはPHPでPDOを使ってmysqlにアクセスした結果を返すだけの簡単なものだが、一番時間がかかってるのがテーブルのビュー作成、カラム名が変数名そのままでないと自動マッピングの恩恵にあずかれないので何度も書き直している。SQL文を書くのは時間がかかるけど楽しいからいい。1行たりともSQL文を書かないとか、濡れないで泳ぐ方法みたいな変なことをするから無駄なコードで膨れ上がるのにね。

February 09, 2014

Ubuntuには開発環境がいっぱいあったので試してみた

Ubuntuをインストールすると左のDockバーにUbutnuソフトウェアセンターが登録される。macでいうところの、app storeに相当するものだが品揃えが面白い。

開発環境カテゴリーに色々登録されていたので試してみた。
Geany
シンタックスハイライトがあり、コンパイラをワンボタンで起動できる。幅広くいろいろな言語をサポートしているが、特筆すべきは起動の早さ。
wikipediaに説明が詳しい. Geany - Wikipedia
Anjuta
 c,c++,Java,JavaSctipt,Pythonに対応している。プロジェクトを開始するとディレクトリを掘って、ファイルをきちんと配置してくれる。楽ではあるが、大げさな気もする。pythonの場合は、python-ropeをapt-getで追加インストールしないと動作しない。python-ropeにはクラス名の置換とか色々便利な機能があるのだが、今ひとつ生かされていない。
 あと、作成してくれたテンプレートの頭に#!/usr/bin/env pythonと書いてないので手入力で追加しないといけない。
こちらもwikipediaに説明が詳しい Anjuta - Wikipedia
Code::Blocks
c,c++のみサポート。何だか懐かしい操作感である。コードテンプレートにAVRとかPowerPCがある。うーん微妙
やはりwikipediaに説明が詳しい Code::Blocks - Wikipedia
以上の開発ツールはなんとなく機能が似ていると思ったら、Scintillaというコード編集ライブラリをベースに開発されていた。作者のNeil Hodgson氏が自ら作成したSciTEというエディタもある。SciTE - Wikipedia 基本機能だけなので、Luaで頑張って機能拡張していけば良い物になるかもしれない。
単にエディタということであれば、Sublime Textでpythonによる機能拡張を行ったほうが良いんじゃないでしょうか。Ubuntuはインストールが手作業なので大変ですが。
ほかにもIntelliJ IDEAがUbuntuソフトウェアセンターからインストールできるのですが、正直Eclipseより重いのはいかがなものかと。
いろいろ試して、結局vimに落ち着くかも。

January 04, 2014

Pebbleの開発環境は侮りがたし、というかCloudだけでよくね

正月なので落ち着いてプログラムが出来る。一年中正月だといいのにね。

今日も時計型コンピュータPebbleと戯れる。
ビットマップを出してみたくなったので、頑張る。
表示できるビットマップはもちろんモノクロ。フォーマットはpng,8階調
Pebble自体の画面の大きさは144x152。
その他ドキュメントを見ると、プログラムを含めて24Kbytesに抑えないといけない。漢字フォントを全部入れようと企んでいたのに無理っぽい。
ビットマップは、resources/imagesのディレクトリを作ってそこに入れる
Exampleのfeature_bitmapを参考にappinfo.jsonのmediaを追加する。
初期化時にgbitmap_create_with_resourceでプログラムに読み込む
表示するときはgraphics_draw_bitmap_in_rectで表示する。
で、作った結果がコレ。

Pebblescreenshot_20140104_221955

こんなオサレな時計を持ってみたいと思いませんか、うふふ
プログラムにしたら100行ぐらいだが、ビルドして実行するまでの環境を作るのに延べ3日かかった。
ところが、クラウドでの開発環境というものがあるらしい。
Pebble公式ではなく、Katharineさんが勝手に作ったものだがものすごく良く出来ている。プロジェクトを作成しsublime似のエディターでソースを編集。サーバーでコンパイルしたら手元のPebbleに転送して実行。ログも取れる。
 先ほど説明したビットマップだってアップロードすればOK!
オマケにGitHubと連動してバージョン管理も公開もできる。
素晴らしすぎる。

December 22, 2013

新しいデバイスというのは開発環境まで手がまわなないのはいつも同じなのは知っているが腕時計型デバイスPebbleをいじれると聞いて

 Pebbleという腕時計型デバイスがある。blutoothでスマホと繋がって、通知はバイブレーション、表示には白黒の電子ペーパーを使いという簡単なものだ、

シンプル故に電池の持ちがいい、軽い、安い。中身はarmのCPUが入っている。
使った人は絶賛、使っていない人はポカーンというヒット商品の匂いがプンプンする。
早速買ってオレの時計を作る。と思ったがHello Worldまで1週間かかってしまった。
情報が英語だけ、ソースはpebble掲示板頼みなのでぐぐってもわかんねえんだよ。
あと2年ぐらいしたら、普通に開発本とか売られていると思うけどね。
ハマったところを箇条書きにしておく.PebbleSDK-2.0-BETA3を使った時のものなので、3ヶ月後には使えなくなっている可能性大。
・開発環境はlinux それもubuntu12 32bit一択。macはmac portsからhome brewへの切り替わり時期でpythonの環境がちゃんと作れない。arm-tool-chainもボロボロ。windowsに至っては全くツールが提供されていない。
・python の環境はpipで入れる。自己判断で適当なバージョンを入れると動かない。
・使っているマシンに直接インストールするのはリスクが大きいため、仮想マシン上に環境を作る。上手く行った時のスナップショットを残しておかないと、いつ環境が壊れるかわからない。
・2.0に対応したPebbleアプリをダウンロードしろと説明には書いてあるが、ペアリングのソフトがダメなので最初から使えない。AndroidMarketで現在の公式アプリてペアリングした後、2.0の開発用アプリをインストールする。
・pebbleのファームウェアをダウンロードしてインストールする。カンタンと書いてあるが、サッパリわからない。正しい方法かどうかは知らないが、携帯のFireFoxでダウンロードしたpbzファイルを、ESファイルエクスプローラでダブルクリックするとなんとなくインストールできた。何をやったのかは記憶に自信がない。次回同じ方法でできるのだろうか?
・pebble buildしたソフトは、携帯のアプリの画面に表示されているipアドレスを指定してpebble install を行うと腕時計本体に転送される。スマホ側では何も操作する必要がない。この辺りがちょっと気持ち悪い。というか専用のUSBケーブルが付属してるんだから、ここからデータを送ればいいのにと思った。でも充電専用らしい。

April 18, 2013

コマンドラインでサーバー設定を行った後に他のマシンに展開するには、マニュアルを作らなくてもヒストリだけあれば十分かな

ruby on rails以降の WEBプログラムはフレームワークが必須になっていて、開発者は楽かもしれないのですが、サーバー管理者はやたらインストールに手間がかかって大変です。

yumとかapt-get は素晴らしく自動的に色々やってくれるのですが、それでも時々設定ファイルを開いて書き換える作業が一部あるため、2台目、3台目とインストールするうちに作業を忘れたり順番を間違ったりします。
 手順書書けばいいんですけどね、バージョンアップによりすぐに使えなくなるため無駄な作業になりがちです。
で、良く考えたらヒストリさえあればそんなに困らないよね。ということで作業完了後にhistoryをevernoteに記録するバッチを作りました。
 まず、evernoteで投稿用のメールアドレスを取得します。 xxxxxxx.xx@everenote.com みたいなメアドがもらえます。
 次にホームディレクトリに.bash_logout を以下の内容で作成します。
# ~/.bash_logout  
history -a /tmp/tmpfile  
egrep -v "^ls$|^ps\s|^cat\s" /tmp/tmpfile |sed 's/\s*$//'|uniq >>/tmp/tmpfile2  
mail -s 'command history' xxxxxxx.xx@everenote.com </tmp/tmpfile2  
/bin/rm /tmp/tmpfile /tmp/tmpfile2    
ログアウトした時に自動的にメールが送られます。
メールであれば何でもいいので、gmailでも何でもいいんですけど、検索しやすいところでないと後で困ります。
bash以外のシェルでは.logoutだったりするので各自アレンジしてください。

Continue reading "コマンドラインでサーバー設定を行った後に他のマシンに展開するには、マニュアルを作らなくてもヒストリだけあれば十分かな" »

April 15, 2013

うわ、いまどき文字コードがシフトJISですよ。20世紀www

 まったく、そうだね。シフトJISなんて20世紀で終了して欲しかった。
でもね、上から目線でバカにするわりには、エディターでファイルを1つずつ開いて文字コードを指定してセーブとかしているのもどうかと思うぞ。
シェルスクリプトが一括処理には便利なんだけどな。
mkdir conv;for file in *.txt; do iconv -c -f sjis $file>conv/$file; done
覚えておこう。応用がきくから

April 03, 2013

Amazon Elastic Beanstalk はホスティングとどう違うのか知りたいか

Amazonのドキュメントは詳しいし、Elastic Beanstalkでgoogle先生に聞けば、たいてい解決するので具体的な導入手順は書かない。

 同じ落とし穴に落ちないためのハマったポイントを幾つか
  • macでテストしたがmacportが結構くせもの
  • AWSDevTools にはmacとlinuxのディレクトリがあるがどちらを使ってもイイ
  • pythonとgitは指定のバージョン以下のものを使うと変なエラーで止まる
  • mac port で入れるgit-coreとgit-hubからダウンロードしてインストールするgitクライアントは両方入るがパスには気をつけよう
  • アクセスキーとシークレットキーは予めAWSサイトの証明書のページで作っておく
  • 短時間に連続してコミットすると、エラーでデプロイできない事がある。
というかエラーメッセージをちゃんと読めばいいんだけど、エラーメッセージをgoogle先生に投げても英語のページしかヒットしない。日本語の情報が少なすぎるんだな。
で、一応仮想サーバーなのでEC2同様に直接ログインして使うこともできる

April 01, 2013

無料につられてAWS EC2を使いはじめるも無料範囲を超えそうでドキドキでござる

Amazon Web Services でEC2がmicroに関しては1年間無料という太っ腹なサービスを行なっている。

 うっかり無料範囲を超えないようにドキドキしながらテストをしているのであるが、コンソールが英語なのでドバドバ警告が出てくると怖くて投げ出したくなるチキン野郎です。
 Amazonの開発者向けのドキュメントは結構充実しているので、ちゃんと読んでからためした方がいいかも。AmazonなのにEPUBじゃない。値段つけたら売れると思うけどね。


EC2では作成した仮想マシンイメージを流通させることができる。マーケットプレイスは有料でコミュニティ版は無料。MovableTypeとかDrupalとかインストール済みのものあるので、楽できるかもね。


でも、Amazonらしい使い方はElastic Beanstalk じゃないかと思う。環境一式作ってくれて死活監視と自動再起動、代替マシンへの切り替えを行なってくれる。自分でやると死ぬほど大変だからウレシイ。


実際には、EC2にBeanstalk専用のマシンが作られる。これをTerminateさせても別のマシンが立ち上がってくる
参考)

February 15, 2013

IDEがないと死ぬとか言ってる若者がすでにジジイになっていて、いまどきの開発環境はどうなの

 一昔前はEclipseさえ覚えていればなんとかった時代があって、その前はVisualStudioだけ知っていれば飯が食えた。  最近はブラウザを内蔵してHTML5とJavascriptでアプリ本体を動かすのが流行りらしい。ブラウザを部品としてアプリに組み込むのが豪快なのだが、これもあり余るリソースがなせる技なのだろう。  
今後の実行環境が、PCからスマホ、タブレットに移行していく過程においてマルチプラットホームは重要である。ゲーム機で聞いたようなな話だけどね。
 Wiredの記事「プログラマーたちへの調査からわかったスマホ市場の現在」によると、もっとも注目されている開発環境は
 1位 PhoneGap
 2位  Appcelerator
 3位  Adobe AIR
なんだそうな。AdobeAirの名前は久々に聞いた。確かにPCの環境では理解されなかったコンセプトだったが、ようやく時代が追いついたともいえる。
PhoneGapはAdobeがNitobi社から買い取ったもので、両方を推し進めるとしたら共食いじゃないか。
     Appceleratorのトップページは日本人向けじゃないな。開発者ブログは増井さんという方が日本語で記事を書かれているので、とっつきやすい。
   PhoneGap はPhoneGap Fanというサイトがあってわかりやすい。 Wiredの記事に戻ると、現在このような開発環境は500以上もあるそうだ。選択を間違えると学習に費やした時間が無駄になるので大変だね。

Continue reading "IDEがないと死ぬとか言ってる若者がすでにジジイになっていて、いまどきの開発環境はどうなの" »