並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 19030件

新着順 人気順

catchの検索結果241 - 280 件 / 19030件

  • GitHub - wader/jqjq: jq implementation of jq

    123, .123, 1.23, 1.23e2, 1.23e+2, "abc", true, false, null Scalar literals Unicode codepoint escape "\ud83d\ude03" Handle surrogate pairs \ud800-\udfff, should translate to codepoint. Control code and quote escape "\"\n\r\t\f\b\\\/" "abc \(123)" String interpolation {key: "value"} Object literal {key} {"key"} {$key} {(f): f} {("a","b"): (1,2), c: 2} Multiple key/value outputs {"\("abc")": 123} Key

      GitHub - wader/jqjq: jq implementation of jq
    • What it was like working for GitLab

      February 8, 2024 I joined GitLab in October 2015, and left in December 2021 after working there for a little more than six years. While I previously wrote about leaving GitLab to work on Inko, I never discussed what it was like working for GitLab between 2015 and 2021. There are two reasons for this: I was suffering from burnout, and didn't have the energy to revisit the last six years of my life

      • 拡張機能で Chrome DevTools に独自パネルを追加してトラブルシュートに役立てよう - Techtouch Developers Blog

        こんにちは、カスタマーサクセスエンジニア(CSE)の komo です。 この記事では CSE の主業務の1つにテクニカルサポートがありまして、それを効率化するために作ったツールの話をします。 具体的には Google Chrome 拡張機能で DevTools に独自パネルを追加して、トラブルシュートに有用な情報を表示させるツールです。実物をそのまま紹介はできないため、ひな形を別途作りました。作り方を書くので、同じようなカスタマー系エンジニアの方々に真似してもらって、役立ててもらえると嬉しいです。 ツールの説明 ひな形からの発展形 作り方 ステップ1:最小の拡張機能を作る ステップ2:パネルを追加する ステップ3:パネルに機能を追加する おまけ:動作確認・キャプチャ取得用に作ったHTMLとJSON おわりに 参考資料 ツールの説明 別途作ったひな形はこんなものです。 通信を監視して、特定の

          拡張機能で Chrome DevTools に独自パネルを追加してトラブルシュートに役立てよう - Techtouch Developers Blog
        • ⭐️🎀 JavaScript Visualized: Promises & Async/Await

          If you're already somewhat familiar with promises, here are some shortcuts to save you some precious scrolling time. Introduction When writing JavaScript, we often have to deal with tasks that rely on other tasks! Let's say that we want to get an image, compress it, apply a filter, and save it 📸 The very first thing we need to do, is get the image that we want to edit. A getImage function can tak

            ⭐️🎀 JavaScript Visualized: Promises & Async/Await
          • Chrome 89で音声からリアルタイムに字幕を生成する「自動字幕起こし」機能が追加されたので使ってみた

            2021年3月3日にリリースされたデスクトップ版Google Chrome 89の安定版で、ブラウザ上で再生される音声やムービーからリアルタイムで字幕を生成する「自動字幕起こし」機能が追加されたことが明らかになったので、実際にどんな感じなのか使ってみました。 Google's Live Caption feature rolling out for Chrome desktop users https://www.xda-developers.com/google-chrome-live-caption-feature-rolls-out-transcribe-speech-videos/ Google's Live Caption is now rolling out to Chrome on desktop | Android Central https://www.androidce

              Chrome 89で音声からリアルタイムに字幕を生成する「自動字幕起こし」機能が追加されたので使ってみた
            • GitHub Actions のアクションのつくりかた(JavaScript 編) - 生産性向上ブログ

              help.github.com この記事では、新しくなった GitHub Actions における、JavaScript アクション作成方法について解説します。 www.kaizenprogrammer.com GitHub Actions とはなんぞやという人は、先にこちらの過去記事をどうぞ。 目次 アクションについて アクションの保存場所 アクションのバージョニング 簡単な例 (Hello, World) メタデータ JavaScript アクションの使用する Node.js バージョン toolkit node_modules の管理 README.md 公式テンプレート 少し実践的な例 その他 GitHub 公式のアクション サードパーティーのアクション まとめ アクションについて 前回の記事で新しくなった GitHub Actions の使い方について簡単に解説しました。この記事

                GitHub Actions のアクションのつくりかた(JavaScript 編) - 生産性向上ブログ
              • The 5-hour CDN

                The 5-hour CDN Author Name Kurt Mackey @mrkurt @mrkurt The term “CDN” (“content delivery network”) conjures Google-scale companies managing huge racks of hardware, wrangling hundreds of gigabits per second. But CDNs are just web applications. That’s not how we tend to think of them, but that’s all they are. You can build a functional CDN on an 8-year-old laptop while you’re sitting at a coffee sho

                  The 5-hour CDN
                • Next.js 14

                  As we announced at Next.js Conf, Next.js 14 is our most focused release with: Turbopack: 5,000 tests passing for App & Pages Router 53% faster local server startup 94% faster code updates with Fast Refresh Server Actions (Stable): Progressively enhanced mutations Integrated with caching & revalidating Simple function calls, or works natively with forms Partial Prerendering (Preview): Fast initial

                    Next.js 14
                  • ChatGPTは新しいゲームを作ることができるのか - ABAの日誌

                    ChatGPTはいろんなことができるが、私が興味があるのは、ChatGPTは私のためにアクションミニゲームを作ってくれるのか、ということだ。 コンピュータに自動的にアクションミニゲームを作ってもらうための試みは、だいぶ前にやった。 ChatGPTの登場によって、今度は大規模言語モデルを使うという新しいアプローチが手軽に試せるようになった。モデルに新しいゲームのアイデアを考えてもらい、そのアイデアを実現するソースコードを実装してもらえばゲームの出来上がりだ。 だが、少なくとも現状のChatGPT(今のところ私はGPT-3.5でしか試していないが)では以下の問題があるように思える。 ChatGPTに、実装可能なアルゴリズムのレベルまで詳細化された、新しいゲームのアイデアを考えさせるのは難しい ChatGPTは、今までにない新しいアルゴリズムを、ソースコードとして実装することを不得意としている

                      ChatGPTは新しいゲームを作ることができるのか - ABAの日誌
                    • Building LLM applications for production

                      [Hacker News discussion, LinkedIn discussion, Twitter thread] A question that I’ve been asked a lot recently is how large language models (LLMs) will change machine learning workflows. After working with several companies who are working with LLM applications and personally going down a rabbit hole building my applications, I realized two things: It’s easy to make something cool with LLMs, but ver

                        Building LLM applications for production
                      • TypeScript の型を用いたコンポーネントの責務の明確化 - Timee Product Team Blog

                        はじめまして!フロントエンドエンジニアの樫福 @cashfooooou です。 タイミーでは Next.js × TypeScript で toB 向け管理画面を作成しています。 この記事は、toB向けの管理画面の開発時に筆者が気づいたコンポーネント間の責務の明確化の必要性と、 TypeScript の型を用いて責務の分割をサポートする方法の紹介しています。 背景 利用者の様々なニーズに応えるために、toB向け管理画面には様々なページが実装されています。 2つ以上のページを実装していると、それぞれのページで実装の粒度がバラバラになることがあります。 一方ではフックの中で実装していたようなロジックが、他方ではコンポーネントで実装されている あるページのコンポーネントは複数のファイルに分割しているけど、こちらのページでは巨大な一つのファイルで実装が完結している 属人的な責務の分割が失敗した様子

                          TypeScript の型を用いたコンポーネントの責務の明確化 - Timee Product Team Blog
                        • Making of “Kindolphin” | 麦 Baku

                          group_inou / HAPPENING group_inouとAC部のミュージックビデオ作品『HAPPENING』をWebアプリ化しました。デザインと実装は僕一人です。元のビデオがGIFアニメ縦長漫画が歌詞に合わせて自動スクロールする仕様だったので、GIFの質感をロスレスかつ自分のペースで楽しめるように、某電子書籍アプリのような体裁でインタラクションできるようにした次第です。 We have just released a Webtoon app that highlights the lyrics of group_inou's music video "HAPPENING". You can switch between Japanese/English, change colors, stop and have a close look, or just scratch and

                            Making of “Kindolphin” | 麦 Baku
                          • フロントエンドから Amazon S3 にマルチパートアップロードしたい - カミナシ エンジニアブログ

                            はじめに Presigned URL(*) などで、Amazon S3 へのアップロード処理を実装していると、大きなサイズのファイルをアップロードしようとしたときに、以下のような課題に直面することがあります。 一回のPUT リクエストでアップロードできるサイズの上限が 5GB まで 単一の HTTP リクエストでアップロードするため、大きなサイズをアップロードしようとしたときに問題が起きる。例えば、アップロードの処理の途中で失敗したとき、最初からやり直しになる。 このようなときに活用したいのが、マルチパートアップロードです。マルチパートアップロードとは、その名の通り、アップロード対象のオブジェクトを小分けにしてアップロードする方法です。 AWS の SDK には、マルチパートアップロードが簡単に行えるような API が用意されているものの、多くは、S3 にアップロードを行うことができる I

                              フロントエンドから Amazon S3 にマルチパートアップロードしたい - カミナシ エンジニアブログ
                            • 弁護士ドットコムライブラリーのフロントエンドのアーキテクチャ(Next.js + TypeScript) - パンダのプログラミングブログ

                              弁護士ドットコムライブラリーのフロントエンドのアーキテクチャを紹介します この記事は弁護士ドットコム Advent Calendar 2020、2日目の記事です。2020年12月に執筆された記事です。 私は弁護士ドットコムライブラリーというサービスを開発しています。これは法律書籍をネットで読める弁護士向けのサブスクリプションサービスです。 フロントエンドの採用技術はNext.js + TypeScriptで、要件定義から設計、実装は私が担当し、現在も運用しています。 この記事では、2020年5月にリリースしてから半年間、Next.jsで上記サービスを運用した知見の中から、フロントエンドでのアーキテクチャについてご紹介します。 弁護士ドットコムライブラリーの特徴は以下の通りです。 画面数は10画面ほどの中規模アプリケーション(OOUIの考え方を取り入れたら画面数が減りました) 基本的にバック

                                弁護士ドットコムライブラリーのフロントエンドのアーキテクチャ(Next.js + TypeScript) - パンダのプログラミングブログ
                              • 3Dモデルの配信サーバーでRustとZstandardを採用して数倍のパフォーマンス向上を実現した - pixiv inside

                                はじめに こんにちは、VRoid部所属のエンジニアのyueです。 この度VRoid Hubで3Dモデルの配信サーバーの見直しを行い、技術選定から始めRustとZstandard (zstd)を採用した実装に切り替えました。 結論から見るに従来のNode.js製サーバーと比べて以下のことを実現しました。 最大のレスポンス時間が 1.5 ~ 2.5s から 300 ~ 400msまで低下 平均のレスポンス時間が 700 ~ 800ms から 150 ~ 200msまで低下 サーバーのCPU使用率が ~ 50% から ~ 10%まで低下 docker image のサイズが ~ 346mb から ~ 21mb程度まで削減 配信されるファイルサイズが平均 10 ~ 20% 軽量化されました レスポンス時間 CPU使用量 (上からAVG(MAX), AVG, AVG(MIN)) メモリー使用量に関し

                                  3Dモデルの配信サーバーでRustとZstandardを採用して数倍のパフォーマンス向上を実現した - pixiv inside
                                • How to Set Up a Python Project For Automation and Collaboration

                                  How to Set Up a Python Project For Automation and Collaboration [ engineering production python productivity 🔥 ] · 20 min read As your Python project gets larger in scope, it can become difficult to manage. How can we automate checks (e.g., unit testing, type-checking, linting)? How can we minimise collaboration overhead (e.g., code reviews, consistency)? How can we maximise developer experience

                                    How to Set Up a Python Project For Automation and Collaboration
                                  • Ultimate Guide to Visual Testing with Playwright

                                    As your web app matures, it becomes challenging to ensure your GUI doesn’t break with any given update. There are a lot of browsers and devices, and countless states for every one of your components. Unit tests ensure your code remains consistent, and E2E tests will ensure your system remains consistent, but neither will catch visual anomalies, layout issues, or platform compatibility issues. Ente

                                    • Pysa: An open source static analysis tool to detect and prevent security issues in Python code

                                      Pysa: An open source static analysis tool to detect and prevent security issues in Python code Today, we are sharing details about Pysa, an open source static analysis tool we’ve built to detect and prevent security and privacy issues in Python code. Last year, we shared how we built Zoncolan, a static analysis tool that helps us analyze more than 100 million lines of Hack code and has helped engi

                                        Pysa: An open source static analysis tool to detect and prevent security issues in Python code
                                      • Everything you need to know from ES2016 to ES2019

                                        JavaScript is a language in constant evolution and in the past few years many new features have been added to the ECMAScript specification. This article is an extract of my book Complete Guide to Modern JavaScript and it covers the new additions of ES2016, ES2017, ES2018, ES2019. At the end of the article you will find a link to download a cheatsheet that summarizes everything. Everything new in E

                                          Everything you need to know from ES2016 to ES2019
                                        • Parse, don’t validate

                                          Historically, I’ve struggled to find a concise, simple way to explain what it means to practice type-driven design. Too often, when someone asks me “How did you come up with this approach?” I find I can’t give them a satisfying answer. I know it didn’t just come to me in a vision—I have an iterative design process that doesn’t require plucking the “right” approach out of thin air—yet I haven’t bee

                                          • How Big Tech Runs Tech Projects and the Curious Absence of Scrum

                                            Project management is a topic most people have strong opinions on, and I’m no exception. To answer the question of how different companies run engineering projects, I pulled in help from across the industry. In this issue we’ll cover: Project management approaches across the industry. An overview of a survey with over 100 companies represented, plus key takeaways.Project management at Big Tech. Ho

                                              How Big Tech Runs Tech Projects and the Curious Absence of Scrum
                                            • React v17.0 Release Candidate: No New Features – React Blog

                                              This blog site has been archived. Go to react.dev/blog to see the recent posts. Today, we are publishing the first Release Candidate for React 17. It has been two and a half years since the previous major release of React, which is a long time even by our standards! In this blog post, we will describe the role of this major release, what changes you can expect in it, and how you can try this relea

                                                React v17.0 Release Candidate: No New Features – React Blog
                                              • Perl5.36の変更点 - Mobile Factory Tech Blog

                                                こんにちは、エンジニアの id:mp0liiu です。 少し前の話になりますが、5/28にPerlの最新安定バージョンである5.36がリリースされたので、コミュニティ周りの動向も含めて気になった点についてまとめていこうと思います。 use v5.36 一番影響がある変更は use VERSION の効果が変わったことです。 use v5.34 以前はバージョンチェック、要求されたバージョンで利用可能なすべての機能(featureバンドル)の有効化、strict の有効化を行っていましたが、 use v5.36 からは warnings も有効化されるようになりました。 use v5.36; my $str; say $str; # Use of uninitialized value $str in say at ... 1行だけで strict, warnings, 最新の機能の有効化が

                                                  Perl5.36の変更点 - Mobile Factory Tech Blog
                                                • Google MeetのWebカメラを加工してみよう! - セキュアスカイプラス

                                                  ごにょごにょごにょごにょ… ということでここまで約8時間、快適なオンラインビデオ会議について講義を行ってきましたが、理解できましたか?もうあなた方は立派にGoogle Meeeeetが使えます! というわけで、今日はGoogle Meetを少しだけ快適に使うハックの話をします。CTOの長谷川です。 Google Meetって? Google MeetはZoomやSkype、Teamsなどと同様にインターネット経由で手軽にビデオ会議が行える、Googleによるサービスです。過去にはサービス名が「Google ハングアウト」「Google ハングアウト Meet」だったこともあり、オンラインの記事ではあちこち旧称も混ざったりと表記が揺れてますが、この記事ではGoogle Meetに統一します(Meeeeetではないです)。 Google Meetと他のサービスを比べてみると、以下のような差異が

                                                  • Androidアプリをリアーキテクチャした話 - Mirrativ Tech Blog

                                                    Mirrativ Androidエンジニアのmorizoooです。今回はAndroidアプリをFluxにリアーキテクチャした話をします。 背景 Mirrativは2015年春頃に開発が始まり、もうすぐリリースから6周年を迎えようとしています。以前はアーキテクチャについてのルールが決まっておらず、個々人が思うがままコードを書いており、開発しているメンバーでさえ処理の流れが追えなくなっているような状況でした。そこで、まずは既存のコードの改善を行いました。詳しくは以下の記事をご覧ください。 tech.mirrativ.stream 既存コードを改善した後に、開発の指針としてFluxアーキテクチャを選定しました。 Fluxを選定した理由 状態がどこで更新されているのか分からなくなるという一番の課題が、Flux の導入によって解消できそうだった iOSはFluxで実装していくという話が出ており知見を

                                                      Androidアプリをリアーキテクチャした話 - Mirrativ Tech Blog
                                                    • 負荷試験との向き合い方 - スタディサプリ Product Team Blog

                                                      こんにちは。SRE の近藤(@chaspy)です。 先日、より高い信頼性でサービスを提供するために、スタディサプリ小中高大のサービスの最後の砦であるデータベース、MongoDB のインスタンスクラスのスケールアップを行いました。また、スケールアップをするにあたり、負荷試験を行いました。 本記事では、データベースインスタンスのスケールアップの際に行なった負荷試験に対する考え方と、得た学びを紹介します。 なぜスケールアップするのか サービスの急成長に伴い、アクセス数もデータ量も増加しています。数年前に「しばらくは大丈夫」と判断できるインスタンスクラスにスケールアップをしたデータベースも、高負荷時には性能が劣化してしまう問題に遭遇しました。 私たちの MongoDB は AWS 上に EC2 インスタンスとしてセルフホストしており、MongoDB Cloud Manager を使って運用の一部を

                                                        負荷試験との向き合い方 - スタディサプリ Product Team Blog
                                                      • “Flutter”単体で完結できないモバイルアプリ開発 「Go」のエコシステムでiOS・Androidコードの肥大化は防げる

                                                        Go Conferenceは半年に1回行われるプログラミング言語Goに関するカンファレンスです。永野氏は、クロスプラットフォームなモバイルアプリ開発でのgomobileの活用方法について、サンプルコードを用いて発表をしました。サンプルコードはこちら。 「Flutter」と「Go」を組み合わせようと思ったきっかけ 永野峻輔氏:はじめまして。永野と言います。永野を英語で言うとエターナルフィールドなので、そんなTwitter名でずっと投稿していたんですが、この場で初めて音で聞くと、やっぱり恥ずかしいなっていう気持ちです。よろしくお願いします。 今回は、趣味で触っているFlutterと仕事で触っているGoを組み合わせてみるとおもしろそうじゃないかというところで、発表します。よろしくお願いします。 最初に自己紹介です。私はネットショップ作成サービス「BASE(ベイス)」を運営するBASE株式会社のグ

                                                          “Flutter”単体で完結できないモバイルアプリ開発 「Go」のエコシステムでiOS・Androidコードの肥大化は防げる
                                                        • 何問解ける?Javaクイズ!(全13問) #techtekt Q - techtekt

                                                          みなさまこんにちは。techtekt編集部です。 パーソルキャリアのエンジニアやデータサイエンティストなどが出題する「#techtekt Q」 前回は、TypeScript編をお届けしました。 techtekt.persol-career.co.jp 第2弾は、主に転職サービス「doda」やハイクラス転職サービス「iX」などの開発の主要言語であるJavaに関するクイズをプロダクト開発統括部 佐藤 政美さんからの出題です。 さぁ、あなたは何問解けますか??? 1問目 次のプログラムをコンパイル&実行するとどのような結果になるでしょうか? public class Quiz01 { public static void main(String[] args) { boolean b = true; if (b = false) { System.out.println("A"); } else

                                                            何問解ける?Javaクイズ!(全13問) #techtekt Q - techtekt
                                                          • ブラウザ上のJavaScriptでの非同期処理を、今までどのように実現してきたか 「コールバック地獄」なども乗り越えてきた歴史

                                                            Go、Python、Kotlin、Rust、TypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。JavaScript編では橘氏が登壇。JavaScriptが疑似的な非同期処理をどう実現しているのかと、JavaScriptの非同期処理の歴史について紹介します。 橘氏の自己紹介 橘ゆう氏(以下、橘):よろしくお願いします。風邪でめちゃくちゃ顔が死んでいるので、カメラオフでいきます。橘です。今日は「JSの非同期処理パターン Promise、async/awaitを理解する」というテーマについて話していきたいと思います。 簡単な自己紹介ですが、もともとDeNAにいて事業統合でそのままGOに移り、今は森下さん(森下篤氏)と同じチームで、主にサーバーサイドやMLOp

                                                              ブラウザ上のJavaScriptでの非同期処理を、今までどのように実現してきたか 「コールバック地獄」なども乗り越えてきた歴史
                                                            • The Missing README: A Guide for the New Software Engineerを読んだ

                                                              The Missing README: A Guide for the New Software Engineerを読んだ The Missing READMEという新人ソフトウェアのためのエンジニアガイドの書籍を読んだ感想です。 The Missing README learning.oreillyで読める The Missing README: A Guide for the New Software Engineer 2021年8月10日 に出版された書籍 The Missing READMEはコード、設計、テスト、リファクタリング、例外処理やログ、依存管理、コードレビュー、CI/CD、インシデント対応、コミュニケーションやプロジェクト管理など幅広いことがすっきりとまとまってる感じの書籍です。 全体的に説明に出てくるコードは少なめです。逆を言えば特定のプログラミング言語に依存していな

                                                                The Missing README: A Guide for the New Software Engineerを読んだ
                                                              • Improving how we deploy GitHub

                                                                EngineeringImproving how we deploy GitHubAs GitHub doubled it’s developer head count, tooling that worked for us no longer functioned in the same capacity. We aimed to improve the deployment process for all developers at GitHub and mitigate risk associated with deploying one of the largest developer platforms in the world. Over the last year GitHub has doubled the number of developers contributing

                                                                  Improving how we deploy GitHub
                                                                • React で超絶楽にエラー画面を出せるよ - Qiita

                                                                  こんにちは。ぬこすけです。 皆さんは React でエラー画面を出す時どうしていますか? おそらく、こんな感じで頑張っているんじゃないかと思います。 function MyWidget() { const [isError, setIsError] = useState(false); useEffect(() => { // 何かしらデータを取得する処理 fetchSomething() .then(() => { // データの取得に成功した時の処理 }) .catch(() => { setIsError(true); }) }, []) if (isError) { return <div>エラーです</div> } return <div>正常です</div> } いたって普通のコードです。 が、コンポーネントごとでこのようなエラーのための処理を書いていくのは手間がかかります。

                                                                    React で超絶楽にエラー画面を出せるよ - Qiita
                                                                  • 【考察】細かすぎて伝わらないポケモン剣盾小ネタ集 : 記号論研究所 マンガ・アニメ・ゲーム考察

                                                                    ウィリアム・ブレイクは、千年王国の実現を目指した ランターズ運動に強い影響を受けた人物であり、 神によって未来が決められるとする恩寵論の支持者であります。 ホップがねがいぼしを拾って願いを3回唱えるシーンは このブレイクの詩の世界観のまんまなのです。 未来はすでに俺の手の中にある!でお馴染みのゴウの決め台詞にも、 こうした設定が強く反映されています。 ザシアン・ザマゼンタがダイマックス出来ない理由 前述の通り、ザシアンとザマゼンタの故郷は ムゲンダイナの支配の外、スコットランド(ハイランド)にあり、 アングロサクソンが連れてきた神の恩寵が及びません。 ハイランドは1000年以上前の風景がそのまま残る、 イギリス人の心の故郷とされる場所です。 平地にあったローランドとは異なり、 イングランドとの同化を拒んで独自性を保ち続けました。 ダイマックスはガラル地方の外からやってきた ムゲンダイナがも

                                                                      【考察】細かすぎて伝わらないポケモン剣盾小ネタ集 : 記号論研究所 マンガ・アニメ・ゲーム考察
                                                                    • Blue/Green デプロイを使用した、RDS MySQL/PostgreSQLのアップグレード

                                                                      TL;DR RDS の メジャーバージョンアップグレード を行なった PostgreSQL 11.6 -> 15.5 MySQL 5.7.44 -> 8.0.36 PostgreSQL は AWS CDK を利用した、自前での手動切り替えをベースにした Blue/Green デプロイによるアップグレードを行なった MySQL は AWS コンソールから AWSが提供している機能である RDS Blue/Green Deployments による MySQL のアップグレードを行なった nginx の ngx_http_proxy_module を活用してサービスのダウンタイムを防止した はじめに 初めまして。株式会社ジーニーの GENIEE CHAT開発チームのマネージャーを担当しています。 今回は、データベースのメジャーアップグレードを行った際の手順やポイントなどを書いていこうと思います

                                                                        Blue/Green デプロイを使用した、RDS MySQL/PostgreSQLのアップグレード
                                                                      • Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ

                                                                        こんにちは、バックエンドエンジニアの日下です。 CSV から JSON へ変換するスクリプトを、TypeScript で実装する機会がありました。 今回は、CSV のデータのバリデーションに Zod を使った話をします。 スクリプトの目的 システム間のデータ連携が目的です。 連携元のシステムから CSV 出力されたデータを、連携先のシステムで利用する JSON へ変換します。 また、JSON への変換以外にも以下の要件があります。 CSV のデータをバリデーションする 連携先のシステムで利用できるデータであることを保証するために、バリデーションを実行します。 バリデーション失敗時に、日本語のエラーメッセージを表示する スクリプトの実行は業務担当のエンドユーザーが行うため、日本語のエラーメッセージを表示します。 CSV の読み込み 元データとなる CSV の読み込みは、csv-parse を

                                                                          Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ
                                                                        • GitHub Actions向け自作アクションの作り方|Tably

                                                                          こんにちは。Tably よういちろう(@yoichiro)です。 皆さんは普段GitHubをお使いでしょうか?お使いの方は、GitHub Actionsを使ってCI/CDしていますでしょうか? GitHub Actionsを使うことで、Pull Requestの作成や更新、あるブランチへのマージといったタイミングで、コードのフォーマットを整えたり、テストを走らせたり、本番環境にデプロイしたり、一連の作業が終わったことをチャットに通知したり・・・といったことを自動的に行うことができます。GitHubにはGitHub Marketplaceというアクションが公開されているマーケットプレースがあります。やりたいことがあった時に、一般的なものであればそこで見つけることができるでしょう。 ものすごい数のアクションがMarketplaceにて公開されていますが、たまたま僕が行いたかった動作をしてくれる

                                                                            GitHub Actions向け自作アクションの作り方|Tably
                                                                          • フロントエンドの main() を合成関数として副作用を集約する

                                                                            これは未実装のアイデアを含む記事です。(後述する lint rule が未実装です) 要は EffectSystem を作ろうとしました。 https://www.eff-lang.org/ void に意味を込めたい こういうフロントエンドのコードについて考えてみましょう。 function mount(): void { const div = document.createElement('div'); div.textContent = "hello"; document.body.append(div); } function print(): void { console.log("hello"); } function maybeError(): void { // 低確率で例外が起こる関数 if (Math.random() > 0.999) { throw new Err

                                                                              フロントエンドの main() を合成関数として副作用を集約する
                                                                            • JavaScript初学者が現場で活躍するフロントエンドエンジニアにレビューしていただいた内容【もりけん塾】 - Qiita

                                                                              前置き 私が所属している「もりけん塾」で受けたコードレビューについてまとめていきます。 「もりけん塾」では、先生がマークアップエンジニアからフロントエンドエンジニアになるための課題を作成してくださっており、塾生はその課題を通してJavaScriptの基礎を学んでいきます。 本当に1段1段階段を登っていくように作られており、課題を終える頃にはある程度自走しながらコードが書けるようになります。 私もこの課題に挑戦し、先日課題を終えることができました。だいたい2~3ヶ月くらいかかったと思います。JavaScriptが全然わからない状態から、ここまで書けるようになるとは思っていなかったです。 JS課題はこちら 成果物 👈 README.mdに置いてます。 先を見越したコードを書く編 仕様が増えたときを想定する バリデーションを実装する課題でのレビューです。 名前のバリデーションでは、変数名を n

                                                                                JavaScript初学者が現場で活躍するフロントエンドエンジニアにレビューしていただいた内容【もりけん塾】 - Qiita
                                                                              • 呼び込み君音源カード書き換え機 ソフトウェア編~書き換え成功 - honeylab's blog

                                                                                honeylab.hatenablog.jp honeylab.hatenablog.jp 前回の記事からの続きです。 前回までで、RaspberryPiに接続して音源カードのメモリを読み書きするハードウェアの準備ができました。 これから、そこに書き込むためのメモリのファイルを準備します。 USBメモリや高機能なマイコンを搭載した機器、例えばmp3プレイヤーなどの場合、 Windowsなどで"ファイルシステム"、例えばFATなどでフォーマットし、 ファイル名を持ったファイルがおかれることが多いですが、 このような機器の場合、フラッシュメモリ内の領域に、ファイルシステムのない領域が広がっているだけ、ということが多いです。 初回のところで吸い出しのために構造体を作って確認していましたが、 書き込むとなるとさらにファイル構造の厳密な検定を行う必要があります。 なぜなら、我々はある仕様に従って作成

                                                                                  呼び込み君音源カード書き換え機 ソフトウェア編~書き換え成功 - honeylab's blog
                                                                                • 段階的に理解する O/R マッピング - Qiita

                                                                                  はじめに O/R マッピングとは O/R マッピングとは、一言で言えば、オブジェクト指向プログラミング言語においてリレーショナルデータベースのレコードを通常のオブジェクトとして操作する方法である。より詳細な定義を述べるより、実際のコードを見たほうがわかりやすいだろう。以下に、低レベルの JDBC API の利用例と、高レベルの O/R マッピングフレームワークの代表格である JPA の利用例を挙げる。 public List<Issue> findByProjectId(long projectId) { String query = "select id, title, description from issue where project_id = ?"; try (PreparedStatement ps = connection.prepareStatement(query))

                                                                                    段階的に理解する O/R マッピング - Qiita