2013年7月15日月曜日

ギャラクシー4の購入と設定

ギャラクシー4を購入しました。
しかし、契約時に色々なオプションに加入させられたので、無料期間終了前に解除する必要があったので解除しました。
以下に手順をメモ。
つーかこれって法律違反じゃないんですかねえ。おかしいでしょ、絶対。
私の場合は、以下の(強制加入)サービス解除しました。

dビデオ

留守番電話サービス

スゴ得コンテンツ

クラウド容量オプション

iコンシェル

メロディコール

キャッチホン

ドコモドライブネット

しかし、上記を解約しないと月々2,000近く搾取される訳なのですが、私には犯罪としか思えませんね。
どうしてこんなことが許されているのか謎です

でわ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年6月21日金曜日

Twitter Bootstrapを使うのはやめなさい

WEB開発者のみなさん。Twitter Bootstrap使ってますか?
僕は相変わらず重宝しています。だってデザインセンスないもん。
今日はそんな開発者のみなさんへ、デザイナーさんのからの意見をご紹介したいと思います。

Joshua Gross氏の意見(webデザイナー?)

以下翻訳


正直に言おう。僕らのほとんどは、同じような古いTwitter Bootstrapのテーマを使ったサイトをみるのにうんざりしている。黒いヘッダー、巨大なhero、角丸の青いボタン、Helvetica Neueフォント。もううんざりさ。

ああ、君の言いたいことはわかっている。君は違う色のヘッダーにカスタマイズしたり、ボタンのいくつかの色を変えたり、異なったフォントを使っているかもしれない。
でもさ、結局は依然としてBootstrap風であって何もかわってないじゃないか。

もちろん僕は理解している。Twitter Bootstrapは開発者にとってグレイトだってことをね。
パーツの全てはあなたのためにすばらしく設計されているし、首尾一貫したデザイン用語を使い、まるでレゴのように組み立てることができる。デザインセンスを必要としないし、創造性を必要としない。君はただcssファイルをインポートするだけでいい。

でもね、君が何度も何度も何度も同じレイアウトを見るようになるとき、あなた達はようやく理解するさ。君は僕(デザイナー)を失ってしまったんだってね。
君のデザインは、あちらこちらにある6000の他のサイトの一つのようだ。ただ同じ一般的なレイアウトというより、ただ同じ構成物で作られているだけだからね。

Bootstrapの問題は、非常に無器用なうえ、規範的で、実際に修正するのがやっかいってことだ。デフォルトで使うのは簡単さ。 もちろん十分に修正することはできるし、あなたがとにかくBootstrapを使おうと決めたなら、僕はあなたがBootstrapを十分に修正して使うことを推奨するだろう。
しかし大抵の人はそのようにしない。

Twitter Bootstrapをデフォルトで使っても良いケースもいくつかある。管理画面やオープンソースプロジェクトのドキュメント、プロトタイプや週末のハッカソンイベントだ。
でも、ひとたびあなたが小さなテストプロジェクトの段階を超えてしまったら、黒いヘッダーや、青いボタンや、グレーの1ピクセルで境界線をひいたボックス以上のことを考えるべき時がきたってことなのさ。

Twitter Bootstrapの成功は、デザインのタイムズ・ニュー・ローマンになっている。しかし、あなたはタイムズ・ニュー・ローマンをあなたのスタートアップのウェブサイトに使うのだろうか?(使うわけないよね)


引用先

うーん、言いますねえ。はっきりとw

確かにTwitter Bootstrapの問題点はどのサイトも同じようなデザインになってしまうことですね。これは否定のしようがありません。

でも、問題の解決やサービスの提供にデザインを必要としないサービスも多いわけですから、そういったときTwitter Bootstrapは便利ですよね。問題の解決にだけエネルギーを注ぎ込めるのはやっぱ強みです。

僕はTwitter Bootstrapがこれから先より便利になってもデザイナーさんの仕事がなくなるとは思いません。
センスあるデザイナーさんがつくる作品というのはそれくらい魅力があります。

デザイナーさんもエンジニアも力のある本物だけが残っていく時代になりそうですね。
僕はエンジニアからデータサイエンティストになるよ!!

そんな感じ。でわ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

生産性だけを向上させても意味が無い

生産性をあげろ。

効率化を進めよう。

世界中の経営者や政治家達がこの言葉を標榜し、多くの労働者達はそれにこたえようと日々奮闘しています。

また、生産性の向上こそが日本復活の鍵だと強弁する評論家も大勢います。

しかし、本当に生産性と効率をあげると日本は復活し、労働者達は幸せになれるのでしょうか。
残念ながらこれまでの僕の経験では、生産性を向上させても労働者の負荷は減らないし、幸せになるケースも少ないようです。

逆に仕事の量と負担が増大し、鬱になってビジネスから退場するというケースのほうが多いように思えます。

僕も職業上、生産性は非常に気にするタイプです。
エンジニアの仕事の中でも、特にプログラミングの実装は人によって大きな差が出ます。
フレームワークや言語の習熟度によっては100倍くらいの生産性の差が生まれます。

だから生産性を高める努力をするなとは言いません。自分でなんとかできる範囲でちょっとずつ高めていくべきです。

ただ、多くの仕事量をかかえ、それを生産性や残業という手段で回避しようとするのは間違っています。 そういう考えを抱いているなら、今すぐそういった考え方は捨ててください。

生産性の向上や残業でこなせる仕事量を増やそうとする経営者やリーダーは間違いなく無能です。 もしあなたがそういった会社に在籍しているのなら、辞めたほうが良いです。

ずっとサラリーマンエンジニアとして仕事をしていた時には気づかなかったのですが、 生産性を向上させるより、アイディアをビジネスという形にするほうがずっとお金を稼げます。

これからの社会では世界と競争しないといけないのは事実です。
しかし、競争では勝てない、不毛だとわかったら方向転換する勇気をもつのも必要です。
今の時代は本当にちょっとしたことでもお金が稼げる時代です。
これは実際の経験と訓練で誰でも身につけることができます。
逆に、生産性を高めて会社に貢献しても身につけることはできません。

最近本屋にいくと、「できるビジネスマン」になるための本をたくさん見かけます。
しかし、最近僕が気づいたのは「できるビジネスマン」でなくても、 「できるビジネスマン」よりお金を稼いだり、幸せを掴むことは容易だということです。

最近はますます燃え尽き症候群や鬱になる人が増えているようです。
ブラック企業の話題もつきません。
もし「何かおかしい」と感じたときは、働き方を変えてみる時なのかもしれません。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年6月19日水曜日

mysqlのinstall

久しぶりにmysqlを使うことになったので環境構築のメモ

環境

  • mountain lion
  • brew

insrall


brew install mysql

上記のコマンドでinstall完了

mysql起動


mysql.server start
Starting MySQL
.. SUCCESS! 

rootのパスワードを設定

初期状態だとrootのパスワードは空白なので設定します。


mysql -u root password 'new_password'

セキュリティ設定

全部デフォルト設定にします


mysql_secure_installation

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

失敗。mysql.sockがないみたいです。mysqlを止めて調査。


 mysql.server stop

 ls -l /tmp/mysql.sock
 ls: /tmp/mysql.sock: No such file or directory

セーフモードで起動

 
mysqld_safe
130619 05:24:50 mysqld_safe Logging to '/usr/local/var/mysql/Macintosh.local.err'.
130619 05:24:50 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql

別タブでターミナルを開く

 
 ls -l /tmp/mysql.sock
 srwxrwxrwx  1 username  wheel  0  6 19 05:25 /tmp/mysql.sock

OK。自動でmysql.sockが作成されました。接続します。

 
mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

え???調べると権限がなくてもこうなるとか。面倒ですね。postgres万歳。


 // ソケット作成のため起動させていたセーフモードを解除
 kill -KILL mysqld_safeのPID
 
 // 権限システムを使用しないで起動
 mysqld_safe --skip-grant-tables &
 
 // パスワードなしで入る
 mysql -u root
 
 // userチェック
 select host, user from user;
 +-----------------+------+
 | host            | user |
 +-----------------+------+
 | 127.0.0.1       | root |
 | ::1             | root |
 | Macintosh.local |      |
 | Macintosh.local | root |
 | localhost       |      |
 | localhost       | root |
 +-----------------+------+
 6 rows in set (0.00 sec)
 

なんじゃこりゃ。ユーザーがいっぱいいますね。バグ?とりあえず削除。


 mysql> truncate table user;
 Query OK, 0 rows affected (0.03 sec)

 mysql> flush privileges;
 Query OK, 0 rows affected (0.00 sec)

 mysql> grant all privileges on *.* to root@localhost identified by 'new_password' with grant option;
 Query OK, 0 rows affected (0.00 sec)

 mysql> flush privileges;
 Query OK, 0 rows affected (0.00 sec)

 mysql> select host, user from user;
 +-----------+------+
 | host      | user |
 +-----------+------+
 | localhost | root |
 +-----------+------+
 1 row in set (0.00 sec)

これでいいはず。サーバースタート。


mysql.server start

mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.28 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

おお。ログインできましたね。最後にもう一度セキュリティ設定


mysql_secure_installation

rootパスワード以外はYESと答えて終了です。お疲れさまでした。

つーか、みんなpostgres使いましょうよ。何この糞RDB。


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年6月18日火曜日

フルスタックエンジニア

フルスタックエンジニアという言葉を最近知りました。
フロントもバックも作成できて、統計、機械学習なんかも理解しているエンジニアのことをいうようです。

ITの世界では様々なことが低コスト化し、標準化が進んでいます。
一方でエンジニアに求められる能力がやたらと高くなっていて、どこもスーパーマンのような人材を求めています。

特に最近は基礎学力を求められる技術が重要になってきています。私も今更ながら統計の勉強で線形代数や微分積分を勉強しているのは典型的な出来事だと思います。

グローバル化が進めばますますこの傾向は強まっていくのでしょう。
今はITの世界が顕著ですが、他の業種もどんどんと求められる能力は高くなっていくはずです。

競争は悪いことではありませんが、そろそろ自分のペースで歩けるなにかを探す時期にきているのかななんて思いました。

でわ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年6月17日月曜日

統計学の時代というけれど

今後10年-20年は統計学が支配的な学問となる。
そんなことが囁かれている今日ですが、統計学の勉強はなかなか敷居が高いですよね。

とはいえこれだけ多くの情報が溢れる時代ですから、データをまとめる技術というのはとっても重要です。
私もいよいよもって重い腰をあげて統計学の勉強をちょこちょこ始めました。

これまでは本を買っても1週間ともたずに本を読まなくなってしまったのですが、以下の本はなかなかわかりやすくて良い本です。

私のさびついた数学力でもきっちり理解できる本です。
まずは基礎が身に付くまでしっかりとこれで勉強をしたいと思います。

最初の目標は実際にexcelやRを使ってアプリのデータ解析ができるようになることですね。
地道にやっていきます。

あと統計学の勉強をしていて思ったのは、英語ができたほうが絶対いいです。
プログラムもそうなんですけど、やっぱ情報の量も質も全然違います。
情報系のお仕事はますます英語が必須になりそうで、ほんと負担大きいです。

もっと楽な仕事ないかな。なんてちょっと弱気になってしまいますw

でわ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年6月2日日曜日

RailsでWEBアプリのベースを作成する手順 その1

RailsでWEBアプリのベース部分(ほとんどのアプリで共通に利用)作成の手順を紹介します。
いつも色々調べるのが定型作業になっていて面倒だという私自身のメモ書きの意味も含んでいます。

環境

  • rails3.2.13
  • postgres
  • rvm
  • grunt(なくてもよい)
  • git
  • home brew

機能

  • devise(ログイン管理)
  • twitter(ログイン認証)
  • rspec(テスト)
  • cucumber(受け入れテスト)

はじめに

以下は2013/6/02の情報です。railsは開発速度が早いので注意してください。

gemset作成からプロジェクト作成まで

 
作成
rvm gemset create {projectname}

利用
rvm gemset use {projectname}

rails導入(version指定なし)
gem install rails

プロジェクト作成フォルダに遷移
cd /Users/{username}/Documents/wworkspace/rails/

プロジェクト作成
rails new {projectname} -T
-TでUnitテストをスキップ

git登録

 
cd {projectname}
git init 
$ git add -A
$ git commit -m 'Initial commit'

Gemfileの記載


 gem 'rails', '3.2.13'

 # Bundle edge Rails instead:
 # gem 'rails', :git => 'git://github.com/rails/rails.git'

 gem 'sqlite3'

 # Gems used only for assets and not required
 # in production environments by default.
 group :assets do
   gem 'sass-rails',   '~> 3.2.3'
   gem 'coffee-rails', '~> 3.2.1'

   # See https://github.com/sstephenson/execjs#readme for more supported runtimes
   # gem 'therubyracer', :platforms => :ruby

   gem 'uglifier', '>= 1.0.3'
 end

 group :development do
   gem "quiet_assets", ">= 1.0.1"
   gem "better_errors", ">= 0.2.0"
   gem "binding_of_caller", ">= 0.6.8"
 end

 group :test, :development do
   gem "rspec-rails", ">= 2.11.4"
   gem "factory_girl_rails", ">= 4.1.0"
 end

 group :test do
   gem "database_cleaner", ">= 0.9.1"
   gem "email_spec", ">= 1.4.0"
   gem "cucumber-rails", ">= 1.3.0", :require => false
   gem "launchy", ">= 2.1.2", :group => :test
   gem "capybara", ">= 2.0.1", :group => :test
 end

 gem 'jquery-rails'
 gem "bootstrap-sass", ">= 2.1.1.0"
 gem "devise", ">= 2.1.2"
 gem "cancan", ">= 1.6.8"
 gem "rolify", ">= 3.2.0"
 gem "simple_form", ">= 2.0.4"
 gem "figaro", ">= 0.5.0"
 gem "paperclip", "~> 3.0"
 gem 'omniauth-twitter'

bundle install

 
bundle install

install後にメッセージが出力されるかもしれません。その場合はメモとして残しておきましょう。

applicationの起動

 
rails server

http://localhost:3000/にアクセス

これで準備OKです。
次回はdeviseと連携させます。

でわん

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年5月27日月曜日

これからの時代の働き方のスタイルが見えた

昨日ある有志を募り、サービス開発チームを組みました。
チームは5人です。
なんと全員が企業に属していませんw(フリーランサー、起業家、学生の混合チーム)
私は主に開発全般と分析を担当します。
一人はマーケター、もう一人はデザイナー、もう二人がエンジニアです(一人は海外の大学生で見習いエンジニア)。

打ち合わせをしていて思ったのは、 今後は新規サービスを立ち上げる場合はこういったスタイルが 当たり前になっていくのだろうなあということです。

同じ志をもった人が集まり、それぞれ得意な専門領域を生かしてサービスを構築する。
今回は小回りの利く理想のチームが作れたと思います。
連絡、報告、管理はクラウドツールやSNSでおこないます。小さなチームなので十分可能です。

最近時代の変化を感じます。
エンジニアがこれまで通りの働き方を今後もずっと続けるのは難しいでしょう。
大手ならなんとかなるかもしれませんが、 いわゆる普通の中小企業のエンジニア(SI屋さん)は、職業として5年もつか怪しいところです。
開発は嫌いだけど生活のため...という人は多分いまのうちに転職したほう良いです。
仕事なんていっぱいあります。

偉そうなことをいっている私自身も、ずっと開発だけのエンジニアとして勝負するのは無理でしょう。
今後は高いデータ分析や高い企画能力を身につけて、複数の能力を組み合わせないとやっていけないでしょう。
私はものづくりが得意でゼロから構築できますが、残念なことに管理能力があまり高くないのです。
もちろん小さなチームなら管理できますが、プロジェクトマネジメントのスペシャリストと勝負できるようなスキルや才能はありませんし、もともとプロジェクトマネージャーにはあまり興味がないのです。

まあ、それがわかっているからこそSI屋エンジニアを辞めたんですけど。

そういえば、ちょっと前にワークシフトという本が出版されて話題になりました。
僕はそのときはそんな時代が日本にくるわけないと思っていたのですが、想像以上にはやく浸透しそうだなと昨日実感しました。

どうなるやら、ということでちょこちょこ経過を報告していきたいと思います。

でわ

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

Sinatraでプロジェクト作成 その1

アプリの作成で、async_sinatraを使いたいのでSinatraの使い方をまとめました。
async_sinatraを使える所までやっていきたいと思います。

環境

  • Mountain Lion
  • rvm
  • git
  • home brew

インストールからHello world表示までのサンプルです。

Sinatraのインストール

 
// フォルダ移動
cd /Users/{username}/Documents/wworkspace/sinatra/chat_sample/

// Sinatraのインストール
gem install sinatra

// Gemfile作成
bundle init

myapp.rbファイルを作成

 
 # myapp.rb
 require 'sinatra'

 get '/' do
   'Hello world!'
 end

起動確認

 
ruby myapp.rb

http://localhost:4567/に接続してHello world!の表示を確認

こんなあっさりと動くんですね。もしかしてHP作成くらいならrailsよりSinatraのほうが良いのでは・・・。

config.ruを用意してアプリを起動する

 
 touch config.ru

config.ruに記述

 
 #coding: utf-8
 require File.dirname( __FILE__ ) + '/myapp.rb'
 MyApp.run! :host => 'localhost', :port => 4567

myapp.rbにMyAppクラスを作ります。
myapp.rbを以下のように書き換えます。

 require 'sinatra/base'

 class MyApp < Sinatra::Base

   get '/' do
     puts "test"
     'Hello world!'
   end

 end

Gemfileファイルを変更

 
 # A sample Gemfile
 source "https://rubygems.org"

 gem 'sinatra'
 gem 'thin'

bundle updateとthinの起動

 
 // gemを更新
 bundle update

 // thinを起動
 thin start -R config.ru
 ruby config.ru


再びhttp://localhost:4567/に接続してHello world!の表示を確認しましょう。
表示されていると思います。

CTRL+Cでstopします。
thin start -R config.ruを使うとstopするときにエラーが発生します。原因はなんでしょうね?

次はEventMachineの勉強です。


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年5月14日火曜日

レオナルド・ダ・ヴィンチ展 天才の肖像 から学んだこと 後日談

レオナルド・ダ・ヴィンチ展 天才の肖像 から学んだことというエントリーを書いてから二週間が経ちました。
そして、私はあの日から芸術やものづくりに対する意識がはっきりと変わりました。

それはクリエイターは作品を絵で表現できないといけないということです。

今の時代は一人でもサービス構築が可能になっています。WEB, iphone, android,さらには3Dプリンターやarduinoの登場で、これからはますます個人や少人数のグループでできることは増えてくるでしょう。

そのとき、作りたいものを表現するのに必要なのは、文字よりイメージの図やHTMLやviewモックであったり、3DでのイラストやCADになってくると思います。

そんなわけで、デッサンの勉強から始めてみることにしました。

よくわからないので、基本の鉛筆デッサンという本を買いました。
横の絵はダ・ヴィンチのモナリザの書きかけです・・・。絵心なさ過ぎですねw。
子供の頃は鳥山明の絵のマネとかしてたけど、もう全然ダメですね。

絵や音楽などの分野で後世に名を残すには才能が必要だと思いますが、自分のイメージを形にするぐらいなら訓練でなんとかなるんじゃないかなと思っております。

そんなわけて、今後は定期的にブログでデッサンを公開できたからと思います。
つーか、なんのブログがわからなくなってきましたね。w
まあ、ダメ男のブログだしいいかな。

でわ。


追記
美的センステストで測定してみました。
2427位/34305人,美的センスは67点 (セミプロ級センス)
だそうです。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年5月10日金曜日

今年の目標もすでにアジャイル計画

早いもので今年も、もう4分の1が終了しました。
新年に誓いを立てた数々の壮大な計画や目標もホコリをかぶった状態になっています。
みなさんも同じではないですか?

ここ数年の私の想いとして、エンジニア(人間、社会人)としての基礎力をあげたいというのがあります。
しかし、なかなか日々の生活だったり新しい技術に追われて成果が出せてません。
相変わらず基礎がぐらついた状態で日々の仕事をおこなっている状態です。

なので、もう一度基礎力を鍛える計画を建て直そうと思ってます。
色々な思考を張り巡らせ、今の力を考えた結果、とりあえず下の本を用いることにしました。

とてもよく出来た本です。googleやfacebookの入社試験を受ける人でなくても、ベースの力を向上させるのに良いと思います。
なんとか今年中に終わらしたいと思っていますが、どうでしょうか。
これもきっとアジャイルな計画です。計画は現状によって変化するのです。

...たまにはアジャイルでなく目標を進めたいです。

なんかよくわからないエントリーになってしまいましたw
すいません。

でわ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年5月4日土曜日

雑誌オワコン伝説

雑誌はオワコン。
ネットがあれば雑誌は不要。

こんな意見をネット上でよく見かけます。実際、出版業界の業績はよくありません。
しかしなかなかどうして、雑誌という媒体はよくできていると思います。


上記は管理人が毎月欠かさない日経サイエンス:日経サイエンス

雑誌の良いところは情報がきっちりとまとめられていることです。
ネットだとどうしても情報が断片的になりがちです。

この私のブログも同じです。毎日いろんな人が、検索から訪問してくれます。
私のサイトの訪問の主な目的は、技術で困った場合の解決方法の探索でしょう。
検索経由でたどり着く人が大勢だと思います。
なので、技術情報のパート3がいきりなりひっかかって、最初から読むはめになったという人も結構いると思います。

そもそもネットという媒体は、コンテンツをリニアな構成で提供するのに向いていないといわれています。リニアな構成のコンテンツとは、初めから終わりまでを見てもらえることを想定したコンテンツです。

ネットはノンリニアなコンテンツが向いているというのが一般的な見方です。
ノンリニアなコンテンツは、最初から見なくていいし、どこからどうみても成り立つように断片化されているコンテンツです。

一方で雑誌はリニアな構成に向いています。そもそもデジタルなメディアはアナログなメディアと比べてリニア性が高いのです。

雑誌がオワコンとされているのは、現代はすぐに情報が得られるノンリニアな情報が多く求められているからでしょう。
時間に追われているので、最適解をすぐに見つけられるネットの評価が高くなっているのだと思います。 確かに芸能情報などをちょっと気晴らしに見たい人には、今の雑誌媒体に価値はあまり見いだせないかもしれません。

しかし、ある程度のまとまった情報を得るなら、雑誌はとてもバランスの良い媒体です。
ブログやソーシャルメディアを使う人なら、的確に構成、推敲された文章は参考になるでしょう。

なので、最近はネットからの情報取得がメインになって雑誌は読んでいないという人も、時々は目をとおしてみてはどうでしょうか。
きっと新しい発見が得られると思います。

ちなみに私がよく目を通す雑誌は以下です。

  • 日経サイエンス
  • WEB+DB PRESS
  • Gainer
  • BRUTUS

他の雑誌も時々購入したり読んだりしています。

ネットという媒体がこれらの雑誌のクオリティを越えられる日まで、私はまだまだ雑誌という媒体を頼ると思います。

でわ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年5月3日金曜日

アプリ開発でのネイティブ言語以外の選択肢

現在新しいアプリの開発をおこなっています。
iphoneとandroidを使ったアプリ開発なのですが、開発前にobjective-cやjavaでなく、PhoneGapなどのツールを利用するかどうかを調査しました。

結果はNG。結局ネイティブ言語でゴリゴリ書くことに決めました。

もちろんアプリ内ではWEBviewでhtmlも利用します。つまり、ネイティブ言語とHTMLを組み合わせて、目的に応じて使いわけていこうという開発方針です(今までと変わりませんねw)

今回PhoneGapの選択肢を考えたのは、両方のハードでの作成はやっぱりしんどいからです。ネイティブ言語での開発は、時間もコストも技術も高いものが要求されます。しかし、それらのデメリット以上にネイティブ言語のメリットが勝っていると判断しました。

機能の制約面、手に入る技術のノウハウ、そして一番はネイティブ言語開発でのアプリのレスポンス速度が決め手になりました。
こないだ娑婆に戻ってきた堀江氏も以下のように言っていました。

堀江:LINEの何がいいかって、シンプルなんだよ。あとアプリの動作が速い。

松浦:あれでもっさりだったら使いにくいですよね。

堀江:あれでもっさりだったら、ダメ。だけどSPモードメールはもっさりしてるじゃん。もっさりしてるから、使われないんだよ、アプリなんて。みんなそこに気づかない。

松浦:だからどこを向くかってところでちゃんとユーザーを向いて、機能として作られているかどうかっていうのが非常に重要ですね。
以下略
参考サイト:livedoorNEWS編集部

私もアプリはレスポンスが非常に重要だと思う派です。あまりにもっさりしてると「もういいや」って触らなくなってしまいます。
もしかしたらこういった考え方のほうが少数派なのかもしれませんが、自分が自信をもてない考え方で開発するのはやっぱりきついです。

とはいえ、ネイティブ言語の開発コストの高さも褒められたもんではありません。そろそろ両立したツールが出てきても良い頃だなあと思いました。

でわ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年5月1日水曜日

Gruntをinstallその3

環境

  • Mountain Lion

今回はgruntを使ってjavaScriptを管理します。

プロジェクトの用意

プロジェクトの親フォルダに移動します。
今回もモックのオブジェクトを使います。

package.jsonの用意

プロジェクトフォルダに移動します。

前回作成したpackage.jsを以下のように変更します。


{
  "name": "mock4",
  "version": "0.0.0",
  "description": "test",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": "",
  "author": "masaya",
  "license": "BSD",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-uglify": "~0.1.1",
    "grunt-contrib-concat": "~0.1.2",
    "grunt-contrib-jshint": "~0.1.1",
    "grunt-contrib-watch": "~0.3.1",
    "grunt-contrib-cssmin": "~0.4.2"
  }
}

追加したのは以下のパッケージです。

  • grunt-contrib-uglify
  • grunt-contrib-concat
  • grunt-contrib-jshint

grunt-contrib-concatは、jsの結合処理を実行します。
grunt-contrib-uglifyは、jsの圧縮をしてくれます。
grunt-contrib-jshintは、jshint(文法チェック)を実行してくれます。

準備ができたら下記のコマンドを打ち込みます。


npm install

node_modulesに上記のパッケージフォルダが追加されているのを確認したら次の作業にうつります

Gruntfile.jsの設定

Gruntfile.jsを設定します、

コードを以下のように記載します。


  grunt.initConfig({
   // 結合
      concat: {
        options: {
         // 結合したファイルの頭にコメント入れておく
         banner: "/* test */\n"
        },
        dist: {
          src: ['js/test.js','js/test2.js'],
          dest: 'js/script.js'
        }
      },
   // something
   
   grunt.loadNpmTasks("grunt-contrib-concat");

concatが追加した部分です。concatはjsファイルを結合します。
実行します


grunt concat
Running "concat:dist" (concat) task
File "js/script.js" created.

Done, without errors.
 

js/script.jsを見てみましょう。test.jsとjs/test2.jsが結合されたjsファイルができているはずです。

続いてminify化


  // something
   // minify
   uglify : {
    dist : {
     src : ['js/test.js','js/test2.js'],
     dest : 'js/script.min.js'
    }
   },
   // something
   
  grunt.loadNpmTasks("grunt-contrib-uglify");

uglifyが追加した部分です。uglifyはjsファイルをminify(圧縮)します。
実行します


grunt uglify
Running "uglify:dist" (uglify) task
File "js/script.min.js" created.
Uncompressed size: 73 bytes.
Compressed size: 42 bytes gzipped (61 bytes minified).

Done, without errors.

フォルダにscript.min.jsが作成されているはずです。

最後にjshintを実行します。これはjavaScriptの文法チェックをしてくれます。


    // jshint
 jshint: {
       options: { 
         // jshintの設定ファイル
       },
       // 対象ファイル
       all: ["test.js", "<%= concat.dist.src %>"]
    },
 

実行します


 grunt jshint
 Running "jshint:all" (jshint) task
 >> 2 files lint free.

 Done, without errors.



上手くいきましたね。


実際に使ってみた感想は、「便利なのでプロジェクトで使ってみよう」です。
こういったツールは、実際に運用していくことで利点や欠点が見えてきます。なので、とりあえず今やっているプロジェクトで使っていこうと思います。

ということで、こなれてきたらまた感想記事を書きます。

でわ。

関連記事

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月30日火曜日

レオナルド・ダ・ヴィンチ展 天才の肖像 から学んだこと

時間があったので上野で催されているレオナルド・ダ・ヴィンチ展にいってきました。
GWなので混雑しているかと思っていたのですが、あまり混んでいませんでした。
ダ・ヴィンチコードで起きたダ・ヴィンチブームはすでに終了したことを実感しました。

初めて行ったレオナルド・ダ・ヴィンチ展なのですが、とても良かったと思います。
その中で私が感じ取ったのが以下の3点です。

  1. 質をあげるには大量の作品をつくる
  2. 常にメモを取り、メモには絵や図も一緒に残す
  3. 徹底的に研究する

この3点について以下で私見を述べたいと思います。

質をあげるには大量の作品をつくる

まず最初に思ったのがこれです。ダ・ヴィンチといえば天才性が注目されますが、残した作品の数も凄いです。 どんな天才でも大量の作品をつくるのは大変なことですし、多くの時間を創作時間に費やさないといけません。

量質変化という言葉がありますが、ダ・ヴィンチの作品からは数をこなしたことによる質の向上も見て取れます。 がむしゃらにやるのが良いとは思いませんが、沢山の作品をつくるということはクリエイターにとってやはり大事なことなんだなと思いました。

常にメモを取り、メモには絵や図も一緒に残す

今回は、アトランティコの手稿も展示されていました。

アトランティコの手稿の展示は私が今回一番勉強になったと思ったことで、今後のもの作りにいかしていきたいと思ったことが沢山ありました。

ダ・ヴィンチは大量のメモを残していますが、そのほとんどに絵や図を含んでいます。文字だけのメモというのはほとんどありません。これはとても優れたメモの残しかただと感心しました。

私の場合でいうと、どうしても言葉だけのメモを残してしまいがちです。なので、これからは図やイメージも残しておこうと思いました。
やはり、アイディアは形として残したほうが後々役に立つでしょうし、デザインや思考を整理するのにも大きく役立ちそうです。

徹底的に研究する

どんな分野の達人でも、欠かせないのがこの習慣です。やはりダ・ヴィンチも例外にもれません。
ダ・ヴィンチは当時の著名な書籍を徹底的に研究したようです。
ちなみにダ・ヴィンチは以下のような本に影響を受けたようです。

  • イソップの生涯と寓話
  • 軍事論集
  • ユークリッド原論
  • 東方見聞録
  • 他に神聖比例論等

ユークリッド原論と東方見聞録は一度は読んでおきたいなあと思いました。
私は恥ずかしいことにどれも読んだこと無いです。いやあ、無教養ですな。神聖比例論とか絶対理解できなさそう。

まとめ

ダ・ヴィンチは500年以上前の世界を生きた人物です。でも、現代人でもとても参考になる点が多いです。
歴史に残る大天才なのは確かですが、誰よりもクリエイターとして当たり前のことを当たり前にこなした人物と言えるかもしれません。

日本のものづくりの力が弱くなっていると言われて久しいです。
ものづくりに関わっている人は是非行ってみてください。もちろん、芸術分野やルネサンスの時代に興味がある人にもおすすめです。

先人の残してくれた偉大な知恵を借りて、新しいイノベーションが日本に生まれるといいですね。
僕もすごく力を貰えた気がします(単純)。

でわ。


追記
レオナルド・ダ・ヴィンチ展 天才の肖像は2013年6月30日までです。

公式サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月29日月曜日

プログラムとコメント

腕に自信のあるプログラマーは、最近入社した新人のプログラマーに言いました。
「プログラムにコメントは必要ない。読んで理解できるプログラムを書くべきだ」
既存プロジェクトのスパゲッティコードで頭を抱えているプログラマーが、彼の言葉を聞いて反論しました。
「いいや、コメントは必要だ。たとえ間違ったコメントでも、無いよりましだ。」
新人プログラマーは、言い争いをする二人の意見に頭を悩ませました。

さて、あなたならどちらの言い分を支持しますか?
僕は後者です。僕はプログラムにはコメントを書け派です。
以前まではずっと前者でしたが、今は後者です。

というのも、これまでに色々なコードを見てきましたが、読みやすいコードを書く人は、だいたいコメントも簡潔でわかりやすい傾向があります。逆にひどいコードを書く人はコメントもよくわからない。もちろん例外もあります。

考えてみればあたりまえのことです。読みやすいコードを書けるというのは、それだけ内容を整理できているということですから。
逆になにをやっているか理解に苦しむコードでも、コメントがあれば「本当にやりたかったこと」が伝わってくることもあります。

そんな経験もあって、今ではないよりはあったほうがいいのかな、と最近思うようになりました。
 やっぱりコードはマシンだけでなく、人も読むものですからね。コメントがあったほうが楽になるケースのほうが多いです。もちろんコメントのせいではまることもあります。でも、トータルだと助かることのほうが多いような気がします。

ただし、ここでは以下のような例をコメントとはみなしてません。

 
 // テストオブジェクトを実体化する
 Test test = new Test():
 

「実体化する」キリッ

こういったコメントを見るときがありますが、誰のために書いてるのでしょうか?
コードが一行増えるので、仕事した感が芽生えるのでしょうか。
でも、こういうのはコメントとは言いません。

落書きですから!!

残念!!

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月28日日曜日

きれいなおねえさんやおにいさん


綺麗なお姉さんは好きですか?

昔こんなCMがありました。
そりゃあ男性なら綺麗なお姉さんは好きだし、女性だってかっこいい男性のほうが好きに決まっています。
はいつの時代だって人を魅了するのです。

そういった世の中の反映なのか、現代の人はほんとうにおしゃれな人が増えました。

一般人なのに芸能人かと思うような人も、ちらほら見かけます。
特に都内で多いです。

そんなおしゃれな現代人の中でも、今は男性がお洒落をする時代のようです。
私は眉カットやヘッドスパをたまにやるくらいですが、いきつけの店の人が、男性の客がかなり増えたと言っています。

男は中身で勝負

といいたいところですが、ある程度の身だしなみをしていないと勝負の舞台にもあがれない世の中になってきているようです。
というか、今の10代の男の子は「男は中身で勝負」なんて言葉自体を知らないかもしれませんね。

美カルチャーが新たに日本の文化となるかもしれませんね。
綺麗なお姉さんもお兄さんも、もっともっと増えると良いですね。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月26日金曜日

バランス

最近は、ワークライフバランスをとるべきだと言う人が多いですがなかなか難しいです。
あっちをたてればこっちがたたずというのが、人間関係だけでなく仕事と生活にもいえますね。

 私もちょっと前までは、「俺がやらなきゃ誰がやる」的に仕事をこなしていたのですが、今では俺がやらなくても、周りが助けてくれるさくらいの気持ちになってます。うん、大人になった。

 確かに生活と仕事のバランスは大事なのですが、気持ちのバランスさえ取れていれば、仕事と生活のバランスを欠いていても結構なんとかなってしまうものです。

どれだけストレスをためずに毎日を生活するかが重要ですね。

とはいってもそれが難しいのですが。

バランス by surface

 


この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月25日木曜日

賃金のグローバル化?

某企業が賃金体系もグローバル化しようと嘯いていることが話題になっているようです。
これはいくらなんでもうまくいくとは思えません。世界がフラット化しているのも、簡単な仕事が世界に流れているのも事実ですし、 英語や中国語が使えると便利なケースは確かに増えてます。

 でも、アメリカや中国のマックと日本のマックの値段が違うように、国によって生活費は異なります。生活に必要な物も異なるでしょう。
 本来はグローバル化を目指すからこそ、賃金こそそれぞれの国に合った体系にするべきです。

 これはグローバル化でなく、ただの帝国化です。

 某社長は多分本気でいっているのではなく、それくらい大変な時代なんだよというメッセージのつもりなのでしょうが、こういうことを臆面もなく発言するからグローバル化がどんどん誤解されるのです

 良くも悪くも社会的に影響力のある人なのだから、軽はずみな発言は控えてほしいです。だから規制されるし、抵抗されるのです。結局困るのは、僕らみたいな社会的に影響力のない人なのです。

 グローバル化は悪いことじゃありません。 悪いのはこういった考え方です。
とちょっとグローバル化について擁護してこの話を終了しましょう。

でわ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月24日水曜日

Gruntをinstallその2

環境

  • Mountain Lion

前回gruntのinstallをしたので実際に利用してみます。

プロジェクトの用意

プロジェクトの親フォルダに移動します。
初めてなのでいきなり本物プロジェクトへの適応は怖いので、モックのオブジェクトを使います。

package.jsonの用意

プロジェクトフォルダに移動します。

grunt.jsで全てのソースを管理します。


cd /Users/{username}/Documents/develop_doc/idead/mock4

npm init

対話形式に答えてそのまま進むとpackage.jsonができあがります。
続いてGruntfile.jsが必要なので、package.jsonに以下のように変更します。


 {
   "name": "mock4",
   "version": "0.0.0",
   "description": "test",
   "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1"
   },
   "repository": "",
   "author": "test",
   "license": "BSD",
   "devDependencies": {
     "grunt": "~0.4.1",
     "grunt-contrib-watch": "~0.3.1",
     "grunt-contrib-cssmin": "~0.4.2"
   }
 }

grunt-contrib-watchは、ファイルが更新された自動感知して処理を実行します。
grunt-contrib-cssminは、cssファイルの改行やコメントを削除してファイルサイズを少なくしてくれます。

準備ができたら下記のコマンドを打ち込みます。


npm install

node_modulesフォルダが作成されているので、中を見てみましょう。フォルダが二つ生成されているはずです。

Gruntfile.jsの設定

package.jsonとおなじ階層にGruntfile.jsを作成します。

まずは基本となるコードを以下のように記載します。


 module.exports = function(grunt) {
   grunt.initConfig({
  
   });
 };

loadNpmTasksを使用して、プラグインを読み込みます。


 'use strict';
 module.exports = function(grunt) {
   grunt.initConfig({
  
   });
  
   grunt.loadNpmTasks('grunt-contrib-cssmin');
   grunt.loadNpmTasks('grunt-contrib-watch');
 };

ついでにstrictモードにしておきます。プロジェクトのcssの設定をおこないます。


 'use strict';
 module.exports = function(grunt) {
   grunt.initConfig({
    cssmin: {
         compress: {
           files: {
             'css/min.css': ['css/bootstrap-responsive.css', 'css/bootstrap.css', 'css/social-buttons.css', 'css/family.css']
           }
         }
       },
       watch: {
         files: ['css/*.css'],
         tasks: ['cssmin']
       }  
   });
  
   grunt.loadNpmTasks('grunt-contrib-cssmin');
   grunt.loadNpmTasks('grunt-contrib-watch');
 };

実行します


 grunt cssmin
 Running "cssmin:compress" (cssmin) task
 File css/min.css created.
 Uncompressed size: 180656 bytes.
 Compressed size: 19805 bytes gzipped (149721 bytes minified).

 Done, without errors.
 

上記の設定ならcss/min.cssが作成されていれば成功です(responsiveの設定があるのでこれでは使えませんがw)。

とっても便利ですね。jekninsと平行して使うととっても良さそうです。
さて、次は一応javaScriptファイルの結合までやっておきましょう。
でわ

関連記事

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月22日月曜日

Gruntをinstallその1

環境

  • Mountain Lion

仕事でjavaScriptを書く機会が増えました。しかし、jsやcss等の管理は難しく、気がつくとスパゲッティコードが大量に作成されています。おまけに、コメントは書くな、軽量化、最適化を求められるともう人間では管理不可能。ということでJS/CSSのビルドツールのGruntを試すことになりました。

Gruntのinstall準備

nodenpmが必要なようです。両方使ったことがないので調査しました。

nodeはjavaScriptで記述されているサーバーサイド実装の言語です。

npmはnodeで作られたパッケージモジュールを管理ツールです。rubyでいうとgemのようなものです。

ざっくりすぎる気がしますが、とりあえずは先に進みます。

nodeのinstall

nodeをinstallします。nvmというツールを使います。rubyのrvmみたいなものです。


curl https://raw.github.com/creationix/nvm/master/install.sh | sh

source ~/nvm/nvm.sh

上記のコマンドであっさりと終了。確認します。


nvm ls
       N/A
current: 

まんまrvmです。わかりやすくて素晴らしい。イノベーションとは模倣である。名言です。
続いてnodeのinstall。


nvm install 0.10.4
######################################################################## 100.0%
Now using node v0.10.4

vm ls
   v0.10.4
current:  v0.10.4

簡単だし、めっちゃ速いです。ruby使いにはちょっと衝撃ですw。
rvmと同じでnvmもdefaultのバージョンが設定できます。


nvm alias default v0.10.4
default -> v0.10.4

nvm ls
   v0.10.4
current:  v0.10.4
default -> v0.10.4

npmのinstall

npmはnvmのインストールに合わせてセットで入っています。rubyのgemと一緒。ということで省略します。

Grunt CLIのinstall


npm install -g grunt-cli

/Users/{username}/.nvm/v0.10.4/bin/grunt -> /Users/{username}/.nvm/v0.10.4/lib/node_modules/grunt-cli/bin/grunt
grunt-cli@0.1.7 /Users/{username}/.nvm/v0.10.4/lib/node_modules/grunt-cli
├── resolve@0.3.1
├── nopt@1.0.10 (abbrev@1.0.4)
└── findup-sync@0.1.2 (lodash@1.0.1, glob@3.1.21)

上記で終了。長くなったので今回はここまで。
次回は、プロジェクトで試してみます。
でわ

関連記事

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月21日日曜日

ハードとソフトウェア

ハードを作成するコストが劇的に下がってきています。

ここ20-30年はハードにいかに優れたソフトを提供するかの時代だったように思います。
 windowsとofficeを作ったマイクロソフトがパソコンの王となり、マリオやポケモンを作った任天堂がゲームハードの王となりました。

 そして、王となったハードのもとには優秀なソフトが集まりました。なぜならハードの作成には高いコストとリスクがかかりました、だから、体力のある大きな企業しか挑戦することができませんでした。

 しかし時代は変わりつつあります。ハード作るコストが劇的に安くなってきています。これからはハードとソフトを両方提供していく時代になるのでしょう。

 これが良いことなのか悪いことなのかは分かりません。ただ確実に言えることは多くの小さなマーケットが誕生し、その小さなマーケットの中でも激しい競争がおこなわれるようになっていくことです。限りなく個人の好みを反映させた物が手に入れやすくなる時代になるのでしょう。

 僕らエンジニアはそろそろハード開発の知識を仕入れなければいけない時期にきているのかもしれませんね。


この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月18日木曜日

Mountain LionとXcode4.6でruby1.9.3をinstall

環境

  • Mountain Lion
Mountain LionとXcode4.6が入ったマシンでrvmを使ってruby1.9.3をinstallしたらはまってしまいました。
解決方法のメモを残しておきます。
開発環境としてruby1.9.3が必要だったので、installをするも失敗。原因は最近updateしたXcode4.6。

rvm install 1.9.3

上記のコマンドをうつと以下のようなエラーが発生しました。

apple-gcc42 is not available in PATH, try:

    brew unlink apple-gcc42 && brew link apple-gcc42

and make sure that apple-gcc42 is available in your PATH:

    which gcc-4.2

コンパイラが見つからないよという警告です。
とはいえ、Xcode4.6なので、apple-gcc42なんて存在するわけもありません。
色々と調査すると、gccを指定してrvm installができることが判明。
以下のように対応しました。

sudo rvm install 1.9.3 --with-gcc=clang

上記のようにおこなうことでうまくいきました。コマンドを叩いて確認。

rvm list

rvm rubies

   ruby-1.9.3-p392 [ x86_64 ]
=* ruby-2.0.0-p0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

デフォルトもruby-1.9.3-p392に変更。

rvm use ruby-1.9.3-p392 --default

以上で終了です。Herokuの2.0完全対応が待たれます。
でわ

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月17日水曜日

Google Glass APIのデータ形式はjson

今日は時間があったのでSXSWのカンファレンスをyoutubeで見ました。

そこでGoogle GlassのAPIの概要が説明されていたのですが、Google GlassAPIのデータ形式はjsonなのですね!!

やはりというかやっぱjavaScript時代到来ですね。
やっぱjsonは処理しやすいですよね。javaScriptと相性が良い。
個人的にrails + node + backboneが今一番開発しやすいような気がします。

というわけで発表されていたgoogle glass APIまとめです。

Timeline cards

Timeline cards insert
POST /mirror/v1/timeline HTTP1.1
Host: www.googleapis.com
Authorization: Bearer {auth token}
Content-Type: application/json
Content-Length: 29

{
 "text": "Hello, world"
}

Timeline cards update
PUT /mirror/v1/timeline HTTP1.1
Host: www.googleapis.com
Authorization: Bearer {auth token}
Content-Type: application/json
Content-Length: 29

{
 "text": "Hello, world"
}

Card Options

  • Reply
  • Read aloud
card options insert
 
POST /mirror/v1/timeline HTTP1.1
Content-Type: application/json
Content-Length: 87

{
 "text": "Hello, world",
 "cardOptions" : [
 {
  "actions": "READ_ALOUD" 
 }]
}

Timeline cards insert 2
POST /mirror/v1/timeline HTTP1.1
Content-Type: application/json
Content-Length: 234

{
 "text": "Hello, world",
 "cardOptions" : [
 {
  "actions": "CUSTOM",
  "id": "loves",
  "values": [{
   "displayName": "love",
   "iconUrl": "http://hogehoge/love.png"
  }]
 }]
}

Share Entities

Share Entities insert
POST /mirror/v1/timeline HTTP1.1
Authorization: Bearer {AUTH TOKEN}
Content-Type: application/json
Content-Length: 137

{
 "id": "post_on_example",
 "displayName": "Example.com",
 "imageUrls": [
  "iconUrl": "http://hogehoge/post.png"
 ]

}

Subscriptions

POST /mirror/v1/timeline HTTP1.1
Authorization: Bearer {AUTH TOKEN}
Content-Type: application/json
Content-Length: {length}

{
 "collection": "timeline",
 "userToken": "example_user",
 "verifyToken": "some_secret",
 "operation": ["UPDATE"],
 "callbackUrl": "http://hogehoge/notify/callback"
}

上記の仕様はすぐに変更されると思いますが、RESTとjsは学んどきましょう。
rails + node + backboneで簡単なサンプルアプリをつくると勉強にいいかもしれませんね。

さあ、開発者のみなさん。用意はいいですか?
今からGoogle Glassアプリのアイディアをためときましょう。
やろうぜ!!

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月15日月曜日

スタートアップ研究

最近はスタートアップのノウハウもたまってきて、色々な本が発売されています。
とはいえ、結構色々な本を読んでいる前提で内容が記載されている本も多いです。
いきなり読んでもイメージがわかない人も多いかもしれません。
ビジネスを分析したり、サービスを回したりするのに役に立つ本を以下にまとめてみました。
リーン・スタートアップ

実践リーン・スタートアップ

ビジネスモデルジェネレーション

統計学が最強の学問である

ワイドレンズ

上記で紹介した本は、最近のスタートアップビジネスをうまく捉えている本です。
しかし、最も大切なのは実際に行動すること、そしてそこから学びを得ることです。
どうして失敗したのか、前回よりうまくいったのはなぜか。
やる気次第で色々と挑戦できる時代です。
ちょっとでも思いがある方は是非やってみてください。
でわ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月14日日曜日

DB GUI管理ツール induction 導入メモ

環境

  • Mountain Lion

使える開発環境

  • postgres:9.1
  • MongoDB:2.2.2
  • sqlite3:3.7.12

アプリ開発をしているとDBをいじくる機会が多くなります。もちろんコマンドでも問題ないのですが、やはり開発効率が悪いのでGUIツールを探していました。
そこで見つけたのがこのツールです。その名も

induction

です。

まだ最近使われ始めたツールのようなのですが、このinductionはデータを視覚化することができます。

PostgreSQL, MySQL, SQLite, Redis, MongoDBで利用でき、クエリーを流すことも出来ますし、csv,tsv,xml,jsonデータとして吐き出すことも可能です。

作成者はHerokuのpostgres teamの方々のようです。さすがです。良いの作ります。

install方法

公式サイトに遷移してappをDLします。

続いてappを開いて接続設定をおこないます。

例えばpostgresの場合なら以下のようにaddressを入力します。

未確認ですが、直接Herokuのデータも見れるようです。
まだまだ開発途上のツールですが、現段階でもかなり便利ですし今後も期待できると思います。是非使ってみてください。
でわ


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

Effective Javascript

Effective Javascript を購入しました。



Effectiveシリーズはjavaしか読んだことがありませんが、よくまとまった本だと思います。

 しかし、時代は変わりましたね。私にとってJavascript は、最も信頼してはいけない言語のひとつと教えられた言語でした。javascript を極力使わないことが良い書き方、設計でありました。
 しかし、今やJavascriptはイケテる言語であり、利用しなければwebサイトは構築できません。これからますます重要性は増していくでしょう。
 とはいえ世に反乱しているjavaScriptのコードはひどいものです。がっつりとjavaScriptを書くのならきちんとした作法を学ぶべきです。いつも言うように基礎は重要です。そして自分の書いたコードはjshintでチェックしてほしいです。
 そしてその時、この本は良いjavaScriptコードを書くのに大いに役立つと思います。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

Sublime Text 2導入メモ 2

環境

  • Mountain Lion

整えたい開発環境

  • rails, future, spec等ruby周り
  • html5, less, jquery, node等フロント周り
  • その他もろもろ

rails_tutorial_sublime_textをinstall

commnad lineとの関連づけ

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

No such file or directoryが発生した場合は以下のようにbinフォルダを作成してPATHを反映させる必要があります。


mkdir ~/bin
ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl
vi .bashrc
export PATH="$PATH:~/bin" # add bin to PATH ← 追加
source ~/.bashrc ← 反映

続けてrails_tutorial_sublime_textデータの取得


適当なフォルダを作成
git clone git://github.com/mhartl/rails_tutorial_sublime_text.git
cp -r rails_tutorial_sublime_text/* "/Users/{user_folder}/Library/Application Support/Sublime Text 2/Packages/User/"

メニューのPreferences→color scheme→Userでrails castsを選択します。

RubyTestは私がまだ使ってないので割愛。必要になった時にまた書きます。
まずは知識ためないといけませんね。

そんなとこです。
でわ。


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月9日火曜日

Sublime Text 2導入メモ

Sublime Text 2を導入したのでメモ

久しぶりに大当たりのテキストエディタの予感。もうちょい試してから購入予定です。

プロジェクトと連携させる

  1. 上記メニューバーのProject選択
  2. add Folder to Projectを選択
  3. プロジェクトのフォルダを選択

もしくは

左のメニューバーにプロジェクトのフォルダをドラック

下記のほうが楽でしょう。
 次はrailsの開発環境を整えます。
ちょっと今時間がないのでまた後で。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年4月7日日曜日

TOEFLを標準にするのなら

TOEFLを英語力測定の基準として推進していこうという動きがあるようです。
ライティングやスピーキングを重視するTOEFLを利用しようという考えは個人的には悪くないのかなと思っています。

しかし、問題が一つあります。

受験料高過ぎ。

TOEFLで英語力を示せというのなら、それなりの受験料にすべきでしょう。
理想は英検3,4級くらいの値段ですね。

教育方法を変更するのは大変だから、目標を変えようというのは僕は悪いと思いません。
意識の高い人と低い人の差が出てしまうのが欠点ですが、目標に向けて頑張れる人には良い仕組みかも知れませんね。

なので

値段をさげてください。


この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

デザイナーから渡されたjqueryが読みにくいのは当たり前

開発者のみなさんは、デザイナーからjqueryで記述されたコードを渡された経験をお持ちでないでしょうか。
そしてコードを渡された経験を持つ人は、きっとこう思ったはずです。

「なにこれ、読めないんだけど」

そして、貴方はため息をつきながらコードを解読しはじめる。

こういった経験をもっている人は多いと思います。
でも、できるプログラマーの貴方は怒ってはいけません。これは当たり前なのです。

そもそもプログラマーとデザイナーではjqueryを勉強する視点が全く違うのです。

プログラマーはパラメーター操作、ajax,jsonなどのデータの扱いを中心に勉強します。
一方でデザイナーはhtmlやcssを操作して動きのあるページをつくるために勉強をします。

これは大きな違いです。
前者の知識はjava, ruby等のプログラミングを基礎としてjqueryを理解していきます。
後者はhtmlやcss等の知識を基礎としてjqueryを理解していきます。

つまり、
前者は、シンプルにidを付加してパラメーターを取得してデータを加工する知識が必要になります。
後者は、初期化で属性を付加したり、.classでfind呼び出してeachで回してdomの操作をします。

当然ですが、両者の身につけた技術や作法はかなり異なってしまいます。

jqueryやjavaScriptは強力な言語です。
どんな書き方をしてもなんとか動いてしまします。
プログラマーの書くjqueryコードとデザイナーの書くjqueryコードは標準語と津軽弁ぐらい違います。

なので、プログラマーの人は、クラスや属性などを扱う視点でjqueryを勉強をすると良いでしょう。
あとは、デザイナー向けに記述されたjquery本などを読むのもお薦めです。

サイ本とgoods partsを読めばjavaScriptは完璧。
でも、完璧な知識だけでは対応が難しいこともあるのが現実だったりします。
「なぜこう書いたのか」「誰が書いたのか」という視点はとっても大事なのです。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年3月31日日曜日

Chrome DevTools学習ビデオ

Chrome DevToolsの学習ビデオが公開されていたのでやってみました。

これまで我流で使っていたので知らないことが結構多かったです。急がば回れってのはよくわかってはいるんですが・・・反省。
しかし、英語ができないエンジニアは本当にやばくなってきましたね。私も得意にはほど遠いので頑張らないと。
googleとかappleは平易な英語を使ってくれるので本当に助かってます。

ココ
から見ることができます。
javaScriptを利用して開発している人は少々面倒でも必ずやっておきましょう。

関係ないけどcode schoolの月額$25って結構高いですね。それとも私が貧乏性なのでしょうか。興味あるんだけど、迷います。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年3月22日金曜日

エンジニアと中国語

中国語の学習を開始してからおよそ150時間ほどが経過しました。
仕事で仲良くなった中国人の子に勧められて、中国語を話せたらなにかと仕事で便利だろうなと思ったのがきっかけなのですが、なかなか長続きしています。

 もちろんエンジニアの仕事をする上では、英語のほうが大事です。中国語が英語にとってかわることはないでしょう。中国語の用途は、あくまで友人や知人と中国語で会話したり、旅行で役立つくらいでしょうか。

 とはいえ、今の日本は想像以上に中国語に囲まれた生活を送っています。
秋葉原の電気屋に行けば、普通に店内アナウンスで中国語が流れてくるし、都内でも英語より中国語のほうが聞く機会が多いです。

 あなたがソフトウェアエンジニアなら、これまでに中国の人と一緒に仕事をする機会があったはずだし、これからさらに機会は増えていくでしょう。

 中国の人は、こちらが中国語で話しかけて仲良くなると、本当に心を開いてくれます。
言葉の壁はこちらが思っている以上に高いのです。

「コードを見ればわかり合える」
そういうかっこいいことを言うエンジニアが結構いますが、ほとんどは
「コードを見ればため息が漏れる」
のが現実です。

 まあ、そんなわけで僕はもう少し中国語の勉強を続けていこうと思っています。
みなさんもこの機会にどうでしょうか。
 中国がこの先どうなるかは先行き不透明ですが、言語としては結構使い勝手の良い言語だと思います。
 英語がjavaで日本語がrubyなら、中国語はscalaって印象です。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年1月29日火曜日

BDD

BDDの勉強をしています。
とってもいい技術です。
こういった手法が開発現場でも浸透して欲しいと思います。

しかし、今後の世の中は、「技術を使う技術」がより強く求められそうですね。
イノベーションよりもこちらのほうが大切なのではないかという気がしています。
技術に限らず全ての製品にいえますね。

今後、ちょっと時間をとってまとめてみようかと思います。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年1月12日土曜日

変わる教育

さて、今年のwiredのサイトでは、教育に関する特集が連続で組まれていました。
オンライン教育、シンガポールの新しい教育方法、メーカームーブメントなどが紹介されています。

時代の変化とともに、教育も変わっていく必要があります。
今後のビジネスは、規模よりも人材が重要となるはずです。
なので教育はこれまで以上に大切になってくると思います。

インターネット上では、色々な学習サイトや教材が無料で利用できます。
ただし、そのほとんどが英語です。

私も最近はやたらと英語を利用する機会が増えてきたなあと感じます。
技術本などは、翻訳本がでてくるまで待てないので、洋書で買うようになりました。
この傾向はますます進んでいくと思います。

10年後くらいには、まともに日本語で教育が受けられなくなるのではないかとちょっと不安です。
とはいえ、このままグローバル化は避けられない未来でもあります。

教育の立案に関わる人たちはもっと時代の風を感じて、少しは危機感をもって欲しいです。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年1月6日日曜日

実用Ruby Timeをログ出力形式の文字列に変換する

環境

  • Mountain Lion
  • ruby 1.9.3(use rvm)

難易度★★★☆☆

出力する文字列の形式はLogのBest Practiceであるyyyy-MM-dd HH:mm:ss.usec zoneです。

code


# coding : utf-8
puts Time.now.instance_eval { 
'%s.%03d %s' % [strftime('%Y-%m-%d %H:%M:%S'),  (usec / 1000.0).round, zone] 
}

output


2013-01-06 12:55:09.197 JST

instance_evalメソッドとsprintfフォーマットを理解することが大切です。

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

実用Ruby Hashをjson形式の文字列に変換する

環境

  • Mountain Lion
  • ruby 1.9.3(use rvm)

難易度★★☆☆☆

code


# coding : utf-8
require "json"
test = {
  :id => 1,
  :name => 'yamada',
  :timestamp => Time.now.instance_eval { 
    '%s.%03d %s' % 
    [strftime('%Y-%m-%d %H:%M:%S'),  
     (usec / 1000.0).round, 
     zone] 
  }
}

puts test.to_json

output


{"id":1,"name":"yamada","timestamp":"2013-01-06 12:55:09.197 JST"}

とても便利なメソッドです。是非使ってみてください

独り言

今年はヘビ年だし、ビッグデータ関連の勉強始めたしで、pythonの勉強したいなあ....時間取れるかな。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年1月3日木曜日

fluentdを試してみた

そろそろ本格的にビックデータ時代がきそうなので、今年から学習を開始します。

まずはfluentdというログ収集ツールをMac上で試してみたのでメモ
かなりグダグダだったので、あんま参考にならないかもw

環境

  • Mountain Lion
  • ruby 1.9.3(use rvm)
  • fluentd 0.10.30

fluentdとは

ログ収集基盤です

特徴

  • 様々なデータソースからログを収集、転送、集約できる
  • ログメッセージはjson形式で構造化される
  • プラグインを使うことでログの入力元や出力先を容易に追加できる
  • 障害検出機能やフェールオーバー機能(障害時に代替サーバーに引き継ぐこと)により、高い可用性(壊れにくさのこと)を実現できる
  • 独自にプラグインを開発することも可能。RubyGemsで配布できる(最高や)

機能

fluentdの機能はほとんどinput, Buffer, output,の三つのプラグインで実現されている。

inputプラグイン
指定した場所からログの受け取り、取り寄せを行う。ソケットを待ち受けてログを受け取ったり、データソースから定期的にログを取り寄せたりする。
bufferプラグイン
Inputプラグインから受け取ったログをバッファリングし、Outputプラグインで書き出しが成功するまでログを保存する機能を備えています。Bufferプラグインにはメモリとファイルの2種類があります。
Outputプラグイン
指定した場所(ファイル、サーバなど)にログの書き出しを行います。書き出しに失敗してもBufferプラグインが保存してくれている間は再度書き込みを試みます。 例) HTTP、ファイル(tail)、Amazon S3、MongoDB、Hadoopなど。

install

gemを使ってinstallします。


  $ rvm gemset create fluentd

  $ rvm gemset use fluentd
  
  $ gem install fluentd
  
  $ fluentd --setup ./fluent
  Installed ./fluent/fluent.conf.

  $ fluentd -c ./fluent/fluent.conf -vv &
  
  $ 2013-01-02 06:50:02 +0900: fluent/supervisor.rb:153:supervise: starting fluentd-0.10.30
  2013-01-02 06:50:02 +0900: fluent/supervisor.rb:235:read_config: reading config file path="./fluent/fluent.conf"

起動確認。すんごいシンプル。

停止

ジョブを停止します


  jobs

  jobs
  [1]+  Running                 fluentd -c ./fluent/fluent.conf -vv &

  kill %1
  

困った時

fluentd -hでHELPが確認できます。


$ fluentd -h

Usage: fluentd [options]
    -s, --setup [DIR=/etc/fluent]    install sample configuration file to the directory
    -c, --config PATH                config file path (default: /etc/fluent/fluent.conf)
    -p, --plugin DIR                 add plugin directory
    -I PATH                          add library path
    -r NAME                          load library
    -d, --daemon PIDFILE             daemonize fluent process
        --user USER                  change user
        --group GROUP                change group
    -o, --log PATH                   log file path
    -i CONFIG_STRING,                inline config which is appended to the config file on-fly
        --inline-config
    -v, --verbose                    increase verbose level (-v: debug, -vv: trace)
    -q, --quiet                      decrease verbose level (-q: warn, -qq: error)

起動と停止の仕方がわかったのでとりあえず終了。
ビッグデータの本を読んだけど、以下の本が面白かったです。エンジニアはなるべく読んでおいたほうがいいでしょう。

kindleだと30%引きぐらいで買えました。紙の本は死んでしまうんかな・・・

以上です。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2013年1月2日水曜日

あけましておめでとうございます。

あけましておめでとうございます。

今年も一年よろしくおねがいします。

さて、2013年を迎えましたが、今年は

  • ビッグデータ解析の環境構築、解析手法の基礎学習
  • arduinoを使ったものづくりと電気基礎学習
  • railsで作成するスタートアップアプリの現在的手法

辺りに力を入れていけたらいいなと思っています。

データ解析はそろそろ日本でも表立ってくると思います。
去年はアメリカのオバマチームの解析シュミレートが話題になりました。
今後日本の政治でも同じような手法を取るようになる可能性は高いです。
その時、自分でデータ分析できたら楽しいと思うので、railsやfluentdを使ってアプリを作って、解析手法を色々勉強していきたいと思います。
どうですか、政治家のみなさん?次の選挙では僕を雇いませんか?w

arduinoを使った物作りも本格化して良い頃です。
しかし、arduinoの公式ページに日本語のページがないのがなんとも寂しいことです。
なので、tutorialなんかを定期的に公開できたらいいなと思っています。

WEB開発はrailsですね。新規にビジネスを起こすならrails一択です。
jinknes,redmine,backlogなどの構成管理を使ったソフトウェアの手法はもっと取り入れられるべきだと思います。
こういった手法が当たり前に実施されるようになっていかないと業界の将来は暗いですね。
その辺も公開していけると本当に理想です。

5年先にどうなっているか分からないくらいの進化の速度です。
でも、なんとかくらいついていきたいと思います。

というわけで、今年もよろしくお願いします。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加
Related Posts Plugin for WordPress, Blogger...