北海道ラボ

快適にアプリケーションを使ってもらうためには、最適なメモリー管理と動作のボトルネックを解消することです。

最適な学習環境を提供するために、SmartBrainはメモリー管理こそ無いものの、パフォーマンスチューニングを日々行っています。
実は、使いやすい・気持ち良い ・楽しいは学習にかかわらず仕事でも重要ですよね。

今回は、iPhoneの開発で利用するLeaksについてちょっとした使い方をまとめます。
memory warning Level=**みたいなものが出てるそこのあなた!!
Leaksを使ってメモリーリークを解消しましょう。

(次回はTime Profilerについての予定)
それでは、まずXCodeを起動してLeaksを実行しましょう。
(当然何かしらのプロジェクトを開いてないと実行できません)



実行をひらきましょう



パフォーマンスツールを使って実行からLeaksをクリック

すると以下のような画面が立ち上がります。
(通常立ち上がりと同時にシミュレータとサンプリングが開始されます。)



Leaks起動数秒後

起動しただけなのに、もう漏れてますね。これはいけません。メモリーリークがあると、”落ちる”減少が頻発します。またNSUserDefaultsに正しく保存できないなど、 百害あって一利なしです!

それでは、メモリーリークを根絶しましょう。画面左側の「水道管が破裂」したようなアイコンのあるエリアをクリックしましょう。すると以下の画面に変わるはずです。



左上のLeaksボタンを押すとこのような画面になります (右ペインは画面上部のViewの一番右を押しましょう)

完全にリークしてますね。右ペインには下から main -> TopMenu…. -> ViewCon….とメモリーリークを起こしている部分までのつながりが表示されています。 (人形の黒いアイコンが付いているものがユーザー定義の関数です)それでは、右ペインの ViewController4 viewDidLoadを見てみましょう。



メモリーリーク箇所を特定

NSMutableArrayが66.7%も漏れていますね。 きっとreleaseのし忘れでしょう。といった具合に リークしている可能性がある箇所を分かりやすく表示してくれるのがLeaksです。

ちなみに、メモリーリークチェックはデフォルトで10秒置きに起動します。すぐにチェックしたい!という人はしたの画像に有るように「Check for Leaks Now」を押してあげるとすぐにチェックしてくれます。



すぐにメモリーリークをチェックしたい場合

地道にメモリーリークは潰していくしかありませんね。

マニュアル更新/SmartBrain/割当期間

CATEGORIES SmartBrain, 北海道ラボby.yasu.tanaka1 Comments2011.01.18

SmartBrainのマニュアルの、学習コースページの、割り当て期間に関する記述を更新いたしました。SmartBrainでは、学習者に対する教材の割り当て期間を柔軟に設定していただけるのですが、グループに対して教材を割り当ては、現在のところ指定できません。グループに対しての教材割り当てに対しても同様の機能を実現してほしいとの要望を多数いただいておりますので、今後のアップデートで、対応予定です。

期間設定

期間設定

情報処理技術者試験 受験申込開始!

CATEGORIES 北海道ラボby.yasu.tanaka1 Comments2011.01.18

平成23年度の、情報処理技術者試験の受験申込のインターネット受付が、1月17日から始まっています。試験日は、ちょうど3ヶ月後の、4月17日です。今から始めても、十分合格するチャンスはあると思います。基本的な知識を確認できるITパスポート試験から、高度な専門知識を要求される上級試験まで、各種試験が用意されています。みなさんも、ぜひ挑戦してみてはいかがでしょうか?

平成23年度【春期】【秋期】 ITパスポート合格教本 (情報処理技術者試験)

ITパスポート試験対策テキスト 平成23年度版 (2011) (よくわかるマスター)

情報処理教科書 データベーススペシャリスト 2011年版

個人情報保護もばっちり!

CATEGORIES ASP・SaaS, 北海道ラボby.yasu.tanaka1 Comments2011.01.14

キバンインターナショナルでは、SmartBrainなどのASPサービスを始め、オーサリングツールのサポートなど日々の業務で個人情報を扱うことが多くなっています。
そのため、個人情報保護士の有資格者が開発スタッフ、運営スタッフとして活躍しています。

お客様に安心してご利用していただくため、専門的な法律の知識を持っている従業員がしっかり管理しています。

個人情報保護士試験より http://www.joho-gakushu.or.jp/piip/piip.html

また、そのほかにもeラーニングの世界標準規格のSCORM規格に熟知したSCORMアセッサ資格も取得しています。

個人情報の保護もばっちり。eラーニングのスペシャリスト集団が提供する世界標準規格SCORMに完全準拠したeラーニングマネジメントシステムSmartBrainを是非ご利用ください。20ユーザまで無料でお使いいただけます!

SmartBrainは、利用者に対してE-mailで通知する機能があり、文面にはキーワードを指定できるのですが、使えるキーワードについての記載がマニュアル中に存在していませんでした。本日、メール文面に使えるキーワードについての記述をSmartBrainに追加いたしました。

キーワードの項を追加しました。

キーワードの項を追加しました。

ページ数統計のページを強化

CATEGORIES WordPress, 北海道ラボby.yasu.tanaka0 Comments2011.01.06

キバンインターナショナルは、積極的に情報発信を行っています。Twitter、Facebookなどのソーシャルメディアにも力を入れていますが、創業以来最も力を入れて取り組んでいるのは、本ブログでの情報発信です。創業当初は、月に50エントリーを目標にしていましたが、2010年9月以降は1ヶ月あたり、最低でも90件の記事が公開されています。これは、企業のブログとしては偉大な数字です。しかし、実は、私自身、少し気になっていることがあります。それは、記事が極端に少ない日や、場合によっては記事が全くない日があるということです。そこで、月間目標だけではなく、1日あたりの最低記事数という目標を加えてみてはいかがでしょうか?この記事を含めると、今月は、全ての営業日で5エントリーを達成できています。1日5エントリー。目指してみるのもいいのかもしれません。

↓の画像をクリックすると、投稿記事数の集計画面が開きます。

日別グラフ

日別グラフ

QuizCreatorでクイズを作成するとき、テキストの色を問題ごとに変更することができます。

今回は回答のテキストの色を変更する方法をご紹介します。

まず、すべての問題の文字色を一括で変更する場合

「設定」‐「基本設定」

▲「設定」-「基本設定」

▲「設定」-「基本設定」

次に「フォント設定」から「回答フォント」をクリックします。

▲「フォント設定」-「回答フォント」

▲「フォント設定」-「回答フォント」

変更したい色をクリックします。

▲色を選択

▲色を選択

「フォント」の色が変わっていることを確認し、「全ての設問に適用」をクリックします。

▲「フォント」の色を確認、「全ての設問に適用」

▲「フォント」の色を確認、「全ての設問に適用」

これで回答テキストの文字色の変更ができます。

同じ方法で「回答フォント」をクリックするとき、「質問フォント」をクリックし、同様の操作をすると質問テキストの文字色を変更できます。

次に、設問ごとに文字色を変更する場合です。(ほとんど一括設定と同じですが。。。)

設問の設定画面から、「テスト設定」-「回答のフォント」をクリックします。

▲設問の設定画面から「テスト設定」-「回答のフォント」

▲設問の設定画面から「テスト設定」-「回答のフォント」

変更したい色をクリックします。

▲変更したい色を選択

▲変更したい色を選択

「フォント」の色が変わっているのを確認し「ok」をクリックして完了です。

▲「フォント」の色を確認

▲「フォント」の色を確認

質問テキストの文字色を変えたい場合は「回答のフォント」をクリックするとき「質問のフォント」をクリックしてください。

今回の操作では回答テキストの文字色を変更したので、結果はこのようになります。

▲回答テキストの文字色が変わります。

▲回答テキストの文字色が変わります。

SmartBrain(Ver:1.13.6)で教材を登録するとき、PC用、iPhone用、Andloid用の3パターンの起動ファイルを選択することが可能です。このとき、以下のHTMLファイルを用意し、iPhone用、Andloid用の起動ファイルをこのHTMLに設定することで、モバイル端末全般に動画教材を配信することが可能です。

SmartBrain管理画面>教材管理:起動ファイル設定

このHTMLはJavaScriptでUserAgentを判定し、適切な動画に誘導するものです。アクセスさせたい端末のUserAgentを調べ、適切な動画を用意することが必須になります。(iPhone、Andloid対応動画の作り方はこちらを参照

<html>
<head>
<script>
// <[CDATA[
var API;
var startTime;
function init(){
startTime = new Date().getTime();
var win;
for(win = window;win.API==null && win.parent!=null && win.parent!=win; win = win.parent);
API = win.API;
API.LMSInitialize(“”);
}
function exit(){
var diff;
diff = new Date().getTime()-startTime;
s=(diff – diff % 1000)/1000;
m=(s-s%60)/60;
h=(m-m%60)/60;
s=s-m*60;
m=m-h*60;
if(h<10)h=”0″+h;
if(m<10)m=”0″+m;
if(s<10)s=”0″+s;
API.LMSSetValue(“cmi.core.session_time”,h+”:”+m+”:”+s);
API.LMSFinish(“”);
}
// ]]>
</script>
<meta http-equiv=”Content-Type” content=”text /html; charset=UTF-8″ />
</head>
<body leftmargin=”0″ topmargin=”0″ onload=”init()” onunload=”exit()” style=”min-height:374px”>
<script type=”text/javascript”>
var strUA = navigator.userAgent.toLowerCase();
if(strUA.indexOf(“android”)!=-1){document.write(‘<a href=”http://****.mp4″ target=”_blank”>Click to Start Video</a>’);}else
if(strUA.indexOf(“iphone”)!=-1){document.write(‘<embed src=”http://****.mp4″ width=”100%” height=”100%” AUTOSTART=true>’);}else
if(strUA.indexOf(“ipad”)!=-1){document.write(‘<embed src=”http://****.mp4″ width=”100%” height=”100%” AUTOSTART=true>’);}else
if(strUA.indexOf(“msiemobile”)!=-1){document.write(‘<a href=”http://****.mp4″ target=”_blank”>Click to Start Video</a>’);}else
if(strUA.indexOf(“blackberry”)!=-1){document.write(‘<a href=”http://****.mp4″ target=”_blank”>Click to Start Video</a>’);}else
{ document.write(‘<embed src=”http://****.mp4″ width=”100%” height=”100%” AUTOSTART=true>’); }
</script>
</body>
</html>

<html><head><script>// <[CDATA[var API;var startTime;function init(){ startTime = new Date().getTime(); var win; for(win = window;win.API==null && win.parent!=null && win.parent!=win; win = win.parent); API = win.API; API.LMSInitialize(“”);}function exit(){ var diff; diff = new Date().getTime()-startTime; s=(diff – diff % 1000)/1000; m=(s-s%60)/60; h=(m-m%60)/60; s=s-m*60; m=m-h*60; if(h<10)h=”0″+h; if(m<10)m=”0″+m; if(s<10)s=”0″+s; API.LMSSetValue(“cmi.core.session_time”,h+”:”+m+”:”+s); API.LMSFinish(“”);}// ]]></script><meta http-equiv=”Content-Type” content=”text /html; charset=UTF-8″ /></head><body leftmargin=”0″ topmargin=”0″ onload=”init()” onunload=”exit()” style=”min-height:374px”><script type=”text/javascript”>var strUA = navigator.userAgent.toLowerCase();if(strUA.indexOf(“android”)!=-1){document.write(‘<a href=”http://****.mp4″ target=”_blank”>Click to Start Video</a>’);}elseif(strUA.indexOf(“iphone”)!=-1){document.write(‘<embed src=”http://****.mp4″ width=”100%” height=”100%” AUTOSTART=true>’);}elseif(strUA.indexOf(“ipad”)!=-1){document.write(‘<embed src=”http://****.mp4″ width=”100%” height=”100%” AUTOSTART=true>’);}elseif(strUA.indexOf(“msiemobile”)!=-1){document.write(‘<a href=”http://****.mp4″ target=”_blank”>Click to Start Video</a>’);}elseif(strUA.indexOf(“blackberry”)!=-1){document.write(‘<a href=”http://****.mp4″ target=”_blank”>Click to Start Video</a>’);}else { document.write(‘<embed src=”http://****.mp4″ width=”100%” height=”100%” AUTOSTART=true>’); }</script></body></html>

UserAgentを利用することで、幅広いモバイル対応が可能ですので、これを元に様々な応用が可能です。ぜひ試してみてください!

SmartBrainは20ユーザまで無料な学習管理システムLMSです。生涯教育や趣味などご自由にお使いください!

SmartBrain上でクリックマップ問題を作成することができます。

今回は、このクリックマップ問題について作成方法と実際の受験画面について紹介します。

クリックマップ問題の作成

まずログイン後、「管理画面」をクリックします

コース管理の下にある「クイズ教材管理」をクリックしてください

「クイズ作成」ボタンをクリックしてクイズ追加画面へ移動します

「クイズ名」を入力し、「送信」をクリックしてください

必要事項を記入します(今回はクイズ名・クイズの説明のみ)。記入後「送信」をクリックします

「設問追加」ボタンをクリックしてください

画面最下の「クリックマップ問題」をクリックします

「設問名」、「説明文」を記入後、下部に示す赤枠部分をクリックして画像をアップロードします

アップロードした画像が表示されますので、正解範囲を選択して「保存」をクリックします

クリックマップ問題が作成されました

クリックマップ問題の受験

先程のクイズ教材管理画面の「プレビュー」から受験画面を確認できます。
ここでは、「正解範囲を選択した場合」・「正解範囲外を選択した場合」について紹介します。

正解範囲を選択した場合

正解の領域を選択しました。

「提出する」をクリックすると「正解である」と表示されます

正解範囲外を選択した場合

正解範囲外を選択しました。

「不正解である」と表示され、正解範囲の回答例が赤丸で表示されます。

クイズ教材をコースへ追加する方法についてはこちらの記事をご参照ください。

また、詳しくはこちらのマニュアルもご参照ください。

函館研究所もFacebookやってます

CATEGORIES 北海道ラボby.yasu.tanaka0 Comments2010.12.24

キバンインターナショナルと聞くと、パンダスタジオで有名な湯島本社を思い浮べる人が多いかと思いますが、実は、北海道函館市にも研究開発施設を持っています。営業やサポートの受け口は、基本的に本社で行っているのですが、技術的なサポートが必要であったり、機能改善や新機能の実装が必要な場合は、函館研究所が対応しております。湯島本社と違い、直接お客様と接することも少なく、存在感が薄い函館研究所なのですが、実は、Facebookのファンページ、持ってるんですよ。ほぼ毎日、何かしらの情報を公開しておりますので、ぜひ、函館研究所のファンページに「いいね!」してみてください。

函館研究所

函館研究所