タグ

programmingに関するitengineerのブックマーク (58)

  • 第4回 コードの分割―その4 Step2:共通処理のメソッド抽出 | gihyo.jp

    Step2:共通処理のメソッド抽出 まずは共通的に使用されている処理を別メソッドに抽出しましょう。リスト2③④の個所で「Elementの生成→要素の中身をセット」するコードが3ヵ所出てきます。 ここで前号の連載で紹介した変数の「スコープ」に着目してみましょう。変数idNodeが使用される範囲は「node.appendChild」で追加されるまでのたった3行だけです(リスト3⁠)⁠。idNodeの生成を別メソッドに抽出すれば、idNode変数自体をなくしてしまうことができそうです。 node.appendChild(createElement(doc)); ... private Element createElement( Document doc, Division div) { Element idNode = doc.createElement("id"); idNode.setT

    第4回 コードの分割―その4 Step2:共通処理のメソッド抽出 | gihyo.jp
  • 【YQL 速攻レビュー】米 Yahoo! が SQL っぽく色んなデータを取ってこれるAPIを出した - てっく煮ブログ

    Yahoo!Yahoo! Pipes みたいに自由度が高くて、またちょっと毛色が違うサービスが出てきた。題して、Yahoo! Query Language。YQL と呼ぶようだ。SQL 風の言語を REST で投げて、結果を XML や JSON で受け取ることができる。具体的にやってみないと分かりにくいので、とりあえず試してみた。RSS からデータ取得YQL を使って RSS から最新のタイトル10個を取ってきてみる。こんな YQL になるらしい。 select title from rss where url='http://d.hatena.ne.jp/nitoyon/rss' rss テーブルに対して select を発行している。実際にこの YQL を試すには YQL 用の console を利用するとよい。(※要ログイン)console の左上に YQL を入力して

  • 第4回 シェイプで遊ぶ | gihyo.jp

    第2回で作成したHello, World!だけでは、JavaFX Scriptの実力を知ることはできません。そこで、今回はUI、特にグラフィックの描画に関する機能を紹介していきます。 とはいうものの、第2回で使用したNetBeansは英語版なので、ちょっとしきいが高いですね。そこで、今回からは日語版のNetBeansにJavaFX Pluginをインストールして、使用していきます。 JavaFX Pluginのインストール すでにインストールされているNetBeansに後からJavaFX Pluginをインストールする手順は、他のプラグインをインストールする時と同じです。残念ながら、JavaFX Pluginはまだ日語化されていないので、JavaFXに関する部分は英語のまま表示されます。 インストールを行うには、まずNetBeansを起動します。そして、メニューバーの[ツール]の項目の

    第4回 シェイプで遊ぶ | gihyo.jp
  • RDBMSの時代の終わりが見えてきた - きしだのはてな

    クラウドと一緒にやってきたもの 最近、クラウドが流行ってます。 GoogleMapResuceから始まって、MicrosoftのAzureまで、大手のクラウド製品が出揃った感じ。 で、そこで、こんなクラウド製品が出ましたというときに、必ずといっていいほどそのクラウド用のデータベースの説明があります。そして、それはRDBMSではありません。 GoogleだとBigTable、MicrosoftだとSQL Data Services、あとはAmazonSimpleDB。どれも、基的にはひとつのテーブルにハッシュコードでアクセスするようになっています。 ほかのクラウド製品も、Oracle Coherenceだったり、楽天のRomaだったり、非RDBMSのデータストレージを提供します。 クラウドというわけではないけど、mixiのTokyo TyrantやApache CouchDBも、RDB

    RDBMSの時代の終わりが見えてきた - きしだのはてな
    itengineer
    itengineer 2008/12/13
    RDBMSの主たるスコープが終わると、もっと色々終わる気が><
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    itengineer
    itengineer 2008/12/07
    「「実現したいことを計算機の問題に置き換えることが『技術力』」」をピックアップされてるのは良いなぁ。
  • 第1回 良いコードを書くための5つの習慣[前編] | gihyo.jp

    連載が書籍化されました。 『良いコードを書く技術 ─ 読みやすく保守しやすいプログラミング作法』 縣俊貴 著/A5判・240ページ 価格2394円(体2280円) ISBN 978-4-7741-4596-9 はじめに この連載は、「⁠良いコードの書き方」を知ることを目的としています。みなさんの周りにも「良いコード」をものすごいスピードで書き上げて、開発の原動力となっているプログラマがいませんか? 連載ではそのような「できるプログラマ」たちが「日常的に意識していること」に注目して、彼らの中では常識だけど一般的には気づかれていないような内容を、プログラミング初心者にもわかりやすい言葉で解説していきます。プログラミング言語はJavaを中心に説明しますが、RubyやC#、JavaScriptなどでの例も織り交ぜていく予定です。 第1回の今回はウォーミングアップとして、良いコードを書くために

    第1回 良いコードを書くための5つの習慣[前編] | gihyo.jp
  • Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS

    Throwable、Exception、RuntimeException(RTE)、Errorあたりを整理しながら、色々考えてみた。私見に基づくので、間違っているかもしれないけれど、自分としては頭が整理できたかな、と感じたので晒してみる。異論があったらコメントください。 まず、一番基礎的なところで、継承関係の整理から。こんなツリーになっています。 Throwable Error Exception RuntimeException そして、稿での用語の定義。caller=呼出す側のコード callee=呼出される側(throwする側)のコードとします。 Throwable Throwableは「throw文に指定できる何か」という意味ですね。 Instances of two subclasses, Error and Exception, are conventionally used

    Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS
  • WritingTestableCode - テストできるコードの書きかた

    WritingTestableCode - テストできるコードの書きかた 目次 この文書について まずいのその1: コンストラクタがやりすぎ まずいのその2: 深い仲になってしまっている まずいのその3: 脆いグローバルな状態とかシングルトンとか まずいのその4: クラスがやりすぎ テストできるコードの書きかた この文書について "Guide: Writing Testable Code" の日語訳です http://misko.hevery.com/code-reviewers-guide/ 推敲歓迎: 誤訳, タイポ, 訳語の不統一, そのほか... TODO: 各 Flaw のリンク先も訳す Misko Hevery コードをベストな状態に保つために、 我々は Google でソフトウェアエンジニアに以下のようなをガイドを定期的に送っていた。このガイドを共有できてうれしいね。 この

  • 殺伐としたプログラム - きしだのHatena

    @daichan4649に「殺伐としたプログラムしか見ていないのでいつも癒されます」と言われたのだけど、「殺伐としたプログラム」ってどんなのだろう? こうですか?わかりません >< lockしたらunlockしません。早い者勝ち ソースはこれ import java.awt.*; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import javax.swing.*; public class LockSample { private static Lock lock = new ReentrantLock(); public static void main(String args[]) { JFrame f = new JFrame("殺伐としたプログラム

    殺伐としたプログラム - きしだのHatena
    itengineer
    itengineer 2008/12/02
                  亡者
  • Servlet(サーブレット) / JSP入門 : Javaサーバサイドアプリ

    サーバ側で動作するJavaアプリケーションを作成するにはサーブレットやJSPを使います。サーブレットとJSPは基的に同じことを行いますが、サーブレットはJavaプログラムと同様に作成するのに対し、JSPはPHPのようにスクリプト言語のような記述します。そこで画面表示部分の作成にはJSPが適しており、データベースとの接続などバックエンドで動く部分はサーブレットで作成するのが適しています。 ここではサーブレット及びJSPの使い方に関して具体的なサンプルを使いながら確認していきます。 なおサーブレットやJSPはサーバ側でJavaアプリケーションを作成するための仕様であり、実装したアプリケーションとして無料で提供されているTomcatを使っていきます。TomcatはWebサーバとしての機能も持っておりTomacat単体で試していきますが、Apacheなどと組み合わせる場合は『Tomcatとの連携

  • ReadWriteLockのサンプル - きしだのHatena

    では、ReadWriteLockのサンプル。 読み込みスレッドは互いにロックせず、書き込みスレッドは他のスレッドとは同時に動かせない、というロックです。 サンプルでは、「か電車」が書き込みスレッド、「電車」が読み込みスレッドです。「か電車」が動くときには他のスレッドは動けません。 ReadWriteLockの実装としては、再入可能なReentrantReadWriteLockが用意されているので、これを使います。 ReadWriteLock lock = new ReentrantReadWriteLock(); 実際にロックするときは、ReadWriteLockオブジェクトからwriteLock/readLockメソッドで書き込み用ロックか読み込み用ロックを取得します。 Lock reallock = writer ? lock.writeLock() : lock.readLock()

    ReadWriteLockのサンプル - きしだのHatena
  • ソフトウエア開発って日銭商売?

    1960 年生まれ,独身フリー・プログラマの生態とは? 日経ソフトウエアの人気連載「フリー・プログラマの華麗な生活」からより抜きの記事をお送りします。2001年上旬の連載開始当初から,現在に至るまでの生活を振り返って,週1回のペースで公開していく予定です。プログラミングに興味がある人もない人も,フリー・プログラマを目指している人もそうでない人も,“華麗”とはほど遠い,フリー・プログラマの生活をちょっと覗いてみませんか。 ※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。 世の中には,たった一人で仕上げるシステムもあれば,大勢のスタッフがよってたかって開発するシステムもある。だから,すべてを一緒くたにして論じるわけにはいかないと前置きしたうえでのお話である。 “はるか20年”ほど前,プログラム(あるいはシステム)は,大量生産の工業製品のように,「マニュアル通りに組み立てさえ

    ソフトウエア開発って日銭商売?
    itengineer
    itengineer 2008/11/30
    自嘲なのか何なのか。。。
  • 第1回 プログラマのためのiPhone基本仕様の紹介 | gihyo.jp

    今回から始まった「目指せ!iPhoneアプリ開発エキスパート⁠」⁠。iPhoneアプリ開発について解説します。第1回目は、iPhoneアプリ開発をするうえで最初に知っておきたい基礎知識を中心にお届けします。 アプリ開発者から見るiPhoneの特色 iPhoneはときおり「革新的なデバイスである」などという表現とともに紹介されることがあります。その言葉が表す通り、単なる「iPod付き携帯電話」にとどまらず、iPhoneは魅力的な特徴がたくさんあります。ここではアプリ開発者が特に意識するであろうiPhoneの特色を見てみましょう。 携帯電話にはあたりまえの方向ボタンや数字キーがない アプリ内で使われるボタンやスイッチなどのパーツが統一されている 限られたボタンしかない代わりに、体のほぼ全面をタッチパネルとしたiPhoneでは、アプリ開発者は従来のようにボタンの種類や数に制約を受けることなくイ

    第1回 プログラマのためのiPhone基本仕様の紹介 | gihyo.jp
  • 絵をプログラムする言語「Processing 1.0」が正式リリース | パソコン | マイコミジャーナル

    絵をプログラムする言語「Processing」が正式リリース Processing開発プロジェクトは24日 (米国時間)、グラフィックデザイン用プログラミング言語「Processing 1.0」をリリースした。動作環境はWindowsMac OS X、およびLinux。ライセンスにはGNU GPL / LGPLを適用、オープンソースソフトウェアとして無償公開される。 Processingは、電子アートおよびグラフィックデザインを目的としたプログラミング言語。Ben Fry氏とCasey Reas氏が在籍していたMITメディアラボで2001年に開発を開始、Javaベースの実行環境と簡易IDE (sketchbook) によるプログラミング環境として整備された。変数や制御構造など言語としての基礎はJavaに準じるが、プログラミング言語の文法やAPIの用法に精通していなくても、高機能かつ高速な

  • プログラミング言語の難易度 - Homoiconic Days

    Javaはわりと素朴な言語だ。 Rubyは簡単な英語をちょっと知っていれば分かってしまうくらい易しい。Perlもまぁだいたい同じくらいだ。 Cなんて、小学生でも、ともすれば幼稚園児でも、理解が可能だ。 C++やC#なんかは慣れない人は戸惑ってしまうかもしれないが、実際は素直だったりする。 OCamlは人によって力を入れる場所が違っていたりして混乱しがちだ。それに比べるとHaskellはブレが少なくて意外と易しい。 Pythonは比較的難しい。SchemeはPythonと同程度かPythonより難しい。 Gaucheはかなり難しい。初めて見た人はどうしても間違った判断を下しがちだ。 うん、まぁ名前の読み方の話なんだけど。

    プログラミング言語の難易度 - Homoiconic Days
    itengineer
    itengineer 2008/11/27
    うん!おもしろい!!
  • 編集系ソフトウェアとデータモデル - あしあと日記

    id:Yamashiro0217 ちょうどドローツールっぽいツールを作ろうとしてるところで、「くGUIの編集系のソフトウェアについていろいろ書きたいのでまだまだ続きますよ!」にすごい期待です! ymsr先生からこんなコメントをいただいたので調子に乗って書いてみる。 編集系のソフトウェアはデータモデルが超重要です。どうしてもGUIの見た目や操作性の部分に気持ちが行ってしまいそうですが、データモデルをしっかり固めてしまえば、GUIの見た目や操作というのはいくらでも差し替えが利きます。 使い勝手の部分というのはころころ変わりますが、データモデルがしっかりしていれば、見た目や操作の部分に変更があってもデータモデル自体に手を加える必要はありません。逆にデータモデルの変更はGUIに大きく影響をあたえます。 前回までUndo、Redoの説明をしましたが、ここで出てきたのはデータモデルだけです。これにどん

    編集系ソフトウェアとデータモデル - あしあと日記
    itengineer
    itengineer 2008/11/18
    勉強になる!!!
  • Haskellプログラミングの楽しみ方 − @IT

    第1回 Haskellプログラミングの楽しみ方 山下 伸夫 株式会社タイムインターメディア 2008/10/29 関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう(編集部) 連載は、Haskellプログラミングの初歩から始めて、日常的なスクリプティングやWebプログラミングをHaskellで楽しめるようになるまでのガイドである。 Haskellプログラミングのスタイル Haskellプログラミングに興味はある人でも、Haskellプログラミングの習得にはちょっとした障壁を感じることがあるのは間違いないようだ。小難しい概念や用語のせいでもあるが、それらはあまり重大な理由ではない。 障壁となるのはHaskellのプログラミングスタイルである。Haskellのプログラミングスタイルは関数プログラミングという系統に属する。一方、

  • なんちゃって個人情報

    なんちゃって個人情報は「Generator of the Year」にて【便利賞】を受賞いたしました!! 投票して下さったみなさま、当にありがとうございました。 今後もどんどん使ってやって下さい。 プログラム等に使えるかもしれない個人情報のテスト用データを作成できます。特に説明が必要なものでもないので、とりあえずやってみていただければわかると思います。 念の為書いておきますが、生成した偽個人情報により発生したいかなる損害も当方は一切関知しません。たまたま名前が実在の人物と同姓同名になってしまうかもしれませんし、特に電話番号や携帯については実際に使われている番号と重なることがありますから、扱いには十分注意して下さい。 何かご要望とかありましたらお気軽にブログまでコメント下さい。 HTML シンプルなHTMLのテーブルで出力します。 XML ルートを<records>、各レコードを<reco

  • プログラムは「どう書くか」の前に「何を書くか」 - @IT自分戦略研究所

    日時:2008年9月27日(土) 11:00~18:00(受付開始 10:30~) 場所:秋葉原UDX 6F RoomA+B 詳しくは開催概要をご覧ください。 ソフトウェアは「人」が創造するものだ。「自分」が創造したソフトウェアを、システム製品や業務システムとしてお客さまに提供できる。そんな期待を抱いて、この世界の技術者になった人は多い。 現実はどうか。創造性を十分に発揮できているだろうか。職場環境は3K(きつい、帰れない、給料が安いなど)といわれている。 プロジェクトが一段落したとき。友人や同僚が著名なソフトウェア企業を後にしたとき。最新のITやソフトウェア工学を駆使してプロジェクトに貢献したと思っていたのに評価が低かったとき。周囲に尊敬できる上司がおらず、ひたすらデスマーチを続けるプロジェクトに属しているとき。トップの意識の低さを感じたとき。自社の業績が悪化しリストラに直面したとき。こ

  • COBOL屋の呪縛 - masayang's diary

    今回の日出張ではいくつかのプロジェクトの状況をみてきた。で、思ったこと。 「COBOL時代のデータ構造を引きずることで、生産性や保守性が落ちている」 フラグだらけのマスター 物のコードをだすわけにはいかないので、すごく簡略化した例で説明したい。あるシステムを利用できるユーザのマスターテーブルがあるのだけど、そいつには「なんちゃらサービス利用可否フラグ」みたいなのがたくさんついているのね。 この方式の問題は以下の通り。 テスト負荷 フラグがあるということはそれをチェックするif文があるということ。 if文があればテスト件数は最低2件は増える。 入れ子になれば、4件、8件...と増えていく。andやorでも同じ。 コードの冗長性 「あるユーザがサービスAを使えるか」を調べる処理と「あるユーザがサービスBを使えるか」を調べる処理はほぼ同様になることは明らか。 「サービスAを使えるユーザ」を調

    COBOL屋の呪縛 - masayang's diary