なんかさ、3回に1回出力するだけの簡単なプログラムのお仕事ってあるじゃん。 if ( (++counter % 3) == 0) printf("Fizz\n"); これって意外と難しいんだよね。 ……なんてことを言うと「おいおい、天下のやねうらお、ついに頭おかしくなったか」とか言われるだろうけど、これ実際うちの仕事であった話で、このコードが原因でお客さんと大きなトラブルになった。 あまり具体的には言えないので、ちょっと別のものに置き換えて話すけど、それは、ひよこの餌やりプログラム(仮)だったわけ。 上のプログラムは、3回に1回だけど、このソフトには、N時間に1回、餌をやるロジックが書いてあった。 if ( (++counter % N) == 0) printf("餌やるでー\n"); なんかこんな感じな。それでNの値は、UI(ユーザーインターフェース)で調整できる作りにしてあった。一度
Debian Project/Google ソフトウェアエンジニア鵜飼文敏さんの講演動画を見たのでまとめ。 内容は、フリーソフトウェア、オープンソフトウェアのハッカー、Google内のハッカーがどのようにソフトウェアを作っているか。 少し前の講演だけど、ハッカーを目指す上で非常に参考になった。 ハッカーの特徴 ハッカーとは Hacker ethic ハッカーのソフトウェアの作り方 ハッカーの開発スタイル 手順 要求仕様 設計 実装 テスト デバッグ チューニング ハッカーに近づくには 必要な知識 知識の習得の仕方 ハッカーと仕事をするときの問題点 その他に紹介されていた書籍 感想 参考 ハッカーの特徴 普通の人をはるかに上回る高い生産性 高品質のソフトウェアを作りだす ハッカーとは ハッカーズ大辞典によると、 プログラム可能なシステムの細かい部分を探ったり、その機能を拡張する方法を探求した
マイカーが故障したり、修理が必要になったりすることは、車を所有している限り避けられない出来事です。特に大きな修理や部品の取り寄せが必要な場合、車が長期間入院することも珍しくありません。突然の故障や事故などで車が使えなくなると、日常生活に大きな支障をきたします。通勤や通学、買い物や家族の送迎など、車がないことで多くの不便が生じるでしょう。 そんな時に非常に便利なのが長期で借りられるレンタカーです。短期間のレンタカーでは費用がかさむことがありますが、月単位での長期レンタカーを利用することで、経済的に負担を軽減しながら、車を持つのと同じように利用することができます。特に、修理に1ヶ月以上かかるような場合、長期レンタカーは最適な解決策です。 この記事では、車の修理が長期間に及ぶ場合に、長期レンタカーがどのように役立つかを詳しく説明します。車が使えない間のストレスを軽減し、生活のリズムを維持するため
はじめに コメントサーバーは、ニコニコ関連サービスのコメントを司るサーバーである。本稿は、ニコニコ広場で起こったコメントサーバーメモリ使用量増大問題について、我々コメントサーバー担当が行った調査と対策のまとめである。 今回のメモリ増大問題の解決にあたり、「仮説を立てる + 計測する→修正する→確認する」というパターンを繰り返した。このパターンは、ソフトウェアの様々な問題を調査するのに適用できる、基本パターンである。 コメントサーバー概要 コメントサーバーについて簡単に概説する。 コメントサーバーはニコニコ関連サービスのコメントを管理するサーバーである。基本的な機能は、新しいコメントの保存、およびコメントの出力である。ニコニコサービスのユーザーがコメントサーバーに直接触れることはなく、ニコニコのプレイヤーがコメントサーバーと直接やりとりを行う。ニコニコ動画の例でいうと、コメントサーバーを使用
Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基本とし
C#3.0からはvarと書くと型を明示的に指定しなくても済む。 var hoge = new HogeClass(); しかし例外処理をするためにこれをtry〜catchで囲みたいとする。 try { var hoge = new HogeClass(); hoge.XXX(); } catch { if (hoge!=null) hoge.YYY(); } このプログラムはコンパイルが通らない。catchのなかでは変数hogeにアクセスできない。try節が終わっているため、hogeのスコープが終わってしまうのだ。仕方ないのでhogeを外部のブロックに出す。 var hoge; try { hoge = new HogeClass(); hoge.XXX(); } catch { if (hoge!=null) hoge.YYY(); } しかしこれまたコンパイルが通らない。var hog
2013年3月23日 ネタ コーダー・デベロッパー・プログラマーさん達はそのソースコードにわかりやすい説明書きを「コメント」として残し、後から他の人が修正・編集しやすいようにコードを書いていきます。Stackoverflowの中でなんだそりゃー!というコメントがまとめられていたのでいくつか翻訳してみます!「クライアントからのムチャぶり迷言集 」に続き久しぶりにネタ系記事です。楽しんでください! ↑私が10年以上利用している会計ソフト! プログラマーさん達の名誉のため、先に言っておきますが、全てのプログラマーがこういったコメントを残しているわけではありませんよ!「こんなの書く人いるんだー世の中いろんな人がいるもんだー」くらいに軽く読んでみてください! 自信を失したプログラマー達 自虐コメント多数! // ごめん。 /* お願い…動いてくれ… */ // このコードは最低だ。知ってるだろ?俺も
2010年09月21日18:00 カテゴリ書評/画評/品評Lightweight Languages 言語設計者たちが考えること - 書評 - Masterminds of Programming オライリー社の担当編集者赤池様より献本御礼。 言語設計者たちが考えること Mastermind of Programming Federico Biancuzzi / Shane Warden 伊藤真浩 / 頃末和義 / 佐藤嘉一 / 鈴木幸敏 / 村上雅章訳 [原著:Masterminds of Programming] ソフトウェアに関する人文系書籍としては、間違いなく最重要の一冊。今後これなしでソフトウェアに付いて語ることは慎まれるであろう。 このような重要な一冊に査読者としてお手伝いできたことは、光栄としかいいようがない。 本書「言語設計者たちが考えること」、原著"Masterminds
闇プログラマー(やみ-)とは、IPアドレスを改ざんしたり……することのできる高等スキルを持つ者に与えられる称号である。※これはbot処理です 概要[編集] 闇プログラマーは、闇のソフトウェア・テクノロジーを持つ者たちで、闇のインターネット内で暗躍する最高レベルのスキルを持つプログラマーたちに与えられる称号である。 歴史[編集] 伝説では、古代では誰にでも使えるとされた、肥大した言語定義がある手続き型言語COBOLと、単なる機械語ランチャーBASICが、コンピューティングの世界を混沌に貶めており、シンプルな言語定義の関数型言語は弾圧されていた。 そのうち、コンピューティングの世界が大きくなり分化が始まると、古の技術では争いが絶えずデスマーチと呼ばれる紛争が続いた。このとき、北欧からオブジェクト指向がもたらされて世界に秩序がもたらされると思われたが、旧世界の言語使いたちがオブジェクト指向を歪曲
@vjroba 某N社で「メソッドを作ると処理が上下に飛んで可読性が落ちるので、出来る限り一つにまとめてください」と言われたことがある。僕は300行で挫折したが、1万行メソッドを書ききった強者がいた。クラスを作るには申請書が必要だった。
わたしはこれまで、C言語、Visual Basic、SAP ABAP、最近になって ASP.NET C# などの言語を使ってきた。 「自分でクラスを作ってオブジェクト指向っぽいことをしている」なんてことはまったくない。特に「メンバー関数をstatic宣言すればインスタンス宣言をしなくてもいい」ということ知ってからは、メンバー関数を従来のファンクションのように使っている。共有変数も、pubulic static宣言していまう。したがってプロパティなんて作らない。 staticを理解していない人のコードを見ると、いちいちインスタンス宣言しているので笑ってしまう。データベースにアクセスするアプリケーションをC#で書いているのだが、Visual Studioで供給しているSQL関係のクラスを使えばできてしまうのだから。 オブジェクト指向の入門書では、クラスが持つ隠ぺい性が強調されているが、これは他
The document appears to be a collection of messages and links posted on a forum discussing various programming languages and parallel computing topics, including threads, actors, and memory walls. References are made to languages and technologies like Erlang, Go, Java, Haskell, and Intel's Single-Chip Cloud Computer. The posts also discuss parallelism approaches on different platforms and applicat
はじめに MSDNライブラリには、マイクロソフトの技術情報が大量に掲載されていますが、英語版に比べ、日本語版の内容は中途半端なのが実状です。 たとえば、スレッドの優先順位を設定する「SetThreadPriority」関数の説明を見ると、英語版には「Windows Server 2008およびWindows Vistaでは、スタートアップやレジストリのRUNから自動実行されたプログラムに対するスレッドの優先順位指定が、システム開始から60秒程度効かない」との注意書きがありますが、日本語版にはありません。 また、仮想ディスクの情報を設定する「SetVirtualDiskInformation」関数を検索すると、英語版には説明がありますが、日本語版には項目自体がありません。 そこで本記事では、MSDNライブラリの英語版がスラスラ読めるように、とはいきませんが、英単語で引っかかることが少なくなる
2010年07月26日18:30 カテゴリMath C - で私も素数を数えてみた 世間は夏休みだそうだし、連日の猛暑で体調も底だし、というわけで私も素数を数えてみた。 10兆までの素数のリストを作ってみませんか? - 記者の眼:ITpro もしあなたがプログラマだったら、プログラムを書いて10兆までの素数のリストを作ってみてほしい。情報システムの開発に携わる人であれば、10兆までの素数のリストを出力するシステムの見積もりを考えてみてほしい。費用はどれくらいかかるか、納期はどれくらいか、あなたはどんな答を出すだろうか。仕様書はうまく書けるだろうか。 プライムナンバーズ David Wells / 伊知地宏監訳 / さかいなおみ訳 [原著:Prime Numbers: The Most Mysterious Figures In Math] といっても原田記者と同じように書いても芸がないので
a side-by-side reference sheet sheet one: version | grammar and execution | variables and expressions | arithmetic and logic | strings | regexes | dates and time | arrays | dictionaries | functions | execution control | exceptions | threads sheet two: streams | asynchronous events | files | file formats | directories | processes and environment | option parsing | libraries and namespaces | objects
追記:ハッキリ言ってこの正規表現はネタなので,実際に素数判定を行いたい場合は,もっと別な賢いアルゴリズムを使ったほうが良いです 正規表現で素数が判定できるという記事を見たので試してみた. http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/ この記事によると /^1?$|^(11+?)\1+$/ という正規表現を使うと,素数判定が出来るらしい.ある整数 n が素数かどうか判定したい場合は,"1" * nという文字列がこの正規表現にマッチするかどうかを調べればよく,マッチすれば非素数,マッチしなければ素数となる.ただし,"1" * n は,例えば,n が 4 ならば "1111" と 1 が 4 回連続して続く文字列となる. Rubyで書いた素数判定プログラムはこん
「飛ばねぇプログラマーはただのプログラマーだ」(紅の豚) 「夢だけど、バグじゃなかった!」(となりのトトロ) 「見ろ!人員がゴミのようだ!」(天空の城ラピュタ) 「前は何も考えられなくなって、飛べたの」(魔女の宅急便) 「40秒でコミットしな!」(天空の城ラピュタ) 「ようやく守らなければならないものができたんだ。納期だ」(ハウルの動く城) 「ポニョ、ソースコード!好きー!」(崖の上のポニョ) 「ヤな部長! ヤな部長!! ヤな部長!!!」(耳をすませば) 「黙れ小僧!お前にサンが救えるか?」「わからない。だが、オラクルと共に生きることはできる!」(もののけ姫) 「逝ってしまわれた…」(風の谷のナウシカ) 「違う部署で働かせてください!」(千と千尋の神隠し) 「変数名を大切にしないやつなんて大っ嫌いだ!」(ゲド戦記) 「あの子を解き放て!あの子はプログラマーだけど人間だぞ」(もののけ姫) 「
The document discusses C++ and its history and features. It describes C++ as an extension of C with object-oriented features like classes. It provides information on the creator of C++, Bjarne Stroustrup, and the evolution of C++ since its introduction as a way to add object-oriented programming to C. It also includes sample C++ code demonstrating the use of arrays and includes from the Boost libr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く