読者です 読者をやめる 読者になる 読者になる

If today were the last day of my life

やりたいことをがんばるブログ

Redmine SlackをインストールしたらRedmineが起動しなくなった話

タスク管理をどうするかというのは、SIerでも常日頃から課題です。
人に任せると基本的にExcelになってしまうので、自分がリーダーになってからはツールを導入しています。
自社サービスであればVisual Studio Team Servicesも良いのですが、新しいものは教えるコストも掛かるので、 ギリギリみんなが知っているRedmineを使うことにしました。

弊社グループの場合、自社クラウドでインスタンスを立ち上げるまでに 最短5営業日かかるので、多少のコストが掛かっても、メリットがあればAzureやAWSを使うことにしています。

EC2のBitnamiテンプレートを選択して、ポチポチしているだけであっという間に環境ができました。

そこまでは良かったのですが、 タイトルのとおり、プラグインを入れて再起動したところ、エラーが出るようになりました。

We’re sorry, but something went wrong.
We’ve been notified about this issue and we’ll take a look at it shortly.

下記の記事を参考にさせていただいて、解決できました。
RedmineでPluginを入れるのにハマった件 - ポジローぽけっと

結論だけ書くと、以下の操作が必要でした。

Sudo gem update rake
Bundle install –no-deployment

pandas でScrapingしようとしたらエラーが出た話

環境

  • MBP Late 2016 (Touch Bar 13-inch)
  • PyCharm Community Edition
  • Python 2.7 (Default)

書いたコード

  • 適当なHTMLのtableからデータを取ってJson出力したい
import pandas

url = 'http://npb.jp/announcement/roster/roster_0605.html'
df = pandas.io.html.read_html(url)
df[3].to_json('roster_0605.json',  force_ascii=False)

とれたデータ

{
  "0": {
    "0": "千葉ロッテマリーンズ",
    "1": "東北楽天ゴールデンイーグルス"
  },
  "1": {
    "0": "投手",
    "1": "投手"
  },
  "2": {
    "0": 67,
    "1": 22
  },
  "3": {
    "0": "金森 敬之",
    "1": "戸村 健次"
  }
}

遭遇したエラー

  • そもそもライブラリが全然足りていなかったので、スクレイピング関連を一式インポートした
  • PyCharm -> File -> Default Settings -> Project Interpreter の「+」で追加
    • pandas, lxml, html5lib, beautifulsoup4, six
  • その後、以下が発生
    • ImportError: cannot import name viewkeys
    • ぐぐったら、sixが古いっぽい。更新して解決。
      1. cd /Library/Python/2.7/site-packages
      2. sudo -H pip install six==1.10.0 -t .

Powerbeats3が壊れたので交換した話

Apple Storeで購入

昨年の11月、Apple Store銀座に立ち寄る機会があったため、 万引きエクスペリエンス(セルフ・チェックアウト)で購入していました。

購入直後の写真 f:id:suzusin:20170320152114p:plain

レシートがPDFとしてメール送付されてくるので管理が楽で良いです。 それまでは市販のBluetoothイヤホン(約2,000円)を使っていましたが、

  1. 電源を入れる
  2. 「Connected」とイヤホンから聞こえる
  3. iPhoneアプリで音楽を再生する
  4. iPhoneのスピーカーからそのまま音楽が流れてくる

というコントのような出来事が度々起きていたため、 電源を入れてちゃんと接続されてくれるPowerbeats3は重宝していました。

突然の故障

購入から3ヶ月経った2月某日。 ハーフマラソン中に突然電源が落ちました。 もちろんフル充電してから家を出ており、また2,3時間しか経過していないため、 バッテリー切れではないことはすぐにわかりました。

修理の依頼と交換まで

Apple Storeに行ったところ、 「StoreからBeatsの修理センターに送るよりも、お客さんが直接送った方がいいっすよ」とのこと。 Apple サポート

Apple サポートへのお問い合わせ - Apple サポート

電話をして事情を説明、集荷の依頼となりました。

日曜の昼間に電話しましたが、それほど待たされることもなく、 また手元にシリアルナンバー(購入時の箱の底のシールに記載)とレシートがあったため、スムースに進めることができました。 ただし、交換となった場合の注意点として、色は選択できないというのはちょっと気になりました。 Beatsはカラーバリエーションが豊富なので、特定の色が好きで購入する人もいると思います。 僕は特にこだわりが無かったので了承しましたが、黒以外似合わないような人に赤が届くこともあると思うと微妙です。

集荷、発送、完了までは各1日ほど

f:id:suzusin:20170320154438p:plain

f:id:suzusin:20170320154431p:plain

DeNA TechCon 2017に行ってきた話

DeNA TechCon 2017techcon.dena.com

DeNA TechCon 2017に参加してきました。

f:id:suzusin:20170213001003j:plain

申し込んだのは1週間でしたが、登壇者にはDeNAからFastlyに移籍したばかりの奥一穂さんがいるってことで、こりゃ行くしかないと年休を取得。 一方でセッション一覧を見てみれば基調講演から始まるA-Stageは人工知能機械学習ということで、ちょうど社内の企画で機械学習について調べていた自分にとって、かなり好都合でした。

基調講演と、続くセッションはPreferred Networksさんのゲストセッション。 最近の機械学習と深層学習については、このセッションを聞いておけばバッチリといった感じ。 とりわけ有名なこの動画の解説を聞けたのはとても良かった。

youtu.be

個人的にはどうにかソースコンバージョンに利用できないかなと考えているので、 これをきっかけに具体的な方法をもっと調べようと思います。

MacBook Pro (Late 2016)が届きました

昨年、MBP Late 2013を売却していたので、1月2日のApple の初売りを待っていました。
残念ながら大方の予想どおり、Touch Barモデルは対象外。
ですがApple製品は為替レートを考慮した値上がりが噂されているため、ここらで買っておくことにしました。

f:id:suzusin:20170114200915j:plain

購入したのは13インチ Touch Bar搭載モデル。
変更はメモリを8G→16GBと、キーボードをUS配列に。

正直なところ Touch Barは非搭載でも構わなかったのですが、非搭載モデルにするとCPUがイマイチというところと、新しいものは試してみようという気持ちで選択しました。 

www.apple.com

 

 あまり評判が良くない今回のMBPですが、個人的に不満はありません(今のところ)

キーボードはストロークが浅い方が好きだし、接続機器も以前から無線化を進めているため、せいぜい外部ディスプレイ出力(HDMI)がそのままだと出来ないくらい。

こちらはdongleを買うか、USB Type-C to HDMIケーブルを買うか、検討中です。 

Azure App Serviceで寿司代金の記録botを作った話

概要

  • 払った人と金額を記録できる /oaiso [payer] [amount]
  • 後から照会できる /tsuke show
  • 後から消去できる /tsuke clear

f:id:suzusin:20161228171949p:plain

背景

  • 週末勉強会で寿司を頼むことが多い
  • 部屋は参加者でローテーションしている
  • Webで注文する事が多いため主催がまとめて支払う
  • 寿司代金の記録botの需要が発生!

ソース

github.com

技術的なところ

  • Azure App Service
  • .NET Framework 4.6
  • Azure Cloud SQL Database
  • Slash Commands | Slack

その他

  • Iconは大人気!いらすとやさんからお借りしました
  • ユーザマスタを持っていないので人数が変わる場合は改修が必要
  • 良い感じに精算するコマンドを付けたい ex: Aさん3000円、Bさん4000円、Cさん9000円なら3000円は相殺する等
  • Slackが3秒でタイムアウトする問題が未解決(常時接続オンにしてみたが変わらず) f:id:suzusin:20161228173512p:plain

転職の面談と技術テストを受けてきた話

経緯とか概要

  • 渋谷界隈でインターネット関連というイマドキの企業
  • 転職サイト経由でスカウトが来た
  • マネージャーと30分程度の面接
  • その後、用意されたPCでコーディング試験

技術テスト概要

  • プログラムを書いても良いし、設計書を書いても良いし、テスト仕様書でも良い
  • ぐぐってOK。環境にはSublimeAtomなどの各種エディタ、Office、あとWinSCP, PuTTY
  • コーディングならPHPのみ
  • 提示された売上テーブルから対象日、セールイベントごとに売上サマリをCSV出力する
  • テーブルはmysqlに存在していて、接続情報が提示されている
  • Webじゃなくてコマンドライン実行(←PHPでやったことないよ!でもぐぐればわかるかな)

そしてテスト開始

もちろんコーディングを選択。
まずはHello Worldを出力するphpファイルを作ってアップロード
で、コマンドラインから>php index.php
が、エラー。Could not open input file...
えー開けない?権限かな?フルパス指定したりとかパーミッション変えたりとかするもNG。
待てよ、これはトラップなのでは?そもそもこんな単純に実行できるか?
php -vを叩く。・・・V5.4なんたらかんたら。大丈夫そうじゃん。
Guestアカウントでログインしてもらったが、そもそもGuestで実行するには設定がいるのか?
邪推しつつも、ぐぐりまくる。Stack Overflowで似たような事例を発見。
しかしサーバの設定を変えるのは宜しくなさそうだ。
そうこうしているうちに制限時間45分のうち20分が経過。担当者は試験開始と共に退室している。
やばい。背に腹はかえられぬ。いったん簡単そうなテスト仕様書を作ろう。
Atomを開きMarkdownで正常系、異常系のテストケースを列挙していく。
10分くらいで一通り書いた感。そもそも単純な仕様のプログラムに大したテストケースは無いだろう。
申し訳程度に境界値テストを追加してみる。意地悪系はいるかな?

とりあえずこれで採点されない事は無いだろう。
サーバの方に戻ってみる。
なぜ実行できないのか。
lsしたら、そもそもファイルが見えない。
ここでふと気がついた。これ、見えないのでは無く、本当に存在しないのでは?
ちょうど担当者が戻ってきた。事情を説明する。表情が曇る。
そしてWinSCPPuTTYの接続情報を確認する。
ホスト名を見ると、、、片方はクラウド、片方は物理サーバ(多分)が指定されていた。
これらは担当者が設定してくれたので、正しいものだと思い込んでいた。
担当者は平謝り。トラップでは無かったらしい。
私もエンジニアでありながら気づけなくて情けない。
申し訳程度だが、と、バックアップ策で作成したテストケースを見せたらかなり安心してくれた。
きっとそのままでは評価のしようも無く、またその理由も担当者の不備では怒られるのだろう。

しかし、区切られた時間でテストが始まってしまうと緊張もする。
なかなか冷静に考えられない。
慣れない環境というのもあるが、やっぱりもうちょっと早く気づきたかったなぁ。

何事も経験、切り替えて行こう。