-
プログラム
-
スレ立てるまでもない質問はここで 166匹目
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。
次スレは>>980が立てること
【前スレ
スレ立てるまでもない質問はここで 165匹目
https://mevius.5ch.n...cgi/tech/1687260267/
スレ立てるまでもない質問はここで 164匹目
https://mevius.5ch.n...cgi/tech/1681132438/ - コメントを投稿する
-
ソフトにオプション設けるときって別の親ウィンドウ作ってる?
それともダイアログで作ってる? -
前スレの1000自決してて草
-
>>1
たて、乙 -
>>1おつ
-
#include だからって C でも C++ でもない
rc でコンパイルするんだから rc 用のヘッダしか描いてはいけない -
コメントとプリプロセッサ指示がC/C++と共通だから両方で使えるヘッダが書けるというだけだね。
文字コードにも注意しないとならないけど。 -
これとか
>>>994
>回答してくれるのはありがたいんだけど、初心者の方に聞いたわけでは無いよごめんね
これとか
>アイコンと違ってヘッダファイルインクルードしたら動かないの初見殺しすぎませんかねえ
質問する立場でこういう煽りは良くないね
まあ自決で自演ネタだとばらしてるつもりかも知れんが -
アホみたいでも煽りじゃない回答なら他の人が回答するハードル下がって書き込みやすくなるからな
いちいち回答してくれた人叩いてると知識持ってる人も叩かれるんじゃないかって書き込まなくなってしまうから良くないんだよね -
三菱UFJ銀行の貸金庫で10億円盗まれるって
セキュリティどうなってんねん -
(重さ,価値)のリストを受け取る関数で以下のようなhaskellコードがあったのですが理解できません
何をやっているんでしょうか
sieve :: [(Int, Int)] -> [(Int, Int)]
sieve lis = map snd . filter (\((w1, v1), (w2, v2)) -> v1 < v2) $ adj
where
slis = sort lis
adj = zip (scanl (\(w, v) (w', v') -> (w', max v v')) (0, 0) slis) slis
例えばテストケースに以下のリストを渡すとadjの内容はコメントしたように(3,3)という存在しないデータが出てきます
一応上のフィルタで消えるのですが、常にこれは成り立つ?
[(1,1),(2,3),(3,2),(4,5)] -- [((0,0),(1,1)),((1,1),(2,3)),((2,3),(3,2)),((3,3),(4,5))]
最終的な結果は
[(1,1),(2,3),(4,5)] -
BeginとEnd
StartとStop
newとdelete
みたいに文字数が違うのが気持ち悪いんだけどどうすればいい? -
まずまともに動くもん作ってから悩め
-
故障したPCのファイル抜き出しについて質問させて下さい
コマンドプロンプトのコマンド「xcopy 元フォルダ コピー先フォルダ /e /i /c」でエラーを無視して取れるファイルだけでもバックアップを取ってるのですが、破損ファイルのコピーになると「セマフォがタイムアウトしました」のエラーが発生するまで15分待機しないと次のファイルのコピーを実行しません
破損ファイルの度に15分待機すると膨大な時間がかかってしまうので、破損ファイルを無視してのコピーやセマフォのタイムアウト時間を設定するなどできないでしょうか
また他に良い方法があれば教えていただけると幸いです -
>>15
教えていただいたオプション自体はエラー後の動作だったのでタイムアウト時間を変更はできなかったのですが、そういったオプションがたくさんあるためかコマンドがエラーを返す時間が7分程度になりました
時間はかかりますがひとまずこれで実行しておこうと思います
教えていただきありがとうございました -
俺が思いついたバカ解決策はファイルを全部リスト化してコピーコマンドを書いたバッチをSTARTコマンドで並列実行だった
(適宜Pingかなんかでウエイトは入れるとして) -
>>11
重さ(w)があるのに価値(v)がないものを取り除いている
Rustで書くとこんな感じ
軽い順で入力が入ってくる状況で
scanで今まで来た価値(v)の最大値を求めていて
filterでその自分より前の最大値より価値(v)が大きいものだけを取り出している
fn sieve(sorted_input: impl IntoIterator<Item = (u32, u32)>) -> impl Iterator<Item = (u32, u32)> {
sorted_input
.into_iter()
.scan(0, |v_max, (w, v)| {
let pre_v_max = *v_max;
*v_max = v.max(pre_v_max);
Some((w, v, pre_v_max))
})
.filter_map(|(w, v, pre_v_max)| {
(v > pre_v_max)
.then_some((w, v))
})
} -
>>18
ありがとうございます。自力で実装できるといいのですがなかなか難しいです
Rustわからなかったので入門しましたよ
まだ分からないことが多いですが同じ動作をしているようなのは確認しました
fn main(){
let vec1 = vec![(1,1),(2,3),(3,2),(4,5)];
let ans = sieve(vec1);
for i in ans {
println!("{:?}",i);
}
} -
for(unsigned i{}; i < 1U << N; ++i)
C++でこんなループをみたんだけど
unsigned i{}の部分はどういう文法なんですか?
多分0初期化ですよね? -
for(unsigned c{i + 1 | i}, j{c}; j < 1U << N; ++j |= c)
その直下にこんなのもありました。ますますわからない
どなたか解説たのむー -
ChatGPT
あなた:
for(unsigned i{}; i < 1U << N; ++i)
C++でこんなループをみたんだけど
unsigned i{}の部分はどういう文法なんですか?
ChatGPT:
unsigned i{} は、C++11以降で導入された**リスト初期化(brace initialization)**を使用した変数の初期化方法です。このコードを分解して説明すると次のようになります:
unsigned
これは変数の型を表します。この場合は unsigned int の省略形で、符号なし整数型を意味します。
i
これは変数の名前です。
{}
これは変数の初期化方法で、リスト初期化を意味します。
{} の場合、変数はゼロ初期化されます。この場合、unsigned i{} は unsigned i = 0; と同じ意味を持ちます。 -
特徴と利点
明示的な初期化
リスト初期化では、値が指定されない場合に自動的にゼロ初期化されます。未初期化のリスクを防げます。
型変換の制限
リスト初期化は、暗黙の型変換が発生する場合にコンパイルエラーを発生させるため、安全性が向上します。
この場合の文法の意味
for (unsigned i{}; i < 1U << N; ++i)
上記のコードでは:
unsigned i{} によって、i はゼロに初期化されます。
1U << N はビットシフト演算で、1 を N ビット左にシフトした値を生成します。例えば、N=3 の場合、1U << N は 8 になります。
for ループは i を 0 からスタートさせ、i が 1U << N 未満である間ループを繰り返します。 -
他の初期化方法との違い
C++03以前の方法
unsigned i = 0;
これもゼロ初期化を意味しますが、= を使うため、場合によっては意図しない型変換が発生する可能性があります。
C++11以降の方法
unsigned i{};
リスト初期化を使うと安全性が高く、コードが簡潔になります。
まとめ
unsigned i{} はリスト初期化を用いたゼロ初期化の方法で、特にC++11以降のコードでは安全性や可読性を向上させるために使われます。 -
v0やboltやreplitなど生成AIのコーディングについてのスレッドはありますか?
探してはいるのですが見つけられなくて -
見つからなかったなら立ててもいいんじゃない
知らんけど、もう既にスレがあったらそっちへ誘導されるでしょ -
株式会社カイマクってどうですか?
-
ヤベーやつ
間違っても知り合いに勧めちゃダメ -
C++です。
ISuperインターフェースクラスを継承したCSubAクラスとCSubBクラスがあり、
それぞれのインスタンスのポインタのリストがある(必要)とします。
std::list<CSubA*> lpSubA;
std::list<CSubB*> lpSubB;
両リストの全要素に対し、ISuperにアップキャストして処理をしたく、
std::list<ISuper*> lpSuper;
lpSuper.insert( lpSuper.end(), lpSubA.begin(), lpSubA.end() );
lpSuper.insert( lpSuper.end(), lpSubB.begin(), lpSubB.end() );
for( auto& pSuper : lpSuper ) pSuperを使った処理;
のようにすればできるのですが、これを
for( auto& pSuper : lpSubAとlpSubBを連結 ) pSuperを使った処理;
のように事前のlpSuper構築なしで行う書き方はできないものでしょうか? -
>>30
ソースコードの見た目だけの話をしてるなら、lpSuperを作ってるとこを関数かラムダにしてforのとこで呼び出せばいい
将来的にはそんな感じの機能が標準ライブラリのrangesでサポートされる -
質問です
VIPdeWizardryOnline シュナト鯖wiki
というサイトにある保守のソフトは今も使えますか?
エラーが起きるのですがどうすればいいでしょうか? -
Color1とColor2を3:7でブレンドしろって関数作るとして
アルファ値もR,G,Bと一緒の計算でいいの? -
Pythonってアンインストール時にゴミとか残しませんか??
-
REPLの発音ってレプルですか?リプルですか?それとも全く別?
-
ゥレポゥ
-
dockerイメージってそのイメージがどのディストリビューションかという話があまり出てこない印象なんですが、利用するときって気にしないものなんですか?
-
// 2012/08/15 irof 修正開始
// hoge = fuga(1);
hoge = fuga(2);
// 2012/08/15 irof 修正終了
今入ってるプロジェクトが変更コード全て残せっていうとんでもない慣習なんです。……まぁ年度末で退職するんですが
それで検索してたら上のようなコードを乗せたブログ記事(2012!)があってまさにこれなんです。
古株の人に教えていただきたいんですがこれどの企業も同じ習慣だったということですか?たまたまブログ主と同じ会社のプロジェクトとは考えにくいですし。
皆さん今までのプロジェクトでこういうの見たことあります?それとももしかして海外でもこんななんでしょうか -
>>40
もちろん海外でも同じだよ
アメリカの後追いで真似し始めたとも言えるし、考えれば誰でも思いつくような原始的なバージョン管理技法ともいえる
いまはGitで1年前のソースとのdiffを出したり、行単位の履歴を出すみたいな操作が一瞬でできる
けど昔はストレージ媒体もネットワークも今の1万倍遅かった
ハッシュアルゴリズムの発明も1990年代を待たないといけない
だから昔はこの馬鹿みたいなコメントを有用な技法として世界中の人々が有効活用していたんだよ -
もちろん未だに活用している生きた化石みたいな組織は探せばたくさんあるんじゃないの
日本のIT業界の体たらくとして象徴的かもしれない
逆説的に、生産性向上を追求しないぬるま湯の環境ても長年生き残れるだけの何かを持っているおいしいビジネスって場合もあるかもな -
ありがとうございました。生きた化石かぁ……製造業の割と大きな会社のシステムというかコーディング規約なんですよね。一部外注してるのを受けてる形なのですが
だからIT業界というには微妙というか、非IT企業のIT部門だとそんなもんってとこかもしれないですね -
SIerさんの所でそういう慣習のシステム触ったことあるわ
ゼロ年代後半ぐらいからのデータ搭載されてるなんかすごい巨大なやつ
多分当時基準ではかなり先進的なことをしてるっぽいけど今では時代の徒花感あるモノリシックなシステム -
非IT企業でバージョン管理システムが一般的になったのは00年代だから30年前の慣習
数年に1回、1〜2行変更するだけみたいな変更の頻度や範囲が極端に小さいスクリプトが主体ならリポジトリ維持管理の手間とコメント残しで問題が発生するリスクを天秤にかけると合理的な判断である可能性もなくはない -
最近プログラミング始めた初心者
jupyter lab で独自のショートカット作りたいんだけど作り方がわからん
https://i.imgur.com/NdmC85Y.jpeg
https://i.imgur.com/zuOLEFd.jpeg
https://i.imgur.com/caLdfwI.jpeg -
タメ口で質問書くのやめなー?
-
そんなこと言わず
さあ教えてくれたまえ -
出直してこい
-
読んで~読む手紙~
-
書き込みテスト。
-
https://docs.flutter...p-architecture/guide
flutterのMVVMアーキテクチャの説明ではMをrepositoryとserviceとして、serviceをAPI等のエンドポイントをラップするクラスとしてrepositoryから呼び出しているのですが、このようなMVVMの構成って一般的ですか?
また外部とのやりとりをラップするクラスをserviceと名付けるプラクティスやデザインパターン等はあるのでしょうか? -
>>53
一般的
MV*のMはV*の上位に存在してV*に反映されるべき状態を保持するとともに、V*において発生したイベントに対応する状態変化を生じるもの、
というだけの概念であり、その実装方法は特に規定されない
そしてflutterのアプリは実質的な処理をサーバーサイドに移譲する場合が多いから、M部分は自ずとサーバーサイドとのインターフェイスをカプセル化しただけのハリボテとなる
そのようなものをserviceと呼ぶのはSOAのような昔からある慣習であり特別にデザインパターンなどという程のことではないが、
あえて権威ある出典を挙げるとすればこれだろう
https://martinfowler...og/serviceLayer.html -
なんかこの業界プログラム出来ひん人にマウント取るガイジが多い。さっきvscodeでフォルダが開かんバグが起こったんやけどどうすれば良いんやって聞いたら解答してくれたのは一人だけでそれ以外はそんなんも分からんのか池沼みたいなレスポンスしか無かった。結局コマンドパレット開いてview resetで直ったけど…この業界初心者に対してマジで辛いから辞めた方が良い。
-
ここは質問スレであって愚痴スレではない
多分周囲がお前に対して冷たいのは
お前がいろいろとルールを無視したりして
迷惑をかけていることが原因の可能性が高いな -
最低限のスキルもないのにそれで給料もらってたら軽く詐欺だろ
軽蔑されて当然 -
macOSのターミナルで
sudo command-name
と入力するとパスワードを求められ、入力すると
Sorry, try again.
と出力されました
思いつきで cool-retro-term で同じようにすると期待どおりに実行できました
何度繰り返しても同じで(ターミナルでは失敗、coolでは実行可能)、まったく理由が分かりません -
ターミナルでの失敗とは、
Sorry, try again.
と再度パスワードの入力を促され、3度めの失敗後に「3度失敗したのでダメ」のようなメッセージを印字してプロンプトに戻りました -
ドンキで売ってる3万PCってWi-Fi接続できる?
-
user idとかgroup idとかその許可条件設定とか調べてみたら?
あとまさかの違うバイナリ実行してないかとか?
3万台でもWi-Fi付いてるから大丈夫でしょ -
ありがとうございます
同一ユーザだし、どちらも同じディレクトリから
sudo ./command-name
としてるので… -
ユーザ、グループの許可条件のことは分かりません(ふだんはWindowsの民なので
-
製品によっては5GHz帯に対応していないかもしれないが、2.4GHz帯なら大体イケるよ。
>>ドンキPC -
>>59
興味深い。もしかしてターミナルの方だと何故か入力がそのままsudoに渡ってないとか?
ターミナルは素のままですか? 設定をいじったり追加のユーティリティーを使ったり等は?
実験するなら試しに管理者権限のあるアカウントを別途作ってそのアカウントで
ターミナル上のsudoが使えるか試してみるとか? -
readコマンドで一旦パスワードを変数に受けて
それをechoで表示したりxxdで確認したりsudo -Sで渡したりして確認してみれば?
バックスラッシュやスペースが入ってる場合はreadする時に注意が必要 -
>>66 >>67
ありがとうございます
ターミナルは素のままです
ただ、ご存知かもしれませんが、cool-retro-term はよく分かりませんが、GUIを被っているので…
以前は素のターミナルで問題がなかったのですけど(記憶の限り)
実際のコマンドは、/usr/local/bin へコンパイルしたツールをコピーするために
sudo make install
(cp)しているだけです
sodo ./command としても NGだったと書いたのは、説明のため、確認した結果を報告しました
あと、指摘がありましたが、ユーザのパスワードに「バックスラッシュ」が含まれていることがまず浮かんだのですが(実際に日本語キーボードでの「円記号」が混じっています)、前述のとおり、かつてはターミナル上でも問題なかったと記憶しています(これがそもそも記憶違いなのかな….) -
ターミナルソフト毎に文字入力の方針や設定が異なることは可能だから
パスワードとしてではなく普通に見えるように打って確認すべきような -
キーボード上は円記号でもIMEやターミナルアプリの設定で
入力はバックスラッシュになってる可能性がある
バックスラッシュならエスケープが必要
echo “¥¥” | xxdとかで5cかどうか見ればいい -
キートップの文字が円記号のキーはターミナル上では '\'(バックスラッシュ)で入力されるので、パスワードを入力する際にエスケープされることを期待して円記号のキーを2連続で押下したりもしたのですけどダメで(入力したパスワードはエコーされませんが)
ちょっと調べてみたのですが、「sudo -S」で渡す、というアイデアについての記述が見つからず…
「echo -n "\\" | xxd」の結果も「5c」だし(というか、タイプした時点でバックスラッシュで表示されますが)
たまたま試みた cool-retro-term で上手くいったからよかったものの…
みなさん、ありがとう -
使い方が間違っているのかな:
echo "パスワード" | sudo -S echo abc
は、Linuxのターミナル(bash)、cool-retro-term では成功するけど、macOSのターミナル、cool-retro-term ではともに失敗します
Linuxではターミナル、cool-retro-term ともに、円記号のキーを押下するとバックスラッシュがエコーされますが、macOSではターミナル(zsh)ではバックスラッシュ、cool-retro-term では円記号がエコーされますね
# 問わず語り申し訳ないです -
文字が画面でどう見えるかとそれがどういうコードかは別なので、要確認
あとは単にバックスラッシュを含まないパスワードに変更するとか -
そうですね、いずれにしても \x5c だし
-
今 AI があるけどどれぐらい プログラミングの勉強をしたらいいもんなんだろう
全部自分でかけるようになるまで勉強するのは効率悪いし かと言って 丸ごと AI で作れるわけじゃないし
全体の設計図を作れるようにして それぞれのクラスだか モジュール高を AI に任せて作るみたいな感じがいいのかな -
プログラミングに限ったハナシではないけど、既に一部のプロトタイピングでは「成果物を作成する実務者としてのエージェントに対して、対象領域の専門家として助言を与える立場で関わる(補佐として立ち回る)」ことを前提とした、以下のフローが定着しつつある
1) 自然言語による指示(参照資料の提示含む)で制作を依頼
2) 成果物を受け取る
3) エージェントとディスカッションして成果物を磨く
4) 一連のやり取りにおける振り返り資料(手続き上の課題とその解決に向けたアプローチ案)の作成を依頼
5) 成果物と振り返り資料を社内で共有 -
もうプログラミング知識必要なくなってるのか
-
既に人間によるコーディングが不要になりつつあるのは事実なのだけど、
だからといって巷で言われているようにユーザーが簡単に自分で作れてしまうからSaaSが消滅するという段階までにはまだまだ時間がある
ユーザー企業のITリテラシーは有名な大企業の情シスレベルですら驚くほど低く、そこまで降りてくるにはおそらく2,30年はかかる
それを踏まえ、一つの生存戦略としてユーザー企業サイドに入るのはアリで、基本情報程度の知識があればそれほど高度なスキルがなくても十分に活躍できる
AIで武装した上であくまで開発で戦うのもいいけど、仕事に命懸ける気がないんなら楽で安泰な良い選択よ -
20年後はともかく30年後はもう人間なんかおらんやろ
特異点を経てポストヒューマン出現後の時代や
日本のムーンショット計画ですら現在の産業構造はもうないと想定してる -
自前でcompiler explorerやideoneのようなオンラインサービスを実装したいんですがどんな知識が必要になりますか?
-
AIエージェントを使いこなす知識
-
youtubeでどういう形でローカルにデータ送ってるの?
FC2だとネットワーク監視してたら1Mくらいのtsファイルがコロコロ流れてくるから分かるんだけど
youtubeって動画と思える容量のデータが流れてこない
yt-dlpとかどうやって保存してるんだ? -
>>86
動画によって違う可能性はあるけど普通のやつはgooglevideo.com/videoplaybackにリクエストしてるやつがそれ
↑今すぐ読める無料コミック大量配信中!↑