movee(モビー) オノデラのブログ

(株)movee代表。週末は自社サービスを作っています。

2024年3月ふりかえり

2月に続き同じプロジェクトだが、方向性が少し変わってデータ分析系や利便性向上になりそう。 現行システムがまだわかってないので、要求定義だったり、追加機能の要件定義がなかなかむずかしい。 子供が大きくなってきてとても力が強くなってきた。つかまり立ちができるようになったので歩けるようになるまでもう一歩。何か話したいようで「あー」や「うー」って言うようになってきた。奥さんのことは追いかけるけど僕のことは追いかけてくれない。

業務で学んだこと

  • OpenBIやLooker Studio、Tableauの違いなど。
  • DBeaverは有料版が存在した
  • 自社しかできないことは何か、をちゃんと定義していきたい。これは社員(今は僕)の経験や考えからしか定義できないと思っている。目先の売上にフォーカスするのか、将来的なブランドを構築するのか、みたいなところにとても悩んでいる。売り上げは大事だが、自社しかできないことに果敢にチャレンジしていきたい。

    業務以外で学んだこと

  • マクドナルドよりもケンタッキーフライドチキン派かもしれない。
  • 子育てしながら勉強している方はとてもすごいなと思った。

    購入した本

できたこと

次月にやっていきたいこと

  • いろんな人に会って行きたい

太宰府梅ヶ枝餅と甘酒のセットが美味しかった

PlantUMLはとても便利で良さげなフリーモデリングツール

PlantUMLは、UML(Unified Modeling Language)図を簡単に作成するためのオープンソースのツールです。UMLは、ソフトウェア開発やシステム設計で使用される標準化されたモデリング言語であり、クラス図、シーケンス図、アクティビティ図など、さまざまな種類の図を含みます。

PlantUMLの最大の特徴は、テキストベースの記述でUML図が描画できることです。 具体的には、ある独自の記法を使ってUMLの要素や関係を記述し、それをPlantUMLが解析して図として描画します。このアプローチにより、手軽にUML図を作成し、コードと一緒にバージョン管理することが容易になります。

DBeaverというクライアントツールについて

ソフトウェア開発に貢献する素敵ツールを紹介します。

今回はDBeaverです。DBeaverはDBクライアントツールでWindowsmacOSLinuxなど、さまざまなオペレーティングシステムで動作します。 また多くのデータベースに対応しており、SQLiteMySQLPostgreSQLOracleMicrosoft SQL ServerIBM DB2、MongoDBなど、さまざまなデータベース管理システムをサポートしています。 そしてインターフェイスが豊富な点も特徴です。 DBeaverには、テーブルやビューの編集、SQLクエリの作成と実行、データのインポートとエクスポート、データベース間のコピーなど、多くの機能が統合されています。 高度なSQL編集機能: SQLクエリの作成や編集において、DBeaverはシンタックスハイライト、自動補完、クエリ履歴、複数の結果セットのサポートなどの機能を提供します。 セキュリティ機能: DBeaverはデータベース接続の暗号化やSSHトンネリングなどのセキュリティ機能を提供し、データベースへのアクセスを保護します。MySQL Workbenchなどは一部脆弱性が報告されているし、DBもMySQLに限られたりしているのですが、DBeaverは基本的にはあらゆるDBをサポートしているので技術に左右されずに使い続けられます。 無料で使えるのでぜひ使ってみてください。

2024年2月ふりかえり

決済系サービスが1月でリリースしたため、2月からは別プロジェクト。 内容はマイグレーション。EOLフレームワークで動いているシステムを主流フレームワークに移行するというなかなかなプロジェクト。まだ発案段階なのでどうなるかわからないが楽しそうな感じはある。 フレームワーク変えるならマルっとバージョンをあげようってことでOSやWebサーバ、APサーバ、なんならDBだって全てバージョンアップを検討する。 基盤を考える業務になりそうです。

業務で学んだこと

UMLを学ぼうと思った。レガシー言語とか、モダン言語とか色々あるけど、ビジネスである以上はそれ以外の売上的な要素を優先している。そんな時に言語特有の書き方とか、特徴を学ぶよりももっと汎用的な技術力を高めたいと思った。そこで共通して大事な能力はシステム設計を考えて説明する能力だと考えたのでUMLをこの機会に学ぼうかなと思っている。 フルリモート生活2年半していたけど終わりを告げた。個人的にはちょくちょく外に出たかったので全然OK。 mResctionDataができた。 HPもいい感じでボリュームが増えてきた。

業務以外で学んだこと

  • 奥さんが離乳食を頑張って作ってくれていてありがたいし、知育にも熱心で嬉しい。
  • 余裕がないと目先の仕事だけ追うようになってしまうので、バランスを考えたい。お金も大事だが将来の投資(勉強とか)も大事。

購入した本

できたこと

  • mResctionDataの細かい設定
  • 自社サイトのConnpass APIの実装など
  • オフラインイベントに参加した

次月にやっていきたいこと

  • いろんな人に会って行きたい
  • データを取得するだけではなく、データを利活用するページを作っていく。

    フォト

redisでよく使うコマンド

redis-cliのコマンドをまとめておく。

redis-cliにアクセス

redis-cli

redisに登録しているデータを全て検索する

keys * ちなみにRDBみたいに内部で昇順ルールはないっぽいです。

keyデータをあいまい検索をする

keys "*test*" keyの中にtestを含んでいる場合のkeyデータを取得する

keyに対応するvalueを取得する

redis-cli get foo fooというキーに対応する値を取得する。あいまいはredis-cli get "foo"`でいけるはず。

現在選択中のDBデータを全て削除する

flushdb

ちなみにflushallは現在選択されているデータベースだけでなく、既存のすべてのデータベースのすべてのキーを削除する。 まだよくわかってないけど、たぶんデータが一定量を超えると自動で別のDBで書き込まれ始めるのではなかろうか。

redisでデータを取得してCSV出力する

redis-cli keys "*test*" | xargs -I {} redis-cli get {} | awk 'BEGIN{OFS=","}{print $0}' >> output.csv

サーバ上でredis-cli keys "*test*"、などとすればわざわざredis-cliする必要はないし、exitする必要もないので良い。

QiitaAPIで自分の関心事を検索して作成日の降順で表示している

自社HPに何かエンジニアの関心事に関する情報を載せたいなと思っていた。というのもエンジニアの関心事ってエンジニアには理解できるけど、非エンジニアからしたら「はて?」というトピックなので関心事に関する技術記事をいくつか見てもらえれば、全体像が見えたりして、「はて?」→「へぇ」にはなってくれるかなという想いから。 で、関心事キーワードを技術記事サービスAPIにポストして関連する記事を取ってくるようにしようとした。

代表的な技術記事サービスといえばQiitaとZenn。Qiita APIは以前に素振りしたことがあったので大丈夫。Zennは非公式のAPIはほんのりあるっぽいがあまり情報がなかったので今回はQiitaだけにした。本当は両方から取得したかったが。 まずカールで試した。API KEYの発行は必要なもののとても簡単に取れた。titleにAPIが含まれる記事を作成日の降順で取ってきている。 curl -H 'Authorization: Bearer xxxxx' 'https://qiita.com/api/v2/items?query=title:'API'&sort=created'

関心事は1つとは限らないのでOR条件で複数のキーワードに対応した。 これでtitleにAPIか、redisが含まれる記事を作成日の降順で取ってこれる。

curl -H 'Authorization: Bearer xxxxx' 'https://qiita.com/api/v2/items?&query=title%3A'API'+OR+title%3A'redis'&sort=created'

curlでデータ取得の確認はできたので実装してみた。APIを呼び出す部分はaxiosですぐに取れるが、手こずったのは、関心事キーワードをいい感じに加工してquery=title%3A'API'+OR+title%3A'redis'にする部分。

以下の様にした。

let interests = profileInfo[key].interest;
const replacedInterests = interests.split(',').map((interestItem) => `title%3A'${interestItem}'`);
const convertedInterests = replacedInterests.join('+OR+');

profileInfo[key].interest;にはAAA,BBB,CCCの様にカンマ区切りで関心事が書いているので、カンマをtitle%3Aに変換して、先頭に追加。+OR+を追加。 雑さはあるがこれでクエリ部分の加工はできた。 で、実際のページがこちら

アクセス数の上限があるため、1時間に1回のペースでAPIを取得して取得したデータはcacheファイルに書いておく。 で、cacheファイルからデータを取得して表示している。 定期的に記事が更新されているので自分自身が記事を読むためにもなかなか良いコンテンツな気がしている。

ただQiitaにあまり投稿してないのでAPI使うのに少し後ろめたさはあるけど、HPからQiitaへ流入が促進できれば良いかなと自己完結している。終わり。

2024年1月ふりかえり

引き続き決済系のサービスを作っている。 新年は護国神社警固神社にお参りに行った。あとは1月7日に七草餅をいただきに再び護国神社に向かった。 年明けということで毎年恒例(とは言え2023年からだが)の十日恵比須に家族3人で行ってきた。10時ごろに到着したが300人ぐらいの行列だったので参拝は諦めて古札回収と新しいお札を買って帰った。 MR時代の友人と7、8年ぶりにご飯。業界は違えど、成長していて刺激を受けた。

業務で学んだこと

  • Redisとは、みたいなこと。自社サービスで使ってみようかなと。
  • Javaで作られたAPIを色々追っていて、ちゃんと読めているので大丈夫。
  • 案件は突然終了するのでちゃんと準備しておくべき
  • Vueなかなか難しいけど勉強になっている。
  • 自分で全てやるのは難しいので外注などしていく

    業務以外で学んだこと

  • 健康が大事

  • 息子の風邪症状が改善してよかった。とてもニコニコ笑うので可愛い。
  • 羽男と石子が面白くて今更ながらNetflixで見ている
  • 息子が泣くと、銀次郎(猫)がクマのぬいぐるみを持って毎度うろちょろしていることに奥さんが気づいた。猫なりに、息子が泣き止むようにあやしている気がする。優しい猫だなぁと思った。

購入した本

先月にばっと読みたい技術書を買ったので今月は技術書以外を買っている。経営や健康の本を購入した。「起業の天才!: 江副浩正 8兆円企業リクルートをつくった男」は当時AWSに近い構想を持っていて先見の明はすごいし、ジェフベソスとの接点も出てきていて面白い。リクルートが創業した当時はバブル真っ只中で後の森ビル社長やセコム創業者などスケールが大きな経営者が登場する。ワクワクしながら読み進めている。

できたこと

  • redisで登録、更新、取得など
  • MRDの一次公開(ベータ版)

次月にやっていきたいこと

  • 今は月末の振り返り記事だけだが、データ利活用系の記事(オープンソースAPI、書籍ログなど)、自社サービス(今はmReactionDataの開発やスペック)を月1回ペースで公開する

フォト

十日恵比須 空いていたのでamamdacotanを初訪問。パン生地がとても美味しい。