Eclipse が起動しない

以下のエラーで Eclipse が起動できない。

No Java virtual machine was found after searching the following locations: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/bin

~/eclipse/java-neon/Eclipse.app/Contents/Eclipse/eclipse.ini
のファイル中の以下の箇所を編集

-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/bin

編集後

-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/jre/bin

バージョンは以下のように確認

$ ls /Library/Java/JavaVirtualMachines/
jdk1.8.0_171.jdk
  • 参考: https://stackoverflow.com/questions/45090016/eclipse-no-java-virtual-machine-was-found-after-searching-the-following-locatio

git 特定コミット 差分

git show [コミットハッシュ]

nginxの設定

upstream aokiji_svr {
  server unix:/var/www/micoly-aokiji/shared/tmp/sockets/puma.sock fail_timeout=0;
}

server {
  client_max_body_size 4G;
  server_name mirumart.micoly.jp;

  root /var/www/aokiji/current/public;

  try_files $uri/index.html $uri.html $uri @app;

#  if ($http_x_forwarded_proto != https) {
#    return 301 https://$host$request_uri;
#  }

  # Set expires max on static file types (make sure you are using cache busting filenames or query params):
  location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|eot|mp4|ogg|ogv|webm)$ {
    expires 7d;
    access_log off;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    proxy_pass http://aokiji_svr;
  }

  location @app {
          auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_redirect off;

    proxy_pass http://aokiji_svr;
  }

    location = /healthcheck {
    access_log off;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    proxy_pass http://aokiji_svr/healthcheck;
  }

  # Rails error pages
  error_page 500 502 503 504 /500.html;
  location = /500.html {
    root /var/www/aokiji/current/public;
  }
}

Docker イメージを作るコツ

docker run -it centos:6 /bin/bashのように起動して-y-fなどを活用したり不要なログを抑えるようにcurl -swget -qを利用しながら作業コマンドをメモしていきうまく行ったらDockerfileにする。

RUNのあと&&で繋いて一つにまとめるとよい。←Dockerは各操作ごとにレイヤーを作り、それらイメージの集合体のイメージを利用することになる。

失敗したら、exitしてrunからやり直すか、うまくいくところまででいったんexit&docker commitして続きからやり直すと良い。

一連のコマンドのどこで失敗したかを標準エラー出力するようにRUNからset -xにつながて記述していっても良い。

http://qiita.com/pottava/items/452bf80e334bc1fee69a
http://wazanova.jp/items/1454
http://docs.docker.jp/engine/articles/dockerfile_best-practice.html

docker buildでは実行ディレクトリにあるファイルやディレクトリをすべて含める形で実行されてしまう → .dockerignoreの活用

デーモンプロセスにする

$ commond &

Brewfile 自動生成

brew tap Homebrew/bundle
brew bundle dump

パブリックIP取得

curl inet-ip.info

公開鍵取得

https://github.com/hayashier.keys

Vim補完が利かない

Vim補完が利かず、Tabを押すと以下のようなエラー。

_arguments:451: _vim_files: function definition file not found

.zcompdumpというzshの補完ファイルのダンプファイルを消去してログインシェルとして入る。

rm ~/.zcompdump
exec $SHELL -l

http://qiita.com/Asuforce/items/28b287fdb933d1985e15

サーバに秘密鍵を置かないでデプロイ

Capistranoで Permission denied (publickey) のエラー

cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as ec2-user@52.198.214.152: git exit status: 128
git stdout: Permission denied (publickey).
fatal: Could not read from remote repository.

解決策

1. (※) ローカルでSSH agentを立ち上げ秘密鍵の登録

$ eval "$(ssh-agent -s)" 
Agent pid XXXX
$ ssh-add ~/.ssh/id_rsa
Identity added: /Users/xxxxx/.ssh/id_rsa (/Users/xxxxx/.ssh/id_rsa)
$ ssh-add -l
2048 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /Users/xxxxx/.ssh/id_rsa (RSA)

2. Capistranoでforward_agentの設定

ENV[‘DEPLOY_PROUDCTION_KEY’]は秘密鍵のパス

set :ssh_options, {
  keys: ENV['DEPLOY_PROUDCTION_KEY'],
  forward_agent: true
}

3. (※) GitHubにpullする対象となるレポジトリに公開鍵を登録する。

  1. プロジェクトのトップページ(https://github.com/<レポジトリ名>/<プロジェクト名>)で
    SettingsからDeploy keysを選択。

  2. [add deploy key]を選択して、TitleにGitHub上のDeploy keysで表示される識別名(なんでもいい)を入力し、keyに公開鍵の中身(cat ~/.ssh/id_rsa.pubしたもの)を入力する。

Docker: ERROR: for app No such image: sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ERROR: Encountered errors while bringing up the project.

docker-compose rm
Going to remove xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx
Are you sure? [yN] y
Removing xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx_xxxxxxxxxxxx ... done

参考

https://github.com/docker/compose/issues/1113

DockerでIPアドレス出力

$ docker-machine ip
192.168.99.100

DockerでNode.js

fucking debian installs node as nodejs

RUN update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

を追加する必要がある。

FROM ubuntu:14.04
RUN apt-get update -y
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs npm build-essential

RUN update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

RUN rm -rf /var/www/*
ADD src /var/www

WORKDIR /var/www
RUN npm install

RUN chown -R www-data:www-data /var/www
EXPOSE 3000
CMD ["node", "index.js"]

gitのリモートのブランチの確認と削除

リモートブランチ 確認

git branch -a

リモートブランチ 削除

git branch -d delete-branch
git push origin :delete-branch

タグの切り替え

$ git tag
2016-10-10
2016-10-12

$ git checkout -b temp-branch refs/tags/2016-10-10
$ git checkout master

ファイルの容量を調べる

sudo du -gxd 5 / | awk '$1 >= 5{print}' 

http://korechi.hatenablog.com/entry/2015/11/16/121827

pod set upができない

CocoaPodsの導入でpod set upできない時

$ rbenv exec pod setup              
Setting up CocoaPods master repo
[!] ERROR: Parsing unable to continue due to parsing error:
contained in the file located at /Users/shogo/.cocoapods/repos/master/CocoaPods-version.yml
---
min: 0.32.1
last: 1.1.0.rc.2

解決方法

YAML.load functionの問題

rbenv exec gem uninstall psych
rbenv exec gem install psych -v 2.0.0

全体 

rm -Rf  ~/.cocoapods
sudo gem install cocoapods
rbenv exec gem uninstall cocoapods
rbenv exec gem update
rbenv exec gem uninstall ruby
rbenv exec gem install cocoapods
rbenv exec gem install ruby
rbenv exec gem uninstall psych
rbenv exec gem install psych -v 2.0.0
$ rbenv exec pod setup               
Setting up CocoaPods master repo

CocoaPods 1.1.0.rc.2 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.1.0.rc.2

Setup completed

参考

https://github.com/CocoaPods/CocoaPods/issues/2908

docker pull php:5.6-apache でフリーズする問題

docker pull php:5.6-apache
5.6-apache: Pulling from library/php
6a5a5368e0c2: Already exists 
de059afc6b5d: Already exists 
9b1ac0143753: Already exists 
a05dcf7da589: Already exists 
5e38500c0906: Waiting 

以下のようにして解決

docker-machine stop default
docker-machine ls
docker-machine start default

参考

http://qiita.com/t-mochizuki/items/d8d5af2b2d322a3ce84a

Docker の image を最新版にする


docker pull php:5.6-apache


client is newer than server


Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.23)

docker-machineのバージョンがdockerのバージョンより古い。
以下を実行する。

bash
docker-machine upgrade default


参考

http://qiita.com/hidekuro/items/23dcafe6393e5f0d5791

Vagrant 注意点

Default pass: vagrant

default: Warning: Authentication failure. Retrying…でvagrant upしない


$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

/home/vagrantのパーミッションが不適切なので変更(sshの仕様)

vagrant ssh
cd /home
chmod 755 -R ./vagrant

参考

http://qiita.com/jshimazu/items/9db49ce64478e82d511e

#Android どの程度@NonNull,例外をつけるか
そのクラスを使用する人がどこまで信用できるか
http://techlife.cookpad.com/entry/2015/02/20/195000

Docker composeの設定

Dockerfile
docker-compose.yml
docker-ext - apache-config.conf
            - httpd.conf
            - php-5.6.ini
FROM php:5.6-apache

RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/2.2.7.tar.gz \
      && tar xfz /tmp/redis.tar.gz \
      && rm -r /tmp/redis.tar.gz \
      && mv phpredis-2.2.7 /usr/src/php/ext/redis \
      && docker-php-ext-install redis

RUN usermod -u 1000 www-data \
    && groupmod -g 1000 www-data

RUN echo 'date.timezone = Asia/Tokyo' >> /usr/local/etc/php/conf.d/99_myconf.ini
RUN echo 'error_reporting = E_ALL' >> /usr/local/etc/php/conf.d/99_myconf.ini

RUN apt-get update
RUN apt-get install -y ruby ruby-dev libmysqlclient-dev mysql-client libpng12-dev libjpeg-dev
RUN apt-get install -y libmagickwand-dev

RUN docker-php-ext-configure gd --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j $(nproc) gd
RUN pecl install imagick
RUN docker-php-ext-install pdo_mysql mbstring
RUN docker-php-ext-enable imagick

RUN a2enmod rewrite

RUN gem install ridgepole
RUN gem install activerecord-mysql-awesome

WORKDIR /var/www/micoly
USER root

EXPOSE 80

# Update the default apache site with the config we created.
ADD docker-etc/apache-config.conf /etc/apache2/sites-enabled/000-default.conf
web:
  build: .
  ports:
    - "80:80"
  volumes:
    - .:/var/www/micoly
  links:
    - db
    - redis
db:
  image: mysql
  environment:
    MYSQL_ROOT_PASSWORD: root
redis:
  image: redis
<VirtualHost *:80>
#ServerName www.example.com

# ServerAdmin webmaster@localhost
DocumentRoot /var/www/micoly/public

<Directory /var/www/micoly/public>
   Options FollowSymLinks
   AllowOverride All
   Require all granted
   SetEnv FUEL_ENV development
</Directory>

ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

“`httpd.conf
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf

User apache
Group apache

ServerAdmin root@localhost
ServerName 127.0.0.1

ServerSignature Off
ServerTokens Prod

<Directory />
#Options None
AllowOverride None
Require all denied
</Directory>

DocumentRoot "/var/www/micoly"
<Directory "/var/www/html">
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>

<Directory "/var/www/micoly">
Options FollowSymLinks
AllowOverride All
Require all granted
SetEnv FUEL_ENV production
</Directory>

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

<Files ".ht*">
Require all denied
</Files>

ErrorLog "logs/error_log"
LogLevel warn

<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

<pre><code><IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>

CustomLog "logs/access_log" combined
</code></pre>

</IfModule>

<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

</IfModule>

<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>

<IfModule mime_module>
TypesConfig /etc/mime.types

<pre><code>AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</code></pre>

</IfModule>

AddDefaultCharset UTF-8

<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

EnableSendfile on

IncludeOptional conf.d/*.conf

<pre><code><br /><br /><br /># Dockerでマウントしたファイルの権限が問題になった時

</code></pre>

Warning: touch(): Utime failed: Permission denied

<pre><code><br />Apacheの設定とディレクトリの権限の違いなので、Dockerfileに以下を追記

</code></pre>

RUN usermod -u 1000 www-data \
&& groupmod -g 1000 www-data

<pre><code><br />## 参考

http://qiita.com/suin/items/3a0361102af83d0b69aa

その他
http://qiita.com/s0hno/items/3ac527d749a91e293ed9
http://sessan.hatenablog.com/entry/2016/04/30/225316

# DockerでPHPモジュールのインストールが詰まった
Dockerfileに以下を追記

## gd

</code></pre>

RUN apt-get install -y libpng12-dev libjpeg-dev
RUN docker-php-ext-configure gd –with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j $(nproc) gd

<pre><code><br />## ImageMagick

</code></pre>

RUN apt-get install -y libmagickwand-dev
RUN pecl install imagick
RUN docker-php-ext-enable imagick

<pre><code><br /># スーパーユーザーから別のユーザーにログインできない

“`bash
$ su – www-data
This account is currently not available.

$ usermod -s /bin/bash www-data
$ su - www-data

scp -i <秘密鍵>でNot a directoryが出るエラー

-iオプションはscpコマンド直後に置く

scp -i ~/.ssh/id_rsa_micoly_production ec2-user@52.192.160.17:~/schema_dump_20160826.sql .

インフラエンジニアとしてよく使うコマンド集

http://qiita.com/sion_cojp/items/04a2aa76a1021fe77079?utm_content=buffer5c76e&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

historyコマンドをlessコマンドで遡る

history | less

対象の行番号を削除する

history -d 4980

秘密鍵の情報変更

$ ssh-keygen -p

vimでPHPのLintツールの導入(PSR-2)

NeoBundleのインストール

$ mkdir -p ~/.vim/bundle
$ git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim

.vimrc.を以下のように編集する

set nocompatible
filetype off
if has('vim_starting')
    set runtimepath+=~/.vim/bundle/neobundle.vim
    call neobundle#begin(expand('~/.vim/bundle/'))
    NeoBundleFetch 'Shougo/neobundle.vim'
        " */* : repos on github (git://github.com/*/*.git)
        NeoBundle 'scrooloose/syntastic'
    call neobundle#end()
endif
filetype plugin indent on
filetype indent on
syntax on

プラグインの有効化

vimのコマンドラインモードで:NeoBundleInstallを実行して有効化する。
無効化は、.vimrcで該当プラグインを削除してから:NeoBundleCleanを実行する。

参考

http://tm.root-n.com/unix:command:vim:plugin:neobundle

GitHub conflict解消

git fetch origin
git checkout develop
git pull origin develop
git checkout new-branch
git merge develop
(コンフリクトが起きるので修正)
git push [-f] origin new-branch

PHP 設定確認

php -r 'phpinfo();' | grep upload_max_filesize

ヘルスチェック

「そのヘルスチェックでどこの範囲の正常性を担保するか」

方法

1. 静的ファイル
    /healthcheck/check.htmlのような静的なファイルを置く
2. 動的ファイル

<?php
    echo "ok";

3. 動的ファイル
  トップページ

参考

http://blog.xcir.net/?p=1811

SSHでホストが変わった時の接続

ssh-keygen -R <ホスト名>

(参考)https://www.uramiraikan.net/Works/entry-1970.html

MacにNode.jsを入れる

http://arfyasu.hatenablog.com/entry/2016/01/26/212543

nvm ls-remote
        v0.1.14
        v0.1.15
            …
         v6.2.1
         v6.2.2

UbuntuでNode.jsを最新版にする(v.6.2.2)

apt updateの最新版だと

node -v
v0.10.46
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
v6.2.2

GitHubに間違ってcommitしたものをpushしたとき

$ git rebase -i HEAD~4
//対象のコミットを消す
$ git push -f origin master

GitHubにSSH

$ cd ~/.ssh
$ ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.
# Enter file in which to save the key (/Users/you/.ssh/id_rsa): github_id_rsa(ここは任意)
Enter passphrase (empty for no passphrase): (ここも任意)
# Enter same passphrase again: (ここも任意)
$ ssh-add ~/.ssh/id_rsa

ssh-addでエラーが出る

Could not open a connection to your authentication agent.

以下のコマンドを打つ。

eval `ssh-agent`

別途対処法

git remote -v
git remote set-url origin git://github.com/YourDirectory/YourProject.git

パス設定

$ vi ~/.bashrc

export PATH=/usr/local/bin:$PATH
alias sudo="sudo env PATH=$PATH"

git管理下からレポジトリ外で.gitignore管理

home直下に.gitignoreを置いて以下を記述する

.DS_Store
*~
*.swp

.gitconfigで先ほどの.gitignoreファイルをexcludesfileを指定する

[core]
    excludesfile = ~/.gitignore

iOS: Unknown error calling sqlite3_step (11: database disk image is malformed) eu

一旦アプリを消して入れ直す。

iOS: TableViewとCustomセルの実装

  1. UITableViewDelegate, UITableViewDataSource を追加。

  2. StoryBoardからドラッグしてdataSourceとdelegateの関連付けをして、viewDidLoad()に以下を追加。

homeTableView.dataSource = self
homeTableView.delegate = self

self.view.addSubview(homeTableView)

3.tableViewの各種メソッドを追加。

http://yuu.1000quu.com/use_a_custom_cell_in_swift

iOS: タブバーの実装

TabBarControllerを作って、以下を記述。

homeView = Utility.makeViewController(storyboardName: "Home", storyboardId: "main") as! HomeViewController
applicationView = ApplicationViewController()
nailView = NailViewController()
mypageView = MypageViewController()

homeView.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.featured, tag: 0)
applicationView.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.featured, tag: 1)
nailView.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.featured, tag: 2)
mypageView.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.featured, tag: 3)

let myTabs = Array(arrayLiteral: homeView!, applicationView!, nailView!, mypageView!)
self.setViewControllers(myTabs, animated: false)

各ViewControllerに以下のように記述。

self.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.featured, tag: 0)

iOS: Code Sign error : Command /usr/bin/codesign failed with exit code 1が出た時の対処

bundle format unrecognized, invalid, or unsuitableというエラーもTraceに出ており、プロジェクトにResourcesというディレクトリを作っていたことが原因。

http://stackoverflow.com/questions/29271548/code-sign-error-bundle-format-unrecognized-invalid-or-unsuitable

iOS: Bridging HeaderからObjective-Cファイルが読み込めない

Build SettingsでPackaging > Defines ModuleをYesにする。

http://takerpg.hatenablog.jp/entry/2014/12/02/223702

XCTestでUse of undeclared type 'Todo' does not have a member named 'todo'のエラーが出てたときの対処

@testable import <プロジェクト名>

の追加のし忘れかも。

http://yanamura.hatenablog.com/entry/2014/12/27/150454

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です