ミリ秒までの引き算(Ruby)

00:12:34.56

 とかいう時間を示した大量のデータから一括して 10 秒減らすとかは、

Time.parse("00:12:34.56") - 10

 とかでいけるとレシピブックにあったので、そうかそうかと。

 で、その結果を同じスタイルで文字列にしたいと思ったのだけれど、strftime() のところを見ていたらミリ秒のところがない。

 さほど調べずに、ではそのあたりは自前でどうにかするかといろいろやっていた。

 ところがあらためて調べてみたらちゃんと %L とか %N とかあるとわかった。しかも、%N については桁数指定も可能とある。

 ということで、

strftime("%T.%2N")

 とでもすればよいことがわかった。これでミリ秒単位まで増減が楽になった。

| | コメント (0)

Ruby World Conf 2023 の配信を見る

 すっかり忘れていたのだが、とみたさんが向かうとかいうツイートとか流れてきて、そういえばそうだったのか、と思い出して「配信あるのかな」と調べてみたら案外あるということで、では見てみようかと準備してだいたい見た。なかなかよかった。

 Matz のキーノートはまあ安定のという感じだったけれど、emorima さんの自身が Ruby やそのコミュニティに関わるようになった経緯などを振り返りつつ、現状のエモリハウスであったり Rails Girls であったりの紹介などもして、もっと女性のエンジニアが参加しやすいようにであったり、そもそもの女性エンジニアがもっと増えるとよいなということであったりの話がとてもよかった。

 Rails Girls の究極の目的は、存在が不要になることだというのは重要な目的だなと納得もしたし、感心もした。

 咳さんの ERB の話も分かりやすいし、面白いしでよかった。ご健在というのもよい。

 医療関係での事例紹介というのもなかなかよかったし、igaiga さんの RuboSensei もおもしろそうだった。とはいえ、Windows 環境だとちょっと現状は難しいのかなとあとで思ったりした(Ruby は WSL 上の Ubuntu にはいっているだけなので)。

 松本市開催の RubyKaigi の参加が無理だったので、もうこの手のに参加するということはこのままないままになるだろうなと漠然と思う。そもそもそこまで Ruby を使っているというユーザーではないというのもある。

 あ、さすがはプロのお仕事という司会の石原さんは素敵だった。

(とみたさんは、あるいは SmartHR 社枠で参加されたのかな?)

 

| | コメント (0)

Ruby で名簿照合させる

 とある名簿の照合のためにスクリプトを書く。しばらくぶりなので、本当いろいろ忘れてしまっているので、ほぼ毎度本を出してきたりしてあれこれ確認しては進めている。

 本来の名簿データがデジタルで入手できていれば一番楽ではあるのだけれど、わざわざ印刷されたものをもらってまた入力しなおすという作業が一番手間だったのかも。

 さらに、一応見た目での漢字の違いには注意を払って変換するようにしたけれど、あくまでも見た目なだけなのであるいは細かなところで差異があるデータにしている可能性がないとは言い切れない。とはいえ、まあ、ひとつの環境で入力しているので統一された異なり方(見た目が違うという点は再現できている)なので、まあ用はなすだろうと。

 多少うまく動作しなかったりで修正したり、最初は配列にいれていたのでやはりわかりにくいのでクラス定義をつけたり。相互にデータを補完するようなスクリプトも追加したり。一応期待の動作はしてくれた様子。

 とはいえ、まだこの先が手作業なのだなあと。まあ、じっと紙を見比べるなどという無為な時間を費やさずにすむだけましということで。

 ありがとう、Ruby。

 

| | コメント (0)

WSL の Ubuntu アップグレードができないので入れ直し

 Surface Pro 6 にいれていた WSL の Ubuntu をアップグレードしようとしたらできなかった。18.04 だった。

 どのみち Ruby 環境くらいとしてしか使っていないので削除してあらためてインストールしなおした。

 昔と違って今は、

wsl --install

 だけで最新の 22.04 をいれてくれるのでむしろ面倒が少ない。

 もっとも、その後に rbenv いれて、ビルドに必要なあれこれをいれて(だいたい忘れているのでエラーがでて追加でライブラリを入れたりするのを繰り返す)、Ruby をいれて。

 次回はアップグレードでいけるのだろうか。

 

| | コメント (0)

zlib1g-dev

様々な事情で WSL のインストールをやり直していると、rbenv とかも入れなおすことになって、で、いろいろエラーがでてしまう。

きょうもきょうとて「zlib.h が見つからない」みたいにいうので、そういえばそういう手合いがあったなあとおぼろげな記憶をたどってどんな名前だっけと試すが軒並み違う。

ふつう「zlib-dev」とかでしょ? とか思ってしまったりもするが、なにかいろいろ事情があるのでしょう。

ということでなんとか Ruby のインストールまでこぎつける、ということを数回繰り返していたりする。

そして、きっと数か月もすればまた忘れてしまって「なんだったかな」と思うに違いない。ここの記憶すらも。

 

追記:

あと、libyaml-dev に libssl-dev もだった。

| | コメント (0)

RubyKaigi in 松本市

本来ならば 2020 年 4 月に開催されていたはずの Rubykaigi in 松本がきょうから開催。

ちょうど新型コロナウィルスの蔓延がはじまってしまった時期でもあり、いろいろなことが極度に慎重に運ばれはじめたころだったのもあり、ひとまず 9 月に延期され、結局配信による開催という形になった。

参加しやすい距離ということもあってチケット発売早々に購入していたのだけれど、結局払い戻しされた。仕事もしっかり休む予定でいたのだけれど空白ができてしまったのだった。

翌年の三重も同様の経過をたどり、昨年あらためて開催された。そして、松本も同様に今年あらためてリアル開催という運びとなった。

が、今年は少しばかり先の予定がわからないこともあったのでチケット購入はあきらめ。近年は配信もないので、まああとでスライドを見るくらいかな。

昨日のうちから松本へと向かう Rubyist のツイートが散見されたりしていて、きょうも移動組が見える。まあ、行くだけなら行けなくもないという状況にはなったが、いまさらだしなあ。

この先、これ以上身近で開催されることなどないであろうから、今後も参加することはなく終わるのだろうな。残念なようでもあり、一方では昨今またかつてのような熱狂的なお祭り騒ぎでもあるから、まあ遠慮しておくのがよいのかもしれないとも思う。

| | コメント (0)

なるほど、これが Git か

実のところ Git によるバージョン管理というのはほぼやったことがなかった。昔むかし、ほんの少しだけ触ってみたくらい。本も軽いものを読んだりはしたのだけれど。

というのも、まあそういう必要性があるようなものを書くことがほぼないというのもあるのか、と思ってはいた。

今回、とある名簿を照合するスクリプトを書くにあたって VS Code と WSL ターミナルを使っていたのだけれど、少しばかり、なんとなくで Git を使ってみることにしたら、ああ、なるほどこういうことかという感じにはなった。

修正しようとするときにブランチ切っておけば確かに安心なのだな。すぐもとに戻せるし、違いもわかりやすい。

まあ、テスト実行してファイルが更新されたりすると都度更新されたからコミットする? みたいになってしまうのは面倒な気がしないでもない。そのあたりはまあ使い方なのかな。

とりあえずスクリプトは期待通りに動作しているようでなにより。

| | コメント (0)

プログラミング言語 Ruby 30 周年だそうなので

こちらにちょっと書いておく。

使い始めたのはたぶん 2004 年くらいから。アスキーからはじめての Ruby 本がでたときには書店で目にして「ほう、ほう」と思ったりしていたのだけれど、買わずにいたのが少し悔やまれる。その頃から存在は知っていた。

とはいえ、職業プログラマではないので、日常的な自分の好みで使う程度。たいしたものは書いていない。

家計簿を Excel でつけているので grep ツールを。このココログの記事一覧とか読書記事の一覧生成とか。少し大掛かりなものではとある電子ブック的なもののツールを Re:VIEW を参考にしつつ作ってみたことも。

昨年は PC-8801 シリーズの中間コードで保存された BASIC プログラムを ASCII に戻すためのツールを書いてみたり。

日常的にはデジタルカメラで撮影した画像データのファイル名を一括して変換するものとか。

まあ、たいそうなものはなにひとつない。

とはいえ、なにかちょっとしたことを楽にやりたいなあと思うとだしてくるのが Ruby ではあって、だからすっかり忘れているので常に本を手元においてというスタイルではあるのだけれど、助かっているというのは事実だし、書いているのは楽しい。

Ruby on Rails の走りに乗ったときもなかなか面白かったし、それが縁で本の執筆レビューなどということにも参加させてもらったのもよい思い出。

これからも素人のちょっとしたツール書きに使い続けてはいくのだろうと思う。

Ruby Kaigi にも一度くらい参加してみたかったけれど、もう無理かなあ。松本開催を逃したのが痛い。

ではでは、これからも。

 

| | コメント (0)

88 環境はひとまず終了

つづき。

結論から言えば、ほぼあらたなことはなし。以前、エミュレータ環境にするためにはじめて作業したのは、おそらく 15 年くらい前。保管状況は決して悪くはないと思うものの経年劣化は否めず。ごく一部のものを除いて同等でしかなかった。

唯一といっていいくらいのは、書籍付録のディスクのひとつが全滅だったのを復旧することができたことくらい。それでも、壊れてしまっているらしきファイルはひとつふたつあったのでこれはまあ仕方ない。幸い、書籍付録のもので、どうしてもとなればそちらにソースリストがある。

まあ、いまさら 88 用のアセンブラであれこれということでもないので、そこまですることはたぶんない。

過去のものだと起動できても、あらたに転送したものではまったく起動できずというアプリケーションソフトもあったり。

プロテクトのかかったゲームは相変わらず無理であるし。

幸いにして作成したプログラムは十分機能を果たしてくれたのでよいのだが、これにて出番はないという短命。

そもそも、アスキーセーブしなおせば事足りるのだから。

N-DISK BASIC もあるけれど、こちらは数が少ないこと、中間コードが少し異なるらしいが資料がないこと、などからあっさりとセーブしなおしで。

さて、次は Internet Explorer が終焉を迎えたというのもあるので 98 環境の再整備ということか。Windows 3.1、Windows 95 環境はエミュレータにしっかり移せていないので。DOS 環境も一部動作しないままのもあるのでそのあたりも。

実機もまだ動作するものの、やはりこちらも一部環境がうまく動作しないようになっているので、あわせて整備しておきたいようにも。

まあ、いまさらもいまさらではある。

もう、CONFIG.SYS とかまったくわからなくなっているしなあ。

 

追記:(2022/07/12)

Github にコードを置いた。

 

| | コメント (0)

謎のオフセット値?

つづき。

基本的な変換そのものは、ほぼ問題ない感じなのだが、妙なエラーになるファイルが見つかって、バイナリで見るとどうも先頭のリンクポインタの数字がおかしい。

どうにかそれらしいところを追っていくと、どうやらアドレスにオフセット値とでもいうのか付加されているという感じ。

試しにそれを考慮して追ってみると良さそうなので、オフセット値と思われる分を差し引いて処理するようにしたところきれいに変換できた。

が、別のファイルでは異なるオフセット値がはいっていて、プログラム中で指定していたのを修正することに。optparse を使ってオプション指定できるようにした。これで少し楽になるか。

といってもその手のファイルはわずかではあったけれど。いずれにしてもなぜそんなものがついたのかが謎。

ということで次々と変換できたのでおおむね作業は終わりに近づいた。

残りのうちで N-DISK BASIC をどうしようかとは思う。資料もないし。ファイルがそもそも少ないし、アスキーセーブしなおせばよいか。

 

| | コメント (0)