0

俺々ソーシャルメディア

ソーシャルメディアといわれるものについてなんとなく頭の整理ができてきた。
私はソーシャルメディアが嫌いだとあちこちでいってるわけですが、一部のソーシャルメディアが個人的に嫌いなわけで他人が楽しむ事は大いに結構。むしろ羨ましい。
その一部というのがわかってきた。
まずどうでもいいとも思うけど「ソーシャルメディア」の言葉の定義。

ソーシャル

社会の。社会的な。

メディア

情報の記録、伝達、保管などに用いられる物や装置。媒体(ばいたい)、情報媒体などと訳されることもある。

ソーシャルメディア

誰もが参加できるスケーラブルな情報発信技術を用いて、社会的インタラクションを通じて広がっていくように設計されたメディアである。 個人と個人、個人と組織、組織と組織の間の情報発信が、ウェブサービスを経由することによってそれ自体が意味を持つコミュニティとなり、実社会に広く拡散され、影響力を持ち始めたメディア。

なるほど、けっこう広義的に意味付けられてる。

俺々ルールでインターネットをざっくり紐解くと以下のように大別されて、2以下はすべてソーシャルメディアになる。
で、4と5が自分の苦手なソーシャルメディア。

1,ソーシャルメディアじゃないサイト
ニュースサイト、便利ツール系サイト、企業・商品サイト等一人でも楽しめるサイト
Evernoteもここ。

2,個人ブログ
普通のブログ。コメント欄を使えばインタラクティブなメディアとしても機能はするけど、基本的に個人が発したものを個人が読むというのがメイン。そんなサイト。

3,不特定多数の人が参加するサイト
2ch、@コスメ、食べログ、はてなブックマーク等。一昔前のCGMといわれたサイト。
情報を取得管理するのにも使えるし、自ら参加する事もできるサイト。

4,なんの責任も持たないなんちゃってニュースサイト。自ら報道機関を名乗るサイト。
JANJANとかgigazineとかなんとかwaveとか。「〜だそうです。」「〇〇が×××と報じています。」とかアホかと。
2と似てるけど、違う。普通の個人ブログとしてならok。これはゲンダイや夕刊フジのゴシップ紙と同じで信ぴょう性が極めて低いしそもそも信ぴょう性なんて求めてないし便所の落書き並に責任の所在がない。それを発信者も受信者も理解してるのでこれはこれでほんとにいいと思う。
色々叩かれてるけど大手報道機関というのがこの役割を担うわけでそれでめし食って責任も持つというのでいいと思う。
それに代わる形でソーシャルメディアが台頭するというのは間違い。餅は餅屋に任せてあくまで市民目線で個人的見解として書いておくべき。

5,SNS。
mixi、Facebook、gree, twitter等。
友達・知人がいること前提のサイト。その上なんでもかんでもshareだの共有だのいって情報を垂れ流すサイト。ネットやってる友達の少ない自分としては居心地が悪いし友達のリコメンドはgoogleのロボットより精度が高いというけどそもそもその友達・知人がいないとどうしたらいいの?
Twitterはいれるかどうか迷ったけどそういう使われ方が多いので。
ただ企業がマーケティングに使う手段としてはいいと思う。
google+はその点共有する相手が選べるのはいいけど、サークルにいれた事を相手に知らせる時点でアウト。それすら教えたくない人もいるの。
時代遅れと罵られるまで使わない。

2と3はソーシャルメディアと言われるけど全然嫌いでない。むしろ好き。
自分苦手なのはやはり4と5。
4は消えてなくなってもいい。5は友達・知人がおれば考え方も変わるだろうけど、これがインターネットの主流になっていくというのはあんまり歓迎できない。一人のインターネットというのが昔のようにもっと大事にされたらいいと思う。「〜なう。」とか「いいね!」もいいけど、一人でニヤッてするサイト。そんなサイト待ってます。

暗いな俺。

0

scalaでベンチマーク

「scalaやclosureはJVM上で動作するから早い」と言われたかと思えば「scalaやclosureはJVM上で動作するから遅い」と言われたりとLL脳の自分には意味が分からない。
という事でjavaもろくに書けないのに少しscalaを触ってみた。
Scala

Scala (スカラ、スカーラ、スケイラ、Scalable Language) はオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。

さっぱり意味がわかりませんが、

  • 関数型言語
  • javaの豊富なライブラリが使える
  • インタプリンタ型言語とコンパイル型言語の間の子言語
  • javaのように事前コンパイルして実行することも可能だし、phpのようにインタプリンタ型のように実行させる事も可能(もちろん前者の方が高速に動作する)

ということらしい。

とりあえず、ベンチマークを取るためのコードを書いてみた。

まず、macへのインストールから。
portsがあるのでportsでインストール
最新は2.9らしいが情報が少なかったら怖いので2.8をインストール
sudo port install scala28

シンボリックをはる
# sudo ln -s /opt/local/bin/scala-2.8 /opt/local/bin/scala
# sudo ln -s /opt/local/bin/scalac-2.8 /opt/local/bin/scalac

確認
# scala -version
Scala code runner version 2.8.1.final -- Copyright 2002-2010, LAMP/EPFL

ついでにjavaも確認
# java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)

まずは、スクリプト版scala
import java.util.concurrent.TimeUnit
 
def timer() {
for (i <- 1 to 1000000) { // println(i) } }   var startTime = System.nanoTime(); timer() var estimatedTime = (System.nanoTime() - startTime); var microSec = TimeUnit.MICROSECONDS.convert(estimatedTime, TimeUnit.NANOSECONDS)   println(microSec)

コンパイル版scala
import java.util.concurrent.TimeUnit
 
object Timer {
def main(args: Array[String]) {
var startTime = System.nanoTime();
for (i <- 1 to 1000000) { // println(i) } var estimatedTime = (System.nanoTime() - startTime); var microSec = TimeUnit.MICROSECONDS.convert(estimatedTime, TimeUnit.NANOSECONDS); println(microSec) } }

比較対象がいるのでphpでも

スクリプト版scala
0.180391sec

コンパイル版scala
0.100856sec

php
0.217540sec

なるほどなるほど。

ただ、体感的にはphpが断トツで早い。
勝手に推測するところではscalaはJVMの起動に時間を要してる気がする。
JVM起動前からベンチを取る方法はないものか。

scalaは思想的にもシンタックス的にもおもしろそうなのでもう少し突き詰めてみよう。