タグ

qiitaとCに関するslay-tのブックマーク (49)

  • Re:FizzBuzzから始めるRust生活 - Qiita

    新しいプログラミング言語に入門するためには、やはり手を動かすことが大事です。を読んで体系的に学ぶのももちろん重要ですが、それは言語の魅力を知ってからでも遅くはありません。 しかし「Hello World」レベルだと簡単すぎて言語の違いを味わえず、ネットワークプログラミングのような高度なプログラミングはフレームワークの力が大きすぎて言語とフレームワークの狭間で立ち往生することになります。 そこで登場するのが**「FizzBuzz」です。「FizzBuzz」は単純なプログラムでありながら、プログラムの真髄である「順次」、「分岐」、「繰り返し」**があり、数値計算も学べる興味深い題材です。 その「FizzBuzz」を利用して**「Rust」という言語を学んでみようのが記事の趣旨です。「FizzBuzz」というシンプルなプログラムで「Rust」のような表現力が豊かな言語**の機能をどこまで使い

    Re:FizzBuzzから始めるRust生活 - Qiita
  • WSL2 Docker が PC のディスクを圧迫する - Qiita

    概要 WSL2 バックエンドの Docker では、コンテナやボリューム、イメージを削除しても、ホスト (Windows) のディスク容量が解放されない。 原因 WSL2 は一度確保したディスクをホストに返さないらしい。Issue が上がっている: WSL 2 should automatically release disk space back to the host OS · Issue #4699 · microsoft/WSL 確認 雑に確認してみる。 Docker のディスクファイル (%LocalAppData%\Docker\wsl\data\ext4.vhdx) のサイズを確認する。 WSL2 バックエンドを作成したばかりのまっさらな状態: > docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE > dir Direc

    WSL2 Docker が PC のディスクを圧迫する - Qiita
  • Blazor をお勧めできる人は誰か? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに - "C# で SPA を作る Blazor とは?" 「C# で SPA が作れるって、どういうこと?」 「C# で SPA が作れたら何がうれしいの?」 「Blazor って、クライアントサイド版とサーバーサイド版があるって聞いたんだけど」 そんな話題については、下記スライドなどが参考になろうかと思います。 改めて - Blazor をお勧めできる人は誰か? C# で SPA を実装できる Blazor ですが、当然のことながら、"銀の弾丸" では、まったく、ありません。 ではどういった人たちであれば、Blazor をお勧

    Blazor をお勧めできる人は誰か? - Qiita
  • なぜRustを学ぶべきなのか 〜 5年経った今改めてまとめてみる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Rust 1.0がリリースされたのは2015年の5月で、5年前のこととなります。自分は1.0 betaのころにRustを始めたので、なかなか感慨深いものです。この5年の間に、いくつもの企業でRustを採用、もしくはその検討がされるようになり、ゆるやかであるもののRustの普及が進んでいると感じます。 そこで、1.0から5年経ち、だんだんと普及しつつあるこの時期に、なぜRustを使うべき、学ぶべきなのか、改めてまとめてみようかと思います。Rustを簡単に紹介する場合、メモリ安全とパフォーマンスの両立、高い生産性をもたらす言語機能などが挙げ

    なぜRustを学ぶべきなのか 〜 5年経った今改めてまとめてみる - Qiita
  • で、結局 #include <bits/stdc++.h> って何? - Qiita

    hakatashiです。 競プロ界では一般的なテクニックであるにも関わらず、何かと定期的に燃えがちな話題であるbits/stdc++.h。便利ではあるけど、そもそもこのファイルって何?年齢は?性別は?家族構成は?彼女はいる?調べてみました! そもそも、bits/stdc++.hって何? GNUが開発するC++の標準ライブラリの実装であるlibstdc++のプリコンパイル済みヘッダを生成するためのソースファイルです。 具体的な中身はgccのソースリポジトリのlibstdc++-v3/include/precompiled/stdc++.hから参照することができます。見ると、CおよびC++の標準ライブラリに含まれるヘッダがすべてインクルードされており、このことから「#include <bits/stdc++.h>と書くとすべての標準ライブラリを一度にインクルードできる」という性質を持ちます。

    で、結局 #include <bits/stdc++.h> って何? - Qiita
  • C# で出来ること一覧 - Qiita

    更新履歴 2020/03/23 IoT について追記 その他に帝国兵さんのツイートを追加 サーバーレスカテゴリーを追加して AWS Lambda を追加 ASP.NET Core Razor Pages を追記 2020/03/24 kennakamu さんの「個人的に C# が向かないと思うこと」へのリンク追加 文 昔ブログにこんな記事を書きました。 C# で何か出来るのか?まとめてみた あれから 2 年が経って昔からある Windows 専用の .NET Framework に対する新機能の提供が終わり、クロスプラットフォームに対応した .NET Core が今後のメインストリームとして .NET 5 → .NET 6 のように進化していくことが 2019 年 5 月の Build 2019 で発表されました。以下の Blog 記事がアナウンス後に発表されています。 Introduc

    C# で出来ること一覧 - Qiita
  • Rust で vmlinux を起動できる x86 ブートローダーを作ってみた話 - Qiita

    Rust を勉強し始めたので冬休みの間に Linux の boot protocol を喋る x86ブートローダー(自称:Krabs)を作ってみました。この記事では、開発に至った動機や、作成した Krabs の特徴とか仕組み、開発中におきた嬉しかったことなどについて書きたいと思います。 Krabs とは Krabs は、Rustで書かれた x86/x86_64(Legacy BIOS) 向けの4段ロケット構成のチェインローダーです。 bzip2 で圧縮された ELF 形式のカーネルを起動できます。bzip2 圧縮されたイメージを解凍して、次に展開してでてきた ELF イメージを再配置してからの、カーネルの起動となります。 内部では libbzip2 の C ライブラリを利用していますが、それ以外は全て Rust で記述されています。 GitHub - o8vm/krabs: An x86

    Rust で vmlinux を起動できる x86 ブートローダーを作ってみた話 - Qiita
  • ゼロから作るDeep Learningで素人がつまずいたことメモ:7章 - Qiita

    7章 畳み込みニューラルネットワーク この章は、畳み込みニューラルネットワーク(CNN)の説明です。 7.1 全体の構造 これまでのAffineレイヤーやSoftmaxレイヤー、ReLUレイヤーに加えて、Convolution(畳み込み、コンボリューション)レイヤーとPooling(プーリング)レイヤーが出てくる説明です。 7.2 畳み込み層 畳み込み層の説明は、画像処理を少しかじっておいた方が読みやすいです。 「画像は通常、縦・横・チャンネル方向の3次元の形状です」とありますが、画像は縦・横の2Dデータですから、3次元だと奥行きまで加わった3Dデータになるのでは?と思われる方もいるも知れません。 ここでの「チャンネル」というのは、RGBなどの色ごとの情報を指しています。MNISTのようなグレースケール(白黒の濃淡のみ)のデータであれば1つの点の濃さを1つの値で表現できるので1チャンネルで

    ゼロから作るDeep Learningで素人がつまずいたことメモ:7章 - Qiita
  • Unityプログラマにオススメの新しいC#の機能 - Qiita

    Unityでも新しいC#! 長い歴史を持つプログラミング言語、C#。C#は着実に進化し、便利な言語機能を追加してきました。ところがゲームエンジンUnityでは少し前まで、古いC#しか使うことができませんでした。 2017年夏 Unity 2017.1がリリースし、「.NET 3.5 Equivalent」に加えて、「.NET 4.6 Equivalent」がExperimentalとして選べるようになりました。 2018年初夏 Unity 2018.1がリリースし、「.NET 4.x Equivalent」がExperimentalでなく、安定版になりました。 2018年冬 Unity 2018.3がリリースし、「.NET 4.x Equivalent」がデフォルトになり、「.NET 3.5 Equivalent」が非推奨になりました。 Unityも、現在は特に工夫をせずに比較的新しいC#

    Unityプログラマにオススメの新しいC#の機能 - Qiita
  • 「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita

    2019年6月に以下の記事が投稿されました。 ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?に対するIchi Kanayaさんの回答 - Quora 英語版の記事「How to print 1 to 100 in C++ without a loop, goto or recursion - Quora」から興味深い回答を抜き出して、それにランク付けをしながら和訳してくださっている記事です。 初級や中級は「まぁあるよね(C++知らないけれど……)」という感じですが、 上級とされた「マイクロソフト社のデータサイエンティスト Conner Davis 氏」の回答が面白かった ので、ご紹介を兼ねてその発想の源泉を推測してみることにしました。 Conner Davis 氏の回答 以下に Conner Davis 氏の回答の和訳を引用します。 マイクロソフト

    「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita
  • C++は本当にRustに速度で負けるのか 〜「RustがC++に速度で勝った話」のベンチマークを追試する〜 - Qiita

    追記: 記事は g++ について書かれており、clang については補足で述べる程度でしたが、clang側の検証結果が間違っておりました。 別途 clang++ で検証した記事も書きましたので、ご覧いただけますと幸いです。 記事の目的 昨日、株式会社フィックスターズの「Fixstars Tech Blog /proc/cpuinfo」に以下の記事が掲載されました。 RustC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo 記事では、上記記事の 手元環境における追試 C++の敗因/Rustの勝因分析 条件をある程度統一した際のベンチマーク結果 の3点を行います。 ベンチマーク環境 OS Fedora 30 CPU AMD A6-1450 Memory DDR3-1333 4GB x 1 (4GB) GCC 9.2.1 Rustc 1.39.

    C++は本当にRustに速度で負けるのか 〜「RustがC++に速度で勝った話」のベンチマークを追試する〜 - Qiita
  • Cの可変長引数とABIの奇妙な関係 - Qiita

    printf に関する以下のツイートが流行っていました。 上のツイートでは割とあっさり説明されていますが、amd64 SysV ABIでこの現象が起こる理由にはもっと深遠なものがあると思うので、可変長引数とからめて説明してみたいと思います。 前提条件として「ABI」「可変長引数」「non-prototyped関数」の知識が必要なのでそこから説明します ABIとは ABI (Application Binary Interface) とは、機械語レベルでのインターフェースのことです。 機械語そのもののルールはISA (Instruction Set Architecture) によって規定されていますが、たとえばC言語の「関数呼び出し」などの概念を機械語でどのように表現するかについては規定していません。そのルールを定めたのがABIです。したがって、ISAとABIはおよそ1対多の関係にあります

    Cの可変長引数とABIの奇妙な関係 - Qiita
  • C で関数に * や & を付けられる件の説明 - Qiita

    この現象を解説する。 関数呼び出し まず、関数呼び出しについての規定を見る。 The expression that denotes the called function shall have type pointer to function returning void or returning a complete object type other than an array type. ―― n1570 §6.5.2.2/4 訳すとこんな感じ: 呼び出される関数を表す式は、 {void を返す関数か、配列以外の完全型を返す関数} へのポインタ型を持たなければならない。 (英語クソザコ勢なので括弧使ったけど察して) こういったわけで、実は関数呼び出しを行うとき、関数として指定する式は必ず関数ポインタ型となっている。 printf("hello") したとき、 printf は最終的

    C で関数に * や & を付けられる件の説明 - Qiita
  • 動的計画法を実現する代数〜トロピカル演算でグラフの最短経路を計算する〜 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? トロピカル半環と呼ばれる代数構造上のトロピカル行列を利用すると動的計画法を使ってグラフの最短経路の距離を計算するという問題が単純な行列積で解けてしまうらしい。そんな噂12を聞きつけて我々はその謎を解き明かすべく南国(トロピカル)の奥地へと向かった。 トロピカルな世界に行くためにはまずは代数を知る必要がある。要するに群・環・体の話だ。しかしこの記事の目的は代数学入門ではないので詳しい話は他の記事3に譲るとし、さっそく半環という概念を導入する。それは 半環は以下の性質を満たす二つの二項演算、即ち加法(和)"$+$" と乗法(積)"$\cdo

    動的計画法を実現する代数〜トロピカル演算でグラフの最短経路を計算する〜 - Qiita
  • vimって極めればvscode並のIDEになるんじゃないの? - Qiita

    個人用メモです。 *めちゃくちゃ昔の記事なのでasync系のプラグインが無かったりneovimじゃなかったり色々恥ずかしいですが、エンタメ的な気持ちで読んで頂ければ幸いです。 今回は、自分が味噌漬けに育ててきたvimを、初心者の方でもコピペで簡単に再現できるように3分で作っていきます。 ※中央上がエディタ画面、左がディレクトリツリー、右上がターミナル、下がエディタで開いてる機械学習ファイルの実行ログ。全てvimで出してます。 今回は以下の内容を紹介していきます。 インサートモードでもマウスでコピーアンドペースト ファイルのツリー表示 16言語の補完(ディレクトリ補完も有) vim画面でプログラム実行/出力 vim画面でシェルを開く 各種便利ショートカット 覚えづらいコマンドのショートカット化 まずは必要なライブラリのインストール " setting if has('vim_starting

    vimって極めればvscode並のIDEになるんじゃないの? - Qiita
  • C++からC# DLL を直接利用する方法 - Qiita

    この記事はいったい...? この記事は「Native C++ と C#ライブラリを CLI を使わずにどうしても連携させたい!!」という, とてもニッチな思いに応えるためのものです. 普通の人には必要のない技術情報です. どうするの? 【DllExport】を利用して, .NETライブラリをC++から呼び出せるようにしてあげます. なんてすばらしいアプリケーションなんだぁ~. 最新版をダウンロードしておいてください. How to 1. C#で .NET Framework ライブラリを作成します まず, VisualStudioを起動して, 【新しいプロジェクトの作成...】を押下します. 【Visual C#】→【クラス ライブラリ (.NET Framework)】→【OK】の順に押下します. 必要であれば, プロジェクト名やソリューション名も変更します. 以下のようなコードを記述し

    C++からC# DLL を直接利用する方法 - Qiita
  • [最新論文/GAN] ラベルがないなら推測すればいい。 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 論文紹介・画像引用 Google Brainより2019.3.6提出 https://arxiv.org/pdf/1903.02271v1.pdf 研究のGANの特徴と成果 FIDスコア(低い方が良い) スコア8~9の間にある縦線はベースライン(すべてラベル付けされた画像を使ったBigGAN) 研究の方法($S^3GAN$)では ラベル付けされた画像は全体のたった10%にも関わらずSOTAであるBigGANと同等の性能になった また全体の20%をラベル付けされた画像にするとBigGANを超える性能となった 解像度128×128 上段

    [最新論文/GAN] ラベルがないなら推測すればいい。 - Qiita
  • SQLによるデータ分析のテクニック - Qiita

    概要 前処理大全を読み、以下の理由から感銘を受けたものを記載する。 データ分析で、これに近いことを頼まれた(このような面倒くさい処理は、データ分析ではよくある) こんなふうにSQLを書けるんだ。めっちゃ楽やんと知った。 詳しくは前処理大全を読むことをおすすめします。 データなども「前処理大全」のgithubにあります。 前提 以下のSQLはPostgreSQLのものです。(最下部の日付の計算以外はほかでも動きそう) 内容 最も多い価格帯(最頻値)の取得 予約を格納したテーブルから、最も頻出する価格帯を取得する。 正確な価格ではなく、ROUND関数を使って千円の桁で四捨五入をしたものを対象にする。 SQL

    SQLによるデータ分析のテクニック - Qiita
  • C++20 Contract - Qiita

    この記事は、ブログ記事を色々した版です(提案文書読んでブログに書き終えてからドラフトに入ってることに気付いた)。 基的に、以下の文献に基づきます。 N4800 - Working Draft, Standard for Programming Language C++ P0542R3: Support for contract based programming in C++ by G. Dos Reis, J. D. Garcia, J. Lakos, A. Meredith, N. Myers, B. Stroustrup この機能はC++23に延期になりました、ご注意ください Contract programming 或は Design by Contract (DbC) とは Wikipedia - 契約プログラミング D4Cではない。 三行で Contract Programm

    C++20 Contract - Qiita
  • 120 行で vi っぽいエディタを作る - Qiita

    参考:Qiita では印刷がうまくできません。プリントしたい人や PDF 化したい人は http://gurakura.sakura.ne.jp/culture/vi-like_text_editor_by_120_lines/ の方を見て下さい(同じ内容です)。 IOCCC 91 Best Utility 実を言うと 120 行も必要なく、28 行で書けちゃったりするのですが("Best Utility IOCCC 91" https://github.com/SirWumpus/ioccc-ae/tree/master/91)、それはさておき、文書では現代風にこのプログラムを書き直してみます。古文の現代語訳みたいなものだと思っていただければ幸いです。 ちなみに IOCCC 91 で Best Utility 部門を受賞した全 28 行のプログラムは、このようなソースコードだったそうで

    120 行で vi っぽいエディタを作る - Qiita