‘未分類’ カテゴリーのアーカイブ

High Sierra にアップグレードしててヤラレる

muraveです。

開発機のリプレースを考えていたのですが、今のマシンを延命することにしました。
ディスクの残容量がカツカツでちょくちょくディスクフルになるのを除けばあまり不満ないなって。

樹脂部品がヤラレてワレたりとかはありますが。

そこで覚悟を決めてEl Capitanで止めてたOSのアップグレード、SSDの載せ替えを行ったのですがHigh Sierraさんに2点程かなりヤラレましたのでメモを残しておきます。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

Google ColabでGPU使用時に異常終了する問題

ディープラーニングの開発環境に、Google Colaboratoryを使用しています。
その一番の理由は、GPU(Tesla K80 GPU)が使える、ということです。
Macbook proのCPUにやらせるよりも、10倍は早いです。

しかし何かの拍子に以下のようなエラーが出て、トレーニング中に止まってしまう問題が発生しました。

ネットで調べたところ、
https://github.com/googlecolab/colabtools/issues/156

他のpythonプロセスが動作してるのが問題らしいです。
以下のような感じで、他のpythonプロセスをキルしたら、正常に動作するようになりました。

!ps aux
!kill -9 <pid>
Facebooktwittergoogle_pluslinkedintumblrmail

pg_basebackupを試す

今回は、クラスタ化していないシングルなPostgreSQLでpg_basebackupを試してみました。
試した環境はCentOS7のPostgreSQL9.2です(pg_basebackupは9.1以降)。

まずはマニュアルを参考に。
https://www.postgresql.jp/document/9.2/html/continuous-archiving.html

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

雑用係、新品のTimeMachineさん過熱状態(?)で奮闘する

こんにちは。
一昨年夏に発売された某PS4ゲームに、いまだどっぷり7週目を楽しんでいる雑用係です。

年明けにAppleのAirMacTimeMachineを購入しました。
先代のTimeMachineが1〜2年ほど前に壊れ、繋ぎで使っていた先代TimeMachineより古いExtremeの調子が秋〜年末に掛けてついに悪くなり、満を持して購入。

 

開封してから設定〜利用開始までサクッとすませました。
実によろしい。
iPhone、iPad、MacもAppleTVもIEEE802.11acに対応してるのに、部屋の無線LANが11nしかなかったという悲しい状態から、ようやく脱したので快適です。

快適だったんです。

コトは、購入から10日ほど経った頃でした。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

pg_bigmで何かの全文検索を高速化してみたい

こちら で使ったpg_bigmですが、どこかで利用出来るものはないかと思っていたのですが、そういえばSphinxを使った検索で日本語対応しようとしてunigramとか色々と入れてみたけど結局失敗してしまったTiny Tiny RSSが有ったなぁと思い、試してみました。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

Laravelのテスト用便利トレイトの動作を変えてみる

Laravel 5.5 です。

Laravelにはunit test等の際にuseするとよろしくやってくれるトレイトがあります。
昨日の記事に出てきたRefreshDatabaseやDatabaseMigrations、他にはDatabaseTransactions、WithoutMiddleware、WithoutEventsがあります。

本当に便利なのですが、すこし動作を調整したいこともあります。

例えばDatabaseMigrationsでマスターの流し込みまでやりたいとか。
(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

QNAPのopkgを入れたらipkgが使えなくなった話

ipkgが、QNAPのバージョンアップのたびに動きが怪しくなっていくので、こちらを参考にopkgを導入。
https://qiita.com/nak1114/items/b534cd3bd79db3e3f256

するとipkgの/bin等へのパスが切れたりして、ipkgで動かしていたhttpd+mod_dav_svnが動かなくなり、まだsvn使っているのでどうしようという事に。

調べた感じではopkgにはhttpdがなく、lighttpdくらいで、mod_davは使えなさそうです。

opkg list|grep http

仕方ないので、他の方法は無いかと見て行ったところ、subversionは有ったのでsvnserveで代用をする事に。
幸いリポジトリは一つのフォルダ内に複数のリポジトリ、という構成で作っていたので、リポジトリの一つ上のパスで起動させれば全部含める事が出来ました。

ipkg install subversion-server
ipkg install subversion-client
svnserve -d --root /path/svn/

各リポジトリのconf/svnserve.confを設定(ここは省略)。

最後にクライアント側をsvn switchで置き換えで一応完了となりました。

# 確認
svn ls svn://qnap/myrepo/
# 置き換え
svn switch --relocate http://qnap:8000/svn/ svn://qnap/
Facebooktwittergoogle_pluslinkedintumblrmail

funcphoneとSMSフロー(メニューアプレット編)

電話番号を米国番号で取得した場合、SMS機能が使えるようになる事は前回お話いたしました
今回はSMSフロー編集にあるアプレットご紹介したいと思います


SMSフローの編集は左メニューより「管理→フロー→編集 SNSフロー」から行うことができます

メニューアプレット

以前書きました「funcphoneを使った電話転送」で疲れているメニューアプレットのSMS用のようなイメージです

決まった単語を送信すると、フローで設定したメッセージを返信することができます

設定してみる

  1. 編集 SMSフローから編集画面を開き、「メニューアプレット」をセットします
  2. Menu Promptには電話番号宛に何かメッセージが送られてきた場合に最初に送るメッセージを設定しています
  3. Menu Optionsにはメッセージを送ってきたユーザが入力した単語に対して何を返信するのか設定しています
  4. 左メニューから「管理→番号」画面をひらき、フローを該当の電話番号にセットします

以上で設定は完了です

確認してみる

  1. スマートフォンから設定した番号あてにメッセージを送ってみます
    下の画像の「問題ください」がそれです
  2. しばらくするとMenu Promptに設定した文章が送られてきます
  3. キーワードを入力してみましょう
    Menu Optionsに設定したKeywordが入力されますと、設定したReplyが返ってくることを確認できます
Facebooktwittergoogle_pluslinkedintumblrmail

実行されたJenkinsFileはReplayから確認できる

muraveです。

なうなやんぐなのでPipelineでJenkinsFileを使ってビルドについてもソースコード管理したいわけですが、他チームのJenkinsFileを参考にしたいときにJenkins上から内容が確認できないと、お願いしてJenkinsfileを送ってもらうという悲しいことになったり(実際に発生)。

Jenkins上から確認できるように出来ないものかとプラグインを探したり、ファイルは残っていたのでそれを参照できるようにできないかいろいろ試したりしていました。

しかし、そんな事をしなくても内容をみることができる方法がみつかったのでした。

まぁ、答えはタイトルに書いちゃってますが、こんなん予想できませんわー。

一部マスクしますが、キャプチャを貼っておきますね。

cursor_%e3%81%a8_replay__26__jenkins_

スクリプトを参照する場合は間違ってRunしないように注意ですね。

Facebooktwittergoogle_pluslinkedintumblrmail

JenkinsのwithCredentialsでユーザー名とパスワードを扱えるのかを確認したいだけだった

muraveです。

なうなやんぐはPipelineでJenkinsFileを使ってビルドについてもソースコード管理ですよねー、ということで試してみているんですが、ユーザー名やパスワードをJenkinsFile内に書くわけにはいかないわけで。

方法を探してみたところ withCredentials でどうにか出来そうでした。

Fetch a userid and password from a Credential object in a Pipeline job.

ここを見ながらザックリと Pipeline script なジョブを作成して動作を確認しようとしたところ、少々ハマリました。

テスト用にユーザー名test、パスワードpassword、credentialsIdがtestの認証情報を作成しています。

node {
    stage 'withCredentials Test'
    withCredentials([[$class: 'UsernamePasswordMultiBinding', 
            credentialsId: 'test',
            usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {

        sh 'echo uname=$USERNAME pwd=$PASSWORD'
    }
}

これを実行したログを確認すると

[credential_****] Running shell script
+ echo uname=**** pwd=****

みたいな表示。うーん。何か権限的に引っかかってるのか、表示が潰されているだけなのかがわかりません。

結論を先に言うとユーザー名、パスワードについて表示を****で潰すようになっているようです。
あとで気づいたのですが[credential_****]のところもジョブ名がcredential_testなのでユーザー名であるtestが潰されているのでした。

ではユーザー名、パスワードが本当に取れているのかをどのように確認したのか?ですが次のような Pipeline script を作成しました。

node {
    stage 'withCredentials Test'
    def uname   //withCredentials外にUSERNAMEを持ち出す為に使用
    withCredentials([[$class: 'UsernamePasswordMultiBinding', 
            credentialsId: 'test',
            usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {

        sh 'echo uname=$USERNAME pwd=$PASSWORD > idpw.txt'
        sh 'pwd'    //ワークスペースの位置確認をしたかったのだが、しかし

        println(env.USERNAME)   //groovyでの扱い
        uname = env.USERNAME    //withCredentials外にUSERNAMEを持ち出す
    }

    stage 'withCredentialsの外で出力'
    println(uname)

    stage 'ワークスペースの位置確認'
    sh 'pwd'
}

実際に行ったのはidpw.txtファイルにリダイレクトして内容を確認でしたが、その際の謎動作の説明のための処理や、その後にログ上で確認できないかな?と思ってやってみたことも混ぜてあります。

ログから抜粋してまとめると以下のようになります。

Entering stage withCredentials Test
Proceeding

[credential_****] Running shell script
+ echo uname=**** pwd=****

[credential_****] Running shell script
+ pwd
/var/jenkins_home/workspace/credential_****

****


Entering stage withCredentialsの外で出力
Proceeding
test


Entering stage ワークスペースの位置確認
Proceeding
[credential_test] Running shell script
+ pwd
/var/jenkins_home/workspace/credential_test

idpw.txtの位置が知りたくてpwdしているのですがwithCredentialsのブロック内で実行すると

[credential_****] Running shell script
+ pwd
/var/jenkins_home/workspace/credential_****

と、ユーザー名のtestと同じだったために一部マスキングされてしまっています。まぁ、大体の位置は予想がついたのでidpw.txtを探して内容確認はできたわけですが(ちゃんとユーザー名、パスワードが出力されていました)。

最後にブロック外でpwdしてみるとちゃんと

Entering stage ワークスペースの位置確認
Proceeding
[credential_test] Running shell script
+ pwd
/var/jenkins_home/workspace/credential_test

と出力されているのがわかります。

ログだけでの動作確認ですがブロック外ならマスキングされないのがわかったのでuname変数を定義して外に持ちだしてやればいいかな〜と

Entering stage withCredentialsの外で出力
Proceeding
test

やはりマスキングされずに出力されました。動作の確認はできましたが、これは通常はやってはいけないパターンですね。

以上です。

Facebooktwittergoogle_pluslinkedintumblrmail