int main() { /* NEPプログラミング部 */ }

最新10レス
1以下、名無しにかわりましてVIPがお送りします:2024/07/12(金) 01:19:41.60 ID:asXa/KOw

今回のスレタイはちゃんとコンパイル通ります
前回の反省を活かして

2以下、名無しにかわりましてVIPがお送りします:2024/07/12(金) 01:22:53.33 ID:Gn2pq0jp

プログラマではないから何言語かわからない
気が向いたら環境構築するね

3以下、名無しにかわりましてVIPがお送りします:2024/07/12(金) 01:32:49.16 ID:asXa/KOw

スレタイはC言語だね
C++とかObjective-CみたいなCのスーパーセットでももちろん通る

4以下、名無しにかわりましてVIPがお送りします:2024/07/12(金) 01:46:01.00 ID:asXa/KOw

昔のCでは main 関数の return 文省略できなかった気がして調べてみたらバージョンごとの仕様まとめてくれてるブログを見つけた
https://yohhoy.hatenadiary.jp/entry/20121126/p1
これによるとC99より前のCで main 関数の return 文を省略した場合返り値は未定義になるらしい知らんかった

5以下、名無しにかわりましてVIPがお送りします:2024/07/12(金) 10:22:03.31 ID:z07GNKDH

Cこそ最強

6以下、名無しにかわりましてVIPがお送りします:2024/07/12(金) 11:16:59.89 ID:BFq59Dim

>>4
コンパイル「は」通るから…

7以下、名無しにかわりましてVIPがお送りします:2024/07/12(金) 13:21:20.01 ID:Vj8uXIfM

インタプリタでお願いします…スクリプト言語しか知らんのです

8以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 00:17:04.37 ID:5kvN+MBM

gcc13.2.1 は通った

LSI C-86 も通ったw

9以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 04:01:53.50 ID:v65TopW8

LSI C-86でコンパイル通るのもまあまあすごいけど動かせる環境あるのもすごいわ
物心ついた頃には32bitから64bitへの移行で騒いでたぐらいの世代だから8086とか教科書でしか見たことない
はじめて読む8086だったかな

10以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 04:54:20.96 ID:v65TopW8

""">>7
Pythonならそこそこわかるよ
Hello Worldのネップバージョン作ってみた
"""

神の対義語 = 0
print("".join(chr(~-15 + 60 + デスセックス * (~-神の対義語) ** デスセックス) for デスセックス in range(4, len("時だから窓から") - 4 | len("回チンポ出した"))))

11以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 14:08:17.72 ID:67liSFqG

スレ盛り上げるから代わりにプログラミング教えて
何かツール作りたい
ねっぷAI作りたいけどAPIというものがわからない

12以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 14:40:55.95 ID:Njrz18GQ

初心者でAIならPythonとかがいいかも

13以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 16:59:15.88 ID:67liSFqG

プログラム書けるねっぱーは具体的に何作ってんの?

14以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 17:41:29.64 ID:v65TopW8

>>11
いいよー
AIは各社環境整備に力入れててマニュアル類もめちゃくちゃ親切だから入門に良いテーマだと思う

まず作りたいアプリの形式というかどこで動くアプリにしたいのか決めよう
それによって使える言語とUIフレームワーク(ガワを作るための仕組み)に制約があるからね

ブラウザ上で動くアプリ → JavaScriptでロジックを書いてHTML/CSSでUIを作る
iOSアプリ → Swiftでロジックを書いてSwiftUIでUIを作る(ちょいむずい)
Androidアプリ → Kotlinでロジックを書いてJetpack ComposeでUIを作る(ちょいむずい)
サーバー上で完結するアプリ(botとか) → 基本的になんでもいい
手元で動かすコマンドラインアプリ → なんでもいい

あとAI系のアプリってフロントエンド(つまりブラウザ上、スマホ上)で完結することはほぼなくて、サーバー側で処理してその結果をブラウザやスマホに送る設計にするのが普通なんだけど(そうしないとAPIキーが丸見えになってお前の金でGPT-4使い放題みたいな悪用ができてしまうから)、今回は課金が発生しないAPIを使ってあとはねっぱーを信じる路線でいいと思う

15以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 17:43:50.49 ID:v65TopW8

>>13
ブログシステム作るスレでブログシステム作ってたりしたよ
最近放置しちゃってるけど完成させなきゃな

16以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 18:14:45.23 ID:67liSFqG

一応家にはラズパイがあるよ
Model3Bだった気がするけど

17以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 18:20:00.11 ID:v65TopW8

いいね
ラズパイ触ったことないけどこの機会に買って俺もなんかやろうかな
AI搭載したキーボードとか作ってみたいんだよね

18以下、名無しにかわりましてVIPがお送りします:2024/07/13(土) 18:27:39.91 ID:67liSFqG

なんかそれすごいね
DB触れるようになりたい
NDBって製品を確認するためにやらなきゃいけないんだけど
こういう製品を使うにはまず、どんな技術が必要?
データが必要とか、データベースはどんなのが必要とか。。。

19以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 05:42:31.00 ID:esD8xaW9

NDBでググってもこれしか出てこないけど流石にこれじゃないよね
https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000177182.html
RDB, HDB, NDB, OODBとかある中のNDB(ネットワーク型データベース)の話かと思ったけども現状RDBとKVSが主流のDBの世界でNDBが必要な場面って相当ニッチだしこれも違うかな

20以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 06:06:08.86 ID:esD8xaW9

まあNDBのくだりは置いといてDB触れるようになりたいならまずは手元のパソコンにMySQLでもPostgresでもいいからDBエンジン入れて適当にデータベース作ってテーブル作って適当にデータ流し込んで好き放題いろんなSQL打ち込んでたら基本的な使い方はすぐ覚えるとおもいます
ちなみにダミーデータ生成はChatGPTとかGeminiにスキーマ渡してこのテーブルにダミーデータ流し込むSQL書いてくれって頼むとめっちゃラク
生成AIが一番輝く使い方だと思う

21以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 06:52:29.44 ID:hDkSpC+7

https://blog.ntnx.jp/entry/2022/12/07/235802
インフラエンジニアだからこれがやりたいんだよね_(:3 」∠ )_

22以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 06:53:50.48 ID:hDkSpC+7

docker使えば構築楽なんですよね!
多分

23以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 07:52:51.31 ID:esD8xaW9

Nutanix DatabaseでNDBなのね
ぱっと調べた感じプロプライエタリソフトウェアのようだから試すハードルも高いし俺は何も助言できない

記事読んだ感じ色々コミコミで入ってるNutanix CEという製品パッケージの中でNutanix AHVっていう専用のハイパーバイザーがあってその上でサービスを動かしてるっぽいけどそれをさらにDockerの上で走らせたら二重に仮想化することになるからモッサリしそうじゃない? 実験目的ならそれでもいいのか
あと公式が提供してるDockerイメージが見当たらないからDockerでもDockerじゃなくてもそんなに手間は変わらなそう

24以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 07:59:54.53 ID:esD8xaW9

あ、もし「手元のパソコンにMySQLでもPostgresでもいいからDBエンジン入れ」るのをDockerでやるって話だった?
環境を隔離したい事情があるならともかくちょっと試しに触ってみるだけなら逆に遠回りだと思う
パッケージマネージャーで普通に入れたらコマンド一行だから絶対そっちのほうが早い

25以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 08:01:37.41 ID:59iQ3Kp3

CEの上にAHVっていう仮想化ソフトウェアが動いてて、その上に沢山VMとか立ち上げられる感じかな
なのでそのVMの一つでDocker展開してDBの処理をさせて、それとNDBを繋げる・・・のかな
やってみなくちゃわからないけど
なので、DockerでやるのはMysqlとかの環境構築かな
まあDockerじゃなくてもAnsibleとかでVM構築の自動化ができるのかな
オラワクワクしてきたぞ

26以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 08:39:27.90 ID:esD8xaW9

あーなるほどDockerコンテナの中でNutanix CEを動かすって話かと思ったけどNutanix AHVの上でDocker Engineを走らせてその上にコンテナ立てるっていう話か
でもすでにハイパーバイザーがいるのにその上にさらに仮想化エンジン立てるのって無駄な感じしない?
LinuxディストロのisoファイルでVM立ち上げてログインしてDBMSインストールして立ち上げてデータベース作ってっていう部分を自動化したいだけなら仮想化する必要はないからAnsibleとかTerraformとかのIaCを活用するのが正解な気がする

27以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 09:22:27.60 ID:59iQ3Kp3

実際の運用ってどうするんだろう
でも少なくともベアメタルの上にハイパーバイザーがあって、そこの隣に何かを起動させるのはないかもしれないから
ハイパーバイザーの上の仮想マシンで対応するしかなさそう

28以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 09:38:45.74 ID:esD8xaW9

何の話?

29以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 09:46:53.94 ID:Gs5/7wCa

>>27
HCIはベアメタルにあるブートデバイスから起動するからストレージコンテナからの起動とは少し違う
結局のところAHV上に立ち上げたVMからしかDBの構築はできない

30以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 09:56:29.27 ID:59iQ3Kp3

みんながみんな知ってる範囲の話しかできないから
中継地点がない感じだね
幅広い知識持つのって難しいな
やりたい事をもっと明確化しないと

31以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 10:12:23.37 ID:esD8xaW9

いや>>28>>27が何に対して「でも」なのか、「そこの隣に何かを起動させる」が一体何の話なのかわからなかったから確認したかったんだ
俺のほうも言葉足らずですまん

32以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 10:13:05.47 ID:59iQ3Kp3

ごめん俺のやりたいことここに書いてたわ
https://blog.ntnx.jp/entry/2022/12/06/231052
この記事と関連記事の続きをやればデータベースはとりあえず作れるかな
問題はその次に作ったデータベースで何をするかだけど、そこでプログラミングスレに貢献できそうな話題になるかもしれない
一定間隔でデータを作って投げるプログラムとか?

33以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 10:17:14.78 ID:59iQ3Kp3

>>31
俺もあやふやなレスでごめん
>>29の言うとおり、起動場所を同じストレージをパーティション分けして行うのはできなくて
>>26の認識の通り、ハイパーバイザー上に立てたVMにDockerを用いて構築する…みたいな流れを考えていた
でもわざわざVM立ててたらコンテナ型の強みってないもんね
VM上で手動でDBの環境構築したほうが良いかもね

34以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 11:34:57.98 ID:esD8xaW9

>>32
>>21の記事で前準備としてリンク貼ってあったからそれも見たな
トラブル無ければ結構簡単に導入できそうね

個人的にはAWSのRDSやGoogle CloudのCloud SQLなんかのパブリッククラウドのDBaaSと比べたときの機能や使い心地の違いとか聞きたいかも

作るものはそれこそねっぷAIとかいいんじゃない
チャットログはLLMのAPI叩くたびに送らないといけないからどこかしらに保存する必要があって、ユーザーごとにチャットログが独立ならブラウザのlocalStorageに保存すればいいんだけど共用にするならサーバー側に保存しないといけないからここでDBが活きてくる

35以下、名無しにかわりましてVIPがお送りします:2024/07/15(月) 12:10:59.06 ID:Z8qOeaSw

AWSとの比較は重要そうだね
DB理解してなきゃ試せないけど

36以下、名無しにかわりましてVIPがお送りします:2024/07/20(土) 13:27:26.86 ID:MLvxMQSP

自炊おすすめ

37以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 01:32:32.24 ID:8qDetHhm

金曜に騒ぎになってたブルスクの直接的な原因がメモリの0x9c番地にアクセスしようとした結果のクラッシュだと判明して、これがnullポインタ周りのバグからじゃないかと言われてるのでちょっと解説してみる

38以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 01:43:27.39 ID:PIWOc6JK

やったー!

39以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 01:48:22.55 ID:8qDetHhm

まずはNULLポインタについて

コンピュータがなにか作業するときにデータを置いておくスペースとして主記憶、いわゆるメモリがあるのはおそらくみんな知ってるよね
ポインタはこのメモリ上の番地(アドレス)を格納する変数で、アドレスとデータ型の情報をあわせてどこに何をしまったかを管理できる
しかし、まだ必要なデータが用意されてないなどの理由でポインタが「どこも指していない」状態のとき、それをどう表現するべきかという問題がある
CやC派生の言語では、ポインタがNULLという特殊な場所を指しているとき、そのポインタはNULLポインタと呼ばれ、これが「どこも指していない」状態を示すものとして使われる
ちなみに「NULLという特殊な場所」というけど実体はメモリの0番地で、ここはふつうユーザーがアクセスできない領域なのでこういう特殊状態を表すための値として白羽の矢が立ったというわけ

40以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 02:04:41.39 ID:8qDetHhm

ただ、今回は0x9c(156)という中途半端な、とはいっても0にかなり近いアドレスにアクセスしようとしてクラッシュしていて、これはクラスや構造体へのポインタがNULLポインタなのにもかかわらずそのメンバにアクセスしようとしたからじゃないかと推測されている

そもそもクラスや構造体のインスタンスの実体は、メンバ変数やらメソッドへのポインタやらを詰め合わせてメモリ上にごちゃっと載せたものなんだ
とは言っても無造作に置くわけじゃなく、コンパイラは各メンバに対してオフセット、つまり各メンバをインスタンスの先頭のアドレスから何番地先に配置するかを決めておく
これで、あるインスタンスのあるメンバにアクセスしたいときは、(先頭のアドレス) + (メンバのオフセット) で求まる番地を見に行けばいいとわかる
そして、クラスや構造体へのポインタ(例えば class MyClass に対する MyClass*)はインスタンスの先頭のアドレスを保持している
もしこれがNULLポインタだったら…?
NULLは0だから、NULLポインタからオフセットが156のメンバにアクセスしようとしたのだとすれば、そのまんま0x9c(156)という中途半端なアドレスにアクセスしようとして失敗することになる

41以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 02:16:17.47 ID:8qDetHhm

実際に試してみよう
Nectarクラスがあるとして、nectarインスタンスを作ってメンバvolumeの値を読み出したいとする

これは正しい例
Nectar* nectar = new Nectar(); でOSに Nectar のインスタンスをメモリ上に作ってもらい、その先頭アドレスを nectar に保存して、nectar->volume でメンバ volume の値を正常に読むことができている
https://wandbox.org/permlink/TdyKvuIERX0cWdkl

これはバグっている例
Nectar* nectar = NULL; で nectar をNULLポインタにして、nectar->volume でメンバ volume の値を読もうとすると、(先頭アドレス) + (メンバのオフセット) = 0 + 8 = 8 番地にアクセスしようとして、OSにそこ入っちゃダメ!って怒られて強制終了させられる
https://wandbox.org/permlink/WNyFLKif7ioptgQf

42以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 02:38:57.09 ID:8qDetHhm

では、今回の騒動ではなぜプログラムが強制終了するにとどまらずブルースクリーンを起こすまでに至ったのか?
それは、問題のプログラムがカーネルモードドライバだったからなのだ
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode

普通のプログラムはユーザーモードという制限されたモードで動く
ユーザーモードではメモリやデバイスへのアクセスはOSやカーネルモードドライバに頼んでやってもらう必要がある
そうすることで他のプログラムが使っているメモリ空間を侵食するなどの危ない動きができないようにしている

対してカーネルモードはほぼ制限なくメモリやデバイスにアクセスできる
今回の騒動を引き起こした製品はセキュリティのために他のプログラムの動きを検知したり止めたりする必要があるからカーネルモードで動かないといけないんだね

ただ、カーネルモードとはいえ、0x9c(156)なんていうアドレスにアクセスしようとしたら、そこは恐らくOSや他の重要なプロセスが使っている領域なので、OSは破壊を止めるためにカーネルモードだとしてもプログラムを強制的にクラッシュさせる可能性が高い
そしてWindowsでは、カーネルモードドライバがクラッシュすると事態を悪化させないうちに安全にセーフモードに移行できるようにOSが自決してシステムを止めるようになっている
こうしてコンピュータはブルースクリーンを映し出して止まるんだね

43以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 06:43:56.16 ID:639Elebg

マサカ、
64bit時代に「一般保護違反」を引き起こす現象に遭遇するとは...

44以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 08:45:44.41 ID:639Elebg

ブルースクリーン同時多発事件、大手パブリッククラウドにも影響
CrowdStrikeが原因と明言

https://www.itmedia.co.jp/news/articles/2407/19/news187.html

45以下、名無しにかわりましてVIPがお送りします:2024/07/21(日) 09:36:42.84 ID:nmuq3StW

CrowdStrikeは、RedHatや、その他の
Linuxで使われているのに
何故、Windowsだけがクラッシュするんだ

46以下、名無しにかわりましてVIPがお送りします:2024/07/22(月) 07:31:24.78 ID:z0NZ/r2F

昨日、サイバーセキュリティ技術会社 CrowdStrike が Microsoft のユーザー向けに提供した
ソフトウェア アップデートに欠陥があったため、多くの航空会社が業務を停止した。世界
最大手の航空会社の中には、フライトをキャンセルしたり、飛行機を地上にとどめたり、
チェックインや搭乗に旧式の手法に戻ったりしているところもある。しかし、世界最大の格安
航空会社であるサウスウエスト航空は、32 年前のオペレーティング システムのおかげで、
なんとか乗り切ることができている。ダラスを拠点とするサウスウエスト航空は、世界中の
航空会社を悩ませている障害の影響を昨日受けなかった。これは、同航空会社が Windows 3.0
の後継として 1992 年 4 月に初めてリリースされたバージョンである
Windows 3.1 で作業していたためである。
https://simpleflying-com.translate.goog/southwest-airlines-old-system-unaffected-it-outage/?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=sc

w

47以下、名無しにかわりましてVIPがお送りします:2024/07/24(水) 00:10:03.44 ID:QAKXxlfb

サウスウエスト航空の
Windows 3.1は当時のネットワークで標準的に使われていた
NovellのNetWare IPX/SPXで継がっているのかな?

1990年代PCに於いてNetWareは一世を風靡しネットワークプロトコルの
IPX/SPXやデバイスアクセス最速のeDirectory等は先進的な存在だった

2000年代に入ると1998年頃からLinux-serverやFreeBSD-server、W2k-server
等の台頭でNetWareは勢力を失っていきNovellはSUSE Linuxを買収して
SUSE LinuxにeDirectory等を移植しエンタープライズサーバー分野に進出した
*BSD等でBSDに無いAPPはエミュレーターで openSUSEのsourceを使っている

48以下、名無しにかわりましてVIPがお送りします:2024/08/13(火) 08:35:52.28 ID:wo2/NYFJ

とほほのC言語入門
https://www.tohoho-web.com/ex/c-lang.html#about


レスを書き込む