@vjroba 某N社で「メソッドを作ると処理が上下に飛んで可読性が落ちるので、出来る限り一つにまとめてください」と言われたことがある。僕は300行で挫折したが、1万行メソッドを書ききった強者がいた。クラスを作るには申請書が必要だった。 2010-05-11 12:42:06
@vjroba 某N社で「メソッドを作ると処理が上下に飛んで可読性が落ちるので、出来る限り一つにまとめてください」と言われたことがある。僕は300行で挫折したが、1万行メソッドを書ききった強者がいた。クラスを作るには申請書が必要だった。 2010-05-11 12:42:06
Pythonはリバースエンジニアやソフトウェアテスターといったセキュリティのプロにも人気の言語です。本書では、ハッキングツールやテクニックの概念を解説したうえで、Pythonを使ったバイナリ解析技法について詳しく解説します。読者は、独自デバッガの構築、バグを発見するためのツールの作り方、オープンソースのライブラリを活用した処理の自動化、商用ソフトとオープンソースのセキュリティツールを連動させる方法などについて学ぶことができるでしょう。日本語版では、本書をより深く理解するための補足情報とリバーシングに役立つツールについての解説を加筆しました。/ART/OF/REVERSINGシリーズ第1弾。 関連ファイル サンプルコード(.zip) サンプルコード(.lzh) 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成
Secure Programming Lint SPecifications Lint First Aid for Programmers Splint is a tool for statically checking C programs for security vulnerabilities and coding mistakes. With minimal effort, Splint can be used as a better lint. If additional effort is invested adding annotations to programs, Splint can perform stronger checking than can be done by any standard lint.
数日前のはてブで、HTML/CSSベタ打ちしていた人の今日はどうなる?ていう記事がありましたが、 最近とみに思うのは、PHP/Ruby/Java/Pythonどれでもいいんですけど、いわゆるサーバープログラマーというか、クライアント側のコード書かないプログラマーって死亡の日が近いなーという背筋の寒さがあって、いや、サーバーがなくなるわけではないと思うんですが、最終的にはCRUDだけやっとけよお前みたいな扱いになるわけですよ。で、そうなったら、別にGoogle AppEngineのDataStoreでよくね?なんでサーバー立てる必要あるんだっけ?という時代が近いのか遠いのか来ないのか。要するにFlash/JS/Ajax等のクライアントコードがロクに書けないおっさんは将来が心配なのです。まる。 だってさ、最近のFlashってクリップの表示内容というかBitmapをJPEGにできて、でもFlas
19 名前: カラスビシャク(神奈川県):2009/07/03(金) 21:53:43.07 ID:FJmJm1Z+ 金を儲ける素質のある人間は64bitを無理して選ぶ。 サラリーマン気質は32bitを選ぶ 343 名前: イブキジャコウソウ(アラバマ州):2009/07/03(金) 23:38:07.02 ID:WEJDSeVW 64だろ。 メモリ4GB積めるのは大きい。 104 名前: ケンタウレア・モンタナ(千葉県):2009/07/03(金) 22:18:03.56 ID:3j+jS/zU ニュー速民「エロゲが動くか、それが問題だ」 645 名前: ナズナ(茨城県):2009/07/04(土) 18:05:33.36 ID:9MwA/O2n エロゲが64bit対応したら移行したいが 未だに800×600で作ってるのを考えると何年後になるのやら 646 名前: カタクリ(山形県):2
UKTKKNSHINF こういう名前の変数が出てくるのだが、意味わかる? 答え:受付禁止情報 今読んでいるPL/SQLコードは本当にひどい出来なのだが、その中でもネーミングが群を抜いてひどすぎてむしろ笑えてくるので、ここでさらしてみたい。 先ほどの例でわかると思うが、悪しきネーミング習慣である子音母音抜きの嵐である。変数名だろうが関数名だろうがこのルールで命名されているので、暗号文を読んでいるような気分になる。 他には、例えばこんなのがある。 SKSI 作成 HNKN 変換 KKT 確定 CHKN 中間 DTM Datetime DTA Data こうして見ると、ktkrやwktkとなんら違いがない。 "作成"のような、比較的簡単に対応する英単語が見つかるものまで日本語子音母音抜きで書くという徹底ぶり。でも"情報"はINFだったりする統一感のなさ。そしてこれらが単独ならまだしも、複合して出
kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から本格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl
_ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは本当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな
2007年8月に『Vistaにおけるキーボードカスタマイズ問題』として、Windows Vistaにおけるキーボードカスタマイズ問題について取り上げた。XPで定番であったキーボードカスタマイズソフト窓使いの憂鬱が、Vista対応できない状況に陥ったため、それまで「窓使いの憂鬱」に依存していたユーザがVistaに移行できない状況が生まれた。前回のエントリは状況の変化に伴う追記で非常に読みづらくなっているので、改めて問題と取り得る選択肢についてまとめておく。 キーボードカスタマイズ問題 そもそもの原因はVista以降において全てのカーネルモードコードに適切なデジタル署名が求められるようになったことだ*1。特にx64エディションではすべてのカーネルモードコードにデジタル署名が付与されてなければならない。個人が作成するソフトウェアにデジタル署名を付与する方法はなく*2、結果としてカーネルモードで動
もう1つの、DBのかたち、分散Key-Valueストアとは:分散Key-Valueストアの本命「Bigtable」(1)(1/3 ページ) RDBとは別の、クラウド時代のデータベースとして注目を浴びている「分散Key-Valueストア」。その本命ともいえる、Googleの数々のサービスの基盤技術「Bigtable」について徹底解説 クラウド時代のデータベース「分散Key-Valueストア」 グーグルがインターネットの世界をここまで席けんできた最大の理由は何でしょうか。実は、それは同社の優れた検索技術ではありません。グーグルが成し遂げた最も大きなブレークスルーの1つは、同社が生み出した巨大な分散データストア、「Bigtable」にあります。 Bigtableは、Google検索をはじめ、YouTubeやGoogle Map、Google Earth、Google Analytics、Goog
図解求む。 以下「プロトコル処理」と「メッセージ処理」を分けて扱っているが、この差が顕著に出るのは全文検索エンジンや非同期ジョブサーバーなど、小さなメッセージで重い処理をするタイプ。ストリーム指向のプロトコルの場合は「プロトコル処理」を「ストリーム処理」に置き換えるといいかもしれない。 シングルスレッド・イベント駆動 コネクションN:スレッド1。epoll/kqueue/select を1つ使ってイベントループを作る。 マルチコアCPUでスケールしないので、サーバーでは今時このモデルは流行らない。 クライアントで非同期なメッセージングをやりたい場合はこのモデルを使える: サーバーにメッセージを送信 イベントハンドラを登録;このときイベントハンドラのポインタを取っておく イベントハンドラ->フラグ がONになるまでイベントループを回す イベントハンドラ->結果 を返す 1コネクション1スレッ
はじめに 2012年5月現在、最近、このページはあまり更新できていません。すみません m(_ _)m。 D言語友の会 が、長期間ちゃんと更新されている D 言語関係の日本語サイトとしておすすめです。 こんにちは。ここは、プログラミング言語 D (D Programming Language, 通称D言語)を紹介するサイトです。 すでに Java など一般的なプログラミング言語の経験がある読者を前提として書かれています。 一部古いページを除いて、基本的に、D 2.x 系統の言語仕様をベースに解説しています。 → 更新情報は RSS で 目次 1. Dってどんな言語? サンプルコード色々 D言語を大きくカテゴライズすると、「C風の構文を備えた」 「静的型」の「ネイティブコンパイル」言語と いうことになります。オブジェクト指向やテンプレートメタプログラミングなど、 幾つかのパラダイムをサポートし
システムインテグレータ最大手NTTデータを率いる山下社長は若い頃、汎用コンピュータ用のデータベース開発に取り組み、プログラムを自ら作っていた。その経験から山下氏は「人生のどこかで手を動かしてプログラムを作る仕事を経験した方が絶対に面白い。20代あるいは30代の前半くらいまでに真水の仕事をどれだけやったか、それがその後の人生の豊かさにつながる」と同社幹部としては異例の発言をする。(聞き手は谷島 宣之=日経コンピュータ編集長、写真は小久保松直) 2009年度、100億円近い投資を計画していると聞く。狙いは何か。 100億円のうち、40億円くらいかけようと考えているのが、「倍速開発」という案件です。これが一番大きい投資になります。我が社としてぜひともやらないといけないのは、お客様のお気の召すまま、ご希望のオーダーメード・システムを、パッケージ・ソフトを使った場合と同じスピードで作って差し上げる、
はじめに C++の新しい標準規格である「C++0x」の大きな新機能の1つが、マルチスレッド処理のサポートです。 従来のC++では、マルチスレッド機能は標準規格の拡張としてコンパイラごとに提供されていたため、細かな部分がコンパイラやプラットフォームによって異なっていました。しかしC++0xでは、すべてのコンパイラが同じメモリモデルに準拠し、同一のマルチスレッド機能を利用できることになります(ただし、従来同様の拡張をコンパイラが独自に提供することも可能です)。 開発者の立場からすると、マルチスレッドのコードを別のコンパイラやプラットフォームへ移植するときの手間を大きく省くことができます。複数のプラットフォーム向けの開発を行う場合でも、種々雑多なAPIや構文をいくつも頭に入れておく必要がありません。 新しいスレッドライブラリの中心を担うのは、実行スレッドを制御するstd::threadクラスです
ちょっと技術的な話。oracle分かる人にしか分からないかも。 最近取引先のシステムを見る機会が何度かあったのだが、昨日すんごいとこ見た。 DBが重くて業務にならないというから、ちょっと中を覗かせてもらったらもうエラいこっちゃ。 ・業務ロジックの殆どをファンクション・プロシージャで構成している。なのに、キャッシュヒット率が妙に低い。 ・調べてみようと思ったら一回もstatspackが取得されていない。(担当者には、「statspack?syslogならとってあるんですが…」と言われた) ・各テーブルのindexがどういう訳か全列に貼られている。ちなみにindexは全テーブル例外なくその一個だけ(プライマリキーを除けばだが)。 ・と思ったら、PKが文字列だったりするテーブルがあちらこちらにある。 ・試しにファンクションを一つ二つ見てみたら、なんか普通にクロス結合されまくっていてちょっとくらっ
笑えないかも。 わたしの近所のプロジェクトで採用されている、斬新なプログラム開発手法についてご報告いたします。「IST」といいます。ISTとは「いきなりシステムテスト」の略です。どんな感じに進むかと申しますと、 システムテスト行程開始! 試験担当者がバグ報告票を書きます。 「バグ:アプリケーションのアイコンがありません」 開発担当者が対応します。 「理由:アプリケーションのアイコンを作っていませんでした」 「対処:アプリケーションのアイコンを作りました」 試験担当者がバグ報告票を書きます。 「バグ:アプリケーションのアイコンをクリックしても、なにも起きません」 開発担当者が対応します。 「理由:メイン処理がありませんでした」 「対処:メイン処理をコーディングしました」 試験担当者がバグ報告票を書きます。 「バグ:(再)アプリケーションのアイコンをクリックしても、なにも起きません」 開発担当
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
友人から以下のようなメールが送られてきて、ホントなの?と聞かれた。 1. プログラマがコードを書く。バグはないと信じている。 2. 製品テストが行われて30個のバグが発見される。 3. プログラマは20個のバグを修正し、残り10個はバグではないとテストチームに説明する。 4. 再び製品テストが行われ、バグ修正の結果5つの機能が正しく作動しなくなっていることが発見される。さらに15個の新たなバグが発見される。 5. 上記の工程3、4を数回繰り返す。 6. マーケティング部が楽観的な開発計画に基づいた製品発表を行ったことや、営業部からの圧力により、製品が時期尚早に出荷される。 7. ユーザにより100個のバグが発見される。 8. プログラマが他社に転職する。 9. 緊急で新たに開発チームが組織され、ほぼすべてのバグを修正する。 その過程で新たに500個のバグが生まれる。 10. テストチームの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く