新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

2019-01-01から1年間の記事一覧

Twitter APIでデータ収集してみる

世の中の動向を知るのに使えないかと、Twitterのデータを、Twitter APIを使って取得してみました。 結論から言うと、Twitter APIの制限がキツイと噂には聞いていましたが、本当にキツ過ぎて使い物になりませんでした…。 Twitter APIでデータを取得するところ…

格安SIMに変えて、半年ほど使ってみた感想

大手キャリアでiPhoneを使っていました。 7Gのプランでしたが7G超えることはなく、毎月の請求は1万円弱くらいでした。 何となく高いなぁとは思っていましたが、キャリアやプラン変更は面倒くさくてそのまま使い続けていました。 しかしその後、色々家計を見…

Tableauの書式設定について、Excelっぽいグラフ・表が描ける程度に整理する

Tableauのデフォルトのグラフは結構綺麗です。 実務用途で使う分にはデフォルトを少しいじる程度で十分なのですが、資料用のグラフの場合、資料に合わせて色々見た目を変えたくなります。 しかし、Tableauの書式設定は結構難しく、せっかくTableauでグラフを…

クラウドを利用するということは、常時メンテコストが発生するということ

Google Cloud Platformからメールが来ていました。 Gooble Cloud Functionsで、当初作ったFunctionのNode.jsのバージョンが6だったのですが、今回バージョン6のサービスが終わるので、そのバージョンアップ要請のメールでした。 薄々意識はしていたのですが…

Microsoft Graph (Office365) API のトークンを取得して更新する方法

Web版のOffice365を操作する方法の1つに、Microsoft Graph (Office365) APIというものがあります。 例えば、Microsoft Graph (Office365) APIを使えば、Office365の外部から OutLookからメール送信 Excel Onlineのファイル編集 SharePointのファイル取得 な…

SQL Server(Azure SQL Database)に読み取り専用ユーザーを追加する方法

SQL Serverのデータを、BIツールで読み込んでグラフを作ったりしています。 その場合、データは読み取りしかしないし、色んな人がグラフを作るので、書き込み権限を持ったユーザーは使いたくなく、共有用に読み取り専用ユーザーを作成しました。 今回、SQL S…

Azure SQL Databaseで、データベースをまたいだクエリは書かない方がいい

SQL Serverを使うのは、Azure SQL Databaseが初めてだったので知らなかったのですが、SQL Serverでは、データベースをまたいだクエリは、下記のように、データベースを指定することによって簡単に書けます。 SELECT * FROM [<db_name>].dbo.test_table しかし、Azure </db_name>…

JavaScriptの日付演算ライブラリMoment.jsの使い方メモ

JavaScriptで日付演算をする際、組み込みのDate関数は扱いが難しいため、一般的に何かしらのライブラリを使います。 ライブラリは、よく見かける「Moment.js」を使っています。 何度やっても使い方を忘れるし、同じ所でハマっているので、自分用使い方メモを…

SSO(シングルサインオン)サービスを色々試してみる

SSO(シングルサインオン)に興味があって、SSOサービスを色々試してみた感想です。SSOは全く初めてで、SSOとは?から使い勝手までを簡単にまとめました。 動機 色々なウェブサービスを使っているのですが、それぞれにIDとパスワードがあって、とてもじゃな…

JavaScriptでExcelファイルを、SheetJS(xlsx)を使って読み込む方法メモ

JavaScript(TypeScript)でExcelファイルを読み込むのに、SheetJS(xlsx)を使っています。 使い方はちょっとクセがあって、すぐに忘れてしまうので自分用使い方メモです。 マニュアル https://www.npmjs.com/package/xlsx インストール npm install xlsx …

今更ながら、在庫があれば、Amazonプライムより、ヨドバシエクストリームの方がいいなぁと思った

Amazonプライム 印刷しようと思ったら、プリンターのインクが切れて印刷できませんでした。 翌朝使いたい資料だったため、その日中に印刷したく、Amazonで注文しようとしました。 お昼過ぎてたので、当日は無理かなぁと半分諦めかけながら見たところ、やはり…

Tableau のダッシュボードで、簡単にグラフをグリッド配置する方法

Tableauのダッシュボードでのグラフ配置は、なかなか思った通りのレイアウトにならなくて難しいです。 原因は、オブジェクトをマウスでドロップや移動しても、意図した階層に入ってくれないのと、 1つのオブジェクトのサイズや位置を変更すると、他のオブジ…

SQL Server で月・週ごとに集計する方法

データを月・週ごとに集計するには、まず日付の月・週の頭の日付を求め、その頭の日付でGROUPします。 Google BigQueryなど、頭の日付取得にDATE_TRUNC()関数が使える場合は、下記のような感じで集計できます。 SELECT DATE_TRUNC(dt, MONTH) AS dt_month ,S…

Docker ComposeでNginx+PHP+MySQL環境構築メモ

phpLDAPadminを使いたいことがあって、Docker ComposeでNginxとPHPを立ち上げて、そこで動かしました。 今度また、WebでPHPを使いたくなった時用に、Docker ComposeでPHPが動くNginxを用意するための、自分用テンプレートメモです。 せっかくなので後々使い…

Microsoft(Office365)Flowから、Slackにファイルをアップロードする方法

メールが届いたら、そのメールの添付ファイルをSlackにアップロードしたいことがあって、そのタスク実行にMicrosoft(Office365)Flowを使おうとしました。 Microsoft(Office365)FlowにはSlackコネクターがあるので、それを使えば簡単に作れるかなと思った…

LDAPの使い方&Ubuntu18にインストール方法メモ

プロジェクトでローカルに使うユーザーを作って管理したく、LDAPサーバーを立ち上げてみました。 今回LDAPを触るのが初めてだったので、LDAPのざっくりとした解説と使い方、および、Ubuntu18にLDAPをインストールする手順をメモしました。 LDAPはOpenLDAPを…

SQLでグループの最後のレコードを取得する方法

「ユーザーのイベントログで、ユーザーが一番最後に行ったイベントを抽出する」など、 グループで分けたデータの最後のレコードを取得したい時があります。 ウィンドウ関数を使うと、下記のような形で求めることができます。 WITH tbl AS ( SELECT * ,ROW_NU…

LinuxのシェルをChromeみたいにタブで切り替えられるようにしてみる

普段Linuxで作業する時は、ターミナルを複数立ち上げています。 それで特に不自由していないのですが、1つのCUIターミナル内で複数のシェルを起動して、それらをChromeみたいにタブで切り替えられないかなぁと思って調べていました。 すると、イメージして…

PHPのmcryptで暗号化されたデータをNode.jsで復号化する方法

PHPのmcryptで暗号化されたデータを、Node.jsで復号化しようとしてハマったので、その原因と解決方法メモです。 状況 PHPでAES256-CBCで暗号化した物ですよと言われて受け取ったデータを、Node.jsで復号化しようとするとエラーになりました。 データは暗号化…

Slackで強制実名登録にしてよかったが、最初からプロビジョニングしておけばもっとよかった話

大した内容じゃないのですが、何となくSlackについて、つれづれなるままに書いてみました。 SlackとMicrosoft Teamsどっちがいいの? Office365を使っているので、Microsoft Teamsを利用できる環境にあるのですが、チャットツールはSlackを使っています。 Te…

Sparkのよく使うコードメモ

SparkはPythonプログラムなので、かなり自由に書くことができます。 しかし、いつも大体やることは決まっているし、色んな書き方を知っても、かえって記憶に残りづらくなってしまうので、Sparkの個人的によく使うコードを、1目的1コードの形にまとめておき…

AWS Glueを使った感想

以前、AWS Glueを試しに使ってみたのですが、その感想です。 AWS GlueはApache Sparkでできていて、その時初めてSparkを触って面白かったので、 そのうちGlueを本格的に使うようになったら、追々使い方をまとめようかと思っていました。 しかし、データ出力…

Spark(Google Dataproc)からAWS S3にアクセスする方法

Spark(Google Dataproc)から、AWS S3にアクセスする方法です。 手順 Spark設定 下記のSpark・Haddopの設定をすると、SparkからAWS S3ファイルの読み書きができるようになります。 Sparkに下記AWS関連のjarファイルを読み込みます aws-java-sdk-bundle-xxxx…

Spark(Google Dataproc)からMicrosoft SQL Server(Azure SQL Database)にアクセスする方法

Spark(Google Dataproc)から、Microsoft SQL Server(Azure Database)にアクセスする方法です。 手順 Spark設定 下記のSparkの設定をすると、SparkからSQL Serverのデータの読み書きができるようになります。 MS SQL ServerのJDBCのjarファイルをダウンロ…

Spark(Google Dataproc)からMySQLにアクセスする方法

Spark(Google Dataproc)から、MySQLにアクセスする方法です。 JDBCを使ってアクセスするので、PostgreSQL等、他のRDBにも応用可能です。 手順 Spark設定 下記のSparkの設定をすると、SparkからMySQLのデータの読み書きができるようになります。 MySQLのJDB…

MySQLのデータベースを、スキーマレスでパーティショニングしながらBigQueryにロードしてみる

BigQueryはデータ量が膨大でも、インフラの事は全く(本当に全く)気にしなくてよく、しかも早くて安いので、 データは全てBigQueryに入れてしまって、全部BigQueryで処理したくなってしまいます。 そんな訳で、MySQLのデータベースをまるまるBigQueryにロー…

Node.jsでAES暗号化・復号化してみる

Node.jsで、AES暗号化・復号化する機会があったので、そのメモです。 暗号化アルゴリズム「AES-256-CBC」で行いました。 ざっくりAES CBC暗号化について AES CBCは、任意の長さのバイナリデータを、鍵を使って暗号化し、同じ鍵を使って復号化する暗号化アル…

Google Cloud Storageのサブディレクトリ一覧をPythonで取得する方法

Google Cloud Storageのサブディレクトリ一覧を、GCP Pythonライブラリを使って取得したかったのですが、 ハマったので、その経緯と方法のメモ書きです。 他の言語のライブラリも、Pythonライブラリ同様APIラッパーなので、応用可能かと思います。 NG 例 最…

ラズベリーパイをマウス・キーボード・モニターなしでPCだけで使えるようにする

Raspberry Pi4発表のニュースを見て、久しぶりにRaspberry Piを引っ張り出してきて触っていました。 Raspberry Piは前にも少し触っていたのですが、PCとRaspberry Piの間で、マウス・キーボード・モニターを行ったり来たりするのが億劫になって、次第に使わ…

SQL Server でカレンダーテーブルを作る方法

SQL Server(Azure SQL Database)で、カレンダーテーブルが欲しかったので作成方法メモです。 ググったところ、「WITH」でテーブルを作成し、そのテーブル定義の中の「UNION ALL」から再帰呼び出しして作るようです。 WITH _calendar AS ( SELECT CAST(N'20…