はらへり日記

腹に弾丸

2016-01-01から1年間の記事一覧

来客(カノジョ)用にVLANを切る話

この記事は カノジョできないエンジニア Advent Calendar最終日の記事です。ニゲキレナカッタ… qiita.com 前半ポエムなので技術の話が見たい方は「今日のお話」から読んでどうぞ。 Advent Calendarの参加者の方々、お疲れ様でした 25日間の戦いがようやく終わりを告…

PHPでISO8061に準拠した日付フォーマットをバリデーションする

この記事は PHPアドベントカレンダー13日目の記事です。大遅刻ですごめんなさい。 qiita.com 正直、なぜか投稿した気になってしまってました…ちゃんとやらなきゃダメですよね気をつけます…。 したいこと すいません。タイトルちょっと厳密に言うと違います。…

身内向けにCTF開催した

CTF開いた 某コミュニティでCTF開いた やるきっかけとしては ISUCONで人権を失う SECCON予選で人権を再び取り戻そうという決意を固める でもCTF力全然ないし練習会しよう という感じ。 学生の頃にちょっとだけCTFに参加したことがあったのと、ちょっと使って…

Laravelでセッターインジェクションする

この記事は Laravelアドベントカレンダー8日目の記事です。 qiita.com 前提知識 この記事ではDIパターンを実現する1つの手段であるセッターインジェクションをLaravelで実現する方法を紹介します。 なのでDIパターンやDIコンテナを知らない方は先にこれらの…

アイスタイルを退職します

近況報告 兼 ポエムです。悪しからず アイスタイルを退職します 新卒として入って2年目ですが、今月一杯でアイスタイルを退職することになりました。 退職の動機として、「やめたいから転職する」というより「行きたい場所があるから転職する」というニュア…

社内で横断的に使えるPHPライブラリを書こう!

この記事は アイスタイルアドベントカレンダー3日目の記事です。 タイトル的に技術知見っぽいんですがどちらかと言うとポエムに近いのであしからず。。。 qiita.com 社内の共有ライブラリを作る 弊社といえば化粧品クチコミサイトの@cosmeを運営してい…

今さら聞けないChromeエクステンションの作り方

この記事は JavaScriptアドベントカレンダーの1日目の記事です。 qiita.com JavaScriptというよりはChromeの話かもしれませんが、最近エクステンションを作って楽しかったので簡単に作り方を書いてみます。 Chromeエクステンションとは github-label-creater…

Webpackで複数のファイルをそのままバンドルする

やりたいこと お仕事でページごとに必要なモジュールのみimportしたJSを実装し、それぞれコンパイルしたいという場面があった。 イメージ的にはsrc/(pc|sp)/**/*.jsをフォルダ構成やファイル名をそのままpublic/js配下に吐きだすといった感じ。 Webpackは基…

webpackのDefinePluginとbabel-plugin-transform-environment-variablesの併用には注意

やりたいこと webpackを使ってフロント用のファイルをバンドルしたい。 そのとき、環境変数に合わせて値を変えたいという場面があった。 ノリ的には以下のようなコード。 if (process.env.NODE_ENV === 'development') { console.log('Debug message'); } こ…

ISUCON6予選に出た

結果 正確なスコアはメモし忘れたんですが、最高点が15000点ぐらいでした。 後半はずっと14000点を前後してた 何をしたか 自分用に覚えてる範囲で軽くメモ。 まずalp, pt-query-digestを仕込んでベンチを叩く。スコア200くらい DB周りの@aboyとミドルウェア…

npm scriptsでエラーログを表示させたくない話

npm run hogeでエラーを出したくない eslintでのチェックやトランスパイルの実行は下のような感じでpackage.jsonに書いてnpm run lint等で実行するようにしてる。 { "scripts": [ "lint": "eslint src/", "build": "babel src --out-dir dest" } } その際、e…

YAP(achimon)C::Asia Hachioji 2016に登壇しました

YAPCに登壇したぞ! 30分のトークとLTでそれぞれ登壇しました。 10分以上の発表は実は初めてでした。 年初のポエムで立てた対外発表の第一歩として応募して採択されたので頑張った。 sota1235.hatenablog.com DIコンテナの話 DIの発表はよく見るけどDIコンテ…

社内で1年ぶりにXSSの話した

1年前 だいたい1年前、社内でXSSの認知を広めるべくXSSの話をわからないなりにしました。 今さら聞けないXSS from Sota Sugiura 1年経ったのでもう一回、社内で発表しました。 XSSの無い最高の夏を過ごそう ほんと、タイトルの通り。 今回は座学より実践形…

JSのArrayBufferがよくわからなかったのでほんの少しだけ調べた

前提 初心者なりの超浅い理解です。 (というのも、元々Web Audio APIに食わせるためだけに調べてたので…) ArrayBufferとは ひとことで言うと「JavaScriptでバイナリを扱う」ために生まれたという認識。 なので画像処理等に使われていることが多い印象です。 …

ファイルサイズをチェックするfslint作りました

なぜ作ったのか 会社でフロントサイドJSを書く時、Browserifyとnpmでいろいろモジュール入れてゴリゴリやってたのだがファイルサイズがでかくなってしまうことが多々あった。 ファイルが1個ならいいが、吐き出すファイルが1個ではなかったしみんなが修正する…

node.jsでprocess.env.HOGEを書き換えようとしてハマった

nodeのコード中で環境変数を書き換えたい そう思って以下の様なことをしてみました。 process.env.LOCAL_ENV = undefined; /* ~略~ */ if (_.isUndefined(process.env.LOCAL_ENV)) { console.log('LOCAL_ENV is not specified'); } しかし何回やってもproces…

HTMLのイベントハンドラ属性における文字実体参照、数字文字参照

文字参照とは 基礎的な話だけどきちんと調べたことなかったので適当に調べてみた。 文字参照とはHTML等のマークアップ文書において直接参照できない文字(例えば文章中に<を入れるとタグが崩れちゃったりする)を表現するために用いられる文字列です。 PHPだと…

electronでテキストフォームが動かない

環境 OS X 10.10.5 (Yosemite) electron 0.37.7 現象 普通にelectronのチュートリアル通りのアプリケーションスクリプトを書いているのにテキストフォームが入力できずにめっちゃ困ってた。 Issue立ててみて何個かアドバイスもらったものの動かず。。。 Keyb…

PHP BLT#4でLTしました

LTした 今年入って2回目のLTをした。 怖いぺちぱーの人がたくさん来ていたので相当緊張したがなんとか喋った。 実践DIコンテナ speakerdeck.com 話した内容を3行で書くと DIコンテナとはなんぞや LaravelにおけるDIコンテナ DIコンテナ活用例 を話した。 こ…

これからのJSの非同期処理関数は全てPromiseを返させるべき

はじめに JSで非同期関数を書く時、個人的に意識してる話です。 別にTipsとかじゃないです。 要するにポエムです。 あしからず(´・ω・`) 非同期関数を使いこなす JSを書いたことがある人なら知ってるであろう非同期処理ですが、僕は非同期処理はなるべくPro…

Babel + Browserifyで環境変数を使用する

前提 Babel6系でES2015のJSをBrowserifyを使用してコンパイルします。 願い JSをコンパイルする際、Ajax通信で使用するURIを開発と本番で分けたい場面がありました。 なので以下の様なことがしたい。 let uriPrefix = '/api'; if (process.env.APP_ENV === '…

Laravel5.1でsuperagentを使用する際の注意点

環境 Laravel 5.1 superagent 1.7.2 ajax通信にsuperagentを使用したい JS弱者なりに「jQueryから自立したい…!」と感じ、Ajax通信を$.ajaxでなくsuperagentというものを採用しました。 かのexpressやstylusを開発したTJ作ということもあり、とても使いやす…

雑兵MeetUp #3でLTしました

雑兵MeetUpに行って来た 詳しくはイベントページをどうぞ。 zohyo.connpass.com 第一回目でもLTしたのだけど、2回目飛ばしての参加でした。 LTをした 年末ポエムでも言ってたが人前で喋る機会を増やしたく、LTした。 スライドはこちら。 speakerdeck.com DB…