2012年8月20日月曜日
ZenCodingショートカットまとめ
Command+Eで展開
HTML5 → html:5
HTML4.01Transisional → html:4t
HTML4.01Strict → html:4s
CSS → link:css
JavaScript → script:src
2012年4月28日土曜日
[Objective-C]配列にオブジェクトを格納する場合のメモリ管理
★iPhoneプログラミングのTips★
配列や辞書(dictionary)周りのメモリ管理について。
メモリリークしないために、オブジェクト生成にメモリを確保(alloc)したら、
deallocでリリース(release)するのが基本だが、
配列・辞書にオブジェクトを格納して管理しようとする場合に、
allocやらretainやらreleaseは必要になるのか?という話。
stackoverflowでわかりやすい説明を発見。
http://stackoverflow.com/questions/885839/with-an-nsarray-of-object-references-do-i-explicitly-release-all-objects-in-the
結論から言うと、配列の中に格納したオブジェクトに関しては、
★allocなりretainなりでリテインカウントを上げる必要がある。
★配列をreleaseしたときに、中のオブジェクトも自動でreleaseされる。
例えばこんな具合。
配列や辞書(dictionary)周りのメモリ管理について。
メモリリークしないために、オブジェクト生成にメモリを確保(alloc)したら、
deallocでリリース(release)するのが基本だが、
配列・辞書にオブジェクトを格納して管理しようとする場合に、
allocやらretainやらreleaseは必要になるのか?という話。
stackoverflowでわかりやすい説明を発見。
http://stackoverflow.com/questions/885839/with-an-nsarray-of-object-references-do-i-explicitly-release-all-objects-in-the
結論から言うと、配列の中に格納したオブジェクトに関しては、
★allocなりretainなりでリテインカウントを上げる必要がある。
★配列をreleaseしたときに、中のオブジェクトも自動でreleaseされる。
例えばこんな具合。
//配列をグローバル変数にする為にリテインカウントを1上げる。mojilabelArray = [[NSMutableArray alloc] init];//配列に格納するオブジェクトに関してもリテインカウントを1あげる。CCLabelTTF *ttllabel = [[CCLabelTTF labelWithString:moji fontName:@"Arial" fontSize:50] retain];[mojilabelArray addObject:ttllabel];//dealloc[mojilabelArray release];//ttllabelはmojilabelArrayがreleaseされたとき、同時にreleaseされる。
2011年9月29日木曜日
HTML&CSSパターン【随時更新】
☆リストのマーカーを画像で表示する:その1
☆選択した要素を横中央ぞろえ marigin: 0 auto;
☆選択した要素の子要素を横中央ぞろえtext-align: center;
☆背景画像固定
☆画像テキストボックスと余白
余白はpaddingでとる。ただしpaddingした大きさだけ外枠のwidth,heightをマイナスすることを忘れずに。 例:
.txtbox { width:451px; height:52px;background:url(box.gif) no-repeat; margin: 0 auto; padding: 10px 10px;}
☆テーブル
その1:テーブルタグを使う
☆選択した要素を横中央ぞろえ marigin: 0 auto;
☆選択した要素の子要素を横中央ぞろえtext-align: center;
☆背景画像固定
☆画像テキストボックスと余白
余白はpaddingでとる。ただしpaddingした大きさだけ外枠のwidth,heightをマイナスすることを忘れずに。 例:
.txtbox { width:451px; height:52px;background:url(box.gif) no-repeat; margin: 0 auto; padding: 10px 10px;}
☆テーブル
その1:テーブルタグを使う
2011年8月21日日曜日
2011年8月6日土曜日
ブログ
z The Startup http://thestartup.jp/ (梅木さん、26歳。2009年卒)
z 世界を変えるスタートアップ http://gendai.ismedia.jp/category/startup(鈴木仁士さん、22歳)
z TechCrunch Japan http://jp.techcrunch.com/ (言うまでもなく)
z TechCrunch http://techcrunch.com/ (日本語に訳されていない記事多数)
z VentureBeat http://venturebeat.com/
z TechWave http://techwave.jp/
z Techdoll.jp http://www.techdoll.jp/
z Mashable http://mashable.com/ (この分野では必読。ただし、以下に日本語での紹介もあり)
z ネクスパスブログ http://blog.nexpas.co.jp/ (町田龍馬さん、ニュージーランド、シンガポール留学、24歳)
z Don’t be Lame http://kenichinishimura.blogspot.com/ (西村顕一さん、シンガポール留学後2011年卒)
z NPOにマーケティングの力を http://www.ikedahayato.com/ (イケダハヤトさん、2009年卒)
z クローズドとソーシャルの交差点 http://ststgc.posterous.com/ (瀬戸口翔太さん、大学4年)
z Little_shotaro’s blog http://www.littleshotaro.com/ (植原正太郎さん、23歳、大学4年)
z The Public Returns – 続・広報の視点
http://goo.gl/u9XOT http://goo.gl/W8qbQ http://goo.gl/saf6z
z Social Media 360.jp http://socialmedia360.jp/
z Gamification.jp http://gamification.jp/
z Inside Facebook http://www.insidefacebook.com/
z All Facebook http://www.allfacebook.com/
z ReadWriteWeb http://www.readwriteweb.com/
z Social Commerce Today http://socialcommercetoday.com/
z Social Times http://socialtimes.com/
z 世界を変えるスタートアップ http://gendai.ismedia.jp/category/startup(鈴木仁士さん、22歳)
z TechCrunch Japan http://jp.techcrunch.com/ (言うまでもなく)
z TechCrunch http://techcrunch.com/ (日本語に訳されていない記事多数)
z VentureBeat http://venturebeat.com/
z TechWave http://techwave.jp/
z Techdoll.jp http://www.techdoll.jp/
z Mashable http://mashable.com/ (この分野では必読。ただし、以下に日本語での紹介もあり)
z ネクスパスブログ http://blog.nexpas.co.jp/ (町田龍馬さん、ニュージーランド、シンガポール留学、24歳)
z Don’t be Lame http://kenichinishimura.blogspot.com/ (西村顕一さん、シンガポール留学後2011年卒)
z NPOにマーケティングの力を http://www.ikedahayato.com/ (イケダハヤトさん、2009年卒)
z クローズドとソーシャルの交差点 http://ststgc.posterous.com/ (瀬戸口翔太さん、大学4年)
z Little_shotaro’s blog http://www.littleshotaro.com/ (植原正太郎さん、23歳、大学4年)
z The Public Returns – 続・広報の視点
http://goo.gl/u9XOT http://goo.gl/W8qbQ http://goo.gl/saf6z
z Social Media 360.jp http://socialmedia360.jp/
z Gamification.jp http://gamification.jp/
z Inside Facebook http://www.insidefacebook.com/
z All Facebook http://www.allfacebook.com/
z ReadWriteWeb http://www.readwriteweb.com/
z Social Commerce Today http://socialcommercetoday.com/
z Social Times http://socialtimes.com/
2011年7月27日水曜日
2011年7月4日月曜日
モジュール化と隠蔽
素人なりに基本を整理。
プログラミングにはいくつか原則がある。
1つは『コード間の依存関係を荒くすること』。
例えば、同じ変数をいろんなとこに書いてしまうと、コードが長くなるにつれて困難極まってくる。
変数xが2つの関数A,Bで使われているとする。
Aの動作を変更するためにxをいじる。
すると気づかぬうちにBの動作も変更されてしまった、というのが悲劇の始まり。(副作用と呼ぶ)
関数2つならまだいい。
A,B,C,D...と増えるにつれ、副作用を避けつつAの動作だけを変更するのが難しくなっていく。
さらに恐ろしいことに、Bで発生した副作用を直そうとして変数yをいじると、yをいじったことによる新しい副作用が発生するという無限地獄に突入する。
これがコードのスパゲッティ化という現象である。
どうすれば、スパゲッティ化を防げるのか?
それが、『コード間の依存関係を荒くすること』である。
具体的にはまず、コードを役割に応じて小さくグループ化する(モジュール化)。
そして、外部からモジュール内部への自由なアクセスを禁じて、定義したインターフェイスを用いたアクセスのみを許可する。
この外部から内部変数への自由なアクセスを禁じることを、「隠蔽」という。
関数の中身、クラスであれば「内部変数・関数」は、原則的に外部から直接変更できない。
これによって異なるモジュール同士の変数が、密に依存しあうことを避けているのである。
言語によって、「モジュール化と隠蔽」を実現する手段は微妙に異なる。
例えば、プロトタイプベースであるJavaScriptのオブジェクトでは、
関数とクロージャを使ってモジュール化と隠蔽を図る、など。
プログラミングをするときは、言語に応じた「モジュール化と隠蔽」を常に意識して書くように心がけたい。
プログラミングにはいくつか原則がある。
1つは『コード間の依存関係を荒くすること』。
例えば、同じ変数をいろんなとこに書いてしまうと、コードが長くなるにつれて困難極まってくる。
変数xが2つの関数A,Bで使われているとする。
Aの動作を変更するためにxをいじる。
すると気づかぬうちにBの動作も変更されてしまった、というのが悲劇の始まり。(副作用と呼ぶ)
関数2つならまだいい。
A,B,C,D...と増えるにつれ、副作用を避けつつAの動作だけを変更するのが難しくなっていく。
さらに恐ろしいことに、Bで発生した副作用を直そうとして変数yをいじると、yをいじったことによる新しい副作用が発生するという無限地獄に突入する。
これがコードのスパゲッティ化という現象である。
どうすれば、スパゲッティ化を防げるのか?
それが、『コード間の依存関係を荒くすること』である。
具体的にはまず、コードを役割に応じて小さくグループ化する(モジュール化)。
そして、外部からモジュール内部への自由なアクセスを禁じて、定義したインターフェイスを用いたアクセスのみを許可する。
この外部から内部変数への自由なアクセスを禁じることを、「隠蔽」という。
関数の中身、クラスであれば「内部変数・関数」は、原則的に外部から直接変更できない。
これによって異なるモジュール同士の変数が、密に依存しあうことを避けているのである。
言語によって、「モジュール化と隠蔽」を実現する手段は微妙に異なる。
例えば、プロトタイプベースであるJavaScriptのオブジェクトでは、
関数とクロージャを使ってモジュール化と隠蔽を図る、など。
プログラミングをするときは、言語に応じた「モジュール化と隠蔽」を常に意識して書くように心がけたい。
登録:
投稿 (Atom)