サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Nintendo Direct
qiita.com/mogulla3
主に自分用。IPアドレス関連の知識でなにかわからなくなったり、忘れてしまった際に真っ先に帰ってこれる場所として書いた。 サブネットマスクの理解が曖昧だったので書籍やWebで調べてまとめていたら、いつの間にかIPアドレスの全体的なまとめになっていてここに至る。 主に参考にしたソースは以下。 『マスタリングTCP/IP 入門編』第4章 『ネットワーク超入門講座』CHAPTER2 『おうちで学べるネットワークのきほん』Chapter2 3 Minutes Networking No.21 3 Minutes Networking No.22 3 Minutes Networking No.23 1. IPアドレスの基礎 1-1. IPアドレスとは何か PCやサーバなど、TCP/IPで通信する機器を識別するためのアドレスのこと。 現実世界で郵便物を配達する際に住所が必要なのと同じように、ネットワー
Ruby標準ライブラリのcsvを使ったCSV操作で、個人的によく使うものを整理した。 次のfuture_gadgets.csvという名称のCSVファイルを例として使う。 number,name,function 1号機,ビット粒子砲,おもちゃの光線銃にテレビのリモコンを合体させたもの 2号機,タケコプカメラー,軸の部分に小型カメラを仕込んだ竹トンボ 3号機,もしかしてオラオラですかーっ!?,ウソ発見器と称した発汗検知装置
AMPについて調べたのでざっくりまとめる。 AMPとは何か AMP(Accelerated Mobile Pages) Googleが中心となって立ち上げた、モバイルデバイスでのWebブラウジングを高速化することを目的としたオープンソースプロジェクト 従来より用いられているHTMLなどのWeb技術を改良している こういうの 上のgifではGoogleで「渋谷 うどん」で検索したのち、AMP対応している食べログのサイトを開いている。 タップすると瞬時に食べログの詳細画面が表示されているのがわかると思う。 AMP対応しているサイトは、以下の画像のように検索結果のリストにAMPマークが表示されている。 適しているサイト どんなページでも高速化するわけではなく、適したサイトが決まっている。 以下、『Real World HTTP』の第8章より引用。 AMPは、あらゆるタイプの静的なウェブ コンテン
検索エンジンの本を読んでいて、独断と偏見で重要語認定した用語(単純によく見る単語)。 全文検索 全文とは「全」部の「文」を意味しており、検索の対象が「テキストからなる文書の全部の文」である場合に、その文書に対して検索を行うことを全文検索と言う。 ファイル名だけ検索する「ファイル名検索」や、「単一ファイル内の文字列検索」とは異なり、文書に含まれる全文を対象とした検索という意味で使われる。 インデックス 高速な検索が行えるように構成されたデータのこと。 インデックスを生成することをインデキシングと呼ぶ。 トークナイズ 文書をトークンに分解すること。 一般的にトークナイズには以下の2種類がある。 形態素解析 N-gram トークナイズ処理を行うモノをトークナイザと呼ぶ。 ステミング 語形の変化を取り除き、同一の単語表現に変換する処理のこと。 例えば、「run」というクエリで検索をした場合でもru
はじめに SRE(Site Reliability Engineering)が具体的にどんなスキルを求められるのかを知りたくて、SREという名前で明示的に募集をしている企業の採用情報を眺めたので簡単にまとめた。 軽く探したところ、明示的にSREとして募集している企業として、以下の7つが見つかったのでこれらの企業の募集要項を対象にしている(2016年12月時点)。 cybozu mercari SmartNews Retty BASE FiNC エニグモ 大規模システムの構築・運用 大規模あるいは高トラフィックなシステムの構築・運用経験は、どの企業にも少なからず含まれていた。 PHP、MySQL、KVS等を活用したハイトラフィックWebインフラの管理経験(BASE/必須スキル) 大規模クラウドインフラの構築、運用経験(cybozu/歓迎スキル) 大規模サービスの開発、運用経験(mercari
hash = { :key => 'sym', 'key' => 'str' } p hash[:key] # => 'sym' p hash['key'] # => 'str' しかし、Railsの、例えばcontrollerなどで使われるparamsではこうはならない。SymbolとStringのどちらを指定しても同じ値が取得できる。 class SampleController < ApplicationController def index p params[:controller] # => 'sample' p params['controller'] # => 'sample' end end これはparamsがただのHashではなく、active_supportのHashWithIndifferentAccessクラスを継承したクラスであるため(ActionContro
問題と背景 自分はRailsアプリケーションを触ることが多いのだが、Gemがvendor/bundleに大量に取り込まれてしまうせいか、ctrlpでファイル検索をしようとすると立ち上がるのに3秒くらいかかっていた。 ※ ややわかりづらいが、Ctrl + pを押して操作可能になるまで3秒くらいかかっている 解決策 以下の1行を.vimrcに追加すると.gitignoreに書き込まれたファイルを無視するようになるので、ctrlpの起動が高速になる。体感では100ミリ秒くらいになっている気がする。 let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard']
環境 MacOS 10.9.5 iTerm2 vim8.0 こんなシーンありませんか tmuxなどを使って画面を縦分割しているときに、左半分の画面をマウスを使ってコピーしたい。でもマウスからコピーすると右側の画面も選択範囲になってしまう。 def foo ~ endだけをコピーしたいのに!! 解決策 Command + optionを押しながら範囲選択をする。 すると次のようにdef foo ~ endだけを選択できる。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with sig
Cookieやセッション管理といったWebアプリケーションの基本技術について改めて調べてまとめた。 『HTTPの教科書』、『プロになるためのWeb技術入門』が主な情報元で、RFC6265も一部見ている。 Cookieとは HTTPにおいてWebブラウザとWebサーバ間で状態を管理するプロトコル、またはそこで用いられるWebブラウザ上に保存された情報のこと ※ 参考:Cookieとは|HTTP Cookie|クッキー - 意味/解説/説明/定義 : IT用語辞典 Cookieの目的 ステートレス(状態を維持できない)なプロトコルであるHTTP上で、状態管理ができるようにすること Cookieの仕組み まず、サーバがSet-Cookieという名前のフィールドをHTTPヘッダに載せてレスポンスを返す。Cookieとしてクライアントに保存して欲しい情報を、このSet-Cookieフィールドの値とし
プロダクションコードでヒアドキュメントを使うことはあまり無いかもしれないけど、文字列やJSONデータを扱いたいちょっとしたサンプルコードを書くときによく使うのでメモ。 1. 基本 「<<」識別子を使う。「<<」識別子の後ろにヒアドキュメントの始まりと終わりを示す文字列の識別子を書く。 EOS(End Of String)とEOL(End Of Line)が使われている例が多いが、統一されていれば何を使っても問題ない。
Time.at(1414767600) # => 2014-11-01 00:00:00 +0900 require 'time' Time.parse('2014-11-01 00:00:00').to_i # => 1414767600 # Dateも可能 Time.parse('2014-11-01').to_i # => 1414767600 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
なぜRubyが好きなのか なぜRubyを使い続けるのか Rubyの何が「楽しい」のか 自分の整理がてらこのあたりを言語化してみたいと思い、この記事を書く。 Rubyは「楽しい」 Rubyはよく「書いていて楽しい」とか「書いていて気持ちがいい」とか言われている。 僕自身もこの感覚は持っているし、Rubyを使い続けている人の殆どは少ならからず同じような感覚を持ったことがあるんじゃないかと思っている。 いくつかその例を。 以下は『Rubyソースコード完全解説』を書かれた青木峰郎さんのサイトから引用。 Ruby が Ruby たる所以は「書くのが楽しい」ところなのである。 これはめちゃくちゃ重要なことだからもう一度書こう。 Ruby は書くのが楽しいプログラム言語なのだ! どうしてそんなにLove Ruby? 以下は伊藤直也さんのブログから引用。 ※ ただし、RubyではなくRu
Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
MD5(Message Digest Algorithm 5) 任意の長さの原文を元に128bitの値を生成するハッシュ関数の1つ 与える値の長さがなんであれ、生成されるのは128bitの値になる 同じ入力値からは必ず同じ値が得られる一方、少しでも異なる入力値からは全く違う値が得られる データの伝送や複製を行う際、入力値と出力値でハッシュ値を求めて一致すれば途中で改ざんや欠落が起こっていないことを確認できる ファイルの一致を確認する用途で使われていることが多い印象をうける(個人的な感覚) 近年では同一のハッシュ値を持つ異なる原文のペアを効率よく探索することができるようになっていて、セキュリティ用途でmd5を使うのは十分に安全とは言えない状況になってきている。SHA-2などより安全なハッシュ関数の使用が推奨されている 【注意】 ハッシュ化と暗号化は異なるので注意。ハッシュ関数は不可逆な一方向
ギョームの必要上、cronを使って定期実行をするスクリプトに多重起動防止の機能を実装したいときがあった。 その際に、setlockというdaemontoolsに付属されているスクリプトを使うと、ロックファイルを使って簡単に多重起動防止機能が実装できることを会社の先輩に教わったので、使い方のメモを残しておく。 cr.yp.to/daemontools/setlock.html The setlock program(↑上記サイトの日本語版) サンプルコードの実行環境はCentOS6.5。 サンプル 例えばsleeping.rbという、10秒sleepして「wake up!」と出力するだけの単純なスクリプトがあったとする。
オブジェクトについて、Objectクラスのメソッドを使って調べる方法をまとめた。 『パーフェクトRuby』とリファレンスマニュアルのclass Objectを参考にした。 1. オブジェクト(レシーバ)のクラスを確認したい Object#classを使う 'Ruby'.class # => String [].class # => Array 100.class # => Fixnum Class.class # => Module class Parent def super_public_method; end private def super_private_method; end protected def super_protected_method; end end class Child < Parent def public_method; end private def
TCPの状態一覧 LISTEN(聴取) TCPモジュールはリモートホストからのコネクション要求を待っている。パッシブオープンの後で入る状態と同じ。 SYN-SENT(SYN送信済み) TCPモジュールは自分のコネクション要求の送信を終え、応答確認と対応するコネクション要求を待っている。 SYN-RECEIVED(SYN受信済み) TCPモジュールは同期(SYN)セグメントを受信し、対応する同期(SYN/ACK)セグメントを送って、コネクション応答確認を待っている。 ESTABLISHED(確立済み) コネクションが開かれ、データ転送が行える通常の状態になっている。受信されたデータは全てアプリケーションプロセスに渡せる。 FIN-WAIT-1(FIN待機1) TCPモジュールはリモートホストからのコネクション終了要求か、すでに送った終了要求の応答確認を待っている。 FIN-WAIT-2(FI
Fileクラスを使ったファイルの読み込み処理のうち、個人的に良く使うパターンをテンプレコードとしてまとめた。 前提 ファイル読み込みでは、実際には読み込んだあとに何らかの処理をすることが多いと思うが、ここではputsで出力するだけ 例外発生時は、捕捉した例外クラスとメッセージを出力するだけにする カレントディレクトリにlabmen.txtという名前で以下の内容のファイルがあるものとする。 Okabe Rintaro Shiina Mayuri Hashida Itaru Makise Kurisu Kiryu Moeka Urushibara Ruka Feyris Amane Suzuha begin # File.openはファイルをオープンし、Fileオブジェクトを返す # 第1引数: ファイルパス # 第2引数: ファイルモード (デフォルト => 'r') # 第3引数: ファイ
Vimキーバインドに変換してくれる「ideaVim」をインストールするまで ※ 検証環境 MacOS 10.9.4 RubyMine 6.3.3 1. RubyMineの設定画面へ移動する RubyMine > Preferences... 2. Plugin設定画面へ移動する 左サイドバーのメニューから「Plugins」を選択 次に、「Browse repositories...」ボタンをクリック。新規ウィンドウが立ち上がる。 3. 「ideaVim」を検索する 新しく立ち上がったウィンドウの検索窓に「ideaVim」と入力する。するとideaVimがヒットするので、「Install plugin」ボタンを押す。 4. RubyMineを再起動する インストールは終わったので、あとはRubyMineを再起動するだけ。 【番外編】 1.INSERTモードで「Ctrl+f」での移動ができるよ
より快適なVim × Ruby環境を目指して構築したvim環境について。 0からでも構築できるように整理した。 やること 最初にRuby、Vim、その他必要なパッケージをガシガシインストールする。 その後、設定した下記機能について実際の操作例を見ていく。 自動コード補完ができるようにする(Rsense/neocomplete) Vim上で静的解析ができるようにする(Rubocop/syntastic) Vimからリファレンスを閲覧できるようにする(vim-ref/vim-ref-ri) メソッド定義元へのジャンプができるようにする(ctags/vim-tags) 構文終わりのキーワードを自動入力できるようにする(vim-endwise) OSはLinux(CentOS6.5)を想定。検証環境は以下のとおり。 $ uname -a Linux vagrant-centos65.vagrant
RubyでWebAPIを叩く際のテンプレコード。 比較的よく書く処理だけど、パラメータの指定やハンドリング処理とかすぐ忘れて毎回調べている気がするのでまとめておく。 前提 WebAPIはJSON形式のデータを返す GETメソッドで情報を取得するパターンのみ 処理成功時にはHashに変換したデータを出力し、処理失敗時はロガーでログを残して終了する コード require 'net/http' require 'uri' require 'json' require 'logger' # [ロガー] # カレントディレクトリのwebapi.logというファイルに出力 logger = Logger.new('./webapi.log') # [クエリパラメータ] # URI.encode_www_formを使って「application/x-www-form-urlencoded」形式の文字列
すっかりPHP脳になっていたため、Ruby脳に切り替えるべくクラスに関わる変数まわりをおさらいした。 1. インスタンス変数 インスタンスごとに独立して持つ変数。 インスタンス変数にアクセスできるのは、initializeメソッドとオブジェクトのインスタンスメソッドだけ initializeメソッドで初期化されて、その後各インスタンスメソッドから参照・変更される使い方が多い(と思う) PHPやJavaみたいに事前にクラス定義内で定義する必要がない 1-1. 定義 変数名の前に「@」をつけて定義する class Foo # 明示的にインスタンス変数を宣言しなくて良い # => 宣言した場合、それは「クラスインスタンス変数」と見なされる # (o) initializeメソッドからアクセス def initialize @instance_var = 'instance_var' p "#{@
MacにBluetoothで接続できるキーボードが欲しくて色々探した結果、これに行き着いた。 今までHHKB Liteを使っていたのだけれど、それと比べるとすごく軽くて使いやすい。疲れないし楽しい。 仕様書を見ると対応OSはWindowsだけだけど、Macでも普通に使えた。 ただ、初期設定としていくらかカスタマイズをしたので、そのメモを残しておく。 キートップの変更 本製品にはKeyPullerというキートップを取り外しする道具がついているのでこれをつかって取り外しをする。 最初使い方わからなかったけど、以下の写真みたいにキーの角に引っ掛けてから引っ張るだけ。写真でわからなくてもググれば動画とか見つかると思う。 キートップは以下の変更を加えた。 「A」の左にあったCpasLockキーをCtrlキーに変更 「Z」と「X」の下部にあるAltとWinを交換 「Enter」キーの上にあった「\」キ
in_execプラグインとはなにか 外部のスクリプトを定期的・恒久的に実行し、スクリプトの標準出力を読み取る機能を提供するプラグイン。サードパーティ製ではなく、Fluentdに標準で組み込まれている。 詳細は公式マニュアル参照。
Vagrantで立ち上げたCentOS6.5のサーバに公式サイトからElasticSearchのtarをダウンロードして起動するまでのメモ。 公式サイトからtarをダウンロード。 バージョンは現時点(2014.11.16)では1.4.0だった。 $ sudo yum install wget java-1.8.0-openjdk-devel -y $ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.0.tar.gz $ tar -xvf elasticsearch-1.4.0.tar.gz $ cd elasticsearch-1.4.0/ $ ./bin/elasticsearch [2014-11-16 04:29:28,660][INFO ][node ] [T
VM上にログ収集ミドルウェア「Fluentd」の動く環境を構築して簡易な設定で動かすまでのまとめ。 Fluentdのメリット、アーキテクチャ、これまでのログ運用との違い等々は一旦全て置いておいておき、まずはその機能を体感する。 自分自身、ログ収集ミドルウェアと聞いてもピンと来なかった経緯もあり、こういう記事を書いた。 ここでは、ApacheのログをFluentdのtailプラグインで監視して、逐次その結果を別のファイルへ出力するまでの設定を行う。 1. VagrantでCentOS6.5の環境を新規構築する 環境はVagrantで構築する。 まずはcentos6.5のVagrantBoxをダウンロード。 % mkdir fluentd % cd flutned % vagrant init centos65 A `Vagrantfile` has been placed in this d
Rubyの%記法まとめ。 以下の例では%の後に全て「()」記号を使っているが、他の記号でも代替可能。自分が好きなものを使って問題ない。 1. %、%Q ダブルクオートで囲う場合と同等。 シングルクオートやダブルクオートのエスケープが不要になる。 後述の%q()と違い、変数・定数の展開もできる。 str = %(Programming language "Ruby") puts str # => Programming language "Ruby" ruby = "Ruby" str2 = %(Programming language "#{ruby}") puts str2 # => Programming language "Ruby"
このページを最初にブックマークしてみませんか?
『qiita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く