production.log

株式会社リブセンスでエンジニアをやっている星直史のブログです。

転職ドラフトで11年ぶりの転職が決まりました - 転職ドラフト体験記 -

先日退職エントリを書いたのですが、転職活動は転職ドラフトを中心に動いていました。結果から先に述べると、転職ドラフトを使用することで、多くの企業から指名を受け、希望年収に届き、希望する仕事内容を提示いただいた企業に転職することができました。…

ピクスタ株式会社を退職します

この記事は自分のためにピクスタ株式会社での思い出や転職の経緯を備忘録として書いたものです。

InstagramグラフAPIのプラットフォーム利用規約違反対応をしました

SnapmartアプリではInstagramグラフAPIを使用しているのですが、8月下旬にMeta社より「プラットフォーム違反しているからAPI利用停止するね」とお達しがありました。この記事では、InstagramグラフAPIのプラットフォーム利用規約違反対応内容を紹介していき…

AWS EC2 Ubuntu 14.0.4インスタンスをT2からNitro世代(T3)に移行で「FATAL: Could not load /lib/modules」または「BusyBox」 (カーネルモジュールの欠如)によりステータスチェックが1/2になってしまった時の対応方法

年に一度RI購入のためサーバーの棚卸しをするのですが、その時にT2インスタンスがちらほら...。AWSも最新のファミリータイプを使用することを推奨しているので、ここいらでT3にするぞと対応したらドハマりしました。今回はAWS EC2 Ubuntu 14.0.4インスタンス…

Novathのモニターになり、数学を学ぶ楽しさとAI(機械学習)を扱えるようになりました。

Novathのサービスページにある受講後の到達地点は以下の通りです。「AI(機械学習)の数学的な本質(ロジック)を理解し、人に説明できる」「ビジネスの現場で役に立つ統計手法(重回帰分析、ロジスティック回帰分析、クラスタリング等)をExcelで使いこなせ…

Railsのエラー通知をアプリケーションコードを変更せずに検知と通知をする方法

サービスを運用していると、エラーを検知/通知する仕組みがほしくなります。 少し調べてみると、RailsでエラーをSlackに通知したいのであれば、exception_notificationとslack-notifierの2つのgemを入れるのが多い印象を受けました。一見良さげに見えたので…

令和3年度 中央区内共通買物・食事券 ハッピー買物券 取扱店 一覧

公式の取扱店検索サイトには、取扱店一覧がPDFでしか見れなかったので、自分で一覧ページを作ってみました。 「検索はブラウザのページ内検索で十分」という方向けです。

家庭をスムーズに運営をするための流れとサービスやツールの導入

2020年12月から結婚生活がスタートしました。独身生活においても、QOLを高めるために情報と金の管理はきっちりやってきた自負があります。 しかし、結婚生活となると、家族と連携しながら家庭を運営をしなければなりません。 自分の場合は、情報と金を整理整…

AWS Elasticsearch Service(AES)のシャードの未割り当て(UNASSIGNED)が原因でクラスター状態が黄色になってしまった場合の対応方法

タイトルの通り、ある日突然Amazon Elasticsearch Service(以下AES)のクラスター状態が黄色になってしまいました。 今回はクラスター状態が黄色になった場合の対処方法について、紹介します。原因は、シャードのいくつかが、ノードに割当されなくなってしま…

AWS Elasticsearch Service(AES)のデータノードが消失しStatusがRedになった場合の対応方法

私が運用しているサービスの一つであるSnapmartで障害が発生しました。 原因はAmazon Elasticsearch Service(以下AES)のデータノードが消失しStatusがRedになったためです。 Elasticsearchのデータノードが消失しているので、検索周りで多大な影響が出てしま…

20代のお金の管理について振り返る

お金の管理のリテラシーが非常に高いと自負している。お金の管理は23歳くらいから本気で始めた。 当時誰かに教わった訳でもなく、全て自分で調べあげた記憶がある。 今回は30代に突入した今、20代のお金の管理について振り返る

.bundle/configの内容を公開

.bundle/configの内容を公開

VPCにあるAWS Elasticsearch ServiceのPrivate IPをALBに追加するシェルスクリプト

Snapmartの検索サーバーはAmazon Elasticsearch Service(以下ESS)で運用しているのですが、Kibanaを使ってデータ分析をしたくなりました。ESSはVPC内にあるため、アプリケーションサーバーからElasticsearch APIで検索実行は問題なく行えますが、管理者PCか…

新潟県は月岡温泉 広瀬館ひてんの音に泊まってきました

2日間休みをもらって新潟に行ってきました! 新潟といえば、月岡温泉ですね!!! 月岡温泉といえば、硫黄の含有量が日本2位の温泉ですね!!!((1位は万座温泉)) いつもは、ビジネスホテルに泊まるチープ旅なんですが、ご時世的に諸々割引が使えたので、割…

Managed workflowのExpoアプリに導入するE2Eテストフレームワークの比較と導入

運用しているアプリの規模が大きくなってくると、ちょっとした修正が思わぬところに影響してしまったり、ツールのバージョンアップをする際に組織全体を巻き込んだ大規模な手動テストを行わなければならないことがしばしばあります。 自分が運用しているSnap…

ExpoのMediaLibraryからiOSのHEICファイルをアップロードした場合にリサイズできない問題の解決方法

会社で作っているSnapmartアプリは写真のアップロードがメインのアプリです。 Snapmartにおける写真アップロード処理は、ざっくり以下の手順で処理されます。 1. スマホからS3にアップロード 2. S3にアップロードされた画像ベースにLambdaでサムネイル作成 …

SnapmartアプリにFirebaseAnalyticsを導入しました

SnapmartアプリはReact Native + Expoで動いています。 2019年5月にAndroid版をリリースし、2019年12月にiOS版をリリースしました。 リリース当初は不具合や非機能要件を満たせないことが多かったため、その対応に追われることが多かったのは記憶に新しいで…

Expo SDK v36.0.0で追加されたMediaLibraryのお気に入り写真の読み込みが遅い問題と回避策

React Native 0.61からCameraRollが削除されました。 そのため、Expo SDK v36.0.0以降でExpoマネージドアプリを作成している場合は、MediaLibraryを使用して写真を読み込まなければならなくなりました。 CameraRolleでは、「お気に入り」がアルバムの一つと…

Snapmartアプリで使用しているReact Navigationをv4からv5にアップグレードした際の対応

2020年2月にReact Navigationのv5がリリースされました。Snapmartアプリでは、React Navigation v4を使用しています。 React Navigation v4では、Stack NavigatorにJavaScriptを使用していましたが、ネイティブのような感覚とパフォーマンスが低下する場合が…

SnapmartアプリのExpo SDKのバージョンをv35.0.0からv37.0.0にアップグレードで対応したこと

4月1日にExpo SDK v37.0.0がリリースされました。自分が開発に携わっているSnapmartアプリではExpo SDK v35.0.0を使用していました。 Expo SDK v36.0.0がリリースされた際は、Snapmartアプリにとって、アップグレードを行う強いモチベーションがなかったので…

React Nativeにおいて、WebViewでhtml内のリンクをブラウザアプリで処理をする方法

先日、Expoアプリで使うWebViewはreact-native-communityを使わなければ表示させることができないという記事を書きました、今回もWebViewネタ。 WebViewを使用するときは、大きく2つに分かれます。 1. URLを指定する場合2. HTMLを記述する場合 WebViewはWebV…

Expoアプリで使うWebViewはreact-native-communityを使わなければ表示させることができない

ExpoアプリでWebViewを使用する際、以下のソースコードでは、画面に文字列を出力することができません。今回はExpoアプリで使うWebViewはreact-native-communityを使わなければ表示させることができない問題の解決方法を書きます。

RailsでCSVを生成し、Excelで開く時にハマったこと

管理画面的なシステムで、RailsからCSVを出力し、それをエンドユーザーがExcelで開くようなシュチュエーションで困ったことがありました。 * セル内の日本語が文字化けしてしまう * 0埋め文字を生成しても、Excelで先頭の0が除かれてしまう それぞれ5分ほど…

Rails6で追加されたAction Mailboxをルーティングから消す方法

Rails6導入されたAction Mailboxは受信したメールをコントローラに似たメールボックスにルーティングし、Railsで処理できるようにする機能です。 非常に便利な機能ですし、Railsのプロジェクトを作り始めた直後から使い始めることが可能です。 rails new直後…

React Native Debuggerの長時間使用時のメモリリークを防ぐ方法

React Nativeを使用したアプリの開発時に必要になるものはデバッガーです。デバッガーにはいくつか種類があります。 * Chrome * VSCode * Reactotron * React Native Debugger * console.log((流石にこれだけだとキツいですが)) これらの中で、私はReact Nat…

今日最終出社日を迎えたインターン生の前で泣かずに済んだ

今日は、ピクスタの開発部サポート(開発部の総務的なチーム)のインターン生の最終出社日だった。 そのインターン生は、何の変哲もない大学生であったが、弊社に多大な貢献をし、最終出社を終えた。 今回は、そのインターン生が何故そのような成果が出せたの…

AWS EC2上でReact Native + Expo アプリを動かし、手元のスマホに配信する方法

React Native + Expoを使用すると、エミュレータだけではなく、実機でも手軽にアプリの動作を確認することができます。 ただし、制約もあります。 * 実機への配信は、同一のネットワークからでなければ配信することができない * 配信元はローカルのPCとなる…

Re:スムーズに技術書を入稿するためのチェックポイントと値付けについて

技術書典8は新型コロナウィルスにより中止になりましたが、印刷所への入稿が割引率が最も高い早割で申し込むことはできました。 技術書典の参加は今回で2回目でしたが、1回目で覚えた内容をほぼ忘れていたため、 前回メモ書き程度に残した自分のブログを頼り…

ReactNativeでカメラロールから写真を複数枚選択する処理の実装

自分が作っているプロダクトであるSnapmartは、スマホのアプリから誰でも手軽に写真を売り買いできるサービスです。 スマホアプリでは、カメラロールの中から写真をアップロードをする機能があります。 この写真をアップロードする機能ですが、カメラロール…

rake db:migrateでIndex column size too large.と言われてしまった場合の対応

development環境にMySQLを構築して一からmigrationを実行しようとした時に、Index column size too large.と言われてしまいました。 この記事ではrake db:migrationでIndex column size too large.と言われてしまった場合の対応についてメモ程度にまとめます…