タグ

ブックマーク / cpplover.blogspot.jp (19)

  • なぜCtrlキーを押しながらタスクマネージャの新しいタスクを選択するとコマンドプロンプトが開くのか

    Why does holding the Ctrl key when selecting New Task from Task Manager open a command prompt? - The Old New Thing - Site Home - MSDN Blogs Adam SはなぜCtrlキーを押しながらタスクマネージャの新しいタスクを選択するとコマンドプロンプトが開くのか質問した。 隠し機能さ。 Windows XPはビジュアルスタイルを導入した。ビジュアルスタイルをデバッグする際に問題になることは、もしビジュアルスタイルエンジンが暴走した場合、まともに見えなくなるということだ。ビジュアルスタイルの開発者がしばしば直面した問題に、実行ダイアログが動かなくなるというものがあった。実行ダイアログがなければ、問題を検証するためにデバッガーを起動することすらできなくなる。 解決方

  • Goは32bit開発に不適

    Do Not Use Go for 32bit Development 私は今、大量のGoのコードをCに書き換える作業をしている。時間は金で買えない。主たる開発者として、金はここで止まってしまう。わたしは顧客と話し、責任を負った訳だ。私の過ちは、Goを信頼したことだ。私は自分のモットーを思い出すべきだったのだ。Nullius in verba(政治信教の言を入るべからず) Goは1.0がリリースされたが、もし、32bitサポートが必須であれば、Goを選んではいけない。 32bit Goには多くのバグがあるが、特に問題なのがひとつある。 実行開始の初期化時に、Goは512MBの仮想アドレス空間を予約しようとする。予約できなければ、クラッシュする。Goは、ガベージコレクションのためにこの空間を必要とする、おそらく、すべてのGC言語、いや、すべての言語は、メモリ管理に対して、似たような手法を用い

    tarchan
    tarchan 2012/04/09
    >Goは512MBの仮想アドレス空間を予約しようとする。予約できなければ、クラッシュする。
  • iconvがクソすぎる

    思うに、私が最初のOSに不自由なWindowsを選んだのは正解だったかもしれない。すくなくとも、Win32 APIはPOSIXよりはるかに使いやすい。 問題はiconvだ。一体どこの糞が何をキメながら設計したらこうなったんだ。狂っているにも程がある。 size_t iconv (iconv_t cd, const char ** inbuf, size_t * inbytesleft, char ** outbuf, size_t * outbytesleft) ; ポインターのポインターであるには理由がある。iconvは、すべて書き換えるからだ。ポインターを書き換えるのでポインターへのポインターを要求する。当然だ。当然であって欲しくないが当然だ。 なんでそんなに馬鹿げた副作用を持ち込むんだ。それでは必ずlvalueを渡さなければならないし、大抵の場合、もとの値を保持しておきたいから、オブ

    tarchan
    tarchan 2012/04/05
    >unzipにはバグがある。シフトJISやCP932でエンコードされた半角カナが多い文字列をUTF-8に変換することができない。なぜならば、バッファの確保が単に元の文字列のオクテット数の二倍になっているだけだからだ。
  • 善のため、プロプライエタリなドライバーを根絶せよ

    [Phoronix] Qualcomm Calls To "Kill All Proprietary Drivers For Good" [Phoronix] Qualcomm Calls To "Kill All Proprietary Drivers For Good" Let's Kill All Proprietary Drivers For Good 来週開かれる6th annual Linux Foundation Collaboration Summitで、Qualcommのプレゼンする内容は、「善のため、プロプライエタリなドライバを根絶せよ」というものだ。あの悪名高いQualcommが、ここまで姿勢を変えたというのは、なかなか感慨深いものがある。 なぜ一部のドライバーはクローズドソースなのか。これには、色々と複雑な事情がある。特に、ソフトウェア特許の問題がある。連中は、既存

    tarchan
    tarchan 2012/04/02
    >ソフトウェア特許は有害である。
  • 自由なドキュメント

    自由なソフトウェアの力は素晴らしい。とすれば、自由の威力はドキュメントにも及ぶはずだ。現在、ほとんどの紙書籍は不自由である。Web上にホストされている検索可能なドキュメントの多くは、後述する通り、複製や公衆送信や翻案を暗黙に許しているわけだが、たいてい、明示的な許諾が与えられていない。そのため、Web上のドキュメントは真に自由なのではなく、ある程度は自由のように振る舞うことを黙認されているだけである。この現状は不自由である。 いかに現行法が実情にそぐわないものであったとしても、今を生きる我々は現行法に従わねばならぬ。コピーレフトなライセンスは、著作権法を利用した賢いハックである。著作権法は、著作物の利用の独占を許している。来、独占は禁止されているが、著作権法や特許法や商標法などは、独占を実現することが目的なので、独占を禁止する法律の適用外である。独占者たる著作者は、著作物の利用許諾を与え

  • btrfsの圧縮規格をめぐる争い

    btrfsという、現在開発中のファイルシステムがある。これは、既存のextの系譜に変わるべく開発されているファイルシステムである。ext系列のファイルシステムはすでに十分な実績があるが、いかんせん土台とする技術が古い。これは、extのオリジナル作者であるTheodore Ts'oも認めている事実である。つまり、抜的な革新のためには、全く新しいファイルシステムを開発する必要がある。 そこでbtrfsだ。btrfsは、近代的な技術を使った新しいファイルシステムである。内部の実装はさておくとしても、ユーザーにとっても便利な近代的な機能を多数提供している。スナップショットやサブボリュームのサポート、ファイルシステムによるRAIDや圧縮のサポート、オンラインデフラグ、オンライン動的ディスクの追加と削除、さらには、将来的には暗号化などもサポートする予定である。 これらの機能は、従来、ファイルシステム

    tarchan
    tarchan 2012/04/02
    >btrfsに公式に取り込まれている圧縮アルゴリズムは、gzipaとLZOである。しかし、さらにsnappyと、lz4が候補に上がっている。
  • たまには古いコンピューターでも

    江添亮 自由ソフトウェア主義者 C++ Evangelist C++標準化委員会の委員 ドワンゴ社員 C++11を執筆した。 株式会社ドワンゴで働いている。 Mail:boostcpp@gmail.com Twitter:@EzoeRyou GitHub: https://github.com/EzoeRyou 江添亮のマストドン@EzoeRyou 筆者にブログのネタを提供するために、品物をアマゾンお気に入りリスト経由で送りたい場合: Amazon.co.jp: 江添亮: 江添のほしい物リスト 筆者にブログのネタを提供するために、直接に品物を送りたい場合、住所をメールで質問してください。 View my complete profile ► 2020 (31) ► December (2) ► November (2) ► September (2) ► August (4) ► Jul

    たまには古いコンピューターでも
  • プリンスオブペルシャのソースコードが発掘された

    江添亮 自由ソフトウェア主義者 C++ Evangelist C++標準化委員会の委員 ドワンゴ社員 C++11を執筆した。 株式会社ドワンゴで働いている。 Mail:boostcpp@gmail.com Twitter:@EzoeRyou GitHub: https://github.com/EzoeRyou 江添亮のマストドン@EzoeRyou 筆者にブログのネタを提供するために、品物をアマゾンお気に入りリスト経由で送りたい場合: Amazon.co.jp: 江添亮: 江添のほしい物リスト 筆者にブログのネタを提供するために、直接に品物を送りたい場合、住所をメールで質問してください。 View my complete profile ► 2020 (31) ► December (2) ► November (2) ► September (2) ► August (4) ► Jul

  • PulseAudioの問題

    PulseAudioについては、悪い話しか聞かない。まだ私が不自由なOSであるWindowsを使っていた頃から、PulseAudioは酷評されていた記憶がある。 これが不思議だ。そもそも、PulseAudioというのは、低レベルAPIをラップする高レベルAPIである。PulseAudioによって、すべてのプログラムが、あたかもサウンドデバイスを独占的に使用できているかのような環境をエミュレートしている。その実装の質はともかく、思想は至って普通だ。モダンなOSなら、当然ハードウェアなどは通常のプログラムから意識させないようにするべきである。いまや、OSはサウンドデバイスの制限のあるミキシングに頼らないのだ。CPUは十分に速くなった。ソフトウェアでのミキシングは、現代のCPUならパフォーマンス上、なんの問題もない。いまや、完全なソフトウェアによるリアルタイムのミキシングやリサンプリングは当たり

  • GNU/Linuxでfontconfigにより日本語フォントを優先させる方法

    GNU/Linuxでは、fontconfigによりフォントの優先順位を設定している。この設定によって、フォントに存在しないグリフでも補完して表示できる。この機能は、モダンなOSなら大抵備えている機能である。しかし、もし、日語と文字を共有している他言語のフォント、例えば簡体字や繁体字のフォントの優先順位が、日フォントより高い場合、そのフォントが日フォントより優先されてしまう。 どうも、この問題に対して、場当たり的に対処している人間が多いようだ。たとえば、該当の日語以外のフォントを削除するという選択だ。PulseAudioの件と同じ場当たり的な対応である。なぜ問題の質を探ろうとしないのか。そもそも、多言語環境を当に実現したければ、重複数複数のフォントがあっても問題ないようにすべきである。問題を当に解決するためには、フォントの優先順位の変更が必要だ。 日人ならば、日語フォン

  • AdobeがFlashゲームのみかじめ料を要求しはじめた

    Adobe Flash Player Premium Features for Gaming | Adobe Developer Connection Got a Profitable Flash-Based Video Game? Adobe Wants a Cut | Webmonkey | Wired.com Adobeの不自由なソフトウェアであるFlash Playerのプレミアムな機能を使っていて、$50000以上の売上のあるFlashで作られたゲームは、売上の9%をAdobeに差し出すこと。 この利用料を回避する方法は、プレミアムな機能を使わないか、売上を下げるか、今年の8月までにFlashゲームの公開を取り下げることである。 もちろん、我々が皆同意するように、不自由なソフトウェアであるFlashを使わないという選択肢が最も優れている。だから早く不自由なFlashの利用をやめる

    tarchan
    tarchan 2012/03/29
    ニコニコ動画は該当するのかな?>Flash Playerのプレミアムな機能を使っていて、$50000以上の売上のあるFlashで作られたゲームは、売上の9%をAdobeに差し出すこと。
  • 不自由なソフトウェアの時代は終わった

    もはや、不自由なソフトウェアの時代は終わった。単純に終わったのだ。もうこれ以上、不自由なソフトウェアの未来はない。金銭的な価値はともかく、ソフトウェアの質は自由な方が圧倒的に高い。だからWindowsとかiOSとかAndoridが手元にあるならば、窓から投げ捨てるべきである。 こう言ったからとて、私は何も、フリーソフトウェア原理主義に改宗したのではない。今や、自由なソフトウェアの方が質が高くなっているからという至極単純な理由から言っているのである。私は質を優先する。不自由なソフトウェアの方が優れているのならば、いくら金を払っても構わないし、ソースコードが公開されていなくても構わない。しかし、事実として、今や、不自由でクローズドソースなソフトウェアは劣っている。自由か、最低でもオープンソースなソフトウェアの方が優れている。わざわざ不自由でクローズドソースなソフトウェアを使う必要はない。まして

    tarchan
    tarchan 2012/03/29
    OS XとiOSのほうが便利だけど
  • ffmpegとlibavの背景事情

    ffmpegをインストールしようとしたら、なにやらちょうど一年前あたり、大規模なforkが起こったらしい。いまや、ffmpegとlibavに分裂している。forkは自由なソフトウェアではいたって普通の出来事だ。大抵の場合、開発者の間での意見の不一致により起こる自然な現象だ。自由なソフトウェアであれば、fork自体はそれほど悪いことではない。どちらも自由であるので、双方の開発者がIRCやMLで広角泡を飛ばしながら喧嘩しつつ、何事もなかったかのように相手のコードをこちらのコードベースにマージできる。なぜならば、どちらも自由なソフトウェアという共通点を持っているからだ。 しかし、ffmpegは、だいぶ巨大なソフトウェアだ。おそらく、現時点でこれ以上にでかい動画と音声のソフトウェアは、mplayerしかあるまい。mplayerはffmpegを包括しつつ、さらに変態的なことをしている。これについては

  • BloggerのccTLDリダイレクトは相当ひどい

    このブログでは、主に日語を使っている。そのため、読者の大半は日に属するIPからのアクセスである。したがって、最近のBloggerの変更により、自動的にcpplover.blogspot.jpにリダイレクトされる。既存のcpplover.blogspot.comはちゃんとリダイレクトされるので、すでに存在するリンクはそのまま動く。しかし、URLが異なるというのは、非常に問題だ。とくに、このソーシャル全盛の時代においては。 オンラインブックマークというサービスがある。これは、ブックマークをオンライン上で公開できるサービスである。多くのユーザーがブックマークするURLは、高価値の可能性が高い。Web検索の黎明期、多くの被リンクを得ているURLの価値が高いと判断されたのと同様だ。他にも、Twitterで多く言及されているURLは、価値が高い可能性がある。他にも、FacebookのLikeボタン

    tarchan
    tarchan 2012/03/26
    Googleはわかっていない>結局、Googleはソーシャルのことなど何もわかっていないのだ。既存のカウントが、評価が、どれだけ大事なのか全然わかっていない。
  • GCC 5はモジュール化できるか

    [Phoronix] Talk Of GCC 5.0 To Be Modular, More Like LLVM David Malcolm - GCC 5? (was Re: GCC 4.7.0RC: Mangled names in cc1) 聞説、今のGCCのコードは、やや悲惨な部類に入るらしい。十分な実績があり正しく動くのは確かだが、コードはほとんどCで書かれており、名前空間もなく、グローバルな状態が多く、スレッドもない。これはつまり、GCCは他のソフトウェアに組み込むのが難しい。 一方、LLVMは、設計段階からモジュール化を念頭に置いており、GCCよりはるかに後発なのにもかかわらず、他のソフトウェアに組み込む用途で広く使われている。たとえば、 MesaのGallium3Dとか、OpenCLとか、Monoとかで、JITコンパイルを実現するために、すでに使われている。他にもLLVMを

    tarchan
    tarchan 2012/03/21
    >十分な実績があり正しく動くのは確かだが、コードはほとんどCで書かれており、名前空間もなく、グローバルな状態が多く、スレッドもない。
  • 本の虫: Walmart同志が見張っているぞ!

    Walmart buys a Facebook-based calendar app to get a look at customers' dates これは非常に危険なニュースだ。Walmartが会社を一つ買収した。「なんだ、それだけか」と思うかもしれない。問題は、その会社とは、Facebookでカレンダーアプリを提供していた会社なのだ。しかも、1600万人ものユーザーがいるのだそうだ。 つまり、Walmartは会社をひとつ買収することで、その会社が得ていた1600万人分の誕生日やその他の予定などのプライバシー情報を得たことになる。しかもWalmartは、その情報を自社の販促に使うと明言している。 これが合法なのか? たしかに、法的には同じ会社になったのかもしれないが、これまでカレンダーアプリを使っていた人間は、そういうことに使われることを期待していなかったはずだ。これが合法なのか? 

    tarchan
    tarchan 2012/03/20
    >プライバシー情報が欲しければ、会社を買収すればいい。Wallmartのような大企業にとっては、Facebookのアプリを作っているちっぽけな会社を買収するなど、造作もないことだ。
  • BloggerがいつのまにかccTLDを変更していた

    Bloggerがいつのまにか、閲覧者のあわせたccTLDにリダイレクトするようだ。2月から行われていたとのことだが、いま気がついた。今の時代にURLは、あまり重要ではなくなったからだろうか。このブログは、jpになるらしい。従来の.comはリダイレクトされているようだ。 理由は以下で説明されている。 Why does my blog redirect to a country-specific URL? - Blogger Help Googleの説明によれば、これは表現の自由を守るためらしい。ある国で違法となる発言は、その国でしか閲覧不可にならないたとえば、私の投稿が日国において違法であった場合、日国からしか閲覧不可にはされない。だから、海外からは、普通に見ることができる。もちろん、逆もまた然りだ。これは民間企業ができる最低限の抵抗なのだろう。国を動かすのは企業ではないからだ。 このこ

    tarchan
    tarchan 2012/03/20
    >Googleの説明によれば、これは表現の自由を守るためらしい。ある国で違法となる発言は、その国でしか閲覧不可にならない
  • なぜいまだにシステムプログラミングはCなのか

    Programming Language Challenges in Systems Codes システムコードにおけるプログラミング言語の挑戦、あるいは、なぜいまだにシステムプログラミングはCなのか。 著者がJonathan Shapiroであることが興味深い。Jonathan ShapiroはD&Eに頻出する名前である。Bjarne Stroustrupの記述からして、初期のC++の設計に多大な影響を与えた人物である。それに、最初にC++を使って格的で大規模なプロジェクトを始めたのも、Jonathan Shapiroだ。しかし、今日、Jonathan Shapiroの名前はC++界では、あまり有名ではない。私はMLとかHaskellなどの言語には疎いので、この方面の話は知らなかった。 なぜシステム・プログラミングは、いまだに1970年代に開発された大昔の高級アセンブリ言語で書かれてい

    tarchan
    tarchan 2012/03/20
    >ハードウェアの都合上、データは正しくアライメントされていなければならなかったり、またCでは詳細なデータ構造とそのメモリ管理を手動で行うことができるからである。
  • Linuxの作法

    どうもLinuxにおけるプログラムからのディレクトリの使い方の作法が難しい。 あるプログラムが、動作に設定ファイルとデータファイルを必要とする。これには、Linuxの作法では、それぞれbinとetcとshareを使うようだ。問題は、主要なものだけ挙げても、/binと/usr/binと/usr/local/binがあり、、etcとshareに関してもそれぞれ同じものがあるということだ。もちろん、これらのディレクトリの違いは解説されている。しかし、一体どうやって、どこに置いても正しく動作するプログラムを書けばいいのだろうか。 /usr/binに置かれたプログラムは、やはり/usr/etcを使うべきなのだろうし、/usr/local/binに置かれたプログラムは、/usr/local/etcを使うべきなのだろう。それ以外のディレクトリ下に置かれたプログラムも、やはりそこから見て相対的なetcやs

    tarchan
    tarchan 2012/03/20
    コンパイラを使わない層にはハードル高すぎて使えない>ソフトウェアはソースコードの型で提供する文化なのだから、コンパイル時にそのような変更をする簡単な方法を提供してやればいい。
  • 1