タグ

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

  • AWSとGCPのネットワーク構成の違い - Qiita

    はじめに AWSGCPのネットワーク構成の違いについて書きます。 GCPはレガシーネットワークとVPCネットワークの2種類が存在しますが、ここではVPCネットワークについて記載します。 レガシーネットワークは、新しい GCP 機能の多くはレガシー ネットワークでサポートされず2020 年 2 月 1 日に停止される予定であるため、使用することは推奨されていません。 https://cloud.google.com/vpc/docs/legacy?hl=ja 用語の整理 AWSGCPのネットワーク構成は、類似する点が多いですが、一部考え方が異なる点があります。 GCPの資料としては、以下にまとまってあります。 https://cloud.google.com/docs/compare/aws/networking 以下の表の通り、VPCとサブネットの考えが、AWSは各リージョンやAZに紐

    AWSとGCPのネットワーク構成の違い - Qiita
  • Rust のエラーハンドリングはシンタックスシュガーが豊富で完全に初見殺しなので自信を持って使えるように整理してみたら完全に理解した - Qiita

    Rust のエラーハンドリングはシンタックスシュガーが豊富で完全に初見殺しなので自信を持って使えるように整理してみたら完全に理解したRust はじめに Rust の Result や Option を使ったエラーハンドリングは機能が豊富なので便利な半面、初心者にとっては難しく感じられてしまいます。 とはいえよく見るとシンタックスシュガーが豊富なだけですごく難しいということはなかったので、自分の理解のためにも整理してまとめてみました。 Result とは Result は失敗する可能性のある関数の返り値のために用意された列挙型で、関数が成功した場合の返り値のバリアントと失敗した場合の返り値のバリアントを提供します。

    Rust のエラーハンドリングはシンタックスシュガーが豊富で完全に初見殺しなので自信を持って使えるように整理してみたら完全に理解した - Qiita
  • メルカリ勤務の上級エンジニアの不適切な男女差別ツイートを通報したらおとなしくなりました - Qiita

    your employee has some discriminatory opinions Dear Mercari. I am a Japanese software engineer. I saw your company employee in the twitter. But he has some discriminatory tweet continually. In his timeline, we can discover the acknowledgement of right of pedophilia, or sexism, or so. His twitter account is @HaiTo_Linux For example: https://twitter.com/HaiTo_Linux/status/1360002218502418432 幼児性愛者だか

    メルカリ勤務の上級エンジニアの不適切な男女差別ツイートを通報したらおとなしくなりました - Qiita
    yukiyan_w
    yukiyan_w 2022/03/22
    春だなぁ
  • 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
    yukiyan_w
    yukiyan_w 2021/11/04
    なんでこうなってるか理解できる人とできない人とで分断が起きそう。俺は好きな言語。
  • Rustを覚えて間もない頃にやってしまいがちなこと - Qiita

    Rustを使っていくうちにやらないほうがいいと気づいたことを挙げていこうと思います。 少なくとも自分は『プログラミング言語Rust』を読んだだけでは以下で説明することに気づけませんでした。 v: Vec<T>を&[T]に変換するためにいちいちv.as_slice()や&v[..]と書く 解説 Vec<T>が[T]へのDerefトレイトを実装しているので、v: Vec<T>は&をつけるだけで必要に応じて&[T]に変換されます。(参照: TRPL, 1st ed, Derefによる型強制) Vecか&[T]どちらであるべきかコンパイラが判断できない文脈では、スライスがほしい場合明示的に&v[..]などと書いてやる必要がありますが、基的には適当に&をつけるだけで問題ありません。 Vecへのイミュータブルな参照を関数の引数にする 例 解説 イミュータブルな場合、スライスとVecの違いはcapac

    Rustを覚えて間もない頃にやってしまいがちなこと - Qiita
  • Pythonの型を完全に理解するためのtypingモジュール全解説(3.10対応) - Qiita

    はじめに Pythonでキチンと型アノテーションを書くのであれば一度は読んでおきたいのがtypingライブラリの公式ドキュメントです。 前回の記事でも読んでくださいと(偉そうに)書いたわけですが、実のところこれは型アノテーションを解釈する側1に向けたドキュメントだったりもするのでアノテを書く側にとっては情報がごちゃごちゃしてるんですよね。加えて未翻訳の箇所もそれなりにあってま~~~~読みにくい。実際に読んでいただいた方々からの評判もすこぶる悪かったです。また 機能は分かったけど結局どんな時に使えばいいのか分からない という致命的なコメントも聞きました。 そこで今回はこれらの不満を解消すべく、公式ドキュメントを一般ユーザー向けに再編し具体的なユースケースを盛り込んだ非公式ドキュメントをご用意しました。 なおPython 3.10は2021年10月04日リリース予定ですが、先駆けてドキュメント

    Pythonの型を完全に理解するためのtypingモジュール全解説(3.10対応) - Qiita
  • Next.jsとRustのTypeScriptなWebAssembly生活 - Qiita

    なんかwasmを直読み出来るんだけど Webpackwasmの読み込みをサポートしているので、Next.jsでもちょっと設定を追加するだけで動作が確認出来ました TypeScriptの定義まで自動で行われるので、連携する上で迷うところがありません 今回作成したコード https://github.com/SoraKumo001/next-wasm RustWebAssemblyの生成 Rustのインストール https://www.rust-lang.org/tools/install これが無いと話にならないので、とりあえずインストールする必要があります wasm-packのインストール 以下を実行してwasm-pack入れるとRustWebAssemblyが簡単に生成できるようになります cargo install wasm-pack 必要なコード

    Next.jsとRustのTypeScriptなWebAssembly生活 - Qiita
  • 自作コンパイラ基盤の話 - Qiita

    これは、言語実装 Advent Calendar 2020 19日目の記事です。 最近は、コンパイラやインタプリタなどの言語処理系や、それに類するものを作る人が増えてきています。(私の周りだけかもしれませんが。) しかし、もう一歩進んで、コンパイラ基盤を作ってみたという話はあまり聞きません。 コンパイラ基盤は、それの対象とするアーキテクチャについてや、それ自体の使い勝手を考えるのが非常に面白いものです。また、コンパイラ基盤を作る中で、コンパイラや計算機自体についてより深く学ぶことが出来ます。 この記事では、私が開発中のコンパイラ基盤を例として、コンパイラ基盤について語っていきます。 そもそもコンパイラ基盤とは コンパイラ基盤と言えば、近年色々な所で目にするのがLLVMです。 LLVMを使うことで、コンパイラの複雑で面倒な部分を避けつつ、コンパイラを構成することができるようになりました。 下

    自作コンパイラ基盤の話 - Qiita
  • BigQuery SQL でレイトレーシング - Qiita

    # 以降はコメントなのでこれは valid な pnm フォーマットです。 拡張子 pgm で保存すれば、Windows の場合は IfranView、macOS の場合は Preview.app で表示できます。 これで BigQuery で画像を出力できることが確認できました。 BigQuery によるレイトレーシング というわけで、BigQueryでレイトレーシングをやってみましょう。 実際のSQLコードは以下のようになります。 -- Vec3のドット積 CREATE TEMPORARY FUNCTION DOT (a STRUCT<x FLOAT64, y FLOAT64, z FLOAT64>, b STRUCT<x FLOAT64, y FLOAT64, z FLOAT64>) AS ( a.x*b.x + a.y*b.y + a.z*b.z ) ; -- 線形結合 aP +

    BigQuery SQL でレイトレーシング - Qiita
    yukiyan_w
    yukiyan_w 2020/12/19
    すごい
  • 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
  • BigQueryで祝日判定UDFを公開した&AlphaSQLで依存関係気にせずデプロイ - Qiita

    BigQuery Advent Calendar 2020の1日目の記事です。 この記事は、BigQueryで公開した祝日判定UDFの紹介と、依存関係のあるUDF群をMatts966氏のAlphaSQLで思考停止デプロイできた事実の共有です。 2023-01-02現在は、Google Cloud版Dataformを用いたデプロイを行なっており、データセットbqfunc.holidays_in_japan__usにて提供されています。 リポジトリ:https://github.com/bqfun/bqfunc 以前提供していた、USリージョン版bqfunc.holidays_in_japanは2023-01-31でサポートを終了します。 USリージョンでお使いの方はbqfunc.holidays_in_japan__usへの書き換えをお願いします。 また、2023-02-01以降、bqfun

    BigQueryで祝日判定UDFを公開した&AlphaSQLで依存関係気にせずデプロイ - Qiita
  • AWS LambdaでAPI開発するときのパターン集 - Qiita

    背景 AWS LambdaAPI開発をする AWS LambdaAPI Gatewayを組み合わせることでサーバレスのAPIを開発することが可能です。サーバレスで構築することで手間をかけずにスケーラビリティやコストの最適化を手に入れることができ、さらに死活監視等が不要のため運用のコストを大幅に下げることができます。 開発パターンがまとまっていない サーバレスによるAPI開発は非常にメリットが多いのですが、開発パターンが様々あり一貫した方法があるわけではありません。例えば、Lambdaのデプロイは手動でzipをアップロードする方法や、SAM/ServerlesssFrameworkなどのデプロイ支援ツールを利用する方法、さらにオンラインエディタのCloud9を利用することもあります。関数ごとにディレクトリを分離する場合もあるし、ソースコードを共有してエントリーポイントだけ切り替える場合も

    AWS LambdaでAPI開発するときのパターン集 - Qiita
  • Windows10 WSL2にLinux居城を爆誕させる - Qiita

    ひどい……こういうことする気でしょう! するとどうなる? 知らんのか PowerShellすら不要になる 完 目次 WSLの中身は単純にUbuntu18.04の環境構築としても使えると思うんですけど (名推理) WSL2とUbuntu18.04LTSを整備する WSL2とUbuntu18.04LTSのインストール (前提) 日語化する パッケージ (管理ツール)を最新化しておく WSL2のPATHからWindowsパスを抜く Vimをクリップボードに対応させる デフォルトのPythonバージョンを3にする 開発用ディレクトリはWSLファイルシステム内にしておく WSL2が使えるメモリ量を制限する IPv6を無効化する Windows側からWSL2内のサーバに localhostで接続できるようにする WSL2内のサーバにlocalhostで接続できない問題が起きたら ALSAを使っている

    Windows10 WSL2にLinux居城を爆誕させる - Qiita
  • digdag secrets を楽して環境変数にマップしたい - Qiita

    out: type: bigquery auth_method: json_key json_keyfile: content: ${env.secret_gcp_credential} +task1: _env: secret_gcp_credential: ${secret:gcp.credential} secret_aws_access_key_id: ${secret:aws.access_key_id} secret_aws_secret_access_key: ${secret:aws.secret_access_key} sh>: embulk run embulk.yml.liquid +task1: _env: secret_gcp_credential: ${secret:gcp.credential} secret_aws_access_key_id: ${secr

    digdag secrets を楽して環境変数にマップしたい - Qiita
  • pandasでfor文を使わない日本語テキスト前処理 - Qiita

    pandasで、テキストに対して処理する時、「よくわからないからfor文使うか」とならないための備忘録。 日語テキストの前処理を目的として、情報をまとめる。 もっと良い処理方法があれば教えていただけると幸いです。 実行環境 - macOS Catalina - Python 3.7.4 pandas 0.25.3 TL;DR 簡単な処理は df["カラム名"].str のメソッドに実装されている pandasに実装されていない処理をしたい場合 df["カラム名"].apply() サンプルデータ HPからスクレイピングしてきたレディースのファッションブランドの店舗情報。 csvには企業名・ブランド名・店名・住所が保存されている。 複数のHPからスクレイピングしているため、半角全角だったり、空白など統一されていない。郵便番号が含まれていたりいなかったりもする。 下記の表はデータの一例。 こ

    pandasでfor文を使わない日本語テキスト前処理 - Qiita
  • DigDagのrequireに変数を渡す方法メモ - Qiita

    背景 DigDagには require という operatorがある。 -> DigDag:require これは、主に別のワークフローに依存させたい場合などに使ったりする。 また、処理が失敗しても後続処理を続けたい場合などにも使える。 -> digdagでエラーを無視して後続タスクを進める しかし、requireを使うと、通常の変数の渡し方では変数を渡せないので、渡し方をメモしておく。

    DigDagのrequireに変数を渡す方法メモ - Qiita
  • digdagでエラーを無視して後続タスクを進める - Qiita

    ただ、この場合途中でエラーが起こった場合に最後まで実行されないことになる。 task間の依存関係が無い場合にどこかで失敗した場合も最後まで実行したい、 そんなケースの場合はrequireオペレータを使うと良い。 requireオペレータを使う requireオペレータだとignore_failureというオプションがあり、 呼び出したワークフローが失敗しても親ワークフロー内ではエラーにならない。

    digdagでエラーを無視して後続タスクを進める - Qiita
  • Digdagで大きいパラメータを登録すると後続の処理が重くなる - Qiita

    この記事はZOZOテクノロジーズ #5 Advent Calendar 2019 7日目の記事になります。 また、今年は全部で5つのAdvent Calendarが公開されています。 ZOZOテクノロジーズ #1 Advent Calendar 2019 ZOZOテクノロジーズ #2 Advent Calendar 2019 ZOZOテクノロジーズ #3 Advent Calendar 2019 ZOZOテクノロジーズ #4 Advent Calendar 2019 概要 Digdagのstoreパラメータに大きな値を入れたときに後続のジョブがすべて遅くなってしまうと言うことがあったので紹介します。 考えてみれば大きな値を毎回DBから取り出してDigdag側でパース等しているので重くなるのは当たり前なのですが。 そこで今回は実際にどんな感じで遅くなるのかを紹介します。また、その回方法を紹介

    Digdagで大きいパラメータを登録すると後続の処理が重くなる - Qiita
  • Python の __init__.py とは何なのか - Qiita

    Python を使い始めると、ディレクトリの階層で分けてファイルを管理したくなります。 そこで出てくるのが __init__.py ファイル。 これは一体何者なのか。 色々と情報がころがってはいるものの、なかなか納得行くように説明しているものが見当たりません。 Python のドキュメントでも、何を参照すれば正解なのかがわかりにくい1。 ということで、__init__.py についてまとめてみました。(少し長いです) 読み物形式で書いていますので、結論(「__init__.py の役割」)だけ見たい方はスクロールして最後の方を読んでください。 python コードの例は、主に 3.6/3.5 を使用しています2。 「モジュール」と「パッケージ」と「名前空間」 モジュールと階層構造 単一ファイルのモジュール ディレクトリによる階層構造と名前空間 ディレクトリと名前空間のマッピング __ini

    Python の __init__.py とは何なのか - Qiita
  • Rustで高速に大量のHTTPリクエストを投げる - Qiita

    自己紹介 趣味Rustをやっている Twitter https://twitter.com/hatookov Github https://github.com/hatoo SoundCloud https://soundcloud.com/gfyxxqjngkze ネットワーク初心者なので誤りがあるかも知れません モチベーション oha HTTPロードジェネレータ Apache Bench(ab)みたいな tui-rsでリアルタイム表示 とにかくいっぱいリクエストを投げたい! ベンチマーク環境 WSL 2 Ryzen 3950x 今回はtokio https://github.com/hatoo/rust_http_benchmarks ベンチマーク雛形 ベンチマーク系のライブラリは複数回実行してしまい、時間がかかるのでやめた ざっくりと時間がわかればいいかな 簡単のためにサーバーはw

    Rustで高速に大量のHTTPリクエストを投げる - Qiita