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年の場合
作ったもの
時系列 :)
- 3月下旬
- kilisimaがikasumi_wtを誘う
- このままだと2人で参加しそうになる
- デザイナーjoin。
- Androidが得意な後輩を捕まえる
- 4月
- 4/9にinput dayに参加 その時のメモ
- 4/11あたりにどこかで集まる
- 4/23 焦り始める
- 全然アイデアが思い浮かばず、「頭の中が宇宙」などといいはじめる人(私)がいる
- 放送大学で、人工衛星のデータをやっているといって見始めるたり
- 見ようと思ったら終わる(私)
- ビールを飲みながらgoogle earthを眺め始めたり
- 結果:情熱大陸を見て、めっちゃ映像作品がやりたくなってくる
- 4/25 再度集まる
- 実行委員だったcrispytaffyがジョイン
- なぜかお酒を持っていく流れになったが結局飲まずに赤ワインが放置される(たぶん今も・・)
- 4/28 再再度集まる
- 前日飲みすぎたり時間間違えた人ばかりで集合時間みんなまもらず
- 怒涛のアイデア出し
- 4/29 本番
- 怒涛のデータ集め
- Laravelが使いたかったので使い出すエンジニア(私)
- エストニアかどこかのサーバがやすかったと言い出して払い出されたサーバ
- エストニア?のサーバがクラッシュしてIBM Bluemixに載せ替え始める私
- 載せ替えたらうまく動かなくなりハマる(長期化する)
- OpenDataからデータを整備してcsvにし始める人
- Bluemixにつないであった無料のPostgresへのデータimportが終わらず泣く私
- よさげな写真が貼られるFacebook
- 着実に出来上がるデザイン
- せこせことAndroidを作る人
- このあたりでようやくAPIサーバがそれっぽく動く(データはまだ)
- Androidもでき始める
- アプリの名前のアンケートが取られ始める
全体的なデザインができ始める
突然池崎が貼られる 〜多分このあたりから謎のテンションに〜
- APIに距離計算ロジックが追加されDBから引いてきちんと動く感じに(今まではテストデータとか全件出していてやばかった)
- 私分のTODOとかが挙げられる
- bluemixにあげる(now) - clearDBにある世界遺産全件更新 - DBから取ってくるのを可変に - distance等を考慮 - lat/lon(必須)+count(任意)パラメータの指定を許可 - 技術的な構成周りの資料を作る(?) - 他のPOIのデータの整備(?) - 世界遺産DBの他に写真だけとってくるやつも作ってみる(?)
- AppもビルドされたりPRだしてデザインが調整されたり
- 4/30
- データをいろいろ追加したりしたやつを7時ぐらいに起きてアップデートしたDBのデータのimportが全然上がらず9時に遅刻する(私)
- みんなそろってるよと煽られ続ける
- このあたりのフライトが世界遺産とかPOIが一番見れるよ!といわれその航路をテストデータにする
- データをいろいろ追加したりしたやつを7時ぐらいに起きてアップデートしたDBのデータのimportが全然上がらず9時に遅刻する(私)
▽米国内便 最高のグランドキャニオンが見える便はこちら UA147 デンバー 14:05→ラスベガス 15:10 ▽欧州便 JL6823 ヘルシンキ 17:00→ベルリン 17:55 LH1136 フランクフルト→バルセロナ 5:30 PM – 7:30 PM
- deploygateあたりにあげられはじめる(いつからか)
- 多少余力ができたAPI担当が構成図とかの図を資料に追加しはじめる
- アイコンなどの素材が揃えられる
プレゼン資料の受け渡しがハイテンションになる
ポッキーを装備するMac
クラッピーで遊び始めて狂う人たち
- 実機でデモできるようにする - 発表&懇親会
- おわり
SpaceAppsChallenge後(その後)
- グローバルように動画を作る:https://www.youtube.com/watch?v=xRDuKpB41RM&feature=youtu.be&fbclid=IwAR1WUo_Dc1OedSGb74D4YeSYfNrJ3YggwxXordvx2yuLc9pSoX6Fjbtbai4
- 受賞したTシャツをもらう
- 継続的に開発して機能が追加されたりする
- 簡単にLTで発表したり : https://speakerdeck.com/ikasumiwt/spaceappschallange-ibmbluemix
- 使おうと思って申請していた(忘れていた)TripAdvisorのAPI利用申請は却下されてたり
- 他の会社にアプリをもって遊びに行って話を聞いてもらったり、プレゼンをする(おみやげにステッカーとかをもらう)
という感じでした。
まとめ
完全にただの流れだけなので、いかがでしたもなにもないと思いますが、個人的にこのチームでハッカソンにでていて良いなと思うのは以下の3つが大きなところです
- アイデア出しで本当に突拍子もないアイデアを出し始めるところ
- 地図やジオ系が好きなので、そのあたりをベースにネタを膨らませる人もいれば
- そうだと思って壮大な何かを書き始めたり
全く別のイベントでハイタッチすると光る服を作ろうとしていたらいつのまにか杖で地面を突いたらプロジェクションマッピングで魔法陣が展開され、杖についてるGoogleHomeに話しかけたら魔法が展開されるようなアイデアになっていたり- 意味がわからないと文句を言い始めたりいじけたり
- した上でもちゃんと物が作れるところ
- ハッカソン後も継続して何かしらのアウトプットを出そうとする
- やって終わり、というよりも+αでもうちょっとやろうとする(そして力尽きて終わるか、次のハッカソンやイベントに出たり)
なところがあって楽しいなーという、ただの雑記です。 Space Apps Challangeは自分の好きなジオ系なハッカソンというのもあって、また出たいなーと毎年思うので今年はアドベントカレンダーに乗ってみた感じでした。みなさんもぜひ出ましょう。
雑記 おわり。
わくわくするチーム作りを語る夕べ(仮)にいってきたよ
こんばんは。鳩です。
最近はQiitaに生息しているせいでこっちが滅法更新されなくなってしまっているけど生きています。
にいってきたので、個々にメモを残す。
(次の更新いつになるかな…)
※メモここから
わくわくするチーム作りを語る夕べ(仮)〜bash0c7を招いて〜
(bash0c7 アニメイトラボCTO)
@quindim 「ワクワク開発組織を作るための3カ条」
ワクワク開発組織を作るための3か条!
と称してどうやって一緒に成長していくかを考えていることを発表しようととおもっていたんだけど、まあ人生語りだと思って聞いていただければ
今回のLTで最初に伝えておきたいこと
・良いチームを作る銀の弾丸ではない
・組織活性化の取り組みを整理した話
・むしろあなたの現場の話を聞きたい
君は誰で何をやってるの
株式会社エイチーム きんちゃん
チアリーダー devlove
開発なんでも相談室とか前者開発情報ハブ 的な
エイチームの中のバックオフィス系に所属
会社では1きんちゃんみたら30きんちゃんいると言われることがある
→会社の中をぶらぶらしている
ある日の気付き
エイチームは事業部制
一つの組織の中だけどたくさんのチームがいる
色々なチームがあって、いろいろ大変そうだけどいろいろ学んでいることがある
→コレってデブラブじゃん
価値:
開発の楽しさを発見、ひろげよう
開発の現場を促進
原則:
明日活用できるヒントをえる
なにかできるかも
結果として→社内でゆるくてざつで真剣なコミュニティをつくっている
対話の「場」をつくる
みんなのHUBになる
なぜやるのか
ワクワク開発組織を作るため
組織の中だからできることって多分ある
・組織の中だと何でも話せる
・個の知識を組織の知識へと転換する
これって
→SECIモデル 組織的知識想像モデル
暗黙知を形式知にして、それを積極的に転換していって、組織の俊敏さを表して、多様性を許容するというモデル
きんちゃん流巻き込みメソッド
・とりあえず声をかける
・相手をしる
・興味を引き出す
・人を集める(その話に興味のある人を)
・対話の場を作る(そうすると勝手に喋り出す)
**これを繰り返す
こういうの苦手…
→そういうときは本に頼った
Fearless Change アジャイルに効く アイデアを組織に広めるための48のパターン
愚直にコレに習ってた
こんなことやりました
・スクラム実践コミュニティ
・UX実践コミュニティ
・某サーバーインフラ実践コミュニティ
・リードエンジニアリング実践コミュニティ
・読書会とか
(おまけ程度に本業のチームでも毎日の振り返りと実践値の共有会をしてる)
※詳しく知りたい人は転職転職ぅ!
ワクワク感が継続する条件(3つといいつつ4つ
・ワクワクの日をたやさないこと
・その場に参加するみんなが成長を実感できている
・場を介してみんなの現場で成果が出られてる
・いつでもコミュニティをやめられること
→気軽に辞められないと惰性で続けてしまったりする
「そろそろマンネリ化してるしやめたほうがいいんじゃないですか 的な
自分:ワクワク増幅装置
・自分が現場でやってるふつうのコトは他の現場の人にとって価値のあることかもしれない
・自分の普通を誰かのワクワクに変えて大げさに届け続けることを徹してみている
おわり
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
もしあなたが一から技術チームを作っていいよと言われたらどんなこだわりをする?
(ここ半年の話)
コンテキスト説明
アニメイトラボ:アニメイトホールディングの開発組織的な
そこ(アニメイトラボ)の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
以下、メモと感想。 間違っていたりするかもしれない&あとから加筆しているので適当に今度お会いした時とかに補足ください>< あとから補足したり、わからなくなってコメントしたのを->で表記してます
タイムテーブル
メールアドレスの誤入力検出
・アドレス入力フォームあるある メールアドレスの入力間違い ピリオドとカンマ入れ間違えるetc. なぜかhttp://とかコピペするひとがいる 何度もドメイン部が入力されてる 全角で入っちゃってる
・正しいメールアドレスがほしい 正しい #とは * SMTPサーバが受け入れる * 受信者のSMTPサーバまで届く ←今回はここまで ...以下(書ききれず)
・入力時にご入力をどこまで防げるか 方法はいかがある * 正規表現でマッチ(簡易ver 簡単な入力値チェックのみ
->簡単にやるとpreg_matchに/^([a-zA-Z0-9])+([a-zA-Z0-9.-])*@([a-zA-Z0-9-])+([a-zA-Z0-9._-]+)+$/とか食わせるぐらい? ->RFCには準拠しない簡易的な実装
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
->真面目にやろうとすると死ぬ
- 正規表現でマッチ(番外編) 99.9%の確率でメールアドレスを検出できるサイトがある http://email.regex.com ex) perl/ruby
(?:(?:\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とかかけると記述が楽になる
隣の席に座っていた先輩: むかしdocomoとauは準拠してなかった(先頭にハイフンつけられるとか。ガラケーの頃の話
- 感想 自分的には簡易的な正規表現だけでいいのかなーと思った。
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>
みたいに書かれたコードがあった時に
->正直このコードはそもそもどうなのかと思ったけど
・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マッパーとか? RailsのActiveRecordが優秀 PHPのORマッパーよりも優秀っぽさ
突き詰めるとActiveRecordがいい・・・? →はい!
Q.PHPでかくのとRubyで書くのとどっちがいい? 新しいPJならRubyがいいかな PHPはドクトリンを使っていた https://doctrine.readthedocs.org/en/latest/ バージョンは教えられない
- 感想 ActiveRecord便利なの同意\\\٩( ‘ω’ )و //// PHPはフレームワーク使って開発っていう経験が(ほぼ)なくてPDOとかを使ってしかきちんとアクセスしたことないのでドクトリンとかいろいろ知らないのでうまくわからないけどRubyのActiveRecordとかは便利。
あたりが参考で出ていたような気がする
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)という意味 リクエスト・レスポンスの改ざん
iPhone ↓ OS Xのmitmproxyを実行 ↓ サーバ
2013のpythonのアドベントカレンダーにいろいろかかれている 〜〜〜 インストール設定 ~アドベントカレンダーにあるらしいので以下略
ごにょごにょ終わったら safariをひらいて 証明書を入れる
- 感想 重くするだけだったらiOSだと8から?できるようになったような気がするし、chromeとかだと重くできたりするのでandroidもできる(ときいた)のだけど requestの80%を破棄するような設定とか、柔軟に設定できるのはいいなーと思った。 本当に80%つながらないような状況で、実際にうごくかどうかってちょっと不安だし。
AcriveAdminの布教
redmineのtwitterらいくなプラグインとかつくっている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の紹介
おわり。
【最近読んだ。】天体少年。―さよならの軌道、さかさまの七夜 (メディアワークス文庫) 読んだ。
最近更新していなかったので読んでた本でもざっと紹介
今週のお題「ゾクッとする話」
も希土類少女が一部当てはまる気がする。
読んだ。
- 天体少年。―さよならの軌道、さかさまの七夜
概要と感想。 - 希土類少女 (講談社文庫) - 青柳 碧人
概要と感想。
好きな作家と聞かれたら多分この人を答えるかなーという感じで好きな、浜村渚の計算ノートシリーズの人の本。
東京湾 海中高校 (講談社文庫)も読んだけど、この人、今問題となってる環境問題とか、政治・経済的な問題の理系的な側面を物語に落としこむのうまいなって思う。浜村渚の計算ノートも、元は数学教育が軽視されるのを懸念したテロリストが、という話だし。東京湾海中高校も。
物語は、あまり気持ちのよいものとは言いがたい部分が結構あるのだけど…
レアメタルが体から定期的に排出される女の子たち(突然変異)を、国益・国力増強と安定的なレアメタル確保のために子飼いにする国の話。簡単に言うと国が用意した宿舎に少女たちを軟禁する話。
レアメタルを排出する女の子たちは皆短命。そして、生きているうちは一生レアメタルが体から排出される。
その体から排出されるレアメタルのせいで、死に直面する直前の思春期は、そのほとんどを宿舎の中で一生を終えることになる。
体内から排出されるレアメタルと、思春期真っ只中を死にゆく少女たちの葛藤、そして国の黒い思惑が入り乱れるストーリー。
と、読み終わって、よくこれこんなのを小説にできるなーと素直に(もちろん内容にも)感動したんだけど、なんというか後味が悪い物語だったけど、理系にも、化学とか物理とかが苦手な文系な人にも読んで欲しい感じの本だった。
未来から過去へと進む天体になった少年と、現在から未来へと生きる、頭のおかしい天文学者の血を引く女の子の過去と未来が交差する7日間の甘酸っぱいお話。 ストーリーの目の付け所がおもしろいなーと思った。全体の話としては、(物語のメインとなる部分から)未来にいる女の子(女の人)の語りベースであっさりと終わるんだけど、女の子が男の子と出会い徐々に恋心を抱いていく・・・というわけでなく、物語(甘酸っぱさ)ピークは4日目/7日間。 7日目が終わったら遠く遠くに離れ離れになってしまう、とかの話じゃなくて、なんというか面白い視点のストーリーだなと思った。 ネタバレになっちゃうので詳しくは書いてないけど、おもしろいので読んでみて欲しいなとおもった。
これから読むよ!
これから読む予定のがいくつかあるのでついでに貼っておく
浜村渚の計算ノート 6さつめ パピルスよ、永遠に (講談社文庫)
浜村渚の計算ノートシリーズがやっと次のが読めるよ!
なんかAmazon先生はストーリー1話ごとに区切って売るようになってたちょっとびっくりしたけど、文庫本で読みたいのです。
あとはこれ。
浜村渚の計算ノートシリーズが半月後に出るのだけど、それまでにもう1冊ぐらいは読めそうだと思ったのでぽちった。
ではではー.
wizard2を買った
そういえば結局椅子はwizard2(ミドルマネージメント)にしました
これ
オフィスチェアー「Wizard2(ウィザード2)」|製品|コクヨファニチャー株式会社
以下、理由と経緯
・いろいろ大塚家具とかを見て回って良さそうだったバロンチェア(送料込み4万弱)をヤフオクで購入したところ、決済後、倉庫で壊れたらしく返金処理になる
・それを機に(近所でもないけど)オフィス中古家具店に色々見に行ったところwizard2のハイバックが3.5万円ぐらいで売られていた
・座ってみたけど結構座高が高いのでハイバックでもちょっと足りない感じがする
→ まだ出て間もないタイプだったし、新品でミドルマネージメントタイプ購入
[KOKUYO(コクヨ)]Wizard2(ウィザード2)樹脂タイプ/ミドルマ :CR-G1825:オフィス屋ドットコム - 通販 - Yahoo!ショッピング
感想
・T字肘じゃなくて可動肘を買ったつもりだったんだけど(間違えたっぽく)T字肘が届いた。ちょっと低いかな−と思って可動肘買おうと思っていたんだけど、今のところ特に違和感はない
・身長180cmに対して、ミドルマネージメントのヘッドレストはギリギリ機能している。ただ、頭がギリギリ乗るぐらい。バロンとかのヘッドレスト(可動しないやつ)よりは低め。
・後ろに倒れるのはちょっと浅めぐらいな気がする。
・あぐらをかきたい時には、もうちょっと座るところの縦幅があると嬉しい(サブリナとかぐらいの大きさはない)
・ここまで色々書いているけど、値段もそれなりで、座り心地もいいので満足してます(・ω<)