いろいろ備忘録

雑記です。

AWS CLIでマーケットプレイスの最新のAMI IDを取得する

Finding an AMI ID Using AWS CLI in AWS Marketplace | hosty

上記のサイトが参考になりました。

ただ、そちらではProduct Codeなるものを使ってますが、それの取得方法がわからなかったので、'Name=name,Values=*amazon*としました。

 

aws ec2 describe-images --owners 'aws-marketplace' --filters 'Name=name,Values=*任意*' --query 'sort_by(Images, &CreationDate)[-1].[ImageId]'
[
"ami-任意のID"
]

コンソール接続をPythonでやる

コンソール接続はシリアル通信なのでpyserialが使えます。

https://pythonhosted.org/pyserial/

 

コンソール接続の見本ですが、このURLには、Ciscoルータにヘルプコマンドを打つスクリプトがあります。Windowsでも実行できました。

https://www.codeproject.com/Articles/871546/Use-Python-to-Interact-with-Cisco-Device-Using-Pys

 

コマンドラインの出力が終了したとみなすために...

・イベントログのコンソール出力を無効にしておく

・一定時間出力がない

・左のアレ(CiscoならSwitch#)が読み取られている

正規表現にマッチさせる

対話的なコマンドについても注意が必要そうです。

PowerShellでファイルを検索してショートカット作成

$q = Read-Host "検索文字"
#$q = "デバッグ用"
$dirPath = "検索対象のディレクトリ"
$result = gci $dirPath -include *$q*.txt -Recurse -Force | Where-Object {$_.fullname -notlike "*\除外ディレクトリ\*"} | Sort-Object {$_.LastWriteTime} -Descending| Select-Object fullname,basename -first 1

$WshShell = New-Object -ComObject WScript.Shell
$ShortCut = $WshShell.CreateShortcut("./$($result.BaseName).lnk")
$ShortCut.TargetPath = $result.fullname
$ShortCut.Save()

valueとdefaultValueの違い

単にデフォルト値を設定したいだけなら、defaultValue

入力された内容を扱いたいときvalue

 

defaultValue:デフォルト値を設定する。

value:実際の値。onChangeイベントハンドラに変更を反映する処理を書かないと、デフォルト値から値が変更できなくなる。

2.10 プロパティの事後変更について

このセクションの要旨は、
ReactDOM.renderを同じコンポーネント同じコンテンツに2回以上行ったときは、全てがすげ替えられるわけではない、ということ。


変更を最小限にするために、最初のオブジェクトにpropsとstateが渡され、ライフサイクルに応じたいくつかのメソッドが呼び出される。

 

getInitialState()は二度目からは実行されないので、そこでpropsからstateに代入している際は、componentWillReceiveProps()などを実装しなければ、二度目のrender()でstateは更新されない。propsは更新される。

 

qiita.com

React Typescript Webpack

create-react-app my-app --scripts-version=react-scripts-ts

 

cd my-app

 

npm install --save react react-dom @types/react @types/react-dom @types/node

 

npm install --save-dev typescript tslint tslint-react  awesome-typescript-loader source-map-loader

 

後はこの途中から

React & Webpack · TypeScript

BluemixのSDK for jsに既存のプロジェクトをデプロイする

1.新しいインスタンスを作成する。

2.デリバリーパイプラインを有効にする。途中でクローン先のURLを入力できるので、そこにGitHubとかのURLを入力

3.新しく出来たリポジトリをローカルにクローンしてmanifest.yml, .project, .cfignoreをサンプルからコピペしてくる。内容は適宜環境に応じて変更する。

 

DBとかと連携する時

1.BluemixのサイトやCLIで連携する

2.プロジェクト上でnpm install --save cfenv

3.サンプルを見ながらcfenvを使って資格情報を取得する