Qiita 4 - キータぞ、来たぞ、キータだぞー
Hello hackers !
Qiitaは、エンジニアリングに関する知識を記録・共有するためのサービスです。
コードを書いていて気づいたことや、自分がハマったあの仕様について、
他のエンジニアと知見を共有しましょう ;)
https://qiita.com/
Qiita(キータ)は、Incrementsが運営するプログラミング情報のナレッジコミュニティ。
2016年現在で日本最大のプログラマーコミュニティとされている[1]。
https://internet.watch.impress.co.jp/docs/news/1025972.html
前スレ Qiita
https://mevius.5ch.net/test/read.cgi/tech/1542357242/
Qiita 2 - キータぞ、来たぞ、キータだぞー
https://mevius.5ch.net/test/read.cgi/tech/1658762410/
Qiita 3 - キータぞ、来たぞ、キータだぞー
https://mevius.5ch.net/test/read.cgi/tech/1685235361/ メモリ安全という着想は良くても、Rustみたいな煩雑で汚いソースコードの言語は流行らないだろう。
着想をC++がもっと洗練された形で取り込むか、C++でもRustでもない言語が新たに誕生するかだな。 >>711
Rustは関数型言語の美しいコードを採り入れている
C++が汚いソースコードというなら理解できる >>709
組み込みやOS 開発の現状知らない人は
能天気で良いなw mainが無くてCでプログラムができると思ってるアフォがおるw 動作保証という概念が理解できないバカがいるけどインテル、AMD、arm、NXP、Microchip、ルネサス、IAR辺りが標準の開発ツールとしてRustを提供するときが来ない限り組み込み用途でRustが採用される可能性はほぼない。 おまえら組み込みの仕事がピンキリで幅広いのを知らんのか?
Pythonすら使われてるんだぞ
無知なやつほどCだけにこだわる 「CからRustへ置き換わっている」「いやそうじゃない」という話をしてるところでPythonがどうのと言い出す奴は本格的に頭が悪い人なんだろうなあ。親を恨むしかないね。 ネットインフラは次々とRust製へと置き換わっていってる
完全に流れが変わった
ソース1
>【クラウド世界トップシェアAWS】
>https://japan.zdnet.com/article/35183866/
>Rustで構築されたAWSサービスの例としては、
>コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、
>「Amazоn Simple Storage Service(S3)」、
>「Аmazоn Elastic Compute Cloud(EC2)」、
>コンテンツ配信ネットワーク「Аmazоn CloudFront」、
>LinuxベースのコンテナーOS「Bottlerocket」などがある。
ソース2
>【CDN世界トップシェアClоudflare】
>https://www.publickey1.jp/blog/22/cloudflarenginxrusthttppingoracdncpu31.html
>CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、
>同社自身がRust製のHTTPプロキシである「Pingora」を開発し利用していることを明らかにしました。 現状のLinuxのようなサーバに使用されるOSとか、HTTPサーバとかDBとかでRustで書かれたのがシェア取るようになったらなんか言えば良いかもね。 >>718にあるNGINXがHTTPサーバの代表例
しかし今となっては機能も弱く
Cで書かれていて安全な拡張にも不利なため
クラウドフレアはNGINXに代わるものを
Rustでゼロから開発して用いている
と記事にあるね >>720
HTTPプロキシのことしか書かれてないが? HTTPサーバはHTTPプロキシをその一つの機能として含む
具体的にツートップのnginxとApacheはどちらも静的ファイルも扱うしCGIも扱うしプロキシも扱いそれそれ機能の一部 「機能の一部を実装すれば全体を実装したのに等しい」なーんて主張する馬鹿は流石におらんよねえ そういう時はRustを使えば簡単
なぜAWSやCDNなどがRust製になっていってるか理由の一つはRustでは基本ライブラリ環境が整っているため
https://github.com/hyperium/hyper/blob/master/examples/README.md
このexamplesを見ればHTTPプロキシでもファイル提供HTTPサーバーでも簡単なものなら誰でも今すぐ作って動かせる Rust信者うぜーな
お前ら新技術に付いていってる最先端エンジニアのつもりかもしれんが実際はレイトマジョリティーだからな
イキんなよ 色々とRust化が進んでいるからRustに落ちこぼれた人はどんどん辛くなっていってるよな >>707
> 全銀ネットとNTTデータ
> システムが32ビット環境から64ビット環境に変わったことで、C言語のデータ型のサイズの違いから、テーブル生成プログラムが生成する金融機関名テーブルのサイズが増えた。
> しかし、テーブル生成プログラムがテーブルの生成のために確保するメモリー領域のサイズについては変更していなかった(図1)。
> この結果、金融機関名テーブル自体は確保領域に収まるが、金融機関名テーブルと共に作成する3つのインデックステーブルの一部が確保済みのメモリー領域に収まりきらない状態になった。
> このため、確保していないメモリー領域に書きこんだインデックステーブルの一部が、他のアプリケーションによって上書きされた。
> インデックスの参照先として、本来アクセスしてはいけないメモリー領域を示すことになったことからアプリケーションが異常終了した。
> テーブル生成プログラムは、C言語で開発したプログラムである。
> it.impress.co.jp/articles/-/25677 言語の問題っつーよりメモリカツカツの貧弱なハードで動かしてるから
たからC言語で書かざるを得ない >>707
> NSAのプレスリリースの中では、メモリ安全な言語の例としてC#、Go、Java、Python、Rust、Swiftが挙げられています。
> www.publickey1.jp/blog/24/post_294.html >>731
それら安全な言語の中で
ガベージコレクション無しで動く言語がRustしかないのよね >>714
mainがないライブラリはプログラムじゃないと思うような頭で日常生活だいじょぶそ? >>732
ガチガチにメモリ管理しているからガベージコレクション任せでも正しく動作するのでは? >>733
どれ、元記事確認してみっか。
【C】基数変換プログロムを自作してみた
https://qiita.com/yaburen/items/d4d464c17005ab4cc900
> 基数変換プログラムとは
> n進数で表された文字列を、別の指定されたn進数に変換して文字列として出力するプログラム。
表題は「基数変換プログロム」となってるけど(誰か指摘してやれよ)、「基数変換プログラム」と同じ意味と解釈するぞ。
「基数変換プログラム」とは「〜変換して文字列として出力するプログラム」ということなので、mainがなくて実行ができずprintf等もなくて出力も行わないこの記事のコードは「基数変換プログラム」の条件を満たしていない。 このスレは初心者の集まりか?
レベルの低さに唖然とする
mainの有無で言い争うとかアホだろ 同じ人の別の記事
【Ten Queensなど】再帰関数・バックトラック法の練習
https://qiita.com/yaburen/items/9b3bdd87213ef4aa590b
にこるんの編集リクエストシカトしてるのクスッと来たw
https://qiita.com/yaburen/items/9b3bdd87213ef4aa590b/patches
> フィボナッチ数列→フィボナッチ数
にこるんこの人の記事にコメント付けなくなったし察してしまうわw >>737
その記事の
> 累乗の答えを返す関数
> int ft_recursive_power(int nb, int power)
> {
> if (power < 0)
> return (0);
> if (nb == 0 || power == 0)
> return (1);
> else if (nb == 0)
> return (0);
> else
> return (nb * ft_recursive_power(nb, power - 1));
> }
は仮引数 power の値が 0 以上で nb の値が 0 の場合、
> if (nb == 0 || power == 0)
> return (1);
に条件合うから 0 の 1乗とかでも 1 返しちゃうね。
続く
> else if (nb == 0)
> return (0);
はその前で nb == 0 の判定やってるから意味ないな。
いまどきのコンパイラだと「こっちのパスは通りませんよ」くらいの警告は出してくれそうな気がするがコンパイル確認してるのか? > いまどきのコンパイラだと「こっちのパスは通りませんよ」くらいの警告は出してくれそうな気がするが
折角なので確認した。
https://wandbox.org/permlink/mSIB1wP7B36wyRy8
https://wandbox.org/permlink/wySj2H4BlXzQoZcU
gccとclangの両方で常識的な警告オプション-Wall -Wextra付けた条件では警告出んかったわ。
普段自分では試そうともしない条件についてQiitaのアホな記事のお陰で知見が深まるのは有り難いことだなあ。 > 累乗の答えを返す関数
> int ft_recursive_power(int nb, int power)
> {
> if (power < 0)
> return (0);
仮引数 power の値が負だった場合 0以上 1未満になるから 0 返してるのかあ、と見過ごしてしまったが nb の値が 1 だと power の値が負でも 1 になる筈だからこの実装もおかしいな。
つか
冪(power) = 底(base)**冪指数(exponent)
なので仮引数名から間違ってる。 俺は「gcc 条件 重複 警告」でぐぐって gcc に
if 〜 else if 〜 の重複を警告してくれる -Wduplicated-cond にたどり着き、それを指定した上で
https://wandbox.org/permlink/yFunNKbQkeO0SNVv
先のコードでは警告が出ないことを確認したけどな。gcc のマニュアル見るのはこの次だわ。
>>740が「なぜgccのマニュアルを確認しない」と思った理由が知りたい。 >>736
あらら、そういう自分の慰め方は感心しないな
黒歴史が増えるだけでしょ 【Atcoder】bit全探索問題まとめ(AC確認済みの実装つき)
https://qiita.com/yaburen/items/0f72956c035518a657e8
> ## ABC014 - B - 価格の合計
> ビット演算の基礎が理解できているか確かめられる問題。導入として最適だった。
> #include <iostream>
>
> using namespace std;
>
> int n, X;
> int a[30];
>
> int main()
> {
> cin >> n >> X;
> for (int i = 0; i < n; i++) cin >> a[i];
> int price = 0;
> for (int i = n - 1 ; i >= 0; i--)
> {
> if (X / (1 << i) == 1)
> {
> price += a[i];
> X -= (1 << i);
> }
> }
> cout << price << endl;
> return 0;
> }
ビット演算の基礎が理解できてないので if (X & (1 << i) != 0) とすべきところを if (X / (1 << i) == 1) としてしまってる様に見えるがこれでACとなるならテストケースが十分でないんじゃないかなあ。 > これでACとなるならテストケースが十分でないんじゃないかなあ。
いや、上から見てくんだから問題はないのか。 >>746
藤田のことだろうなあ
例のコミュ障がそう呼んでるんでしょ >>749
これを「より良い記事にするための協力をしてもらってる」ととるか「ボコられてる」ととるかでその後が変わってくると思うがこんな記事を書くやつはだいたい後者でブロックして通報するからなぁ https://qiita.com/yaburen/items/d4d464c17005ab4cc900#comment-cd5b78d51d142662c639
> 毎回ft_len関数を呼び出していて処理時間が気になってしまいますね。
> 基数変換ではbase引数をint型にするのが一般的だと思うので、合わせてはいかがでしょうか?
コード改善の有意義なアドバイスだと思うがシカトかあ。
つかブロック&通報パティーンかな? より良い記事にしようなんてとんでもない
ただ、そのクソ記事を、捨てろ
ノータイムで、捨てろ
クソ記事を、捨てろ
クソ記事を、書くな >>751
タイトルの「プログロム」すら修正されないとこ見ると編集リクエストやコメント付けてくる親切なアカウントは予めブロックしてるんじゃないかな プログラムとアプリの区別すらつかないやつが何を言っても滑稽なだけだぞw >>735
大丈夫か?
春だけ?
夏になったら治る? 「お前は間違ってる。俺が知っているのが正解」と繰り返すだけのashworthは無能杉。
主張には根拠が要ることも知らない幼稚園児波。 こんな奴相手にしても時間や労力無駄にするだけで得られるものは何もないからな。
https://web.archive.org/web/20221220153804/https://qiita.com/ashworth/items/a35270d88ac52116ef7d
> はい、私が勘違いしてました。
> 途中で、
>
> スクリーンショット 2022-12-19 184235.png
>
> みたいな突っ込みがあって、やっと問題文をちゃんと読み直して『あれ?』となったわけですが、
>
> 自分、基本的にTwitterでの間違いは死んでも認めない主義なので、そのまま押し切る事にしました。
>
> Twitterとかのネットは所詮遊び場なので「バトルしようぜ、Tweetバトル!俺が勝ったらテメェは俺以下だぁー!!」みたいなノリで強引に押し切ろうとしました。
>
> で、まぁ、惨敗したわけですけどねw jisouとか言うポエム書いてる奴ら消えて欲しいわ
無料だと思ったら金とってるし >>761
ブロックかミュートすれば見えなくなんじゃね? >>764
ブロックかミュートすれば見えなくなんじゃね? >>763
>>765
あなたたちのレスは見えなくなりました 面白い記事を紹介するスレと思ったら
底辺が底辺をバカにするスレかよ >>767
お前が面白い記事紹介すれば良いんやで? そもそも面白い記事をQiitaで探すのが間違ってる >>769
普通にあるだろ
advent calenderとかきちんとCS学んだやつが書いたものが並んでる このスレで記事を探すのは良い結果にならない
独裁者が誹謗中傷する目的で紹介するから良い結果にならない
多数決が働くはてブで記事を探すべき >>770
底辺スクールできちんと()学んだやつの情報が何の役に立つんだ?
お前そんなの参考にしてんの? Advent calenderはゴミ記事量産キャンペーン >>771
> 独裁者が誹謗中傷する目的で紹介
名無しに何か権限でもあるのかw >>774
独裁者は多数決と対比したんだが気づかなかったかな?
権限とはどういう権限?
何も思いつかないからないんじゃない 5chで独裁してるやつがいるのか
そいつはさぞかし腕利き()なんだろうな >>776
> 独裁者は多数決と対比したんだが気づかなかったかな?
よくわからんのだけど例えばQiitaに
「0.1+0.2≠0.3」を説明できないエンジニアがいるらしい
https://qiita.com/higashi_nc/items/9a5ea00415a008f06843
という記事があったとして、はてなで
https://b.hatena.ne.jp/entry/s/qiita.com/higashi_nc/items/9a5ea00415a008f06843
わけわからん名前の人たちの反応が見られたとしてどの辺で多数決が働いてるという主張デスカ? >>778
頑張って擁護コメを探したけどマジで無かった
徳丸さんにすら叩かれてる
これが多数決の力か
それとも徳丸先生が独裁してるの? 基数変換とか浮動小数とかお前ら興味持つ対象のレベル低すぎだわ
例えば小学生が間違った植木算の説明してて、それ見た大学生は優しく教えるかスルーだろ
罵倒して優越感に浸るのはせいぜい中二まで
それがお前らのレベル 中二がリアル大学院生罵倒して優越感に浸るのは問題ないってことですね >>780
>>535の記事の人は小学生じゃなくて
https://qiita.com/aoshi2025s
> 所属
> Keio University, 42tokyo
だそうです。
中学生の僕はこの人を罵倒しても良いですか? >>782
学歴コンプなんだなw
好きにやれよ
それがお前のレベル >>786
そういうよくわからない揚げ足取りをしたくなるのがまさに中二的な精神年齢の未熟さ
植木算で得意げになってないでもっと上目指して成長しな よくわかるがもっと噛み砕かなきゃいけないということか
そもそも慶応大学と同レベルの中学生に向かって「それがお前のレベル」と言う小学生レベルの口喧嘩は何の利益があってしてんの?w >>784
> 「エンジニアの素養、ポテンシャルが見えづらい」
> 「スキルレベルが求めるレベルに届いていなかった」
これ言われてる時点でQiita書くよりやることあるだろと思った 通信会社所属なら社内で移動の希望出して希望の仕事する道もあると思うんだけど
逆に言うとそれすらできないなら転職なんてもっと無理じゃね? >>789
topのstudyなんちょらがこの程度の技術スタックで金とってスクールもどきみたいなことしてるの詐欺じゃね?メンバーに中学生とかも居るし 40過ぎたオッサンが大学の専門課程に及ばない学習期間で専門家としてガッポリ稼げるようになれると思ってんのすごいな。 まぁこの業界エセ技術者みたいなやつほど稼いでたりするから
声だけでかくてやってる感には長けてたりするやつ 技術者の仕事は、顧客を満足させて金を引き出すことだ
何故か技術力を高めることが仕事だと勘違いしてる奴が多いけど >>796
相反するもんじゃねーだろ
そういう言い訳作って小手先の見た目だけ派手なしょぼいもん作って納入してるから日本のITは土方っていわれんだよ
死んどけ assertさせてreturnさせる意味がわからん
そもそもreturnできるのか?知らんけど assertが有効(NDEBUGが未定義)な場合は異常終了するのでreturnしない。
assertが無効(NDEBUGが定義済)な場合はreturnする。
問題は、プログラムを異常停止させないために異常な状態に対して無難な値を返す処理により別の問題が起きないかの確認がほとんどできないこと。 > ゲームプログラマとして働き始めたくらいのレベルの人に届けたい
クソコード指南 冷静になってみたらさ
世の中クソコードとクソ人間ばっかだよな
笑っちゃうよな > 個別にコメント返信はしませんが……「ゲームプログラミング」の話であるという前提が上手く伝わっていないみたいなので前提部分に追加しました。
「俺は間違ってないけどゲームプログラミングという特殊な世界の話が素人連中には伝わらなかったみたいだから追記してやったわ。」みたいなコメントステキ 成長よりもプライドが大事なんよ
俺だってそうだよ
笑っちゃうよな >>800
> assertが無効(NDEBUGが定義済)な場合はreturnする。
assertが無効(NDEBUGが定義済)な場合はreturnしないよ
確認よろしく
すぐ検索できると思うがこれとか
cpprefjp.github.io/reference/cassert/assert.html >>806
ゲームプログラマとして働き始めたくらいのレベルの人に届けたい、こういう感じのコードとコメントを書いてほしいというメモ書き
https://qiita.com/Monotea/items/efe0a97865a40767bc7f
↑の記事の
float NankaFighter::PredictDistance( const NankaFighter* other, float second )const
{
if( other == nullptr ){
assert(false);
return 0.0f;
}
↑この辺の話だがお前解ってないだろw assertとかまじつまらん話ばっかしてんな
専門学生の集まり? > 専門学生の集まり?
件の記事書いた人は「ベテランというほど長くプログラマをやっているわけではない。30代前半」なんだが>>808は記事も読まずに文句たれてる馬鹿かな >>799
assertはデバッグモードのみ有効になるからデバッグモードならassertで本番だとreturnになる
デバッグとリリースで挙動違ったらまた別のバグが入るんじゃねとか
本番と違うコードでデバッグできなくねとか
そもそもassertの使い方間違ってねとかそんな感じ >>809
集まりと書いたんだからその筆者のことじゃなくてお前らのことだよ
やっぱバカの専門学生は国語力もないのな