WordPressからhugoに移行

2017/07/17

hugo

1年前くらいから移行放置気味だったWordPressからhugoに完全移行✌(‘ω’)✌

Android Projectの詳細を取得する

2016/07/12

Android gradle Scala

buildフォルダを探索して依存ライブラリやクラス一覧を取得するコードを書いていたのですがbuildVariants周りがややこしいためAndroid Projectの構造を取得するためのサンプルコードを書きました。 Android Projectの構造はbuilder-mode-2.1.2.jarの中にあるAndroidProjectが保持しています。 GradleConnectorAndriodProjectクラスを指定するとビルド生成物の出力先や依存ライブラリやsigningConfigなどのbuild.gradleに書かれている情報が取得できます。 詳しくはandroid-project-connect-exampleAndroidGradleConnectorSpec.scalaを参照してください。

Memo: A URL list of Android related repositories

2016/07/07

Android

Androidのtool寄りのコードを書くようになったのでメモ。 git cloneしたらめっちゃHDD容量持っていかれる。

ちなみにandroid.googlesource.co以下のrepositoryリストは以下のURLから取得可能です。 https://android.googlesource.com/?format=TEXT tagと日付を表示するワンライナー
git tag -l | while read -r tag ; do COMMIT_HASH=$(git rev-list -1 $tag) && GIT_COMMITTER_DATE=“$(git show $COMMIT_HASH –format=%aD | head -1)” && echo $tag $GIT_COMMITTER_DATE; done

参考

http://stackoverflow.com/a/25939259/2306073

Angular2 + TypeScript + webpackでmoduleを読み込んでくれない

2016/02/07

TypeScript Angular2 webpack

以下のようなエラーが出てwebpack –progress –profile –colors –display-error-details –display-cachedでbuildが出きなかった。

ERROR in /Users/epy0n0ff/git/github.com/epy0n0ff/angular2-typescript-webpack/src/top/top.component.ts
(1,25): error TS2307: Cannot find module ‘angular2/core’.
ERROR in ./src/main.ts
(1,28): error TS2307: Cannot find module ‘angular2/platform/browser’.
tsconfig.jsonの項目不足で“moduleResolution”: “node”compilerOptionsに追加してやるとnode_modulesから読み込んでくれるようになった。

参考

Goなプロジェクトで使うCircleCIのcircle.yml

2016/01/27

CircleCI Go Golang

も少し綺麗にしたい(´・ω・`)

  • checkout:cd $HOME && git clone …しているだろうと思って$HOMEを弄ってみたが撃沈
  • pwd:test:では使えないので撃沈

machine:
  timezone: Asia/Tokyo
  environment:
    GO15VENDOREXPERIMENT: 1
    VCS : "github.com"
    REPO_ROOT: "${HOME}/.go_workspace/src/${VCS}/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}"
dependencies:
  pre:
    - go get -u github.com/tools/godep
    - go get -u github.com/golang/lint/golint
checkout:
  post:
    - mkdir -p ${REPO_ROOT}
    - cp -rf ${HOME}/${CIRCLE_PROJECT_REPONAME} ${HOME}/.go_workspace/src/${VCS}/${CIRCLE_PROJECT_USERNAME}/
test:
  pre:
    - cd ${REPO_ROOT} && godep restore
    - cd ${REPO_ROOT} && for package in `go list ./...| grep -v vendor`; do golint ${package}; done
    - cd ${REPO_ROOT} && go vet ./...
  override:
    - cd ${REPO_ROOT} && godep go test -cover -bench -benchmem `go list ./... | grep -v /vendor/` -v

A Tour of Go終わった人がGo言語を学ぶために読むといいリポジトリ(暫定)

2016/01/22

Go Golang

Let's EncryptをGoで使う

2016/01/07

Go Golang

Let’s EncryptをGoで使う

Let’s EncryptのClientをcloneして証明書の発行を行います。今回はstandaloneかつport443でclientを起動して証明書を取得します。 yourdomainの部分は自分のドメインに置き換えてください。

$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto certonly --standalone --standalone-supported-challenges tls-sni-01 -d yourdomain

証明書の発行が完了すると/etc/letsencrypt/archive/yourdomain配下に*.pemファイルが生成されます。 Goのnet/httpを使って書くと以下のようになります。

package main
import (
        "fmt"
        "log"
        "net/http"
)
func main() {
        http.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) {
                w.Header().Add("Content-Type", "text/html; charset=UTF-8")
                fmt.Fprint(w, "
It works!")
        })
        err := http.ListenAndServeTLS(":80", "/etc/letsencrypt/archive/yourdomain/fullchain1.pem", "/etc/letsencrypt/archive/yourdomain/privkey1.pem", nil)
        if err != nil {
                log.Fatal(err)
        }
}

参考

CircleCIを使ってAndroidのテストを実行する

2015/11/18

Android gradle CircleCI

プライベートなリポジトリはdroneioでコンテナ作ってビルドから通知までやっていました。 GitHubのリポジトリは折角なのでCircleCIで回すことにしました。 その時に罠があったので紹介します。

cache_directoriesの罠

以下のように記載してました。

dependencies:
  cache_directories:
    - $ANDROID_HOME/platforms/android-23
    - $ANDROID_HOME/build-tools/23.0.1
    - $ANDROID_HOME/extras/android
    - $ANDROID_HOME/extras/google

$ANDROID_HOME/usr/local/android-sdk-linuxと展開されると期待したら、以下のようなwaringが出ていました。

Warning: circle.yml specified cache directories: /home/ubuntu/android-ci/$ANDROID_HOME/build-tools/23.0.1, /home/ubuntu/android-ci/$ANDROID_HOME/extras/google, /home/ubuntu/android-ci/$ANDROID_HOME/platforms/android-23, /home/ubuntu/android-ci/$ANDROID_HOME/extras/android but they don’t exist
/から始まるものでないと絶対パスとして扱われない…?罠過ぎる。 変数展開を期待してダブルクォーテーションで囲ってみたが相対パス扱いのままだったのでベタ書きすることにしました。 またandroid list sdk -u -a -eでupdate sdkに使うパッケージ名を出すことができます。 GitHub android-ci

参考

LIVA PCにCoreOSインストール

2015/10/05

CoreOS ECS LIVA

UbuntuをUSBにインストール

sudo dd if=ubuntu-14.04.3-desktop-amd64.iso of=/dev/disk3 bs=1m

UbuntuからCoreOSをインストール

F2を押してgnome consoleと入力して端末を開きます。 あとは参考に記載したQiitaと同じようにコマンドを入れてインストールを完了させます。

wget https://raw.githubusercontent.com/coreos/init/master/bin/coreos-install
chmod 755 coreos-install
sudo ./coreos-install -d /dev/mmcblk0 -C stable

あとはsudo shutdown -h nowの後USBをを抜いて起動するとCoreOSが立ち上がってきます。

autologinを一時的有効

cloud-config.ymlを指定せずにインストールしたでsshも何もできません。 Deleteキーを押したまま起動するとGNU GRUBのメニューが出るので一番上のCoreOS defaultをEキーで編集します。 if内のコマンドの一番最後にcoreos.autologinを追記してF10キーを押せばCoreOS起動後にログイン状態になります。

cloud-config.ymlを設定

sodo vim /usr/share/oem/cloud-config.ymlで以下のような設定を記載します。

#cloud-config
write_files:
  - path: /etc/systemd/network/static.network
    content: |
      [Match]
      Name=enp3s0
      [Network]
      Address=192.168.xxx.xxx/24
      Gateway=192.168.xxx.xxx
      DNS=192.168.xxx.xxx
ssh_authorized_keys:
  - ssh-rsa AAA

あとはrebootしてやればsshで繋げれるようになります。

参考