Rubyに感銘を受けたという話に対して以下のコメントをいただいた。 はじめまして,いつも大変興味深くブログエントリ拝見させていただいております.「Rubyに感銘を受けたという話」に強く感銘を受けました!私の研究室でも同じことを試してみたいなと思うのですが,可能な範囲で期間・テーマ設定・指導方法についてお伺いできないでしょうか? (Twitterより) ご要望があったので答えられる範囲で。なお、この説明は私個人の考えであり、私の所属研究室および所属組織の統一見解ではないことをお断りしておきます。 研究室の基本的考え方 研究テーマとしては、学術的に面白いことをやるか、実用的に使えるものを作るかどちらかにしなさいというのがボスの考え。このため、修士進学しない学生に対しては多くの場合、「誰か必要としているけど、まだ作られていないソフトウェア」を開発するテーマを提示している。 特にIT企業にSE・P
▼ [Software]辞めていった人達が作ったシステムの保守を楽しいものにする はてなは「絶対すべきでないこと」をやらかしたのか? nabokov7; rehash : ライブドアという会社の話をしよう - Q12. 次世代ブログサービス(になるはずだった) nowaの撤退をどうみた?(下) この辺りの話題を眺めていて思うところあったので少し書いてみる。 別にはてな社やライブドア社がどうだって話ではなくて、システムやソフトウェアを開発する仕事の話です。 まず、大前提として、 新しくスクラッチから書き起こす 既にある機能と互換性を保ちながら改修する プログラマにとっては、前者の方が圧倒的に楽しい仕事だと思ってます。(最近無くなったらしいけど)グーグル社の20%ルールは、開発者の創造性を巧く引き出せるよう上手に設計された制度です。 ただ、現実問題として、IT業界では後者の仕事を行う機会の方が
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 一部読者から高い評価をいただき,絶版となりながら中古市場でプレミア価格がついていた拙著「みんなのPython Webアプリ編」のHTML版をお送りします。Pythonを使って,Webアプリを開発するための方法を,基本的な事柄から積み重ね式に解説した書籍をHTMLにしたのが本コンテンツです。 編集部のご厚意で作ってもらった配布用PDFをベースに作っています(PDF作成だけでなく,出版契約の解除など必要な手続きを快く受けて頂いた担当様にはとても感謝しております)。構成などは著書をベースにしていますが,HTML化する過程で少し手直ししてあります。特にPython 2.7で動かないサンプルコー
Visual Studio 2010では「拡張機能マネージャー」という機能が追加されました。この機能を利用すると、オンラインで公開されている拡張ツールを簡単にインストールすることができます。Visaul Studioの機能を拡張できる無償ツールから、今回は前編として10種類紹介しましょう。 拡張機能マネージャーの使い方 [ツール]メニューから[拡張機能マネージャー]を選択すると、「拡張機能マネージャー」が開きます。ここでオンラインギャラリーを選択すると、Webサイトの「Visual Studio(以降、VS)ギャラリー」からコントロール、ツール、テンプレートをダウンロードしてインストールすることができます。 本稿では、区分がツール、評価が4以上のVS拡張(VSIX: Visual Studio Extension)を中心に紹介します。なお、これらの拡張機能はExpress Editionに
git最近、Git について勉強しています。Windows で Git をやるなら Cygwin と msysGit(Git for Windows) がメジャーなようです。Cygwin Git のいいとこ悪いとこCygwin は UTF-8 な日本語ファイル名にも対応しており、Cygwin の中で閉じて Git を使っている分には何不自由なく使えるのでお勧めです。ただし、次のような悲しいポイントがあります。 Cygwin 版 Git は、Windows 向けの GUI な Git ソフト(TortoiseGit や Git Extensions)との相性が悪い Windows のエディタやマージツールと連携しようとするとパスのポリシーが違うのでうまくいかないnkf を噛ませようとしても、Cygwin 用の nkf バイナリは公式配布されておらず、わざわざ Cygwin 上で make す
「ソフトウェアのプロになるには本書が必要だ!」と、ボブおじさんがおっしゃっております。 このボブおじさんは、あの有名なアジャイルマニフェストにも名前を連ねているRobert C. Martinです。 プロとしての最低限必要な知識、姿勢、規律など、教育を受けたり学んだことがあるプログラマはあなたの現場に何人ぐらいいるでしょうか? 今こそ、本書を取って、プロとしての道を歩み始めて欲しい。(amazonでずっと売りきれだったけど、やっと入荷したようだ。すぐに売り切れそうではあるが…) プログラミングの練習 僕はプログラミングの練習というのを意識的にあまりやったことが無い。日本だとTDD Boot Campなどでおこなわれる小さなテーマでプログラミングをおこなうことである。本書の6章に練習について書いてる。 個人的にはRubyKaigiで、ペアプロした外人が、これはToys Programming
テストというのは、基本的にはソースコードの冗長化だと思う。本来ならプロダクトコードだけ書けばよいところを、信頼性を高めるために複数の視点でのコードを追加する。 また、サーバーの冗長化で、2台構成を3台構成にするよりも、はるかに1台構成を2台にするのが難しいように、テストも、10本のテストを20本にするよりも、最初のテスト(プロダクトコードも含めると2本目のコード)を書くのが一番難しい。 テストがソースコードの冗長化であるなら、アクセスのないサイトでサーバーをクラスタリングするのが単なる金や設定時間の無駄であるように、長期的な信頼性の求められないプロダクトにテストを書くことも金の無駄だ。 アクセスが多いのにサーバー冗長化の金を払わない顧客に対してクラスタリング構成を構築する義理がないように、信頼性が求められるのにテストの金を払わず時間も確保しない顧客のためにテストを書いてやる必要もない。もち
この記事はDataSpiderにおけるコンポーネント間のインタラクションの設計と実装 : 小野和俊のブログの勝手に補足記事です。 コードが良くわからなかったので図を書いてみた。 詳細な説明は元記事へどうぞ。 最も原始的な実装方法: コンポーネントの相互参照 各コンポーネントは、処理に必要なコンポーネントへの参照を直接持っている。 この例ぐらいだと非常にシンプルだが、コンポーネント間が密結合しているため、機能を拡張したいときに問題となる。 Mediatorパターン 各コンポーネントは、別のコンポーネントを直接持つ代わりにMediatorへの参照を持っている。 Mediatorは、コンポーネントからのリクエストに応じて適切なコンポーネントに指示を出す。 Role Objectパターン DIっぽい仕組みが導入されたりして複雑なので、処理に関係ないところは簡略化してあります(本当はコンポーネントが
ソフトウェアを中長期にわたってメンテナンスしていく場合、メンテナンスしやすいコードと、メンテナンスしにくいコードとの間には、同じ機能を実現していたとしても、その価値には雲泥の差があります。 メンテナンスの容易さを示す言葉として、メンテナビリティ(Maintainability)という言葉がありますが、私自身、アプレッソでDataSpiderを11年間開発・メンテナンスしていく中で、「この人の書いたコードは本当にわかりやすいし無駄がない」とメンテナビリティの高いソースコードに感心させられることもあれば、「急いでいたとはいえ、このソースコードはリファクタリングしないと・・・」と、メンテナビリティの低いコードがソフトウェアに混入してしまったことを嘆くこともありました。 このエントリでは、一本のソフトウェアを11年間開発・メンテナンスしてきた経験から、ソフトウェアのメンテナビリティについて考察して
みなさんこんにちは。@ryuzeeです。 なんとなく書きためておいた継続的インテグレーションのアンチパターンをいくつか紹介します(結構ラフなメモ書き)。 頻繁にSCMにコミットしないテストコードを書かないテストコードと製品コードを同時にコミットしない定時ビルドのみでコミットビルドがない・夜間ビルドしかない帰り際にコミットしてそのままCIの結果を見ずに帰るCIでテストを通すために手作業の準備が必要メインラインのみで大きなブランチをCI対象にしていない様々な種類のテストをまとめて行っているビルドの失敗に気付かないビルドに失敗しても放置しているビルドの失敗に気づいても、修正コード以外のコードをコミットする何も変更していないのにビルドが落ちたり落ちなかったりする頻繁にビルドが失敗しているので、失敗するのが普通だと思うCIからの通知メッセージが大量すぎるCIが落ちても何も通知しないCIサーバのリソー
はじめに こんにちは、動画配信界の情弱です。年始からStackOverflow眺めてたら超絶便利な質問に神回答がされてたので忘れないうちにメモっておく。2012年どっかで役に立てばいいですね。 参考 オリジナルはこちら。ここではコメントにパラパラと載ってたので、まずは直近1ページ目だけにあったものを1個のリストにまとめてみた。ほぼGeorge Stocker氏による回答を載せただけだけど。あとちょっとだけ自分で和訳とか加えたので、知っているものがあればコメントに載せて下さい。追加します。まだDとかFactorとか載ってないし、Pythonも全然足りないし。 API Only - Stack Exchange もしかするとバージョンが古かったりするものもあるかも知れませんが、それもコメントで教えてもらえるとその旨追記します。 他にも過去に挙がったもののリンク ReadWriteWebのプログ
はじめに 各地でTDD Boot Camp(TDDBC)が開催されるようになり、このところTDD(テスト駆動開発)が注目を浴びています。ただ、自分でも試してみようと思った時に目につく書籍や記事などは、Java、Ruby、PHPといった、いわゆるオープンソース系の言語ばかり。.NET Framework(Windows)で開発の仕事をしているとTDDは関係ないんだろうか、…とさえ思えてくるかもしれません。 しかし、そんなことはありません。.NET FrameworkでのTDDに必須のユニットテストフレームワークとして有名なNUnitの最初のバージョンは、Visual Studio .NET 2002がリリースされる以前の2001年に公開されています。.NET Frameworkは、生まれたときからTDDと共にあると言っても過言ではないでしょう。 この記事では、TDDとTDDBCについて簡単に
昨日セミナーとして USTREAM させていただいた資料を公開いたします。 エラー処理を書いてはいけない USTREAMのビデオ タイトルは釣り気味ですが、内容はいたって真面目なのでご安心ください。 概要 やってはいけないシリーズ、の第三弾としての試みです。 リソース管理をしてはいけない ロック処理を書いてはいけない エラー処理を書いてはいけない ← New! タイトルに反して(あるいはタイトル通りに)、正しく長時間動作するプログラムを書くには きちんとエラー処理を行う必要がありますが、 それを何とか抽象化しようという(Haskell界隈での)試みについてのご紹介でございます。 あまり他の人がこういうことを言っているのを聞いたことが無いので、 自分の日々考えていることを世に問うた形になっております。 実際のところ、社内ではC++がメインに使われておりますので、 こういう手法が用いられている
連載 .NET&Windows Vistaへ広がるDirectXの世界 第2回 DirectXマスターを目指すあなたが持つべき視点 ――ソフトウェア開発の視点から見たDirectXの世界―― NyaRuRu Microsoft MVP Windows - DirectX(Jan 2004 - Dec 2006) 2006/07/22 DirectXに限らず、さまざまなライブラリ/フレームワークを習得するうえで、構成要素の変化速度を見極められているかどうかが心理的にも習得効率的にも大きな違いを生むように思う。 例えば言語仕様やコーディング規約は長期間安定であり、一度習得するとその知識を継続的に役立てることができるだろう。また、CPUやメモリの動作原理、RFCなどのネットワーク・プロトコルも比較的安定な部類に入ると考えられる。しかし、頻繁に変化が起き、数年後には変更されてしまうような仕組みが混
C# 3.0から自動プロパティが実装され、フィールドの定義を省略できるようになりました。これはとても便利なのですが、getter/setterを書かないため、ブレークポイントが張れないという問題がありました。 通常のプロパティでは下図のようにget/set内でブレークポイントを設定すると、プロパティが参照された時にプログラムの実行を中断することができます。 しかし、自動プロパティでは同様のことができません(と思っていました。ググっても出てこないし)。 まあいざとなれば必要なときだけフィールド追加すればいいか……と思っていたのですが、暇だったので実験してみたら関数ブレークポイントでならちゃんと止まる事がわかりました。関数ブレークポイントはメインメニューの[デバッグ]-[ブレークポイントの作成]-[関数でブレーク]もしくはブレークポイントウィンドウの[新規作成]ボタンで追加することができます。
オラクルがNoSQLデータベース製品をリリースしたのに続き、IBMも企業向けデータベースとしてNoSQLの製品化を明らかにしました。 IBMのデータベースサーバ担当CTOでバイスプレジデントのCurt Cotner氏は、10月23日にラスベガスで開催された同社のイベント「Information OnDemand 2011」で、NoSQLデータベース製品の提供を明らかにしました。来年登場予定で、DB2とInformixユーザーに無償で提供されるとのこと。 同氏の発言は、Information OnDemand 2011のインタビュー動画で参照できるほか、米SearchDataManagement.comの記事「IBM to unveil NoSQL technology inside DB2」が伝えています。 オープンソースのNoSQLデータベースがベース 米SearchDataManage
シリアライズを利用した汎用のオブジェクトのディープコピー処理について整理しました。BinaryFormatterを使用してMemoryStreamに対してシリアライズ/デシリアライズを行いオブジェクトのメモリイメージのコピーを作成するテクニックです。理論上、Serializable属性を付与したすべてのオブジェクトに対してディープコピーが可能になります。 ICloneableインタフェース、MemberWiseCloneメソッドを使用したシャローコピーについては以下の記事を参考にしてください。 ■オブジェクトのコピー。ICloneableインタフェース、MemberWiseClone、シリアライズを利用したインスタンスのコピー。 http://d.hatena.ne.jp/tekk/20091012/1255362429 C# ジェネリック版と拡張メソッド版の2種を用意してみました。 us
Apache Software Foundation(ASF)のApache log4netは10月12日、Microsoft .NET用ログ出力ライブラリの最新版「Apache log4net 1.2.11」をリリースした。「.NET 4.0」サポートが加わっている。 log4netはASFのLogging Servicesプロジェクトの一部で、Javaのログ出力ライブラリ「Apache log4j」を.NETランタイムにポーティングしたもの。容易さ、速度、スレッドセーフなどを特徴とし、出力先を柔軟に設定できる。レイアウトクラス実装により、ログ出力フォーマットも容易に変更できる。 バージョン1.2.11では、.NET 4.0をサポート、.NET 3.5と.NET 4.0のClient Profileにも対応する。「.NET Compact Framework 2.0」向けの構築が可能とな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く