SlideShare a Scribd company logo
バブみ駆動開発バブみ駆動開発
   紬ちゃんデスクトップマスコット   紬ちゃんデスクトップマスコット
16/02/0816/02/08
$Pressenter = “$Pressenter = “てまー”てまー”;;
自己紹介自己紹介
名前名前 :: 今 利仁今 利仁((こん としひとこん としひと))
HNHN :: てまー、友利奈緒てまー、友利奈緒
趣味趣味 :: 勉強会の参加、勉強会の参加、CTFCTF
クソザコプログラミングクソザコプログラミング
TwitterID : @toshihito_ITTwitterID : @toshihito_IT
自己紹介自己紹介
椎葉紬ちゃん椎葉紬ちゃん
クソザコ度クソザコ度
中 3 高 1 高 2 高 3 現在
0
10
20
30
40
50
60
70
80
90
100
プログラミングスキルの推移プログラミングスキルの推移
かんたんC購入
猫C++購入
オブジェクト指向で
挫折
ミニセキュキャン参加
現実を知る。
天井なし
俺SUGEEEEEEEE期間 クソザコ
バブみバブみ isis 何何
バブみバブみ :: 男性が年下の女性に母性を男性が年下の女性に母性を
感じること。感じること。
例例 :: みりあママみりあママ((アイマスアイマス))
雷雷((艦これ艦これ))
なりゆきなりゆき
着想着想 :: 紬が画面上にいれば仕事がはかどるのでは紬が画面上にいれば仕事がはかどるのでは
ないか。ないか。
仕様仕様 : Windows: Windows、、LinuxLinuxで動くで動く
デスクトップマスコット。デスクトップマスコット。
開発過程開発過程
~準備~~準備~
OpenGLOpenGL :: クロスプラットフォームなクロスプラットフォームな
グラフィックグラフィックAPIAPI。。
DirectXDirectX :: MSMSが提供してるが提供してる
APIAPI。。WinWin用。用。
GTK+GTK+ :: クロスプラットフォームなクロスプラットフォームな
GUIGUIツールキット。ツールキット。
↑↑ 初めて知った初めて知った(Linux(Linux用の用のAPIAPI
だと思ってただと思ってた))
開発過程開発過程
~~OpenGLOpenGL~~
僕の僕のOpenGLOpenGL経験経験
->GLUT->GLUTを少し触った程度。を少し触った程度。
開発過程開発過程
~~OpenGLOpenGL~~
とりあえず写経プログラミング。とりあえず写経プログラミング。
ビルドして実行。ビルドして実行。
開発過程開発過程
~~OpenGLOpenGL~~
開発過程開発過程
~~OpenGLOpenGL~~
↑↑画質の劣化画質の劣化
開発過程開発過程
~~OpenGLOpenGL~~
原因がわからないので挫折原因がわからないので挫折
(teratail(teratailに投げたに投げた))
開発過程開発過程
~~OpenGLOpenGL~~
teratailteratailにて解決にて解決
どうやら画像サイズがどうやら画像サイズが(2^n)*(2^m)(2^n)*(2^m)
じゃないとどこかで誤差が出てしまうじゃないとどこかで誤差が出てしまう
らしい。らしい。
開発過程開発過程
~~OpenGLOpenGL~~
↑↑劣化してない紬劣化してない紬
開発過程開発過程
~~OpenGLOpenGL~~
回答つくまで時間があったので回答つくまで時間があったので
GTK+GTK+に移行。に移行。
開発過程開発過程
~~GTK+GTK+~~
GTK+GTK+経験経験
->->ナシ。ナシ。
開発過程開発過程
~~GTK+GTK+~~
C++C++向けラッパーの向けラッパーのgtkmmgtkmmをを
利用する。利用する。
aptaptパッケージで簡単に見つかったパッケージで簡単に見つかった
gtkmm-3.0gtkmm-3.0を利用。を利用。
↑↑元凶元凶
開発過程開発過程
~~GTK+GTK+~~
とりあえずとりあえずgtkmmgtkmmを利用してを利用して
pngpng画像を表示させる方法を検索画像を表示させる方法を検索
写経して実行。写経して実行。
開発過程開発過程
~~GTK+GTK+~~
g++ -o mascot_tsumugi main.cxx `pkg-config gtkmm-3.0 --cflags --libs`
main.cxx:6:16: error: ‘GC’ is not a member of ‘Gdk’
Glib::RefPtr< Gdk::GC > m_gc;
main.cxx:6:16: error: ‘GC’ is not a member of ‘Gdk’
main.cxx:6:24: error: template argument 1 is invalid
Glib::RefPtr< Gdk::GC > m_gc;
main.cxx: In member function ‘virtual void MyDrawArea::on_realize()’:
main.cxx:32:14: error: ‘Gdk::GC’ has not been declared
m_gc = Gdk::GC::create( get_window() );
main.cxx: In member function ‘virtual bool
MyDrawArea::on_expose_event(GdkEventExpose*)’:
main.cxx:40:16: error: ‘class Gdk::Window’ has no member named ‘draw_pixbuf’
get_window()->draw_pixbuf(
main.cxx:42:19: error: ‘RGB_DITHER_NONE’ is not a member of ‘Gdk’
width, height, Gdk::RGB_DITHER_NONE, 0, 0 );
make: *** [mascot_tsumugi] エラー 1
↑↑意味不明なエラーの皆様意味不明なエラーの皆様
開発過程開発過程
~~GTK+GTK+~~
写経が動かない写経が動かない
->->初心者にとって死を意味する初心者にとって死を意味する
開発過程開発過程
~~GTK+GTK+~~
でもでも
紬が見たい。紬が見たい。
開発過程開発過程
~~GTK+GTK+~~
_人人人人人人人人人人人__人人人人人人人人人人人_
>  バブみ駆動開発  <>  バブみ駆動開発  <
 ̄ ̄Y^Y^Y^Y^Y^Y^Y^YY^Y^Y^Y^Y^Y^Y^Y ̄ ̄
開発過程開発過程
~~GTK+GTK+~~
まずはエラーを読むまずはエラーを読む
->Gdk::GC->Gdk::GC周りのエラー。周りのエラー。
開発過程開発過程
~~GTK+GTK+~~
Gdk::GCGdk::GCで調べるで調べる
わからない。わからない。
開発過程開発過程
~~GTK+GTK+~~
GTK+GTK+自体のバージョンについての自体のバージョンについての
記事がちょくちょく出てくる記事がちょくちょく出てくる
GTK+2.0 -> GTK+3.0GTK+2.0 -> GTK+3.0の移行での移行で
大幅な仕様変更があったそうな。大幅な仕様変更があったそうな。
開発過程開発過程
~~GTK+GTK+~~
試しにコンパイルオプションを試しにコンパイルオプションを
gtkmm-2.4gtkmm-2.4に変更に変更
->->コンパイル通る。コンパイル通る。
開発過程開発過程
~~GTK+GTK+~~
原因原因
gtkmm-2.4gtkmm-2.4向けのサイトを向けのサイトを
写経して写経して3.03.0を利用したこと。を利用したこと。
バージョンはしっかり確認すべき。バージョンはしっかり確認すべき。
開発過程開発過程
~~GTK+GTK+~~
開発過程開発過程
~~GTK+GTK+~~
次は透過処理。次は透過処理。
それっぽい関数を使って透過それっぽい関数を使って透過
させてみる。させてみる。
開発過程開発過程
~~GTK+GTK+~~
開発過程開発過程
~~GTK+GTK+~~
違う。そうじゃない。違う。そうじゃない。
開発過程開発過程
~~GTK+GTK+~~
透過ではダメ透過ではダメ
->->非矩形ウィンドウを作る非矩形ウィンドウを作る
開発過程開発過程
~~GTK+GTK+~~
それっぽい関数それっぽい関数
void Gtk::Widget::shape_combine_regionvoid Gtk::Widget::shape_combine_region
(const ::Cairo::RefPtr< const ::Cairo::Region >&(const ::Cairo::RefPtr< const ::Cairo::Region >&  region)region)
を発見。を発見。
開発過程開発過程
~~GTK+GTK+~~
わけわからん。わけわからん。
しかもしかも
Since gtkmm 3.0:Since gtkmm 3.0:
開発過程開発過程
~~GTK+GTK+~~
gtkmm-3.0gtkmm-3.0を使うことをを使うことを
強いられる。強いられる。
開発過程開発過程
~~GTK+GTK+~~
公式チュートリアル公式チュートリアル((英語英語))でで
とりあえずとりあえずpngpng画像を表示画像を表示
開発過程開発過程
~~GTK+GTK+~~
開発過程開発過程
~~GTK+GTK+~~
ここから先はほぼ資料ナシここから先はほぼ資料ナシ
公式公式APIAPIリファレンスを見ながらリファレンスを見ながら
手探り実装。手探り実装。
開発過程開発過程
~~GTK+GTK+~~
->->現在更新中現在更新中
開発過程開発過程
~日程との戦い~~日程との戦い~
思っていたより手間がかかる。思っていたより手間がかかる。
22月は予定が詰まっていて忙しい。月は予定が詰まっていて忙しい。
でも紬マスコットは後回しにはできない。でも紬マスコットは後回しにはできない。
開発過程開発過程
~日程との戦い~~日程との戦い~
->->とにかく早く作りたい。とにかく早く作りたい。
開発過程開発過程
~~DxLibDxLib~~
DxLibDxLib :: CC言語向けの言語向けのDirectXDirectXライブラリライブラリ
驚くほど簡単に驚くほど簡単にDirectXDirectXがが
利用できる。利用できる。
しかも割と頻繁に更新されてしかも割と頻繁に更新されて
いるっぽい。いるっぽい。
((いつのまにかいつのまにかPS4,VITAPS4,VITAにに
対応していた対応していた))
開発過程開発過程
~~DxLibDxLib~~
DxLibDxLib経験経験
->->部活でゲーム作成していたので部活でゲーム作成していたので
まぁ多少はね?まぁ多少はね?
開発過程開発過程
~~DxLibDxLib~~
CC言語用なので直感でゴリゴリ言語用なので直感でゴリゴリ
組めます。組めます。
開発過程開発過程
~~DxLibDxLib~~
開発過程開発過程
~~DxLibDxLib~~
簡単。簡単。
画質の劣化もナシ。画質の劣化もナシ。
控えめに言って神。控えめに言って神。
開発過程開発過程
~~DxLibDxLib~~
非矩形ウィンドウの作り方を調べて非矩形ウィンドウの作り方を調べて
写経。写経。
開発過程開発過程
~~DxLibDxLib~~
開発過程開発過程
~~DxLibDxLib~~
できた。できた。
開発過程開発過程
~~DxLibDxLib~~
このままでは移動できないのでこのままでは移動できないので
ドラッグ操作で移動ドラッグ操作で移動
ウィンドウの後ろに隠れてしまってウィンドウの後ろに隠れてしまって
はは
意味が無いので、強制最前面意味が無いので、強制最前面
WinAPIWinAPIを叩く。を叩く。
開発過程開発過程
~~DxLibDxLib~~
完成。完成。
まとめまとめ
デスクトップマスコットデスクトップマスコット isis 良さ。良さ。
強制最前面でいつでもいっしょ。強制最前面でいつでもいっしょ。
まとめまとめ
まだ妥協版が完成しただけなのでまだ妥協版が完成しただけなので
GTK+GTK+、、OpenGLOpenGL版も完成させたい。版も完成させたい。
まずはまずはLinuxLinux環境で動くものを環境で動くものを
作りたい。作りたい。
備考備考
僕と紬は僕と紬は1818歳の同い年なのでバブみの定義に歳の同い年なのでバブみの定義に
当たらない。当たらない。
そもそも紬は天使であるからしてそもそも紬は天使であるからして
母親のような母性を感じている母親のような母性を感じている
わけではない。わけではない。
ネタ上バブみとは言っているがネタ上バブみとは言っているが
あくまでネタであることをご留意あくまでネタであることをご留意
頂きたい。頂きたい。
総括総括
紬は天使。紬は天使。
宣伝宣伝
技術ブログを立ち上げました。技術ブログを立ち上げました。
「「椎葉紬の胸の中椎葉紬の胸の中 is secureis secure」」
GoogleGoogle「椎葉紬」検索で「椎葉紬」検索で22ページ目ページ目
あたりに出ます。あたりに出ます。
紹介したデスクトップマスコットも配紹介したデスクトップマスコットも配
布しています。布しています。
おわりおわり
ありがとうございました。ありがとうございました。

More Related Content

Viewers also liked

カットインアプリについて(使い方&作り方)
カットインアプリについて(使い方&作り方)カットインアプリについて(使い方&作り方)
カットインアプリについて(使い方&作り方)
moli xson
 
今日からはじめる!バブみ駆動開発
今日からはじめる!バブみ駆動開発今日からはじめる!バブみ駆動開発
今日からはじめる!バブみ駆動開発
temama
 
Android_kinesis_cognito
Android_kinesis_cognitoAndroid_kinesis_cognito
Android_kinesis_cognito
moli xson
 
Mobile app development Company india
Mobile app development Company indiaMobile app development Company india
Mobile app development Company india
MobileAPPtelligence
 
“Advertisement in the Economic Community of West African States (ECOWAS)”: Le...
“Advertisement in the Economic Community of West African States (ECOWAS)”: Le...“Advertisement in the Economic Community of West African States (ECOWAS)”: Le...
“Advertisement in the Economic Community of West African States (ECOWAS)”: Le...
Edmund Siah-Armah
 
Final Portfolio
Final Portfolio Final Portfolio
Final Portfolio
KarinaFinke
 
колом
коломколом
13A Portfolio Presentation
13A Portfolio Presentation13A Portfolio Presentation
13A Portfolio Presentation
KarinaFinke
 
How to create an app
How to create an appHow to create an app
How to create an app
MobileAPPtelligence
 
Using a learning management system to improve and monetize your website
Using a learning management system to improve and monetize your websiteUsing a learning management system to improve and monetize your website
Using a learning management system to improve and monetize your website
H. Trevor Johnson-Steigelman
 
Finance Academy Recruiting Slideshow
Finance Academy Recruiting Slideshow Finance Academy Recruiting Slideshow
Finance Academy Recruiting Slideshow
HHSBizFinanceAcademy
 
How to make an app
How to make an appHow to make an app
How to make an app
MobileAPPtelligence
 
FEBS Letters 2007 Tang
FEBS Letters 2007 TangFEBS Letters 2007 Tang
FEBS Letters 2007 TangPingtao Tang
 
Blake Whittaker Resume-2
Blake Whittaker Resume-2Blake Whittaker Resume-2
Blake Whittaker Resume-2Blake Whittaker
 
Let's reading OSS's source
Let's reading OSS's sourceLet's reading OSS's source
Let's reading OSS's source
temama
 

Viewers also liked (18)

カットインアプリについて(使い方&作り方)
カットインアプリについて(使い方&作り方)カットインアプリについて(使い方&作り方)
カットインアプリについて(使い方&作り方)
 
今日からはじめる!バブみ駆動開発
今日からはじめる!バブみ駆動開発今日からはじめる!バブみ駆動開発
今日からはじめる!バブみ駆動開発
 
Android_kinesis_cognito
Android_kinesis_cognitoAndroid_kinesis_cognito
Android_kinesis_cognito
 
Mobile app development Company india
Mobile app development Company indiaMobile app development Company india
Mobile app development Company india
 
“Advertisement in the Economic Community of West African States (ECOWAS)”: Le...
“Advertisement in the Economic Community of West African States (ECOWAS)”: Le...“Advertisement in the Economic Community of West African States (ECOWAS)”: Le...
“Advertisement in the Economic Community of West African States (ECOWAS)”: Le...
 
Final Portfolio
Final Portfolio Final Portfolio
Final Portfolio
 
колом
коломколом
колом
 
Xie X et al 2014
Xie X et al 2014Xie X et al 2014
Xie X et al 2014
 
13A Portfolio Presentation
13A Portfolio Presentation13A Portfolio Presentation
13A Portfolio Presentation
 
How to create an app
How to create an appHow to create an app
How to create an app
 
A NEW POLITICAL SCIENCE.4
A NEW POLITICAL SCIENCE.4A NEW POLITICAL SCIENCE.4
A NEW POLITICAL SCIENCE.4
 
Using a learning management system to improve and monetize your website
Using a learning management system to improve and monetize your websiteUsing a learning management system to improve and monetize your website
Using a learning management system to improve and monetize your website
 
Finance Academy Recruiting Slideshow
Finance Academy Recruiting Slideshow Finance Academy Recruiting Slideshow
Finance Academy Recruiting Slideshow
 
resume_GAUTAMKUMAR_(1)
resume_GAUTAMKUMAR_(1)resume_GAUTAMKUMAR_(1)
resume_GAUTAMKUMAR_(1)
 
How to make an app
How to make an appHow to make an app
How to make an app
 
FEBS Letters 2007 Tang
FEBS Letters 2007 TangFEBS Letters 2007 Tang
FEBS Letters 2007 Tang
 
Blake Whittaker Resume-2
Blake Whittaker Resume-2Blake Whittaker Resume-2
Blake Whittaker Resume-2
 
Let's reading OSS's source
Let's reading OSS's sourceLet's reading OSS's source
Let's reading OSS's source
 

Similar to バブみ駆動開発_紬ちゃんデスクトップマスコット

プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCTプロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
Tokoroten Nakayama
 
Seq2Seqでボットづくり
Seq2SeqでボットづくりSeq2Seqでボットづくり
Seq2Seqでボットづくり
Masato Fujitake
 
Twitterのつぶやきで明日の自分のご機嫌を予測してみる
Twitterのつぶやきで明日の自分のご機嫌を予測してみるTwitterのつぶやきで明日の自分のご機嫌を予測してみる
Twitterのつぶやきで明日の自分のご機嫌を予測してみる
Kiriko Yano
 
20190118_NetadashiMeetup#8
20190118_NetadashiMeetup#820190118_NetadashiMeetup#8
20190118_NetadashiMeetup#8
Kazuma Yasuda
 
コレカモLT
コレカモLTコレカモLT
プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!
treby
 
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Masakazu Matsushita
 
20161125 尾崎 bootstrap
20161125 尾崎 bootstrap20161125 尾崎 bootstrap
20161125 尾崎 bootstrap
Tsuyoshi Saito
 
どたばたかいぎ成果発表
どたばたかいぎ成果発表どたばたかいぎ成果発表
どたばたかいぎ成果発表
Eric Sartre
 
Gadget in Pocket オフ会 incmplt LT
Gadget in Pocket オフ会 incmplt LTGadget in Pocket オフ会 incmplt LT
Gadget in Pocket オフ会 incmplt LT
Yasushi ABE
 
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたいリアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
x1 ichi
 
スクレイピングその後
スクレイピングその後スクレイピングその後
スクレイピングその後
Tomoki Hasegawa
 
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
ahiru3
 
面倒臭がりでもキャッチアップしたい- RE:Bot から始めるものぐさ生活 -
面倒臭がりでもキャッチアップしたい- RE:Bot から始めるものぐさ生活 -面倒臭がりでもキャッチアップしたい- RE:Bot から始めるものぐさ生活 -
面倒臭がりでもキャッチアップしたい- RE:Bot から始めるものぐさ生活 -
MinoruIto3
 

Similar to バブみ駆動開発_紬ちゃんデスクトップマスコット (14)

プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCTプロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
 
Seq2Seqでボットづくり
Seq2SeqでボットづくりSeq2Seqでボットづくり
Seq2Seqでボットづくり
 
Twitterのつぶやきで明日の自分のご機嫌を予測してみる
Twitterのつぶやきで明日の自分のご機嫌を予測してみるTwitterのつぶやきで明日の自分のご機嫌を予測してみる
Twitterのつぶやきで明日の自分のご機嫌を予測してみる
 
20190118_NetadashiMeetup#8
20190118_NetadashiMeetup#820190118_NetadashiMeetup#8
20190118_NetadashiMeetup#8
 
コレカモLT
コレカモLTコレカモLT
コレカモLT
 
プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!
 
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
 
20161125 尾崎 bootstrap
20161125 尾崎 bootstrap20161125 尾崎 bootstrap
20161125 尾崎 bootstrap
 
どたばたかいぎ成果発表
どたばたかいぎ成果発表どたばたかいぎ成果発表
どたばたかいぎ成果発表
 
Gadget in Pocket オフ会 incmplt LT
Gadget in Pocket オフ会 incmplt LTGadget in Pocket オフ会 incmplt LT
Gadget in Pocket オフ会 incmplt LT
 
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたいリアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
 
スクレイピングその後
スクレイピングその後スクレイピングその後
スクレイピングその後
 
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
 
面倒臭がりでもキャッチアップしたい- RE:Bot から始めるものぐさ生活 -
面倒臭がりでもキャッチアップしたい- RE:Bot から始めるものぐさ生活 -面倒臭がりでもキャッチアップしたい- RE:Bot から始めるものぐさ生活 -
面倒臭がりでもキャッチアップしたい- RE:Bot から始めるものぐさ生活 -
 

バブみ駆動開発_紬ちゃんデスクトップマスコット