プログラマのお金の稼ぎ方

なんらかの形でこのブログをたどり着いた方はエンジニアかプログラマの方だと思います。

あなたは、プログラミング好きですか?私は大好きです。

では、あなたは好きなプログラミングを毎日できてますか?

おそらく、書かなければいけないコードを書き、書きたいコードはかけてないのではないでしょうか。


目の前には

最新なのかよくわからない仕様書の山
誰かが書いた(一年前の自分かも)こんがらがったソースコード
顧客理不尽な要求、、、(そして終電を逃す)

はぁ。。。
フリーになるのもリスク高そうだしなぁ。
最近オフショアが競合で単価下がり気味だし。。



しかしながら、ちょっと見方を変えてみて下さい。
あなたには、違う方法で収入を得て、好きなコードを書き続けるという選択肢もあります。

私は「在宅中国貿易」という方法に半年間トライしてみました。


結果、7時間/週、程度の時間で、月収を20万ほど増やすことができました。


もし興味がおありなら、是非以下を読んでみて下さい。

                                                                      • -


NHKでも紹介された在宅中国貿易。
その堅実な副業ノウハウの基本中の基本教材を
著者の鈴木正行さんが無料で公開中です。

プラスして、

珠玉の儲かる商品10点の教材も付け、
そのままお渡ししてしまう
という画期的なサービスです。

鈴木さんはいままで大切なお金を払って始めたにも
関わらず0⇒1を稼ぐのにつまづき
挫折してしまった生徒をたくさん見てきました。
そんな鈴木さんだからこそ書けるメルマガです。

今回行う無料講座に実際に登録していただくと、
鈴木さんから毎日、稼ぎ方をお教えする特別講義メールを
あなたへ届けてくれます。

そしてあなたに0⇒1をの稼ぎ方を伝授してくれます。

連日の鈴木さんからの講座メールにより学び、
その過程で行動してみて慣れる事で、
自力で稼ぐ力を身につけることが出来ますよ。

また、

今週日曜日まで7つの「新規登録限定特典」を付けます。

下部URLで「新規登録完了後」お渡しします。

 ↓ ↓ ↓

ーーーーーーーーーーーーーーーーーーーーーー
「新規登録限定特典」
ーーーーーーーーーーーーーーーーーーーーーー

プレゼント1

■在宅中国貿易 タオバオAmazonブルーオーシャン戦略 
 ダイジェスト版.pdf
 基本の流れを把握していただける教材です。 

プレゼント2

■儲かる商品リスト10点.zip
 在宅中国貿易で「利益の出る商品」を10点差し上げます。
 この商品から派生リサーチを行うことで利益の出る商品は
 いかようにも広がっていくように成るお宝の10点をお渡しします。

プレゼント3

■鈴木×藤掛 音声対談
 73歳のおじいさんが月に30万円稼げるようになった
 その秘訣を私鈴木正行とお茶を飲みながら語ります。

プレゼント4

■鈴木×高野 音声対談
 在宅中国貿易を始めて2ヶ月目にたった3万円程度稼いだ所で、
 会社に辞表を出した男が。
 その後どうなったのか。私鈴木正行が聞いてみました。 

プレゼント5

■田村×根宜 音声対談短縮版
 在宅中国貿易スクール卒業生の田村さん。
 スクールでも抜群の劣等生である彼がこのビジネスで
 何を得て、どう変わったのかを根宜講師とお話します。

プレゼント6

■藤原×大矢 音声対談短縮版
 教材だけで月300万円稼ぎだした彼。
 一体どのような思考と行動力を持っているのか
 藤原講師とお話します。

プレゼント7

■「だからあなたは稼げない!」
 〜鈴木正行ブチ切れの真相〜
 このように考えている方は良かれと思い自ら結果に向けて
 遠回りしている事実に気づいていません。
 大多数の方が、このようにブレていき稼げない真実です。


以上、7点が今ならもらえます。

在宅中国貿易講座は新規登録はコチラです。

スタート→ http://redturtle.jp/fr/1enn/LiCMSF

※スタート後配信はいつでも解除出来ます。

Satchelというiphoneアプリが文字化けしている

私はTodo管理にA note about Backpackを使っています。このサイトのクライアントアプリがiphoneで発売されていたので、導入してみました。

なかなか快適でいいなーと思ったのも束の間、タイトル以外が全て文字化け。。。
サポートに頑張って英語でメールしてみました。返事くるといいな。。。

act_as_paranoidプラグイン

論理削除が手軽できるプラグインというわけで導入。

ruby script/plugin install --force http://github.com/technoweenie/acts_as_paranoid.git

gemでインストールしたら動かなかったけど、こちらはちゃんと動いた。と思ったらWEBRickが起動しない。。。(Railsのバージョンは2.0.2)

cucumberを使ってみる

インストールはhttp://wiki.github.com/aslakhellesoy/cucumber/ruby-on-railsを参考に

gem install rspec rspec-rails cucumber webrat

プロジェクト内にcucumber用のフォルダを生成する

ruby script/generate cucumber

テストしたい機能のテスト用ファイルを生成

ruby script/generate feature User

具体的にどうテストを書いていくかというと、

  • テストシナリオをプレーンテキストで書く
  • テキストに対応するコード(ステップと呼ぶ?)を記述する

シナリオは例えばこう(manage_users.feature)

Feature: Manage User
  In order to [goal]
  [stakeholder]
  wants [behaviour]

  Scenario: cannot login
	Given I am on the login page
	When I fill in "メールアドレス" with "ng@example.com"
	When I fill in "パスワード" with "hogehoge"
	And I press "ログイン"
	Then I should see "ID/パスワードの組み合わせが無効です"

  Scenario: login 
	Given I am on the login page
	When I fill in "メールアドレス" with "ok@example.com"
	When I fill in "パスワード" with "hogehoge"
	And I press "ログイン"
	Then I should see "ようこそほげほげさん"

これに対応するステップファイルはこんな感じ(designer_steps.rb)

Given /^on the designer login page/ do
  visit "login/designer"
end

シナリオ中の[Given I am on the login page]に対応して[visit "login/designer"]が呼ばれる感じその他、fill inとかI pressについては、webrat_setps.rbに記述がある。

When /^I press "([^\"]*)"$/ do |button|
  click_button(button)
end
・・・
When /^I fill in "([^\"]*)" with "([^\"]*)"$/ do |field, value|
  fill_in(field, :with => value) 
end

fill_inの第一引数でフィールドを指定する方法はid属性かlabelタグを使う。webratが素敵な感じにブラウザに対する操作をラップしてくれて良い。
fixturesを読み込みたいときは「fixtures/support/env.rb」に以下を記述。
(参考:http://wiki.github.com/aslakhellesoy/cucumber/fixtures

#Seed the DB
Fixtures.reset_cache  
fixtures_folder = File.join(RAILS_ROOT, 'spec', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f, '.yml') }
Fixtures.create_fixtures(fixtures_folder, fixtures)

かなりユーザーに近い視点でテストできて良い感じです。

国際化(I18n)に挑戦

主に以下の2つを行う必要がある

  • 翻訳ファイルの作成
  • I18n.tメソッドの呼び出し

翻訳ファイルについては、RAILS_ROOT/config/locales以下にymlファイルを用意する。
例えば以下のような内容をmodels.ymlなどとして配置する。

ja:
    clients:
        email: "メールアドレス"
        password: "パスワード"
en:
    clients:
        email: "email"
        password: "password"

Viewなどでpasswordの部分を呼び出したい場合は、以下のように"."区切りで書く

<%=t('clients.password')%>

翻訳ファイルは.rbファイルでも良いみたい。また分割しても大丈夫っぽい。

マスタテーブルのデータの移す

Railsレシピのレシピ42を例にテーブルのデータをfixturesに変換するスクリプトを用意
元DBのマスタテーブルのレコードをfixturesに変換

fixtures変換したレコードをテーブルに取り込むrakeタスクを作成

task  :load_master_fixtures => :environment do
  RAILS_ENV = "development"
  ENV['FIXTURES'] = "categories,sections"
  Rake::Task["db:fixtures:load"].invoke 
end