タグ

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

  • Rustのlet-else文気持ち良すぎだろ - Qiita

    // let 論駁可能パターン = 値 else { never型を返す処理 }; let Ok(val) = reqwest::get(url).await else { return }; このコードの意味としてはreqwest::get(url).awaitがOk(結果)を返してきたらvalに束縛し、ダメだったら関数を抜ける、になります。 if-let式 let-else文の詳細を説明する前に、まずはRustのif-let式について説明いたします。 Rustは式指向言語のためifも標準で式になっています。よく他言語では三項演算子使用で宗教戦争が起きていますが「if"式"があれば争いなんて起きないのに...(トオイメ」といつも思っています。

    Rustのlet-else文気持ち良すぎだろ - Qiita
    sora_h
    sora_h 2022/11/06
    基本はResultに落として?で抜けるからreturn Noneとかawaitしたいとかそういう時にしか使わないかなぁ。欲しかったけど。Swiftとかで似たようなのがあった覚え。
  • Deno のめっちゃ難しいバグを修正した - Qiita

    2022年4月、Deno に以下のバグが報告されました。 fetch API を使って 300KB ぐらいあるファイルをアップロードすると、一定確率でアップロードされたファイルが壊れるというバグの報告です。 報告者によれば、1.20.6 まではバグは発生しておらず、1.21.0 から発生するようになったという事です。1.20.6 の次のリリースが 1.21.0 なので、パッチバージョン1個分まで、バグの発生時期が特定されている状態です。 fetch 周りは自分はほぼ実装していないので「担当範囲ではない」感覚だったので、普通にスルーしていました。 自分に限らず、Deno Land コアチームの誰もこの issue にピンと来る人が居なかったようで、stale ボット (数ヶ月進捗の無い issue を自動的にクローズしようとするボット) に2回もクローズされかけていました。Deno の st

    Deno のめっちゃ難しいバグを修正した - Qiita
    sora_h
    sora_h 2022/10/05
    これRustレベルなら普通にコンパイラが怒ってくるけどTypeScriptでは防げないしまぁ起こるわなぁという感じだ…。ArrayBufferパフォーマンスを取るためにこういうAPI用意してるのかな。足撃ちそう。
  • #patchwork2022 の運営側を色々システム化したあれこれ - Qiita

    はじめに 先日2022/8/13に、渋谷 clubasia にて #patchwork2022 というイベントを開催しました。 話の始まりは2019年ぐらいからだったので、実に3年越しの開催ができ感無量でした。 ご来場頂いた皆様、配信で見てくださった皆様、当にありがとうございました。 さて、この度patchworkの内部では色々と作業の効率化施策をやってきました。 イベント開催という一区切りがついたタイミングなので、一旦文章化しようと思いこの記事を書きます。 大規模なイベントを企画している方々には色々課題を持ってる方も多いと思うので、参考になる部分がございましたら嬉しいです。 基的に無料でできるようなものを選定しているので、触れる人さえいれば導入のハードルはそんなに高くないかなと思います。 Discord の導入 前身のイベントみくるサマーではトピックごとにLINEグループを作成してそ

    #patchwork2022 の運営側を色々システム化したあれこれ - Qiita
    sora_h
    sora_h 2022/08/26
  • 障害報告書を書こう! - Qiita

    担当しているITサービスなどに何かしらのインシデントや障害が発生した時に、対処後のアクションとして報告書を提出して事象の内容を報告(レポート)する場合がある。 提出先は会社の偉い人だったりクライアントだったり。場合によってはユーザー向けに発表したり。事の顛末を報告して「今後同様のことを起こさないように努力します、ごめんなさい」をするのだ。どのように再発防止の努力するのかを書くものでもある。 主にクライアント向けのビジネス内容ではあるが、自分が使っているテンプレパターンを共有するので参考にしてもらえればと思う。1 全般的なポイント 心得のようなもの。次の点は留意してて欲しい。 淡々と冷静な説明をこころがける 当然のことながら事実は脚色しない。無駄な修飾も要らない。客観的な事実を簡潔に述べる。 例: ❌「一生懸命頑張って対応したが…」 ❌「寝ないで対応したが…」 ❌「当の原因は…」 できるだ

    障害報告書を書こう! - Qiita
    sora_h
    sora_h 2022/07/05
  • 混沌を極めるWindowsのssh-agent事情 - Qiita

    どうしてこうなった。 何の話? WindowsでのSSH-AGENTとSSHの話です。 この記事での用語: SSHとssh, SSH-AGENTとssh-agent この記事では、SSH-AGENTと書いたときにはカテゴリとしてのSSHエージェントを意味します。 ssh-agentと書いたときには、実行プログラムとしてのssh-agentコマンドを意味します。 同様に、SSHと書いたときにはカテゴリとしてのSSHクライアントを意味します。 sshと書いたときには、実行プログラムとしてのsshコマンドを意味します。 SSH-AGENTって? SSH-AGENTは、秘密鍵での署名を代行1してくれるツールです。 SSH-AGENT に秘密鍵をロードしてしまえば、あとはパスワード(パスフレーズ)入力なしでSSH認証できる agent forward機能を使うことで、SSHした先でさらにSSHすると

    混沌を極めるWindowsのssh-agent事情 - Qiita
    sora_h
    sora_h 2022/05/15
  • エープリルフールなのでJavaScriptの信じがたい話をします - Qiita

    今日はエープリルフールなので、JavaScriptに関する、にわかに信じがたい話(実話)をしたいと思います。実用的な話ではないので、息抜きがてらお読みいただき、「嘘だろ!?」とツッコミながらJavaScriptへの関心を少しでも深めていただければと思います。 思いつきでゆるめにとりとめもなく書いたため、内容がざっくりしているところがあります。詳しい方はコメントなどで補足いただけると助かります🙇🏻‍♂️ できるだけ十分に調査したつもりですが誤りなどあればご指摘いただければ幸いです。 JavaScriptは10日で作られました JavaScriptは最も利用される言語のひとつで、JetBrainsの統計によれば70%近くの開発者が使ったことがあるほど、広く普及している言語です。 ここまで普及したとなると、JavaScriptはどれほど練りに練って、じっくり作り込まれた言語だったのでしょうか

    エープリルフールなのでJavaScriptの信じがたい話をします - Qiita
    sora_h
    sora_h 2022/04/02
  • RSAに対するフェルマー攻撃 - Qiita

    はじめに(Introduction) RSAの鍵ペアの生成方法にミスがあり脆弱性となってしまった実装例があったようです。 元の文献を機械翻訳(ちょっと修正)してみます。 原文のデモをやってみたところ、案外動いたので先にデモを記します。 デモ(Demo) まずは、素数$p$と$q$を生成して$N$を求めるところです。 ※:鍵長が2048bitなので多少時間がかかります。 問題となったライブラリがこのようなロジックであったかは不明ですが、翻訳した資料を参考に作成しています。 import random as rnd import sympy key_length = 2048 distance = 10000 p = 0 q = 0 # 乱数Xを生成する。 X = rnd.randrange(2, pow(2, key_length)) for i in range(distance): #

    RSAに対するフェルマー攻撃 - Qiita
    sora_h
    sora_h 2022/03/20
    「RSAに脆弱性が発見されたようです」ではない。脆弱な鍵の作り方としてwidely knownだし、そうなってしまっている実装が発見されたのが正しいのでは。
  • メタバースの技術限界の解説 - Qiita

    これらの試算から、1人あたりのトラッキングによる通信量はおおよそ16.88kbpsから112.50kbpsと考えられます。 スター型ネットワークの場合 ここでメタバースでスター型のネットワークを採用することを考えます。 どのような構成かというと、クライアントがトラッキングデータをサーバーへ送信します。各クライアントへのトラッキングデータの送信はサーバーが行います。 こうした構成を行う場合、全てのクライアントのデータがサーバーを介し、各クライアントへ流れ込みます。そのため、通信速度は下り速度がボトルネックとなります。ここでは人口75%ラインの88Mbpsを上限として考えます。 先ほどの1人当たりのトラッキングに関わる通信量から算出すると、スター型の場合、801~5,340人が通信の限界になります。 フルメッシュ型ネットワークの場合 一方で、サーバーを介しないクライアント同士が直接つながるフル

    メタバースの技術限界の解説 - Qiita
    sora_h
    sora_h 2022/01/29
    FF14でかなり頑張ってるのを長いこと見てるけど、技術的にもなかなか進歩が大変そうな領域
  • Aurora MySQL バージョン 1(5.6 互換)→バージョン 3(8.0 互換)間の dumpInstance() & loadDump() を試す - Qiita

    Aurora MySQL バージョン 1(5.6 互換)→バージョン 3(8.0 互換)間の dumpInstance() & loadDump() を試すMySQLAWSAuroraMySQL8.0 この記事は、MySQL Advent Calendar 2021 6 日目のエントリです。 昨日(5 日目)は taka_yuki_04 さんでした。 リモートからBLOB型に画像やPDFファイルを登録する方法(41から始めました) 昨年(2020 年)の re:Invent で予告されてから 1 年近く経った 11 月、ようやく Amazon AuroraMySQL 8.0 互換(バージョン 3)が登場しました。 Amazon Aurora MySQL 3 with MySQL 8.0 compatibility is now generally available(AWS Data

    Aurora MySQL バージョン 1(5.6 互換)→バージョン 3(8.0 互換)間の dumpInstance() & loadDump() を試す - Qiita
    sora_h
    sora_h 2021/12/06
  • JWT アクセストークンからの個人情報漏洩 - Qiita

    内包型アクセストークン、典型例としては JWT アクセストークンは、関連するデータを自身の内部に持っています。下記の条件が成り立つと、論理的な帰結として、そのようなアクセストークンから直接個人情報が漏洩します。 個人情報が含まれている 暗号化されていない ステートレス 意図しない者に盗まれる ここで「ステートレス」とは、「個人情報を保存するためのデータベースレコードを認可サーバー側に持たない」ことを意味しています。 もしもアクセストークンの実装が「内包型/暗号化されていない/ステートレス」であり、また、システムがクライアントアプリケーションに個人情報を提供する必要があるなら、当該システムは、アクセストークンに情報を埋め込むことを避け、個人情報を問い合わせるための Web API を提供すべきです。 ユーザー情報エンドポイント (OIDC Core Section 5.3) はそのような A

    JWT アクセストークンからの個人情報漏洩 - Qiita
    sora_h
    sora_h 2021/11/11
  • 扇風機のファームウェアを書き換えて潜在能力を引き出した話(その2) - Qiita

    arduinoとかに使われるマイコンよりはROM、RAMサイズが小さいですが、扇風機のソフトを実装するには十分すぎるくらいかと思います。 詳しくはhttps://www.st.com/resource/en/datasheet/stm8s003f3.pdf ※タイマは指定した時間経過後に処理を行ったりできる機能です。今回の実装で使ってます。 ※I2C、SPI、UART等はシリアル通信の方式のことで、今回は使いません。 ライブラリについて タイマやGPIO等の各種機能はSTM8S/A Standard peripheral library(https://www.st.com/en/embedded-software/stsw-stm8069.html )を使えば簡単に使用できます。 このライブラリにはサンプルプログラムも豊富に付いてたので、STMマイコンを使うのが初めてでもすぐに使えました

    扇風機のファームウェアを書き換えて潜在能力を引き出した話(その2) - Qiita
    sora_h
    sora_h 2021/09/28
    “I2Cの小さいOLEDディスプレイを付けて様々な情報を表示させられるようにしました。(LEDは外しました)”
  • FIDOのPIN認証のフローを理解する - Qiita

    記事は Digital Identity技術勉強会 #iddance Advent Calendar 2020 の3日目の記事です。 なんの話ですか? FIDOの話です。 FIDOの話なんですが、WebAuthnっぽい入り口で、中身はCTAPの話です。 WebサイトでFIDOキーでログインする時のPINの検証プロトコルがどうなっているのかという話です。 PINの検証プロトコルはCTAPで定義されていて、これがやたらめんどくさくてすぐ迷い込んでしまうので少し整理してみました。 雰囲気理解で書いていますので 間違いなどあれば ご指摘、コメントいただければ嬉しいです 0.人 - ログイン 画面はWebAuthnのデモサイトです。 ログインします ブラウザ『FIDOキーを挿入してください』 FIDOキーをPCのUSBに刺します ここからはじまります。 1.FIDOキー - パワーON! FIDO

    FIDOのPIN認証のフローを理解する - Qiita
    sora_h
    sora_h 2021/08/02
  • レンタルサーバー運営会社に不正利用を通報したときの窓口と、各社の対応をまとめた。 - Qiita

    動機 おそらくCMSがクラッキングされて、私のブログの文章を断片的にコピーしたサイトがフィッシングサイトへの誘導に使用されているのを見つけたので、コンテンツをホスティングしている会社に片っ端から不正利用を報告しました。各社の窓口と対応スピードをまとめておけば、今後の自分の役に立ちそうだったのでまとめておきます。 なお、他人のブログをコピーしたものをつなぎ合わせたり、キーワードがひたすら埋め込まれたページを追加してフィッシングサイト等に誘導する手口はジブリッシュハックと呼ぶそうです。 意味不明な内容によるハッキングを解決する  |  Web Fundamentals  |  Google Developers 被害を受けるとこういう感じのページが量産されます。 今回の報告はすべてジブリッシュハックに対するものです。 なお、今回の報告対象は脆弱性ではないのでIPAには報告していませんが、脆弱性

    レンタルサーバー運営会社に不正利用を通報したときの窓口と、各社の対応をまとめた。 - Qiita
    sora_h
    sora_h 2021/03/02
    さくらすげ〜
  • 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
    sora_h
    sora_h 2020/12/20
  • 桃太郎電鉄の「いけるかな」を実現する高速なアルゴリズムの実装と考察 - Qiita

    この記事は「データ構造とアルゴリズム Advent Calendar 2020」16日目の記事です。 15日目の記事はyurahunaさんの「木分解上の動的計画法」で、 17日目の記事はtsukasa__diaryさんの「Lawler の K-Best 列挙アルゴリズム」です。 この記事内で使用しているプログラムやそのテストプログラムは全て以下のGitHubリポジトリで閲覧可能です。プログラムの詳細に興味がある方はこちらをご覧ください(ついでにStarを押していってくれると喜びます🙂)。 Github: ashiba/Imprementation_of_IKERUKANA: Momotaro Dentetsu is a game. 変更履歴 2020/12/21に「最終的に貧乏神が付かない移動方法 ~貧乏神持ちの場合~」, 「最終的に貧乏神が付かない移動方法 ~貧乏神がついていない場合~

    桃太郎電鉄の「いけるかな」を実現する高速なアルゴリズムの実装と考察 - Qiita
    sora_h
    sora_h 2020/12/17
  • Google『reCAPTCHA』を突破!『2Captcha』でブラウザ操作の完全自動化に挑む - Qiita

    目次 はじめに 2Captchaとは 2Captchaの使用準備 Python+Selenium+2Captchaで『reCAPTCHAv2』を突破 さいごに 参考 はじめに スクレイピングやブラウザ操作の自動化タスクにおける一番の難所は各種キャプチャの突破だと思います。そもそもキャプチャ機能はロボット操作されないために設置するものなので,それを突破しようとする時点でどうなのという気はしますが,それでもなんとかしたいと思うことがあります。そんなときの解決方法として「2Captcha」というサービスがあります。 最近このサービスを知り利用してみたところ,あまりに簡単にキャプチャ突破できたので,ここで紹介しようと思います。 ※ ご利用は自己責任でお願いします。くれぐれも悪用しないように。 2Captchaとは ロシアの会社が提供するキャプチャ機能を突破するためのサービスです。 2Captcha

    Google『reCAPTCHA』を突破!『2Captcha』でブラウザ操作の完全自動化に挑む - Qiita
    sora_h
    sora_h 2020/11/09
  • Digital Identity技術勉強会 #iddance - Qiita Advent Calendar 2020 - Qiita

    2020年になりすっかりなりを潜めていますが、DigitalIdentityに関する技術の勉強会である #iddance のアドカレやります。 参加条件は自由です。いわゆる認証認可と関連する技術、OAuth、OpenID Connect、FIDO、WebAuthn、DID、SSI、eyJ(JWT)、そしてSAMLとかに興味のある人、一緒に何か書きましょう!プロトコルや仕様に縛られずいろいろな話題が集まることを期待しています。 「書いてみたいけどお前やあの人の突っ込みが怖いんだわ」って時は事前のレビューもできますのでTwitterなどでご相談ください。 申し込んだけど穴空きそう!助けて!ってときもritouがなんとかしますので安心して参加してみてください。

    Digital Identity技術勉強会 #iddance - Qiita Advent Calendar 2020 - Qiita
    sora_h
    sora_h 2020/11/06
  • 【IE限定】JavaScriptからCOMを呼び出す - Qiita

    IEからCOMを呼び出す方法です。 最近やったので、ノウハウをまとめます。 IE離れが進む中で今更こんなことする機会は滅多にないと思いますが、やるとなるとレガシー過ぎて情報が少なく、苦労すると思います。 開発環境 開発環境は以下の通りです。 Windows10 Visual Studio 2019 IE11 C++ インストール Visual Studio 2019をインストールします。 今回は個人の勉強用として、Visual Studio Community 2019をインストールしました。 基、インストーラに従って、デフォルトのまま、インストールすればよいですが、「ワークロード」で「C++ によるデスクトップ開発」を選んでください。 プロジェクト作成 Visual Studio Community 2019のインストールが終わったら、プロジェクトを作成します。 Windowsの検索窓

    【IE限定】JavaScriptからCOMを呼び出す - Qiita
    sora_h
    sora_h 2020/10/12
  • kubernetesでもぷよぷよがしたいので同じ色のPodが4個くっついたらdeleteされるcustom controller「くべくべ」を作った - Qiita

    kubernetesでもぷよぷよがしたいので同じ色のPodが4個くっついたらdeleteされるcustom controller「くべくべ」を作ったGokubernetes Kubernetes使ってると、Nodeにえらい数のPodが溜まってくじゃないですか。消したくなりますよね。連鎖してほしいですよね。なりません?なので、4つ同じ色のPodが4個くっついたらdeleteされる、爽快感のあるカオスエンジニアリング用のcustom contollerを作りました。 deleteされるだけでは寂しいので、deleteされていく様子を見るためのkubectl pluginも作りました。合わせて使うとこんな感じになります。 左側の●のひとつひとつがPodです。Nodeが列に対応してます。6Node構成です。各色8個ずつpodを立てていて、右側にreplicasetの増減を置いてみました。 レポジト

    kubernetesでもぷよぷよがしたいので同じ色のPodが4個くっついたらdeleteされるcustom controller「くべくべ」を作った - Qiita
    sora_h
    sora_h 2020/09/17
  • 未経験者がフロントエンドの仕事を2年やって、各言語や仕事に抱いた感想 - Qiita

    プログラミング言語やフレームワークに関する疑問をググるとだいたいQiitaの記事がヒットして、開くたびにアカウント登録しろしろとうるさいのでキレながらアカウント作りました。サブカルメンヘラクソ女の@hg0です。折角なのでアカウント登録のついでに書こうと思います。 大学は芸術系で、デザインやメディアアートをかじっていた程度なのですが、縁があってWebエンジニア業界に就職することが出来ました。 2年ほど、フロントエンドのお仕事・勉強をさせて頂いて思ったこと、躓いたこと、各言語やフレームワークを使って思ったことを振り返りながら書いてみようと思います。 言語・フレームワークについて HTML/CSS/JavaScript 「Webサイト制作」「フロントエンド」の勉強をするにあたって、誰もが一番最初に学ぶのは間違いなくこれだと思います。どれも国際的な団体が、仕様や書き方を中立的に定めている、Web業

    未経験者がフロントエンドの仕事を2年やって、各言語や仕事に抱いた感想 - Qiita
    sora_h
    sora_h 2020/08/29
    標準もどきなるほどなぁ。新鮮だ。