kikukawa's diary

都内で活動するシステムエンジニアが書いてます。 興味を持った技術やハマったポイント、自分用メモをつけてます。 最近はweb中心

Cliborでマクロを使えるようにする

自分用メモ
Cliborというpythonでマクロが実行できる
Windows用のクリップボードユーティリティソフトがあります。
そのマクロを使えるようになるまでの設定方法です。
作者のサイトはpython2系の紹介をしています。
ここでは、Window7 64bitで、python3系を使う方法を記載します。

Chocolateyでpythonをインストール

Chocolatey自体のインストールはこちら
管理者権限でコマンドプロンプトを開き、下記を実行します。

$cinst python

インストールが終わると、C:\tools\pythonにexeができます。
インストールされるpythonのバージョンは3系です。

pywin32をインストール

pywin32もChocolateyでインストールしたかったのですが、
パッケージが古いようで、インストールされるのはpyhon2.7系のものでした。
なので、こちらは別途インストールします。

ダウンロード先はこちら
最新のビルド番号のものを取ってきます。
2015年8月現在では、219が最新でした。
今回は、Windows7 64Bit環境で動かすので、pywin32-219.win-amd64-py3.4.exeをダウンロードしました。
ダウンロードしてきたexeを実行すると、C:\tools\python\Lib\site-packagesにインストールされます。

clb_ex.batを作る

あとは、基本的にサイトに記載されている通りに設定します。

clb_ex.batは、下記のようにしました。

c:
cd C:\tools\python
SET PYTHONHOME=C:\tools\python

これで、マクロ自体は動くようになると思います。

Redmine 親チケットは不正な値です。

Redmineのver2.5で発生しました。

やりたかった構成は下記です。

  • 1
    • 101
    • 102

最初、下記の状態でした。

  • 1
    • 101

101をコピーして、102を作成し
下記の状態にしました。

  • 1
    • 101
  • 102

この状態で、102のチケットの親チケットを1に設定しようとすると

親チケット は不正な値です。

というエラーメッセージが表示されました。
102に設定されている関連するチケットを削除すると、
親チケットを編集できるようになりました。
削除した関連チケットはコピー元である101です。

Nginxで画像のアップロードに失敗する(413 Request Entity Too Large)

Nginx + passenger + Rails
画像アップロード機能を作っていた時に、
下記のエラー(ブラウザのコンソールに表示)に遭遇しました。

413 Request Entity Too Large

原因は、Nginxが受け取れるクライアントからの
リクエストのbodyサイズが小さかったこと。
その値を決めるのがclient_max_body_sizeで、
デフォルト1Mまでのようです。
1Mだと、大きめの画像はアップロードできませんでした。
以下のようにserverディレクティブに書きます。

server {
  listen 80;
  server_name localhost;
  access_log  logs/access_log  main;
  error_log  logs/error_log;
  client_max_body_size 5M;
  location / {
    root /path/to/doc_root;
  }
  error_page  403 404 500 502 503 504  /404.html;
  location = /404.html {
      root   html;
  }
}

参考 参考

Atomのスニペットのscopeの調べ方 Windows編

Atomスニペットを登録するときは
下記のような形式でcsonを書いていきます。

'.source.js':
  'Snippet Name':
    'prefix': 'hello'
    'body': 'Hello World!'

このとき、.source.jsに当たる部分を各言語別に何を記載すればよいか
分からないことが多いのですが、その調べ方です。
Windowsでは

ctrl-alt-shift-p

でした。

Log Cursor Scopeというコマンドらしいです。
もしくは、setting view の各言語の設定のscopeを見ると分かりやすいです。
Installed Packegesのところで「language php」などと調べたい言語を指定して絞込みます。

f:id:devillikeaangel:20150729021455j:plain

その後、対象のパッケージを選択すると、各言語の設定画面が表示されます。
表示された画面のScopeという項目を確認すると、指定すべき文字列が分かります。

f:id:devillikeaangel:20150729021502j:plain

参考

show slave statusがEmpty

自分用メモ

mysqlレプリケーション設定をするのに、
my.cnfにレプリケーションの設定を記述して立ち上げたら、
show slave statusEmpty set
を返してきました。
masterでダンプを取得して、それを復元したslave用データベースに レプリケーション設定しようとしたときのお話です。

mysql> show slave status;
Empty set (0.00 sec)

エラーログを見てみると

[Warning] 'for replication startup options' is deprecated and will be removed in a future release. Please use ''CHANGE MASTER'' instead.

CHANGE MASTER TO MASTER_HOST = 'master_hostname', MASTER_USER = 'user_for_replication', MASTER_PASSWORD = 'password_for_replication';

とWarningが出ていました。
下記手順で、SQLを発行します。

一応slave止める

mysql> stop slave;

SQL実行
MASTER_LOG_POSはdumpファイルの先頭に書いてある

# head -n 30 dump.sql
-- MySQL dump 10.13  Distrib 5.1.58, for unknown-linux-gnu (x86_64)
--
-- Host: localhost    Database: 
-- ------------------------------------------------------
-- Server version       5.1.58-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES binary */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Position to start replication or point-in-time recovery from
--

CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000002', MASTER_LOG_POS=999;
mysql> CHANGE MASTER TO MASTER_HOST = 'master_hostname', MASTER_USER = 'user_for_replication', MASTER_PASSWORD = 'password_for_replication',  MASTER_LOG_FILE='master-bin.000002', MASTER_LOG_POS=999;

確認

mysql> show slave status;