タグ

ブックマーク / qiita.com (269)

  • ブロックをdo…endで書くか{…}で書くかにより挙動が変わる例 - Qiita

    Ruby - Nokogiriによるスクレイピング(YahooFinance) - Qiita のコメント欄を書いているときに、挙動の違いに改めて気付いたので挙げときます。 Enumerable#injectに限られる話ではないのですが、気付いたときに使っていたのがこのメソッドだったので。 先に結論を do…endで書くときには、返値確認用のpを直接使うな。 Enumerable#inject まず中括弧の場合。injectの例としてこちらから引用します。 ruby の inject をわかりやすく説明してみる - Λάδι Βιώσας

    ブロックをdo…endで書くか{…}で書くかにより挙動が変わる例 - Qiita
  • S2-020類似攻撃のStruts1での対策方法 - Qiita

    恐ろしいことですが、実装が全然違うStruts2の脆弱性S2-020と同様の攻撃手法で、Struts1も脆弱性があることが分かりました。 http://www.lac.co.jp/security/alert/2014/04/24_alert_01.html ここではあまり明らかになっていませんが、原因は // Set the corresponding properties of our bean try { BeanUtils.populate(bean, properties); } catch(Exception e) { throw new ServletException("BeanUtils.populate", e); } finally { if (multipartHandler != null) { // Set the multipart request handl

    S2-020類似攻撃のStruts1での対策方法 - Qiita
  • MacBookAirで使っている便利ツール vol.2 - Qiita

    ##概要 ###Mac | Mavericks Mavericksの設定については、ブログでも何度か紹介してきましたので、割と簡単にいきたいと思います。 主に、使用しているツールを書いていきます。 ###Windows | Windows7 私の場合、メインとしてCygwinとPowerShellを使っています。 Windows7は、仮想環境上で動作させています。 アプリのインストールは、Chocolateyで行います。 その他、TerminalにConsole Zを使います。 ###Linux | Manjaro Linux 現在、もう一つのMacBookAirには、Manjaro Linuxを直接インストールしています。 ウィンドウマネージャは、Awesomeを使っています。 最初は、Macとのデュアルブートしてみたのですが、どうもしっくり来なかったので、Macは消しました。非常に快適

    MacBookAirで使っている便利ツール vol.2 - Qiita
  • Rubyのモジュールメソッドの作り方 - Qiita

    モジュールクラスのオブジェクトの特異メソッド。 モジュールメソッドと呼んで良いのか迷いますが、ここでは、モジュールメソッドと呼んでおきます。 日語での説明は苦手なので、最初に、何がしたいのかを例として書いておきます。 また長い記事なので、結果だけを知りたい方は、下の方のまとめをご覧ください。 はじめに例 module Hoge def self.hoge puts "hoge" end end Hoge.hoge #=> hoge class Foo include Hoge extend Hoge end Foo.new.hoge #=> undefined method `hoge' for #<Foo:0x0000010105cf60> (NoMethodError) Foo.hoge #=> undefined method `hoge' for Foo:Class (NoMet

    Rubyのモジュールメソッドの作り方 - Qiita
    mapserver2007
    mapserver2007 2014/04/14
    “module Bar def self.included(klass) klass.extend ClassMethods end module ClassMethods def bar puts "bar" end end end class Foo include Bar end”
  • 通信帯域を調整できるgruntプラグインを紹介するよ - Qiita

    スマートフォン向けのサービスなどを開発しているとき、3G回線の様な低速な環境での振る舞いを確認しなければならないときがあります。 白ロムでWifiしか使えない場合や、パブリックなとこに置けないために実機での確認に一手間かけなければならないときもあると思います。 有名な方法としてはCharlesのようなローカルプロキシでスロットリングを行う方法があります。 ただCharlesは有料なので開発している全員の環境に入れられるかと言えば少し難しいです。トライアルもありますが常用するには厳しいと思います。 もっと手軽にやりたい。。 grunt-throttle そこで登場するのがgrunt-throttle! tjgq / grunt-throttle 使い方も超簡単 インストール

    通信帯域を調整できるgruntプラグインを紹介するよ - Qiita
  • LINQ to Objects と Java8-Stream API の対応表

    Java8 で filter や map が使えるようになったー! というわけで .NET の LINQ to Objects との対応表を作ってみました。 2018.2.7 - Kotlin も追記しました! LINQ - Enumerable クラス (System.Linq) Java8 - Stream (Java Platform SE 8 ) Kotlin - kotlin.collections, kotlin.sequences らへん の比較です。 kotlin.collections は遅延ではないので注意です。 Java の方は Collectors (Java Platform SE 8 ) も使います。 まだ試したものは少ないので間違ってるかもしれない & カテゴライズが適当 なので、編集リクエストしてもらえるとありがたいです。 機能 LINQ Java8 Kot

    LINQ to Objects と Java8-Stream API の対応表
  • SublimeText2/3 環境設定とか(基本3) - Qiita

    { "color_scheme": "Packages/Theme - Flatland/Flatland Dark.tmTheme", "draw_white_space": "all", "ensure_newline_at_eof_on_save": true, "flatland_square_tabs": true, "font_size": 18, "highlight_line": true, "ignored_packages": [ "Vintage" ], "itg_small_tabs": true, "tab_size": 2, "theme": "Cobalt2.sublime-theme", "translate_tabs_to_spaces": true, "font_options" : ["gray_antialias"] } ちなみに設定ファイルは js

    SublimeText2/3 環境設定とか(基本3) - Qiita
  • 《REST思想》と《リソース指向》と《Webページ》を一緒にしてはいけない - Qiita

    はじめに Ruby on Rails や同種のフレームワークを使っていると、《REST思想》と《リソース指向》と《Webページ》がごちゃまぜになったWebアプリケーションをつい設計してしまいます。 三つの違いを意識し、適切なWebアプリケーションを作成するようにしましょう。でないと後悔することになります。 なお、この三つの用語は来の意味とずれているかもしれません。 「コメント」、「編集リクエスト」大歓迎です。 解説 http://yourhost/books のURLでの一覧が取得できるようなWebサービスを提供するとします。 では /books を含めた各URLはどのように振る舞うべきなのでしょうか。 (URLと言っている部分でも実際はpathを指している場合があります。ご了承ください)

    《REST思想》と《リソース指向》と《Webページ》を一緒にしてはいけない - Qiita
  • MVCの流れを簡単にまとめてみる - Qiita [キータ]

    理解しやすいように適当に遮ったり、言い切ってしまったところもあるがご容赦いただきたい。 MVCの登場 MVCは、SmalltalkのGUIライブラリのモデルとして登場した。 これはGUIアプリケーションを記述する際に、適切なモデル化を進めるのにとてもいい考え方だと思われていたし、実際にそうだった。 これはアーキテクチャパターンとして、それぞれがどのように依存するべきか、どこにコードを書くべきかということを端的に表している。 安定依存の原則というものがある。これは、要件が安定しているモジュールに依存し、要件が変動しやすいモジュールには依存しないようにするという原則だ。MVCアーキテクチャでは、GUIアプリケーションの安定関係をModel > View > Controllerの順でとらえている。データ処理や業務要件というのは安定しており、UIパーツもまた比較的安定している。それらを統合してア

    MVCの流れを簡単にまとめてみる - Qiita [キータ]
  • ファイル検索する際はopendirが早い - Qiita

    globなんか遅いなあ、と思って他のファイル検索方法を調べてみました。 glob opendir/readdir DirectoryIndex の3通りについて、実際に計測をしてみます。 <?php function list_dir_by_opendir($dir) { $ret[] = $dir; if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { $file = $dir . DIRECTORY_SEPARATOR . $file; $ret[] = $file; } closedir($dh); } return $ret; } function list_dir_by_glob($dir) { $ret[] = $dir; foreach( glob($dir.DIRECTORY_SEPARA

    ファイル検索する際はopendirが早い - Qiita
  • MacOSX + phpenv + php-build + pyrus の環境構築メモ - Qiita

    $ sudo brew install phpenv Password: Warning: You have Xcode 4.1, which is outdated. Please install Xcode 4.3. Error: phpenv is a head-only formula Install with `brew install --HEAD phpenv

    MacOSX + phpenv + php-build + pyrus の環境構築メモ - Qiita
  • コードをまとめる技術としてのイテレータとジェネレータ - Qiita

    ジェネレータが5.5から入ったことで完全に空気と化した(?)PHPのイテレータを、ちょっと違う面からまとめたいと思います。 コードをまとめるということ Don't Repeat Yourself(DRY)という言葉があります。達人プログラマーというに出てくる言葉です。 信頼性の高いソフトウェアを開発して、開発そのものを簡単に理解したりメンテナンスできるようにする唯一の方法は、DRY原則に従うことです。 「すべての知識はシステム内において、単一、かつ明確な、そして信頼できる表現になっていなければならない。」 (p. 27) 端的に言えば「同じことを二度書いてはいけない」ということですね。この原則を当てはめなくてもいい例外のパターンもいくつかあるのですが。。 コードにおいて「同じことを二度書いてはいけない」を忠実に守ろうとすると、同じコードを何度も書きたくなったら、何らかの方法でそのコードを

    コードをまとめる技術としてのイテレータとジェネレータ - Qiita
  • 100行で書く俺様プログラミング言語コンパイラAltJS編 - Qiita

    プログラミングをしたことがあるひとなら、誰でも1度くらい自分の理想の言語を作ってみたいと思うのではないでしょうか。このテキストは、オリジナルのプログラミング言語のコンパイラ作成を通して、パーサコンビネータの使い方を紹介していくものです。 2分でわかる、俺の俺による俺のためのプログラミング言語を作る大まかな手順 自分のオリジナルなプログラミング言語を作るには、典型的には次のような手順を踏みます。 既存のプログラミング言語を使ってみる その既存の言語の気に入らないところを徹底的になじる(ただし心のなかで) 己の内に秘める中二力を卍解し、最強プログラミング言語の仕様を妄想する コンパイラを作る その言語を教典とする宗教団体を設立し、慈悲深き終身の独裁者を名乗る 自分の言語が思ったよりしょぼいことに気付く 桶屋が儲かる このテキストではこのうち手順 4 だけ、特にコンパイラのパーサ部分を解説します

    100行で書く俺様プログラミング言語コンパイラAltJS編 - Qiita
  • ライセンスの選択を恐れる必要はありません - Qiita

    この記事はCC BY 3.0に基いて公開されてゐるWebサイトChoosing an OSS license doesn’t need to be scary - ChooseALicense.comのコンテンツ各ページを翻訳し、単一記事として再構成、訳者による補足を追加したものです。 2017年5月9日に開示されたコミュニティガイドラインに伴って、記事の翻訳部分につきましては削除いたしました。 (この記事が削除または非公開化されない限り、編集履歴からお読みいただくことは可能です。) (訳註: この「はじめに」及び末尾の「訳者による補足」の章は原文にはなく、翻訳者(@tadsan)によるものです。記事の著作権表示及び元Webサイトの利用規約、免責事項、そしてこの記事についての訳者の見解について記します) (この記事の一部または全て ——ただしコメント欄は含まれない—— はCC BY-SA

    ライセンスの選択を恐れる必要はありません - Qiita
  • PHPerがMacbookAirを買ったら直ぐにすること 2012 - Qiita

    ちょっと大げさなタイトルですが、あくまで私個人の環境構築手順をまとめたものです。WindowsからMacに乗り換えたばかりで、どうやってPHPの開発環境を整えるか分からないPHPerに向けの「開発環境を整えるためのガイド」と考えてください。 既にMacでAMP環境を構築したことがあるPHPerにとっても有用な情報を含めたつもりです。その例としては、php-buildphp-versionで複数PHPバージョン環境の構築の手順、複数PHPバージョンとApacheの連携方法などがあります。 MacをUnix的に使えるようにするため、CUIで設定する手順を含んでいますが、怖がらずにやってみてください。ターミナルはあなたに噛み付いたりしません :) CUIに慣れてない方は、「難しい」と感じるかもしれませんが、きっとのちのちの財産になるはずです! 2012年版では「PHPerがMacbookAir

    PHPerがMacbookAirを買ったら直ぐにすること 2012 - Qiita
  • OS X で起動時に任意のコマンドを実行する - Qiita

    OS X 10.5 以降で起動時に任意のコマンドを自動で実行したい場合、来であれば launchd(8) を使用した制御が必要なので /System/Library/LanchDaemons/ 以下に plist ファイルを準備する必要がありますが、/Library/StartupItems にコマンド起動用のスクリプトファイルを設置する事で、起動時に任意のコマンドを実行できます。 基は普通のシェルスクリプトですので、シェルスクリプトに慣れている場合はこちらの方が使いやすいかも知れません。 /Library/StartupItems に任意の名称のディレクトリを作成する ここでは "サービス" とします。

    OS X で起動時に任意のコマンドを実行する - Qiita
  • コールバック……駆逐してやる…この世から…一匹…残らず!! - Qiita

    このテキストは JavaScript のコールバック地獄に疲れたひとのためのコールバック駆逐術指南書です。対象読者は JavaScript道初段くらいの人です。このテキストを読むと、以下のそれぞれの手段における非同期処理制御の仕組み、利点および欠点がわかるようになるかもしれません。 コールバック地獄 jQuery.Deferred async.js Concurrent.Thread generators co fibers Web Workers (※なぜか『進撃の巨人』の一部ネタバレが含まれるので注意してください) それは『何故人はコールバックするのか』という話でしょうか? 非同期処理って面倒ですよね。JavaScriptではいわゆる コールバック地獄 というやつにしばしば陥りがちです。たとえば、Ajax でふたつのファイル hoge.txt と piyo.txt を持ってきて、それら

    コールバック……駆逐してやる…この世から…一匹…残らず!! - Qiita
  • Markdown記法 チートシート

    Markdown記法のチートシートです。 記法はGitHub Flavored Markdownに準拠し、一部拡張しています。 Qiitaでシンタックスハイライト可能な言語一覧については、 シンタックスハイライト可能な言語 をご覧下さい。 Code - コードの挿入 Code blocks - コードブロック たとえば、「Ruby」で記述したコードをファイル名「qiita.rb」として投稿したいときは、 バッククオート(`) か チルダ(~) を使用して以下のように投稿するとシンタックスハイライトが適用されます。 コードブロック内でコードブロックを書きたい場合は異なる記号を使うことで書けます。

    Markdown記法 チートシート
  • MacBookAirで使っている便利ツール - Qiita

    はじめに ここでは、MacBookAirで私が使っている便利ツールを紹介していきます。長文過ぎると、途中で表示できなくなってしまうことを学習したため、不要な解説は省略します。また、個人的な価値観から形成された表現を含むかもしれませんが、その点の説明も省略します。ご了承ください。 便利なアプリを知っていたら、是非コメントをお願いします。 MacBookAirにインストールしたアプリ BetterTouchTool //トラックパッド拡張、ショートカットキー拡張 Google Chrome //インターネットブラウザ Growl //通知を拡張するアプリ Kopypasta //クリップボードをバックアップ WindowFlow //ウィンドウ切り替え XtraFinder //Finderを拡張するアプリ Xcode //開発環境を提供するアプリ TinkerTool //Macの隠し機能を

    MacBookAirで使っている便利ツール - Qiita
  • JavaScriptでオブジェクトの型を判別するのにtypeof演算子使うとツラいよね - Qiita

    var a = {}, b = [], c = 'hoge', d = new String('hoge'); typeof a; // "object" typeof b; // "object" ← ファッ?! typeof c; // "string" typeof d; // "object" ← ファッ?! Object と Array を区別してくれないとかないわー。new String()使うことないけど、区別しちゃうとかないわー。 ということで以前に自分が日語訳したJavaScript Gardenにも書いてあった方法を使うと 判別が楽になるんじゃないかと。 function is(type, obj) { var clas = Object.prototype.toString.call(obj).slice(8, -1); return obj !== undefin

    JavaScriptでオブジェクトの型を判別するのにtypeof演算子使うとツラいよね - Qiita