/// BANGBOO BLOG ///

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31


April 2022 List
Goo ana 4 on Apr 23, 2022 11:00 AM
I drive or test driven on Apr 17, 2022 9:54 AM
GCP Python script on Apr 01, 2022 12:00 AM

April 23, 2022

Goo ana 4
Google Analytics 4 ガイド – アクセス解析ツール「Google Analytics 4」の実装・設定・活用のための情報サイト (ga4.guide)
GA4代替のアクセス解析ツール候補、あるいはユーザーのデータをどこに預けるべきか - makitani.com
トップページ - GA4 Quick.com (and-aaa.com)

Xゲーム千葉見に行ったが、時間の都合上すぐ引き上げた。なお練習走行をゲート隙間から見れたが、ババババとレブしてる爆音とともに、ヘルメットだけが左右にスー―っと移動しているのだけが見えた。ヘルメットだけが移動する様はシュールだなと思た。オワリ



■なんかやってくれる系の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:00Z
3 日を追加し、次のタイムスタンプを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

Posted by funa : 11:00 AM | Web | Comment (0) | Trackback (0)


April 17, 2022

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とかテストできんの?

ビジネスをソフトウェアでするだけ
 ソフトウェアを捏ねくりまわしたいのではない
  特にコードをビジネス通りに書くといい
  プログラマー的変換するとよくない、ビジネスはビジネスとしてコード
   ゲームとか処理等の描き切りはスペシャルなコードを書けばいい
  -実現したいことを箇条書きにする
  -プログラムで処理できる内容にまで分解だけする
  -コードにする
 ※実現したいことをそのままコードにする
 ※言語に左右されない粒度、機能でシンプルに簡易な書き方だけにする

脳に収まっとんのか?と。
大事なのはこっちだろ。
 -コミュニケーション
 -組織力
 -リサーチ
 -実行
※企画/予算/収支、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


Posted by funa : 09:54 AM | Web | Comment (0) | Trackback (0)


April 1, 2022

GCP Python script
Googleがサポートするのは3つ
 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ドキュメント
APIはgithubにコード公開されている
親分はGoogle APIs on guthub

■python gcp Cloud API client libraryは下記のような所からサンプル、仕様を取る
client(bq)
pip install google-cloud-resource-manager
pip install google-cloud-biguery-datatransfer

#Pyton Bigquery
requirements.txt
google-cloud-bigquery==3.3.2
google-cloud-logging==3.2.2
----
from google.cloud import bigquery
import google.cloud.logging
import logging
bq = bigquery.Client()
sql = "select * from `unco`"
results = bq.query(sql)
row_counts = 0
for 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.txt
google-cloud-logging==3.2.2
----
import base64
import json
import google.cloud.logging
import logging
pubsub_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.txt
google-cloud-secret-manager==2.12.6
----
import requests
from google.cloud import secretmanager
import json
def 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| こちら>をクリックしてください)

@ .dockerignore
Dockerfile
README.md
*.pyc
*.pyo
*.pyd
__Pycache__
.pytest_cache

@ Dockerfile
FROM python:3.10-slim
ENV PYTHONUNBUFFERED True
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY . ./
RUN pip install --no-cache-dir -r requirements.txt
RUN pip install Flask gunicorn
CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app

@ Dockerfile
FROM python:3.10-slim
WORKDIR /app
COPY app /app
RUN pip install -r requirements.txt --proxy=http://proxy:3128
CMD["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のテスト送信ができる

■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 API
https://developers.google.com/docs/api/how-tos/documents?hl=ja#python
https://rimever.hatenablog.com/entry/2019/10/16/060000
スコープ
https://developers.google.com/identity/protocols/oauth2/scopes?hl=ja#docs
google-api-python-client OAuth 2.0
https://googleapis.github.io/google-api-python-client/docs/oauth.html
Oauthライブラリ
https://google-auth.readthedocs.io/en/stable/reference/google.oauth2.credentials.html
https://google-auth-oauthlib.readthedocs.io/en/latest/reference/google_auth_oauthlib.flow.html
https://googleapis.dev/python/google-auth-oauthlib/latest/reference/google_auth_oauthlib.helpers.html
https://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.py
Oauthクライアント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_libraries
WebアプリのOauth認証
https://github.com/googleworkspace/python-samples/blob/main/drive/driveapp/main.py
https://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 InstalledAppFlow
flow = InstalledAppFlow.from_client_secrets_file("credentials.json", SCOPES)
creds flow.run_local_server(port=0)

2) ローカルにおいたSAキー
from google auth import load_credentials_from_file
creds = load_credentials_from_file('credentials.json', SCOPES)[0]

3) Secret mgrにおいたSAキー
import json
from google.oauth2.service_account import Credentials
from google.cloud import secretmanager
client = 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.py
https://googleapis.dev/python/google-auth-oauthlib/latest/reference/google_auth_oauthlib.helpers.html
https://google-auth-oauthlib.readthedocs.io/en/latest/reference/google_auth_oauthlib.flow.html
https://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.html
https://google-auth.readthedocs.io/en/master/reference/google.oauth2.service_account.html#module-google.oauth2.service_account
https://qiita.com/que9/items/38ff57831ea0e435b517


Posted by funa : 12:00 AM | Web | Comment (0) | Trackback (0)


PhotoGallery


TWITTER
Search

Mobile
QR for cellphone  QR for smart phone
For mobile click here
For smart phone click here
Popular Page
#1Web
#2Hiace 200
#3Gadget
#4The beginning of CSSレイアウト
#5Column
#6Web font test
#7Ora Ora Ora Ora Ora
#8Wifi cam
#9みたらし団子
#10Arcade Controller
#11G Suite
#12PC SPEC 2012.8
#13Javascript
#14REMIX DTM DAW - Acid
#15RSS Radio
#16Optimost
#17通話SIM
#18Attachment
#19Summer time blues
#20Enigma
#21Git
#22Warning!! Page Expired.
#23Speaker
#24Darwinian Theory Of Evolution
#25AV首相
#26htaccess mod_rewite
#27/// BANGBOO BLOG /// From 2016-01-01 To 2016-01-31
#28竹書房
#29F☆ck CSS
#30Automobile Inspection
#31No ID
#32Win7 / Win10 Insco
#33Speaker
#34Arcade Controller
#35Agile
#36G Suite
#37Personal Information Privacy Act
#38Europe
#39Warning!! Page Expired.
#40GoogleMap Moblile
#41CSS Selectors
#42MySQL DB Database
#43Ant
#44☆od damnit
#45Teeth Teeth
#46Itinerary with a eurail pass
#47PHP Developer
#48Affiliate
#49/// BANGBOO BLOG /// From 2019-01-01 To 2019-01-31
#50/// BANGBOO BLOG /// From 2019-09-01 To 2019-09-30
#51/// BANGBOO BLOG /// On 2020-03-01
#52/// BANGBOO BLOG /// On 2020-04-01
#53Windows env tips
#54恐慌からの脱出方法
#55MARUTAI
#56A Rainbow Between Clouds‏
#57ER
#58PDF in cellphone with microSD
#59DJ
#60ICOCA
#61Departures
#62Update your home page
#63CSS Grid
#64恐慌からの脱出方法
#65ハチロクカフェ
#66/// BANGBOO BLOG /// On 2016-03-31
#67/// BANGBOO BLOG /// From 2017-02-01 To 2017-02-28
#68/// BANGBOO BLOG /// From 2019-07-01 To 2019-07-31
#69/// BANGBOO BLOG /// From 2019-10-01 To 2019-10-31
#70/// BANGBOO BLOG /// On 2020-01-21
#71Bike
#72Where Hiphop lives!!
#73The team that always wins
#74Tora Tora Tora
#75Blog Ping
#76無料ストレージ
#77jQuery - write less, do more.
#78Adobe Premire6.0 (Guru R.I.P.)
#79PC SPEC 2007.7
#80Google Sitemap
#81Information privacy & antispam law
#82Wifi security camera with solar panel & small battery
#83Hope get back to normal
#84Vice versa
#85ハイエースのメンテ
#86Camoufla
#87α7Ⅱ
#88Jack up Hiace
#89Fucking tire
#90Big D
#914 Pole Plug
#925-year-old shit
#93Emancipation Proclamation
#94Windows env tips
#95Meritocracy
#96Focus zone
#97Raspberry Pi
#98Mind Control
#99Interview
#100Branding Excellent
Category
Recent Entry
Trackback
Comment
Archive
<     April 2022     >
Sun Mon Tue Wed Thi Fri Sat
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Link