スレ立てるまでもない ..
[2ch|▼Menu]
491:デフォルトの名無しさん
22/07/25 02:02:04.18 BZBhu3k0.net
有線LANの作例はいくらでもあるしWiFiやBTモジュールで通信させる方法もある
そしてSSL/TLSが欲しくなるまでがセット

492:デフォルトの名無しさん
22/07/25 04:19:42.61 fR7BwuK/.net
>>476
Linux使えばいいだろ?
それともOSなしでIoTしないといかんのか?

493:デフォルトの名無しさん
22/07/25 06:55:34.42 EqxRHHki.net
チップメーカー提供のなりFreeRTOSのなりAzureRTOSのなり使えば良い
TCP/IPどころかTLS/SSLまで用意されているよ

494:デフォルトの名無しさん
22/07/25 11:21:33 dJJE5upa.net
適当に必要なツールだけ造って
面倒な部分は M5StickC にやらせると楽

495:デフォルトの名無しさん
22/07/25 12:58:59.87 +sFX7yRz.net
一口にIoT言っても
・Wi-Fi/BT回線かLTE回線か
・常時給電か否か
・LinuxかRTOSか
・ダウンタイム要求
でだいぶ難易度が違う

496:デフォルトの名無しさん
22/07/25 13:01:00.01 Ag7GGmTP.net
windowsもあるゾ!

497:デフォルトの名無しさん
22/07/25 17:44:12.29 vWw940/9.net
IoTに限った話じゃないけどWindowsを使う必然性ってあまりなくね?

498:デフォルトの名無しさん
22/07/25 17:51:54.32 mBcdUBse.net
普通に考えたら組み込みとかにWindows使う必要無いのだけど案外使われているという事は
大きな企業ほどフリーソフトで無料の


499:ものは避ける傾向があるということ RDBでもオラクルを使うのはその辺もあるし、OSにしてもred hatとかは企業向けもあるけど Windowsにしておけば何かあっても責任逃れ出来るという事だろうなぁ



500:デフォルトの名無しさん
22/07/25 17:52:34.96 fnQLcriz.net
組み込み系や制御系の開発PCはほとんどWindowsだよ
SDKやツールの対応がWindowsファーストだからな

501:デフォルトの名無しさん
22/07/25 18:00:04.51 AXHgFxoO.net
メーカーの老害にはmacは使いこなせないからだよ

502:デフォルトの名無しさん
22/07/25 18:37:43.52 nPMjx1b5.net
macは時代を30年ほど間違えてないか?って値段だろ
LinuxかFreeBSDでえーやん?

503:デフォルトの名無しさん
22/07/25 18:40:12.32 YKvWEWzT.net
下請け丸投げしかできないメーカーのゴミ社員はwindowsでエクセルしか使えないからだよ

504:デフォルトの名無しさん
22/07/25 18:50:14.35 XGvRm+qF.net
ハード屋さんが使ってたロジアナがWinXPで動いててビックリしたわ

505:デフォルトの名無しさん
22/07/25 18:57:37.62 GOtCNvAE.net
macは高級感だけで金払う馬鹿を鴨にする戦略だから

506:デフォルトの名無しさん
22/07/25 19:02:31.32 2PhM5qDH.net
>>485
利益に繋がっているとは言いがたいのがポイントだなw

507:デフォルトの名無しさん
22/07/25 21:11:33.38 GOtCNvAE.net
ケンタウィルスは絶滅汁

508:デフォルトの名無しさん
22/07/25 21:38:03 dV4kzGF1.net
>>486
EDAはWindows優勢だけどMCUやFPGAの開発ツールはLinux版も同時リリースされてない?

509:デフォルトの名無しさん
22/07/25 22:21:56.73 nPMjx1b5.net
RDBだとまぁOracleがトップ、次点がPostgreSQL, SQL Server、その下はMySQL
どういう訳かはしらないけどDB2は一回しか経験ない
フリーのPostgreSQLとかMySQLを使ってたのはバリ一部上場だし、もうあまり有料無料は関係なさそうかな

510:デフォルトの名無しさん
22/07/25 22:29:55 dV4kzGF1.net
そう言えばソニーセミコンのソフト開発系?はLinuxメインかもね
Spresenseの開発環境はLinuxファーストだったような

511:デフォルトの名無しさん
22/07/25 22:32:31 oUQ2GGC1.net
・日立、週休3日で給与維持 生産性向上へ働き方改革 時間から成果へ転換
・日立、最低勤務時間を撤廃 「週休3日」も可能に
・2022年の新入社員、79.8%がテレワーク オフィスの必要性は?
・日立、富士通、NEC…「ジョブ型雇用」を大企業が続々導入する理由
・日立やNECが導入へ 「週休3日」は人材獲得の切り札
・リクルートグループ、週休「約3日」に。4月から年間休日を145日に増加へ
・カルビー/国内社員3900人を対象に副業解禁
・介護職の週休3日制をサポート 宮城県、難しい3連休も可能に

512:デフォルトの名無しさん
22/07/25 22:54:07 gTrk2zFk.net
AWS IoT で良い。
ただし、AWSの12資格には、IoTの資格がないけど

Windows をサーバーで使うことはない。
クライアント・操作側で使うだけ

今は、クラウドのすべてのシステムがDocker だから、
DockerはLinux だけの技術だから、Linuxを使わざるを得ない

513:デフォルトの名無しさん
22/07/25 23:05:15.21 dV4kzGF1.net
ちょっと前に発売された音ゲーがWindows環境よりProton環境の方が遅延が少なくて快適なんてオチがあった

514:デフォルトの名無しさん
22/07/25 23:24:47.38 N/8RfmxG.net
500

515:デフォルトの名無しさん
22/07/26 00:42:45.75 7eeTS5R1.net
>>498
あわしろを召喚しちまうからLinuxの話題


516:はやめとけ。



517:デフォルトの名無しさん
22/07/26 10:40:36 72WDY9Tv.net
みなさんは変数名はきっちり英単語にして付けてます? それとも日本語ローマ字的なものもOKでやってます?

518:デフォルトの名無しさん
22/07/26 11:00:10.77 b/a9cbVb.net
>>472
なるほどね、同意しましょう

519:デフォルトの名無しさん
22/07/26 11:55:16.39 EFLNvNJ6.net
サーバを所有するという概念が十年スパンの長期的にはオワコンになると思うな
DockerにしろVMにしろ仮想環境ソリューションは今だけで、将来的にはLambdaのような疎結合な計算機資源に移行すると思う
モノシリックが過ぎるよ仮想環境とかVPC
無くなるという意味じゃなく、三十年後くらいには完全に基盤として隠蔽されてマネージドがメインストリームになるという
ただLightsailみたいなサーバは多重化とか関係ないからアプリケーションとして残る

520:デフォルトの名無しさん
22/07/26 12:03:39.48 ZN4y9/Yq.net
IT後進国のジャップランド以外ではな

521:デフォルトの名無しさん
22/07/26 12:13:37.87 DIb0h0GI.net
>>502
普段は英単語だけど、たまにnaikei(内径)とか使っちゃう

522:デフォルトの名無しさん
22/07/26 17:58:19.46 gc9s0ohk.net
モノシリックωωω

523:デフォルトの名無しさん
22/07/26 22:55:38.11 5qP0bzbL.net
テキストボックスとラベルを比較したいんだけどこれじゃうまくいかないのでどうすればいいか教えてください
ボタン押しても10点しか出ない
Dim inp1 As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles URLリンク(Button1.Click)
inp1 = TextBox1.Text
Label1.Text = CStr(Int(Rnd() * 99))
Label2.Text = "得点"
If "inp1" = Label1.Text Then
Label2.Text = "100点"
ElseIf "inp1" > Label1.Text Then
Label2.Text = "10点"
ElseIf "inp1" < Label1.Text Then
Label2.Text = "5点"
End If

524:デフォルトの名無しさん
22/07/26 22:58:00.90 5qP0bzbL.net
>>508
visalstudioです

525:アリ人間
22/07/26 23:13:19.30 SFGiBpCo.net
>>508
inp1と"inp1"の違いはわかりますか?
前者は変数であり、後者は文字列リテラルです。

526:デフォルトの名無しさん
22/07/26 23:15:05.41 tkxwNYDd.net
AWS Lambda でも、Ruby などの他に、Docker も使える
こんなに流行っているPHP は、デフォルトで用意されていない。
プロ用の言語とは、みなされていない

527:デフォルトの名無しさん
22/07/26 23:31:05.10 MJpCL8rD.net
>>510
すみませんよくわかりません
" "を消すことで点数は出るようになったのですが
textboxに何も入力出来ずにボタンを押すと今度は5点が出るようになってしまいました
また数値の差(textboxとlabelの差が10以内ならAを表示20より上ならBを表示)などはどうすればいいのでしょうか

528:デフォルトの名無しさん
22/07/26 23:31:14.00 khPn0eWd.net
>>511みたいなRubyガイジは消えてねw
Rubyなんてもう仕事では使われなくなっている訳だがw

529:アリ人間
22/07/26 23:45:37.56 SFGiBpCo.net
>>512
イベント駆動、制御構造、文字列と数値の違いもわかってないみたいだから、前の単元を見直して再勉強して下さい。

530:デフォルトの名無しさん
22/07/26 23:52:00.61 EFLNvNJ6.net
>>512
次は文字列から数値に変換してから比較
VBだと思うが文字列比較してるから大小比較には使えない
入力できない件はTextコントロールのEnableプロパティがFalseにでもなってるんだろ

531:アリ人間
22/07/26 23:53:31.94 SFGiBpCo.net
数値の差は引き算と絶対値を使えば得られる。
その前に文字列を数値に変換する必要がある。

532:デフォルトの名無しさん
22/07/27 00:18:54.56 nNmP47B2.net
>>515
>>516
数値の変換はinp1=Val(textbox.text)で正しいのでしょうかそれともIf Val(inp1) = Label1.Text Then でも大丈夫ですか?
あとtext boxに何も入力出来ずにではなくしずにでしたすみません

533:アリ人間
22/07/27 00:25:27.19 LZk+uw73.net
変数には型があって、As Stringと書いた変数は文字列型になる。数値を文字列型の変数に代入することはできない。
式にも型がある。

534:アリ人間
22/07/27 00:31:01.68 LZk+uw73.net
文字列型と数値型の比較は、、、やらん方がいいな。

535:デフォルトの名無しさん
22/07/27 00:35:28.64 RpXAKi4d.net
>>518
Dim inp1 As integer
にするということですか?

536:アリ人間
22/07/27 00:38:41.47 LZk+uw73.net
Label1.Textは文字列型だね。

537:デフォルトの名無しさん
22/07/27 00:50:16.57 L+cMx9Xr.net
>>521
すみませんわからないので
>>508のどこが間違っているか具体的に教えてくれませんか?

538:アリ人間
22/07/27 00:52:50.73 LZk+uw73.net
>>522
何がしたいのかさっぱりわからん。
日本語でプログラムを書いてくだされ。

539:アリ人間
22/07/27 00:56:01.02 LZk+uw73.net
Label1は何に使うのか
TextBox1は何に使うのか

540:デフォルトの名無しさん
22/07/27 00:58:25.68 vjLtCyiu.net
>>523
>>508に書いてある通りtextboxに入力された数値とlabelに出るランダムな数値を比較してlabel2に表示させたいです

541:アリ人間
22/07/27 01:06:32.36 LZk+uw73.net
ランダムな数値をValue1に代入する。
Label1にValue1を文字列にしたものを格納する。
TextBox1の文字列を数値にしたものを変数Value2に代入する。
Value1とValue2を比較する。
Value1 > Value2なら「大きいです」という文字列を(以下略)

542:アリ人間
22/07/27 01:13:48.04 LZk+uw73.net
Value1, Value2という2つの変数が必要。
ランダムな数字を表示するのはいつ? ボタンを押したとき?

543:アリ人間
22/07/27 01:18:20.56 LZk+uw73.net
複数回比較するので、変数に代入せずに変換する式をそのまま書くのは冗長。

544:デフォルトの名無しさん
22/07/27 01:20:57.98 MwlsM79e.net
>>526
cstrではダメということですか?

545:アリ人間
22/07/27 01:22:57.37 LZk+uw73.net
>>529
文字列比較と数値比較は、少し違うんだな~、これが。
"124" > "1234"

546:デフォルトの名無しさん
22/07/27 01:23:03.27 dBfhXkJs.net
>>527
ボタンを押した時です

547:デフォルトの名無しさん
22/07/27 01:28:33.91 8iD3kOwS.net
今の状態ではlabelもtextboxも変数にはなっていないということですか?

548:アリ人間
22/07/27 01:29:37.99 LZk+uw73.net
日本の情報教育では、出題者の意図を推し測るのが義務化されているので、問題がLabel2への格納を暗に要求しているのであれば、そのように書かなければならない。
問題文はどうなってる?

549:アリ人間
22/07/27 01:31:05.90 LZk+uw73.net
フォームでLabel1を配置したのであれば、Label1.Textは文字列変数として使える。

550:デフォルトの名無しさん
22/07/27 01:33:27.91 9eouHVow.net
>>533
スロットを使って2桁の整数を作る
・ 入力欄に 99 以下の整数を入力して、「判定」ボタンを押すと、入力された数値とスロット
の数値を比較して、その差によって以下に示すような点数が表示されるゲーム
・ 「判定」ボタンと「終了」ボタン、数値の入力欄、スロット表示欄、得点表示欄の5つは必
ずつけること。
・ 入力欄とスロット、得点のクリアボタンを作る(クリアの状態は自由に設定して OK)
・ コードには、意図が伝わるようにコメントを書き入れる
<点数と条件>
・ 2 つの数値が一致したら、100 点をフォーム上に表示
・ 一致していないが、2 つの数値の差が 10 以内だったら 10 点をフォーム上に表示 ・ 2 つの数値の差が 10 より大きく 20 より小さかったら5点をフォーム上に表示 ・ 2 つの数値の差が 20 以上だったら 0 点をフォーム上に表示
こんな感じです

551:デフォルトの名無しさん
22/07/27 01:35:03.65 D3U44Pck.net
リテラルとカフ


552:Fラテ おいしいのはネスカフェ



553:デフォルトの名無しさん
22/07/27 01:38:13.06 fjgr5dHm.net
>>534
その文字列変数を数値に代入してから比較するということですか?

554:アリ人間
22/07/27 01:39:32.12 LZk+uw73.net
わかってないようだが、VBでは日本語変数名・日本語コントロール名が使えるはずだ。
まず、フォームに何を配置する?
ボタン、ラベル、テキストボックスの三種のコントロールが使える。
ユーザーはラベルには入力できない。
ユーザーはテキストボックスに文字列を入力できる。

555:アリ人間
22/07/27 01:42:52.40 LZk+uw73.net
「判定」ボタン、
「終了」ボタン、
「数値入力」テキストボックス、
「スロット表示」ラベル、
「得点表示」ラベル。
これでいこう。

556:デフォルトの名無しさん
22/07/27 01:43:55.82 YSkUdWVs.net
>>539
それは既に配置しています

557:アリ人間
22/07/27 01:49:59.36 LZk+uw73.net
Dim 値1 As Integer
Dim 値2 As Integer
Dim 差分 As Integer
値1 = Int(Rnd()*99)
スロット表示.Text = CStr(値1)
値2 = Val(数値入力.Text)
差分 = Abs(値1 - 値2)

558:アリ人間
22/07/27 01:51:03.95 LZk+uw73.net
スロットっていうことは、タイマー使ってクルクル回した方がいいのか?

559:アリ人間
22/07/27 01:58:07.37 LZk+uw73.net
フォームにタイマーを配置。
フォームが初期化されるときに0.33秒間隔のタイマーを起動。
タイマーイベントが発生したら、スロットの文字列をランダムな数字で更新。

560:アリ人間
22/07/27 01:59:20.33 LZk+uw73.net
判定ボタンを押したらタイマーを停止。
終了ボタンを押したらフォームを閉じる。

561:アリ人間
22/07/27 02:00:55.62 LZk+uw73.net
待てよ、スロットは規則正しく動かすべきか、それともランダムに変えるべきか。

562:デフォルトの名無しさん
22/07/27 02:02:44.06 qI+Uo5vp.net
>>541
 Dim inp1 As Integer
Dim inp2 As Integer
Dim inp3 As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  inp1 = Label1.Text
inp2 = Val(TextBox1.Text)
inp3 = Val(inp1 - inp2)
inp1 = CStr(Int(Rnd() * 99))
ということで大丈夫ですか?

563:アリ人間
22/07/27 02:05:27.70 LZk+uw73.net
>>546
それならinp1は整数でTextBox1.Textは文字列となる。
整数変数に文字列を代入するのはおかしい。

564:アリ人間
22/07/27 02:10:07.62 LZk+uw73.net
>>546
代入文は順序が大事。ランダムな値を求めるのが先。

565:デフォルトの名無しさん
22/07/27 02:10:38.30 kUpgZ120.net
>>547
この状態だとinp2 = Val(TextBox1.Text) は
>>541の値2とは書いてあることは同じではないのですか?

566:デフォルトの名無しさん
22/07/27 02:12:35.54 kUpgZ120.net
>>548
つまり
Label1.Text = CStr(Int(Rnd() * 99))
inp1 = Label1.Text
inp2 = Val(TextBox1.Text)
inp3 = Val(inp1 - inp2)
ということですか?

567:アリ人間
22/07/27 02:13:43.00 LZk+uw73.net
>>550
> inp1 = Label1.Text
文字列を整数変数に代入できない。

568:デフォルトの名無しさん
22/07/27 02:16:20.29 kUpgZ120.net
>>551
なので>>541みたく分けないといけないということですか?

569:アリ人間
22/07/27 02:17:47.50 LZk+uw73.net
>>552
文字列を整数にしたものを返す関数があるから、それを使う。

570:アリ人間
22/07/27 02:20:59.51 LZk+uw73.net
スロットマシンのような動作を期待しているのであれば、タイマーを使ってクルクル回す必要がある。なんなら音を出して、カジノのような演出も必要かも知れない。
出題者の意図をよく理解するんだ。

571:デフォルトの名無しさん
22/07/27 02:22:17.13 kUpgZ120.net
>>553
inp1 = Label1.Text
inp2 = Val(TextBox1.Text)
inp3 = Val(inp1 - inp2)
inp1 = CStr(Int(Rnd() * 99))
それがこの状態だとまだ出来ていませんか?
その関数はintとはまた別なのですか?

572:デフォルトの名無しさん
22/07/27 02:23:41.61 kUpgZ120.net
>>554
基礎レベルなので多分それは大丈夫だと思います

573:アリ人間
22/07/27 02:24:32.42 LZk+uw73.net
inp1 = Label1.Text
の左辺は整数変数。右辺は文字列。
型の不一致。
inp1 = CStr(Int(Rnd() * 99))
の左辺は整数変数。右辺はCStrの値なので文字列。
型の不一致。

574:アリ人間
22/07/27 02:26:47.85 LZk+uw73.net
CIntかValを使えば文字列を数値に変換できる。

575:アリ人間
22/07/27 02:29:56.55 LZk+uw73.net
あとはいくつかのIf文で差を比較し、場合分けして得点表示.Text に適当な文字列を代入すればいい。

576:デフォルトの名無しさん
22/07/27 02:32:21.15 hUPssU1v.net
>>558
inp1 = Val(Int(Rnd() * 99))
Label1.Text = CStr(inp1)
inp2 = Val(TextBox1.Text)
inp3 = Val(inp1 - inp2)
こういうことですか?

577:アリ人間
22/07/27 02:33:05.88 LZk+uw73.net
絶対値を求める関数はAbs

578:デフォルトの名無しさん
22/07/27 02:36:13.30 hUPssU1v.net
>>561
Absは宣言されていないと出てしまいます

579:アリ人間
22/07/27 02:37:16.50 LZk+uw73.net
System.Math.Abs

580:デフォルトの名無しさん
22/07/27 02:41:06.00 QfftK3Ne.net
>>563
すみませんそれだけ書かれてもよくわかりません

581:アリ人間
22/07/27 02:41:25.80 LZk+uw73.net
廃止予定のVB.netを教材に使うなんて


582:学校はひどいことをしますなあ。



583:アリ人間
22/07/27 02:43:48.59 LZk+uw73.net
inp3 = System.Math.Abs(inp1 - inp2)

584:デフォルトの名無しさん
22/07/27 02:46:02.40 mBvV44nn.net
>>566
ありがとうございます

585:デフォルトの名無しさん
22/07/27 02:48:16.34 mBvV44nn.net
これで前提条件は完成ということで大丈夫なのでしょうか?

586:アリ人間
22/07/27 02:51:54.76 LZk+uw73.net
>>568
実行してみてエラーが出ない。
そして、二分間画面をにらみつけて、間違いが見つからなければ次に進めばいい。

587:デフォルトの名無しさん
22/07/27 02:57:24.54 AEbD6U5/.net
>>569
エラーは出ませんでした
If inp2 = inp1 Then
Label2.Text = "100点"
ElseIf inp1 > inp2 Then
Label2.Text = "10点"
ElseIf inp1 < inp2 Then
Label2.Text = "5点"
End If
下はこのようなコードなのですがtextboxに何も入力せずにボタンを押すと10点と出てしまいます
また比較の段階ではinpは既にvalで数値化しているのでvalをつけなくても問題ないという認識で間違っていないでしょうか?

588:アリ人間
22/07/27 02:58:18.78 LZk+uw73.net
※実行結果が間違いかどうか判定するのは、初心者なら自分自身だが、上級者はテストを自動化できる。

589:アリ人間
22/07/27 03:01:09.00 LZk+uw73.net
テキストボックスに何も入れない、ということは.Textが空文字列になる。空文字列をValに渡すとどうなるか?
空文字列かどうか判定する必要があるかも知れない。

590:アリ人間
22/07/27 03:02:49.33 LZk+uw73.net
数値化しているものを数値化するとは意味をなさない。

591:アリ人間
22/07/27 03:05:17.77 LZk+uw73.net
2つの数値の差がinp3だろ?

592:デフォルトの名無しさん
22/07/27 03:10:08.15 jODmrfct.net
>>574
はい

593:アリ人間
22/07/27 03:11:42.49 LZk+uw73.net
>>575
もう一度、判定条件を読み直し。

594:デフォルトの名無しさん
22/07/27 03:11:50.99 jODmrfct.net
自動でデバッグが必要ということもわかるのですが
まず 一致していないが、2 つの数値の差が 10 以内だったら 10 点をフォーム上に表示 ・ 2 つの数値の差が 10 より大きく 20 より小さかったら5点をフォーム上に表示 ・ 2 つの数値の差が 20 以上だったら 0 点をフォーム上に表示
が上手く書けなくて困っています

595:アリ人間
22/07/27 03:13:29.52 LZk+uw73.net
そういうときに便利な「数直線」。
数直線を紙に書いて、場合分けを考える。

596:アリ人間
22/07/27 03:15:18.50 LZk+uw73.net
絶対値は常にゼロより大きいのでカンタンだね。

597:アリ人間
22/07/27 03:17:08.97 LZk+uw73.net
*絶対値は常にゼロ以上なのでカンタンだね。

598:アリ人間
22/07/27 03:19:32.96 LZk+uw73.net
If文に複数の条件式を指定したい場合は、AndかOrを使って条件式をつなげる。

599:デフォルトの名無しさん
22/07/27 03:19:51.93 yKrJTn5K.net
>>580
正直遠回しに言われても理解できないので
どこを直したらいいのか直接的に教えてもらえませんか?
If inp2 = inp1 Then
Label2.Text = "100点"
ElseIf inp1 <> inp2 And inp3 = 10 Then
Label2.Text = "10点"
ElseIf inp1 <> inp2 Then
Label2.Text = "5点"
ElseIf inp1 <> inp2 Then
Label2.Text = "0点"

600:デフォルトの名無しさん
22/07/27 03:20:32.16 yKrJTn5K.net
>>581
それはわかります

601:アリ人間
22/07/27 03:25:42.03 LZk+uw73.net
答えだけ教えたら勉強にならないでしょう。
2 つの数値の差が 10 以内だったら 10 点をフォーム上に表示

ElseIf Inp3 <= 10 Then
10 点をフォーム上に表示。
2 つの数値の差が 10 より大きく 20 より小さかったら5点をフォーム上に表示

ElseIf 10 < Inp3 And Inp3 < 20 Then
5点をフォーム上に表示
2 つの数値の差が 20 以上だったら 0 点をフォーム上に表示

ElseIf 20 <= Inp3 Then
0 点をフォーム上に表示

602:アリ人間
22/07/27 03:27:25.65 LZk+uw73.net
最後に
End If

603:アリ人間
22/07/27 03:29:58.17 LZk+uw73.net
フォームに表示が共通しているから、数値の差から得点を返す関数を作れば、コードが合理的になる。

604:デフォルトの名無しさん
22/07/27 03:31:50.09 yKrJTn5K.net
>>584
ありがとうございます

605:デフォルトの名無しさん
22/07/27 03:33:08.65 yKrJTn5K.net
>>586
なるほど

606:アリ人間 ◆T6xkBnTXz7B0
22/07/27 03:37:40 LZk+uw73.net
時間があったら、その得点判定関数の単体テスト用の関数を書いてみろよ。
いくつかの使用例を想定して、2つの数値と得点数の組を記述するんだよ。

607:デフォルトの名無しさん
22/07/27 03:41:16 yKrJTn5K.net
>>589
わかりました
夜分遅くまで付き合っていただきありがとうございました

608:アリ人間 ◆T6xkBnTXz7B0
22/07/27 03:47:12 LZk+uw73.net
>>590
サイバー世界に夜はない。人助けをしないとここから脱出できないものでな。しかたなくやってるだけさ。

609:デフォルトの名無しさん
22/07/27 03:56:10 OAxBWYWr.net
どんな脱出ゲームなんだよw

610:デフォルトの名無しさん
22/07/27 16:11:49.73 zAtculQV.net
単体テストをmockitoを使って書いてますが、一時的なオブジェクトをモックするには
どうしたらいいでしょうか。例えば以下のようなmethod1()をテストするとき
Obj2 method1() {
 Obj1 obj1 = mendo_na_shori();
 return betsu_no_shori(obj1.hoge());
}
mendo_na_shori()は外部APIを呼ばないといけない、あとobj1の初期化にも深入りしたくない
ので、obj1.hoge()が適当な値を返すようにモックしたいのですが
betsu_no_shori()だけテストすればいいようにも見えてしまいますが、例がうまくないということで

611:デフォルトの名無しさん
22/07/27 16:29:49.90 sRAKzK8I.net
>>593
obj1を外からパラメータとして渡せるようにする
基本的にモックフレームワークの機能で無理矢理差し替えようとするのは悪手で、そもそもモックしやすい設計にすべき

612:デフォルトの名無しさん
22/07/27 16:35:46.22 zAtculQV.net
>>594
なるほど、なんだかテストのためにデザインを変えるようで躊躇していたのですが
むしろそれがいいデザインだったりするということでしょうか
あるいは「テストしやすい」ということを良いデザインの1要件として考えるということでしょうか

613:デフォルトの名無しさん
22/07/27 17:17:41.95 sRAKzK8I.net
>>595
その通り
開発作業を合理的に進めることがデザインの大きな目標なのだから、開発作業において重要な位置を占めるテストを前提にデザインを考えるのは当たり前

614:デフォルトの名無しさん
22/07/27 17:53:16.59 nrHcrDPL.net
API作る費用がないから他の会社が作ったシステムのリードレプリカDB見てデータを取ってこいって流れになってるからなんとか阻止したいのですが、有名なアンチパターンとか何かないですかね?

615:デフォルトの名無しさん
22/07/27 18:51:26.26 5n9aUkym.net
久々にプログラミング復帰しようとして色々ソース見ようと思ったんだけど
昔存在したkodersとかGoogle Code Searchみたいなソースコード検索エンジンってない?

616:デフォルトの名無しさん
22/07/27 18:53:20.17 RFLOe/ZA.net
>>593
セオリーで言うとmethod1が含まれてるクラスのコンストラクタに
mendo_na_shori()を含むクラスのインスタンスを渡す形にしてそいつをモックする
method1がobj1を受け取る形にしたほうがいいかどうかは
純粋にmethod1の責務から考えたほうがいい

617:アリ人間
22/07/27 19:24:01.19 LZk+uw73.net
>>598
URLリンク(qiita.com)

618:デフォルトの名無しさん
22/07/27 19:32:17 5n9aUkym.net
>>600
githubで検索も出来んのね
サンキュー

619:デフォルトの名無しさん
22/07/27 20:48:10.95 8I1dQN/H.net
VSCodeでターミナルに文字が流れて行く時に画面がちらちらするんだけど
何が悪いのかな
argv.jsonの disable-hardware-accelarationはtrueにした

620:デフォルトの名無しさん
22/07/27 20:48:27.26 8I1dQN/H.net
VSCodeでターミナルに文字が流れて行く時に画面がちらちらするんだけど
何が悪いのかな
argv.jsonの disable-hardware-accelarationはtrueにした

621:デフォルトの名無しさん
22/07/27 20:51:57.34 rf18Rv/q.net
2回書いたので失格

622:デフォルトの名無しさん
22/07/27 21:08:44.11 8I1dQN/H.net
VSCodeでターミナルに文字が流れて行く時に画面がちらちらするんだけど
何が悪いのかな
argv.jsonの disable-hardware-accelarationはtrueにした

623:デフォルトの名無しさん
22/07/27 21:09:20.89 8I1dQN/H.net
書き込めませんでしたというメッセージを出すmateが悪い

624:アリ人間
22/07/27 21:09:43.67 LZk+uw73.net
3回書いたので、敗者復活(ぴろぴらぴろ~ん

625:デフォルトの名無しさん
22/07/27 21:17:11.63 E+Dd+vMH.net
専ブラで書込失敗したら本当に失敗したか汎ブラで確認するだろ普通は
自分は悪くないとか言ってるとダメだよ

626:デフォルトの名無しさん
22/07/28 02:37:06.41 RAA7k8hU.net
ポート番号7番でうけるエコーサーバーのソースコードを
調べたいのですが、githubのどこにあるのでしょうか?
bsd,linuxどちらでも構いません
回答よろしくおねがいします

627:デフォルトの名無しさん
22/07/28 08


628::36:13.31 ID:ktot2FQ5.net



629:デフォルトの名無しさん
22/07/28 09:49:49.09 m+r+vKYc.net
>>599
ありがとうございます、今回単体テスト&クラスのデザイン方針でモヤモヤしていた
ことを理解できました(と思います)

630:デフォルトの名無しさん
22/07/28 11:19:00.87 RAA7k8hU.net
>>610
回答ありがとうございます
文字境界をまたいだとき、またぐ時
どんな処理をすべきなのかわからなくて
調べようとしたときエコーサーバーのソースに
たどりつけず質問させていただきました
実験環境
windows10 + python3.9
# わざと少ないバイト数にする
BUFSIZE = 4
# どんな文字列がくるかわからない
s = input()
#ここでわざと境界をまたぐ6バイトの文字列(utf-8)を入力
s = "ああ"
# 送受信する
サーバー側:recv(BUFSIZE) / クライアント側:send(BUFSIZE)
#この時サーバー側でUnicodeDecodeError例外が発生する
あとどうすれば
>あれはinetd自体がやってたはず
>なのでinetdもしくはxinetdのソース
上記のような回答をできる人になれますか?

631:デフォルトの名無しさん
22/07/28 12:55:50.00 anuMbnBg.net
>>612
改行コードとかメッセージの最後まで読んでから処理するのが一般的だと思うけど
バッファサイズ単位で処理したいならバッファ内の最後の文字境界を自分で見つけて処理するしかない
境界判定のビルトインの関数はあるかどうかしらないけど
UTF8のエンコーディング仕様から簡単に作れるよ

632:デフォルトの名無しさん
22/07/28 13:02:24.91 6VdmJHz7.net
じゃあ簡単ならここで作って

633:デフォルトの名無しさん
22/07/28 13:04:30.10 4pySRXlJ.net
そもそもUTF8の文字列なのに何故適当なバイト数でデータを送るのかと・・・
そんな事する必要ある?

634:デフォルトの名無しさん
22/07/28 14:34:28.40 xT3NfTao.net
>>614
もしかして難しかった?

635:デフォルトの名無しさん
22/07/28 16:36:20.49 ktot2FQ5.net
>>612
>あとどうすれば
おじさんが学生の頃は 1) UINX系雑誌の記事 2) 情報科学の授業 3) 自分で inetd
を設定する 4) 各種フリーUnixの開発に参加 とかそういうので覚えた

636:デフォルトの名無しさん
22/07/28 18:08:38.84 XOOrQuM3.net
何番のポートをどのプログラムが使ってるのか調べられない状態を解決すべきやろ

637:デフォルトの名無しさん
22/07/28 19:17:44.93 I6yUEl7R.net
何番のポートをどのプログラムが使ってるのかどうやって調べますか?

638:デフォルトの名無しさん
22/07/28 20:06:49.78 Hv8PyQaz.net
UTF8は1byteずつ読んだときに上位bitでそれが
UTF8の1文字での何byte目か(少なくとも1byte目かそれ以外=コードの途中)が判るのと
その1文字を表すのに全体が何byte必要とするかも判るで
もし最後の1文字が途中で終わってるならそれを処理せずに先送りとして
その1文字(の途中のbyteまで全て)を次の読み込みのバッファの先頭に移動する

639:デフォルトの名無しさん
22/07/28 20:11:33.62 Hv8PyQaz.net
>>619
netstat -a -n -t -b
netstat -a -n -t -b -p TCP
netstat -a -n -t -b -p UDP
(管理者権限が必要)

640:デフォルトの名無しさん
22/07/28 21:51:39.57 RtxUWi1z.net
>>620
最後の1文字は途中で終わってるかどうか判定せずに必ず次のイテレーションに回すと楽ちんだよ

641:デフォルトの名無しさん
22/07/29 08:15:17.32 cNymJqdP.net
おはようございます
色々アドバイスいただきありがとうございます
inetd


642:関連のソース見ることができました https://www.web-dev-qa-db-ja.com/ja/linux/inetd%E3%81%8A%E3%82%88%E3%81%B3echo%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9/960332980/ https://github.com/freebsd/freebsd-src/tree/main/usr.sbin/inetd ちらりとみてみただけですが https://github.com/freebsd/freebsd-src/blob/main/usr.sbin/inetd/builtins.c にあるecho_stream関数を見るとBUFSIZEで8192がinetd.hに定義されており バッファのサイズが問題とならないのかなと考えます で、マルチバイト文字列のバッファサイズのまたぎ問題は、 このソースを見ても解決せず 皆さんの書き込みを元に自分で解決するしかないのでしょうか? サーバー側でうまく処理してると勝手に思い込んでいました



643:デフォルトの名無しさん
22/07/29 10:42:45.13 +KqLS8gA.net
ものすごく適当なこと言うけどechoは内容を解釈しないから、単に読み込みのバッファなんじゃないか?
全部読んでから処理しなきゃならない謂れはないはず

644:デフォルトの名無しさん
22/07/29 10:50:48.96 nIcw6oQb.net
>>622
最後の一文字かどうかはどうやって判定してんの

645:デフォルトの名無しさん
22/07/29 11:06:47.79 cNymJqdP.net
>>624
URLリンク(www.faqs.org)
確かに、やってきたどんなデータでも単純に送り返すと書いてありました

646:デフォルトの名無しさん
22/07/29 11:12:07.00 pXf+MkzI.net
>>612
一般的にはそこには少なくとも二つのレイヤがある
一つは文字コードなどの意味解釈を行わずに純粋にバイト列として扱う(相対的に)下位レイヤ
もう一つは文字コードなどの意味解釈を行ないそれを扱う(相対的に)上位レイヤ
上位レイヤでは文字コードなど意味のある塊が揃った時点で揃った分を扱う
下位レイヤでは単なるバイト列として自由な区切りで意味を考えずに扱う
つまり下位レイヤを扱う関数ならばUTF8等の途中であろうがバイト列として扱うのみなのでエラーは起きない
一方で上位レイヤを扱う関数ならばUTF8等の途中を渡してはいけなくエラーとなる

647:デフォルトの名無しさん
22/07/29 11:18:11.34 Ft0zsWoe.net
>>623
バイト列をUTF8の文字列として解釈する側でハンドリングするわけで
echoサーバーにその機能は必要ないわな

648:デフォルトの名無しさん
22/07/29 11:24:44.18 6gtXfrq1.net
>>625
後ろから読んでUTF-8の1バイト目を見つける
そのバイト以降が最後の1文字

649:デフォルトの名無しさん
22/07/30 09:04:08.72 WotJou7a.net
csvファイルからグラフを生成する、チェックボックスのONOFFで動的に動くものを作りたいと思っています。
javascriptなんか作りやすそうなイメージがあるのですが、javascriptよりもおすすめの言語があったら教えてほしいです。
Excelは持っていないのでそれ以外でお願いします。

650:デフォルトの名無しさん
22/07/30 09:57:21.27 paa5jUiA.net
python + streamlit

651:デフォルトの名無しさん
22/07/30 10:01:26.70 DT45UaHm.net
>>627
二つのレイヤの指摘、ありがとうございます
サーバー側では、下位レイヤだけを実装
クライアント側で、下位レイヤから受け取ったバイト列を
上位レイヤで意味を解釈する方針(>>628 の指摘)で実装することにしました

652:デフォルトの名無しさん
22/07/30 13:47:23.91 YFPQRSdb.net
>>630
google sheets

653:デフォルトの名無しさん
22/07/30 15:11:27.72 8gKCOMRQ.net
「javascript チャート ライブラリ」で検索!
D3, Chart.js など
ファイルを読み込む、サーバー側はRuby on Rails, Node.js, Electron など?
サーバー無しで、ブラウザだけで読み込めるかな?

654:デフォルトの名無しさん
22/07/30 16:32:24.03 WWl3Q6b+


655:.net



656:デフォルトの名無しさん
22/07/30 21:39:12.32 iw5u05vO.net
>>630
Python+Flask+matplotlib
最近そういうのをこれで作ったけど、JavaScriptのが楽かもしれない
URLリンク(matplotlib.org)
Webアプリでいいならだけど

657:デフォルトの名無しさん
22/07/31 02:32:21.12 EDJ4BvE5.net
>>629
本気で文字の境界を気にするならUTF-8の境界での処理では不十分
もっと深いUnicodeとのお付き合いが必要になる

658:デフォルトの名無しさん
22/07/31 11:10:30.18 oFxEgVvh.net
企業独自の外字とかいうゴミ廃止して欲しい

659:デフォルトの名無しさん
22/07/31 12:26:17.57 8xjafgfh.net
>>630です。
.NETとpythonはjavascriptよりも手間がかかりそうとのことなので
javascriptかgoogle sheetsのどちらかで作ろうと思います。
javascriptってhtmlやcss同様クライアントサイドで動くと思うのですが
グラフのフレームワークを使う場合は例外でサーバーサイドも意識しないといけないってことはないですよね?
公開することは考えておらず自分が見れればいいという感じです。

660:デフォルトの名無しさん
22/07/31 13:07:59.98 73140SZc.net
>>637
grapheme cluster境界でのみ分割したいなら
送信側で対処しないと非効率

661:デフォルトの名無しさん
22/07/31 15:11:27.41 3aGOnqYZ.net
>>639
VSCode の拡張機能・Open in Browser では、
右クリックメニューから、HTML ファイルをブラウザで表示できる
まあ普通に、HTMLファイルをダブルチェックしても、ブラウザで見れる
file:///C:/Users/Owner/Documents/test/a.htm
拡張機能・Live Server を使うと、サーバーを立ててくれる。
URLリンク(127.0.0.1:5500)
CORS 対策としては、サーバーを立てた方が無難。
file:///〜 はローカルファイル・アクセスとなり、
何かのリソースがアクセス不能になる場合もあるから

662:デフォルトの名無しさん
22/07/31 18:04:24.47 SahQ8VsR.net
>>637
IVS廃止のお知らせ

663:デフォルトの名無しさん
22/07/31 21:54:33 pZVHJuHp.net
シャドウイングについて質問です。
自分はクラスの中でプロパティにアクセスする時、可能であればthisを書く癖があるのですが
各種Lint的にはこれはよろしくないようです。
例:Dart
URLリンク(dart-lang.github.io)

shadowing というのがキーワードみたいなのですが、thisを書く事のデメリットは何があるのでしょうか。
単純にコードが短くなる以上のデメリットはありますでしょうか。

自分としては、thisを明示的に書くと メソッドの中で同名の変数を定義してしまった時に参照先が変わらないメリットがあると考えています。
クラスのプロパティにhogeがあったとして、メソッド内でhoge と書いてある時、間違えてメソッド内でhogeという同名の変数を書いてしまった時に気付く要素が無い。
常にthisを書いていればメソッド内で同名の変数を書いても区別されるし、クラスのプロパティに間違えてhogeという同名の変数を書いてしまっても、それは通常エラーが出る。

ので、間違えた時にエラーが出る方に倒すべきではないか?と考えていますが、
大勢の人が使っているlintで相応しくないとされているのであれば、その理由を知りたいです

664:デフォルトの名無しさん
22/07/31 22:01:16.15 +8FBaqlc.net
thisを略せる分かりにくい言語を捨てれば解決
this(やthis相当)を略さずに常に明記するプログラミング言語がたくさん存在している


665:



666:デフォルトの名無しさん
22/07/31 22:21:29.87 XG1p6vz6.net
>>643
thisを省略した方がいい理由は知らんが、そこに書いてあるのは
「シャドウイングを避けるのに必要な場合以外は」じゃね?GOODの2番目。

667:デフォルトの名無しさん
22/07/31 22:39:58.11 3aGOnqYZ.net
Ruby のクラス内で、インスタンス変数・メソッドの文脈では、self を付けない
一方、クラス変数・メソッドの文脈では、selfを付ける。
その場合、selfはクラスを指す

668:デフォルトの名無しさん
22/08/01 04:06:59.68 qGXDcFYq.net
>>643
書いてることはわかるが、その主張が常に真になるためには全てのプロパティに
対して常にthis.を使ってコードを書く必要がある。でも人間100%というのはなかなか
難しいw
そういう「人の意識でどうにかする」レベルのことなら、「プロパティと同じローカル
変数は使わない」とか「プロパティと同じローカル変数を作ったらプロパティには
thisを付ける」を意識する、でもいいんじゃね? こっち方が余分なthis.を省けるし
という方針なのかなと思った


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

563日前に更新/300 KB
担当:undef