タグ

Programmingとprogrammingに関するmurasukeのブックマーク (309)

  • 極力ユニットテストを書かずに品質を確保する方法 - ひがやすを技術ブログ

    今日のテストサミットで、できるだけユニットテストを書かずに品質を確保する方法について、ディスカッションします。 やり方を簡単に紹介すると、最初は、Programming First Developmentで、機能を実装して、ユーザに動かしてもらうってことをユーザの要件が固まるまで繰り返します。このときは、基的にユニットテストは書きません。動かすことに集中します。 ユーザの要件が固まった(実装がほとんど終わった)ら、保守のためのドキュメントの一つとして、テストシナリオ(ユースケーステスト)を作って、テストを行います。そのテスト中に、バグが発見されたらその周辺のユニットテストを書いていきます。 これは、「バグは偏在(偏って存在)する」という特徴を利用して、一通り動かした後に見つかったバグの近くをテストしておけば、主なバグはつぶれるだろうという考えです。 これまでは、「ユニットテストは、できる

    極力ユニットテストを書かずに品質を確保する方法 - ひがやすを技術ブログ
  • Part3 超小型BASICインタプリタを作ってみよう

    知的にエキサイティングな行為はいろいろあります。例えば,パズルを解くこと,囲碁や将棋をたしなむこと,プログラミングなどがそれにあたります。 なかでも,プログラミングにはパズルや囲碁・将棋にない大きな特徴があります。それは,プログラミングに使用する言語処理系を,プログラミングによって生み出すことができという特徴です。パズルを解くことでパズルが生み出されたり,将棋を指すことで将棋のコマが生まれるようなことはあり得ません。しかし,プログラミングの世界ではそのようなことがあり得るのです。それを体験できることが,ほかと異なるプログラミングならではの面白さと言えます。 「いや,理屈はそうであっても,難しくて僕らに作れるわけがない…」,そう思う方々もいるでしょう。もちろん,大企業や有名な団体が開発し,配布しているような有名言語処理系(例えば米MicrosoftのVisual StudioやGNUプロジェ

    Part3 超小型BASICインタプリタを作ってみよう
  • Programming Language Jobs and Trends : Gustavo Duarte

    In the last entry I argued that while learning programming languages comes at a high cost, good programmers should be proficient in multiple languages. I think of programmers as having language sets, based on the idea that knowing one language is not enough for a professional. The task then is to pick the language set wisely to minimize learning time and maximize the benefits to your career. Like

  • 引く手あまたのプログラミング言語は? | スラド デベロッパー

    優秀なプログラマはいくつものプログラミング言語を使いこなすものだが、現在の求人市場において、実際に需要の高い言語はどれなのだろうか。Gustavo Duarte氏が求人サイトDice.com等で調べた結果によると、アメリカにおいてはJava(16479件)、C++(8080件)、C#(7780件)、JavaScript(6749件)、Perl(5710件)、PHP(2641件)、Python(1408件)、COBOL(1207件)、Ruby(769件)、Lisp(33件)といった感じらしい。とりあえずJavaとC/C++/C#、あとJavaScriptを覚えれば、当分仕事には困らないようである。COBOLのしぶとさも目立つ。ちなみにHaskellやOCamlの求人は10以下だったそうだ。成長率では、C#とRubyが飛び抜けた伸びを示している。

  • 【ハウツー】今こそ再考察! C言語ポインタ徹底解説 (1) ポインタと1次元配列の関係 | エンタープライズ | マイコミジャーナル

    C言語は、ポインタが使える言語です。ポインタを使えば、メモリの直接的な操作など、より柔軟なプログラミングが可能です。一方、そのためにはポインタがどのようなメモリ領域を指し示しているか、またポインタ自体が有効なアドレスを保持しているかなどについて十分な理解が必要です。 稿では、C言語のポインタについて、配列との対比に焦点を当てて解説を行います。 *** C言語では、ポインタを配列のように扱うことができます。また、配列名はポインタに変換可能で、別のポインタに代入できます。 まずは1次元の場合について、ポインタと配列の関係を考えてみましょう。 宣言文の記述 いま、ポインタと配列を次のように宣言したとします。 char *p; ← char型へのポインタpを宣言 char a[5]; ← char型を要素とする、要素数5の配列aを宣言 この宣言の結果を図にすると、図1、図2のようになります。 図

  • 2008-04-17

    id:sumim:20080417:p1 で定義されたメソッド群について、おおざっぱにですが説明を加えたいと思います。 まず、簡単なところで「#と:」と「#の時だけ:」。前者は #or: のエイリアス。後者も、ほぼ #ifTrue: のエイリアスですが、引数を改めてブロック化することで #ifTrue: に渡しています。これにより、 true の時だけ:[#アホに] を、 true の時だけ:#アホに と、ブロック無しで書けるようにしました。 「#なります」と「#なって」は、レシーバを要素に持つ配列を作って返します。その結果、「#から:まで数えて:」の第二引数で、どんなふうに数値を読み上げるかを決めている条件記述として与えられたブロックを、配列にして渡すことができます。また、この二つのメソッドの返値はいずれも配列なので、 [3の倍数 の時だけ:#アホに]なって, [5の倍数 の時だけ:#犬

    2008-04-17
  • Whitespace - Wikipedia

    Whitespace(ホワイトスペース)は、プログラミング言語のひとつであり、またそれを動作させるインタプリタを指している。WhitespaceはGPLにより配布されている。実用言語ではない難解プログラミング言語のひとつ。 来 "whitespace" とは「空白」や「余白」を意味する英単語である。多くの一般的なプログラミング言語では空白に相当する文字(スペース、タブ、言語によっては改行も)は他の言語要素間の区切りとして使われている。しかし、言語 Whitespace においてはプログラムは空白文字だけで構成される(それ以外の文字列はコメント扱いで無視される)。そのため、一見するとプログラムであることすらわからないという珍しい言語である[1]。

    Whitespace - Wikipedia
  • 窓の杜 - 【NEWS】MS、日本語固有のニーズに対応した「Visual Studio」用ライブラリ集を公開

    Microsoft Corporationは10日、日を含むアジア各国固有のニーズに対応したテキスト処理用のライブラリ集「Microsoft Visual Studio International Pack」v1.0を無償公開した。Windows XP/Server 2003/Vista上の「Microsoft Visual Studio」2005/2008に対応しており、現在同社のダウンロードセンターからダウンロードできる。 「Microsoft Visual Studio International Pack」は、ひらがな・カタカナ・漢字といったアジア言語固有の文字列操作を行うクラスを収録した「Microsoft Visual Studio」用のライブラリ集。 日語文字列の操作に便利なライブラリとしては、数値データを漢数字の文字列に変換できる「East Asia Numeric

  • GitHub - cdiggins/cat-language: Cat - a statically typed functional stack-based programming language

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - cdiggins/cat-language: Cat - a statically typed functional stack-based programming language
  • 仙石浩明の日記: プログラマを目指すのに適した時代、適していない時代

    プログラマの道を目指すのに適した時代、適していない時代、 というのがあるように思う。 もちろんプログラマに限らず、あらゆる職種、それぞれについて、 適した時代というのがありそうだ。 最初に断っておくが、 適していない時代だからといって、その職種を目指すな、と言っているわけではない。 ただ単に、適していない時代であることを意識し、 適していないことを覚悟して ;-)、その道を目指すべきだ、という意味である。 現代は、プログラマを目指すのには適していない時代だとつくづく思う。 そんな馬鹿な、インターネットの普及によって、何でも簡単に調べられて、 その気さえあればいくらでも高度な勉強ができて、 いくらでもプログラマとしてのスキルアップができるではないか、 という反論が聞こえてきそうであるが、 もうしばらく黙って私の話を聞いて欲しい。 「自分なりに体系化するセンス」で、長久氏曰く: 「仙石浩明の日

  • 試訳 - コードをセキュアにする10の作法 : 404 Blog Not Found

    2008年01月05日02:45 カテゴリ翻訳/紹介Code 試訳 - コードをセキュアにする10の作法 全コーダー必読。プログラマーだけではなく法を作る人も全員。 Top 10 Secure Coding Practices - CERT Secure Coding Standards 突っ込み希望なので、いつもの「惰訳」ではなく「試訳」としました。 Enjoy -- with Care! Dan the Coder to Err -- and Fix コードをセキュアにする10の作法 (Top 10 Secure Coding Practices) 入力を検証せよ(Validate input) - 信頼なきデータソースからの入力は、全て検証するようにしましょう。適切な入力検証は、大部分のソフトウェア脆弱性を取り除きます。外部データは疑って掛かりましょう。これらにはコマンドライン引数、

    試訳 - コードをセキュアにする10の作法 : 404 Blog Not Found
  • 一般人よりプログラマが優れている10の理由 - あと味

    私は常日頃、「プログラマって絶対優秀だよなぁ」と感じています。そう思っている理由を10個にまとめてみました。 ちなみに、私はプログラマではありません。一般人です。現場を知らないので、理想論に近い話になっていると思いますがご了承ください。どうやらおもいっきり理想論っぽいです。 抽象化・具体化ができる オブジェクト指向限定かもしれません。一般人よりもものごとの質を見極める目を持っています。また、その訓練をしています。多くの偉人たちは、このスキルを持って、人々を導いてきました。 適材適所ができる どの言語を使うべきか、どのライブラリを使うべきかということの最適解を常に模索しています。一般人よりも適材適所に対する感度が高いと思います。 MECEなグルーピングができる 関数やクラスなど、漏れ・重複が極力ない設計を心がけています。一般人は、グルーピングしても漏れも重複も発生してしまうことが多いです。

    一般人よりプログラマが優れている10の理由 - あと味
  • KENJI

    更新履歴 DNS拡張EDNS0の解析 Linuxカーネルをハッキングしてみよう Windowsシステムプログラミング Part 3 64ビット環境でのリバースエンジニアリング Windowsシステムプログラミング Part2 Windowsシステムプログラミング Part1 Contents インフォメーション 「TCP/IPの教科書」サポートページ 「アセンブリ言語の教科書」サポートページ 「ハッカー・プログラミング大全 攻撃編」サポートページ ブログ(はてな) BBS メール このサイトについて テキスト 暗号 詳解 RSA暗号化アルゴリズム 詳解 DES暗号化アルゴリズム crypt() アルゴリズム解析 MD5 メッセージダイジェストアルゴリズム crypt() アルゴリズム解析 (MD5バージョン) TCP/IP IP TCP UDP Header Format(IPv4) Ch

  • C# によるプログラミング入門 / ++C++;// 未確認飛行 C

    C# によるプログラミング入門です。C# 初心者の方はもちろん、これからプログラミングを始めようという方も対象としています。

    C# によるプログラミング入門 / ++C++;// 未確認飛行 C
  • ロベールのC++入門講座を読んで C++ を初歩の初歩から再入門するよ - 前編 - ひげぽん OSとか作っちゃうかMona-

    前置き 自分の C++ レベルに絶望したので「ロベールのC++入門講座」を読んで再入門していく過程を日記に書いていきます。 「おまえはそんなことも知らずにコードを書いていたのか!」「それは間違い!」など叱咤激励募集中です:-) 読んでみたら、たくさんの驚きがありました。 スルーせずに読んでもらえると1つくらい役に立つことを提供できるかもしれません。 例えば5章のデフォルト引数に関数を使える例とか。 ルール 前置きはともかくはじめましょう。13:48にスタバで始めました。 読んで行くうえでいくつかルールを決めます。 知らなかったことは正直に知らなかったと書き、自分が読んで分かる説明を書く。 知識が曖昧だった所も同様に明確な説明を書く。 悩んだ内容を書く。 理解が怪しい所は必ずコードを書く。 さあ1章から読んでみよう。 1章 まずは使い方(13:50) 各 OS 毎に C++ の開発ツールを紹

  • BOGEM78 > Situs Game Terbaik untuk Pecinta Game Online

    Kalau kamu merasa dunia game online makin ramai tapi makin sulit cari yang benar-benar cocok, saatnya kenalan sama Bogem78 situs yang dirancang khusus buat para pecinta game digital yang ingin lebih dari sekadar main biasa. Di BOGEM78, bukan cuma soal menang, tapi soal pengalaman main yang totalitas. Mulai dari tampilan yang ringan, loading cepat di semua perangkat, hingga fitur lengkap yang bisa

    BOGEM78 > Situs Game Terbaik untuk Pecinta Game Online
  • ホワット・ア・ワンダフル・ワールド ファミコンプログラミング

    一番身近な 8 bit CPU ということで. しかし,思ったよりも情報が少ない.以下のサイトが有名らしい.というか,非常に素晴らしい決定版サイト. ギコでもわかるファミコンプログラミング まだオープンソースの時代とかじゃなかったし,極めて厳しいハードウェアリソース上でのプログラミングにならざるを得ないため,ロストテクノロジーの塊.リソースが厳しすぎるので,C コンパイラとかもあるにはあるけど,使えない感じ… あと,こういうゲーム機の hack は,どうしてもアングラ的になってしまうのでいろいろアレ.さすがにファミコンぐらい枯れてると,生々しさは消えてくるけど. ファミリーコンピュータ : wikipedia.ja 1.8 MHz の 6502 互換 CPU に,2 KB の RAM + 2 KB の VRAM.よくこんなハードで,女神転生とかドラクエが実装できたものだと,驚愕するしか

  • Mercurial の利用

    重要: Mercurial の 1.x ⇒ 2.0 では、 コンセプト/操作性/互換性等における大きな改変はありません。 あくまで通常の定例アップデートに過ぎませんので、 従来の版を元に書かれている情報の多くは、そのまま適用可能です。 はじめに ノート PC での移動中作業が多くて 「オフラインでコミット/ブランチ作成/履歴参照/差分参照できない」 ことに不便を感じていたり、 「システム構成例」 に示すような構成管理の仕組みを必要とした経験がある場合、 分散リポジトリ形式を用いる Mercurial は、 試してみる価値のあるソフトウェア構成管理 (SCM: Software Configuration Management) ツールと言えます。 しかし、 CVS などを常用して SCM ツールの原理/概念を理解している人でも、 意外に「分散リポジトリ」という考え方がピンとこない場合が有る

  • プログラマの壁 - あどけない話

    プログラマに向いている人と向いていない人がいるそうです。 Jeff Atwood さんの「どうしてプログラマに・・・プログラムが書けないのか?」: プログラムを書ける者とプログラムを書けない者の間にある大きな溝についてはよく知られているが、プログラマの職に応募してくる人間は、すでにこの溝を飛び越えているものだとばかり思っていた。明らかにこれは妥当な仮定ではないらしい。プログラムを書けないプログラマの面接で時間を無駄にしないために、FizzBuzzスタイルのふるい分けが必要ということだ。 どんなことでも向き不向きはあるでしょうから、これには納得いきます。しかし、プログラマになれる人の中にも、溝があるようです。 Joel Spolsk さんの「Javaスクールの危険」: 私のささやかな経験から言わせてもらうと、伝統的に大学のコンピュータサイエンスのカリキュラムで教えられているもので、多くの人が

    プログラマの壁 - あどけない話
  • プログラミングのスピードを上げる方法 - teruyastarはかく語りき

    http://q.hatena.ne.jp/1203667934 ソフトウェア開発やプログラミングのスピードを上げる方法はありませんか? プログラマーとして生きていこうと決めたのですが、いつも見積もりの3倍時間がかかってしまいます。 そのため いつもつらい思いをしています。 環境を良くしようとHHKLite2を使い、カスタマイズソフトでホームポジションから離さずにプログラミングしています。 マウスもゲーム用の高精度のものを使っています。 調べ物にもタブブラウザを使い、拡張し続けて効率化をしています。 DualCoreマシンを使いメモリもたくさん積み、障害がないように心がけがけています。 出始めのころから効率化のためにエクストリームプログラミングも取り入れていました。 単体テスト、リファクタリングも当然行いますが、余計に開発速度が落ちています。 しかし開発速度は効率化とは無縁だとすら感じてい