素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

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

JSライブラリ/フレームワークの良い、悪いメモ

※ただのメモで、未来志向なのであまり真に受けてはいけない。 良いっぽい React.js 早速い/コンポネント志向/APIの設計がいい。JSXと他のトランスパイラの組み合わせという問題はある Promise ネイティブに入った、誰もが使ってる TypeScript ES6時代でも存…

Get mouse coordinates on Yosemite using JavaScript Automation(ターミナルからマウス座標をゲットする)

英語で調べたけどぜんぜん出てこないので英語で書く。Yosemiteでターミナルからマウス座標をゲットするコマンドはこれ。 osascript -l JavaScript -e "ObjC.import('Cocoa');console.log(JSON.stringify($.CGEventGetLocation($.CGEventCreate(null))))" In …

array.indexOf(value) >= 0で要素が含まれてるか検索すると失敗する場合がある

indexOf(val) >= 0の話 配列に要素が含まれているかのチェックに [1, 2, 3].indexOf(2) >= 0; // true のようなコードを使っている場面を極めて頻繁に(それ以外を使っているのを見ることは稀なくらい)見るが、 function contains(a, v) { return a.indexOf…

scrollイベントが呼ばれすぎることへの対処

onscrollを監視していると大量にeventが来てパフォーマンスが劣化するというのはよく聞く話で、 underscore.jsなどでイベントをthrottleやdebounceさせて対処していることが多い。 ただ、scrollに応じてスタイルを変更させたりする場合は、0.1秒くらい遅れが…

forも明示的な加算も使わずに「1から100まで出力する」

1から100までforを使わずに、さらに明示的な加算も使わずに表示するもの、自分で思いついたバージョンを書いておく。非同期である。 var INTERVAL = 1000; var d = Date.now(); var tid = setInterval(function () { var n = (Date.now() - d) / INTERVAL | …

FacebookのReactで綺麗で高速なDOMのView操作

それほど新しい話題でもないが、FacebookがReact | A JavaScript library for building user interfacesというDOMを抽象化したようなView操作のライブラリをリリースした。 Githubが出してるエディタのAtomが実験的にReactを採用したり、Instagramが採用して…

setTimeout, setIntervalを乗っ取って爆速にする

setTimeout() vs ハッカー、仁義なき戦いによると function isNativeFunction(func, name) { for (var o in func) { if (o === "toString") return false; } var match = func.toString().match(/^function (\S+)\(\)\s*{\s*\[native code\]\s*}$/); return …

Project Parfaitで尋常じゃない速さでpsdファイルからウェブサイトを組み立てる

Project Parfaitとは、adobeが開発してるβ版の、ウェブサイト作成支援のサービス。これを使うと、.psdのデザインファイルからHTMLを書き起こすのが異常に高速になるので、オススメしておこうと思う。 具体的には、psdファイルをアップロードすると、psdファ…

複数の独自ドメインをGithub Pagesで運用する方法&.tokyoドメインをとった

昨日、.tokyoドメインの一般登録が始まったので、ムームードメインでprogrammers.tokyoを取得した。 用途を考えずに取ったので、何か使い道を思いつくまでは仮のindex.htmlでも置いておこうと思い、でもそのためにわざわざ月額払うのももったいないので、Git…

ボキャブラリを増やすのに効果的な英単語解剖プロセス

解剖というほど大それたものではないのだが、最近、新規に英単語を覚えてボキャブラリを増す努力を始めた。 一押しの本 「日本人だけが知らない難解英単語: 阿部, 山村 啓人」という本を使っているのだが、これが予想以上に覚えやすくて、このレベルの英単語…

オープンリダイレクタ脆弱性に気をつける

たまたま通販サイトを見ていたらログインページに脆弱性を発見したので、書いておく。 下記サイトのサポート部門から、システム部門に問い合わせて早急に調査するとの連絡があった。 16 June 2014: 脆弱性を確認したので今日か明日中に修正し修正が終わった…

カタカナ英語の脱却に相手の唇を見ることが有効

タイトルで説明しきった感じがあるが、英語の発音の覚え方とリスニング力の鍛え方について、自分の考えを書いていこうと思う。 ネイティブは英語をリスニングしているのか? ネイティブは、耳だけを頼りに英語を聞いているわけではないということを知ってい…

nodeとstream周り、ジェネレータ、非同期処理

最近調べたnode.jsのstreamに関連した雑多な内容を、思いつくままに適当に書く。 例えば、 function* createPiGenerator() { var result = 0; for (var i = 1;; i += 4) { yield result * 4; result += 1/i - 1/(i + 2); } } こんな感じのジェネレータがあっ…

Web Inspector/Chromeのデバッガで動画を再生する

普段、Web Inspectorはデバッガとして使っていると思うが、Web Inspectorは実は様々な物を表示できる。 例えば、コンソールでライフゲームを表示することができる。 Web Inspector Life Gameに、コードを置いた。タイミングによっては上手く動かないので、コ…

古本をAmazonで買ってスキャンサービスに送ってiPadで読む

海外に住んでいると、日本語の本を入手することの難しさもあって日本語の本を全く読まなくなってしまう。海外の書籍はお店やネット通販で気軽に買えるし、英語圏の電子書籍は日本の電子書籍と比べて品揃えが格段に良いからだ。 英語の本ばかり読むことになる…