Github APIを使ってissueを取得する

こんにちは、最近ノコギリで自分の指をギコギコしたHaraShoです。 (皆さま、刃物の取り扱いには十分お気をつけ下さい。。) 最近、プロジェクト管理ツールとして導入されたAsanaにGithubのissueを移そうと思い、Github APIを使ったときの内容です。 Asanaに…

migrationファイルの「change」と「up、down」

こんにちは! 4月に入社した新人エンジニアのodaです。 Ruby on Railsを使ってアプリケーション開発をされている方は、マイグレーション機能を使ってテーブル定義に変更を加えているかと思います。 私自身、個人でRailsアプリを作成しているときは、もちろん…

【SQL】NOT EXISTS で最新(MAX)の値を取得する

こんにちは。ryohei515です。 例えば履歴を蓄積するようなテーブルがあるとき、顧客毎の履歴の最新値を取りたいことがあると思います。 私はありました。その時、最新値を NOT EXISTS で取得するようにしたことで、パフォーマンスを改善できたので、残してお…

Ruby の proc や lambda でキーワード引数を使う方法

どうも、記憶力皆無の @shutooike です。 Ruby の proc や lambda でキーワード引数(keyword arguments)を使う方法いつも忘れるので未来の自分に向けて記事にします。 proc # キーワード引数 proc = Proc.new { |species:, name:| puts "吾輩は#{species}…

0埋めされていない数字文字列をソートしたい

どうも、にしむらです。今回はRails5.2 PostgreSQLの話です。 messages テーブル に 文字型 str_id に数字が0埋めなしで保存されている場合は以下のようにソートされます。 select * from messages order by str_id; id | str_id ----+------- 50 | 1000 47 …

マルチプロセス+マルチスレッド同居の闇を試す!

こんにちは、masm11 です。 スレッドは皆さんご存知のことと思います。 並列処理をしたい場合によく使っていると思います。 プロセスの方があまり知られていないのかも知れません。 スレッドより昔からあるのですが…。 一つ以上のスレッドとメモリ空間等のリ…

Alfred 4で特定のアプリだけが検索できなくなったときの対処法

こんにちは。 最近、M1 Mac に移行した @ishiyu です。 最近、M1 Mac 移行しました。 その際、なぜか Alfred でアプリケーションの検索結果が表示されなくなりました。 移行時は Dropbox で同期した設定ファイルを読み込んでいただけに、原因がまったく想像…

(もう去年の話だけど) Ruby 開発さんと一緒に勉強会しました

id:kizashi1122 です。 すいません。12月の話になります。 もう4ヶ月前の話ですが、弊社の開発パートナーである「Ruby開発」さんの開発メンバー3名の方に大阪本社にお越しいただきました。 普段はリモートで仕事をしていますが、このときは一緒にフェイス・…

HackerRankをはじめよう!

こんにちは、ksr_cyclです。皆さんはデータ構造とアルゴリズムは好きですか? 私は普通です。好きになれるようにHackerRankで勉強をします。 HackerRankとは HackerRank 多くのプログラミング問題に挑戦出来るサービスです。 また、スタートアップアクセラレ…

FreeType を使って文字を描画する

こんにちは、masm11 です。 テキストエディタで1~2行めに以下のように書きます。 あいうえおかきくけこさしすせとたちつてと abcdefghijklmnopqrstuvwxyzabcdefghijklmn お使いのエディタにコピペしてみてください。 文字幅がきっちり 全角:半角=2:1 になっ…

【ノンデザイナー向け】カッコイイデザインの資料を作る3つのコツ

こんにちわ!株式会社インゲージに2021年12月からデザイナーとして参画した水谷です。 私の方では主にデザインについて、様々な方に向けたTipsとなるような記事を書いていこうと考えております。 さて、今回のテーマはカッコイイ資料を作るコツとなります。 …

json の中に含まれる json 文字列を jq で見やすくする

id:kizashi1122 です。 今日はさらっと Tips を。 aws の ecr のライフサイクルポリシーをコマンドでみたいなと思ったときはこうすると思います。 aws ecr get-lifecycle-policy --repository-name <reponame> すると json で返ってきます。これを jq でフォーマットす</reponame>…

TCP Fast Open を知る

こんにちは、C とインフラの話が多い masm11 です。 今回もインフラです。 「TCP Fast Open」をご存知でしょうか? 私は知りませんでした。 今回、この機能のせいでインターネットにつながらなくなってしまったので、 ご紹介します… 背景 世の中 HTTP でなく…

Linux を Time Machine サーバにする

こんにちは、masm11 です。 最近 MacBook Air を購入しました。 新しいコンピュータを買ったら、後回しではあるものの、バックアップの設定をします。 Mac でバックアップと言えば Time Machine ですね。 しかし、新たに Time Machine サーバを買う気はしま…

Ruby のコードを読む! 別スレッドで例外を起こす

こんにちは masm11 です。 以前の記事で Timeout.timeout のコードを読みました。 記事はこちらです。 blog.ingage.jp 新たなスレッドを起動し、時間になったら元のスレッドで 例外を発生させているらしい、ということは解りました。 しかし、それだけでは s…

Linux 生コンソールで日本語を表示する

こんにちは、masm11 です。 暇に任せて Linux の生コンソール (window system が動いていない黒背景の画面を私は勝手にこう呼んでいます。window system が動いていようが、コンソールはコンソールなので…) に日本語を表示する設定をしたので、今回はそれを…

iPhone充電スタンドをMagSafe化してみた、けれど

こんにちは。Tedです。 iPhone 12から採用になったMagSafeが気になっていました。 でも私のiPhoneは11。MagSafeに対応していません。 なのでQi充電器を使う際に、あの「ピタッ」とできるのはいいなあと思っていました。 iPhone 13を購入 今回、iPhone 13を購…

systemd で zfs legacy mount の問題を解決する

こんにちは、masm11 です。 ZFS に関連した mount で苦労したのでご紹介したいと思います。 ZFS の mountpoint 設定とは ZFS は自前で mountpoint を管理しています。 zfs set mountpoint=/home/service zroot/svc などとして mountpoint を設定しておくと、…

Ruby の Timeout.timeout の実装を読む

こんにちは、masm11 です。 Ruby の Timeout モジュールは便利で、 gs = TCPServer.open(0) Timeout.timeout(5) do gs.accept end このように自由にタイムアウトを設定できます。 今回はこの実装について見ていきたいと思います。 実装を見る Ruby のバージ…

ESLint の no-multi-spaces で TypeScript のType 宣言の空白を許容させる

ESLint の no-multi-spaces で TypeScript のType 宣言の空白を許容させる

コマンドラインが変な状態になったら

こんにちは、masm11 です。 今回は小技を一つ紹介したいと思います。 症状 コマンドラインがこんな状態に陥って、端末を閉じるしかなかった経験、ありませんか? ctrl+p や ctrl+h が効かない Enter が効かない (押しても ^M と表示される) プロンプトが左端…

N+1問題について勉強会で発表してみた

ryohei515です。 Ruby on Railsを使う上で、N+1問題は避けては通れない問題です。 インゲージでは週に1度、社内勉強会を行っているのですが、今週は私が発表担当だったため、このN+1問題を知識整理がてら、社内勉強会で共有しました。 簡単な内容ではありま…

DockerのBuildKitがヒアドキュメントをサポートしました

Dockerでヒアドキュメントが使えるようになるみたいです。 DockerfileでのRUNコマンドの記述が楽になりそうです。 RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y ... 参考サイト www.docker.com ヒアドキュメントの機能を利用するに…

過去コミットを分割してたら、知らないファイル変更が現れた

はじめに topic-a ブランチで新たに作成した ComponentX を topic-b ブランチでも使いたくなったので、 topic-a からコンポーネントXを作成したコミットだけ cherry-pick して別PRにしたいが、 コンポーネントXを作成したコミットには他の変更(コンポーネン…

ChatOps: SlackからLambdaに連携してみる(5)

id:kizashi1122 です いよいよ大詰めです。 Lambda の中で「Slack に投稿する」ということをします。 今回は Ruby を使っています。Ruby だと以下の gem を使いたくなります。 github.com Lambda で gem を使うってどうするんでしょうか。 今回はこちらのや…

PostgreSQLでパフォーマンスを比較してみた (EXISTSとINNER JOIN)

はじめまして。5月に入社したryohei515です。 前職ではOracleを使ってSQLを書く機会がよくあり、パフォーマンスチューニング等も行ってきました。 インゲージに入社してからSQLを書く機会があったのですが、DBがPostgreSQLであるため、これまで使っていた細…

Docker for Macのディスクイメージ容量を救いたい

Docker for MacのDisk image sizeの残容量が少なくなるとパフォーマンスが低下するようです。 そのために不要なイメージやコンテナなどを一括で削除するコマンドがあります。 docker for mac

QUIC を試してみた

こんにちは masm11 です。 QUIC の RFC が出ましたね。 https://datatracker.ietf.org/doc/html/rfc9000 5月なので2ヶ月も前ですが… というわけで、今回は遅ればせながら QUIC を試してみたいと思います。 nginx を設定 まず、nginx を QUIC 対応版にします…

ChatOps: SlackからLambdaに連携してみる(4)

id:kizashi1122 です。 ひとまず Slack から Lambda を呼び出すところまでは終わりました。 (といってもURL確認用のリクエストを受け取っただけです) ワークスペースにアプリをインストールする まだコードは何も書いてないですが、Slack から使ってみたい…

ChatOps: SlackからLambdaに連携してみる(3)

id:kizashi1122 です。 前回のエントリで発行した API Gatewayの URL をメモしておきます。 では Slack にアプリの設定をしましょう。 Slack 上でアプリを作る こちらにアクセスします。 Slack API: Applications | Slack 基本設定 Create New App ボタンを…