組み込むことにより、状態の確認や操作などの試行錯誤的作業を、アプリケーションを実行させたまま出来るようになります。今回紹介した方法は、他のサンプルプロジェクトやXcodeのプロジェクトテンプレートで生成したプロジェクトについても、おおよそ同様の手順で組み込むことができるでしょう。#163前回の続き、なぜ日本のソフトウェア産業では「人月の神話」がまかり通る......言い換えればプログラマの売り物である「技術」(オレを含めプログラマ自身はこれこそ自分の売り物だと思ってるはずだ)ではなく「人月」というカタチの「時間」を売るのであろうか。......いきなり手前味噌な話を始めてマコトに恐縮なのだが、ワタシが以前書いた「プログラマを笑え!」という本の中に以下の如きくだりがある。長くなるが引用するね。他の業界は知らずこのソフトウェア業界の営業パーソンたちは、まずソフトウェアに関する商品知識を培おうとしないどころかそれが持てないからこそオレは営業をやっているんだとうそぶくようなヤツが一般的であり、かつ業界動向なんてモノにもほとんど興味がない、のである。ソフトウェアの受託開発をするような会社において、営業に商品知識がないということ、すなわち自分トコのプログラマたちの腕とコストを把握していないというのは致命的なことである。誰が考えたってわかる理屈だろう。「高いモンを安く売ってしまう」かも知れないからだ。不思議なことにこの業界においては、安いものを高く売ろうが高いものを安く売ろうがとにかく営業は売れば褒められることになっており、その仕事が赤字になった責任はすべて実作業を行うプログラマ側が負わされるのである。いや、他の業界のヒトはそんな馬鹿なと思うだろうがそうなのだ。–5年ほど前の本だけどさして状況は変わってない。オレがこの業界にはいった1983年、あるいは前回紹介した「人月の神話」が出版された1975年からこのアタリの事情はぜーんぜん変わってないでしょ。図らずもこの文中でオレが喝破しておるように、つまるところこの業界が「技術」の代わりに「時間」を売るのは、「売る仕事」をしている連中が「技術」の価値を評価できないからなのである。わかりやすく言えば八百屋のおやっさんが、旬のモノだろうとハウス栽培だろうと有機農法だろうと農薬びしばしの中国産だろうとええいかまうもんかオレに区別がつかないんだから客にも区別なんかつくもんか、とにかくオレが売るネギはどんなネギでも1本50円だぁ、と言って売っちまってるようなものなのだ。大きな問題は上の啖呵のなかにある「オレにも区別がつかないんだから客にも区別なんかつくもんか」というのが、恐ろしいほど正鵠を衝いていることなんだよね。オレもそうだが「1億くれたら、いや5千万でも喜んでやります」ってヒトが多いんぢゃない?こういうことを言うと、かならず「それは違う、おっきな会社はその仕事に対する責任も含めて巨額の費用をもらうのだ」とか眠たいこと言うオッサンがいるんだが、責任なんて取ってないぢゃん。年間650億もかかってる年金記録システムが、名寄せ失敗データを10年間も放置してきた結果の問題を修正するために、あらためて10億もらっておいて「責任」なんておこがましいだろ。おっと、怒りのあまり話が逸れた。結論として、売り手(この産業における営業パーソン)も買い手も、ソフトウェア(とその開発作業)の価値をキチンと評価できないから、ジッパヒトカラゲ(人月)に、そしてブランド(あれはNTTデータだから10億なのだ)重視でペイメントが決められるのである。2009_07_03)高橋真人の「プログラミング指南」第161回これから始めようとする人へ(12)皆さんこんにちは、高橋真人です。今回はリファレンスカウントについての説明をしていきます。以下のサンプルコードをご覧ください。乱数生成(make_list)のための準備。}}分かり易くするために作為的なプログラムですが(笑)、簡単に解説します。人の名前と年齢を持った構造体Personを定義し、Person構造体へのポインタを20個保持する配列listを用意します。対話的にデータ入力をするのは省略して、単純に乱数を利用して年齢を作り、特に意味のない(だけど、識別だけは可能な)名前としての文字列を格納します。実際のところ、この程度のデータ量であれば、あえてポインタの配列にせず、直接Person型を20個格納してしまう配列を作れば充分ですが、そこは、あくまでも説明のための例なので(笑)。ここが話のスタートとなるわけですが、このプログラムにおいてはすべてのPersonデータ(のために確保されたメモリ領域)は、それぞれ一カ所からしか参照されていないので、全く問題はありません。問題は、1つのPersonデータが複数の個所から参照されるところから始まります。上記のシンプルな例をしっかりと把握して、今後の複雑化に備えてください(笑)。注:コードを実際に動かしてみないと理解できない人のために。Utilityというテンプレートを選びます。Toolというのを選び、適当な名前(英数字のみの名にしておいた方が無難)を付けて保存します。プロジェクトのウインドウが開きます。右側のファイル一覧からmain.cというファイルをダブルクリックして開きます。main.cの中身を上記のサンプルコードとまるごと置き換えてください。実行メニューから「実行」(コマンド+オプション+R)を選べば、コンパイル、リンク、実行が一気に行われます。出力結果は、実行メニューの「コンソール」(コマンド+シフト+R)で見ることができます。次回への振り:「今回は、これだけなの?」と、まだまだ余裕のある方へ。上記のプログラムに以下のような処理を加えてみてください。OSは米国アップル社の登録商標です。そのほかの各製品名等はそれぞれ各社の商標ならびに登録商標です。Artistsアクセスリンクについて個人情報の取り扱いについて支援のお願いお問い合せこのサイトに掲載されている文章、画像を含む一切のデータの無断転載を禁止します。