blogこの広告は、90日以上更新していないブログに表示しています。19新卒エンジニアのアドベントカレンダーという一大イベント。99.99を飲みながら書かせていただきます。グレープフルーツおいしいね)カラオケは好きですか?自分の場合、なぜか好きな時と嫌いな時がありますが今は好き!懐かしのボカロ曲やアニソンを聞くと行きたくなる時期です。そんな中、ちょっとした問題が自分にはあります。それは、出せる音域が非常に狭いことなので、大体の曲は原キーでは歌えないのでキーの変更を余儀なくされます。Aメロは歌えるけどサビは無理。部分的にはいけるみたいなのが多いので自分に合うキーを探索、記録には苦労します。アンケートにご協力いただいた方は見たことがあると思いますが、キー変更をよくする人が12.3%もいてちょっと安心しました。記録は以下のようにiPhoneのメモ機能を用いています(一部をスクショ)じゃ、記録できるアプリがないのかと言われたら一応あります。あるけどアプリの完成度としては自分は満足していません。不満点でいえばこのような感じそもそも落ちる。特定の動作で固まるUIが不便。とる大きさと得られる情報量が一致しない音程解析がただのフーリエ変換の測定結果アプリの世界観が伝わらない落ちるアプリはそもそも論外です。それも某大手のアプリですが。UIと世界観ですが、個々のパーツをそのまま置いただけのような昔の業務用アプリが多いです。最近のAWA、Tictok、Spotifyもそうですがアプリ1つ1つに世界観があると思っています。アプリを使用しているときの安心感があります。音域解析ですが、これは本当にただのフーリエ変換で最大ピークをもつ周波数帯をグラフ化したものです。それで出せる音域は測定できますが、それが本当に気持ちよく歌える音域ですか?と言われたら違うはずです。統計的、アカデミックな視点から解析できると思っていますこのように(継続して)使ってみようと思うアプリが自分の中ではありませんでした。無ければ作ればいいじゃない!!自分のモットーでもあります「無ければ作ればいいじゃない!」ようは自分の満足するアプリがなければ作ってしまおうという、考えです。TUT内でサービス開発やってる話聞かないし、作っちゃえ!!作りたいアプリを説明したうえで、同じTUT内の友達や後輩を巻き込んで一緒にアプリを作ることになりました。残念ながら今回の記事ではまだ公開できません。アプリ開発はスピードが大切だと思います。今できる最善の手で使えるツールがあるのなら積極的に取り入れるべきだと考えました。DynamoDBなどモバイル開発におけるハブ機能を果たします。各サービスで無料枠が使えるので開発やリリース初期でも費用の問題がないサーバー構築に時間を取られない開発メンバーがパブリッククラウドに触れられるいい機会と思い選定しました。開発メンバーが初学者であるため自分もiOSの勉強をする必要があります。小さい時からwindowsっ子で育ったためmacは持っていません。miniをぽちったグラフィック以外はおおむね満足してます。あと基本チームの連絡はSlackで行い、タスク管理はtrelloで行うことにしました。連携がスムーズにいくという点で決定。現在の進捗ですが、コンセプト、アプリの基本機能、アイコンデザイン、サービス名、技術選定の案だしは終わりました。卒業研究と論文提出の月であるため、本格的に始動するのはクリスマス後になります。目指すチーム像ここからは自分がチーム開発するうえで大事にしていることの一部を書きます。「年上だから意見を言うのやめよう」とか「自分より技術低くそうだからこの情報共有しなくていいっか」など勝手な価値観で情報共有をしないのはものすごいもったいないことだと思います。「グループ」ではなく「チーム」なのだから共通の目的、達成すべき目標、アプローチ方法はチーム全員が共有されているべきです。そのためにも、リーダーである自分からまず情報開示を行に信頼を得るように意識しました。Gitの使い方、APIの共有、調査報告、etc...ググれば分かるかな?と思う内容も共有します。共有内容+コメント(例:これここで使えそうじゃね?)があればよりgood.この内容に関してはチームの技量にもよりますが、今回はチーム開発未経験者を含めて考えています。情報共有とフィードバックを繰り返すことで共有することの大切さが実感でき、少しづつの成果が自信へと繋がり信頼につながると思っています。HRT(謙虚・尊敬・信頼)を持つ謙虚(Humility)、尊敬(Respect)、信頼(Trust)の頭文字をとった言葉です。Geek」で書かれている、当時のGoogleのチームリーダーが優れたチームを作り上げるときに工夫したものに書かれています。信頼関係を育もうということです。詳しくはお酒飲みながらお話ししましょうwまだまだありますが、このような思考を教えてくれたおすすめ書籍を紹介して終わりにします。Anacondaディープラーニングってやつでなんとかして!!!!ってことで今の環境にニューラルネットワークライブラリであるKerasを導入したのでメモちょっとしたバージョンの違いだけでも動かないので注意してください。導入NVIDIAから出してる並列処理プラットフォームのCUDAを落とします。現在Ver10まで出ていますが、TensorflowがVer10に対応していないためVer9を導入。typeはnetoworkだとうまくいかなかったとの情報がありましたが、自分は大丈夫でした。導入CUDA専用のDNNライブラリのcuDNNを落とします。Developerにあらかじめ登録してないと落とすことができません。登録申請からアカウントが使えるまで1日待ったので気長にお待ちをhttps://developer.nvidia.com/rdp/cudnn-downloadバージョンはCUDAに必ず合わせます。9.0」のを選択これはインストーラーではなくフォルダがzipで送られますcuDNNをCUDAに適用cuDNNの中に入っているファイルをCUDAにディレクトリにコピーします。Toolkit\CUDA\v9.0」に入っているはずです。libの3つのフォルダがありますが、その中身を上記のCUDAの同じフォルダ名の中にコピーqiita.comシステム環境変数の確認ここで一旦、Pathがちゃんと通っているか確認します。Codeは予めインストールしておいてください。DocumentationScipyのバージョン下げ普通ならばここで簡単なテストを走らせれば動きますが、自分の場合AnacondaかTensorflowを入れる段階でバージョンが違うScipyが入れられたらしくエラーを吐きました。list」でScipyのバージョンを確認pipとcondaで重複していないか確認。scipy==1.0.1」でバージョン指定したのをインストールパッケージバージョン一覧とまぁなんだかんだ、以下のようなパッケージになりました。できると思いますが...MNISTの分類サンプルの実行パスとバージョンを確認したうえで、DNN基本であるMINISTの分類を行います。コードはkerasのサンプルから丸コピーしてください。github.com.pyコードを実行すると、うまくいけば以下のように現在のエポック、ロス等が表示されます。760で回していることも確認できたのでこれでOK!!ちなみに1エポックで130秒ぐらいかかりました。760ではこの先も結構時間がかかりそうTensorflowのビルドTensorflowを自前でビルドする際は別途手順が必要です。TensorFlowコンパイルにBazelとMSYSが必要になります。こちらもちゃんとPATHが通っていることを確認してください。Bazelhttps://www.msys2.org/またこちらもtensorflowでバージョンが指定されています。なんでもかんでも最新のを選ぶと後々めんどくさいので要注意。FireBaseこんにちわ、ころんです!内定先の懇親会で最近「Firebaseまじ神!」「Firebaseまじすごいよ」とよく聞くのでいじってみることにしました。Ganacciが無理やり(?)演出係にファイアーさせてるのがツボってますwFirebaseへの登録firebase.google.comFirebaseはGoogleの傘下にあるので自分はGoogleアカウントでそのまま入れました。右上にある「コンソールへ移動」をクリックし、「プロジェクトを追加」を選ぶ。プロジェクトの作成画面で、名前とリージョンを選び作成。今回は「FireBaseChat」でリージョンはデフォルトでも特に問題ないかと。Firebaseするとプロジェクトのメイン画面に移ることができました!認証の設定Firebaseの魅力にユーザー認証が容易にできることがあります。OAuthの認証メソッドを書く必要もないし、Firebaseのプロジェクトごとに認証方法を変えられます。webbibouroku.com今回は、分かりやすくするために「匿名」を選びます。今回はユーザーが投稿したメッセージ等を格納するデータベースの設定を行います。プロジェクトのメイン画面の左側にある開発から「Database」-->「データベースの作成」を選択するとセキュリティルールの設定に移ります。今回は「テストモードで開始」を選択。これでDBの設定は終わりです。DBのシークレットキーDBへのシークレットキーは、左画面の歯車マークから「プロジェクトの設定」-->「サービスアカウント」-->「以前の承認情報」から取得できます。SDK」からの設定が必要らしいです。今回の動作には問題ないですが、ここについても調べてみます。DBのURLデータベースへのURLは「プロジェクトの設定」-->「全般」-->アプリ-->「ウェブアプリにFirebaseを追加」を選択することで確認できます。StudioからC#のコンソールアプリを作成します。APIをラッパーしたFireSharpを使います。FireSharp」と打ってインストール。コードですが、ラッパーのおかげで単純にテキストを送信する内容だったらこの程度でできます。Firebase!!!」がDBの「chats/」下に格納されます。Database」が作成されていることが確認できます。中身を見ると、先ほど送信したメッセージが格納されています!!あら簡単!!!画像は「!!!」の部分が見切れていますがちゃんと入っているので安心をちなみにコードのresonceのbodyを見ると各メッセージのIDが確認できます。まとめ今回は、Firebaseを使ってクライアントからサーバーにメッセージを格納する処理を作成しました。Sonicare保証書もどっかいったし、新しく買うのもなんかもったいない。本体を振っていると明らかにパーツが取れてる音がしたので、これは直せそうだなと思ったので分解しちゃいますwww開け方は下記のページを参考。自分は細いマイナスドライバーで「▼」と印刷されている部分に入れると割とすんなりキャップは取れました。ソニッケアーの充電池を交換してみたっで下の写真が本体です。パーツが取れてました。Philipsソニッケアーの本体どこのパーツだろと探してたら、明らかに不自然なへこみが。金属部のハの字がちょうどぴったりだったので、ハメて上からねじ止めすればグラグラしなくなりました。これで直ったー!と思って外装と合わせて動作確認がしましたが、またすぐ同じ部分が取れてぐらぐらに。2つ上の写真のネジを見ると赤い付着物があります。接着剤?で固定していたようですが、超音波の振動で完全にはがれてしまったようです。ことでみんな大好き「アロンアルファ」でねじ部と頭に接着してしばらく放置。key」が何百のエラーを出していました。意地悪なことに、ユーザーが操作できない項目になっているのでダブってる項目を削除することもできず...結果的にアンインストールして入れなおそうと思ったのですが、ただアンインストールするだけでは以前DLした拡張機能やsettings.jsonが残ったまま!解決策アンインストール後にフォルダを漁ってると「C:/Users/(ユーザー名)/」に「.vscode」というフォルダを発見。Codeを入れたら無事初期化してくれました。」PythonNumpyを使って行列計算の確認用にprint()を使っていたのですが、ある日から突然エラーを吐くようになりました。2)数字はコードによって変わりますが、自分の場合は何回かprintされてから上記のようなエラーが出てきます。下記を参考に修正しました。win_unicode_console」を使ってパッケージを導入する必要があります。Python色に関する研究をしていると、色空間について考えることがよくあります。xy色度図で表現することができますが、pythonでなんとかこれを表示したい!っということでいいライブラリがあったのでメモ。COLOURcolour-science.orgCOLOURはPythonベースの色研究をしている人のためにライブラリです。インストールはAnacondaやPypi、Githubリポジトリから落とせるので簡単楽ちん。(2018/12/21)3次元配列でも普通に渡せます。自分が把握している機能としてはざっとこんな感じ(2017/12/20時)間違いがあればご指摘お願いします。xy色度図のプロットなんやかんやと紹介したところで本題のプロットへ。表示するだけでなら以下だけのコードでOKです。自分で他の物をプロットしたい最大値を1.0に正規化したRGBをそれぞれ15分割させ、sRGBに基づいてxy空間へプロットしてみます。プロットはmatplotlibをそのまま使えるので便利です。gist.github.com出力xy色度図にsRGB領域をプロットできていることが確認できました。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。