タグ

programmingとRubyに関するtermin2のブックマーク (65)

  • bl コマンド - itatyo’s blog

    かっとなって書いた。今は反省していない。 『sl コマンドみたいに「ホモォ…┌(┌ ^o^)┐」が走る bl コマンド』という ツイートがあったので Ruby にて実装してみた次第。 #!/bin/ruby right = "ホモォ…┌(┌ ^o^)┐" left = "ホモォ… (┐ ┐^o^) " def clear print "\033[2J" end def homo(str) newline = "\n" print newline + str + newline sleep 0.1 clear end def space_closure spa = "" space = " " return lambda { spa = spa + space } end space = space_closure loop do homo(space.call + right) homo(

    bl コマンド - itatyo’s blog
  • Rubyのcase式と===演算子について - しばそんノート

    前フリ 奥様、知ってらした?Rubyのcase式ってすっごくパワフルなんですって!単なる同値判定で振り分けるだけじゃなくて、例えばこんなこともできちゃうらしいんですのよ! case gets.chomp when /おはよう/ puts 'おはようございます、お目覚めはいかがですか?' when /こんにちは/ puts 'こんにちは、いい天気ですね。' when /こんばんは/ puts 'こんばんは、遅くまでお疲れ様です。' else puts '何か御用でしょうか?' end あたくし、今までcase式の実力を見くびっていましたわ…! カラクリ どうしてこんなことができるのかというと、リファレンスマニュアルにも書いてあることなのですが、case式は===演算子を使ったif〜elsif〜end式と等価な処理を行うように実装されているからなんですね。 要は、この===演算子がキモなわけで

    Rubyのcase式と===演算子について - しばそんノート
  • Grow - Agencia Marketing Digital

    Nuestra misión es HACERTE CRECER. Brindamos servicios especializados que aportan valor a las empresas líderes del mercado combinando estrategias de marketing y negocio con tecnología digital

  • YOUたち!RubyでinjectしちゃいなYO!

    プログラミングの存在価値は処理の自動化です。任意の集合に対して処理を繰り返しその結果を返す、それがプログラムです。つまり集合に対して処理を繰り返す能力が、プログラムの価値を決定付けるのです1。 「手続き型言語」ではループが処理の繰り返しを実現するための重要な手法の一つです。しかしループは、一時変数を用意してプログラマがループの進行を管理しなければならない、という欠点があります。そしてその管理ミスがバグとなります。 「関数型言語」では再帰が処理の繰り返しを実現するための重要な手法の一つです。再帰では再帰の進行はその構造に基づいて自動的になされるので、プログラマがそれを管理する必要はありません。しかしその一方で、処理が多段階に渡る立体的なものとなるので、その動作の理解が平面的なループ処理に比べて難しいという欠点があります。習得には慣れが必要です。 Rubyは、手続き型言語と関数型言語の両方の側

  • Rubyのinjectで東京までの最短経路を解くYO!

    「すごいHaskellたのしく学ぼう!」の第10章に、Haskellを使って「ヒースロー空港からロンドンへの最適経路(optimal path)」を算出する例が出ていました。例ではその実現に畳み込み演算が使われていたので、前回同様、Rubyでもinjectを使ってこの問題を解いてみたいと思います。アヒル脳じゃなかなかHaskellの世界に入っていけませんよー。 オリジナルの解説(英語)とHaskellによる解法は、以下にあります。 Functionally Solving Problems - Learn You a Haskell for Great Good! 問題 問題設定は次のようなものです。 1. 成田空港(NRT)から東京(Tokyo)に向かう2の幹線道路A,Bがある。 2. 途中にこれらを橋渡しする3の地方道路Cがある。 3. 地方道路で区切られる各道路セグメントの通過に

  • mitukiii/creepy at master - GitHub

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    mitukiii/creepy at master - GitHub
  • rummelonp.com

    rummelonp.comNameKazuya Takeshima Blogrummelonp.hatenablog.com Mastodon@[email protected] Twitter@rummelonp GitHub@rummelonp

  • ネコでもテキスト分類器のRubyライブラリが生成できる便利ツールを作った - デー

    あまり細かいことは気にせずテキスト分類器のRubyライブラリを1コマンドで自動生成する便利ツールを作りました。 いろいろ迷走している間に。 gem install nekoneko_genでインストールできます。 なにをするものなのか、ちょっと分かりにくいので、例で説明します。 2ちゃんねるの投稿からどのスレッドの投稿か判定するライブラリを生成する 例として、2ちゃんねるに投稿されたデータから、投稿(レス)がどのスレッドのレスか判定するライブラリを生成してみます。 準備 まず gem install nekoneko_genでインストールします。 Ruby 1.8.7でも1.9.2でも動きますが1.9.2のほうが5倍くらい速いので1.9.2以降がおすすめです。 環境は、ここではUbuntuを想定しますが、Windowsでも使えます。(WindowsXP, ruby 1.9.3p0で確認)

    ネコでもテキスト分類器のRubyライブラリが生成できる便利ツールを作った - デー
  • Ruby で「Lisp脳」に迫る。 - YNote

    はじめに 再利用性の高いプログラムを書くにはどうしたらよいのだろう、と、いつも思う。 学生のころ、BASIC と C と Verilog を勉強して、社会人になってから Ruby をちゃんと勉強した。正確には学生のころも Ruby さわったことがあったんだけど、「正規表現が使えてセミコロンがいらない C 」くらいにしか思ってなくて、それよりも踏み込んで便利さを知ったのは、けっこう最近。 再利用性が高いプログラムを書くのに、Ruby はやっぱり便利だ。 Ruby が便利な理由としては「メタプログラミングが得意」とか「オブジェクト指向だから」、とか、いろいろ言われるけれども、個人的には「『DoA(Data Oriented Approach)』を気軽に実践できる」というのが大きいと思う。 DoA というのは「データ中心アプローチ」とも言われていて、データ構造の変遷を中心にプログラムを設計してい

    Ruby で「Lisp脳」に迫る。 - YNote
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • プログラミング言語「DT」 : As Sloth As Possible

    最近「Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~」を読んで、ついカッとなって言語処理系を作ってみた。それも、チューリング完全な、物の(ry まぁ、Whitespaceのトークンを置き換えただけだけど。 一応、上記のに習って、ソースコードをWhitespaceの命令セットを持つ中間言語にコンパイルしてVMで実行する形にしてみた。あとはパースする部分を適当に置き換えたコンパイラを作ればそれっぽいのが簡単に作れる。んで、いくつかネタ言語を作ってみたんだけど、その中でも一番しょーもないのがDT。DTでは次のようなソースを実行することができます。("Hi!\n"を出力する) 「○○くんて、もしかして童貞?」 「どどど童貞ちゃうわっ!どど童貞ちゃうわっ!どどど…童貞ちゃうわっ!」 「えー。その慌てっぷりが余計怪しなぁw」 「…どどどどど童貞ちゃうわっ!童貞ちゃう

    プログラミング言語「DT」 : As Sloth As Possible
  • Quine ruBy - まめめも

    略して QB 。 eval s||= %q(1;t= %w(s.gs ub!(/\e.* ?m/,"");[ [ 0x26e885c a844a879e27 a,519,48, 5 , 9],[20182686,600,48,5,1],[4366,611,48 , 5 ,15],[432803624050570,533,0]].map { | r,m,*d|s[m+=r%74,0],r="\e[#{d*";"}m", r /74while(r>0)};puts((z=32.chr)*5+"eval#{z *39}s||=\n#{z*5}%q(#{(1+n=s.to_i)%3}#{s[1 ..- 1]})\n\n"+z*9*n+"5YOV44GvUnVieWlzdO OBq +OB quOBo+OBpuOBj+OCjOOBo+OBpuOAgeOBjeOBo eOC k+OB qOOBi um

    Quine ruBy - まめめも
  • AnimeFace-Rubyを修正した - デー

    目の色の結果が精度悪いほうから1色しか取れていなかったので、 Perl版と同じように4色取るようにしたのと、色の結果をMagick::Pixelで返すように変更しています。 http://www.udp.jp/software/AnimeFace-Ruby.tar.gz バージョンを振っていないのでとても分かりにくいですが、中身が変わっています。 検出した顔の目の色を変える例 あと関連してAnimeFaceの目の色を使って検出した顔の目の色を変える例を書きました。 $ ruby eyecolor.rb milky.jpg toizu.gifとすると、 のような目の色が変わるGIFアニメになります。 もともと@ichiyonnanaさんがアイコンの目の色を回しているのを見て、これAnimeFaceでやっているのかなーと思って テキトウに目の色の抽出のマズイ部分について述べたりしている間にRu

  • Webサーバ不要、40行程度のスクリプトひとつで動かせる Gyazoサーバー(クローン)を書いた - 今日もスミマセン。

    WEBricで動かせるようにしたので、たかだか40行程度のスクリプト一個で済ませることができてしまった。やっぱりRubyサイコー。 Gyazo + WEBric で Gyabricと呼んでみる。 とりあえずGistに貼っているので、お好きなように...。 Linux(FedoraCore6?くらい?)で動作確認済み。特別なことはやってないんで、Rubyが入っていればWindowsとかMacとかでも動かせるはず... コード 使い方 以下、簡単な使い方。 1.適当なディレクトリに上記のスクリプトを入れる。(たとえば /home/snaka/gyazo とかでもオケ) 2.エディタでスクリプトを編集 ### CONFIGURE ###################################################{{{ HOST = 'xxx.xxx.xxx.xxx' # yo

    Webサーバ不要、40行程度のスクリプトひとつで動かせる Gyazoサーバー(クローン)を書いた - 今日もスミマセン。
  • Ruby による Web/データベース・プログラミング

    kkaneko.com 2025 著作権. 不許複製 プライバシーポリシー

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 僕たちが待ち望んでいたRubyスクリプトをデーモン化する方法 - http://rubikitch.com/に移転しました

    Rubyでは、簡単にデーモンが記述できる。その方法は簡単!Ruby 1.9だと Process.daemon と書くだけだ。その行の後は制御端末が切離され、デーモンとして実行される。Ctrl+Cで終了できないので、永遠に実行を続けるスクリプトは「pkill -f」などで殺す。 既存のスクリプトをデーモン化するには、この一行を加えればいいだけなのだが、常にデーモンにしてしまうとデバッグが困難になってしまう。そこで、テスト時はふつうに実行して、普段はデーモンにしてしまえばいい。その方法もまた簡単!上の一行を daemonize.rb というファイルに保存すればいい。だけどこれだけだとつまらないので、ついでにRuby 1.8にも対応させてみる。 if Process.respond_to? :daemon # Ruby 1.9 Process.daemon else # Ruby 1.8 req

    僕たちが待ち望んでいたRubyスクリプトをデーモン化する方法 - http://rubikitch.com/に移転しました
  • 21 Ruby Tricks You Should Be Using In Your Own Code

    Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news. Writing for Ruby Inside, I get to see a lot of Ruby code. Most is good, but sometimes we forget some of Ruby's shortcuts and tricks and reinvent the wheel instead. In this post I present 21 different Ruby "tricks," from those that most experienced developers use every day to the more obscure. Whatever your level, a refresh

  • Queueを使ったワーカースレッド - うなの日記

    Queueを使うとワーカースレッドが簡単に作れます。 ワーカースレッド(=仕事をするスレッド)は、キューから順番に仕事を取り出して実行するスレッドです。 これとは別に定期的に仕事を積むスレッドがいて、 ワーカースレッドは↑から仕事が積まれた場合にそれを取り出して実行します。 仕事がなければ、積まれるまで待つという動作をします。 ここで、キューへの仕事の追加と、キューからの仕事の取得は、別のスレッドで行われるため、同期制御が必要になります。 Queueを使うと、仕事を積む人とワーカースレッドの同期制御が内部で隠蔽されるため、外側での同期化なしにワーカースレッドを作ることができます。 QueueのAPIはpopとpushがあります。(他にもあるけど) Queue#popで要素を取り出します。このとき、queueが空の時、呼出元のスレッドは停止(ブロック)されます。 Queue#pushで要素を

    Queueを使ったワーカースレッド - うなの日記
  • Rubyで簡単にワークパイルを実装 - Hello, world! - s21g

    ワークパイル(Work pile)は、並列処理の為のアルゴリズムの一種です。 lucille 開発日記: マルチスレッド化: ワークパイル 簡単に云ってしまえば、ワークパイルはサーバ/クライアント機構と似たようなもので、ジョブを処理するスレッド部分ではマスタースレッドから仕事(ジョブ)を受け取って処理し、仕事がなくなるまでループするというものです。 いわゆる生産者消費者問題を解決する手法の一つですね。 ちょっとサンプルコードを見てもらったほうがはやいかも。 workpile.rb 1  require 'thread' 2 3  class Workpile 4  def initialize(num_workers) 5  @queue = Queue.new 6  @workers = ThreadGroup.new 7 8  # Spawn worker threads 9  num