プログラミングに関する雑多なあれこれ 今号から、「プログラミングの光景」と題して連載することになった高林と申します。プログラミングは趣味として、仕事として、かれこれ10年ほど行ってきました。本連載ではプログラミングに関する雑多な事柄について書く予定です。 第1回は、プログラミングとは切っても切れない関係にある「デバッグ」について取り上げてみようと思います。 デバッグの時間 ソフトウェア開発において、デバッグに要する時間は相当のものです。プログラマとしては「いやいや、自分はそれほどデバッグに時間を使ってないよ」と否定したいところですが、冷静に考えてみると、現実には自分が考えているよりも(そうであってほしいと考えているよりも)デバッグに時間を要しているように思えます。それに、バグは他人が書いたコードに混入していることもあるので、たとえ自分がバグを入れなくてもデバッグするはめになります。 デバ
Web Debugging Proxy Application for Windows, Mac OS and Linux Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information). Read More Recent Developments For discussion on the latest ch
この記事のオリジナルは voxxed に投稿されたものです。 JavaScript関連の問題を抱えるチームをサポートする仕事を通じて、いくつか共通の問題点があることに気づきました。もしあなたもJavaScriptに対するイライラを感じているのであれば、この記事は何らかの助けになるかもしれません。おことわり:私がお教えするヒントはすでにご存知のものもあるとは思いますが、うまくいけば、多少なりとも有用な情報があるかもしれません。特にエンタープライズアプリケーションやCMSソリューションを構築する際に有効なヒントです。チームの誰もが話したがらないCMSのコードについてお話しします。いずれも必要に応じて採用できるものです。 debuggerステートメント 大半のブラウザでサポートされているにもかかわらず、JavaScriptを書く際に最も活用しきれていない機能の1つです。debuggerステートメ
はじめに DTrace とは 皆さんは DTrace をご存知でしょうか? DTrace は Sun Microsystems のブライアン・キャントリル(Bryan Cantrill)氏によって開発された、汎用情報採取のフレームワークです。 キャントリル氏へのインタビューでも語られているように、カーネルの動作状況を調査/確認することは、これまで非常に困難な作業でした。 しかし、DTrace の登場により、実際に稼動中のシステムのカーネルからも、安全に(かつ低コストで)情報を採取できるようになりました。 また、DTraceによって解析が容易になったことで、これまで解決することができなかったSolarisカーネルの(潜在的だったものも含めた)実装上の問題も、多数改善することができたのだそうです。 カーネル開発に関わったことがある方ならもちろん、通常のアプリケーション開発であっても、次のような
https://www.youtube.com/watch?v=7KS4L-mA_-c 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Takipi のFounderであるTalWeissのSan Francisco Java User Groupミートアップでの講演。本番環境で役に立つデバッグテクニックの紹介です。 1. スレッド名の活用 スレッド名はmutable(EJB除く)である。コードのコンテキストにあわせて、Thread.currentThread().setName(Context, TID, Params, Time,...);のようにすれば、トランザクションID、Serveletパラメータ、キューメッセージID、起動時間など、スタックトレースに役に立つ情報を表示できるようになる。 J
Google ChromeをWebアプリケーション開発に使っている方はたくさんいます。なぜならば、ChromeのDevToolsが便利だからです。ソースを見たり、編集したり、さらにブレークポイントを仕込んで処理をとめたりとWeb開発を大いに加速してくれる存在です。 そんなDevToolsだけを切り離したアプリケーションがChrome DevTools Appです。実用と言うよりも挑戦的な試みではありますが、面白いソフトウェアです。 Chrome DevTools Appの使い方 Chrome DevTools AppはGoogle ChromeのDevTools部分だけをnode-webkitを使ってアプリ化しています。同じようにnode-webkitを使って作ったアプリのデバッグに使える可能性もあるでしょう。ブラウザと密着してしまっているように見えましたが、こうやってデバッグ機能だけを切
4/2のGoogle Developers Live Japan #3の資料です。Read less
http://www.objc.io/issue-19/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 objc.ioはベルリンのメンバを中心に、月替りでiOS関連技術の特定のテーマに絞って発信しているブログ。もう既に知名度はかなり高いかと思いますが、毎月ものすごく力の入った特集ゆえに、その分ボリュームも相当で、読むのも大変というか、時間がないから読めてない人もいるかと。今月は#19としてデバッグの話題です。 Peter Steinbergerの「デバッグ : ケーススタディ」では、UIKit上のバグをLLDBで対処した話を紹介。 「デバッガーでのダンス - LLDBのワルツ」において、Ari GrantはLLDBの使い方を詳説してくれています。 「DTrace」はiOSシミュレータでしかまだ利用で
この前、研究室の先生に教えてもらったAdobe製のJavaScriptデバッガTheseusがかなり便利なのでご紹介します。 Theseusとは Theseusは、AdobeとMITの共同研究から生まれたJavaScriptのデバッガです(→学会論文)。ChromeとNode.jsの上で動きます。具体的に何をしてくれるのかをざっくり言うと、関数のコールを追跡して、BracketsというAdobe製のエディタに下画像のような感じで表示してくれます。 Theseusのすごいところは、コールバックの実行まで追跡してくれることです。もちろん、エラーが起きた箇所もすぐに見ることができます。また、デバッグをするとき、気になる箇所にconsole.logを挟むことがあると思いますが、Theseusを使えばその必要もありません。関数の横に表示されているコール回数をクリックすれば、その関数の実行ログを表示し
完了するまでに結構時間がかかるプログラムを実行している時,そのプログラムの進捗度を確認したくなることがままあると思います.ほんとに動いてんのかお前,みたいな. そうした時に考えうる最も簡単な方法は,こんな感じで進捗度を標準出力に流してしまうという方法でしょう. (1..100).each do |i| # 例えばここで何らかの重い処理をする (下のsleepはその「何らかの処理」の例) sleep 0.1 # ここで進捗を表示 (プログレスバーみたいなもっとリッチな感じでも可) puts "#{i}%" end 簡単なものだとこれで良いでしょうが,途中で端末のセッションが切れると「アッアッ」という感じになったり,そもそもプログラムの実行に際して端末が割り当てられいるとも限らないし,というか時間のかかるプログラムがその処理中ずっと端末を占領しているのはつらいので別の方法が欲しかったりします.
注目の新刊 Posted by Editor : 2009-03-27 13:54 『Debug Hacks――デバッグを極めるテクニック&ツール』がいよいよ4月末に発刊されます。本書はミラクル・リナックス株式会社の精鋭エンジニアたちが、長年のLinuxカーネル開発の経験で培ったデバッグテクニックを詳解したもので、開発者に必須のテクニックを網羅し、日常業務で役立つ実用的な技を惜しみなく披露しています。 すでに「早く読みたい」「面白そう」との声が寄せられており、そんな読者のみなさんの声に応えるべく、書籍発刊までに収録Hacksを1週間に1~2Hackのペースで計6本のHacksを公開しようと思います。 今回公開するのは「HACK #26 SIGSEGV でアプリケーションが異常終了した」です。このHackについて執筆者の吉岡弘隆さんは、 「HACK #26は、日ごろ読んでいるruby-
モバイルファースト室の@tomorrowkey です。 adb-pecoというスクリプトを作ったので紹介します。 https://github.com/tomorrowkey/adb-peco 不親切なadbの挙動 CookpadではAndroidアプリの開発にGenymotionを使っています。 普段はGenymotionだけを立ち上げて開発しているのですが、時折不具合報告を受けてAndroidデバイスを接続することがあります。 ひとまずlogcatを見ようとしたり、shellを起動してディレクトリ構造を見たりするのですが、こういうエラーが発生します。 Genymotionとデバイスの2つが接続されているので、adbがどちらに接続するのか分からずエラーを返します。 このエラーを見る度にデバイスIDをコピーしてオプションに追加しなければなりません。 $ adb devices List o
JavaScript デバッガ (JavaScript Debugger) JavaScriptのコードにブレークポイントを設定して、ステップ実行などを行えます。名前が同じで混同しそうですが、JavaScript Debugger (Venkman) ではありません。 SyntaxErrorなどのエラーが含まれるファイルは、デバッグできません。目的のファイルをJavaScript デバッガで見つけられない場合には、ブラウザコンソールでエラーが発生していないか確認します。 基本 起動方法 JavaScript デバッガは、そのデバッグ対象によって起動方法が異なります。それぞれ[Firefoxボタン]のメニューから、 Firefoxで実行しているWebコンテンツ … 【Web開発 → デバッガ】 Firefoxのシステム関連 (アドオンなど) … 【Web開発 → ブラウザツールボックス (ブ
使用頻度が高いのはデベロッパーツールを起動するCtrl+Shift+I(もしくはCtrl+Shift+J)と、コンソールを開閉するESC、コンソールでは補完候補を選択するtabなどが挙げられます。 例えば、長くて間違えやすいencodeURIComponentのスペルは、Ctrl+Shift+Jでデベロッパーツールを起動してコンソールを開き(コンソールが開かなかった場合はESC)、eだけ打ってtabキーを2回押せば encodeURIComponent が補完されるので、スペルを簡単にコピーできます。 JavaScriptデバッガの活用 前回はブレークポイントの設置方法を紹介しましたが、もう一歩進んだ条件付きブレークポイントの設置方法を紹介します。 まず、通常のブレークポイントを設置します。 この青くハイライトされた行番号の上で右クリックすると次のようなメニューが表示されます。 ここで
あるプログラミング言語がその仕事に適したものであるかといった議論は論争に発展しがちだ。時には宗教戦争の様相を呈することがあるものの、プログラミング言語がコーディングプロセスだけでなく完成した製品の特性にも影響することは多くの方が同意するところだろう。これについてカリフォルニア大学デイビス校のコンピューターサイエンス研究者らが、プログラミング言語のソフトウェア品質に与える影響(PDF)に関する調査結果を発表した。研究ではGitHubの729プロジェクト(17言語、29,000人が書いた8,000万行のソースコード、150万コミット)を分析。大きなサンプルサイズを利して混合研究法のアプローチをとり、複数の回帰的モデリングやテキスト解析を組み合わせて静的型付けと動的型付け、型付けの強弱といったプログラミング言語の特徴がソフトウェアの品質に与える影響を調べた。異なる手法による調査結果を組み合わせ、
Fiddler の勉強会に行って来ました。 Fiddler は HTTP の通信データを観たり、書き換えたりする事が出来るツールです。 イベントページ はじめての Fiddler reloaded | Peatix http://peatix.com/event/55312?utm_campaign=recommend&utm_medium=email&utm_source=55312&utm_content=7893 資料ページ はじめての Fiddler http://www.hebikuzure.com/fiddler/ Fiddler Scriptデモ http://www.slideshare.net/hagurese/fiddler-script-38509440 書籍 実践 Fiddler 作者: Eric Lawrence,日本マイクロソフト株式会社エバンジェリスト物江修,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く