ブックマーク / qiita.com (423)

  • 無料プランは百害あって一利なし - Qiita

    Don't offer a Free Planという非常に力強い主張があったので紹介してみます。 著者はGuido( Twitter / GitHub / Webサイト )です。 Don't offer a Free Plan もしあなたがSaaSプロダクトを提供しているのであれば、無料プランを提供することに意味はないかもしれません。 無料プランはホスティングコストだけではなく、リアルのコストがかかります。 サイトでは、これらの検討事項について解説し、そして無料プランにかわる手段について提案します。 The costs of a free plan 無料プランは、ユーザにプロダクトを知ってもらい、そして後に有料プランにアップグレードしてもらうことを期待します。 プロダクトにもよりますが、無料プランのユーザが増えてもサーバ代にはほとんど変化がありません。 しかし、実際には大きなコストがかか

    無料プランは百害あって一利なし - Qiita
    bouzuya
    bouzuya 2021/06/06
  • Blitz.js、Next.js辞めるってよ - Qiita

    Blitzは、ざっくり言うとReactRuby on Railsです。 Reactの面倒なところを全てすっ飛ばし、技術選定なんてどうでもいいから今すぐアプリを動かしたいんだよ、という要望を叶えるのに適したフルスタックフレームワークです。 概要はBlitz.js - React on Rails、実際の使い方はBlitz.jsチュートリアル:投票サービスを15分で作ってみるあたりを見てもらうとして、とにかくチュートリアルに従ってコマンド打てばとりあえず動くものが一瞬でできるとかそんなかんじです。 技術的にはReact + Next.jsで動いています。 ということだったのですが、先日どうも雲行きの怪しいRFCが提出されました。 以下は[RFC] Time to maintain a fork of Next.js?の紹介です。 なお提案者のBrandon BayerはBlitz.jsの作者

    Blitz.js、Next.js辞めるってよ - Qiita
    bouzuya
    bouzuya 2021/05/03
  • アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 - Qiita

    こんにちは、大学 1 年生になったばかりの E869120 です。 私は競技プログラミング趣味で、AtCoder や日情報オリンピックなどに出場しています。ちなみに、2021 年 4 月 7 日現在、AtCoder では赤(レッドコーダー)です。 記事では、アルゴリズムの学習や競技プログラミングで使える数学的な部分を総整理し、それらについて解説したいと思います。前編・中編では数学的知識、後編(2021/4/26 公開予定)では数学的考察の側面から書いていきます。 【シリーズ】 アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 ← 記事 アルゴリズム・AtCoder のための数学【中編:数学的知識編②】 アルゴリズム・AtCoder のための数学【後編:数学的考察編】 1. はじめに 21 世紀も中盤に入り、情報化社会(いわゆる「IT 化」)が急激に進行していく中、

    アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 - Qiita
    bouzuya
    bouzuya 2021/04/11
  • アーキテクチャに関するドキュメントの残しかた - ADRとARCHITECTURE.md テンプレート - Qiita

    技術、アーキテクチャ設計の指針には 技術選定/アーキテクチャ設計で後悔しないためのガイドライン という資料があるが、ここでもアーキテクチャディシジョンレコードをつける という文書に触れられている。「なんでこのアーキテクチャにしたの?」は、プロジェクト外の者、あるいはもちろん、プロジェクトに新規参加する者にとって大事な資料となる。 以下具体的に ADR と、ARCHITECTURE.md というものに絞って何を書くべきか書いた。 1. ADR - Architecture Decision Record アーキテクチャ決定録 目的: アーキテクチャに関わるドキュメント決定記録。 あれ、これ以前どう決めましたっけ? の決定録。意思決定の記録を残す - ADRの話 に以下がまとめられている。 書き方ポイント フォーマット タイトル (Title) ステータス (Status) 文脈、背景 (Co

    アーキテクチャに関するドキュメントの残しかた - ADRとARCHITECTURE.md テンプレート - Qiita
    bouzuya
    bouzuya 2021/03/09
  • React Hook Formのアップデート内容 - Version 7 - Qiita

    (❤️ ブログ記事を翻訳してくれた日のチーム、Kotaro、Keiya、Marinaに感謝します。) React Hook Formもそろそろ2年目を迎えようとしています。プロジェクト自体は、初日と同じように今でも活発に活動しています。この数年の間に、バージョン7の作成やデザインに繋がる多くの学びや経験がありました。私はここで、次のメジャーバージョンでの改善点とその理由をいくつか紹介します。フォームを構築するという点で、React開発者がより楽に開発できるようにする私たちの使命に変わりはありません。 V7 visions:  📖 (DX)厳密に型付けされたフォーム 🏋🏻‍♀️ シンプルさと一貫性 🏎 パフォーマンス 💁‍♂️ パッケージサイズの削減 このビジョンを説明するために、APIの変更点を見ていきましょう。 </> register 主な変更点の一つは register

    React Hook Formのアップデート内容 - Version 7 - Qiita
    bouzuya
    bouzuya 2021/02/24
  • Deno が Node.js に依存しなくなった - Qiita

    Deno (ディノ) Advent Calendar 2020、25日目の記事です。今日は Deno が Node.js に依存しなくなった経緯の話をします。 Node.js に依存しながら始まった Deno の開発 Deno は、プロジェクトが始まって以来いくつかの点で Node.js に依存して開発が進められてきました。おもに Node.js に依存していたのは以下の3種類のプログラムです。 バンドラ parcel (のちに rollup に移行) フォーマッタ prettier リンタ tslint (のちに eslint に移行) この中でバンドラが最も最初に Deno 製のツールにリプレースされ、その後フォーマッター、リンターの順でリプレースされていきました。リンターがリプレースされたのはつい最近 (2020年11月) のことです。この記事ではそれぞれの経緯・手法について紹介して

    Deno が Node.js に依存しなくなった - Qiita
    bouzuya
    bouzuya 2020/12/25
    🎉
  • 技術選定/アーキテクチャ設計で後悔しないためのガイドライン - Qiita

    はじめに 稿は、ソフトウェア開発を進める際に直面する様々な技術的な意思決定やライブラリ・フレームワーク・XaaS等を選択し正しく活用していくのかについての考え方をサポートすることを目的としています。「すべてにおいてこのようなワークフローを通じて検討すべきである」という主張ではありません。読者の抱える問題領域に応じて、必要な箇所を取捨選択するための1種の考え方を提供するものです。 そもそもアーキテクチャ・技術選定に時間をかけるべきか まず第一に伝えておきたいことは、技術選定やアーキテクチャ設計に常に慎重であるべきではないということです。ソフトウェアの規模やライフサイクルに応じて、そもそも時間をさく必要がないということも多くあります。書き捨てのシェルスクリプトにも読みやすいコードを求めて書くことは非常に重要ですが、だからといって組織だって議論・検討するようなものでもないのです。一方で、5年も

    技術選定/アーキテクチャ設計で後悔しないためのガイドライン - Qiita
    bouzuya
    bouzuya 2020/12/16
  • C++からRustに移行して1年経って思ったこと - Qiita

    はじめに この記事は「プログラミング技術の変化で得られた知見・苦労話【PR】パソナテック Advent Calendar 2020」のために書かれたものです。 僕は去年の11月から一念発起してRustの勉強を初めて趣味同人ゲームを開発しています。元々C++を4年程使っていて「C++最高、みんなC++使おう」とか友人に布教していました。しかし、C++プログラマは「一番自分たちの言語の批判に対して強くなる」と言われるほどC++はよくディスられます。もちろん僕も例外ではありませんでした(笑)。 一応僕もPythonを適当に使うようになってからC++のcppとhppを組み合わせるようなCの名残を感じるところや他言語と比べたときの標準ライブラリの貧弱さ、コードが冗長になりやすい点など使いにくいなあと思いはじめましていました。ですがPythonはあくまでも適当に使ってただけでしたし、一通り書けるJa

    C++からRustに移行して1年経って思ったこと - Qiita
    bouzuya
    bouzuya 2020/12/09
  • 2で割ることと3で割ること - Qiita

    この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

    2で割ることと3で割ること - Qiita
    bouzuya
    bouzuya 2020/12/09
  • SPAのログイン認証のベストプラクティスがわからなかったのでわりと網羅的に研究してみた〜JWT or Session どっち?〜 - Qiita

    SPAのログイン認証のベストプラクティスがわからなかったのでわりと網羅的に研究してみた〜JWT or Session どっち?〜JavaScriptRailsJWT認証React SPAのログイン周りについて、「これがベストプラクティスだ!」という情報があまり見当たらないので、様々な可能性を模索してみました。 いろいろな状況が想定され、今回記載する内容に考慮の漏れや不備などがありましたら是非コメントでご指摘いただきたいです!特に「おすすめ度:○」と記載しているものに対しての批判をどしどしお待ちしております! この記事でおすすめしているものであっても、ご自身の責任で十分な検討・検証の上で選択されてください。 前提 想定しているAPIは、 ログイン外のAPIにはPOST/PUT/DELETEのものがなく、GETのみ GETのAPIにはDBを更新するなどの操作がない とし、そのためログイン外では

    SPAのログイン認証のベストプラクティスがわからなかったのでわりと網羅的に研究してみた〜JWT or Session どっち?〜 - Qiita
    bouzuya
    bouzuya 2020/12/08
  • 2020 年版 Command Line Tool を作ってみる in Rust - Qiita

    2 年前に書いた記事 Command Line Tool を作ってみる in Rust が今でも参照されることがあるようなので、2020 年版にアップデートした内容を書いていきます。 概要 この記事では Rust で Command Line Tool を作るときに、便利なライブラリ、ツール、そしてサービスを紹介します。主に CLI working group が取り組んでいる Command Line Applications in Rust(以後 Book と呼称)のアップデート内容が中心です。その他にプラスアルファして個人的に便利だと思うツールやサービスを紹介していきます。 こちらに完全なサンプルコードを公開しています。 見やすさの都合上、説明と直接関係のないコードや設定は省略して表示します。手元でビルドして確認したい場合はこちらのソースコードをダウンロードしてご確認ください。 エラ

    2020 年版 Command Line Tool を作ってみる in Rust - Qiita
    bouzuya
    bouzuya 2020/12/08
  • 可視化や統計でデータに『恣意的なストーリーを語らせる』16の闇の魔術【bad charts】 - Qiita

    闇の魔術に対する防衛術 Advent Calendar 2020の三日目 はじめに データの可視化は非常に難しい。 まずデータの抽出が難しい ・データソースごとの整合性が取れているか ・取得したデータとソースデータに欠損が生じていないか ・SQL文を実行したサマリの結果が部分的に抜け落ちていないか。 その確認は時間的にも精神的にも苦痛。 しかし、苦労して抽出したデータも使い方で全くの無駄になる その例として「可視化や統計」部分に着目してお話をしようと考えた。 データの背景を知らない人には、データ可視化が歩み寄る手段になるし、伝えたい事をインパクトを伴って伝えられるなど非常にメリットである。 ※ただし 「可視化」の使い方によっては誤った理解をさせることも可能。 伝えたい事だけを正しいように見せる方法もあり、 可視化に詳しくない人に誤解を与えて自分の主張を通すこともできるかもしれない。 これは

    可視化や統計でデータに『恣意的なストーリーを語らせる』16の闇の魔術【bad charts】 - Qiita
    bouzuya
    bouzuya 2020/12/04
  • Rustの日本語書籍紹介 - Qiita

    はじめに この記事はRust Advent Calendar 2020の3日目です。 今年の春から夏にかけて、「実践Rustプログラミング入門」というを書いていました。お陰さまで売上好調のようでありがとうございます。(ちなみにちょうど昨日、電子書籍版も出ました) このを書くにあたって、すでにいくつかRustの日語書籍があるなか新しいを出すということで、既刊との差別化をどう図るかは考えないといけないと思っていました。その時にRustを一通り読み直したので、それぞれどのようなであるかを簡単にまとめておこうと思います。 基的な書誌情報に加え、Rustコンパイラのバージョンとエディション、内容のざっくりとした方向性(実践よりか文法解説よりか、といったような)を書いていきます。いくつかのにはよく使われる呼び名があるのでそちらも書いておきました。 Rustはいろいろなプログラミング言語

    Rustの日本語書籍紹介 - Qiita
    bouzuya
    bouzuya 2020/12/03
    「似たような名前ばかり」と話題の本たち
  • Rust、こんなときはこう書こう - Qiita

    こんにちは、Rust2 Advent Calendar 2020の1日目を担当させていただくyasuo-ozuです。 今回は特にまとまったネタを思いつかなかったのでtips集としてお送りします。有名なものばかりで恐縮ですが、何かありましたらご指摘いただければ幸いです。 Enum型の要素を賢く使う イテレータを Option でマップしたいとき、通常では以下のようにすると思います。 let v = vec![1usize, 2, 3]; let v = v.into_iter().map(|v| Some(v)).collect::<Vec<_>>();

    Rust、こんなときはこう書こう - Qiita
    bouzuya
    bouzuya 2020/12/01
  • Spring Security 使い方メモ テスト - Qiita

    Spring Security は 5.4 以降、設定の書き方に大幅な変更が入っています。 詳しくは @suke_masa さんの Spring Security 5.7でセキュリティ設定の書き方が大幅に変わる件 - Qiita を参照してください。 基礎・仕組み的な話 認証・認可の話 Remember-Me の話 CSRF の話 セッション管理の話 レスポンスヘッダーの話 メソッドセキュリティの話 CORS の話 Run-As の話 ACL の話 MVC, Boot との連携の話 番外編 Spring Security にできること・できないこと Spring Security のテスト Spring Security には、 JUnit によるテストをサポートする仕組みが用意されている。 例えば、テストのときに使用するユーザを固定したり、権限を指定したりすることができる。 Hello

    Spring Security 使い方メモ テスト - Qiita
    bouzuya
    bouzuya 2020/11/11
  • Rustで乱数生成 - Qiita

    この記事はRust Advent Calendar 2018 12/9の記事です。 Accelの進捗をお送りする予定でしたが、進捗がないのでrandの解説をします。 Rustで乱数を生成するにはrand crateを使用します。この記事ではこの使い方について簡単についてまとめます。 疑似乱数生成器(pseudo random number generator, PRNG) Rustでの使い方を見る前に、疑似乱数についての基的な用語を確認しておきます。 乱数列の様に見えるが、実際には決定論的な方法で生成されている列のことを疑似乱数と呼びます。一方で物理的な乱数(熱雑音や宇宙線によるもの)を真の乱数と呼んで区別します。 周期 決定論的、つまり一つ前の状態から次の状態が完全に決定するPRNGでは、状態が有限個の時必ず有限回で同じ状態に戻ってきてしまいます。例えば状態がN個のビットで表現される乱

    Rustで乱数生成 - Qiita
    bouzuya
    bouzuya 2020/11/07
  • 僕「PDFとは何か知りたい」 - Qiita

    追記情報 - (2020/11/7 18:30) @scivola さんのコメントに基づき、 ラスタースキャン、 ベクタースキャン、 ブラウン管 の説明を追加しました。 TL;DR PDFについて次のような内容を(私の好奇心の赴くままに)調べたので共有したいと思います。 「PostScript」とは? 高速ロードの仕組み フォント埋め込み 「PDFってどんなファイルなんだろう」 PDFを使ったこと無い人はいないと思います。 それほど、PDFは身近な存在となる一方で、その仕組みについて触れる機会はほとんどないと言っても過言ではないです。 何百ページにも渡るPDFで開いた時、ページ移動したときに、パッと表示されたりしますよね。 あれってなんでか知っていますか? 私はもちろん知りませんでした。 たまたま仕事PDFをあれこれいじるにあたって、仕様がわかってないこともあり、なかなかうまくいかず

    僕「PDFとは何か知りたい」 - Qiita
    bouzuya
    bouzuya 2020/11/07
  • PureScriptで湯婆婆を実装してみる - Qiita

    いつの間にか Ja 婆婆が妙に流行っていたのでどれいっちょ Rust で実装してみっかと思って念の為検索をかけたらもういたので, 人気がなさそうなまず間違いなくかぶらない PureScript で実装することにしました。 なお, PureScript で標準入力を実現するのは少し面倒なので, コードに直書きすることにしてます。 すまねえ。 やり方はこちら。 でも代わりに Try PureScript! に貼り付けて実行できるので環境構築とかしなくても遊べるよ。 コード module Main where import Prelude import Data.String.CodePoints (length) import Data.String.CodeUnits (singleton) import Data.String.Unsafe (charAt) import Effect (

    PureScriptで湯婆婆を実装してみる - Qiita
    bouzuya
    bouzuya 2020/11/06
  • 『ソフトウェアシステムアーキテクチャ構築の原理(第2版)』読んだ - Qiita

    『ソフトウェアシステムアーキテクチャ構築の原理(第2版)』を読んだので、メモとして内容の一部を紹介します。 原書、著者など Software Systems Architecture (2nd Edition) 著者 Nick Rozansky, Eoin Woods 監訳 榊原さん 何が書いてある? 「ソフトウェアシステムのアーキテクチャとは?」という深淵な課題について書いています。アーキテクチャ、システムとその関連概念群を定義しようという取り組みは古く、 1970s David Parnas 1990s Dewayne Perry, Alexander Wolf 1995 Philipe Kruchten, RUP (The “4+1” View Model of Software Architecture) ... 論理/プロセス/物理/開発 + シナリオ(Use Case) これが

    『ソフトウェアシステムアーキテクチャ構築の原理(第2版)』読んだ - Qiita
    bouzuya
    bouzuya 2020/11/04
  • DeepFake技術解説 人を超えるAIを作るには - Qiita

    今日は、@Jiny2001です。 国内でも悪用され初めてついに逮捕者が出たDeepFake。記事はDeepFakeの総まとめです。 キーになる各技術の仕組みとしてStyleGAN, FaceSwap, StarGAN, Talking Headsについて解説してみました。何故AIがこれだけ進歩してきたのか、この技術部分の理解が超大事だと思ってます。気になるなら是非読んでみて下さい。 そして最後にちょっとだけ、今後のAI発展についての期待を書いてみました。 Too long; didn't read? 1行で要約すると → DeepFake ぱねぇ です。 目次 DeepFake系技術の現状 DeepFakeの大まかな技術体系の解説 1) Face Synthesis: (StyleGAN) 2) Identity Swap: (FaceSwap) 3) Attribute Manipul

    DeepFake技術解説 人を超えるAIを作るには - Qiita
    bouzuya
    bouzuya 2020/10/30