react で preventDefault しても submit された場合に見るステップ

(1) submit のハンドラーを component に bind しているか class RequestForm extends React.Component { constructor(props) { super(props); . . this.handleSubmit = this.handleSubmit.bind(this) } . . render () { return ( <React.Fragment> . . <form onSubmit={this.handleSubmit}> (2) preventDefault </form></react.fragment>…

django で pdb できないときは django-pdb を install する

ssh クライアントが理由なのかは原因を特定できていないが、django 上の適当な .py ファイルにて import pdb; pdb.set_trace() もしくは breakpoint() # python3.7 以上のみ有効 を埋め込みしても Web サーバーを立ち上げているコンソールで pdb の操作が効…

ubuntu 20.04 に postgres postgresql を install する

何も考えずに ローカルユーザーネームと root のロールで postgres が動く環境を入れたい場合。 $ sudo apt update $ sudo apt-get install postgresql $ sudo su - postgres @postgres> createuser YOUR_USERNAME @postgres> createdb YOUR_USERNAME @postg…

ubuntu server 20.04 に nodejs を curl および nodesource 経由で install する

nodejs v12(2020/06 で LTS) を curl および nodesource 経由で install する curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install -y nodejs ついでに yarn 入れるときは次の通りにする $ curl -sL https://dl.yarnpkg.…

ubuntu server 20.04 に django をインストールする

pip3 は install している前提である。 $ pip3 install --user Django $ python3 -m django --version 3.0.7 $ cd /path/to/workspace $ django-admin startproject testproject $ cd testproject $ python3 manage.py runserver 0.0.0.0:8080 # GET access …

python の @property が果たす役割

あるメソッドを、読取専用のアトリビュートにする。 class Point: def __init__(self, point_x, point_y): self._point_x = point_x self._point_y = point_y @property def point_x(self): return self._point_x @property def point_y(self): return self.…

__name__ == '__main__' を使う場合

from samplepackage import yourmodule を実行したとき、yourmodule 内のコードはすべて実行される。 例えば samplepackage/yourmodule.py が次のコードで構成されているとする。 def sample_func(): print('hello from sample func.') sample_func() import…

利用しないループ変数はアンダースコアにする

python にて、ループで利用しないループ変数はアンダースコアにする。 決まりではないが、そういった風習がある。 for _ in range(10) print('looping') 参考記事: https://www.datacamp.com/community/tutorials/role-underscore-python https://hackernoon…

内包表記を使って余計な行数を減らす

data_x = [1, 2, 3] data_y = [6, 7, 8] mul_result = [x * y for x in data_x for y in data_y] print(mul_result) => [6, 7, 8, 12, 14, 16, 18, 21, 24] names = ['taro', 'kenji', 'joe'] ages = [25, 30, 18] people = {name: age for (name, age) in z…

ubuntu server 20.04 に pip3 と pipenv を install する

$ sudo apt update $ sudo apt install python3-pip $ pip3 --version pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8) $ cd /path/to/workspace $ pip3 install --user pipenv # ~/.bashrc か ~/.bash_profile に PATH 通して WARN ログ…

歳三十

何も変わっていない。

報連相は小分けにする

まとめて報連相する = 夏休みの宿題を期限ギリギリでやる 中学生の頃だったと思うが、夏休みの宿題全てを夏休み残り 2 日でやった覚えがある。 睡眠時間を削ってやりきったが、登校日はゾンビ気分だ。そうなるぐらい馬鹿げた行為だ。 社会人になって報連相を…

仕事で一番大事なこと

確認 だ。 確認に始まり、確認に終わる 仕事で失敗する理由の一つに「思い込み」が挙げられる。 「こうすればいいだろう」「これで良いんじゃないか」 そう考えて良い根拠が何処にあるのか、教えて欲しい。 答えられないならば、それは結局 自分勝手に 決め…

ビジネスにおけるコミュニケーション

ビジネスにおけるコミュニケーションは 報連相(報告・連絡・相談) http://mat5ukawa.hateblo.jp/entry/2019/08/16/220104 http://mat5ukawa.hateblo.jp/entry/2019/08/19/205927 確認 http://mat5ukawa.hateblo.jp/entry/2019/08/19/201422 聴く http://mat5…

言われたまま依頼を引き受けない

依頼ができる管理者は少ない 一括りにしてはいけないと思うが、世に言う管理者の依頼は雑だ。 いざ言われた依頼をそのままやってみると 「違う、そういうことを頼んだつもりじゃない」 「私はこういうつもりで頼んだつもりだ」 と言われるのが関の山だ。とも…

顧客が本当に欲しいものを聴く

「穴とドリル」の寓話を知っている人は読まなくていい 「聴く」のが依頼を受ける側の任務 ある雑貨店に客が来た。店員にこう尋ねた。 客: 「ドリルはありますか」 業務でドリルを使わ無いだろうビジネススーツ姿の客に、店員は続ける。 店員: 「ドリルですか…

募集の抽象化には一利もない

各企業の新卒要項、中途要項には当然のように 「コミュニケーション能力がある人」が掲げられている。 果たして ソフトウェア技術職を募集する時「プログラミング能力がある人」 営業職を募集する時「営業能力がある人」 経理職を募集する時「経理能力がある…

報連相が失敗するパターン「相手に何をして欲しいかを伝えられていない」

相手に何をして欲しいかを伝えられていない 報連相は失敗する よく聞くのが「単なる事象・結果を述べている報連相」だ。 報告です、依頼されていた調査が終わりました 報告です、レビュー用の資料作りました 連絡です、共通モジュールのここを編集しました …

ビジネスで大事なこと

「相手に何をして欲しいかを伝えること」 である。 金をもらって仕事をする以上、職種が何であれあなたはビジネスマンだ。 ビジネスマンは仕事を前に進めなければいけない。 仕事を前に進めていると必ず、課題が出てくる。 課題を解決するために、自分以外の…

ページネートのリソースを1ページずつ巡回し、ページにある各々のリンクへ 1 階層潜り込んでスクレイピングする

http://mat5ukawa.hateblo.jp/entry/2018/06/05/002826 より 各ページを巡回する 巡回ごとに各々のレコード詳細リンクへ 1 階層潜り込む 潜り込み先でスクレイピングする クエリ抽出されたページのレコード探索に利用すれば良いと思う。 import scrapy class…

scrapy ページネート形式のリソースをページ順々にスクレイピングする

レコード一覧をページネートで表現したリソースがあるとする。 ページ毎に固有メッセージ page number is {page number} が存在するので、 全ページ分その取得を試みる。 リソースの想定図 ページ毎に page number is {page number} が存在する ページネート…

scrapy で localhost サーバーのリソースをスクレイピングして parse 結果を json ファイルに出力する

他人のサーバーでテストすることは憚られる 環境 Mac OSX - 10.13.4 Python - 3.6.5 nginx - 1.12.2 scrapy - 1.5.0 localhost サーバー workspace ディレクトリ直下の index.html を改変しておく。 /path/to/nginx/workspace/index.html <html> <head> <style type="text/css"> #caption { colo</style></head></html>…

python 仮想環境 とは

「管理者、システム権限から隔離された Python を実行できる環境」を仮想環境と呼ぶ。 実体的にはディレクトリであり venv ( あるいは env ) と表記される。 その配下には Python バイナリ, pip, 3rd パーティパッケージ などが集約されている。 (厳密な定義…

setup.py の最小構成

python setup.py sdist した時に warning なく dist が出力されること hello world スクリプトすらない 最小というより 骨組み の方が適切かもしれない 試行目的 setup.py の使い方に慣れること 動作確認バージョン Python 2.7.10 MacOSX 10.13.4 ディレクト…

PyPI とは

Python 用の 3rd パーティソフトウェアリポジトリ。 pip はパッケージマネージャであり、PyPI を標準の参照リポジトリとする。 情報参照元: https://en.wikipedia.org/wiki/Python_Package_Index

仕様と設計の違い

SE

将来どこかで誰かに 「仕様と設計を混同した時はこれ見といてね」と 言えることを念頭において書いた記事 「仕様」 と 「設計」 は別物 私なりの言葉で定義すると 仕様 = 作るものについて、満たされているべきことが定義されたもの 満たされているべきこと…

Java の interface method に public や abstract を宣言してもよいか

interface MyInterface { public abstract void myMethod(); // public と abstract の宣言 } Oracle の Docs より 「してもよいが、冗長なので奨められない」 意訳(一部) interface のメソッドは暗黙のうちに public である interface のメソッドは暗黙のう…

struts.xml の global-exception-mappings とは何か

struts2-core v2.3.28 global-exception-mappings とは はじめに、Struts2 には Exception mappings という機能がある これは Action 内で throw された例外を自動的に catch し あらかじめ用意された result へマッピングする機能である この Exception map…

struts.xml global-results 要素とは何か

struts2-core v2.3.24.1 struts.xml global-results 要素とは何か action 間で共有したい result がある時、これを定義する為の要素 package ごとに global-results を定義できる Struts2 は先ず ローカルの result(package.action.result)を走査する ローカ…

struts.xml default-interceptor-ref 要素とは何か

default-interceptor-stack 要素とは何か package 内で定義した interceptor-stack の内 package の各アクションにてデフォルトで参照させたい interceptor を定義する 具体的に 下記 struts.xml より interceptor-stack に ロギングが定義されている (actio…