万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    第3弾 Ruby on Railsの無料勉強会

    http://atnd.org/events/21298

    これ参加した。

    RubyRails古すぎてそこからだ。遅刻したしね。

    sudo port -d selfupdate
    sudo port upgrade outdated
    sudo port upgrade installed

    ・新しいRubyいれる

    sudo port upgrade ruby
    port installed ruby 

    ・新しいRailsいれる

    sudo gem update -r rails
     ||<
      
    Controller(インスタンス)→ View ヘルパー モデル
      http://www10.atwiki.jp/ccqofinfo/pages/99.html
      
      Rails App
    ↓
    DB(SQL)1つ
    ↓
    テーブル Book
    ↓
    コントローラー + モデル
    ↓
    Debugツール + Console
    
    3からrailsコマンドに変わった(rakeでない)
    
    ・新規作成
    >|ruby|
    rails new rails_test

    DB設定の中身


    ・Gemfile

    gem 'rake', '0.8.7' #追加
    gem 'sass-rails' #追加
    

    編集したら

    bundle install
    
    bundle update
    

    ・モデル作成

    rake generate model book
    

    →エラー出た

    rake generate model book
    rake aborted!
    You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.8.7. Consider using bundle exec.

    面倒なので
    Gemfileの指定を消す

    gem 'rake'

    他の参加者のブログ拝見
    http://d.hatena.ne.jp/junnemoto/
    わからないので、もうrakeをダウングレードする

    ・現状のrakeのバージョン消す

    sudo gem uninstall rake --version=0.9.2.2
    

    もういっちょ

    rake generate model book
    
    rake aborted!
    You have already activated rake 0.9.0, but your Gemfile requires rake 0.8.7. Consider using bundle exec.

    あ?更に上位のバージョンか。

    sudo gem uninstall rake --version=0.9.0
    

    このrakeも消す

    もういっちょ

    rake generate model book
    
    (in /Users/shinriyo/Documents/rails_app/rails_test)
    rake aborted!
    dlopen(/Library/Ruby/Gems/1.8/gems/sqlite3-1.3.4/lib/sqlite3/sqlite3_native.bundle, 9): no suitable image found.  Did find:
    	/Library/Ruby/Gems/1.8/gems/sqlite3-1.3.4/lib/sqlite3/sqlite3_native.bundle: mach-o, but wrong architecture - /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.4/lib/sqlite3/sqlite3_native.bundle
    /Users/shinriyo/Documents/rails_app/rails_test/Rakefile:5
    (See full trace by running task with --trace)

    もうあきらめる

    上手く行った時の手順だけのこす

    rake db:migrate
    

    ・DB設定

    #省略
    t.string, bookname
    t.string, title
    #省略
    

    ・database.yml
     adapterはmysql2
     database: rails_test


    テストのため、コントローラのメソッド上で

    debugger
    

    と書くと、そこでひっかかってくれる。

    ビューに書くときは

    <% debugger %>


    第1回 横浜へなちょこUnity勉強会

    http://atnd.org/events/20574

    これも、ハシゴで参加した。第0回もあったよう。

    • 発表: Unity3Dにおけるコードの再利用とかなんとか by @fum1h1ro

    ・Unity
    コピペ
    →ありえん
    元を修正するときはテスト以外は避けたい

    クラスの継承
    敵の元となる規定クラス常套手段


    C#について

    「++C++;// 未確認飛行 C」ってサイト
    http://ufcpp.net/index.html
    このサイトがいい

    http://ufcpp.net/study/csharp/ap_ver4.html
    このへんにはC#4.0の説明もあるし

    http://ufcpp.net/study/csharp/sp3_comprehensions.html
    リスト内包表記とかもある C#のね。

    C#ラムダ式とか使えるので、短く書けるぜ!

    • まずはこれらを宣言
     // Enumerable.RangeとかWhereを使うのに必要
    using System.Linq;
    // IEnumerableに必要
    using System.Collections.Generic;
    
    • 0〜9の数から偶数を取り出すの書いてみたよ
    // 0〜9を生成。10は含まない
    IEnumerable<int> ten = Enumerable.Range(0, 10); // (1)
    // 2で割って余りが0(つまり偶数)のを取り出して格納
    IEnumerable<int> evens = from n in ten where n % 2 == 0 select n; // (2)
    foreach (int even in evens) {
    		Debug.Log(even); // => 0, 2, 4, 8
    }	
    
    IEnumerable<int> evens = ten.Where(n => n % 2 == 0);
    

    ↑さらに(2)を短くした

    IEnumerable<int> evens = ten.Where( delegate(int n) { return n % 2 == 0; } );
    

    ↑「n => n」っていうのはラムダ式なので展開?ていうか、delegateを使った匿名メソッドで書くとなので(2)はこうもできる

    以下の2つは同じ

      delegate(int x, int y) { return x + y; }
    
      (x, y) => x + y
    

    さらに。。。

    bool hoge (int n) {
    	return n % 2 == 0;	
    }
    

    こんなメソッドを別に作り、

    IEnumerable<int> evens = ten.Where( hoge ); // (3)
    

    先ほどの(2)をこうすることもOK。hogeは()がいらないみたい。

    IEnumerable<int> evens = Enumerable.Range(0,10).Where( hoge );
    

    (1)と(3)を合体!

    IEnumerable<int> evens = Enumerable.Range(0,10).Where(n => n % 2 == 0);
    

    メソッドhogeにしてしまったので、さらにそれをラムダ式のやつにしたら最強に短い!