Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
人は誰しも108つの夢を持つと言いますが、読者の皆さんにも探偵を夢見た人は多いことでしょう。実際問題として探偵業をやろうと思ったら地道な聞き込み&張り込みの日々でしょうし、逆に派手な探偵業は陰謀&殺人で恐ろしい。わたしも自分の命は大事ですからどうするか。そう、探偵ごっこをするわけですね。 というわけでSEGV探偵です。死ぬのはプロセスなので安心。Rubyを使っていればSEGVなんて見慣れたものですが、いざ捜査しようと思うと意外とその辺には転がっていないもの。(むかしはつかみ取り出来るくらいいたそうですよ)とはいえ今でもいわゆる「バグ鉱脈」みたいなものはありまして、その一つが「最新のコンパイラでビルドしてみる」です。 今日はGCCの開発版であるGCC8を試してみましょう。FreeBSDだとsudo pkg install lang/gcc8-develで簡単に入れられるのですが、他の環境だと
A minimal text editor written for fun in plain Ruby with no dependencies. I wrote it from memory after watching the relevant screencast by Gary Bernhardt. It supports: Quitting Moving the cursor up/down/right/left Deleting the character before the cursor, like backspace Breaking a line (Enter) Undoing! The following are also implemented (not covered in the screencast): Flicker-free screen Ignoring
株式会社クリアコード > ククログ > Redmine大阪 第17回勉強会 - 全文検索でRedmineをさらに活用! #RedmineOsaka 関連リンク: スライド(Rabbit Slide Show) スライド(SlideShare) リポジトリー 内容 発表内容は2017年5月13日に開催されたredmine.tokyo第12回勉強会の発表内容をアップデートしたものです。 Redmineの全文検索機能はLIKEベースで実現されていて、「どのくらい検索クエリーに適合していそうか」の概念がないため、「それっぽい検索結果を上位に並び替える」ことができません。そのため、探している情報はヒットしているけど、検索結果の中からなかなか見つけられない、という状態になりがちです。 Groongaベースの全文検索プラグインを導入すると「それっぽい検索結果を上位に並び替える」ため、探している情報をすぐ
Air Podsを買ってからポッドキャストやネットラジオを大分聞くようになった(片耳だけ付けるとモノラルになるのが素晴らしい)。 Radikoも使っているのだが最近になって有料のエリアフリーに入った。これでJUNK(TBSラジオの深夜放送)やANN(オールナイトニッポン)をタイムシフトかつ細切れに聞くことができる。 ※ Radikoの放送は1週間いつでも再生できるのだが「(謎仕様で)再生開始から3時間」しか聴くことができない。しかし複数の放送局に配信している番組であれば放送局をまたがることで細切れにタイムシフト再生が可能になる。例えばJUNKのような2時間の番組なら4局をまたがることで30分細切れに再生が可能となる(そのためにもエリアフリーが便利)。 しかしスマホアプリのRadikoはこのような使い方をあまりサポートしてくれない。例えば「バナナ」で検索したら再生可能な「JUNK バナナマン
今はプログラミングエディタが多数ありますが、かつてはVi/VimかEmacsかと言われるほど人気が二分化していました。個人的にはEmacs派なのですが、昨今の新しい技術に対応していくために泣く泣くAtomに移行しています(Visual Studio CodeのEmacsバインドが微妙なため)。 そんな中、でてきたのがtextbringerです。なんとRubyで作られたEmacsライクなエディタです。 textbringerの使い方 エディタです。普通にEmacsのキーバインドが使えます。 何となくエディタの下部などEmacs風の表示になっています。Rubyということで、Emacs標準のCommon Lispよりもカスタマイズがしやすいと考える方は多いのではないでしょうか。速度面についても特に問題なさそうです。今後の発展に大いに期待したいソフトウェアです。 textbringerはRuby製
RubyKaigi 2014の基調講演でまつもとさんが静的型の野望を明かしてから2年半が経った。 その間の進捗は芳しいものとは言えないけれど、それでもまじめな研究として例えば多相型、推論、Ruby が行われている。普通の人は私のこの記事を読むよりもこちらを読んだ方がよいと思う。 じゃあなぜこの記事を書いたかというと、それでも一部の人には得るところがあると思っているからである。この記事の読者の中にはRubyKaigi 2014中に書かれたakrさんの日記で「非常に簡単化した静的解析」の話を読んだ人もいるのではないかと思う。この話をそのまま発展させた場合にどういう迷路に迷い込むのかという点についていくつかの知見を得たものの、これまでそれを書いていなかったのでちゃんと書くことにしたのだ。 さて、nurse/static-check.rbである。 これは大きく分けて3つの部分からなっている。定義さ
こんにちは。パートナーアライアンス部の諸橋 (@moro) です。 突然ですが、わたしはいまクックパッドの「ユーザー基盤」を再構築しようとしています。 一口に「ユーザー基盤の再構築」といっても、そのゴールが何を指すかは(わたし自身にとってもまだ)漠然としており、固定されたゴールは見いだせていません。しかし後述するように、いくつかの問題は明確な形を取っています。言い換えると、それら明確な問題と向き合いながら『柔軟でいい感じのユーザー基盤を目指す』というのがこの再構築プロジェクトの目的です。 その第一歩目として、ユーザー登録部分を現状のクックパッド本体とは別の小さなRailsアプリケーションとして実装を進め、つい先日、一部の限定された利用者の方に向けて公開することができました。 今後も様子を見ながら公開範囲を拡大していく予定です。 再構築の背景 ではその「明確な問題」とはなんでしょうか。 最大
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0065 号 バックナンバー Rubyist Magazine 0065 号 Rubyist Magazine 0064 号 Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 Ruby
大江戸Ruby会議06で前田さんがRubyでEmacsライクなエディタTextbringerを作ったという発表をしていました。 発表資料 https://github.com/shugo/oedo06/blob/master/textbringer.md ブログ https://shugo.net/jit/20170320.html 最初はEmacs上の何かでプレゼンしてたと思ってたのですが、なんとTextbringerでプレゼンしてたとのこと。完成度高い。 Textbringer上で動くMUAを作るのが目標とのことで、Emacs使いで、MUAを作ることがRubyを始めたきっかけの私としては非常に共感しました。 ということで試してみました。 インストール % gem install textbringer 起動 % textbringer ファイル読み込みとか保存とかカーソル移動とか基本的
バイトコード列の例 irep 0x20160790 nregs=11nlocals=4 pools=3 syms=5 reps=1 file: benchmark/bm_fib.rb 14 000 OP_ENTER 2:0:0:0:0:0:0 15 001 OP_LOADSELF R4 15 002 OP_STRING R5 L(0) ; "" 15 003 OP_GETCONST R6 :Irep 15 004 OP_MOVE R7 R1 ; R1:ele 15 005 OP_GETUPVAR R8 1 0 15 006 OP_SEND R6 :disasm 2 15 007 OP_STRCAT R5 R6 15 008 OP_STRING R6 L(2) ; " n" 15 009 OP_STRCAT R5 R6 15 010 OP_SEND R4 :print 1 16 011 OP
対象読者 Ruby初心者を抜け出したい人 あまり人のコードとか読まないけどそろそろ読む練習したい人 コードリーディングに慣れてる人だと30分もかからないので,対象読者じゃないかも. 前提知識 Rackアプリケーションの実装に関する基本的な事項 Rack解説 - Rackの構造とRack DSL - Qiitaを流し読みしたくらいでも大丈夫 Sinatraを利用したアプリのつくりかた ここではget '/' do ... endで実装するClassicアプリケーションを見ていく Rack内部の実装については触れず,I/Fだけ知ってる状態という体ですすめる. あくまでSinatraが「どうやって起動するか」「どうやってルーティングを定義してるか」「どうやってリクエストを捌くか」「どうやってDSLを定義しているか」等に着目する. 実装を読む ここでは2017年1月末時点での最新安定版であるv1.
前々から存在は知ってはいたのですけど様子見状態、文字列の加工・抜出を可能とする正規表現が実装されてからはちょくちょく遊びながらスクリプトを作っております。 クリップボードの値を取得したり、前述した正規表現で加工したり、ブラウザやURLスキームでアプリを起動できたりと便利な機能が実装されているのでちょっとした作業をするスクリプトを作るにはもってこいだと思います。 複数トピックをnoteにまとめるスクリプト HandyFlowyで対象とするトピックをクリップボードにコピーして、HandyFlowyから取得した1行目はタイトルトピックに2行目以降はnoteにRubyPicoで加工、MemoFlowyを使ってノートに保存します。 RubyPicoで使うコードは以下の通り。綺麗なコードじゃないですけど、.appフォルダに保存しておくといいかも。 note.rb src=Clipboard.get a
エラーが発生しました ご迷惑をおかけいたしまして誠に申し訳ございません。 しばらくたってから再度アクセスをお試しください。
Short answer For an integer range : Enumerable#sum returns (range.max-range.min+1)*(range.max+range.min)/2 Enumerable#inject(:+) iterates over every element. Theory The sum of integers between 1 and n is called a triangular number, and is equal to n*(n+1)/2. The sum of integers between n and m is the triangular number of m minus the triangular number of n-1, which is equal to m*(m+1)/2-n*(n-1)/2,
拡張スクリプトを追加することでGitHubに置いたスクリプトをダウンロードできるようになりました。 - 更新履歴 RubyPico ongaeshi仕事効率化無料 github_download.rb RubyPicoGemsの仕組みをリニューアルしました。 github_download.rb をインストール インストールしたいライブラリのパスをコピー(例. ongaeshi/rubypico_github) github_download.rb を使ってライブラリをインストール 全ての手順がRubyPico内で完結するようになりました。今までとは雲泥の使いやすさなので是非お試しください。自分が書いたプログラムもGitHubに置くことで他の人に配布できるようになります。 ※ とりあえずongaeshi/app_installerをインストールしておくとAppタブへの登録が簡単になるのでお
Twitter で「言語のしくみ」読みたいなって呟いたら Matz 本人から「献本しましょうか」とメンション頂いて即答でお願いしました。ありがとうございます。 ひさびさ紙の本を通勤電車の中で立ちながら読んだので手がだるくなりました。なんだか懐かしい感じがしました。 さてこの本ですが、一言で言うとこんな本です。 Ruby のパパこと Matz が雑誌の連載に追われながら試行錯誤して作ったプログラミング言語「Streem」を解説する本 聞こえが悪かったらすみません。言いたいのはこの「試行錯誤」がとても良いエッセンスになっている点なのです。実際にはその連載記事をまとめた物に対して、この当時はこの様に考えていたが後になってみると実は良く無かったといった振り返り「タイムマシンコラム」で構成されています。 この連載が1つの本に纏められた事でプログラミング言語設計者の葛藤が非常に良く表されているな、そう
私が管理しているサーバー上で動く、管理用のツールだったりバッチ処理だったりがいくつかあります。 課題 Rubyで書きたい Ruby on Rails で開発しているチームで運用しているサーバーなので、おのずとそういったツールも Ruby で作られる事が多いです。1 処理にもよりますが、シェルスクリプトではなく慣れている Ruby で書きたいのです。 Rubyのインストールが必要 Rubyで書きたいとなるとサーバーに Ruby のインストールが必要になります。 Ruby on Railsのアプリが稼働しているサーバーなら、当然 Ruby もインストールされているのですが、そうでないサーバーもあります。OS のパッケージマネージャーで入る Ruby は古いことも多いので rbenv など使ってインストールすることになります。2 シェルスクリプトのツールを使う場合と比べるとインストール直後のサー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く