Blog移行のお知らせ
Blog移行のお知らせです
今までこちらで、開発者のBlogを書いていたのですが、今後、「For Developer」に移行します。今後ともよろしくお願いします
【Swift4】@objc絡みのワーニング
また出た良くわからないワーニング
- Swift3からSwift4にマイグレーションしてると、以下のようなワーニングが出た
The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "AppName" target.
消し方
- TargetsのBuild Settingsで「inference」で検索する。
Swift 3 @objc Inferenceの項目が表示されるので、
Targetsの設定を「Default」に変更する - 以下のサイトを参考に・・・
その先
- Objective-CからSwiftのメソッドが見えなくなる。"AppName-Swift.h"にObjective-Cから呼び出したいSwiftメソッドが出力されなくなってしまった。
どうも参照したい各メソッドに@objcを書かなければならないらしい。面倒くさい。人をハメようとしてるとしか思えない
ubuntuにopenjdk9をインストール
ubuntu16.04にopenjdk9をインストールしてみた
- 以下のコマンドでインストール
# sudo aptitude install openjdk-9-jdk
インストール時にエラー発生
- なんだかヘッダファイルの上書きが出来ないっぽい
The following NEW packages will be installed: openjdk-9-jdk openjdk-9-jdk-headless{a} 0 packages upgraded, 2 newly installed, 0 to remove and 1 not upgraded. Need to get 0 B/345 kB of archives. After unpacking 831 kB will be used. Do you want to continue? [Y/n/?] Y Selecting previously unselected package openjdk-9-jdk-headless:amd64. (Reading database ... 916479 files and directories currently installed.) Preparing to unpack .../openjdk-9-jdk-headless_9~b114-0ubuntu1_amd64.deb ... Unpacking openjdk-9-jdk-headless:amd64 (9~b114-0ubuntu1) ... Selecting previously unselected package openjdk-9-jdk:amd64. Preparing to unpack .../openjdk-9-jdk_9~b114-0ubuntu1_amd64.deb ... Unpacking openjdk-9-jdk:amd64 (9~b114-0ubuntu1) ... dpkg: error processing archive /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_amd64.deb (--unpack): trying to overwrite '/usr/lib/jvm/java-9-openjdk-amd64/include/linux/jawt_md.h', which is also in package openjdk-9-jdk-headless:amd64 9~b114-0ubuntu1 Errors were encountered while processing: /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1) Failed to perform requested operation on package. Trying to recover:
強制上書きでインストール
- 参考サイトを参考に以下のコマンドでインストール出来た。
てか、aptitudeで強制上書きってどうやるんだろう・・・
# sudo apt -o Dpkg::Options::="--force-overwrite" install openjdk-9-jdk
デフォルトのjavaを変更
- まずはインストールされてるjavaを確認
# update-java-alternatives -l java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64 java-1.9.0-openjdk-amd64 1091 /usr/lib/jvm/java-1.9.0-openjdk-amd64
- デフォルトのjavaを変更
# sudo update-java-alternatives --jre-headless --jre -s java-1.9.0-openjdk-amd64
参考サイト
ChinaPostの追跡
- 最近Amazonで買い物をすると、中国から送られてくることがある。
物も安くて配送料も無料・・・
おいおい、スゲーな。
でもね〜、ちょっと遅いんすよ。
なかなか届かないので、心配になるわけですが、以下のサイトで追跡出来る。
いろんな配送業者に対応してるとの事。
便利じゃん
herokuコマンド
- 時々しか触らないからすぐ忘れちゃうんですよね・・・
herokuへログインする
- Terminalを開いてどこでも実行可
メールアドレスとパスワードを入力
# heroku login
Enter your Heroku credentials:
Email: xxx@yyy.zzz
Password: ***
herokuからログアウトする
# heroku logout
Local credentials cleared
無料分の残時間?を表示する
- デプロイしたアプリのディレクトリで実行
# heroku ps Free dyno hours quota remaining this month: xxxh yym (zz%)
修正したアプリをherokuへデプロイ
- デプロイしたアプリのディレクトリで実行
ビルドが成功すればOK
# git push heroku master
.
.
.
remote: BUILD SUCCESSFUL
.
.
herokuのヘルプを見る
# heroku help
crontabをファイルから読み込む方法
やり方
- crontabを特に引数無しでファイルを指定することで読み込めます。
直接編集は危険なので、別ファイルで管理することをお薦めします。
crontab xxx.txt
RASPBERRY PI ZERO W でLチカ
用意した物
- ピンヘッダを取り付けたラズパイは既にあります。 Amazonで購入。
どれもこれもたくさん入っていて、単純なLチカだと余ります
とは言え、Lチカセットみたいのを購入するより割安。皆で分けても良さそう- ブレッドボード
- ジャンパワイア
- LED
- 抵抗
5pcs SY-170 ミニブレッドボード カラフルブレッドボード [並行輸入品]
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
HiLetgo 40PCS デュポン ワイヤー ジャンパー ブレッドボード 接続ワイヤー (オス-メス)1P-1Pピッチ 2.54mm 長さ 20CM [並行輸入品]
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
HiLetgo 3mm LED ダイオード LED電子部品バッグ 5種類 各20pcs 合計100pcs [並行輸入品]
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
- メディア:
- この商品を含むブログを見る
Lピカ
- まず、お試しで、Lピカを・・・
奥側の一番右のピンが3.3v(常時通電)のピンなので、GPIO(23)に繋げたジャンパワイアをそこに差し替えてLEDが発光するかお試し。
うん、光りました。OKそう。
Lチカ
- 差し替えたピンを元に戻して・・・
- 以下のソースを記載したpyファイルを作成し、
sudo python xxx.py で実行する
import RPi.GPIO as GPIO import time pin_no = 16 GPIO.setmode(GPIO.BOARD) GPIO.setup(pin_no, GPIO.OUT) try: while True: GPIO.output(pin_no, True) time.sleep(0.05) GPIO.output(pin_no, False) time.sleep(0.05) GPIO.output(pin_no, True) time.sleep(0.05) GPIO.output(pin_no, False) time.sleep(0.75) except KeyboardInterrupt: pass GPIO.cleanup()