転職メールの管理をBardにやらせたら楽になるのではと試行錯誤したやつ

ここのとこあまり役に立たなそうな事ばかり書いていたので変わった内容を書いてみました 転職を検討した際にいろんなサイトから"スカウト"や"気になる"などのメールが来るかと思います。正直をそれらを整理するのが面倒だし、確認も大変だなと思うことが多々あります。 そこでGmailを使ってるならBradを使って楽にならないのかと考えました 今回は"Green"という転職サイトを使ってみました。まずはこんな感じ なるほど、ここで表示されてるのは"スカウト"をいただいた企業様一覧ですね。 この一覧はスプレッドシートで見れるので作成してもらったらこんな感じ おお!これを使えばだいぶ管理がしやすくなるのでは! “スカウト"もありますが、“気になる"という機能もあるみたいでこちらは件数がかなり多いです。 おや?想定よりもかなり少ない件数になりました。 少し趣向を変えて質問してみようと思います。メールの文面で該当するものを抽出してもらいます。 確かにでましたが、やはり全部は出てこないみたいです。Gmailにはタブ別に分けられていたりするのでタブを指定してみました。 何をもって可能性が高いと言ってるかは不明ですが、200件以上あることはわかりました。 ただ、この表には200件も入ってなかったので入るよう指示を出します。 途中で切れてしまいました。そもそも1つの表にまとめてほしいのでそう指示を出してみます。 いやいや、まさかの手動でやれと!?面倒だから頼んでるのに!?ちょっと苛だったので命令口調に おお!これで確認が楽になるのか!数時間かかってもいいからやってくれるのであれば有難い!ということで必要な情報を渡しました。 これで出来たらウキウキだ!楽しみ!と思って待ってました。とはいえせっかちなので数十分後にきいてみました。 まあ、しょうがない件数も多かったから時間はかかるよねと。数時間後… いや、まだやってすらなかったのかい!ということで作業を開始するよう指示を出しました。数時間後… まとめる作業が大変みたいです。1.5Gってそんなにデータ量あるの!?と思いましたが辛抱強く待つことにしました。2日後… キターーーーーー!終わった!長かった!途中何回か聞きましたが、同じ回答だったので割愛しました。よし、このURLで確認できればこのやりとりももう終わり! はあ?ナニコレ?できてないじゃん。それとも出来たけど消したりでもした?Bardに呆れた私はこれ以降使うことをやめました。 とはいえ、誰かとのやり取りぐらいだったら簡単にまとめられそうなので忘れがちな人にはいいかもしれないです。 ただ、Chat-GPTでも個人情報の流出があったりしたので、Bardのような色んなGoogleアプリの連携ができるとより流出の可能性があるのでは?と気にしてたりします。 AIは便利ですが、万能ではなくリスクもあるので気を付けつつ、楽な暮らしを目指していきたいですね!ではまた次回の記事で

2023年12月27日

GitHubに今更創作物を登録してみました

転職をする際、エンジニアの場合自身で何か作ったものがあれば提出することがあると思います。また、転職サイトによってはGitを登録することもあると思います。 私は仕事に必要な時にその場で覚えるタイプなのですが、たまに興味があるものがあってそれを作ってみたいということがちょくちょくありました。ただ、最後まで作りきったことは少ないのですが… こちらから見ることはできると思います。publicなので誰でも見れます。仕事では基本privateですが、特に利益に繋がったり特別な制作物でなければpublicでもいい気がします。何が利益に繋がるかはわかりませんが… ところで、人のGitHubを見たことがほとんどないのですが、一般的にはどのようなものをGitにあげてるんでしょうか?何か面白いものや変わった制作物が上がってたりするんでしょうか? 以前会社で作ったものをGitに上げて転職に使ってた事件がありましたが、会社の制作物はいくら自身が作ったとはいえ問題ですね。私もそうならないよう気を付けつつ、何かしら作り続けたいなとは思います。頑張って最後まで作るよう努力します…

2023年12月20日

GASを使って勤怠管理の提出を忘れないようにしたい!

皆さんは日々の作業の中で提出物などはありますか? 私は月の初めの第1営業日、月の終わりから5営業日前、最終営業日に勤怠の提出があります。忘れがちな私はよく上司から提出していないと言われ、言う側も言われる側もストレスだと思い、Slackに通知が来るようなプログラムを組むことにしました。 連携で使用したアプリは以下の2つになります。 GAS(Google Apps Script) Slack やることは以下の順でやっていきます。 Slackに通知するためのアプリ作成 アプリの作成 通知の設定 ワークスペースへのインストールとURL作成 GASにコードを書いて日時実行の設定を行う コードの作成 実行トリガーの作成 アプリの作成 1つ目ですがまずはSlackのアプリ作成から始めます。こちらからアプリ作成ができます。リンク先に飛んだ後、赤枠の「Create New App」をクリックします。 この画面が出たら赤枠の「From scratch」をクリックします。 この画面が出たらアプリの名前と使用するワークスペースを設定します。仕事で使ってる人はワークスペースが所属している会社名になったりすると思います。設定が完了したら「Create App」をクリックします。 通知の設定 この画面になりますので「OAuth & Permissions」をクリックして、通知の設定をします。 次に、Scopesでアプリに与える権限の設定を行います。「Add an OAuth Scope」をクリックし、「incoming-webhook」を選択します。今回は特定のチャンネル(自身のみ)通知を送る設定なのでこちらを選択します。 ワークスペースへのインストールとURL作成 同じタブで下の方にスクロールするとこの画面が出ますので「install to Workspace」をクリックします。 次に、権限が求められますので投稿先を自身のチャンネルに設定して、「許可する」をクリックします。もし、他の人にも通知をしたい場合は、そのチャンネルに設定してください。 これで通知に必要なURLを設定することができましたので、次はコードの作成に移ります。 コードの作成 2つめのGASに関してはこちらを参考にして作り、コードのきれいさを保つため、Chat-GPTに頼みました。1つ目の設定が終わったらwebhook URLをコード内に貼り付けます。 もし、会社で特定の日が休日であればそこも考慮することができます。私は年末年始辺りの日付を入れてます。“specialHolidays"という変数に日付を入れていただけるとできます。 // Slackに特定の日の通知を送る関数 function documentAlert() { const today = new Date(); // const today = new Date("2023/12/22"); // テスト用: const monthEnd5Date = getLastDateOfMonth(today); const monthEnd1Date = getLastDateOfMonth(today); const monthStartDate = new Date(today.getFullYear(), today.getMonth(), 1); sendNotificationIfDue(today, monthEnd5Date, -5, today+"、5営業日前になりました。見込み版勤怠の提出をお願いします。"); sendNotificationIfDue(today, monthEnd1Date, -1, today+"、最終営業日になりました。確定版勤怠の提出をお願いします。"); sendNotificationIfDue(today, monthStartDate, 1, today+"、第一営業日になりました。自社勤怠と交通費精算の提出をお願いします。"); } // 営業日計算関数 function dayCount(date, offsetDays) { let counter = 1; while (counter <= Math.abs(offsetDays)) { if (!isHoliday_(date)) counter++; if (counter > Math.abs(offsetDays)) break; date.setDate(date.getDate() + Math.sign(offsetDays)); } return date; } // Slackに通知を送る関数 function slackSend(message) { const webhookUrl = "ワークスペースのWebhook URL"; const payload = { "text": message }; const options = { "method": "post", "muteHttpExceptions": true, "contentType": "application/json", "payload": JSON.stringify(payload) }; UrlFetchApp.fetch(webhookUrl, options); } // 休日か否かを判定する関数 function isHoliday_(date) { if (isWeekend(date) || isHolidayEvent(date) || isSpecialHoliday(date)) { return true; } return false; } // 土日判定 function isWeekend(date) { const dayOfWeek = date.getDay(); return dayOfWeek === 0 || dayOfWeek === 6; } // 祝日イベント判定 function isHolidayEvent(date) { const calendarId = "ja.japanese#holiday@group.v.calendar.google.com"; const events = CalendarApp.getCalendarById(calendarId).getEventsForDay(date); return events.length > 0; } // 特定の休日判定 function isSpecialHoliday(date) { const specialHolidays = ["0101", "0102", "0103", "1229", "1230", "1231"]; const formattedDate = Utilities.formatDate(date, "JST", "MMdd"); return specialHolidays.includes(formattedDate); } // 月末最終日を取得する関数 function getLastDateOfMonth(date) { return new Date(date.getFullYear(), date.getMonth() + 1, 0); } // 特定の日に通知を送るためのヘルパー関数 function sendNotificationIfDue(today, baseDate, offsetDays, message) { const targetDate = dayCount(baseDate, offsetDays); if (isSameDay(today, targetDate)) { slackSend(message); } } // 二つの日付が同じ日か判定する関数 function isSameDay(date1, date2) { return date1.getDate() === date2.getDate(); } 実行トリガーの作成 ...

2023年12月3日

GPTsを使って1からGCPを触ってみたよ

昨今OpenAIのCEOが退任したり、復帰したりと騒がせている状況ですが、私はGPTsをうまく使えないか模索していたりします。 そんな中でGPTsを使ってGCPの構築を手伝ってもらいました。まずはGPTsの設定ですね GPTsの設定は簡単でした。「Create a GPT」からオリジナルのGPTを作り、ガイドに従ってどのようなGPTを作りたいのか指示を出します。Configureは無視していいです。ファイルについては業界特有の知識などが必要であれば添付するといいかと思いますが、今回は使いません。 私の場合は、GCPの使い方を知りたかっただけですので特にファイルの添付なども不要です。その後は解答の仕方を聞かれたり、アイコンの見た目やGPTの名前を決めて完了になります。 作った後は簡単でひたすら作ったGPTに質問をします。BigQueryとFirestoreの違いは何か?とかcsvファイルのインポートの仕方はどうしたらいいか?とかLokker StudioとBigQueryを連携してレポートを出す方法を教えて等です。 以下は国のデータから人口動態のcsvファイルを取ってきてインポートしたデータになります。それをグラフで可視化してみました。 このようにGPTsを作って質問すれば、簡単にGCPの構築もできますし、試したいことも出てくると思います。IT系であれば特化したGPTは作りやすいですし、専門的な知識をファイルかURLで与えれば専門分野に特化したGCPもできると思います。また、他人が作成したGCPを使うこともできますので興味があれば調べて触ってみるのもいいと思います。では、よい生成AIライフを~

2023年11月24日

副業でGCPの案件をやりそうなので勉強中です

最近、友人から副業をやらないかというお誘いがありました。とはいえAWSを使ったことはありますが、GCPを使ったことがないのでとりあえず触ってみてほしいとのことでした。 触ってほしいのは以下の3つ firestore BigQuery Looker Studio Firestoreの役目としてはスキーマレスで動的なデータ構造に対応、スケーラビリティに優れ、リアルタイムのデータ処理に適しています。 BigQueryの役目としては複雑なデータ構造に対応、大規模かつ高速処理に特化し、大量で複雑な分析に向いています。 Looker StudioはBIツールとして使われ、BigQuery内のデータを可視化でき、ダッシュボードを作成し、ユーザーに理解しやすい形で表示できるツールになります。 ちなみにBigQueryにはデフォルトでオープンデータがあるのでデータ収集やインポートの必要はなさそうです。実務作業ではインポートの必要性もありそうですが、今は使えるようになるのが目標なのでこれで十分だと思います。 BigQueryでクエリを作成し、作られたデータをLooker Studioで表示するまではできそうなのですが、Firestoreのリアルタイムでデータは株や道路情報などがありますが、扱うのはもう少し先になりそうです。 副業案件までどこまで触れるかわかりませんが、自身のできることを増やし、その中で得意なこと、掛け合わせたもので専門性を高めて、来たるAI&1億人未満の日本社会に備えられたらなーとは思います。

2023年11月19日

parquetファイルの中身はVSCODEの拡張機能 Data Wranglerで見れる!

parquetファイルについて parquetファイルは非常に優秀なファイルだと思います。 pythonでデータを扱う場合、小規模のデータであればcsvファイルが使われがちですが、私の現場ではparquetファイルが使われています。 parquetのメリット メリットとしては データが圧縮されるため、ストレージの節約になる ファイルを読み込む際、型の指定をしなくても自動で読み込んでくれる データを列で読み込むと高速で読み込める parquetのデメリット デメリットとしては ファイルを手軽に扱えない(テキストファイルで開いたり、書き換えたり) 個人的にはこのように感じています。 Data Wranglerについて これがData Wrangler(ラングラー)を使えば手軽に見ることができます!ただし、書き換えたりはできないですが…。 しかも導入手順も簡単! 拡張機能からData Wranglerをインストール 対象のファイルを右クリック > Opne in Data Wranglerをクリック pythonやjupyter notebookのカーネルに接続する 必要なライブラリが足らなければインストールを行う こうすることで以下のような画面でparquetファイルの中身を見ることができます!(画面黒いと目にいいよね) csvファイルも同じように見れます ちなみに上記のデータはスクレイピングで取ってきた求人情報になります(スクレイピングプログラムはChat-GPTに頼みました)。一応利用規約見てスクレイピングに関する規約はなかったので大丈夫かと思いますが、もしやる際は連続アクセスにならないよう2,3秒時間を空けることを勧めます。 データ操作について 上のカラム名の場所に欠損の数やユニークな値の数、数値であればヒストグラムの分布などが描かれたりします また左の操作でカラムの操作や欠損値埋め、文字列変換、グループ化など簡単なデータ変換であればこちらで操作できるうえに、コード化ファイルを出力することもできます! おおまかにデータを見ながら加工をし、そのプログラムを作ってくれる素晴らしい機能をMicrosoftが提供していますのでぜひ活用していきたいですね!

2023年11月7日

E資格の試験勉強を再開し始めました!

私は4月頃にE資格の勉強を始めました。 受験の日付は8月の中旬で受験をするための資格取得期限が7月中旬でした 資格の取得は無事取得できたのですが、残り1か月の期間で合格できる気がしなく2024年2月初旬に受けることを決めました。 で、残り3か月になったのでそろそろ勉強を始めないと頭の悪い私は合格できる気がしないので勉強を再開したという経緯になります。 そもそもE資格とは何ぞやということですが、簡潔に言えば「深層学習の理論を理解し、実装能力や知識を有する認定資格」というものになります。 なのでこの資格を取れば深層学習に関する知識を持ち、プログラムの実装もできるはず… ですが、実際にプログラムの実装をしない人が多いような気もしています。kaggleなどで同時に進めていくとより理解は深まりそうな気もしていますが、そこまでする人もいなさそうです(私含め) 資格はあくまで資格でその先の何をしたいのかが重要なので、転職だったりkaggleで試してみるなど覚えたスキルを活用できる場所を見つけるのが大切ですよね そんなわけでkaggleを触ってみつつ、勉強を進めていきたいなと思うこのころです

2023年10月30日

今更Chat-GPTの有料版に課金してプラグインで遊んでます

最近chat-gptに課金してプラグインで遊ぶことを覚えました(笑) chat-gptがリリースされてもうすぐ1年経とうとしていますが、AIの発展はすごいですね プラグインも1000個近くあるみたいで、全てを把握するのは難しそうですね いずれChromeの拡張機能のように悪意のあるプラグインができたりしそうですが… それはさておき私は以下のプラグインを入れて遊んでます 1.Scraper 2.WebPilot 3.Scholer AI 4.SEO 1はスクレイピングをするときに使ってます。URLに載ってる欲しい情報を書き、そのコードを書いてもらい、後でcolabで実行しています エラーが出ても修正するようお願いしたら修正してもらえるので楽ですね、下の画像のように出してもらってます Chat-gptは2021年の9月ぐらいの情報しかないのですが2を使えば最新の情報も取得できますので、調べ物があるときにはお勧めです。簡単な情報ならChromeでもいいですが、日本であまり流行ってないゲームや海外の情報であれば日本語訳もしてくれます 3はScholoerという論文を掲載しているサイトで載ってる論文を探してくれます。とはいえあまり使いこなせてないのですが… 4はサイトのSEO対策について教えてくれます。これを見て参考になることがあるかと思いますが、私の場合はoutput優先なのであまり使いこなせないかも… こんな感じでプラグインを使いこなすと面白いかと思います。他にも株に関する情報だったり地震やゲーム、経済などももわかりますので是非興味があれば触ってみるといいと思います プログラマーならAPIを使ってプログラムを書いたり、プラグインを作る側にまわったほうがいいんでしょうが、APIを使った開発をやったことがないのでいずれやってみたいですね

2023年10月29日