tokisabaのブログ

エンジニア系シェアハウスEngineMakerの管理人ブログ

PHPでAWSのSQSメッセージを処理する

受け取ったメッセージの処理ではまったのでメモ。

// メッセージを受け取る
$result = $sqs->receiveMessage(array(
    'QueueUrl' => $queueUrl['QueueUrl'],
));

// Messagesを取得
$data = $result->get('Messages');

// null対策
if($data){
    foreach($data as $item){
        // Messagesの中身を取得
        $res2 = json_decode($item['Body'], true);
        // さらにその中身を取得
        $res3 = json_decode($res2['Message'], true);
    }
}

で、ようやくキレイにデータがとれた。

S3→SNS→SQS やろうとしたらS3 Event設定ではまったのでメモ

イベント設定しようとしたら

The notification destination service region is not valid for the bucket location constraint

でハマる。ロケーションおかしいとか言われてもそもそもS3はコンソール画面右上にも

f:id:tokisaba:20180323133021p:plain

って書かれてるし、???と思ってたら見落としてた。バケット一覧でリージョンちゃんと書いてる…

f:id:tokisaba:20180323133031p:plain

SNSで使ってるリージョンと合わせたら治った。

処理順的には

  • SNSでトピックを作る
  • SQSでキューを作る
    • 側からSNSに紐付ける(SNS側からもできるけど、設定がこちらのほうが簡単)
  • S3でバケットを作る
    • S3側からSNSにイベント設定する

CentOS7.4.x に ImageMagick6.9.x に入れるときにいろいろめんどくさかったのでメモ

CentOS Linux release 7.4.x (Core) (vagrant)にインスコ

  • 最初にまとめ。以下の順でやればいけるはず。
$ yum install https://rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
$ yum install http://springdale.math.ias.edu/data/puias/computational/7/x86_64//openjpeg2-2.1.0-7.sdl7.x86_64.rpm
$ yum install http://springdale.math.ias.edu/data/puias/computational/7/x86_64/openjpeg2-devel-2.1.0-7.sdl7.x86_64.rpm
$ yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libraqm-0.1.1-1.el7.x86_64.rpm
$# yum install ImageMagick6-6.9.9.38 ImageMagick6-devel-6.9.9.38 --enablerepo=remi
  • 残りは作業ログとメモ。
$ yum install ImageMagick6-6.9.9.38 ImageMagick6-devel-6.9.9.38 --enablerepo=remi
--> 依存性解決を終了しました。
エラー: パッケージ: ImageMagick6-6.9.9.38-1.el7.remi.x86_64 (remi)
             要求: libraqm.so.0()(64bit)
エラー: パッケージ: ImageMagick6-libs-6.9.9.38-1.el7.remi.x86_64 (remi)
             要求: libraqm.so.0()(64bit)
エラー: パッケージ: ImageMagick6-devel-6.9.9.38-1.el7.remi.x86_64 (remi)
             要求: openjpeg2-devel(x86-64)
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest

解決してないので、1つずつ解決していく。

RPM resource libtool-ltdl

$ yum install https://rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
$ yum install http://springdale.math.ias.edu/data/puias/computational/7/x86_64//openjpeg2-devel-2.1.0-7.sdl7.x86_64.rpm
--> 依存性解決を終了しました。
 エラー: パッケージ: openjpeg2-devel-2.1.0-7.sdl7.x86_64 (/openjpeg2-devel-2.1.0-7.sdl7.x86_64)
              要求: libopenjp2.so.7()(64bit)
 エラー: パッケージ: openjpeg2-devel-2.1.0-7.sdl7.x86_64 (/openjpeg2-devel-2.1.0-7.sdl7.x86_64)
              要求: openjpeg2(x86-64) = 2.1.0-7.sdl7
  問題を回避するために --skip-broken を用いることができます。
  これらを試行できます: rpm -Va --nofiles --nodigest
# yum install http://springdale.math.ias.edu/data/puias/computational/7/x86_64//openjpeg2-2.1.0-7.sdl7.x86_64.rpm
# yum install http://springdale.math.ias.edu/data/puias/computational/7/x86_64/openjpeg2-devel-2.1.0-7.sdl7.x86_64.rpm

エラーなし

# yum install ImageMagick6-6.9.9.38 ImageMagick6-devel-6.9.9.38 --enablerepo=remi
 エラー: パッケージ: ImageMagick6-6.9.9.38-1.el7.remi.x86_64 (remi)
              要求: libraqm.so.0()(64bit)
 エラー: パッケージ: ImageMagick6-libs-6.9.9.38-1.el7.remi.x86_64 (remi)
              要求: libraqm.so.0()(64bit)
  問題を回避するために --skip-broken を用いることができます。
  これらを試行できます: rpm -Va --nofiles --nodigest

1個減った。

libraqm-0.1.1-1.el7.x86_64.rpm CentOS 7 Download

# yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libraqm-0.1.1-1.el7.x86_64.rpm

エラーなし

# yum install ImageMagick6-6.9.9.38 ImageMagick6-devel-6.9.9.38 --enablerepo=remi
 インストール:
   ImageMagick6.x86_64 0:6.9.9.38-1.el7.remi                               ImageMagick6-devel.x86_64 0:6.9.9.38-1.el7.remi                              
 
 依存性関連をインストールしました:
   ImageMagick6-libs.x86_64 0:6.9.9.38-1.el7.remi     LibRaw.x86_64 0:0.14.8-5.el7.20120830git98d925      OpenEXR-devel.x86_64 0:1.7.1-7.el7            
   bzip2-devel.x86_64 0:1.0.6-13.el7                  freetype-devel.x86_64 0:2.4.11-15.el7               ghostscript-devel.x86_64 0:9.07-28.el7_4.2    
   gl-manpages.noarch 0:1.1-7.20130122.el7            ilmbase-devel.x86_64 0:1.0.3-7.el7                  jasper-devel.x86_64 0:1.900.1-31.el7          
   jbigkit-devel.x86_64 0:2.0-11.el7                  lcms2-devel.x86_64 0:2.6-3.el7                      libICE-devel.x86_64 0:1.0.9-9.el7             
   libSM-devel.x86_64 0:1.2.2-2.el7                   libX11-devel.x86_64 0:1.6.5-1.el7                   libXau-devel.x86_64 0:1.0.8-2.1.el7           
   libXdamage-devel.x86_64 0:1.1.4-4.1.el7            libXext-devel.x86_64 0:1.3.3-3.el7                  libXfixes-devel.x86_64 0:5.0.3-1.el7          
   libXt-devel.x86_64 0:1.1.5-3.el7                   libXxf86vm-devel.x86_64 0:1.1.4-1.el7               libdrm-devel.x86_64 0:2.4.74-1.el7            
   libjpeg-turbo-devel.x86_64 0:1.2.90-5.el7          libtiff-devel.x86_64 0:4.0.3-27.el7_3               libwebp-devel.x86_64 0:0.3.0-7.el7            
   libxcb-devel.x86_64 0:1.12-1.el7                   mesa-libGL-devel.x86_64 0:17.0.1-6.20170307.el7     mesa-libGLU.x86_64 0:9.0.0-4.el7              
   mesa-libGLU-devel.x86_64 0:9.0.0-4.el7             xorg-x11-proto-devel.noarch 0:7.7-20.el7           
 
 完了しました!

Done!

$ convert -version で動作確認

 Version: ImageMagick 6.9.9-38 Q16 x86_64 2018-03-12 http://www.imagemagick.org
 Copyright: © 1999-2018 ImageMagick Studio LLC
 License: http://www.imagemagick.org/script/license.php
 Features: Cipher DPC Modules OpenMP 
 Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc jbig jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps raw rsvg tiff webp wmf x xml zlib

おしまい!

  • 基本的には、エラーがでたらパッケージとOS名でググってひたすら入れていくだけ。
  • 参考 qiita.com

ときさば流ギークハウスの作り方2018

2016年に書いてから2年たったので、また書いてみる。 hackerhouse.hatenablog.com

ギークハウスは基本的にはオープンソース的なものなので、やりたい人が好きにやればいいので、自分はどういう基準で作ってるかってことで。

前提

  • 不動産業という面もあるけど、どちらかというとコミュニティ運営の色合いのほうが強いと思ってる
  • なので、物件だけ用意してあとは放置していればいい…とかいうのを希望してるなら、ギークハウスにせず普通のシェアハウスにしたほうがいいと思う
  • その場合は、ルールを厳し目にして自由度を減らして、たまに業者を入れればいい

目的

  • なるべくいろんな価値観を持った人が集まれるように。ただし人に迷惑はかけない方向で。しかし他人の価値観も受け入れる方向であってほしい。
  • 住居としての機能が基本だが、コミュニティとしての機能ももちたい
    • ギークハウス岡山、ギークハウス沖縄あたりはいい感じ。地域の起業、ITとかで頑張りたい人が生きていける場所的なイメージ

物件

  • 広いリビングが必須。6畳とか8畳くらいのリビングはワンルームの部屋でも作れるけど12畳以上になると、ワンルームで借りるにはなかなか難しくなってくるので特別感がでてくるし、一人暮らしの狭い部屋のような閉塞感がないのでメリットに感じられる。

部屋

  • 3LDK以上。基本はLDKにみんなが集まれるように前述のとおりの広めのリビング。
  • 二部屋はドミトリー
    • リビングに人を集めるため。個室だと、リビングに行く必要がないし、個室のみのシェアハウスでリビングに行くとかまって欲しい感じがしたりするので。ドミトリーしかなければ何かをするときは必然的にリビングにいくので、交流しやすい。
    • 個室のギークハウスを作ると基本的にすぐ埋まるっぽいので商売的に考えるなら個室のほうがいいみたい。
    • 楽しさならドミトリー。ドミトリーはいびきやら、生活時間のズレとか他人への気遣いとかでしばしば問題が起こる。個室はブラックボックスになりがちなので、問題があってもきづけないところが少し怖い。あと、個室は空きが出ると家賃に与えるダメージがでかいのもデメリットかな。
    • 個人的にはリビングを二部屋以上できれば8人以上にするのがいい。5人以下の集団で、もめごとが起こると気まずい雰囲気が続くけど、8人いればどこかで揉め事起こっても他の人と交流できて修復できる。1:7になる場合は修復難しそうだけど、そこまで極端に割れるときは1になった人がかなり問題なので、仕方ないかなと。100%なんてどうやっても無理だし。
    • 同じような理由で二人部屋よりは4人部屋のほうが揉めにくいと思ってる。
  • ひと部屋はモクモク部屋。作業に集中したいときもあるからそのときはモクモク部屋にこもる。もくもく部屋は黙々と作業する部屋の意味。作業部屋。
  • ドミトリーは2段ベッドでいいけど、下の段は足つきマットレス。上の段はロフトベッドみたいにして、一体型にしないほうが、上下の振動がそれぞれにつたわらないので居心地があがる
  • カーテンはつけたほうがいい

上記のものを準備した上で部屋があまるなら個室作ってもいいと思う。4LDK以上の物件なので、都内にはそもそもあまり存在しない。

f:id:tokisaba:20160213142951j:plainギークハウス新宿のドミトリー

駐車場

  • 都内だとみんな自転車持ちたがるので自転車がおけるほうがいい。ただ、都内は自転車すらおけない物件が結構多い。

ご近所

  • 基本的には住んでみないとわからない。23時以降は静かにするとかルール作っても、酒が入ったりすると制御難しいので寛容な人が近所だといいんだけど。前回住んでた人がご近所トラブルなかったか確認くらいするといいかも。

アクセス

  • 駅から10分以内がいい。これより離れると遊びに行くのがダルい。

トイレ

  • 2つ以上ほしい。

風呂

  • 2つ以上欲しいけど日本はめったにそういう家がほとんど存在しない。

物件

  • 高級物件はやめといたほうがいい。いろいろメンテに金かかるし、シェアハウスだとどうしても利用が下手な人が存在するので。

不動産屋

  • 基本的にシェアハウスは嫌がられるので根気よく多数回るしかない
  • ネットでもさがせるけどいい物件はネットにでないので結局自分で探すしかない
  • DQN系不動産屋は嘘ついて借りることをよく勧めてくるが、奴らは仲介手数料さえとればあとはドロンなので無視したほうがいい
    • 若い従業員が多いキラキラ系みたいなところは話聞くのもやめといたほうがいい。
  • 賃貸だけ、仲介のみみたいなところはオススメしない。売買もやってるところはオーナーを直接知っているのでいい物件を持ってる率が高い印象

ルール

  • あまり明文化したルールを作ると、ルール厨が発生して、住みづらくなるので、基本的には堅いルールは極力減らす方向で
  • ルールに管理された生活はあまりしたくない。あと、ルールの抜け穴をうまく利用されてめんどくさいのもある。

f:id:tokisaba:20160213143033j:plainギークハウス新宿のリビングの本棚

利益

  • 基本的にはあまり儲からない
  • あと管理人として自分が常駐できないならやらないほうがいいかも。
  • 人任せの管理が難しい。自分が出入りする気がない場所は他人も出入りしたくないし。

家賃

  • 周辺の相場よりちょい高い目くらいがいいと思ってる。
  • 近所の6畳部屋のワンルームと同じくらいの価格がドミトリーで適切価格かなと。
  • 共有スペースを広めにとるとそれくらいの価格にしないと赤字になる。
  • あまり儲かるようならいろんな設備を充実させるといいかと。まぁ基本的には儲からないと思うけど。

近所付き合い

  • してるところもあるけど、うちはしてない。やり方もよく分かってない。近隣ギークハウスとの付き合いはあったほうが楽しいので、遊びに行ったりするといい。近隣じゃなくてもつながってたほうが楽しいし。Facebookにグループがあるのでそこでつながったりしてる。

設備

  • ガス乾燥機があると30分くらいで乾くのでいい感じ
  • ガス栓は湯沸し器のところとかすでにガスがあるところに増設してもらうと工事費安い
  • 乾燥機付き洗濯機とか、電気の乾燥機は感想までの時間が長すぎてオススメしない

共有アイテム

  • 要望があって買ってもだいたいは一時的に使うだけでゴミになるので要望は話半分
  • 誰かが自腹で買ってみんなが使えそうなら費用負担するくらいでいい

イベント

  • のみくいでも、勉強会でも、旅行でも適当にやるといいと思う
  • イベントやらないと中の雰囲気が外にわからないので住民が集まりにくいと思ってる
  • オープンイベントをたくさんやってるとリア充だと揶揄されることがある。
  • もくもく会、ゆるのみは簡単に開けて定期開催しやすいのでオススメ

とりあえず、ぱっと思いつくのはこれくらい。質問とかあれば適当に @tokisaba 宛とかにどうぞ。

事業拡大

  • 複数軒やってるけど1軒を大きくしていくほうが基本的にはよさげ。
  • 目が届かなくなるので誰得な状態になる気がする
  • ルールを厳しくしないと管理人なしにはできないけどそれは楽しくない

# ペット - ペット物件になると敷金が1ヶ月増しとかになるのでシェアハウスみたいなでかい物件だと結構な金額になるけど - ペットはアレルギーの人がこれなくなるので、すさまじいメリットはあるけど、若干のデメリットがあると言える。 - 世話デキる人がいないとストレスためちゃうけど。

f:id:tokisaba:20160213164734j:plainギークハウス新宿2のモカ様

ときさば系でSlackを導入した

FBのグループチャットでもbotが使えるようになるという噂を信じて1年待ったがだめなのでSlackを導入した。今までのパターンでいくと来月から始まる!みたいなのが起こりそうな気が微レ存。

Slack導入の目的としては以下のような感じ。

botを使っていい感じに住民にリマインドしたい
  • ゴミの日
  • イベント
  • 来客
  • 定期的なお知らせ
  • 人に注意されるとイラっとするけどbotが言うとそれほどでもない
      - 注意する方がストレスを感じるのでいい人がメンタルを消耗しないようにしたい
    
    エンジニア系が多いのでSlackに慣れてほしい
  • bot作ったり
  • 使ってない現場に導入させたり
  • 使ってる現場をさらに改善したり
    多様な話題に対応
  • 話が流れるのを避けたい
  • スレッド利用ができる
    交流を促進させる
  • チャンネルふやせばときさば系内の他の家との交流が促進できる
  • 家を横断した全体的な課題の共有と解決

やったこと

ルール
  • 名前の最後に所属をいれる tokisaba@新宿1 的な
    自動化
  • google カレンダーと連携してスケジュールを伝える

やりたいこと

  • bot)新住民追加時にルールの自動説明
  • bot)何かを忘れてるときの自動通知
  • bot)宅配のお知らせ

基本的にはまとめ兼ねてここにいろいろ追記していきたい。

git fatal: unable to access Peer reports incompatible or unsupported protocol version.

vagrantcentOS)を使っていたらgitコマンドが急に使えなくなりハマったので、またメモ

 

[vagrant@localhost vagrant]$ git clone https://github.com/hoge....

Cloning into 'hoge'...

fatal: unable to access 'https://github.com/hoge...': Peer reports incompatible or unsupported protocol version.

 

ぐぐってもそれっぽいエラーは出てこず、結局

$ yum update

$ yum upgrade

的にアップデートしてみたら治った。

error: failed to push some refs to 'https://...'

ハマったので記録だけ。

-------------
poge$ git push --set-upstream origin hoge/hage_hige
Counting objects: 270, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (138/138), done.
Writing objects: 100% (270/270), 127.36 KiB | 5.09 MiB/s, done.
Total 270 (delta 163), reused 197 (delta 108)
remote: Resolving deltas: 100% (163/163), completed with 55 local objects.
To https://github.com/Hogu/Hoga.git

! [remote rejected] hoge/hage_hige -> hoge/hage_hige (cannot lock ref 'refs/heads/hoge/hage_hige': 'refs/heads/hoge' exists; cannot create 'refs/heads/hoge/hage_hige')
error: failed to push some refs to 'https://github.com/Hogu/Hoga.git'
-------------

 

階層構造っぽいブランチ作ったときの、hogeの部分がかぶってたのが原因らしく、hoge2/hage_hige 的なものでブランチきってそっちにpushしたらいけた。
gitイマイチわかんない。