300円でつくる自作ノートPCスタンド


こんにちは、先日MacBook Airを買ってついにMacデビューしたkazutoyoです!

軽くて持ち運びやすいし、キビキビと動くので素晴らしいですよね!

僕は今、自宅のメインPCはWindowsで、こんな感じにSynergyを使いWindowsのキーボードとマウスをMacBook Airと共有するように使っています。

 

けど、これMBAの下に本を2冊積み重ねておいてあるだけなので、ちゃんとしたスタンド欲しいなぁって思ってAmazonで探してたけど、だいたい2500円~でちょっとお高いってことがわかりました。

さすがにサブ用に僕の1ヶ月分のおやつ代も出せないと思ったので、近くにある100円ショップキャンドゥの素材でつくろう!ってことで探して参りました。

選んだのはこの3つの商品

  • 両面テープ
  • 滑り止めマット
  • 整理棚

整理棚は調理用品のところにありましたー

 

まず、整理棚の裏に両面テープをぺたっと貼り付けます。

 

で、滑り止めマットを貼付けぐるぐる2,3周巻いて終端も両面テープでぺたっと留めます。

 

これだけで完成!

あとは片方の足だけを立てて、下に一応滑り止めマットを敷いて設置します。

 

こんな感じ。そんなにかっこよくはないけど見た目さえ気にしなければいい感じ!

 

高さは変えられないのが難点ですが、それさえ良ければ良いかなぁと思います。

あと、僕のはMacBook Airの11インチのやつなので耐えられてますが、13インチのとかMacBook Proとかで重くなっちゃうとどうなるかわかんないので、そこら辺は誰か試してみてください><


PHPからRTMPサーバのメソッドをコールする


PHPのRTMPクライアントライブラリの「php-rtmp-client」を使って、PHPからRTMPサーバのメソッドをコールします。

Selec All Code:
<?php
require "RtmpClient.class.php";
$client = new RtmpClient();
$client->connect("myrtmpserver.com","app1"); //RTMPサーバに接続。第2引数はアプリケーション名
$result = $client->echo("hello!"); //RTMPサーバのechoメソッドを呼び出す。引数に"hello!"を渡す。
$client->close(); //RTMPサーバから切断
?>

結構簡単に叩けますね。
Pythonだとrtmpliteに付属するrtmpclient.pyを使えばいいのかな?


RTMPのストリームからサムネイル作成


ちょこっとメモ。
Flash Media ServerなどのRTMPサーバのストリームからサムネイルを作成する方法。

Xuggleをインストールする必要あり?

Selec All Code:
ffmpeg -i rtmp://fmsis.nodera.co.jp/tv/ch1  -f mjpeg -ss 30 -vframes 1 -an thumbnail.jpg

ffmepgコマンドソースをRTMPのストリームに指定した。


RailsでDBに保存しているセッションを復元


RailsでセッションをActiveRecord(DB)に保存していて、session_idがわかっている場合にセッションを復元することができます。
 

Selec All Code:
1
2
3
      session_id = 'セッションID'
      s = ActiveRecord::SessionStore::Session.find_by_session_id(session_id)
      ssession = s.data.inject({}){|r,entry| r.store( entry[0].to_sym, entry[1] ); r }

上のコードではfind_by_session_idメソッドでセッションIDからデータを取り出し、3行目のinjection以下でハッシュのキーをシンボル化します。


Google Maps API v3でズーム後にBoundsを取得する


Google Maps API v3を使い、ズームした後のBoundsを取得したかったのですが、zoom_changedイベントはズームレベルが変わったとき(ズームが開始されたとき?)に呼ばれるため

Selec All Code:
1
2
3
4
5
google.maps.event.addListener(map, 'zoom_changed', onZoomChange);
function onZoomChange() {
  var bounds = Gmaps4Rails.map.getBounds();
  console.log(bounds.getNorthEast() + "," + bounds.getSouthWest());
}

みたいな感じだとうまくいきませんでした。

そこで、以下のようにzoom_changedが呼ばれたときにbounds_changedのリスナーを登録してやったらうまくいきました。

Selec All Code:
1
2
3
4
5
6
7
8
google.maps.event.addListener(map, 'zoom_changed', onZoomChange);
function onZoomChange() {
  var boundslistener = google.maps.event.addListener(Gmaps4Rails.map, 'bounds_changed', function(){
    var bounds = Gmaps4Rails.map.getBounds();
    console.log(bounds.getNorthEast() + "," + bounds.getSouthWest());
    google.maps.event.removeListener(boundslistener);
  });
}

Google Maps API v2だとzoomEndってのあるみたいなんですが、v3にもないのかなぁ


Flash Player 11でH.264ソフトウェアエンコードとG.711コーデックを試す


前回でFlash Professional CS5でFlash Player 11を使う準備をしました。
今回はFlash Player 11の新機能、H.264のソフトウェアエンコードと音声コーデックであるG.711を使ってみます。


サンプルを試す

サンプルソースファイル(Flash CS5用)
サンプルソースファイル(FlashDevelop用)
(FlashDevelopでFlash Player 11を使うには、馬鹿全さんの記事を参照)

H.264エンコーディング
まず、H.264の使い方ですが、下のような設定を送信用に追加するだけになります。

Selec All Code:
//H.264エンコード
var h264Settings:H264VideoStreamSettings = new H264VideoStreamSettings();
//H.264のプロファイルとレベルを設定
h264Settings.setProfileLevel(H264Profile.MAIN, H264Level.LEVEL_3_2);
sstream.videoStreamSettings = h264Settings;

H.264のレベルとプロファイルについてはWikiPediaを参照してください。

G.711コーデック
また、G.711コーデックの使い方は今までと同じようにMicrophone.codecにSoundCodec.PCMU(またはSoundCodec.PCMA)を指定するだけです。

Selec All Code:
mic = Microphone.getMicrophone();
if (mic != null) {
	mic.codec = SoundCodec.PCMU;
	sstream.attachAudio(mic);
}

 

ソースファイル全文
more


Flash Professional CS5でFlash Player 11 Betaを試す ~ 準備編 ~


はじめまして。
今春からノデラでお仕事してますkazutoyoです!
 
この間Flash Player 11のベータ版が公開されましたね。
Flash Player11では、3D機能が強化されたり、H.264でのソフトウェアエンコードなどに対応しました。

我がノデラでは、動画配信サービスの NDOERA (.tv) を運営しているため、H.264 でのソフトウェアエンコードを使うと、さらに高画質で配信できるようになります。

そこで、今回 NODERA (.tv) でH.264を試すためすために、Flash Professional CS5 でFlash Player 11を使えるようにしてみました。
 
Flash Player 11 Beta のインストール

Flash Player 11をAdobe Labsからダウンロードしてきます。
OSはWindows、Mac、Linuxで、32bit版と64bit版があります。
自分の環境にあったものをダウンロードしてインストールしてください。

http://labs.adobe.com/downloads/flashplayer11.html

また、同じページから Flash Player 11 Beta  Global SWC をダウンロードしてきます。
 
FlashPlayer 11のプロファイル作成

次にFlash CS5にFlash Player 11用のプロファイルを作成します。
Windowsの場合、

C:\Program Files\Adobe\Adobe Flash CS5\Common\Configuration\ActionScript 3.0

Macの場合、

/Applications/Adobe Flash CS5/Common/Configuration/ActionScript 3.0

に移動し、そのディレクトリにある「FP10」ディレクトリをコピーし、FP11にリネームします。
そして、FP11のディレクトリの中に先ほどダウンロードしておいた「playerglobal.swc」をコピーします。

その次に、その上のディレクトリ(Configurationディレクトリ)にあるPlayersディレクトリに移動します。
そこにある「FlashPlayer10_1.xml」をコピーし、「FlashPlayer11.xml」にリネームします。
コピーしたFlashPlayer11.xmlを編集します。

3行目の

Selec All Code:
1
  <player id="FlashPlayer10" version="10" asversion="3">

Selec All Code:
1
  <player id="FlashPlayer11" version="13" asversion="3">

に変更します。
また、8行目の

Selec All Code:
1
 as3="$(AppConfig)/ActionScript 3.0/FP10/playerglobal.swc" />

の部分を

Selec All Code:
1
 as3="$(AppConfig)/ActionScript 3.0/FP11/playerglobal.swc" />

に変更します。
 
あとはFlash CS5を起動して、「ファイル→バブリッシュ設定→Flash」のPlayerのセレクトボックスにFlash Player 11があるか確認して下さい。

 
次回はFlashPlayer11のH.264エンコードの使い方を解説しようと思います。


MacOSでテキストをSWFにペーストすると改行が消える件


MacOS上で、複数行のテキストをtextFieldにペーストすると、見た目は改行されているのに、改行コードが入っていないというバグがあります。

解決方法がこちらにありました。
http://bugs.adobe.com/jira/browse/FP-780?focusedCommentId=233063&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_233063

コードを引用します。

Selec All Code:
1
2
3
4
5
6
7
8
9
10
11
textField1.addEventListener(TextEvent.TEXT_INPUT, input);
function input(event:TextEvent){
	event.preventDefault();
	var textField:TextField = event.target as TextField;
	var currentText:String = textField.text;
	var insertionPrefix:String = currentText.substr(0, textField.selectionBeginIndex);
	var insertionSuffix:String = currentText.substr(textField.selectionEndIndex, currentText.length);
	textField.text = insertionPrefix + event.text + insertionSuffix;
	var caretIndex:int = insertionPrefix.length + event.text.length;
	textField.setSelection(caretIndex, caretIndex);
}

NODERA (.tv) _sn Coming soon!


NODERA (.tv)のソーシャル・ネットワーク強化版「NODERA (.tv) _sn」を近日中に公開します。
URLは今まで通りnodera.tvで公開します。

主な特徴は、独自のユーザ登録を廃止し、twitterやfacebookなどのアカウントで利用でき、それらのソーシャル・サービスとの連携を強化している点です。

今しばらくお待ち下さい。


WEB SITE RENEWAL


NODERA CORPORATION のWEBサイトをリニューアルしています。


EnglishFrenchGermanItalianPortugueseRussianSpanish

SEARCH

 

2012年1月
« 12月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031