20130214

http://event.shoeisha.jp/detail/1/timetable#14

行ってきた

参加したセッションとその一言感想

 

* エンタープライズ/ソーシャル/スタートアップ ~インターネットの3つの世界~

ユーザー, 開発者が多様化したWebの世界では「何を作るか」に哲学を持って開発するが大事(伊藤直也氏)

 

* エフェクティブiOSプログラミング

http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E4%BD%9C%E6%B3%95-%E3%83%96%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3-%E3%82%AB%E3%83%BC%E3%83%8B%E3%83%8F%E3%83%B3/dp/4756136494

アルゴリズム, リーダブルコードを書くための指南書

 

* HTML5で高速なWebアプリ

onloadないでイベントをbindするのではなく, <head></head>内でイベントをbindしてevent.target.idで処理を制御する

Androidのデフォルトブラウザは(笑)レベルのスペック

 

* RubyでiOS/Androidアプリを作るMobiRuby

Rubyは他の言語をラップしてRuby流に書き換えることに長けている

Rubyはすごいぜ!!

 

* 怖くない関数型言語

関数型言語とは・・・

プログラミングスタイルの1つ

言語に依存しない概念

Scalaが面白そう

 

明日も行きます

20130202

Javaの話

 

String str1 = new String("hoge");

String str2 = new String("hoge");

 

System.out.println(str1 == str2); //falseを返す

 

これはよく知られている話

"=="は変数に代入された値を比較するのだが, str1, str2にはそれぞれ

Stringクラスのインスタンス, つまりそれぞれ文字列"hoge"のメモリ上の位置が代入されている

メモリ上の位置がそれぞれ異なっているので上のprintlnは常にfalseを返す

 

そこで, 文字列の比較にはequals()という関数を使ってあげる

System.out.println(str1.equals(str2)); //true

equalsはメモリ上の位置ではなくオブジェクトの中身を比較する

"hoge" == "hoge"よりtrueが帰る

 

じゃあ定数と比べるときは次のどちらが良い書き方だろう

1. str1.equals("hoge")

2. "hoge".equals(str1)

 

なんとなく1で書いている人が多いのではないだろうか

1の場合, もしstr1がnullだった場合にはequalsというメソッドは

もちろん存在しないのでExceptionが発生する

一方2の場合は"hoge"というオブジェクトにはequalsメソッドがあるため

たとえstr1がnullでも"hoge"とnullの比較でExcptionは発生しない

 

1の書き方を使うとすると

if (str1 !== null && str1.equals("hoge")) { }

またはtry catchで囲むという方法はあるが, 無駄な処理をなくすために

2の書き方をしてみてはどうだろうか

 

基礎的な内容でした

20130201

以前作ったタブ固定の改良版

 

タブ固定が消えているのはChromeが閉じている時で, Chromeを起動した時私は新しいタブページがデフォルトで開かれる設定にしているのでちょっと改良した

 

https://www.dropbox.com/s/8nw8sh9ttboizab/pinned_tab.zip

 

MAMPとかは自分でよく使うので入れてます

 

tmuxがすごい

http://www.machu.jp/diary/20130112.html#p01

 

これまでターミナルのタブを開きまくってた私からすると感動的なほど便利

 

位置画面でコンパイル + scp + コーディング出来る

 

何よりもパソコン好きな人に見えるw

20130118

ちょっと作ってみた

 

https://www.dropbox.com/s/8nw8sh9ttboizab/pinned_tab.zip

 

特定のブックマークフォルダ内のすべてのURLを「固定状態で」開く

Chrome Extension

 

PCの電源を落とした時Chromeの固定されたタブも消えてしまい, それを復帰させるのが面倒なので作った

 

なんか久しぶりに不便を改善するために作った気がする

 

あ, iconとか見た目は一切気にしてないです

20130108

つまらないものですが, 作ってみました

 

https://github.com/takashihonda/array_to_object

 

配列を同じ階層の深さを持つObjectに変換します

用途もあまりありませんが, 再帰関数のサンプルにいいと思います

 

逆のことを行うと, Objectを連想配列に変換できます

20130107

最近のスマートフォンブームによって, 開発者に求められるスキルが変わって来ました

 

特にWeb系のエンジニアの皆様ならば, PCサイトと同様にしてスマートフォン用のサイトやWebアプリケーションを作成できるので, 自分の活躍の幅が広がっていると思います

 

しかし, 仕事をするとなると忘れては行けないのがFuture Phone(ガラケー)の存在です

 

ガラケーユーザーなんかもう無視しよう. と言いたいところですが未だにユーザー数が多いのも現状です

 

そして頭を悩ませるのがデバッグ

 

スマートフォンはUser Agentを書き換えればなんとでもなりますが, Future Phoneはそうは行きませんね

 

でもいちいちFuture Phoneを出すのも面倒

 

そんな時に便利なのがこのChrome Extension

https://chrome.google.com/webstore/detail/firemobilesimulator-for-g/mkihbloiacgiofaejgagokalpeflnmbe

 

これを使えばChrome上でFuture Phoneのデバッグができてしまいます

 

まあ, Future Phoneに絶滅して欲しいことには変わりないんですがねw

 

ちなみにFirefox版もあります(っていうかおそらくこっちが先祖)

https://addons.mozilla.org/ja/firefox/addon/firemobilesimulator/