並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 5844件

新着順 人気順

qiitaの検索結果1 - 40 件 / 5844件

  • 年収が600万円アップした転職手順 - Qiita

    はじめに はじめましてほしいもです。 今回は年収が600万円アップした転職の話をしたいと思います。 自己紹介 30代前半 既婚、子どもあり 大学卒 16Personalities:ENTJ-T(指揮官) 転職結果概要 利用した転職サイト:ビズリーチ、リクルートダイレクトスカウト 利用した転職エージェント:Geekly 転職活動期間:6週間 転職前後の業種:BtoBの自社開発企業 → BtoCの自社開発企業 年収変動:700万 → 1,300万 転職動機 「今転職しなければ手遅れになるかも」 という感覚が、転職活動を始めた主な理由でした。 現職での待遇に特に不満はなかったものの、新卒入社した企業で既に10年が経過し、このままでは40代で転職市場に出た時に不利になるのではと不安を感じていました。 他にも大規模なプロジェクトが終わってキリが良かったことや、 ベテランの退職者が少ないので上が詰まっ

      年収が600万円アップした転職手順 - Qiita
    • 話題のローコードツール「Dify」で生成AIアプリを作ってみよう! - Qiita

      Difyって何? 少し前から話題の、プログラミングなしで生成AIアプリケーションを開発できるOSSです。 「Dify すごい」 でSNSを検索すると、驚き屋さんがみんな驚いています。このゴールデンウィークはAmazon BedrockとDifyの話題でもちきりでしたね。 元々は「GPTビルダーのOSS版ね。はい解散」という感じだったのですが、最近追加された「ワークフロー」機能がすごく便利のようです。 ちょっとしたアプリなら、ローコードで簡単に作れてしまうとのこと。 最近は自分でPCやサーバー準備して動かさなくても、SaaS版が公式から準備されたようです。無料プランもあります。 やってみた サインアップ 公式サイト右上の「Get Started」からサインアップします。 GitHub連携すると、いきなり開発画面に辿り着きました!いいUX。 「(いち?)から作成」よりワークフローを作ってみまし

        話題のローコードツール「Dify」で生成AIアプリを作ってみよう! - Qiita
      • 【ハンズオン】RemixでTODOアプリを作ってReactの違いを体感しよう【TypeScript/Supabase/TailwindCSS】 - Qiita

        【ハンズオン】RemixでTODOアプリを作ってReactの違いを体感しよう【TypeScript/Supabase/TailwindCSS】TypeScriptハンズオンRemixtailwindcssSupabase はじめに Reactを使っていてステートがクライアントとサーバーで辻褄が合わなくなった そんな経験がReactをある程度使ったことがある人はおそらく経験したことがあるはずです。 Reactにおいて状態管理は誰でも使いやすく直感的である半面、クライアントとサーバーの状態を意識する必要が有ります。 どのタイミングでステートの変更をサーバーでも行うのか難しく思う場面もしばしばあります。 今回は最近巷でReactと並んで見かけるようになったRemixについてハンズオン形式で学べるような記事を書いていきます。 ハンズオンを通してRemixの特徴であったり、SupabaseやTail

          【ハンズオン】RemixでTODOアプリを作ってReactの違いを体感しよう【TypeScript/Supabase/TailwindCSS】 - Qiita
        • PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita

          1.PythonだけでWebアプリをつくるライブラリが増えている 最近(2024.05)、Python界隈ではPythonだけでWebアプリが作れるライブラリが増えています。詳しくは他の記事を参照してもらえればと思います。 以下の記事がとても参考になりました。ありがとうございます。 2.ライブラリの分類 こうしたライブラリも大きくわけて2つの種類があるように思います。 ①データ解析の結果を表示するダッシュボードライブラリ ②汎用的なWebアプリをつくるローコードライブラリ ①ダッシュボード系ライブラリ たとえば、上記の記事にも出てきますし、ネットでもかなり情報の多い、StreamlitやDashは項番1のダッシュボードライブラリに該当すると思います。 PandasのDataframeをつかって、表やグラフが簡単にできます。 Pythonを使う人のなかでもデータ解析をしている人にとっては、W

            PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita
          • エラーが出たら喜べ。エラーをちゃんと出せ。 - Qiita

            どうもエラーを出すもしくはエラーが出るのが怖いという人がいるみたい。例えば改修を行うときに既存部分でエラーが出ないことを最優先にして増築を行いいびつな構造を生み出すとか、単純に例外を全然使わないとか。エラーが出ると、「うわ、エラーになった。手間かけさせやがって面倒だなぁ…」みたいな感覚があって、とにかく自分がコードを書くときも一切例外を投げないというスタンスをとりがちなのかもしれない。 私はここで、適切にエラーが出てくれるのはむしろ喜ばしいことであり、自分がコードを書くときも積極的にエラーを出すようにすべきだ、という主張をする。 関数定義のドキュメンテーションの一部 ある関数の中身で一番最初に書くべき処理は何か、それは引数のチェックをして条件を満たさなければエラーを出すことである。例えば文字列は特定の形式になってなければならないとか、数値に最大値最小値があるとか、これらは関数の入力の前提条

              エラーが出たら喜べ。エラーをちゃんと出せ。 - Qiita
            • なぜ管理職は罰ゲームなのか。 - Qiita

              はじめに タイトルでお察しかと思いますが、今回は「罰ゲーム化する管理職」の著者である小林祐児さんがPIVOTのYoutubeチャンネルに出演されており、そちらの内容が非常に素晴らしかったので、管理職の課題や対策について、記事にまとめたいと思います。 また、途中で出す資料はパーソル総合研究所の中間管理職の就業負担に関する定量調査からお借りしています。 中間管理職の課題 部下育成が不十分、後継者不足 働き方改革が進んでいるもの、現在の管理職は人手不足・ダイバーシティ・ハラスメント対応・人手不足などによって業務量が増加。 管理職本人の負担が増えている他、部下育成と後任者の不在という課題も抱えている。 昨今の働き方改革やハラスメント対応などにより、管理職の業務量は増加傾向にあります。 小林さんに言わせれば、「働き方改革は一般層の働き方改革」であって、それによって管理職の首を絞めていると。 業務量増

                なぜ管理職は罰ゲームなのか。 - Qiita
              • 【未経験者大歓迎】RAG超入門:AWSが推奨するRAGを体験するハンズオン - Qiita

                2024/5/5更新:生成AIに興味を持った方向け、続編を投稿しました。 「Qiitaに聞いた!!」をAmazon Bedrockで作った!(Claude 3でRAG) タイトルはふざけてますが、プロンプトエンジニアリングにより本投稿と同様の内容を行う解説をしています。 (BedrockのClaude 3モデルと、Google検索を使った構成です) 生成AIはとても注目度が高い技術ですが、すこしとっつきにくいところがあるかもしれません。新しいモデルや活用手法が毎日のように登場し、ウォッチし続けるのはかなり大変です。 タイミングを逃して入門できていない方向けに、 とりあえず作って体感してみよう というコンセプトで、ハンズオン記事を作成しました。🎉🎉🎉 ハンズオンの内容は「RAG」です。RAGは生成AIの活用法としてよく出てくるキーワードです。ハンズオンでは、ただのRAGではなく最先端の

                  【未経験者大歓迎】RAG超入門:AWSが推奨するRAGを体験するハンズオン - Qiita
                • Oracle Database 23ai がリリースされたので作成してみてみた - Qiita

                  Oracle Database 23ai がリリースされました。このデータベースのリリースでは AI に重点を置いているため、データベースの名前を Oracle Database 23c から Oracle Database 23ai に変更することにしました。この Long-Term Support Release には、Oracle AI Vector Searchと、データによるAIの使用の簡素化、アプリ開発の加速、ミッションクリティカルなワークロードの実行に焦点を当てた300を超える追加の主要機能が含まれています。 ⚫︎ AI and Converged Data: Oracle's Strategy for Data Management Larry Ellison と Juan Loaiza が、Oracle Database 23ai の GenAI 戦略と、Oracle D

                    Oracle Database 23ai がリリースされたので作成してみてみた - Qiita
                  • プログラミングの生産性向上のためにお金をかけてよかったもの10選 - Qiita

                    タイトルのとおり、生産性向上のためにお金をかけてよかったものをご紹介します。 基本的には仕事道具と健康系が多いです。 腰痛 睡眠 集中力向上 このあたりにお悩みをお持ちの方の一助になれるかもしれません。 おしりセレブ 他のトイレットペーパーだと、おしりを拭いた後大体痛くなってしまいます。 そのまま長時間椅子に座って作業をするのが辛い…というのがあったのですが、おしりセレブを使うようになってからその悩みがなくなりました。 ステッパー メンタリストDaiGoさんがお薦めされていたのを見て購入しました。 もともと腰痛に悩まされており、「少し運動しようか」という日頃ランニングを日課としていました。 が、ランニングのために決まった時間をガッツリ取らないといけなかったり、雨の日はできなかったりという課題がありました。 ステッパーを買ってからは雨でも気にせず有酸素運動ができるし、Amazon Prime

                      プログラミングの生産性向上のためにお金をかけてよかったもの10選 - Qiita
                    • なっとく!関数型プログラミング を読んで関数型プログラミングを学んだ - Qiita

                      EDOCODEでエンジニアをしているYutakaです。 こちらは社内勉強会で発表した資料を元にしています。 関数型言語の知識がほとんどないエンジニアがなっとく!関数型プログラミングで学んだ用語を一部まとめました。原著はGrokking Functional Programmingです。本書はScalaとJavaで説明がされていますが、できる限り社内で使われている言語(Go, JavaScript, TypeScript)でサンプルコードを記載しました。 書籍のソースコードはこちらに全て公開されています。 そもそも関数型プログラミングとは? プログラミングのパラダイムには大きく①命令型プログラミング②宣言型プログラミングがあります。 ①命令型プログラミングとは どのよう(HOW)に計算するかに焦点を合わせ、段階的なアルゴリズムを詳細に定義します。これは実際のハードウェアの計算処理の流れに沿っ

                        なっとく!関数型プログラミング を読んで関数型プログラミングを学んだ - Qiita
                      • プロダクトマネージャーの役割は「プロダクトマネジメントをすること」だけではないかも - Qiita

                        はじめに 今回プロダクトマネージャーの動きを行っていく中で、新しい気づきがあったので記事としてまとめました。 プロダクトマネジメントをプロダクトマネージャーだけで行わない プロダクトマネジメントとは、プロダクトを成功に導く考えであり、これはプロダクト作りに関わる人であれば必ず必要になってくるものです。 つまり、プロダクトマネジメントとは特定の誰かが行うアクションではなく、チームや組織全体で行っていくものだと考えています。 プロダクトマネージャーの役割 プロダクトマネージャーの主の役割とは、もちろんプロダクトマネジメントを行うことです。 しかし、プロダクトマネジメントが行えている状態を組織として目指すためには 「プロダクトマネジメントをすること」だけではなく「プロダクトマネジメントができる組織づくり」も行う必要があると考えています。 そのためには、プロダクトマネージャーとして、「プロダクトマ

                          プロダクトマネージャーの役割は「プロダクトマネジメントをすること」だけではないかも - Qiita
                        • Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita

                          この記事ですることを3行で Pythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先に Python 3.12から本格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの

                            Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita
                          • 「誰にもできる」より良いコードを書くためのテクニック - Qiita

                            はじめに こんにちは、愛知でWEBエンジニアをしているkokuboと申します。 ここ最近の業務でコードレビューをすることが多くなり、人によって読みやすさの違いがあることや過去に自分で書いたコードが読みにくかったことから、良いコードとは何かを調べて見ました。 今回は「リーダブルコード」を元に良いコードとは何かを簡単紹介させていただきます。 この記事では難しい技術がいらないため、初心者や私と同じようにレビューを始めた方達の参考になれば幸いです。 概要 【この本での「良いコード」とは】 他の人(過去の自分も含む)が最短時間で理解ができるコードのこと 【メリット】 理解しやすい コードを読んだだけで、そのコードが何をしようとしているのかがすぐに理解できる メンテナンスしやすい バグの修正や機能の追加など、コードを変更する際に、その意図を把握しやすくなる チームで開発しやすい 複数の開発者が同じコー

                              「誰にもできる」より良いコードを書くためのテクニック - Qiita
                            • 「誰にもできる」より良いコードを書くためのテクニック - Qiita

                              はじめに こんにちは、愛知でWEBエンジニアをしているkokuboと申します。 ここ最近の業務でコードレビューをすることが多くなり、人によって読みやすさの違いがあることや過去に自分で書いたコードが読みにくかったことから、良いコードとは何かを調べて見ました。 今回は「リーダブルコード」を元に良いコードとは何かを簡単紹介させていただきます。 この記事では難しい技術がいらないため、初心者や私と同じようにレビューを始めた方達の参考になれば幸いです。 概要 【この本での「良いコード」とは】 他の人(過去の自分も含む)が最短時間で理解ができるコードのこと 【メリット】 理解しやすい コードを読んだだけで、そのコードが何をしようとしているのかがすぐに理解できる メンテナンスしやすい バグの修正や機能の追加など、コードを変更する際に、その意図を把握しやすくなる チームで開発しやすい 複数の開発者が同じコー

                                「誰にもできる」より良いコードを書くためのテクニック - Qiita
                              • より良い Git コミットメッセージを書こう - Qiita

                                より良いコミットメッセージを残すことは Git を使った開発をする上で重要なことです。優れたコミットメッセージは、それを読んだ人がコードを理解するのに大いに役立ちます。 では、どのようなメッセージが良いもので、どのようなメッセージが悪いものなのでしょうか? それについて掘り下げていきたいと思います。 基本的な Git Commit Message の書き方 詳しいところは、以下の3サイトを参照してください。特に「How to Write a Git Commit Message」には基本がすべて書かれています。 How to Write a Git Commit Message https://cbea.ms/git-commit/ Gitのコミットメッセージをうまく作成する7つのルール (「How to Write a Git Commit Message」の和訳記事) https://

                                  より良い Git コミットメッセージを書こう - Qiita
                                • 知的・技術的進歩のスピードを限界まで加速するノートアプリ『Heptabase』 - Qiita

                                  はじめに 1年半ほどObsidianというノートアプリを使い、Qiitaにも記事を3つほど公開をしていました。 効率的に成長するためのデジタルノート術(Obsidian x Zettelkasten(LYT Framework)) コーディングのようにノートを取る技術 がんばらないObsidianノート術 確かにNotionやEvernoteとは違う感覚のノートアプリであり、双方向リンクを利用したグラフで繋げていくノートに当時は感動を覚えました。 その反面、Obsidianを百パーセント有効に活用できていたかと聞かれると「はい」と答えることは難しいと感じています。がんばらないObsidianノート術の記事はまさにその一角であり、Obsidianの拡張性と自由度に翻弄されてしまわないように書いた記事です。 1年半を通して紆余曲折した中、先日新しいツールとの出会いがあり、自分に合うツールを見つ

                                    知的・技術的進歩のスピードを限界まで加速するノートアプリ『Heptabase』 - Qiita
                                  • 元QAが開発チームにjoinして品質向上を試みたこと3選 - Qiita

                                    はじめに どうも、元QAのエンジニア @Syahu_Writer です。 今回は、元QAが開発チームにjoinしてから行った品質向上のための施策について紹介していきます。 大なり小なりいろいろとやってますが、代表して以下3つを話します。 ・開発プロセスの改善 ・シナリオテストケーステンプレートの改善 ・不具合の再発防止 開発プロセスの改善 以下は当初の開発フローを図に書き起こしたものです。 この図から読み取れる問題点はざっくりと、 ・すべて直列のフローだが、並列処理にしていいものも混じっている ・テスト完了レビューといった、不要で実際に行われていないものがある ・レビューのタイミングが悪く、大きく手戻りが発生する箇所がある という状態でした。 それを以下の通り修正しました。 ・並列にして問題ないものは並列にする ・不要なプロセスは削除する ・手戻りが最小限となるようにレビューを設置する ま

                                      元QAが開発チームにjoinして品質向上を試みたこと3選 - Qiita
                                    • 【作業効率化】4年目エンジニアが「使わなくなった」アプリを供養する - Qiita

                                      はじめに よくQiitaでおすすめアプリとかの記事を見かけますが 逆に使わなくなったアプリの紹介記事ってなくね? と思い今その勢いで本記事を書き進めています。需要があるかはしーらないっ。 本記事では、今年で4年目のエンジニアが作業効率を追い求める中で淘汰されていったアプリたちを紹介します。 ちなみに当方Macユーザです。 エディタ Visual Studio Code 3年目くらいまでは結構使ってました。 settings.jsonやkeybindings.jsonをdotfilesで管理してみたいなこともするくらいには使ってました。 が、何かのタイミングでvimに興味を持ち、vimを使いはじめてから徐々に使わなくなってゆきました。 vimに興味を持った最初の頃はVSCの拡張でvimがあったので、それを使ってました。 VSCでvimの操作を再現できる拡張です。 しかし vimと言えば学習コ

                                        【作業効率化】4年目エンジニアが「使わなくなった」アプリを供養する - Qiita
                                      • 生産性における即レスの大切さ - Qiita

                                        はじめに 昨今「開発生産性」についての話題をよく目にします。 生産性が向上することで悪いことは無いので、様々な組織の事例が公開されて業界全体に知見が共有されていくことはとても素晴らしいことだと感じています。 話題のこちらの本 「世界一流エンジニアの思考法」にもとても大切なことが書かれておりますし こちらの記事も参考になりました。 それらを踏まえて個人的に生産性向上のベースになる大切なことだと思っている 「即レスの大切さ」 について書きたいと思います。 これまでやってきたお仕事 ツールアプリの新規事業責任者(3年ほど) 全体3名の少人数チームでスタート 私(責任者+PdMの役割)、エンジニア1名、デザイナー1名 最終的には30人前後の組織の事業部長 ゲームアプリのマーケティングマネージャー(5年ほど) 組織全体としてはビジネスサイド20名、エンジニア5名、デザイナー5名ほど 会社経営(4年ほ

                                          生産性における即レスの大切さ - Qiita
                                        • 紙っぽいかわいいWebサイト作りたい - Qiita

                                          かわいいWebサイトが作りたい Web上でグラフィックデザインっぽい表現をしてるサイト大好き! 思いついたら追加する 「版ズレ」風 版ズレ = 印刷の際に、色の版がズレて出力されてしまう現象。(アナログっぽい雰囲気を出すために、あえてズレているように見せるデザイン手法として使ってます) 一番上のレイヤーに紙っぽいテクスチャを乗せて乗算かける 後ろのテキストはaria-hidden="true"でスクリーンリーダーに読み上げられないようにする (疑似要素でやりたかったけど乗算上手くいかなかった・・) ▼ HTML <div class="hanzure"> <img src="紙っぽいテクスチャ" alt=""> <div class="hanzure01"> <p class="front">版ズレ風の表現</p> <p class="back" aria-hidden="true">版ズ

                                            紙っぽいかわいいWebサイト作りたい - Qiita
                                          • 新人が1on1に来ない - Qiita

                                            新人が1on1に来ない。その原因を考察する。 ここで出てくる新人の情報は以下である。 年齢: 30代前半 エンジニア歴: 5年 入社して半年 1on1を行うに至った経緯: 1年前、私と同じ時期に入社した同期Aが退職した。 詳細はよく分からないが、どうやらチームの先輩の1人と相性が悪いとの事だった。 尚、Aが退職したのは上記の理由だが、退職したいからこれを名目上の理由にしているのであって、原因は他にある可能性はあるが、この際それは考慮しない。 会社の人員構成: ほとんどがエンジニア歴10 ~ 20年のベテラン。平均年齢は30代後半。 Aは30代前半。 周囲の反応: Aが退職を告げた時、周囲はうろたえた。事前に相談は無かったし、特に問題はないように思われていた。 何より30過ぎた社会人は、問題があれば自分から話して来るという思い込みが、既存社員にあったもしれない。 年齢は関係あるか: ないと考

                                              新人が1on1に来ない - Qiita
                                            • バックエンドエンジニアやめませんか?【KiZooNa.js】 - Qiita

                                              バックエンドなくてもフロントで完結するライブラリ作りました。サンプルでTodoアプリにしました See the Pen KiZooNa.js TODOs by John Doe (@04) on CodePen. ソースコード 使用方法 使い方はLaravelのクエリビルダーとまったく一緒です。Laravelのpluck()やcount()やinsertGetId()など全部使えます! <html> <body> <script src="https://github30.github.io/KiZooNa.js/KiZooNa.js"></script> <script type=module> const db = new DB({ url: 'http://localhost/sql-injection.php', dsn: 'mysql:host=127.0.0.1;dbname=

                                                バックエンドエンジニアやめませんか?【KiZooNa.js】 - Qiita
                                              • MSX-C に関する情報 - Qiita

                                                はじめに 『MSX-C』関連の情報を集めてみました。 MSX-C 『MSX-C』は ASCII が発売した MSX 用の C コンパイラです。元々は エル・エス・アイ・ジャパン株式会社 の『LSI C-80』の OEM だったようです。 『MSX-C』はアセンブラソースを吐くタイプのコンパイラですので、実行形式ファイルを生成するにはアセンブラとリンカが必要です。 See also: ASCII MSX-C (MSX Resource Center) LSI C-86 (Wikipedia) 準拠している C 言語の規格 ANSI C (1989) よりも前に発売された製品なので、後に制定された規格には準拠しておらず、K&R のサブセット的な実装となっています。例えば、MSX-C で利用可能なデータ型は次の 4 (3) 種類のみです。 型 長さ 範囲

                                                  MSX-C に関する情報 - Qiita
                                                • 【ワークフロー】Slackで匿名掲示板を作る - Qiita

                                                  目的 Slackを使っていると、大抵どのワークスペースにも雑談や質問用のチャンネルが作られているかと思います。 チャンネル運営側からすると、そこで多くのエンジニアたちのコミュニケーションがとられることを期待しています。 しかし、結局は特定の人のみがたま~に使う程度になっていませんか? その原因に「自分がチャットを投げてもいいのだろうか?」という心理的ハードルが大きく関わっていると思っています。 そこで、ここではSlackのワークフローという機能を使って匿名でチャットを投稿できるチャンネルを作ります。 なんちゃって掲示板みたいなものです。 ※Slackの有料プランが必要になります。 ワークフローとは 公式からの引用です。 ワークフローは、あなたとチームが Slack で毎日実行するタスクをやりやすくしてくれます。仕事の中のほとんどすべてのタスクやプロセスを、ワークフロービルダーツールで自動化

                                                    【ワークフロー】Slackで匿名掲示板を作る - Qiita
                                                  • 金子勇さんのED法の解説と弱点、行列積を使用した効率的な実装 - Qiita

                                                    はじめに 先日以下の記事が話題となり、とてもワクワクしたので自分も実装して色々実験してみました。 実装するうちに理解が深まったので一度、 誤差拡散法の元ネタ紹介から 数式の解説、 ED法の弱点、 行列計算を使用した実装と簡単なテスト結果、 実装上の工夫 までまとめてみたいと思います。 誤差拡散(Error Diffusion)法 もともとは画像の2値化において失われる情報を周囲のピクセルで補うことで、遠目に元の画像の濃淡が残っているように見せる技術(ハーフトーン処理の一種)です。 Error diffusion -Wikipedia(英語版) 左の画像をちょうど半分の明るさをしきい値として2値化すると中央の画像のようになりますが、誤差拡散法を適用すると2値化後も右の画像のようにある程度濃淡を保存・表現できます。 誤差拡散法(画像処理)のサンプルコード コメントアウト箇所はFloyd, St

                                                      金子勇さんのED法の解説と弱点、行列積を使用した効率的な実装 - Qiita
                                                    • 自己対戦で強化学習する三目並べ AI をPyTorchで実装 - Qiita

                                                      PyTorch の社内勉強会の題材にしたいと思い立ち、畳み込みニューラルネットワーク(Convolutional Neural Network, CNN)を用いた自己対戦型強化学習の三目並べ AI を実装したので公開します。見通しの良いシンプルな実装を目指しました。結局、それなりのコード量になってしまいましたが。 動作環境 Google Colaboratory の CPUランタイムにて動作を確認しました。 概略 おおまかな処理フローは次図の通りです。盤面情報を受け取った先攻方策と後攻方策は、○×を書き込む場所を返します。この先攻方策と後攻方策に AI を実装し自己対戦させます。 盤面情報は、空白マスをゼロ、先攻 ○ を+1、後攻 × を-1とした形状 (H,W)=(3,3) の二次元配列とします。 盤面座標は、場合により二次元座標と1次元に展開したフラット座標を使い分けます。 三目並べの

                                                        自己対戦で強化学習する三目並べ AI をPyTorchで実装 - Qiita
                                                      • Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita

                                                        はじめに みなさん様々な言語でAPIサーバーを立てて負荷試験を実施したことはありますか。 私自身、業務でPythonのアプリケーションに対して負荷試験を実施した経験があります。 その際にPythonの速度観点の不安定さを目の当たりにしたと同時に、別の言語ではどのような違いが生まれるのだろうか、という疑問を持ちました。 そこで今回は、簡単ではありますがGoとRustとPythonでそれぞれAPIサーバーを立てて負荷試験をしてみます。 負荷試験対象のAPIサーバー 今回は(1) Hello, World!を返すAPI(2) ファイル読み込みAPI(3)1秒待ってから応答するAPIの3つを実装します。 (1)はAPIサーバー自体の応答速度の計測、(2)はメモリを消費する処理が生じた場合のAPIの応答速度の計測、(3)は待ち時間発生している時のAPIの応答速度の計測することが目的です。 (2)につ

                                                          Go、Rust、Pythonで実装したAPIサーバーの負荷試験比較 - Qiita
                                                        • LaTeX と Python で作る 1 ポイントたりとも表示崩れしない最強の帳票印刷ソリューション - Qiita

                                                          元ネタ 元ネタはこちらです(以下「Figma と PHP」で略します)。 読んでなるほどと思いました。このように、誰かが苦労したおかげで後続が楽になるので感謝です。何が問題点として生じるのか、どんな解決方法が考えられるのか、が予め判明しているだけでもだいぶ楽になります。 反面、$\LaTeX$ の方が実装は簡易ではないかと思ったので、それを実践してみました。 条件と問題点 Figma と PHP の 44 ページに以下のような条件があります 改めて、満たしたい条件 ミリ単位で細かく帳票をデザインしたい。 帳票デザインの保守性を維持するためにはビジュアルデザイン必須 印刷時に見た目が一切崩れない さらに、次のような障害を次々とクリアしていってます。 文字参照の問題 枠からのはみ出しの問題 右寄せの問題 自動折り返しの問題 連票の問題(簡易な解説のみ) これらを $\LaTeX$ と Pyth

                                                            LaTeX と Python で作る 1 ポイントたりとも表示崩れしない最強の帳票印刷ソリューション - Qiita
                                                          • 金子勇さんのED法のシンプルな解説を試みた - Qiita

                                                            はじめに @pocokhc(ちぃがぅ)さんが、金子勇さんのED法を実装してMNISTの学習に成功しました。 金子勇さんの失われたED法 金子勇さんの失われたED法発掘の経緯 ここではちぃがぅさんのコードを元に、ED法をシンプルに解説していきたいと思います。 ED法をわかりやすく解説するため、今入力を(1,0)としたとき(0)を推論するXOR問題を考えてみましょう。 ED法の場合, 入力、重みともに正負(p,n)2つ分の変数を用意する必要があります。 例えば 入力を(1,0)とすると 1 (p) ,1 (n), 0 (p), 0 (n) の4つとバイアス分の2つの p n が必要です。 また, 3層構造として中間層のニューロンをp, n 2つのみとします。 中間層のニューロンを2つとしたときは、 p, n の2つと, バイアス用のp, n の2つが必要です。 中間層のニューロン各々は、そのニ

                                                              金子勇さんのED法のシンプルな解説を試みた - Qiita
                                                            • ED法への生理学的な考察 - Qiita

                                                              初めまして。普段は産婦人科医をしつつAIの医学応用に関する研究をしています。 Qiitaは見る専でしたが、以下のバズっている記事を拝見した時、生理学の神経構造の話をふと思い出したのでメモ代わりに記載しようと思います。 読みにくい部分があれば申し訳ありません。 とくに@pocokhc(ちぃがぅ)さんの記事のコード詳細と実験内容を見ていた時、実際の神経系の構造とあまりに似ていたことにびっくりしました。 まず、興奮性ニューロンと抑制性ニューロンの2種類から構成されるED法の構成ですが、これは実際の神経系でも同様の構造になっています。実際の神経はシナプスのつながりをニューロンと言います。信号を伝える側の興奮性シナプスに電気が走ると、電位依存性のカルシウムチャネルが開き、Caが放出されます。このCaの影響でシナプスの末端にある小さな袋から神経伝達物質(中枢神経系では主にグルタミン酸)が放出されます。

                                                                ED法への生理学的な考察 - Qiita
                                                              • レベルアップしたい人必見 Qiita記事43選 - Qiita

                                                                はじめに 本記事ではレベルアップしたいエンジニアが読んでおくべきQiita記事を紹介します。厳選に厳選を重ねた43記事です。全ての記事を読んでおく必要はありませんが、ちょっとでも「分からないな」「興味あるな」など思ったタイトルがあれば読んでみてください。 次の4種類に分類して紹介しています。参考にしてください。 フロントエンド バックエンド インフラ・Linux周りの知識 その他 それでは、早速紹介していきます! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 フロントエンド まず最初はフロントエンドエンジニアに読んでおくべきとおすすめできるQiita記事を11個選びました!フロントエンドエンジニアとしての基礎が身に付く

                                                                  レベルアップしたい人必見 Qiita記事43選 - Qiita
                                                                • 大規模サービスのインフラを全面的にリプレイスした話 - Qiita

                                                                  はじめに こんにちは。雑食系エンジニアの勝又です。 今回は、私が2年ほど参画させていただいた大規模サービスのインフラやDevOps周りを全面的にリプレイスしたお話について簡単にご紹介させていただきます。(内容に関しては事前に参画先企業様に確認していただいております) サービス概要 詳細な内容は伏せますが、メインとなるテーブルのレコード数が数十億件、スパイク時には数万〜数十万のユーザーが一斉にアクセスする大規模サービスです。 技術的負債 長く運用されてきたサービスのあるあるですが、新機能の追加が最優先されてきたことにより、こちらのサービスにも下記のような技術的負債が大量に積み上がっていました。 RubyやRailsやMySQLのバージョンがかなり古い インフラの構成がコードではなくドキュメントで管理されている アプリケーションの構成管理がおこなわれていない CI/CDパイプラインが構築されて

                                                                    大規模サービスのインフラを全面的にリプレイスした話 - Qiita
                                                                  • エンジニアというITの専門家でありながら、小賢しいWeb系の詐欺に80%ぐらいはまって死にかけた話 - Qiita

                                                                    みなさんこんにちは!記事を読んでくださりありがとうございます。 Qiitaには初投稿なので、簡単に自己紹介をさせてください。 自己紹介 ・カナダのバンクーバーでWeb/モバイルエンジニアとして働いています ・2024年7月に日本に帰国し、プロダクトオーナーに転身します ・大阪出身です 何が起こったかの概要 タイトルの通り、小賢しいWeb系の詐欺にはまって危うく銀行口座に侵入されかけました。カナダで起こった出来事ですが、日本でも似たようなことが起こり得る事例かと思ったので、よりたくさんの方に注意喚起ができればと思いこちらに投稿致しました。 時系列での解説と違和感ポイント みなさん、Facebookには「マーケットプレイス」という機能があるのをご存知でしょうか?日本で言うジモティーのような機能です。カナダでは不用品の売買でFBのマーケットプレイスが非常によく利用されます。私は2ヶ月後に日本へ引

                                                                      エンジニアというITの専門家でありながら、小賢しいWeb系の詐欺に80%ぐらいはまって死にかけた話 - Qiita
                                                                    • 本当のAWS基礎 昭和~平成~令和の時代の変遷システムの変化と今昔物語 - Qiita

                                                                      内容 社内でAWS知らない人でもこれだけは覚えていてほしいという動画を作成して欲しいとリクエストあり。その内容を資料化したものです。小学生の子供に説明してみましたがになんとなくAWSが分かったと言っていたので今回は結構分かりやすくまとめられたと思います。 システムを構築する時 システムを構築する際、サーバやネットワークなどのインフラが必要になります。昭和の時代は物理サーバを買ってきてラックマウントしてネットワークに接続してと物理的な作業が多く発生していました。 その後、物理サーバの上に仮想的なサーバを作成できる仮想化技術の発展により、仮想サーバが主流となりました。最初に物理サーバを用意して、仮想化基盤を構築する必要があります。仮想化基盤構築後は、新しいシステムを作りたい場合はすぐに仮想サーバの準備を行うことができ、物理環境の時と比較すると大きな進展がありました。 仮想化基盤を自社で構築する

                                                                        本当のAWS基礎 昭和~平成~令和の時代の変遷システムの変化と今昔物語 - Qiita
                                                                      • Obsidianが大学生活を変える! 学生必見の活用術 - Qiita

                                                                        ナレッジベース共有ではなく、自分のためだけのクローズドなローカル環境で動作する点において差別化がされている。何かを発信するのではなく自分自身のためにテキストをまとめるのです。 このテキストも外出先で書いています。 金欠学生はもちろん格安を売りにしたプロバイダーと契約しているので3GB程度しか余裕がないはずです(私は月の半ばでなくなりました)。しかしローカルで動作するので速度制限を恐れることなく使うことができるのです。 Obsidianは単なるノートアプリではなくアイデアを書き溜め、思考をまとめ上げ、一つの思想を創り上げる、最強のセカンド・ブレインである。 —私 メリット 日常的に使えばマークダウン記法に慣れて、サークルや研究室のesaの記事を書く心理的ハードルが下がる QiitaやZennなどの記事を公開するハードルも下がる 有名な使い方としてはドイツの社会学者が考案したツェッテルカステン

                                                                          Obsidianが大学生活を変える! 学生必見の活用術 - Qiita
                                                                        • rebase 教から脱退します - Qiita

                                                                          rebase で色々あったので、備忘録として簡単に書いていきます。 前提背景 開発作業中、元のブランチに変更があった場合、私は変更を取り込むために常に rebase を使用します。これを選ぶ主な理由は「コミットログが見やすく保たれるため」です。 Gitには同様のコマンドとして merge がありますが、これは変更を取り込む際にマージコミットを作成する点が異なります。私はマージコミットによってコミットログが煩雑になると感じています。 このような理由から、私はrebaseを積極的に使用しています。 何があったのか 簡単に言うと、レビュー中にブランチ元の変更があったので、 git rebase からの git push -f origin [ブランチ名] やったらレビュアーのコメントが吹き飛びました。 いやー、めっちゃ怒られたよね💦 原因 「レビュー中」という状況がまずかった。 コードを共有し

                                                                            rebase 教から脱退します - Qiita
                                                                          • 初心者大学生が作った機械学習ライブラリがGitHubでスター数300を超えた話 - Qiita

                                                                            この記事について この記事では、プログラミング初心者の大学生である(であった)私が試行錯誤しながらなんとかスター数300越えのOSSライブラリを作った過程をまとめたものです。ライブラリ自体はまだまだ発展中のためこの記事も適宜更新してく予定です。ライブラリ自体の詳細というよりも、自作OSSの認知度を上げで他の人に使ってもらうために有用そうな知見をまとめていこうと思います。 ライブラリの概要 今私が作っているのは、AIJackという、機械学習モデルがもつセキュリティ・プライバシー上の脆弱性についての各種攻撃・防御手法を実験するためのPythonツールです。既存のライブラリの多くは特定の種類の攻撃や防御に特化したものが多く、複数のタイプの攻撃・防御を組み合わせて実験するためにはいくつものライブラリを組み合わせる必要がありました。そこでAIJackでは、できる限り統一的なAPIで様々な攻撃・防御手

                                                                              初心者大学生が作った機械学習ライブラリがGitHubでスター数300を超えた話 - Qiita
                                                                            • VSCodeでペットを飼う - Qiita

                                                                              はじめに こんにちは。エンジニアの皆さん。 日々の業務にお疲れではないでしょうか? 消えないエラー、動かないプログラム、迫る締切、etc... 数あるストレスで限界になっていませんか? ... ...!!! そんな時はペットを飼いましょう!!!!!!!!!! ...というわけで、VSCode上でペットを飼うことができる拡張機能を紹介します。 その名も、vscode-pets.......!!!!!!!!!! これです。vscode-petsで検索しましょう。 導入 インストールしたらコマンドからPet Coding: Start pet coding sessionを実行します。 Pet Coding:Spawn additional petから好きなペットを選んで... ほわああああああああ!!!!!!! 殺伐としたVSCodeに一輪の花が爆誕しました。かわいいですねー。 あそびかた す

                                                                                VSCodeでペットを飼う - Qiita
                                                                              • Postmanを使い始めた時に知っておきたかった地味に便利な機能10選 - Qiita

                                                                                普段何気に使っているPostman。最近まで「手軽にGUIで疎通を試せて、設定を共有できてべんり〜」くらいで使っていました。 けどふと「実はもっと便利な機能があるのでは?」と思って調べてみたところ、色々出てきたのでせっかくなのでシェアしたいと思います。 たまたまですがちょうど10選! 地味に便利な機能10選 VSCode拡張 PostmanにはVSCode拡張機能があります。 インストールするだけで、VSCodeのサイドバーから利用可能です。 日本語設定 日本人なので日本語で使いたい。 右上の歯車→Settingsから以下の通り選択することで日本語化が可能です。 変数の定義 複数のAPIで同じ値を使いたい場合があるとします。例えばテスト用のユーザーIDなどです。 Postmanではそんな値をAPIファイルに逐一ハードコードする必要はなく、変数に保存することが可能です。 Postman Ec

                                                                                  Postmanを使い始めた時に知っておきたかった地味に便利な機能10選 - Qiita
                                                                                • GIS に欠かせない Shapefile を深堀ってみる - Qiita

                                                                                  1. はじめに 地理情報システム (GIS) で、使用するデータとして「Shapefile 形式」でデータ提供されていることがあります。この記事では、この Shapefile が、どのような構造となっているのかについて、説明していきます。 1.1. トポロジ構造とは Shapefile について説明していく前に、まずは GIS データ等でよく利用される「トポロジ構造」について説明しておこうと思います。 例えば、トポロジ構造を持つファイルとして、次のようなものがあります。 .gdb: ESRIのファイルジオデータベースは、トポロジを含む複雑な空間データを格納することができます。 .topojson: トポロジを保存するための拡張 GeoJSON 形式で、隣接する地物間の境界を共有することでファイルサイズを削減します。 .gml: 地理マークアップ言語 (Geography Markup La

                                                                                    GIS に欠かせない Shapefile を深堀ってみる - Qiita