2017年12月10日日曜日

vimagitが良かった

vim pluginで [vimagit](https://github.com/jreybert/vimagit) というのがあって、
contributeできたので宣伝。

gitを使うためにvimから離れたくないという人のためのpluginで、
似たようなのだと vim-fugitive とかがある。けどこれ、gitをそのまま動かしてvimで表示しているって感じで馴染めなかった。

で、 <http://blog.bakunyo.com/2016/01/08/vimagit/> なのを見つけて使ってみたらかなりよろしい感じでした。

タブを使いまくるので、vimagitもスペース2回で別タブで開くようにした。

nnoremap <Space><Space> :tabnew +MagitOnly<CR>

Lで1行のみaddしたり、vで選択Sでその範囲addできるし、
CFで1個前のcommitに含められるので楽。

push, checkout stashは次の1.8で出るらしいので楽しみ。

2017年9月14日木曜日

vimのタブ一覧

最近開発環境をちょっとあれこれ変えて試行錯誤してる。

よく分からん現象なのはこれだな https://gitlab.com/gnachman/iterm2/issues/324

それとvimのタブを一覧で出して移動させたり、閉じたりみたいなのが出来ると良いなと思ってプラグイン探したけど無い。
いや多分unite.vimがそういう機能提供してるかもしれんが入れたくないかなぁ。不要な機能が多すぎる感。

本当にシンプルに一覧、移動、閉じるだけが出来るだけのプラグイン。
無いなら作るのDIY精神か。

2017年9月4日月曜日

awawa

やっぱ辛ぇわ。

いや慣れない環境とか色々あるんだろうけど。
仕事内容とか進め方とか色々色々...。
仕事できない感あって辛い。

あとは孤食が多かったのであまり人数で飯食うのもあれだなと。
ただ誘われて断れない人間だし。

朝は一本遅らせても良さそうだが、座れないのでなかなかな。9時前に出れば間に合うことはわかった。
通勤時間かかり過ぎなのでチョットホントに引っ越ししないと駄目な気がする。

後は収入がなあ。
末締め来月15支払いなので今月怖い。

寝れないなぁ。

2017年8月6日日曜日

GRAVITY DAZE2

良かったです。最後が良いと全て許せる的な。

まぁ悪い点あってやっぱカメラだな。
重力操作中に右に行こうとすると右回転で傾く...。
移動が遅いので、常にXボタン押しながら早く移動だと、カメラリセットがR3なのでうごごごご。

あと、前作のキャラがポロポロ出てくるんだけど全然覚えて無くて笑う。

サブクエはその都度消化してたけど、
重力禁止とかくっそだるかったり。
ただ終盤のストーリーなんかにも絡んでくるので良い感じに。
手紙が届かなくなったら〜みたいなのは良い。

ボス倒してスタッフロール流れた時にえ?とかなったけど
終章があったのねって感じで。
終章がかなり燃える展開だったので良かった。
柱は中がどうとかよりひたすら外壁をひたすら登り続けるだけで良かったんだけど分かってないわ。

まぁキトゥンちゃんが良い子すぎたな。

後はマリオRPGをさっさと終わらせよう。
ラスダンに来ると終わらせられない病気。

とりあえず仕事は8/18で終わりで、その後有給消化タイム。
暇なら8月から来いよと言われたのでちょっと早めに出社して働く感じだな。


2017年6月29日木曜日

テンカツ7話 デジタルサイネージ

まぁ現職のデジタルサイネージについて語るか。会社が特定されない範囲で。 展示会行ったり仕事で別のところ触ったりもあったのでまぁなんとかなるだろ。

http://kabekake.tv/digitalsignage/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%B5%E3%82%A4%E3%83%8D%E3%83%BC%E3%82%B8%E3%81%A8%E3%81%AF%EF%BC%9F/%E4%BB%95%E7%B5%84%E3%81%BF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/ とか https://www.si-po.jp/post/new-signage/27395.html なんか見たほうが早かったりするが

呼び方はサイネージ、サイン、デジサイ、DSとかまぁサイネージが多いか。 駅構内とかビルの上にデカデカとあったり、会議室の予約状況とか、一番目につくところだと電車の中のトレインチャンネル辺り。普段は誰も見てないのに、たまに「調整中」って張り紙があったり、Windowsのデスクトップが表示されてたりするとスマホで写真取られたりするあれです。あれは俺に効くのでやめてくれ。

仕組み的には

  1. 管理画面があって
  2. そこにユーザが動画や画像なんかの素材を投稿
  3. 素材を加工してコンテンツを作る
  4. コンテンツを並び替えて一つのループを作る
  5. aa月bb日のxx時からyy時までzzのループを放映する、とスケジュールを組む
  6. 放映用端末に対してコンテンツ及びスケジュールの配信
  7. 放映用端末でスケジュール通り放映

ってところか。

管理画面はブラウザ経由だったり、アプリがあったり。 まぁアプリでもサーバに上げてしまえば変わらんのだけど、 管理するユーザと放映端末が近い位置にある場合は、 アプリで作ったものを直接放映端末に投げたりってことをしたりするが...。

素材はもう全部動画にしようぜってとこだが、 トレインチャンネルなんかはほぼ全部動画で作ってたりするけど、 ちっこい飲食店の前なんかに置いてあるものは画像で十分なので。 SIMカード挿してたりするとギガが減ってしまうので画像にしておくとか工夫が必要。

まず1920x1080で枠があって、そこに素材を当てはめる形。 枠を3つに分割して違う画像をそれぞれ当てはめることもする。 駅の構内のサイネージなんかだと縦置きディスプレイに3個くらい画像置いてるのをよく見る。 もちろん1920x1080ではない形式も無くはないが、4Kの広告動画とか頻繁に作るの大変では?ってことで普及してる感じはしないな。他の素材と足並み揃え無いとあっちは綺麗だけどこっちは汚いなみたいなことになりかねんし。

それとテロップくらいはどこも標準であって、枠とは別に置くこともあるし、枠に素材を置いた後にその上に被るように置いたり。

そうやって素材を加工していったものをコンテンツと呼んでいて コンテンツ1個だけだとつまらないので、 複数をまとめて順番を決めてそれぞれの放映時間を決めたり。 コンテンツ間の切り替えをフェードイン・アウトとかのトランジションかけたりして... 出来上がったワンループするものを番組とかプログラムと呼んだりする。 (サービスごとに呼称が違う...これをコンテンツとか言ったりしてると訳がわかなくなることもある)

このプログラムを6月29日の8時から12時までとかセットする。これをスケジュール。 例えば、8時から11時までモーニングのメニュー、お昼の時間帯にランチメニューみたいなスケジュールを組む

で配信。USBメモリになんかに移してディスプレイに挿したり。 ディスプレイが多かったり、頻繁にスケジュールを変える、そもそも挿せない(筐体に埋め込まれてたり)なんて場合には ネットに繋がった端末を置いといて、そこに流し込む。最近はサイネージ用のAndroid端末があったりもする。

そうやってコンテンツとスケジュールを独自のメディアプレイヤーが取得して放映する。まぁUSBメモリを挿すだけのディスプレイだとスケジュール機能が無かったりもあるんだが。

タッチパネル式もあって、注文をこれでやったり、観光地なんかに多言語で置いてたり。まぁ仕組みが別物になってしまうので難しい...。

技術的にも色々やることはあって、 例えばkinect置いといてなんかやるとか、Lアラートなんかの災害情報を流すとか。 コンテンツプロバイダ(NHKとか)から動画を自動で取得してスケジュールに組み込むとかもある。 最近は独自に作られていたメディアプレイヤーをブラウザでやれば良いんじゃねって流れがあったりする。ブラウザでやればタッチも出来るし、スケジュールを即座に変えられたりハードに左右されないとか色々。 SNS連携とかスマホ連携とか、ビーコン置いといて近くに来たら何かしてもいいだろうし。

トレインチャンネルは置き換えられんだろうけど、 2020年のオリンピックに向けて動いてたりするので仕事は多いハズ。

私は興味なくなったので辞めるが、弊社はエンジニア募集してるので興味があれば是非。入ってくれれば心置きなく去れるし。

2017年6月26日月曜日

テンカツ6話

12話まで続ける予定。

人食いの大鷲トリコ良かったです。最初やっぱりあの謎の挙動に慣れづらいところはあるが。

入社誓約書に捺印して送ったのでもう後戻りはできないぜ...。
で、退職時期を遅めにズラして欲しいの要望。
まぁエンジニアが一人しかいなくなってしまうので、妥当な要望ではあるが...
そもそも一人辞めたらあと一人しかいなくなるっていう現状がな。
私の責任では無いのでは、と思うがその辺上手いこと軟着陸させられたらとあれこれ話し合う予定。
いや、まぁすぐにでも私は辞めたいが。
次が決まるまで・・・とかも言われたが、そんなダラダラ続けたくないし、向こうにも失礼ですわ。
なので長くて2ヶ月かなぁ。伸びる分割増でお賃金貰える法律とか無いの。

ってことでエンジニア募集しているそうです。
あれこれ仕事はあるのでメインでやって欲しいと言われたが、
今後入る人が頑張ってください。

2017年6月23日金曜日

テンカツ5話

内定とりました!○○です!とか今のうちに言っといた方がいいんですよね。
内定もらったのでひとまず退職の意思を伝えました。まだもう一社最終面接待ちがあるんだがズルズル延ばされてるんでもういいやって気分。
まぁ予想通り引き止められたよね。 2時間くらい話したとは思うが、これからこういうことしようとして考えてて〜とか、 次の会社大丈夫なのかよとか言う話をされた。 超小さい会社なので抜けられるとめちゃくちゃ困る!ってのは実際そこに身をおいているのでよく分かるんだが...。 その後普通に仕事してそのまんま帰った。
その会話を持ち帰って、うだうだと考えてることを文字化したい。
辞めたい理由として
  • 元々いくつかの会社を渡り歩こうと考えてた
  • 仕事が(商材としても作業としても)つまらない
  • 給料上げたい
  • 技術的に向上見込めない
  • だるい仕事押し付けられる
とかとか...。言わない書かない小さいことも少なからずあるけど。
「いやいや別のこともやろうとしているし、技術的にも学べることはあるはず! 知り合いにこういう技術の人間いるし紹介してやるし、後輩入れたらそいつにだるい作業投げればいい」
みたいな会話だったりがあったけど、 結局現状ではどうにもならない、なってないってことだよね。 1年後にそれが改善されるのを待つか、1ヶ月後にその辺が整備されているところに入るのとでは 全然違うと思うし。
それと次の会社はどうなの?ってのはスタートアップの企業なんでそのへんは分からんよなぁ。 少なくとも1年くらいは大丈夫そうで、もしそのまま続いていくならそれで良いし、 駄目なら間近で駄目になるのを見れるのはそれはそれでいい経験になるだろうな。 その辺は向こうの社長とも、「会社がポシャっても平気な程度には従業員は手に職持ってるし、君もそうなるでしょていうかそうなれよ」とか会話してた。
「うちはこれからあれこれやろうとしているので仕事は沢山あるが、そこはどうなの?」
う、これはそんなに聞いてないんだよな。入ったらまずどういう仕事振られますか?って質問はどこにもしてるんだが、 ここはまず社内システムやって様子見たいとは言われてる。じゃあその先は?ってのは聞けてなかった。 やれることはモリモリありそうだとは思うがなぁ。分からん!
元々いくつかの会社を渡り歩こうと考えてた
ってのは井の中の蛙になるのは避けたいなと思ってるのが理由。
じゃあなんでそこ行こうとしてるんだよってのは内定もらったのがそこだけだったので...ってのは抜きにして、 有能っぽいエンジニアがいるって点が一つ。その人の横で出来るってのは強い。 それとテンカツしててお前実務経験浅いし能力無さそうだし駄目だわ!ってことが多かった。実際そうだと思うし。その点、能力ないけど育ててやるわ!ってのはいいよね。落とした会社にはまだ見ぬ優秀なエンジニアを探して早10年...とかなることを切に願ってる。
というわけで一旦保留で置いてきたがやっぱり辞めますって結論で良さそうだな。

2017年6月21日水曜日

テンカツ4話

3話があったはずなんだが...まぁいいか。

社長「エディタは?」
ぼく「vimです」
社長「シェルは?」
ぼく「zshです」
社長「キーボードは?」
ぼく「HHKBです」
社長「無刻印?」
ぼく「US無刻印の墨です」
社長「採用!」

2017年6月12日月曜日

献血2回目

です。
慣れとかないな。2年振り2回目。
怖いので針とか血とか見ずに終わった。あぁその前の検査の時に血を見てしまったか。
ただ管が腕とか手に当たるので、生暖かいのを感じてうごごごご。
ヌキ始めて1分くらいで、不安感が押し寄せてきて胃が重くなるような感覚。
勢い良いですね〜とか言われ、ホントに2,3分くらいで終わったと思う。
多分タバコ吸ってるからとかもあるんだろうけど、
血管が細いとかで見つかりにくいらしくて、「これどうですかね?」「こっちの方が太いんじゃない?」みたいな会話が。
まぁ使ってもらえるなら良いです。
ジュースとクッキー貰ってモグモグしてるとタオルとトートバッグ貰って帰った。

流石にその日はだらだらと。次の日にキンプラ見に行きました。
良かった・・・と素直に言えない感じがなぁ。
単純にオバレの熱い展開とか決着をつける部分に関しては文句ないです。
ただホモっぽい雰囲気がなぁ。
いや、雰囲気だけなら別に良いんだが、男同士でキスするとそれは駄目でしょって思えちゃう。

2017年6月4日日曜日

kotlin

kotlin勉強しようかなと。

作るものが無いと勉強できないので、afr-loadをandroidで見れるようにする方針で。
とりあえずtv_programs叩いてjson返すとこだけやった。
というかscaffoldしてないところとか、json要らんやろってところ放置してあるので、
これを機に整理出来ると良いな。

javaはチョットデキルレベルだったので、
「kotlinのこれはjavaでは〜〜」とか言われても良く分からん。
結局javaの方ググってほえ〜こんなに楽になるのか〜とか2重に手間になってるな。

2017年6月2日金曜日

ハンドスピナー


ハンドスピナー良い。
元々キャストパズルなんかも手持ち無沙汰解消したくてやってたので、
この手のは非常によろしい。

三股タイプだけど二股タイプのも欲しい気がする。

ついでにFidget Cubeも買った。というかハンドスピナーじゃなくてFidget Spinnerか。
途中まで見て最後まで見てないアニメを消化してたので、その時に触ってると良い感じ

afr-loadはerbからslimへ変更中...。
とりあえず一括変換したけど精度悪くて崩れまくってるのでシコシコ直さないと。
テンカツはまぁこれで終わりかな。

2017年5月22日月曜日

所感

所感
弊社では手伝ってくれる可愛くてパンツ見せてくれそうな女の子を募集しています。
とりあえず、いくらかtwitterでデータ取れたので。
  1. そもそもcronが動かねえ
  • 原因が分からん
  • sysv-rc-conf cron onしてokだと思うんだが...
  • dockerは1コンテナ1機能1タスクなのでcronやるのおかしくない?という考え
  • cronだけのコンテナ作らないと駄目なんですかね
  1. データ少ねえ
  • 例えばジョーズ3: 447件
  • バトルランナー: 1667件
  • ザ・コア: 212件, ダニー・ザ・ドッグ: 278件
  • 2ch実況だとつまらなくても3スレ(2スレ+500レス)くらいはいく
  • 普通は5スレ, 面白いと(かなりのB級映画だと)もっと
  • まぁ表示に時間がかからなくて済むという問題はある
  • ウン千件を画像つきで表示になるから遅延表示とか考えてたんだが...
  1. そろそろ整理しとかないとおかしいものが...
  • dbの方に制約つけてないせいで重複レコードが
  • model側でも制約つけてない...
  • 謎のカラム(例えばmoviesのrelesed_countryとcountry)
  • テストふっ飛ばして機能つけた部分が...
  • movieとか編集削除機能つけないとdb直接触って重複削除することに
なので今週整理する方向でやろう。
  1. テーブルに謎カラムとか見直し
  2. db制約付ける
  3. app側でも制約つける
  4. db/seeds.rbが重複するもの入れてしまってるので修正
  • ついでに要らないものを削除するようにしてくれてると楽
  1. テスト書き直し
  • minitestそもそも触ったことないわってことでminitestで書いてたけど
  • rspecでやります
  1. fetch_afr_loadのタスクから見直す
  • つーかherokuの方で動いてねえ
  • 6月分が入れられてないので早く修正しないと死ぬ
  1. 画面でレコード操作系が必須
  • 重複とか削除するのに必要
  • policyも一緒に考えられるので良い
  1. guardでrubocopも同時に動かないと意味があんまりない
  • のでやる
  1. そろそろ使われること意識しないとモチベーションが
  • 宣伝必須
  • 午後ロースレに投下...はどうなんだろうな
  • 午後ローの時間twitterでハッシュタグつけて...
  • 午後ローのmastodon無いのかよ
  • 誰か巻き込んでしまえばやらざるを得ない
でまぁちゃんとtrelloかprojects使おう...。

2017年5月15日月曜日

とりあえず見た目は

実況リプレイは、一応ある程度実装出来た気がするのでいいかな さすがに画像くらいは表示したかったが、短縮urlを後からうだうだやるのが無理そうだったので streamで取った時にexpanded_urlを取るように変更 後はhtmlというかjavascriptうだうだっと。バーはどうにかせんと異物感半端ないな。



taskはローカルではcronでやったけど、herokuだとschedulerに登録してうんたんしなければならない。 schedulerに登録するのにクレカ登録嫌です。 現状webだけで
6.46 free dyno hours (1.17%) used this month
らしいので、 taskが増えたところで20日 * 2時間の40時間くらいなのでオーバーしないはずではあるが...
この辺考えるのがめんどうなのでさくらvpsとか考えるべきか。1G 972円/月でkomifloより安い! こうやって月々いつのまにか金が目減りしていくんだろうな。

2017年5月11日木曜日

3日目もだめ

なんでだー。

  1. まずlogに書かれてない -> cronがそもそも動いてない。 -> service cron startで動かしました。

  2. 時間を直後にしてテストしてみる -> なぜかrakeが無いとか言い出す -> あなた日曜には動いてましたよね? -> https://www.aptible.com/support/topics/enclave/how-to-use-whenever/ 環境変数がうんたんかんたん。 -> config/schedule.rbに ENV.each { |k, v| env(k, v) }を追記してテスト -> 動きました(´・ω・`)

  3. 時間を元に戻す

はーまじ。

2017年5月10日水曜日

2日続けて失敗

とりあえず1週間分の午後ローの実況データが欲しかったので、task作っておいたんだが...。

railsとかrakeの仕組み的に自動実行するのがあるのかと思ってたら無いのね...。結局cronか。 ただwheneverとか使えばruby的に書いてcrontabに変換してくれるようなので導入。

日曜の夜中の2,3時からcronが動くかテスト...。 何故か動かなくてウンウンしてたらtimezoneが設定されていないので-9時間なのね。 なのでとりあえず4:33:00に動いて120m + 前2m + 後ろ5mで取得するように変更。

ただ会社にいる間に、そう言えばtv_programsのon_air_dateって2017/5/10 00:00:00とか 13:35:00じゃなかった気がするな・・・とか気付いて家に帰って確認したらやっぱり失敗してたらしい。 dbの方にもexecして+13:35:00でupdateかける。

2日目の正直と思って今日も確認したがデータ入ってない...orz。

なんでだよ、つーか何時に動いたのかわからんから 自動実行はいつ動いたかくらいちゃんとログ書こう。 whereおかしいんじゃねとto_sqlしてみたら案の定。

p TvProgram.where(on_air_date: now..(now + Rational(1, 24))).to_sql 2017/5/10 0:33:00に動かしたのに2017/5/09 15:33:00とかに。 うががががががががが。

またdbで今度は-09:00:00でupdate。 今度こそ動くだろ。

テンカツが全落ち決めてしまったので適当にスカウトメールに返事してしまったのが悪いな。 まるで興味ない会社に行って話聞くの時間の無駄すぎる。 来週受けるところは興味あるところなので問題ないだろう。

2017年5月5日金曜日

dotfilesとか

とりあえずdotfilesをhttp://qiita.com/okamos/items/7f5461814e8ed8916870を参考に管理。 ついでにあれこれ設定を変える。vimでspaceを2つにするとか...。あまりにもあらゆるところで space=2なので毎回変えなきゃだし、もう折れてしまった。 pluginはdeinで管理。毎回shをcloneして実行してvim開いて:call dein#install()になるのがだるいが...。

ただ環境ごとに異なる設定したい場合はどうすればいいんだろうな。 macの環境にだけrbenv入れて管理したいとかになると、rbenv入ってたらこの設定を、みたいにすると ひたすらダラダラ長くなっていきそうだが良いのかどうか

それとafr_load_railsの方でbulletとrubocop入れて修正。 bulletは意外に文句言わなくて逆にビビる。絶対引っかかりまくると思ってたんだが...。 rubocopはLine is too long.が長すぎてな。 classの前に説明が無いエラーはもうめんどくさいので無視。 というかrubocop -aで自動でモリモリ修正してくれるのが助かる。trailing spaceとか無理だし。

それとlive_commentを収集するタスクを追加。 後は表示画面か。

dockerの方はこれでいいのか...?な感じで進めてるのがな。 docker execでloginして作業...だと個人の.vimrcとか持ってこれないのでは?とか思っちゃうんだが分からん。 それぞれ個人の開発に必要なものを入れるシェルスクリプト持っておいてそれを実行するようにDockerfile書くとかなのかな。 というかdotfilesは持ってきた後lnしたりする作業あるのでシェルスクリプト作っておかなきゃだめか。

2017年4月26日水曜日

テンカツ2話

まぁ1話から間空いたんだけど...

とりあえず1話で書いた4社の面接分は終わったので。
3はすぐに辞退、1は割りと話弾んで良い感じだったんだけど、経歴がなぁ技術がなぁと言うことで落とされた。2はもうずっと死んでたわ無理ですね。こういうの見とけば良かったと後悔するが先に立たず。
質問は「今の環境はどう?(チームとの関係とか)」とか「こういう時どうする?」とかが多いな。まぁ「こういう時どうする?」は口八丁でどうにかするしかないが、現状についてさらっと言えるようにはしとかないとなとは思った。

で4はなんだろうなぁ。何か違和感をひしひしと感じてる。いやまぁ内定貰えたら飛びつくとは思うが。

まぁこれで弾なくなったので、補充しなきゃだが、なんかスタートアップ系で声がかかったので、とりあえずそこ行ってみようかなと。自社プロダクトまだリリース出来ていないっぽくてよく分からんしとりあえず話聞いてみる作戦で。

もう2社落ちて心が折れてしまったので正直やる気でないが...今の環境に居てもやる気ないのでまぁやるしかないな

2017年4月19日水曜日

docker触る

こういうのが仕事で触れるとね...。今の仕事場がうんこだなとか思う最大の点だな。
名前は知ってるけど実際に何かで使わんと覚えんなで触らなかった。
まぁまずherokuに上げた時に困ったのが第1で、vimのplugin整理したいけど今の環境を壊したくないのが第2。 触っておくべきってのはまぁあるけどまぁ
で、とりあえずzshを入れてzshrc引っ張ってきてvimを入れてvimrcを引っ張ってきて...までやった。 この辺のdotfilesを整理したいのもあったな。まとめておいてgithub置いとくというあれ
つーかctrl+pが反応鈍いんですけどおおおおおおおおとかぐぐったらあった http://qiita.com/takahiroki/items/60ec916383025160fbb8#_reference-a2d9244a6c4496f4df05
とりあえずここで - dotfilesをgithubへ - https://github.com/tcr/rust-webplatformを試す はやっておきたい

2017年4月9日日曜日

テンカツ1話

転職します。
そこまで急いで転職するつもりは無かったんだけど、forkwellに登録してたら声がかかったので、じゃあ行ってみるかとなった感じ。 そうなって来るとじゃあついでにちょっと気になるとことか見てみるかで今週動いてた。
まぁ最近のモチベーションの低さはやばいしな。完全にやる気ないし、というか開発以外の仕事増やすのやめてくれよって思う。 現職の不満言ってても仕方ないので、見てきたところだと
  1. 最初に声かけてくれたところ 受注メイン、たまに自社サービスやるけど数年でポシャってるよな会社
    • ここはまぁ結構話し聞いてて面白かった 一番楽しく話が出来たな
    • 会社の雰囲気とか多分自分に合ってる気はする
    • 色々試そうとかそういう気概はいい感じ
    • 自社サービスはここがポシャった後、別のところから有名になるサービスが出てるのが笑う
  2. ここは自分から声かけたところ 色々な意味でレベル高い 某アレにアレ提供してる
    • 色々というかまぁ特に英語なんだけど
    • 共通言語はプログラムなので問題ないですとか言われたが横で英語で会話されてた
    • 雰囲気はよく分からん 外人半分くらいだったな
    • 週1リモートは嬉しい気がする
    • かなりスキル高そうな人たちで、ここに居たらレベル上がるわってのは強く感じる
    • 強そうなステッカーもらった
  3. 3番目に声かけてくれたところ これだけでどうやって食ってくんだってサービス出してる
    • すごく2番3番煎じ的なサービスのみやってる
    • 一応面談に行ったが、その理由は「この1個だけでどうやって食ってるんですか?」「この後他の食い扶持作らないんですか?」的な質問がしたかったから
    • 上の質問で返ってきた答えにもがっかりな感じ。新しいことをするとか、この分野でトップ目指しますよ的な思想無いスタートアップかぁ...とか思った
  4. ここはforkwellとは別で声かかったところ
    • 某界隈にはそれなりに有名なのかもしれないサービスやってる 私はやってないのでよく知らない
    • 面談行った時に色々しくじった気はするが、まぁそれなりに喋れて手応え合った気がする
    • 自分の主義思想とは合ってる...ような気がする
    • ブログ見たときに、ちょっとうわっと思う記事ばっか書いてる人がいてこれはぁ...とか思うがエンジニアじゃない人が書いてるのかもしれない
    • オフィスの雰囲気見た時の暗さが気になる
でとりあえず4社。志望度的に2>1>=4>3くらいかな。というか3は無いな
色々会話をやってたが、何を転職の軸にしてるかってのは無いと駄目だなってのは思ったというか聞かれた。
その辺考えて今後エンジニアとして食べてくなら、キャリアを意識するならという意味で2の志望度高いのかなと感じる 1はそこで働いてる自分をイメージできる感じで強い気がする。4はなんか会話も含めて嫌な雰囲気を感じるのが...ただやってるサービスは価値あると思う。
就活だっていう感覚忘れてて質問用意してなかったのはあかんなと思った。 終わった後にあぁこれ聞いとかないといけなかったとかなるのは良くない。
まぁ一通り結果待ちだな

2017年3月18日土曜日

punditのtest

pundit使うので、role-abilityのtable構成はhttp://magazine.rubyist.net/?0047-IntroductionToPunditを参考にしたというかそのまま。

とりあえずusersのindexを、adminのみ見れて、normalなuserは見れないのを試す。

userのindexにauthorize @usersを入れておいてusers_policyに飛ばす。users_policyではcan?(__method__)して、action名教えてあげる。can?は別のところでも使いたいのでapplication_policyで。

def can?(action)
    action = action.to_s.chop
    user.abilities.exists?(domain: record.class.to_s.split("::").first.underscore, ability: action)
end

recordは@usersが入っているので、そこからnamespaceだけ取り出す。abilityはusers_policyから貰ったaction名を?は要らないので外して探す。

テスト側ではabilities.ymlに権限入れておく、これをadminのみにつける

one:
  domain: user
  ability: index

role_flows_test.rbで、まずsnsで認証通してuser作成する。

class ActorFlowsTest < ActionDispatch::IntegrationTest
    setup do
        get "/auth/twitter/callback"
        @user = SocialProfile.find_by(uid: "123545").user
    end

    def set_user
        @user.role = roles(:two)
        @user.save
    end

    def set_admin
        @user.role = roles(:one)
        @user.role.abilities << abilities(:one)
        @user.save
    end

    test "index by admin user" do
        set_admin
        get users_path 
        assert_response :success
    end

    test "index by user" do
        set_user
        assert_raise(Pundit::NotAuthorizedError) do
            get users_path 
        end
    end
end

adminなuserはindex見た時にsuccessはok。

問題はnormalなuserで、indexが見れちゃいけない。indexにget飛ばした時に、500-599とか返さないで例外出してしまう...。assert_responseは諦めて Pundit::NotAuthorizedErrorをcatchするように変更して通った。

これ全部につけるのか...。やっぱ辛ぇわ...。

2017年3月17日金曜日

omniauthのtest

policyのtestしようと思ってguard動かすとボロボロボロボロ...。

まずログイン状態になってないのがアウツ。まぁsession入る要素無いし。

omniauth通さず、controller testで直にsession入れてしまえば良い気がするが、方法が見つからん。仕方ないので以下の手順にせざるを得ない

  1. omniauthでsession入れる
  2. ApplicationControllerでcurrent_user入れる
  3. やりたいtest実行

でもこれってomniauthにrequest送らなければならんが、どうやってrequest送るんだよとか探してた。

Integration Testing見に行って読んでパッと分かればすぐ終わる話。

つまりtest_modeにして /auth/provider にgetリクエスト投げればいいらしい。どこでどう書くんだよって感じでよくわからなかった。

全部のcontrollerで、ログインするかどうかは分からんが、とりあえずその準備をしておきたいのでtest_helper.rbに

if Rails.env.development? or Rails.env.test?
    OmniAuth.config.test_mode = true
    OmniAuth.config.mock_auth[:twitter] = OmniAuth::AuthHash.new({
        provider: 'twitter',
        uid: '123545',
        credentials: "credentials",
        info: {
            email: "iaia@example.com",
            name: "iaia",
            nickname: "iaia",
            description: "setumei",
            urls: {public_profile: "example@exampl.com", Website: "exampl.com"},
            location: "tokyo"
        },
        extra: {raw_info: "info"}
    })
end

って追加。各controller testでget /auth/provider する。

rails routes

すると /auth/provider 無い...。多分何か設定しなければいけないんだろう。面倒なので

get "/auth/twitter/callback"

してしまう。 常にログインしている状態でtestしたいので

setup do
    get "/auth/twitter/callback"
end

でわざわざrequestにomniauth.authとか送らんで良いらしい。test_helperで追加したmockが自動で request.env に入っている。そのためのtest_modeか。

2017年3月12日日曜日

午後ロー視聴管理2

とりあえず認証とwatched管理は問題無さそうなのでherokuにあげる https://afr-load.herokuapp.com/
認証でdevise使うのが多かったので何も考えずに使ってしまったが、導入でうだうだやってしまったし、メールで登録だとかって機能は要らないし、というか別に認証でいちいちgem使う必要ないなということで排除。omniauthは使うが...。
後は重いタスクでユーザ権限とwatchedリストと実況リプレイかな。
ユーザ権限は、tv, movieの編集だとか手入力での追加辺りの編集権限。他にも必要なら追加で。 パッと考えつくのはroleテーブル作ってadmin, movie_edit, movie_addとかで管理、user.can_movie_edit?とか都度やる。特に難しく無さそうだが、ググると結構自前で作る権限系がどうこう、gemが色々あって〜ってのをよく見る。無駄gemいれたくないのでこの辺は応相談だな。
watchedリストはまぁ簡単。見た目の問題だし。
実況リプレイはそもそも必要か考えないと。

2017年3月6日月曜日

眠れないので


とかいう題でブログ書きながら寝落ちしたので
ニーアが面白い。移動にストレスが少ないのが強い。FF15と比べると圧倒的に強い。
とりあえず午後ローの視聴管理作った。
既に午後ローで見た映画だけど、再度放送されると見たっけ?となるので そういう意味ではまぁ必要かな。watched movieでunwatched tvな時の表示がまだだが
現状、視聴管理しか出来ないので視聴管理とは言ったけど、 視聴管理がしたいのではなくて、録画管理がしたい。
torneもうちにあるbraviaも、アプリから録画情報を取ってそこから削除だとかが出来る。
なのでhttpなapiあるだろうと公式ドキュメント探すが無いのでググる。
【nasne】APIを調べてみた。ディスク容量が知りたい、他
まぁnasneは皆やるだろうな感ある。もちろん推奨されてはいないんだろうが。 braviaの方はググっても見つからんので、やられてないんだろうな。ただ同じようなAPIが定義されてるのでは?的な想像。
まぁあんまり現実的じゃない。
todoがよく分かんなくなってきてしまったので、task管理でtrello使ってみる。https://trello.com/b/aEXsQhra/afr-load-rails とりあえず画面を良くするとモチベーション上がるので、そっちをだらだらっと平日やって、土日でその辺調査か。
その前にcolumn追加系は早めにやっておかないと、後でぐだってしまうので最優先。
thumbnail関連は自動で取得できるようにしたいが難しそうだな。