soukouki’s diary

誰かの役に立つ記事をかけたらいいなあ

pdfをネガポジ反転するワンライナー

ImageMagickを使ってpdfをネガポジ反転するワンライナー 270ページの文章の例。ページ数に合わせて269の部分を変える必要があります。 for i in {000..269}; do convert -density 300 "origin.pdf[$i]" -alpha remove -negate np${i}.png; done; convert np*…

Simutrans-Extendedの機能・datパラメータ紹介(信号・信号扱所編)

Extendedで追加された機能の紹介 片方向信号 方向予約 信号扱所 信号現示 許容信号機 振り分け信号 ステーション信号 信号・運転方式の紹介 無閉塞運転 時間間隔方式 電信時間間隔方式 スタフ閉塞方式 タブレット閉塞方式 双信閉塞方式 軌道回路方式 車内信…

Simutrans-Extendedの機能・datパラメータ紹介(産業・貨物編)

Extendedで追加された機能の紹介 地域 産業のパラメータに対してのヒント 訪問者・居住者・労働者 貨物の収益について datパラメータの紹介 産業向けのdatパラメータ 全般 climates:{S} location:{S} distributionweight:{S} max_distance_to_consumer:{E} m…

Simutrans-Extendedのdatパラメータ紹介(一部)

この記事はSimutrans Advent Calendarの11日目の記事です。 adventar.org 前座 soukouki.hatenablog.jp 本編 soukouki.hatenablog.jp 本当は全種類やりたかったんですが、さすがに大遅刻をかましているので諦めました。 soukouki.hatenablog.jp (2022-12-25)…

Simutrans-Extendedの機能・datパラメータ紹介(軌道・車両編)

Extendedで追加された機能の紹介 軌道の摩耗と更新 橋の上の軌道の更新 水路の改善 軌道の制約 車両の改造(アップグレード) ケータリング カラーリング(livery) datパラメータの紹介 車両向けのdatパラメータ 全般 waytype:{S} range: {E} axles: {E} axle_l…

datファイルとtabファイルの記述について

simutransのソースコードを読んで、tabファイルまたはdatファイルの記述方法と、pakを作成する際のdatファイルの項目について纏めたものになります。 この記事についてはstanderdとextendedでほぼ同じ内容になります。 誤りについてはsou7/soukoukiへ連絡い…

詳説みだい駅

adventar.org Simutrans Advent Calendar 2021の21日目の記事です。 昨日は あのKTOK さんのSimutrans流行語大賞2021、明日は 硫化西部 さんのNSにおける分散ターミナルを生かした都市開発・交通網構築だそうです。 みだい駅とは みだい駅とはみだい地方の中…

会津大生はどこに住んでいるのか

会津大生がどこらへんに住んでるのか、適当にまとめたものです。 大学の近さ、お店の近さ、家賃の安さは、星1-5つの5段階評価でつけています。主観的な評価なので、そこまで参考にならないかも知れません。 私は積雪をまだ体験していないので、積雪時の情報…

Extendedのハジメ

Standerd版やOTRP版をすでに遊んでいる方に向けて、Extended版を始めるにあたって必要そうな知識を、それなりにそれっぽくまとめたものになります。 また、良さそうな記事があればそちらに丸投げします。 Extendedの仕様について熟知しているわけではないた…

ダイヤがなくてもできる!連結プレイ

シムトラカンファレンス2021秋で発表した内容から抜粋した記事になります。 注意事項 この発表はOTRPv23やv29などのシムトランス本体で動作する内容を扱っています。基本的にstanderd版には存在しない機能を使います。またOTRPのバージョンによっては動かな…

車両基地の分類

はじめに 手前型 奥型 折返し型 X型 玉突き型 はじめに Simutransにて、運行頻度の偏りをなくすために使う車両基地の分類を考えてみました。 最新バージョンのOTRPやExtendedでは、ダイヤ機能によって運行頻度の均一化ができるようになり、車両基地を使わず…

Rubyに標準でついてくるLoggerは、Windows上かつマルチプロセスのとき、ログローテーションがうまくできないお話

ハマったので久しぶりに記事を書きました。 使用しているLoggerはlibrary logger (Ruby 2.7.0 リファレンスマニュアル)です。 ある日プログラムを書いていると、 log writing failed. closed stream log shifting failed. closed stream ... .. . という警告…

信号パターンをいくつか紹介・解説するよ!

この記事は、Simutrans Advent Calendar 2019の6日目の記事です。 adventar.org OTRP v22.3(Standerd版120.4.1相当)で動作を確認しています。信号については概ねStanderd版と同じ動作ですが、多閉塞信号は動作が異なります。 はじめに 信号機について ATC信…

グリボト!とBlockKingの紹介

自分が作ったDiscordBotの紹介です。 招待したい場合は、 自身がサーバーの管理者権限を持っている場合 招待urlにアクセスすると導入する画面が出てきます。権限についてはできる限り絞ってあります。 持っていない場合 サーバーの管理者権限を持っている人…

鉄道とバスで大内宿に行くときのメモ(2019-夏)

(ブログ書くのいつぶりだろう) 役立つかもしれないし役に立たないかもしれない情報集です。少なくとも自分は欲しかったです。 基本的に関東方面から向かうことを前提に書いています。 東武線特急リバティは下今市より北は特急券がいらない railway.tobu.co.j…

ファイルのダウンロード時に、ものすごい重くなる問題への解決策

ファイルをダウンロードするとき、すごく重い・・・数秒間フリーズしませんか・・? ※アップデートを忘れたため少し前のバージョンになるので、最新バージョンだとなにか変わっているかもしれません。 ダウンロードタブの右側のスクロールバーを上にスライド…

電卓をワンライナーで書きたい!

さて、4ヶ月ぶりの更新です。 まぁ、やることはタイトルのとおりです。 改行、セミコロンと、セミコロンに近いもの((a=2)&&([a,a]) #=>[2, 2])は縛っていきます。 まずは逆ポーランド式電卓から f = ->(s){->(t){(t==s)? s : f[t]}[s.gsub(/(-?\d+) (-?\d+) …

Rubyで大きな値(数億桁)を扱うときのメモ

ある日。フィボナッチ数列の10億万番目とその前2つの値を計算して、割って黄金比を求めているときのメモ。 nilを代入しないとGCは片付けてくれない まぁ、メモリがそこまで逼迫することはあまりないと思うけど。 割り算ができない(浮動小数点数にできない) …

file_nameとfilenameはどっちが多い?

ある時、ふと疑問に思ったのです。 file_nameと、filenameはどっちがいいのだろうかと。 ふつう単語の間にアンダーバーを入れる記法だと、file_nameです。 ですが、filenameの方をよく見かける気がします。 ってことで、githubで検索してみました。 filename…

コンパクトなRubyのREPLを作ったよ!

コンパクト。悪く言ったら低機能。 irbやpryとシェルの相性が悪かったので。 github.com (作ったよ!って言う割には別リポジトリに数か月前からあるのは内緒のお話) 対応してるもの ローカル変数 マルチバイト文字 対応していないもの 定義途中の改行(Enter…

Rubyのヒアドキュメントの配列の書き方

普通のヒアドキュメント <<-EOS なんかいろいろ EOS メソッドがついたヒアドキュメント <<-EOS.length なんかいろいろ EOS ・・・配列のコンマはどこに置くんだ・・? 2回目のEOSの後ろ、2回目のEOSの次の行、3回目のEOSの前・・どれもうまくいかない メソッ…

Happy new year 2018!

あけましておめでとうございます。今年もよろしくお願いします。 ってみんな書いてるから検索エンジンで調べても出てこないんだろうなぁとw 12月の更新は1件だけ、しかもSimutransのしょっぼい記事。 まぁ、ボチボチやっていきます。 はっぴーにゅーいやー…

simutrans 2017-12-30の日記

あと2回寝るとお正月です。 ・・・また高度な詰まり方をしたなぁ・・・ 向かい合った車両基地でデットロックするとは・・ 理屈はわかるもののまさか起きるとは思ってなかった・・ 車両基地はそれなりの広さを取ったと思ったけどなぁ・・

てんとう虫🐞

🐞 今日はあったかいですね。 テントウムシが窓際に7匹・・網戸と窓の間も含めると9匹・・・まって、なんで窓の内側にいるんだい・・? ちなみに内訳は、 黒地に赤い丸のテントウムシが8匹と、 赤地に黒い小さめの丸が6個くらいあるテントウムシが1匹。 とりあ…

Ruby いろんなループ(トリッキーなもの含む)

ループと言いつつ、やっているのは1から10の整数の乱数を作って、そこから6以上の値はもう一度やり直す。というもの 言い換えると、途中脱出が可能な無限ループです。え?スタックオーバーフロー?・・・ 多分、最初のと最後(2018年11月24日追記分)がいいと…

LispでDiscordBotを作る!

wispというaltJSの方言(clojureに近い)を使い、discord.jsというライブラリを使って楽をします。 discord.jsは活発なライブラリなので、新機能とかが出てきても安心ですね! まずは、node.jsをインストール。 それぞれのライブラリをインストール npm instal…

メモ Ruby対数正規分布の乱数

(2017/11/16)あああタイトル間違ってましたぁ・・更新前に見た方申し訳ないです・・ 合っているかは自信ないです・・ ゲームの乱数くらいにお使いください。 require "random_bell" # http://pmsl.planet.sci.kobe-u.ac.jp/~seto/?page_id=316 # をRubyに移…

Ruby 呼び出せないメソッド

define_method("!bar", ->{"foo"}) p method("!bar") p method("!bar").call # 呼び出し方 !bar #< 呼び出せない こんなことができるとは思ってなかった ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32]にて確認

Hamlの組み込み

Hamlをテキストから直接実行したいときのメモ require "haml" template = <<'EOS' %p= a1 %p= a2*3 - a3.each do |i| %p= i**2 EOS haml_engine = Haml::Engine.new(template) puts haml_engine.render(Object.new, a1:123, a2:10, a3:[1, 2, 3, 5]) ヒアド…

Ruby:実行中のソースコードのファイルがあるディレクトリ

いいページがあるものの、検索でなかなか引っかからないので自分でページを作ってみた。 d.hatena.ne.jp これのものです。 File.expand_path(File.dirname(__FILE__))