Categories

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

August 18, 2016

人口減少する日本の未来

今の社会問題は人口減らしい。30年前は人口爆発と言っていた週刊誌が、日本人絶滅を煽り立てている。こういう問題を眉間にしわを寄せて語るのがインテリっぽい。

ちなみにgoogleで画像検索すると、いやというほどグラフが出てくる。こんなにグラフが出るテーマは地球温暖化ぐらいなもんだ。
ちょっと古いがTEDでこんなスピーチを見つけた。
浅いっ、浅すぎる。まじめで頭がよさそうな人だけに残念でならない。
1.日本人が足りないから多国籍な社員構成になる。
2.全世界をターゲットにしてビジネスを展開する。
3.本社が日本にあるので、税金を日本に収めることで日本は成長する。
Why? なんで日本に本社を置くの?大部分の外国人社員だけでなく日本人社員からも疑問が出るよ。一番税金の安い国に本社を置けって。
翻って、原点に帰ってこれからの日本で起こることを考える。
1.労働者人口が不足する
2.介護が必要な老人のために、多くの若者が夢をあきらめる。
3.建物、インフラ、モノがたくさん不要になって、メンテナンスされずに放置される
4.老人が貯金を取り崩しながら生活するので個人資産が減る
5.暇を持て余し、行き場のなくなった老人であふれかえる。
6.孤独死が多く部屋を貸す人が少なくなる。
7.新しいものが売れない。
8.将来に希望が持てない
まだまだ、ありそう
弱点というのは克服することによって長所に変わる。問題に正面から向き合おう。その解決策は世界が求めている。安易に海外に逃げちゃだめだ。

なんてことを考えていたら、北朝鮮崩壊による難民で状況が一変するかもしれない。

July 02, 2016

もうすぐ時代が変わる

ディープラーニングが数年前から登場して、結構やばい。

日本語がほとんどわからない外人2人が識字率98.66%のOCRを開発したそうだ。
OCRだけを30年以上研究している人を知っているが、それでも95%以上の識字率は難しいらしい。もうね、手続き型言語で条件分岐を工夫している場合じゃございません。
そういえばFizzBuzz問題というのがあって、1から30までの数字を順番に出力して2で割り切れたらfoo 3で割り切れたらbar 2でも3でも割り切れるならfoobarと表示するというのがある。
たまに新入社員面接をするのだが、恐ろしいことに情報学科を出た大学生がこれを解けない。もう意味がわからない。教授の顔が見てみたい。
いや、よく考えてみたら現実の問題を解決するのに手続き型ではなく、Tensorflowのような機械学習に流し込めばいいとも思えてきた。学習を重ねるにつれ、だいたいfooとbarが適切に出力されるようになる。
やっぱりね。21世紀後半はもうプログラムを書くことがなくなって、データを流し込む時代かもしれない。

April 29, 2016

5・10日(ごとうび) は朝から連絡してくれ

 5・10日(ごとうび)とは5のつく日と10のつく日で、5日、10日、15日、25日、および月末のことを指す。有名なのは給料日が25日

 この日の営業開始までに代金を入金するとかで、昔からの習慣らしい。
ということで、朝から道路は混むは経理の人は不機嫌だわで知っておいたらストレスが減るというものだ。
 ということで、botを作ろうと思う。
 ごとうびが休日の場合は、前日となる。
月末は2,4,6,9,11以外は31日で2月はうるう年判定をすればいい。2100年には生きていないから単に4で割れればOKだ。
 休日の判定はこちらが役に立った。ありがとー

» Continue reading

October 21, 2015

必要な時だけサーバーを立てる

 かつては、小さくてもサーバーを常設してどこからでも使うのがいい時代もありました。

しかしながら、 オールSSDのクラウドサービス登場以降、必要な時だけサーバーを立てるのが主流です。
ケチケチするわけじゃないけど、1日の半分しか使用しないのであれば2倍良いサーバーが使えるしね。 それに何らかの踏み台にされたら申し訳ないというか人生狂うかも。
もちろん、一からインストールを毎日やっていたらセットアップ名人になれるかもしれないけど、本来の目的は達成できない。 そこでDockerですよ。
centos7のイメージを使ってサーバーを起動したら,以下のようにタイプして5分ほど待つ
yum -y docker
systemctl start docker.service
docker run -d -p 80:8888 docker-hubのイメージ名
終わったら強制終了してマシンごと削除、次回はまたインストールから始めるので気を使わない。 成果物を引き上げるのを忘れずに。
こういう用途には、立ち上がりの早いConoHaクラウドかDigitalOcceanがいい。
参考 http://qiita.com/kshigeru/items/c7e2326c094d47647508

October 08, 2015

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

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

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

April 26, 2015

Javascriptがどうにもわからなくなったら、実は根本的なことがわかっていなくて唖然とする

 いまさらJavaとJavaScriptを混同することはないが、使ってみると意外に頭が切り替わらない。結局なぜだか動かないという状況に陥る。

 以下のブログを読んで気が付いたのは、実はわかっているつもりで分かっていなかったというオチ。

インスタンスのコピーはポインターのコピーであって実体は同じ

プロトタイプチェーンをもっと理解する

慣れないと不思議な動作になるホイスティング

JavaScript のスコープを理解する

JavaScriptで多用されるクロージャー

JavaScript のスコープチェーンとクロージャを理解する

JavaScriptのthisはJavaやC++とは違うもの

JavaScript の this を理解する

正直言って、至ることろで無名関数を定義したり、クラスをきっちりと定義しなかったりというJavascript流の書き方は好きではないのですが、やすやすとJavaScriptを使いこなす若手を見ていると次の時代はこれなのかなと思います。

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と連動してバージョン管理も公開もできる。
素晴らしすぎる。

January 03, 2014

Python でBluetooth デバイスを直接コントロールできるなんて知らなかった

pebbleのアプリを鋭意開発中であるが、ログを出力する方法がわからない。

一世代前のSDKであれば、pythonで出力先を作れたたらしい。
なぜかSDK2からはAboutでAppLoggingがなくなっている。きっとデフォルトになったと解釈しよう。
pythonからbluetoothを扱うにはlightblueというモジュールが必要であるが、コレを入れるためには依存関係を手で解決する必要がある。
Pybluezが含まれるパッケージはわかりにくいが、プロジェクトのページを見たところ、python-bluetoothを入れればいいらしい。
openobexとlibbluetooth-devとpython-bluetoothだ。
sudo apt-get libopenobex1-dev libbluetooth-dev python-bluetooth
その後
sudo pip install lightblue
でインストール完了。
しかしながら p.pyが動かない。よく見たらbluetoothが繋がっていない仮想マシンであった。がっかり。

» Continue reading

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