サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
yudai.arielworks.com
「クラウドベンダなどによるサービス利用を制限したMongoDBの新ライセンス『SSPL』を理由にDebian、Fedora、RHELがMongoDBの配布取りやめを表明」という記事を読んで、私自身はMongoDBのユーザではないものの、今後他の製品にも波及しそうな話題だったので経緯を少しだけ調べてみた。SSPLってそんなに問題のあるライセンスだったのだろうか。 非常に大まかな経緯 MongoDBの経緯はこんな感じである。 MongoDBはGNU Affero General Public Lincense(AGPLもしくはAGPLv3)でライセンスされていた 巨大なクラウドプロバイダーがMongoDBのマネージドサービスを提供すると、MongoDBが使用されているにもかかわらず、MongoDB社にはお金が入らない MongoDB社からすれば、これらのクラウドプロバイダーはMongoDBにタ
Unix系のOSをルータにしている場合に、NTT東日本が提供しているフレッツ光ネクスト(NGN)でIPv6を運用する際のTipsをまとめた。恐らくNTT西日本が提供しているフレッツ光ネクストでも同じような設定が利用できるものと思われる。また、今回はOSにUbuntu12.04を使用しているが、wide-dhcpv6-clientが利用できる環境であれば(おそらくBSD系でも)通用するものと思われる。 まず最初に確認すべき事はひかり電話の契約の有無である。ひかり電話が契約されている場合とされていない場合ではNGN側の動作が変わってくる。この記事ではひかり電話を契約している環境について説明する。ひかり電話無しの場合については後日改めて纏める。 ひかり電話を契約している場合、NGN網からは/48のプレフィックスをDHCPv6-PDで払い出してもらうことが出来る。ただし、これはISPのIPv6オプ
昨日に引き続き、Unix系のOSをルータにしている場合に、NTT東日本が提供しているフレッツ光ネクスト(NGN)でIPv6を運用する際のTipsをまとめた。今回はひかり電話契約が無い場合である。 ひかり電話を契約していない場合、IPoEで払い出されるIPv6アドレスはプレフィックスが/64となる。払い出し方もひかり電話有りの場合と異なり、NGN網内のルータから流れてくるRAにより行われる。 RAでIPの設定が行われる場合、NGN網側ルータとクライアントPCはL2で接続されている必要がある。そのため、市販のブロードバンドルータには「IPv6ブリッジ」という機能が搭載されており、この機能を使用するとブローバンドルータがIPv6に関してはハブとして動作するようになる。これにより、クライアントPCとNGN内のルータがL2で接続されるため、RAを正常に受信することが出来る。 Linuxルータでも動揺
金額が大きいのでドキッとする請求書 もう2年ほど前になるが、ロードバイクから転倒して病院に行くことになった。同僚と医療保険の話をしていてふとその時のことを思い出したので、よく噂になる「アメリカの医療制度」の一例として記憶を残しておきたい。 自転車で転んだ 話は週末のサイクリング中に、ロードバイクから転倒して顔面を強打したところから始まった。記憶が無いので原因は定かではないのだが、後方を走っていた同僚のアクションカメラが捉えていた映像を見るに、ゆるい下り坂のカーブで路肩側に逸れてしまい、そのままロードバイクごと前転して顔面から地面に着地したらしい。幸いなことに、ヘルメットとサングラスをしていたので大事にはいたらなかったものの、一瞬意識を失い、ついでに前後の記憶も失い、顔の下半分が傷だらけで血まみれになってしまった。事故直後は頭を打った影響か、かなり混乱していたらしい。ありがたいことに骨折のよ
デバッグセッションなどで「ターミナルの画面を共有したいけど、tmuxのセッション共有の設定をするのは面倒くさい」ということがよくあるのと、モニタリングツールなどをいじっていると「とりあえずはtopとtailの結果を大画面に表示しておければそれでいいんだ」のようなことがあるので、ターミナルの出力をそのままウェブで共有するツールを作った。 GoTTY - Share your terminal as a web application インストールはGithubのReleasesページから直接バイナリをダウンロードしてくるか、go getもしくはHomebrewで行うことができる。 # go getの場合 $ go get github.com/yudai/gotty # Homebrewの場合 $ brew tap yudai/gotty $ brew install gotty 使い方は非
今時はTmuxを使うらしいですが、GNU Screenでもうちょっとがんばってみます。今回はScreenを少しだけ改造してzshとの相性を強めてみました。 Screenのウィンドウタイトルを直前に実行したコマンドで更新している人は多いと思います。最近まで私もそうしていました。シェルがzshならpreexec内でscreen用のエスケープコードを出力するのが定番でしょうか。この方法の欠点はエスケープコードがscreen専用なので、何も対策をしていないと、例えばxtermから直接アクセスした時に変なエコーバックが表示されてしまうところです。もちろん、普通は環境変数をみてscreenから繋いでるときだけウィンドウタイトルの更新を行うように設定しているでしょうから、大抵は問題になりません。手元の.zshrcでも$STYという変数をみて切替を行っていました。なんで$TERM見ないのっていう意見もある
「普段はISP1を使いつつ、サーバ用には固定IPを貰える(i-revoなどの)ISP0を使いたい」といった、よくあるPPPoEマルチセッション環境におけるNATとポートフォワーディングの問題を解決する。 ネットワーク構成 まずは前提条件を。 構成図 ルータLinuxマシン 物理IF WAN側: eth0 LAN側: eth1 ppp ppp0: ISP0(サーバ用固定IP) ppp1: ISP1(外出用動的IP) IP WAN側: X.X.X.X (ppp0), Y.Y.Y.Y (ppp1) LAN側: 192.168.0.1 (eth1) LAN内ウェブサーバー IP: 192.168.0.2 ウェブサーバーにアクセスしてくる外部のクライアント IP: 192.0.2.4 設定手順 iptablesのパケットフロー図を見ながら読んで欲しい。 まず、内部ホストからの外向きの通信(通常の外出
CentOS5.2 + putty + screen + zsh + emacs21(22)でUTF-8の日本語いろいろメモ 微妙に日本語が通ってなかったところを何とかしたメモ。 まず環境。CentOSは5.2。Debian 4.0 etchでも同様の構成でうまくいく。 % cat /etc/redhat-release CentOS release 5.2 (Final) puttyはRelease 0.59_Gottani+Mouse_Tr_Bad。半透明化のためのパッチが当たってるバージョンを使用。半透明は後ろのドキュメントを読みながら作業できるので便利。 PuTTY マウス選択挙動変更+背景半透明化 + 文字ふちどりパッチ screenは4.00.03。現状yumで入る最新版となる。 % screen --version Screen version 4.00.03 (FAU) 2
screenを使っていると、エディタでコード書きながら、別ウィンドウのシェルでそれをちょこちょこと実行する、なんてことが良くあるのだが、個人的にはウィンドウ全部を切り替えるよりも、画面の下の方にでも小さくsplitしたリージョンを出して、focusで適当に切り替えながら開発する方が楽に感じる。しかし、リージョンのレイアウトは現在のStableでは保存されないため、1度デタッチしてしまうと次にリタッチした際にもう1度配置をし直す必要が発生するのだが、これが面倒である。最新版のdevelには色々と新効能が増えていて、レイアウトの保存が出来るようになっているようなので試しに入れてみた。 最新版はGITリポジトリから取ってくる。 GNU Screen - Git Repositories % git clone git://git.savannah.gnu.org/screen.git そのままc
ページ情報 制作日 2005-02-24T09:05:33+09:00 最終更新日 2005-02-26T16:15:45+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment Strategy。アルゴリズムの切り替え。とかいうと、難しく感じるけど、やってることはOOPの基本。 RPGの戦闘シーンで説明してみよう(ジャンケンだとパクリとか言われそうなので)。簡単のため、味方は主人公だけで。 function Battle(monsterList) { this.turnNumber = 1; this.hpOfHero = 500; this.offenseOfHero = 12; this.monsters = monsterList; // モンスターのリストを配列で保存 } function Battle.prototy
data URLスキームは案外ちゃんとサポートされていない訳ではない data スキームは相対参照を認めていない。 これは間違っている。data: schemeを持つURIにおいてもFragmen IDは有効であると考えるのが正しい。Mike SmithがJulian Reschkenにも確認してくれたようなので間違いないと思われる。 RFC 3986の3.5. Fragmentには以下のように書かれている。 Fragment identifier semantics are independent of the URI scheme and thus cannot be redefined by scheme specifications. つまり、スキームが何であろうと、基本的にFragment IDは利用可能でなければならない。 なお、少なくとも現時点では、W3CのHTML5バリデー
ページ情報 制作日 2005-07-24T03:14:49+09:00 最終更新日 2005-10-28T11:35:21+09:00 ページ内目次 Navigation Comments Trackbacks Post a comment JavaScriptはクロージャでガリガリ書いていく言語だという説もあるが、OOP原理主義としてはプロトタイプベースでもいいからOOPで書きたいのである。というか、クロージャは中途半端で気持ち悪い。 さて、事の発端は『JavaScript とクロージャ』という記事である。この記事によると、なにやらイベントにクロージャを渡すと幸せになれるという事らしい。ふむふむ、たしかにシンプルでいい感じである。 ……が、しかしだ。オブジェクト指向なアレに対して、クロージャには決定的な弱点が有るはずなのだ。そう、メソッド(クロージャ)間での(メンバ)変数の共有である。
さて、まずは4B鉛筆を一般的なコピー用紙に用いた場合の消え具合を調べた。結果をまず述べてしまえば、以下の3つが比較的良い消え具合だった。 PLUS AIR-IN PILOT FOAM ERASER PLUS OMNI 1つを除き、その他の消しゴムも当然消えないことはないのだが、この3つに比べると消すまでの労力に差が出る。そして、STAEDTLER rasplastは全く持ってお勧めできない。濃い鉛筆に対してこの消しゴムはあまりにも無力である。 上記3つのうち、PLUS OMNIが1番柔らかい。それ故か若干鉛筆の汚れが伸びてしまうことが有るので注意が必要である。PLUS AIR-INの消し心地はMONOに近い。良く消えるMONOという雰囲気である。PILOT FOAM ERASEの消し心地はイメージとしては砂消しに近い。もちろん紙を傷めることはないのだが、サラサラとした消し心地がなかなかよい
また,今までRDFが何なのか書籍を読んでもよくわからなかったのだが,「XMLは木構造,RDFはDAG(Directed Acyclic Graph)」だと説明されて疑問が氷解(木だけ説明して,森を見させてくれない書籍だったなあ…). 以下の文章内の「RDFがDAGである」という内容は間違いです。 DAGは「無閉回路有向グラフ」を意味し、サイクルを含むことができるRDFグラフは当てはまりません。「RDFは有向グラフである」が正しい表現となります。 お詫びして訂正します。 参照先ページののコメント欄も合わせてご覧ください。 RDFがDAGなのは、それ自体も重要なのだけれど、しかしそれのみでXMLと対比させるのは評価として正しくないと感じる。 僕が人にRDFを説明するときは、「XMLやCSVやYAMLは、情報を直列化するための仕様だけれど、RDFっていうのは情報そのものを記述するための仕様だ」っ
Shibuya.jpg the 4th meeting: Digital Photo Professionalで何となく良い感じの写真を簡単に現像する Shibuya.jpg the 4th meetingで発表した内容のおさらいです。 今回はCanonのEOS Digitalシリーズに同梱されているDigital Photo ProfessionalでRAW現像する際に、へぼい写真を何となくそれっぽく見せるためのパラメータ設定を紹介します。お手軽目的なので細かいことは気にしない簡単な方法です。 まずはサンプル用の画像を用意します。テーブルの上に置いた文庫本です。たしかデニーズで朝ご飯を食べた時に何気なく撮ったものです。何気なさ過ぎて今一何が何だか分からないこの写真を何とかしてそれっぽくしてみます。 レタッチ前の写真 どんな風に調整するかというと、言葉で説明するよりパレットの画像を見ていた
SPARQLクエリエンジンのJavaScript実装版のデモを公開しました。まだまだアルファ版ですが、ちょこっと遊べる感じです。 Hercules RDF Library in JavaScript: SPARQL Engine Demo 色々試しながら実装中なのでコード見るとかなりゴチャゴチャしてますが、とりあえず超最低限は動きます。とはいえ、ちょっといじれば未実装の塊なのがわかりますが。今月中にはSELECTを100%実装したいと思っています。 将来的には、SPARQLクエリをベタに書かなくてもRDF/Objectマッパーから直接クエリできるようにするつもりです。 ちなみにパーサは自前でLL(1)の再帰下降パーサを作りました。車輪の再発明どころの騒ぎではありませんが、こういうのは自分で作った方が楽で良いですね(パフォーマンスを真面目に考えるとそうとも言えないですが)。一応汎用的なパーサ
あんまり遊んでないけど、取り敢えず1つだけはてなワールドの駄目な点を挙げておく。 それはなにかといえば、視界だ。 はてなワールドを見ている「カメラ」は画角が狭い(焦点距離が長い)、言い換えれば望遠よりの設定である。にもかかわらず、無理して広い範囲を画面内に納めようとするから、カメラが自キャラからやたら遠いところにあるように感じてしまう。さらに、望遠レンズの特性として、いわゆる「奥行きが圧縮される」現象が起きる。これにより、キャラクター同士が離れていても近くにいても、大きさの変化があまりない状態になる。 画角の違いによる遠近感の変化 もう1つ、カメラの位置が低すぎるうえに、地面に対する角度が浅すぎる。言い換えれば地平線が画面内で下過ぎる。これが何を意味するかというと、多くのキャラクターが画面内にいる場合に、キャラクター同士が重なる面積が広くなるということだ。さらに、前述の画角の問題により、キ
旬が過ぎたネタだけども。 Tumblr開発者は死ねばいいのに というか、何でTumblrからの転載を防ぐ方法が(私の知る限りでは)ないんだろう。キャッシュするなとかロボット避けとかはmetaタグやなんかで設定できるし、似たようなのを最初から付けろよ開発者。死ねばいいのにとか思います。 何か騒動が起こってるときは誰が1番特をするのかを考えればいい、というのは有名な話である。今回の場合は以下のようになる。 Tumblrが無断転載で炎上 無断転載可のページにはライセンスを付ける流れになる それは当然機械処理可能な方法かつオープンなライセンスであるべきだ 空前のRDF+CCブーム到来 W3CもCCも大喜び 間違いない、この騒動の裏で糸を引いてるのはW3CとCCの連中である。みんな踊らされるな! さて、実際問題機械処理するとなると、ホワイトリスト方式になるだろう。現在の法体系を考えればデフォルトは転
ブラウザ判定(しかもダメダメ)しているYahoo! Japan 内容自体は概ね同意なのだが、1つ気になる文章が有った。 こういうフォールバック先は本来、そのサイトのフル機能を実装しているものの、ブラウザ(のバグ等)に対する回避処理を入れていない、理想的なブラウザでは機能するようなものであるべきです。そうでなくては新しいブラウザを含む、未知のブラウザをサポートできないからです。 この文には議論の余地があると思う。本来という言葉を使うほど、この文が示す内容は妥当なものなのだろうか。というのも、今回Yahoo! JAPANは確かに最適とは言えないブラウザの判別方法を採用してしまったわけであるが、基本的には最新のブラウザにキャッチアップしていく姿勢で有るはずだ。作って放置するサイトならまだしも、このように最新状況にキャッチアップしていくサイトにおいては、フォールバック対象を前方互換(つまり未知のブ
ImageSorter V2 画像を色でソートするというアイデア自体は以前から存在したものだと思われるが、実際にやってみるとなかなか面白い。 Plane状態の表示 Shpere状態の表示 いわゆる「タグ」よりも直感的な検索が出来るのが興味深い。このようなデータそれ自体の情報を上手くタグやメタデータと組み合わせる方法が有れば、何かもっとおもしろいインターフェースを作ることが出来るような気がする。マルチメディア・感性データベースの方面に期待だろうか。
IRCの独り言を拾うときに使うと良いと思います。 package User::Twitter; use strict; use warnings; use base qw(Module); use Multicast; use Net::Twitter; sub message_arrived { my ($this,$msg,$sender) = @_; my @result = ($msg); # サーバーからのメッセージか? if ($sender->isa('IrcIO::Client')) { # PRIVMSGか? if ($msg->command eq 'PRIVMSG') { my $msg_prefix = substr($msg->param(1), 0, length($this->config->prefix)); my $msg_body = substr($m
Adaを覚えても職場ではスクリプト言語なんだよね、それにPerl6も出たし まずはこれから。よく聞くんだけど、これは解決可能な問題だ。というか問題設定が間違っている。 最初に根本的に疑問なんだけど、なぜ会社で使っているのと同じ言語をあなたが使わないといけないんだろう。慣れてるから? 仕事を持ち帰るから? 自分のために使うのはAdaでいいと思う。あなたが自分のためにやることってなんだろう。Google検索を使ってピザを注文することかな。そうじゃないだろう。ここを読んでいるほとんどの人にとって重要なのは、メールを読み書きして、Webを見て、Blogを書いて、プログラムを書いて、っていうことだろう。他にも、デジカメで撮った写真を整理するアプリを作ったり、音楽を共有したりっていうのもある。この中には、スクリプト言語じゃなきゃできないことっていうのはたぶんない。特に、会社で使っていスクリプト言語と同
Hercules - A simple JavaScript library for O/Rdf mapping RDFとJavaScriptのObjectをマップするライブラリを作り始めました。雰囲気としてはRailsのActiveRecordに似ています。JavaScriptのコードを書けば、自動的にSPARQLクエリ生成からリモートサーバへの問い合わせ、返事のパースにキャッシュまでを行ってくれます。 現在は本当に作りはじめのベータバージョンで、エラーハンドリングなどは全然していません。機能も最も単純なURIを基準としたデータの取得のみです。 <?xml version="1.0" encoding="utf-8" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://p
ユーザースタイルシートによる広告の消去は、万引きと同じである? という議論。 個人的には、サービスを利用するのならば、ユーザースタイルシートなどで意図的に広告を消去するのは好きではない。 ある意味では、広告を見る対価としてサービスを利用する権利を得ているのだから、広告を消すことは契約違反(なんの契約かは深く考えていないが)になりかねない、というのもある。しかしそれ以上に、広告を消すという行為は、愛用しているそのサービスに多かれ少なかれダメージを与えることなる、というのが大きな理由だと考えている。極端な例を挙げれば、全員が手元で広告を除去してしまえば、広告収入で運営されているサービスは停止を余儀なくされるだろう。 一方的に利益を搾取するという意味でも、最終的にサービス側が停止に追い込まれるという意味においても、広告の消去は万引きと同じと言っていいのかもしれない? 反対意見としては、「どうせ見
ActiveRDF - putting the semantic web on rails RailsのActiveRecordをRDFグラフに置き換えるライブラリ。CoCな感じでRDFグラフを扱えるらしい。ただし、ドキュメントが全然整備されていないので、もうちょっと待たないと使えないかもしれない。現在はバージョン0.2。 個人的にはRDFグラフが簡単に操作できそうなのがうれしい。JenaのAPIも別に使いにくくは無いが、DOMと同じぐらい記述量が増えてしまうのが困る。
次のページ
このページを最初にブックマークしてみませんか?
『Yudai Iwasaki - The gopher on a skillet』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く