タグ

関連タグで絞り込む (228)

タグの絞り込みを解除

Programmingとtipsに関するjjzakのブックマーク (410)

  • iPhone MMSから送信されたメールを処理する際の注意点

    iPhone MMSから送信されたメールをプログラム等で処理する際の注意点です。 iScreenShotではiPhone/iPadからの投稿方法としてメールがあるのですが、処理できないメールがありました。これを調べていったところ、行き着いたのがMMSでした。 そこでiPhone MMSからのメールについて分かったことを残しておきます。なおサーバ構成や変換処理などは、外部からの推測なので実際とは異なるかもしれません。 なお以後の「外部メールサーバ」には、docomo、auなど「携帯キャリアのメールサーバ」は含みません。携帯キャリア間では専用の制御が入っている(入る)可能性があるのでご注意を。 MMSって? まずMMSについてですが、これについては各所に情報があるので、ここでは割愛します。 => マルチメディアメッセージングサービス – Wikipedia => RFC 4356: MMS a

  • 再帰関数には @tailrec アノテーションを - イトウ アスカ blog

    Scala東北のMLに流れてきた記事です。後で読み返し易いようにここにもメモしておきます。 非関数型言語に慣れ親しんだ身としては、「while使わないで再帰関数使えよ」という関数型言語のスタンスを見ると真っ先に思いつくのが「言いたいことはわかるが、でかいループ回したらスタックオーバーフローするべ」ということです。 しかし、Scalaをはじめとする関数型言語ではコンパイル時に再帰関数を最適化してスタックを使わないループ等にしてくれるそうでこの心配はないとのこと。ただし、これには条件があってScalaの場合 自分自身を呼ぶ末尾再帰関数であること 再帰関数が、オーバーライドされる可能性のないメソッドであること。つまりメソッドを定義するクラスが final であるかメソッド自体が final、あるいは private であること 末尾再帰関数というのは関数の最後の処理が再帰呼び出しになっているよう

    再帰関数には @tailrec アノテーションを - イトウ アスカ blog
  • GDBデバッギング覚え書き - しばそんノート

    使い方をよく忘れるので…。 リファレンス的なものではなく、要点のみの覚え書きです。 以下の記述は gcc 4.1.2 gdb 6.8 を前提としています。 コンパイル "-g"オプションは必須 "-O"系オプション(最適化)は付けない*1 stripしちゃダメ プログラムの実行 $ gdb (progoram) で起動して (gdb) runプログラムに引数を与えることもできます。また、標準入力、標準出力もリダイレクトで指定できます。 (gdb) run (arguments) < (input file) > (output file)以下のコマンドで環境変数も設定できるので、この辺を組み合わせればCGIのデバッグも可能です。 (gdb) set env LANG=C環境変数の確認は以下の通り。 (gdb) show envCGIのデバッグをする場合はこんな感じになるのかな? (gdb)

    GDBデバッギング覚え書き - しばそんノート
  • gdbでメモリダンプして構造体を発見するTips - I am Cruby!

    gdb知りたい構造体が見たくても見れない場合に便利。例えば、デバッグシンボルがないバイナリ内でSEGVしている場合など。*1 こんなコードを用意してみた。特徴コンパイルは-gなしhg->comment = "Hellow!" だとSEGVが発生  #include #include struct hoge { int id; char *comment; }; void throw_segv(char *comment) { int test[1000]; if(!strcmp(comment, "Hellow!")) test[-100000] = 9; } int main(void) { struct hoge *hg; hg = malloc(sizeof(struct hoge)); hg->id = 2565; hg->comment = "Hellow!"; throw_

  • Linuxカーネルの基本機能:ITpro

    カーネルはLinuxシステムの中核をなす重要なソフトウエア部品です。Linuxを使いこなすためには,カーネルの動作や仕組みに対する理解が欠かせません。連載では,Linuxカーネルの役割とその仕組みを体系的に紹介します。 第1回 カーネルの機能とその利用法 第2回 プログラムとプロセス 第3回 プロセス・スケジューリング 第4回 プロセス・メモリー管理 第5回 カーネル・メモリー管理 第6回 割り込み管理 第7回 ファイル・システム(前編) 第8回 ファイル・システム(中編) 第9回 ファイル・システム(後編) 第10回 ファイル名の文字コード 第11回 デバイス・ドライバ 第12回 ソケット・インタフェース 第13回 IPとルーティング 第14回 TCPとUDP 第15回 パケット・フィルタリングとQoS機能 第16回 排他制御機構 第17回 モジュール機構 第18回 カーネルの起動処理

    Linuxカーネルの基本機能:ITpro
  • 再入不可能な関数を C で実装する - いやなブログ

    再入不可能な関数を C で実装する 一度実行したら二度と中身を実行できなくなる再入不可能な関数を C で実装してみます。通常、このような関数はシングルトンなどの静的なデータの初期化に使いますが、ここではデータについては考えないことにします。 static 変数をフラグに使う まずは最も単純な方法から見ていきます。次の関数は static 変数をフラグに使って再入を防いでいます。厳密に言えば関数そのものには入ってしまっていますが、ここで気にしないことにします。 void once(void) { static int entered; // 最初は 0 if (entered == 1) { // すでに入ったことがある場合は return; // すぐ出る } entered = 1; // 初回の場合のみ、何かを実行する } この方法はシングルスレッドのプログラムではうまく動きますが、マ

  • Git初心者が絶対に覚えておくべきコマンド - idesaku blog

    Gitの使い方を覚えるにあたって、まず知っておきたいのは――git-cloneだのgit-commitだのは当然として――「操作をミスったときにどのように回復するか」である。それを実現するのは、次の3つのコマンドだ。 git-commit --amend git-reset git-reflog git-commit --amend あるファイルをコミットしたとしよう。 $ (edit...) $ git commit -am 'メッセージ生成処理を実装したよ。'しかし、しばらくして彼は気づいた。 def create_massage(param) ...typoしてる!massageじゃない、messageだ!マッサージを作ってどうする! 慌てるな。まずは直してステージに上げるんだ*1。 def create_message(param) ...$ git add .そして…。 $ gi

    Git初心者が絶対に覚えておくべきコマンド - idesaku blog
  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

    今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
  • C にクロージャのようなものを追加する Grand Central Dispatch - blog.8-p.info

    Snow Leopard には Grand Central Dispatch (以下 GCD) という機能がある。これは C と当然 C++, Objective-C, Objective-C++ にクロージャのようなものを追加し、マルチコアな CPU における計算の並列実行を簡単に書けるようにするらしい。 私は並列化には全然詳しくないのだけど、クロージャのようなものは気になるので調べてみた。 Block Apple Developer Connection にある Introducing Blocks and Grand Central Dispatch は GCD の全体像をコードを交えつつわかりやすく説明している。この “blocks” というのがクロージャのようなものだ。 Blocks are similar to — but far more powerful than — tr

  • 正規表現をいまのうちに覚えておきたい人のためのリソース集

    HTML5で正規表現がサポートされる、といったことをきっかけに、正規表現はプログラマだけでなくWebクリエイター全体のスキルとして求められていくものになっていくのではないでしょうか(参考:あまり知られていないけれど、HTML5では正規表現が使えるようになる )。 ここではそうした正規表現の初学者や、一度挫折したけど再入門したい人、そしてより高度な内容をマスターしたいすべての人のためのリソース集を作りました。 初学者向けには「はじめての正規表現」 「はじめての正規表現」は、文字通り正規表現という言葉は知っていても中味はよく分からない、という初学者の方にぴったりのコンテンツ。紙芝居形式のプレゼンテーションで楽しく正規表現について把握できます。 はじめての正規表現 初学者の方には、次の2つの記事も手っ取り早く読めて概要を把握できますので紹介しておきます。 使うほどに良さが分かる正規表現(1/2)

    正規表現をいまのうちに覚えておきたい人のためのリソース集
  • GDBで歴史をさかのぼれるように!なりました! GDB 7.0 の新機能Reverse Debuggingを使ってみた - 日記を書く [・w・] はやみずさん

    Twitter上で、@alohakun が言及していた GDB の reverse debugging の機能を使ってみました。 GDB にトレースと逆実行機能入ったのか。 http://www.gnu.org/software/gdb/news/reversible.html http://twitter.com/alohakun/status/4481139191 まずは簡単な使い方を説明したあとに、インストール方法を説明します。 こんなときに便利 「変なこと」が起きている大体の場所がわかっているとき デバッグ中に、大体どこで変なことが起きているかはわかっているけど、細かい場所は特定できていないとき、reverse debuggingが効果を発揮します。 GDBでステップ実行をしていて、「しまった!行きすぎた!」という経験はよくあると思います。こういうとき、今まではプログラムの実行を最

    GDBで歴史をさかのぼれるように!なりました! GDB 7.0 の新機能Reverse Debuggingを使ってみた - 日記を書く [・w・] はやみずさん
  • Hirai's memo(2004-09)

    ■ gdb で fork したプロセスを追いかける 昔の gdb のマニュアルには、 fork したプロセスを追いかけるには sleep(3) を使ってプロセスを止めた後、attach しろ。みたいなことが書いてる。HP-UX なら follow-mode を利用して楽に子プロセスを追いかけられるらしいが、、、デバッグのために HP-UX を買うのは電脳ぺんぎん氏並の神通力が必要なので自分には不可能だと思っていた。 しかし、 gdb-6.2.1 の ChangeLog をみると follow-mode ネタが多いのに気づいた。HP-UX って結構普及しているだなぁ〜と思っているとマニュアルにその秘密を発見。 http://sources.redhat.com/gdb/current/onlinedocs/gdb_5.html#SEC27 より On some systems, GDB pr

  • □株 ▽ソフトウェア --- Exkabu

    作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.

  • iPhoneSDK他 開発メモのまとめと言うか目次 2009.08.17版 - 電子趣味の部屋

    最新版はこちらです。 http://d.hatena.ne.jp/uosoft/20091231/1262186194 前回の目次からエントリーが17個増えてます。 アプリの作り方 HTMLJavaScriptiPhoneアプリを簡単に作る方法 Android SDK インストールからHello World実行まで iPhone/iPod touchのSafariやUIWebViewのJavaScriptで使えるタッチイベントのメモ センサー等ハードウェア関連 iPhoneSDKでスリープさせない方法 iPhoneの加速度センサの使い方 iPhoneで緯度経度を取得する簡単な方法 iPhoneGPSMapKitを使った地図を連動させる方法 iPhoneSDKで端末IDを取得する方法 ビュー操作関連 iPhoneSDKのUIViewアニメーション iPhoneSDKのiPhoneSD

    iPhoneSDK他 開発メモのまとめと言うか目次 2009.08.17版 - 電子趣味の部屋
  • 無名クラスへのパラメタの渡し方

  • 行列Tips大全 - RjpWiki

    RjpWiki はオープンソースの統計解析システム R に関する情報交換を目的とした Wiki です行列に関する Tips 大全 行列に関する操作は、R をマスターする基です。関連する Tips を脈絡なくできるだけ集めたいと思います。お気づきの正統派・裏技テクニックを お寄せください。一部重複はむしろ好ましいと思います。 要素ベクトルを与えて行列を作る > m <- matrix(x, nrow=i, ncol=j, byrow=TRUE, dirnames=z) # 一般形 nrow, ncol の一方だけを与えると(可能な限り) x のサイズから、もう一方が暗黙のうちに決定される x の長さが行列のサイズに足りないと、最初からりサイクル使用される > mm <- matrix(1:12, nrow=3, ncol=4) > mm <- matrix(1:12, nrow=3)

  • 紫ログ:GaucheでR風に行列演算を記述する - livedoor Blog(ブログ)

    【C.M.ビショップ「パターン認識と機械学習(PRML)」読書会の情報はこちら】 行列に関する操作は、R をマスターする基です。関連する Tips を脈絡なくできるだけ集めたいと思います。お気づきの正統派・裏技テクニックをお寄せください。一部重複はむしろ好ましいと思います。 PRMLに出てくるアルゴリズムを実装するには行列演算が書きやすくないと辛いので、Rの記法を参考にしながら試行錯誤中。 夢見ている書式仕様 matrix(): 要素ベクトルを与えて行列を作る: matrix(1:12, nrow=3, ncol=4) → (%matrix (iota 12 1) :nrow 3 :ncol 4) → (%matrix (%: 1 12) :nrow 3 :ncol 4) matrix(1:12, nrow=3) # 自動的に ncol=4 とされる → (%matrix (%: 1 1

  • プロジェクト名の変更 - まさとしの自習帳

    ググッてプロジェクト名の変更にチャレンジしたけど、実機への転送がうまくいかなかったので、ググッた情報との差分をメモ。 参考にさせていただいたサイトはこちら。Xcode3.0でプロジェクト名を変更する方法 〜 ザリガニが見ていた...。 こちらのサイトの情報を参考に変更を行ったところ、ビルドまでは成功したが、実機への転送で"旧名.app"を転送しようとして失敗。そこで必要となる処理は以下。 "プロジェクト名.xcodeproj"ディレクトリ内の"project.pbxproj"に含まれる"旧名.app"を、新しい名前に変更する これで転送に成功しました。大丈夫そうに見えてます。

    プロジェクト名の変更 - まさとしの自習帳
  • www.codeblog.org - CODE blog

    水漏れやつまりは水道設備があれば避けることは難しいトラブルですが、症状を確認した際に軽度と判断できた… Read More

  • @204: [objective-C日記]テキストファイルの入出力について

    2009年4月11日 [objective-C日記]テキストファイルの入出力について 自分の付加価値を上げるべく、iPhoneアプリを作ってみようと思いました。続くかどうかわかりませんが、そのメモ的な日記です。 とりあえず、先月MacBook(白、HDD160G、メモリ、4Gに増設)を購入。まずは、iPhone上ではなく、cocoaを使ってMacBookデスクトップ上で動くアプリを作ってみようと思います。 自分の経験上、簡単なソフトはとにもかくにもテキストファイルでデータをいじくるのが手っ取り早い。csv形式の書き方なら、扱いやすいし。そんなわけで、まずは基(と思っている)テキストファイルの入出力をobjective-C的な書き方でやってみました。 テキストファイルの読み込みは、stringWithContentsOfFileをつかって、 NSString* text = [NSStr