■22/4/23 11:00AM
Goo ana 4
Google Analytics 4 ガイド – アクセス解析ツール「Google Analytics 4」の実装・設定・活用のための情報サイト (ga4.guide)
GA4代替のアクセス解析ツール候補、あるいはユーザーのデータをどこに預けるべきか - makitani.com
トップページ - GA4 Quick.com (and-aaa.com)
Xゲーム千葉見に行ったが、時間の都合上すぐ引き上げた。なお練習走行をゲート隙間から見れたが、ババババとレブしてる爆音とともに、ヘルメットだけが左右にスー―っと移動しているのだけが見えた。ヘルメットだけが移動する様はシュールだなと思た。オワリ
[Click for image]
■なんかやってくれる系のWebサービス
Bard へようこそ (google.com)
Microsoft Bing の Image Creator
パープレキシティ
Bing
Chat GPT(文章生成)
誰でもブラウザで簡単にAI作曲。AIボーカルも入って1日5曲まで無料で作れるSongR BETA登場 | DTM (dtmstation.com)
Jasper(文章生成)
quillbot ai(文章生成)
StoryLab(文章生成)
Tweet Hunter(SNSコンテンツ作成)
Repurpose IO(SNSマルチ投稿)
Timely(ビジネス)
fireflies
Dream by WOMBO(画像生成)
removebg(背景削除)
petalica paint(絵を着色)
YouTube Summary with ChatGPT Chromeの拡張機能でYoutubeの音声を一瞬で文字起こし
ChatGPT内蔵の海外激ヤバサービスまとめ10選!! | 株式会社SaaSis
ASCII.jp:画像生成AI「Midjourney」の始め方・使い方 (1/3)
ASCII.jp:画像生成AI「Midjourney」でLINEスタンプを作ろう (1/3)
画像生成AI「Midjourney」の勘違いによる出力結果
ドラッグするだけで自由自在に画像編集できるAIツール「DragGAN」
雑コラをAIでリアルにする!|Katsushiro Koizumi (note.com)
■GPTプロンプト
ChatGPTに組織の価値観を読み込ませて、マネージャの代わりに論点出しさせる (newspicks.com)
ChatGPTに要件定義をお願いしたらハンパなかった | DevelopersIO (classmethod.jp)
Chat GPTの完全な上位互換!Bing AIの面白い使い方まとめ|梶谷健人 / Kent Kajitani|note
「ビジネスメールでも送信ボタンを押すだけ」情報伝達部分ってそんなにない
深津さん考案「深津式汎用プロンプト」でChatGPTが劇的に使いやすく
ChatGPTをより有効的に使う為のテンプレートがまるで呪文「検索エンジンでキーワードを捏ねるのと似てる」
新しい清涼飲料水の商品企画の例
ChatGPTをRHELの運用に使えるか? いろいろためしてみた。 - 赤帽エンジニアブログ (hatenablog.com)
婚活アプリでChatGPTに代筆させてる話 (hatelabo.jp)
コピペOK!ChatGPT×英語学習に使える「深津式プロンプト」 (thepast.jp)
ChatGPTに感情回路を埋め込んだら、やべぇ感じになった|深津 貴之 (fladdict)|note
エヴァのMAGIシステムをGPT3で作ってみた|深津 貴之 (fladdict)|note
VSCodeにChatGPTの拡張機能を入れてコードレビューやバグを発見してもらう - Qiita
Chat GPT暗記ツール。覚えらない単語30個指定して「ショートストーリーを作って」
GPT-3 API を使って AI WAF を作る - まったり技術ブログ (motikan2010.com)
シェルコマンド思い出せないので、ChatGPTで自然言語からスクリプトを生成するツールつくった
AIにコードまるごと解説してもらうと、界王拳100倍すぎる件
雑なプロンプトでも勝手に高品質になる
ChatGPTで競合調査やKPIの設定をやってみよう【海外記事メモ】|やました|note
ChatGPTにマインドマップを作ってもらったら理解速度が爆速になる件|Abiru|note
Swift未経験の医師が、ChatGPTを使って30分でiOSアプリを作った話|Shohei|note
【ChatGPT】個人的お気に入りプロンプトまとめ (zenn.dev)
【ChatGPT】これだけ覚えればOK?ゴールシークプロンプトが誰でも使えて最強すぎた|Masaki KANAI|note
AIに「お前のところの営業担当、マジでクソだ、二度と顔見せんな。替えろ」をメールの文章に変換してもらったら超実用的だった - Togetter
ChatGPTで無料で学べる『英会話AI』の作り方(神田敏晶) - 個人 - Yahoo!ニュース
ChatGPTを使ってDDLからER図をすばやく作成する - Taste of Tech Topics (hatenablog.com)
いいよ↓
話題の「ChatGPT」こんなに使えたら本当にすごい! 目からウロコの使い方を解説|GPTs活用事例も | 【レポート】Web担当者Forumミーティング 2023 秋 | Web担当者Forum (impress.co.jp)
【Google Bard】伝説が始まりそうなヤバい使い方10選 | 株式会社SaaSis
■GPT系API利用
ChatGPT APIを使ったLineBotの作り方、人格の与え方まで
ChatGPTを使って自分のはてなブログとチャットするツールを作った - $shibayu36->blog;
■ChatGPTのハルシネーションChatGPTはクエリに最も一致すると思われる単語の文字列を予測することで機能するこれはロジックを検討したり、 吐き出している事実の矛盾を考慮したりする理由がない知らない、分かりませんとChatGPTは言わないことになる→幻覚を出してくる
避け方 自由記述式より多肢選択式。できるだけ情報を与える ロールを割り当てると、より多くのガイダンスが与えられることになるので良い 欲しいものと欲しくないものを伝える AI温度設定を高るとランダム性が高くなり創造的な幻覚的な返答の可能性が高まる
駄目なプロンプト「生産性について書いてください」適切なプロンプト「中小企業にとっての生産性の重要性についてブログ記事を書いてください」駄目なプロンプト「犬のハウス トレーニング方法について書いてください」 適切なプロンプト「プロのドッグトレーナーとして、3か月の新しいコーギーを飼っているクライアントに、 子大のハウス トレーニングに必要な活動についてメールを書いてください」駄目なプロンプト「落ち葉についての詩を書いてください」適切なプロンプト「落ち葉について、エドガーアランポーのスタイルで詩を書いてください」駄目なプロンプト「この記事を書約してください」適切なプロンプト「この記事の要約を500語で書いてください」適切なプロンプト「例)入力: 2023-04-02 T16:10:00Z3 日を追加し、次のタイムスタンプをMM/DD/YYYY HH:MM:SS形式に変換しますと下記になります。出力: 04/05/2023 16:10:00下記の入力に3 日を追加し、次のタイムスタンプをMM/DD/YYYY HH:MM:SS形式に変換して下さい。 入力: 2023-03-01 T11:10:00Z」
■Copilot系
New conversation · GitHub Copilot
Comment (0)
■22/4/17 9:54AM
I drive or test driven
Test-first fundamentalism is like abstinence-only sex ed: An unrealistic, ineffective morality campaign for self-loathing and shaming.
TDD is dead. Long live testing. (DHH)
I need to hire new techniques to help me solve many of my problems during programming: The pain will fade. Farewell TDD, old friend.
RIP TDD from Kent Beck
そもそもテスト駆動開発の最後のところに、自分で考えてやれって書いてんなぁ、やらんでもええしって。そらそーやろ、自分で考えさせろや、やらんと分からんやろやらせろや、終了ーーーー
==============
となりそうだがドリドリについて
Assertするだけ?、何か一部しかテストでけへんの?
テストをコード化するのはいい
テストファーストとテストドリブンとユニットテストは違うらしいで
javascriptとかテストできんの?
ビジネスをソフトウェアでするだけ
ソフトウェアを捏ねくりまわしたいのではない
特にコードをビジネス通りに書くといい
プログラマー的変換するとよくない、ビジネスはビジネスとしてコード
ゲームとか処理等の描き切りはスペシャルなコードを書けばいい -実現したいことを箇条書きにする -プログラムで処理できる内容にまで分解だけする -コードにする ※実現したいことをそのままコードにする ※言語に左右されない粒度、機能でシンプルに簡易な書き方だけにする
脳に収まるコードの書き方 ―複雑さを避け持続可能にするための経験則とテクニック脳に収まっとんのか?と。大事なのはこっちだろ。プロダクトマネージャーのしごと ―1日目から使える実践ガイド -コミュニケーション -組織力 -リサーチ -実行※企画/予算/収支、UX/デザインの決定
他人が使うソフトウェアなら必要、自分も使うソフトウェアなら不要では
自分でも使うくらい有用なものであるか
品質をどこで担保するか、機能だけなのかUXなのか
スーパープログラマには本質の部分にもっと時間を使って欲しい、死ぬ方が早い
あんまり機能をリファクターする機会がないかも
++++++++++
ソフトウェア開発アプリケーションを超シンプルにするとリリース回数が多くなる(質とスピードを上げるにはリリース回数)
アプリの分散と並列も可、競争力はオリジナリティ、政治力か真理性か
原体験、初期衝動は、グラスルーツかグルーピーか
==============
変な常識ばかり、旧来のITがWeb業に飲み込まれ使えるようになったが、ITvsWebの何がエッセンスだったかCSは与り知らん
新しい(変化する)事は良いことみたいな感じでやってきたところもあるが、今時変化っつーたら怪しいわな。不要な変化を押し付けられたり、本当に変えるべきところを隠すために変化してたり。コンサバでええかもな
==============
リーダブルコードの要点整理と活用法をまとめた - Qiita
これはいいな
「良いコード」を書くために意識している17のTips まとめ (zenn.dev)
これも
すべての新米フロントエンドエンジニアに読んでほしい50の資料 - Qiita
知らん事結構ある、keep them simpleだが知っておかんとな、下とか
オリジン間リソース共有 (CORS) - HTTP | MDN (mozilla.org)
JSON Web Token(JWT)の紹介とYahoo! JAPANにおけるJWTの活用 - Yahoo! JAPAN Tech Blog
Overview - Chrome Developers
[Click for image]
Comment (0)
■22/4/1 12:00AM
GCP Python script
Googleがサポートするのは3つ1)クライアントライブラリ Python client library | Dialogflow ES | Google Cloud pip install google-cloud-dialogflow GCPは下記のRESTがベースにあるらしいがコレが楽かと2)REST https://googleapis.github.io/HowToREST URLにAuthベアラーと必要ならJSONを投げてJSONを受け取る URLに法則性があり get とか list なぜかうまく行かないことが多い3)gRPC https://grpc.io/
■サンプルコードのライブラリを検索するとAPIドキュメントは引っかかるAPIドキュメントgoogle.oauth2.credentials module — google-auth 1.30.0 documentationgoogle_auth_oauthlib.flow module — google-auth-oauthlib 0.4.1 documentation↓APIはgithubにコード公開されているGitHub - googleapis/google-auth-library-python-oauthlibGitHub - googleapis/google-auth-library-python: Google Auth Python Library親分はGoogle APIs on guthubGoogle APIs · GitHub
■python gcp Cloud API client libraryは下記のような所からサンプル、仕様を取るclient(bq)Class Client (3.4.0) | Python client library | Google Cloudpip install google-cloud-resource-managerClass ProjectsClient (1.10.1) | Python client library | Google Cloudpip install google-cloud-biguery-datatransferClass DataTransferServiceClient (3.11.1) | Python client library | Google Cloud
#Pyton Bigqueryrequirements.txtgoogle-cloud-bigquery==3.3.2google-cloud-logging==3.2.2----from google.cloud import bigqueryimport google.cloud.loggingimport loggingbq = bigquery.Client()sql = "select * from `unco`"results = bq.query(sql)row_counts = 0for row in results: bq_insert = bigquery.Client() sql_insert = "insert into `benki` (a) values ('" + str(row.size) + "')" logging.warning('### unco.size ' + str(row.size) + ' ###') row_count += 1
#Python pubsubデータ取得(pubsub pushの場合)requirements.txtgoogle-cloud-logging==3.2.2----import base64import jsonimport google.cloud.loggingimport loggingpubsub_data = base64.b64decode(event["data"]).decode("utf-8")logging.warning('### pubsub data ' + str(pubsub_data) + ' ###')json_pubsub_data = json.loads(pubsub_data)
#Python slack送信requirements.txtgoogle-cloud-secret-manager==2.12.6----import requestsfrom google.cloud import secretmanagerimport jsondef slack_post(message): client = secretmanager.SecretManagerServiceClient() resource = "projects/12345678901/secrets/secretkey_xxx/versions/latest" res = client.access_secret_version(name=resource) slack_url = res.payload.data.decode("utf-8") payload = { "text": message, } notify = requests.post(slack_url,data=json.dumps(payload)) if notify.status_code != requests.codes.ok: print("error") else: print("posted at slack url")
slack_post('続きは<http://yahoo.com| こちら>をクリックしてください)
@ .dockerignoreDockerfileREADME.md*.pyc*.pyo*.pyd__Pycache__.pytest_cache
@ DockerfileFROM python:3.10-slimENV PYTHONUNBUFFERED TrueENV APP_HOME /appWORKDIR $APP_HOMECOPY . ./RUN pip install --no-cache-dir -r requirements.txt
RUN pip install Flask gunicornCMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
@ DockerfileFROM python:3.10-slimWORKDIR /appCOPY app /appRUN pip install -r requirements.txt --proxy=http://proxy:3128CMD["python", "main.py"]
■Slack通知incoming webhookかSlack apiの最低2種類があるSlack apiではts(timestamp)が取得できスレッド返信ができるが、incomingは投稿だけ。incomingは管理画面でURLを取得しそこへPostすることで投稿ができる(URLのみで漏洩すると誰でも投稿できる、どのSlackアプリが投稿しているか分かるのでURLローテすれば良いが)。apiはSlack固定のエンドポイントがありトークンをベアラに入れチャネル名を指定して投稿ができる。管理画面でトークン取得と権限スコープの設定をし、チャネル側でapiアプリの受け入れをintegrations設定するURLあるいはトークンをGCPシクレMGRに入れて、アプリで読みEPへhttp通信するAPIのテスト送信ができるchat.postMessage method | Slack
■Oauth関連
ローカルの場合(VirtualBoxとか) 1) gcloudでログインをしてPython実行するOauthクライアントIDの場合 2) ローカルPythonを実行するとAuthを聞いてくる>ブラウザが立ち上がる>ユーザ認証に変わる 3) WebアプリだとJSでAuthを聞く> 認証するとOauthクライアントIDでなくユーザ認証に変わる設定方法 OauthクライアントIDをOauth同意画面>クレデンシャルで作成 デスクトップアプリは上記②、Webアプリは上記の③でID作成する OauthクライアントIDをファイルかsecret mgrに入れてOauth認証通信をさせる ②flow = InstalledAppFlow.from_client_secrets_file(credentials, SCOPES) ③flow = InstalledAppFlow.from_client_config(json.loads(credentials), SCOPES)サービスアカウントの場合 4) Cloud run等のサーバがOauth通信で認証し外部サービスを使う設定方法 SAキーをファイルかsecret mgrに入れてプログラムからOauthで認証させ外部サービスを使う EPはホスト名+パスだが、target_audienceはホスト名
GCPのOauthについてhttps://www.marketechlabo.com/python-google-auth/
Docs APIhttps://developers.google.com/docs/api/how-tos/documents?hl=ja#pythonhttps://rimever.hatenablog.com/entry/2019/10/16/060000スコープhttps://developers.google.com/identity/protocols/oauth2/scopes?hl=ja#docsgoogle-api-python-client OAuth 2.0https://googleapis.github.io/google-api-python-client/docs/oauth.htmlOauthライブラリhttps://google-auth.readthedocs.io/en/stable/reference/google.oauth2.credentials.htmlhttps://google-auth-oauthlib.readthedocs.io/en/latest/reference/google_auth_oauthlib.flow.htmlhttps://googleapis.dev/python/google-auth-oauthlib/latest/reference/google_auth_oauthlib.helpers.htmlhttps://google-auth-oauthlib.readthedocs.io/en/latest/_modules/google_auth_oauthlib/flow.html#Flow.from_client_config Oathライブラリのソースコードhttps://github.com/googleapis/google-auth-library-python-oauthlib/blob/main/google_auth_oauthlib/helpers.pyOauthクライアントIDの仕様https://github.com/googleapis/google-api-python-client/blob/main/docs/client-secrets.mdサービスアカウントで外部サービスのAPIを使うhttps://www.coppla-note.net/posts/tutorial/google-calendar-api/SAのサービス間認証の仕様https://cloud.google.com/run/docs/authenticating/service-to-service?hl=ja#use_the_authentication_librariesWebアプリのOauth認証https://github.com/googleworkspace/python-samples/blob/main/drive/driveapp/main.pyhttps://stackoverflow.com/questions/10271110/python-oauth2-login-with-google
■Oauthについて下記の少なくとも下記の種類があり、クライアントライブラリやコード等々で違いで使い分ける必要がある。今回はSA+シクレmgrを使用した。-ローカル(gcloud auth login と認証)-OauthクライアントID (アプリ上で認証が個人ユーザに引き継がれる) -デスクトップ -Webアプリ(jsでサイト上)-サービスアカウント -キーファイル -シクレmgr
使用ライブラリーに注意1) OauthクライアントID (ローカルファイル)from google_auth_oauthlib flow import InstalledAppFlowflow = InstalledAppFlow.from_client_secrets_file("credentials.json", SCOPES)creds flow.run_local_server(port=0)
2) ローカルにおいたSAキーfrom google auth import load_credentials_from_filecreds = load_credentials_from_file('credentials.json', SCOPES)[0]
3) Secret mgrにおいたSAキーimport jsonfrom google.oauth2.service_account import Credentialsfrom google.cloud import secretmanagerclient = secretmanager.SecretManagerServiceClient()resource_name = "projects/()/secrets/{}/versions/latest" format(project_num, secret_name)res = client.access_secret_version(name=resource_name)credentials = res.payload.data.decode("utf-8")cred_dict=json.loads(credentials)creds = Credentials.from_service_account_info(cred_dict, scopes=SCOPES)creds.refresh(Request())
※) これは使わないfrom google.oauth2.service_account import IDTokenCredentials#ファイルからcredentials = IDTokenCredentials.from_service_account_file(service_account,target_audience=target_audience)#シクレmgrからcredentials = IDTokenCredentials.from_service_account_info(service_account.target_audience=target_audience)
ライブラリーのソースコード本体や仕様書https://github.com/googleapis/google-auth-library-python-oauthlib/blob/main/google_auth_oauthlib/helpers.pyhttps://googleapis.dev/python/google-auth-oauthlib/latest/reference/google_auth_oauthlib.helpers.htmlhttps://google-auth-oauthlib.readthedocs.io/en/latest/reference/google_auth_oauthlib.flow.htmlhttps://google-auth-oauthlib.readthedocs.io/en/latest/_modules/google_auth_oauthlib/flow.html#Flow.from_client_config
サービスアカウントのライブラリ情報https://google-auth.readthedocs.io/en/master/reference/google.auth.htmlhttps://google-auth.readthedocs.io/en/master/reference/google.oauth2.service_account.html#module-google.oauth2.service_accounthttps://qiita.com/que9/items/38ff57831ea0e435b517
Comment (0)
Navi: < 3 | 4 | 5 | 6 >
-Home
-Column [128]
-Europe [9]
-Gadget [77]
-Web [133]
-Bike [4]
@/// BANGBOO BLOG ///