programmingに関するPockeのブックマーク (53)

  • Vue.jsで作るタグ入力フォーム - Qiita

    タグ入力フォームを作る Webサービスでよくタグを入力する機能がよくあると思います。Qiitaにも入力するところがあると思います。Qiitaではタグを作ると入力した言語の背景がかわってとてもいい感じです。 自分でも作ってみたいと思い試行錯誤してみました。Qiitaとか参考にすればいいとあとで気づいたのであまり筋のいい解では無いと思いますが、こういう実装もあるんだよ程度に思って頂けると幸いです。 動作 動作の様子です。スタイルが適当なのは勘弁してください。 少しわかりにくいのですがエンターキーでタグを確定しています。となりのxを押すとタグが削除されます。 実装 <div class="text-area"> <div class="tag-list"> <span class="tag" v-for="tag in tags"> {{tag.name}} <span class="delet

    Vue.jsで作るタグ入力フォーム - Qiita
  • phyzkit.net

    This domain may be for sale!

  • Ruby 2.1 の新機能 Refinements でクラス拡張をしてみよう

    こんにちは。ウェブ開発担当の清水です。 Ruby 2.0 で実験的に導入されていた Refinements が、バージョン 2.1 より正式に導入となりました。 今回はこの機能を利用してクラスの拡張をしてみたいと思います。 オープンクラス Refinements とはクラスの拡張の範囲を限定する機能です。使用の前に、まず Ruby のオープンクラスについて説明します。 オープンクラスとは、既存クラスを再定義(再オープン)することで、メソッドの追加・上書きなどが容易にできる機能です。 この機能により組み込みクラスであっても自由に拡張できるため、使い道次第で強力な効果を発揮します。 以下の例では、 Array クラスへ bogo_sort! メソッドを追加することで、全ての Array インスタンスから呼び出せるようにしています。 class Array def bogo_sort! shuf

    Ruby 2.1 の新機能 Refinements でクラス拡張をしてみよう
  • 人類は Java をターミナル内で書く手段を確立していた - Qiita

    X なしで Eclim を使う方法。 導入 Vagrant や Docker の流行により、気軽に仮想マシンを使う時代になっています。すると開発にも仮想マシンを使うようにしてホストマシンはできるだけ汚さない方向に持って行きたいことになる。手軽に使いたいため当然 X 環境などは構築しない。 ここで問題になるのは IDE を前提にした言語。 IDE はウィンドウシステムの中で動くため、仮想マシンを X なしで使うと IDE の機能を使えず開発が厳しくなってくる。 具体的に言うと Java 、ジャバ、ジャヴァである。 書くときはあまりにも長い名前をタイプしたくないため補完が欲しくなり、読むときは名前解決のためのタグジャンプが欲しくなる。 追記 僕のモチベーションは VM の中に開発環境を閉じ込めてしまいたくて、かつ X を使いたくないところにあります。そうじゃない人はホストマシンで開発なり VM

    人類は Java をターミナル内で書く手段を確立していた - Qiita
  • Vim でJava を書く環境を整えましたが、IDE で良い気がします - その手の平は尻もつかめるさ

    VimJava を書く環境を整えました。 結論 Eclipse 等のIDE を利用したほうが良いと思います!!! 理由は色々あるので後述します。 あと、Eclipse だとVrapper というVim のキーバインドを再現するプラグインがあるので、 それを使えばある程度幸せに暮らせると思います。 記事で取り上げるプラグイン達 java.vim javaid.vim javacomplete jcommenter.vim java_getset.vim java_checkstyle.vim 取り上げないけれど、入っていると心が豊かになるであろうプラグイン達 NeoBundle やVundle といったプラグインを管理するプラグイン vim-quickrun Normal Mode で'\r' を押下すると *1、Java でもコンパイルして実行してくれるので便利です。 neocomp

    Vim でJava を書く環境を整えましたが、IDE で良い気がします - その手の平は尻もつかめるさ
  • extern "C" - debian36の日記

    前回は、C++ソースで定義された関数を Cソース内でコールする場合に起こる問題について書きました。 そのキーワードが、「マングリング」でした。 前回:http://d.hatena.ne.jp/debian36/20080226 では、その問題を回避する方法、すなわちマングリングを避ける方法について、今日は記します。 ずばり、その答えが、extern "C"  です。 この修飾子を見たことがあるかたも多いのではないでしょうか。 自分も、人のコードを見ていていると、たまに extern "C"{ .... .... } なんてコードが登場して、「ん〜、これは、C言語として解釈しろ」ってことなのかなぁってなんとなく思っていた程度でした。 確かに、extern "C" は、C言語として解釈して下さいよって、コンパイラ(g++)にお願いするものなのですが、なんのために、そのようなお願いをするのかと

    extern "C" - debian36の日記
  • Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita

    もうなんかこの際マジで言わせていただくんですけど、知ってるか知らないか分かりませんが世の中にはすごい頻度で呼ばれうるDOMイベントって言うのがいくつかあるわけですよ 例えば scroll mousemove, touchmove devicemotion 辺りですよ。 で、高頻度で呼ばれるって言うことは必然的に処理量が増えるって分かりますよね?????while(1) {}じゃないとはいえUIスレッドに十分影響を与えうる頻度で呼ばれる訳です。分かりますよね???????? そうなると当然そのイベント内で重い処理を行えば人間が認識できるレベルでのレスポンス遅延が起きるっていうのはご理解できますよね? 重い処理っていうのはまぁ想像出来るとは思うんですが例えばよくあるのが DOMのレイアウトプロパティへのアクセス offsetTop、offsetLeft、offsetWidth、offsetHe

    Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita
  • 仮想DOMに思いを馳せていたらそもそもブラウザのレンダリングがわかってなかった - Qiita

    仮想DOMとか、react.js とか最近聞くようになりました。フロントエンドに関わるものとして、UIパフォーマンス向上を志すなら、少し触って明日の糧にしようと思っていろいろ調べていたら、そもそもブラウザのレンダリングとは何かもよくわかっていなかったので出直そうと思った、というごくつまらない話です。 ブラウザのレンダリングとは DOMの読み込み、リサイズ、イベント発火で再描画、くらいふわっとわかったフリになっていた。 http://www.yoheim.net/blog.php?q=20140703 下のURLをわかりやすく解説 http://www.html5rocks.com/ja/tutorials/internals/howbrowserswork/ ごつい http://tokkono.cute.coocan.jp/blog/slow/index.php/web-technolo

    仮想DOMに思いを馳せていたらそもそもブラウザのレンダリングがわかってなかった - Qiita
  • RSpec の should/stub から expect/allow の早見表 - Qiita

    RSpec 2.14.0 からは allow, expect_any_instance_of, allow_any_instance_of も使えるようになりました。 obj.should ... expect(obj).to ... obj.should_not ... expect(obj).not_to ... obj.should =~ // expect(obj).to match(//) [1, 2, 3].should =~ [3, 2, 1] expect([1, 2, 3]).to match_array([3, 2, 1]) obj.should > 3 expect(obj).to be > 3 lambda { ... }.should raise_error expect { ... }.to raise_error # RSpec 2.14.0 or later

    RSpec の should/stub から expect/allow の早見表 - Qiita
  • Goの文字列結合のパフォーマンス - Qiita

    Goで文字列結合をする時、通常の+=は遅いから[]byteをappendした方が高速という話があったので、実際にどの程度の差が出るのか検証してみた。 Goでは文字列連結はコストの高い操作 - Qiita テストケース 以下のような9文字*10要素の文字列の配列要素を","で結合し、最後に","を追記するコードを実装した。得たい出力はstringなので、[]byteやbytes.Bufferを使う場合、最後にstringへのキャストを実行した。 var m = [...]string{ "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", "AAAAAAAAA", } func BenchmarkAppendOperator_(b *testing.B) { for i := 0; i <

    Goの文字列結合のパフォーマンス - Qiita
  • benchmarks submission guidelines

  • SATソルバを使うためにCNFを作る - soutaroブログ

    SATソルバっていうのは,充足可能性問題(SATisfiability problem)を解いてくれるソフトウェアのことで,SATソルバで数独を解くとか,以外と身近なところに応用があったりします.SATソルバは数独を解くだけじゃなくて,プログラムの停止性の判定に使うとか,いろいろな応用を考えることができる良いものです.普通,SATソルバはCNFという論理式の特殊な形を取り扱います.日語だと乗法標準形とか言うらしいですけど,別にこの言葉は忘れても良いと思います.詳しくはWikipediaでも見てもらえれば良いのですが,CNFは,変数かそのnot付けたやつ,をorで結んだやつ,をandで結んだやつ,という意味です. CNF ::= c1 && ... && c2 c ::= l1 || ... || l2 l ::= x | !x 任意の論理式(変数(x)とor(||)とand(&&)と「な

    SATソルバを使うためにCNFを作る - soutaroブログ
  • SAT ソルバで数独を解く方法 - まめめも

    数独は非常に SAT に変換しやすい問題です。全部参考文献 *1 に載っている内容ですが、なるべくわかりやすく説明してみます。ちょっと長いです。 SAT とは まず SAT をごく簡単に説明します。すでに SAT を知っている人はここは読み飛ばしてください。 命題論理式の形の一つに乗法標準形のというのがあります。変数か変数の否定 (リテラルと言います) を or だけでつないだ式 (節と言います) を and だけでつないだ論理式のことを言います。つまり以下みたいな形です。 ( a1 or !a2 or ... or an) and ( b1 or !b2 or ... or !bn) and ... and (!z1 or z2 or ... or !zn)SAT は「a1 や zn などの変数にうまく true か false を代入して、上の式全体を true にできるか」という問題

    SAT ソルバで数独を解く方法 - まめめも
  • プログラミングで変数名や関数名のネーミングに迷ったときに便利なカンニングペーパーまとめ

    僕は、プログラムをする上で変数や関数に良い名前を付けるのはとても重要と考えています。 というのも、良い名前を付ければ、それだけでそのコードがしたいことの説明になり、コメントと同等の働きをすることもあるからです。 自分がちゃんとそれをできているのかはさておき、僕は普段から、できれば読みやすくて分かりやすい名前を付けたいと思っています。他の人も読むコードであれば、できればプログラムでよく使われるような単語を利用して書いた方がより分かりやすいです。 ただ、よい名前を考えるのって、ちょっと面倒くさいんですよね。僕はこれまで、英語の辞書を利用して、考えたりしていたのですが、「何か、プログラムでよく使われる単語をまとめたものはないか?」と探したら、ドンピシャのものがいくつかあったので、それらをまとめて以下で紹介します。 photo by Michael Coté codic codic – デベロッパ

    プログラミングで変数名や関数名のネーミングに迷ったときに便利なカンニングペーパーまとめ
  • Vue.js v0.11の変更点(予定)まとめ

    Vue.js v0.11のrc版もリリースされて、v0.10からの変更点が多いのでchangesを参考にまとめてみました。 ** rc3がリリースされたので修正・追記しました ** APIの変更も多いですが、data継承の仕組みが完全に変わっているのでその辺りは注意が必要ですね。 npm install vue@0.11.0-rc2 まだ安定してなかったりドキュメントはv0.10のものしかなくてchangesとmergeしながら読む必要があったりするので、これから開発する人は今のタイミングはどのバージョンを使えばいいのかちょっと悩ましいですね。v0.11系を使っていった方がいいとは思いつつ。 今回の変更でも見えるのですが、Angular.js以外にもBackbone.jsやReact.jsなど様々なフレームワークからいいところを持ってきてるところがVue.jsの面白いところですね。 htt

    Vue.js v0.11の変更点(予定)まとめ
  • inforno :: LuaのGo言語実装を公開しました

    LuaをGo言語のみで実装した GopherLua を公開しました。 詳しくはGithubのREADMEを見ていただくとして、特徴としては以下になります。 Lua5.1ベース 5.1の機能はほぼ実装済み Compiler, VMともに完全にGo言語のみで実装 引数の受け渡し以外でのスタック操作が不要で使いやすいAPI なぜ作ろうと思ったか もともとC言語でものを作るときにはLuaを設定ファイルの代わりとして取り入れていました。Goではあまり拡張言語実装がないので、jsonだったりiniだったりを設定ファイルとして使っていましたが、やっぱり微妙にめんどくさい。変数くらい欲しいなあ・・・とか。 結局、固い言語だけでモノを作るのは難しく、やわらかさが必要になるポイントがあります。そういうところはまず、「設定ファイル」として外だしされます。そしてその設定ファイルがどんどん肥大化したり複雑化したりし

  • Ruby on Rails のConditionalGet について - Qiita

    cuzic です。 Ruby on Rails Advent Calendar 24日目の記事です。 今日はクリスマスイブです。 実は生まれて初めての Advent Calendar への投稿です。 さらに Qiita で書いたのも初めてです。 ちょっとドキドキです。 今日は、Ruby on Rails における Conditional Get に ついて書きます。 ConditionalGet とは ここで書こうとしている ConditionalGet とは、 HTTP1.1 で規定されている取得済みのコンテンツであれば ブラウザ内のローカルキャッシュを使わせることで、 トラフィック量を削減する機能のことです。 一般に、ブラウザは動作を高速化するため、トラフィックを 軽減するため、コンテンツを一旦キャッシュとして保管します。 とはいえ、キャッシュを使う限り、そのキャッシュは今でも 有効な

    Ruby on Rails のConditionalGet について - Qiita
  • これだけ押さえておけばあらゆるAPIを呼び出せる! Google APIを使用するための基本

    対象読者 GoogleのサービスやAPIに興味のある方、悩んだことがある方 Google Cloud Platformに興味のある方 GoogleではないAPIの経験がある方(推奨) 必要な環境 Googleアカウント Webブラウザ サンプルコードを実行する場合は、Javaの開発環境 Google APIの基礎知識 Googleが提供する大抵のプラットフォームやサービスは、それらのリソースへアクセスするためのAPI(以下、Google API)を提供しています。まずは、Google APIを理解するための基礎となる事項を押さえておきましょう。 APIとの通信方式とDiscovery Document Google APIと通信する方式には次の2つがあります。 OAuth1でアクセス許可を得て、ATOM書式で通信する OAuth2でアクセス許可を得て、JSON書式でhttpsを使って通信す

    これだけ押さえておけばあらゆるAPIを呼び出せる! Google APIを使用するための基本
  • クラス名からリリースノートまで、英語で迷わないために参考にできるサイト一覧 - Qiita

    codic http://codic.jp/ 日語を入力するとプログラミング用語を英語で返してくれる和英辞書です。 たとえば「削除する」で検索すると、 unlink erase remove delete trim を返してくれます。 ちょっと迷ったときに検索するだけでニュアンスがぴったりな単語を探せるので便利です。 codicの開発者ブログやcodic開発者のTwitterアカウントにも不定期(?)に英語ネタを書いてくださっています。 The Java Programmer's Phrase Book http://phrasebook.nr.no/phrasebook/index.html Einar W. Høstという方が、Meaningful Method Namesという博士論文を書いています。 著名なJava製OSSを調べて、メソッドの処理内容とメソッド名との関係性を調査し

    クラス名からリリースノートまで、英語で迷わないために参考にできるサイト一覧 - Qiita
  • Golang Cafe #25 まとめ デバッグとリリースビルドの切り替え方法を考える - taknb2nchのブログ

    2014/04/13に開催された「Golang Cafe #25」についてのまとめです。 今回はご新規様が参加されましたので、この度めでたく「https://plus.google.com/u/0/communities/107075098212007233819」の管理メンバーにご昇格された+RyujiIwata氏がご新規様にGolang Cafe #1(私のまとめ)の内容をご教授されておりました。 (私なんぞはまだまだ精進が足らぬようです) その間、私はいつもながら+TakashiYokoyama氏に質問をぶつけたり、試してみたことを話していました。 build時のターゲットを切り替えるには C#ですとビルド時にDebugかReleaseを切り替えたり、Seasar系ですとenv.txtを変更したりだとかありますが、いわゆる#if DEBUGのようなことをGo言語でするにはどうしたらい

    Golang Cafe #25 まとめ デバッグとリリースビルドの切り替え方法を考える - taknb2nchのブログ
    Pocke
    Pocke 2015/02/07