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.



上手くいきましたね。


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

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

でわ。

関連記事

参考サイト

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

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