/dev/null

(◞‸◟)

npm publishで「npm ERR! forbidden user: XX not authorized to modify XXXXXX」が出た場合

npmモジュールを書いて npm publish してnpmに公開しようとした時に

エラーが起こり

npm ERR! forbidden user:XXX not authorized to modify XXXXXXXX

とでました。

package.jsonには特に問題があるように思えません。

いろいろ調べてみると、編集権限がないとか。 が、しかしこれは自分が書いたスクリプトだしなんででしょう。

まず今実行しているnpm のユーザーを調べます

npm whoami で自分の想定してるユーザーネームが出ると思います。

次にそのmoduleのnpmでの所持者を見てみます。

そのmoduleフォルダ内でnpm owner ls or npm owner ls module名

すると全然違う人の名前が出てきました。

原因は完全に同名のnode_moduleがnpmに登録されているというものでした。

車輪の再発明なので、完全に無駄でしたね。気をつけましょう。

YAPC::Asiaに行ってきた #yapcasia

2日通しチケット買ってたのに2日目しか行けなかった。そもそも土日かと思ってたら金土だったことに数日前に気づいた。

人が沢山いるところが辛いので大きい技術系イベントにはあまり参加したことなかったし、Perlは業務上基本的に触らずたまに社内で出くわすPerlスクリプトに顔を顰めるという経験が主だけどYAPC初参加。

発表とかについての所感

1日目に聞きたいのもあったけど資料がすぐに上がってたりしたので凄く感謝。 で、実際に会場に聞きに行くと別の感想。

発表の仕方次第で、聞いてる人が更に聞きたくなったり逆に聞く気がなくなったりしてしまう。

オブラートに包まず言うなれば、資料読めば大体のことは伝わる。

それでも、足を運んで聞きに行く理由ってソレ以上に得ることがスピーカーと聴衆それぞれにあるんだと思う。発表したことないから憶測でしかないけども。

発表内容自体は別にスピーカーの一人よがりで聴衆に気を使う必要とかないと思うんだけどそれなら突き詰めるべきなんだなぁとかなんとか。

YAPCでの発表は大体そんな感じでかっこ良かった。

しかし、スピーカーも不安そうだと聞いてる方も不安になるという場合もあると気づけた。気をつけようと思う。

会場とかネットワークとか

ネットワーク強固すぎてすごかった。

あんだけ人いてネットワーク快適なの素晴らしいし、社内のWIFIの方が貧弱なんじゃないかなとも思った。

無限コーヒーとかRedbullとか、Hub貸し切りとか勉強会じゃなくてお祭りっぽい。多分そう。

あとスタッフの人が優しかった。別に客とかじゃないのにあんなに優しくしていいのか。

まとめ

Perl使ってないし、自分が興味ある技術のために!とかいうモチベーションでなく行ったYAPC::Asiaだったけど凄く良かった。

ただ残念というか悔しいのはコミュ障ここに極まれりという感じで人とぜんぜん話せていないこと。

次回あるならばTalk or LTをしたい、スタッフをするのもいいかもしれない。

今のところ何者でもない人間なので人間として認知されたい、承認されたい。友達がほしい。

そのために日々忙殺されてるだけでは良くない。

手を動かそう、外に出よう、人と話そう。

「帰ってブログを書くまでがYAPC::Asia」と言っていたが自分にとっては「ブログを書いてからがYAPC::Asia」なのではなかろうか。

とりあえずGo langやろう。

良かった。

Re:コミュ障に悩む技術者へ。 - Togetter

何者にもなれなくて言動と承認欲求が不安定な人は - Togetter

CentOS 6でSkypeにログインできなくなったので、最新版のSkypeをCUIでインストール

以前このような記事を書いた。

CentOS6.4にSkypeを入れてbotでお話させる - /dev/null

その後それなりに動いてはいたのだが、サーバーを再起動して再度Skypeを実行させても起動されていない。 どうやらSkypeの古いVersionではログインすら出来なくなった模様。

弊社ではSkypeの古いバージョンの廃止を計画しておりますが、お客様がご利用のSkypeはこのバージョンに該当します。 引き続きデスクトップでSkypeにサインインするには、最新バージョンをダウンロードする必要があります。 新しいバージョンはパフォーマンスが向上しており、最新の機能やセキュリティの更新が含まれているため、最高のSkype体験をお楽しみいただけます。

最近Skypeを更新されましたか? その場合、このメールの内容は無視していただいて構いません。

今すぐ更新: http://www.skype.com/download.

新しいLinux用クライアントをインストールし直します。 なお、環境は先の記事通りであるとします。

まず最新のクライアントをDL。

wget http://download.skype.com/linux/skype-4.3.0.37.tar.bz2

解凍

tar lvxf skype-4.3.0.37.tar.bz2

配置

mv skype-4.3.0.37 /opt/skype

前回使ったスクリプトで起動する。

/opt/skype/skype: error while loading shared libraries: libQtDBus.so.4: cannot open shared object file: No such file or directory 

/opt/skype/skype: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory

/opt/skype/skype: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory

各種libが足りないよう。

すべての製品 の Skype サポート| Skype サポート

公式の手順を追っていく。

yumで色々インストールから。

yum update
yum install glibc.i686 nss-softokn-freebl.i686 alsa-lib.i686 libXv.i686 
libXScrnSaver.i686 libtiff.i686 glib2.i686 libSM.i686 libXrender.i686 fontconfig.i686 
pulseaudio-libs.i686 alsa-plugins-pulseaudio.i686 file-roller

CUIなのでfile-rollerは使えません。

debianパッケージをwget

wget ht
tp://ftp.us.debian.org/debian/pool/main/q/qt4-x11/libqt4-webkit_4.6.3-4+squeeze1_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/q/qt4-x11/libqt4-phonon_4.6.3-4+squeeze1_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/q/qt4-x11/libqt4-xmlpatterns_4.6.3-4+squeeze1_i386.deb

CentOSでdpkgは使えないのでdebファイルの展開に、arコマンドを使います。

ar xv libqt4-phonon_4.6.3-4+squeeze1_i386.deb

tar zvxf data.tar.gz

sudo cp ./usr/lib/lib* /opt/skype

これをそれぞれのdebファイルに繰り返します。

更に起動スクリプトを書き換えます。

start() {
    log_daemon_msg "Starting" "skype"
    if ! dircheck "$LOGFILE" || ! dircheck "$XAUTHFILE"; then
        log_end_msg 1
        echo
        RETVAL=1
        return
    fi
    MCOOKIE=`mcookie` && \
+    LD_LIBRARY_PATH=/opt/skype/:$LD_LIBRARY_PATH
    sudo -u "$DAEMON_USER" env XAUTHORITY=$XAUTHFILE sh -c "xauth add \":$XSERVERNUM\" \"$XAUTHPROTO\" \"$MCOOKIE\" >> \"$LOGFILE\" 2>&1" && \
    sudo -u "$DAEMON_USER" env XAUTHORITY=$XAUTHFILE sh -c "Xvfb :$XSERVERNUM -screen 0 800x600x8 -nolisten tcp >> \"$LOGFILE\" 2>&1 & echo \$!" >"$PIDFILE" &&
    sleep 3 && \
    (sudo -u "$DAEMON_USER" env DISPLAY=:$XSERVERNUM XAUTHORITY=$XAUTHFILE SKYPE="$SKYPE" sh -c "echo \"$USERNAME $PASSWORD\" | nohup \"$SKYPE\" --dbpath=\"$DBPATH\" --pipelogin &") >> "$LOGFILE" 2>&1 && \
    (log_end_msg 0 && [ -d /var/lock/subsys ] && touch /var/lock/subsys/skype || true) \
        || (RETVAL=$?; kill -TERM `cat $PIDFILE`; log_end_msg 1)
}

LD_LIBRARY_PATH=/opt/skype/:$LD_LIBRARY_PATHの行を足します。

これで再度起動。

/opt/skype/skype: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory

libQtGui.so.4が足りないのでファイルを提供しているパッケージを探します。

yum provides libQtGui.so.4

1:qt-x11-4.6.2-28.el6_5.i686 : Qt GUI-related libraries
Repo        : updates
Matched from:
Other       : libQtGui.so.4



1:qt-x11-4.6.2-26.el6_4.i686 : Qt GUI-related libraries
Repo        : base
Matched from:
Other       : libQtGui.so.4

qt-x11-4.6.2-28.el6_5.i686が該当するのでインストール

yum install -y qt-x11-4.6.2-28.el6_5.i686

再度起動すると、きちんと動くようになります。 APIなどは提供が停止されているのでおそらく動かないでしょう。

CentOSでdebファイルの中身を展開する

ちょっとサクッと欲しくなったので調べたログ

debファイルはubuntuとかのDebianLinuxのパッケージ形式。CentOSでいうrpm.

Debian系列だとdpkgコマンドで展開とかインストールとか出来るけどCentOSにdpkgはない。yumでももちろんインストール不可。

その時はarコマンドを使う。

ar vx hoge.deb

control.tar.gz data.tar.gzと展開されるので、大抵欲しいファイルはdata.tar.gzの中にあるのでtar zvxf data.tar.gzして中身を取り出して終わり。

mount時に「wrong fs type, bad option」「間違ったファイルシステムタイプ、不正なオプション、」とか出た時

nfsを/etc/fstabに書いてmount -a した時に

mount: 間違ったファイルシステムタイプ、不正なオプション、
      172.0.0.1:/var/hoge/fuga/piyo のスーパーブロックが不正、コードページまたは
       ヘルパープログラムの未指定、或いは他のエラー
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

nfs周りのパッケージが足りてないのでインストールする

yum install nfs-utils nfs-utils-lib

Skype Desktop APIが利用不可能になってしまったようです

Skype Desktop APIというのものがありまして、以前はそれを利用することでプログラム上からSkypeにアクセスし、botを動かしたりなどということが出来ました。

私も以下のような手順で実験しています。

CentOS6.4にSkypeを入れてbotでお話させる - /dev/null

そして、Skype APIの廃止は去年10月頃に廃止されると発表されましたが、なんだかんだ使えている状況でした。

Windows デスクトップ向け「Skype」のプラグインAPIが2013年12月をもって提供終了 - 窓の杜

ところが6月半ばごろから、どうも様子がおかしい。 今までHubot + Skypeを使っていたが、新しく作った部屋にhubotを入れてもなんの反応もしない。 それまで動いてた部屋では変わらず機能している。

どうしたのかなと思っていましたが6月の半ば以降にAPIの提供が完全に終了し、それ以降に作った部屋ではAPIは使えないということのようです。

Skypeの開発者サイトもアクセスできなくなってしまっています。

https://developer.skype.com/

おそらくこの投稿以降に使えなくなっていると思われます。

What’s new in Skype | Skype Blog

ちなみにSkype4pyで投稿してみるとこうなります。

# coding:utf-8
import Skype4Py
import sys

skype = Skype4Py.Skype(Transport='x11')
skype.Attach()
chat = [c for c in skype.Chats if c.Topic == u'新しい部屋'][0]
chat.SendMessage("test")
$ python test.py                                                                                                                                         [23:23:25]
Traceback (most recent call last):
  File "test.py", line 7, in <module>
    chat = [c for c in skype.Chats if c.Topic == u'新しい部屋'][0]
IndexError: list index out of range

どうも部屋が見つからない、という感じのようですね。attachでコケてないのはちょっと謎ですが、昔の部屋には投稿出来てるので6月以降の部屋は、アクセス可能リストみたいなものに載ってない的なやつなんでしょうか。内部実装知らないので適当ですが。

このようにSkypeプログラマブルなチャットツールでなくなってしまいました。 以前からなかなか使いづらいツールではありましたが、エンジニア向けのツールとは呼べない印象です。

P2P実装からMicrosoftの中央サーバーに移行され、相手がオフライン下でもメッセージを投稿出来たり同期が少し賢くなったりとしているようですが、これからはあまり使いたくないツールです。

とはいえ、アカウントが容易に作成出来、チャットやビデオ通話なども簡単にできるツールとして一般のユースケースでは必要十分ですし、廃れていくことはないのかなという感じ。

エンジニア向けにはSlackやHipChatあたりが無料ユーザー無制限だったりして、APIも手軽に扱えるので流行っていくといいなぁと思います。

MacPortsなしでMacOS X 10.8にZenityをインストールしようとしたら頓挫したけど出来た

こんなの書いた。

MacPortsなしでMacOS X 10.8にZenityをインストールしようとしたら頓挫 - /dev/null

この後出来た。

前回はmake時に

Making all in help
/bin/sh: scrollkeeper-config: command not found
/bin/sh: scrollkeeper-config: command not found
The file '/Templates/C/scrollkeeper_cl.xml' does not exist.
Please check your ScrollKeeper installation.
make[2]: *** [zenity-C.omf] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

で止まっていた。

scrollkeeperで死んでたので安直にconfigure時にdisableする。

./configure --disable-scrollkeeper

でmakeすると通る。

最後にsudo make install

インストール出来たら起動してみる

$ wintricks

こっからどうすればいいのかはまた別の話っぽい。

f:id:gitpub:20140725143844p:plain