Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
by Nia Tomonaka ( @nia_tn1012 )
Mascot Chara Meterの紹介と
カレンダーウィジェットの開発話
2014/12/21
Nia(ニア)とは何者でしょう?
• 生まれも育ちも湘南の大学生
• フルネーム : ニア・トモナカ
• 学科は電気電子系、研究室は情報処理系
• 主にC / C++ / C# / XAML / F#でプログラミング
• アールグレイティーとコ...
• Myoga-TN.netのマスコットキャラクター
• フルネーム : ミョウガ・スクリューブライト
• 未来の時代(2414年)からタイムスリップしてきた大学生
• Mascot Chara Meterの作成者
• Twitter : @m...
• マスコットアプリ文化祭に
(Myoga名義で)応募した作品
「Mascot Chara Meter」につい
て簡単に紹介します。
• Rainmeter上で動作するシンプル
なPCリソースモニターのウィジェット
(スキン)
• アクセントであるマスコットキャラク
ターでちょっとお洒落
Mascot Chara Meterとは
• PCのシステム情報やRSSフィードなどを
表示することができる、ツールアプリ
• カスタマイズ性が高い
→高性能なウィジェットが作成できる
→画像だけ表示して、単なるデスクトップの
アクセサリーにもなる
※右図はかつて作成したウィジェット
...
Rainmeterの使用例
Rainmeterの使用例・その2
© 2010 プログラミング生放送
© 2014 Myoga-TN.net
Copyright © DeNA Co. Ltd. All Rights Reserved.
画像表示だけを使って、マスコットキャラ...
• 幅160pxとスリムサイズ(※カレンダーを除く)
Mascot Chara Meterの特徴
※窓○むつみさんの心の中の声です。
このむつみ、
まだまだ新入りには
負けませんわ!
• ここではMascot Chara Meter
のウィジェットの1つ「マスコット
キャラ カレンダー」における開
発話をします。
• マスコットキャラを背景に現在の月
のカレンダーを表示するウィジェット
• 季節ごとに枠色が変化する
• スクリプトとして、プログラミング言
語 Lua を使用
マスコットキャラ カレンダーとは
• メタデータの設定
• 色、文字の書式設定の定義
• 現在の年月日及び曜日の読み込
み
• 年月を表示
• 曜日のヘッダー部分を表示
• 日付表示用のオブジェクトを定義
• 日付の書式設定
• 季節に応じて枠色を設定
• 月初め(1日)の曜日...
• 当月初日(1日)の曜日に合わせて、
先頭側を空白で埋める必要がある
カレンダーを作成するためには?
• Zellerの公式を利用して求める
𝑾 = 𝒀 +
𝒀
4
−
𝒀
100
+
𝒀
400
+
13 × 𝑴 + 8
5
+ 𝑫 mod 7 ⋯ (1)
※1 「𝒀」は年、「𝑴」は月、 「𝑫」は日、
「mod 7」は7の余剰(7で割った時の...
Y = 2014, M = 12, D = 1
𝑾 = 𝟐𝟎𝟏𝟒 +
𝟐𝟎𝟏𝟒
4
−
𝟐𝟎𝟏𝟒
100
+
𝟐𝟎𝟏𝟒
400
+
13 × 𝟏𝟐 + 8
5
+ 𝟏 mod 7
= 2014 + 𝟓𝟎𝟑 − 𝟐𝟎 + 𝟓 +
𝟏𝟔𝟒
5
+ ...
• 現在の年月日の他に、現在の曜日
も取得できる
• その曜日と現在の日を使って、当
月初日の曜日が求められるのでは
ないか・・・
Rainmeterでは?
• 現在日を「𝑫」、現在の曜日を「𝑾 𝒏」とすると、当月初日の曜日「𝑾 𝟏」は、
𝑾 𝟏 = 𝑾 𝒏 + 7 − 𝑫 − 1 mod 7 mod 7 ⋯ (2)
で求められる。
※以下に曜日と「𝑾 𝒏」、 「𝑾 𝟏」の値の対応表を示す
現在日と...
• 式(2)内の「 𝑫 − 1 mod 7」で、当
月初日の曜日を日曜(0)にした時
に対する、 𝑫日の曜日「𝑾 𝒏
′
」を求
める
𝑫 − 1 mod 7 = 𝑾 𝒏
′
⋯ (3)
式(2)の原理①
例:2014年12月20日の場合
𝑾 ...
• 式(3)を使って、現在の曜日
「𝑾 𝒏」と「𝑾 𝒏
′
」との差を求める
𝑾 𝒏 − 𝑾 𝒏
′
= 𝑾 𝒏 − 𝑫 − 1 mod 7 ⋯ (4)
• 式(4)の値が当月初日の曜日
の値である
式(2)の原理②
例:2014年12月20日...
• 式(4)の値が当月初日の曜日
の値であるには、
𝑾 𝒏 ≥ 𝑾 𝒏
′
⋯ (𝟓)
を満たす必要がある。
𝑾 𝒏 < 𝑾 𝒏
′
では式(4)は正しい値にならない。
しかし・・・
𝑾 𝒏 = 𝟎
𝑾 𝒏
′
= 𝟒
例:2014年10月12...
• 式(4)の値が必ず正の数になるように、 「𝑾 𝒏」に7を加え、7の余剰を求める
𝑾 𝒏 + 𝟕 − 𝑾 𝒏
′
𝐦𝐨𝐝 𝟕 = 𝑾 𝒏 + 𝟕 − 𝑫 − 1 mod 7 𝐦𝐨𝐝 𝟕 → (2)
• 「𝒂」に対する「𝒏」の余剰は、 「𝒂」に...
例:2014年10月12日の場合
𝑾 𝒏 = 𝟎
𝑾 𝒏
′
= 𝟒
𝑾 𝒏 + 𝟕 𝐦𝐨𝐝 𝟕
= 𝑾 𝒏 = 𝟎
𝑾 𝟏
= 𝑾 𝒏 + 𝟕 − 𝑾 𝒏
′
𝐦𝐨𝐝 𝟕
= 𝟎 + 𝟕 − 𝟒 𝐦𝐨𝐝 𝟕
= 𝟑 𝐦𝐨𝐝 𝟕 = 𝟑
例:2014年12月20日の場合
𝑾 𝒏 = 𝟔
𝑾 𝒏
′
= 𝟓
𝑾 𝒏 + 𝟕 𝐦𝐨𝐝 𝟕
= 𝑾 𝒏 = 𝟔
𝑾 𝟏
= 𝑾 𝒏 + 𝟕 − 𝑾 𝒏
′
𝐦𝐨𝐝 𝟕
= 𝟔 + 𝟕 − 𝟓 𝐦𝐨𝐝 𝟕
= 𝟖 𝐦𝐨𝐝 𝟕 = 𝟏
• 現在日を「𝑫」と現在の曜日を「𝑾 𝒏」から、当月初日の曜日「𝑾 𝟏」は以下の
式で求められる
𝑾 𝟏 = 𝑾 𝒏 + 7 − 𝑫 − 1 mod 7 mod 7 ⋯ (2)
• Zellerの公式と比較すると、用途は限定される(当月初日の曜...
• Myoga-TN.netではプログラミングやアプリの活用などにおける、ちょっとし
たテクニックや気づいたことなどを紹介たり、開発したアプリなど公開したり
していきたいと思います。
• ホームページは http://myoga-tn.expr...
ご清聴ありがとうございました
Thank you for listening !
Mascot Chara Meterの紹介とカレンダーウィジェットの開発話
Upcoming SlideShare
Loading in …5
×

Mascot Chara Meterの紹介とカレンダーウィジェットの開発話

721 views

Published on

マスコットアプリ文化祭2014に応募した作品「Mascot Chara Meter」の簡単な紹介とカレンダーウィジェットで開発話です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Mascot Chara Meterの紹介とカレンダーウィジェットの開発話

  1. 1. by Nia Tomonaka ( @nia_tn1012 ) Mascot Chara Meterの紹介と カレンダーウィジェットの開発話 2014/12/21
  2. 2. Nia(ニア)とは何者でしょう? • 生まれも育ちも湘南の大学生 • フルネーム : ニア・トモナカ • 学科は電気電子系、研究室は情報処理系 • 主にC / C++ / C# / XAML / F#でプログラミング • アールグレイティーとコーヒー(ブラック無糖)、炭酸飲料が好物 • 趣味は写真撮影と音ゲー(Reflec BeatとGroove Coaster) (Reflec Beatはレベル10+をクリアできる程度) • Twitter : @nia_tn1012(←フォローよろしくです)
  3. 3. • Myoga-TN.netのマスコットキャラクター • フルネーム : ミョウガ・スクリューブライト • 未来の時代(2414年)からタイムスリップしてきた大学生 • Mascot Chara Meterの作成者 • Twitter : @myoga1012(←Follow me please !) • 中の人などいない・・・ Myoga(ミョウガ)とは何者でしょう?
  4. 4. • マスコットアプリ文化祭に (Myoga名義で)応募した作品 「Mascot Chara Meter」につい て簡単に紹介します。
  5. 5. • Rainmeter上で動作するシンプル なPCリソースモニターのウィジェット (スキン) • アクセントであるマスコットキャラク ターでちょっとお洒落 Mascot Chara Meterとは
  6. 6. • PCのシステム情報やRSSフィードなどを 表示することができる、ツールアプリ • カスタマイズ性が高い →高性能なウィジェットが作成できる →画像だけ表示して、単なるデスクトップの アクセサリーにもなる ※右図はかつて作成したウィジェット Rainmeterとは
  7. 7. Rainmeterの使用例
  8. 8. Rainmeterの使用例・その2 © 2010 プログラミング生放送 © 2014 Myoga-TN.net Copyright © DeNA Co. Ltd. All Rights Reserved. 画像表示だけを使って、マスコットキャラその ものをデスクトップに置くこともできるよ!
  9. 9. • 幅160pxとスリムサイズ(※カレンダーを除く) Mascot Chara Meterの特徴
  10. 10. ※窓○むつみさんの心の中の声です。 このむつみ、 まだまだ新入りには 負けませんわ!
  11. 11. • ここではMascot Chara Meter のウィジェットの1つ「マスコット キャラ カレンダー」における開 発話をします。
  12. 12. • マスコットキャラを背景に現在の月 のカレンダーを表示するウィジェット • 季節ごとに枠色が変化する • スクリプトとして、プログラミング言 語 Lua を使用 マスコットキャラ カレンダーとは
  13. 13. • メタデータの設定 • 色、文字の書式設定の定義 • 現在の年月日及び曜日の読み込 み • 年月を表示 • 曜日のヘッダー部分を表示 • 日付表示用のオブジェクトを定義 • 日付の書式設定 • 季節に応じて枠色を設定 • 月初め(1日)の曜日、月末日を計 算し、日付を出力 マスコットキャラ カレンダーにおける役割
  14. 14. • 当月初日(1日)の曜日に合わせて、 先頭側を空白で埋める必要がある カレンダーを作成するためには?
  15. 15. • Zellerの公式を利用して求める 𝑾 = 𝒀 + 𝒀 4 − 𝒀 100 + 𝒀 400 + 13 × 𝑴 + 8 5 + 𝑫 mod 7 ⋯ (1) ※1 「𝒀」は年、「𝑴」は月、 「𝑫」は日、 「mod 7」は7の余剰(7で割った時の余り) ※2 𝒙 (但し、𝑥 ∈ 𝑹) は床関数(小数点以下を切り捨て) ※3 以下に曜日と「𝑾」の値の対応表を示す 年月日から月初め(1日)の曜日「𝑾」を求めるには? 曜日 日 月 火 水 木 金 土 値 0 1 2 3 4 5 6
  16. 16. Y = 2014, M = 12, D = 1 𝑾 = 𝟐𝟎𝟏𝟒 + 𝟐𝟎𝟏𝟒 4 − 𝟐𝟎𝟏𝟒 100 + 𝟐𝟎𝟏𝟒 400 + 13 × 𝟏𝟐 + 8 5 + 𝟏 mod 7 = 2014 + 𝟓𝟎𝟑 − 𝟐𝟎 + 𝟓 + 𝟏𝟔𝟒 5 + 1 mod 7 = 2014 + 503 − 20 + 5 + 𝟑𝟐 + 1 mod 7 = 𝟐𝟓𝟑𝟓 mod 7 = 1 → 2014年12月1日は月曜日 例:2014年12月1日の場合
  17. 17. • 現在の年月日の他に、現在の曜日 も取得できる • その曜日と現在の日を使って、当 月初日の曜日が求められるのでは ないか・・・ Rainmeterでは?
  18. 18. • 現在日を「𝑫」、現在の曜日を「𝑾 𝒏」とすると、当月初日の曜日「𝑾 𝟏」は、 𝑾 𝟏 = 𝑾 𝒏 + 7 − 𝑫 − 1 mod 7 mod 7 ⋯ (2) で求められる。 ※以下に曜日と「𝑾 𝒏」、 「𝑾 𝟏」の値の対応表を示す 現在日とその曜日から、当月初日の曜日を求める式 曜日 日 月 火 水 木 金 土 値 0 1 2 3 4 5 6
  19. 19. • 式(2)内の「 𝑫 − 1 mod 7」で、当 月初日の曜日を日曜(0)にした時 に対する、 𝑫日の曜日「𝑾 𝒏 ′ 」を求 める 𝑫 − 1 mod 7 = 𝑾 𝒏 ′ ⋯ (3) 式(2)の原理① 例:2014年12月20日の場合 𝑾 𝒏 ′ = 𝟓
  20. 20. • 式(3)を使って、現在の曜日 「𝑾 𝒏」と「𝑾 𝒏 ′ 」との差を求める 𝑾 𝒏 − 𝑾 𝒏 ′ = 𝑾 𝒏 − 𝑫 − 1 mod 7 ⋯ (4) • 式(4)の値が当月初日の曜日 の値である 式(2)の原理② 例:2014年12月20日の場合 𝑾 𝒏 ′ = 𝟓 𝑾 𝒏 = 𝟔 𝑾 𝒏 − 𝑾 𝒏 ′ = 𝟔 − 𝟓 = 𝟏
  21. 21. • 式(4)の値が当月初日の曜日 の値であるには、 𝑾 𝒏 ≥ 𝑾 𝒏 ′ ⋯ (𝟓) を満たす必要がある。 𝑾 𝒏 < 𝑾 𝒏 ′ では式(4)は正しい値にならない。 しかし・・・ 𝑾 𝒏 = 𝟎 𝑾 𝒏 ′ = 𝟒 例:2014年10月12日の場合 𝑾 𝒏 − 𝑾 𝒏 ′ = 𝟎 − 𝟒 = −𝟒?
  22. 22. • 式(4)の値が必ず正の数になるように、 「𝑾 𝒏」に7を加え、7の余剰を求める 𝑾 𝒏 + 𝟕 − 𝑾 𝒏 ′ 𝐦𝐨𝐝 𝟕 = 𝑾 𝒏 + 𝟕 − 𝑫 − 1 mod 7 𝐦𝐨𝐝 𝟕 → (2) • 「𝒂」に対する「𝒏」の余剰は、 「𝒂」に「𝒏」の整数倍を加算(減算)した値に対 する「𝒏」の余剰に等しい 𝑎 ± 𝑘𝒏 mod 𝒏 = 𝑎 mod 𝒏 ± 𝑘𝒏 mod 𝒏 = 𝑎 mod 𝒏 (∵ 𝑘𝒏 mod 𝒏 = 0) ⋯ (6) ※但し、 𝒂 ≥ 0, 𝒌 ≥ 0, 𝒏 > 0, 𝒂 ± 𝒌𝒏 ≥ 0 とする その問題を解決するには?
  23. 23. 例:2014年10月12日の場合 𝑾 𝒏 = 𝟎 𝑾 𝒏 ′ = 𝟒 𝑾 𝒏 + 𝟕 𝐦𝐨𝐝 𝟕 = 𝑾 𝒏 = 𝟎 𝑾 𝟏 = 𝑾 𝒏 + 𝟕 − 𝑾 𝒏 ′ 𝐦𝐨𝐝 𝟕 = 𝟎 + 𝟕 − 𝟒 𝐦𝐨𝐝 𝟕 = 𝟑 𝐦𝐨𝐝 𝟕 = 𝟑
  24. 24. 例:2014年12月20日の場合 𝑾 𝒏 = 𝟔 𝑾 𝒏 ′ = 𝟓 𝑾 𝒏 + 𝟕 𝐦𝐨𝐝 𝟕 = 𝑾 𝒏 = 𝟔 𝑾 𝟏 = 𝑾 𝒏 + 𝟕 − 𝑾 𝒏 ′ 𝐦𝐨𝐝 𝟕 = 𝟔 + 𝟕 − 𝟓 𝐦𝐨𝐝 𝟕 = 𝟖 𝐦𝐨𝐝 𝟕 = 𝟏
  25. 25. • 現在日を「𝑫」と現在の曜日を「𝑾 𝒏」から、当月初日の曜日「𝑾 𝟏」は以下の 式で求められる 𝑾 𝟏 = 𝑾 𝒏 + 7 − 𝑫 − 1 mod 7 mod 7 ⋯ (2) • Zellerの公式と比較すると、用途は限定される(当月初日の曜日の算出) が、式はシンプルでコーディングしやすい まとめ
  26. 26. • Myoga-TN.netではプログラミングやアプリの活用などにおける、ちょっとし たテクニックや気づいたことなどを紹介たり、開発したアプリなど公開したり していきたいと思います。 • ホームページは http://myoga-tn.expressweb.jp です。 (WordPressとWebMatrixを利用しています) 最後に、1つだけよろしいですか?
  27. 27. ご清聴ありがとうございました Thank you for listening !

×