サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
blog.unfindable.net
「wc -l file」が数えるのは行数ではなく改行数なので、ファイルの末尾が改行でない場合、行数よりも1少ない結果が返ります(GNU wc・BSD wcともに)。 4行(空行を無視すると2行)からなるファイルfooを作って確かめます。UbuntuのshのechoやBSD echo(Macの/bin/echo)ではなく、bashのechoを使ってください。 #!/bin/bash echo -en '123\n\n\n3' > foo wc -l foo cat foo | wc -l awk 'END{print NR}' foo grep . foo | wc -l grep '' foo | wc -l 結果は下のとおり。 3 foo 3 4 2 4 行数を数えたいときは「grep '' file|wc -l」や「awk 'END{print NR}' file」、空行を無視したいと
この記事で作るもの:Unicode 6.0のすべての文字を1ページで (PDF, 23MB) ヨハネス・ベルガーハウゼン, シリ・ポアランガン『世界の文字と記号の大図鑑 ー Unicode 6.0の全グリフ』(研究社, 2014)の著者はUnicode 6.0の全109242文字を2時間30分かけて見るビデオの作者ですか。今度は1024ページの書籍。「Decodeunicode」で画像検索すると原著が出てきますが、楽しみですね。(追記:世界の文字と記号の大図鑑) 「Unicodeのすべての文字を印刷した本って、前にもなかったっけ?」と思って本棚を探したのですが、勘違いでした。 頭に浮かんだのはThe Unicode Consortium『The Unicode Standard, Version 5.0』(Addison-Wesley Professional, 2006)(文献リストあり
先日紹介した「風景から歩行者を消す手軽な方法」は、動画の画素ごとに時間について平均をとると動いているものを消せるという話でした。 この方法について、(1)平均ではなく中央値や最頻値を使った方がいいのではないか、(2)シャッターを開きっぱなしにするのと同じではないかと言われたので、お答えしようと思います。(ネタを引きずるのはよくないのですが。) (1)については、やっていることの意味からすればその通りです。しかし、中央値や最頻値は平均に比べて計算負荷が高いので(前記事の追記も参照)、動画という重いデータを扱う際には、そこにこだわるべきではないと思います。簡単なものをまず試し、できたらそれでよしとするわけです。例えば、ウェブカメラの画像を取得するCurrentImage[]を使って、先の話のリアルタイム版を作れるのですが、平均でやるなら次のように簡単です(Mathematica)。 t = 1
固定したカメラで撮った動画で、画素ごとに時間について平均を取れば、(適当な速度で)動くものを消せます。Mathematicaだとこんな感じです。(参照:フリーソフトウェアを使う方法) Export["result.jpg", Image[Mean[Map[ImageData, Import["movie.mov", "ImageList"]]]]] おまけ:フレームの平均を計算していく過程(最初の5秒を30秒で) 詳細:風景から歩行者が消えていく様子(リアルタイム版) 追記:画質的には平均ではなく中央値や最頻値を使った方がいいかもしれませんが、「手軽」ではなくなります。「平均でもできるんだ」という「手軽」さの実例だと理解していただければと思います。 中央値:MeanをMedianに置き換えるだけで試せますが、計算時間・消費メモリともに増大します。平均なら約90秒で終わるこの動画(1280x
Pythonで階層的クラスタリングをするときは、scipy.cluster.hierarchyを使うのが簡単なのですが、先日ちょっと間違えてしまいまして。 準備 scipyやmatplotlibを使います(インストールは済んでいるとして)。 import scipy import numpy import scipy.spatial.distance as distance from matplotlib.pyplot import show from scipy.cluster.hierarchy import linkage, dendrogram from random import random 特徴ベクトルの長さがdimのデータをn個ランダムに作り、実験用のデータとします。 n = 100 dim = 10 data = [[random() for i in range(dim
第3回電王戦が終わりました。 結果はプロ棋士側の1勝4敗で、この数字だけでは「トッププロとコンピュータの強さは同じくらい」という仮説を棄却することはできないのですが、内容まで見た人たちの一部では「コンピュータはプロ棋士より強い」という結論になっているようです。 コンピュータがトッププロよりも強くなることに関して、残念に思うことが2つあります。 残念なことの1つ目は、生身の人間に勝つ程度の将棋の強さならお金で買えるようになってしまったことです。ここで言う「買える」とは、お金を払って手に入れて、好きに使えるという意味です。囲碁棋士の趙治勲さんが『お悩み天国』で次のように書いていましたが、これは将棋にも当てはまることでした。 パソコンや携帯でやるゲームって、覚えたその瞬間に楽しめるわけですよね。モバゲーとか、グリーとかいう……僕はやったことないのですけど、球団を持てるほどに成長しちゃって。そのゲ
魔方陣の解の列挙は並列化しやすそうな問題ですが、ここでの方針では、探索効率を上げるためには条件分岐が不可欠なので、(「数」を求めるだけだとしても)GPGPUでうまくやる方法がわかりません。そこで、CPUに載っているコアのみで並列化します(Xeon Phiなら簡単なのでしょうか→追記参照)。 一番外側の、0から(1<<25)-1まで変化する変数iのループをOpenMPで並列化します(schedule(guided)では遅くなります。schedule(auto)はVisual C++でサポートされたら試します)。変数iは上の図の緑の部分(カンで5個にしました)を各数5ビットで表現し、つなげたものです。マスに入りうる数は1から25までなので、5ビットというのはちょっと冗長ですが、とりあえずはよしとしましょう。 出力はバイナリ形式で、1つの解に25バイト使います(1つのマスに入る数を1バイトで表現
ソフトウェア関係の雑誌を読んでいたら、次のようなことが書かれていました。 「0以上1未満の一様乱数を12回足して6を引くと正規乱数になる」というテクニックを覚えておけば、一様乱数しか提供されていない開発環境で大いに役立つはずだ これは中心極限定理のいい例ですね。実際に乱数を大量(下の絵では100万個)に発生させてそのヒストグラムを描いてみると、正規分布になっているように見えます(太線は正規分布)。これで十分な場合も多いでしょう。 しかし、正規性の検定をすると、正規分布であるという仮説を棄却したくなるようなp値が得られます。Mathematicaで試します(参考:DistributionFitTest)。 In[1]:= randomGaussian[] := Sum[RandomReal[], {12}] - 6 In[2]:= data = Table[randomGaussian[],
Windows 8.1に游明朝が、Mac X v10.9 Mavericksに游明朝体が搭載されました。各OSでフォント名もウェイトも揃っていないという奇妙な状況ですが、「Windows搭載の日本語フォントにおいて、バックスラッシュ(U+005C)の字形は円記号(U+00A5)と同じでなければならない」という考え方を貫くための、最も簡単な方策なのかもしれません。 WindowsでもMacでも2種類の明朝ファミリーがあるのですから、うまく使いこなせるようになりたいものです(MS明朝はファミリーとは呼べないか)。 というわけで、游明朝体をちょっと見てみました。以前、「小塚明朝では区別され、ヒラギノ明朝では区別されない漢字のペア239組」という記事を書きましたが、游明朝体はどうでしょう。 Mac OS Xに搭載されている游明朝体ミディアム(バージョン1.000)では、CIDが違うにもかかわらず形
追記:デスクトップのすべての機能が使えるわけではありませんが,クラウド版も無料で使えます。(こちら) Raspberry Piという特定のプラットフォーム上でのことですが、ついにMathematicaが無料になりました。 The Wolfram Language and Mathematica on Raspberry Pi, for free かつてNeXTにバンドルされたこともあったらしいのですが、Mathematicaの価格は、それを無視できるほど高いNeXTの価格に含まれていたと考えるのが妥当で、無料になったのは実質的には初めてです。(Mathematicaについてよく知らない人はWikipediaへ、入門はMathematicaラーニングセンターから) Raspberry Piは、Amazonでも4000円程度で買えますが、今回の発表でその価格が変わったということもありませんから
以下に掲載する漢字のペア239組は、小塚明朝 Pr6N R(バージョン6.014)では形が区別されていますが、ヒラギノ明朝 ProN(Ver. 8.10)では形が区別されていません(厳密に言えば、ヒラギノ明朝で、形は区別されていなくても位置が違うものが2字あります)。(小塚明朝PDF版とヒラギノ明朝PDF版) 他にもあったら教えてください。 よく見ないとわからないものもありますが、小塚明朝では確かに形が違います。これらの文字が、ヒラギノ明朝では同じ形になっているというわけです。(図中の数字はCID) たとえば、 CID=6930とCID=13407を区別すべきだとは、個人的には思いませんが、区別して出力するためには、安岡さんの論文で紹介されているようなCIDに対応したシステム(TeXも含まれる)と、2つのグリフが本当に違っているフォントが必要です。ですから、「TeXを使えばCID=6930
私とは何か 「個人」から「分人」へから続く。 仮に「分人」という考え方がいいと思っても、それをテクノロジーでサポートしようとすると、いろいろ難しい問題を具体的に解決しなければならなくなります。Joel Spolsky編『BEST SOFTWARE WRITING』(翔泳社, 2008)から、そのような話題を2つ紹介しましょう。(参考文献リストなし。索引あり。) 1. サポートすることはできない思わせる話(ダナ・ボイドの2004年6月の講演「自閉的ソーシャルソフトウェア」から) 知ってのとおり、インターネットは社会的なアイデンティティがもはや問題とならない世界という幻想を満たしてはいなかった。「チューリングゲーム」(http://turing.gatech.edu/)と呼ばれるプロジェクトで、エイミー・ブルックマンは、ペルソナを通じて他人を演じようとする場合でも、その人の普段のアイデンティテ
新版が話題になったばかりのSimCityですが、 初代SimCityは、ライセンスがGPLになり永遠の命を獲得、途上国の子どもにPCを配るプロジェクト、OLPCの、いわゆる100ドルパソコンにも搭載されています。 SimCity 2000は、MoMAで殿堂入りしています。 SimCity 3000は、小学校6年生以上を対象にした、オフィシャルの「ティーチャーズガイド」(PDF)も出ている本格派です。 SimCity 4は、パッチを当ててから遊びましょう。 SimCity Societiesは、なかったことにされています。 SimCity Socialは、街づくりというよりも、ソーシャルゲームとは何かを学ぶための教材になるでしょう。 とりあえず試してみたい人は、永遠の初代SimCityがおすすめです。たとえばUbuntuなら、以下のコマンドですぐに遊べます。 sudo apt-get ins
小型辞典にもいろいろ個性があることは、「学校では教えてくれない! 国語辞典の遊び方」を紹介したときに述べたとおりだが、『辞書の世界』収録の倉島節尚「辞書編集を巡る二、三の覚え書き」によれば、規範重視型の代表は『岩波国語辞典』で、現実重視型の代表は『三省堂国語辞典』だという(どちらもアプリあり)。 その『三省堂国語辞典』(三国)の編纂者である筆者が、2013年末完成予定の三国第7版の編纂プロセスを紹介しつつ、国語辞典のこれからについての思いを綴ったのが、飯間浩明『辞書を編む』(光文社新書, 2103)である。(参考文献リストなし。索引あり。) 本書に記した作業の後には、筆耕・構成・印刷用のデータ作成・用紙や資材の選定・装丁・印刷・製本などの工程が続きます。(p.262) 国語辞典のこれからについて考えるとき、キーワードは2つある。電子辞書とウィクショナリーだ。 電子辞書において、三国のような
追記:文庫化した。 新学期は1年で最も辞書が売れる時期でしょう。学習用の英和辞典にはこだわりのある(あった)人が多いかと思いますが、国語辞典はどうでしょう。 「新明解国語辞典(新解さん)」の独特な語釈は有名なので、「国語辞典にも個性がある」ということは知っていても、いざ自分で選ぼうと思うと、かなりの種類があるので面倒になってしまうものです。 私自身、用例を文学作品から採っていて、その出典も明示している新潮現代国語辞典が最高と思っていました。「電子辞書に入っている広辞苑で十分」という人もいるでしょうし、「国語辞典なんてどれも大して変わらない」という人もいるでしょう。 私を含めて、このような、辞書を引き比べたりしない人間は、サンキュータツオ『学校では教えてくれない! 国語辞典の遊び方』(角川学芸出版, 2013)を読むと悔い改めることになります。小型の国語辞書にこれだけの個性の違いがあったのか
「千葉工業大学まで車で行くと何分くらいかかる?」とGoogleに訊ねた結果のまとめ twitter.com/yabuki/status/… — Taro YABUKIさん (@yabuki) 2013年3月30日 各地点から千葉工業大学正門(北緯35.6898・東経140.0203)までの距離を Google Distance Matrix API で取得し、Mathematica の ListContourPlot で、ColorData["RedGreenSplit"] の色を付けて描きました。利用できるカラースキームは ColorData["Gradients"] で取得できます。 もちろん、この地図で色がついているからといって、海上をスタート地点にすることはふつうはできないでしょう。
Twitter Streaming APIで取得したツイートをブラウザにプッシュする方法の続きです。 2、3年前に、位置情報付きのつぶやきをGoogle Maps上にリアルタイムに表示するウェブアプリを作りました(動画)。そのときは、クライアントの言語に自動翻訳したり、つぶやきを読み上げてみたり、Google Earthにも対応したりしていたのですが、利用していたサービスが終わってしまったり、APIのバージョンが変わってしまったりしたために、動かなくなってしまいました。 そこで、ここではエッセンスのみを再現してみようと思います。当時はサーバで受信したTwitterのストリーミングデータをブラウザに送信するのはちょっと面倒だったのですが、node.js(とSocket.IO)が使える今では、「あの苦労は何だったんだ?」という感じになっています。 以下のリンクで試せます。 http://twi
「node.jsでTwitter Streaming APIを利用する方法」の続きです。 Streaming APIを使ってサーバで受信したつぶやきをブラウザにプッシュするには、Socket.IOを使うのが簡単です。 準備 必要なパッケージをインストールします。 npm install socket.io express ntwitter サーバ側 Streaming APIで取得したツイートの情報を、次のようなJavaScriptコード(server.jsとします)でクライアントにプッシュします。consumer_keyとconsumer_secret、access_token_key、access_token_secretの部分は適切なもので埋めます。 var express = require('express') , app = express() , server = requi
ntwitterを使って簡単に実現できます(他にもいろいろあるかもしれませんが、最初に試したのがntwitterでした)。 取得した情報をコンソールに出力するだけの簡単な例を作ってみましょう。 まず、Twitter Developerでアプリを登録し、consumer_keyとconsumer_secret、access_token_key、access_token_secretを取得します。 node.jsをインストールします。 sudo apt-get install git npm # Ubuntu 12.04 sudo apt-get install git npm nodejs-legacy # Ubuntu 12.10 ntwitterをインストールします。 npm install ntwitter 次のようなJavaScriptファイルを作ります(server.jsとします)
「humanities and science」が「文系と理系」になっているのは翻訳の間違いでしょう(Google翻訳では「文系=humanities」でした。ずいぶん違うんじゃないかと思いますけどね。そもそも、日本の「文系」に相当する英単語ってあるんですかね)。 「テクノロジーとアート」、この2つが直交していること、その交差点に立つことが重要なのはわかります(「art」には「技」という意味もありますが、いわゆる「芸術」だと考えていいでしょう)。 「創造性と技術」、創造性のないところで技術が発達するとは思えないので、「技術の伴わない創造性はダメ」ということだと解釈したいのですが、そういう感じではなかったです。 全体を通じて、「テクノロジーとアートとリベラルアーツの交差点」が正しいのではないかと思いました(リベラルアーツの古い意味を採用するのでなければ)。これなら「文系と理系」みたいな訳語が
「主人公がラストで特攻したら奇跡」という点において、『風の谷のナウシカ』は『さらば宇宙戦艦ヤマト』のパクリだそうです。こういうパクリの関係を大量に集めて視覚化したパクリの系譜ネットワーク(≠ツリー)が、岡田斗司夫『オタク学入門』(太田出版, 1996)に掲載されています。(新潮OH!文庫版・新潮文庫版) ノードの関係だけを再現すると下のようになります(クリックで全体表示)。『オタク学入門』に掲載されているのはもっと詳しくて、先ほどの「主人公がラストで特攻したら奇跡」のような説明がエッジに付けられています。 すべての物語のパターンは聖書に含まれる47種類で尽きているというように、整理の仕方を根本的に変えるなら、パクリの系譜をツリーで表現することはできるかもしれませんが、とりあえずは、パクリの系譜はツリーではありません。ツリーで整理できればそれはすごいことですが、ネットワークの段階で、オタクの
「日本語に類語辞典はいらない」とAppleが判断したということなのでしょうか。 Mac OS X 10.7 Lionの辞書アプリには次の日本語関係辞書が含まれていました。 大辞泉(小学館) プログレッシブ英和・和英中辞典(小学館) 類語例解辞典(小学館) Mac OS X 10.8 Mountain Lionの辞書アプリに含まれている日本語関係辞書は次の通りです。 スーパー大辞林(三省堂) ウィズダム英和・和英辞典(三省堂) 大辞泉が大辞林に、プログレッシブがウィズダムになったのはいいのですが、類語辞典が無くなったのは明らかに劣化です。大辞林が類語辞典を兼ねるわけでもありませんし。(皮肉なことに、大辞泉の語釈には類語も記載されているので、類語辞典を兼ねられます。) 10.7 Lionが手元にあれば、/Library/Dictionariesのファイルを~/Library/Dictionar
拙著『Webアプリケーション構築入門 第2版』では、PHPとJavaでウェブアプリを作る方法を解説しています。作ったウェブアプリを公開しようとするとき、PHPのウェブアプリはたいていのレンタルサーバで動くのでいいのですが、Javaのウェブアプリはほとんどのレンタルサーバでは動かないので、自分のサーバを持っていない場合はいろいろ面倒でした。 クラウド(IaaS)やVPSの普及によって、Javaのウェブアプリを公開するための経済的なハードルは下がりましたが、「レンタルサーバにファイルをコピーするだけでOK」というPHPに比べると、IaaSやVPSでの「サーバに各種サーバソフトウェアをインストールして・・・」という技術的ハードルはあまり下がりませんでした。 しかし最近(と言うほどでもありませんか)、HerokuのようなJavaも使えるクラウド(PaaS)の登場によって、Javaのウェブアプリを公
2008年にスパコンと(トップではない)プロが対戦したときは、9路盤で引き分けたものの、19路盤ではハンデを最大(9子局)にしても勝負になりませんでした(当時の記事)。 それから4年経ち、ハンデを大幅に減らした対局(19路盤4子局)で、コンピュータがトッププロ(武宮正樹9段)に勝ってしまいました。対局の様子はニコニコ生放送で配信されましたが、視聴者は6万人を超えていたようです。私もその一人でした。 特別イベント『コンピュータ囲碁がプロ棋士に挑戦!』 モンテカルロ法という、ランダム(もちろん枝刈りは必須ですが)な着手で対局をシミュレートし、勝率の高かった手を選ぶ方法を発明し、その使い方がうまくなってきたことが勝因でしょう。 囲碁プログラムもはや、アマチュアの全国大会クラスになっているということなので、最近私がコンピュータに勝てないのも納得です。 今回対戦したプログラムZen(の祖先)は、すで
Googleの現在のミッションは、 世界中の情報をアクセス可能にし、人々の役に立てる だとされています。しかし、この「世界中の情報」に「Googleの検索アルゴリズムの詳細」は含まれていません。「Googleで検索して出てこないものは存在していないに等しい」と言われる時代、Googleのアルゴリズムは世界の成り立ちを決めていると言ってもいい時代です。検索結果に「Googleのアルゴリズム」が含まれていないのなら、それは「世界中の情報」とは呼べないでしょう。近いうちに出てくるということもないでしょう。ミッションはインポッシブルなのです。 Googleも営利企業ですから、自社の優位を保つために秘密を持つのはかまいません。そのこと自体を邪悪だとも思いません。でも、実現する気のないミッションを掲げたままにしておくのはいけません。邪悪です。 ついでに言うと、「アルゴリズムの詳細を公開するとチートされ
次のページ
このページを最初にブックマークしてみませんか?
『配電盤 | {informa,computa,evolu}tion』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く