ryosuke-fujiiのブックマーク (722)

  • オファリング・ビジネスの死角と課題 | ネットコマース株式会社

    昨今、「オファリング・ビジネス」 という言葉が、SI事業者界隈で、聞かれるようになりました。これは、お客様個別の要望に応える「受託開発」ではなく、自社のサービスをお客様に提案(オファリング)することでビジネスを生みだすことを意味する言葉です。 クラウド・サービスの充実や生成AIの機能向上で、工数需要に伸び代はなくなりつつあります。また、これらツールの充実は、ユーザー企業の内製化を拡大させていくでしょう。また、変化が速く予測できない社会に対処するには、システムの開発や改修のスピードを加速しなければなりません。外注に依存する従来のやり方では、これに対処できないことは明白で、これが内製拡大の機運を高めています。 また、慢性的な「エンジニア不足」は、工数の確保を難しくしており、これまでと同じやり方で収益の拡大を目指すことは、できません。このような、事業環境の変化に対処するために、「オファリング・ビ

    オファリング・ビジネスの死角と課題 | ネットコマース株式会社
  • 読者が安心して記事を読めるように、Publickeyでは適切な広告だけを掲載しています

    インターネット上には、無料でさまざまなコンテンツを提供するために、コンテンツと広告を組み合わせて読者に表示するメディアが数多くあります。 コンテンツと一緒に広告を読者に見てもらうことで、広告主からお金をいただき、それをメディアの運営費としているのです。 しかし最近では、不快な画像の広告や、誤クリックを誘うような邪魔な広告、さらには詐欺サイトへ誘導するような広告なども目立つようになり、読者にとって広告は不快で危険なものと認識されるようになってきています。 広告で運営費をまかなっているPublickeyにとって、こうした状況は喜ばしいものではありません。読者が広告を忌避するようになればなるほど、広告によるメディアの運営が難しいものになっていくからです。 Publickeyはこれまでずっと読者が安心して記事を読み、広告主が安心して広告掲載できるように、適切な広告だけを表示することに最大限の努力を

    読者が安心して記事を読めるように、Publickeyでは適切な広告だけを掲載しています
  • Node.js 18.x runtime now available in AWS Lambda | Amazon Web Services

    AWS Compute Blog Node.js 18.x runtime now available in AWS Lambda This post is written by Suraj Tripathi, Cloud Consultant, AppDev. You can now develop AWS Lambda functions using the Node.js 18 runtime. This version is in active LTS status and considered ready for general use. When creating or updating functions, specify a runtime parameter value of nodejs18.x or use the appropriate container base

    Node.js 18.x runtime now available in AWS Lambda | Amazon Web Services
  • VSCodeVimの設定を見直す

    久しぶりにVSCodeVimの設定を見直してみました。 そこから得た知見の一部をVimの設定にも反映させました。 Table of Contents 経緯 ツールによらないキーバインド統一化を目指す過程で、VSCodeのキーバインドを見直し始めたのがきっかけです。 以前からモヤモヤしていたVSCodeVimに関する設定も整理しようと思って始めました。 ツールによらないキーバインド統一化 普通、キーバインドはツールごとに異なります。 ある程度統一されている部分もありますが、細かな違いが脳のコンテキストスイッチの切り替えコストを増大させます。 全てのツールで同じキーバインドを実現することにより、それらの問題を解決するプロジェクトです。 まだ実行には至りませんが、2019年中に完成させたいと思っています。 以下のようにとても人気があり、私にとってもVSCodeを使う上で欠かせない拡張機能です。

    VSCodeVimの設定を見直す
  • vim-surroundでvimmerへの道を極めよう - Qiita

    motionはiw(inner word)、a'(all ')など。 主に、i(inner)かa(all)の後に、w(word)、'(クォーテーション)などの文字を続ける。 具体的に確認していきます。 1. 削除 1.1 囲いを削除 ds'コマンドで囲いの'(クォーテーション)を削除 その他、 同じような用例としてds"、ds(、ds{、dstなども可能。 dstのtは<div>や、<p>などのHTMLタグ。 1.2 囲いの中を削除 di'コマンドで囲いの'(クォーテーション)の中を削除 その他、 同じような用例としてdi"、di(、di{、ditなども可能。 ditのtは<div>や、<p>などのHTMLタグ。 また、diw(delete inner word)は単語を削除するのにかなり重宝します。カーソルの位置は単語内であればどこでも良い。 2. 囲いを変更 2.1 囲いを変更 cs'

    vim-surroundでvimmerへの道を極めよう - Qiita
  • もうこれでVIM学習は最後にしよう! VIMチュートリアルと入門 - Qiita

    こちらの記事は、Daniel Miessler 氏により2020年03月に公開された『 Learn vim For the Last Time: A Tutorial and Primer 』の和訳です。 記事は原著者から許可を得た上で記事を公開しています。 Vim を学ぶ上での問題は、それが難しいということではなく、ずっとやり続けなければならないということです。このガイドでは、そのサイクルを断ち切り、今度こそ完璧にVim学習を完了できることをゴールにしています。 Vim 学習のリファレンスはオンラインで何十件もありますが、ほとんどのものは、すぐに超絶技巧を要求するか、あるいは基的なことだけ触れてあまり深く踏み込まないかのどちらかです。 このチュートリアルは、まずvim の思想を理解すること(これは永遠に皆さんの心の中に残ります)から始まり、現在お使いのエディタのスキルを超越して、VI

    もうこれでVIM学習は最後にしよう! VIMチュートリアルと入門 - Qiita
  • VSCodeでキーボードの長押しができなくなったときの対処方法

    背景最近会社で利用しているMacのリース期限が近づいてきたので、新しいMacにリプレースすることにしました。 VSCodeの環境はそのまま移行せずに1から綺麗な状態で作成しようと思い、初期設定を行いました。 いざ開発するとなって、Vimプラグインを入れ忘れていることに気づき、インストールしました(vscodevim)。 いざ実装しようと思って、jklhキーを使ってカーソルを移動させていたところ、長押ししてもカーソルが動かないことに気づきました。 これはとても不便です…なんとかしないといけません…その時の対応方法を記載します。 Macの設定を疑うMacをリプレースしたこともあって、最初はMacの設定だと思っていました。 Macのキーボードの設定はシステム環境設定 → キーボードから�キーボードタブで、リピート入力認識までの時間を一番短くしてみました。 結果、なにも変わらず、原因はここではない

    VSCodeでキーボードの長押しができなくなったときの対処方法
  • Why Prisma ORM? Comparison with SQL query builders & ORMs | Prisma Documentation

  • GraphQL - Wikipedia

    GraphQL(グラフQL)はAPI向けに作られたクエリ言語およびランタイムである[2]。 ベンダーフリーな GraphQL財団の支援を受け、開発が進められている[3]。 ウェブAPIの開発に、RESTやその他のWebサービスと比較して、効率的で堅牢、かつ柔軟なアプローチを提供する。GraphQLでは、クライアントが必要なデータの構造を定義することができ、サーバーからは定義したのと同じ構造のデータが返される。したがって、必要以上に大きなデータが返されるのを防ぐことができクエリの効率が良い。また、柔軟性と豊かな表現が可能なクエリ言語は複雑さを加えるため、シンプルなAPIには適さない可能性もある[4][5][6]。GraphQLは、型システム、クエリ言語、実行セマンティクス、静的な検証、型チェックから構成される。 GraphQLは、データの問い合わせ (query)、書き換え (mutatio

    GraphQL - Wikipedia
  • GraphQLにおけるエラーハンドリングの仕方 - ZOZO TECH BLOG

    こんにちは、サーバーサイドエンジニアの竹若です。今回GraphQLにおけるエラーハンドリングを調査、Ruby on Railsgraphql-rubyを使って実装する機会があったので、そこで得られた知見を共有させていただきたいと思います。(なお今回の実装はプロダクション環境には出ていません) GraphQLの仕様とプラクティス それではまず初めに、GraphQLが仕様に定めているレスポンスの返し方を見ていきましょう。 レスポンスのフォーマットに関するプラクティス GraphQLのプラクティスの1つに、レスポンスのhttp statusを200で統一し、レスポンスのerrorsキーにエラーの詳細な情報を持たせるというものがあります。 なぜならGraphQLではリクエストに複数のクエリを含めることができるからです。 https://www.graph.cool/docs/faq/api-ee

    GraphQLにおけるエラーハンドリングの仕方 - ZOZO TECH BLOG
  • GraphQLのエラー設計について|食べログ フロントエンドエンジニアブログ

    こんにちは、べログフロントエンドチームの荒川です。 先日リリースしたべログノートというプロジェクトでは、GraphQLを利用しました。(べログノートの詳細は後日、別の記事でご紹介する予定です) 今回はその中で、エラーをどう設計したかについてご紹介しようと思います。 HTTPレスポンスとGraphQLのエラー応答についてまず、今回のGraphQLフロントエンド側のクライアントにはApollo Clientを利用しました。 Apollo Clientのドキュメントには We recommend using the included Error Codes or Custom Errors for error consistency rather than directly modifying the HTTP response. Apollo GraphQL Docs - Error

    GraphQLのエラー設計について|食べログ フロントエンドエンジニアブログ
  • GraphQLにおけるエラーハンドリングの選択肢と検討

    こんにちは! ココナラテックエージェント や Futurizm を始め、いくつかの新規事業開発を担当している大川です。 今回は、現在模索しているGraphQLのエラーハンドリングについて書いていこうと思います。 模索中ではあるものの、模索する上で調査した他社事例であったり、複数の選択肢の中から比較を行う観点等を掲載していますので、一部の方には刺さるのではないかと思い執筆することにしました。 背景 私たちのチームは、バックエンドでAPIを構築する際、Ruby on Railsを用いてGraphQL APIを構築する選択肢がファーストチョイスとなっています。 しかし、GraphQLのエラーハンドリングにはいくつかの選択肢があり、自分達に合う方法を見つけることが出来ていませんでした。 そこで、新しくGraphQL APIサーバーを構築することをきっかけに、改めて主流となるエラーハンドリングの方法

    GraphQLにおけるエラーハンドリングの選択肢と検討
  • 「みんなジョブズに騙されている」増井俊之教授が進歩の止まったコンピュータのUIを問い直す【TechLIONレポ】 - エンジニアtype | 転職type

    モノづくりをテーマに行われた『TechLION vol.18』。登壇者は左から寺薗淳也氏、瀬尾浩二郎氏、増井俊之氏 コンピュータはこの30年、まったく進歩していない――。 有名エンジニアによるトークライブの場としてすっかりおなじみになった『TechLION』の壇上で、慶應大学環境情報学部の増井俊之教授は業界の現状を憂えた。 2014年9月に開催された『vol.18』のテーマは「モノづくり」。小惑星探査機『はやぶさ』プロジェクトチームの一員としても知られる会津大の寺薗淳也准教授、面白法人カヤックから独立しフリーのエンジニア/クリエイティブ・ディレクターとして活躍中の瀬尾浩二郎氏とともに、UI研究の第一人者、増井教授は登壇した。 時々刻々と性能が上がっているように見えるコンピュータ(編集部注:増井氏の発言では「計算機」)が、30年にわたってまったく進歩していないと指摘する増井氏の真意とは? 『

    「みんなジョブズに騙されている」増井俊之教授が進歩の止まったコンピュータのUIを問い直す【TechLIONレポ】 - エンジニアtype | 転職type
  • 『ルールズ・オブ・プログラミング』を読んだ #iknowtherulesjp - Don't Repeat Yourself

    Ghost of Tsushimaなどを作った会社の人が書いたです。ゲーム開発におけるコードを書く際の教訓を整理し、改めて示し直したいい一冊だったと思います。大事なことですが、著者は決して「このルールを絶対使え」と言っているのではなくて、そもそもまず会社の製品の特性上、このようなルールを敷いておくと品質や生産性を高く保てたという前提があり、その前提を元に「ルールを選び取って自分たちのコーディング哲学を構築しよう」と推奨しています。 ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール 作者:Chris Zimmermanオーム社Amazon この手のでは『リーダブルコード』がよく薦められる傾向にあると思います。私にとってもリーダブルコードは確かに駆け出しの頃すごく役に立った記憶はあるのですが(もう10年くらい前に読んだので正直忘れた)、そこから知識がアップデートされ

    『ルールズ・オブ・プログラミング』を読んだ #iknowtherulesjp - Don't Repeat Yourself
  • ジョージ・ルーカス、ハリウッドには「独創的なアイデア」がなくスタジオは想像力を欠いていると発言

    「スター・ウォーズ」の生みの親であるジョージ・ルーカスは、1977年に伝説的な映画監督としての地位を確立したが、今回、現代の映画の状況やその方向性について自身の意見を明かした。 ルーカスはカンヌ国際映画祭にてBrutの取材に応じ、映画業界について考えを示した。80歳を迎えたルーカスは映画を近くからも遠くからも研究してきた。そのため、10年後に映画はどうなっているかとの質問に対し、多くのことを語っている。 「今と変わらないですね。今起きていることと同じです。おそらく長編映画よりもストリーミングのほうがそう言えるとは思いますが、長編映画でも同じことが言えますね。誰もどうしたらいいのかわかっていないんです」とルーカスは言う。「今語られているストーリーというのは、単に昔の映画です。“続編を作ろう”とか、“この映画の別バージョン作ろう”とかね。それは映画だけに限らず、ほぼすべてにおいて、独創的なアイ

    ジョージ・ルーカス、ハリウッドには「独創的なアイデア」がなくスタジオは想像力を欠いていると発言
  • Prismaのテストでデータ削除を高速化する

    背景 ユビーではNode.jsのアプリケーションにおいて、DBORMにPrismaを採用しています。Prismaに限らず、実際のデータベースを使ったテストにおいてはテストを実行するごとにデータを削除することでテストごとのデータの干渉を防いでテストの安定性を保つという手法が用いられます。今回はPrismaでテスト時にデータ削除するときのパフォーマンス改善の事例について紹介します。 今開発しているアプリケーションでは以下のように、DBを用いるテストを実行する前に全てのテーブルを truncateするという素朴な方法でテストDBの掃除を行っていました。 import { Prisma, PrismaClient } from "@prisma/client"; const prisma = new PrismaClient(); export async function cleanupDat

    Prismaのテストでデータ削除を高速化する
  • NestJSの構造化ロガーを公開しました

    先日以下の記事で書いたNestJSの構造化ロガーを汎用的に使えるかたちにして npm に公開しました。 使い方は普通のNestJSのカスタムロガーと同じでこんな感じで使います。 async function bootstrap() { const app = await NestFactory.create(AppModule, { bufferLogs: true }); app.useLogger(new StructuredLogger({ logLevel: process.env.LOG_LEVEL, format: process.env.LOG_FORMAT, })); const logger = new Logger("bootstrap"); logger.log("Hello structured log!", { foo: "bar" }); logger.debu

    NestJSの構造化ロガーを公開しました
  • NestJSでCloud Loggingのための構造化ロギング

    以下の記事で書いたように、ユビーではNestJSを利用したモジュラモノリスなシステムの構築を進めています。 その際に得られた知見として今回は構造化ロギングについて紹介します。 やりたいこと まず、実現したいのは以下のようなことです。 ユビーではGCPのCloud Loggingにログを出力しているため、Cloud Loggingに合わせたかたちでログを出力したい Cloud LoggingはJSONによる構造化ログをサポートしている 出力するJSONのフィールドはいくつか特別扱いされるものがある。例えば severity や message など NestJSにおいてこれらに対応したかたちでログを出力したい ローカルでの開発時は見やすいかたちでコンソールに出力したい ロガーはNestJS標準のロガーを使いたい(ただしロガーの実装はカスタムロガーにしてもよい) 例えば以下のような出力になりま

    NestJSでCloud Loggingのための構造化ロギング
  • Prismaが返すオブジェクトに機能をつけたい!

    Prismaが返すオブジェクト RubyRailsばかり書いてきたぼくも、ここ最近はTypeScriptばかり書いています。 今開発しているサービスはNestJSを使っているのですが、DBのデータを取得するのにPrismaを使っています。 Prismaでは以下のようにしてデータを取得できますよね。 const user = await prisma.user.findUnique({ where: { id: userId } }); console.dir(user)

    Prismaが返すオブジェクトに機能をつけたい!
  • PostgreSQLのsqldefによるDBスキーマ管理で遊んだ。 - じゃあ、おうちで学べる

    はじめに この記事では、データベーススキーママイグレーションツールであるsqldefで遊んだので使用方法とその特徴について解説します。sqldefはRidgepoleに触発されて開発されたツールで、データベースのスキーマ変更を容易に行えるように設計されています。 github.com 1. sqldefとは sqldefは「The easiest idempotent MySQL/PostgreSQL/SQLite3/SQL Server schema management by SQL」と謳われるDBスキーマ変更管理ツールです。GitHub上で公開されており(sqldef GitHubリポジトリ)、MySQL、PostgreSQLSQLite3、SQL Serverに対応しています。このツールを使用することで、CREATE TABLE文を書くだけで対象テーブルの比較とALTER TAB

    PostgreSQLのsqldefによるDBスキーマ管理で遊んだ。 - じゃあ、おうちで学べる