タグ

ブックマーク / taiju.hatenablog.com (12)

  • プログラミングHaskellのfoldr, foldlの説明が秀逸だった件 - あと味

    今年はHaskellを勉強しています。 土日などを利用して、すごいHを3〜4週間かけて読み終えました。時間かかった分、記憶の密度が低くて、まだ理解度は低いです。 新しい概念を学ぶ時は、同じテーマのを何冊か読んで、当に読みたかったを再度読み直すというのが自分の学習の方法として定着しているので、今は、プログラミングHaskellを読み進めています。 すでに「ふつうのHaskellプログラミング」は読み終えていましたが、改めて読むと、当に普通のプログラミングに感じたので、すごいHがかなり刺激的で、よくできたなんだと思います。読み直す時が楽しみであります。 題 さて、「プログラミングHaskell」の話に戻りますが、foldrとfoldlの説明の箇所が秀逸だと思ったので内容を紹介してみます。*1 fold関数は、他の言語でreduceとかinjectとか呼ばれている関数ですね。個

    プログラミングHaskellのfoldr, foldlの説明が秀逸だった件 - あと味
  • Underscore.jsの全メソッドを表にまとめてみた - あと味

    JavaScript Advent Calendar 2011 (フレームワークコース) の9日目です。 せっかくの機会だったので、ものすごく気になってたけど、触る機会がなかった、Underscore.jsをいろいろと弄ってみました。 配列関係の便利メソッドの集合ライブラリなイメージでしたが、タイマーやユーティリティ関数、条件判断関数など、いろいろ機能があって面白いですね。 とりあえず、ひと通り実行しながら、すべての関数を触ってみました。 非常に見難くて恐縮ですが、以下のGoogleスプレッドシートにいろいろとメモを取っていったので、参考にしてください。 間違いなどあるかもしれませんし、自分自身理解しきっていないため説明がおかしい箇所があるかもしれません。 その際はご指摘いただけると助かります。超めんどくさかったので、自主的なアップデートは、たぶん、しません... リンク先: Unders

    Underscore.jsの全メソッドを表にまとめてみた - あと味
  • body要素のid属性またはclass属性をJavaScriptのディスパッチャーに使う - あと味

    最近、実案件で実験していたのですが、仕様が固まってきたのでメモしておきます。 JavaScriptを特定のページで実行したいというニーズがあるけれど、head要素内に書くとか、body要素内に書くとか、そのページ限定でscript要素を使って読み込むとかいろんな方法があります。 ただ、コードが散らばると管理が面倒なので、一つのファイルにまとめたい派です。まとめれば、HTTPリクエストが減るし、キャッシュもされるし、何かと都合が良かったりします。 ひとつにまとめると、「そのページで実行するスクリプト」を一つのファイルから切り分けないといけなくなるので、ディスパッチャーが必要です。 @kyo_ago さんの「そこそこ規模が大きくても何とかなるjavascriptの設計(URL dispatcherの薦め) | tech.kayac.com - KAYAC engineers' blog」という

  • JavaScriptでIteratorを書く - あと味

    最近、Wordpress絡みでPHPを書くことが多くて、かつバージョンも5.2だったりするので、高階関数とか無名関数とかが無性に使いたくなります。 ということで、JavaScriptIteratorでも書いて心の平静を保つことにします。 クロージャ版Iterator これが書けるJavaScriptは素敵だ。 使用例 var iter = iterator(document.getElementsByTagName('a')); console.log(iter.next()); console.log(iter.prev()); クラスメソッド版Iterator メソッドチェーンのこと好きです。付き合ってください。 使用例 Iterator([1,2,3]).next().get(console.log).prev().get(console.log).next().get(); ge

    JavaScriptでIteratorを書く - あと味
  • 制作会社で働く人向け「はじめての正規表現」 - あと味

    制作会社で働いてると、ディレクターやライターであればライティング作業をすることがあるし、マークアップエンジニアであればHTMLCSSを処理するし、プログラマーであればコードを書きます。 制作会社に勤めていれば全員何らかの形で、文字列を扱うことになります。 そんな時に正規表現という超強力な文字列処理のテクニックを身につければ、今以上に作業がはかどるし、いろんな問題が解決するのかなーと思い、先週1時間弱の勉強会を開催しました。 プログラマーは普段から使ってるんですけど、なかなか他の部門の人に紹介する機会がないのが現状だったので、多少なり役立ったんじゃないかと思ってます。 せっかくなので、その勉強会で使ったスライドを動画にしてニコニコ動画にアップしたので、ご紹介します。*1 ついでにウェブページ形式にもしてみました。 はじめての正規表現 って中の人が言ってました。 追記: Twitterのフォ

    制作会社で働く人向け「はじめての正規表現」 - あと味
  • applyとcallの使い方を丁寧に説明してみる - あと味

    JavaScriptに、applyとcallというメソッドが用意されていますが、自分なりにapplyとcallの丁寧に説明をしてみようと思ってこのエントリーを書くなどをしてみます。 applyとcallは非常に似たメソッドなので、まずはcallから説明します。 callメソッドとは? callメソッドは以下のように呼び出します。 methodA.call(thisArg, [, arg1 [, arg2, ...]]); methodAには任意の関数(メソッド)を指定します。 callの引数は第一引数にmethodAのthisとしたいオブジェクトを指定して、第二引数以降はmethodAに渡したい引数があれば、カンマ区切りでそれぞれ指定します。 callメソッドは、すべての関数が共通して持っているメソッドです。すべての関数はFunctionクラスのオブジェクトで、callはFunction.

    applyとcallの使い方を丁寧に説明してみる - あと味
  • File APIとJavaScriptを使って、テキストファイルを加工する便利ツールを作った - あと味

    昨日、たまたま仕事で、CSV形式の名簿を加工する必要があって、最近はこういう時、JavaScriptを使って加工することがあります。 昨日の話で言うと、具体的には以下のようなCSVファイルを、 ほげ株式会社,jdg,jdg@example.com 株式会社ふが,taiju,taiju@example.com 有限会社ぴよ,foo,foo@example.com以下のように加工しなければならないケースでした。 jdg@ほげ株式会社,jdg@example.com taiju@株式会社ふが,taiju@example.com foo@有限会社ぴよ,foo@example.com「会社名,名前,メールアドレス」で構成されているCSVを「名前@会社名,メールアドレス」で構成したCSVに加工するってことです。 こういう時、今までは、まずはテキストエディタの置換を使って、以下のような配列オブジェクトに

  • JavaScriptのnewって本当にいらない子? - あと味

    先日、「JavaScriptのオブジェクトについて考察してみた - あと味」を書いてから、chikuraさんからコメントいただいたり、id:dankogaiさんから「404 Blog Not Found:javascript - にはクラスはない」という記事で言及いただいたり、JavaScript: The Good Partsを読み返したりした結果、newについて調べたいという衝動にかられましたので、その調べた結果を書いてみたいと思います。 newを調べようと思ったキッカケを整理 まずは、そのキッカケから整理します。 chikuraさんのコメントより 押さえるべきポイントは、new演算子の際に何が行われるか?だと思うので、こちらのページもぜひ読んでみてください。 JavaScript の new 演算子の意味: Days on the Moon http://nanto.asablo.j

    JavaScriptのnewって本当にいらない子? - あと味
  • 儲けることより儲けさせることを考えた方がいいと思う - あと味

    いろんなところで似たようなことは言及されていると思いますが、自分でまとめることに意味があるので、エントリーに起こしました。 最近、成功している企業(特にIT業界)はいかに儲けるかではなく、いかに儲けさせるかという視点に立って事業展開をしている例が多いように感じます。 これからビジネスを始める場合も、その視点に立って事業展開をしていくことがキーワードになるのではないかなと思ってます。 ここでいう「儲ける」とは、お金を得ることももちろんですが、広義にモテることです。評価されることです。 儲けることとは何か? 製品やサービスを作り、ユーザーからモテること。 儲けさせることとは何か? 製品やサービスを使ってもらい、ユーザーをモテさせること。 儲けさせることの基ロジック 儲けさせることの基ロジックを考えてみました。 人を集める 使ってもらう 使った人に人を集める(モテさせる) 人を連れて帰ってき

    儲けることより儲けさせることを考えた方がいいと思う - あと味
  • JavaScriptのオブジェクトについて考察してみた - あと味

    JavaScriptを勉強しているとオブジェクトとはなんぞや?ということがわからなくなってきます。選択肢が増えれば増えるほど。 JavaScriptには、同じように見えて、実は同じではないデータがあります。それらのオブジェクトについて、区別して説明が付けられるように、自分なりに考察してみました。勉強中のアウトプットなので、ここで書いた内容は事実とは大きく外れているものかもしれません。とにかく不明瞭な部分を自分なりに理由づけしたかっただけです。 サンプルコードを試される場合は、FirefoxのFireBugにあるコンソールに貼りつけて実行するか、Safariの開発ツールにあるコンソールに貼りつけて実行してください。それがわからない方は console.log の部分を alert に置き換えて確認してください。 話がややこしくなるので、今回はプロパティしか扱っていません。 名称の定義について

    JavaScriptのオブジェクトについて考察してみた - あと味
  • 良いWebディレクターを目指すなら「Webプロジェクトマネジメント標準」は今すぐ読むべき - あと味

    Webプロジェクトマネジメント標準を読みました。すごく良いだと思います。 ここ最近、お客様のところに訪問してご不満、ご要望をうかがったり、福井のWeb制作者のコミュニティで今のWeb制作の現状、悩み、これからWeb制作はどうあるべきなのかということを夜遅くまでグループチャットで討論し、制作者のみなさんそれぞれが苦労をしていることがわかりました。 Webサイト制作というプロジェクトを円滑に進め、そのWebサイトを成功させることができるのかということについては、「ディレクション」という役割が重要な鍵を握っていると思いますし、制作者もそれを認識しています。しかしながら、クライアントにはディレクションの重要性を理解してもらえず、「なんでそんなことに、こんなにお金がかかるの?」という意識を持たれ、思うように見積りに反映させることができない。その結果、お金をかけて作ったWebサイトの成果があまり出ず

    良いWebディレクターを目指すなら「Webプロジェクトマネジメント標準」は今すぐ読むべき - あと味
  • はじめての人に何かを教える時に心がけること - あと味

    先日投稿した正規表現の記事は、多くの人が見てくれて、はてなブックマークコメントなどで感想もいただきました。 反響をいただいたことで私自身いろいろ考えることがあり、パソコンインストラクター時代の経験と考え方をベースに、はじめての人に何かを教える心がけるといいなと思うことをまとめてみました。 対象者ははじめての正規表現を読んだ方です。もったいないけど、その方がよく伝わると思って割り切ります。 極論に走ってはいますが、今後はじめての人に何かを教える時には、ここに書いた内容を読み返したいと思います。 捨てる はじめての人に何かを教える時は、以下のことを捨てる必要があります。 正確な表現 例外 説明事項 正確な表現 知識があればあるほど正確な表現で伝えることにこだわってしまいがちです。 でもそこはぐっとガマン。 例えば、はじめての正規表現の中でメタキャラクタ、パーレンなどの正式名称を使って説明したら

    はじめての人に何かを教える時に心がけること - あと味
  • 1