スレ立てるまでもない質問はここで 156匹目
■ このスレッドは過去ログ倉庫に格納されています
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。
【前スレ】
スレ立てるまでもない質問はここで 155匹目
https://mevius.5ch.net/test/read.cgi/tech/1606439237/
次スレは>>980が立てること 同じクラウド内なら通信量ってカウントされないよね? >>2
リージョンやゾーンも同じでpublic IP使わない通信なら基本カウントされない スレチだったらすみません
スプレッドシートに COUNTA(L2:AAB2) という記載があったのですがAAB2はどういう意味でしょうか?
実際の画像です https://i.imgur.com/LbYig0B.png つまりはとても大きいってことですか
回答ありがとうございました! rubyの正規表現で文中の数字の位置を調べるために、下記のように書きました。
"xyz243" =~ /(\D|^)\ d{3}(\D|\s|$)/
すると、
#=> 2
として結果の位置が3ではなくて2とずれて表示されたのですが、何故でしょうか? z243にマッチするから結果は合ってる
正規表現が間違ってる html のレイアウトって一々width指定しなきゃダメなの?
エクセルとかみたいにドラッグで幅変更できるソフトとかないの? >>11
そんな機能はHTMLの標準機能で実装されていない。
そもそもHTMLはマークアップ言語であってプログラミング言語ではない。
基本的にレイアウトやデザインはHTMLではなくCSSで設定する。
動的なページを作りたければ、JavaScriptでコントロールしろ
という考え方。
Webページ作成ソフトの事を言っているのなら、HTMLの問題でなく
作成ソフトの問題。ホームページビルダー等でそういう事ができるか
どうかは知らない。 サーバーって言葉には
1.サーバーソフトウェアのこと(ApacheとかNginXとか)
2.サーバーソフトウェアを動かしているマシン(ハードウェア)のこと
・・・の二つの意味があると思うのですが、ここで質問です。
サーバーソフトを動かしているマシン上ではサーバーソフトしか動かせないのでしょうか?
(サーバーソフトは特別なソフト?)
そんなことはなく、サーバーソフトを動かしているマシン上でも、
普通にソリティアやマインスイーパーで遊べたりできるんでしょうか?
(サーバーソフトは特別なソフトでもなんでもなく、ソリティアと同じレベルのソフト?) >>14
サーバーは役割
OSはWindowsServerやLinuxが多い
しかしただのWindows10かもしれない
ハードウェアもサーバー向けが使われる事が多いが
そこらの自作パソコンやノートパソコンでも出来ないわけじゃない
まずは自作パソコンを組み立ててサーバー向けOSをインストールしてみたほうがいい
もしくは安く売っているようなサーバー向けPCでもよい
安い時は1万円程度で売っている
サーバーの勉強目的ならRaspberryPiは避けたほうがよい サーバも今だとホームサーバ、VPS、クラウドで分けて考えた方がいいね
公開しない、する、可用性と拡張性も気にするって具合で >>14
>サーバーソフトを動かしているマシン上ではサーバーソフトしか動かせないのでしょうか?
いいえ
>普通にソリティアやマインスイーパーで遊べたりできるんでしょうか?
Windows Serverならできる
その他のOSでもGUIがあればだいたいできる
(サーバーとして使う場合はGUIを入れないことも多い)
>サーバーソフトは特別なソフトでもなんでもなく、ソリティアと同じレベルのソフト?
同じ面もあれば違う面もある
起動後はメモリに常駐してクライアントのリクエストに応じて
何らかの処理をして結果を返すのがソフトウェアとしてのサーバーの役割
複数のクライアントからのリクエストを同時に捌けるように作るのが普通 Wndowsサービスはサーバーの場合もあればそうじゃない場合もある WindowsServerは普通にOffice入れたりする
リモートデスクトップみたいなサービスもある WEBアプリからDLL呼ぶから意外と入れる
ライセンス的にどうなんだろうね 子プロセスを呼び出すプロセスは、そのプロセスがkillされたとき
自分が呼び出した子プロセスをkillするものだと思うけど
デフォルトでそうなってないのってなんで? 逆に、親が死んだとしても子供が死ぬ謂れがないのに、なんで子供が道連れに死ぬものだと思うの? パイプライン・ジョブ・タスクランナーみたいな、
複数のプロセスで処理するものは、個別のプロセスに意味がない
だから親が止まれば、すべての子も止まるべき
流れ全体が、正常が異常かだけが重要。
データベースと同じ
全体が成功すれば成功で、
1つでも失敗すれば、全体をロールバックする >>26
デフォルトの問題です。
当たり前ですが人間の話はしていません。
親プロセスが死んだとき、子プロセスだけが生き残っていて嬉しいことがありますか?
それは特殊な例だけでしょう ディレクトリに当てはめれば
親ディレクトリが削除されたとき、下位ディレクトリだけ残っていて
なにか嬉しいですか?と同じ話ですよ >>25
コンソールベースのシステムは子が一緒にkillされるのが用途と直感に敵っていた
一方GUIベースのシステムでは子がkillされるのは多くの場合直感に反する
あるアプリがメモ帳を開いたとして、アプリが終了したときにメモ帳が勝手に閉じるのは不自然
MDIならさらに悪いことになる >>30
だからデフォルトの話だって
MDIだってウインドウを閉じたら、中のウインドウも一緒に消えるはずだ そもそもGUIのシステムでアプリが別のアプリを起動することは殆どない >>28
いや、そのデフォルトの話としてですね
プロセスに関して「死ぬ」と表現しているように、生命をそのモデルとしています
そして子供は親の所有物ではなく、関係しているだけです
親ディレクトリが削除されたファイルだって、実際にはlost+foundディレクトリに移されるだけというシステムもあれば、ファイルがあったらディレクトリは削除できないシステムもあります
で、親が死んだら子供も無理心中すべきではないのか?という思想にそれほどの蓋然性はあるのですか? >>31
デフォルトの話って何のOSの話をしてるの?
俺は普通にアプリからプロセス起動するけど
最初にクソレスがついて質問者が反発して意固地になってるパターンっぽいからこれもうメンドクセェな >>33
> プロセスに関して「死ぬ」と表現しているように、生命をそのモデルとしています
ソースでもあんの?そうしなければいけなかった理由は? >>33
> で、親が死んだら子供も無理心中すべきではないのか?という思想にそれほどの蓋然性はあるのですか?
はい。親プロセスがいない状態で子プロセスだけが残ってることに
どれだけ意味があるんですか?まだこの質問に答えてもらってません。
例外があるのは知ってますので、例外的な例ならいらないです。
子プロセスを起動する殆どのプログラムに当てはまる例を聞いています >>35
> MDIの中のウィンドウはプロセスとは限らんよ
じゃあなんであなたはMDIなんて例を持ち出してきたんですか? >>38
起動したウィンドウが子プロセスがどうかはエンドユーザーには見分けられない(コンソールなら一目瞭然)
そこでユーザがそのシングルプロセスのMDIアプリケーションで別ドキュメントを開いて閲覧や編集を始める可能性がある(まあMDIじゃなくても別ドキュメントを操作し始めることはある)
親と道連れでまるっとkillされると、ユーザーの意思で開いたドキュメントも閉じてしまってまずい >>37
君の主張こそが例外
現実を見よう
>>36
ライフサイクルって言葉を聞いたことないのかい? >>39
ああ、基本的なことがわかってないのね
MDIは親ウインドウが閉じたら、子ウインドウは全て閉じます。
理解したら出直してね。 >>40
> 現実を見よう
だからその現実を教えてくれって言ってんの
親プロセスが死んだとき、子プロセスが残っていて何が良いことでもあんの?
現実を見よう。
ないから、何も言わないんだろ? >>41
いや一度深呼吸して落ち着いて読み直してくれ
俺はMDIは一蓮托生だからこそ困るケースになるという話をしてる >>43
> 俺はMDIは一蓮托生だからこそ困るケースになるという話をしてる
じゃあ、MDIの子ウインドウだけ残っていて
アプリが適切に動く例が存在するんか?
MDIの子ウインドウだけ残っていてもまともに動かないだろ
CLIでも同じで、子プロセスだけ残っていてもまともに動かないから
親プロセスが死んだとき、子プロセスだけ残っていても意味がないだろって
話を出発点にしてるのに、
MDIだと子ウインドウだけ残っていて
まともに動くんか? 親ウインドウが死ぬと、子ウインドウだけ残っていても意味ないの なでしこスレに投下したとこだけど、あそこ動いてないからこっちにも投下させてください
linuxにwineでなでしこ入れたのは良いけど、calc使いたくて
calc起動 でwindowsだとopenofficeやlibreofficeのcalcが起動するんだけど
linuxでは当然起動しない
何か起動する方法はないかと探してるけどどうだろう >>44
MDIの子ウィンドウだけ残るなんて話してないぞ
具体的に書こうか
親プロセスPが子プロセスCを起動したとする
Cは他人が作ったMDIアプリで、起動時の指定でドキュメントD1を開いたとする
ユーザーがCのウィンドウを見てD2を開いたとする
Pが終了したとき、Cも終了するとなると、D1とD2も当然閉じる
D1が閉じるのは意図通りだけど、D2が閉じるのはユーザーの期待に反する
そういうケースの説明のためにMDIを例示した
ただ俺のMDIへの言及は枝葉にすぎない
俺が伝えたい肝は、GUIシステムにおいて子プロセスがウィンドウを持つときユーザーからは子プロセスとして認識できないので誤解を生じるという点
もちろん子プロセスがウィンドウを持たないことも多いが、持つことも多い
どちらが多いなんて言い張り合いをする気はないが、デフォルトを決める上で勘案すべき事柄 >>48
どうでもいい情報ばかりで説明下手すぎ
> Cは他人が作ったMDIアプリで、起動時の指定でドキュメントD1を開いたとする
> ユーザーがCのウィンドウを見てD2を開いたとする
CじゃなくてMDI設定にしたエクセルでいいだろ
エクセル起動して、エクセルの中の1番目のウインドウでドキュメントD1が開く
同じくエクセルのウインドウを見てD2をが
エクセルの中の2番目のウインドウでドキュメントD2が開く
こーなりました。
https://docs.microsoft.com/ja-jp/office/vba/images/odc_xl15_ta_programmingthesdiinexcel2013_02.jpg
エクセルの中に、2つのウインドウがあるんだから
エクセルを終了したとき、2つのウインドウが閉じるのはユーザーの期待通りだ >>48
> 親プロセスPが子プロセスCを起動したとする
親プロセスPが、シェル対して「ドキュメントを開く」のアクションを
実行するって話なら、親プロセスがCを起動してなんかいない
プロセスが他のプロセス(子プロセス)を開くという話と
プロセスがシェルに依頼してプロセスを起動してもらう話を
ごっちゃにするな こりゃもう口論が目的化してるな
当初の質問も理由が知りたかったのか、そんなデフォルトおかしいよねとただ共感してもらいたかったのか Win32のCreateprocessはシェルを介さないで直接子プロセスを起動するだろう。
そこで親が先に死んだら子プロセスが親なしになるだけ。 >>51
じゃあ仕切り直し
25 自分:デフォルトの名無しさん[] 投稿日:2021/02/27(土) 05:30:01.63 ID:hpJz9JUm [1/15]
子プロセスを呼び出すプロセスは、そのプロセスがkillされたとき
自分が呼び出した子プロセスをkillするものだと思うけど
デフォルトでそうなってないのってなんで? Wndowsでも親プロセスが死んだら子プロセスも殺したいんだって
みんなあれこれ悩んでるね。
なんでみんな望んでる動作をデフォルトにしなかったんだろうか まーた口論することが目的のレスをする
困ったもんだねw ぼくの常識が世間の常識じゃないのは嫌!というだけのことだな 普通に考えて、子プロセスが生きている間それを起動したプロセスを終了できないという
制約があったらいろいろと面倒だと思うが。
親が死んだら子を殺す動作をオプションとして簡単に実現できるようにしてほしいという
要望ならわからんでもないが、そこは手間の問題。 子プロセスを作った時点で、ハンドルを保存しておけば
親が閉じるときに子のハンドル使って閉じれば良いだけやん >>58
俺は最初から親プロセスが死んだら子プロセスを死ぬ動作が
デフォルトのほうが良かったんじゃないかって言ってるんだが?
俺が言ってないことを、さも俺が言ったかのように書かないでくれ >>59
Windowsの話に限定しないように
そもそもLinuxの話をしてたんだが ずっと板違いだし20回レスしているおかしいやつまでいるのかよ >>60
子プロセスを自動的に殺すか殺さないか2つの案があるときに、デフォルトの動作として
どちらを選ぶかという話とデフォルトではない方の動作をオプションとして提供するかどうか、
その2つの話に分けて説明したつもりなんだが。 >>63
それは最初からわかっていてその後の話、
なんでデフォルトが殺さない方にしたのか
という話をしてる
> 親プロセスが死んだとき、子プロセスだけが生き残っていて嬉しいことがありますか?
> それは特殊な例だけでしょう >>63
あと俺が言ってないのは
「子プロセスが生きている間それを起動したプロセスを終了できないという制約」
だからな。
俺はそんな制約があったほうが良いなんて一言も言ってない
どこからその話が出てきたのか全くわからない 伝わらんかな?
1. OS側で強制的に殺す
2. 殺さない(必要に応じてプロセス側でやる)
3. 両方選択できるようにしてどちらかをデフォルトにする
1は困る場面があるし3は手間の問題だと言っているんだが。 >>66
最初から2の話しかしていない。なんで2になってるのかという話をしてる
俺は1は候補にすら出してないから書くのはやめろ
3の話もしていない
今は親プロセスが死んだとき子プロセスは殺さないようになってるが
親プロセスが死んだとき、子プロセスだけが生き残っていて嬉しいことがありますか? >なんで2になってるのかという話をしてる
消去法で2になるということをわかりやすく書いたつもりなんだが。
>親プロセスが死んだとき、子プロセスだけが生き残っていて嬉しいことがありますか?
ふつうに、デーモンとか起動した親とは別にバックグラウンドで動いてほしいプロセスとかあるじゃん。 > ふつうに、デーモンとか起動した親とは別にバックグラウンドで動いてほしいプロセスとかあるじゃん。
殆どのプログラムはデーモンじゃないし、バックグラウンドで動くことは親プロセスが死んでないからなんけいないし
子プロセスを苦労して殺す方法を、どの言語もあれこれ頑張るぐらいなら
デーモンとして残す方法を頑張ったほうが良いじゃん
これで言ってること理解できますかね? ライフサイクルやら殺す(kill)やら、生命に当てはめて見ているって話に反論はどした?
親が死んでも子は育つってな、世界的に一家心中なんて常識外で不自然なんだよ
現実を見よう そもそもデーモンとして残す方法なんて簡単なんだわ
すでに親プロセスの付け替え機能はすでに実装されてるんだから
あとはデフォルトをどちらにするかの話
なんで、面倒くさいほうがデフォルトになってんの? > ライフサイクルやら殺す(kill)やら、生命に当てはめて見ているって話に反論はどした?
>>28ですでに反論済み
> 当たり前ですが人間の話はしていません。 >>69
だからそれは両方の手段を提供するってことになるだろ?つまり>>66の3.
さすがにここまでくると、理由を知りたいというよりも自分が望む形になっていないことに対して
駄々をこねているようにしか思えない。 >>73
今現在も両方の手段を提供していて
なんで不便な方がデフォルトなのって
これが話の出発点
やっと俺の最初の話に追いついただけだよ ちなみに今のやり方とコメント
1. デーモンを作る・・・用途としては少ないのでこれをデフォルトにする理由がわからない
2. ↑をつくる場合forkして子プロセス作って親は終了して・・・どちらにしろ面倒な仕組みが必要
3. これは今の親が死んでも子プロセスは残るというおかしな仕様をハックしたからだろう
4. 最初からデーモンをつくるAPIを容易すべきだった
5. そうすりゃ親プロセスが死んだ時に子プロセスを全部殺せた
親プロセスが死んだ時に子プロセスは全部死ぬという仕様をデフォルトにし
子プロセスを死なないようなAPIを、forkとか使う面倒なハックの代わりにすれば
シンプルに出来たはずなんだが
なんでそうなってるの?が最初から話をしている内容に
誰でも知ってるやろ的な技術的な説明を加えた言葉
> 25 自分:デフォルトの名無しさん[] 投稿日:2021/02/27(土) 05:30:01.63 ID:hpJz9JUm [1/27]
> 子プロセスを呼び出すプロセスは、そのプロセスがkillされたとき
> 自分が呼び出した子プロセスをkillするものだと思うけど
> デフォルトでそうなってないのってなんで?
> 28 自分:デフォルトの名無しさん[] 投稿日:2021/02/27(土) 07:24:00.97 ID:hpJz9JUm [2/27]
> >>26
> デフォルトの問題です。
> 当たり前ですが人間の話はしていません。
>
> 親プロセスが死んだとき、子プロセスだけが生き残っていて嬉しいことがありますか?
> それは特殊な例だけでしょう
↑特殊な例=デーモンであることぐらいすぐ気づけよ >今現在も両方の手段を提供していて
両方?
>親プロセスが死んだ時に子プロセスは全部死ぬという仕様をデフォルトにし
あんたが望んでいるこれはオプションででも提供されていないと思うが?
あんたが言う面倒な手順ってのは、親が死ぬときに子を殺して回るとか、子が
親の死を検知して自殺するとかだろ?それは>>66の2.
>>75はもう「ぼくのかんがえたさいきょうのOS」の話なんでコメントはせんがw >>76
自分で実装すれば出来るだろ
デーモンだって自分で実装してるんだし
それでなんで面倒くさいほうがデフォルトなの?
知らないなら知らないでいいじゃないか
無理して答えようとしなくて良いんだぞ だからその機能が提供されていないから自分で実装することになっているんだと思うが。
さすがにここまで話が通じないとは。 >>78
で何のために今まで実装されてないの?
最初からそれを聞いてる まるで駄々っ子だねぇw
実装されていないってのはつまり、それぞれのOSの開発者はそれほど必要な機能だと
考えていないんだろう。 ファイルを開いたら閉じなくてはいけない
それはプログラマーが実装する
OSができることはガッベージコレクション システムコールやAPIを設計するとき、できるだけプリミティブな機能として実現するというのは至極自然なことだろう。プロセスを殺すならそのプロセスだけを殺す。子供も一緒に殺したいならプログラマが明示的にそう書けばいいというだけのこと。
そんなのぼくはやだやだ!めんどくさい!なんて知ったことではない >>47
Linux 板で聞いた方がよい
which calc
と、コマンドを打ってみれば?
グローバルにパスが通っていれば、そのコマンドの場所が表示される Windows ではプログラムで、IE, Excel などの子プロセスが自動的に、kill されないのかな?
子だけが残った場合に、どのプログラムが起動したか分からないし、
子は何かで使っているかも知れないと思って、なかなか削除できない
どう扱えば良いのか、分からない されない
だからタコの作ったツールだと何個もExcelやらのインスタンスが残る>OLE
だから、つ SysInternalTools >>82
ガベージコレクションやるのはOSなのか?
フレームワークや言語がやる認識だったが >>88
プロセスを停止したら、そのプロセスが使っていた
リソースを解放するのはOSの仕事ですよ? GC は言語内で、その言語内で作ったオブジェクトの解放はするけど、
プログラム内で、IE, Excel などを起動したら、
別のプロセスとなって、その言語内のGC では追跡できない
だから、>>87
が言うように、多くのExcel のプロセスが残ってしまう COCOAが3億円で発注されたらしいが
あの内容だと1行当たりいくらになるんだろうな? >>90
それは起動の仕方が違うから的外れ。IEやExcelを直接起動してるのではなく
シェル(OS)に依頼して明示的に子プロセスならない方法で作成している >>90
COMとかOLEオートメーションを勉強したほうが良いですよ
プロセスツリーを見ればわかるように
子プロセスにはなってないですから ……インプロセスサーバーとアウトプロセスサーバーの違いも分からん奴が人に勉強不足と言うのか そうですね。勉強不足ですね。私は子プロセスではないといいました。ExcelやIEがどちらなのかよく考えてみましょう
http://docwiki.embarcadero.com/RADStudio/Sydney/ja/%E3%82%A4%E3%83%B3%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%EF%BC%8C%E3%82%A2%E3%82%A6%E3%83%88%E3%82%AA%E3%83%96%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%EF%BC%8C%E3%81%8A%E3%82%88%E3%81%B3%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC
・インプロセスサーバー
クライアントと同じプロセス空間で実行中のライブラリ(DLL)。たとえば,Internet Explorer または Netscape で
表示されている Web ページに埋め込まれた ActiveX コントロールがこれに当たる。
つまり,ActiveX コントロールはクライアントマシンにダウンロードされ,Web ブラウザと同じプロセスの中で呼び出される
・アウトオブプロセスサーバー(ローカルサーバー)
クライアントと同じマシンの別のプロセス空間で動作している別のアプリケーション(EXE)。
たとえば,Word 文書の中に埋め込まれた Excel スプレッドシートがこれに当たる。
Word と Excel は同じマシン上で動作している 2 つの別個のアプリケーション
ローカルサーバーは,COM を使ってクライアントと通信する >>89
参照不要になったゴミ部分だけを探して捨てていく仕組みをGCという
ガベージコレクション、文字通りゴミ収集ということ
プロセス終了時のような、占有していたものを全解放する行いはGCとは言わない、少なくともGCという言葉が使われてこなかった
ガッベージという読み方も一般的じゃないし原音とも合ってない >>97
それはGCの話を始めたアホに言ってください
私はその話は全くしていません。
GCという単語すらこのレスより前に書いていません >>85
わかりました、きいてみます
なでしこユーザー少なくてこういうときは困ります ■ このスレッドは過去ログ倉庫に格納されています