タグ

関連タグで絞り込む (280)

タグの絞り込みを解除

qiitaに関するclavierのブックマーク (255)

  • 簡易x86エミュレータを再実装してRustを学ぶ - Qiita

    はじめに プログラミング言語のRustを学びたいと思い,今年はいくつかを読んだり1,The Rust Programming Languageの輪講会を催したりした.ところがそこまで学んでいても,Rustでは強力な型システムと所有権システムがあるため,初学者の私にはコンパイルすら一筋縄では行かなかった. そこでCのプログラムをRustで再実装し,Rustに慣れることとした.自作エミュレータで学ぶx86アーキテクチャのx86エミュレータpx86はCで実装されているが,これを新たにRustで実装することした.px86を選んだ理由は一度Linuxで実装した経験があるため2,またコンパクトな規模の実装であるから,題材として適切と考えた. 記事では,簡易x86エミュレータをCからRustに実装し直す上で困ったことを取り上げ,どのように対処したかを示す. px86:簡易x86エミュレータ 今回実装

    簡易x86エミュレータを再実装してRustを学ぶ - Qiita
  • グラフニューラルネットワークでQiitaのタグづけをレコメンドする - Qiita

    記事はNTTドコモR&Dアドベントカレンダー2021の8日目の記事です. こんにちは、NTTドコモの橋(@dcm_hashimotom)です. 業務ではレコメンド関連の技術開発・施策検討を行っており,主にPythonやBigQuery, Apache Sparkを触ってます. SNSなどで投稿したコンテンツの検索性を上げるためには,そのコンテンツへのタグ(またはハッシュタグ)の付与が重要です.Qiitaではタグは5つまで付与することができ,タグを指定した絞り込み検索や,マイページでのプロフィールに使われております.しかし,タグの付与はユーザ手動なものが多く(要出典),検索性が高いものを選択するためには,ドメイン知識が必要です.なので,タグを付ける際に「このタグがついた投稿では他にこんなタグもついてます」的なレコメンドがあれば有用そうです.また,レコメンドということですが,近年レコメンド

    グラフニューラルネットワークでQiitaのタグづけをレコメンドする - Qiita
  • 【超入門】Laravelのデバッグ手法22選 - Qiita

    はじめに Laravel Advent Calendar 2021 7日目の投稿です。 枠があまっていたので1日目に続いて7日目も投稿します。 他の記事のタイトルを見ると応用的な内容が多かったのでLaravel初心者の方向けにおすすめのLaravelデバッグ方法(tips)を22個ご紹介します。 思ったより数が多くなったので、1つ1つは掘り下げず概要と簡単な使い方をご紹介します。 公式ドキュメントや参考リンクも載せているので詳細はそちらを見てください。 どれか一つでもLaravel開発のヒントになれれば幸いです。 おすすめの手法 特におすすめの方法をご紹介します。 2.17. テストコードを書く 一番のおすすめはテストコードを書くことです。 予期する値と実際の値をテストしながらコードを書くことで一つ一つの処理を確認しながら進めることができます。 2.5. beyondcode/larave

    【超入門】Laravelのデバッグ手法22選 - Qiita
  • PlantUML のテキストで書ける Git Flow と PlantUML で描いた Git Epic Flow - Qiita

    Git Flow のブランチモデルは図で描かれることが多いです。Excel や Illustrator で描くと綺麗ですが修正や管理が大変です。 PlantUML はテキストで書けて修正や管理が簡単です。そして図の表示もできる PlantUML で Git Flow を書きました。 前半は git-flow のブランチモデルを PlantUML で作成する手順を 5 Step で紹介します。 後半は GitHub Flow や GitLab Flow そして git-flow を改善した Git Epic Flow を紹介します。 用語説明 Git は分散型バージョン管理システムです。 Git Flow は Git の機能のブランチの作成や更新をするルールのモデルです。 PlantUML はテキストで UML を記述できる DSL(ドメイン特化言語) です。 UML のシーケンス図は、オブ

    PlantUML のテキストで書ける Git Flow と PlantUML で描いた Git Epic Flow - Qiita
  • なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita

    1.はじめに エンジニアの私がデザインを気で勉強した結果、デザイナーとエンジニアはそもそも思考が大きく違っているということがわかりました。 今回は「それ」をデザインに苦手意識のあるエンジニア方にも理解してもらえたらと思い、わかりやすくまとめてみました。 2.アプリの画面デザインを考えてみよう まず、こんなアプリを考えてみてください。 フィットネストレーナーが使うアプリ トレーニングルームでお客様とお話しながら使う 端末はタブレット そして 会員の個人情報確認 前回までのトレーニング状況の確認 次回の予約受付 といったことをします。 使える情報としては、こんな感じです。 あなたならどう画面デザインをするか、もしお時間があったら考えてみてください。 記事では、 SEのAさん デザイナーのBさん の二人が画面デザインをする過程を比べながら、その思考の違いを整理してみます。 3.SEのAさんの

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita
  • 2020年超盛り上がり!自己教師あり学習の最前線まとめ! - Qiita

    オミータです。ツイッターで人工知能のことや他媒体の記事など を紹介していますので、人工知能のことをもっと知りたい方などは @omiita_atiimoをご覧ください! 他にも次のような記事を書いていますので興味があればぜひ! わずか1%のラベルでImageNet高精度「SimCLR」解説 出きたてホヤホヤ!最新オプティマイザー「AdaBelief」を解説! 画像認識の大革命。AI界で話題爆発中の「Vision Transformer」を解説! 新たな活性化関数「FReLU」誕生&解説! 自然言語処理の王様「BERT」の論文を徹底解説 2021/02/28 SimCLRのバッチサイズに関する記述を修正 2020年に大きく盛り上がりを見せた分野に自己教師あり学習(=Self-Supervised Learning(SSL))があります。SSLとは名前の通り自分で教師を用意するような手法で、デー

    2020年超盛り上がり!自己教師あり学習の最前線まとめ! - Qiita
  • 【CTF】OSINT問題で個人的に使用するツール・サイト・テクニックまとめ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【CTF】OSINT問題で個人的に使用するツール・サイト・テクニックまとめ - Qiita
  • 正規表現のポテンシャルを引き出す自作関数3選 [Python] - Qiita

    はじめに 文字列処理に関する3種類の自作関数を紹介します。 具体的には、主に以下の2点を目的としています。 ・正規表現の円滑な適用 ・英字 / かな / カナ / 漢字 / 数字 の識別 ☆ 02/26 時点で全体構成を刷新しました。 下準備

    正規表現のポテンシャルを引き出す自作関数3選 [Python] - Qiita
  • 「998244353 で割ったあまり」の求め方を総特集! 〜 逆元から離散対数まで 〜 - Qiita

    1. なぜ 998244353 で割るのか? 最初はこのような設問を見るとぎょっとしてしまいますが、実はとても自然な問題設定です。 $998244353$ で割らないと、答えの桁数がとてつもなく大きくなってしまうことがあります。このとき以下のような問題が生じます: 多倍長整数がサポートされている言語とされていない言語とで有利不利が生じる 10000 桁にも及ぶような巨大な整数を扱うとなると計算時間が膨大にかかってしまう 1 番目の事情はプログラミングコンテストに特有のものと思えなくもないですが、2 番目の事情は切実です。整数の足し算や掛け算などを実施するとき、桁数があまりにも大きくなると桁数に応じた計算時間がかかってしまいます。実用的にもそのような巨大な整数を扱うときは、いくつかの素数で割ったあまりを計算しておいて、最後に中国剰余定理を適用して復元することも多いです。 なぜ 9982443

    「998244353 で割ったあまり」の求め方を総特集! 〜 逆元から離散対数まで 〜 - Qiita
  • Rust初心者殺しの文法10選 - Qiita

    概要 この記事ではRust初心者が驚いたり混乱させられたりするようなRustの文法を10項目集めてみました。 これらの項目は知らないと理解できなかったりコンパイルエラーに悩まされたりする一見厄介なものたちなのですが、そのような直感的でない挙動を敢えてさせているところには重要な意味が込められていることが多いです。 そのため、これらの項目を通してRustが目指しているものや実現したい機能の一部を垣間見ることができると思います。 1. デフォルトの代入がムーブ Rustの最大の特徴が所有権の概念であることは有名ですが、それでもなお初心者殺しになるのがムーブです。 以下のコードがコンパイルエラーになるメジャーな言語は現状Rustくらいしか無いでしょう。 let mut a = vec![1, 2, 3]; let mut b = a; // ここでaの持つベクタの所有権がbにムーブされ、aは無効に

    Rust初心者殺しの文法10選 - Qiita
  • Kedroで機械学習パイプラインに入門する - Qiita

    はじめに Kedroという機械学習向けパイプラインツールを使ってみたので備忘までに記事を書きます。 とりあえずパイプラインを組んでみて動いたところまで、です。もう少し使い込んで、別途投稿できればと思っています。 公式のチュートリアルの差分は、以下くらいかなと思います。(どっちもちょっとしたことですが) ホストを汚さないようにDockerコンテナ内でKedroプロジェクトを作成・開発していること node.pyは使わず、普段慣れ親しんだディレクトリ構成で普通にスクリプトを書いていること(それらをノードとしてパイプラインでつないでいる) パイプラインツールの必要性 依存関係が複雑になりがちな処理処理フローを管理したい データ取り込み→データ前処理→モデルのトレーニング→チューニング→デプロイメント、etc ジョブを並列実行したい コンポーネントごとにマシンスペックを柔軟に設定したい 前処理は高

    Kedroで機械学習パイプラインに入門する - Qiita
  • 【Python】専門書や論文を読みたいけど数学が苦手・わからない人向けのコードを読んで学ぶ数学教本 - Qiita

    はじめに プログラミング自体は文系、理系、年齢関わらず勉強すればある程度ものになります。プログラミングがある程度できるようになるとTensorflow,PyTorchやscikit-learn等のライブラリで簡単にできる機械学習やデータサイエンスに興味を持つの必然! これからさらになぜ上手くいくのか・いかないのかの議論をしたい、社内・外に発表したい、理論的な所を理解したい、先端研究を取り入れたい、応用したい等々と次々に実現したい事が増えるのもまた必然でしょう。このときに初めて数学的なバックグラウンドの有無という大きな壁が立ちはだかります。しかし、数学は手段であって目的ではないので自習に使える時間をあまり割きたくないですよね。また、そもそも何から手を付けたら良いかわからないって人もいるかと思います。そんな人に向けた記事です。記事の目標は式の意図する事はわからんが、仕組みはわかるという状態に

    【Python】専門書や論文を読みたいけど数学が苦手・わからない人向けのコードを読んで学ぶ数学教本 - Qiita
  • 【2021】モダンなPython開発環境の紹介 - Qiita

    📌 はじめに Pythonで開発を行うにあたり、リンタやフォーマッタ、パッケージマネージャ等のツールの選定は非常に重要な問題です。一方で歴史的な経緯もあり、沢山の選択肢から何を選ぶべきか情報がまとまっていないように感じました。この記事では2021年9月時点でモダンと言えるであろう開発環境を紹介します。基的にはシェアが高いこと、著名なパッケージで使用されていることを主な選定理由としており、また特定のエディタに依存しないことを前提とします。 記事で紹介する内容は一つのテンプレートに近く、必要に応じてカスタマイズするもよし、そのまま使ってもよし、として参考になればと思います。(CI/CDについてはPythonとは独立した問題なので触れません。またドキュメント生成はSphinxを推しますが、必須ではないので今回は割愛します。) 📄 要約 "モダン"な開発環境を箇条で列挙すると下記の通りです

    【2021】モダンなPython開発環境の紹介 - Qiita
  • AI・Python活用レシピ100選 - Qiita

    ※ 一部ガイドラインに反する内容がありましたので、該当箇所を修正のうえ再投稿しております。 はじめに Axross は、エンジニアの"教育"と"実務"のギャップに着目し、「学んだが活用できない人を減らしたい」という想いで、ソフトバンク社内起業制度にて立ち上げたサービスです。 現役エンジニアによる実践ノウハウが"レシピ"として教材化されており、実際に動くものを作りながら、具体的な目的・テーマをもってプログラミングを学ぶことができます。 今回は、Axross運営が厳選した『AIPython活用レシピを100選』をご紹介します。是非、みなさまのAIPython学習の参考にしてみてください。 Axross:https://axross-recipe.com 公式Twitter:https://twitter.com/Axross_SBiv 基礎 スクレイピング 01 . JUMPの掲載順をスク

    AI・Python活用レシピ100選 - Qiita
  • 二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - Qiita

    0. はじめに 二分探索法は単純ながらも効果が大きく印象に残りやすいもので、アルゴリズム学習のスタート地点に彩られた花という感じです。二分探索というと「ソート済み配列の中から目的のものを高速に探索する」アルゴリズムを思い浮かべる方が多いと思います。巨大なサイズのデータを扱う場面の多い現代ではそれだけでも十分実用的ですが、二分探索法はもっとずっと広い適用範囲を持っています。 記事では、二分探索法のエッセンスを抽象化して、適用範囲の広い「二分探索法の一般形」を紹介します。同時に無数にある二分探索の実装方法の中でも「めぐる式二分探索」がバグりにくいと感じているので、紹介したいと思います。 注意 1: 二分探索の計算時間について 二分探索の計算時間について簡単に触れておきたいと思います。例えば「$n$ 個の要素からなるソート済み配列から目的の値を探索する」というよく知られた設定であれば、 単純な

    二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - Qiita
  • 【挑戦者求ム】ぼくの考える最速のData LoadingとData Augmentation(Kaggle notebook) - Qiita

    はじめに まぁタイトルの通りなのですが、Kaggle notebook上で行う最速のData LoadingとData Augmentationを考えてみたので紹介します。より速い方法を知っている方は教えてください! 今回の題材は以下のように設定します。 データ こちらのコンペのデータを使います。10.2k枚のjpg形式の犬の画像です。 https://www.kaggle.com/c/dog-breed-identification/data 実行環境 GPUをenableにしたKaggle notebookで行います。 2 CPU cores 13 GB RAM Tesla P100 条件 trainデータ(画像とラベル)をすべてTensorにしてGPUにLoadするのにかかる時間を計測する バッチサイズは64 前処理 & Data Augmentationとして以下の処理をかける。(

    【挑戦者求ム】ぼくの考える最速のData LoadingとData Augmentation(Kaggle notebook) - Qiita
  • DDDを意識しながらレイヤードアーキテクチャとGoでAPIサーバーを構築する - Qiita

    今の現場で初めてDDDに触れたので、よく採用されるアーキテクチャとしてレイヤードアーキテクチャを自分で0から実装してみました。 言語もよくセットで採用されているGoを採用してみました。 この記事の目的 0から実装して体系的にDDDとレイヤードアーキテクチャを学ぶ DDDに触れたことがない方にもわかりやすく説明する そもそもDDD(ドメイン駆動設計)とは 要約(引用)すると「ドメインの知識に焦点を当てた設計手法」です。 たとえば電子カルテのシステムを例に取ってみます。 電子カルテには患者情報や手術の予定、入院ベッドの空き具合などの概念があると考えられます。 医療関係者ではないソフトウェアエンジニアは実際につかうユーザー(医療関係者)が直面している問題やドメイン(領域)の概念、事象を理解することが必要です。 それらを理解し、ソフトウェアに落とし込む。落とし込み続けることを実践する開発手法です

    DDDを意識しながらレイヤードアーキテクチャとGoでAPIサーバーを構築する - Qiita
  • ラズパイにて、ラジコンカーを自作する-その1 - Qiita

    はじめに ラズベリーパイにて、自作のラジコンカーをつくったので紹介します。 ラジコンカー関連の記事 ラズパイにて、ラジコンカーを自作する-その1 ← 記事 ラズパイにて、ラジコンカーを自作する-その2 ラズパイにて、ラジコンカーを自作する-その3 紹介する内容 モータードライバについて ラジコンの組み立て方法について ※今回は、ハードウェアのみ。制御の話は次の記事で記載します。 最終的な目標 スマートフォンやPCを介して、ラジコンを制御したいと思います。 記事の記載範囲は、ラジコンの組み立てが中心です。 モータドライバ TA7291P 今回のラジコンカーには、DCブラシモータを使用します。 一般的なDCブラシモータは、乾電池などの電源につなぐと一定方向に回転します。 逆に回転させる場合は、電源の極性を逆するにする必要があります。 この切り替え動作を行うための回路が必要となります。 そこ

    ラズパイにて、ラジコンカーを自作する-その1 - Qiita
  • NewSQLのコンポーネント詳解 - Qiita

    4.2.1 Shardingの手法 先ほどの表1を理解するにはSharding手法の列にあげられた各用語の理解が必要となる。 YugaByteDBのブログ「Four Data Sharding Strategies We Analyzed in Building a Distributed SQL Database」には、非常に詳しくShardingの手法が紹介されている。この記事では、大きく以下4つの分類があるという。 Algorithmic Sharding (例: Memcached/Redis) Linear Hash Sharding (例: 過去のCassandra) Consistent Hash Sharding (例: DynamoDB、Cassandra) Range Sharding (例: Spanner、HBase) 詳細は割愛するが、1つ目のアルゴリズム・シャー

    NewSQLのコンポーネント詳解 - Qiita
  • 「Java8からJava11」で何が起きたのか、どう環境構築すればいいのか - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事の目的 「Javaの環境構築」で絶対にハマったり、錯綜する情報にいつも惑わされる人に向けた記事です。 2017年以降のJavaは、移り変わりが激しい世界になりました。このことを認識し、「軸となる考え方」や「重要な動向」を把握できるように、調べた情報をまとめました。 **「5年ぶりに(Java|JVM言語)触るんだけど環境周りが全然わからん」とか、「CorrettoとかAdoptOpenJDKとか、みんな何を言っているんだ」**という人(つまりちょっと前の筆者)が、「今後に渡って2度とハマらないための基礎知識を得られること」を目的

    「Java8からJava11」で何が起きたのか、どう環境構築すればいいのか - Qiita