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
2008年01月08日18:20 カテゴリOpen Source 勝手に追補 - パッチの拒否率をさげる10の方法 見事な記事。ヤラレタ。 パッチの拒否率をさげる10の方法 - TokuLog 改め だまってコードを書けよハゲ 作者/メンテナにはパッチをうけとる義務も義理もない さらによくするべく追補。 svn HEAD でパッチをつくる これは「最新版に対して」の方がいいでしょう。というのも、svnを使っていない人たちもまだまだ多いので。また、patchを送る前に、最新版を入手して確認しておくのも忘れないようにしましょう。 作者のスタイルにあわせる その通り。あえて追補すると、patchを送る側でなくて受取側の方。行頭tab/spaceのおかげでpatchがきれいに当たらない場合は、patch -l、行頭の空白を無視するオプションを試してみましょう。そのあとで、Cならindentをかける
「僕は、偉大なプログラマなんかじゃない。偉大な習慣を身につけたプログラマなんだ。」 --- Kent Beck 僕の信じた伝説 この一年間、あまりコードを書かずに、たくさんの本を読み、勉強ばかりしていました。そして、自分がかなり時代に取り残されたプログラマであることが身に染みて分りました。 僕の信じていたプログラミングの伝説は、こんな感じです。 初期工程で完全な仕様を作れ 実際問題、完全な仕様なんて作れるはずがありません。仕様は変わります。また、時代の変化やユーザの要望の変化により、要求も変わります。ですから、仕様が変わってもよいように、実装に柔軟性を持たせないといけません。 効率第一 大切なのは、コードの分りやすさです。効率はよいが分りにくい大きな関数を書くのではなく、効率はやや悪いが分りやすい小さな関数を書くべきです。関数呼び出しは遅いという伝説もありますが、最近のコンピュータは高速で
Danさんが、コードをセキュアにする10の作法という翻訳を公開していました。 翻訳には特にツッコミはないのですが…正直、10個も覚えられません! (>_<)ヒー! ので、勝手に再配置。かっこの中がお作法の名前です。 各段階でチェックしよう! 設計時に、 (セキュリティーポリシーを設計に織り込め) コーディング時に、 (セキュアコーディングの標準を採用せよ) (コンパイラーの警告レベルは最高に) テスト時に、 (有効な品質保証の手法を用いよ) もちろん実行時にも。 (入力を検証せよ) (他のシステムに送るデータは消毒(サニタイズ)しておけ) 迷ったときにはシンプルに!(シンプルイズベスト) デフォルトは拒絶、 (デフォルトで拒絶) 権限は最小、 (最小特権の原則を貫く) でもシンプル過ぎてはいけません。 (多重防御を実践せよ) これでちょっと覚えやすくなりました(私は)。内容は以下のページを
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) - 信頼なきデータソースからの入力は、全て検証するようにしましょう。適切な入力検証は、大部分のソフトウェア脆弱性を取り除きます。外部データは疑って掛かりましょう。これらにはコマンドライン引数、
2007年09月16日04:30 カテゴリArt LiveCodingに学ぶプログラミングの三原則 Mozilla24のLiveCodingの解説をやってきました。参加された方、お疲れさまでした。ほんと楽しかった。 言語もC++ありJavaありJavaScriptありActionScriptありPerlありとまちまちで、Editorもemacsありvimあり秀丸ありとまちまちでしたが、それでも全LiveCoderの共通項がはっきり見えたので、それを書き留めておきます。これらの共通項には私も含まれます。 コピペを恐れるな(don't be afraid to be a copycat) 参加者の一人として、100%フルスクラッチで書いていた人はいませんでした。たいていは関数単位でコピーし、それを適宜書き換えるというやり方をしていました。学校のテストでは反則もいいところですが、大人の世界ではこ
100日かければなんとかプログラムが勉強できるのではないか、 という仮説から、100日間だけ がんばって勉強を続けられるようにする企画です。 基本的には5人1組でやっていき、 お互いに進捗を報告することで、モチベーションを高めていきます。 詳しくはこちらをご覧ください。 100日プログラミングが終わりました。本当はもっと早くまとめエントリーを書きたかったのですが年末で時間がなくてすいませんすいません。年明けになってしまいましたね・・・。 さて、100日プログラミングですが、いろいろな気づきがありました。まとめてみます。 よかった点 やってよかったと思う点を書いてみます。 ・毎週、順番が来るのでプレッシャーになった →これは狙い通りですね。やっていないと恥ずかしいのでなんとかやろうとしました。やり始めてしまえば意外とすらすら出来るものですが、なかなかやらないのが問題なので。やるきっかけがある
インストールに必要な要件を書いてください。なにが必要で、なにがオプションなのか書いてください。 配布物のファイル名はてきとーにしないでください。package-$major-$minor.tgzでなぜだめですか。package-$major-rc4-$date-beta.tgzとか嫌がらせですか。 同じファイル名で違う内容の配布物を再リリースしないでください。hash値ってファイル名とその内容に対して作成されるんですよ。どんな小さな修正でもバージョンを上げてリリースしてください。 インストーラを再発明しないでください。対話的なインストーラだからインストールが簡単ですよって、人間がインストールすると仮定しないでください。そういうのはパッケージ管理システムに任せてください。 エラーをSTDOUTに出力しないでください。通常の出力はSTDOUT、エラーなどはSTDERRであることが期待されていま
プログラミング手法は、われわれの多くがソフトウェア開発業界に足を踏み入れたときから大きな変化を遂げてきた。開発ツールだけでなく、複雑な問題に対するソリューションを明示するために利用する言語も変化した。 今日、ソフトウェアの開発を仕事にする人々は複数の言語を駆使する。通常、彼らには必ず複数のプログラミング言語でアプリケーションを開発した経験がある。多くのアプリケーションを実装するに当たり、「ダイナミック言語」と呼ばれるクラスの言語が優先的に選ばれるようになった過程が興味深いので、ここでそれを見ていこう。 本稿はこのタイプの言語について、なぜ人気が高いのかを考え、これらのうちPerl、Python、そしてRubyを中心に、主な仕様や各言語の違いをいくつか理解できるよう見ていく。 ダイナミック言語とは何か? 技術的には、実行時に機能の修正が可能なものをダイナミック言語という。どういうことかという
Paul Graham / 青木靖 訳 2007年8月 いいプログラマは、自分のコードに集中しているとき、それを頭の中に保持しておくことができる。数学者が取り組んでいる問題を頭の中に入れているのといっしょだ。数学者は学校で子供たちが習っているように、紙の上で問題の解いているわけではない。彼らは多くの部分を頭の中でやっているのだ。問題の領域をよく把握しようと努めることで、普通の人が記憶にある育った家の中を歩き回れるように、数学者は頭の中で問題空間を歩き回ることができる。最高の状態で行われるプログラミングもそうだ。プログラムの全体を頭の中に入れたなら、それを思い通りに操れるようになる。 これはプロジェクトのはじめにおいては特に価値がある。それはプログラムを作り始めるときに最も重要なことが、やっていることを変えられるということだからだ。単に問題の解き方を変えるという ことではなく、解いている問題
The Neko Programming Language Neko is a high-level dynamically typed programming language. It can be used as an embedded scripting language. It has been designed to provide a common runtime for several different languages. Learning and using Neko is very easy. You can easily extend the language with C libraries. You can also write generators from your own language to Neko and then use the Neko Run
メディア関係者向けお問い合わせ先 メールでのお問い合わせ: pr-jp@google.com メディア関係者以外からのお問い合わせにはお答えいたしかねます。 その他すべてのお問い合わせにつきましては、ヘルプセンターをご覧ください。
コーディングスタイル 「プログラミングに関する雑多な事柄」がテーマの本連載、第2回の今回は「コーディングスタイル」について取り上げたいと思います。 コーディングスタイルは、コードの書き方に関するスタイルです。インデントのしかたや、変数名・関数名の表記法などはコーディングスタイルで扱われる要素の代表例です。 コーディングスタイルが異なると、同じ意味のプログラムでも見た目はだいぶ変わります[1]。 ●『プログラミング言語C』(通称K&R)のスタイル for (i = 0; i ●GNUプロジェクトのスタイル for (i = 0; i スタイルの一貫性 スタイルをごちゃまぜにするとコードが非常に読みづらくなるため、1つのプロジェクトの中ではコーディングスタイルの一貫性を守ることが重要です。 スタイルにも個人の趣味というものがありますが、個人の趣味よりもプロジェクト内での一貫性のほうが重要で
2007年06月13日02:20 カテゴリLightweight Languages 電脳言語を嫁に例えると.... Dave Thomasにインスパイヤされて。 日本 Ruby 会議 2007 - Log0610-S5 なぜRubyを愛しているのか - それは難しい質問だ。 なぜ奥さんを愛しているのか簡単には答えられないよね。 なお、「妻」となっているのは、私がたまたま「夫」だから。他意も鮃もございません。 以下、アルファベット順。夫に例えばバージョンや他の言語は読者の皆さんにおまかせします。 C 不器用 でも子だくさん。 他の嫁達の多くが、彼女の娘。 不器用だが、一番きつい仕事もしてくれるので、未だに娘達が家事を押し付けに実家にやってきたり。 C++ Cが高齢出産した娘 英才教育を受けたが、親の期待が大きすぎたのか、妙な行動を取る事も多く、美人なわりにもてなかった。 しかし親を吹っ切れ
MITのメディアラボで開発されている開発ツール「Scratch」が話題になっています。 小さなお子さんでもプログラミングに親しんでもらおう、という目的で作られたツールです。 この時代、誰でもプログラミングを学びたいものですよね。この「Scratch」、どれほど簡単なのでしょうか。 以下に詳しく見ていきましょう。 ↑ 起動直後の画面。左側からアクションを選んで組み立てていきます。 ↑ まずは猫を動かしましょう。左側から「Move 10 Steps」を選び、横のエリアにドラッグします。それをダブルクリックすると猫が横に動きます。もちろん「10」の値は好きに変えられます。 ↑ 次にさっきのブロックの下に「Say Hello for 2 seconds」をくっつけます。これでこのブロックをダブルクリックすると「横に動いてHelloと2秒間言う」というアクションがつくれました。 ↑ こうしてできたア
Jeff Atwood / 青木靖 訳 2007年2月26日 レジナルド・ブレイスウェイトが書いていることを読んだとき、私はそんなわけないだろうと思っていた。 私と同様、この著者は、プログラミングの仕事への応募者200人中199人はコードがまったく書けないということで苦労している。繰り返すが、彼らはどんなコードも書けないのだ。 彼が引用している著者というのはイムランのことで、彼は単純なプログラムも書けないプログラマをたくさん追い払っているということだ。 かなりの試行錯誤の末に、コードを書こうともがいている人たちというのは、単に大きな問題に対して苦労しているのではないことがわかった。やや小さな問題(連結リストを実装するというような)に対して苦労するということでさえない。彼らはまったくちっぽけな問題に苦労しているのだ。 それで、そういった類の開発者を見分けるための質問を作り始め、私が「Fizz
2007年04月09日16:15 カテゴリLightweight LanguagesTips perl - パッチなしでパッチする Perlに限らず、動的に名前空間を書き換えることができる言語ならコンセプトはパクれるはずのtips. 状況 人様が書いたモジュールにバグ発見! バグ直した パッチも送った でも作者が$VERSION++してくれない さあどうする? オレバージョンのモジュールをつなぎでつかう? でも標準でないものをイントールするのはいやん サブクラス作ってメソッドをオーバーライドする? でも問題のモジュールが継承をサポートしているとは限らないし そもそも問題のモジュールOOじゃなかったりもするし 代替モジュールを書いてCPANにうp? -- i.e. JSON::* でも元々のモジュールがあまりによく使われているし うpは簡単でもサポート大変そうだし.... 実例 See Al
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く