yulijのブックマーク (1,418)

  • Rubyでrescueしたらグローバルなオブジェクトを破壊してたよって話 - ANDPAD Tech Blog

    こんにちは、ydahです。 2021年の12月から株式会社アンドパッドでソフトウェアエンジニアとしてANDPAD検査の開発に携わっています。 昨年、息子が生まれてから夜更かしすることがなくなり、早朝に起きては軽くジョギングをしてから、OSSプログラミングにいそしむのが朝のルーティンになった今日このごろです。 さて稿では、Rubyの例外処理を眺めていたらrescueがグローバルなオブジェクトを破壊するケースがあったんですよという話と、その対策について話したいと思います。 発生していたケースについて 突然ではありますが以下のコードをご覧ください。 この中にグローバルなオブジェクトを壊してしまうrescueがいます。 # 1 begin raise 'foo' rescue ArgumentError end # 2 begin raise 'foo' rescue => ArgumentEr

    Rubyでrescueしたらグローバルなオブジェクトを破壊してたよって話 - ANDPAD Tech Blog
    yulij
    yulij 2022/08/25
  • 営業日などの規則性と例外を扱うための設計

    解決したい問題 例として、飲店の予約サービスを考える。 予約を受け付けるためには各店舗の営業スケジュールを管理しておいて、営業日の営業時間内のみ予約を受け付けるようにする必要がある。 たとえば、ある店舗は各曜日の営業時間について、以下のように定めているとする。 平日:11:30-22:00 土曜日:11:00-22:00 日曜日:11:00-21:00 定休日:木曜日 これを素朴に設計すると、たとえば以下のような「営業日については営業時間を保持し、定休日についてはレコードがない」というテーブルになるかもしれない。 店舗 曜日 開店時刻 閉店時刻

    営業日などの規則性と例外を扱うための設計
    yulij
    yulij 2022/07/12
  • Maintainer Month: なぜtextlintを作ったか

    今では200以上のルールがある自然言語のLintツールであるtextlintがどのように作られたかを振り返る記事です。 6月はMaintainer MonthというイベントをGitHubが主催しています。 Maintainer Month is a reminder for the ecosystem to support, celebrate, and compensate open source maintainers. – Maintainer Month Maintainer Monthは、オープンソースのメンテナーが集まって情報共有したり、メンテナーを祝ったり、支援したりするイベントです。 メンテナーがどういうサポートを求めているかを知る、負荷が特定の箇所に集中するエコシステムはバランスが悪いのでそれを支援する方法を知るといったことを思い出すのがMaintainer Monthの

    Maintainer Month: なぜtextlintを作ったか
    yulij
    yulij 2022/06/29
  • 死なないために - 宮田昇始のブログ

    Capital was free. Now it’s expensive. タダだった資は今や高価に 資がタダの時代はより多くの資を消費する会社がベストだった 資が高価になった今はこれらの会社はワーストな会社になった 1ドル1ドルが以前よりもより大切になった時、優先順位をどうかえていくのか スタートアップに冬の時代が来た 米国を代表する投資家で SmartHR の株主でもあるセコイア・キャピタルが「Adapting to Endure(耐えるための適応力)」というプレゼンテーションを共有してくれました。最初は投資先限定で非公開だったらしいのですが、メディアに Full Version が漏れたため結局公開することにしたらしいです(笑) コンテキストを説明すると、今は世界的にスタートアップの資金調達環境が「冬の時代」に突入しており、多くのスタートアップが資金調達が進まずコスト削減をし

    死なないために - 宮田昇始のブログ
    yulij
    yulij 2022/06/17
  • リモートワーク主体になったので書籍購入補助をリニューアルした - ANDPAD Tech Blog

    アンドパッドでVPoE をやっている @gessy0129 です。 日は、アンドパッドで行っている書籍購入補助についてリニューアルをしたので、 その概要をお伝えできればと思います。 書籍購入補助とは? O'Reillyとか高いですよね。 でも面白そうないっぱいありますよね。 読みたいですよね。 読みましょう! いっぱい読みましょう! そのための購入代金を負担しますよ! そんな制度です。 リニューアル前の制度概要 購入金額の上限はありません 個人で買って頂き、申請をお願いします 紙媒体の書籍だけ購入可能です 会社資産なので読み終わったら会社に送付して下さい 落書きとかマーカーとかつけないでください リニューアル後の制度概要 購入金額の上限はありません 個人で買って頂き、申請をお願いします 紙媒体の書籍だけでなく、Kindleでも大丈夫です 落書きしても大丈夫です 紙媒体の書籍は読み終え

    リモートワーク主体になったので書籍購入補助をリニューアルした - ANDPAD Tech Blog
    yulij
    yulij 2022/05/31
  • 共同編集を支える技術とライブラリの活用 - ICS MEDIA

    Google Docs』や『Figma』といったリアルタイムな共同編集ツールの恩恵を受けている人は数多くいるでしょう。『Visual Studio Live Share』のようなエンジニアに嬉しいツールも生まれ、今日ではオンライン上でも円滑なコミュニケーションが可能になっています。 これらのツールの基礎にあるのが「共同編集」のテクノロジーです。記事ではこの技術に焦点を当て、その仕組みと主にフロントエンドでの実用例について紹介します。 記事の前半では、リアルタイムな共同編集に用いられる技術やアルゴリズムについて、発展の歴史とあわせて紹介します。解説用のコードにはJavaScriptおよびTypeScriptを使用しますが、フロントエンドエンジニアに限らず共同編集の仕組みについて気になる読者が知識を深めるきっかけとなるはずです。 さらに後半ではフロントエンドの開発者目線で、前半で紹介した技

    共同編集を支える技術とライブラリの活用 - ICS MEDIA
    yulij
    yulij 2022/05/31
  • 自作RDBMSやろうぜ!(Zenn出張版)

    Disclamer 記事は自作DBMSやろうぜ! のページの 22/05/27 JST 22:38 の時点での内容をZenn記事向けに修正して作成したものです 元コンテンツのライセンスについては以下をご参照ください LICENCE 元コンテンツの方は更新が継続されていますので、よろしければそちらもご覧ください この記事の目的 RDBMS(いわゆるリレーショナルデータベース)というものはプログラミング言語の処理系や、OSなどと同様に、世の中で広く使われているソフトウェアであるにも関わらず、いざ自作してみようと思うと日語で記述されている必要な情報・情報源がまとまったサイトやブログ記事がないことに気づきました そこで、叩き台として、筆者および数名のコミッタで開発している自作RDBMSである SamehadaDB が軌道に乗るまでの経験をベースに、自作RDBMSに関する情報をある程度整理して書

    自作RDBMSやろうぜ!(Zenn出張版)
    yulij
    yulij 2022/05/30
  • ソフトウェア設計についてtwada技術顧問と話してみた 〜 A Philosophy of Software Design をベースに 〜 - NTT Communications Engineers' Blog

    はじめに スタンフォード大学の John Ousterhout 教授が執筆された “A Philosophy of Software Design”(以下 APoSD と略す) という書籍をご存じでしょうか? 書籍のタイトルを直訳すると、「ソフトウェア設計の哲学」となります。書籍の内容はまさに、ソフトウェア設計について扱っています。 書籍をベースに、「A Philosophy of Software Design を30分でざっと理解する」というお題で社内ランチ勉強会が開催されました。記事執筆者である岩瀬(@iwashi86)が発表者であり、勉強会資料は以下のとおりです。 スライド P.4 に記載したとおり、書籍は John Ousterhout 教授の意見が強く反映されており、ソフトウェアエンジニアであれば、議論を呼ぶ箇所があります。実際、勉強会の実況Slackでは、「これはどうな

    ソフトウェア設計についてtwada技術顧問と話してみた 〜 A Philosophy of Software Design をベースに 〜 - NTT Communications Engineers' Blog
    yulij
    yulij 2022/05/23
  • 個人開発のサービスをVPSからVercelとCloud Runに移行した話

    最近以下のような記事で個人開発のコストの話をよく見かけて、ちょうど自分も個人サービスをコストカットのためにVPSからほぼ無料なスタックに移行していたので構成とかを書いてみる。 前提としてはこんな感じ。 仲間内で使ってるだけのWebアプリケーション。月イチくらいしか使わない 技術スタックは技術的な実験とか学習を兼ねているので多少オーバースペックになるのはいい お金はなるべくかけたくない 移行前のスタック フロントエンドはNuxt.js、Netlify バックエンドはRailsgRPCenvoyを噛ませてフロントエンドからはgRPC-Webで呼んでる VPS上にバックエンドのアプリケーションとDB(postgres)を動かしてる バックエンドは普通のRailsアプリにしてHerokuにするのが一番楽でお金もかからないんだけど、gRPC-Webを試してみたくて、そうするとproxyが必要にな

    個人開発のサービスをVPSからVercelとCloud Runに移行した話
    yulij
    yulij 2022/05/09
  • Serverspec(をつくった自分)のそれまでとその後

    A method for separating policy definition and behavior control by an intermediate language to achieve optimal server configuration management according to the situation

    Serverspec(をつくった自分)のそれまでとその後
    yulij
    yulij 2022/04/21
  • なぜ我々はsession.cookieを変更しなければならなかったのか - BASEプロダクトチームブログ

    はじめに こんにちは。バックエンドエンジニアの小笠原です。 今回は、2022年2月18日から2022年3月4日にかけて発生していたこちらの障害に対し私達開発チームが実施した、session.cookieで定義しているCookieのkey名を変更するという影響範囲の大きい対応について、実施に至るまでの経緯や対応過程についてご紹介したいと思います。 ショップオーナー向けに掲載していたお知らせの内容 背景 全ては iOS14.5から端末識別子の取得に同意が必要になったことから始まった ことの発端は、iOS14.5以降からIDFA(端末ごとに持つ固有識別子)の取得に端末所有者の許可が必要になったことでした。 この変更は、端末所有者側から見ると情報の活用範囲を自身で管理できることでよりプライバシーに配慮されるようになった良い変更と言えるでしょう。 一方で、広告出稿側から見た場合は拒否をしたユーザーの

    なぜ我々はsession.cookieを変更しなければならなかったのか - BASEプロダクトチームブログ
    yulij
    yulij 2022/04/13
  • ビズリーチ、リクルート、LiB創業CTOを経験したBIZ✕TECHのエキスパートがアンドパッドで仕掛ける「組織戦略」 | ANDPAD_Engineers

    米山 諒(よねやま りょう)さんは、採用や人事、キャリア開発という言葉だけでは表し尽くせない、唯一無二の役割を持つアンドパッドの組織戦略部の部長です。3つの専門分野を持った人材を「トライアングル型人材」と呼びますが、米山さんはビジネスとテクノロジー、マネジメントの知見を併せ持つ希少な「トライアングル型人材」と言えます。 幾多の失敗と成功体験を経て創業者になった米山さんが、その地位をあえて手放し、新天地アンドパッドで何をしようと考えているのか。まずは米山さんの人格形成に影響を与えた出来事から伺いました。 米山 諒 | 開発部 組織戦略責任者 早稲田大学大学院在学中、創業期のビズリーチにインターンとして参加。2011年4月、リクルートに入社し、プロデューサーとして新規事業の立ち上げ、事業運営責任者を務める。フリーランスとして複数社のスタートアップを支援後、株式会社LiBを創業し取締役CTOに

    ビズリーチ、リクルート、LiB創業CTOを経験したBIZ✕TECHのエキスパートがアンドパッドで仕掛ける「組織戦略」 | ANDPAD_Engineers
    yulij
    yulij 2022/04/05
  • RDBのデータモデリング・テーブル設計の際に参考にしている考え方と資料

    はじめに タイトルのとおり、RDBのデータモデリング・テーブル設計を行う際に参考にしている考え方と関連資料をまとめました。 P.S. なんと記事内でいくつか参考として挙げさせてもらっている増田さん・かとじゅんさん・奥野さん・そーだいさんからコメントいただくことができました。 当にありがとうございます。 前提 RDBを採用するのは事実を無駄なく正しく記録するため 正規化、トランザクション、制約とデータ整合性 基的には始めに理想として集合論・リレーショナルモデルに基づいて正規化を考え(論理設計)、パフォーマンスなどの現実問題に対して折り合いをつけていく(物理設計) 制約を最大限利用する cf: ↑P91〜 ↑P.29,41 ↑P56〜 ↑5章 ↑P347~ 情報とデータ データ:単なる事実の値→これを永続化して蓄えるものがRDB 情報:データから生み出される意味や目的のあるもの→RDB

    RDBのデータモデリング・テーブル設計の際に参考にしている考え方と資料
    yulij
    yulij 2022/03/23
  • ANDPAD TECH TALK 第11回 - 開発チームの生産性向上に取り組むスペシャリスト対談!後編 可視化ツールを導入してみて分かったこと、そして今後の展望 - ANDPAD Tech Blog

    こんにちは!アンドパッドの荒瀧です。 「ANDPAD TECH TALK」第11回の配信です! 今回は、社外ゲストをお招きしたスペシャリト対談回となっており、前編・後編と2回に渡ってお届けします! 関連エピソード tech.andpad.co.jp 出演 モデレーター: 荒瀧 (EMエンジニア採用マネージャー) 社内ゲスト: 柴﨑(テックリード) 社外スペシャルゲスト: 近藤宇智朗さん(GMOペパボ株式会社 シニア・プリンシパル) ハイライト 第11回は、社外ゲストをお招きした対談形式のスペシャル回です! 「開発チームの生産性向上に取り組むスペシャリスト対談!」と題して、 アンドパッドからはテックリードの柴﨑(id:shiba_yu36)、GMOペパボさんからはシニア・プリンシパルの近藤さん(id:udzura)をお呼びして開発チームの生産性向上について語り尽くしていただきました。

    ANDPAD TECH TALK 第11回 - 開発チームの生産性向上に取り組むスペシャリスト対談!後編 可視化ツールを導入してみて分かったこと、そして今後の展望 - ANDPAD Tech Blog
    yulij
    yulij 2022/03/08
  • データ管理に役立つメタデータに関する勉強会を社内外で開催しました - MonotaRO Tech Blog

    こんにちは、データ基盤グループの吉田(id:syou6162)です。先日、モノタロウ社内で「データ管理に役立つメタデータ」に関する勉強会を開催しました。BigQueryのINFORMATION_SCHEMAを中心とした実例を豊富に盛り込んだ内容について話したのですが、社内に限らず有用な内容であると思うので、広く公開します。 開催に至った背景 モノタロウ社内では広くデータ活用が進んでおり、GCPプロジェクトは数百以上運用され、その中の多くのプロジェクトでBigQueryも使われています。社内に広く提供するDWHやセキュリティなど全社的なデータ基盤に関することはデータ基盤グループが運用/管理を行なっていますが、社内のGCPプロジェクト全てのデータ管理にデータ基盤グループが深く関わっていくのは工数的に困難です*1。 INFORMATION_SCHEMAなどデータ管理に役に立つメタデータのノウハ

    データ管理に役立つメタデータに関する勉強会を社内外で開催しました - MonotaRO Tech Blog
    yulij
    yulij 2022/03/04
  • Gormにおける「仕様通り」なSQLインジェクションの恐れのある実装についての注意喚起 - ANDPAD Tech Blog

    ANDPADボードチームの原田(tomtwinkle)です。 Node.jsの mysqljs/mysql の仕様に起因するSQLインジェクションが話題に上がっていたので、それGolangORMであるGormでも同じような「仕様」があるよ! という注意喚起の意味も込めて筆を執りました。 ※ 2022/02/21追記 コードレビューを自動化して指摘してもらう記事を公開しました! tech.andpad.co.jp Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション | 株式会社Flatt Security TL;DR GormのQuery Conditions関数に関する危険な仕様 対策 締め TL;DR GormのConditions関数(Find, First, Delete...)を使用する際、第2引数の値にStringを引き渡

    Gormにおける「仕様通り」なSQLインジェクションの恐れのある実装についての注意喚起 - ANDPAD Tech Blog
    yulij
    yulij 2022/02/18
  • テスト駆動開発(TDD)のゴール「動作するきれいなコード」について考えてみる - やっとむでぽん

    「偉大な書籍は偉大な出だしで始まる。ケント・ベック著『テスト駆動開発』(2003, 2017)はこう始まります。 「動作するきれいなコード」。Ron Jeffriesのこの簡潔な言葉が、テスト駆動開発(TDD)のゴールだ。 」 テスト駆動開発エバンジェリストとして活躍している、和田卓人さん(t_wada)の講演より引用 セミナー講師やアジャイルコーチの立場で、私もTDDを教えることがよくあります。そんなときはこの言葉を意識しつつ、TDDはあくまでスキル、手法のひとつに過ぎず、当に求めるべきは動作するきれいなコードなのだと、伝えるようにしています。そのことを説明する補助として、こんな図を作りました。 絵を描いてみて気づいたのですが、「動作する(Works)」には2つの側面があります。書いたコードが、書いたつもりの通りに動くこと(Verification)と、期待に応えて働き実際に役立つこと

    テスト駆動開発(TDD)のゴール「動作するきれいなコード」について考えてみる - やっとむでぽん
    yulij
    yulij 2022/02/16
  • 技術を的に当てる技術について - GraphQL を入れ直した話 / 吉祥寺.pm28

    吉祥寺.pm28 でお話ししました https://kichijojipm.connpass.com/event/236031/ 追記:Podcast で解説した https://anchor.fm/wantedly-dev/episodes/--GraphQL--w-Altech-e1edkrv

    技術を的に当てる技術について - GraphQL を入れ直した話 / 吉祥寺.pm28
    yulij
    yulij 2022/01/28
  • Findy Teamsの指標を使ってチームの生産性を改善しよう - ANDPAD Tech Blog

    株式会社アンドパッドのアカウント基盤チームで認証基盤に関するエンジニアリングをしているid:shiba_yu36です。最近はチームのテックリードロールも担っています。 現在アンドパッドではFindy Teamsを導入し*1、生産性の可視化を行っています。自分は生産性向上のためのチーム改善に興味が強いため、2021/10に入社してからアカウント基盤チームのFindy Teams指標を観察し、チームのボトルネックを見極め、チームの生産性改善をしてきました。結果として、Findy Teamsの平均プルリク クローズ時間の指標が、チームに入った2021/10当時は120時間だったのが、現在は23時間ほどまで改善しました。今回はその様子について書きたいと思います。チーム改善の流れの一例として、参考にしてもらえればと思います。 チーム改善の全体的な流れ Findy Teamsで定量的にチームの生産性を

    Findy Teamsの指標を使ってチームの生産性を改善しよう - ANDPAD Tech Blog
    yulij
    yulij 2022/01/06
  • よくあるオンプレOracleからRDSに移行したDBAの反省文 - ASMのきもち

    この記事は JPOUG Advent Calendar 2021 - Adventar 17日目の記事です。 昨日はShinodaさんの「Oracle Database から PostgreSQL への接続を試す - Qiita」でしたね。 いやーOracle Database Gateway for ODBC全然使ったことがなかったので、これはぜひやってみよ…あれ、RDSでできるの?明日AWSサポートに早速連絡してみよう… 最近ブログを書く頻度がアドベントカレンダー以外書く頻度がない感じになってきております…コレハ、マズイ、ゾ!!笑 さて弱気な内容はおいておいて…ここ最近、ろくに活動もできなかったのはこれをやっていたからなのです。 そうよくある、(꜆꜄•ω•)꜆꜄꜆オンプレOracleからRDSに移行した話。 今更感あるのですが、私と同じミスを減らすきっかけになれば。と思い、書いてみます

    よくあるオンプレOracleからRDSに移行したDBAの反省文 - ASMのきもち
    yulij
    yulij 2021/12/17