Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

google

rcloneを使ってraspberry piからgoogle driveにファイル同期 その4:標準出力からファイルを生成する

これこそCLIツールの強みですが……パイプから標準出力をとって、それをファイルとして保存できます。 実際のところ ”remote”のトップディレクトリに”1234”というテキストをもったファイルstdsample.txtをアップロードするには以下のように。 $ echo "1234" | …

rcloneを使ってraspberry piからgoogle driveにファイル同期 その3:同期

shuzo-kino.hateblo.jp の続きです。 前回はファイルのアップロードめいた話でしたが、今回は本丸のディレクトリごと同期する方法 実際のところ remoteと名付けた接続先に"/home/source/dir"というディレクトリを同期するには $ rclone sync -i /home/source…

rcloneを使ってraspberry piからgoogle driveにファイル同期 その2:アップロード

shuzo-kino.hateblo.jp の続きで、ファイルのアップロードや単体同期など 実際のところ remoteと名付けた接続先に"file.file"というファイルをアップロードするには $ rclone copy /home/source/file.file remote:逆なら $ rclone copy remote:/file.file /h…

rcloneを使ってraspberry pi からgoogle driveにファイル同期 その1:環境

pythonやnodejsでgoogle driveにアップする仕組みを以前つくりましたが……あの後色々検討したところ、別のクラウド、あるいは自前の鯖にアップロードする可能性というのが出てきました。 私のターゲット環境ではリアルタイム性は必須ではなく、なんなら翌日反…

GoogleDrive上画像の貼り込み

一般に公開されれている画像IDが分かっているとき、 http://drive.google.com/uc?export=view&id={GOOGLE IMAGE ID}サムネイルだけ確保することも可能 https://drive.google.com/thumbnail?id={GOOGLE IMAGE ID} 参考もと Only Half Image Shows When Printi…

nodeからgoogle driveをつかう その2:ファイルアップロード

実際のところ トークンの生成 前回のサンプルと異なり、Scopeを変更しないといけません ファイルにアクセスするのは"https://www.googleapis.com/auth/drive.file" 具体的にはこんな感じで書き換わるはず const SCOPES = ['https://www.googleapis.com/auth/…

nodeからgoogle driveをつかう その1:環境構築

以前PythonでやったGoogle Drive APIを叩くアプリをNodeJSで移植しなおす必要に迫られため……勉強してみました。 実際のところ Google Cloud Consoleまわりの作業 やる事はPythonと同様に、APIの有効化と認証 shuzo-kino.hateblo.jp終わったら認証情報JSONを"…

GoogleDriveAPIで 403で怒られたらトークンの権限設定が古いのかも

developers.google.com を参考にOAuthのcredをtoken.jsonに保存して開発しているようなケースで 色々弄りながら実験していると、以下のようなのが出てくる事があります。 An error occurred: これはtoken.jsonに古いScope情報など不適切な権限が書き込まれて…

Pyhon3系でGoogle Driveと接続する その3:ファイルのダウンロード

実際のところ ファイルIDがXXXのものをBytesIOに放り込み、ファイルfoobar.fileに書き込むサンプルは以下のような感じに from __future__ import print_function import os.path import io from google.auth.transport.requests import Request from google.…

Pyhon3系でGoogle Driveと接続する その2:ファイルのアップロード

shuzo-kino.hateblo.jp の続きでファイルをアップロードする部分をやっていく予定の枠 実際のところ 前回のquickstart.pyをベースに developers.google.comScopeは公式サイトから'https://www.googleapis.com/auth/drive'に設定 OAuth 2.0 Scopes for Google…

Pyhon3系でGoogle Driveと接続する その1:環境導入

RasPiを経由してクラウド上のファイルをみたり、あるいは逆にアップロードしたりする仕組みが必要になりました 自前で組む、AWS S3を使うなど色々検討はしましたが……外部の人が適宜参照する可能性がでてきたため、 今回は説明しやすいGoogle Driveをつかうこ…

iOS版Google翻訳アプリの写真判断機能がたのしい

実際のところ 静的解析 こっちの方が精度良さげ 多少擦れていても読める。 たのしい

表計算ソフトでその月の日数を出す

その月の最終日を出すEOMONTH(End Of MONTH)関数と、 日を出すDAY関数を合わせると、その月の日数がでます。 =DAY(EOMONTH(A1,0))月割の利息を出す場合……元金をB1利息をC1に格納してるとして = B1 * (DAY(EOMONTH(A1,0)) / 365 ) * B1

Google検索で英語の発音チェックができるようになっていた

Google検索でビット演算や四則演算、通貨の変換なんかができるのは有名ですが。 最近は、英語の発音もできるようになっているらしい……。 実際のところ 試しに、「Water」の発音を確認するには https://www.google.com/search?q=how+to+pronounce+water www.g…

Chrome/Chromiumで要素のXpath

「Ctrl + Sft + I」で「検証」「Copy」 => 「Copy XPath」 すると、こんな感じで //*[@id="foobar"]/div[2]/div/div[3]

Gsuiteで削除したユーザーを復元する

年間契約で手が付けられなかったGsuiteアカウントが消せる時期になったので、整理していました。 実際のところ 特権管理者でログイン。で、改めてデータ移行にチェックをいれて 参考もと support.google.com

GoogleSpreadSheetにカンマ区切りやスペース区切りのデータをよろしく列に分割する

こんなのがあったとします。 ここで、「データ」=>「テキストを列に分割」 見通しのよいデータなら 区切り文字を指定することも可能。 たとえば自動的に空白で判定されたけど、実際にはカンマです。

表計算ソフトのIF関数

表計算ソフト系なら大抵はIF関数が入っています。 これはその名の通り、特定の条件が発火したか否かで動きが変わる関数です。 実際のところ IF(論理式, 正の場合, 負の場合)E25の1/4が0以上の時、その分を、それ以外は10万を入れるという条件の場合、 以下の…

Google Drive系で期間限定で特定のユーザーに権限を付与する

実際のところ (1)ドライブでファイルを開きます。 (2)共有 をクリックします。 (3)まだファイルが共有されていない場合は共有します。 (4)[詳細設定] をクリックします。名前にカーソルを合わせて、有効期限を設定するアイコン timer をクリックします。 (5)…

Google Spreadsheet独自のImage関数で画像をセルに流しこむ

Google Spread sheet独自関数として、Image関数というのがあります。 これはその名の通り、インターネット上のオープンアクセス状態にある画像をセルに流し込むという、なかなか豪快なやつです。 報告書自動化なんかで役に立ちますよ(白目 実際のところ 画…

通貨表示を固定するYEN関数/DOLLER関数

実際のところ YEN関数は言語/地域設定している国の通過……日本だと日本円の読みかえがされます。 また、出力は文字列扱いになるので、足し算ができません。 =YEN(1500, 0)ですと、"¥1,500" =YEN(1500, -3)ですと四捨五入で"¥2,000"となります。 参考もと su…

Google formsで画像等ファイルをアップロードする

G-suiteログイン前提のため外部ユーザーは登録不能ですが、 Google formsではファイルのアップロードが可能です。 客先システムなら、これ投稿用G-suiteを作って渡しても元が取れるのでは……? 実際のところ いつものフォーム画面。 フォームの追加 ドライブ…

SpreadSheetで開始日と終了日から色つきバーめいたものを入れる

shuzo-kino.hateblo.jp shuzo-kino.hateblo.jpの流れで…… 実際のところ 画像のように、一列目に日付、C行に開始日、D行に終了日がある状態で =IF(AND( (INDIRECT(ADDRESS(row(),3)) <= F$1),(INDIRECT(ADDRESS(row(),4)) >= F$1) ), "1", "")これで数値が記…

R1C1記法がうまく動かないならINDIRECT関数を使うというても

shuzo-kino.hateblo.jp以前のR1C1記法の記事 のような動きを実装する場合、INDIRECT関数越しにR1C1を指定するケースでは =SUM(indirect(r[-3]c[0]):indirect(R[-1]C[0]))とった風になります。 参考もと Google スプレッドシートで セル参照にR1C1 形式を利用…

GASで数式を入力する その2:R1C1形式の座標指示

前回のsetFormula関数はA3、Z9みたいな感じでセルを指示してやっていました。 今回のsetFormulaR1C1関数はR1C1形式という相対的な座標指示ができる子です。 ……わたし、この関数を知るまでR1C1形式を知りませんでした(白目 実際のところ A4にそれより上3つの…

GASで数式を入力する その1:普通の座標指示

実際のところ A1にB列の合算を入力する場合、以下のようにします。 var sheet = SpreadsheetApp.getActiveSheet(); sheet.getRange('A1').setFormula('=SUM(B2:B)') 参考もと Class Range | Apps Script | Google Developers

GASのspreadsheet用独自関数をつくる

spreadsheetファイルに紐づいたgsファイル上で そのファイルでしか使わない独自関数を定義できます。 実際のところ 単純に、数値をぶち込むと+1してくれるような関数MYFUNCを考えます。 /** * わたしの素敵な関数 * * @param {number} 任意の数値 * @return …

二つ以上の値で小さい方を取得したい場合……素直にMIN関数をつかいましょう

考えてみれば当たり前だったのですが……なぜかハマったのでメモ。 二つ以上のパラメーターがあって、そのうちで小さい方を取得したい場合、MIN関数をつかいます。 ……そう、別に二個でも使っていいんですよ。 無駄にIF関数とか使わんでいいのです。 実際のとこ…

GASの開発をローカルでやる その6:デプロイしたファイルを引っ込める

実際のところ 一旦デプロイした"123"を引っ込める場合は $ clasp undeploy "123" 参考もと GitHub - google/clasp: 🔗 Develop Apps Script projects locally.

GASの開発をローカルでやる その5:gsファイルの関数をclaspから起動

実際のところ ”.clasp.json”にてプロジェクトIDを設定した状態で 開いているGSファイルの"sendEmail"関数を呼ぶ場合は以下のようにします。 clasp run 'sendEmail' 参考もと GitHub - google/clasp: 🔗 Develop Apps Script projects locally.