サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
ksmakoto.hatenadiary.com
柄にもなく釣りっぽいタイトルですが、本文中には特にそんな派手なものはありません。 はじめに Rubyの多言語化に関してまず読むべき、るびま記事である「Ruby M17N の設計と実装」が2009年の記事ですから四捨五入すればもう、ひと昔前のことですが、それでもなかなか移行は進まないもののようなので(あと少々クセがある)、エンコーディングの推測についてまとめた記事を書いてみます。 エンコーディングの変換 エンコーディングの変換については、例の記事の「エンコーディングの変換」の節( http://magazine.rubyist.net/?0025-Ruby19_m17n#l76 )と、詳細は最新のマニュアルの String#encoding についてのページ( https://docs.ruby-lang.org/ja/latest/method/String/i/encode.html )
「Windowsの標準電卓で4の平方根が2でなかった仕様がようやく修正」というニュース( pc.watch.impress.co.jp )がありました。現時点では私の手元にそんなに情報が無いので、 以下で述べる内容 以前の仕様のあらまし 修正に関する憶測と心配事 以下で述べない内容 以前の仕様の正確な理由はなぜか 具体的にどう修正されたのか という感じになります。 以前の仕様について プレスリリース( https://blogs.windows.com/windowsexperience/2018/04/04/announcing-windows-10-insider-preview-build-17639-for-skip-ahead/ )の中の Windows Calculator Improvements という節の中でリンクされているMSDNで開発者が書かれたブログエントリ( ht
Rubyスクリプト中からアセンブラを呼んでアセンブルして .so 作って動的ロードして実行するサンプル
シュナイアーさんによるblogエントリ( https://www.schneier.com/blog/archives/2006/01/countering_trus.html )は、もう10年も前ですので、その世界では特に新しい話題というわけではないようですが、私が知ったのは今年のはじめのことでしたので*1、この機会に紹介する文章を書いてみたいと思います。 Unixを作ったケン・トンプソンさんがチューリング賞を受賞された際の講演「信用を信用することができるだろうか」( Reflections on Trusting Trust )は、その暴露的な部分(UNIXのloginコマンドにバックドアがあった、とする)の真偽はさておき、もしコンパイラのバイナリが「信用できない」ものだったら、という場合における、潜在的な脅威の可能性を否定することの難しさの指摘でした。*2 以下で述べる話題は、直接的
「ISLISPを使うべきでないたった1つの理由」( http://d.hatena.ne.jp/Isuzu_T/20130623/1372003378 )が誤解している点について、簡単にまとめておこうと思います。 要点 上記はてなダイアリーから引用しますが、 マクロは,実行準備時に展開される,いかなる実行時情報も使えない. 仕様にあるこの一文が悲しみです.「実行時情報」が使えないということは,つまり,自分で定義した関数によるマクロの展開は行えない,ということです.なぜなら,関数が定義されるのは,実行時だからです. ひとつめの引用の、規格票中の文は意訳などではなく、原文(英語)の仕様にもきっちり対応する文がありますので翻訳の問題などではありませんが、もしこのような誤解が多いようであれば削ったほうが良いような気もします。「実行準備」については仕様がある表現ですが、「実行時情報」(runtime
「コーディング教育」とか言われるようになってきたためか、最近時々バズるこの話題について。 マーガレット・ハミルトンさんが、グレース・ホッパーさんやフラン・アレンさんとともに、偉大なコンピュータ黎明期のパイオニアのお一人であることは確かですし、この記事は、おとしめる意図ではありません。しかし、話題になっている写真にはいくつか疑問点等があるので、それらについてメモとして残します。 この話題がネット上で見られるようになったのはいつからか? threefingeredfox 氏のブログ Three Fingered Fox の、こちらの Margaret Hamilton, lead software engineer, Project Apollo | Three Fingered Fox ブログエントリ、およびそれのミラーである、Medium のこちら Margaret Hamilton, l
id:shi3z さんのリツイート( http://twitter.com/shi3z_now/status/20196792539 ← http://twitter.com/nagaimichiko/status/20195874268 )で知ったわけだけども植松さん&すぎやまこういちさん出演の「題名のない音楽会」ではマリオも! これはすごい、というか感慨深い その昔、スーパーファミコン以前、ゲームといえばファミコンだった時代に、当時の(←当時の、という表現はうまくない気がするが)司会者の黛敏郎さんが、ゲームの音楽を dis った、ということがあった。しかも、ドラクエの曲を流して その回をたまたま見たベーマガ読者が、「ムカついた。あの司会者はドラクエのサントラとか知らないのか?」と、読ホンに投稿し、それを見た、「題名のない音楽会」の熱心な視聴者である(と思われる)読者により、丁寧な番組の
一般に、登録されている商標のソレがUNIX(R)であることから、認定・ライセンスのもとにあるものを特に「UNIX」、同様のAPI(いわゆるPOSIX)を実装したものを総称するのは「Unix」のように使い分けられており((追記) ただし英文字の文字商標は効力としては大文字小文字関係なく通用するものであるようです)、一般的な理解としてはそれで普通は問題無いが、実はもっと深いエピソードがあるのだ、という話。 ジャーゴンファイルの「Unix」の項( http://catb.org/jargon/html/U/Unix.html )の最後の部分にあるように、デニス・リッチーさんら「ベル研の中の人」たちは、(ある頃以降は)英語における一般的な表記ルールの通り、頭字語(イニシャリズムand/orアクロニム)ではない固有名詞として「Unix」と綴るべき、と認識しているのだが、論文「The UNIX Tim
Shiroさんの「お題:pingコマンド」( http://blog.practical-scheme.net/shiro/20141013a-ping )をRubyで書きました。 「Rubyではじめるインターネットプログラミング」第8回( http://www.notwork.org/ipr/article/serial08.html )のコードを参考にしていますが(あと、そのライブラリも使っていますが)、タイムアウトの追加、IPv6対応(これはライブラリにも手を入れている)、recvではなくrecvfromの結果から返信元アドレスを得ている(これはrawソケットの挙動がIPv6では異なるため)などの点が違っています。
目的 静的スコープと動的スコープ・深いアクセスと浅いアクセスについて、現代的でまとまった解説が検索では見つからないようなので書いてみる。 余談1: スコープとエクステント プログラミング言語において「スコープ」(可視範囲)と同様程度に習得すべき概念に「エクステント」(生存期間・寿命)がある。エクステントも重要だが、この文章では必要最低限を除いて触れない。 グローバル(スコープ)とローカル(スコープ) この文章を読むための前提として、スコープについてグローバルとかローカルといったものについては既に理解しているものとする。モジュールあるいは関数などを「またいで」可視なものがグローバル、モジュール内だけや関数内だけといった「狭められた範囲だけ」に可視なものがローカル、といった程度の理解で良い(どうせ厳密にはそれぞれの言語and・or実装により異なる)。 静的スコープと動的スコープ 手続き(関数)
ひとつの機器に複数の機能が付いてるようなUSB機器には、実は異なる構成があり、一例としてArduino leonardoはちょっと特殊だ、という話です。 USB compound device まず、論理的にはハブにぶら下がってるようなのがcompound deviceですが、これはOS側から問題になるようなことはないでしょうので省略します。 USB composite device これはひとつのコンフィギュレーションの下に、複数のインタフェースがある、というような機器で、よく見られるようなものではないかと思います。たとえば手元のマウスG9がこの方式で、マウスだけでなく同時にキーボードとしても機能します。手元の環境でコンフィグ情報を見ると次のようになります。 $ sudo usbconfig -d 0.2 dump_curr_config_desc ugen0.2: <G9 Laser
チャートとアルフォート完全に一致wwwwwwwwww URL 2014-05-04 20:02:55 via Twitter for Android (画像 https://twitter.com/Taisay_Nothing/status/462910236186013697/photo/1 ) 元ネタなんかあるかな? > チャート式とアルフォートの船の絵 2014-05-04 22:46:39 via Twitter Web Client この帆船ですが、1900年頃のマサチューセッツ州の街のdirectory(イエローページ(タウンページ)のようなものだが、電話番号はまだない)で、広告のクリップアートとして使われているのが複数見うけられます。 で、もっと遡ると、 このような、捕鯨の街、マサチューセッツ州はニューベッドフォードのMerchants (National) Bankという銀
ジャーゴンファイルの「prettyprint」には、語義1としてこうある。 To generate ‘pretty’ human-readable output from a hairy internal representation; esp. used for the process of grinding (sense 1) program code, and most esp. for LISP code. http://www.catb.org/esr/jargon/html/P/prettyprint.html プログラムコード、特にLispのコードをそうすることに対して使う、と最後にある通り、Lisp文化圏の用語という感じがある。しかしここで前半の「hairy internal representation」という表現にも注意したい。一般にLisp(S式)以外のソースコードは
清水さんの「これがプログラミングの神髄だ! ファイナルファンタジーのプログラマーが明かす秘密とLispトークバトル!」( http://d.hatena.ne.jp/shi3z/20140123/1390429115 )にある、 もともとJavaScriptはLispの方言であるschemeをベースとして開発されたわけだからね。 という記述に関して関連資料のメモ。 (ブレンダン・アイクさんのブログも参照のこと https://brendaneich.com/2008/04/popularity/ ) 『Coders at Work』(邦訳版) Coders at Work プログラミングの技をめぐる探求 作者: Peter Seibel,青木靖出版社/メーカー: オーム社発売日: 2011/05/25メディア: 単行本(ソフトカバー)購入: 11人 クリック: 360回この商品を含むブログ
Chisel(Constructing Hardware in a Scala Embedded Language)は、Scala の内部 DSL として実装されたハードウェア記述言語(開発しているバークレー大 EECS(Electrical Engineering and Computer Sciences)では "hardware construction language" としている)です。Scala によるディジタル回路の記述から、C++ によるシミュレータ、または、Verilog HDL による記述を出力できます(さらに検証を行うこともできるようです)。詳しくは http://chisel.eecs.berkeley.edu/ を参照してください。なお chisel は英語で、たがね(鏨)およびのみ(鑿)を指す語です。 Chisel の導入として、PC-Unix 環境(私の場合
ちょっと検索してみたところウィキペディアに英語記事はあるけど( http://en.wikipedia.org/wiki/Elevator_algorithm )日本語版の記事はまだのようだし、ジャストな解説も検索したところ出てこないようなので、そう難しいものでもないしちょっと書いてみる。 エレベータアルゴリズム 「エレベータアルゴリズム」というのは、特定のアルゴリズムのことであり、一般のエレベータのアルゴリズムのこと(特に、多数のエレベータがあるビルでは、連携させて複雑な制御がされる。後述)ではない。 コンピュータのディスクドライブのヘッドのシークへの応用が特に知られている。 原理は簡単で、次のようなものである(ここではディスクドライブではなくエレベータの用語で説明する)。 上の階へ行く要求(乗客の要求、および、上の階からの呼)がある限り、上昇して要求に応える。上の階への要求が無くなった
MathJax プロジェクトがこれまで提供に利用してきた CDN の運用が止まります(2017年4月末)。 https://www.mathjax.org/cdn-shutting-down/ を参考に、新しい CDN の URL に移行するようにしてください(以下の記述は、まだ移行に対応していません(すいません、そのうちいろいろ確認して直します)) この記事で紹介するのは HTML の内容を書き換えるような JavaScript の導入方法ですので、何らかのトラブルを起こす可能性があります。十分に注意して実行してください(特に、過去に書いた記事中に LaTeX の数式記述が含まれていた場合、それが表示の際に書き換えられる、という副作用があります)。 MathJax は、Ajax 的な技術により、LaTeX 記法で HTML 中に書かれた数式を、ウェブブラウザで印刷物のような見た目になるよ
Forth における再帰はちょっと面白いのだが、歴史的なところまで含めた日本語での解説がないみたいなのでちょっと書いてみたい。きっかけは Forth とメタプログラミングという話題が TL に流れてたのでちょっとつぶやいてみたのだが、プログラミングについての話題はかなり貪欲に RT する某氏にスルーされたためでもある 現代の Forth と再帰 現代的な Forth では、RECURSE というワードで、「現在定義中のワードの再帰呼び出し」をプログラムできる。 http://www.geocities.jp/naosacra/mops/forbeginner/19.html や id:quek:20080502:1209740080 を参照 そのような専用のワードがあるのは、Forth では伝統的に、現在定義中のワードはふつうは参照できない、ためである。そうなっていると、元のワードを再利用
とある Google グループに書いたものだけど、ツッコミが来ることを期待してこっちでも公開してみる Fortran まず、世界で最初に本格的に実用化されたプログラミング言語である Fortran が、1955年前後に生まれます。Fortran では、(それまでの "ADD [addr], 1" のような記法に比べれば)"A + 1" のように数式ライクな(名前からして、"For" は formula から来ています)表現ができるようになりました。もっとも、プログラミング言語が数学らしくないと言われるポイントの大きなひとつであるところの "A = A + 1" も同時に広まることになります。 Lisp 次に Lisp が、1960年前後に生まれます。特殊形式の LAMBDA により、値としての関数を表現する、という技法を数学からとり入れ、世界最初の関数型言語と言われます。 誕生の時点では、
Bio_100% のサイトに表示されるようになった川柳などを見ていても、また、ニコ動の「ファミコン音源で」系動画の分散和音部分に付くコメントを見ても、Bio_100% というとビープ音(bgm.lib)の分散和音表現という印象が強いようだけど、まぁ確かに代表作的な Super Depth をはじめ、確かにビープ作品は多いのでそういう印象はしょうがないかなとは思うけど しかし、たとえばろりろりろーりんぐとか http://bio100.jp/game_music/archive/music03.html#top2 CarII GRANDPRIX とかの http://bio100.jp/game_music/archive/music04.html#top3 OPN 曲に名曲がある、と私は主張したい あるいは Finalty の MIDI バージョンやオーケストラアレンジバージョンと比較して
池田信夫さんによれば日本のウェブが残念なのは、実名による議論がないからであるらしい 池田さんはその原因として、はてなをあげつらい、disっているが、ぶっちゃけはてブや2ちゃんねるのような、ハンドルや匿名による批判などというものは、池田信夫さんが進んで実践されているように、無視してしまえば問題ない。小倉弁護士が問題にしたような、イナゴの襲来によるコメントスクラムも、コメント機能を止めてしまえばいい では、日本において、ネットに名前を出すことを妨げている真の要因とはなんだろうか? はまちちゃんが「本名バレてもへっちゃら?」id:Hamachiya2:20080313:realname で指摘しているように、実世界を通して面倒事に巻き込まれるかもしれないこと、おかしな人の存在をネットの向こうには想定しないといけないこと。これは「無視できないリスク」である。このリスクに比べたら、はてブで叩かれるこ
Linuxのカーネルパラメータに、ルートディレクトリの指示として、root=UUID=9164c505-9ecc-11ed-97f6-6045cb9ba8a6 などといったように書きますが、このUUID中のアルファベットを大文字にすると、起動時に https://www.google.com/search?q=dracut+boot に出てくるような起動しなくなる現象にハマります 『2030年の第4次産業革命』という本の p. 107 に、「ベルの法則」とは、約10年あまりごとに、時代を代表するコンピュータープラットフォームの大きさが、数百分の一になっていくという経験的な法則、と書かれているのですが、どこかにさらなる出典があるのでしょうか。 英語版Wikipediaにある Definition: の記述が若干それっぽいですが(2021年8月上旬時点で https://en.wikipedi
このページを最初にブックマークしてみませんか?
『ksmakotoのhatenadiary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く