風待ち

プログラミングの勉強や日々の出来事のログなど

Reactでテーブルにテキストボックスを表示した時に一番最初の行のテキストボックスにフォーカスするには

業務用のシステムを開発していると、できるだけマウスやキーボードを使わずに使いたいという要望が多い。 ほとんどの場合はInputタグにautoFocus={true}を追加すればいいんだけど、ボタンを押すとテーブルが展開して詳細を入力していくような動きのある画面…

PythonistaでGitHubに公開されているライブラリの最新のリリースバージョンを取得する。

import requests def get_latest_release(repo_owner, repo_name): url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/releases/latest" response = requests.get(url) if response.status_code == 200: release_data = response.json() retur…

PostgreSQLで文字型のカラム達を連結する時にNULLがあり得る場合はCONCATを使う。

SQLで文字を連結する時は||演算子を使います。 しかし、PostgreSQLで文字列を連結する時、その文字型のカラムにNULLが入っている場合、全体がNULLとして返ってきてしまいます。 例えば下記のSQLはNULLが返ってくる。 SELECT 'Hello' || NULL || 'World'; そ…

Pythonista3.4にバージョンアップしたらwkwebviewを使っていると落ちる問題を回避する方法

対象のソースを開いた状態で右上のプラスを押し、PythonistaのDocumentationを開く。 その後、ソースに戻り実行するとこれまで通り動作する。 たまに勝手にDocumentationが閉じている場合があるので実行する時には、開いたソースだけでなく、Documentationの…

Raspberry Pi 4にUbuntu 20.04 LTSの64bitをいれて、xubuntu-desktopもいれたけど、マルチディスプレイになってくれなかったのでいろいろ調べて、表示されるようになった。

xubuntu-desktopをいれただけではマルチディスプレイになってくれなかった。 下記のファイルに追記して、再起動したら2個目のモニターにも表示されるようになった。 /boot/firmware/usercfg.txt dtoverlay=vc4-fkms-v3d disable_overscan=1

Raspberry Pi 4にUbuntu 20.04 LTSの64bitをいれたので、Go言語の開発環境をインストールする。

今の環境を確認する。 ubuntu@ubuntu:~$ uname -a Linux ubuntu 5.4.0-1008-raspi #8-Ubuntu SMP Wed Apr 8 11:13:06 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux Goのパッケージをダウンロードして、展開する。 wget https://dl.google.com/go/go1.14.2.li…

Reactで配列をmap関数でグルグルしてJSX.Elementを返す時、一つで複数のエレメントや他とは別のエレメントを返すには

配列の中身をJSXエレメントにする時にmap関数でグルグルするけど、その時、途中で区切り線を入れるなど別のエレメントを差し込みたい時にどう書くのか調べた。 render() { const items = ["item1", "item2", "item3", "item4", "item5"]; const list = items…

最近では現場でタブレットを使う機会も増えてきた。タブレットにはカメラがついているから保守や修繕のときには証拠写真を撮っておきたいと思うのが人情だろう。その写真をDBに入れるためにクライアントアプリを入れるのは面倒なのでブラウザですませたい。そこでreact-webcamのサンプルをTypeScriptで書いてみる。

mozmorris/react-webcamを使ってブラウザからreactでカメラを利用する。 まずは環境を作る。 $ yarn create react-app webcam-sample --typescript $ cd webcam-sample/ $ yarn add react-webcam @types/react-webcam スクリーンショットを撮るサンプルがGit…

WindowsでGoを使って外部コマンドをCMDで実行するときに、「cd」でカレントディレクトリを移動してから実行したい。

GoというよりはCMDの使い方になるが、コマンドとコマンドの間を「&」でつなぐことで続けて実行できる。 package main import ( "fmt" "log" "os/exec" ) func main() { out, err := exec.Command("cmd", "/c", "cd", "C:\\go", "&", "dir").Output() if err …

Visual Studio Codeで「>Go:Install/Update Tools」したときに、「Installing github.com/sqs/goreturns FAILED」になったら

CMD> go get -v -u github.com/sqs/goreturns コマンドラインでインストールしたら問題なく入った。

GoでMySQLに接続するときのDSNの書き方

ユーザー:パスワード@tcp(IPアドレス:ポート)/DB名 import "database/sql" import _ "github.com/go-sql-driver/mysql" db, err := sql.Open("mysql", "user:password@tcp(IPAddress:Port>/dbname")

scikit-learnのテキトーに作ったモデルを読み込んで、Flaskを使ってWebでもアクセスできるようにしてみる。

前に作ったモデルを読み込んで使う。 バッチ処理だけではなんなので、Webアプリに組み込んでみた。 import json from flask import Flask from flask import request from flask import abort import pandas as pd from sklearn.preprocessing import Standa…

scikit-learnのテキトーに作ったモデルを読み込んで使ってみる。

前に作ったモデルを読み込んで使ってみる。 まずは予測したい列を除いたCSVファイル(「target.csv」って名前にする)を用意する。 前に作った時には「target」カラムがあったけど、今回はそれを予測するためのデータなのでその行はない。 YYYY,MM,DD,DY 201…

テキトーなCSVファイルを用意してscikit-learnをテキトーに使ってみる

機械学習の本を読んでサンプルをいじっているだけでは、わかったつもりになるだけで実際に使えるようにはならないので、本当にテキトーなデータで機械学習してみる。 まず、テキトーなCSVデータ(「train.csv」って名前で保存)を用意する。下のは一部でこん…

PandasでシフトJISのCSVファイルを読み込む

Oracle SQL DeveloperでエクスポートしたCSVファイルがシフトJISだったので調べた。 エンコードを指定して読み込めばいいわけね。 import pandas as pd data = pd.read_csv("train.csv", encoding="SHIFT-JIS", sep=",")

vimを使いだして20年がすぎようとしている頃、emacsを使い始めた。そして、半年後、暗黒面に落ちた。

それを入れた時、最初は軽い気持ちだった。 けれど、 指は確かに覚えていた。 使い慣れた操作は、あのエディタに戻るべきかと思わせた。 しかし、冷静な心が言う。 emacsのエディタ部分以外は、vimよりもいいじゃないか。 今ではもう、ほとんど、emacsから外…

【emacs自分メモ】emacsで括弧を入力したら閉じ括弧も入力してくれる。コーテーションを入力したら閉じる方も入力してくれる設定

なぜ、半年使ってきて、この設定をしていないかったのか? なぜ、なんの疑問もなく、毎回、キーを叩いていたのか? vimの時には真っ先に設定してたのに。 init.el (electric-pair-mode 1)

【emacs自分メモ】emacsで文字をコピーした時に、OSのクリップボードにも入れる

クリップボードの履歴を残せるようなツールを使っていると、emacsと共有できた方が便利なので。 init.el (setq x-select-enable-clipboard t)

【emacs自分メモ】emacsのpackage-installでなんかわかんないけど、Not foundっていわれた時

パッケージの情報が古いんだよ。きっと。 M-x package-refresh-contents

emacsの*scratch*バッファでテンプレートエンジンのmustache.elを使って雑にSQLを作ってみる。

mustache.elを見つけたので使ってみる。 Emacs Lisp自体ほとんどわかっていないので勉強もかねてやってみた。 *scratch*バッファだから、順番に”C-j”して実行して行けば、テンプレートの{{key}}で書かれたところを埋めたSQLが手に入る。 利用したライブラ…

ちょっとだけ違う似たようなバッチをたくさん作らないといけなくなったので、Node.jsでHandlebars.jsを使えばいいやと思ったけど、どうやらPythonでもpybars3ってのでHandlebarsが使えるみたいなので、そっちでやってみる。

大量に似たようなバッチを作らないといけなくなり、Node.jsでやるかっと思ったら、目の前のPCには入ってない。 WinPythonは入っていて、WinPythonにはpybars3もインストール済みなようなので、日本語の情報がないことに不安を感じつつも使ってみることにした…

Windows7の32bitにWinPythonを入れてJupyter Notebookを使ってみようと思うも「ImportError: DLL load failed: 指定されたモジュールが見つかりません。」と出て起動してくれない時に解決した方法

Windowsでお手軽にPythonを始めるためにWinPythonをインストールした。 インストーラーはGithubからWinPython-32bit-3.5.4.1Qt5.exをダウンロードしてくる。 インストール先はわかりやすいように「C:\WinPython」にした。 その後、インストールしたフォルダ…

Oracleの簡単なSQLを実行するBashのシェルスクリプトを今年になってからいろんなところで書くので自分用のテンプレート

ちょっとした確認用のSQLを実行するのにSQL Developerを立ち上げるのが重いというのもあり、よく実行するものはシェルスクリプトにしている。 今年に入ってから、いろいろな場所で同じようなSQLばかり書いているので、面倒だと感じ始めたからシェルスプリク…

emacsでVB6のコードを見る。そのままでも見れるけど、やっぱり白黒ではあじけないのでvisual-basic-mode.elを入れてみる。

EmacsWikiからvisual-basic-mode.elをダウンロードする。 ダウンロードしたらどこでもいいけど「~/.emacs.d/elisp/visual-basic-mode.el」なんかに置く。 おもむろにinit.elに追記する。 (add-to-list 'load-path "~/.emacs.d/elisp") ;ファイルを置いたとこ…

PL/SQLでSELECT INTOをした時にORA-01422が出る場合には、一度、引数とか変数の名前をカラム名と同じにしていないか確認しよう。

ORA-01422がでるのは、PL/SQLで変数にどこかのテーブルの値を検索してセットする時なんかに、戻ってくる値が一意にならないからエラーになる。 例えば下記のようにするとエラーになる。 CREATE OR REPLACE PROCEDURE SAMPLE ( USER_ID IN NUMBER ) AS V_USER…

WindowsのCMDを使ってCOPYコマンドでファイルを連結する

file1とfile2を連結してfile3を作る CMD> COPY file1 + file2 file3 ただし、出来上がったfile3の最後に空白行が入る。 なので、例えば、CSVなんかを連結して、SQLLoderに食べさせる時にこれを使うと最後の行がエラーになるので注意が必要。 空白行を入れた…

ちょっとした計算をコマンドライン上でやりたい時のPowerShellとBashでのやり方の違いメモ

電卓を開くのが面倒な時に覚えておくと便利かも PowerShellはそのまま PS> 100 - 50 50 Bashは算術式展開?で書かないといけないみたい $ echo $((100 - 50)) 50 これだけ見るとPowerShellよりもBashの方が面倒か ちなみに変数に入れるのは PowerShell PS> $…

vimの:sort uをemacsではどうしたらいいか調べたのでメモ。

20年近く使ってきたvimからemacsに乗り換えようとしている。 けれど、ついつい使い慣れたvimを使ってしまう。 特に、急いでいる時はemacsで開いていても、vimで開き直してしまう事もある。 これは単に慣れの問題だと思うので少しづつでもemacsを使っていこう…

年末の大掃除のついでにシステムの監視用にログを取っているSQLiteのファイルも大きくなっていたので、こっちも掃除するかといらなくなったログデータを削除してもファイルサイズが小さくならなかったのでvacuumして小さくした。

複数のシステムを運用していると、バッチなんかで出力されるログが溜まっていく。 定期的に削除されるようにしているし、個別のファイルに吐かれているものだから検索も面倒なので使い勝手が悪い。 なので、そのログのファイル名と内容をけっこう雑にSQLite…

Raspberry Piにカメラをつけて、コマンドで撮影するのは問題なく上手く行ったけど、ピント合わせが面倒だったのでライブカメラにして合わせようと思ったらMotion-mmalが動かず、motionEyeを入れることでなんとか使えるようになった。

TechShareのRaspberry Pi用カメラモジュール(Standard,Adjustable Focus)というものを購入。 Amazonですすめられるままに買った。動作報告のレビューもあるし問題ないだろう。 届くと、説明書なんかはなくてURLが書かれているだけ。まぁ安いものだし。 Camer…