Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

o_showのブックマーク (1,779)

  • JavaScriptのバンドルとトランスパイルが不要なモダンWebアプリ | POSTD

    筆者はES6以前のVanilla JSがあまり好きではありませんでした。 そこで、バニラJavaScriptをなるべく書かなくていいように、2000年代を通じてさまざまなアプローチを追求してきました。最初はRJS(Ruby-to-JavaScript)、次はCoffeeScriptでした。どちらのアプローチも、バニラJavaScriptより楽しく書けるソースコードを、ブラウザが実行できるバージョンのJavaScriptトランスパイルするものです。ある程度は、うまくいっていました。 とはいえ、これは明らかにその場しのぎの手段に過ぎず、ブラウザがより洗練されたJavaScriptを理解できる日を待ちわびていたのです。ただ、そんな日が来ることはなく、永久にその場しのぎでやり過ごすのかと思われる時期がしばらく続きました。 しかし、幸いなことにJavaScriptは改善を続け、2015年にはES6

    JavaScriptのバンドルとトランスパイルが不要なモダンWebアプリ | POSTD
    o_show
    o_show 2021/11/16
  • Ruby 3: FiberやRactorでHTTPサーバーを手作りする(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: HTTP server in Ruby 3 - Fibers & Ractors 原文公開日: 2021/07/25 原著者: Dmitry Ishkov FiberとRactorについては以下もどうぞ。 class Fiber (Ruby 3.0.0 リファレンスマニュアル) Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ 動機 Ruby歴史的にコンカレンシーを欠いていましたが、現在のRubyには「ネイティブ」スレッドがあります(Ruby 1.9より前は「グリーンスレッド」 のみでした)。ネイティブスレッドは、OS によって制御されるスレッドが複数存在することを意味しますが、一度に実行できるスレッドは 1 つだけで、GIL(Global Interpreter Lock)によって管理されます。た

    Ruby 3: FiberやRactorでHTTPサーバーを手作りする(翻訳)|TechRacho by BPS株式会社
    o_show
    o_show 2021/11/07
    Fiberの項目の一行目は「Fiberは(より正確にはFiberのscheduler interfaceは)Ruby 3に追加されたあまり知られてない機能です。」の方が自然かも。FiberはRuby1.9からありましたので原文の言いたいことはこっちかなと @hachi
  • GitHubでの”Merge pull request”の弊害 | POSTD

    私は GitHub が大好きです。GitHubはオープンソースへの コントリビューション (寄与貢献)を何十倍も容易に、そして楽しいものにしたと思います。ですが、GitHubがPull RequestというwebのUI形式で前面に押し出しているオープンソースの メンテナー のワークフローが、プロジェクト品質とコントリビューションを受けつけるスピードの弊害になるということに気がつきました。そこで、GitHubの Pull Request にある「Merge pull request」ボタンをクリックする前に、少しお話をさせてください。 メンテナーの紹介 ジェーンはそこそこの成功を収めているオープンソースプロジェクトのメンテナーです。彼女は毎週プロジェクトGitHubリポジトリに上がる新しい Issue を確認し、リクエストに対し速やかにフィードバックを返します。リクエストをすべて実行する時

    GitHubでの”Merge pull request”の弊害 | POSTD
    o_show
    o_show 2014/08/21
    hubを入れておくと、git amでpull requestのURLをパッチとして適用できる
  • YappoLogs: xlsx ファイルを git diff しやすくする為の天才的な wrapper script を書いた

    皆さんはプロジェクトのリソースとしてエクセルの xlsx ファイルを使う事があると思います。 何てったって事務職の人ですら楽々使えるスーパー優れた UI なので、 web の管理画面とかを作り込むよりもエクセルでシート作ってもらってしまった方が早いケースも多いんです。現実の世界では。 で、普通の人は TSV にするだの CSV にしてもらうだのすると思うんですが、一方的にデータ貰うだけなら良いんだけど、相手とやり取りする時にはどうしても xlsx ファイル経由とかにしないと相手がこまる!やっぱりエンジニアのエは優しさのエだから相手に優しくしないとだめです。 で、 xslx ファイルでエンジニア以外の人とデータやり取りするとやっぱり、バージョン管理したくなるのが人情です。 でも xslx ファイルはバイナリファイルなので git diff とかが残念です。。。 って事で作っちゃいました。 h

    o_show
    o_show 2014/07/13
  • git subtreeの練習

    Gitのサブモジュールでは面倒そうな、頻繁に更新される別のリポジトリを取り込む方法としてサブツリーマージを行うラッパーであるgit subtreeコマンドを使う練習を始めた。どちらかというと「参照する」要素の強いサブモジュールに対して、サブツリーは「切り分ける」や「取り込む」という感じなんじゃないかと理解している。全般的に間違ってそうで怖い。 「切り分ける」、つまりリポジトリのサブディレクトリを別のリポジトリにしたい場合は、単純なケースだと親にあたる方で.gitignoreや.git/info/excludeを使ってサブディレクトリを除外してやれば良い。でもこの場合、両方のリポジトリで関連した変更がある時にそれぞれのリポジトリでコミットしてやらないとならないので面倒くさい。 「取り込む」場合はサブモジュールが基なわけだけど、他で作業して戻ってきてたりする必要があるし、サブモジュールの更新

    git subtreeの練習
    o_show
    o_show 2014/07/13
  • Cygwinで sshが ~/.ssh/config を見てくれない - MANA-DOT

    Cygwin が最近64bit版が正式にリリースされたらしいので、早速入れてみました。 その時、せっかくだから従来使っていた32bit版のCygwinを完全に消して、一から入れなおしたのですが、入れなおしたあとsshが~/.ssh/config を見つけられなくなりました。同様の症状を以前も数回同期の環境で遭遇したので、今回の解決法をメモしておきます。 症状 ホームディレクトリを C:\Users\ユーザ名 にしているのだが、 sshコマンドを叩くと、どうも~/.ssh/configを読みに行ってくれていないらしい。 ssh-keygenしてみると、どうも/home/ユーザ名 に作りに行っているようで、sshにとってのホームディレクトリが異なるらしい。 シェルにログインした時はちゃんとC:\Users\ユーザ名 から始まり、C:\Users\ユーザ名 に置いている.zshrcや.vimrc

    Cygwinで sshが ~/.ssh/config を見てくれない - MANA-DOT
    o_show
    o_show 2014/07/02
  • Big Sky :: ファイル名の一括置換なら massren がめちゃめちゃ便利

    大量にあるファイルのファイル名を一括で変更する場合、どうしても GUI での操作であったりマッチパターンを書くのが面倒だったりしましたが、massren を使えば誰でも簡単にファイル名の一括置換が出来る様になります。 laurent22/massren - GitHub massren - Easily rename multiple files using your text editor https://github.com/laurent22/massren お気に入りのテキストエディタを使って、好きな様にファイル名を変更出来ます。サポートしているOSは Windows, Linux, OSX です。中身は golang で書かれています。 それぞれバイナリが用意されているので自分でビルドする必要はありません。LinuxOSX の人はリンク先にある手順を、Windows の人は

    Big Sky :: ファイル名の一括置換なら massren がめちゃめちゃ便利
    o_show
    o_show 2014/02/21
  • Github を使って雑誌原稿を書く - naoyaのはてなダイアリー

    今日はこのあと Github の Tokyo Drinkup January 2014 に行くのだが、先方から、もしかしたら 10分ほど Github について話してもらうかも、と打診された。話すか話さないかわからないが、もし話すとしたらと仮定し内容の整理も兼ねて以下「Github を使って雑誌原稿を書く」ということについて書いてみようと思う。 「Github を使って雑誌原稿を書く」もしくは「Github を使った雑誌編集者とのコラボレーション」について、である。 Web+DB PRESS の連載 ご存知の方もいるかもしれないが、このところ技術評論社の Web+DB PRESS で連載をしている。連載を始めて、もう一年近く経った。以前にも Perl に関する連載をしていて、そのときも数年ぐらい続けたので、間があきつつも、なんだかんだでそれぐらいの付き合いになる。 最近は特にテーマは決めず

    Github を使って雑誌原稿を書く - naoyaのはてなダイアリー
  • ARGVの処理にOptionParserを使ってるライバルをバックミラーから高速に消し去るARGV.getoptsの使い方 - Qiita

    require 'optparse' params = {} opt = OptionParser.new opt.on('-a') {|v| params[:a] = v } opt.on('-b') {|v| params[:b] = v } opt.on('-c file_name') {|v| params[:c] = v } opt.parse!(ARGV) p params % ./very_boring_and_waste_of_time_option_parsing.rb -a -c /tmp/file {:a=>true, :c=>"/tmp/file"} % ./very_boring_and_waste_of_time_option_parsing.rb -h Usage: very_boring_and_waste_of_time_option_parsing [o

    ARGVの処理にOptionParserを使ってるライバルをバックミラーから高速に消し去るARGV.getoptsの使い方 - Qiita
    o_show
    o_show 2014/01/22
  • git submoduleを今風な感じで削除する - Qiita

    v1.8.3からgit submodule deinitが追加され、わずらわしかったサブモジュールの削除がほんの少しだけ楽になりました。 $ git submodule deinit path/to/submodule $ git rm path/to/submodule $ git config -f .gitmodules --remove-section submodule.path/to/submodule

    git submoduleを今風な感じで削除する - Qiita
    o_show
    o_show 2014/01/16
  • Scaling Mercurial at Facebook

    With thousands of commits a week across hundreds of thousands of files, Facebook’s main source repository is enormous–many times larger than even the Linux kernel, which checked in at 17 million lines of code and 44,000 files in 2013. Given our size and complexity—and Facebook’s practice of shipping code twice a day–improving our source control is one way we help our engineers move fast. Choosing

    Scaling Mercurial at Facebook
    o_show
    o_show 2014/01/08
    Facebookではコードを単一のリポジトリに入れていてリポジトリが巨大化。変更されたファイルを調べる処理と、cloneやpullが遅くなるのが問題だった。前者をwatchman、後者をremotefilelogというmercurialのextensionを書いて解決した。
  • RubyでただのArrayだと思ってデータを追加したつもりなのに気がついたら全文検索出来ていた・・的なものを作った - ブログのおんがえし

    続きを書きました。 Ruby Advent Calendar 22日目の記事です RroongaというRubyで使える全文検索エンジンがあって愛用しているのですが、使う前の準備でカラム指定やデータ型を指定したり、全文検索のためのインデックステーブルを作るのが少し大変でした(大規模なアプリケーションの時はしっかり定義出来るので便利なのですが)。 普段使いで全文検索するために、実験的にRubyのArrayのように使えるようにしてみました。 インストール Rroongaを使うにはgemのインストールが必要です。他の全文検索エンジンと違ってそれ以外のソフトウェアのインストールが不要なのがいい所です。Windowsでも問題なく動きます。 $ gem install rroonga 今回書いたコードは以下にまとめてあります。 ongaeshi/grn_array - GitHub $ git clon

  • リポジトリ内で指定した単語が書かれた時期を調べるやつ - hitode909の日記

    このメソッドは最近流行りじゃないとか,最近はこういうほうがおしゃれとか,そういう話をすることがある.これは昔書かれれたメソッドであり,最近こんなのを呼ぶ人はいないよ,みたいな. そういうのを手で調べるのは難しいので,スクリプトを書いた.git grepして,どのファイルに出現するか調べて,git annotateという,git blame的なことをして,出力をパースして,日付を表示する. リポジトリ内で指定した単語が書かれた時期を調べる % ruby commit-dates-for-word-of-repository.rb \ authorize \ ~/co/rubygems.org/ 2009-07-22 12:24:54 +0900 2009-07-22 12:24:54 +0900 2009-07-22 12:24:54 +0900 2009-07-22 12:24:54 +0

    リポジトリ内で指定した単語が書かれた時期を調べるやつ - hitode909の日記
    o_show
    o_show 2014/01/05
  • GitHub に登録した SSH 公開鍵は全世界に公開されている | 774::Blog

    意外と知らない人がいるようなのでブログに書いておきます。 GitHub のアドレスのあとに .keys を付けるとその人の SSH 公開鍵が表示される。 たとえば id774 さんの公開鍵であれば https://github.com/id774.keys を参照すれば良い。 ぜひ自分のアカウントで試してみて欲しい。 新規に用意するサーバーの ~/.ssh/authorized_keys に上記アドレスを wget したものを置いて適切なパーミッションを設定しておけばすぐに公開鍵認証ができるというわけである。 もうそろそろ公開鍵をメールで送ってくれとかいう文化が滅亡して GitHub から勝手に公開鍵を持っていくのが常識な世界になってほしい。

    o_show
    o_show 2013/12/17
    https://github.com/アカウント名.keys
  • The rumors of Bundler’s death have been greatly exaggerated

    07 Dec 2013 The rumors of Bundler's death have been greatly exaggerated So this week there was some excitement on Github, Hacker News, and Ruby Weekly about the news that Bundler will (eventually) be merged into Rubygems. Before that comment, which was a side point on a different topic, the idea of merging the two projects had not been announced or explained. As lead of the Bundler project, I’d li

    o_show
    o_show 2013/12/13
    「RubyGemsとBundlerは合流して同一コードベースの同じプロジェクトになる事に合意した。でも1年や2年そこらではすぐできない。Bundlerは当面、これからもSemantic Versioningに従ってリリースを続けていくよ」
  • Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば

    Git に同梱されている contrib/diff-highlight を使います。 あとは README に書いてあることの引き写しですが、PATH の通ったディレクトリに置いて、~/.gitconfig に以下のように設定を書く。 [pager] log = diff-highlight | less show = diff-highlight | less diff = diff-highlight | less すると、対応するコマンドの出力がこんな風になります。 行レベルの diff に加えて、単語レベルでの diff もハイライトされ、GitHub での diff のように描画されました。 組み込みのオプションで --color-words というのがありますが、こちらを使うと行レベルの diff 情報が失われるので、少し不便だったわけですね。とすべて README に書いてあ

    Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば
    o_show
    o_show 2013/11/26
    Git同梱の contrib/diff-highlight /長い行を折り返すならdiff = diff-highlight | LESS=-R less/日本語の長い1行の文章の中に複数の差異があると、それらが全部つながってハイライトされてしまうな。そういうものにはdocdiff使ってる
  • KEISUKE | 契約書の学習・作成ポータルサイト

    NDA(秘密保持契約書)なら無料です サービスを詳しく見る NEWSAZX Super Highway (ブログ)更新情報 PAGE TOP

    o_show
    o_show 2013/11/25
    質問事項に答えていくと、契約書のWordファイルがダウンロードできる
  • ぐにゅぐにゅ動く直感的なGitクライアント ungit|TechRacho by BPS株式会社

    ungitはnode.jsで動くグラフィカルなgitクライアントです Learn Git Branchingみたいな直感的なGUIで操作できるので とても分かりやすいです インストール 今回はnvmを使用してnode.jsを入れます $ git clone git://github.com/creationix/nvm.git ~/.nvm $ source ~/.nvm/nvm.sh $ nvm install v0.10.22 $ npm install -g ungit $ nvm use v0.10.22 ログイン時も有効にしたい場合は.bashrcに以下のように書いておきます if [ -d $HOME/.nvm/ ] then source ~/.nvm/nvm.sh nvm use v0.10.22 > /dev/null fi 起動 以下のコマンドで

    ぐにゅぐにゅ動く直感的なGitクライアント ungit|TechRacho by BPS株式会社
    o_show
    o_show 2013/11/23
    触ってみたけどなにこれすごい、ヤバイ
  • 卜部昌平のあまりreblogしないtumblr

    前回の続き。 前回の時点では「git blameが密になっているところはきっと活発に編集されていたに違いない」という仮説があったわけですが、これは当のところは、よくわからない。なぜかというと、blameというのは地層のように降り積もったコミットの表面に露頭してるところしか見せてくれないわけです。当に活発に更新されていたかを知るには、ようするに地質平面図じゃなくて地質断面図が必要なわけ。分かりますよね。 で、それはどうやって作ればいいかというと、gitには便利なgit log -pという、こういうとき便利だけど普段は使い道のなさそーなコマンドがあって、これは生のdiffをすべてだらだらと表示してくれるわけですよ。で、diffからblameを再構成するにはdiffの+行をひたすら集めてくればいいわけだけど、その時-行も一緒に覚えておいて、あるコミットでどのコミットが上書きされたかを覚えてお

    卜部昌平のあまりreblogしないtumblr
    o_show
    o_show 2013/11/18
    コードの中の更新頻度の高い箇所を探るコマンドと、そこから分かること。面白い
  • 【Ruby】階層の深いHashを作る方法を知って考えてみた。 - 訳も知らないで

    rubyでプログラムしているとhashのvalueがhash、みたいな 階層の深いハッシュを作る場合結構ありますよね。 ※極端な例 { :hoge => { :fuga => { :piyo => { :foo => { :bar => {:baz => 1 } } } } } } ただその場合いちいちハッシュを定義するのがめんどくさい。 2階層のハッシュをいきなり定義する方法 それを楽に定義する方法が書いてありました。 〜大変参考になりました!〜 階層の深いHashを作成するときに知っておいたら便利なこと - (゚∀゚)o彡 sasata299's blog ハッシュを定義する場合に、 hash = Hash.new { |h,k| h[k] = {} }と定義しておけば、ハッシュの値がハッシュという変数ができます☆ これはここ(Hash.newについて)を参照してもらうとわかるのですが

    【Ruby】階層の深いHashを作る方法を知って考えてみた。 - 訳も知らないで
    o_show
    o_show 2013/10/18
    n階層でもデフォルトをHashに定義する方法