Ruby で超簡単な CGI

エラーが出て全然わからない。 $ ruby test_webrick.rb [2020-04-01 22:31:56] INFO WEBrick 1.6.0 [2020-04-01 22:31:56] INFO ruby 2.7.0 (2019-12-25) [x86_64-linux] [2020-04-01 22:31:56] INFO WEBrick::HTTPServer#start: pid=15497 port=19681 [2020…

ABC159

https://atcoder.jp/contests/abc159 過去問。 A: The Number of Even Pairs 偶数から2個か奇数から2個取ればよい。 #x個の中から2個取る組み合わせの数 def c(x) return 0 if x == 0 || x == 1 x * (x - 1) / 2 end n, m = gets.split.map(&:to_i) puts c(n…

ABC158

https://atcoder.jp/contests/abc158 過去問。 A:Station and Bus s = gets.chomp puts (s == "AAA" || s == "BBB") ? "No" : "Yes" B:Count Balls n, a, b = gets.split.map(&:to_i) blue_ball = (n / (a + b)) * a remainder = n % (a + b) blue_ball += (…

パナソニックプログラミングコンテスト2020

https://atcoder.jp/contests/panasonic2020 過去問。 A:Kth Term ary = [1, 1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 5, 1, 2, 1, 14, 1, 5, 1, 5, 2, 2, 1, 15, 2, 2, 5, 4, 1, 4, 1, 51] puts ary[gets.to_i - 1] B:Bishop HかWが 1 の場合を忘れていた。 h, w = g…

BunsenLabs Hydrogen apt error

$ lsb_release -a No LSB modules are available. Distributor ID: BunsenLabs Description: BunsenLabs GNU/Linux 8.9 (Hydrogen) Release: 8.9 Codename: bunsen-hydrogen W: 署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデック…

RubyGem "gdk3" が Linux Mint にインストールできない

Linux Mint 19.3 に gem "gtk3" をインストールしようとしてハマりました。Gem "gdk3" がインストールできない。正解はここ。 $ sudo apt install libgtk-3-devこれでした。

RubyGem "gobject-introspection" が Linux Mint にインストールできない

Linux Mint 19.3 に gem "gtk2" をインストールしようとしてハマりました。 Fetching gobject-introspection 3.4.1 Installing gobject-introspection 3.4.1 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. cu…

端末を特定のディレクトリで立ち上げる(Ubuntu)

$ gnome-terminal --working-directory=/path/to/dir

Linux の Thunderbird の移行

元のデータ保存先は 922vkyux.default で、これをコピーしてきて続けて使いたい。しかし default-release とか、よくわからないことになっている。Linux インストール時の .thunderbird/profiles.ini の内容は [Profile1] Name=default IsRelative=1 Path=o2…

キーエンス プログラミング コンテスト 2020

https://atcoder.jp/contests/keyence2020 過去問。 A h, w, n = readlines.map(&:to_i) puts (n / [h, w].max.to_f).ceil B imos法かと思ったが、ちがっていた。 n = gets.to_i data = n.times.map {gets.split.map(&:to_i)}.map {|x, l| [x - l, x + l]} r…

ABC151

https://atcoder.jp/contests/abc151 過去問。 A puts gets.chomp.succ B n, k, m = gets.split.map(&:to_i) sum = gets.split.map(&:to_i).inject(&:+) target = m * n - sum result = case when target < 0 then 0 when target > k then -1 else target en…

ABC152

https://atcoder.jp/contests/abc152 過去問。 A n, m = gets.split.map(&:to_i) puts (n == m) ? "Yes" : "No" B a, b = gets.split.map(&:to_i) result = a.to_s * b tmp = b.to_s * a result = tmp if result > tmp puts result C これはすぐに思いついた…

演奏家 / 作曲家

作曲家 グリゴール・ハチャトゥリアン Grigor Khachatryan (1986-) (NML) リチャード・ダニエルプール Richard Danielpour (1956-) (NML) 指揮者 山田和樹 (NML) 弦楽四重奏 ドビュッシー四重奏団 Quatuor Debussy (NML) ミロ・クァルテット Mir…

AOJ(問題集)23

0220 Binary Digit A Doctor Loved 小数の2進表現かあ。勉強になるなあ。なお、10進表現で循環小数でなくとも、2進表現で循環小数になる場合がある。 def calc(r, str = "") return str if str.length > 4 a = r * 2 b = a.to_i str += b.to_s c = a - b if …

Ruby でタイマーを作った

Gem 'kaki-utils' に入れた。 timer.rb module Utils #簡易タイマー def timer(minutes) end_time = Time.now + (minutes * 60).to_i while Time.now < end_time print "\e[2K\e[1G" + "left: #{(end_time - Time.now).to_i} sec." sleep(1) end Utils.bell …

(個人的)LaVie の Ubuntu 18.04 のファイルシステムが死んだので修復

Ubuntu が立ち上がらなくなってしまったので、Kubuntu のインストール・ディスクをお試しモードで立ち上げて修復する。Ubuntu は /dev/sda3 だということを確認して、fsck で修復。 kubuntu@kubuntu:/$ umount /dev/sda3 kubuntu@kubuntu:/$ fsck /dev/sda3 …

Ubuntu で unattended-upgrades を無効にする

apt upgrade とかが出来なくなるので、unattended-upgrades を無効にしたい。 $ sudo apt install -y unattended-upgrades $ sudo dpkg-reconfigure --priority=low unattended-upgrades Replacing config file /etc/apt/apt.conf.d/20auto-upgrades with new…

AOJ(問題集)22

0210 The Squares むずかしかった。何とか自力で出来た。 Table = %W(E N W S) Man = Struct.new(:x, :y, :dir, :next_x, :next_y) do def next dx, dy = [[1, 0], [0, -1], [-1, 0], [0, 1]][self.dir] self.next_x, self.next_y = self.x + dx, self.y + d…

Zork を Linux で遊ぶ

大昔のテキスト・アドヴェンチャー・ゲームである「Zork」を、Ubuntu 系で遊ぶ仕方です。まず、以下でゲーム用のインタプリタをインストールします。 $ sudo apt-get install frotz ゲームのデータは以下にあります。ダウンロード・展開して下さい。 http://…

AtCoder/ABC138

https://atcoder.jp/contests/abc138 A - Red or Not puts (gets.to_i >= 3200) ? gets.chomp : "red" B - Resistors in Parallel gets as = gets.split.map(&:to_i) puts Rational(1, as.map {|i| Rational(1, i)}.inject(:+)).to_f C - Alchemist gets as …

ある双曲線の整数解

36*x^2-4*x-71*y^2+8=0 の整数解の導出。Ruby でできるだけ解いてみる。 solve.rb dir = [[1, 0], [0, 1], [-1, 0], [0, -1]] x = y = 0 step = 1 f = ->{p [x, y] if 36 * x ** 2 - 4 * x - 71 * y ** 2 + 8 == 0} add = ->(i) { dx, dy = dir[i] x += dx y…

AtCoder/ABC137

A - +-x a, b = gets.split.map(&:to_i) puts [a + b, a - b, a * b].max B - One Clue k, x = gets.split.map(&:to_i) puts [*x - k + 1..x + k - 1].join(" ") C - Green Bin words = gets.to_i.times.map {gets.chomp.chars.sort.join}.group_by(&:itself…

AtCorder/ABC(その1)

ABC001 A - 積雪深差 puts gets.to_i - gets.to_i B - 視程の通報 ans = case (m = gets.to_i) when 0...100 then 0 when 100..5000 then m / 100 when 6000..30000 then m / 1000 + 50 when 35000..70000 then (m / 1000 - 30) / 5 + 80 else 89 end puts s…

AOJ(問題集)21

0200 Traveling Alone: One-way Ticket of Youth until (given = gets.split.map(&:to_i)) == [0, 0] n, m = given edge = Array.new(m) {[]} h = Array.new(m) {[]} n.times do a, b, cost, time = gets.split.map(&:to_i) a -= 1 b -= 1 edge[a][b] = edge…

E: ロック /var/lib/dpkg/lock-frontend が取得できませんでした - open (11: リソースが一時的に利用できません)

追記 ここへいらっしゃった方は、たぶん unattended-upgrades のせいで apt が使えないのだと思います。以下を見ることをお勧めします。 marginalia.hatenablog.com Ubuntu で apt を使おうとしたら以下が出る。 E: ロック /var/lib/dpkg/lock-frontend が取…

Windows 8.1, Ruby 2.6.3 に gtk2

Windows 8.1, Ruby 2.6.3 に gem 'glib2' が入らない

Ruby 2.6 と RubyInstaller2

ridk use というコマンドが使える。 C:\Users\知生\Documents\code\Ruby>ridk use 1 - C:/Ruby25 ruby 2.5.5p157 (2019-03-15 revision 67260) [i386-mingw32] 2 - C:/Ruby25-x64 ruby 2.5.5p157 (2019-03-15 revision 67260) [x64-mingw32] 3 - C:/Ruby26 r…

散歩

動画の切り出し

ffmpeg を使う。開始5分の時点から1分間切り出す。ついでに mkv から mp4 へ変換。時間指定は「hh:mm:ss」という形式でも OK。 $ ffmpeg -ss 300 -i a.mkv -t 60 a1.mp4「-ss」が前に来るようにする。動画の連結はこちら。 ※参考 FFmpegで素早く正確に動画を…