Monthly Archives: 2月 2014

search_arrayやin_arrayは遅いので・・・

nigaraです。

最近大量のデータ解析をやってるのですが、何も考えずに配列に突っ込んで検索してたら処理が終わらなくなったでござる。

例えば以下のようなコード

$datasの要素数は76070。$user_id_datasの要素数は1117。

掛かった時間は10.5 sec。検索元の要素数が増えると1(n)となり全く終わらなくなる・・・。

そこでこのデータを配列ではなく連想配列に入れ、keyの評価にすると一気に改善します。

0.8 sec。10倍以上、検索が増えればさらにその差は開きます。

PHPに限らずPerlも同じで

grepで検索だと7秒。

連想配列だと0.2秒。こちらも大幅に速くなります。

業務では配列の検索を極力使わないか、いっそ禁止にした方が良さそうですね。

twitter, Facebook, Google+ ボタンの投稿コールバック

こんにちはJです。
投稿ボタンのクリックのcallbackをJS から知る方法まとめ

ソーシャルボタンの種類とドキュメント

SNS 公式ドキュメント 備考
twitter events#tweet  
Facebook FB.Event.subscrib FBのSDKでは「いいね」ボタンは拾える、「シェア」拾えなかった(2014/02/16現在)
Google+ +1button スニペットにてGoogle (+https://developers.google.com/+/web/snippet/)というテキストを含むユーザー エージェントのリクエストが表示されます 

 

html

Google+ の場合、callbackを呼ぶためにタグにdata-callback=”gplus” を追加しています。

JS

投稿コールバック拾うための実装

Google Analytics で trackingする方法

gaTrackingSocial

 

Facebookクローラー

Facebook向けにいい感じにサムネイルされるようにするには、

各ページのHTMLでOGP用のmetaタグで適用される画像や文言を指定します。

Facebookクローラーのユーザエージェント

Consoleコンポーネント

こんにちはJです。

今日は雪がふっていますな、先ほど頂いたチョコも驚きの白さでした。
関係者の皆様ありがとうございました。

今回は、Consoleコンポーネントを使用したbatchについて述べたいと思います。

> コンソールコマンドは、cronジョブやインポートなどのバッチジョブなどの自動更新タスクに使用

これまであった課題

  • batch数が増えてきたときにcrontabが分かりずらい、batchの実行される順番またはオプション引数が何なのかなど
  • batchこけた時に再実行する際にオプションとかログの出力などソースを見ないと分からない点があった

 

コマンドの利用方法など

実践

レイアウト

ImportCommand.php

コマンドの実行

また、HELPでオプション指定でオプション引数を確認できる。

–env=development を指定すると
config/development/ の環境のconfigを参照し実行してくれる

 

ファサードを試してみる

< ファサードはアプリケーションのIoCコンテナに用意したクラスに「静的」なインターフェイスを提供してくれます。

引用: Laravel4 日本語ドキュメント

 

  • ServiceProviderを編集する
  • Facadeを作る
  • クラスを作る

ImporterServiceProvider

Facades/Importer.php

Services/AbstractImporter.php

Services/Hoge.php

Services/Moge.php

command から commandを呼ぶ

実行

結果

command:import –name=hoge
command:import –name=moge
が実行される

まとめ

Consoleコンポーネントを使用した際のメリット

  •  ヘルプでオプション引数が分かりやすくなる
  •  command から callメソッドでcommandを呼ぶことができるので、順番を制御する際にも容易
  • webからもcallで呼ぶことが可能

 

よって、冒頭のほうに述べたこれまであった課題は解決ですね。

DN2820FYKのBIOS

DN2820FYKのBIOSを0021にupdateしたら大問題発生。これは地雷BIOSです。症状はUSBが認識しなくなるので一切操作出来なくなる。起動時にgrubまでは問題ないのですが、OSが立ち上がるとkernelがエラー吐いてUSB機器を認識しなくなります。OSも疑ったのですが、OS再インストールを試みるもUSBが認識しなくなるのでインストールが出来なくなります。

不具合に遭遇してる人はBIOSの問題だと思いますので・・・と書いてたら新BIOSがリリースされてますね。バージョンは0025。

今試しましたがUSBの不具合は解消されています。旧BIOSだとHDMIが未接続だと起動出来ませんでしたが、新BIOSは未接続でも起動します。あと若干ネットワークの速度が上がってますね。

と言うわけで、問題が出ている場合はBIOSバージョンを確認してみるのが良いかもしれません

DN2820FYKHの消費電力とベンチマーク

前回からの続き。(*ベンチマークを追記)

DN2820FYKHの消費電力

消費電力が驚異の少なさです。アイドル時で5W。x86でチャンピオン級な低消費電力です。

IMG_1609

yes >> /dev/nullを2つ回して負荷を掛けても8W。

IMG_1612

予想以上に省電力すぎて驚きました。

 

DN2820FYKHのベンチマーク

性能比較を判りやすくするためにWindows8.1(64bit)を入れて諸々試してみました。

スーパーパイ104万桁は34秒。

IMG_1613

 

CINEBENCHはOpenGLが2.75fps。CPUが70cb。

IMG_1628

モンハンベンチ大討伐は745。

IMG_1619

FFベンチ3はLowで4559。

IMG_1623

ゲームはさすがに厳しいですね。ブラウザゲーム(艦これ)程度までならなんとか動きそう。

DN2820FYKHの位置づけですが、以前のAtomよりは全然速いけどCerelonには届かず。ARM並の省電力で性能はARMよりかなり高い。用途としてはサブPCやNAS、もしくはテレビに繋ぐリビングPCあたりでしょうか。あとファンの音ですが、デフォルトは一般的なノートPC並の音量があります。ただBIOSで回転数の調整が出来ますので、かなり静かな回転数に落とす事も可能です。