Chrome 拡張機能のインストールで“マニフェスト ファイルが無効です”というエラーが発生する

Chrome 拡張機能を更新しようと思い、ダッシュボードから zip をアップし、反映されたのを確認して、再インストールしたら「マニフェスト ファイルが無効です」というエラーが表示されました。

色々と試した結果、原因は browser_action.default_icon のフォーマットでした。

以下がエラーが出たときの browser_action.default_icon です。

{
  "name": "__MSG_ext_name__",
  "description": "__MSG_ext_description__",
  "default_locale": "en",
  "background": {
    "page": "background.html"
  },
  "browser_action": {
    "default_popup": "popup.html",
    "default_icon": "images/19.png"
  }
  ...
}

こちらはエラーが出なくなったときの browser_action.default_icon です。

{
  "name": "__MSG_ext_name__",
  "description": "__MSG_ext_description__",
  "default_locale": "en",
  "background": {
    "page": "background.html"
  },
  "browser_action": {
    "default_popup": "popup.html",
    "default_icon": {
      "19": "images/19.png",
      "38": "images/38.png"
    }
  }
  ...
}

サイズを明記して記述することでエラーが解消しました。

以前(2012 年 12 月頃)に更新した際には、このフォーマットでも大丈夫だったので Chrome 側の不具合かもしれません。

この browser_action.default_icon については “chrome.browserAction - Google Chrome” に載っています。

Manifest Version 2 への移行がお済みでない方は “Chrome 拡張機能・アプリを Manifest Version 2 に対応させる” も参考に。

参考記事

Git: 複数アカウントで同リポジトリーで作業していると "error: insufficient permission for adding an object to repository database .git/objects" が発生する

Linux サーバー上でマルチアカウントで git 使ってると稀に以下のエラーが起きる。

error: insufficient permission for adding an object to repository database .git/objects

具体的には git add したときに発生。

$ git add .
error: insufficient permission for adding an object to repository database .git/objects

error: {path}: failed to insert into database
error: unable to index file {path}
fatal: updating files failed

git pull ったタイミングかなんかで権限まわりがオカシクなったのだろう。
こちら の質問が参考になった。

めんどくさいから .git/objects 以下の権限を書き換えてしまおう。

$ sudo chmod -R 0777 .git/objects/

よし。

根本の解決である git config core.sharedRepository を利用する場合は リポジトリを後から共有できるようにする。 - kuma8の日記git で共用レポジトリを作成する – BONNOH FRACTION 14 を参考に。

参考記事

参考になるかも

入門git - Travis Swivegood

Git

Highcharts: あとからグラフデータ(series)を追加・削除する

Highcharts を利用したグラフを描画するとき、動的に後からグラフデータを追加したい場合がある。

通常の描画の仕方はこう。

chart = Highcharts.Chart({
    chart: {
        anything...
        type: 'line' // 折れ線グラフ
    },
    anything...
    // ここからグラフデータ
    series: [{
        name: '1本目',
        data: [1, 2.5, 2]
    }, {
        name: '2本目',
        data: [1.5, 2, 3.5]
    }]
});

これに、何か特定のイベントが発生したときにもう一本折れ線グラフを追加したいという場合、下のように Highcharts.Chart オブジェクトの addSeries でグラフデータを追加することができる。

chart.addSeries({
    name: '3本目',
    data: [1.75, 2.25, 3]
});

また、特定のグラフデータを削除することもできる。
グラフデータは配列になっており、追加した 3本目 を削除する場合は添字 2 なので以下のようになる。

chart.series[2].remove();

デモ

しかし、Highcharts 便利だ。

参考

Mac で RAR 拡張子のファイルをコマンドラインから解凍する - unrar

brewunrar をインストールする。

$ brew install unrar
==> Downloading http://www.rarlab.com/rar/unrarsrc-4.2.4.tar.gz
######################################################################## 100.0%
==> make --makefile makefile.unix
/usr/local/Cellar/unrar/4.2.4: 4 files, 220K, built in 12 seconds

解凍したい RAR ファイルを unrar する。
e オプション指定でカレントディレクトリに展開してくれる。

$ unrar e xxxxxxxxxx.rar

UNRAR 4.20 freeware      Copyright (c) 1993-2012 Alexander Roshal

パスワード付きの RAR でも大丈夫。

$ unrar e xxxxxxxxxx.rar

UNRAR 4.20 freeware      Copyright (c) 1993-2012 Alexander Roshal

Enter password (will not be echoed) for xxxxxxxxxx.rar: [PASSPHRASE]

unrar のオプションは以下の通り。

つづきをみる

Mac

Git でファイルパーミッションの変更(chmod)を無視する - git config core.filemode false

さて変更を反映するか。

$ git pull
remote: Counting objects: 74, done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 60 (delta 26), reused 55 (delta 21)
Unpacking objects: 100% (60/60), done.
From xxxxxxxxxx
   xxxxxx..xxxxxx  master     -> origin/master
Updating xxxxxx..xxxxxx
error: Your local changes to 'xxxxxxxxxx' would be overwritten by merge.  Aborting.
Please, commit your changes or stash them before you can merge.

む、サーバー上で作業はしてないはずだが。 git status みてみる。

$ git st
# On branch master
# Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded.
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   .gitignore
#	modified:   xxxxxxxxxx

むむ、なぜだ。 git diff してみる。

つづきをみる

Git