ブックマーク / nippondanji.blogspot.com (10)

  • フォントは自由に変えられる。だから絵文字で何かを伝えるのはナンセンス。そんなことも分からなかったのか、Googleよ。

    Unicodeに絵文字が多数追加されたことは、以前から批判していたのだが、やはりというか何と言うか、しょっぱい問題が起こりつつある。 macOS SierraやiOS 10でピストル絵文字🔫が水鉄砲に変わることで起こる問題。 | AAPL Ch. 絵文字フォント次第で形が変わる。故にフォントが変わればニュアンスも変わる。自分と相手、あるいは今使っている機種と将来使う機種が同じフォントを使っているとは限らない。だからフォントを変更することで様々な問題が起きるわけである。 根的な問題=性質が異なるものを混ぜてしまった文字と絵は質的に性質が違う。 文字はその見た目ではなく、文字を組み合わせた単語、単語を並べた文章によって意味を持つ。フォントが違っても、見た目の違いはあれど、文章そのものの意味は変わらない。どのようなフォントで読んでも意味は通じるのである。 ところが、絵文字はそうは行かない

    フォントは自由に変えられる。だから絵文字で何かを伝えるのはナンセンス。そんなことも分からなかったのか、Googleよ。
    te2u
    te2u 2016/10/27
    絵文字は文字ではなくて単語。だからそこには意味があり、その解釈に関する問題が起きる。構成要素が異なるものを一つにしてしまったという問題。
  • 残業は悪か?あるいは日本人の生産性が低い最大の理由

    最近、残業をするのは社員が悪いというような記事を見たので、一言言っておこうと思う。 残業常習者が会社を壊す|トンデモ人事部が会社を壊す|ダイヤモンド・オンライン なぜ残業が常習化するか 最初に結論を言ってしまうと、経営が悪いからだ。経営と言っても事業戦略ではなく、組織運営という意味での経営だ。残業が常態化しているということは、組織運営ができていないことの証拠だと言っていいだろう。 なぜ残業の常態化が経営の失敗だと言えるのか。残業が常態化しているということは、組織がこなすべき仕事に対して人員が足りないことが原因として上げられる。人材の確保に失敗しているのは、経営側の失敗だ。 もし社員がダラダラと残って働いているのだとしたら、社員が何をすべきかということがトップダウンで明確に指示されていない兆候かも知れない。何をもってその日の業務が終わりだ判断とすれば良いのか。それは上司からの指示、つまり担当

    残業は悪か?あるいは日本人の生産性が低い最大の理由
    te2u
    te2u 2016/01/13
    カルビー会長の話は、引用元の冒頭に「経営者として残業代を支払うのが惜しいから、残業をするなと言っているのではありません。」とあるので、そういう趣旨ではないと思う。
  • SQLインジェクション対策に正解はない

    最近、SQLインジェクションのネタが盛り上がってるようだ。下記のTogetterまとめあたりが震源地だろうか。 「プリペアードクエリが基だけど、動的に SQL を組み立てる場合もあるから、そういう場合に備えてエスケープも知っておいたほうがいいかも」 - Togetterまとめ まとめを読んだ感想としては、「どちらの意見も間違ってはいない」というものだ。前提あるいは見方が異なるために、見解の相違が生じているだけのように思う。SQLインジェクションについては私も若干思うところがあるので意見を書いておこうと思う。 攻撃を防ぐのは難しいSQLインジェクションをはじめとするセキュリティ対策が難しいのは、ひとつでも穴があると致命的なダメージを受け得るということだ。「どうやって効率よくコードを書くか」とか「コードのメンテナンス性を高めるにはどう書くべきか」みたいな議論とは全く質が異なる議論が必要になっ

    SQLインジェクション対策に正解はない
    te2u
    te2u 2013/12/16
    この手の話題に「正解」「間違い」を安易に持ち込むのはどうかと思う。それぞれの利点・欠点をおさえて、対象の環境を鑑みて一つ一つ判断するしかない。あとはその環境の範囲内でルール化して、手法の分散を防ぐ。
  • IDの設計についてのさらに突っ込んだ議論

    今日も前回に引き続きデータベース設計の話をする。今回の話で一旦データベース設計については筆を置くつもり(ブログ書いてないで原稿書けよ>俺)であるが、その前に話をすっきりさせて置きたいと思う。最後を飾るテーマはIDの設計である。 数字しかないのに意味を含んだID前回のエントリを見ていただいた方から、次のような構造を持った学籍番号があるというフィードバックを頂いた。 全部数値で"入学年度下2桁"+"学科コード"+"学科内のあいうえお順の順位" このようなルールで割り当てた学籍番号を、単なる数値として扱うのであれば大きな問題はない。これは数値しか含まれていないので、SQLのデータ型としては単に数値型を使えば良いだろう。だが、学籍番号から入学年度を判断する、あるいは学科を判断するといった用途で使われるのであればやはり適切ではないといえる。リレーショナルモデルの観点だけからではなく、IDとして適切で

    IDの設計についてのさらに突っ込んだ議論
    te2u
    te2u 2013/12/10
    「IDがずっと変わらず使い続けることができるか」今までの自分の経験上、それを担保するにはシステム上で自分で定義するしなく、一般的には「サロゲートキー」と呼ばれているものに当たるらしい。
  • リレーショナルモデルのドメイン設計についての議論

    リレーショナルモデルを実践するには、ドメイン(≒データ型)を如何に正しく設計するかということが極めて重要になる。しかしながら、ドメインをどう設計すべきかという議論はあまりされていないように思う。その結果、ドメインについての理解はあまり進まず、データベース設計に失敗しているパターンが多いように思われる。 というわけで今日のテーマはドメインである。 集合を定義するリレーショナルモデルにおけるデータ型とは何か。リレーショナルモデルを実践するにはまずその点から理解する必要がある。 リレーショナルモデルでは、データ型はドメインと呼ばれる。ドメインとは、その属性(≒カラム)に入るべき値はどういったものかを集合として定義したものだ。言い換えると、属性値とはある集合の要素の一つであると言える。従って、ドメインを設計する際には、SQLで言うところのデータ型、つまりINTやCHARといったものだけでなく、その

    リレーショナルモデルのドメイン設計についての議論
    te2u
    te2u 2013/12/09
    ナチュラルキーをユニークキーにしたくないのは、制約が外部環境に依存するから。一意性の保証がシステム外でなされていて、コントロールできないのは怖い。だからそれを保証するための属性(ID)を持たせてる。
  • ナチュラルキーとサロゲートキーについての議論

    とあるブログエントリで「ナチュラルキーを主キーにしてはいけない」という主張を見かけたのでこれに反論しておく。これはリレーショナルモデル的には明らかに間違った考えだからだ。 リレーショナルモデルにあるのはナチュラルキーだけリレーショナルモデルには「サロゲートキー(代理キー)」という概念はない。まずこの点に注意して頂きたい。サロゲートキーとは、データベースアプリケーション開発において実用上必要とされる機能であって、質的には不要のものである。リレーショナルモデルでは、いわゆるナチュラルキーというものがあれば機能的には十分だからだ。 そのためにはまず「キー」という概念が何を指し示すかということについて正しく理解しなければならない。リレーショナルモデルではキーと呼ばれるものは候補キーとスーパーキーという2つの概念だけである。「タプル(≒行)の値を一意に決定することができる属性(≒カラム)の集合」の

    ナチュラルキーとサロゲートキーについての議論
    te2u
    te2u 2013/12/04
    経験的上、データ間の関係を表す属性の次元は低いに越したことない、と考えているので、基本的に一意性を示す属性(ID)は持つ。ただ、それがデータによって意味があったり代理キーになったりする。
  • RDBMSに関する典型的な誤解が絶えないという現実

    新入社員必読、データベースの基を理解しよう - データベースはなぜ必要なの?:ITproという記事に対するブクマで次のようなIDコールが来た。(現在はコメント返しへのお礼が入っているので、文字数制限のためオリジナルのコメントは少し切り詰められている。) "リレーショナルデータベースはすべてのデータを2次元の表形式で表現"こういうのもリレーションが2次元構造という誤解の一種なんだろうか。id:nippondanjiさんが書いてたような。 さて、この疑問に対する正解は如何なるものだろうか? つい先日「7つのデータベース 7つの世界」の書評で書いたばかりだが・・・ 言うまでもなくその通りである。 リレーションが2次元的な構造を持っているというのは典型的な誤解だ。(ちなみにリレーションの次元は属性の数に等しい。n個の属性があるリレーションはn次元。)リレーショナルモデルについてちゃんと学習してい

    RDBMSに関する典型的な誤解が絶えないという現実
    te2u
    te2u 2013/04/22
    テーブル設計をする際、大体テーブル単位で設計するのでこういう誤解が生まれるのかなとは思う。/一方で、こういう誤解によってRDBMSが一般的に広まったのではないかとも思う。
  • 私は如何にしてWindowsの呪縛から逃れ、Linuxデスクトップという涅槃の環境にたどり着くことが出来たのか。

    先日、いますぐWindowsを捨ててデスクトップでGNU/Linuxを使う10+の理由というエントリを書いたところ結構な反響があったと同時に、「Windowsから離れることなんて出来るワケがない」という否定的な意見も多く見られたように思う。確かにWindowsにしか存在しないソフトウェアを使う作業(例えばボカロ作曲)などをライフワークにしている人はWindowsから離れることはできないだろう。 最近はMacユーザーが劇的に増えてきた。筆者もかつては仕事Macを使っていた。Macでも仕事を進める上で困ることはほとんどなかった。(現在もそのMacは使っているが、OSXではなくPear OSが動いている。)筆者が幸運にもWindowsに縛られない仕事だったということも大きいだろう。(仕事上どうしてもWindowsから離れられないという人にはまず転職をお勧めしたい。プログラマやDBAなどのエンジ

    私は如何にしてWindowsの呪縛から逃れ、Linuxデスクトップという涅槃の環境にたどり着くことが出来たのか。
    te2u
    te2u 2011/12/30
    私がWindowsからMacに移行したのは、筐体が小さかった(mac mini)からと静かだったから。理由なんてそんなもん。/"仕事上どうしてもWindowsから離れられないという人にはまず転職をお勧めしたい。" 本末転倒。これこそ呪縛。
  • 語り尽くされたことを改めてブログに書くことの意義

    先日書いたSQLインジェクションの記事のブコメに、 otchy210 う~ん、このくらいの解説なら腐るほどある気がするぞ。何でこんなにブクマされてるの? というものがあり、他にも「なんで今さら?」的なコメントがあったりして色々と考えさせられてしまった。「何故自分はこの記事を改めて書かなければいけないと思ったのか?」と。ブコメに全力で反応するようでいささか中二病的で恥ずかしいが、今日は「既に多方面で語られていることを改めて書く」ことの意義について、自分が出した結論について語ってみようと思う。 より多くの人の目に止まる。SQLインジェクションは非常に危険なセキュリティ脆弱性であり、今も多くのWebサイトが被害に遭っている。SQLインジェクション攻撃がなくならないのは対策が充分でないサイトがあるからであり、対策が充分でないのはSQLインジェクションに対する知識が足りないからである。従って、出来る

    語り尽くされたことを改めてブログに書くことの意義
    te2u
    te2u 2010/01/16
    存在していることとそれを認識していることには大きな溝がある。だから、自分が知っていて、相手が知らなくても、決して「こんなことも知らないのか」といったコメントはしない。その逆もあり得るから。
  • SQLインジェクションとは何か?その正体とクラッキング対策。

    世間では、今Gumblar祭りが勃発中であり、SQLインジェクションがニュースに出てくることは少なくなったが、だからと言ってSQLインジェクションの脅威がなくなったわけではない。SQLインジェクションはGumblarを仕掛ける手段としても利用されることがあり、Webアプリケーションを提供する全ての人にとって、対策を講じなければいけない驚異であることに変わりはない。SQLインジェクションという攻撃手法が認識され、大いに悪用されているにも係わらず、その質に迫って解説している記事は少ないように思う。従来のWeb屋だけでなく、今やアプリケーション開発の主戦場はWebであると言っても過言ではなく、そういう意味ではSQLインジェクションについて理解することは、全てのプログラマにとっての嗜みであると言えるだろう。 というわけで、今日は改めてSQLインジェクションについて語ってみようと思う。 SQLイン

    SQLインジェクションとは何か?その正体とクラッキング対策。
    te2u
    te2u 2010/01/14
    取り得る値が限定的なら、SQLを作り、実行する前にその値の妥当性をチェックすることで防ぐこともできる。
  • 1