読者です 読者をやめる 読者になる 読者になる

npm install scriptの脆弱性とオープンソースと信頼

先日アナウンスされた脆弱性とその周辺について、とりとめなく。 The npm Blog — Package install scripts vulnerability Vulnerability Note VU#319816 脆弱性の概要 VU#319816 によれば、今回問題になっているのはnpmの以下の性質を利用するとnpmパッケー…

ES2016の追加機能が決定、あるいはES7言うな問題

今年6月に公開予定の ECMAScript 2016 (ES7) で追加される機能が以下の2つに決定した。 Array.prototype.includes Exponentiation Operator 今後は3月1日にスペックのスナップショットが切られ、6月の公開に向けた作業が始まる。 あれ、ES7ってそれだけなの…

npm initでauthorやlicenseなどの初期値を指定する

JavaScript Advent Calendar 2015の2日目。小ネタです。 npm initするときにauthorとかlicenseとか毎回同じこと入力するの面倒だったりしません?実はいくつかの項目は初期値を設定できるのだけど、ググってもあまり日本語情報が無いようなので共有。 設定方…

『よもだそば(日本橋)』カレー Advent Calendar 2015 1日目

カレー Advent Calendar 2015(あと3人募集中!)の1日目です。 2013年は家の近所のカレー屋を紹介したのですが、今年は会社の近くの行きつけである『よもだそば』を紹介します。

npm v2のインストールは`npm i -g npm@latest-2`

タイトルで言い切った感のある小ネタ。 最新のnpm v3は基本素晴らしいのだけど、主にnode_modulesがフラットになったなどのbreaking changesによって一部のパッケージがまだ非対応だったり、自分のプロジェクトで固めたshrinkwrap.jsonからは対応前の古いパ…

Spring Boot 1.2/1.3でhot swapping的なこと

唐突にJavaの話。Spring Bootで変更を動的に反映する場合(いわゆるhot swappingとかhot deploy)はSpring Loadedを使えって出てくるのだけど、なんか動いたり動かなかったりしてなんでなんだろうと小一時間調べたメモ。Spring Boot + Maven + IntelliJ IDEA…

明日の次世代Webカンファレンスでjs_nextやります

イベントの趣旨はconnpassを見てもらうとして、自分は11:10から js_next というセッションでオーナーをやります。 メンツは@t_wadaさん、@constellationさん、@vvakameさんという盤石の布陣。 このセッションでは、JavaScriptの未来はどうなっていくのか、ブ…

YAPCで『Effective ES6』について発表してきた

8/21-22に開催されたYAPC::Asia Tokyo 2015で "Effective ES6" というタイトルで発表した。 今回、自分にとっては最初で最後のYAPCだったけど、YAPCの面白さは特定分野に留まらないWeb系エンジニアが一堂に会するところだと感じた。 例えばHTTP/2ってWeb全般…

Node学園でES6について話した

Node学園 16時限目 ES2015発行記念でES6について話しました。 Run through ES6 (ES6総ざらい) Everything is Iterator (IteratorについてのLT) 本編の充実度もさることながら、無法地帯と化した懇親会でFilip Pizloの業績を烈火のごとく語るConstさんと…

WEB+DB PRESS Vol.87にES6特集書いた&YAPCにES6のトーク応募した

3行でまとめ 今週中にもES6が正式公開される予定 => 6/17に公開されました! 6/24発売のWEB+DB PRESS Vol.87にES6特集を書いたので読んでください! YAPCにEffective ES6というトークを応募したので、はてブ&Tweetお願いします!

ES6 ModulesはHTTP/2によってconcat無しで使えるようになるのか

HTTP2 時代のサーバサイドアーキテクチャフィードバック - Togetterまとめ のあたりで話していたことのまとめ。 補足 タイトルで「ES6 Modulesってconcatしないと動かないの?」と一部に誤解を与えてしまったようなので補足。ES6 Modulesがブラウザにネイテ…

いまどきの.travis.yml

いまさら感もあるのだけど、あまり知られていないようなのでTravis CIの高速化+αなtipsを書いておく。 先にNode.js向けの完成形の.travis.ymlはこちら。 language: node_js node_js: - "0.12" - "4" - "6" sudo: false cache: directories: - node_modules T…

BabelとTraceurでES6末尾再帰最適化を試す

ちょっと前にBabelに末尾再帰最適化が入って話題になったけど、同じくTraceurにもv0.0.85で最適化が入ったので試してみた。

grunt-parallelize v1.1.0リリースおよび零細OSSの継続性について

2015/03/29 10:30 フォークについて末尾に追記 gruntタスクのファイルリストを分割して並列実行するgruntプラグイン、grunt-parallelizeを前に作った。 タスクを並列超速化するgrunt-parallelizeを紹介するよ - teppeis blog そこそこ使われてるっぽいのだけ…

GitHub上のnpmパッケージ名をリンクに変えるChrome拡張GitHub Linkerで捗る

GitHub上のソースコードでrequire('morgan')とか書いてあって、このパッケージってなんだっけ?って "npm + morgan" でググってnpmのサイトかGitHubリポジトリを探すことってよくある。 ありすぎるので、自動リンク化するChrome拡張書こうかなと思って先行実…

io.js用に書いたパッケージはnpmでどう扱うか問題

東京Node学園 15時限目に参加したときにふと思った疑問について。 Node.jsと非互換なAPI使ったとき、npmにあげていいの?package.jsonのengineとかで書けるのか #tng15— teppeis (@teppeis) 2015, 2月 10

typescript-simpleの高速化と最近のTypeScript Compiler API周辺動向

ES6 compat tableのTypeScriptコードのビルド時間を300秒から2秒に短縮した話と、最近のCompiler APIの動きの紹介。

TypeScript Compiler Service APIでシンプルなコンパイラを書いた

TypeScript 1.4が出てCompiler Service APIのドキュメントが出てきた。 Using the Compiler API · Microsoft/TypeScript Wiki · GitHub よーし触ってみようと思ったのだけど、APIがファイルを前提にしていて、ちょっとしたTypeScriptコード片を文字列で渡し…

おまえは今まで実行したassertの回数を覚えているのか?あるいは新しいアサーションユーティリティのご提案

JavaScript Advent Calendar 2014 11日目。 いきなり要約: Promiseや非同期テストのアサーションを簡単確実に書けるようになるesplanというライブラリのPoCを作った話。 Promiseや非同期のテストは難しい 詳しくはJavaScript Promiseの本: Chapter.3 Promise…

TypeScriptの注目の型関連issue

TypeScript Advent Calendarの4日目。 TypeScriptのロードマップを見てもES6対応以外は "Investigate top-rated feature requests" とか書いてあるぐらいで、GitHub Issuesのコメントのやりとりを見ていても割りと流動的に良い提案があったら取り入れる感じ…

ES6テンプレートリテラルをテンプレート関数化する

V8にES6テンプレートリテラルが入ったらしいということで、 テンプレートリテラルが実装された - JS.next 先に入っているFirefox 34(現beta)で遊んでみた。

そろそろCSP Lv.2 nonceやろう

tl;dr CSP Lv.2のnonceを使うと意外と簡単にCSPの恩恵を受けれるよ Firefoxはunsafe-inlineとの挙動がおかしいので注意 サンプル実装としてExpressで簡単にnonce対応できるconnectプラグインを書いた(デモあり) Violation Reportもブラウザによって細かい…

3分で分かるFacebook Flow

というか3分ぐらいの情報しかまだ出てきてないんだけど。 先月の@Scale 2014で発表されたFacebookのFlowについて、おそらく唯一のオフィシャルな情報であるこの発表動画を見て分かったことを紹介(ざっと見ただけなので間違ってたらごめんなさい)。

Mac/iOS Safariでバックスラッシュを円記号として表示する方法

css

Unicodeではバックスラッシュ*1と定義されているU+005Cだが、歴史的な背景によりMS系日本語フォントでは円記号が割り当てられているのはよく知られた話。 ところがMac/iOSに載っているヒラギノ角ゴシック等ではU+005Cはバックスラッシュとして表示されるし、…

TypeScriptで複数ファイル構成する2つの方法

TypeScriptで複数ファイル構成のプロジェクトを扱う方法について書いてみる。日本語の入門記事や試してみました系の記事で勘違いされてることがたまに見受けられるので、整理してみる。 公式のModules in TypeScriptを既に読んでおられるような御仁は回れ右…

TypeScriptの宣言空間とその不満

最近TypeScriptの型を触っていてハマったあたりのまとめ。だいたい仕様書に書いてあるとおりなので、すでに仕様書を読破している諸兄にはこの記事は必要ないです。 宣言空間 (declaration space) とは 宣言空間というのは、同一宣言空間で同じ名前が複数存在…

HTML FormにPUT/DELTEは必要なのか、あるいはJSer界の分断 #桜JS

先日、都内某所で開催された#桜JSに参加したので、個人の日記レベルの感想を書いてみる。 #桜JS - Togetterまとめ 桜JSでご飯を食べながらLT大会をした | Web scratch 細かいことはazuさんのまとめを見てもらうとして、個人的におもしろかったのがHTML Form…

JavaScript Stringでサロゲートペアを扱う

JavaScriptで強力なUnicodeを扱う方法について書きます!(嘘) 先月末に発売されたWEB+DB PRESS Vol.78で「フロントエンドの国際化」の記事を書いたのは前回書いた通り。 WEB+DB PRESS Vol.78に「フロントエンドの国際化」について書いた! - teppeis blog …

WEB+DB PRESS Vol.78に「フロントエンドの国際化」について書いた!

先週発売されたWEB+DB PRESS Vol.78のJavaScript連載にて、「フロントエンドの国際化」をテーマに記事を書きました! 内容はこんな感じです。

タスクを並列超速化するgrunt-parallelizeを紹介するよ

この記事は Grunt Plugins Advent Calendar 2013 23日目の記事です。 Gruntタスクを並列で実行するプラグイン grunt-parallelize を紹介します。 ある程度プロジェクトが大きくなるとJavaScriptが1500ファイルとか超えてきてJSHintにくっそ時間かかるみたい…

Node.jsの開発を超速化するGitHub連携 三種の神器

Node.js Advent Calendar 2013 - Adventar 9日目です。 あまりネタを用意する時間がなかったので、GitHubにNode.jsのリポジトリを置いたりnpmにパッケージを公開したりしたときに便利な定番サービスを3つ紹介します。 Travis CI Coveralls David タイトルは…

3分で分かるAngularJSセキュリティ

先日のng-mtg#4 AngularJS 勉強会でLTしようと思ったけど申し込みが間に合わなかったのでブログに書きます。 先月リリースされたAngularJS 1.2はセキュリティがんばってる的なことを聞いたので、セキュリティ周りの仕組みを調べてみました。 お題は以下です…

『curry 草枕』カレー Advent Calendar 2013 2日目

さて久しぶりのブログは カレー Advent Calendar 2013(参加者募集中!) の2日目です。 1日目は@yucato_さんの荻窪 トマトでした。 今日のカレーは新宿三丁目のcurry 草枕です。 家が近いこともあって、多分いままでで一番食べてるカレーです。Foursqure見…

grunt-contrib-jshint 0.6.4で.jshintrcにコメントが書けるようになったよ

本家のJSHintでは、.jshintrcのなかでこんな感じでコメントが書けるんですけど、 { // Enforcing "bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.) "camelcase" : false, // true: Identifiers must be in camelCase "curly" : true,…

Google HTML/CSS Style Guideについて、そろそろひとこと言っておくか

話題になっていたので、 <html>,<body>は要らない?Googleが推奨するHTMLファイルの記法 - Qiita [キータ] 便乗して、一年以上前に社内勉強会で作った資料があったので今更ながら公開してみます。 Best practice from Google HTML/CSS Style Guide</body></html>

Docker = LXC + aufs + GitHub Culture

先日、社内勉強会のLTでDockerについて発表というか紹介しました。 DockerがYAVAY! from teppeis Dockerは各方面で噂は聞いていたんだけど、先月のTesting Casual Talks #1 : ATNDで、mizzyさんのDocker上でserverspecを走らせるデモを見てガツンとやられま…

超高速レビュー: TypeScript 0.9.1

タイトルは今日のネタから頂きました。与沢さんじゃないです。 さて本日TypeScript 0.9.1がアナウンスされたので、変更点などを見てみます。 Announcing 0.9.1 - TypeScript - Site Home - MSDN Blogs

Re: RequireJSを使うのを止めた理由

RequireJSを使うのを止めた理由 | それなりブログ を読んで、ほぼ同意だったのですが、意識が高まったのでいくつかコメントを。

URL移転前のはてブを表示するChrome拡張『hatemove』をTypeScriptで作った。

はてブさんいつもお世話になってるんですが、サイトのURLが移転しちゃうと過去のデータ引き継げないっていう問題があります。 ここ最近GitHub PagesとGistのURLが変わっちゃって、「あれ、これ前に見たっけ?」っていうことが増えてきたので、移転前のはてブ…

WEB+DB PRESS Vol.75でTypeScriptの記事を書きました!

本日発売のWEB+DB PRESS Vol.75のJavaScript連載にて、TypeScriptの記事を書かせていただきました。 WEB+DB PRESS Vol.75作者: 栗林健太郎,柴田博志,黒田良,安宅啓,松下雅和,桑野章弘,Jxck,伊藤直也,佐藤鉄平,中川勝樹,登尾徳誠,奥野幹也,近藤宇智朗,堀江幸…

サードパーティCookieをブロックしたまま『はてなブログ』を管理する

Chromeで『サードパーティのCookieとサイトデータをブロックする』をチェックすると、はてなにログインしててもはてなブログのヘッダーとかが未ログイン状態の表示になっちゃいます。 はてなブログがhatenablog.comドメインなので、hatena.ne.jpのCookieがブ…

第38回 HTML5とか勉強会でテストについて話しました。

先週の4/26に開催された第38回HTML5とか勉強会「Webアプリ×テスト最新事情」で、JavaScriptのテストについて話させてもらいました。 発表資料はこちら。 JavaScript Unit Test Why? What? How? from teppeis

brew install ackでエラーになる件

mac

ack 2.0がリリースされてたのでHomebrewで入れたらエラーになった件のメモ。 $ brew install ack ==> Downloading http://beyondgrep.com/ack-2.02-single-file Already downloaded: /Library/Caches/Homebrew/ack-2.02.02-single-file ==> pod2man /usr/loc…

Closure Compilerの型テンプレートが進化してる件

altjsガチ勢のみなさんこんにちは。 TypeScriptの次期バージョンでジェネリクスが入るぜ!なんて話題になってたりしますが、Closure Compilerのテンプレートまわりも人知れず進化しているので紹介。 なぜかドキュメントにはさっぱり載ってないので、Compiler…

Effective JavaScript勉強会 #1

社内でEffective JavaScriptの勉強会を始めました。 第1回の資料をslideshareに上げたので、シェアさせていただきます!(春なので意識高め) Effective JavaScript Ch.1 from teppeis スライドにも書いたけど、これまでだと類書で薄いのは『JavaScript: The…

ArrowFunctionのthis: ES.nextとCoffeeScriptとTypeScript

Firefox 22(Nightly) で ArrowFunction が実装されたが、扱いが難しい - hogehoge @teramako id:teramakoさんの記事を読んで、ES.nextのArrow Functionって単純な省略記法じゃないんだーっとか思ったけど、よく考えたらCoffeeScriptだってfat arrowならthis…

WEB+DB PRESS Vol.73にJSのユニットテストについて書きました!

本日(2/23)発売の WEB+DB PRESS Vol.73 にて、JavaScript連載第6回『最新ツールを使ったモダンなユニットテスト Mocha, Testem, Sinon.JS』を執筆させていただきました! WEB+DB PRESS Vol.73作者: 設樂洋爾,白土慧,はまちや2,大和田純,松田明,後藤大輔,ひ…

1年前のSass/Compassを振り返ってみた

昨年末のブログを見てみたら、Sass/CompassでPass風のメニューを作って遊んでました。 当時はSass 3.2のリリース前で、あれこれとダーティハックをしていたので、最近のSass/Compassだとどうなるのか?と思ってアップデートしてみました。 https://github.co…

はてなブログに移行した。

さすがにはてなダイアリーもどうだろうと思いつつ、octopress的なものもちょっと面倒だなと思っていたところ、 最近のはてなブログならはてブもスターもワンボタンで移行できる上にリダイレクトまで設定してくれるということで、さくっと設定してみた。 ホン…

WEB+DB PRESS Vol.71のJavaScript連載にjQuery再入門の記事を書いたよ。

本日10/24発売のWEB+DB PRESS Vol.71のJavaScript連載に「プログラマのためのjQuery再入門 〜パフォーマンス,イベント制御,非同期処理〜」という記事を書きました! WEB+DB PRESS Vol.71作者: 竹迫良範,Jxck,じょさん,後藤秀宣,藤原俊一郎,奥野幹也,堤智代…