kwbtblogのブックマーク (221)

  • Memo for a slightly elaborate use of BigQuery (etc.) - Welcome to new things

    kwbtblog
    kwbtblog 2023/07/26
  • BigQueryの少し凝った使い方メモ(etc) - 新しいことにはウェルカム

    普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 これまでいくつかのカテゴリーに分けてまとめたのですが、今回はそれらに当てはまらないものをその他としてまとめました。 「BigQueryの少し凝った使い方メモ」記事一覧 BigQueryの少し凝った使い方メモ(ビュー・マテリアライズドビュー・テーブル関数) BigQueryの少し凝った使い方メモ(テーブル作成・データ更新) BigQueryの少し凝った使い方メモ(スケジュールされたクエリ) BigQueryの少し凝った使い方メモ(プログラミング) BigQueryの少し凝った使い方メモ(etc) 配列 カラムから配列を作る SELEC

    BigQueryの少し凝った使い方メモ(etc) - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/07/26
  • Radiko で早送り・巻き戻しをする方法 - 新しいことにはウェルカム

    PCのWeb版のRadikoで、早送り・巻き戻しをする方法です。 PCのWeb版のRadikoには早送り・巻き戻し機能がありません。何かいい方法ないかとネットで調べると「友達に教えるボタンをクリックすると、60秒・5秒で早送り・巻き戻しボタンがでてくる」という、正に求めていた方法が見つかりました。 https://miyearnzzlabo.com/archives/66968 しかし、実際にやってみると、早送り・巻き戻ししても、しばらくすると最初の再生位置にまで巻き戻ってしまいうまくいきませんでした。 そこで、「60秒・5秒で早送り・巻き戻し」という機能自体は求めていたものなので、その機能は残しつつ、他の方法で動くようにしました。 手順 ChromeでF12キーを押してDevToolsを開く Consoleに移動 下記JavaScriptをコピーしてConsoleに貼り付けてEnterを

    Radiko で早送り・巻き戻しをする方法 - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/04/13
  • Twitter トレンドはどこまで当てになるか調べてみた - 新しいことにはウェルカム

    簡易ニュース速報的な目的で、Twitter トレンドを使っています。 しかし、その情報をどこまで当てにしていいのか分からずモヤモヤしていたので、今回定期的にデータを収集して調べてみました。 動機 Twitter トレンドを見たことがある方ならご存知だと思いますが、以下の事がモヤモヤしていました。 掲載順位 掲載順位には意味があるのでしょうか? 話題になっているトレンドほど、上の方に掲載されているのだと思いたいのですが、掲載順位はツイート数に比例していません。 ツイート数のないトレンド ツイート数の表示があるトレンドとないトレンドがあります。 ツイート数の表示がないトレンドは、当にトレンドなのでしょうか?待っていればそのうちツイート数が表示されるのでしょうか? 掲載期間 1日中表示されているトレンドはほとんど見たことがなく、掲載期間は短そうな印象があるのですが、実際どれくらいの期間掲載され

    Twitter トレンドはどこまで当てになるか調べてみた - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/04/06
  • BIツールの「ディメンション」と「メジャー」の違い - 新しいことにはウェルカム

    初めてBIツールを使った時に混乱したのが「ディメンション」と「メジャー」の違いでした。 ここでは簡単にその違いや考え方を解説しようと思います。 名称 Tableauでは「ディメンション」と「メジャー」と呼びます。 PowerBIでは「列」と「メジャー」と呼びます。 Lookerでは「ディメンション」と「指標(metrics)」と呼びます。 呼び方は違えど、どれも同じ内容を指しています。 サンプルデータ 下記の年度・都市・商品別売上データを元に解説します。 Excelのグラフ Excelはテーブルのデータをそのまま1対1にプロットしてグラフを描きます。 Excelの集計グラフ 年度や都市などで合計した値のグラフを描きたい時があります。 Excelではそういったグラフはそのままでは作成できず、一旦ピボットテーブルで集計してから、そのピボットテーブルの値でグラフを描きます。 BIツールのグラフ

    BIツールの「ディメンション」と「メジャー」の違い - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/04/04
  • JavaScriptでMicrosoft SQL Serverを使う方法 - 新しいことにはウェルカム

    JavaScriptMicrosoft SQL Server(MSSQL)を使う方法メモです。 ライブラリはMicrosoftも推奨しているtediousを使い、あまり凝ったことはせず、必要最低限の機能に絞ってまとめました。 tediosはコールバックスタイルのライブラリなのですが、今風にasync・await・TypeScriptで書いてます。 インストール npm install tedious npm install @types/tedious サンプル import { Connection, ConnectionConfig, Request, TYPES, TediousType, } from 'tedious' interface inputParam { name: string; type: TediousType; value: any; }; async fun

    JavaScriptでMicrosoft SQL Serverを使う方法 - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/03/23
  • Go言語の使い方(string・byte・rune) - 新しいことにはウェルカム

    Go言語の入門書には必ずstring・byte・runeが出てきます。 サラッと書かれていることが多く、そんなものかと分かった気になって軽く流してしまいがちなのですが、いざプログラムを組み始めると、それぞれを相互変換する場面が頻発して混乱してしまいます。 そんな時は、何となく型変換してうまく動いたからOKとしがちなのですが、もう少し意味を分かった上で型変換できるようにしたいので、ここにstring・byte・runeの使い方をまとめようと思います。 byte とは byteとはuint8の別名です。 プログラムではバイナリーデータを扱う場面が多いのですが、その際、バイナリーデータはuint8の配列に格納されます。 しかし、unit8と書いてしまうとuint16・uint32...など、他の型と並列に見えてしまうので、バイナリーデータだと分かりやすくするために、バイナリーデータを扱う際はby

    Go言語の使い方(string・byte・rune) - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/03/20
  • Tableauで「相対日付」と「日付の範囲」を同時に使う方法 - 新しいことにはウェルカム

    時系列グラフの表示範囲の指定UIに 「デフォルトは直近X日を表示し、必要な時にカレンダーで任意の日付を指定できる」 といったものをよく見かけます。 しかし、Tableauの日付フィルターで同等のことはできないんです。 「直近X日を表示」は日付フィルターの設定を「相対日付」でできます。また、「任意の日付指定」は設定を「日付の範囲」でできます。 しかし残念なことに、「相対日付」と「日付の範囲」を同時にすることができないんです。 ただ、工夫をすれば可能で、以前にその方法を下記記事にまとめました。 しかし、今はもっと良い別の方法があるので、今回はそちらを紹介したいと思います。 www.kwbtblog.com 手順 開いた時の日付の作成 計算フィールドで、ワークブックを開いた時の初期の日付を作成します。 「1週間前」の日付を作成 「今日」の日付を作成 「開始日」と「終了日」パラメータの作成 パラメ

    Tableauで「相対日付」と「日付の範囲」を同時に使う方法 - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/03/10
  • Firestoreを軽量データベースとして使ってみる - 新しいことにはウェルカム

    GCP関連でプログラムを作っていて、ちょっとしたデータを保存したいことがありました。 データベースを立てるほど大げさなデータでもないし、データ間で結合クエリを書くこともなさそうな単発のデータでした。 そもそも、データベースを立てると、使っていない時もインスタンスの料金が発生するので、データベースを立てるのは選択肢から外しました。 Google Cloud Storageに保存するのが良さそうだったのですが、Firestoreも同様の用途に使えそうだったので、今回Firestoreを使ってみました。 これからも手軽にFirestoreを使っていきたいのですが、FirestoreはCloud Storegeほど直感的ではなく、使うにはある程度のFirestoreの知識が必要なので、ここに使い方をメモしておこうと思います。 Firestoreとは? Firestoreは,元々はFirebaseの

    Firestoreを軽量データベースとして使ってみる - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/03/08
  • BigQueryの少し凝った使い方メモ(スケジュールされたクエリ) - 新しいことにはウェルカム

    普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 ここではスケジュールされたクエリをまとめました。 「BigQueryの少し凝った使い方メモ」記事一覧 BigQueryの少し凝った使い方メモ(ビュー・マテリアライズドビュー・テーブル関数) BigQueryの少し凝った使い方メモ(テーブル作成・データ更新) BigQueryの少し凝った使い方メモ(スケジュールされたクエリ) BigQueryの少し凝った使い方メモ(プログラミング) BigQueryの少し凝った使い方メモ(etc) スケジュールされたクエリ 指定した日時に、指定したクエリを実行して、指定したテーブルに書き込んでくれる

    BigQueryの少し凝った使い方メモ(スケジュールされたクエリ) - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/03/01
  • BigQueryの少し凝った使い方メモ(プログラミング) - 新しいことにはウェルカム

    普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 ここではプログラミング関連をまとめました。 「BigQueryの少し凝った使い方メモ」記事一覧 BigQueryの少し凝った使い方メモ(ビュー・マテリアライズドビュー・テーブル関数) BigQueryの少し凝った使い方メモ(テーブル作成・データ更新) BigQueryの少し凝った使い方メモ(スケジュールされたクエリ) BigQueryの少し凝った使い方メモ(プログラミング) BigQueryの少し凝った使い方メモ(etc) 関数 ユーザー定義関数を作れる 値を返す テーブルは返せない。テーブルを返すのはテーブル関数で別にある 戻り値

    BigQueryの少し凝った使い方メモ(プログラミング) - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/28
  • BigQueryの少し凝った使い方メモ(テーブル作成・データ更新) - 新しいことにはウェルカム

    普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 ここではクエリ結果からテーブルを作成・更新する方法をまとめました。 「BigQueryの少し凝った使い方メモ」記事一覧 BigQueryの少し凝った使い方メモ(ビュー・マテリアライズドビュー・テーブル関数) BigQueryの少し凝った使い方メモ(テーブル作成・データ更新) BigQueryの少し凝った使い方メモ(スケジュールされたクエリ) BigQueryの少し凝った使い方メモ(プログラミング) BigQueryの少し凝った使い方メモ(etc) クエリ結果を、テーブルに保存する 例 クエリ結果でテーブルを作る 実行の度に新しいテー

    BigQueryの少し凝った使い方メモ(テーブル作成・データ更新) - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/27
  • BigQueryの少し凝った使い方メモ(ビュー・マテリアライズドビュー・テーブル関数) - 新しいことにはウェルカム

    普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。 ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。 ここではビュー・マテリアライズドビュー・テーブル関数をまとめました。 「BigQueryの少し凝った使い方メモ」記事一覧 BigQueryの少し凝った使い方メモ(ビュー・マテリアライズドビュー・テーブル関数) BigQueryの少し凝った使い方メモ(テーブル作成・データ更新) BigQueryの少し凝った使い方メモ(スケジュールされたクエリ) BigQueryの少し凝った使い方メモ(プログラミング) BigQueryの少し凝った使い方メモ(etc) ビュー いわゆるビュー SELECTクエリをビューとして保存できる ビューを他のクエ

    BigQueryの少し凝った使い方メモ(ビュー・マテリアライズドビュー・テーブル関数) - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/26
  • Markdownパーサーremarkの使い方メモ - 新しいことにはウェルカム

    Markdownを読み込んで、色々好きなように編集して、再度Markdownに出力したいことがありました。 その際、remarkというJavaScriptMarkdownパーサーを使いました。 ただ、使い方が分かりにくく、次にプログラムの修正が必要になった時には確実に使い方を忘れていそうなので、ここに今回の使い方を備忘録として残しておこうと思います。 構成 とにかく関連ライブラリが色々登場してくるので全体像がつかみ辛く混乱しました。どこから説明していいのか迷うのですが、とりあえず端から説明していこうと思います。 何をするのか? 「テキスト(マークアップ言語)からAST木(構造木)を作成し、そのAST木を解析・変換して、再度テキスト(マークアップ言語)に出力する」ためのフレームワークを作ろうというプロジェクトがあります。 そのプロジェクトがunifiedです。 https://unifie

    Markdownパーサーremarkの使い方メモ - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/25
  • Selenium・puppeteer・Playwrightでファイルドロップする - 新しいことにはウェルカム

    ここしばらく、Selenium・puppeteer・Playwrightの使い方をまとめていました。 まとめが長くなってきたので、ある程度の説明や手順が必要な操作は別記事にまとめようと思います。 ここでは、Selenium・puppeteer・Playwrightそれぞれで、ファイルドロップする方法をまとめました。 はじめに ファイルドロップとは、ローカルファイルをWebページの指定場所にドロップすると、そのファイルがWebにアップロードされるようなページを想定しています。 Google画像検索のファイルアップロードのようなものです。 そういったファイルドロップする関数が、Selenium・puppeteer・Playwrightにあるものだと思っていたのですがありませんでした。 ですので、要素にローカルファイルをファイルドロップした時に起こっていることを、JavaScriptで再現するこ

    Selenium・puppeteer・Playwrightでファイルドロップする - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/24
  • Selenium・puppeteer・Playwrightで無限スクロールする - 新しいことにはウェルカム

    ここしばらく、Selenium・puppeteer・Playwrightの使い方をまとめていました。 まとめが長くなってきたので、ある程度の説明や手順が必要な操作は別記事にまとめようと思います。 ここでは、Selenium・puppeteer・Playwrightそれぞれで、無限スクロールする方法をまとめました。 スクロール 無限スクロールの手順に入る前に、まずは基となるスクロールをする方法です。 JavaScriptのElement.scrollTopを使って、ウィンドウのdomのスクロール位置を移動させる方法もあるのですが、ここではElement.scrollIntoView()を使って、ウィンドウ内の一番下のdomが見えるようにスクロールさせる方法を使います。 参考として最後にElement.scrollTopを使った方法も記載しました。 sample html ウィンドウの中に、

    Selenium・puppeteer・Playwrightで無限スクロールする - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/23
  • puppeteerの使い方メモ - 新しいことにはウェルカム

    以前、SeleniumとPlaywrightの比較のため両方を検証していました。せっかく使い方を覚えたので、また必要になった時にすぐに思い出せるよう下記記事に簡単に使い方をまとめました。 元々クローラーとしてpuppeteerを使っていたので、Selenium・Playwrightをまとめたのなら、puppeteerは外せないでしょということで、ここにpuppeteerの使い方を簡単にまとめてみることにしました。 ただ、SeleniumとPlaywrightを検証した結果、今はPlaywrightをメインで使っています。なので、通常使いの向けの網羅的なまとめではなく、puppeteerのお作法について簡単にまとめたものに留めておこうと思います。 インストール npm install --save puppeteer ブラウザChromiumがnode_modulesにインストールされ、その

    puppeteerの使い方メモ - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/22
  • JavaScriptの配列をSQLで扱いたい - 新しいことにはウェルカム

    普段SQLを使うことが多いのですが、JavaScriptで配列のデータを扱っている時、JavaScriptの配列に対してもSQLでクエリが書けたらいいのになと思うことがあります。 一方、C#には配列をSQLライクなクエリで処理できる、LINQという言語が備わっています。 JavaScriptにもLINQを移植したライブラリがあったので今回使ってみました。 使ってみたところ、当初SQLでやりたかったことはLINQで一通りできそうだったので、これから使っていきたいと思います。 ユーティリティライブラリは、思いついた時にさっと使いたいのですが、何も見ないで書くには、JavaScriptのLINQはちょっと複雑でした。 そこで、SQLでよくやる操作をJavaScriptのLINQで書く方法をまとめておこうと思います。 LINQとは? LINQとは、C#で配列をSQLライクなクエリで処理できる、C#

    JavaScriptの配列をSQLで扱いたい - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/15
  • Playwrightの使い方メモ - 新しいことにはウェルカム

    最近Playwrightを試していたので、使い方を忘れてもまた思い出せるよう、Playwrightの使い方をメモしておこうと思います。 インストール npm install --save playwright Playwrightをインストールすると、同時にブラウザChromium・Firefox・Webkitもインストールされる デフォルトではPlaywrightから呼び出されるブラウザは、その時にインストールされたブラウザが使われる ブラウザをインストールせずPlaywrightのみをインストールし、ブラウザは別途インストールしたものを使用することも可能 しかし、Playwrightのバージョンとブラウザのバージョンは密接に関係があるため、Playwrightとブラウザは同時にインストールして、インストールしたブラウザを使うようにした方がよい 構成 Playwrightは下記クラスで構

    Playwrightの使い方メモ - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/10
  • Seleniumの使い方メモ - 新しいことにはウェルカム

    最近Seleniumを試していたので、使い方を忘れてもまた思い出せるよう、Seleniumの使い方をメモしておこうと思います。 インストール Selenium pip install selenium ブラウザとそのブラウザを駆動するWebDriverは別途インストールする必要がある。 WebDriver WebDriverはブラウザのバージョンに合ったものをインストールする必要がある。 手動で行うと手間なのでwebdriver_managerを使って自動インストールする。 pip install webdriver-manager webdriver_managerの使い方 from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.

    Seleniumの使い方メモ - 新しいことにはウェルカム
    kwbtblog
    kwbtblog 2023/02/08