読者です 読者をやめる 読者になる 読者になる

suer のブログ

メモメモ. はてダ → http://d.hatena.ne.jp/suer/

systemctl enable コマンドで Failed to execute operation: Invalid argument が出た

環境 CentOS 7.3 現象 # systemctl enable サービス名 Failed to execute operation: Invalid argument 原因 systemctl enable コマンドで /etc/systemd/system/multi-user.target.wants/サービス名.service にシンボリックリンクが張られるが、間違えてファ…

ポートの疎通確認のために代わりのプロセスを立ち上げる

CentOS 6 から 7 に移行するために、firewalld の練習をしている。 特定のポートを開ける設定を行い、疎通確認をしたいので CentOS 7 に大抵入っている Pyhon を使って確認用のプロセスを立ち上げる。 環境 CentOS 7.3 Python 2.7.5 立ち上げる Python 2 系…

Rails アプリの wercker docker 対応で PostgreSQL の対応

Wercker からマイグレーションせよというメールが来たので対応してみた - mallowlabsの備忘録 を参考に wercker のマイグレーションを実施した。 こちらの記事では MongoDB の例だったので、PostgreSQL の場合はどうするのかと調べた。 結論としては box: ru…

Mac OS X 環境でコマンドラインで Exif から Orientation を消す

画像ファイルで Exif はあるけど Orientation が無い、という特殊なテストデータが必要になったので。 環境 Homebrew 0.9.5 exiftool のインストール $ brew install exiftool Orientaiton を消す $ exiftool -Orientation= XXX.jpg

サブディレクトリ運用の複数の Redmine で別の Redmine にアクセスすると勝手にログアウトするのを防ぐ

確認したバージョン Redmine 2.6.9.stable 問題 Redmine は _redmine_session という Cookie でログイン状態が管理されていてる。 Redmine では、何もしないとパスが "/" で登録されるので、実際に異なるパスの Cookie データでも、同じとみなされてしまう。…

タブ文字で grep する

test(タブ文字) みたいなのを grep したい場合。 ターミナル $ grep "test(タブ文字)" /path/to/file のように入力したいが、普通に入力するとシェルがタブ文字を奪う。 bash, zsh の場合は ctrl-v を入力してからタブを打つと入力される。 ただし、これはメ…

Java の .class ファイルを一括で逆コンパイルする

環境 Jad v1.5.8g. jad のインストール Mac OS X で Homebrew の場合 $ brew install homebrew/binary/jad 逆コンパイル classes 以下に展開されているとすると、以下のコマンドで src ディレクトリ以下に .java ファイルとして一括で逆コンパイルできる。 $…

Zendesk で独自ドメインのサポートアドレスを使用する設定の SPF レコードチェックでエラーが出た

Zendesk のサポートアドレスに独自ドメインを使用する場合は SPF レコードに mail.zendesk.com を指定すると、メールから Zendesk という文字が消えるので顧客は Zendesk を意識せずにサポートを受けることができる。 自社のメールドメインを使用してメール…

シェルスクリプトで find の結果で回すときに空白文字が含まれるファイル名が含まれる場合の対処

IFS を改行のみにしておくとよい。 IFS=$'\n' for file in $(find /path/to/directory -name "*.txt"); do echo "$file" done

SimpleSAMLphp で開発用の SAML ID Provider を立てる

SAML によるシングルサインオンに対応したアプリを作るときに、開発環境としてお手軽に試せる ID Provider があると便利なので、SimpleSAMLphp でタダで作る。 OneLogin のアカウントを持っている場合は、 "SAML Test Connector (IdP)" を使えば簡単に作れる…

Atom の Markdown Preview の中国語フォントを日本語フォントにする

環境 Atom 1.1.0 GitHub.com のスタイルに変更 Packages > Settings View > Open (もしくは ctrl+ ,) packages タブから markdown-preview を検索して Settings ボタンをクリック Use GitHub.com style をチェック プレビューのフォントを変更 Packages > Se…

CentOS 5 32bit で fluent-agent-hydra を無理やり動かす

環境 CentOS 5.5 (Linux kernel 2.6.18) Go 1.4.2 fluent-agent-hydra v0.1.3 問題 Go は CentOS 5 をサポートしていないせいか、 CentOS 5 32bit (Linux kernel 2.6.18) 上で fujiwara/fluent-agent-hydra · GitHub の32bit バイナリを動かすと以下のエラー…

Mac OS X Yosemite で Font Awesome の PNG ファイルを作る

環境 Mac OS X Yosemite 10.10.3 Homebrew 0.9.5 Font-Awesome-SVG-PNG 1.1.5 参考 encharm/Font-Awesome-SVG-PNG · GitHub 手順 必要なパッケージのインストール $ brew install node npm librsvg librsvg の link がうまくいかなかった旨のメッセージが出…

Ivy で SNAPSHOT リポジトリの最新版を取得する方法

Ivy はデフォルトだと同じ名前の jar ファイルはローカルにキャッシュしたものを優先するので、SNAPSHOT リポジトリと相性が悪い。 ivysetting.xml で checkmodified を指定して、毎回確認するように変更する。 <ivysettings> <property name="ivy.checksums" value=""/> <settings defaultResolver="chained"/> <resolvers> <chain name="chained" returnFirst="true" changingPattern=".*SNAPSHOT"> …</chain></resolvers></settings></property></ivysettings>

Archive するたびに Splunk Mint (旧 Bugsense) に自動で dSYM ファイルをアップロードする

ios

追記: この記事は古い情報です。現在この記事の方法ではアップロードできません。 最新の SplunkMint-iOS をインストールし、以下の記事に従って設定してください。(ただし、アーカイブ時ではなくビルド時にアプロードされます) Configure your project for …

ステータスバーの文字色を白くする

ios

環境: iOS SDK 8.1 ナビゲーションバーの背景色を変更すると、デフォルトではステータスバーの時刻とかバッテリー残量表示の文字が見づらくなる。 背景色にあった文字色に変更する。 手順 info.plist に以下の行を追加 View controller-based status bar app…

Swift でクラス名の取得

ios

環境: Swift version 1.1 (swift-600.0.56.1) NSStringFromClass を使用すると、 "プロジェクト名.クラス名" という文字列が取得できる。 class TestClass {} NSStringFromClass(TestClass().dynamicType) NSStringFromClass(TestClass)

UITableView をスクロールさせない

ios

環境: iOS SDK 8.1 tableView.scrollEnabled = false

MagicalRecord でシミュレータ実行時に作成された sqlite のデータベースファイルを探す

ios

環境: iOS SDK8.1 MagicalRecord で MagicalRecord.setupCoreDataStackWithAutoMigratingSqliteStoreNamed("database.sqlite") のように実行した場合、シミュレータでは ~/Library/Developer/CoreSimulator/Devices/デバイスID 以下に作成される。 デバイス …

UITextField のテキストが変更される時のイベント

ios

環境: iOS SDK 8.1 textField.addTarget(self, action: Selector("textChanged:"), forControlEvents: .EditingChanged) func textChanged(textField: UITextField) { println(textField.text) }

iOS で下バーでタブみたいなやつ

ios

環境: iOS SDK 8.1 こういうやつ UITabBarController を使う。 let controller1 = UIViewController(nibName: nil, bundle: nil) controller1.tabBarItem = UITabBarItem(tabBarSystemItem: .Favorites, tag: 1) let controller2 = UIViewController(nibName…

Swift で Objective-C の @synchronized

環境: Swift version 1.1 (swift-600.0.56.1) クリティカルセクションを作りたいとき、Objective-C の場合は @synchronized(obj) { ... } となるところを Swift の場合は objc_sync_enter(obj) ... objc_sync_exit(obj) とする。 exit 漏れが怖いのでラップ…

shenzhen を使ってコマンドラインで iOS アプリをビルド

環境: shenzhen (0.10.2) インストール $ gem install shenzhen ビルド $ ipa build -w XXXXX.xcworkspace -s スキーマ --embed XXXXX.mobileprovision 確認 $ ipa info XXXXX.ipa

iOS で半透明なモーダルビューを表示する

ios

環境: Swift version 1.1 (swift-600.0.56.1) 自作 UIViewController をモーダルで表示する //SomeViewController view.backgroundColor = UIColor(white: 0.2, alpha: 0.2) //呼び出し側 let controller = SomeViewController() controller.modalPresentati…

Swift のバージョンを確認する

ios

環境: Swift version 1.1 (swift-600.0.56.1) $ xcrun swiftc -version Swift version 1.1 (swift-600.0.56.1) Target: x86_64-apple-darwin14.0.0

UITableView の右スワイプの「削除」の文字を変える

ios

環境: Swift version 1.1 (swift-600.0.56.1) func tableView(tableView: UITableView, titleForDeleteConfirmationButtonForRowAtIndexPath indexPath: NSIndexPath) -> String! { return "クリア" }

Xcode6 で SourceKitService Crashed が頻発する場合の対処

ios

SourceKitService Crashed が頻発するとコーディングが阻害されるし、悪い場合は、シンタックスハイライトやコード補完が効かなくなる。 根本的な解決方法は分からない。 とりあえず DerivedData ディレクトリを削除して Xcode を再起動すると改善する。 Xco…

Xcode での開発で trailing whitespace を無くす

ios

Xcode 6.1.1 で確認。 Preferences.. > Text Editing タブ > Editing タブ > While Editing: の Automatically trim trailing whiltespace Incliuding whitespace-only lines にチェックを入れる 。

Today Extension がフリーズする

ios

iOS8 で導入された Today Extension を持つアプリを作ってみたが、ある特定の経路でアップデートするとフリーズする。 OS を再起動すると正常に動作する。 作ったアプリが一つだけなので原因が特定できていないけど、以下のような感じ。 フリーズする Deploy…

Elasticsearch のデータを別のサーバに移行する

スナップショットを作成して別のマシンでリストアする手順。 環境 Elasticsearch 1.1.1 移行元サーバ 1 スナップショットディレクトリの指定 $ curl -XPUT 'http://server1:9200/_snapshot/my_backup' -d '{ "type": "fs", "settings": { "location": "スナ…

Heroku に Route53 でルートドメインを割り当てる

Heroku に Route53 で直接ルートドメイン(Apex ドメイン)を割り当てることはできないらしい。 その代わり、以下のドキュメントを参考に S3 のリダイレクト機能と Route53 のエイリアスの機能を組み合わせる。 https://devcenter.heroku.com/articles/route-5…

bash と curl だけで S3 の Tokyo リージョンにバケットを作る

cosmin/s3-bash がよさげだったのでこれを使う。 環境 CentOS 5 s3-bash (Rev: 85522ba) ローカルに持ってくる $ git clone https://github.com/cosmin/s3-bash.git $ cd s3-bash シークレットアクセスキーファイルを作る $ echo -n "シークレットアクセスキ…

Vagrant の .vagrant.d の場所を変更する

.vagrant.d フォルダを別の場所に変更したい場合は環境変数 VAGRANT_HOME をセットすればいいらしい。 vagrant.d outside of the home folder Windows に msi で入れたら Vagrant の box とかが入っているフォルダが c:/Users/ユーザ名/.vagrant.d になった…

nginx でリバースプロキシ時に Host ヘッダを元のリクエストから受け継ぐ

例えば Jenkins を Tomcat にデプロイしていて nginx からリバースプロキシする場合、 location /jenkins { proxy_pass http://localhost:8080; } みたいにすると Host ヘッダが localhost になる。 そこで無理やり location /jenkins { proxy_set_header Ho…

msysgit についてきた perl で ack を動かす

環境 Windows 7 git version 1.8.0.msysgit.0 手順 $ curl http://beyondgrep.com/ack-1.96-single-file > "c:/Program Files (x86)/Git/bin/ack" c:/Program Files (x86)/Git/bin/ack.bat を以下の内容で作成する @"C:/Program Files (x86)/Git/bin/perl.ex…

psql で select 結果を Shift_JIS な csv で吐く

環境変数 PGCLIENTENCODING に指定しておく. $ export PGCLIENTENCODING=SJIS windows なら > set PGCLIENTENCODING=SJIS psql の実行 $ psql -U ユーザ名 -t -A -F, -c "クエリ" DB名 > output.csv -t: 行のみを表示(ヘッダをつけない). ヘッダが欲しい場合…

Ruby でバージョンを調べる機能の実装を rubygems から拝借する

自分で実装するのは面倒なので同じようなことをやっている rubygems から借りればよし。参考: http://doc.ruby-lang.org/ja/1.9.3/method/Gem=3a=3aRequirement/i/satisfied_by=3f.html require 'rubygems' ver = Gem::Version.create('2.1.0') p Gem::Requi…

maven の依存プロダクトのリポジトリロケーションの解析が遅いので無効化する

参考:Maven and slow dependencies report $ mvn site で、依存するプロダクトが多い場合は以下のところで時間がかかる。[INFO] Generating "Dependencies" report.この場合は dependencyLocationsEnabled を false にするだけで結構速くなる。以下のように…

Windows 7 なデスクトップ PC の C ドライブの容量を手っ取り早くあける

ハイバーネーションのためにたくさん使ってるので、ハイバーネーションを無効にする。デスクトップPCだし。1. コマンドプロンプトを管理者で実行2. 以下のコマンドを実行> powercfg.exe /hibernate off

Jenkins の実行ユーザを確認する

スクリプトコンソールにて、"id".execute().in.eachLine{println it}結果uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),502(rvm)

git ローカルリポジトリのお掃除

bleis-hookで作成したトピックブランチを一括で削除する。 $ git branch | grep "id/" | xargs git branch -D Deleted branch id/1088 (was 29ce1c2). Deleted branch id/1092 (was 08c626d). Deleted branch id/1154 (was ef8d3ce). Deleted branch id/305 …

自動で /etc/hosts.deny に登録する

/var/log/auth.log を見て総当りでsshログインを試みられているのを発見した場合、アクセス元のアドレスを /etc/hosts.deny に登録すればいいんだけど、定期的に確認しなきゃいけなくてめんどい。 そんなときの denyhosts $ sudo apt-get install denyhosts …

VMWare Player のゲスト OS からどうしてもブリッジで接続できない場合の対処

ゲストOSのネットワーク設定は合ってるはずなのに、ブリッジ接続できない場合は、VMWare Player のブリッジ接続の設定が誤っている可能性がある。 確認した環境 Windows7 Ultimate VMWare Player 4.0.2 build-591240 1. コマンドプロンプトで VMWarePlayer …

認証設定されたmongodbに新規DBと新規ユーザを作成する

1. admin 権限を持つユーザで接続 $ mongo サーバアドレス/admin -u ユーザ名 -p パスワード 2. 以下のようにコマンドを発行 > use 新規DB名 > db.addUser(新規ユーザ名, 新規パスワード) 3. ログアウト 4. 新規ユーザで接続 $ mongo サーバアドレス/新規DB…

Linuxログイン時に表示されるバナーを変更する

似たような構成のサーバを管理してると、思ったのと違うサーバにログインしてたりして怖い。 こういう場合は、ログイン時に何のサーバなのか一目で分かるようにログインバナーを派手にしとくと良い。 ログインバナーは CentOS → /etc/motd Ubuntu → /etc/mot…

rvm で特定のバージョンの ruby を実行する

exec オプションを使う。 例 $ rvm 1.8.7-head exec ruby hoge.rb

文字を選択できないエラーメッセージダイアログの文字をコピーする

以下のような文字を選択できないダイアログの文字列をコピーする場合は ダイアログにフォーカスがある状態で Ctrl-C でクリップボードにコピーされる。 これを適当なテキストエディタに貼ると以下のようになる。

「送る」メニューへの登録

環境:Windows7 win + r でshell:sendto で SendTo フォルダが開くので、ここにショートカットを登録する