3歩歩くと忘れるぶろぐ

ついに大学生から社会人になってしまった、地理系・情報系大学生だった人のぶろぐ。えんじにあえんじにあ。

LATLATLONG.LABで出場したSpaceAppsChallengeを時系列順に眺めてみる(2017 ver)

この記事は Space Apps Challenge Advent Calendar 2018 3日目の記事・・・だったはずですがおそらくこの記事は間に合わなく4日に出ます。

こんにちは。東京会場にてLatLatLong.LABチームでに出場していた@ikasumi_wtです。 普段はフロントエンドを中心になんでもやっているエンジニアとしてプロダクト開発をしています。

今回は、Space Apps ChallengeがAdvent Calenderを開催するということで、(ほぼノリで)エントリーしました。 ・・・が、自分で申し込んだにもかかわらず、何故か自分の頭の中では12/4にエントリーしたと謎の勘違いし、今急いで記事を書き終えようとしています。

今回の記事は半分ぐらい自分の備忘録として書いていますが、自分たちのチームがどのようにハッカソンでプロダクトを作っているのかをまとめてみたいと思います。

もし、読んだ方が、Space Apps Challengeに限らず、ちょっとハッカソンに出場してみたいと思ってもらえたらな。と思っています

LATLATLONG.LABチームとは

イカれたメンバーを紹介するぜ まず、どんなチームなのかを簡単に紹介します。

https://latlatlo.ng/ のサイトを作ってそこにまとめてありますが、チームメンバーはだいたい5人です。 2018年は、crispytaffyさんは(会社の制度の1つで)ドイツで参加する!といってドイツ会場にいたので今回は4人で参加しました。

もともと社内でよくハッカソンに出ている人たちがいて、ちょうど遭遇したときにSpace Appsっていうのがあってね〜と話していたら出ることになりました。結果、ジオ系が好きな人&&ハッカソンが好きな人が中心となって参加しています。

ハッカソンのプロダクトの作り方(という名前の時系列備忘録)

Facebookにチームのgroupがあり、だいたいそこに投稿しながら作っているので、そこの投稿と、記憶を頼りに書いていきたいと思います。

2017年の場合

作ったもの

image

URL: https://2017.spaceappschallenge.org/challenges/earth-and-us/pilots-plus/teams/i-said/project?fbclid=IwAR1N92E0O91beNDnzOe01hAmbx8BNlHcf-dO2-n82kqheXCv0RKlmt0BUKg

時系列 :)

  • 3月下旬
    • kilisimaがikasumi_wtを誘う
    • このままだと2人で参加しそうになる
    • デザイナーjoin。
    • Androidが得意な後輩を捕まえる
  • 4月
    • 4/9にinput dayに参加 その時のメモ image
    • 4/11あたりにどこかで集まる
    • 4/23 焦り始める
      • 全然アイデアが思い浮かばず、「頭の中が宇宙」などといいはじめる人(私)がいる
      • 放送大学で、人工衛星のデータをやっているといって見始めるたり
        • 見ようと思ったら終わる(私)
      • ビールを飲みながらgoogle earthを眺め始めたり
      • 結果:情熱大陸を見て、めっちゃ映像作品がやりたくなってくる
    • 4/25 再度集まる
      • 実行委員だったcrispytaffyがジョイン
      • なぜかお酒を持っていく流れになったが結局飲まずに赤ワインが放置される(たぶん今も・・)
    • 4/28 再再度集まる
    • 前日飲みすぎたり時間間違えた人ばかりで集合時間みんなまもらず
    • 怒涛のアイデア出し image

    image

    image

    image

    image

    • 4/29 本番
    • 怒涛のデータ集め
    • Laravelが使いたかったので使い出すエンジニア(私)
    • エストニアかどこかのサーバがやすかったと言い出して払い出されたサーバ
    • エストニア?のサーバがクラッシュしてIBM Bluemixに載せ替え始める私
      • 載せ替えたらうまく動かなくなりハマる(長期化する)
    • OpenDataからデータを整備してcsvにし始める人
    • Bluemixにつないであった無料のPostgresへのデータimportが終わらず泣く私
    • よさげな写真が貼られるFacebook image
    • 着実に出来上がるデザイン image
    • せこせことAndroidを作る人
    • このあたりでようやくAPIサーバがそれっぽく動く(データはまだ)
    • Androidもでき始める
    • アプリの名前のアンケートが取られ始める
    • 全体的なデザインができ始める image image

    • 突然池崎が貼られる image 〜多分このあたりから謎のテンションに〜

    • APIに距離計算ロジックが追加されDBから引いてきちんと動く感じに(今まではテストデータとか全件出していてやばかった)
    • 私分のTODOとかが挙げられる
- bluemixにあげる(now)
- clearDBにある世界遺産全件更新
- DBから取ってくるのを可変に
- distance等を考慮
- lat/lon(必須)+count(任意)パラメータの指定を許可
- 技術的な構成周りの資料を作る(?)
- 他のPOIのデータの整備(?)
- 世界遺産DBの他に写真だけとってくるやつも作ってみる(?)
  • AppもビルドされたりPRだしてデザインが調整されたり image
    • APIから引いてくる側と、飛行機の走行側と分担が分かれる
    • API作り終えて一時的に死ぬ私
    • いつの間にか動き始めている

  • 4/30
    • データをいろいろ追加したりしたやつを7時ぐらいに起きてアップデートしたDBのデータのimportが全然上がらず9時に遅刻する(私)
      • みんなそろってるよと煽られ続ける
    • このあたりのフライトが世界遺産とかPOIが一番見れるよ!といわれその航路をテストデータにする
▽米国内便
最高のグランドキャニオンが見える便はこちら
UA147
デンバー 14:05→ラスベガス 15:10

▽欧州便
JL6823
ヘルシンキ 17:00→ベルリン 17:55

LH1136
フランクフルト→バルセロナ
5:30 PM – 7:30 PM
  • deploygateあたりにあげられはじめる(いつからか)
  • 多少余力ができたAPI担当が構成図とかの図を資料に追加しはじめる
    • image
  • アイコンなどの素材が揃えられる
  • プレゼン資料の受け渡しがハイテンションになる image

  • ポッキーを装備するMac image

  • クラッピーで遊び始めて狂う人たち

  • 実機でデモできるようにする image   - 発表&懇親会
  • おわり

SpaceAppsChallenge後(その後)

https://twitter.com/spaceappstokyo/status/858555719590621184?fbclid=IwAR1TFpuhYWNVHiXmyycM1JFe11XYM3__p8IUTrAZScMC7bCo2izdT2uLrA4

という感じでした。

まとめ

完全にただの流れだけなので、いかがでしたもなにもないと思いますが、個人的にこのチームでハッカソンにでていて良いなと思うのは以下の3つが大きなところです

  • イデア出しで本当に突拍子もないアイデアを出し始めるところ
    • 地図やジオ系が好きなので、そのあたりをベースにネタを膨らませる人もいれば
    • そうだと思って壮大な何かを書き始めたり
    • 全く別のイベントでハイタッチすると光る服を作ろうとしていたら いつのまにか杖で地面を突いたらプロジェクションマッピングで魔法陣が展開され、杖についてるGoogleHomeに話しかけたら魔法が展開されるようなアイデアになっていたり
    • 意味がわからないと文句を言い始めたりいじけたり
  • した上でもちゃんと物が作れるところ
    • ハッカソンなので深夜に壊れながら作ったりはしているし
    • いきなり「君の名は。」→「前前前世」→「緯度緯度経度って響き似てない?」と言い出したり
    • そんなこと言ってたらロゴまで「私は言った。」とかのロゴができたり image

    • 2018編は書いていないけれど2018は自分1人しかコード書いていないけど出来上がった(他の人も他のことをしていた)

    • けども毎回ちゃんとプロダクトはできる
  • ハッカソン後も継続して何かしらのアウトプットを出そうとする
    • やって終わり、というよりも+αでもうちょっとやろうとする(そして力尽きて終わるか、次のハッカソンやイベントに出たり)

なところがあって楽しいなーという、ただの雑記です。 Space Apps Challangeは自分の好きなジオ系なハッカソンというのもあって、また出たいなーと毎年思うので今年はアドベントカレンダーに乗ってみた感じでした。みなさんもぜひ出ましょう。

雑記 おわり。

わくわくするチーム作りを語る夕べ(仮)にいってきたよ

こんばんは。鳩です。
最近はQiitaに生息しているせいでこっちが滅法更新されなくなってしまっているけど生きています。

rubytokai.doorkeeper.jp

にいってきたので、個々にメモを残す。
(次の更新いつになるかな…)


※メモここから

わくわくするチーム作りを語る夕べ(仮)〜bash0c7を招いて〜

 (bash0c7 アニメイトラボCTO)

@quindim 「ワクワク開発組織を作るための3カ条」

ワクワク開発組織を作るための3か条!
と称してどうやって一緒に成長していくかを考えていることを発表しようととおもっていたんだけど、まあ人生語りだと思って聞いていただければ


今回のLTで最初に伝えておきたいこと
・良いチームを作る銀の弾丸ではない
・組織活性化の取り組みを整理した話
・むしろあなたの現場の話を聞きたい


君は誰で何をやってるの
株式会社エイチーム きんちゃん
チアリーダー devlove
開発なんでも相談室とか前者開発情報ハブ 的な

エイチームの中のバックオフィス系に所属
会社では1きんちゃんみたら30きんちゃんいると言われることがある
→会社の中をぶらぶらしている

ある日の気付き
エイチームは事業部制
一つの組織の中だけどたくさんのチームがいる
色々なチームがあって、いろいろ大変そうだけどいろいろ学んでいることがある
→コレってデブラブじゃん

価値:
開発の楽しさを発見、ひろげよう
開発の現場を促進
原則:
明日活用できるヒントをえる


なにかできるかも
結果として→社内でゆるくてざつで真剣なコミュニティをつくっている

対話の「場」をつくる
みんなのHUBになる

なぜやるのか
ワクワク開発組織を作るため

組織の中だからできることって多分ある
・組織の中だと何でも話せる
・個の知識を組織の知識へと転換する

これって
→SECIモデル 組織的知識想像モデル

暗黙知形式知にして、それを積極的に転換していって、組織の俊敏さを表して、多様性を許容するというモデル

きんちゃん流巻き込みメソッド
・とりあえず声をかける
・相手をしる
・興味を引き出す
・人を集める(その話に興味のある人を)
・対話の場を作る(そうすると勝手に喋り出す)
**これを繰り返す


こういうの苦手…
→そういうときは本に頼った

コミュニティ・オブ・プラクティス

Fearless Change アジャイルに効く アイデアを組織に広めるための48のパターン

愚直にコレに習ってた

こんなことやりました
スクラム実践コミュニティ
・UX実践コミュニティ
・某サーバーインフラ実践コミュニティ
・リードエンジニアリング実践コミュニティ
・読書会とか
(おまけ程度に本業のチームでも毎日の振り返りと実践値の共有会をしてる)

※詳しく知りたい人は転職転職ぅ!

ワクワク感が継続する条件(3つといいつつ4つ
・ワクワクの日をたやさないこと
・その場に参加するみんなが成長を実感できている
・場を介してみんなの現場で成果が出られてる
・いつでもコミュニティをやめられること
 →気軽に辞められないと惰性で続けてしまったりする
  「そろそろマンネリ化してるしやめたほうがいいんじゃないですか 的な


自分:ワクワク増幅装置
・自分が現場でやってるふつうのコトは他の現場の人にとって価値のあることかもしれない
・自分の普通を誰かのワクワクに変えて大げさに届け続けることを徹してみている

おわり

                                                                                              • -
@bash0C7 「もしあなたが「イチから技術チームを作っていいよ」と言われたらどんなコダワリする?」

こしばさん
アニメイトラボ CTO

タイトル:

もしあなたが一から技術チームを作っていいよと言われたらどんなこだわりをする?

(ここ半年の話)

コンテキスト説明

アニメイトラボ:アニメイトホールディングの開発組織的な
そこ(アニメイトラボ)のCTO

いつもやってること
・Yahooスマホガイド
SEOコンサルの人となんかしてる
Ruby会議のオーガナイザー

前職でPHP

ピクシブでの広告配信システム

devlove pubとか 本を作ろうぜっていう話(年1−2回)

2015年 CTOに
今技術職2桁 複数プロジェクト

mackerelとか、azure minutesとかで出たりしている


ITの技術をアニメにプラスする入り口をやっている会社


どんなこだわりをする?
→こだわらざるをえない

たとえば既にいるところだったらそこの文化に溶け込めばいい
エンジニアが1人しかいないところに文化もへったくれもない
ゼロからになったらもっと深いところから作っていかないといけない
今回は1から

一からの採用と一からの技術文化

自分がこだわらざるを得なかった

わたしのこだわり

・技術大好き大事
・1チームで「ビジネス、AP,インフラ」全部森
(技術レイヤでチーム分けるのはいや
・自社事業へのコミット神大
・技術と働くんじゃなくてあなたと働くんだ(という人を大事
※これは私の理想・こだわり

伝達可能なかたちへ
(上みたいなのは全然伝わらない)・wantedlyとかもこれに

・開発業務が好きで楽しさを感じること
・各種アプリケーション開発実績
・対面コミュニケションスキルとオンラインコミュニケーションスキル
・仕事をセルフマネジメントして自律的に強調して成果をあげられること

+あると嬉しいスキル

こんな感覚を持ってる人と働きたい
・技術的・事業的難易度の高い仕事にときめきを感じる
・自分たちの事業についてずっと話し続けられるようなオーナーシップ
・チームメンバーを尊重して互いに成長を追求できる
・現状に満足せずに、不安で不安定な状況をたのしむ
・ビジネスインパクトを考えて最良のエンジニアリングに取り組める

脳内の理想を現実世界にひねりだしたのがこれ


ゆめをかたったり、理想を描いたりするのが大事

実現へのアクション
※キラキラした話は皆無
夢と現実

メンバー採用編
3ばんが大事
じばん:人脈とか
→外で話したりしているけど、引き抜くほどはない
かんばん:知名度があるか
→ ある アニメイトです!!!!!!!!!
かばん:かね
→立ち上げだしない エージェントとか無理

ツイートとかソーシャルとかにやっていく

・ウォンテッドリーと、採用サイト
総合職メンバーがキラキラしている感じ
→検索してきた時になにかないとなんだこれとなってしまう
→あとは開発者ブログ

→エンジニアtype(コレは最近)
 社会人インターンの記事(これで一気に応募増えた

ひたすら量も質もこだわって発信
今思うとタフな戦い

チーム結成編
 チームのアクティビティを作る
 まず朝会と読書会
  そいつが何考えているのかとか、何に興味があるかとか
  「超高速!技術チーム読書会」とは という感じでやった 朝15分読むだけ
  →なぜかバズる

  こういうことやるとブログとか発信の種になる
  何でもいい 自分たちのモチベーションになる  (slackつかいましたとか)
  良い環境を作っていこうとしてますよという発信になる
  環境を向上させている感

 みんなとはなし、
 MTGに同席し、
 一緒に考え、
 エンジニアを送り込み、
 ツールをいれる

 ありがたいことに立場が偉い人なので出たいからといってMTGに出て行った
 ツールについてはgithub/slack mackerelを導入

 ピンチをチャンスに
 animate tv を内製化した(老舗ニュースサイト)
 外注していたのを、それを社内に(サーバふくめ:クラウド
 
 なんかレスポンスタイムが悪化した
 どこがわるいか/あそこひっかかってる/とかの調査をみんなでやった(自発的にも)
 そのあたりをやったらみんなの距離が縮まった
 2秒ぐらいかかってたのが300msぐらいまで減った

最後:
プロジェクト運用編
 更に良くするために
 自走するチームにしていきたい
 直近半年とかで集まったメンバー
 人間ほっといたら勝手にチームになってくれるわけではない
 なにかイベントとかがあるはず

 拡張ポイント
 コミュ障なのにいきなり話しかけるとかきつい
 ここで口を挟むポイントだというのを決めておく
 ・朝海
 ・slack
 ・事業の定例mtg
 ・1on1
 ・評価etc...
デイリー都度毎週毎週クオーター的な
+エマージェンシーは別で扱う
Cookpadの記事を呼んで

アジェンダつくってやってる
アニラボエンジニア1on1

評価書きできそう?

もっと自分に任せてくれたらバリュー出せるんだけどってところ

経営陣に期待すること

→コミュ障だからアジェンダがないと出来ない

先にお約束事を決める(なんか高橋さんがやってたきがする)

・同じことは何度か聞いていい
・助けて欲しいとか解決したいことがあるとか明言する
→雑談なのかヘルプなのかはっきりと
・おせっかい焼きになろう
→大阪のおばちゃんみたいにつっこんでみる「大丈夫?ほんまこれいける?」的な


まとめ
・脳内の理想を現実世界にひねり出す
・トップのこだわりから始まる

思った通りに進んだ時のほうがコワイと思うのがエンジニア
いざ次になったらトラブルが起きるときが多い
うまく動いていたら(多分メンバーがうまくやったんやな)と思う
あまりうまくイカずトラブったら、自分が参入するのがうまくいかんかったんやなと思う

ぜひチームを作るという時が来たらこだわって欲しい

チームを作るのは技術的なチャレンジ


QAセッション

Q:10人ぐらいなので現場感コミュニケーションはない、どれぐらいからこうかがある?(きんちゃんへのしつもん
A.2つ以上部とかができたらすでにいると思う インフラーフロントだけじゃなくて第一開発部、第二開発部とかでも少なからず車輪の再発明とかしているときもある

いけいけタイム?(リファクタタイムっぽい)

A.バッシュさん 二人で朝会はじめるのはどうよ とおもった
でも家だと妻と二人でも会話するし二人で土日はどこかでかけるとかあるし
そういうのとかしている
会社でしないというのもなにかおかしい気がしてきた

きんちゃん:
きんじょにだって
おせっかいおばちゃんがいることによってあっちのおうちの情報をむこうのおうちの情報を得ることができる


おかしもってぶらぶらするのよくやる
ブラウンバックミーティング アメリカのサンドイッチとか入っている紙袋
科学的にもフェアレスチェンジにかいてある

こしばさん:
障害後の振り返りはお菓子そこにおいて反省会した
・ともすれば詰め合いになる
・ドーナツMTG的な
・振り返りとか
・詰める会になりそうなときは食べ物を用意する よく
リモートはできない?→スカイプ越しにとか…
スカイプ飲み会とかしたことあるよ


朝書いやってるひと:半分ぐらい
朝会が形骸化してる:朝トラブル対応とかしているとスキップしたり夕方になっちゃったり

マンネリ化してきたらどうする?
迷うところがある
やんなくていいんじゃねーの?っていったひとがいる
その人によって今まで逐次きのうのーとかからきょうなにやるーみたいなのまで話していたのを

1on1とかやってるマネージャー層は
「朝会ってなんのためにやってるとおもう?」とかきいてみるといいかも
みんな違うこといってたりしたらマンネリ化していたり、グダっているときがある
朝会の話で聞くとみんな空気読んじゃう
↑これいいね

空気呼んでうまくいってません的なのが言えない時とか
空気読んでいるというのを自覚しちゃうのは良くない
うまくいってないというのをみんなが感じているのを言えない、みたいな空気はよくない

「みんなが何を目的に朝会をしている」のかと大事な気がする
・問題解決をすべきとおもっている
・進捗報告
・はみがきみたいなもの

的な

「なんのためにやってるんですか」的な確認をしてくれる人は大事

朝会が形骸化しているときってむしろ朝会が悪影響を及ぼしているときとかってある

自分たちの文化はまもるけど、新しい人が入ってきたらその人のいいところを積極的にとりいれる

→そのためには今あまり入らないことはいらないという

Xクールだけやってみるとか
うまくいったらセカンドシーズンやるとか
そういうX回やってみると先に明言してみるとか

オーナーがわかっていないと困る

引き継いだりしたあととか

オーナーを作っておく、オーナーがやめる権限をもつ
ほんとはだれかしらがやめよ!っていうといいけどそこまではなってないので
きめちゃうとか。あなたはこれがつまらんかったらやめるという人てきな

特性によって問題が目に見えるひととそうじゃないひととか


esaの人。許しのデザイン?エクスキューズ?
何か許しがないと何も出来ない的な
ここVIPだから何いってもいい的な
構成員みんながそういうエクス級図をもてるといいけど まずは種をまいてみるとか

そういう文化を作る的な
社内的に影響力を持っている人とか政治力を持っている人がやってくれるといいかも

「ぼくはこうしたい」といってくれるひととかがいるといいけど
そこまで醸成しないといけない

新しく入ってきた人「新しく入ってきたんでぜんぜんわかんないんですけど」的なエクスキューズは最強
その最強的なのをうまく活かす的な
それこそBさんに「俺はこういうからお前は賛同して」的なのを先に根回しする

**多分ここ大事なのであとで考える**
朝会の例だとすると
チームメンバーと2人でご飯にいってみる
「朝会うまく言ってないよね」的な
そこで相手が「うーん?」となると認識に違いがあって自分が間違ってるかもしれない
違う見方があるかも


減るサーに?フェアレスチェンジのカードゲーム
こういうときにこうするといいよって書いてある



ーーーーーーーー
しめ

こしばさん:
いろいろいってきたけど
フェアレスチェンジって本にだいたい書いてあるそうな気がする
みんなもやもやしてたらちょっと買ってみるといいかも
カードゲームの汎用性の高さがやばい

きんちゃん:
人生短いので朝会ごときで悩んでいるのはもったいない
でも自分が発言しないとその朝会とかももやもやしたままになる


EoP


                                      • -

完全にグダグダしながらメモを取っていたのでほんとにメモだけ。

最近買ったものまとめ

忘れそうなので書いておく

三脚

そろそろ三脚がほしいなーと思って買った。とりあえず安いけどそこそこ好評価で、よさそうなやつ。
雨が降ったり実家で農作業してたりでまだ使えてない。あれ、紅葉の時期が終わってしまうぞ・・・


ふと欲しくなって買ったんだけど、あとからいろいろな三脚をみたらこっちでも良かったかもと思った

ループタイ

ループタイ好きなので買った。石のやつを以前に一個買っているんだけど、せっかくなので別の色&別の素材で買った。
思ったより軽かった。

ゴルフクラブ

買ったやつが見当たらなかったので別のやつ・・・
親父がそろそろ(と言っても一ヶ月後ぐらい)誕生日なので、たまにはあげることにした。
最近実家に帰ると親父が打ちっぱなしにいくのでついでについていってるのでそのつながりでゴルフクラブ。
ちなみに先に私が使った。

野菜ジュース

弟が金欠で可哀想だったので送ってあげた。ちなみに金欠な理由はバイクを買ったからなので自業自得感あるけどまあ誕生日も近かったしいいや。

だいたいkindleだけど

40%オフだったので買った。前にちらっと読んだだけだったので今度はちゃんと読む。

この人テレビでみてシュールだったので買った
まだ読んでない


他にもマンガとかは買ったけどまあこれぐらいかな。

エイチームライフスタイル技術勉強会 in 名古屋ギークバー にお邪魔してきた

こんばんは。お酒飲んでないので記憶が鮮明なうちに書いておきます。

(感想込みのものをこっちに書いておきます)

概要

Q.なにそれ A.↓です

エイチームライフスタイル技術勉強会 in 名古屋ギークバー (08月31日) #geekbar
 https://geekbar.doorkeeper.jp/events/30082

以下、メモと感想。 間違っていたりするかもしれない&あとから加筆しているので適当に今度お会いした時とかに補足ください>< あとから補足したり、わからなくなってコメントしたのを->で表記してます

タイムテーブル

  • 自動車事業
  • SIM クルビア事業
  • 金融メディア事業
  • 発表 特別チーム
  • 投票・結果発表

メールアドレスの誤入力検出

・アドレス入力フォームあるある メールアドレスの入力間違い ピリオドとカンマ入れ間違えるetc. なぜかhttp://とかコピペするひとがいる 何度もドメイン部が入力されてる 全角で入っちゃってる

・正しいメールアドレスがほしい 正しい #とは * SMTPサーバが受け入れる * 受信者のSMTPサーバまで届く ←今回はここまで ...以下(書ききれず)

・入力時にご入力をどこまで防げるか 方法はいかがある * 正規表現でマッチ(簡易ver  簡単な入力値チェックのみ

->簡単にやるとpreg_matchに/^([a-zA-Z0-9])+([a-zA-Z0-9.-])*@([a-zA-Z0-9-])+([a-zA-Z0-9._-]+)+$/とか食わせるぐらい? ->RFCには準拠しない簡易的な実装

  • 正規表現でマッチ(RFC準拠ver)
  • Swiftmailerのアドレス検証の仕組みを利用する ->symfony frameworkなどで採用

PHPだとこれっぽさ

/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD

->真面目にやろうとすると死ぬ

(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
 )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
 \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
 ?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
 \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
 31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
 ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
 (?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
 (?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
 |(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
 ?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
 r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
 \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
 ?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
 )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
 \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
 )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
 )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
 *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
 |\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
 \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
 \r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
 ]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
 ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
 ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
 :(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
 :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
 :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
 [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\]
 \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
 \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
 @,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
 (?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
 )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
 ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
 :[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
 \]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
 \031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
 ?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
 :\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
 ^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
 .\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
 ]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
 [\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
 r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
 \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
 |\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0
 00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
 .|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
 ;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
 :[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
 (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
 \[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
 ^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
 ]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
 ?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
 ".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
 ?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
 \["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
 ])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
 ])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
 :\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
 \Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
 [^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
 ]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)
 ?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
 ()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
 ?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
 @,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
 \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
 ;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
 )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
 ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
 (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
 \[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
 \r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
 "()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
 *))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
 +|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
 .(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
 |(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
 ?:\r\n)?[ \t])*))*)?;\s*)

( ゚д゚)...人間が読めるものではない

  • 実際にSMTPdに食わせてみる(正規表現でマッチなし helo してrcpt toしてみてエラーはくかどうか

->このあたり、言ってる意味はなんとなくわかるけど詳しくないのでちょっと調べないとついていけない

参考) http://www.atmarkit.co.jp/ait/articles/0304/22/news001.html から

コマンド パラメータ 意味
HELO    マシン名    メール送信の開始を宣言する
MAIL FROM:  <送信元アドレス> 送信元(エラーの通知先)を指定する
RCPT TO:    <送信先アドレス> メールの送信先を指定する
DATA        メール本文を開始する
QUIT        メール送信を終了する
RSET        メール送信を中断する
NOOP        何もしない
表2 主なSMTPコマンドとその意味

->つまりメールの送信先に指定してぽいっとしてエラーを吐くかどうか。(250 OK)がかえってくるかどうかってことだとなんとなく理解

・まとめ RFCの仕様を完全に正規表現で表現するのは難しい とはいえ正規表現でも大半はOK ユーザーと開発者に優しい感じにしましょう


質疑応答 Q:そーゆー正規表現的なのはどの言語がいいのか? ¥wとかかけると記述が楽になる

隣の席に座っていた先輩: むかしdocomoauは準拠してなかった(先頭にハイフンつけられるとか。ガラケーの頃の話


  • 感想 自分的には簡易的な正規表現だけでいいのかなーと思った。

RFC準拠すると正直正規表現が読めなくなりつつあるので、そこまで厳密にやる場合、コメントでこの仕様に準拠(+URL)とかしておいてあげるといいのかなと思った。

(正直)チェックするのもそんなにしたくないので、html5のinputのtype=emailでなんとかならないかなーと思った(なんとかなると幸せな世界っぽさ) 参考:http://www.htmq.com/html5/input_type_email.shtml


tidyでシンタックスチェック

シンタックスエラーとは

RFCに準拠した形だと yahooで大量にエラーが起きる ->( ゚д゚)

・困るとき ブラウザの親切心でformのとじタグを入れてくれるとか

->(どう書いてたっけ・・・)

<form >
  <input type="text" name="name" >
  <input type="text" name="yomi" >
  <div>

        <input type="text" name="age" >

</form>
  </div>

みたいに書かれたコードがあった時に

の前にを補完してくれちゃってageがうまく取れない時がある的な話をしていた気がする

->正直このコードはそもそもどうなのかと思ったけど

・tidyとは W3Cが妥当ではないhtmlに対してシンタックスチェックしてくれる

... html5未対応

・有志が対応してくれた htacg/tidy-html5

  • how to use

tidy -qe hoge.html

現状だとファイルを指定することでしか見れない curlを使ってリクエスト

tidyはオプションが豊富 * 参考文献

http://w.koshigoe.jp/study/?%5Btidy%5DTidy+Configuration%B3%D0%A4%A8%BD%F1%A4%AD clean up your web pages with tidy

tidy-html5 doc

https://github.com/ayhankuru/gulp-htmltidy

とかもある


  • 感想とか tidyについてそもそも知らなかったところが多いんだけど、どんなときにメリットがあるのかイマイチわからなかった(´・ω・`) curl http://hogehoge してきたやつをーとか、Seleniumでーっていう話だったので サーバーサイドでレンダリングしたあとのはきだされたものに対してチェックしたいっぽかったので、うまく使うとよさそうな気がするんだけど。 htmlhintとかjshintみたいな事前チェックだけだとうまくできないような部分に対して有効?なのかというあたりをもう少し詳しく知りたい感じだった。

適当に調べながら聞いていたけど、 https://github.com/ayhankuru/gulp-htmltidy とか https://github.com/bezoerb/gulp-php2html とかあってgulpとかでも動かせそうだったので、 開発している途中にもgulp watchとかして、phpとかで作っているやつをhtmlで吐き出して、そこでチェックみたいにできるんだろうか・・・要確認


PHPerからRubyist

suzuki.sh(すし)

2012エイチーム入社 当時の比較サイト事業部配属 Webサイトのアプリケーション開発およびインフラを担当

合唱のWebサイトとかつくってる

もともとPHP(Symfony)だったのが徐々にRuby(RoR)が使われるようになった ・もともと専業PHPerだったのがひよっこRubyistになった

これらは覚えるしかない ・一行コメント、複数行コメント ・セミコロン メンバ呼び出し メソッド定義 コンストラクタ名 レシーバ参照 例外処理 try catch finally / begin rescure ensure

rubyらしいメソッド名・snake_case T/Fを返すメソッドには末尾に?をつける 破壊的メソッド(レシーバ自身を書き換える)には末尾に!をつける 末尾に=をつけるとsetterメソッドとして使える(これだけは仕様、ほかは慣習 )

便利なアクセサ class Bool attr_accessor :title end

==

class Bool def title =title end def title= ...

親クラスのコンストラクタは暗黙的に実行されない
・実はPHPもRubyも同じ
superで呼び出す
括弧なし、引数なしでsuperを呼ぶと呼び出し元の引数をすべて引き継いで親クラスのメソッドに自動的に渡す

例外処理
例外を発生させるのはraise

ややこしいことにrubyにはcatch ... throwもあるけれど大域脱出を行う ->例外とは関係ない

== と ===

ruby では論理式においてnulとfalse以外すべて真 空文字列も から配列も 0も

Rubyist担っての所管 Rubyだとmap とか reduceとかブロック構文とかコレクションとか、PHPではあまり見ない昨日がたくさん

これらになれてくるとPHPよりも短く、早くかける PHPに比べて同じ処理を様々な記法でかけてしまう

PHPよりもより小規模な高速開発に向く反面、開発チームの規模が大きくなればなるほど

ジムーバが開発メンバーが1人しかいない のでメンバー募集

事業が大規模になってきたので製品の保守が大変だわーーーといってみたい


Q.なんでPHPからRubyにうつったのか A.なんでしょうね・・・

↑に書いたとおり

Q.そもそもなんでRubyでやろうと思ったの? Q.今回Rubyを使おうと思った理由は? A.Rubyをやってみたいとおもった 知ってる人が増えてきた 失敗したら使わない 初期はRailsのほうが早いよねっていう話題が出てた 挑戦的に使ってみた

Q.PHPだと何が遅いのか ORマッパーとか? RailsActiveRecordが優秀 PHPのORマッパーよりも優秀っぽさ

突き詰めるとActiveRecordがいい・・・? →はい!

Q.PHPでかくのとRubyで書くのとどっちがいい? 新しいPJならRubyがいいかな PHPはドクトリンを使っていた https://doctrine.readthedocs.org/en/latest/ バージョンは教えられない


  • 感想 ActiveRecord便利なの同意\\\٩( ‘ω’ )و //// PHPフレームワーク使って開発っていう経験が(ほぼ)なくてPDOとかを使ってしかきちんとアクセスしたことないのでドクトリンとかいろいろ知らないのでうまくわからないけどRubyActiveRecordとかは便利。

Effective Ruby

あたりが参考で出ていたような気がする

BOT除去のいろは

金融メディア事業部システムチーム

  • 有益なBot グーグルボット的な

  • アクセス過多のBOT

サーバが応答できなくなるアクセス過多のBOT とか 成果集計をしている場合に成果タグを叩くBOT

アクセス方のBotを叩く apache deny from env=ng_ua で除外

RPサーバ以下への付加を大幅に軽減


質疑応答

成果タグBOTはReverseProxyで除外はしない ->有益なアクセスまで弾かれる可能性 ->集計時に弾く

Q.そもそもRPでApacheはコスト高くないですか 参考にします><


  • 感想 Apacheでリバースプロキシはちょっときつそうな気が…と思っていたら質疑で先に出てきた

slowlorisとかあったと思うので、Linuxだったらあれだなーと思いながら聞いてました 参考) Slowloris:つゆむーみん谷:So-netブログ - http://go.shr.lc/1Vsn5XM

今だとnginxとかtraffic serverなのかなーと思って聞いていたら先輩からvanishあるのを聞いた。名前は聞いたことあるようなないようなぐらいだったので、勉強になった(使う機会あるのかな...) 参考) Varnish でリバースプロキシ « インフラ本舗 - http://go.shr.lc/1LOcOUe


chrootとsftpで隔離されたゲストを作る

こんなことありませんか サーバを使っていて とあるディレクトリの中身を他の人に編集してもらいたい とはいえサーバのファイルは見せたくない

useradd sftp-user passwd sftp-user

usermod -d / sftp-user chown root:root /home/sftp-user chmod 755 /home/sftp-user

内部のsftpを使うように設定する

chrootの設定 Match User sftp-user ChrootDirecory /home-sfty-userX11Forwarding ほげほげ

ls -nはつかえないので バインドマウントする mount --bind /home/owner/rails/app/assets /home/sftp-user/assets


Q.ftpもできないデザイナーもいればgitが使えないデザイナーもいる

Q.さっきmount --bindをしらないので参考になりました これってオーバーヘッドはないんですか?(ファイルの読み書きに A.すいませんパフォーマンスに関しては存じないです

Q.主に開発中に使うことが多い?それとも本番サーバで? そこはいろいろとごにょごにょ Q.これ再起動しても永久に使えるんですか

->fstabに書かないと消えるんじゃ…

ハードリンクはフォルダはだめなので無理っぽ


  • 感想 本番とかごにょごにょといっていたのでセキュリティ的に大丈夫なのかちょっと気になってしまいましt><

どうやってデプロイしているのかわからないのだけど、デザイナーさんにgitを使ってもらって、コードベースでエンジニアに渡して、全部まとめてデプロイが良い・・・?


WordPressを受け入れる ゼロ

背景:なぜだかWordPressは一部エンジニアから敬遠されている気がする

happylifestyle そのままのWordPressを受け入れよう

  • 圧倒的なポピュラーさ ・LIGとかマイナビウーマンとかFindjobstartup 害虫にも出しやすい 開発コミュニティも活発

  • 5分間インストール

  • 圧倒的なカスタマイズのしやすさ 設計思想に沿った形でカスタマイズができる魅力

  • サイト更新の圧倒的容易さ

コンテンツとシステムの分離 デプロイ不要、運用工数極小

悪いところ

  • 敷居が低すぎる。油断は混沌を生む ・お手軽ツールだと思って適当にやらない ・初期構築時は絶対にエンジニアが入ること 無計画にプラグインを入れない 判断基準は無効にしても動く ->管理画面使いやすい系はあり

  • Webの8割は信じてはいけない

・信用できる情報を得る ・ソースを読む ・また、信用できる人に聞く

  • オブジェクト指向からの乖離 ・wordpressの作法としそうになれる ・ただ汚いコードなのか、それともしそうなのか見極める ・どうしても悩むならソースを読む ・バージョンアップに期待する

  • 攻撃者に狙われやすい(有名ドコロなので) ・正しい知識をもって対向する ・ログファイルをみれなくするなど ・細かくバージョンアップする!!!!!!←重要 徹底した下位互換、気軽にできる

  • まとめ Wordpressと長く付き合うイメージがわいたでしょうか ・Wordpressを正しく活用するようになってサービス構築の選択肢が増えました ・Wordpressにかぎらず良い面も悪い面を見ることが大切 ・人も同じです ・そのままの僕を受け入れてくれる女性を募集


Q.シンプルなのとつきあいたい。ドキュメントとかはどうか。 OSSなのでそこそこ豊富


  • 感想 一番(面白い的な意味で)LTっぽいLTだと思いました>< 彼女ネタとかそういうネタ的なのが社内LTでできるのはいいなと思いました

mitmproxyでアプリ開発

コンソール型の通信監視ツール アプリとサーバ間の通信(SSL) そもそもmaninthemiddle(mitm)という意味 リクエスト・レスポンスの改ざん

iPhoneOS Xのmitmproxyを実行 ↓ サーバ

2013のpythonアドベントカレンダーにいろいろかかれている 〜〜〜 インストール設定 ~アドベントカレンダーにあるらしいので以下略

ごにょごにょ終わったら safariをひらいて 証明書を入れる


  • 感想 重くするだけだったらiOSだと8から?できるようになったような気がするし、chromeとかだと重くできたりするのでandroidもできる(ときいた)のだけど requestの80%を破棄するような設定とか、柔軟に設定できるのはいいなーと思った。 本当に80%つながらないような状況で、実際にうごくかどうかってちょっと不安だし。

AcriveAdminの布教

redminetwitterらいくなプラグインとかつくっているOSS

管理画面作っていますか DB作ってモデル作ってコントローラービューとかつくって ・・・長い

ActiveAdminで全て解決

今日は布教

activeadminとは rails向けに作られた管理画面gem 極小コーディングで管理画面を構築 気に入らないところは徹底的にカスタム可能 ・コントローラもビューも独自にかける 3大gem rails_admin active_admin typus rails管理系gemを比較してみた(Qiita) インストールは4コマンド

検索画面も含めて作ってくれる


  • 感想 Rails使った経験が少ないので、比較とかはどれがいいのかちょっとわからないところもあったけれど、管理画面もあんなに簡単に作れるのはいいなーと思った。 PHP->Rubyの話もあったけど、PHPだとこのあたりはさくっと作れない気がするので、Ruby(RoR)+Gemのエコシステムすごい (小学生並みの感想になってしまっている感じがする)

総評

マネージャーの人

今日発表した人のうちのひとり →エンジニア歴2年ちょっと

外向けの発表がはじめてのひとー? →3人(ぐらい?)

今回の発表形式(投票形式)を考えたのも若手 業務で使える というテーマにすると小難しい話ばかりにはならなくなる →若手でも点が取れる形式(若手も学んだ内容をすぐにアウトプットできる アウトプットはエンジニアにとって大事. アウトプットしていきましょう

以下宣伝があった部分

code for nagoyaの宣伝

ジオメディアサミットの宣伝

NGKK2014B

名古屋合同懇親会 →NGK2015も開催します 12/12土曜日開催予定

四次会まである DStokaiっていうGoogleGroupがある

mashup award

ruby東海 @47

startup weekendの紹介

おわり。

パーフェクト Ruby on Rails

【最近読んだ。】天体少年。―さよならの軌道、さかさまの七夜 (メディアワークス文庫)  読んだ。

最近更新していなかったので読んでた本でもざっと紹介

今週のお題「ゾクッとする話」
も希土類少女が一部当てはまる気がする。

読んだ。



  • 天体少年。―さよならの軌道、さかさまの七夜
  • 概要と感想。
    未来から過去へと進む天体になった少年と、現在から未来へと生きる、頭のおかしい天文学者の血を引く女の子の過去と未来が交差する7日間の甘酸っぱいお話。 ストーリーの目の付け所がおもしろいなーと思った。全体の話としては、(物語のメインとなる部分から)未来にいる女の子(女の人)の語りベースであっさりと終わるんだけど、女の子が男の子と出会い徐々に恋心を抱いていく・・・というわけでなく、物語(甘酸っぱさ)ピークは4日目/7日間。 7日目が終わったら遠く遠くに離れ離れになってしまう、とかの話じゃなくて、なんというか面白い視点のストーリーだなと思った。 ネタバレになっちゃうので詳しくは書いてないけど、おもしろいので読んでみて欲しいなとおもった。
  • 希土類少女 (講談社文庫) - 青柳 碧人
  • 概要と感想。 好きな作家と聞かれたら多分この人を答えるかなーという感じで好きな、浜村渚の計算ノートシリーズの人の本。 東京湾 海中高校 (講談社文庫)も読んだけど、この人、今問題となってる環境問題とか、政治・経済的な問題の理系的な側面を物語に落としこむのうまいなって思う。浜村渚の計算ノートも、元は数学教育が軽視されるのを懸念したテロリストが、という話だし。東京湾海中高校も。 物語は、あまり気持ちのよいものとは言いがたい部分が結構あるのだけど… レアメタルが体から定期的に排出される女の子たち(突然変異)を、国益・国力増強と安定的なレアメタル確保のために子飼いにする国の話。簡単に言うと国が用意した宿舎に少女たちを軟禁する話。 レアメタルを排出する女の子たちは皆短命。そして、生きているうちは一生レアメタルが体から排出される。 その体から排出されるレアメタルのせいで、死に直面する直前の思春期は、そのほとんどを宿舎の中で一生を終えることになる。 体内から排出されるレアメタルと、思春期真っ只中を死にゆく少女たちの葛藤、そして国の黒い思惑が入り乱れるストーリー。 と、読み終わって、よくこれこんなのを小説にできるなーと素直に(もちろん内容にも)感動したんだけど、なんというか後味が悪い物語だったけど、理系にも、化学とか物理とかが苦手な文系な人にも読んで欲しい感じの本だった。


これから読むよ!

これから読む予定のがいくつかあるのでついでに貼っておく

浜村渚の計算ノート 6さつめ パピルスよ、永遠に (講談社文庫)

浜村渚の計算ノートシリーズがやっと次のが読めるよ!
なんかAmazon先生はストーリー1話ごとに区切って売るようになってたちょっとびっくりしたけど、文庫本で読みたいのです。




あとはこれ。
浜村渚の計算ノートシリーズが半月後に出るのだけど、それまでにもう1冊ぐらいは読めそうだと思ったのでぽちった。



ではではー.

wizard2を買った

そういえば結局椅子はwizard2(ミドルマネージメント)にしました

f:id:ikasumi_wt:20150615213529p:plain


これ
オフィスチェアー「Wizard2(ウィザード2)」|製品|コクヨファニチャー株式会社



以下、理由と経緯
・いろいろ大塚家具とかを見て回って良さそうだったバロンチェア(送料込み4万弱)をヤフオクで購入したところ、決済後、倉庫で壊れたらしく返金処理になる

・それを機に(近所でもないけど)オフィス中古家具店に色々見に行ったところwizard2のハイバックが3.5万円ぐらいで売られていた

・座ってみたけど結構座高が高いのでハイバックでもちょっと足りない感じがする
→ まだ出て間もないタイプだったし、新品でミドルマネージメントタイプ購入
[KOKUYO(コクヨ)]Wizard2(ウィザード2)樹脂タイプ/ミドルマ :CR-G1825:オフィス屋ドットコム - 通販 - Yahoo!ショッピング



感想
・T字肘じゃなくて可動肘を買ったつもりだったんだけど(間違えたっぽく)T字肘が届いた。ちょっと低いかな−と思って可動肘買おうと思っていたんだけど、今のところ特に違和感はない

・身長180cmに対して、ミドルマネージメントのヘッドレストはギリギリ機能している。ただ、頭がギリギリ乗るぐらい。バロンとかのヘッドレスト(可動しないやつ)よりは低め。

・後ろに倒れるのはちょっと浅めぐらいな気がする。

・あぐらをかきたい時には、もうちょっと座るところの縦幅があると嬉しい(サブリナとかぐらいの大きさはない)

・ここまで色々書いているけど、値段もそれなりで、座り心地もいいので満足してます(・ω<)