タグ

programmingに関するstealthinuのブックマーク (826)

  • JavaScriptで、メソッドをコールバックとして渡す方法(コールバック関数でthisをbindさせる方法) · DQNEO日記

    Home Subscribe var obj = { name : 'pikachu', say : function(){ alert('I am ' + this.name); } } setTimeout(obj.say, 1000); // => 'I am'とだけ表示される。 これは期待通りに動いてくれません。 コールバックとしてメソッドを渡した場合、それはオブジェクトと切り離された単なる関数(メソッドではない)となってしまうのです。 つまり下記と等価なのです。 setTimeout( function(){alert('I am ' + this.name);} , 1000); 関数がオブジェクトと切り離されているため、このthisはグローバルオブジェクト(windowオブジェクト)を指してしまっており、'I am'とだけ表示されます。 ではどうすればよいでしょうか? bin

    stealthinu
    stealthinu 2014/12/02
    MDNのbind実装をコピペするとIE8以前でもbindを使えるようになる模様。うむー…
  • javascript のコールバック関数を引数付きで指定するには - Enjoi Blog

    By clicking “Accept all cookies”, you agree Enjoitech can store cookies on your device and disclose information in accordance with our Cookie Policy. Accept all cookies

    stealthinu
    stealthinu 2014/12/02
    コールバック関数を引数なしで渡すときはいいけど引数付きにすると動かなくなるのはなぜ?と色々探してやっとみつけた。引数付けると関数そのものじゃなくて関数の戻り値になっちゃうのか。
  • 例外 - Qiita Advent Calendar 2014 - Qiita

    例外やエラー、それにまつわる各種言語の取り組み等を共有しましょう。 11月末までに書き手が集まらなかった場合は主催者による独りAdvent Calendarと化します。 集まらなかったので残念ながら独りAdvent Calendarと化しました。 追記 独りAdvent Calendarですが、以下の理由で頓挫しました。6日目以降はお好きにご活用ください。 http://qiita.com/Kokudori/items/3a953c00012408f76ab9#%E4%BE%8B%E5%A4%96-advent-calendar-2014%E3%81%AE%E7%B6%99%E7%B6%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

    例外 - Qiita Advent Calendar 2014 - Qiita
    stealthinu
    stealthinu 2014/12/02
    ネタAdvent Calendarだと思って見たら超ゴリゴリの本気だった… 12/1からもう完全本気の本気。
  • Goに入ってはGoに従え

    Goに入ってはGoに従え Go Conference 2014 autumn 30 November 2014 鵜飼文敏 Fumitoshi Ukai Google Software Engineer - Chrome Infra team Go Readability Approver Go言語のReadabilityをレビューするチーム コードレビューを通じてGo言語のよいコードの書きかたを教える メインのプロジェクトとは別のコードをレビュー 一年前くらい前に参加して 20% timeで 200くらいのCLをレビューしました 今は一日3CLくらい、週に12CLほどのペースでやっています Gopher by Renée French 2 Readabilityスキルとは? プログラミング言語のリテラシー 作法にかなったやりかた で、読んだり書いたりできる能力 言語ごとに作法が違う C++

    stealthinu
    stealthinu 2014/12/01
    GoってJavaの文化のアンチテーゼとして誕生したのかな…?
  • 本日12月1日より、プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる | gihyo.jp

    日12月1日より、プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる 日12月1日より、プログラマ有志による2014年の各技術系Advent Calendar(アドベントカレンダー)が一日目を担当する人のblogではじまっている。技術系Advent Calendarの数の増加傾向は今年も続いており、Qiitaを利用したものがとても多くなっている。 一般的なAdvent Calendarは、12月25日のクリスマスを楽しみに待つために、12月1日から24日までのカレンダーの日付それぞれの部分が扉になっており、1日ずつその日の日付の部分を開くと天使や動物の絵などが見えるという仕組みになっている(もちろん、様々なバリエーションがある⁠)⁠。 これに発想をえて、技術系Advent Calendarでは基的に、12月1日から25日までの25日間、特定のプログラ

    本日12月1日より、プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる | gihyo.jp
    stealthinu
    stealthinu 2014/12/01
    今年のadvent calendarまとめ。postfixにちょりっと参加。
  • CC500: a tiny self-hosting C compiler

    Introduction I wrote this tiny compiler, which translates a subset of C into x86 machine code, for fun. It has no use, unless it counts as educational. I called it CC500 because I initally guessed it would take about 500 lines. It turned out to be about 600 lines even without the comments and blank lines. With the comments and blank lines it has about 750 lines. It could be made shorter, but I wan

    stealthinu
    stealthinu 2014/11/18
    すげえ。500行で自己コンパイル可能なtiny Cコンパイラ。必要最低限なgetcharとかmallocとかだけシステムコール呼ぶバイナリが書いてあるがあとはこのtiny Cで書いてある。トリッキーなコードはなかった。
  • アプリケーションをつくる英語

    目指すは世界市場! 英語版アプリ開発のために、UIやメッセージでよく使われる英単語や構文パターン、さらに英語ライティングの基やメッセージの書き方、I18N/L10Nの基から翻訳業者への依頼まで、幅広く紹介。 サポートサイト著者によるサポートページが公開されています。 翻訳者 西野竜太郎 Webサイト 内容紹介最近スマートフォン用やWeb 用のマーケットが登場したことで、アプリケーションを海外に展開しやすくなりました。パソコンに加えてスマートフォンやタブレットといった新しい機器や、有線および無線の高速ネットワークが世界的に普及しつつあることを考えると、アプリケーションに対する需要は今後さらに拡大するものと思われます。海外は日の開発者にとって魅力のある市場です。しかし海外展開には外国語での開発が必要となります。特に英語は世界共通語と位置付けられている面があるため、まず対応を考えるべき言語

    アプリケーションをつくる英語
    stealthinu
    stealthinu 2014/11/07
    これ変数やクラス名の命名するのにも参考になるのでは。
  • JSライブラリ/フレームワークの良い、悪いメモ - 素人がプログラミングを勉強していたブログ

    ※ただのメモで、未来志向なのであまり真に受けてはいけない。 良いっぽい React.js 早速い/コンポネント志向/APIの設計がいい。JSXと他のトランスパイラの組み合わせという問題はある Promise ネイティブに入った、誰もが使ってる TypeScript ES6時代でも存在意義のある言語。TypeScript互換のFacebook Flowの動向に注目 Backbone.js ModelとEventを使う/Viewは使わなくていい Lodash Underscore.jsをよくしたやつ Gulp Gruntより良いという意味で。browserifyまわりがうまく動かない問題があってnpm runのほうがいいという噂もあるがまあ良いに分類してもいい EventEmitter Custom EventはDOMにくっ付いてる感があるのでロジック志向の物にはEventEmitter使った

    JSライブラリ/フレームワークの良い、悪いメモ - 素人がプログラミングを勉強していたブログ
    stealthinu
    stealthinu 2014/11/06
    JS界隈は流れが早すぎてついてけてない。
  • jQuery 1.7、1.8 で非推奨になったイベントのメソッドと Ajax 関連のメソッドとイベント - Sarabande.jp

    jQuery: 大半のブラウザにおいて ready は DOMContentLoaded を指すFunction.prototype.apply、bind と $.proxy の比較event.originalEvent、jQuery.event.props.push、jQuery.event.fixHooks について条件分岐からメソッドチェーンやマップによるコールバックにjQuery 1.7、1.8 で非推奨になったイベントのメソッドと Ajax 関連のメソッドとイベントメソッドチェーンもしくはプロパティ表記を使って複数のイベントハンドラを指定するホーバーで削除ボタンの表示をコントロールするmouseenter と mouseover のちがいjQuery のイベントメソッドのなかでの return false と e.preventDefault() のちがい9月1日追記: on メ

    stealthinu
    stealthinu 2014/10/31
    ajaxで成功した時とかのコールバック関数指定が.successとかのメソッドでメソッドチェーンになってる。知らんかった…
  • 10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話

    2. よしだたけひこ • フリーランスエンジニア歴10年ほど • 去年までJavaエンジニアとして10年以上活動 • レベルは下の上〜中の下 • 今年からフロントエンドエンドエンジニア

    10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
    stealthinu
    stealthinu 2014/10/23
    Webフロントエンドのヒントとしても参考になるが自分の今メインの仕事から他部門に手をだす場合のヒントとしても良エントリだった。
  • イミュータブルデータモデル(入門編)

    6. Step1 エンティティの抽出 発送担当者が受注リストをもとに、商品の在庫を確認し、在庫が あれば商品を発送する。 ① 要求仕様の「動詞」を抜き出しエンティティとする。 ② ①に関わる「名詞」を抜き出しエンティティとする。 ③ エンティティ間の関連に線を引く ④ 属性や候補キーも分かる範囲で書いておきます。 間違い! この段階で実装をプロパティファイルにするとか、Enum にするとか決め打ちでエンティティとして表さないのはや めましょう。 まず、はじめにエンティティを抽出します。

    イミュータブルデータモデル(入門編)
    stealthinu
    stealthinu 2014/10/21
    この「リソース」と「イベント」に分けてリソースの修正は必ずイベントが噛んでるはず、という考え方は良いな。
  • PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法 - 絶品ゆどうふのタレ

    PHPでテストケースを作成する場合、ネイティブ関数を使っているようなコードに対してテストを実行しようとすると、どうしても環境に依存したり、実リソースにアクセスする必要が出てしまうことがあります。 この記事では、そのような問題に対する対処法を提示します。 経緯みたいなもの 先日もWeb APIをコールするPHPライブラリを書いていたのですが、HTTPをたたく部分のテストを切り離せず、もやもやしていました。 ちょっと前にPerlのTest::Timeというライブラリを教わって感動していたのですが、PHPでもネイティブ関数をオーバーライドできたらどんなにすばらしいだろう、などとぼやいていたのです。 そんなときに、@takimoにPHP 5.3ならオーバーライドできるよねって言われて、ハッと思い立ってテストに組み込む方法を考えてみたところ、割とスマートに実現できそうな方法が見つかったので、方法論の

    PHPでネイティブ関数を含むコードのテスタビリティを上げる2つの方法 - 絶品ゆどうふのタレ
    stealthinu
    stealthinu 2014/10/21
    ネームスペース駆使して組み込み関数をオーバーライトする方式の元ネタ。実際にPHPUnitで使う場合のコード実例とかあり。
  • PHP版レガシーコード改善に役立つ新パターン #wewlc_jp

    こちらのスライドは以下のサイトにて閲覧いただけます。 https://www.docswell.com/s/ockeghem/ZM6VNK-phpconf2021-spa-security シングルページアプリケーション(SPA)において、セッションIDやトークンの格納場所はCookieあるいはlocalStorageのいずれが良いのかなど、セキュリティ上の課題がネット上で議論されていますが、残念ながら間違った前提に基づくものが多いようです。このトークでは、SPAのセキュリティを構成する基礎技術を説明した後、著名なフレームワークな状況とエンジニア技術理解の現状を踏まえ、SPAセキュリティの現実的な方法について説明します。 動画はこちら https://www.youtube.com/watch?v=pc57hw6haXk

    PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
    stealthinu
    stealthinu 2014/10/21
    これはすごい。レガシーコード捨てて全部新しく作り直したくなる気持ちをぐっとこらえてテスト可能なコードへと徐々に改善していこうという取り組み。ネームスペース駆使してる。
  • TDDを諦めることと、RSpecをやめること - 高柴ラボ

    2014-10-17 TDDを諦めることと、RSpecをやめること Ruby on Rails Ruby RSpec 開発手法 最近Web上でも仕事場でも、RSpecをやめて別のテストフレームワークに変えようと思っている……みたいな話をちょくちょく見聞きするようになった。僕がRuby on Railsで開発を始めた2012年8月当時、すでにRSpecはテストフレームワークのデファクトと言ってよかった。一斉を風靡したRSpecが、なぜ今見直され始めているのか。 きっかけになったのは今年4月の、Rails作者であるDavid Heinemeier Hansson(以下DHH)によるTDD is dead発言だと思う。 5月にはこの発言によるTDDへの風評被害を重く見たKent Beck*1が、レフリーにMartin Fowler*2を迎え、DHHと相対するドリームマッチが開催された。この会談の

    stealthinu
    stealthinu 2014/10/20
    実はみんな「TDD」はやってなかった、という話なのかも。
  • 最近よく見かけるバッドエンジニアリング — KaoriYa

    最近よく見かけるバッドエンジニアリングの発生パターン。 イカしたフレームワーク/ライブラリが誕生する あるプロダクトがそのフレームワークを利用する フレームワークのスコープから少し外れたことをやるためにハックする フレームワークがセキュリティ問題などにより更新される 3のハックのせいでアップデートできない どーすんだよ、これ。 もちろんハックがシンプルで規模が小さい or 適切な方法ならば、アップデート時にフレームワークのソース読んでなんとかできるわけだけれど。 とくにフレームワークがカジュアルに使えるほど、3のハックを行う人がド素人で、どうにもならなくなるように感じてる。

    stealthinu
    stealthinu 2014/10/20
    このパターン、ブ米にも書かれてるけどコードの問題より費用の問題のほうでできない場合のが多いように思う。
  • [翻訳]なんでGoってみんなに嫌われてるの? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 原文:http://npf.io/2014/10/why-everyone-hates-go/ 酔っぱらった勢いで訳出してるので、違ってたら修正リクエストください。 訳者の1行でわかるサマリ それって、Goのシンプルな言語哲学が、ML系言語好きのアイデンティティを挑発しちゃってるからじゃないの? なんでGoってみんなに嫌われてるの? いや、実際みんなって訳じゃないんだろうけど。最近、なんてGoをみんなそんなに批判的なのかって言うquoraの質問が出たもんで。(わるい、普段はquoraへのリンクを張らないんだけど、それがこの記事のきっかけ

    [翻訳]なんでGoってみんなに嫌われてるの? - Qiita
    stealthinu
    stealthinu 2014/10/17
    goって触ったことなかったんだけどそういう言語なんだ。『Goの実用性とシンプルさを他のなによりも優先する哲学』あと自分のアイデンティティに反するものがもてはやされてるとそれをけなしたくなる心理ね。なるほど
  • LL から Java に移行した人がはまりがちなこと - tokuhirom's blog

    こんにちは。Java 初心者です。 Java 初心者、得に LL から Java に来た人にありがちな問題について社内向けに書いたものをオープンアンドシェアさせていただきます。 前提として、我々は Java 8 でガンガン攻めているということをご承知おきください。 また、自分がこの数ヶ月で「うわー。こうしとくべきだったのかー」と気づいたやつをドヤ顔で語っているということにもご注意ください。 【追記】 対象は中規模 B2C の場合です(中規模というのは facebook より小さいという程度の意味です) 例外を握りつぶさないようにしよう Eclipse が生成する以下のようなコードをそのまま残しているケース。 これは言うまでもなく良くないですね。デバッグが困難になります。 try { } catch (IOException e) { e.printStackTrace(); } Perl

    stealthinu
    stealthinu 2014/10/01
    例外を握りつぶさない、try-with-resourcesを使う、FindBugsを使う、など。Java力のない僕に一番必要なのは「Effective Javaを読もう」だろうな…
  • 日本語で読める IT名文書 三選 - naoyaのはてなダイアリー

    pplog の方に書いたけど、別にブログに書けばいいかと思い直したので投稿。Slack でチャットしてて、なんとなくこれ面白いよ URL を共有する機会があったので適当に選んだもの。 伽藍、バザール、ノウアスフィア、おなべ(3) http://www.artonx.org/diary/20120411.html#p01 artonさんがノウアスフィアの開墾についてわかりやすく書いてるもの。原文はちょっと長くて読むのが大変だけど、こっちは分かりやすいし、面白い。OSS の構造がなんかわかったきになる、すごい。 Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した http://anond.hatelabo.jp/20111018190933 (前編) http://anond.hatelabo.jp/20111018192953 (中編) http://a

    日本語で読める IT名文書 三選 - naoyaのはてなダイアリー
    stealthinu
    stealthinu 2014/09/30
    「伽藍とバザール」「Googleとプラットフォームに関するぶっちゃけ話」「射撃しつつ前進」「ハッカーと画家」確かに読んどくべき文章。
  • 社内技術勉強会でScalaのおすすめポイント解説した - はこべにっき ♨

    はてなでは週に一回、社内技術勉強会というのをしています。今週は僕の当番だったのでScalaの入門的な話をしました。 普段使いの言語として、Scalaの便利なところをまとめたというつもりです。とはいえ、他の言語にもある特徴もわりと紹介してるので、もうちょっとScala独自の内容にフォーカスしてもよかった... むずかしい。時間の都合で全部話きれなくて、会が終わった後でimplicitまわりの話とか数人にご紹介したら一番おもしろかったと言う話になったので無念。 あの機能を紹介してないとはけしからんみたいなのがあったら教えて下さい。そうはいってもとりあえず Scalaスケーラブルプログラミング第2版を読むといいです。 ↓ 資料はgist形式でembedしてあります ↓ https://gist.github.com/hakobe/e1aa2501a64e7f801b55 こちらもおすすめ Sca

    社内技術勉強会でScalaのおすすめポイント解説した - はこべにっき ♨
    stealthinu
    stealthinu 2014/09/19
    scalaがなにがうれしいのか、雰囲気つかめるような資料。あと、最初にsbt入れろということなのね。
  • メールアドレスの正規表現 - tmtms のメモ

    たまにメールアドレスの形式を正規表現で表すのは不可能とかというのを目にするのですが、そんなことはありません。入れ子がなければたいていの文字列の形式は正規表現で表すことができます。 ということで、RFC5321, 5322 からメールアドレスの正規表現を書いてみました。 /\A([0-9a-z!\#$%&'*+\-\/=?^_`{|}~]+(\.[0-9a-z!\#$%&'*+\-\/=?^_`{|}~]+)*|\"([\x20\x21\x23-\x5b\x5d-\x7e]|\\[\x20-\x7e])*\")@[0-9a-z]([0-9a-z-]*[0-9a-z])?(\.[0-9a-z]([0-9a-z-]*[0-9a-z])?)*\z/i ちょっと長いですけど、最近の Ruby だと (?<hoge>) と \g<hoge> を使うことで、同じ正規表現の繰り返しを簡単に書くことができる

    メールアドレスの正規表現 - tmtms のメモ
    stealthinu
    stealthinu 2014/09/09
    正規表現Tシャツ誕生の瞬間に立ち会えるとは!