資料はこちら 雑感 初めて技術シェアというよりも体験シェア系の発表をした スライドづくりがかなり難航した それなりにストーリーを保てた発表ではなかったんじゃなかろうか アーキテクチャ図を書くのが難しい… みんなどんなものを使ってるのか知りたい Clo…
例えばこんなクラスコードがあるとする。 db = $db; $this…
行ってきました 総じて最高でした。 トークをしました JavaScriptの静的型解析ツールであるflowの話をした。
weakモードとは flowtypeの説明は割愛します。 知りたい方は福岡PHPカンファレンスに来て私のトークを聞いてください 冗談はさておき、ざっくり言うとflowtypeはFacebook製のJavaScript用静的型解析ツールです。 ファイルの頭に// @flowを書き足すことでその…
NODE_PATHを足す JavaScriptを書くとき、ディレクトリを掘って階層が深くなったりテストフォルダが別にあるとrequire('../../../../hoge');みたいになってつらい なのでWebpackで固める場合はconfigで、サーバサイドjsの場合はapp-module-pathを使ってNODE_P…
1ヶ月過ごしてみて。ポエムです悪しからず。 楽しい 結論から言うと毎日楽しいです。 社内の雰囲気や制度については事前に社員さんとお話させてもらったり、mercanを読んで知ってたんだけど、入る前の想像とのギャップはほぼ感じずに過ごしてる。 強いて言う…
CTFはかじったことはあったけどどんな解き方があるかとか全然わからなかったので参加してきた。 2016.seccon.jp 講義のおかげか、運良くぽんぽん問題が解けて3位になれました。 駆け込みの1問で3位。やったぜ #ctf4b pic.twitter.com/6UZzZOrawg— きりん (@s…
やりたかったこと 既存コードにflowを導入したかったのでとりあえず全JSの先頭行に// @flow weakを挿入したかった。 shell find ./app/assets/js -type f -name '*.js' -exec sed -i "" -e $'1s/^/\\\/\\\/ @flow weak\\\n/' {} \; 詳しい解説はshellで疲弊…
いまさらに。 2016年やったこと 発表しまくった 2016年の目標としてアウトプットの量を増やすということを掲げていた。 なので「申し込んでからネタ考える」勢いでLTやカンファレンスに申し込みしまくった。 社内勉強会と外部発表合わせて18枚のスライドを作…
この記事は カノジョできないエンジニア Advent Calendar最終日の記事です。ニゲキレナカッタ… qiita.com 前半ポエムなので技術の話が見たい方は「今日のお話」から読んでどうぞ。 Advent Calendarの参加者の方々、お疲れ様でした 25日間の戦いがようやく終わりを告…
この記事は PHPアドベントカレンダー13日目の記事です。大遅刻ですごめんなさい。 qiita.com 正直、なぜか投稿した気になってしまってました…ちゃんとやらなきゃダメですよね気をつけます…。 したいこと すいません。タイトルちょっと厳密に言うと違います。…
CTF開いた 某コミュニティでCTF開いた やるきっかけとしては ISUCONで人権を失う SECCON予選で人権を再び取り戻そうという決意を固める でもCTF力全然ないし練習会しよう という感じ。 学生の頃にちょっとだけCTFに参加したことがあったのと、ちょっと使って…
この記事は Laravelアドベントカレンダー8日目の記事です。 qiita.com 前提知識 この記事ではDIパターンを実現する1つの手段であるセッターインジェクションをLaravelで実現する方法を紹介します。 なのでDIパターンやDIコンテナを知らない方は先にこれらの…
近況報告 兼 ポエムです。悪しからず アイスタイルを退職します 新卒として入って2年目ですが、今月一杯でアイスタイルを退職することになりました。 退職の動機として、「やめたいから転職する」というより「行きたい場所があるから転職する」というニュア…
この記事は アイスタイルアドベントカレンダー3日目の記事です。 タイトル的に技術知見っぽいんですがどちらかと言うとポエムに近いのであしからず。。。 qiita.com 社内の共有ライブラリを作る 弊社といえば化粧品クチコミサイトの@cosmeを運営してい…
この記事は JavaScriptアドベントカレンダーの1日目の記事です。 qiita.com JavaScriptというよりはChromeの話かもしれませんが、最近エクステンションを作って楽しかったので簡単に作り方を書いてみます。 Chromeエクステンションとは github-label-creater…
やりたいこと お仕事でページごとに必要なモジュールのみimportしたJSを実装し、それぞれコンパイルしたいという場面があった。 イメージ的にはsrc/(pc|sp)/**/*.jsをフォルダ構成やファイル名をそのままpublic/js配下に吐きだすといった感じ。 Webpackは基…
やりたいこと webpackを使ってフロント用のファイルをバンドルしたい。 そのとき、環境変数に合わせて値を変えたいという場面があった。 ノリ的には以下のようなコード。 if (process.env.NODE_ENV === 'development') { console.log('Debug message'); } こ…
結果 正確なスコアはメモし忘れたんですが、最高点が15000点ぐらいでした。 後半はずっと14000点を前後してた 何をしたか 自分用に覚えてる範囲で軽くメモ。 まずalp, pt-query-digestを仕込んでベンチを叩く。スコア200くらい DB周りの@aboyとミドルウェア…
npm run hogeでエラーを出したくない eslintでのチェックやトランスパイルの実行は下のような感じでpackage.jsonに書いてnpm run lint等で実行するようにしてる。 { "scripts": [ "lint": "eslint src/", "build": "babel src --out-dir dest" } } その際、e…
YAPCに登壇したぞ! 30分のトークとLTでそれぞれ登壇しました。 10分以上の発表は実は初めてでした。 年初のポエムで立てた対外発表の第一歩として応募して採択されたので頑張った。 sota1235.hatenablog.com DIコンテナの話 DIの発表はよく見るけどDIコンテ…
1年前 だいたい1年前、社内でXSSの認知を広めるべくXSSの話をわからないなりにしました。 今さら聞けないXSS from Sota Sugiura 1年経ったのでもう一回、社内で発表しました。 XSSの無い最高の夏を過ごそう ほんと、タイトルの通り。 今回は座学より実践形…
前提 初心者なりの超浅い理解です。 (というのも、元々Web Audio APIに食わせるためだけに調べてたので…) ArrayBufferとは ひとことで言うと「JavaScriptでバイナリを扱う」ために生まれたという認識。 なので画像処理等に使われていることが多い印象です。 …
なぜ作ったのか 会社でフロントサイドJSを書く時、Browserifyとnpmでいろいろモジュール入れてゴリゴリやってたのだがファイルサイズがでかくなってしまうことが多々あった。 ファイルが1個ならいいが、吐き出すファイルが1個ではなかったしみんなが修正する…
nodeのコード中で環境変数を書き換えたい そう思って以下の様なことをしてみました。 process.env.LOCAL_ENV = undefined; /* ~略~ */ if (_.isUndefined(process.env.LOCAL_ENV)) { console.log('LOCAL_ENV is not specified'); } しかし何回やってもproces…
文字参照とは 基礎的な話だけどきちんと調べたことなかったので適当に調べてみた。 文字参照とはHTML等のマークアップ文書において直接参照できない文字(例えば文章中に<を入れるとタグが崩れちゃったりする)を表現するために用いられる文字列です。 PHPだと…
環境 OS X 10.10.5 (Yosemite) electron 0.37.7 現象 普通にelectronのチュートリアル通りのアプリケーションスクリプトを書いているのにテキストフォームが入力できずにめっちゃ困ってた。 Issue立ててみて何個かアドバイスもらったものの動かず。。。 Keyb…
LTした 今年入って2回目のLTをした。 怖いぺちぱーの人がたくさん来ていたので相当緊張したがなんとか喋った。 実践DIコンテナ speakerdeck.com 話した内容を3行で書くと DIコンテナとはなんぞや LaravelにおけるDIコンテナ DIコンテナ活用例 を話した。 こ…
はじめに JSで非同期関数を書く時、個人的に意識してる話です。 別にTipsとかじゃないです。 要するにポエムです。 あしからず(´・ω・`) 非同期関数を使いこなす JSを書いたことがある人なら知ってるであろう非同期処理ですが、僕は非同期処理はなるべくPro…
前提 Babel6系でES2015のJSをBrowserifyを使用してコンパイルします。 願い JSをコンパイルする際、Ajax通信で使用するURIを開発と本番で分けたい場面がありました。 なので以下の様なことがしたい。 let uriPrefix = '/api'; if (process.env.APP_ENV === '…