並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 4228件

新着順 人気順

localhostの検索結果1 - 40 件 / 4228件

  • 知っておきたかったLinuxサーバ設計、構築、運用知識まとめ - hiroportation

    サーバ業務周りの管理、運用について役に立ちそうなナレッジをまとめました。 長期的に書いているため用語に統一性がなかったり、不足分など随時修正したいと思います。 1. サーバ設計 サーバスペックはどうするべき? 使用するOSは? CentOS開発終了について MWは何を使うべきか Webサーバ構築にはどちらを使うべき?Apache?Nginx? サーバセキュリティで最低限押さえておきたいことは? listenするポートは最小限にしましょう ファイアウォール設定で送受信IPアドレス、ポートの通信制御はしておきましょう 外部に出る際にはプロキシサーバを経由するようにする 随時パッチを当てるようにする linuxでのアンチウイルスソフトの検討 個人アカウントで変更系コマンドは実行させないようにする ログについて考えること ストレージ容量には気をつける データベースはどう決めたら良いか MySQLか

      知っておきたかったLinuxサーバ設計、構築、運用知識まとめ - hiroportation
    • ローカル開発環境の https 化 | blog.jxck.io

      Intro Web の https 化が進み、それに伴って https を前提とする API も増えてきた。 そうした API を用いた開発をローカルで行う場合、 localhost という特別なホストを用いることもできるが、それだけでは間に合わないケースも少なからずある。 localhost を https にするという方法もあるが、そのように紹介されている方法には、いくつか注意すべき点もある。 この辺りの話を、直近 1 ヶ月で 3 回くらいしたので、筆者が普段使っている方法や注意点についてまとめる。 特に推奨するつもりはない。 Update chrome の --host-rules について追記 localhost での開発の注意点 例として https://example.com にデプロイする予定の ServiceWorker を用いたアプリがあったとする。 開発をローカルで行う

        ローカル開発環境の https 化 | blog.jxck.io
      • Webページがブラウザに表示されるまでに何が起こるのか?

        ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 上記で「127.0.0.1 localhost」とあるように、[IPアドレス] [ホスト名]というフォーマットで書かれます。 HOSTS.TXTが使われていた当時 ( 1970年代 ) では、わずか数百台のホストしかなかったので、ネット上の全てのホスト情報の記載が可能でした。 しかし、インターネットが普及していくにつれてHOSTS.TXTは肥大化していき、1983年には、ホスト数はおよそ数万台になりました。もはやHOSTS.TXTによる名前解決は不可能となったので、現在のようなDNS

          Webページがブラウザに表示されるまでに何が起こるのか?
        • プロとアマの小説の特徴を数値化して比較してみたらやっぱり差があったので、それを埋めるための型付き小説記述用言語 TypeNovel を公開した件について - anti scroll

          ラノベのタイトルみたいな記事を書く、という夢が叶いました。 github.com 開発に至った動機 以前から、アマチュアの小説はプロに比べると、描写不足な傾向があるのかもしれない、と思っていました。 特に不足がちだと感じるのは「時間」に関する描写です。 季節がわからなかったり、昼か夜か、平日か休日かみたいなことが不明瞭な作品が多い気がします。 しかし印象だけで語ってもアレなので、実際に差があるのかどうかを計測してみました。 計算式は、 時間描写の文の数 * 時間描写分布のエントロピー / 文の数 です。 「時間描写分布のエントロピー」というのは「全体を通じて、どれだけ満遍なく時間表現が書かれているか」という数字だと思ってください。 例えば時間描写が冒頭部にしかなかったりすると数値が小さくなり、全編を通じて満遍なく描写されていると、数値が大きくなります。 あと時間描写というのは、一応「季節、

            プロとアマの小説の特徴を数値化して比較してみたらやっぱり差があったので、それを埋めるための型付き小説記述用言語 TypeNovel を公開した件について - anti scroll
          • Dockerハンドブック - 教会エンジニアの開発日記

            Dockerの概念や仕組みまではなんとなく理解できるもののDockerfileを書こうとするとスムーズに書けなかったり、そもそものDockerの基礎、あるいはコンテナ技術というものの基礎が抜け落ちていてDocker環境に移行できていないところも多いのではと思い、この記事を翻訳しました。 Source:The Docker Handbook by Farhan Hasin Chowdhury(@Twitter) 本記事は、原著者の許諾のもとに翻訳・掲載しております。 コンテナ化の概念自体はかなり古いですが、2013年にDocker Engineが登場したことで、アプリケーションのコンテナ化がはるかに簡単になりました。 Stack Overflow Developer Survey-2020によると、 Dockerは#1 最も望まれるプラットフォーム、#2 最も愛されるプラットフォーム、および

              Dockerハンドブック - 教会エンジニアの開発日記
            • Raspberry Pi 4 で構築する録画マシン | 空気録学電子版【公式】

              🍓 Raspberry Pi 4 が買えるようになりました2019年11月、待望の Raspberry Pi 4 技適取得版が発売されました。H.264 ハードウェアエンコーダを搭載した、リッチなシングルボードコンピュータです。2020年5月28日には 8GB メモリ搭載の上位モデルも登場しています。 はたしてこれは何をするためのデバイスなのでしょうか? そうです、録画ですね。もうテレビの録画をするために高価なパソコンを購入する必要はありません。5000円台から入手できるマシンを利用して、安価に録画サーバーを構築することができるようになったのです。 この記事では Raspbery Pi 4 を利用した Mirakurun + EPGStation での録画サーバー構築方法と、ハードウェアエンコーダを利用した録画ファイルのエンコードについて解説を行います。 筆者の⾃宅で運⽤している録画サー

                Raspberry Pi 4 で構築する録画マシン | 空気録学電子版【公式】
              • Use HTTPS for local development  |  Articles  |  web.dev

                Use HTTPS for local development Stay organized with collections Save and categorize content based on your preferences. Most of the time, http://localhost behaves like HTTPS for development purposes. However, there are some special cases, such as custom hostnames or using secure cookies across browsers, where you need to explicitly set up your development site to behave like HTTPS to accurately rep

                  Use HTTPS for local development  |  Articles  |  web.dev
                • Linux メモリ管理を理解したい - Qiita

                  Linux カーネルのメモリ管理方法について、勉強したことをまとめる。 メモリ管理はハードウェアに強く依存するため、x86_64 かつ OS起動後に 64bitプロテクトモード に移行したあとに話を絞る。また、OS は CentOS7.6、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 概要 ノイマン型アーキテクチャ コンピュータの基本的な構成のひとつ。次の図が参考になる。 ほぼ全てのコンピュータが、このアーキ

                    Linux メモリ管理を理解したい - Qiita
                  • 最低限のNetwork知識

                    ネットワークを集中的に勉強したのでそのうちの基礎的な部分だけを抽出して記事にしました。主にL2とL3の話しかしてないです。(ただの勉強しとことメモです。間違っているところもあるかもしれないのでご容赦ください。) 参考文献(とても良書なので興味ある人は是非) ・tanenbaum先生の教科書(Networkの世界的bible) ・CでネットワークプログラミングをするHands-on本(とても読みやすかった) ・Linuxで仮想ネットワークを構築してみる本(解像度が上がった) ・TCPの最新動向を掘り下げてる本 ネットワークモデルのoverview コンピューターのネットワークはコンピュータ同士プロトコルという決まり事に沿って通信を行うことで意思疎通を図っている。このプロトコルは多数あり、類似したものを同じ階層に分けてモデル化し考えるのが一般的である。例えば、以下の図はOSIモデルと呼ばれる7

                      最低限のNetwork知識
                    • 無料でIFTTTやZapierっぽく全自動連携できる「n8n」を自サーバー上に構築してみた

                      複数のウェブサービスを連携し、定型作業を自動化してくれるサービスはIFTTTやZapierが有名ですが、特定のサービス以外は使えなかったり、有料プランでしか使用できない機能があったりします。オープンソースで使える自動化サービス「n8n」は無料で利用でき、自社製ソフトのような他の自動化サービスでは未対応のサービスも自動化できるとのことなので、実際に使ってみました。 n8n.io - Workflow Automation https://n8n.io/ まずはn8nのホームページにアクセスします。 ホームページ下部へと進むとインストール方法が記載されていました。今回はWindows 10の機能の一つであるWSL上のUbuntuにn8nをインストールします。 n8nを動作させるにはNode.jsが必要なので、記事作成時点で最新の推奨バージョンのNode.jsをインストールしておきます。 Nod

                        無料でIFTTTやZapierっぽく全自動連携できる「n8n」を自サーバー上に構築してみた
                      • ファイルダウンロード完全マスター | フューチャー技術ブログ

                        Real World HTTPでも紹介したネタですが、お仕事で受けている技術コンサル中に質問をいただいた時に、微妙に本で紹介した内容では少し足りなかったので、改めて整理のためにブログ記事にしてみました。次回、本が改訂されることがあればこのブログエントリーの内容も入れて加筆したいと思います。 Real World HTTPだとGoを使っていましたが、フロントとサーバーを同時にいじるので、本エントリーではNext.jsをサンプルに使います。Next.jsでプロジェクトを作って(npx create-next-app@latest –ts)、適当なプロジェクト名を入れてアプリケーションの雛形を作っておいてください。 Next.jsでは、1つのスクリプトファイルを作成すると、それがサーバーAPI(/pages/api以下)と、フロントの画面(/pages/以下のapi以外)になります。Next.j

                          ファイルダウンロード完全マスター | フューチャー技術ブログ
                        • 100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順 - エンジニアHub|Webエンジニアのキャリアを考える!

                          100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順 マイクロサービスの導入事例を、中の人が徹底的に語ります。クックパッドでは、100万行オーバーの超巨大なRuby on Railsアプリのマイクロサービス化に挑みました。アプリをいかに分離し、連携できるようにするか、など、同社が採ったマイクロサービス化の戦略を聞きました。 Ruby on Railsのバージョンアップに1年かかっていた 【マイクロサービス化戦略】まずはコードを減らすことから 【マイクロサービス化戦略】アプリ固有のバッドノウハウを減らす 【マイクロサービス化戦略】まずは分離しやすい部分からお試しで 【マイクロサービス化戦略】データベースが切れていればサービスも切りやすい 【マイクロサービス化戦略】インフラ構成を標準化する 【マイクロサービス化戦略】サービスメッシュを入れて通信の課題をクリ

                            100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順 - エンジニアHub|Webエンジニアのキャリアを考える!
                          • Web APIを手作りする時代は終わった?

                            ::: message info これは[フィヨルドブートキャンプ Advent Calendar 2022 Part.1](https://adventar.org/calendars/7760)の25日目の記事です。 昨日の記事は:@shujiwatanabe:shujiwatanabeさんの[質問しながら出来るようにしていく](https://shu91327.hatenablog.com/entry/2022/12/24/091025)と:@saeyama:saeyamaさんの[Rails/Vue 編集時に画像をD&Dで入れ替えした時のActive Storageの保存方法](https://saeyama.hatenablog.com/entry/2022/12/24/000123)でした。 ::: ↓こういうのを職人が丹精込めて一つ一つ手作りする時代は終わりました。 ```sh

                              Web APIを手作りする時代は終わった?
                            • MacOS ユーザが WSL では無い Windows のコンソール環境を整える - 2nd life (移転しました)

                              先日、メインの開発環境を MacOS から Windows 10 Professional へと移しました。理由としては主に2点で、現在仕事を自宅の固定席で行っており PC を持ち運びする必要がなくなったため Mac より高速で安価な Windows デスクトップ機を使いたいこと(Ryzen 9使いたい!)、WSL2 が正式版となり使ってみた感じ問題なく WSL2 で仕事の開発ができそうだったことが挙げられます。 WSL2 はふつうに Linux なので問題なく開発環境の構築が行なえ、Windows からも VSCode Remote のおかげでで違和感なくWSL2上のコードを編集、実行ができ快適な開発が行えています。(なお、WSL2 についての記事は山程溢れているので、ここでは殆ど触れません。) しかしながら、WSL2 ではないふつうの Windows 上で開発する機会が出てきたので、M

                                MacOS ユーザが WSL では無い Windows のコンソール環境を整える - 2nd life (移転しました)
                              • 大幅にリニューアルされた Next.js のチュートリアルをどこよりも早く全編和訳しました - Qiita

                                数日前(4/21頃)に Next.js のチュートリアルが一新されました。 Next.js は 3 月頭に ver 9.3 がリリースされ、ビルド時に静的に HTML を生成する関数などが追加されるなど、今までよりもかなりパワフルになり、いわゆる JAMstack と呼ばれるようなアプリケーションを作りやすくなりました。 そのバージョンアップに対応するかたちで、チュートリアルも大幅に書き直されました。 参考(開発チームの @chibicode さんのツイッター) Next.jsの公式チュートリアルを最新版に沿ってゼロから書き直しました! 🎓英語ですが初心者向けです! ⚛️最近導入されたgetStaticProps等の関数や、 🎨CSS Modulesの解説をしています! 🗣ブログを作りながら学びます 🤗ご感想お待ちしております!https://t.co/R4j9vpAQoc — S

                                  大幅にリニューアルされた Next.js のチュートリアルをどこよりも早く全編和訳しました - Qiita
                                • Linux ファイルシステムを理解したい - Qiita

                                  ]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-1062.1.2.el7.x86_64 #1 SMP Mon Sep 30 14:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ファイルシステムとは何か? データを管理/操作するための仕組み。 ファイルとディレクトリで構成されていて、/ を基点とした木構造になっている。 # ls -l / 合計 56 lrwxrwxrwx. 1 root root 7 8月 25 01:17 bin -> usr/bin dr-xr-xr-x. 6 root root 4096 9月 29 15:51 boot drwxr-xr-x. 19

                                    Linux ファイルシステムを理解したい - Qiita
                                  • ブロガー界隈の有名フリーランスエンジニアを見てプログラミングを始めないでくれ - 渡るネットは嘘ばかり

                                    なんかマナブやばいな、ついでに色々見てたんですが、最近技術ではない方向で前に出てきてるエンジニアが増えてるようですね。 技術ブログは一般の人は見ないからわからないかもですが、技術ブログ系はエンジニアが見るだけで、基本的にそこで収益を得てるものも少ない印象があります。技術者の業界というのは業界の発展のために、無償で貢献(楽しみとしての人が多い)する人がすごく多く、それによってライブラリの充実の恩恵として再利用性や車輪の再発明を避けたりできてたりします。なので、この人達は金儲け系のブロガー界隈では話題にならないですね。 一般向けに言葉を発信する人が少なめだったというのもあるのかも知れませんが。というか、よく見たら取り上げようと思った人全員文系エンジニアですか…。文系エンジニアは技術よりお金に向かい、理系はお金より技術に向かう傾向でもあるんですかね。 今回はやまもとりゅうけん、マナブ、勝又健太さ

                                      ブロガー界隈の有名フリーランスエンジニアを見てプログラミングを始めないでくれ - 渡るネットは嘘ばかり
                                    • Linux システムコール 徹底入門

                                      Linux システムコールについて調べたことをまとめる。システムコールの仕組みを理解すると、 OS とアプリケーションがどのように連携して動いているのかを理解できるようになります。 システムコールは CPU に依存する処理が多いため、 x86_64 に絞ります。 検証環境]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ]# cat /proc/cpuinfo | head processor : 0 vendor_id : GenuineInte

                                        Linux システムコール 徹底入門
                                      • jQueryからTypeScript・Reactまで - Viteで始めるモダンで高速な開発環境構築 - ICS MEDIA

                                        Vite(ヴィート=フランス語で「速い」の意味)は2020年に発表された新しいフロントエンドのビルドツールです。 開発者がVue.jsの作者であるEvan You氏であるため、Vue.jsのツールであると誤解されることもありますが、プレーンなJavaScript(バニラJS)からVue.js・React・Svelteといった流行のフレームワークまで、さまざまな環境で利用できる汎用的なツールです。 位置付けとしてはwebpackのようなバンドラーと呼ばれるものに近い存在ですが、それだけではありません。この記事では、Viteを導入してプレーンなJavaScriptから、TypeScript+Vue.js・Reactといったフレームワークまで、快適な開発環境を手に入れる方法を紹介します。 この記事で紹介すること: Viteの特徴と基本の仕組み 基本の使い方 Vite + SCSS Vite +

                                          jQueryからTypeScript・Reactまで - Viteで始めるモダンで高速な開発環境構築 - ICS MEDIA
                                        • とほほのKubernetes入門 - とほほのWWW入門

                                          Google が開発したコンテナ管理システムです。 「クバネティス」「クバネテス」「クーべネティス」などと読まれます。 ギリシャ語で「船長」の意味を持ちます。 Kubernetes のスペルが K と s の間に8文字あることから k8s と表記されることがあります。 Kubernetes を簡略化した k3s というものもあります。 Docker や Podman などに対応しています。 コンテナを Pod と呼ばれる単位で複数のノードに配布して実行管理します。 クライアントからのアクセスを適切にノード上の Pod に転送する仕組みを備えています。 コンテナやノードがダウンしても代わりに他のノードでコンテナを起動してくれます。 サービスを停止することなく、コンテナをローリングアップデートしたりアップデートを中断してロールバックすることができます。 Kubernetes の構築には通常1台

                                          • 0から始めるNode.jsパフォーマンスチューニング

                                            近年の Node.js は API のサーバとしてはもちろん、Nuxt.js や Next.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。 フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、本記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js

                                              0から始めるNode.jsパフォーマンスチューニング
                                            • Netflixにおける実用的なAPI設計: gRPCとFieldMask | pyspa

                                              Netflix Tech BlogのgRPC APIに関する以下の2つの記事に感銘を受けたので、ここにその概要を日本語で記します。 (めんどくさかったので)翻訳の許可は取ってませんが、再構成してますし元のJavaではなくPythonで書き直していますので、容赦して下さい… Practical API Design at Netflix, Part 1: Using Protobuf FieldMaskPractical API Design at Netflix, Part 2: Protobuf FieldMask for Mutation OperationsまとめgRPCでは、FieldMaskをうまく使うことで、必要な情報だけ取得したりあるいは与えたりしたりできまっせ第一部まずField Maskをどのように使うかを述べています。 背景Remote Callというものは、そもそもコ

                                                Netflixにおける実用的なAPI設計: gRPCとFieldMask | pyspa
                                              • マイクロサービスにおけるWeb APIスキーマの管理 ─ GraphQL、gRPC、OpenAPIの特徴と使いどころ|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                マイクロサービスにおけるWeb APIスキーマの管理 ─ GraphQL、gRPC、OpenAPIの特徴と使いどころ マイクロサービスにおける通信方式の選択について、おおた(ota42y)さんが、GraphQL・gRPC・OpenAPIといった主なWeb APIスキーマの管理の利点と使い分けを解説します。 近年流行しているマイクロサービスアーキテクチャにおいては、「どういった通信方式を選ぶか」が開発の効率やサービスの信頼性、パフォーマンスを大きく左右します。この記事では、GraphQL・gRPC・OpenAPIそれぞれの利点と適切な使い分けについて解説します。 マイクロサービスにおけるWeb API管理の重要性 Schema First DevelopmentとWeb API 人ではなくプログラムが処理できるよう管理する Web APIのインタフェース定義手法の比較 OpenAPI ─ R

                                                  マイクロサービスにおけるWeb APIスキーマの管理 ─ GraphQL、gRPC、OpenAPIの特徴と使いどころ|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                • REST API のテストに Postman 使ってたけど Visual Studio Code の REST Client に乗り換えた - かずきのBlog@hatena

                                                  くっ、名前だけ知ってたけどこんなの便利だとは…!! marketplace.visualstudio.com Azure API Management の Visual Studio Code 拡張機能で API のテスト呼び出しに REST Client が使われてるので使い始めてみたのですが「あっ、ハイ。便利っすね…」という感想しか出てこないくらい便利でした。 普通に HTTP のリクエストをテキストで用意しておくと Send Request 押すだけでレスポンスを出してくれる…。 先人の方々が沢山紹介してくれてる記事があるので詳しい使い方とか推しのポイントはそちらを見るとわかりやすいと思います! qiita.com 私の推しポイント 上記記事にも書いてありますが、1ファイルで複数のリクエストを書いておいて、個別に実行できるので特定の API をテストで叩くためのファイルを 1 つ用意

                                                    REST API のテストに Postman 使ってたけど Visual Studio Code の REST Client に乗り換えた - かずきのBlog@hatena
                                                  • コードレビュー虎の巻 - Qiita

                                                    レビューガイドライン(Review GuideLine) ここで述べているレビューはピアレビューについての方法です。 (作業成果物の欠陥と改善の機会を探すレビュー) 「最悪を最初に」を基本としてレビューすべき、 たとえば、仕様やアルゴリズムに欠陥があるのに、typoにこだわってもしょうがないので、なにが最悪かを考え、それを防ぐための物からレビューをします。 誤りがプロダクト全体に影響し、手戻りのコストが高くつく、あるいは失敗するようなリスクがないかを考慮にいれてレビューの対象を選択します。 たとえば、基本的な初期フェーズの要求仕様や、クリティカルな決定の基礎になる仕様、使用頻度が高いモジュールなどを重点的にレビューします。 以下に書く項目はレビュアーに負担をかけないようにするのが前提なのでレビュアーに出す前にそもそもテストしたい項目です。 参考: あなたのおっしゃるレビューってどのことかし

                                                      コードレビュー虎の巻 - Qiita
                                                    • DNSリバインディング(DNS Rebinding)対策総まとめ

                                                      サマリ DNSリバインディングが最近注目されている。Google Chromeは最近になってローカルネットワークへのアクセス制限機能を追加しており、その目的の一つがDNSリバインディング対策になっている。Googleが提供するWiFiルータGoogle Nest WiFiはデフォルトでDNSリバインディング対策機能が有効になっている。 DNSリバインディング対策は、攻撃対象アプリケーションで行うべきものであるが、ブラウザ、PROXYサーバー、リゾルバ等でも保護機能が組み込まれている。本稿ではそれら対策機能の状況と対策の考え方について説明する。 DNSリバインディング(DNS Rebinding)とは DNSリバインディングはDNS問い合わせの時間差を利用した攻撃です。DNSのTTL(キャッシュ有効期間)を極めて短くした上で、1回目と2回目の問い合わせ結果を変えることにより、IPアドレスのチ

                                                        DNSリバインディング(DNS Rebinding)対策総まとめ
                                                      • API設計まとめ - Qiita

                                                        はじめに 自分は2021年に新卒でWeb系の開発会社にフロントエンジニアとして入社し2022年で2年目になります。 実務ではReact×TypeScriptを利用したフロント周りとNode.js(Nest)やRailsを用いたバックエンド(API)の開発をしています。 その中で使っていたAPI設計について改めて学び直したのでまとめて行きます。 この記事の対象者 エンジニア初心者から中級者 APIについて学びを深めたい人 この記事の目標 APIについて学ぶ 我流ではなく正しいAPI設計について学ぶ この記事でやらないこと 具体的にコードを用いたAPI設計の書き方の説明に関しては下記の記事で解説をしています。 APIについて APIとは APIは"Application Programming Interface"の略で、直訳すると「アプリケーションを使プログラミングを使ってつなぐ」という意味

                                                          API設計まとめ - Qiita
                                                        • Dockerのポートマッピングのデフォルト設定は危ない - JUNのブログ

                                                          あらすじ 公衆WiFiに繋いだ状態でいつものように docker container run -p 8080:80 nginx のような感じでDockerコンテナを動かしていたら、外部からリクエストを受信した。 ファイアウォールを設定し、外部からのアクセスを拒否しているはずなのになぜアクセスできたんだ... 環境 Docker desktop for mac with apple silicon 4.21.0 何が起きた? Dockerはデフォルトの設定では-p 8080:80のようにポートマッピングするとファイアウォールの設定を書き換え、外部からそのポートへのアクセスを許可するようになっている。 その結果LAN内の他のPCから対象ポートにアクセス出来てしまう。 ちなみにこれはDocker公式からも注意が出ている。 Publishing container ports is insecur

                                                            Dockerのポートマッピングのデフォルト設定は危ない - JUNのブログ
                                                          • 混乱しがちな「SSHトンネルの確立方法」をイメージ図とセットでまとめたコマンド集

                                                            あるポートへの通信をSSHで暗号化し、他のサーバーのポートへと転送する技術が「SSHポート転送」です。SSHポート転送は「ポートからポートへトンネルを通るようにデータが転送される」ことから、「SSHトンネル」とも呼ばれます。便利な技術ではありますが、「どっちのポートを転送するんだっけ……?」と、SSHトンネルを確立する方向に混乱してしまうこともしばしば。エンジニアのLinmiao Xu氏が、そんなSSHトンネルのイメージ図をコマンドとともにまとめています。 Visual guide to SSH tunnels https://robotmoon.com/ssh-tunnels/ ◆ポート転送の種類 SSHトンネルは、内部ネットワークにのみ公開されているサービスに外部からアクセスしたり、通信を暗号化したりする手段として知られています。一般的には、青色のローカルサーバーから、SSHサーバーを

                                                              混乱しがちな「SSHトンネルの確立方法」をイメージ図とセットでまとめたコマンド集
                                                            • ngrokよりserveoがすごい。0秒で localhostを固定URLで公開 - Qiita

                                                              注意 serveoがサービス停止中です。 みんな大好きcloud functionには欠点があります。 それは、実際にコードをデプロイしないと、httpsで公開できないこと。 そのため、slackのコマンドを作ったり、ラズベリーパイとかを開発するのに不便だったりします。 以前私はngrokというcliアプリを使っていました。 とても使いやすく、ユーザー登録+ngrokのインストール+セットアップだけで使い始めることができます。 お金を払えば固定URLもゲットできます。 しかし、今回もっと良いものを見つけたので紹介します。 serveoです。 なんとこのserveoインストールもセットアップも不要です。 ターミナルで、以下のように ssh -R 80:localhost:3000 serveo.net と打つだけで自分のPCのlocalhost:3000を、固定URLでhttpsとして公開し

                                                                ngrokよりserveoがすごい。0秒で localhostを固定URLで公開 - Qiita
                                                              • Electronで組み込み端末向けアプリケーションを開発し3年間運用してみて

                                                                組み込み端末のアプリケーションに Electron を採用し開発・運用を行っています。 継続的な機能追加やトラブルサポートを行いながら 3 年が経過したので、Electron を採用した経緯や結果を経験を交えながら共有したいと思います。 組み込み案件自体が初めてでしたのでその話も入っています。 約 700 台ほど導入されており、なかなか大きな案件での採用と思いますので参考になれば幸いです。 ※Electron の基本的な説明は割愛します。 システムについて 一般的に「受付精算機」などと呼ばれ、店頭に何台か並べて設置して自動で受付・精算を行うシステムです。 ホテルの受付端末のイメージです。ハード的にはセルフレジにも近いです。 筐体自体は他社が用意し、弊社はその上に載せる GUI アプリケーションのみを担当しました。 機能 主な機能として 来店受付・整理券発行 予約チェックイン チェックアウト

                                                                  Electronで組み込み端末向けアプリケーションを開発し3年間運用してみて
                                                                • Software Design連載 2021年9月号 「テストが無い」からの脱却 - MonotaRO Tech Blog

                                                                  こんにちは、鈴木です。 「テストが無い」状態を脱却しました。 「いつの時代かよ!」と突っ込まれるかもしれませんが、モノタロウは創業から 20 年ほど EC をやっています。昨日書いたコードも、15 年前に書いたコードも、元気にビジネスを支えています。 本記事ではモノタロウの EC を支える API の話をします。「テストが無い」状態がスタートラインでした。そこから、CI を導入して、ローカル開発環境の整備して、テストコードを書いて、リリースマネジメントを導入しました。 目新しいことは書きません。長寿の大規模システムであっても、愚直に数年取り組むことで、「前進できる!」「変えられる!」という実例を書きます。 ※本記事の初出は、 Software Design2021年9月号「Pythonモダン化計画(第2回)」になります。第1回の記事は「Software Design連載 2021年8月号

                                                                    Software Design連載 2021年9月号 「テストが無い」からの脱却 - MonotaRO Tech Blog
                                                                  • Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - Flatt Security Blog

                                                                    ※本記事は筆者styprが英語で執筆した記事を株式会社Flatt Security社内で日本語に翻訳したものになります。 TL;DR Node.jsのエコシステムで最も人気のあるMySQLパッケージの一つである mysqljs/mysql (https://github.com/mysqljs/mysql)において、クエリのエスケープ関数の予期せぬ動作がSQLインジェクションを引き起こす可能性があることが判明しました。 通常、クエリのエスケープ関数やプレースホルダはSQLインジェクションを防ぐことが知られています。しかし、mysqljs/mysql は、値の種類によってエスケープ方法が異なることが知られており、攻撃者が異なる値の種類でパラメータを渡すと、最終的に予期せぬ動作を引き起こす可能性があります。予期せぬ動作とは、バグのような動作やSQLインジェクションなどです。 ほぼすべてのオンラ

                                                                      Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - Flatt Security Blog
                                                                    • 攻撃して学ぶJWT【ハンズオンあり】 - Money Forward Developers Blog

                                                                      こんにちは。 マネーフォワードの新卒Railsエンジニア、きなこ と申します。 マネーフォワードX という組織で、日々プロダクトの開発に勤しんでおります😊 突然ですが皆さんは JWT という技術をご存知でしょうか? 私は趣味でCTFというセキュリティコンテストに出場するのですが、最近ホットだと感じるのがJWTに関連する攻撃です。 今年の1月に初めてJWTを題材にした問題に遭遇し、その後JWTの出題頻度が強まっていると感じ、社内に向けてJWTにまつわる攻撃を通して学ぶための記事を書いたところ、たくさんの反応をいただきました。 今回の記事はその内容を社外向けにアレンジし、ハンズオンを通して実際にJWTを改竄し、受け取るAPIを攻撃することでJWT自体を学べるようにしたものです。 本記事はJWTに興味があるWeb開発者を想定していますが、そうでない方も楽しんでいただけるようにハンズオンを用意し

                                                                        攻撃して学ぶJWT【ハンズオンあり】 - Money Forward Developers Blog
                                                                      • サービス間通信のための新技術「gRPC」入門 | さくらのナレッジ

                                                                        たとえば次のような「user.proto」というプロトコル定義ファイルを用意し、これを変換する例を見てみよう。 syntax = "proto3"; message Picture { uint32 id = 1; uint32 width = 2; uint32 height = 3; enum PictureType { PNG = 0; JPEG = 1; GIF = 2; } PictureType type = 4; } message User { uint32 id = 1; string nickname = 2; string mail_address = 3; enum UserType { NORMAL = 0; ADMINISTRATOR = 1; GUEST = 2; DISABLED = 3; } UserType user_type = 4; repeated

                                                                          サービス間通信のための新技術「gRPC」入門 | さくらのナレッジ
                                                                        • 画像生成AI「Stable Diffusion」の実行環境を無料でWindows上に構築できる「Stable Diffusion web UI」の導入方法まとめ

                                                                          文章を入力すると画像を生成してくれるAI「Stable Diffusion」は、手軽に好みの画像を生成できることから大きな注目を集めており、「NMKD Stable Diffusion GUI」や「Artroom Stable Diffusion」などWindowsに簡単にインストールできる実行環境が数多く開発されています。「Stable Diffusion web UI」もStable Diffusionを簡単に操作できるシステムの一つで、参考画像を指定して好みの画像を生成しやすくする「img2img」に対応していたり、各種設定をスライダーで簡単に設定できたりと使い勝手の良さが際立っていたので、導入方法をまとめてみました。 GitHub - hlky/stable-diffusion https://github.com/hlky/stable-diffusion/ --ULTIMATE

                                                                            画像生成AI「Stable Diffusion」の実行環境を無料でWindows上に構築できる「Stable Diffusion web UI」の導入方法まとめ
                                                                          • MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                                            こんにちは。クラウド運用チームの飯塚です。 私たちは cybozu.com 本番環境の MySQL を昨年末から順次 8.0 系へアップグレードしており、前回の定期メンテナンスにおいて全てのインスタンスのアップグレードを完了しました。この記事では、私たちが MySQL 8.0 への移行に取り組んだ理由と必要になった対応について紹介します。 なぜ MySQL 8.0 へ移行したのか GTID-based レプリケーションにおける制限の緩和 再起動時に AUTO_INCREMENT のカウンタが巻き戻る問題の解消 実際に対応が必要だった MySQL 8.0 の変更点 utf8mb4 の照合順序のデフォルト値の変更 SQL_CALC_FOUND_ROWS と FOUND_ROWS() が deprecated に Connector/J のメタデータ取得処理の性能低下 sys.innodb_lo

                                                                              MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                                            • 開発者が知っておきたい「XSSの発生原理以外」の話 - Flatt Security Blog

                                                                              はじめに こんにちは。株式会社Flatt Securityのセキュリティエンジニアの冨士です。 本稿では、XSS(クロスサイトスクリプティング)が攻撃に用いられた時のリスクの大きさを紹介していきます。以降はクロスサイトスクリプティングをXSSと記載していきます。 XSSはセキュリティエンジニアならもちろん、開発を行っているエンジニアの多くの方が知っている脆弱性です。ですが、私はWebアプリケーションの脆弱性診断を行ってきた経験の中で多くのXSSを目にしてきましたし、依然として検出率の多い脆弱性の一つだと感じています。 その認知度や、一般的な対策方法のハードルの低さ(設計や仕様によっては対策工数が大きい場合もありますが)にも関わらずXSSの検出率が多いのは、直感的にリスクがわかりづらく、アラートをあげるだけの紹介が多いことが一つの要因ではないかと考えています。 すなわち、興味範囲が「どのよう

                                                                                開発者が知っておきたい「XSSの発生原理以外」の話 - Flatt Security Blog
                                                                              • React Server Components はウェブ開発を変えるゲームチェンジングな技術である

                                                                                去年末に Facebook の人達が出した React Server Components というものが、React 界隈に激震を及ぼしていますが、速報以外でこの技術について言及している国内のブログが見当たらないため、この記事で解説してみます。間違いや分かりづらい部分があればぜひツッコミをお願いします。 React Server Components は、ただのサーバーサイドレンダリングではありません。クライアントサイドレンダリング(SPA)とサーバーサイドレンダリングを、ギアを切り替えずにいいとこ取りする仕組みです。これまでに存在した様々な技術よりも踏み込んで、フロントエンドとバックエンドの境目を曖昧にしてしまうユニバーサルな技術です。 勝手な造語としていうなら「コンポーネント指向ユニバーサルウェブ開発」とでも呼ぶべきものでしょう。 そして、これはただのユニバーサルなだけの仕組みではあり

                                                                                  React Server Components はウェブ開発を変えるゲームチェンジングな技術である
                                                                                • Python 製 Web フレームワークを Flask から FastAPI に変えた話|NAVITIME_Tech

                                                                                  こんにちは、けんにぃです。ナビタイムジャパンで公共交通の時刻表を使ったサービス開発やリリースフローの改善を担当しています。 今回は Python 製の Web フレームワークとして FastAPI を導入した話をしようと思います。 Python 製の Web フレームワークPython には代表的な Web フレームワークが 2 つあります。 ・Django: フルスタックフレームワーク ・Flask: マイクロフレームワーク Django は大規模開発向け、Flask は小中規模開発向けと言われますが、今回開発したサーバは小規模なサーバだったため、以前は Flask で開発していました。 しかし、どちらのフレームワークを使う場合でも下記のような機能を使おうとするとプラグインやサードパーティの助けを借りる必要があります。 ・OpenAPI ・JSON Schema ・GraphQL ・We

                                                                                    Python 製 Web フレームワークを Flask から FastAPI に変えた話|NAVITIME_Tech