タグ

ブックマーク / zenn.dev (47)

  • 結局Githubに学習履歴を統一した方が諸々良かった

    改めて説明する必要もないのですが、や動画サービスによるインプットに関してはマークダウン形式でまとながら行うため、そこまでアウトプットが苦ではありません。 逆に外部サービスを使った資格学習のための問題演習などは少し手間です。 読書や動画サービスのようにマークダウンにまとめながらアウトプットしてもよいのですが、資格系の問題演習は移動時間や隙間時間に利用することも多いので、都度Githubにコミットするのは難しいです。 なんとか作業を自動化したいので以下のような方法を利用するようにしてみました。 学習履歴のデータを取得する 例えばStudyplusではAPIが提供されています。 利用しているサービスによっては、このようにAPIを提供してくれていたりするので、これを利用してデータを取得します。 またサービスの利用規約を確認して、常識的な範囲で自身の学習履歴のデータをスクリプトを組んで取得するのも

    結局Githubに学習履歴を統一した方が諸々良かった
    teruringo
    teruringo 2024/04/21
  • Vercelで配信していた静的ページをVite + Cloudflare Pagesに置き換えた

    カウンターワークスで主にDevOpsなところでお手伝いしている@tchikubaです。ベンチャー企業のTech支援やアジャイルコーチ、エンジニア向け研修など複数社に関わってます。 この記事では、HTMLCSS主体の静的ページをVercelを使って配信していた構成を、Cloudflare Pages(以下Pages)で配信するように変更した話をお届けします。 歴史的経緯 そもそもなんで静的ページをVercelで配信してたん?ってところです。 課題感 もともと、動的なアプリケーションの構成が、フロントエンド = Next.jsVercel)、バックエンド = Ruby on RailsAWS)で、特にバックエンドとのAPI通信を必要としないページもフロントエンド環境に組み込まれていました。 1枚もののLPやよくあるフッター系のページ(ex. プライバシーポリシー)くらいならそのままでも良

    Vercelで配信していた静的ページをVite + Cloudflare Pagesに置き換えた
  • 【初学者向け】具体例で学ぶTypeScript練習問題集

    TypeScript を学習中の方に勧められる練習問題集として手頃なものがないなと思い、作ってみました。 TS の問題集としてはtype-challenges がよく話題に上がりますが、実用上あそこまでの型パズルを使うことはあまりないため、最初に取り組むにはハードルが高いです(もちろん知っていたら便利ではありますが、初学者向けではない)。 想定読者 JavaScript を書くことには慣れている TypeScript はこれから・まだ慣れていない TypeScript の基的な型についてはすでに知っている はじめに JavaScript の機能に関する問題は扱いません。TypeScript の型システムに関する問題のみ扱います。 そもそも TypeScript についてよくわかっていない場合、サバイバル TypeScriptなどで学習から始めてみてください。 「型がつけられると何が嬉しい

    【初学者向け】具体例で学ぶTypeScript練習問題集
    teruringo
    teruringo 2024/02/13
  • あっ、そうだ!モダンCSSをまとめておこう

    2023年もCSSの進化がすごかったですね! その進化を2024年でも生かしていけるように、今回まとめておいていつでも参照できるように記事を書こうと思いました。 お読みいただけると幸いです。 一緒に2024年もスタートダッシュで走り抜けましょう。 まず、はじめに この記事では、最近登場した、エキサイティングで、アクロバティックでファンタジックなインパクトのある機能をピックアップして紹介したいと思います。 CSSの多彩な新機能を広く紹介することで、読者がこれらに触れる機会を持てるように努めています。 特に興味を引く機能があれば、他の媒体を通じて更に詳しく掘り下げることをお勧めします。 コンテナクエリ スタイルクエリ :has()セレクタ :nth-child()の「of S」構文 text-wrap: balance initial-letter ダイナミックビューポート単位 広色域のカラー

    あっ、そうだ!モダンCSSをまとめておこう
    teruringo
    teruringo 2024/01/16
  • あらゆるサービスの解約情報が募る「解約.com」を作りました

    この記事は クソアプリ Advent Calendar 2023 の15日目の記事です。 作ったもの 各サービスの解約情報がまとまっている 解約.com を作りました。 解約.com: https://kai8ku.com 機能紹介 一番上に出ていたDAZNのコンテンツを元に機能紹介です 一覧ページ 一覧ページでは解約の手順が載っている公式リンクが載っています。あと検索もできます。適当に文字を入れると色々引っかかってくれるようになっています(したいです) 詳細ページ(少し下にスクロールしてます) 詳細ページでは情報が増えます 解約方法: 可能な解約方法を載せてます。Web,モバイルアプリ,店舗,電話 などです サービスカテゴリ: どのようなサービスかを載せています。同じサービスでも解約方法を比較できるようにしたいです(WIP) AIによる要約: 公式リンクの情報や後述するユーザーレビューを

    あらゆるサービスの解約情報が募る「解約.com」を作りました
    teruringo
    teruringo 2023/12/17
  • 【TypeScript と友達に】Type Challenges を全問解いたのでエッセンスと推し問題を紹介してみる - 前編

    はじめに 自己紹介 初めまして、@kakekakemiya と申します。 現在は東京大学大学院学際情報学府の修士 1 年で、フロントエンドエンジニアとして活動しています(25 卒の就活生です)。TypeScript × React × Next.js が主戦場ですが、Flutter でモバイルアプリを開発するときもあります。 今回は自分の TypeScript 力の向上のために、合計 170 問あるType Challenges を全問解いたので、Type Challenges における推し問題を紹介しながら、型パズルを解く上でのエッセンスを述べていく記事を書いてみようと思います。 Zenn での初投稿なので、何かと至らない点があるかもしれませんが、よろしくお願いします。 この記事の想定読者 TypeScript の型システムに興味がある方 Type Challenges が気になっている

    【TypeScript と友達に】Type Challenges を全問解いたのでエッセンスと推し問題を紹介してみる - 前編
    teruringo
    teruringo 2023/12/11
  • Gmailの新スパム規制対応全部書く

    [2024年1月10日、19日追記] GmailとYahoo!側のアップデートに合わせていくつか細かい説明を追加しています(大筋は変わっていません)。変更点だけ知りたい方は「追記」でページ内検索してください。 2023年10月3日、Googleはスパム対策強化のため、Gmailへ送るメールが満たすべき条件を2024年2月から厳しくすると発表しました。また米国Yahoo!も、2024年2月 第一四半期[1] から同様の対策を行うと発表しています。端的に言えば、この条件を満たさないと宛先にメールが届かなくなるという影響の大きな変更です。 この記事では、Gmailや米国Yahoo!の規制強化への対応方法を解説します。ただし米国Yahoo!にメールを送る人は多くないと思うので、フォーカスはGmail寄りです。また、メール配信サービス(海外だとSendGridやAmazon SES、国産だとblas

    Gmailの新スパム規制対応全部書く
    teruringo
    teruringo 2023/12/09
  • ブラウザ自動操作API入門: WebDriver APIとChrome DevTools Protocol(CDP)

    ウェブブラウザを自動操作する際には、WebDriverやChrome DevTools Protocol (CDP) などのAPIが広く利用されています。 これらのAPIを基盤に構築された様々なブラウザ自動操作フレームワークが、テスト自動化の分野で重要な役割を果たしています。 例えば、SeleniumやPlaywrightといったフレームワークを利用して、テストの自動化に取り組まれている方もいらっしゃると思います。 私もテスト自動化フレームワークの便利さを享受する一方で、フレームワークを介さずにブラウザを自動操作する方法についての興味がわいてきました。 そこで、この記事ではWebDriverやCDPが提供するAPIを直接利用してブラウザを操作する方法を基礎から探求してみることにしました。 これにより、私たちが普段利用しているフレームワークの背後にある原理を理解し、より深い知見を得ることを目

    ブラウザ自動操作API入門: WebDriver APIとChrome DevTools Protocol(CDP)
    teruringo
    teruringo 2023/11/26
  • 新時代のコードエディタ、Cursorのメリット・できることを網羅的に解説した

    上記のようにコードエディタを開くコマンドを分けるために、既にcodeコマンドをVScodeで使っている方はcursorダウンロードの際にcursorコマンドのみインストールするようにしてください。codeの方もインストールすると、codeコマンドでVScodeとCursorどちらも開いてしまうようです。 Cursor主要機能紹介 cmd + Shift + L or cmd + L でGPTとChat機能 エディタ上で画面右にGPTに質問できるサイドバーが出現する。何も選択してないと無から質問できる状態になっていて、コードを選択した状態で開くとそのコードがあらかじめ引用された状態になっている(別の部分のコードもどんどん追加できる)。 ↑10~21行目をcmd + Lした後に31~33行目を追加でcmd + Lした画像 cmd + K でAI Edit機能 コードを選択した状態でcmd +

    新時代のコードエディタ、Cursorのメリット・できることを網羅的に解説した
    teruringo
    teruringo 2023/11/23
  • 【CSS】まだホバー時のスタイルを :hover だけで指定してるの?

    はじめに結論から ホバースタイルは、 :hover だけで指定するのではなく、次のように指定しましょう! @media (hover: hover) { /* リンクの場合 */ a:any-link:hover { } /* ボタンの場合 */ button:enabled:hover { } /* 特定できない場合 */ .button:where(:any-link, :enabled, summary):hover { } } ポイント 1 マウスのときだけホバースタイルを当てる :hover 擬似クラスで指定したスタイルは、タッチデバイスの場合フォーカス状態で適用されてしまいます。 つまり、タッチしたあとのスタイルがずっとホバースタイルのままになってしまいます。 これは意図と合わないため、マウスで操作しているかどうかを区別してスタイルを当てる必要があります。 マウス(正確には、ホ

    【CSS】まだホバー時のスタイルを :hover だけで指定してるの?
    teruringo
    teruringo 2023/08/08
  • Slackで動くChatGPTのチャットボットをGoogle Apps Script(GAS)でサクッと作ってみる

    Slackで動くChatGPTのチャットボットを作りたい 記事では、Slackで下記仕様を実現できるChatGPTのチャットボットをGoogle Apps Script(GAS)でサクッと作成していきます。 botが所属するSlackのチャンネル内でメンションされると、スレッドで返信する botとのダイレクトメッセージの場合は、メンション無しでもスレッドで返信する botが参加しているスレッド内でのメッセージには、メンション無しでも(スレッド内の会話内容を読み取った上で)返信する また、下記項目も自由に設定することができます。何でも明るく回答してくれる社内のアイドル的なbotを作ってみるのも良いかもしれません。 botのアイコン、振る舞い(人格・役割など)の設定 gpt-3.5-turboやgpt-3.5-turbo-16kなどのGPTモデル設定 今回のbotは、非エンジニアの方でも作成

    Slackで動くChatGPTのチャットボットをGoogle Apps Script(GAS)でサクッと作ってみる
    teruringo
    teruringo 2023/07/23
  • chatGPTにアドバイスをもらったらデータサイエンスを知って1週間の友人がコンペで上位6.5%に入った話

    先日、データ解析のセミナーを開催しました。 未経験の方でも、2時間で予測モデルを作成することができるハンズオンセミナーでした。 好評だったので、その内容をYouTubeにまとめたのでご興味ある方はご覧ください。 このハンズオンセミナーで予測モデルの作り方を知った友人chatGPTにアドバイスをもらって、データサイエンスのコンペティションサイトに応募したところ、上位6.5%に入ることができたという報告を受け、驚愕しました。 chatGPTを上手く使えば素人がプロに勝つことも十分できるのだなと実感しました。 友人が参加したデータサイエンスのコンペは、SIGNATEの糖尿病予測問題でした。 以下のような進め方をしたとのことでした。 まず、問題の概要を説明して、どのように進めていけば良いかを確認したそうです。 そうすると、chatGPTからデータサイエンスの問題を解くための手順を一覧化してくれて

    chatGPTにアドバイスをもらったらデータサイエンスを知って1週間の友人がコンペで上位6.5%に入った話
    teruringo
    teruringo 2023/04/26
  • エンジニアが開発しやすい環境作りをする

    はじめに 自分は渋谷のWeb系開発会社にて執行役員兼エンジニアをやっています。(新卒入社3年目) 直近では6~8名程のエンジニアがいるプロジェクトで、ディレクトリ設計やissue作成、コードレビュー、スケジュール管理、PMへのUI/UX及び機能提案などを行なっています。 その中で自分が「エンジニアチームにとって開発しやすい環境整備」を色々試し、実践してきたので整理していきます。 この記事の主な対象者 エンジニアチームの開発モチベーションを上げたい人 エンジニアにとって開発しやすい環境の作り方 おことわり 今回紹介するのは自分が実践してきた一例であり、必ずしも正解というわけではありません 「こうしなさい」ではなく「こうするとより良くなるかも」といったモチベで書いています 具体的な開発の設計を紹介するものではありません エンジニアが開発しやすい環境作り 5つのセクションに分けて紹介していきます

    エンジニアが開発しやすい環境作りをする
    teruringo
    teruringo 2023/04/20
  • Reactベストプラクティスの宝庫!「bulletproof-react」が勉強になりすぎる件

    Reactアプリケーションのアーキテクチャの一例として公開されているGitHubリポジトリ「bulletproof-react」が大変勉強になるので、私自身の見解を交えつつシェアします。 ※2022年11月追記 記事リリースから1年ほど経過して、新しく出てきた情報や考え方を盛り込んだ続編記事を書いていただいているので、こちらも併せて読んでいただければと想います(@t_keshiさんありがとうございます!)。 ディレクトリ構造が勉強になる まずはプロジェクトごとにバラつきがちなディレクトリ構造について。 ソースコードはsrc以下に入れる bulletproof-reactでは、Reactに関するソースコードはsrcディレクトリ以下に格納されています。逆に言えば、ルートディレクトリにcomponentsやutilsといったディレクトリはありません。 たとえばCreate Next Appで作成

    Reactベストプラクティスの宝庫!「bulletproof-react」が勉強になりすぎる件
    teruringo
    teruringo 2023/04/16
  • 【ChatGPT】個人的お気に入りプロンプトまとめ

    あなたは、プロの【その分野の専門家】です。 以下の制約条件と入力文をもとに、【出力内容】を出力してください。 # 制約条件: 【前提条件や決まりごと】 # 入力文: 【期待する出力結果や大まかな指示】 あなたは、プロのエンジニアです。 以下の制約条件と入力文をもとに、ブログ記事の内容を出力してください。 # 制約条件: ・重要なキーワードを取り残さない。 ・文字数は30000文字程度 # 入力文: Swaggerについて技術ブログに投稿する文章を書いてください。 構成は、Swaggerとは?、Swaggerのユースケース、Swaggerのメリットとデメリット、Swaggerの書き方(YAMLファイル)、Swaggerの実行方法、まとめです。 構成間で重複した説明は省くようにしてください。 読者がブログを読みながらSwaggerを触れるようにハンズオン形式などを取り入れて文章を作ってください

    【ChatGPT】個人的お気に入りプロンプトまとめ
    teruringo
    teruringo 2023/04/08
  • Docker一強の終焉にあたり、押さえるべきContainer事情

    章立て はじめに Docker・Container型仮想化とは Docker一強時代終焉の兆し Container技術関連史 様々なContainer Runtime おわりに 1. はじめに Containerを使うならDocker、という常識が崩れつつある。軽量な仮想環境であるContainerは、開発からリリース後もすでに欠かせないツールであるため、エンジニアは避けて通れない。Container実行ツール(Container Runtime)として挙げられるのがほぼDocker一択であり、それで十分と思われていたのだが、Dockerの脆弱性や消費リソースなどの問題、Kubernetes(K8s)の登場による影響、containerdやcri-o等の他のContainer Runtimeの登場により状況が劇的に変化している。記事では、これからContainerを利用したい人や再度情報

    Docker一強の終焉にあたり、押さえるべきContainer事情
    teruringo
    teruringo 2023/04/03
  • とってもやさしいフロントエンド入門

    まず、新しいアイデアが提案されると、ステージ0の「Strawman」と呼ばれる段階に入ります。ステージ0のアイデアが価値のある提案として見なされ、大まかな形で問題点や解決策を説明できるようになると、ステージ1の「Proposal」と呼ばれる段階に進みます。そして、提案がある程度まとまって仕様の草案として認められると、ステージ2の「Draft」と呼ばれる段階に上がります。さらに細かいところまで練り上げられて、仕様がほぼ完成した状態になると、ステージ3の「Candidate」の段階になります。最後に、2つ以上のブラウザがその機能を実装していて、ECMAScript の編集者に承認されると、ステージ4の「Finished」と呼ばれる段階になります。 ステージ4に上がった提案は、毎年 6 月のタイミングで ECMAScript の新しいバージョンとしてリリースされます。リリースする際は、ECMAS

    とってもやさしいフロントエンド入門
    teruringo
    teruringo 2023/03/25
  • バックエンドの設計で直したほうが良いコード9選

    バックエンド兼インフラエンジニアのrevenue-hackです! 今回は今までバックエンドエンジニア10年くらいやってきて、「これはまずいなー」と思ったコードについて紹介していきます。 ↓記事はこちらに移しました!↓

    バックエンドの設計で直したほうが良いコード9選
    teruringo
    teruringo 2023/03/14
  • [Minecraft × ChatGPT] マイクラで作りたいものを伝えると魔法みたいに実現してくれるコマンドを作る

    2023/03/09 追記 このコマンドで使っているエラーハンドリングの仕組みについて別途記事にしました。 ChatGPTならではで面白いので、読んでもらえると嬉しいです! 🔗 ChatGPT API にコードを書かせて eval する際のエラーハンドリング・プラクティス 息子と一緒に遊びたいなと、MinecraftChatGPT を繋げて、やりたいことを日語で伝えるといい感じに実現してくれるコマンドを作りました 🪄 作ったもの /py magic に続けてやりたいことを伝えると、いい感じに実現してくれます。 家をつくる例 /py magic 10マス先に豪華な家を作って。窓は広めで。 水流エレベーターをつくる例 /py magic 水流エレベーターを作って。周りは石ブロックで。 🛠️ 実装 事前に MinecraftPython を実行できる環境を整えます。 mcpi

    [Minecraft × ChatGPT] マイクラで作りたいものを伝えると魔法みたいに実現してくれるコマンドを作る
    teruringo
    teruringo 2023/03/08
  • 個人開発で食べられるようになるまでに、しなかった事

    家でゴロゴロしながら、個人開発アプリだけで生活している、あたかです。 会社を辞めて、2年間ツールアプリをちんたら更新していたらべられるようになったのですが、べられるようになるまでに 「やらなかった事」 を10個発表します! やった方がもっと良かったかもしれないですが、やらなかったので仕方ない。 1. 市場調査 このカテゴリーは儲かるのか、ニーズが多いのか、そういう事は一才やらなかったです。 調査方法が分からなかったし、単純に面倒だったからですが、ちょっとカッコつけた事を言っちゃうと、自分が欲しくて作りたいサービス以外は、作る気が無かったからです。 結果的に、自分が欲しくて作りたいサービスだと、新機能や改善内容は自分の頭の中から浮かんでくるので、思いつきだけでサービスを成長させる事ができて、一人で頑張らないといけない個人開発者には有利に働いたのかなぁと思います。 2. 競合調査 自分が作

    個人開発で食べられるようになるまでに、しなかった事
    teruringo
    teruringo 2022/12/17