タグ

ブックマーク / zenn.dev (49)

  • NFTに対する技術的な誤解

    はじめに 「メタバース上の土地は買うべきか」から始まり、NFTの価値は信仰によるものであるとの一連の流れを読み大変感銘を受けた。 kumagiさんのNFTの価値は信仰によるものであるとの指摘も、sasakiさんの自分の興味からNFTを買った話も、どちらも私個人としては理解できる話であった。 一連の議論のリンクは貼っておくので、詳しく知りたい方は見てほしい。 NFTメタバースについて思うこと 空想のNFTと現実のNFT Re: 空想のNFTと現実のNFT Re: Re: 空想のNFTと現実のNFT Re: Re: Re: 空想のNFTと現実のNFT さて、これらの議論に対するtwitterをはじめとするSNSのコメントを見ると、技術的に誤った情報の配布や誤解を生みかねない表現を使ってNFTの価値について語っている人が想像以上に多く感じた。 ブロックチェーンやNFTは新しい技術分野であるため

    NFTに対する技術的な誤解
    ryo0821
    ryo0821 2022/02/18
  • ブラウザで動くサービスを作るときの技術選定

    はじめに 私の仕事は、新規サービスをまるっといい感じに開発するのを委託されることがほとんどです。最近はネイティブアプリを作ることよりもブラウザで動くWebサービスを開発することが多いのですが、案件の規模感や要求によって技術選定を少し変えるようにしています。「こういうときはこう」みたいに一概には言えないのですが、普段使う構成を紹介します。誰かの参考になれば幸いです。 2022/02/10 現在での内容です。 前提 開発を委託される場合の運用費をどうするの問題があります。クライアントにクレカ登録をしてもらうか、こちらで支払って毎月請求するかになります。僕は毎月やるのがめんどくさいのでできるだけ前者に倒している関係上、あまりいろいろなSaaSを組み合わせて作ることをなるべく避けています。 規模感によらず使っているもの 私の場合、以下が使えるとめちゃくちゃ効率よく開発できます。 GCP 好きだから

    ブラウザで動くサービスを作るときの技術選定
  • エンジニアを始めてから便利だったツールまとめ

    概要 エンジニアになってから出会った便利ツール・アプリを備忘録としてまとめました。 ※WEB用ツール多め GUIツール・アプリ デスクトップ上で動作させるやつ。 Authy https://authy.com/ 2FAアプリ。Multi-Deviceという複数端末で使える機能があり、PCでログインする際の2FAをPCのみで完結できるので便利。 Hyper https://hyper.is/ コンソールアプリ。テーマ機能やプラグイン追加で自分の好みに環境を整えやすくて見た目がよい。 設定を.hyper.jsファイルで管理するので、gitにて設定管理ができて便利。 VSCode https://code.visualstudio.com/ 言わずもがなの高機能コードエディター。特に理由がなければ基的にはプログラミングするならこれを使えばいいんじゃないかな。 豊富なプラグインや設定で、Hype

    エンジニアを始めてから便利だったツールまとめ
  • 自然な日本語ダミーテキストを生成するWebアプリを作りました

    こんな感じの文章を自動生成できます。 二人の男女を一様に観察していました。私は仕方なしに立って、再び封の中へ、自分の左右前後を見廻して母の頭は陛下の病と父の病と父の病とを結び付けて考えるのが変に気味が悪かったのです。固よりそこにはまるで解りませんけれど、おそらくそんな意味じゃないでしょう。私の考えは行き詰まればいつでも両方が同時に奥さんのいる事をとうから自覚していました。先生の附近で盗難に罹ったものが、僻んだ私の眼を擦りました。それでも鷹揚に育った私は、もっと海の中で遊んでいられるか、宅へ帰って卓に向った時、両親の死に断えた私の卒業する前に、また一種の弛みができても、決して強い言葉で説明しました。 モチベーション 同じようなツール・サービスはいくつも公開されていますが、ほとんどが以下の 3 つの方式を採用しており、個人的にはあまり満足できていませんでした。 短い定型文の繰り返し: 一種の

    自然な日本語ダミーテキストを生成するWebアプリを作りました
  • "security.txt" についてまとめみた

    CISSPの継続学習で知ったので忘却録としてまとめました。 security.txtとは security.txtとは、IETFが提唱している、ウェブサイトにセキュリティポリシーやサイトの脆弱性を発見したときの連絡先を記載するための標準で、robots.txt、ads.txt、humans.txtと同じようにテキスト形式で記載します。 投稿当時(2021/10/22)では、第12版のドラフトまで完成していますが、近くRFC化される見込みです。 (2023/11/1:更新) RFC 9116としてRFC化されました。 設定の効果 独自開発したWebサイトなどの脆弱性(XSSやSQLインジェクション等)の報告先を独自に設定することができます。したがって、いままでJPCERT/CCなどに報告する必要がある情報を作り手に直接連絡できるため、スピード感がある対応できると見込まれています。 ただし、表

    "security.txt" についてまとめみた
  • 閲覧履歴・ブックマーク・タブを横断的に検索し移動できるChrome拡張を作ってみた

    個人的に超便利な Chrome 拡張を作ってみたので紹介です。 作ったもの Chikamichi(近道)という閲覧履歴・ブックマーク・タブを横断的に検索し移動できる Chrome 拡張です。 機能

    閲覧履歴・ブックマーク・タブを横断的に検索し移動できるChrome拡張を作ってみた
  • 「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン

    この記事は DeNA 20 新卒 Advent Calendar 2020 19日目の記事です。 はじめに MySQLやPostgreSQLに代表されるRDBMSではトランザクションと呼ばれる仕組みが提供されています。多くのWebアプリケーションエンジニアはこのトランザクションを駆使してDBとやりとりをするロジックを組み立てることになります。 しかし不整合を起こしたくない処理があるからといって闇雲にトランザクションを張ったり、トランザクションが張られているからと安心してアプリケーション側で闇雲にロジックを組み立ててしまうと思わぬバグを生むことになってしまいます。 このエントリでは、「トランザクションを張っておけば大丈夫」という考え方は危険な場合もあるということを、ありがちな実装例を交えて紹介していきます。 並列に処理されるトランザクション そもそも、トランザクションは全て直列に処理されるわ

    「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン
  • ソースコードを公開したソフトウェアで収益を得ている会社

    ソースコードを公開したソフトウェアで収益を得ている会社をまとめる。いわゆる「オープンソースソフトウェア(OSS)」という有名な言葉を使わなかったのは、OSS の定義に当てはまらない、またはその可能性があるものが含まれているため。 この記事では "OSS" の定義に当てはまらないものも含め、主要な事業を構成するソフトウェアを一定のライセンスの下で公開している会社をまとめていく。このようにソースコードを公開して利用者やフィードバックを集めるビジネスモデルは open core とか COSS: Commercial Open Source Software と呼ばれているようだ。 企業が「ソースコードが公開されているソフトウェア」を利用するメリットとしては、主に以下の2つがあると考えられる。 コア機能の開発に集中できる 自社のビジネスの核となるソフトウェアの開発に集中し、それ以外の機能的・非機

    ソースコードを公開したソフトウェアで収益を得ている会社
  • フロント開発を炎上させてしまった話

    はじめに お久しぶりです、皆様のサンドバックが帰ってまいりました。 投稿ができていない期間、Nuxtにボコボコにされて裸足で逃げ出し、逃げた先のReactにも強烈な左カウンターをお見舞いされました。 来であれば、このような場所に投稿することすらはばかられる内容ですが、敢えて書きましょう。 私はフロント開発を炎上させた愚か者です。 なぜ今懺悔するのか Twitterでこんな投稿を見ました。 確かに、実務で得られる経験は、とても大きく得難いものです。 当然、ご迷惑をおかけしてしまうことは、だれであろうとあるでしょう。 ただし、その「ご迷惑」の大きさについて、我々は知っておかなくてはなりません。 見えている地雷を踏んでしまうようなモノ好きもいないでしょう。 特に、この手の地雷は強力ですからね。 塵となって吹き飛んだ私の命が、新たな浅瀬の民の糧となることを祈っています。 具体的に何が起こったのか

    フロント開発を炎上させてしまった話
  • Github Actions チートシート

    概要 何度も調べて何度もテストしたりしたので、多用するものをまとめていきたい。 項目 push時に実行 // feature/aaaで動く。 feature/aaa/bbbでは動かない on: push: branches: - feature/* // feature/aaa, feature/aaa/bbbで動く on: push: branches: - feature/** // なにかしらのtagがpushされたときに実行、branchのpushは無視 on: push: tags: [ '**' ] branches-ignore: [ '**' ] // 指定したpathの変更だけでは実行しない on: push: branches: - main paths-ignore: - '*.md' - 'docs/**' on: workflow_dispatch: inputs

    Github Actions チートシート
  • 高校生が作った有料サービスがちょっと儲かったのでいろいろ書く

    Discordの有料読み上げBotを運営している高校3年生です。公開2年目で月に12kほど利益が出ています。 最大4つのボイスチャットで読み上げ可能 可用性99% Webダッシュボード などの機能があります。Discordを使っている方がいれば、ぜひ導入していただけるとうれしいです。 コミュニティの宣伝 未踏ジュニアに採択された採択者で、未踏ジュニアに挑戦したい方向けのコミュニティを始めました!約12人の採択者と話をしたり、質問できます!ぜひ共有していただけると幸いです🙏 なぜ作ることにしたのか? 昔(4年前)頃から無料のDiscordの読み上げBotは存在していましたが、どれも使う人数が多すぎて制限があったり、読み上げが遅くなったりするという問題がありました。そこで、有料の読み上げBotを運営することにしました。 料金体系 一律で月500円/20万文字のサブスクリプションにしました。g

    高校生が作った有料サービスがちょっと儲かったのでいろいろ書く
    ryo0821
    ryo0821 2021/11/12
    法的リスクが怖すぎて個人で有償サービスなんて考えたことなかった、凄い
  • Laravelでの開発でいつもやってること

    ・・・ 'channels' => [ 'daily' => [ 'driver' => 'daily', 'days' => 90, 'permission' => 0664, ], ], class Handler extends ExceptionHandler { protected $dontReport = [ \Illuminate\Auth\AuthenticationException::class, \Illuminate\Validation\ValidationException::class, \Illuminate\Auth\Access\AuthorizationException::class, \Illuminate\Database\Eloquent\ModelNotFoundException::class, \Symfony\Component\Ht

    Laravelでの開発でいつもやってること
  • 暗号通貨には手を出すな

    TL;DR 長期的に見て投資価値が無いという話 これはパブリック型のブロックチェーンをベースにした暗号通貨の話で、プライベート(コンソーシアム)型ブロックチェーンの話は知りません。 解決の糸口すらない問題:金融犯罪 Bitcoinが電力をい過ぎる問題は有名で、世界中の主要なスパコンを凌ぐ電力を地球規模で消費している。そこに関してはProof of Stakeだのの亜種で解けるかも知れないという話は出ている。実際、ゲーム理論の応用で「悪用しようとすると損をするので経済的利得の観点から協力する事になる」という方向で悪意のないシステムを作ろうというアイデアは面白い。 しかしながらこの方向性でどこまで掘っても解決しそうに見えない問題がある。金融犯罪である。 ゲーム理論によって守れるのは通貨システムを崩壊させない事までであって、その通貨システムのルールの上での詐欺まで防げるわけではない。ATMをガ

    暗号通貨には手を出すな
    ryo0821
    ryo0821 2021/11/05
    著名コイン以外はギャンブルだと思って参戦するぐらいがいいんじゃないか
  • 最近知ったCloudflareで実はこんなこともできる集

    Argo Tunnel Client(cloudflared)をngrokの代替として使う cloudflaredというArgo Tunnelクライアントを使えば、ngrokのようにローカルサーバを外部に公開することができる。 # localhost:8080 を公開する。実行後に表示されるURLを使ってどこからでもアクセスできる。 cloudflared tunnel --url http://localhost:8080 これだけならばわざわざ乗り換える理由にはならないが、ngrokでは有料でしか使えない機能も無料プランで使える。 カスタムドメインの割り当て SSOによる認証 TCPのプロキシ セキュアでDDNSのいらないVPNの構築 例えば個人で自宅にVPNの環境を作る場合、ルーターVPN機能を使うか、VPNサーバを立ててDDNSでドメインを自宅のグローバルIPに紐付けるといったや

    最近知ったCloudflareで実はこんなこともできる集
  • 2021年現在Vueを選択すべきでないと思う理由

    使ってわかる、Vueへの恨み、つらつらと(随時更新) コンポーネントのローカルスコープでコンポーネントを定義しようとするとJSXが必要 JSXが嫌でReactを使わないならSvelteがあり、SvelteはゼロオーバーヘッドでVueより速い React+JSXと違って、マークアップをJavaScriptの式として扱えないせいで、TypeScriptとの相性も悪い 後述するが、コンポーネントのプロパティの型をジェネリックにできないところなどは、これの例にあたる Vueの新しい機能が出て、新しい構文を必要とするたびにIDEのプラグインの対応が必要になる JSXも構文拡張だが、JS関数呼び出しのシンタックスシュガーでしかないので、関数と同じだけの表現力(汎用性)を持ち、ReactAPI拡張のためにいちいちJSXまで拡張する必要はない JSX無しだと、マークアップ内でアクセスしたいコンポーネント

    2021年現在Vueを選択すべきでないと思う理由
  • Goの苦手な領域

    Goの利点を使って実装するコツやノウハウを書くことがコミュニティにとってプラスになると思っているのでそれに専念したいという考えはありますが、Goの苦手な領域にGoを採用してしまってヘイトを溜め込んでしまう事例を見かけたりします。 こういう悲劇の起こる可能性を少しでも減らせたらという思いで、Goの現状の苦手な領域について解説しようと思います。Goを学び始めにこれらの領域に手を出すのは避けましょう。 Cgo is not Go GoCGO連携でC/C++資産を利用することができますが、メモリアロケータの異なる処理系を繋ぐ関係上、お互いに呼び合う際のパラメータや戻り値はほとんどのケースでコピーが必要になります(Cの型でメモリ確保しCの型のまま受け渡しする場合はOK)。なので高頻度に呼び合うような用途には不向きであるというのはSWIGなどのような複数の処理系を連携させる仕組みと同様です。 また、

    Goの苦手な領域
  • Vueの再描画されたコンポーネントをハイライトするChrome拡張を作った

    作ったもの 記事タイトルの通り、Vue.jsで再描画が走ったコンポーネントの輪郭をフラッシュしてハイライトしてくれるChrome拡張 + npmパッケージを作りました。 GitHub: yuichkun/vue-devtool-flash-updates 背景 Vueの開発をする上で、Vue.js devtools を使っている人は多いと思います。 React Developer Tools では以前から再描画されたコンポーネントを光らせてくれる機能があり、パフォーマンス問題の解消などに役立っていたのですが、どうやらVue devtoolsにはそれがないらしいことをissueなどから察しました。 今回作ったプラグインの導入方法のイメージはRedux Devtoolsと似たような感じで、 専用Chrome拡張のインストール 有効にしたいプロジェクトでnpmパッケージの追加・プラグインの導入設

    Vueの再描画されたコンポーネントをハイライトするChrome拡張を作った
  • GitHub Actions のベストプラクティス

    1 フロー 1 ワークフロー 一連のフローがある場合は 1 つのワークフローにまとめる。 トリガーしたイベントの JSON が使える needs での制御がしやすい 全体を追える グラフが表示される ファイルを分割したい ファイルを分割したい理由として以下が挙げられると思います。 行数が増えて読みづらい 処理を共通化したい 複合実行ステップアクション や workflow_run トリガー や Reusable workflow 🆕 を使うことになると思いますが、基的には一連のフロー制御はメインのファイルに書いてその下を Reusable workflow や複合実行ステップアクションで外部ファイルへ分離するのが良さそう。 workflow_run はログが分断するのでおすすめしません。

    GitHub Actions のベストプラクティス
  • "JWT=ステートレス"から一歩踏み出すための考え方

    おはようございます、ritouです。 この話に乗っかっていきます。 3行で ログアウト時にJWTを無効化できない実装は今後脆弱性診断で「OWASP Top 10 2021違反」と指摘されるようになりそう(今も個別にされてるかもしれないけど) JWTは単純なフォーマットなので、ステートレスなセッション管理においてログアウトしたときに文字列自体を無効化できない件は独自エンコード方式(一般的にフレームワークのCookieストアと呼ばれているもの)でも起こり得る 「セッションID vs JWTで内包」 以外にも 「セッションIDをJWTに内包」もあり得る。既存の機能を残しつつ「JWTで武装」する選択肢も考えてみてはどうか。 ステートレスなセッション管理でログアウトの際に文字列自体を無効化できない問題 これは前から言われていますし、駆け出し何とか勢のQiita記事に書かれるぐらいには一般的です。 2

    "JWT=ステートレス"から一歩踏み出すための考え方
  • yarnをv1からv2(Berry)へ移行する

    yarnのv2(Berry)が登場してしばらく経ちましたが、依然v1を使い続けている方が多いかと思います。最近になってやっと問題なく移行できると判断できるようになってきたので、この度移行してみました。 yarn v1の問題点 散々各所で語られていると思いますが、簡単にyarnのv1の問題点をまとめてみます。 1. node_modulesのサイズが肥大化する 中規模程度のリポジトリでも 2GB を前後になるのは当たり前です。 そのためとにかく重いのと、Node.jsを使う複数のリポジトリで開発をしているとこの容量だけでマシンのディスク残量を消費するので マシンにも優しくありません。 2. yarn add や yarn removeを繰り返すと頻繁に壊れる yarn v1の一番の問題は恐らくこれです。 壊れるというのは具体的には依存関係の参照が整合性が取れなくなって、追加したコマンドの実行

    yarnをv1からv2(Berry)へ移行する