aokomoriuta's blog

青子守歌のブログ

OpenCLやる前にSIMD使い切れっていう幻想

お詫び

では本編どうぞ↓

本編

若干話題に乗り遅れた感ありますが。

d.hatena.ne.jp

けど、SSEも知らねー、SIMDも知らねー、なんか俺が書いたアルゴリズム遅いけどとりあえずOpenCLとかで高速化しよっかなーとかね、甘ったれてんじゃねえよ。CPUをもっと使いきれよ。お前のアオいコードのせいでCPUが泣いてるよ。っていう話ですよ。

GPGPUなんてのはSIMDを使い切った後の話でしょ。

GPGPUするのにGPUのパワーとメモリが足りませんとか言う前にまずSIMDからだろ。

とか言われてたので、検証することにした(やっつけ)。

続きを読む

株式会社はてなに入社しました

株式会社はてなに入社しました

株式会社はてなに入社しました - hitode909の日記

QiitaでのHaskellポエムについて何故か作者に敵視されている非Haskellerが思うこと

Twitter界隈でQiitaでkenokabeさんの書いたHaskell記事を発端に色々と話題になっています。

個人的にこの騒動について思うのは、別にQiitaにあぁいう記事があってもいいんじゃないかなと。
私自身はあの記事を良いとは思わないし、kenokabeさん自身についても、少なくとも私自身の価値観とは合わないので極力なら関わらずに生きていきたいと願ってます。
ただ一方で、彼の思想や書き方についてはすごいところも多いと思いますし、優れている部分もあるなと思っています。必要悪とかそういう意味では全くなく、単に、価値観の相違があって学ぶべきことはあるがまじわるとお互いつらい、という存在だと私は認識しています*1。だから私からすると一連の記事に対して(良いでも悪いでもなく)「アレ」という感想しかもてないわけです。

なので、みんながあぁやってポエムだポエムだと言っているスタイルについては、それはそれで確かに旧来のQiitaユーザーとは違う書き方ではあるけど、彼自身が「プログラマに共有したい知識」と思って書いたことなのだから、そういう記事があっても良いとは思います。そうやって違うものを受け入れて多様化することの重要性はみんな理解しているはずです。

ただ、それをQiitaユーザーが「良い」「悪い」と評価したことをフィードバック(つまり検索した時のランキングなどに反映)する仕組みがあまり良くなかったです。
この辺り私がQiitaを使わなくなった理由でも述べられてますが、kenokabeさんが書いた一連の記事に対して結構な問題が指摘されたのにそれが上位にあって良記事のように見えてしまったのが問題だったんでしょう。
特に関数型プログラミング界隈の方々、Haskellerの方々にとってはタグが「汚染」されてしまうという深刻な問題だったようです(私は非Haskellerなので実害なかったですが)

そして最終的に、問題はエスカレートしてしまって、Qiita公式の独断で記事を消したりしてさらに問題は悪化してすごい人たちは使いたがらなくなったし、kenokabeさんもユーザー資格停止処分にまでなって、最悪の結末だと思います。

じゃあどうしたらいいかという話は、思う所ありますが、後出しジャンケンになるので、タイトル通り以上のただの「思うこと」だけで終わらせておきます。

*1:なぜか先方は私のことを一方的に敵視してるようですが、どちらかというと私個人というよりは私が属しているコミュニティそのものに対する敵視のように感じます。

BitbucketでGithubみたいなコミット通知をTwitterにhookする

OpenMPSGithubからBitucketに引っ越したんですが、その時Githubみたいなコミット通知をTwitterにhookする必要がありました。

簡単なヘルプは
Twitter hook management - Bitbucket - Atlassian Documentation
にあるんですが、最後のFormatがくせもので、そのままだと

レポジトリ名 コミッター名 メッセージ

とだけの質素なものになっていて、少なくともコミットURLがほしいので色々悩んだ結果、どうもうまくいかず、妥協してそのヘルプページにあるTinyURLを使う方法しかできませんでした。

${repository.name}: commit by ${commit.author} ${commit.tinyurl} ${commit.message}

誰かもっといいFormatテンプレート持ってたら教えてください・・・。

株式会社はてなに入社しました

株式会社はてなに入社しました

株式会社はてなに入社しました - hitode909の日記

Twilogの特定ユーザ向け@ツイートを削除するGreasemonkeyスクリプト

「Twilogでこいつとの会話という黒歴史を抹消したい!!」という需要が割とあるらしいと聞いたので、Greasemonkeyスクリプト作りました。

TwilogFriendsEliminator for Greasemonkey

  1. Greasemonkey環境(Firefoxならアドオン)を入れてください。
  2. スクリプトページの右上のinstallボタンをおしてインストールしてください
  3. Twilogにログインしてください
  4. Friendsページ()に飛ぶとツイート一覧ページの上に削除ボタンがありますので、そこをクリックすれば削除が実行できます(削除したら戻せないので注意!
  5. 削除が完了すると自動的にページがリロードされます

Japanese Translation of The ParaView Catalyst User's Guid v1.0

翻訳にあたって

The ParaView Catalyst User's Guid v1.0(PDF直リンク)というのを見つけたので、勉強がてらここにちょくちょく和訳していこうと思います。未翻訳部分がいっぱいあります(翻訳順は私が欲しい情報順です)&翻訳の質は高くないので、先の原文PDFの参考程度にしてください。

ライセンス

The ParaView Catalyst User's Guidはクリエイティブ・コモンズ 表示 非移植 3.0(CC-BY 3.0)で利用可能です。

原著者
Andrew C.Bauer, Berk Geveci, Will Schroeder (Kitware Inc.)
原著者帰属表示
© 2013, Kitware Inc. http://www.kitware.com
翻訳者帰属表示
青子守歌(aokomoriuta) http://twitter.com/aokomoriuta

Section 1: Introduction to ParaView Catalyst

Motivation

Example Workflow

Further Information

Section 2: Catalyst for Users

Pre-Configured Catalyst Pipelines

Creating Catalyst Scripts in ParaView

Creating a Representative Data Set
Manipulating Python scripts

Avoiding Data Explosion

Total Shallow Copy or Output Independent of Input
Add Field Data
Topology Changing, Dimension Reduction
Topology Changing, Moderate Reduction
Topology Changing, No Reduction

Section 3: Catalyst for Developers

High-Level View

General Details

VTK Data Object API

vtkObject
vtkDataArray
Grid Types

Topologically Structured Grids >
vtkImageData and vtkUniformGrid >
vtkRectilinearGrid
vtkPointSet >
vtkStructuredGrid >
Cell Types >
vtkIdList >
vtkPolyData >
vtkUnstructuredGrid >
vtkCellArray >** Field Data

Multi-Block Data Sets

vtkMultiPieceDataSet
vtkUniformGridAMR
vtkOverlappingAMR
vtkNonOverlappingAMR

Grid Partitioning

The VTK Pipeline

The Catalyst API

High-Level View
Class API

vtkCPProcessor >
vtkCPPipeline and vtkCPPythonScriptPipeline >
vtkCPDataDescription >
vtkCPInputDataDescription >** Adaptors: Putting it All Together

Linking with C and Fortran Simulation Codes

Compiling and Linking Source Code

Linking with Python Simulation Codes

Creating Specialized Catalyst Pipelines

VTK C++ Pipeline
Custom Python Script Pipeline

Section 4: Building Catalyst

Creating a Catalyst Edition

Setting CMake Build Parameters

Copying Files from the ParaView Source Tree into the Created Catalyst Source Tree

Copying files from the edition into the Catalyst source tree

References

Examples

Appendix