2022年7月20日水曜日

BloomというAI

オープンソースのAI「BLOOM」が出ました。

日本語も使えるというので、早速サンプルページで遊びました。

白い文字が私。ピンクの文字がAI。


↑AIとやりとり


できたのが、これ。AIとの合作超短編童話😆


傘をさして公園を歩いていたら、小さなリスが足元に寄ってきた。
「おいでよ。」「いいよ。」
私がリスに傘をさすと、小リスは嬉しそうに笑った。
公園はおもしろかった。また、リスと一緒に遊びたい。
「おいでよ。」リスが私に手を振っている。


こうなると、サイトに作ってサンプルで遊ぶだけの自分をとても残念に感じます。

こんなに身近に「どうぞ使って」と提示されているというのに。
今ほど英語力が欲しいと痛切に思ったことはないですね。

サンプルページはここ: 

https://huggingface.co/spaces/huggingface/bloom_demo

2022年7月2日土曜日

git-bash.exe で超簡単なバージョン管理の練習

  • 単純化しよう。
    • 現状:ファイルが1つある。(test.txt)
    • 操作:編集して保存して閉じる。
    • 目的:編集する前に戻りたい。過去にタイムリープすること。
  • バージョン管理に使う道具
    • git-bash.exe
  • 準備
    • デスクトップにフォルダ「forgit」を作り、そこにtest.txt(空)を保存。
    • Git-2.36.1-64-bit.exeをインストールしておく。
    • インストールした場所から、git-bash.exeを立ち上げる。
    • コマンドプロンプト(黒い画面)$がでたら、作っておいたフォルダ「forgit」に移動する(コマンド:cd)
    • 		  $ cd C:/Users/user/Desktop/forgit
      
      
  • gitで バージョン管理
    • ① フォルダにレポジトリを設定する(コマンド:init
    • 		  $ git init
      
      
    • →「forgit」フォルダのなかに「.git」フォルダができる。ここがバージョン管理管制室(レポジトリ)
    • ② 管理対象のtest.txtを、インデックスに登録(コマンド:add
    • 		  $ git add test.txt
      
      
    • ③ 登録準備ができたので、メッセージ("initial commit")をつけて管理室に渡す=コミットする(コマンド:commit -m
    • 		  $ git commit -m "initial commit"
      
      
    • →実行後のフィードバックの中に「[master (root-commit) 0ccc4b6]」とある。この「0ccc4b6」がこのバージョンのID番号。
    • ④ test.txtを変更する。1行「foo」と入力した。
    • ⑤ 新しくなったtest.txt を メッセージ(”add foo")付きでコミットする(コマンド:commit -m"add foo")
    • 		  $ git commit -m "Added foo" test.txt
      
      
    • →実行後のフィードバックの中に「[master f9a78f8]」とある。この「f9a78f8」がこのバージョンのID番号。
    • ⑥ revisionIDが2つできたので比較できる(コマンド:diff )
    • 		  $ git diff 0ccc4b6 f9a78f8
      
      
    • → 実行後のフィードバック。差分”foo”を表示している。
    • ⑦ それでは、'0ccc4b6'のバージョンへタイムリープ(コマンド:checkout
    • 		  $ git checkout 0ccc4b6
      
      
    • → フィードバックにはリポジトリがいろいろ心配してNoteを書いてくれている。でも今回はOK。
    • test.textを表示すると、ちゃんとfooはなくなって最初の状態に戻っている。
  • HEADってレコードの針みたいだ。

2018年9月1日土曜日

gmailの 赤い文字の「提案」を消す

【問題】
gmail。要件はとっくに片付いているのに、いつまでも提案がでる。こんな提案は全く不要。




【消す方法】

1)[設定]の[全般]で、「アクションの提案」を探す。


2)その「返信するメールを提案」のチェックをはずす。
ついでに「フォローアップするメールを提案」のチェックもはずす。


すっきり。

2018年3月22日木曜日

mb_strlen 1文字3バイトになる・他

PHPの mb_strlen関数で、 1文字3バイトになる


(参考)
http://hamamuratakuo.blog61.fc2.com/blog-entry-421.html

● 文字のバイト数は、文字コードごとに異なる

 Shift_JIS : 半角文字・1バイト、全角文字・2バイト
 UTF-8 : 半角文字・1バイト、全角文字・ 2-6バイト


● 解決策 : UTF-8をSJISに変換して、文字数をカウントする

 strlen(mb_convert_encoding($str, 'sjs', 'utf-8'))



● mb_strlen を正確に動かすには

 php.iniで内部エンコードを正しく設定するか、mb_stringで文字コードを指定する。

 ・ php.iniで文字コード指定
  ;mbstring.internal_encoding = EUC-JP


 ・ mb_string の第2パラメータでエンコーディングが指定できる。
  (省略した場合、内部エンコーディングを使用)
  mb_strlen($str,'utf-8')

2018年3月11日日曜日

ロケットブックの使い方(Rocketbook Everlast)

2018年3月5日 ロケットブックを購入 (ノートサイズ・黒・32ページ)。まとめ。

◆ 自由に手書きできるノート。充電とか不要。水で消せるから、半永久使用可。
◆ スマホを使って、スマートにデジタル化
  そのままスムーズにクラウド保存。GoogleDriveでもEvernoteでもicloudでも好きなところに。
◆ さらに!使ってわかったこと。
  ロケットブックとスマホを使えば、他の紙に普通のペンで手書きしたものも、簡単にデジタル保存できるんです!!秀逸なスキャン台です!! これに気づいた時は、とっても嬉しかった♪ もう手放せません。

◆ノートの特長 ◆

ノートと、フリクションペンが1本付属。
弾力のある柔らかなシート。薄いドットグリッド。
開いた所

普通に持って歩いて、手書きできる薄いノートです。充電不要です。
フリクションペンで書いて、ウェットティッシュや、付属のマイクロファイバー布を水で濡らして消します。「1000回消しても大丈夫」だそうです。(私はまだ1000回も消していませんけれども、きれいに消えます。でも普通のボールペンで書くと、もう消せません。うっかり注意。)

付属のフリクションペンは0.7mm。シートの表面は滑らかです。つるつるした感じではありません。インクがきれいにのります。乾くのに10秒ほど時間が必要です。
速く書きすぎるとインクがのりません。また、0.4mmの細いペンではうまくインクがのりませんでした。0.7mmが丁度よい感じ。

◆ アプリとの連携 ◆

アプリを立ち上げて、3タップでクラウドに送信保存できます。
ノートに手書き → アプリを立ち上げて → カメラで自動撮影 → デジタル化 → クラウドに送信

◆ アプリの操作(iPhoneの場合です)◆

[1] インストール
「Rocketbook App」(ジャンルはビジネス)をインストールします。

[2] 初回登録では、3つ入力します
 Full Name(名前...実名の必要はありません)
 Email Address(メールアドレス)
 Create Password(パスワード)

[3] 手書きノートをデジタル画像にする方法
 1. スマホでアプリを立ち上げます
 2. [new Scan] をタップ → カメラに切り替わります
 3. 画面にノートを入れる → ノートが緑色になる位置で自動撮影
  (次々と続けてスキャンできます)
 4. 撮影が終わったら、[Done] をタップして確定
  → これで、Historyに保存されます。
   (複数撮った画像はグループとして保存)
 (Historyから、保存した画像を選んで好きなところに送信できます。)

★ 7つのマークを使うと、びっくりするほど便利。効率的になります。 ★
★ スマホでスキャンするだけで、さっとクラウドに保存できるようになります。★

[4] 7つのマークに7つの場所を設定
 1. [Destination] をタップ → 7つのマークが一覧表示
  (ここで、それぞれ送信場所を設定します。
   最初は、初回登録したメールアドレスになっています)
 2. マークをタップ → マークの設定内容が出ます。
 3. [Change Destination] をタップ → 送信先クラウドのリストが出ます。
 4. 自分の使っているクラウドを選択して登録
   例えば、Google Drive の場合、
   初回はGoogleのアカウント管理のサイトに移動するので
   「Rocketbook App」の使用を許可。
   使用するアカウントを選んで [Save]。

[5] マークの使い方
 1. ノートの下のマークに、チェックを入れます。(バッテンでもチェクでもOK)
 2. アプリを立ち上げて [new Scan] → 自動撮影 → [Done] → [Send]
 この3タップで、マークしたクラウドに送信保存できます。
(忘れないように裏表紙のマークに、保存先をメモ。
 ここもフリクションペンで書けば、ウェットティッシュで消せます。)

◆ ♪♪ 普通の手書きメモをデジタル化します ♪♪ ◆

 普通の紙に、普通のインクで(フリクションじゃなく)手書きしたものを、
 簡単にデジタル化・クラウド保存する方法。

 1. ノートの上に、スキャンしたいものを載せます。
   ★バーコードと下のマークに触れないように。
   ★白い部分からはみ出さないように。
 2. アプリを立ち上げて [new Scan]→ [Done]→[Send]

 角度補正をしっかりやってくれるので、ほとんど歪みのない画像になりました。
 普通の細字のボールペンで書いたメモも、きれいにデジタル化できます。
 アプリで写真を撮るだけなので(しかも自動)スキャナー機器を使うよりずっと手軽。
 メモを散らかすことがなくなって、私はとても幸せです。

1.ノートの上に鉛筆スケッチを載せます
2.アプリでスキャン中
3.鉛筆スケッチのデジタル化・クラウド保存
普通のメモ用紙に普通のペンで書いたメモ
uniballは茶色のインク・「カラー筆ペン」の文字色も茶色


2016年11月10日木曜日

PHP の `headers already sent` エラー


PHP の `headers already sent` エラー

(参考)
http://ja.stackoverflow.com/questions/5453/php-%E3%81%AE-headers-already-sent-%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AF%E3%81%A9%E3%81%86%E7%9B%B4%E3%81%97%E3%81%9F%E3%82%89%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B

● header()の前に、出力文字(空白他)が含まれていてはいけない。
● 例)includeするhead.php に<head>が含まれていた場合。includeの前に header()をセットする。

--エラー----------------
<?php
session_start();
$title ="duf20page:Contact";
include 'head.php';
?>

<?php
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
?>

--エラー----------------
<?php
session_start();
$title ="duf20page:Contact";
?>

<?php
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
include 'head.php';
?>


--エラー----------------
<?php
session_start();
$title ="duf20page:Contact";
include 'head.php';
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
echo sha1(session_id());
?>


解決した(1)
● head.php に<head>が含まれている。includeの前に、header()をセットする。
● header()の前に、出力文字(空白他)が含まれていてはいけない。
--OK----------------
<?php
session_start();
$title ="duf20page:Contact";
header("Content-type: text/html; charset=utf-8");
header('X-FRAME-OPTIONS: SAMEORIGIN');
include 'head.php';
?>


解決した(2)
● head.phpで既にchersetしてあるので、header("Content-type: text/html; charset=utf-8");を省いた。
--OKOK----------------
<?php
session_start();
$title ="duf20page:Contact";
header('X-FRAME-OPTIONS: SAMEORIGIN');
include 'head.php';
?>
-----------------------


2016年11月8日火曜日

CSRF (Cross site request forgeries) クロス サイト リクエスト フォージェリ

CSRF対策 メモ(php)

参考)ドットインストール
http://dotinstall.com/lessons/bbs_php_v2/24508
http://dotinstall.com/lessons/bbs_php_v2/24509

1) フォームをポストするファイルにトークンを仕込む。

  1.トークンを作る
    例) $token=sha1(uniqid(mt_rand(),true))

  2.サーバ上に記録。
    (1) session_start() で、セッションを使えるようにして、
    (2) 変数 $_SESSION['token'] にトークンをセット。
  
  3.トークンをデータとともに送信する
    formからPOSTで、データとトークンを送り出す


2) データ受取りの処理をするファイルで、
  サーバ上の記録と、POSTで受け取ったトークンを比較する。

  サーバ上に記録がなかったり、値が異なっている場合は、異常。
  if ( empty($_SESSION['token'])  ||  ($_SESSION['token'] != $_POST['token']) ) 


---------------
◆ session_start エラー

 エラーメッセージがでた :
Warning: session_start() [function.session-start]: Cannot send session cookie....

session_start() は、必ず、先頭に記述すること。
http://www.phppro.jp/phpmanual/php/ref.session.html
http://www.phppro.jp/phpmanual/php/function.session-start.html

---------------
◆_CSRF対策のトークンをワンタイムにしたら意図に反して脆弱になった実装例
徳丸浩の日記 2011年01月27日
http://www.tokumaru.org/d/20110127.html

(本文より)> トークン生成は安全な乱数を用いるべきであり、安全な疑似乱数生成器がない場合は、セッションIDそのものを使う方法が妥当

(コメントより)> 時刻を種にしても安全性はたいして向上しない

---------------
◆CSRF対策の実際
2011年3月4日 23:17
http://www.phppro.jp/qa/3140
answerer:ockeghem 3月7日 09:20
・トークンの要件は、「第三者に推定されないこと」
・セッションID(session_id)は推定されない(ように対策されている)という前提をおくことができます
・トークンとして推測の困難なものを使っている場合、それに加えてハッシュ関数を通す必要はありません

---------------

2016年10月27日木曜日

bracket メモ (ライブプレビューの設定)

◆ライブプレビューの設定

 [ファイル]-[プロジェクト設定]

 例えば、http://localhost/フォルダ名/ と設定しておけば、
 PHPもそのまま、ライブプレヴューできる。

2016年10月21日金曜日

Chrome デベロパーツールのパネルの表示場所

Chrome デベロパーツールのパネルの表示場所

画面下・画面右横・フロート、と選ぶことができます。



デベロパーツールの、設定アイコン(2016年10月時点で、縦に点が3つ並んでいる形)をクリックして、選びます。



BloomというAI

オープンソースのAI「BLOOM」が出ました。 日本語も使えるというので、早速サンプルページで遊びました。 白い文字が私。ピンクの文字がAI。 ↑AIとやりとり できたのが、これ。AIとの合作超短編童話😆 『 傘をさして公園を歩いていたら、小さなリスが足...