タグ

ブックマーク / m-hiyama.hatenablog.com (9)

  • MongoDBのmongoimportでハマった:変なJSON形式 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    MongoDBにデータを入れるために、mongoimportというコマンドがあります。使ってみることにしました。 コマンドラインには、データベース名、コレクション名、ファイルの形式、ファイルを指定します。JSON形式のファイルからコレクションにデータをインポートすることにします。 mongoimport --db test --collection a --type json --file data.json テストに次のような簡単なJSONデータを準備しました。 [ {"x": 1, "y": 2}, {"x": 3, "y": 5} ] Failure parsing JSON string near: [ はぁ? 正しいJSONデータのはずだが? ブラケット('[')でパーズエラーとか言っているので、ブラケットをはずしてみました。 {"x": 1, "y": 2}, {"x": 3,

    MongoDBのmongoimportでハマった:変なJSON形式 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • エスケープ祭り、バックスラッシュの嵐 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    文字列リテラル内に登場する二重引用符そのものやバックスラッシュそのものは、エスケープしないとまずいですよね。 内容: 文字列リテラルを置換しよう 正規表現の復習 シェルコマンドラインのエスケープ シェルコマンドラインをsystem関数に渡す ●文字列リテラルを置換しよう 架空の例を出します。でも、あまりにたわいもない例だとつまらないので、次のストーリーを想定しましょう。 Cプログラムをgettextを使って国際化するときは、国際化/地域化したい文字列リテラルを適当なマクロ(N_とか)で囲みます。例えば、N_("hello") のように。これを機械的にやるとえらいことになります。例えば、 #include N_("myheader.h")がマクロ展開されたら変なことになるでしょう。 ですが、「まーとりあえず全部置換してしまえ」ってことで(いいんかそれで?)、GNU sedを使って“文字列リテ

    エスケープ祭り、バックスラッシュの嵐 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • C/C++のとんだ落とし穴(ハマっちまったよ) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    とあるC++コードがコンパイルエラーするんですが、原因がまったく分からなかったんですよ。「そんなバカな?!」という感じ。しばらくハマってしまいましたよ。 結局、C++でもCでも同じことが起きることが分かりました。次は、僕が遭遇したのと同じ現象が起きるC言語のソースコードです。 // -*- coding: sjis -*- // strange.c struct ThreeNums { int x; // 負の数も指定可能 int y; int z; }; int total(struct ThreeNums nums) { return nums.x + nums.y + nums.z; } コンパイルすると: $ type tdm-gcc tdm-gcc is aliased to `/c/Installed/TDM-GCC-64/bin/gcc.exe' $ tdm-gcc --ve

    C/C++のとんだ落とし穴(ハマっちまったよ) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    iww
    iww 2016/04/17
    懐かしい
  • Web上で発生する膨大な量の不愉快と困惑 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    とあるフォームを入力したときのエラーメッセージ。 契約者名 姓(フリガナ)は全角カナで入力してください。 契約者名 名(フリガナ)は全角カナで入力してください。 お客様番号をご利用されているご住所の番地号 小字は全角で入力してください。 お客様番号をご利用されているご住所の番地号 番地は全角で入力してください。 お客様番号をご利用されているご住所のフロア・部屋番号は全角で入力してください。 フリガナに関してはひらがなを使ってしまった。番地などの数字は、僕は常にアスキーコードのほうが入るように仮名漢字変換(IME)を設定している。それでエラー … って納得いかない! 僕個人でも、こういう事態にしょっちゅう出会う。Web全体では、このての不愉快と困惑の総量は膨大なものだろう。毎回「なんで?」と思うわけだが、実際なんでこういうエラーを出すのかが分からない。理由があるのだろうか、単に悪しき習慣が固

    Web上で発生する膨大な量の不愉快と困惑 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    iww
    iww 2013/05/30
    「半角入力された文字を自動で全角にする機能」が課金アイテムになってたらいいよね。
  • JavaScriptでnewが不要なコンストラクタ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日の「JavaScriptでシーケンシャルな作業をゆっくりと行う方法」で自作のtaskman.jsを紹介しましたが、最初は、JSDeferred(http://cho45.stfuawsc.com/jsdeferred/doc/intro.html)を使おうかと思ってました。やることを限定すれば関数2つで済んでしまうので、気まぐれでtaskman.jsを書いたのですが、もっと色々やりたいならJSDeferredのようなチャンとしたライブラリがお勧めです。 ところで、JSDeferredのソースに次の1行がありました。 function Deferred () { return (this instanceof Deferred) ? this.init() : new Deferred() } 最初、「ん? なんだこれ」と思ったのですが、しばらく眺めて「オオオーッ、これはいい!」と叫んで

    JavaScriptでnewが不要なコンストラクタ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    iww
    iww 2011/12/08
    あとでコード読み返すときに混乱しそう
  • 文字コードのイジワルジイサン - 檜山正幸のキマイラ飼育記 (はてなBlog)

    若者:「これは半角アルファベットで…」 檜山:「ちょっと待て、半角ってなによ、半角って?」 若者:「えーと、半分という意味かと」 檜山:「なにが半分?」 若者:「幅が半分のことです」 檜山:「幅のことだよね。だけどさ、文字の幅ってレンダリングの問題でしょ。フォントやレイアウトでどうにでもなるじゃん。半角って何を基準に半分なの? それ何ポイント? それ何ミリ? ピクセルでなんぼ?」 若者:「ほんとの幅のことじゃないですよ。1バイト文字のことです」 檜山:「イチばいとぉー? 文字が1バイトって、なにそれ?」 若者:「1文字が1バイトのデータで…」 檜山:「さっきアルファベットって言ってたよね。例えば'a'とか'b'とか、そんな文字のことだよね」 若者:「そうです」 檜山:「'a'が1バイトなの?」 若者:「はい」 檜山:「UTF-16でも'a'が1バイトのデータなの?」 若者:「あっ、いえ。1

    文字コードのイジワルジイサン - 檜山正幸のキマイラ飼育記 (はてなBlog)
    iww
    iww 2009/10/11
    イオナズンのガイドラインを読んでいるみたいな感じがした
  • もう一度、ちゃんとJSON入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    僕自身も僕の周辺もJSONをよく使います。でも、細かい点でけっこうミスをやらかしています(苦笑)。このエントリーで、JSONを使う上で注意すべきこと/間違いやすい点をすべて列挙します。 内容 兼チェックリスト: 仕様原典さえ読めば完璧(のはずだが) 数値の前にゼロを付けてはいけない 16進数表記も禁止だよ 数値の前にプラスを付けてはいけない 小数点からはじまる数値はダメ 用語法が違うよ:プロパティとメンバー メンバー名には常に文字列を使う 空文字列""もメンバー名に使える 配列要素はキッチリと並べよう 文字列を囲むには二重引用符だけ 文字列内のエスケープが微妙に違う 仕様にないエスケープは構文エラー undefinedもNaNもありません ラッパーオブジェクトは使わないのが吉 型システムとtypeofに関する注意 最後に 仕様原典さえ読めば完璧(のはずだが) JSONは、小さくて簡単な仕様

    もう一度、ちゃんとJSON入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • あの福井市の小学生、その驚くべき発見とは (2) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    (前のエントリーの続きです。) 面積 = 内部点の個数 + 周囲の長さに依存する数 の「周囲の長さに依存する数」の予測はつきましたか? … … … これは、「周囲の長さ/2 - 1」となります。結局、面積を求める公式は、 面積 = 内部点の個数 + 周囲の長さ/2 - 1 中藤小学校の先生が出した宿題の場合、周囲の長さが16だったので、「周囲の長さ/2 - 1」の部分が「16/2 - 1 = 8 - 1 = 7」となり、 面積 = 内部点の個数 + 7 だったわけです。 下の図は、僕が方眼紙に描いてみた少し複雑な例です。確かに、「面積 = 内部点の個数 + 周囲の長さ/2 - 1」となっていますよ。 特に、宿題の例(e)のように、内部点をもたない“細い図形”のときは、 面積 = 周囲の長さ/2 - 1 となり、面積は周囲の長さだけで決まる(そして逆に、周囲の長さは面積だけで決まる)ことにな

    あの福井市の小学生、その驚くべき発見とは (2) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    iww
    iww 2008/03/06
  • 福井市の小学生が驚くべき発見 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    たまたま目にした論文に面白いことが書いてありました。 随分と昔(1976年)のことらしいのですが、福井県福井市中藤<なかふじ>小学校の先生が、「図形の周囲の長さから面積は求められないし、面積から周囲の長さも求められない」ことを子供達に納得してもらうために、次のような宿題を出したんだそうです。 次の図の「S」と書かれた四角は正方形のタイルです。このタイルの一辺の長さを単位として測ることにして; 図形(a)の周囲の長さは16、面積は16です。たまたま長さも面積も16でしたが、これで法則性があると早とちりしてはいけません。(b)から(e)までの周囲の長さと面積も求めてみなさい。 驚くべきことに、先生の意図に反して、とある子供が“周囲の長さと面積の関係”を発見してしまったというのです。 この子の発見は、その前年(1975年)出版の論文集(University of Tokyo Press)に公表さ

    福井市の小学生が驚くべき発見 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    iww
    iww 2008/02/08
  • 1