/// 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

March 9, 2021

Treachery

:||b

Posted by funa : 11:39 PM | Column | Comment (0) | Trackback (0)


March 6, 2021

ZERO

値段と糖質とプリン体と度数、モノによっては明らかに太る感じがしない、ゆって0じゃ無い安酒でも糖質15g位らしいので良いのがなければいつものでいいかも。それより現像ができない!!→LR再インスコ→LRよりSony謹製の方が色が良かった→元画像が暗すぎが理由→LRでノイズを追加調整(元画像に注意、14mmf1.8の使い道がなく勿体ない)

極ZERO: 138/0/0/5 ちょい高、不味い、5%で軽いが酔えなくはない、太る感じ×
Asahi Off: 118/0/0/3-4 酔えない、ノンアルの亜種かフルーティで旨い〇
のどごしZERO: 118/0/0/4 フルーティで旨い、軽いが酔えなくはない〇
贅沢ZERO: 118/0/x/6 プリン有 6%で嬉しいが雑味がすごくある気が▲
バーリアル糖質50%off緑: 85/5-10/?/4 かるくない、そもそもZEROでないが旨い◯+
氷結ZEROレモン: 108/0/0/5  レモンが強く旨い、飲みやすい◎
鏡月焼酎ハイ: 98/0/0/7 スッキリ高アルコール度で満足感、ドライが好きかも◯+
いいちんこ下町のハイボール: 168/0/0/7 高ぇ、重い感じがする▲
 →氷結Zeroレモン>鏡月ドライのコンボが強い

イオン麻婆豆腐辛口(肉付)vs丸美屋辛口(花椒なし):丸は味穏やか、Aは塩と肉多い
 →Aeonのとろみ入れるの減らす、甘口は邪魔甘さで、中辛が一番いい
イオン四川式(肉無)vs丸美屋大辛(花椒付):Aは高いし辛い、お口は甘め好きda

Posted by funa : 01:43 PM | Column | Comment (0) | Trackback (0)


February 21, 2021

BigQuery
■GCP(Google Cloud Platform)
https://console.developers.google.com/
GCPを活用するスキルを問われる「Associate Cloud Engineer」
インフラストラクチャの知識を問われる「Professional Cloud Architect」
データと機械学習の知識を問われる「Professional Data Engineer」
 マシーンラーニング:教師ありをベースにパターンを線形として認識し相似のパターンを見つける
 ディープラーニング:人間が把握できる次元のデータ構造ではない多次元でパターンを見つける
  線形検索みたいなもんか

■Big queryリファレンス
標準SQLとレガシーSQLがある、違いは?
標準 SQL のクエリ構文  |  BigQuery  |  Google Cloud
標準 SQL への移行  |  BigQuery  |  Google Cloud
標準 SQL のデータ型  |  BigQuery  |  Google Cloud
レガシー SQL 関数と演算子  |  BigQuery  |  Google Cloud
レガシー SQL のデータ型  |  BigQuery  |  Google Cloud
BigQuery: クラウド データ ウェアハウス  |  Google Cloud(チュートリアルみたいな) 

BigQuery解説:https://beyondjapan.com/blog/2016/03/what-is-bigquery/
クエリ処理のツリーアーキテクチャによる分散並列処理
複数のサーバーに対してツリー状に拡がっていき、並列にサーバー上で同時に分散処理
 ルートサーバ>intermediateサーバ>leafサーバ
BigQuery MLという機能を利用すると、機械学習モデルをCloud AI PlatformのTensorFlowなどに連携させ、クエリ結果を素早くAIと連携
Lookerというデータ分析プラットフォームとの連携よりクエリ結果を、データ統合、変換、分析、可視化、レポーティングすることができ、非常に強力なBI

列指向型・カラム型データベース・カラムナストレージ(一般的なRDBMSでは行単位でデータが保存)
 必要なカラムのデータを取得するだけでよく、またデータは圧縮できる
https://dev.classmethod.jp/articles/google-bigquery-debut/

GCPプロジェクト>データセット>テーブル(行row列columnで普通のテーブル、ネイティブbigqueryテーブル/Googleドライブのような外部テーブル、SQLクエリによるビュー)
ジョブは非同期で実行され、ステータスをポーリング(データの読み込み、データのエクスポート、データのクエリ、データのコピーなど)

クエリ(ウェブ UI、bq コマンド、BigQuery REST APIの方法がある、SQLと同じ?
SELECT   title, answer_count, view_count
 FROM  `bigquery-public-data.stackoverflow.posts_questions`
 ORDER BY  view_count DESC LIMIT 10
BigQueryはSELECT tag, time FROM [dataset_name.table_name_20151206]のように必要な列だけを選択した場合にはスキャンの幅を狭めることは可能ですが、LIMITやWHERE句には何を書いてもテーブルをフルスキャンしてしまう
節約 Amaのs3に入れRedshift内でテーブルを分割した後にBigQuery

Hadoopでも使われていたGoogle開発のエンジンであるMapReduceは、非構造化データをプログラミングモデルを通して扱うが、巨大なテーブルの結合や巨大な出力結果のエクスポートも可能である半面、処理時間は数分間から数日に及んだ、だが、BigQueryは、あらかじめデータを構造化してBigQueryのテーブルに格納しておかねばならないが、ほとんどのクエリは数秒で完了する

サードパーティ ツール(データの読み込みや視覚化を行うツールなど)を使用して BigQuery のデータにアクセス可

パブリックデータに直でアクセスできる
SELECT * FROM `bigquery-public-data.usa_names.usa_1910_2013`
BigQuery の一般公開データセット  |  Google Cloud

Google Cloud SDKをインストールすればコマンドラインが使える

■標準SQL
先頭行でレガシーか宣言 #standardSQL あるいは #legacySQL
バッククォートでエスケープ、プロジェクト区切りも.(ドット)、From句のカンマはCross joinで全組合せかと思われ通常通りjoinやunionを使う事
配列が使える、カラム一つに配列を入れて多元的に扱える
withで一時テーブルを作れる
exceptでカラムを除外、replaceでカラムの置き換え
分析関数over()とwindowで計算ができる
 rank() over (order by x)は下記moreのRFMに使用している
地理関数とかJSON関数とか色々関数もありそう
スクリプトで変数やIfやLoopが使える 標準 SQL のスクリプト  |  BigQuery  |  Google Cloud

■レガシーSQL(標準SQLを使うのが由)
予約語は角かっこを使ってエスケープ、プロジェクト区切りは:
集計関数で WITHIN キーワードを使用すると、レコード内の繰り返しの値が集計?
FROM句のカンマは標準SQLのCross joinとは異なりUNION ALL 演算子
通常のSQL処理システムとは異なり、BigQueryは繰り返しデータの処理を前提として設計。繰り返しレコードの構造を操作するクエリを記述。その方法の1つが、FLATTEN 演算子?
JOINは、INNER、[FULL|RIGHT|LEFT] OUTER、および CROSS JOIN 演算子をサポート、デフォルトINNER
除外できる select + from A OMIT RECORD IF COUNT(payload.pages.page_name) <= 80;
TOP を使用するには、SELECT 句に COUNT(*) を含める
分析関数over()とwindowで計算ができる?(標準SQLと同様?)
functionを作って使える(標準SQLと同様?)
JSON等のネストをフラット化

■DDL データ定義言語ステートメントの使用  |  BigQuery  |  Google Cloud
https://www.isoroot.jp/blog/1651/
auto_incrementもdefaultもprimary keyもindexもshow create tableないのでは?
CREATE TABLE IF NOT EXISTS bangboo_data.x_xxx (
  `no` INT64 NOT NULL,
  `user_no` INT64 NOT NULL,
  `name` STRING,
  `date` DATETIME,
)

■データアップロード時のスキーマ指定
自動検出はFirestore、Datastore、Avro、Parquet、ORCだけ?ほぼ手動のutf-8のcsvかjsonlかを使う形
コンソールで手動スキーマ指定可(jsonスキーマを張付ける)、modeは省略可でデフォはnullable、
JSONスキーマファイルupはaqコマンドのみ可、ローカルからup時のコマンドとスキーマ例↓
bq load --source_format=CSV mydataset.mytable ./myfile.csv ./myschema.json
[
  {
    "description": "quarter",
    "mode": "REQUIRED",
    "name": "qtr",
    "type": "STRING"
  },
  {
    "description": "total sales",
    "mode": "NULLABLE",
    "name": "sales",
    "type": "FLOAT"
  }
]
なお一旦Google Cloud Storageに放り込んでからやると高速 BigQueryにデータをバッチでインポートする - Qiita

COUNT DISTINCTだが、BigQueryでは概算値が返ってくる??。正確な値が必要な場合は、GROUP EACH BYとCOUNT(*)を組み合わせる
https://www.buildinsider.net/web/bigquery/01

■BigQuery機能
///クエリ結果を別テーブルに書き込む
その他>クエリの設定>クエリ結果の宛先テーブルを設定する
BigQueryではSELECT結果を他テーブルにInsert / テーブル洗い替えなどができる - コード日進月歩 (hateblo.jp)
クエリ結果の書き込み  |  BigQuery  |  Google Cloud

///パラメータ(変数)を使う
--parameter=min_count:INT64:250
SELECT word FROM `prj.ds.t` WHERE AND count >= @min_count
パラメータ化されたクエリの実行  |  BigQuery  |  Google Cloud

///*を受ける_TABLE_SUFFIXを使う(複数テーブルだとunion allになる)
SELECT year FROM `bigquery-public-data.ds.gsod19*`
WHERE _TABLE_SUFFIX BETWEEN '29' and '35'
ワイルドカード テーブルを使用した複数テーブルに対するクエリ  |  BigQuery  |  Google Cloud

///時間のパラメータを使う
select * from mytable_{run_time-1h|"%Y%m%d"}
実行時間run_time(UTC)から1時間引いた日→mytable_20180214
クエリのスケジューリング  |  BigQuery  |  Google Cloud

///動的にテーブル名を指定してcreate table
パラメータや変数や_TABLE_FUFFIXだけでは難しい。変数はテーブル名とは解釈されない、_table_fuffixはselect分のfrom句に入れwhere句で内容を指定するがcreate分は無理、execute immediateを用いる
DECLARE t STRING;
SET t = (SELECT CONCAT('x_emp_at', FORMAT_DATE("%Y%m%d", DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY))));
EXECUTE IMMEDIATE format('CREATE OR REPLACE TABLE `%s` AS SELECT * FROM `prj.bangboo_data.x_employee`', t);

ScheduledQueryでは出力テーブルの指定が可能でテーブル指定例:table001_{run_time-1h|"%Y%m%d"}でOK、なおSQL内にはrun_timeが使用できない

///既存のテーブルをコピー(CREATE OR REPLACE TABLEもあり)
CREATE TABLE IF NOT EXISTS bangboo_data.x_employee_copy (
  `no` INT64 NOT NULL,
  `name` STRING,
) as
select * from `prj.bangboo_data.x_employee`
データ定義言語ステートメントの使用  |  BigQuery  |  Google Cloud

///timestampとdatetime
datetime型カラムにはCURRENT_DATETIME()、timestamp型カラムにはCURRENT_TIMESTAMP()を使う
 timestampはUTC、datetimeはローカル的で地域指定ができる
 直近3分
 SELECT * FROM `aaa.ds.tbl111`
 WHERE `date` > DATETIME_SUB(CURRENT_DATETIME(), INTERVAL 3 MINUTE)

///パーティション
パーティション分割テーブルのクエリ  |  BigQuery  |  Google Cloud
 事前に作っておくかクエリ結果から作る→途中からではあまり意味がない
WHERE PARTITIONDATE BETWEEN '2021-01-01' AND '2021-01-02'
 --PARTITIONTIME BETWEEN TIMESTAMP('2021-01-01') AND TIMESTAMP('2021-01-02')

///Job kill
CALL BQ.JOBS.CANCEL('job_id')
CALL BQ.JOBS.CANCEL('project_id.job_id')

ジョブIDの取得
SELECT
 project_id,
 job_id,
 user_email,
 creation_time,
 start_time,
 --query,
 total_slot_ms
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
 --`region-us`.INFORMATION_SCHEMA.JOBS_BY_USER
 --`region-us`.INFORMATION_SCHEMA.JOBS_BY_FOLDER
 --`region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
WHERE state != "DONE"
 --state = "RUNNING"
 --state = "PENDING"
AND user_email = 'my@email.com'
AND project_id = 'paa'
AND start_time < TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 3 MINUTE)
AND total_slot_ms > (1000 * 30)
AND PARTITIONDATE BETWEEN '2021-01-01' AND '2021-01-02'
 --PARTITIONTIME BETWEEN TIMESTAMP('2021-01-01') AND TIMESTAMP('2021-01-02')

///プログラムで使う
from google.cloud import bigquery
client = bigquery.Client()
QUERY = ('SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013`')
query_job = client.query(QUERY)
rows = query_job.result()
for row in rows:
    print(row.name)

■IAM(Identity and Access Management) 
https://cloud.google.com/iam/docs/overview?hl=ja
https://cloud.google.com/iam?hl=ja
IAMベストプラクティス https://cloud.google.com/iam/docs/using-iam-securely
操作方法 https://cloud.google.com/iam/docs/how-to?hl=ja
ロール https://cloud.google.com/iam/docs/understanding-roles?hl=ja
https://www.isoroot.jp/blog/1244/
https://medium.com/google-cloud-jp/gcp-iam-beginner-b2e1ef7ad9c2

//IAMの機能
機械学習を使ったスマート アクセス制御の最適化
デバイスのセキュリティ、IP アドレス、リソースタイプ、日時などの属性に基づいて、リソースに対するきめ細かいアクセス制御ポリシー
権限の認可、解除、委任に関するすべての監査証跡の履歴
ユーザーとグループのプロビジョニングや管理、シングル サインオンの設定、2 要素認証プロセス(2FA)

//IAMポリシー
IDをGroup(●●部)にアサイン
 Members(Group等)にRoles(●●役)をアサイン
  MembersとはグループやドメインやID(Googleユーザアカウント、サービスアカウント)
 Roles(●●役)にPermissions(権限)を付与

ロールは作成ができ●●世話役みたいな感じか
permissionsは権限で「resourcemanager.projects.get」とかで付与する
 個人や無料アカだと組織がない?→フォルダが作成できない?
 組織がないとグループが作成できない→グループがないとIDにRoleを付与するしか
フォルダは組織ツリー状でリソース管理、グループはその人の集まりで部課で権限管理?
ポリシーはMSのGPOみたいものも組み込みで存在する
サービスアカウントはAPI用、人が使うことは想定されていない

//リソース
階層:Organization > Folders > Project > Resource(Google Cloud services)
割り当て:日や分に対してのデータ量の上限等を設定

必要以上に権限を付与しない
組み込みロールが多い、改変してロールを作るか
権限はサービス名.リソース.動詞という命名規則
検証:該当ユーザがproject-idにアクセスできるか?
https://console.cloud.google.com/logs?project=project-id


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


February 10, 2021

Python
おッPythonやるのか?

ファイル拡張子oppython.py デフォUTF-8、全部オブジェクト(list,dict,set等のミュータブルなら参照になる点に注意、必要ならcopy())
#コメント、ドキュメントストリング(三連引用符):"""そのまま表示""" print mymod.__doc__で見れる
変数型不要:p = 500 * num、定数はない
文字繰り返し、キャスト:"文字列" * 4 + str(p) + "Hi\nお元気ですか?\nSee u"
raw文字列でescしない:print(r"インストール先は c:\\code\python\bin です")
文字数:len("東京都")→3
文字列[開始:終了]→→ str = "Flower" print(str[1:4]) → low
文字列 % (値1, 値2, ...)→→ num= "10進数では %d 、16進数では %x " % (num, num)
"xxxx{index:書式指定子}xxxx".format(値)→→ "名は{:<8s}で年は{:>3d}で".format(name, age)
f"xxxx{値:書式指定子}xxxx"→→ f"名は{name:<8s}で年は{age:>3d}で" 
0/空の文字列''/値なしはfalse、Noneは? x = None x is None→→true?
//→除算切り捨てし整数、**→べき乗
関数宣言はdef kansu():だが、その中からglobal henでグローバル変数henにアクセスできる
try/exceptを関数内で設定することも、逆に関数呼び出し時にも使用ができる、else, finally, raiseも使う
とほほのPython入門 - リスト・タプル・辞書 - とほほのWWW入門 (tohoho-web.com)
リストa=[1,2,3]はmap(), filter(), reduce()等が使える、set()は重複の無いリストを扱いセット同士の減算、OR、AND、XOR 操作が可能
tuple→タプルは定数リスト、更新無しならリストより速い a = 1,2,3 a = (1, 2, 3)
dict→辞書は連想配列みたいな{a:1,b:2}はitems(), keys(), valus(), iteritems(), get()を使える
lambdaは無名関数?
str_w = input('何か入力してください-->') #入力させた値を取れるが数字もstr
__iter__()はnext()を持つオブジェクトを返し、next()は次の要素を返し、最後に達するとStopIteration例外を返す?
yield はイテレータを返すジェネレータを定義?
@デコレータは関数を実行する前後に特殊な処理を実行したい場合?
withで終了処理を指定できる、ファイル読込とその後の処理とか
assertや__debug__はテストで機体通りかを確認する?
passは中身の無い関数やクラスを作成しkara.p=1で粋なり属性追加等ができる
execは引数の文字列をPythonとして実行 exec "print 'Hello'"
delはオブジェクトを削除 del x, y, z
継承やオーバーライド class MyClass2(MyClass):
多重継承class MyClassC(MyClassA, MyClassB): で纏めて使えるようになる
class MyClass:
    """A simple example class"""  # 三重クォートによるコメント
    def __init__(self):  # コンストラクタ
        self.name = ""
    def __del__(self): #インスタンスが消滅する際に呼出でコンストラクタ
        print "DEL!"
    def __str__(self): #文字列化
        return "My name is " + self.name
    def getName(self):  # getName()メソッド
        return self.name
    def setName(self, name):  # setName()メソッド
        self.name = name
class MyClass2(MyClass):
    def world(self):
        print "World"
class MyClass3(MyClass):
    def hello(self):  # 親クラスのhello()メソッドをオーバーライド
        print "HELLO"
a = MyClass()  # クラスのインスタンスを生成
a.setName("Tanaka")  # setName()メソッドをコール
print a.getName()    # getName()メソッドをコール
print a  #=> My name is Tanaka 文字列化
b = MyClass2()  #継承
b.hello()    #=> Hello
b.world()    #=> World
c = MyClass3()  #オーバーライド
c.hello()    #=> HELLO
super()を使ってオーバーライドする
 super()は基底クラスのメソッドを継承した上で処理を拡張
 super().__init__(x、y)が使える
with構文で処理の前後で__enter__、__exit__を使う
 __enter__メソッドで事前処理
 __exit__メソッドで事後処理
if __name__ == "__main__":
 モジュール時の勝手実行を抑える
  import helloの時hello.py 内部での __name__ は "hello" 
  python hello.pyのような実行時hello.py の内部の __name__ は "__main__"
from math import pi, radians→mathモジュールから特定のオブジェクト(関数/変数/クラス)をimpo
import urllib.error→urllibパッケージからerrorモジュールをimpo、パッケージはフォルダ
import numpy as np→別名でしか使えなくなるnp.array()とかで
 モジュール=ファイル名.pyでファイルをimpoしている
 impo順:標準ライブラリ>サードパーティライブラリ>ローカルライブラリ(自作のライブラリ)

ここで動かせる→ Colaboratory へようこそ - Colaboratory (google.com)

【基礎一覧】Pythonの基本文法を全て解説してみた!【初心者】 (suwaru.tokyo)
Python基本文法まとめ - Qiita
とほほのPython入門 - とほほのWWW入門 (tohoho-web.com)
Python入門 ~Pythonのインストール方法やPythonを使ったプログラミングの方法について解説します~ | Let'sプログラミング (javadrive.jp)
Welcome to Python.org

HTMLの中に少し埋め込めず、基本的にプログラムの中にHTMLを埋め込む:CGI(Perl然)
 さくらインターネットでPython CGI (mwsoft.jp)
WSGI Python で WSGI (Web Server Gateway Interface) に従ったシンプルな Web サーバで Hello World - Qiita
Python用Webサイト用途フレームワーク:Flask(軽量)、Django
 WSGI について — Webアプリケーションフレームワークの作り方 in Python (c-bata.link)
 GCPでどう使うかは不明だがホスティングは↓
 ウェブ ホスティング | Google Cloud 静的ウェブサイトのホスティング  |  Cloud Storage  |  Google Cloud

ケチって分厚い本1冊にしたが全然進まぬ、薄い奴星e、?チッPython、誰がJSONじゃ~い

Posted by funa : 07:30 PM | Web | Comment (0) | Trackback (0)


January 27, 2021

Framework
群雄割拠か弱肉強食か政治解決か遣りたい放題の中、当事者なら自然に身につくだろうが時代に参加していない貴殿には到底分からない、シルバーブレットはなく結局は愚直しかない、どう愚直になるか/どう立ち回るかを発見するのがフレームワークだ、もしトレンドを感じればそれに乗ればよい、他にシーズがあればプロダクトアウト、ニーズがあればマーケットインだ

■フレームワーク
3C(Customer/Competitor/Company:自社)
SWOT(Strength-Weakness x Opportunity-Threat)
PEST分析(Politics/Economy/Society/Technology)
3M(人物金、Men/Material/Money)
3M(ムリ:負荷が人に掛かる/ムダ:資源が余り浪費しコスト高/ムラ:負荷と浪費が交互)
7S(<3sはハード>Structure/Strategy/System、<4sはソフト>Shared value:価値観/Skill/Staff/Style:文化)
VRIO(Value/Rarity/Inimitability:模範困難性/Organization)
MVV(Mission:使命why/Vision:将来像what/Value:価値観how)
マーケ4P4C(4p:product/price/place/promotion, 4c:customer cost/customer cost/convenience/communication)
QCD(Quarity品質/Costコスト/Delivery納期)

ポーターの5forces(Competitive Rivalry:競争企業間の敵対関係/Supplier Power:売り手の交渉力/Buyer Power:買い手=顧客の交渉力/Threat of Substitution:代替品の脅威/Threat of New Entry:新規参入業者の脅威)
コトラーのSTP(segmentation:顧客やニーズや特性等で細分化/targeting:セグメ選択/positioning:勝てる位置取り)
競争戦略ポジショニング (コストや差別化や集中戦略等で業界ポジを練る)
PPM:product portfolio mgt(市場成長率xシェア->問題児:花形に育てる/花形:継続投資/金のなる木:投資無し/負け犬:撤退検討)
製品ライフサイクル:PLC(導入期:認知度と需要up/成長期:製品多角化販路拡大/成熟期:差別化とコストダウン/衰退期:選択と集中効率化)
イノベータ理論(Innovators/Early Adopters/Early Majority/Late Majority/Laggards:16%キャズム:段階で戦略を変えていく)
RFM(recency/frequency/monetary->優良顧客を見つけよりマーケ)
ポーターのバリューチェーン(企画/開発/購買/製造/物流/販売/サービス/人事の各々での価値->VRIOで分析)
アンゾフの成長マトリクス(既存市場浸透:既存市場x既存商品/新市場開拓:新規市場x既存商品/新商品開発:既存市場x新規商品/多角化:新規市場x新規商品)
TOWS(クロスSWOT分析:SWOTをSWOTする->SWOTで現状分析、さらにSWOTで戦略化)
SCAMPER(アイデアの展開->substitute代用/combine結合/adapt応用/modify修正-magnify拡大/put to other uses転用/elininate削除-minify削減/reverse逆転-rearrange再編集)
ECRS:イクルス(改善策->排除/統合/交換/簡素)

ギャップ分析(As Is/To Be<-間にaction)
特性要因図:フィッシュボーンチャート(要因を網羅的に調べる、他にも親和図法やマインドマップ)
意思決定マトリックス(縦軸に候補、評価基準を横軸、評価基準に重みをつけて点を出し、合計の総合点で判断)
CS/CE分析(Customer satisfaction/Customer expectation->各機能のcsをceに合わせる、ce高cs低の改善)
リスク評価マップ(インパクトx不確実性、インパクト大に対処し小は静観、不確実性が高いと注意が必要<-pest/5f)
AIDMA...etc...

ユダヤの商法:78対22の法則で上手くいく、契約主義で約束を守る
ケイパビリティ戦略:ビジネスプロセスを能力化、スピード/整合性/明瞭性/俊敏性/革新性が上がる、CEOがツールや組織を検討
ポジショニング戦略:競合との位置付け、STP分析をしどうポジションを取り差別化するか
タイムベース競争戦略:時間こそが希少資源、スピードが一番顧客満足が高い、数稼ぐ
アダプティブ型戦略:多くの新しいアプローチを試し最も有望なものを拡大展開、PDCA、やらな分からん時代

ランチェスターの法則:
奇襲/武器/集中、逆にシェアトップで武器も兵数あると模倣し広域戦
 自分を知る、競合を知る、シェア1位を知る
 地域限定、顧客志向営業、販路、陽動奇襲の企画、強みに集中

逆転の競争戦略:
業界破壊者(枠を壊す)/侵入者(他業種からの参入)/挑戦者(競合が攻撃)がトップシェア企業を脅かす
1)企業資産の負債化=リーダーが持つ競争優位の源泉を攻めリーダーが蓄積してきた優位な経営資源を価値のないものにし負債にしてしまう戦略:モスは店内で調理しマックより優位に、あるいは逆にセントラルキッチン
2)市場資産の負債化=リーダー企業に有利に働いていた競争のルールを変更し、顧客が持つ資産(ソフトウェア、交換部品など)を使えなくする戦略:VISAよりQRのPaypay
3)論理の自縛化=安易に追随するとリーダー企業が発信してきたメッセージと矛盾することになり、企業イメージを低下させてしまう戦略:手作り丁寧より100均
4)事業の共喰化=リーダー企業が強みとしてきた製品・サービスと共喰い関係にあるような製品・サービスを市場に出すことで、リーダー企業内に追随するか否かの不協和音を引き起こす戦略:カーシェア

ーーーーーーーーーーーーーーーーーーーーーーーーーー
■現代思想
ニーチェ:ルサンチマン、奴隷道徳<>快と力の高揚感が生を肯定、ニヒリズム
マルクス:神格化、砂漠の水を都市で売ろう、紙一枚が命より大事…社会的関係の錯覚
フロイト:無意識<>理性、理性は単なるハリボテであり無意識が主人で自律神経も管理
 エス(快楽主義)>自我:Ego(調整役)>超自我:Super ego(親/社会/会社の価値観の同一化)
  親や社会等から裏切られると同一化できずトラウマ、葛藤を無意識化に隠したい
ユング:Collective unconscious(人類は人種に限らず同じ記憶を持っている)

ーーーーーーーーーーーーーーーーーーーーーーーーーー
■リーダーシップで面白いほど結果が出る本
(仕事の種類)リーダシップ分類:指示/率先/構想/合意/育成/関係構築
  リーダシップ→変化、コントロール→維持(基本どちらもPDCA)
  若手に新しい変化のリーダシップが期待されている
(担当)鷹の眼と蟻の眼(大きな視点の戦略+現場の改善)
(頭脳)1)構想力、2)推進力、3)育成力
  →アイデア発表、ダメ出し、頼りにされる
1)構想力:戦略をゲームとして導入する、仕事の意味を伝える、今を楽しむフロー没入
2)推進力:手段の目的化を防ぐダメ出し、メンバーに寄り添う:会話の時間が足りない、現場のアイデアや成功事例を吸い出し
3)育成力:個々人の心のベクトルを少しプラスに、共通言語の定着(これがないと心の障壁や違和感)
(発想は言葉から、リーダは言葉が大事)

Posted by funa : 03:00 AM | Column | Comment (0) | Trackback (0)


January 21, 2021

Who watches

心拍数は実感でよいが、アポ―に心電図機能が付くらしい、酸素濃度も確認ができる
それらの機能と、GPSとベルトを確認してみたいな、42800円から、無理だ
よく分からんがGPSマップ等も思うような感じで使えそうだ、iPhone要る

=========
2014-04-12に投稿 GPS Watch


ブタさんマークのBryton Cardio40。格安で入手できた。
Garmin910xtと機能が似ていて薄くて軽い。いいよコレは、ヨシオ。
ベルトはANT+に対応しているのでガーミンのGarmin Heart Rate Monitorが推し機器。

http://www.brytonsport.com/
マニュアル

トレーニングとは穴のあいたバケツに水を溜める作業だ
体がNOと叫んだら、私はYESと答える
走った距離は裏切らない。いついかなる時も決して裏切ることのない唯一無二の友、それが筋肉
千回と千1回とでは天と地の隔たり、最後の1発はその前の千に勝るとも劣らない価値がある
君のこめかみに拳銃を突きつけて「あと2repsやれ」と言ったらどうするね?死に物狂いでやるだろう?追い込むとはそういうことさ
http://www.2monkeys.jp/archives/34051594.html

Posted by funa : 09:21 PM | Gadget | Comment (0) | Trackback (0)


January 11, 2021

I ain't update nothing yet

「今年2021年は間違いなく株価が暴落する」との見出し→日経が下がらない場合は「予想が外れたとして私の株価が下がるため間違いはない」のだと

■アフターデジタル2 UXと自由
Line payとか決済の感じを言っている、キックボードな感じではなかった
個人的にはAIもデータも信じていない、やっぱりデカい絵より個の可能性が良いという勘、アフターコロナ操り人形ではないぞと人々はなるか

決済>サービサー>メーカ のヒエラルキーに
 Line pay、Pay2、dとかが総合サービスとなりメーカを操る

取得したデータがユーザに価値を与える、UXとして還元、不義理しない責任があると中国
顧客を知るデータ(UX->data->AI)→体験型サービス(世界観、コア体験)
 高頻度接点>成長シナリオ>体験を自動化するシステム(リコメンド、VIP)
  属性データは終わり行動データ→状況ターゲティング
  ┣タイミング(ライフタイム、刹那)
  ┗好きと思われるもの
  AI(行動パターンのセグメント、仮説の結果分析とか)

UX品質:スタンダード(便利か、楽か、使いやすいか、楽しいか)
バリュージャーニー(アプリ、店舗、イベント、コールセンター)の各接点のコンセプトで顧客支援→ファン化

デジタル接点をメインにリアルをツール的に使う、丸井は売らない店舗
 コスト削減(流通、マーケ、金融、インフラ)
 UXの改善、新しいUX→DX(ペインポイントから未来を創る)

日本はホワイトリスト、中国米国はブラックリスト、日本はグレーは黒とされ許されない、中国はグレーは黒ではない
スタバは固執せずにデリをし新しい形でブランディングをした、発想の転換
逆にオフラインの方が新規獲得コストが安く逆転が見られる、自販機出すとか
会社の歴史のDNAを引き継ぐ(重要人物を巻き込む)
ダメ:市場にすでに代替がある、商品起点でユーザ起点でない、社内政治でユーザ視点でない

スターバックスラテwithハニーホイップ venti、量が多く後からガンガン冴えて寝れん、スタバは店が温かくてベンティで3時間はイケるがグランデから2shotらしいのでトール一択では、ガストの大盛ポテトと赤ワインx2とどっちが体験が良いか:両方いいな

=====
2019-12-08に投稿 Losing your job
仮にAI自体に先進性がなかったとしても、仕事が無くなることは社会的インパクトがある
過去10年はEndUserComputingでスピード化が勝負だったと思う、次は勝負ではなくソーシャルイシューの解決だと見た、社会問題を解決できるトコロが生き残る切符をもらえる感じ、AIやクラウドで商売臭が強すぎて惑わされるが

 早くより良いサービスが提供ができる、コスト/人を少なくできる、やらなければ他社にヤラれる
 お金をかけてデータ検証をしても、そうしたとこのマネをすれば良い、デジタルはコピーできるし
 無人化をしても店員の仕事が減るだけ、RPA
 加点評価の制度を敷いても少しの損得が出るだけかも、根本的には何も変わらないかも
  (DIDIでは評価が高いと単価が高いドライバーになる、評価は買収ができないようセンサー等の公平な指標を使う等)
 AIでもツール自体はコモディティ化するので優位性はすぐになくなる
 競合を見ておき自動運転、Amazon等の黒船が出てきても対応できるようにする
  競争力の問題?古いやり方はダメなの?UXで負けると死ぬ、お金目茶掛からん?

 腐す業界慣習を打開し、アパレルの在庫破棄とか、雇用や無駄な事を守ることより正しいこと、あるべきようにやる、M&Aや業界団体を通じて再編をするしか、中国ではアイデア商品が作られ日本Amazonで買えるし小回りを利かして大きなマーケットに行くのもできる、正しいことをするとマーケットが変わるかも知れないのもDXか

■アフターデジタル
オンライン後の理想を実現するだけ。デジタルで塗り替える、シェアリングエコノミー、逆にオンラインストアが店舗を持ち発送する等区別がない、スタバが古く新しいカフェが勝つかも、GoogleやAmazonのように未完成でも出しマーケットを取る。デジタルによる社内連携を変える、鉄道が郵便や新聞や銀行を作ったようにデジタルが何かを作るかも
Uber等のデリバリーが現れると店舗が不要、キャッシュレス決済で購入する意識が変わる>決済時間は減るので形に嵌められた対応より店員のエンターテイメントで選ばれる
中国の事例が多いが人口が多く世界の工場となっているから必然性があったのかも知れない

■Deep Tech
プロパンを軽く運ぶ装置を開発:古いビジネスを技術で改良、イノベーションのジレンマの先を行く、まあ何としても商品を作る意気込みではBy Productを商品化とか

■AI救国論
ある国をディスって炎上した人。ある種重要なことを言うと揚げ足を取られ村八分される場合がある。危険思想や儲け過ぎ、やっかみが理由。炎上マーケの場合もマッチポンプで画を描くので構造は同じではないか。AI、ロボ、英語を強調している、また若者こそ優秀、日本のITは変、日本には若い良い技術者がいない、給料が、受験システムがダメで高専がいいと主張。:社会システムの革新性が込みではあろうな、高学歴より高専の方がよりプラクティカルなのはプラクティカルで育ったので当たり前では


黒船になる輸出できるもの、マネのできないもの は脅威になる
 経験や勘ではなくデータ(レーシングもデータを使うがある程度からは数値より経験、無いデータは要るがデータ頼りとは情けない)
  アウトドアスポーツ用品店で改革(売り場の壁の高さ、動線分析、何故買わなかったのか)
  データを持っていると商圏、購入金額、購入内容の予想ができ出店が簡単になる
管理側が被管理側をどう誘導するかという観点しかない
 最前線で使用されるべきツールが管理側でしか使用されない、ボトムアップの時代は来ない?
 どんなデータ、あるいは業務が必要かは現場が一番分かっているべきだが
DX化デジタルトランスフォーメーションで何を変えるか、古いものをデジタル化するだけ?
 現業務にデジタルを適用>リアルとデジタルをUXに基づき融合>デジタルで収益構造を変える
  デジタル的マーケティング、シェアリングとか
 人間を変えるべきでは?人間自体が一番変わる
  果てし無く記憶力がある、42kmを誰もが2時間で走れる、空を飛べると世界が変わる
組織の力を変える
効率やコスパや低価格、かつスタイルがCoolなもの、ポケモンゴーのような流行るマーケ仕組みを入れる(人が溜まる、列を作る)、AIも所詮バズワード
面倒なことはAIにやらせるというスキルは取得すべき

DX意味わからん。「IT革命」と何が違うの?という話|広木大地(日本CTO協会理事/レクター取締役)|note
ナニガ安く簡単になったか分からないと駄目→どう動けばいいか知る→突然儲けの出るビジネスがなくなるかも

=====
2018-04-30に投稿 Smart contract, AI & Emo

■AI雑感
アルゴリズムが鍵、ロジックをどうプログラムするか考え方が変わるとなると手を動かしてスキルを取得しておかないとな、面倒なことはAIにやらせるのがいいかも知れない、始めと終わり以外の中間成果物的なところ

ディープラーニング:人間が理解しない形のデータが扱える(音声をウェーブでなくn次元の座標にする等しても良い)
マシーンラーニング:教師

機械学習の一連手順
1)データの可視化  :データの全体感を掴んで前処理の方針を決める
2)データの前処理  :予測精度が高くなるよう、データを綺麗にする
3)アルゴリズムの選定:データに対して適切なアルゴリズムを決める
4)モデルの学習   :コンピュータにデータの法則性を学習させる
5)モデルの検証   :出来上がったモデルの予測精度を確認する

AIが建築設計をし人間は間取りを選ぶだけ
癌画像診断、コンクリ護岸点検、バレーボールのセッター配球予測、経理伝票の仕分け入力
Adobe:類似例の自動生成
チャットボット:質問をすれば最適解を回答してくれる
HRテック(AIで評価/効果測定/異動/離職、経歴/性格/IQ/遺伝まで全自動)
 性格も知識も偏った変/嫌なやつが一番企業に利益をもたらしている事が分かった
 誰かを犠牲にするイノベーション、ジョブズのように人をビュンビュン振り回す人
  普通の成績の子どもたちは高い協調性を求められ組織や集団の中で大過なく過ごす
https://bunshun.jp/articles/-/28229?page=4

 (人間が時間を掛けて選択していることをAIにやらせる、多変量解析でもいいかも知らんが)

仕組みについてはここが良い感じかと
https://aizine.ai/algorithm-0315/

■Smart contract雑感
中央管理者を必要としない事のデメリットの癖が強い、用途が限られる
 1)スケーラビリティ
  ビットコインは総量がある
  信頼性を担保するのにノード数が必要なくせに
  履歴を持つくせにパフォーマンスを考えるとデータ量は多くできない
 2)プライベートでもすべてオープンになる

仮想通貨により世界統一通貨を実現したり、紙幣やコインが不要になったり、IMFが不要になったりするかも知れない
中央政府が不要になる可能性

■エモ消費
世代的消費活動の括り、消費というかどうやって浪費させるかという手法

https://note.mu/wildriverpeace/n/necb216232d12
いいモノを作れば売れる、広告で認知させれば売れる、割引やオトクを提示すれば売れる、は既に終わっている
モノからコト/体験へなんて言われたのははるか昔の2000年の頃 CD→握手→入れあげ
 モノは外に揃える、コトは外からの刺激(必要なモノは揃えてしまった、高品質の置いてけぼり感)
エモは入れ込む、特に女に(コトに刺激され、未完成なものに巻き込まれる)

 精神的充足
 コミュニティへの帰属意識
 瞬間的につながる刹那のコミュニティ
 今この瞬間の自己肯定感

https://comemo.io/entries/7261
家族は現状幸福度が高い。だからこそ現在の状態を維持したいという消費
幸福度の低いソロは、現状を打破するためにお金と時間を費やしたい

承認と達成感、また幸せ感の共有、帰属意識(体験/時間の共有、純粋な体験や時間でなく共有を含む)
 幸せのマイレージを貯める行動

消費者の関与によって完成するからこそ「エモい」のです。ニコニコ超会議やコミケが盛り上がるのはそういうこと
エモいとは単に感動したというより、美的/切なさ、はたから見れば哀れみを含む

-----------
■Booランディング
コンテンツが重要というが、余程のことがないと人は中身を見ていない
人間の馬鹿なところを突くというのが商法の本質
品質とは何か、ブランドで差異化、多広告対応、一定期間の体験
 Apple: 紛らわしい販売店、コピー商品を防ぐ
 ハイネケン: ステーショナリー
 幻冬舎: やりたいことをやってもいい。判断は極端であること

Posted by funa : 06:58 PM | Column | Comment (0) | Trackback (0)


December 25, 2020

Promise
仕事は炎上芸なり~と勤しむ炎上芸人にも分かるように解説をさせて頂きたく候
(勤しむところはソコではない)

///promise/async/await 非同期関数
https://rightcode.co.jp/blog/information-technology/javascript-promise
https://rightcode.co.jp/blog/information-technology/javascript-async-await
http://www.tohoho-web.com/ex/promise.html
https://sbfl.net/blog/2016/07/13/simplifying-async-code-with-promise-and-async-await/
https://qiita.com/niusounds/items/37c1f9b021b62194e077
https://qiita.com/soarflat/items/1a9613e023200bbebcb3
非同期関数は処理の順序を制御できない問題があった、そこでPromise
Promise オブジェクトは then(ok_callback, ng_callback) というメソッドを持ちます。
then() はPromise が成功または失敗になるまで処理を受け流し、
処理を.then()で繋げ順番を確保することが可能
成功時に ok_callback を、失敗時に ng_callback をコールバック関数として呼び出します
.then() は第一引数に成功時のコールバック関数、第二引数に失敗時のコールバック関数
.catch(ng_callback) は、.then(undefined, ng_callback) と同じ意味
.catch() は処理中に発生した throw をキャッチできる
ES2018(ES9) では、.finally() がサポートされました
function aFunc3(data) {
    return new Promise(function(okCallback, ngCallback) {
        setTimeout(function() {
            if (Math.random() < 0.30) {
                ngCallback(new Error('ERROR!'));
            } else {
                okCallback(data * 2);
            }
        }, Math.random() * 1000);
    });
}
function sample_finally2() {
    aFunc3(100).then((data) => {
        console.log(data);
        return aFunc3(data);
    })
    .then((data) => {
        console.log(data);
        return aFunc3(data);
    })
    .then((data) => {
        console.log(data);
         throw new Error('ERROR!!!');
    })
    .catch((e) => {
        console.log("catch");
        console.log(e);
    })
    .finally(() => {
        console.log('*** Finally ***');
    });
}
//200 400 800 catch Error:ERRROR!!! *** Finally ***
Promise.all() は配列で指定された全てのPromiseタスクを待ち全てが完了した時点で .then()を呼ぶ
Promise.race()ならいずれかのPromise
function sample_all() {
    p1 = taskA();
    p2 = taskB();
    Promise.all([p1, p2]).then(() => {
        console.log("taskA and taskB are finished.");
    });
}
ES2017 では、async/await がサポートされました
async と await を用いることで、Promise に対応した非同期関数を、同期関数の様にシンプルに呼び出すことが可能となります
同期関数の様に呼び出したい非同期関数を呼び出す際に await をつけます。await を呼び出す関数に async をつけます
async function sample_async_await_with_catch() {
    var val = 100;
    try {
        val = await aFunc3(val);
        console.log(val);
        val = await aFunc3(val);
        console.log(val);
        val = await aFunc3(val);
        console.log(val);
    } catch (e) {
        console.log(e);
    }
}

■コールバック関数
広い定義でいうと「高階関数に渡すための関数」
「関数を受け取る関数」は「高階関数」、つまりhello()がコールバック関数
// 関数を2回実行する関数!!
function doTwice(func) {
  func(); // 1回目Hello!
  func(); // 2回目Hello!
}
// あいさつするだけの関数
function hello() {
  console.log('Hello!');
}
// あいさつを2回実行する
doTwice(hello);

========================================
もっと詳しく、もっと分かり易く、どう使うか↓

https://knowledge.sakura.ad.jp/24890/
https://jsprimer.net/basic/async/
https://dev.classmethod.jp/articles/javascript-asynchronous-processing/
■処理の繋がり
1)コールバック関数
 ある関数の処理が終われば次のコールバック関数を呼ぶという指定がそれ
 歴史的にはエラーファーストコールバック(のルール)
  処理が失敗した場合は、コールバック関数の1番目の引数にエラーオブジェクトを渡して呼び出す
  処理が成功した場合は、コールバック関数の1番目の引数にはnullを渡し、2番目以降の引数に成功時の結果を渡して呼び出す
  fs.readFile("./example.txt", (error, data) => {

2)Promise(非同期処理に対するPromise→順番を合わせる意味では同期処理ではと思う?JSはシングルスレッドかつ非同期という糞?仕様)
 ある関数の処理が終わればPromiseオブジェクトを返す
 JSがシングルスレッドだが 処理を一定の単位ごとに分け処理を切り替えながら実行する並行処理(concurrent)の仕様のため 順序を考慮する必要がある
  非同期処理の実行中にとても重たい処理があると非同期処理の切り替えが遅れる

Promiseオブジェクトは3つの内部状態を持ちます。
 pending(保留): まだ非同期処理は終わっていない(成功も失敗もしていない)
 fulfilled(成功): 非同期処理が正常に終了した
 rejected(拒否): 非同期処理が失敗した
  初期状態はpendingで、一度fulfilledまたはrejectedになったらそれ以降は状態は変わらず、非同期処理の終了時に返す値もそれ以降は変わらない

Promiseのコンストラクターは関数を引数に取って、その関数がさらに2つの関数を引数に取る
 1番目の関数(resolve)に引数を渡して実行すると状態がfulfilledになり、引数の値はPromiseオブジェクトが保持する値になる
 2番目の関数(reject)に引数を渡して実行すると状態がrejectedになり、引数の値はPromiseオブジェクトが保持する値になる
 関数が例外を投げた場合も状態がrejectedになり、投げた値がPromiseオブジェクトが保持する値になる、throwする値をrejectedに渡して実行した時と同じ

then()は2つの関数を引数に取り、Promiseの状態がfulfilledになったら1番目の関数が、rejectedになったら2番目の関数が実行されます。
 then()の1番目の引数が関数でなければidentity function(入力値をそのまま返す関数)が代わりに使われます
 2番目の引数が関数でなければthrower function(入力値を例外として投げる関数)が代わりに使われます
  catch()は1番目の引数にidentity functionを指定したthen()と同じ

上の挙動をオレオレPromiseをYakusokuで作っているので分かり易い https://knowledge.sakura.ad.jp/24890/

なお、本質としてはコレ、下記ソースが決まりの流れ、ひな形としてヤリ慣れるしか
1)時間が掛かる処理をPromise化して順序立てよう
2)成功と失敗のコールバックを指定しよう

//処理にコールバック関数を入れて成功と失敗時の型で終える
function dummyFetch(cmt, callBack) {
    setTimeout(() => {
        if (cmt.startsWith("/success")) {
            callBack(null, { body: `Response body of ${cmt}` });
        } else {
            callBack(new Error("Bad"));
        }
    }, 1000 * Math.random());
}
//プロミスを入れるためラッパーを関数にかます
function aaaFilePromise(cmt) {
  return new Promise((resolve, reject) => {
    dummyFetch(cmt, (err, data) => {
      if (err) {
        reject(err); // 失敗: 内部状態をrejectedにする
      }
      else {
        resolve(data); // 成功: 内部状態をfulfilledにする
      }
    });
  });
}
//プロミスチェーンでのフロー
aaaFilePromise("/success/passwd")
  .then((data) => { // 読み出しに成功したらresolve()に渡した値が引数として渡される
    console.log("1", data);
    //return 'next';//テキストがあってもなくても次のthenに行く、省略でもテキストでも第一引数関数に行く成功側
    return aaaFilePromise("/etc/text");//エラーで次のthenの失敗側の第二引数関数にきっちり行く
  })
  .then((data) => {
    console.log("2", data);
    return aaaFilePromise("/success/shadow1");
  }, (data) => {
    console.log("2e", data);
    return aaaFilePromise("/success/shadow2");
  })
  .then((data) => {
    console.log("3", data);
    return aaaFilePromise("/etc/shadow");
  })
  .catch((err) => { // reject()に渡した値が引数として渡される
    console.log("error", err);
  });

then()/ catch()は、引数で渡された関数の戻り値から新たにPromiseオブェクトを作り、そのオブジェクトを返します。そのためメソッドチェーンが可能
  引数に渡した関数の戻り値がPromiseオブジェクトの場合はそのオブジェクトをそのまま返す、そうでなければ戻り値をPromiseで包んで返す
 エラーでキャッチに飛ぶ訳ではなく次のthen第2引数関数に飛んでいる、省略でcatchに行っているように見えるだけ

dexieやPWAでの提供があり使う(処理を順序立てて使うようプログラムを組む時に
dexie: db.schedule.where('site').equals('sche').first().then(function(records) {
pwa: caches.keys().then(function(keyList){
return Promise.all(keyList.map(function(key){

3)async / await
promiseは順番決めができたがasync/awaitは順番を扱う処理もできる
setTimeout/setIntevalがプロミスチェーンだけでは時間を止められない
 シングルスレッドから似非スレッドで分離し非同期になるから、awaitを入れると同期する↓
const wait = (sec) => {
  return new Promise((resolve, reject) => { setTimeout(resolve, sec*1000);  });
};
async function arrKick_async(arr) {
    for(let i=1; i<=num_arr; i++){
      arr = await kickPromise(arr);
      await wait(2);
    }
}
arrKick_async(arr);

========================================
JSネイティブとPromiseとasyncが混ざった場合は同期しない、then()すら超えてくる↓

4)コールバック地獄
結局コールバック地獄が扱いやすい(スレッドの切り替えがなければ同期ができる)、最近のJSフレームワークは全部Promise化しているらしいが

例)キャッシュを保存し、そのステータスを取るようにAsyncやPromiseで保存待ちの順番をにしても、待たない

//隙間がないと1度エラーだとエラーになりっぱなし
let num_cache;
num_cache = getCacheStatus();
if(num_cache == 0 || !num_cache){
num_cache = getCacheStatus();
if(num_cache == 0 || !num_cache){
num_cache = getCacheStatus();
if(num_cache == 0 || !num_cache){
num_cache = getCacheStatus();
if(num_cache == 0 || !num_cache){

//setTimeoutで隙間があっても関数スレッドの返り値を代入するスレッド切替時に、返り値を待つスレッドの方は次の処理に進んでしまいIF判定ができない
let s = setTimeout(function(){
let num_cache1 = getCacheStatus();
if(num_cache1 == 0 || !num_cache1){
s = setTimeout(function(){
let num_cache2 = getCacheStatus();
if(num_cache2 == 0 || !num_cache2){
s = setTimeout(function(){
let num_cache3 = getCacheStatus();
if(num_cache3 == 0 || !num_cache3){
s = setTimeout(function(){
let num_cache4 = getCacheStatus();
if(num_cache4 == 0 || !num_cache4){

//Func返り値やPromiseやAsyncでのスレッドの切り替えがないDOMの判定であれば上手くいく
let s = setTimeout(function(){
getCacheStatus();
if(document.getElementById('mes_filenames').innerHTML == 'none'){
s = setTimeout(function(){
getCacheStatus();
if(document.getElementById('mes_filenames').innerHTML == 'none'){
s = setTimeout(function(){
getCacheStatus();
if(document.getElementById('mes_filenames').innerHTML == 'none'){
s = setTimeout(function(){
getCacheStatus();
if(document.getElementById('mes_filenames').innerHTML == 'none'){
s = setTimeout(function(){
getCacheStatus();
if(document.getElementById('mes_filenames').innerHTML == '<?php echo $lang_page->install_none; ?>'){

function getCacheStatus(){
let num_caches = 0;
let num_success = 0;
caches.keys().then(function(keyList){
  return Promise.all(keyList.map(function(key){
caches.open(key).then(function(cache) {
cache.matchAll().then(function(response) {
document.getElementById('mes_filenames').innerHTML = '';
let s;
let o;
for(const value of response){
s = value.status;
o = value.ok;
document.getElementById('mes_filenames').insertAdjacentHTML('afterbegin', value.url + '<br>');
if(s == '200' && o){
num_success++;
}
num_caches++;
}
if(num_caches > 0){
document.getElementById('mes_progress_rate').innerHTML = 'Progress: ' + num_success / num_caches * 100 + '%';
}else{
document.getElementById('mes_filenames').innerHTML = 'None';
}
});
});
  }));
});
return num_caches;
}
===============
thenの入れ子だと親の部分だけ先に進んでしまう、入れ子ダメで親子を作れば親→子の一方方向で子で終わるトーナメント構造で(上がらない)
test1().then((result) => {
test2().then((result) => { //fuok });
})then(function() これは入れ子

test1().then((result) => {
test2().then((result) => {
//fuok
})then(function(){ //fuok2 }); これでトーナメント構造
})catch(function(e)

promiseチェーンでthen毎にに欲しい引数を出すが、複数であればそれらの引数をthenに渡せない、下記駄目
 1)thenで一つの引数になるようにロジックを組む(thenのトーナメント構造、一階層上で変数に入れる等)
}).then(function(response){
return [response.json(), arr_del];
}).then(function(v) {
json = v[0]; arr = v[1];

===============
Promise化していない関数を使いたいが、そのまま使うかthen化できるようにするか?
 1)次thenに進みたい元Funcの処理としてresolveの返り値に入れる、ダメなら省略可だがreject()に渡しcatchする
 2)次thenには適当でもいいのでreturnで進む
function test1 () {
  return new Promise((resolve, reject) => {
    const a = 1;
    const b = 2;
    resolve([a, b]);
  })
}
test1().then((result) => {
  console.log(result[0]); // 1
  console.log(result[1]); // 2
  return 'go next';
}).then(function(){

エラーハンドリングしたい、よくわからんが下記で動作に違いがでた、rejectはJSがエラーを吐いた
 1)catchさせるにはthrow new Errorし、alertを出す
 2)catchはしないが次のthenには移動させないためreturn false
}).then(function(json){
if(json.init == 'Not appropriate access'){
throw new Error('Server warning');
}else if(json.init == 'No data'){
//reject("initiate!");
return false;
}else{
resolve(json);
}
}).catch(function(error){
alert('Ooops:  ' + error);
});
Promise.allを使って、3つのpromiseを同時に実行、allはすべての非同期処理がresolveされたタイミングで結果を返
Promise.all([test1, test2, test3]).then(function() {
    console.log("Fourth");
もっと簡単に async, await, Promise - Qiita

■Javascript
https://www.bangboo.com/cms/blog/page_325.html

Posted by funa : 01:06 AM | Web | Comment (0) | Trackback (0)


October 18, 2020

竹書房 Annex

Is that DON'T BOO? BANG BOO, right?

■夢をかなえるゾウ4、ガネージャと死神
自分、今の生き方やったら死ぬときめっちゃ後悔するで。

///死神の教え(誰も皆ほぼ同じことに後悔する)
本当にやりたいことをやらなかったこと
健康を大切にしなかったこと
仕事ばかりしていたこと
会いたい人に会いに行かなかったこと
学ぶべきことを学ばなかったこと
人を許さなかったこと
人の意見に耳をかさなかったこと
人に感謝の言葉を伝えられなかったこと
死の準備をしておかなかったこと
生きた証を残さなかったこと
(遺書を書く、死後に人に伝えたいメッセージを書く:やりたいリストをやれる)

結局、人間の夢なんて『お金持ちになりたい』とか『魅力的な異性と付き合いたい』とか『自分の名前が残るような仕事がしたい』とか、そんなんばっかで、全然バラエティに富んでへんやん→お前の夢面白んない

///ガネーシャの課題 
1.健康に良いことを始める:行動を管理して目標を達成する習慣化
2.死後に必要な手続きを調べる:目を逸らしたくなる現実に向き合う、死後家族を守る
3.お金の問題がなかったらどんな仕事をしたいか夢想する:人が買うてくれる価値を作る→情熱
4.大きな夢に向かう小さな一歩を 今日踏み出す:やれることは何でもある、調べるでも
5.人に会ってわだかまりを解く:器の持ち主が家族会社を末永く繁栄できる
6.死ぬまでにやりたいことリストを作る:20個以上、リマインダ、ワクワクできる
7.経験したことのないサービスを受ける:勉強になる、どっちかに囚われず本当に望むものを選べるようになる
8.節約を楽しむ:贅沢した後の道理、工夫して楽しめ
9.思い切って仕事を休む:他人の評価が下がることを恐れてる、本当に大事なものより
10.自分の体に感謝をする:労わらんのはブラック、他人にも気遣いができるようになり、力を引き出せる
11.身近な人に感謝の言葉を伝える:人の苦労が分かる
12.周囲の期待と違う行動をとる:本心と期待の間でどっちが本物かわかる
13.限界を感じた時 もうひと踏ん張りする:頑張りすぎ意味ないという言い訳はなし
14.両親の生い立ちを知る:自分が人生で感じた痛みは親が感じた痛み、酒を飲んで語り合う、何を世襲する
15.かなえてきた夢を思い出す:忘れてしまう、将来に縛られて不幸せか
16.他者の欠点を受け入れる姿勢を持つ(見る場所を変える、相手の背景を想像する、他人に完璧さを求めている自分に気づく):苦しみは必ず減る、他人でイライラする必要はない
17.つながりを意識する時間を持つ:岩も石も砂もない、同じでダイヤと線を引かない
18.喜怒哀楽を表に出す:繋がった世界では死がない、安らぎの世界から切り離され不安で泣きながら生まれてくる、喜びも感動も存在できない

追い詰められて強なる奴は自分を責められる奴、弱なる奴は一発逆転を狙ってまう、期待だけ膨らんでまう
タバコ吸わんで健康で良かったと思う人、一方タバコが吸えんと苦しい人、無いから苦しいんやない、奪われたから苦しいんや

トルストイ)死の準備をするということは充実した人生を送るということ、人生の充実によって安らかに死を迎えられる
ジミヘン)死が訪れたとき死ぬのは俺なんだ、俺の好きなように生きさせてくれ
ヘップバーン)もし世界が終るとしても幸運だったこと楽しかったことの全てを思い出す
ルター)死は人生の終末ではない、生涯の完成である

夢はかならず叶うというのは原動力になる
偉人も生きているうちに夢を叶えた人は少ない ディズニー、アインシュタイン、エジソン、ダビンチ
あきらめと受け入れは同じ 死はかなわない夢 叶わないことを受け入れる
衣食住医で過去の人の夢は叶えた状態
病気で死んだ人も薬が何十年か後に出来て生きれる、夢はいつか叶う、全ての夢は叶う、タスキを受け死んだ人の夢を叶えるのは今を生きている人
死は土に返るだけで原子は変わらない形が変わっただけ、恐れる必要はない
完全な光を見れるのは夢を追っているときだけ、叶えたとき裏側の闇を知る、死後を想像し光で満たされた場所と考えるなら、生きている間を夢を追っている最中とする事ができる
輪廻し形を変えながらあなたでしか経験できない尊さ

生と死の対比でエモさがズルい、夢のような張りがないと体の反応として死んでいく、無意識が意識をコントロールするのが理性で表を保つ役割がある、裏表なく無意識を意識化し一体とすることはパフォーマンスがあがるが長期だと自然過ぎて刺激や葛藤がなくボケて死ぬ?生という快楽への執着でしかないがね

■夢をかなえるゾウ3 ブラックガネーシャの教え

基本的にスパルタで集中、頑張る人生でないと何も始まらない
だが楽しい/報酬を見出す、環境は他人なので人に頼る

///ガネーシャの課題 
自分の持ち物で本当に必要なものだけを残し必要のないものは捨てる
苦手な分野のプラス面を見つけて克服する(遠ざけない)
目標を誰かに宣言する(口に出してしまう)
うまくいっている人のやり方を調べる(ダメな奴は自己流)
一度自分のやり方を捨て、うまくいっている人のやり方を徹底的に真似る
空いた時間をすべて使う(お前中途半端やねん)
合わない人をホメる(人を使うには)
決まずいお願い事を口に出す(夢には衝突も避けられないので練習にもなる)
今までずっと避けていたことをやってみる(頭のどこかでやった方が良いと思っている)
自分の仕事でお客さんとして感動できるところを見つける(感動を繋げられるのが天職)
一度儲けを忘れてお客さんが喜ぶことだけを考える(発想の転換)
自分の考えを疑ってみる
自分にとって勇気が必要なことを一つ実行する
優れた人から直接教えてもらう
一緒に働いている人に感謝の言葉を伝える(社長は社員に掛けると退職率が違う等)
自分で自由にできる仕事を作る(自分で工夫できるのはゲームより楽しい)
余裕がないときにユーモアを言う
目の前の苦しみを乗り越えたら手に入れられるものを、できるだけ多く紙に書き出す
欲しいものが手に入っていくストーリを考えて空想をふくらませていく
手に入れたいものを目に見える形にして、いつでも見れる場所に置いておく
自分流にアレンジする(自分で思いつくが大事、アイデアを試したくなる、工夫)

(ブラック富神:錯覚を利用、短期やバレなければ)
希少価値を演出する
あえて自分の不利益になることを言って信用してもらう
周囲の人間関係を断つ(情や人のせいにしてしまうから)
中毒にする(次もその次もとなる、油や砂糖)

夢や成功を手に入れるには、つらいことや苦しいことは決して避けられない
ほとんどの人は避けるが、乗り越えることで相応の魅力や価値を身に着けるのだ
(魅力や価値)

■夢をかなえるゾウ2 ガネーシャと貧乏神
「お金」と「幸せ」の関係、ごっついの教えたろか。

夢追い痛い人、誘惑に負ける人、仕事で儲けられない人は貧乏になる
競争は相対的であり勝つしかない、絶対的と分けて捉える
欲しいものを口に出す

成功まで止めない、努力、練習量、向き不向き、成長する
やりたい事をやると滅茶成長させてくれる、そういう所へ行く
借金で退路を断つ?、カタ嵌められてるが

意見を聴いて直す、分析に時間をかける
貧乏になる素質があるか:分析してみ

辛い状況を笑い話>挑戦できるし自由になる
みんな辛いしお前だけではない

他人を誉める、プレゼントする、楽しみを見つける、自分が困ってても
貧乏神は福の神になる、貧乏な時でも好きなら結婚する?

才能と向き合う=貧乏を経験するということかも
TVは人を勘違いさせるために●を出している:目指すのはその先だ

■夢をかなえるゾウ、ガネージャ
偉人になるには→迷いがあるとだめ→自分で良いと信じること
 決めたことをやる、良いことをやる、人に文句を言わせる前に押さえておく
今ある体制を認める、右翼な良市民:小市民になる可能性が大(志の大きさ)

靴を磨く:自分を支えてくれるものを大事にする
募金する:人から愛される、世の中を良くしたい
腹八分目:自分をコントロールすることを楽しむ
人が欲しがるものを先取り:人が何を欲するかがビジネス、上司の欲も
笑わせる:空気を作れる、やる気やアイデア、いい面がでる
トイレを掃除:人がやりたがらない事をやる
まっすぐ帰宅:むしろ逆、一番大切な自由に使える時間
寝る前褒める:頑張ったり成長することが楽しい事と教える
何かを辞める:新しく何かをやる為に何かを止める、1日でも
環境を作る:意識を変えても駄目、環境を変えて習慣に
鏡を見て整える:意識や内面を変えるのは難しいが外見は変えられる
自分が得意な事を人に聞く:価値を決めるのは客、自分以外だから
自分が苦手な事を人に聞く:長所と短所は逆かも
夢を想像:考えはじめたら楽しくて止まらない
運が良いと言う:脳みそが勝手に運がいい事を探し始める、脳が学び始める
タダで貰う:言い方や仕草に気を使うようにコミュが変わる
明日の準備をする:一流はどんな状況でも結果を出す、綿密な準備が要る
身近な人を喜ばせる:どうでもいい人に気を使うのに、世話になった人、好いてくれる人、大事な人をぞんざいに扱うもの
褒める:誰かの助けなしに成功はない、呼吸レベルで褒め言葉を言う
人の長所を盗む:同業なら筋を通さないといけないがパクッてでも人を喜ばせる
求人情報を見る:これや!と思えるまで探し続ける、仕事で一生が決まるから
お参りに行く:どうしたら出世できるか成功できるかは心の底では分かっている、面倒臭がりでやらないだけ、成功する奴は少しでも可能性があればやる、信仰心は意味がある
人気の店、理由の観察:どうやって人を喜ばしているか観察
プレゼントする:期待以上だった時に喜ぶ、サプライズするには
やらずに後悔していることをやる:大体やらないまま死んでいく、成功はやりたい事をやるだけと言われている
夢を語る:人が聞きたい夢は実現が望まれていること、かなえるのが簡単
人の成功をサポートする:自分が成功する近道は人の成功を助けること
応募する:もし才能が認められたら人生はあっという間に変わる
毎日感謝する:地位名誉名声お金は他人がくれる、満たされて他人に愛を注ぐ状態で、自然な形で手に入る

1富神・2貧乏神・3ブラック神・4死神・Love理論


■偏差値78のAV男優が考えるセックス幸福論 森林原人
性欲は欲求の中でも特別で他者が必要、社会調和の為に理性が必要で快楽や享楽:セックは排除される、理性は客観的判断、理性は教育でつくられ正義でも絶対的でもない、人間は快に動かされ生きてきた生き物、性欲は恋愛という肩書を与えられた

社会性を持ったセックは?社会的地位の高い外面が硬い教師弁護士のレイプ願望等の人の裏側や多面性、性愛は社会が成立する前からあり社会的概念を超え社会に閉じ込められない、アブノーマルを含めスリルや快楽が何十倍もavにありこの経験は人類史上貴重(金や物は死ぬ間際には意味がない)、他者承認欲求と自己承認欲求、社会的信用も社会的弾圧を受けた子が背中を追うことを考えればあってないようなもので何を大事にするか、セックに無関心な人もいるがエロとは人間に対する愛

セックの可能性:かけがえのなさ、発見、感動、意味、悦び、儚い存在価値、自分を赦す、コンプレックスがあってもだれでも原始な感覚で絶対的な全肯定感を感じることがある、その瞬間に二人が存在したという事実の確認、粘膜への不可侵侵入、過去を受け入れ未来が約束された気になる幻想、全肯定感は幸福感や深い愛情の源になりえ社会的成功とは別の人として根源的な幸せに直結、脆く儚い刹那の逆説、契約や社会制度に囚われない本来の原始のセック

セックは同じのがない一期一会、承認欲求(自分)→肉体的快感→mがもっと虐めてといえばsと立場が一転する、気持ち良さとsmで脳で快感→心から想う愛おしい(相手)、性欲不満か承認欲求不満か、肉体と心の危険性に気を

女性の性欲は男と違う、挿入より抱っこだったり女版風俗はないし、王子に優しくイケメンに話しかけられ見たい(コミュニケーション)、受け入れられた実感をセックに求める、性欲と愛情と結婚は割り切れるというか別次元で捉え性対象とされたいとか心の繋がりとか、歳とると挿入だが、気遣いとサービス精神と印象良く初対面でセックしてもいいと思われるのが男優

覚醒と睡眠と中間の催眠、脳が眠ると入力そのまま動く、運動支配>感覚支配>記憶支配、記憶呼び出しトレースしつつ書き換えでトラウマを消せる、呼吸は意識と無意識に唯一またがる、意識的に深い呼吸をすることで無意識の本能を呼び出せる

セックは本能でするもので今この瞬間に心があり、先や過去に縛られない、愛は執着であり思考ではない、今瞬間の積み重ねが永遠であり今ないものは先にもない、本能から生まれる愛おしさ慈しみの先にあるのが愛、瞬間的な心の状態

チーターpresident elect、幸せなセック


本館 /// BANGBOO BLOG /// - 竹書房

Posted by funa : 08:00 PM | Column | Comment (0) | Trackback (0)


October 5, 2020

USB Headset





Jeecoo V22 ゲーミングヘッドセット ヘッドホン 7.1ch
初USB接続だが、癖が超強
解像度が高いのかもしれんが色んな音が大きく聞こえる
コモっている、リバーブが強い
まぁ滅茶苦茶な性格かと思った
設定アプリを入れ上記の設定で割とまともになったが、、、

Posted by funa : 10:38 PM | Gadget | Comment (0) | Trackback (0)


Navi: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19  >
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 2021     >
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