Androidのメモとか

ポキオの日記です。今日も遅延してない。

gitのコミットでauthorとcommitterがバラバラになってたので必死で直した

なぜなぜ案件。

やらかした

pokiiio.github.io

Github Pagesで色々遊んでたんですが、コミットする環境によってauthorとcomitterがバラバラになってました。全部pokioアカウントで統一したかったんですが、他のアカウントのものが混じってしまい必死で修正したので、そのメモを残しておきます。

過去のコミットのauthorとcommitterを一発で変更する

単刀直入にいうと、以下のようなコマンドで後から修正できます。

git filter-branch -f --env-filter "GIT_AUTHOR_NAME='pokio'; GIT_AUTHOR_EMAIL='32353873+pokiiio@users.noreply.github.com'; GIT_COMMITTER_NAME='pokio'; GIT_COMMITTER_EMAIL='32353873+pokiiio@users.noreply.github.com';" HEAD 

ここで、メールアドレスはgithubから付与されるアドレスで、これのお陰でgithubアカウントに紐付いているプライベートのアドレスを晒さずに済みます。https://github.com/settings/emailsで確認できます。

コミットログを後から修正する

上記のコマンドを実行すると、たまにコミットログにゴミが付与されることがあったので、コミットログも修正しました。

git rebase -i HEAD

基本的にgit rebaseで書き換えていきます。

ローカルのgit configを設定する

もちろん、globalのgit configとは別に、レポジトリ毎にnameとemailを覚えさせておけるので、設定したいローカルレポジトリをワーキングディレクトリにしてから、下記のコマンドを実行。

git config --local user.name pokio
git config --local user.email 32353873+pokiiio@users.noreply.github.com

ローカルレポジトリをリモートレポジトリで強制上書き

上記までの方法で色々修正したのに、コマンドを打ったマシンとは別のマシンに古いコミットが残っていて、それをリモートレポジトリにシンクさせちゃうと、またもとに戻ってしまうので、そういうマシンでは以下のコマンドを実行して、強制的にローカルレポジトリをリモートレポジトリ相当にします。

git fetch origin master
git reset --hard origin/master

参考にしたページ

qiita.com

poyopoyo0.hatenablog.com

qiita.com

qiita.com

いやぁ、助かりました。

GitHub PagesでWebページを無料でチョッパヤで作ってみた

久々のWebページ制作

GitHub Pages

pages.github.com

GitHubアカウントを持ってれば、簡単にWebページが無料で作れるサービス。もともとはWeb Bluetoothなページを作って、それをスマホデバッグする時に、どこかに簡単にホスティングできないかと調べていた時に見つけたんだけど、意外と簡単に無料で公開できるとのことなので、とりあえずWebページを作ってみようかなと決意。

とはいえ、HTMLを書くだなんて久しぶりだし、iframeでブイブイ言わせてた頃のページを学生の頃に授業で書くくらいしかしたことがなかったので、この際に1からフルスクラッチで作ってみました。特に難しいことは考えず、HTML5+CSS+JSでそれっぽいページを作りました。デザインセンスは皆無なので、テキトーにAndroidのマテリアル感を持たせてみました。

pokiiio.github.io

https://pokiiio.github.io/

やったこと、参考にしたモノなど

ちょっと昔の本

アプリを作ろう! HTML5入門 (アプリを作ろう! シリーズ)

家に転がってた本を参考に書いてみました。本当はもっとナウいテクニックが書かれた本があるのかもしれませんが、ナウくない手法で取り敢えずWebページを作りました。

JavaScript + GitHub APIで最新リポジトリ一覧を表示する

gihyo.jp

これも、もっといい方法があったのかもしれませんが、このページを参考に作りました。

qiita.com

GitHub APIに関しては、このページと本家リファレンスを参考に書きました。JSONリポジトリ一覧が返ってくるので、愚直にパースして、愚直に動的に表示要素をWebページ上に追加しています。jQueryとかは使わずに、純粋なJSで書いてます。

レスポンシブな感じにする

syncer.jp

スマホからも見れるようにしたかったので、レスポンシブなレイアウトにしました。これも結構テキトーに実装しています。

マテリアルっぽくする

まずは、なにはともあれ色。

www.materialpalette.com

この便利なサイトで、色んな色を生成してもらって、愚直にCSSで設定。

あとは、WebフォントでRobotoをつかってAndroid感を醸し出してます。

photoshopvip.net

読んだだけで実践してないこと

qiita.com

qiita.com

開発環境も色々あるんですね(小並感)。AndroidのGradle見たいな仕組みがあったりして面白かったけど、結局使わなかった。

チョッパヤでつくってみた

いやー、Webページ作成は奥が深い。色んな要素がありすぎてどこから手を付けていいかわからなかったけど、とりあえず手を付けてみた感じ。SEO関連とかは一切できてないので、今後触りたい所存。ちなみに、今回作った(作ってる)Webページの作成過程は以下のコミットログで確認できます。突っ込みたいことがあればコメントを頂きたく(笑)

github.com

ArduinoやESP8266/ESP32でのNeoPixelなLEDをエモく光らせるライブラリを作った

たかがLチカ、されどLチカ。

github.com

ライブラリをつくりました

個人的によく使う関数をライブラリ化しただけのオレオレ企画。Adafruit NeoPixel Libraryが入っていること前提ですが、じんわり光らせるBlink.softly()パリピ点滅を楽しめるBlink.likePartyPeople()という2つの関数を用意しています。(命名規則ガン無視。オシャレな関数名にしたかっただけです。)

使い方はこんな感じ。

#include <Adafruit_NeoPixel.h>
#include <EmotionalBlink.h>

#define PIN D8 // LEDへの信号線をD8に繋ぐ
#define NUMLED 1 // LEDの個数は1。数珠つなぎに複数個のLEDをつなげることも可能
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMLED, PIN, NEO_RGB + NEO_KHZ800); //おまじない

void setup() {
  // NeoPixelのLEDの初期化
  pixels.begin();
}

void loop() {
  // 2秒かけて、消灯→点灯(赤)→消灯をじんわりやる
  Blink.softly(&pixels, NUMLED, 255, 0, 0, 2000);

  // 1秒間パリピ点滅をする
  Blink.likePartyPeople(&pixels, NUMLED, 1000);
}

ただのdigitalWrite()のHIGH/LOWの味気ない光らせ方に飽きてしまった人にはおすすめです。

よく使うIFTTT WebhookをESP8266から叩くコードをライブラリ化してみた

大したアレじゃないんですが。

まいどまいど、変なものを作ってます

アドベントカレンダーに向けて、変なものをいっぱい作ってます。

ESP8266からIFTTTを叩く

ESP8266からIFTTT叩けると結構IoT感が出てすばらしいんですよね。で、結構使っちゃいます。

relativelayout.hatenablog.com

以前も、Amazon Dash ⇒ ESP8266 ⇒ IFTTT ⇒ Any servicesみたいな感じでIoT感を醸し出していました。なんだかんだこの先もIFTTTを叩くことが多そうなので、オレオレライブラリを作ってみました。

github.com

大したコードじゃないですが、是非使ってみて下さい。なにかあったら、アレしてください。アレ。

秋のJavaScript祭 in mixi 2017で登壇してきました

ジャッヴァスクリプトォォォォォォォ。

秋のJavaScript祭 in mixi 2017

秋のJavaScript祭 in mixi 2017

javascript-fes.doorkeeper.jp

なんで私がJSなのか?そう思う方もいらっしゃると思いますが、IoT x JSという切り口で話してきました。

秋のJavaScript祭 in mixi 2017

場所は渋谷のmixiさん。おしゃれなスペースをありがとうございます!

登壇するときに使うデモ機を前日に準備するという計画性のなさと、ESP32の仕様に苦しむというバタバタはありましたが、なんとかESP8266でデモ機が作れたので、一安心。

ポキオ基板でデモしますよ #jsfes

A post shared by pokio (@pokiiiiio) on

やっぱりポキオ基板はいい。デモしやすいし、基板が赤くていい。

何を話してきたのか

speakerdeck.com

Google Apps Scriptをつかったマイコンボードのチョッパヤ開発について話してきました。IoTへのJS的なアプローチとしては

  • Mongoose OS
  • Johnny-Five
  • Espruino

などたくさんあって、それらも非常に便利なしくみであります。ただ、GASを使うと何がいいかというと、

  • マイコンボードはGASにアクセスするだけ
  • 非力なマイコンボードでは難しい複雑な処理をすべてGASに任せることができる
  • メインのロジックはGASで書くので、ロジック変更もGASを書き換えるだけでマイコンボードへのスケッチ書き込みは不要
  • 複数台のマイコンボードに同じ処理を行わせたいときも、単一のGASにアクセスさせるだけ
  • その場合もロジック変更はGASだけで、それぞれのマイコンボードの変更は不要

こんな感じでよさみがある感じになっております。

秋のJavaScript祭 in mixi 2017

でもでは、GASをライブで変更して、ポキオ基板のLEDが変化する様子をお伝えしてきました。詳しいコードは以下のページで公開しています。

github.com

JSな方にはちょっと畑違いな話だったかもしれませんが、皆さんには暖かく聞いていただけました。ありがとうございました。

面白かった話

JSにあまり詳しくないので、ちょっとむずかしい話がたくさんありました・・・。が、Unityのような3Dをあつかえるthree.jsが個人的に一番とっつきやすくて、面白そうな技術でした。

Three.js – JavaScript 3D Library

ics.media

これはおいおい触ってみたい所存。いやー、JSって奥が深いなー。勉強するぞー。

CLOSED BETA FOREVER Tシャツも好評でした(笑)

suzuri.jp

SUZURIデビューをしてTシャツの販売を始めました

完全に思い出作り。

オリジナルデザインのTシャツ

suzuri.jp

SUZURIさんで、ポキオストアーをオープンしました。もともとLINEのスタンプを作っていたんですが、途中で心が折れてしまい。手元に余ったどうしようもないイラストをちょっとずつ消化していこうと思います。たまにネタTシャツも。

suzuri.jp

CLOSED BETA FOREVER。なんともかっこいい響きです。

suzuri.jp

愚息用スタイ。あなたの周りの愚息にいかがでしょうか。こんな感じでゆるくやっていくので、皆様からの大量注文をお待ちしております。

Unityで使う3DモデルをSculptrisで作ってみる

前回はUnityのセットアップをしました。

relativelayout.hatenablog.com

3Dオブジェクトをサクっと作る

専門知識もないので、兎に角簡単で作れる方法を。そして無料で。

で、いうわけで行き着いたのがScultpris。

http://pixologic.com/sculptris/pixologic.com

基本的にマウス操作だけで3Dオブジェクトを作れます。

sculptris unity

球体を粘土のようにつまんだり引っ張ったり平らにしたりして、オブジェクトを作っていきます。

sculptris unity

sculptris unity

途中でパーツを追加しては、また整形して。何やらネズミみたいなものが出来上がってきました。

sculptris unity

このツールでは色も塗ることが出来ます。このツールで、オブジェクトファイルとTEXMAPファイルを出力して、Unityで読み込むと、このネズミみたいなものをUnityで操ることが可能になります。

sculptris unity

こんな感じで。

「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。