タグ

2022年12月17日のブックマーク (10件)

  • 突撃! 隣のLinuxデスクトップ - Hatena Developer Blog

    この記事は はてなエンジニア Advent Calendar 2022 16日目のエントリーです。 こんにちは、Webアプリケーションエンジニアの id:masawada です。過去のAdvent CalendarでLinuxデスクトップを業務利用している記事を書きまして*1、そこから早いもので3年経ちました。当初はこのころからの差分でも書こうかと考えていたのですが、書き出してみると案外大きな変化はなくネタとしてイマイチ面白みに欠けるので企画を練り直すことに。(裏返せば十分に安定して利用できているということで、それはそれでありがたいのですが!) 考えているうちに、そういえば社内でLinuxデスクトップを利用している他のエンジニアはどんな環境で作業しているのかな? と気になったのでアンケートをとってみることにしました。 アンケートの方法 以下の項目でGoogle Formを用意しました。 業

    突撃! 隣のLinuxデスクトップ - Hatena Developer Blog
  • OAuthのAccess TokenといわゆるPersonal Access Tokenとの違い

    ritou です。 Digital Identity技術勉強会 #iddance Advent Calendar 2022 10日目の記事を代理で書きます。 今回は、APIを叩いて何がしを行うbotとかを作る際に必要になるアクセストークンの話をします。 世の中いろんなAPIが公開されてそれを組み合わせたピタゴラスイッチみたいな仕組みが実現できる時代でありますが、その際に利用されるアクセストークンについて、いくつか種類があります。 あるユーザーとして、その代わりとしてAPIを叩いてリソースアクセスを行うためのトークンは次の2種類のトークンがあるでしょう。 (この他にサービス/アプリケーション視点のものもありますが、今回は一旦対象外にします。) OAuth Access Token Personal Access Token つい、このAPI使いたいわ〜。そのためにはアクセストークンが必要、な

    OAuthのAccess TokenといわゆるPersonal Access Tokenとの違い
  • Rustの実用性が理解できる図を作成してみた 〜C/C++/Java/JS/Python/Go/TS/Elixirとの比較〜

    エディタ支援 言語の公式がエディタ支援(LSP等)を提供しているかを示しています。 自動テスト 言語の公式が自動テスト(ユニットテスト等)を備えているかを示しています。 リンタ 言語の公式がリンタを提供しているかを示しています。 ビルドシステム 言語の公式がビルドシステムを提供しているかを示しています。 パッケージマネージャ 言語の公式がパッケージマネージャを提供しているかを示しています。 フォーマッタ 言語の公式がフォーマッタを提供しているかを示しています。 手続き型 言語のプログラミングパラダイムが手続き型プログラミングを強くサポートしているかどうかを示しています。 オブジェクト指向 言語のプログラミングパラダイムがオブジェクト指向プログラミングを強くサポートしているかどうかを示しています。 関数型 言語のプログラミングパラダイムが関数型プログラミングを強くサポートしているかどうかを示

    Rustの実用性が理解できる図を作成してみた 〜C/C++/Java/JS/Python/Go/TS/Elixirとの比較〜
  • Pandasのメモリ削減方法を整理した - Taste of Tech Topics

    皆さんこんにちは 機械学習チーム YAMALEXチームの@tereka114です。最近、寒いので、鍋を中心にべて生きています。 検証段階でも、規模の大きなデータを扱う機会が増えてきて、Pandasのメモリ消費量が厳しいと感じてきたので、その削減や効率化のテクニックまとめたいと思いました。 有名なものからマイナーなものまで、思いつく限り書いてみます。 そもそもなぜ、Pandasのメモリ削減技術が必要なのか 準備 Pandasのメモリ削減 1. 型修正 2. 逐次読み込み 3. 読み込み時の型指定 4. 逐次読み込み&集約 5. 不要なものを読み込まない 6. 不要なカラム/DataFrameを消す 番外編:そもそもPandasを利用しない 最後に そもそもなぜ、Pandasのメモリ削減技術が必要なのか Pandasで扱うデータの多くのファイルはCSV,Parquet, JSON(JSONL

    Pandasのメモリ削減方法を整理した - Taste of Tech Topics
  • UXライティングのレビュー工数をtextlintで90%削減した件 - BASEプロダクトチームブログ

    はじめに この記事はBASE Advent Calendar 2022の13日目の記事です。 はじめまして、BASEでエンジニアリングマネージャーをしている渋谷と申します。 今回は、textlintを導入したところレビュー工数が90%削減できたので技術的にどのようなアプローチをしたかについて紹介させていただきます。 背景 弊社にはUXライターが在籍しており、BASEプロダクト全般におけるテキストの品質を向上させる、UXライティングを行っています。 テキスト版デザインシステムとして「運用ガイドライン」「用語リスト」を作成し、あらゆるタッチポイントにおいて、日々テキストコミュニケーションの最適化を図っています。 UXライターが文言を作成するケースもありますが、UXライターでない方が文言を作成するケースが多く、その場合UXライターがレビューすることで品質を担保しています。 そのような取り組みの中

    UXライティングのレビュー工数をtextlintで90%削減した件 - BASEプロダクトチームブログ
  • RustでOSを書いた

    はじめに RISC-V CPUFPGA 上に実装して、マイクロカーネル OS を Rust で書いて動かしてみました。 CPU について RISC-VとChiselで学ぶ はじめてのCPU自作 に沿って RISC-VCPU を作り、機能をエンハンスしました。 乗除算命令、RVC命令、ビット拡張命令の一部を追加 7段パイプライン化 DRAM コントローラ 4KB命令キャッシュ、8KBデータキャッシュ 2ビット分岐予測 周辺コントローラ実装(SDC、UART、タイマー、割込コントローラ) Arty A7-35T という FPGA ボード上で動作させています。 スーパーバイザーモードは実装していないので、仮想メモリは使えません。みんなで仲良くメモリを共有します。 CPU の実装はこちらに置いてあります。書籍のサポートリポジトリの fpga 実装版を fork して機能追加しています。

    RustでOSを書いた
  • AWSなど5社のWAFの検知を回避する攻撃手法が見つかる

    Clarotyはこのほど、「{JS-ON: Security-OFF}: Abusing JSON-Based SQL to Bypass WAF|Claroty」において、複数のセキュリティベンダーのWebアプリケーションファイアウォール(WAF: Web Application Firewalls)をバイパスするテクニックを発見したと伝えた。SQLインジェクション攻撃を適切に検知するWebアプリケーションファイアウォールを効果的に回避するテクニックが紹介されている。 {JS-ON: Security-OFF}: Abusing JSON-Based SQL to Bypass WAF|Claroty WAFは、WebベースのアプリケーションやAPIを悪意のある外部HTTPSトラフィックから保護するために設計されているセキュリティ対策ツール。特にクロスサイトスクリプティングやSQLインジ

    AWSなど5社のWAFの検知を回避する攻撃手法が見つかる
  • GitHub Codespacesの導入とその設計 - Speee DEVELOPER BLOG

    ネイティブアド配信プラットフォームUZOUの開発をしているエンジニアの @kanga333 です。UZOUでは今年の8月あたりからGitHub Codespaces(以後Codespaces)を全面的に導入しました。この記事ではUZOUにおけるCodespacesの利用事例について簡単に紹介します。 GitHub Codespacesとは? GitHub CodespacesとはGitHubの提供するクラウド開発環境のサービスです。Codespacesを利用するとクラウド上のVMの上にリポジトリのコードと諸々の環境がセットアップされたコンテナが立ち上がり、開発者はその環境に接続して開発をすることができます。 GitHub, Inc. 自体がGitHub Codespcesのユーザーであるため、かなりの大規模環境でも実績のあるサービスとなっています。GitHub自身の事例に興味が出た方は以下

    GitHub Codespacesの導入とその設計 - Speee DEVELOPER BLOG
  • TypeScriptにおける配列の共変性

    const animal: Animal = { animal: "string", }; const dog: Dog = { animal: "string", dog: "string", }; いま,Dog <: Animalです. <:という記号は2つの型のあいだに書いて,「左の型が右の型のサブタイプである」と読みます. TypeScriptの型システムは構造的なので,2つのオブジェクトがサブタイプ関係にあるには,それらに共通するプロパティについてもまた,サブタイプ関係が必要1です. 今回の例では,DogとAnimalに共通するanimalプロパティについてstring <: stringなのでOKです. TSでは,S <: TならばT型の変数にS型の値を代入できます. つまり,Dog <: Animalなので Animal型の変数にDog型の値を代入できます.

    TypeScriptにおける配列の共変性
  • 転職会議のフロントエンドパフォーマンス改善〜React/Next.jsでWeb Vitals健全化、スコア2.5倍改善を達成した手法の全て - LIVESENSE ENGINEER BLOG

    これは Livesense Advent Calendar 2022 DAY 15 の記事です。 はじめに 転職会議事業部エンジニアの、池田、犬島、佐藤、浜田です。 転職会議は、ユーザーの口コミ投稿によって成り立っている転職サイトです。 フロントエンドReact/Next.jsによる独立したマイクロサービスとして切り出されており、BFFを通じてバックエンドのサービス群とAPI通信する構成をとっています。 サービスの性質上口コミを中心とした検索流入が重要であり、SEOの文脈でフロントエンドのパフォーマンス改善の必要性は認識されていましたが、機能開発や負債解消もあり、まとまった対応ができない状況が続いていました。 この状況を改善すべく、1年間継続的に改善に取り組み、Web Vitalsの健全化、パフォーマンススコアの大幅な改善を達成することができました。 記事では、特に効果が大きかった改善

    転職会議のフロントエンドパフォーマンス改善〜React/Next.jsでWeb Vitals健全化、スコア2.5倍改善を達成した手法の全て - LIVESENSE ENGINEER BLOG