W: http://dl.google.com/linux/chrome/deb/dists/stable/Release の取得に失敗しました

現象

Ubuntu14.04でapt-get updateしたら下記メッセージが出た。

W: http://dl.google.com/linux/chrome/deb/dists/stable/Release の取得に失敗しました  期待されるエントリ 'main/binary-i386/Packages' が Release ファイル内に見つかりません (誤った sources.list エントリか、壊れたファイル)

apt-get upgradeでも出る。

W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages)
W: これらの問題を解決するためには apt-get update を実行する必要があるかもしれません

解決方法

パッケージのソースリストから削除するか、コメントアウトするかで直る。

削除

sicklylife.hatenablog.com

コメントアウト

apt - duplicate source list entry - Ask Ubuntu

コドモはオトナの父

コドモは空や雲を見るだけで、宇宙や別世界を感じてしまう。 その想像力と創造力はオトナは到底及ばず、またオトナになると風船がしぼむように減ってしまう。

オトナが音楽や絵で感動する事など、そういった趣味の領域はコドモとしての部分でつくられる。

だが、オトナの世界にはコドモ部分は必要ない。 ビジネスはオトナの部分で成立している。

しかし、人生を豊かに彩るのは主にコドモの心である。 自分の中のコドモを消さないよう、大切に育て続けてほしい。

以上、何かで読んで感じ入った事を書いた。

Androidログライブラリ orhanobut/logger を試す

デフォルトのLogクラスは気が利かないので、 いいライブラリを探してたらこんなの見つけた。

github.com

2016/10/23時点でスター数4835

信頼ありそう!

さっそく使ってみよう。

まずはbuild.gradleに追加

dependencies {

    compile 'com.orhanobut:logger:1.15'

出力させてみよう Loggerクラスからdメソッドで色々渡してみる

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_scrolling);

        Logger.d("Test comment");

        putLog();
    }

    private void putLog() {
        Logger.e(new Exception(),"エラー");
        putJsonLog();
        putTagLog();
    }

    private void putJsonLog() {
        Logger.json("{\"date\":\"10月23日(日)\",\"temperature\":\"32℃[+1] 28℃[-1]\",\"wave\":\"2メートル後1.5メートル\",\"weather\":\"晴後雨\",\"wind\":\"南西の風後北の風\"}");
    }

    private void putTagLog() {
        Logger.t("TAG").d(this.getClass().getCanonicalName());
    }
}

出力させた結果

f:id:banbara:20161023112301p:plain

  • 線でログを囲ってくれる
  • メソッドの階層まで出る
  • jsonは自動整形してくれる

線で囲ってくれるのは個人の好みに別れるところですな 俺は気にならないし、見やすいと思うね

少し気に入ったので暫く使ってみよっと

あ、作ったサンプルはGithubにあげたよ GitHub - banbara23/Android-logger-sampe

generate sigend apkでError: Expected resource of type string [ResourceType]

アプリをリリースしようとgenerate sigend apkを実行すると、以下のエラーが出てきた。

Information:Gradle tasks [:app:assembleRelease]
/パス/Fragment$$ViewBinder.java
  Error:(53) Error: Expected resource of type string [ResourceType]
Information:1 error
Information:0 warnings
Information:See complete output in console

解決方法

このリンクによると... stackoverflow.com

以下をapp/build.gradleに追加する

android {
  lintOptions {
    disable "ResourceType"
  }
}

エラー消えました、解決!

Information:Gradle tasks [:app:assembleRelease]
Information:BUILD SUCCESSFUL
Information:Total time: 38.194 secs
Information:0 errors
Information:0 warnings
Information:See complete output in console

MacにJava8をインストール

Android Studio2.1.3にアプデし、compileSdkVersion=24にしてビルドしたところ

# Gradle Console

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

とエラーになりビルドに失敗した。

Java8をインストールせよ、というのだ。

Java8インストール手順

  1. Java SE - Downloads | Oracle Technology Network | Oracle
    からjdk-8u101-macosx-x64.dmgを取得
    JREじゃなくJDK
  2. jdk-8u101-macosx-x64.dmgを起動してインストール
  3. terminalから以下のコマンドでjava8になってれば完了
$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

古いJavaを消す

j以下のパスに古いJavaがあるので、jdk1.7.0_71.jdkのみを消した

drwxr-xr-x  3 root  wheel   102B  7 15  2015 1.6.0.jdk
drwxr-xr-x  3 root  wheel   102B 11  2  2014 jdk1.7.0_71.jdk

1.6.0.jdkは使うので残した。

UbuntuでAndroidのスクリーンショットを日付ファイル名で保存したい

毎度忘れるのでブロクに記録しておく

まず以下のシェルスクリプトを作成
今回はファイル名をscreenshot.shとした

#!/bin/bash

DATE=`date +"%Y-%m-%d-%H-%M-%S"`
FILENAME="s-${DATE}.png"
echo "capturing ${FILENAME}..."
adb shell screencap -p "/sdcard/${FILENAME}"
adb pull /sdcard/"${FILENAME}" ~/Pictures/
adb shell rm "/sdcard/${FILENAME}"
echo "saved ${FILENAME}."

次に.bashrcにでもaliasを作る

.bashrc

alias sshot="~/tools/screenshot.sh"

保存したらsourceを忘れずに

source .bashrc

あとはターミナルから

sshot

と実行すれば、Picturesディレクトリ内に日付ファイル名でスクショが保存される。

s-2016-08-02-10-35-46.png
s-2016-08-02-10-36-04.png

RaspberryPi3ド素人が初めてのLチカ

抵抗って何?というレベルのド素人が、
Lチカまで到達できたので嬉しさのあまり記録

配線

こんな感じ
f:id:banbara:20160725234107j:plain

python

ラズパイのターミナルに

$ python

と打ち込むと対話型モード(インタラクティブモード)となり、1行毎にプログラムを実行できる

以下、1行ずつ入力orコピペで実行

import RPi.GPIO as GPIO       //RPi.GPIOモジュールを取り込み
GPIO.setmode(GPIO.BCM)        //GPIOの端子の選び方の選択
LED1 = 5                      //GPIOを選ぶ、GPIO5をLED1にする
GPIO.setup(LED1, GPIO.OUT)    //LED1を出力、GPIO端子をGPIO番号で選択
GPIO.output(LED1, GPIO.HIGH)  //LED1をHIGH(+3.3V)にする、HIGHになるとLED1に電流が流れてLED1が点く
GPIO.output(LED1, GPIO.LOW)   //LED1をLOW(0V)にする、LOWになるとLED1に電流が流れなくなりLED1が消える
GPIO.cleanup()                //GPIOの設定を消す、忘れると次に使う時にGPIOが使えなくなる事あり

//Pythonを終わる時は
exit()


感想

試行錯誤しながら無事にLチカできた!
たかがLEDライト1つ光っただけで、こんなに感動するとは思わなかった(笑)


参考サイト

自分はtechshareのkitを買ったので、配線とpythonプログラムはtechshareのサイトを参考にした。
でも誤字があるので要注意(最後のcleanup(がcleanuoになってる)
対話型モード(インタラクティブモード)

また、電子工作ド素人の自分には部品の説明が必要だったので、以下のサイトが分かりやすかった
テックシェアストア(TechShareStore)

電子工作たのしいねー!