[{"data":1,"prerenderedAt":175},["ShallowReactive",2],{"posts":3,"announcements":114,"home-works":137,"home-services":154,"home-posts":168},[4,15,25,34,42,51,58,65,72,80,87,96,104],{"path":5,"title":6,"description":7,"date":8,"image":9,"tags":10,"categories":13},"/posts/2024-review","2024年を振り返って","2024年の振り返り。りんご農園の受注分析システム開発や戸隠神社への冬の旅など、この一年の出来事をまとめた","2024-12-31T00:00:00.000Z","",[11,12],"振り返り",2024,[14],"日常",{"path":16,"title":17,"description":18,"date":19,"image":9,"tags":20,"categories":23},"/posts/gas-checkrakutenpayemailsandlogdaily","楽天payと楽天キャッシュの入出金を毎日GAS(google app script)で取得してみる","Google Apps ScriptでGmailを自動解析し、楽天Pay・楽天キャッシュの利用履歴をスプレッドシートに毎日記録するスクリプトを作った話","2024-12-11T00:00:00.000Z",[21,22],"Javascript","Google App script",[24],"IT",{"path":26,"title":27,"description":28,"date":29,"image":9,"tags":30,"categories":33},"/posts/notion-to-google-calender-1103","NotionタスクとGoogleカレンダーの同期システムを作る","Notionのタスクの期限日をGoogleカレンダーへ自動同期し、完了タスクは別カレンダーへ移すシステムの実装方法","2024-11-03T00:00:00.000Z",[24,22,31,21,32],"Notion","Google Calender",[24],{"path":35,"title":36,"description":37,"date":29,"image":9,"tags":38,"categories":41},"/posts/try-react-signature-canvas","reactでサイン機能をするためにreact-signature-canvasためしてみた","Reactで手書きサイン機能を実装できるreact-signature-canvasを試し、実装時にハマった点をまとめた",[24,21,39,40],"React","Next.js",[39],{"path":43,"title":44,"description":45,"date":46,"image":9,"tags":47,"categories":50},"/posts/gas-cloud-function-auth","Google App Script から Could Functions を実行するために","Google Apps ScriptからCloud Functionsを呼び出す際のOAuth認証設定を簡易なやり方でまとめたメモ","2024-11-01T00:00:00.000Z",[24,22,48,49],"GCP","Cloud Function",[24],{"path":52,"title":53,"description":54,"date":55,"image":9,"tags":56,"categories":57},"/posts/google-drive-csv-get","google drive csv 取込結合 スプレッドシート書き込み","Google Apps ScriptでGoogle Driveフォルダ内のCSVファイルをまとめて読み込み、スプレッドシートに書き込むコード","2024-08-08T00:00:00.000Z",[48,24],[24],{"path":59,"title":60,"description":61,"date":62,"image":9,"tags":63,"categories":64},"/posts/google-drive-csv-write","google drive csv　 オブジェクトからcsv ファイルがない場合保存","Google Apps Scriptでオブジェクトから生成したCSVを、同名ファイルの重複を避けつつGoogle Driveへ保存するコード","2024-03-06T00:00:00.000Z",[48,24],[24],{"path":66,"title":67,"description":68,"date":69,"image":9,"tags":70,"categories":71},"/posts/js-array-count-max","javascript 配列 同じ要素数カウント、最大出力","JavaScriptで配列内の要素ごとの出現回数を数え、最も多く出現する回数を求めるコードのメモ","2023-11-28T00:00:00.000Z",[24,21],[24],{"path":73,"title":74,"description":75,"date":76,"image":9,"tags":77,"categories":79},"/posts/nuxt-blog","nuxtを使ったblog","@nuxt/contentでカテゴリー・タグ・関連記事・目次機能を備えた自分のブログを作った構成の紹介","2023-06-13T00:00:00.000Z",[24,78],"nuxt",[24],{"path":81,"title":82,"description":83,"date":84,"image":9,"tags":85,"categories":86},"/posts/nuxtlifecyclememo","nuxtライフサイクルmemo","NuxtのasyncData・created・mounted・computed・watchなどライフサイクルの挙動を整理したメモ","2021-11-10T00:00:00.000Z",[24,78],[24],{"path":88,"title":89,"description":90,"date":91,"image":9,"tags":92,"categories":95},"/posts/4621","javascript 年月の差分、日にちの差分","JavaScriptで2つの日付から月の差分・日にちの差分を計算するコードのメモ","2021-04-28T00:00:00.000Z",[93,94],"javascript","memo",[93],{"path":97,"title":98,"description":99,"date":100,"image":9,"tags":101,"categories":103},"/posts/1064","javascript 配列","JavaScriptの配列操作(shift/pop/reduce/filter/every/some/includes等)を使い方付きでまとめたメモ","2021-04-24T00:00:00.000Z",[102,94],"javascprit",[93],{"path":105,"title":106,"description":107,"date":108,"image":9,"tags":109,"categories":113},"/posts/4456","firebase firestore データ取得","FirebaseのFirestoreからコレクション内の全ドキュメントを取得するTypeScriptのサンプルコード","2021-04-20T00:00:00.000Z",[110,111,112],"firebase","firestore","typescript",[110],[115],{"id":116,"title":117,"advertisements":118,"body":119,"date":129,"description":125,"extension":130,"image":118,"meta":131,"navigation":132,"path":133,"seo":134,"stem":135,"__hash__":136},"announcements/announcements/20230628.md","私のお知らせ",null,{"type":120,"value":121,"toc":126},"minimal",[122],[123,124,125],"p",{},"これは私のお知らせの記事です。お知らせの内容をここに書きます。",{"title":9,"searchDepth":127,"depth":127,"links":128},2,[],"2020-06-06T00:00:00.000Z","md",{},true,"/announcements/20230628",{"title":117,"description":125},"announcements/20230628","RJZYNIMmR2xZ4iew58mXvJUJ6HLlezfyp6fByaMX3LQ",[138,144,149],{"path":139,"title":140,"description":141,"category":142,"date":143},"/works/bootcamp-instructor","コーディングブートキャンプ講師","未経験者向けコーディングブートキャンプで講師を担当。実務未経験者にわかりやすい説明を心がけ、Web開発の基礎から実践までを指導。","training","2023-11-01T00:00:00.000Z",{"path":145,"title":146,"description":147,"category":148,"date":143},"/works/quiz-app","クイズアプリと管理画面","ユーザー向けクイズアプリと、そのクイズを管理するための管理画面を開発。管理者だけがアクセス可能な認証機構を実装。","development",{"path":150,"title":151,"description":152,"category":148,"date":153},"/works/calendar-app","カレンダーアプリ","イベントの登録や管理ができるシンプルなカレンダーアプリ。Firebaseで認証とデータベースを管理し、色分けで体調も記録できる個人開発。","2023-07-01T00:00:00.000Z",[155,160,164],{"path":156,"title":157,"description":158,"category":159},"/service/advisory","顧問","中小企業向けAI導入・DX顧問。現役で農家のAI導入を支援。月額プランで継続的に伴走します。","advisory",{"path":161,"title":162,"description":163,"category":148},"/service/development","開発","ERPシステム開発・Webアプリ開発を、要件定義から実装・運用まで一貫して支援します。",{"path":165,"title":166,"description":167,"category":142},"/service/training","講師","コーディングブートキャンプ・企業研修の講師を務めます。実務未経験者にもわかりやすい説明が得意です。",[169,171,173],{"path":5,"title":6,"description":7,"date":8,"image":9,"tags":170},[11,12],{"path":16,"title":17,"description":18,"date":19,"image":9,"tags":172},[21,22],{"path":26,"title":27,"description":28,"date":29,"image":9,"tags":174},[24,22,31,21,32],1788430702349]