はてなキーワード: openとは
4月頭段階でこれじゃよ
臨床結果のページは増田においてなかったので適当にググってくれ
貼ったClinicaltrialsarena内にもあったはず
WITHDRAWN: Experimental Treatment with Favipiravir for COVID-19: An Open-Label Control Study
https://www.sciencedirect.com/science/article/pii/S2095809920300631
ついでに、論文の変更措置は「訂正」「懸念表明」「撤回」 があって、「撤回」が最も重い
ただ、こっちではアービドールと比較して好ましい治療と考えることができるとなってるね
Favipiravir versus Arbidol for COVID-19: A Randomized Clinical Trial
https://www.medrxiv.org/content/10.1101/2020.03.17.20037432v2
でもまぁいずれにしてもさらなる大規模臨床試験結果待ちってとこかな?
However, the small sample size of 340 participants, the comparison with lopinavir/ritonavir, whose efficacy to treat SARS-CoV-2 is questionable as reported in a separate clinical trial, as well as the addition of interferon-alpha without controlling for its efficacy separately, should lead to caution about the results until more data are available.
(Clinicaltrialsarena.comより)
あとレムデシビル推し。米国と中国はフェーズ3に入ったってさ。そりゃ催奇性強い薬でたぶん有効は避けたいよね
As for other Covid-19 treatment options being investigated, Gilead’s remdesivir, currently in Phase III in the US and China, is arguably the most promising drug and led to such strong demand for compassionate use that Gilead had to restrict access to pregnant women and children. Additionally, due to increasing pressure building up from non-profit public interest groups worrying about high prices and a long-term monopoly, Gilead asked the FDA to pull remdesivir’s orphan drug designation.
(Clinicaltrialsarena.comより)
大学の講義がリモートになった影響は良くも悪くもこれからもっと出てくると思う。
まず、来年度の講義は今年度の録画でよくね?となる。1年であまり変化しない分野に限るけど。あとは討論や質疑だけリアルタイムでやればいい。
録画講義を活用することで講師はいまよりもずっと多く複数の大学の講義をかけもちできるようになる。
そもそも学生の数も物理的制限が大幅に緩和され今の10倍くらいの人数を大学は受け入れられるようになる。
まあ今のCourseraとかMIT Open Coursewareに近づく感じ。所属や学位の概念は残るので棲み分けはされるだろうけど。
設備や試料が必要な研究はどうしようもないとしても、ゼミや自宅PCでできる研究はもうリモートで回ってるし。
よくわかんないけど人類の知性が向上するならそれもまたよしという気がしてる。
講師は自分の講義が録画かどうかは大学側にも受講する学生にも伝える理由は特にないことに気がついた。
ここ最近の COVID19Radar https://github.com/Covid-19Radar/Covid19Radar 上でのゴタゴタにより、開発者の @kazumihirose さんが https://twitter.com/kazumihirose/status/1274616019420471296 疲弊してしまいっているのを見て、(今回の揉め事の根本的な原因はソフトウェアがOSSとして公開されているのが原因ではないと思うが)いたたたまれない気持ちになったので書く。書いてみた結果ただのとりとめもないOSSへの愚痴になってしまった。
いくつかのOSSプロジェクトのメインコントリビュータとして関わっています。
私の周囲のソフトウェアエンジニアがOSSに対して以下のような意見を述べているのをよく聞く。
確かに、OSSは特定の企業に所属していないので特定企業の方針で運営が捻じ曲げられる心配がなく民主的で、細かい実装が気になったらソースコードを読むことが出来、顔も合わせたこともない優秀なエンジニアと議論を交わし共通のゴールに向かってともに開発を進められる。OSSは楽しい。
しかし一方、OSSメンテナのバーンアウトが近年問題になってきている(なんとなくここ数年で目につく数がなんとなく増えてきている)気がする。
というのも、OSSを運用していく上では楽しく優秀なエンジニアと開発をすすめるだけではなく、ドキュメントを読めば分かるようなことを質問してくる人、PR に対して changes required を下すと怒ってくる人、Twitter でこのライブラリは使いにくくて最悪だと罵ってくる人、こういった普通の会社ならカスタマーサポートさんがワンクッション挟んでくれる人たちに対しても開発者が直接対応しなければならない。
元々楽しくて始めた/関わり始めたはずのサイドプロジェクトだったのに、いつの間にか日々やってくる頓珍漢で再現環境のないバグレポートや、Issueも立てずに突然提出される意味不明なPRに対して、義務感で、就業後や土日の時間を削って、根気よくコメントを続けていると、何で貴重な自由時間をこんな訳のわからない連中のために使っているんだ?という気持ちになってくる。
実際、私の関わっていた一つのプロジェクトでは、もともと6人ほどいたアクティブなコントリビュータが徐々にプロジェクトを離れていき、(私を含めて)2人はメンテナンスに疲れてしまったのでしばらく距離を置くと宣言し休みを取っている(あまりに精神が回復したので戻れるのかは不明...)。
こういう現場を見ていると、手放しにオープンソース万歳!透明性最高!と言いながら自分自身は大してOSSに貢献してない人たちに対して苦い気持ちを覚える。
一方、私の関わっているもう片方のプロジェクトは非常に円滑に運用が回っていた。もうひとつのプロジェクトと何が違ったかというと、そちらのプロジェクトはいくつかの企業がソフトウェアエンジニアの業務時間の半分/全部をそのプロジェクトのメンテナンスに費やしていたのである。(何人かのメインコントリビュータが企業から出向する(?)する形で運用している)。
issueへの一次対応などの日々のつまらないタスクは業務でメンテナンスしてくれているエンジニアがやってくれるおかげで、他のメンテナが対応する必要のあるissueやPRは減り、みんなが開発やバグ対応に集中できている。業務でOSSに取り組んでいるエンジニアにストレスはないのかと聞いたところ、多少大変ではあるけれどお金をもらいながら自分の仕事をオープンにできるし、仕事だと思えば多少のストレスは我慢できる。とのことだった。
このプロジェクトに限らず、なんとなく長期間運用がうまくいっている大規模なOSSプロジェクトはだいたいどこかの企業が支援しているような印象を受ける(Facebook とか MS とか Google とか(大企業ばっかだな...))。もちろん全てのソフトウェア企業に大してOSSに大して大金をつぎ込めというのは現実的ではないが、open collective や github sponcers なんかに企業として少しずつでも寄付してくれたら、OSSコミュニティはもう少し良くなるんじゃなかろうか。
結局何が言いたかったかというと、エンドユーザー(OSS利用者)がめちゃくちゃ増えてきた昨今、個人レベルでそれなりの規模のプロジェクトをメンテナンスしていくのは最早厳しくなってきており、結局企業によるバックアップなんかがないと持続的な開発は難しいんじゃないかと思っている。
今日になって思ったより多くの方に読んでいただいて驚いています。あまりオープンインターネットで話しにくい話題だけど皆がどう思っているのか気になっていたので嬉しい。増田がブクマされても通知は来ないんですね(そりゃそうか)。
@bouzuya
まず焦点を当てている持続可能性が見出しから思い浮かべるものより狭いんだと思う。「最悪フォークすれば持続可能」みたいなのがぼくだと最初に思い浮かぶ
確かに、OSSの持続可能性という少し主語の大きいタイトルにしてしまったが、この文章はソフトウェアの持続性というよりかはOSSに携わる人のバーンアウトに対する憂いをつらつらと綴っているもので、ソフトウェアの持続性という意味では他にも色々やりようがある気はする。
また、私が目にしたうまく回っているのが企業による支援を受けたプロジェクトだったので、バーンアウト対策として企業による支援について述べたが、企業による支援がなくともうまく回っているプロジェクトは世の中にはいろいろあるだろうし、今後OSSは企業による支援がないとやってけないと決めつけるのは早合点ではあった。反省。(とはいえ問題意識は変わらないし、その一つの解決策が企業による支援だと思っているのも変わりない)。
---
自分の記事を読み直してみて、一番問題に感じているのはユーザーサポートの工数なんだなと分かったが、@mathane さんがその問題への一つの解答をつぶやいていた。
@methane
雑な質問やバグレポート(99%レポート者のミス)をする場所は、とにかくメンテナ以外の人が回答しやすい場所でしてもらう事が重要だと思う。
これは確かに。私はまだOSSコミュニティど初心者なので、こういうOSSをメンテナンスする上で重要なことをどんどん知りたい。
逆にステマくさく感じる.
ということで検証だ.Google翻訳,みらい翻訳,DeepLを比べてみたよ.
https://miraitranslate.com/trial/
https://www.deepl.com/translator#en/ja/
例文1: The heat wave gripping India has killed 2,330 people, officials announced on Tuesday, as meteorologists warned that monsoon rains could still be days away.
みらい翻訳>インドを襲った熱波で2,330人が死亡したと、複数の気象予報士が発表した。
ちげーよ."officials announced..." と "meteorologists warned..." をまとめてるんじゃねーよ.
Google翻訳>気象学者がモンスーンの雨がまだ数日離れている可能性があると警告したので、インドを取り巻く熱波は2,330人を殺しました、当局は火曜日に発表しました。
ちげーよ.「気象学者が~と警告したので、~を殺しました」→「ので」の使い方間違ってるよ.
DeepL>インドを握っている熱波は2,330人を殺した、当局は気象学者がモンスーンの雨がまだ数日であるかもしれないと警告したように、火曜日に発表した。
例文2: Sources said that after ticket sales fizzled for an intimate, $2,700-per-person, “just for women” meeting on Monday, the event was thrown open to men at the 11th hour, and the deadline extended to buy tickets.
みらい翻訳>情報筋によると、チケット販売が1人2,700ドルという親密な「女性専用」ミーティングのために月曜日に失速した後、イベントは11時に男性に公開され、チケット購入の締め切りが延期された。
Google翻訳>情報筋によると、月曜日に行われた「女性のためだけ」の1人あたり2,700ドルの親密なミーティングでは、チケットの売り上げが急減し、11時間目に男性向けにイベントが開かれ、チケットの購入期限が延長されました。
DeepL>情報筋によると、月曜日に行われた親密な、一人当たり2700ドルの「女性だけのための」ミーティングのチケット販売が頓挫した後、イベントは11時間目に男性にも開放され、チケットを購入するための期限が延長されたという。
みらい翻訳は日本語がおかしいな.どれも "intimate" を「親密な」って訳してるのがイマイチだ.
結論:どれもプロの翻訳者を置き換えるものじゃない.時間を掛けて単語調べながら翻訳できるような人が効率化のために使うツールだ.
DeepLがこれまでにない精度で翻訳をしてくれると聞いたので、ぬきたしの中のから好きなセリフを翻訳してもらいました。
翻訳前の日本語はBANの可能性があるのでなしでお願いします。
結果は以下の通りです。十分な精度があるようにも見えますが、ぬきたしの魅力であるドギツイ下ネタ要素を削除してしまうことがありました。
やはり、これからもまだ翻訳家の仕事はなくなりそうにありませんね。
Which mouth cunt is the one that's been talking nuptial?
What's with that face? What's that look on your face? Open your mouth cunt and give me an answer. Open your mouth and put a sir on before and after you open your mouth and spit out your cum. Got it, Tadpole?
OK! we will now begin our morning erection summit. Speak in the language of the dick here. I want you to listen to me like you do when you listen to a hypnotic voice, with a little pussy juice coming out of your eardrums to get a good eardrum passage. That's good!
Is this Tom? Yes, it's a dick.
The Groman Dam has broken and a man juice flood is brewing.
Now, I'm going to give the glans a thirty-three-seven beat so that you can prepare for the event with anal tightening and no illness or accident. It's "Anne Anne Hammett".
Impregnate her, impregnate her, Oraa! Get it up, get it up, get it up. Impregnate, impregnate, impregnate, impregnate, ora, ora, ora!
ヌプヌプ喋っているが、「talking nuptial」と翻訳されたのは狙っているのかなんなのか。nuptialは結婚の、交尾のの意味。
キンタマジャクシ!がTadpoleと、単なるオタマジャクシ呼ばわりされるのは心外。しかし、こういう固有名詞じみた言葉の翻訳は難しいでしょうね。
アンアンハメ拍子が、It's "Anne Anne Hammett"と、訳されてしまうのも、やはり固有名詞的な翻訳の難しさなんでしょうね。
下記の記事に10Gsで提供されたルータの情報が載ってなかったので利用中の自分が調べてみた。
https://qiita.com/notoken3331/items/ca228e2ac28ac7ea4879
メーカー | Huawei |
製品型番 | HN8255Ws |
まず情報として、ONUに割り当てられたIPv6のプレフィックスは/56だった。
ルータ機能でのWAN側インターフェースではおそらくそれより細かく切ったプレフィックスでIPv6アドレスが割り当てられてるはずだが
HN8255Wsの管理画面では確認する方法がないように見受けられる。
セキュリティ関連の設定については、詳細設定 → セキュリティ設定 → DoS設定に下記のチェックボックスがありデフォルト全有効
SYNフラッド攻撃の防止:
LAND攻撃の防止:
Smurf攻撃の防止:
WinNuke攻撃の防止:
グローバル ー HN8255Ws(ONU兼ルータ) ー NetGear GS110MX ー PC(Windows10)
iphone X (au) Wifi無効設定で iNetToolsアプリにて疎通確認及びポートスキャン
ちなみにauのLTE契約のみでテザリングでPCをぶら下げる場合、PCにはIPv4プライベートアドレスと
IPv6リンクローカルアドレスしか振られないので、テザリングPC端末からIPv6疎通確認は実行不可。
LET NET for DATAを契約すればテザリングPC端末側にもIPv6グローバルIP振られるらしいんだが、
わざわざこのためだけに契約変更する気にはならんのでテザリングでの検証は却下。
そのため、iphoneのアプリで疎通確認可能なiNetToolsを疎通確認用プログラムとして選定。
iNetToolsというアプリだとポートスキャンの時にプロトコル指定が出来そうにないのでポート番号のみを指定した。
TCP、UDP両方チェックしているのか、どちらか片方しかチェックしていないのかは情報が見当たらなかった。
両方チェックして両方疎通した場合のみOpen判定なのか、どちらか片方でも開いていればOpen判定なのかも不明。
疎通確認端末のiphoneXがWifi経由でなく単独でIPv6のグローバルアドレスに疎通確認できる事の証明として
「www.google.co.jp」のIPv6アドレスに対してpingで疎通確認し、その後ポートスキャンで各ポートが開いているかどうかを見た。
確認項目とその結果は下記の通り。
iphoneXからwww.google.co.jpのIPv6アドレスへのicmpv6疎通確認 | アプリで疎通OK |
WinPC割当IPv6グローバルアドレスへのicmpv6疎通確認 | アプリで疎通NG |
WinPC割当IPv6グローバルアドレスへのポートスキャン(53) | アプリでClose判定(Open欄に出てこない) |
WinPC割当IPv6グローバルアドレスへのポートスキャン(80) | アプリでOpen判定 |
WinPC割当IPv6グローバルアドレスへのポートスキャン(135) | アプリでClose判定(Open欄に出てこない) |
WinPC割当IPv6グローバルアドレスへのポートスキャン(139) | アプリでClose判定(Open欄に出てこない) |
WinPC割当IPv6グローバルアドレスへのポートスキャン(443) | アプリでOpen判定 |
WinPC割当IPv6グローバルアドレスへのポートスキャン(445) | アプリでClose判定(Open欄に出てこない) |
ちなみにルータのWAN側インターフェースが握ってるIPv4アドレス宛にも同じポートのスキャンをしたが、同じように80と443がOpen判定だった。
昔フレッツ光回線使ってた時にポートスキャンテストとかしてなかったので他の光回線のポートスキャンの結果がどうなるかは知らない。
10Gsはそれなりにマシっぽいが、HTTP/HTTPSのポートが空いてるとすると、HTTP/HTTPSの改竄パケット受け取っただけで問題が発生する脆弱性が端末搭載OSに発覚した場合は危険かもしれない。
ただ、アプリ側のOpen判定が微妙なので誰かちゃんとIPv6環境から真っ当なポートスキャン試してみて。俺はこれ以上検証しない。
どもども。
わたしは「なにか作ってみろ」系の言説にはまったく同意しません。
わたし自身、会社に3ヶ月間みっちり導入教育をしてもらい(COBOL85とPL/I。時代がわかる……)、基本的なアルゴリズム(コントロールブレーク、マッチング、マスタ-トランザクション、ソート、マージ、etc.いよいよ時代がわかる……)の演習を(給料をもらいながら)やって、その後もプログラムとつかず離れずでフラフラと生きてきました。
こういう経験は新卒カードがあるから有効なもので、では1から始めるとしたら……、というときに、プログラミングスクール(専門学校)というのは悪くない選択肢ではないかと思います。が、行ったことないので正直わかりません。
実際自分が1から始めるという立場になったら、まったくオロオロして元増田さんのように世のなか(の気にいらないヤツら)に呪詛を吐いて満足するだけだったと思います(当然ながらそれをいくらやってもプログラミングは上達しません)。
話をプログラミングだけに限っていえば、一番大事なのはやりかたじゃなくて動機だろうと思います。
「なにか作ってみよう」というのは、なにか作ってみようと思ってない人にはまったく心に響かないでしょう。
動機ドリブンで「なにか作ってみた」人といえば思いだすのは、MikuMikuDanceの樋口優さん(ミクを簡単に踊らせたい!)とhinadanの若宮正子さん(高齢者にも遊べるゲームが欲しい!)でしょうか。
ただかれらはわたしから見れば(モチベーションを維持しそれを行動に移す)天才で、あんまり参考にならないのも確かです。
あと、元増田さんの動機は「プログラミングを生業にしたい」ということなので、野良プログラマでは履歴書上でのアピール力が弱いかも、と思います。
ビジネスで使われるアルゴリズムにはそれなりのルールがあります。安全な(バグの出にくい)コードの書きかた、「車輪の再発明」はぜず、枯れた(将棋で言えば定跡のような)アルゴリズムを使う、ほかの人に使ってもらえるための工夫(可読性の向上など)、etc.です。
「なにか作ってみよう」を繰りかえしても、そういった作法的なものが身につくかどうか、それは才能に関わってくる問題だと思います。才能だのみの手法を推奨するのは無責任だと思いますね。
また、たとえば「例をコピーして解析する」というのもある意味有効なプログラミング学習法ですが、「下手に習うと下手が伝染る」ともいいます。どれがお手本として優れているか、それを見る目はある程度ビジネス用途のプログラムに関わっていないと持てないというジレンマがあります。
野生のプログラマで就職に有効なくらいの力を見せるとしたら、なにかのコミッター(なにする人かよく知りませんが)とかになって「××ならこの人」となったり、プログラミングコンテストで上位の成績を残したりしなければいけないのかもしれません。
どうしたものでしょうね。ブクマカのみなさんの反応を見ると、専門学校でもあまり就職に有利にならない(ホントか?専門学校の意味あるのか?)という話ですが、目的が就職ならば、一番の近道のような気がします。
そこらへんからは、元増田さんがなにをしたいか、あるいは聞いてみたいだけだったのかによります。仕事には適性とやる気が大事です。あとは年齢と必要性かな。進路はオーダーメイド以外にはありえないので、提示された案を自分で選んでそれに賭けるしかないのかな、と思います。
さて、この文章は実はこの一文に反応してのものです。(↑のは前書き)
GWあたりからトシも考えずにRubyの再入門をしていまして、手始めに「首相動静」の整形ツールを作ってみました。
初心者で(Rubyに関しては仕事で使ったことないので)なにか作ってみよう、というとこの程度ですね。
これで就職に有利になるかというと、あんまりそうは思えないなあ。Excelのマクロが組めるとかのほうがどこかの事務所に潜りこめそうですよ(でもそれも最近はインフレ気味かもしれませんね)。
朝日新聞の首相動静は詳細ですが、改行が入っておらず、大変読みにくいものです。こんな感じです。
【午前】9時31分、自民党本部。33分、同党役員会。10時2分、官邸。5分、閣議。21分、宇宙開発戦略本部。34分、柴山昌彦文部科学相。38分、岩屋毅防衛相。41分、山下貴司法相。11時3分、安全保障と防衛力に関する懇談会。
【午後】0時11分、政府・与党連絡会議。44分、山口那津男公明党代表。1時27分、日韓議員連盟の額賀福志郎会長、河村建夫幹事長。2時20分、行政改革推進会議。52分、兼原信克官房副長官補、秋葉剛男外務事務次官。3時36分、麻生太郎財務相、財務省の岡本薫明事務次官、太田充主計局長。4時7分、太田氏出る。可部哲生理財局長加わる。15分、全員出る。25分、黒川弘務法務事務次官。34分、谷内正太郎国家安全保障局長、北村滋内閣情報官、宮川正内閣衛星情報センター所長。41分、谷内、宮川両氏出る。5時3分、北村氏出る。10分、東京・永田町のザ・キャピトルホテル東急。宴会場「鳳凰」で中曽根康弘世界平和研究所設立30周年記念式典に出席し、あいさつ。20分、官邸。6時18分、ガーナのアクフォアド大統領を出迎え。記念撮影。19分、儀仗(ぎじょう)隊による栄誉礼、儀仗。27分、アクフォアド大統領と会談。7時12分、署名式、共同記者発表。32分、公邸。首相主催の夕食会。8時43分、アクフォアド大統領を見送り。9時、ヨルダンのアブドラ国王と電話協議。
ただ、これはフォーマットがはっきりしており、
と、例を見るかぎりキッチリとしたルールに則っているようです。
なので、「これだったら整形できるかも」と思い、再び学びはじめたRubyで整形ツールを作ってみることにしました。
【午前】
10時02分、官邸。
10時05分、閣議。
10時21分、宇宙開発戦略本部。
【午後】
01時27分、日韓議員連盟の額賀福志郎会長、河村建夫幹事長。
02時20分、行政改革推進会議。
03時36分、麻生太郎財務相、財務省の岡本薫明事務次官、太田充主計局長。
04時15分、全員出る。
04時34分、谷内正太郎国家安全保障局長、北村滋内閣情報官、宮川正内閣衛星情報センター所長。
04時41分、谷内、宮川両氏出る。
05時10分、東京・永田町のザ・キャピトルホテル東急。宴会場「鳳凰」で中曽根康弘世界平和研究所設立30周年記念式典に出席し、あいさつ。
05時20分、官邸。
06時18分、ガーナのアクフォアド大統領を出迎え。記念撮影。
06時19分、儀仗(ぎじょう)隊による栄誉礼、儀仗。
あと、午後の時刻を24時間制にしたいな、とも思いますが、それは今後の課題(つぎに首相動静が話題になったとき)とします。全角数字の計算ってどうやるんだろう?
たぶんRubyistにいろいろ突っこまれると思うけど、こんな感じです。
プログラマは玉石混淆ですが、これは石のほうの例だと思っていただければさいわいです。
※ はてな記法にはシンタックスハイライトあるけど、増田だとInternal Server Errorになるのではずしました。見にくくてスマソ。
# encoding: utf-8 # 漢字コンバータのライブラリを取りこむ(Stringに漢字変換メソッドを付けてくれる。神) require 'kconv' # 正規表現パターン # 時刻をh時m分形式からhh時mm分形式にする # 否定後読みを使用する # 時は行頭にある OneDigitHour = /^((?<![0-1])[0-9]時)/ # 分は時のあとにある。このパターンとマッチすると、92;1が時、92;2が分になる。 OneDigitMinute = /^([0-9]{1,2}時)(?<![1-5])([0-9]分)/ # 分のない、時だけの行のパターン。否定先読みを使用 HourWithoutMinute = /^([0-9]{1,2}時)(?![0-5]?[0-9]分)/ # 行頭のh時m分をhh時mm分にするサブ処理(これは関数といっていいの?) def convTopHourMinute2TwoDigits(oneLine) # 時を変換 oneLine.sub!(OneDigitHour, "092;92;1") # 分を変換 oneLine.sub!(OneDigitMinute, "92;92;1092;92;2") # 分がない場合"00分"を追加 oneLine.sub!(HourWithoutMinute, "92;92;100分") # 戻り値 oneLine end # 入力ファイルの名前 InputFilename = "首相動静2018年12月11日.txt" # 出力ファイルの名前 OutputFilename = "首相動静2018年12月11日_編集済.txt" # 入力ファイルをオープン inFile = File.open(InputFilename, "r") # 出力ファイルをオープン outFile = File.open(OutputFilename, "w") # 時刻パターンはシンプルに、h時、m分、h時m分、という3パターンを結合する # 1つのパターンで全部カバーするよりこちらのほうが見やすい。というか、脳の容量の問題で1文に書ききれなかった jikokuPattern = /[0-9]{1,2}時[0-9]{1,2}分、|[0-9]{1,2}時、|[0-9]{1,2}分、/ # 午前/午後 ampm = /(【午前】|【午後】)/ # 午前/午後、あるいは時刻の前で改行するためのパターン kaigyouSign = Regexp.union(ampm, jikokuPattern) # ファイル一括読み込み # 昔は1行ずつ読みこんでました。メインメモリが3MByteとかだったので contents = inFile.read.toutf8 # 入力終了。閉じておきます inFile.close # スコープの関係から、ここでローカル変数に代入 # ※ Rubyのスコープと暗黙の型には泣かされました。これに慣れるのがRubyのコツかしら # 明示的な型宣言はあったほうがいいと思うなあ。エラー出力の理由がわからなかったりするので。 hour = "" # デバッグ行はコメント化しています # 時刻パターンチェックのため、コンテンツを出力してみる # p jikokuPattern.match(contents) # エントリを改行サインで行に分ける contents.gsub!(kaigyouSign, "92;n92;92;&amp;") # "92;92;&amp;"はマッチした文字列そのもの。2重のエスケープ"92;92;"が必要 # 改行チェックのため出力 # p contents # 入力を行で分割して各行ごとに処理 contents.split("92;n") do |oneLine| # 午前/午後を示す開きカッコ"【"があるか if (oneLine =~ /^【/) then # そのまま出力 outFile.write(oneLine + "92;n") # p "午前午後:" + oneLine next # 空白行は無視(スキップする) elsif (oneLine =~ /^[92;s ]*$/) then # 出力しない # p " 空白行:<skip>" next # 行頭に「時」があるか elsif (oneLine =~ /^[0-9]{1,2}時/) then # あったら時間表示を抜きだしておく hour = oneLine.match(/^([0-9]{1,2}時)/)[0] # p " 時:" + oneLine outFile.write(convTopHourMinute2TwoDigits(oneLine) + "92;n") next else # 「時」がなければつけて出力 oneLine = hour + oneLine # p "普通の行:" + oneLine outFile.write(convTopHourMinute2TwoDigits(oneLine) + "92;n") end end
手でやったほうが早いね。
以上