タグ

programmingに関するpipeheadのブックマーク (1,626)

  • Pythonのデコレータを理解するための12Step - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Pythonのデコレータを理解するための12Step - Qiita
  • プログラミング勉強中の人にオブジェクト指向とは何なのかを何となく伝えたい話 - かまずにまるのみ。

    この文章について OOP(オブジェクト指向プログラミング、オブジェクト指向パラダイム)について プログラミング勉強中の大学生さんに説明する機会が何度かあったので、 自分の中で整理するために書きました。 中には適切でない説明もあります。ばっさり省いているところもあります。 詳細より イメージを掴んでもらうことを優先しているためです。 「それにしてもあんまりだなー」という表現がありましたらご連絡いただけると嬉しいです。 大学生さん 大学生さんたちはいろんな背景を持っています。 プログラミングを始めたばかりの人 独学で Objective-C や JavaScript を書いた経験がある人 Web やコンピュータの仕組みについてもこれから勉強する予定の人 使用言語 大学生さんたちはプログラミングの第一歩として JavaScriptPHP を使っています。ここでは説明に PHP のコードを使

    プログラミング勉強中の人にオブジェクト指向とは何なのかを何となく伝えたい話 - かまずにまるのみ。
    pipehead
    pipehead 2014/04/06
    凝集度, 結合度, 概念, 仕様, 実装
  • JScriptでのScripting.FileSystemObjectオブジェクト TIPS - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    JScriptでのScripting.FileSystemObjectオブジェクト TIPS - Qiita
    pipehead
    pipehead 2014/04/02
    > 「ReadAll」メソッドは、不具合があってファイル内にNULL文字(0x00)がある場合、正常に動作しない。ちなみに、「ReadLine」も同じ不具合を持っています。
  • タプルとは|tuple - 意味/解説/説明/定義 : IT用語辞典

    順序付けられた複数の要素で構成される組。日語で「~つ組」と表現される要素の集合で、もとは数学の概念だが、プログラミング言語などの中には同様の構造を持つタプルという名称のデータ型が用意されている。 数学では、3つ以上の要素を並べたものを「三つ組」(3-tuple)、「四つ組」(4-tuple)などと呼び、一般にこれらをまとめてタプルと呼ぶ。要素の並び順が意味を持ち、同じ値を含んでいても順序が異なれば別のタプルとなる。例えば、 (A, B, C) と (C, B, A) は異なるタプルである。このような順序付きの構造は、座標、関係、データのまとまりなどを表現する際に特に有用である。 コンピュータ上では、複数の値を一つのデータとして扱うためのデータ型やデータ構造をタプルと呼ぶ。タプル型を用意しているプログラミング言語の多くは、異なる型の値を同時に格納できるようになっており、数値、文字列、真偽値

    タプルとは|tuple - 意味/解説/説明/定義 : IT用語辞典
  • asyncioを用いたpythonの高速なスクレイピング - HackerNews翻訳してみた

    「HackerNews翻訳してみた」が POSTD (ポスト・ディー) としてリニューアルしました!この記事はここでも公開されています。 Original article: Fast scraping in python with asyncio by Georges Dubus ウェブスクレイピングについては、pythonのディスカッションボードなどでもよく話題になっていますよね。いろいろなやり方があるのですが、これが最善という方法がないように思います。格的なscrapyのようなフレームワークもあるし、mechanizeのように軽いライブラリもあります。自作もポピュラーですね。requestsやbeautifulsoup、またpyqueryなどを使えばうまくできるでしょう。 どうしてこんなに様々な方法があるかというと、そもそも「スクレイピング」が複数の問題解決をカバーしている総合技術

  • 【個人メモ】2014年になって、jsbin.comという便利なサービスを知った... - Qiita

    JavaScriptのお勉強 をしたいなーと思い、実行環境は簡単に揃えられないものかなあ、 とインターネッツをさまよっていたらjsbin.comというサービスを知った。 JavaScriptHTMLのテンプレートを書いていき、レンダリング結果がOutputペインに表示される。 CDNを提供しているプロダクトは、大抵"Add Library"で選択できるようになっている。 このサービスはすでに3年前から稼働しており、 今まで把握していなかった... ざっくりした使い方 jsbin.comにアクセス "Add Library"をクリックし、使いたいライブラリを選択する JavaScriptのペインについては書けば自動でロードされる レンダリング結果はOutputペインに表示される "Add Library"に好みのライブラリが無い場合は CDNが使われていないプロダクトのライブラリを利用した

    【個人メモ】2014年になって、jsbin.comという便利なサービスを知った... - Qiita
  • Revealing Module Patternで盲点だったこと - Hachirog

    これまで業務ではJavaScriptを場当たり的にコーディングしてきたので、今年は基的なところから見直そうと思っています。JavaScriptの実装でいつもに気になっていたのがオブジェクトの生成で、どういった書き方が定石なのか、で調べてもネットで調べてもいろいろ意見があって悩ましいところでした。 その中で、良さそうと思ったのが『JavaScriptデザインパターン』の中でも紹介されている「リビーリングモジュールパターン(Revealing Module Pattern)」です。 JavaScriptデザインパターン 作者: Addy Osmani,豊福剛,サイフォン合同会社出版社/メーカー: オライリージャパン発売日: 2013/05/25メディア: 大型この商品を含むブログ (6件) を見る Revealing Module Patternによるオブジェクトの作り方 『JavaSc

    Revealing Module Patternで盲点だったこと - Hachirog
  • JavaScript で throw "" ではなく throw new Error() を使ったほうがよい(些細な)理由 - latest log

    JavaScript で人為的に例外を発生させるには、大きく分けると以下の2種類があります。 throw new しない書き方 throw "ソフトウェアでエラーが発生しました。サポート担当者に連絡し、この問題を報告してください。"; o_o は String 扱いで、o_o.stack も undefined になっています。 throw new する書き方 throw new Error("一般的なエラーだよ"); throw new TypeError("型がちがうよ"); throw new SyntaxError("文法おかしいよ"); throw new URIError("URIちがうよ"); 他にも、RangeError, ReferenceError, MediaError, FileError, EvalError などがあります。 throw new した場合は、o_

    JavaScript で throw "" ではなく throw new Error() を使ったほうがよい(些細な)理由 - latest log
    pipehead
    pipehead 2014/03/12
    new しないと文字列が補足される; Error.prototype.stack
  • コンピュータを進化させてきた偉大なるアルゴリズムまとめ

    By Kai Schreiber IT技術の進化のスピードには目を見張るものがありますが、それを支えているのはアルゴリズムと呼ばれる処理方法(技術的アイデア)です。さまざまなアルゴリズムの中でも、コンピュータの進化に革命的な影響をもたらしたとされる偉大なアルゴリズムは以下の通りです。 Great Algorithms that Revolutionized Computing http://en.docsity.com/news/interesting-facts/great-algorithms-revolutionized-computing/ ◆ハフマン符号(圧縮アルゴリズム) Huffman coding(ハフマン符号)は、1951年にデービッド・ハフマン氏によって開発されたアルゴリズム。頻出頻度の大小によって対戦するトーナメントツリーを考えて、ブロックごとに0と1の符号をもたせる

    コンピュータを進化させてきた偉大なるアルゴリズムまとめ
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

    pipehead
    pipehead 2014/03/04
    > 正規表現のメタ文字 ^ と $ は「行」の先頭・末尾を指します。文字列の先頭と末尾を指定する場合は、\A と \z を使用します。
  • jQueryのclickとbindとliveとdelegateとonの違い - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    jQueryのclickとbindとliveとdelegateとonの違い - Qiita
  • スタックトレースとは - IT用語辞典 e-Words

    スタックトレースとは、実行中のコンピュータプログラムにエラーが発生した際に、直前に実行していた関数やメソッドなどの履歴を表示すること。 プログラムを構成する関数やメソッド、サブルーチンなどの呼び出し(コール)や実行終了(リターン)などの制御はメモリ上のコールスタックと呼ばれる領域で行われており、関数内で別の関数が呼び出される度にスタックの末尾に実行途上の関数についての情報が追加されていく。 スタックトレースはプログラムが異常終了した際などに、その瞬間のスタックの内容を写しとったものである。最後尾には停止時に実行されていた関数が記載され、その関数の呼び出し元の関数、呼び出し元をさらに呼び出した関数…という具合に実行途上の関数を順に遡っていくことができる。 スタックトレースは開発者がプログラムを修正するデバッグ過程で用いられ、コード上のどのような実行経路を経て問題が発生したかを知ることができる

    スタックトレースとは - IT用語辞典 e-Words
  • JSのObjectをforEachで処理する方法 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    JSのObjectをforEachで処理する方法 - Qiita
    pipehead
    pipehead 2014/02/21
    Object.keys()
  • 「強い型付け」「弱い型付け」って言葉を知った!

    [追記] この記事は2014年、私が文系大学生の頃、手探りでプログラミングを独学し始めた頃の記事です。温かい気持ちで見ていただけたら幸いです。 ーー !! おことわり !! このブログには、いわゆる「技術記事」は一切ありません!!!(書きたくても書けない) ただの「勉強記録ノート」です!!! プログラミング初学者の勉強記録ノートです!「日記」です!! 生暖かい目で見ていただけたらさいわいですヽ(;▽;)ノ Index “型のありがたみ”を覗く “型付けの弱い世界”を知る 動的型付けと静的型付け 型付けによる比較 “型付け”と”型変換” 強い型付けと弱い型付け まとめ 追記 (あとで読むリストなど) Introduction よくTwitterのタイムラインで「型安全」という言葉を見ます。 でも、その意味を私は全く分かっていませんでした…そもそも「型安全」という言葉は 「安全な型」を指す(だ

    「強い型付け」「弱い型付け」って言葉を知った!
    pipehead
    pipehead 2014/02/17
    型の安全性 (type safety), 動的型付けと静的型付け, ダックタイピング, 強い型付けと弱い型付け
  • Angular, Ember, Backbone:どのJavaScriptフレームワークを選ぶべきか? | ReadWrite Japan

    Angular, Ember, Backbone:どのJavaScriptフレームワークを選ぶべきか? JavaScriptフレームワークの選択は、開発者の好みよりもプロジェクトとの相性が大切だ。 JavaScriptベースのアプリケーションやウェブサイトのアイデアを思いついたとして、次にしなければならないのが正しいオープンソース・フレームワークを選ぶことだ。 この記事を読んでいるということは、あなたはまだ初心者や見習いの開発者かもしれない。あるいは自分のアイデアの開発を外部に委託しようと考えているのかもしれない。AngularEmber、Backboneの名前ぐらいは聞いたことがあるかもしれないが、それらがどういったもので、なぜそれらがウェブ開発の助けになるかについてまでは知らないかもしれない。 開発者はJavaScriptを様々なウェブ・アプリケーションに使用している。それはJa

    Angular, Ember, Backbone:どのJavaScriptフレームワークを選ぶべきか? | ReadWrite Japan
  • JavaScriptの関数定義 - Nao Minami's Blog

    こんばんは、south37です。 最近はEffective JavaScriptを読んでるのですが、知らなかった事がポロポロ出てくるので、とても勉強になっています。これからはちょいちょい、そーやって勉強した事をまとめていけたらいいなと思います。 って事で、今日は関数定義の話をしたいと思います。 関数宣言と関数式 JavaScriptにおける関数定義には、大きく分けて3つの方法があります。 function文を使う方法(関数宣言) function演算子を使う方法(関数式) Functionコンストラクタを使う方法 1と2が一般的によく使われる方法ですね。 // 方法1 function multi(x, y) { return x * y; } // 方法2 var multi = function(x, y) { return x * y; }; // これも方法2 var multi

    JavaScriptの関数定義 - Nao Minami's Blog
    pipehead
    pipehead 2014/02/17
    function 文 (関数宣言), function 演算子 (関数式), Function コンストラクタ, 名前付き関数式, arguments
  • 要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    友人から「しんぺいさん DI について書いてほしい」みたいな話をだいぶ前からされてたんだけど書く気力ずっとなかった。でも仕事の気分転換にちょっとずつ書いたやつがいい量まとまったので公開するです。たいしたことは書いてないっていうか知ってるひとにはあたりまえのことしか書いてない。サンプルコードはわたしの趣味Scala で書いてあるが、Java が読めればなんとなく読めると思います。 DI ってなに Dependency Injection、日語で言えば依存性の注入です。おしまい。 で記事を終えてもいいんだけど、そもそも依存性とはなんなのか、それを注入するとはどういうことなのか、なぜ DI が必要となるのかみたいな話をこれからします。 そもそも依存性ってなあに 例を出します。入力された文字列をもとにおみくじをひいて、その結果を twitter に投稿するプログラムにしましょう。 まずは普通

    要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    pipehead
    pipehead 2014/02/13
    Dependency Injection (依存性の注入)
  • 【メモ】クラス作る際の関数式と関数文での違い - Qiita

    // 関数式でのクラス宣言 var Hoge = function(){}; Hoge.prototype = { foo: 'foo', getFoo: function(){ return this.foo; } }; // 関数文でのクラス宣言 function Piyo(){ this.bar = 'bar'; this.getBar = function(){ return this.bar; }; } console.log(Hoge.name); // "" console.log((new Hoge).constructor); // function Object(){ [native code] } console.log(Piyo.name); // "Piyo" console.log((new Piyo).constructor); // function Piy

    【メモ】クラス作る際の関数式と関数文での違い - Qiita
    pipehead
    pipehead 2014/02/12
    > prototypeで宣言しただけのプロパティはhasOwnProperty()だとfalseになってしまうようです。
  • DOM操作のパフォーマンス - Qiita

    backbone.jsなどのjsライブラリで画面生成されるアプリだと、javascript部分のパフォーマンスがアプリのさくさく感にすごい影響を与える。特に、レンダリング部分がトロいと、画面スクロールとか最初の画面生成にもたつきが発生して、いちいち引っ掛かりを感じるアプリとなってしまう。 では実際のところ、どう書いたら性能良くなるの?、ということでネットをさまよってると、「DOM操作を極力なくせ」、というのが共通の見解のようだ。 例えば、イテレーションの中で一つ一つappendするのではなくてまとめてappendしたほうが良いとか、そもそもappendじゃなくて文字列でinnerHTMLに入れたほうが良い、一度作ったDOM構成をcloneして使うと良い、cloneしたDOMを操作してからreplaceしたほうが良い、とかいろいろTIPSが出てくる。 そんなわけで、自分として気になるtips

    DOM操作のパフォーマンス - Qiita
    pipehead
    pipehead 2014/02/11
    > 「DOM操作を極力なくせ」、というのが共通の見解のようだ。
  • 誰向けかわからないCommon Lispでの関数型プログラミング入門とその未来 - 八発白中

    Lispと言えば関数型言語という印象を持つ人が多いようです。 まあ正直に言うと、Common Lispに関して言えば違うんですけどね。Common Lispは効率のためと言えばループも代入も使いまくるし、構造体もクラスもある。実際書かれたコードも関数型プログラミングとは程遠いことも多くて、たとえば僕が作ったClackのコードを見ればオブジェクト指向言語だって言っても信じると思います。 僕自身、繰り返しをわざわざ再帰で書くよりもloop使うことが多いです。最近loopに頼りすぎてて良くないなーと思うことが多く、Common Lispでも性能が重要でないところは関数型っぽく書く癖をつけないとなー、と思っていろいろ考えています。なんでもloopだと可読性が悪い。 特に、僕が今作っているCommon Lisp方言の「CL21」では関数プログラミングをもっとしやすくする機能を入れたいと思っています。

    誰向けかわからないCommon Lispでの関数型プログラミング入門とその未来 - 八発白中
    pipehead
    pipehead 2014/02/04
    無名関数 (lambda), 高階関数 (mapcar, reduce), 関数合成 (compose, conjoin, disjoin)