Amazon Campaign

2018年8月10日金曜日

チームの出欠管理サービス BitScheduler を公開しました

先日、チームの出欠管理を行うWebサービス「BitScheduler」を公開しました。
Googleカレンダーと連携しており、カレンダーに予定を登録するだけで出欠が管理できます。
チーム専用のURLが発行されるので、メンバーはいつでも最新の予定を確認できます。

予定一覧画面

出欠投稿画面

投稿一覧画面


初期設定は少々面倒ですが、はじめだけなので、日々の運用はチョーラクチンになるはずです。
よかったら使ってみてご意見ください!

チームの出欠管理サービス「BitScheduler」


2017年5月13日土曜日

Developer Tools 上の Sources が更新されないときは

Chrome のデベロッパーツール上で参照している JavaScript などのソースがリロードされないときはスパーリロードを試しましょう。


  • Mac : Cmd + Shift + "R"
  • Windows : Ctrl + Shift + "R"


2017年2月19日日曜日

SourceTreeでコミットの失敗を修正する

Gitでコミット失敗したとき困りますよね。技術評論社が無料で配布している技術書のカタログ「電脳会議」でコミットを修正するコマンドが紹介されていました。
それをGitクライアント「SourceTree」でどのように操作するか紹介します。

実施環境


  • Mac版
  • SourceTreeの 4.2

まずリモートリポジトリにプッシュされているか確認する

すでにリモートリポジトリへプッシュしているかどうかで対応方法が以下のように変わります。



まずはプッシュされているか調べましょう。

コマンド

$git log --oneline @{u}..HEAD

SourceTree

SourceTreeの場合は黙っていても勝手に表示してくれています。

未プッシュ数は常に表示されています

修正したコミットをすでにリモートリポジトリにプッシュしてしまった

この場合、プッシュしてしまったコミットを取り消すコミットを作成して新たにプッシュします。

プッシュしたコミットを取り消す

git rebertを使ってコミットした編集を取り消す新たなコミットを作成します。

コマンド

$git revert HEAD

SourceTree

対象のコミットを選択し、コンテキストメニューより「コミット適用前に戻す」を選択します。


"Revert"コメントが付与された、対象のコミットを取り消すコミットが生成されます。


修正したコミットをリモートリポジトリにまだプッシュしていない

この場合、修正内容により方法が異なります。

コミットメッセージを間違えた


コマンド


$git commit --amend

SourceTree

「リポジトリ」メニューの「対話的なリベース」より行います。

メニューバー「リポジトリ」>「対話的なリベース」を選択

コミット一覧より対象コミットを選んで「メッセージを編集」を押す

コメントを修正

完了!


ファイルが漏れていた


コマンド


$ git add {追加するファイル名}
$ git commit --amend

SourceTree

直接このコマンドに対象する操作は見当たりませんでした。
この後に紹介する「コミットをやりなおす(ファイルの変更は残す)」を実行し、新たなコミットを作成することで対応できます。

コミットをやりなおす(ファイルの変更は残す)


コマンド

$ git reset HEAD^

SourceTree

対象のコミットを選択し、コンテキストメニューより「このコミットまで ****** を元に戻す」より実行します。

戻したい箇所のコミットを選んで「このコミットまで・・・」を選択

「Soft - すべてのローカル変更を保持」を選択

完了


コミットをやりなおす(ファイルの変更は残さない)


コマンド

$ git reset --hard HEAD^


SourceTree

前述の「コミットをやりなおす(ファイルの変更を残す)」の操作と途中までは同じです。ダイアログメニューより「Hard」を選択します。

コンテキストメニューより「Hard - すべての・・・」を選択する

警告が表示されるが「OK」を押す

完了

以上です。
Gitの運用もできるならキレイに運用したいですよね。これさえ知っておけばコミットミスも怖くありません。


2017年2月12日日曜日

デスク装着型のUSB充電ケーブル収納アタッチメントを工作してみました

最近一晩で充電するガジェットが増えてきて、コンセントも足りないし、充電器を毎回セットするのも面倒なので、デスクに装着できるUSBケーブル収納アタッチメントを工作して見ました。

こちらが完成物です。
イメージしていたのはケーブルを使いたい時にサッと引き出せて、収納時には何のアクションもせずにホールドしてくれるものだったのですが、思い通りになりました。



まずコンセントの口が足りないので電源タップを増設しました。
アクセスしやすくデスクの上に設置しようとも思いましたが、結構ゴツイしかさばるので、サイドチェストに置き、各充電器を差しっぱなしにして取り回します。


電源タップの選定ですが、差しっぱなしの運用は待機電力が気になるのでポートごとにON/OFFできるもの、ただしデスクを設置してある部屋は寝室も兼ねているのでスイッチにはLEDランプがないものを選びました。


続いてケーブルを引っ掛けるフックですが、ダイソーに今回の工作にもってこいの商品がありました。


これ、両面テープで貼り付けるケーブルのクリップなのですが、そのクリップ部分の直径が絶妙なのです。ストレスなくケーブルを出し引きでき、かつUSBポート部分はしっかりブロックしてくれる、まさに今回の用途の為の製品!? と思えるものです。


デスクの天板のエッジが垂直であればクリップに付いている両面テープで直接貼り付けるだけなのですが、残念ながらボクのデスクのエッジは曲面に加工されているのでプラ板を噛ませ、プラ板を両面テープでデスクに貼り付けることにしました。


出来上がったものを設置したのがコチラです。普段はデスクの奥でひっそりと収納されております。


そしていざ、充電の時を迎えるとシャシャッとケーブルを引き出せて充電できます! いやー、なんて便利! かなり思い通りの形にできました。めでたしめでたし。


2016年12月31日土曜日

シーマスターを Chronos でマートウォッチ化

夏にプレオーダーで注文していた普通の時計をスマートウォッチ化するガジェット "Chronos" が年の瀬にようやく届きました。
海外のスタートアップのプロダクトで、かつ価格も $99 と手頃なため完成度・品質ともに期待はしていませんでしたが、良い意味で裏切られました。結構よいです。

開封


25cm * 25cm ほどの小包で到着。





パッケージ。思っていたよりも製品としてキチンとパッケージングされています。




内容物は本体、充電器、マニュアル、時計のクリーナー。
Chronos本体は粘着テープで時計背面に貼り付けるため、時計をクリーニングするためのクリーナーが付属していました。

取り付け



オメガ・シーマスターに装着してみます。



Chronos本体はかなり薄い。公称は3mm。



シーマスターの背面は平面ではないので粘着テープがキチンと張り付くかが非常に気になります。




念入りにクリーニングして貼り付けた図。




横から。時計背面の形状のせいで粘着部分に余白があるので、そこにホコリが付着すると思うのでちょっと気になります。

懸念される粘着強度ですが、Chronos自体を横にスライドさせようとある程度力を加えても剥がれませんでした。ただ、隙間部分から上に持ち上げようとすると少しの力で剥がれてしましました。(^^;)

まぁ時計の形状が適していないので仕方がないですね。多少気をつけて利用します。



元々ベルトに多少余裕があったので、ベルトを調整せずに腕に収まりました。
ほぼ余裕がない状態になったので、Chronosが予期せず剥れる事故が起きにくい気がします。

追記:時計を横向きに置いた際、Chronos部分から接地したようで、その衝撃で剥がれてしまいました。(TT) やはり要注意のようです。

充電



マニュアルではオープンタイプのベルトが描かれており、クローズドなベルトであるシーマスターでは不安がよぎります。



ですが、特に問題なし。



充電中の発光にシビれます。



クローズドベルトのため充電器の上から時計を置けず、充電端子との接触が十分にされないのではと懸念しましたが、充電器にChronosをしっかりホールドする機構が備わっており、上から圧力がなくともしっかり接触状態をキープしてくれます。

アプリ


では、ここからアプリとの接続です。


アプリを起動すると自動でデバイスを探して接続してくれます。
当然、bluetooth は事前に on にしておきましょう。



続いてファームウェアのアップデートが始まります。
Chronosを充電器に乗せましょう。



アップデートは数十秒で終わります。



さて、アプリと連携して Chronos で何ができるのか。
まずはヘルス関連。歩数計、移動距離、消費カロリーを計測してくれます。
写真は歩数計の画面。
移動距離の画面では単位がマイルしかないのが日本人には残念です。



こちらは連携できるアプリのリスト。
あまり多くはありませんが、Chronos自体、通知を受けることしかできないので十分でしょう。LINEがあり安心しました。

ただ、通知の振動が若干弱い気がします。ちょっと体を動かしていると気付けないかもしれません。実際に運用して様子を見ます。



Chronos は時計のガラス面のダブルタップを検出します。
その操作によりコントロールできる動作を選択できます。
なんと、iOS 標準カメラアプリのシャッターを切れます!
個人的には嬉しい。iPhoneを乗せる三脚が欲しくなってしまいますね。

あと、Find Phone ですが、こちらはホームページを見る限り、iPhoneを見失った際に音を出して見るけることができるらしいのですが、試した限りディスプレイは点灯するのですが、音が出てくれません。。。要調査です。


以上、Chronosのファーストインプレでした。シーマスターでもなんとかなりそうです。
お気に入りの時計があってスマートウォッチの導入を見送っていた方には良い選択だと思います。


2016年12月2日金曜日

GoogleAppEngineLauncher のデプロイで 403 エラーになる場合の解決方法

MacのGoogleAppEngineLauncherを使ってデプロイするときに 403 エラーになることがあります。

エラーの出力例
Starting update of app: **********, version: 4
12:38 AM Getting current resource limits.
2016-12-02 00:38:08,108 ERROR appcfg.py:2455 An error occurred processing file '': HTTP Error 403: Forbidden Unexpected HTTP status 403. Aborting. 
Error 403: --- begin server output ---
You do not have permission to modify this app (app_id=u'**********').
--- end server output ---
If deploy fails you might need to 'rollback' manually.
The "Make Symlinks..." menu option can help with command-line work.
*** appcfg.py has finished with exit code 1 ***

*** Running dev_appserver with the following flags:
    --skip_sdk_update_check=yes --port=8080 --admin_port=8000
Python command: /usr/bin/python2.7
INFO     2016-12-01 22:00:41,793 devappserver2.py:769] Skipping SDK update check.
INFO     2016-12-01 22:00:41,845 api_server.py:205] Starting API server at: http://localhost:62864
INFO     2016-12-01 22:00:41,850 dispatcher.py:197] Starting module "default" running at: http://localhost:8080
INFO     2016-12-01 22:00:41,853 admin_server.py:116] Starting admin server at: http://localhost:8000


そんな時は、まずGoogleAppEngineLauncherの"Control"メニューから"Clear Deployment Credential"を実行してみましょう。



ググってみると、「異なるアカウントでの認証がキャッシュされている」とか「Google Cloud Platform のサービスアカウントが異なる」とか色々と解決策があるようですが、クリアして再認証するのが簡単です。

2016年11月23日水曜日

iPhoe7 ジェットブラックのデザイン性をキープするバンパー

iPhone7 ジェットブラック、かっこいいから裸で使いたいけどテーブルに置くだけで傷が付きそうで心配ですよね。良いバンパーがありました。

「【JP PRO】iPhone 7 ケース 衝撃吸収バンパー スマホカバー アルミフレーム/ソフトTPUバンパー (二重構造バンパーケース) 」です。


これです。なんかロゴがどっかのアパレルメーカーみたいですね。中国製でした。
外側がアルミニウム、iPhoneと接触する内側はTPU素材(ポリウレタンの一種)という構造で、バンパー自身で iPhoneを傷つけることはありません。




中身はこれだけ。




各ボタンもアルミニウムでできていますが、バリも全くなくキレイです。
こちらはボユームボタン。




こちらはレジュームボタン。




 iPhone7 のカメラレンズ部分は隆起しているので、置いた際に接触させないようにバンパーにも突起があります。いいですね。




きになるアルミニウムとTPUの構造ですが、よくできていますね。
こちらのミュートボタン部分を裏から見た図だと2重構造がよくわかります。
手前がTPU素材、網目のように見えるのがアルミニウムです。
全く iPhone と接触しないようになっており安心です。




装着するところ。





下部のライトニングポート部分はアルミニウムがなくTPU素材だけと成っており、ここが少し伸縮してカポッとバンパーがハマります。装着後はしっかりと iPhone をホールドしてくれて、少々の力では取れたりしなさそうです。
うまいこと出来てます。
スピーカー部分も綺麗に加工されてます。




装着後の上部。



ミュートボタン部分。ちょっと深いのでミュートボタンは切り替えにくいです。
が、ボクはほとんどミュートにしっ放しで運用するので問題ありません。




下部。




このエッジがジェットブラックの光沢面を守ってくれます。




カメラレンズもがっちりガード。いいですねぇ。




ジェットブラックのデザインに対して最小限の影響にとどめてくれていると思います。
これで自動改札機への接触も気にならなくなるので Suica を登録しようと思います!



Amazon_ad